<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:SONM="http://sonimtech.com/20241231"
  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:us-gaap="http://fasb.org/us-gaap/2024"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink">
    <link:schemaRef xlink:href="sonm-20241231.xsd" xlink:type="simple"/>
    <context id="From2024-01-01to2024-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="From2023-01-012023-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-12-31_custom_HaoPeterLiuMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2023-01-012023-12-31_custom_HaoPeterLiuMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="From2024-01-012024-12-31_custom_HaoPeterLiuMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-12-31_custom_HaoPeterLiuMember_custom_GrantDateFairValueOfOptionAwardsAndStockAwardsGrantedInFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:GrantDateFairValueOfOptionAwardsAndStockAwardsGrantedInFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2023-01-012023-12-31_custom_HaoPeterLiuMember_custom_GrantDateFairValueOfOptionAwardsAndStockAwardsGrantedInFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:GrantDateFairValueOfOptionAwardsAndStockAwardsGrantedInFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="From2024-01-012024-12-31_custom_HaoPeterLiuMember_custom_GrantDateFairValueOfOptionAwardsAndStockAwardsGrantedInFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:GrantDateFairValueOfOptionAwardsAndStockAwardsGrantedInFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-12-31_custom_HaoPeterLiuMember_custom_FairValueAtFiscalYearEndOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:FairValueAtFiscalYearEndOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2023-01-012023-12-31_custom_HaoPeterLiuMember_custom_FairValueAtFiscalYearEndOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:FairValueAtFiscalYearEndOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="From2024-01-012024-12-31_custom_HaoPeterLiuMember_custom_FairValueAtFiscalYearEndOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:FairValueAtFiscalYearEndOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-12-31_custom_HaoPeterLiuMember_custom_ChangeInFairValueOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:ChangeInFairValueOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2023-01-012023-12-31_custom_HaoPeterLiuMember_custom_ChangeInFairValueOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:ChangeInFairValueOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="From2024-01-012024-12-31_custom_HaoPeterLiuMember_custom_ChangeInFairValueOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:ChangeInFairValueOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-12-31_custom_HaoPeterLiuMember_custom_FairValueAtVestingOfOptionAwardsAndStockAwardsGrantedInFiscalYearThatVestedDuringFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:FairValueAtVestingOfOptionAwardsAndStockAwardsGrantedInFiscalYearThatVestedDuringFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2023-01-012023-12-31_custom_HaoPeterLiuMember_custom_FairValueAtVestingOfOptionAwardsAndStockAwardsGrantedInFiscalYearThatVestedDuringFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:FairValueAtVestingOfOptionAwardsAndStockAwardsGrantedInFiscalYearThatVestedDuringFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="From2024-01-012024-12-31_custom_HaoPeterLiuMember_custom_FairValueAtVestingOfOptionAwardsAndStockAwardsGrantedInFiscalYearThatVestedDuringFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:FairValueAtVestingOfOptionAwardsAndStockAwardsGrantedInFiscalYearThatVestedDuringFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-12-31_custom_HaoPeterLiuMember_custom_ChangeInFairValueAsOfVestingDateOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsForWhichApplicableVestingConditionsWereSatisfiedDuringFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:ChangeInFairValueAsOfVestingDateOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsForWhichApplicableVestingConditionsWereSatisfiedDuringFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2023-01-012023-12-31_custom_HaoPeterLiuMember_custom_ChangeInFairValueAsOfVestingDateOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsForWhichApplicableVestingConditionsWereSatisfiedDuringFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:ChangeInFairValueAsOfVestingDateOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsForWhichApplicableVestingConditionsWereSatisfiedDuringFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="From2024-01-012024-12-31_custom_HaoPeterLiuMember_custom_ChangeInFairValueAsOfVestingDateOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsForWhichApplicableVestingConditionsWereSatisfiedDuringFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:ChangeInFairValueAsOfVestingDateOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsForWhichApplicableVestingConditionsWereSatisfiedDuringFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-12-31_custom_HaoPeterLiuMember_custom_FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2023-01-012023-12-31_custom_HaoPeterLiuMember_custom_FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="From2024-01-012024-12-31_custom_HaoPeterLiuMember_custom_FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">SONM:HaoPeterLiuMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-12-31_ecd_NonPeoNeoMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2023-01-012023-12-31_ecd_NonPeoNeoMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="From2024-01-012024-12-31_ecd_NonPeoNeoMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-12-31_ecd_NonPeoNeoMember_custom_GrantDateFairValueOfOptionAwardsAndStockAwardsGrantedInFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:GrantDateFairValueOfOptionAwardsAndStockAwardsGrantedInFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2023-01-012023-12-31_ecd_NonPeoNeoMember_custom_GrantDateFairValueOfOptionAwardsAndStockAwardsGrantedInFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:GrantDateFairValueOfOptionAwardsAndStockAwardsGrantedInFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="From2024-01-012024-12-31_ecd_NonPeoNeoMember_custom_GrantDateFairValueOfOptionAwardsAndStockAwardsGrantedInFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:GrantDateFairValueOfOptionAwardsAndStockAwardsGrantedInFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-12-31_ecd_NonPeoNeoMember_custom_FairValueAtFiscalYearEndOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:FairValueAtFiscalYearEndOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2023-01-012023-12-31_ecd_NonPeoNeoMember_custom_FairValueAtFiscalYearEndOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:FairValueAtFiscalYearEndOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="From2024-01-012024-12-31_ecd_NonPeoNeoMember_custom_FairValueAtFiscalYearEndOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:FairValueAtFiscalYearEndOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-12-31_ecd_NonPeoNeoMember_custom_ChangeInFairValueOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:ChangeInFairValueOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2023-01-012023-12-31_ecd_NonPeoNeoMember_custom_ChangeInFairValueOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:ChangeInFairValueOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="From2024-01-012024-12-31_ecd_NonPeoNeoMember_custom_ChangeInFairValueOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:ChangeInFairValueOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-12-31_ecd_NonPeoNeoMember_custom_FairValueAtVestingOfOptionAwardsAndStockAwardsGrantedInFiscalYearThatVestedDuringFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:FairValueAtVestingOfOptionAwardsAndStockAwardsGrantedInFiscalYearThatVestedDuringFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2023-01-012023-12-31_ecd_NonPeoNeoMember_custom_FairValueAtVestingOfOptionAwardsAndStockAwardsGrantedInFiscalYearThatVestedDuringFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:FairValueAtVestingOfOptionAwardsAndStockAwardsGrantedInFiscalYearThatVestedDuringFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="From2024-01-012024-12-31_ecd_NonPeoNeoMember_custom_FairValueAtVestingOfOptionAwardsAndStockAwardsGrantedInFiscalYearThatVestedDuringFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:FairValueAtVestingOfOptionAwardsAndStockAwardsGrantedInFiscalYearThatVestedDuringFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-12-31_ecd_NonPeoNeoMember_custom_ChangeInFairValueAsOfVestingDateOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsForWhichApplicableVestingConditionsWereSatisfiedDuringFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:ChangeInFairValueAsOfVestingDateOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsForWhichApplicableVestingConditionsWereSatisfiedDuringFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2023-01-012023-12-31_ecd_NonPeoNeoMember_custom_ChangeInFairValueAsOfVestingDateOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsForWhichApplicableVestingConditionsWereSatisfiedDuringFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:ChangeInFairValueAsOfVestingDateOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsForWhichApplicableVestingConditionsWereSatisfiedDuringFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="From2024-01-012024-12-31_ecd_NonPeoNeoMember_custom_ChangeInFairValueAsOfVestingDateOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsForWhichApplicableVestingConditionsWereSatisfiedDuringFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:ChangeInFairValueAsOfVestingDateOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsForWhichApplicableVestingConditionsWereSatisfiedDuringFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-12-31_ecd_NonPeoNeoMember_custom_FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2023-01-012023-12-31_ecd_NonPeoNeoMember_custom_FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="From2024-01-012024-12-31_ecd_NonPeoNeoMember_custom_FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001178697</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">SONM:FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <unit id="USD">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="Shares">
        <measure>shares</measure>
    </unit>
    <unit id="USDPShares">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="Ratio">
        <measure>pure</measure>
    </unit>
    <dei:AmendmentFlag contextRef="From2024-01-01to2024-12-31" id="Fact000003">false</dei:AmendmentFlag>
    <dei:EntityCentralIndexKey contextRef="From2024-01-01to2024-12-31" id="Fact000004">0001178697</dei:EntityCentralIndexKey>
    <dei:DocumentType contextRef="From2024-01-01to2024-12-31" id="xdx2ixbrl0011">DEF 14A</dei:DocumentType>
    <dei:EntityRegistrantName contextRef="From2024-01-01to2024-12-31" id="Fact000012">Sonim Technologies, Inc.</dei:EntityRegistrantName>
    <ecd:PvpTableTextBlock contextRef="From2024-01-01to2024-12-31" id="Fact000014">&lt;table cellpadding="0" cellspacing="0" id="xdx_886_eecd--PvpTableTextBlock_z47h2QC5BAEg" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%" summary="xdx: Disclosure - Pay vs Performance Disclosure"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;Fiscal
    Year&lt;sup&gt;(1)&lt;/sup&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_48F_eecd--PeoTotalCompAmt_zPWYpX7BY1y4" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center"&gt;Summary
    Compensation Table Total for PEO&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_48D_eecd--PeoActuallyPaidCompAmt_z6QTbuWckXr9" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;Compensation
    Actually Paid to PEO &lt;span&gt;&lt;sup id="xdx_F5E_zlxExA700jh9"&gt;(2)(3)&lt;/sup&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_489_eecd--NonPeoNeoAvgTotalCompAmt_zmX6tJNMchSa" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center"&gt;Average
    Summary Compensation Table Total for non-PEO NEOs&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_482_eecd--NonPeoNeoAvgCompActuallyPaidAmt_zK8qojNlOHC5" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;Average
    Compensation Actually Paid to non-PEO NEOs&lt;span&gt;&lt;sup id="xdx_F5D_zcAGgP7m0JGh"&gt;(2)(3)&lt;/sup&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_488_eecd--TotalShareholderRtnAmt_pp2d_zFsTtwURtV06" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center"&gt;Value
    of Initial Fixed $100 Investment Based on Total Shareholder Return&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_483_eus-gaap--NetIncomeLoss_pn4n6_zujGOLenNDSb" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center"&gt;Net
    Income $(M)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_419_20240101__20241231_z17raC7cefBg" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 40%; text-align: justify"&gt;2024 &lt;span id="xdx_F4F_zKye9O5bypN8" style="display: none; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="width: 6%; text-align: right"&gt;672,918&lt;/td&gt;&lt;td style="width: 1%; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="width: 6%; text-align: right"&gt;(134,334&lt;/td&gt;&lt;td style="width: 1%; text-align: justify"&gt;)&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="width: 6%; text-align: right"&gt;624,083&lt;/td&gt;&lt;td style="width: 1%; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="width: 6%; text-align: right"&gt;513,490&lt;/td&gt;&lt;td style="width: 1%; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="width: 6%; text-align: right"&gt;34.23&lt;/td&gt;&lt;td style="width: 1%; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="width: 6%; text-align: right"&gt;(33.65&lt;/td&gt;&lt;td style="width: 1%; text-align: justify"&gt;)&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_411_20230101__20231231_zgepqSx6J0dd" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="text-align: justify"&gt;2023 &lt;span id="xdx_F48_z39ZYnRz6Yy9" style="display: none; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;(1)&lt;/span&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;677,266&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;2,136,138&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;626,135&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;688,442&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;79.72&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;(0.09&lt;/td&gt;&lt;td style="text-align: justify"&gt;)&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_419_20220101__20221231_z3t53rsJkoB6" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="text-align: justify"&gt;2022 &lt;span id="xdx_F40_zr6nbVDxiDD5" style="display: none; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;(1)&lt;/span&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;1,986,962&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;1,975,045&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;420,553&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;409,019&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;46.08&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;(14.09&lt;/td&gt;&lt;td style="text-align: justify"&gt;)&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;</ecd:PvpTableTextBlock>
    <ecd:PeoTotalCompAmt
      contextRef="From2024-01-01to2024-12-31"
      decimals="0"
      id="Fact000015"
      unitRef="USD">672918</ecd:PeoTotalCompAmt>
    <ecd:PeoActuallyPaidCompAmt
      contextRef="From2024-01-01to2024-12-31"
      decimals="0"
      id="Fact000016"
      unitRef="USD">-134334</ecd:PeoActuallyPaidCompAmt>
    <ecd:NonPeoNeoAvgTotalCompAmt
      contextRef="From2024-01-01to2024-12-31"
      decimals="0"
      id="Fact000017"
      unitRef="USD">624083</ecd:NonPeoNeoAvgTotalCompAmt>
    <ecd:NonPeoNeoAvgCompActuallyPaidAmt
      contextRef="From2024-01-01to2024-12-31"
      decimals="0"
      id="Fact000018"
      unitRef="USD">513490</ecd:NonPeoNeoAvgCompActuallyPaidAmt>
    <ecd:TotalShareholderRtnAmt
      contextRef="From2024-01-01to2024-12-31"
      decimals="2"
      id="Fact000019"
      unitRef="USD">34.23</ecd:TotalShareholderRtnAmt>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-01-01to2024-12-31"
      decimals="-4"
      id="Fact000020"
      unitRef="USD">-33650000</us-gaap:NetIncomeLoss>
    <ecd:PeoTotalCompAmt
      contextRef="From2023-01-012023-12-31"
      decimals="0"
      id="Fact000021"
      unitRef="USD">677266</ecd:PeoTotalCompAmt>
    <ecd:PeoActuallyPaidCompAmt
      contextRef="From2023-01-012023-12-31"
      decimals="0"
      id="Fact000022"
      unitRef="USD">2136138</ecd:PeoActuallyPaidCompAmt>
    <ecd:NonPeoNeoAvgTotalCompAmt
      contextRef="From2023-01-012023-12-31"
      decimals="0"
      id="Fact000023"
      unitRef="USD">626135</ecd:NonPeoNeoAvgTotalCompAmt>
    <ecd:NonPeoNeoAvgCompActuallyPaidAmt
      contextRef="From2023-01-012023-12-31"
      decimals="0"
      id="Fact000024"
      unitRef="USD">688442</ecd:NonPeoNeoAvgCompActuallyPaidAmt>
    <ecd:TotalShareholderRtnAmt
      contextRef="From2023-01-012023-12-31"
      decimals="2"
      id="Fact000025"
      unitRef="USD">79.72</ecd:TotalShareholderRtnAmt>
    <us-gaap:NetIncomeLoss
      contextRef="From2023-01-012023-12-31"
      decimals="-4"
      id="Fact000026"
      unitRef="USD">-90000.00</us-gaap:NetIncomeLoss>
    <ecd:PeoTotalCompAmt
      contextRef="From2022-01-012022-12-31"
      decimals="0"
      id="Fact000027"
      unitRef="USD">1986962</ecd:PeoTotalCompAmt>
    <ecd:PeoActuallyPaidCompAmt
      contextRef="From2022-01-012022-12-31"
      decimals="0"
      id="Fact000028"
      unitRef="USD">1975045</ecd:PeoActuallyPaidCompAmt>
    <ecd:NonPeoNeoAvgTotalCompAmt
      contextRef="From2022-01-012022-12-31"
      decimals="0"
      id="Fact000029"
      unitRef="USD">420553</ecd:NonPeoNeoAvgTotalCompAmt>
    <ecd:NonPeoNeoAvgCompActuallyPaidAmt
      contextRef="From2022-01-012022-12-31"
      decimals="0"
      id="Fact000030"
      unitRef="USD">409019</ecd:NonPeoNeoAvgCompActuallyPaidAmt>
    <ecd:TotalShareholderRtnAmt
      contextRef="From2022-01-012022-12-31"
      decimals="2"
      id="Fact000031"
      unitRef="USD">46.08</ecd:TotalShareholderRtnAmt>
    <us-gaap:NetIncomeLoss
      contextRef="From2022-01-012022-12-31"
      decimals="-4"
      id="Fact000032"
      unitRef="USD">-14090000.00</us-gaap:NetIncomeLoss>
    <ecd:NamedExecutiveOfficersFnTextBlock contextRef="From2024-01-01to2024-12-31" id="Fact000037">&lt;p id="xdx_894_eecd--NamedExecutiveOfficersFnTextBlock_dU_zJDYIFlhrccc" style="margin-top: 0; margin-bottom: 0"&gt;&#160;&lt;/p&gt;

&lt;p style="margin-top: 0; margin-bottom: 0"&gt;&lt;/p&gt;

&lt;p style="margin-top: 0; margin-bottom: 0"&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; width: 100%"&gt;
  &lt;tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top"&gt;
    &lt;td style="font: 10pt Times New Roman, Times, Serif; width: 48px; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;(1)&lt;/span&gt;&lt;/td&gt;
    &lt;td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
    PEO in all reporting years is &lt;span id="xdx_904_eecd--PeoName_c20220101__20221231_zWQXT0fWJXb1"&gt;Hao (Peter) Liu&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;.
    The non-PEO NEOs in the 2024 and 2023 reporting years are Clay Crolius and Charles Becher. The non-PEO NEOs in the 2022 reporting
    year are Clay Crolius, Charles Becher and Robert Tirva.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

</ecd:NamedExecutiveOfficersFnTextBlock>
    <ecd:PeoName contextRef="From2022-01-012022-12-31" id="Fact000038">Hao (Peter) Liu</ecd:PeoName>
    <ecd:AdjToPeoCompFnTextBlock contextRef="From2024-01-01to2024-12-31" id="Fact000040">&lt;p id="xdx_89F_eecd--AdjToPeoCompFnTextBlock_dU_zhtKAfqlD0A8" style="margin: 0"&gt;&#160;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; width: 100%"&gt;
  &lt;tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top"&gt;
    &lt;td style="font: 10pt Times New Roman, Times, Serif; text-align: left; width: 48px"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;(3)&lt;/span&gt;&lt;/td&gt;
    &lt;td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
    Compensation Actually Paid to our PEO and non-PEO NEOs reflects the following adjustments required by applicable SEC rules from total
    compensation reported in the SCT:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;
&lt;p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;


&lt;p style="margin-top: 0; margin-bottom: 0"&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="display: none; vertical-align: bottom"&gt;
    &lt;td style="display: none; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="display: none"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_49B_20220101__20221231__ecd--IndividualAxis__custom--HaoPeterLiuMember_zRmyg8yiJwW1" style="display: none; text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="display: none"&gt;&#160;&lt;/td&gt;&lt;td style="display: none"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_49F_20230101__20231231__ecd--IndividualAxis__custom--HaoPeterLiuMember_zM8TeJ3zPbl8" style="display: none; text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="display: none"&gt;&#160;&lt;/td&gt;&lt;td style="display: none"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_499_20240101__20241231__ecd--IndividualAxis__custom--HaoPeterLiuMember_zeIEOg4C9Gbc" style="display: none; text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="display: none"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="font-weight: bold; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center"&gt;PEO: Liu, Hao (Peter)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="font-weight: bold"&gt;Prior Fiscal Year-End&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: right"&gt;12/31/2021&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: right"&gt;12/31/2022&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: right"&gt;12/31/2023&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="font-weight: bold"&gt;Current Fiscal Year-End&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: right"&gt;12/31/2022&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: right"&gt;12/31/2023&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: right"&gt;12/31/2024&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="font-weight: bold"&gt;Fiscal Year&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: right"&gt;2022&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: right"&gt;2023&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: right"&gt;2024&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_403_eecd--PeoTotalCompAmt_z8wTlCOLAoNl" style="vertical-align: bottom"&gt;
    &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: justify"&gt;SCT Total&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: right"&gt;$1,986,962&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: right"&gt;$677,266&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: right"&gt;$672,918&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr id="xdx_402_eecd--AdjToCompAmt_hecd--AdjToCompAxis__custom--GrantDateFairValueOfOptionAwardsAndStockAwardsGrantedInFiscalYearMember_ziC9i9iwwajb" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 52%; text-align: justify"&gt;(Minus): Grant Date Fair Value of Option Awards and Stock Awards Granted in Fiscal
    Year&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="width: 12%; text-align: right"&gt;(1,501,393&lt;/td&gt;&lt;td style="width: 1%; text-align: justify"&gt;)&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="width: 12%; text-align: right"&gt;0&lt;/td&gt;&lt;td style="width: 1%; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="width: 12%; text-align: right"&gt;0&lt;/td&gt;&lt;td style="width: 1%; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_406_eecd--AdjToCompAmt_hecd--AdjToCompAxis__custom--FairValueAtFiscalYearEndOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInFiscalYearMember_zEx3ioprQtFl" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="text-align: justify"&gt;Plus: Fair Value at Fiscal Year-End of Outstanding and Unvested Option Awards and Stock Awards
    Granted in Fiscal Year&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;1,445,577&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;0&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;0&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40D_eecd--AdjToCompAmt_hecd--AdjToCompAxis__custom--ChangeInFairValueOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsMember_zRGNaL9ew0Ih" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="text-align: justify"&gt;Plus: Change in Fair Value of Outstanding and Unvested Option Awards and Stock Awards Granted
    in Prior Fiscal Years&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;(2,346&lt;/td&gt;&lt;td style="text-align: justify"&gt;)&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;681,465&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;(610,049&lt;/td&gt;&lt;td style="text-align: justify"&gt;)&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_404_eecd--AdjToCompAmt_hecd--AdjToCompAxis__custom--FairValueAtVestingOfOptionAwardsAndStockAwardsGrantedInFiscalYearThatVestedDuringFiscalYearMember_zNrcz4FKd753" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="text-align: justify"&gt;Plus: Fair Value at Vesting of Option Awards and Stock Awards Granted in Fiscal Year That Vested
    During Fiscal Year&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;47,046&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;0&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;0&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40F_eecd--AdjToCompAmt_hecd--AdjToCompAxis__custom--ChangeInFairValueAsOfVestingDateOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsForWhichApplicableVestingConditionsWereSatisfiedDuringFiscalYearMember_zYpBRL2k8dIi" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="text-align: justify"&gt;Plus: Change in Fair Value as of Vesting Date of Option Awards and Stock Awards Granted in Prior
    Fiscal Years For Which Applicable Vesting Conditions Were Satisfied During Fiscal Year&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;(801&lt;/td&gt;&lt;td style="text-align: justify"&gt;)&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;777,407&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;(197,203&lt;/td&gt;&lt;td style="text-align: justify"&gt;)&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40B_eecd--AdjToCompAmt_hecd--AdjToCompAxis__custom--FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember_zziuWZWGhd5i" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="text-align: left; padding-bottom: 1pt"&gt;(Minus): Fair Value as of Prior Fiscal Year-End of Option Awards and Stock
    Awards Granted in Prior Fiscal Years That Failed to Meet Applicable Vesting Conditions During Fiscal Year&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;0&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;0&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;0&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr id="xdx_407_eecd--AdjToCompAmt_hecd--AdjToCompAxis__custom--FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember_z1r5DOJCEK6g" style="display: none; vertical-align: bottom; background-color: White"&gt;
    &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Adjustment to Compensation Amount&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;0&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;0&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;0&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr id="xdx_401_eecd--PeoActuallyPaidCompAmt_z6sgagb5w35" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="font-weight: bold; text-align: justify"&gt;Compensation Actually Paid&lt;/td&gt;&lt;td style="font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td style="font-weight: bold; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="font-weight: bold; text-align: right"&gt;1,975,045&lt;/td&gt;&lt;td style="font-weight: bold; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td style="font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td style="font-weight: bold; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="font-weight: bold; text-align: right"&gt;2,136,138&lt;/td&gt;&lt;td style="font-weight: bold; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td style="font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td style="font-weight: bold; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="font-weight: bold; text-align: right"&gt;(134,334&lt;/td&gt;&lt;td style="font-weight: bold; text-align: justify"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

</ecd:AdjToPeoCompFnTextBlock>
    <ecd:PeoTotalCompAmt
      contextRef="From2022-01-012022-12-31_custom_HaoPeterLiuMember"
      decimals="0"
      id="Fact000042"
      unitRef="USD">1986962</ecd:PeoTotalCompAmt>
    <ecd:PeoTotalCompAmt
      contextRef="From2023-01-012023-12-31_custom_HaoPeterLiuMember"
      decimals="0"
      id="Fact000043"
      unitRef="USD">677266</ecd:PeoTotalCompAmt>
    <ecd:PeoTotalCompAmt
      contextRef="From2024-01-012024-12-31_custom_HaoPeterLiuMember"
      decimals="0"
      id="Fact000044"
      unitRef="USD">672918</ecd:PeoTotalCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2022-01-012022-12-31_custom_HaoPeterLiuMember_custom_GrantDateFairValueOfOptionAwardsAndStockAwardsGrantedInFiscalYearMember"
      decimals="0"
      id="Fact000046"
      unitRef="USD">-1501393</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2023-01-012023-12-31_custom_HaoPeterLiuMember_custom_GrantDateFairValueOfOptionAwardsAndStockAwardsGrantedInFiscalYearMember"
      decimals="0"
      id="Fact000047"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2024-01-012024-12-31_custom_HaoPeterLiuMember_custom_GrantDateFairValueOfOptionAwardsAndStockAwardsGrantedInFiscalYearMember"
      decimals="0"
      id="Fact000048"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2022-01-012022-12-31_custom_HaoPeterLiuMember_custom_FairValueAtFiscalYearEndOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInFiscalYearMember"
      decimals="0"
      id="Fact000050"
      unitRef="USD">1445577</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2023-01-012023-12-31_custom_HaoPeterLiuMember_custom_FairValueAtFiscalYearEndOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInFiscalYearMember"
      decimals="0"
      id="Fact000051"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2024-01-012024-12-31_custom_HaoPeterLiuMember_custom_FairValueAtFiscalYearEndOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInFiscalYearMember"
      decimals="0"
      id="Fact000052"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2022-01-012022-12-31_custom_HaoPeterLiuMember_custom_ChangeInFairValueOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsMember"
      decimals="0"
      id="Fact000054"
      unitRef="USD">-2346</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2023-01-012023-12-31_custom_HaoPeterLiuMember_custom_ChangeInFairValueOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsMember"
      decimals="0"
      id="Fact000055"
      unitRef="USD">681465</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2024-01-012024-12-31_custom_HaoPeterLiuMember_custom_ChangeInFairValueOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsMember"
      decimals="0"
      id="Fact000056"
      unitRef="USD">-610049</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2022-01-012022-12-31_custom_HaoPeterLiuMember_custom_FairValueAtVestingOfOptionAwardsAndStockAwardsGrantedInFiscalYearThatVestedDuringFiscalYearMember"
      decimals="0"
      id="Fact000058"
      unitRef="USD">47046</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2023-01-012023-12-31_custom_HaoPeterLiuMember_custom_FairValueAtVestingOfOptionAwardsAndStockAwardsGrantedInFiscalYearThatVestedDuringFiscalYearMember"
      decimals="0"
      id="Fact000059"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2024-01-012024-12-31_custom_HaoPeterLiuMember_custom_FairValueAtVestingOfOptionAwardsAndStockAwardsGrantedInFiscalYearThatVestedDuringFiscalYearMember"
      decimals="0"
      id="Fact000060"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2022-01-012022-12-31_custom_HaoPeterLiuMember_custom_ChangeInFairValueAsOfVestingDateOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsForWhichApplicableVestingConditionsWereSatisfiedDuringFiscalYearMember"
      decimals="0"
      id="Fact000062"
      unitRef="USD">-801</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2023-01-012023-12-31_custom_HaoPeterLiuMember_custom_ChangeInFairValueAsOfVestingDateOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsForWhichApplicableVestingConditionsWereSatisfiedDuringFiscalYearMember"
      decimals="0"
      id="Fact000063"
      unitRef="USD">777407</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2024-01-012024-12-31_custom_HaoPeterLiuMember_custom_ChangeInFairValueAsOfVestingDateOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsForWhichApplicableVestingConditionsWereSatisfiedDuringFiscalYearMember"
      decimals="0"
      id="Fact000064"
      unitRef="USD">-197203</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2022-01-012022-12-31_custom_HaoPeterLiuMember_custom_FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember"
      decimals="0"
      id="Fact000066"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2023-01-012023-12-31_custom_HaoPeterLiuMember_custom_FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember"
      decimals="0"
      id="Fact000067"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2024-01-012024-12-31_custom_HaoPeterLiuMember_custom_FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember"
      decimals="0"
      id="Fact000068"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2022-01-012022-12-31_custom_HaoPeterLiuMember_custom_FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember"
      decimals="0"
      id="Fact000070"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2023-01-012023-12-31_custom_HaoPeterLiuMember_custom_FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember"
      decimals="0"
      id="Fact000071"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2024-01-012024-12-31_custom_HaoPeterLiuMember_custom_FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember"
      decimals="0"
      id="Fact000072"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:PeoActuallyPaidCompAmt
      contextRef="From2022-01-012022-12-31_custom_HaoPeterLiuMember"
      decimals="0"
      id="Fact000074"
      unitRef="USD">1975045</ecd:PeoActuallyPaidCompAmt>
    <ecd:PeoActuallyPaidCompAmt
      contextRef="From2023-01-012023-12-31_custom_HaoPeterLiuMember"
      decimals="0"
      id="Fact000075"
      unitRef="USD">2136138</ecd:PeoActuallyPaidCompAmt>
    <ecd:PeoActuallyPaidCompAmt
      contextRef="From2024-01-012024-12-31_custom_HaoPeterLiuMember"
      decimals="0"
      id="Fact000076"
      unitRef="USD">-134334</ecd:PeoActuallyPaidCompAmt>
    <ecd:AdjToNonPeoNeoCompFnTextBlock contextRef="From2024-01-01to2024-12-31" id="Fact000078">&lt;p id="xdx_89A_eecd--AdjToNonPeoNeoCompFnTextBlock_dU_zLHcZwDFeuE3" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="display: none; vertical-align: bottom"&gt;
    &lt;td style="display: none; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="display: none"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_49D_20220101__20221231__ecd--IndividualAxis__ecd--NonPeoNeoMember_zCOgDLtqyoti" style="display: none; text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="display: none"&gt;&#160;&lt;/td&gt;&lt;td style="display: none"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_491_20230101__20231231__ecd--IndividualAxis__ecd--NonPeoNeoMember_zluQS9WxHLq2" style="display: none; text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="display: none"&gt;&#160;&lt;/td&gt;&lt;td style="display: none"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_498_20240101__20241231__ecd--IndividualAxis__ecd--NonPeoNeoMember_zmt9hzDfbUWi" style="display: none; text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="display: none"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="font-weight: bold; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center"&gt;Non-PEO NEOs&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="font-weight: bold"&gt;Prior Fiscal Year-End&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: right"&gt;12/31/2021&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: right"&gt;12/31/2022&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: right"&gt;12/31/2023&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="font-weight: bold"&gt;Current Fiscal Year-End&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: right"&gt;12/31/2022&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: right"&gt;12/31/2023&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: right"&gt;12/31/2024&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="font-weight: bold"&gt;Fiscal Year&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: right"&gt;2022&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: right"&gt;2023&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: right"&gt;2024&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40D_eecd--NonPeoNeoAvgTotalCompAmt_zwsyvuSEQ4W3" style="vertical-align: bottom"&gt;
    &lt;td style="border-bottom: Black 1pt solid; font-weight: bold"&gt;SCT Total&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: right"&gt;$420,553&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: right"&gt;$626,135&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: right"&gt;$624,083&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr id="xdx_402_eecd--AdjToCompAmt_hecd--AdjToCompAxis__custom--GrantDateFairValueOfOptionAwardsAndStockAwardsGrantedInFiscalYearMember_zFzemYrirRga" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 52%; text-align: justify"&gt;(Minus): Grant Date Fair Value of Option Awards and Stock Awards Granted in Fiscal
    Year&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="width: 12%; text-align: right"&gt;(87,981&lt;/td&gt;&lt;td style="width: 1%; text-align: justify"&gt;)&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="width: 12%; text-align: right"&gt;(78,760&lt;/td&gt;&lt;td style="width: 1%; text-align: justify"&gt;)&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="width: 12%; text-align: right"&gt;(44,676&lt;/td&gt;&lt;td style="width: 1%; text-align: justify"&gt;)&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_406_eecd--AdjToCompAmt_hecd--AdjToCompAxis__custom--FairValueAtFiscalYearEndOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInFiscalYearMember_zwNHF0PogJC6" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="text-align: justify"&gt;Plus: Fair Value at Fiscal Year-End of Outstanding and Unvested Option Awards and Stock Awards
    Granted in Fiscal Year&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;48,383&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;91,269&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;19,886&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40D_eecd--AdjToCompAmt_hecd--AdjToCompAxis__custom--ChangeInFairValueOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsMember_zWh8lRkfNPV3" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="text-align: justify"&gt;Plus: Change in Fair Value of Outstanding and Unvested Option Awards and Stock Awards Granted
    in Prior Fiscal Years&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;0&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;37,406&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;(35,262&lt;/td&gt;&lt;td style="text-align: justify"&gt;)&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_404_eecd--AdjToCompAmt_hecd--AdjToCompAxis__custom--FairValueAtVestingOfOptionAwardsAndStockAwardsGrantedInFiscalYearThatVestedDuringFiscalYearMember_zO92Vm5FeK7j" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="text-align: justify"&gt;Plus: Fair Value at Vesting of Option Awards and Stock Awards Granted in Fiscal Year That Vested
    During Fiscal Year&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;38,115&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;0&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;0&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40F_eecd--AdjToCompAmt_hecd--AdjToCompAxis__custom--ChangeInFairValueAsOfVestingDateOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsForWhichApplicableVestingConditionsWereSatisfiedDuringFiscalYearMember_zD8Di9Vq7wCc" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="text-align: justify"&gt;Plus: Change in Fair Value as of Vesting Date of Option Awards and Stock Awards Granted in Prior
    Fiscal Years For Which Applicable Vesting Conditions Were Satisfied During Fiscal Year&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;(10,049&lt;/td&gt;&lt;td style="text-align: justify"&gt;)&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;12,392&lt;/td&gt;&lt;td style="text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: justify"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;(50,540&lt;/td&gt;&lt;td style="text-align: justify"&gt;)&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40B_eecd--AdjToCompAmt_hecd--AdjToCompAxis__custom--FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember_zxjsv5Jo25E3" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="text-align: left; padding-bottom: 1pt"&gt;(Minus): Fair Value as of Prior Fiscal Year-End of Option Awards and Stock
    Awards Granted in Prior Fiscal Years That Failed to Meet Applicable Vesting Conditions During Fiscal Year&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;0&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;0&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;0&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr id="xdx_40B_eecd--AdjToCompAmt_hecd--AdjToCompAxis__custom--FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember_zjNkJj75UDyf" style="display: none; vertical-align: bottom; background-color: White"&gt;
    &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Adjustment to Compensation Amount&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;0&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;0&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;0&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr id="xdx_40C_eecd--NonPeoNeoAvgCompActuallyPaidAmt_zSQ8dUpTohCi" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="font-weight: bold; text-align: justify"&gt;Compensation Actually Paid&lt;/td&gt;&lt;td style="font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td style="font-weight: bold; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="font-weight: bold; text-align: right"&gt;409,019&lt;/td&gt;&lt;td style="font-weight: bold; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td style="font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td style="font-weight: bold; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="font-weight: bold; text-align: right"&gt;688,442&lt;/td&gt;&lt;td style="font-weight: bold; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;td style="font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td style="font-weight: bold; text-align: justify"&gt;$&lt;/td&gt;&lt;td style="font-weight: bold; text-align: right"&gt;513,490&lt;/td&gt;&lt;td style="font-weight: bold; text-align: justify"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

</ecd:AdjToNonPeoNeoCompFnTextBlock>
    <ecd:NonPeoNeoAvgTotalCompAmt
      contextRef="From2022-01-012022-12-31_ecd_NonPeoNeoMember"
      decimals="0"
      id="Fact000080"
      unitRef="USD">420553</ecd:NonPeoNeoAvgTotalCompAmt>
    <ecd:NonPeoNeoAvgTotalCompAmt
      contextRef="From2023-01-012023-12-31_ecd_NonPeoNeoMember"
      decimals="0"
      id="Fact000081"
      unitRef="USD">626135</ecd:NonPeoNeoAvgTotalCompAmt>
    <ecd:NonPeoNeoAvgTotalCompAmt
      contextRef="From2024-01-012024-12-31_ecd_NonPeoNeoMember"
      decimals="0"
      id="Fact000082"
      unitRef="USD">624083</ecd:NonPeoNeoAvgTotalCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2022-01-012022-12-31_ecd_NonPeoNeoMember_custom_GrantDateFairValueOfOptionAwardsAndStockAwardsGrantedInFiscalYearMember"
      decimals="0"
      id="Fact000084"
      unitRef="USD">-87981</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2023-01-012023-12-31_ecd_NonPeoNeoMember_custom_GrantDateFairValueOfOptionAwardsAndStockAwardsGrantedInFiscalYearMember"
      decimals="0"
      id="Fact000085"
      unitRef="USD">-78760</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2024-01-012024-12-31_ecd_NonPeoNeoMember_custom_GrantDateFairValueOfOptionAwardsAndStockAwardsGrantedInFiscalYearMember"
      decimals="0"
      id="Fact000086"
      unitRef="USD">-44676</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2022-01-012022-12-31_ecd_NonPeoNeoMember_custom_FairValueAtFiscalYearEndOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInFiscalYearMember"
      decimals="0"
      id="Fact000088"
      unitRef="USD">48383</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2023-01-012023-12-31_ecd_NonPeoNeoMember_custom_FairValueAtFiscalYearEndOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInFiscalYearMember"
      decimals="0"
      id="Fact000089"
      unitRef="USD">91269</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2024-01-012024-12-31_ecd_NonPeoNeoMember_custom_FairValueAtFiscalYearEndOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInFiscalYearMember"
      decimals="0"
      id="Fact000090"
      unitRef="USD">19886</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2022-01-012022-12-31_ecd_NonPeoNeoMember_custom_ChangeInFairValueOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsMember"
      decimals="0"
      id="Fact000092"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2023-01-012023-12-31_ecd_NonPeoNeoMember_custom_ChangeInFairValueOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsMember"
      decimals="0"
      id="Fact000093"
      unitRef="USD">37406</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2024-01-012024-12-31_ecd_NonPeoNeoMember_custom_ChangeInFairValueOfOutstandingAndUnvestedOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsMember"
      decimals="0"
      id="Fact000094"
      unitRef="USD">-35262</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2022-01-012022-12-31_ecd_NonPeoNeoMember_custom_FairValueAtVestingOfOptionAwardsAndStockAwardsGrantedInFiscalYearThatVestedDuringFiscalYearMember"
      decimals="0"
      id="Fact000096"
      unitRef="USD">38115</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2023-01-012023-12-31_ecd_NonPeoNeoMember_custom_FairValueAtVestingOfOptionAwardsAndStockAwardsGrantedInFiscalYearThatVestedDuringFiscalYearMember"
      decimals="0"
      id="Fact000097"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2024-01-012024-12-31_ecd_NonPeoNeoMember_custom_FairValueAtVestingOfOptionAwardsAndStockAwardsGrantedInFiscalYearThatVestedDuringFiscalYearMember"
      decimals="0"
      id="Fact000098"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2022-01-012022-12-31_ecd_NonPeoNeoMember_custom_ChangeInFairValueAsOfVestingDateOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsForWhichApplicableVestingConditionsWereSatisfiedDuringFiscalYearMember"
      decimals="0"
      id="Fact000100"
      unitRef="USD">-10049</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2023-01-012023-12-31_ecd_NonPeoNeoMember_custom_ChangeInFairValueAsOfVestingDateOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsForWhichApplicableVestingConditionsWereSatisfiedDuringFiscalYearMember"
      decimals="0"
      id="Fact000101"
      unitRef="USD">12392</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2024-01-012024-12-31_ecd_NonPeoNeoMember_custom_ChangeInFairValueAsOfVestingDateOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsForWhichApplicableVestingConditionsWereSatisfiedDuringFiscalYearMember"
      decimals="0"
      id="Fact000102"
      unitRef="USD">-50540</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2022-01-012022-12-31_ecd_NonPeoNeoMember_custom_FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember"
      decimals="0"
      id="Fact000104"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2023-01-012023-12-31_ecd_NonPeoNeoMember_custom_FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember"
      decimals="0"
      id="Fact000105"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2024-01-012024-12-31_ecd_NonPeoNeoMember_custom_FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember"
      decimals="0"
      id="Fact000106"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2022-01-012022-12-31_ecd_NonPeoNeoMember_custom_FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember"
      decimals="0"
      id="Fact000108"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2023-01-012023-12-31_ecd_NonPeoNeoMember_custom_FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember"
      decimals="0"
      id="Fact000109"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt
      contextRef="From2024-01-012024-12-31_ecd_NonPeoNeoMember_custom_FairValuesOfPriorFiscalYearEndOfOptionAwardsAndStockAwardsGrantedInPriorFiscalYearsThatFailedToMeetApplicableVestingConditionsDuringFiscalYearMember"
      decimals="0"
      id="Fact000110"
      unitRef="USD">0</ecd:AdjToCompAmt>
    <ecd:NonPeoNeoAvgCompActuallyPaidAmt
      contextRef="From2022-01-012022-12-31_ecd_NonPeoNeoMember"
      decimals="0"
      id="Fact000112"
      unitRef="USD">409019</ecd:NonPeoNeoAvgCompActuallyPaidAmt>
    <ecd:NonPeoNeoAvgCompActuallyPaidAmt
      contextRef="From2023-01-012023-12-31_ecd_NonPeoNeoMember"
      decimals="0"
      id="Fact000113"
      unitRef="USD">688442</ecd:NonPeoNeoAvgCompActuallyPaidAmt>
    <ecd:NonPeoNeoAvgCompActuallyPaidAmt
      contextRef="From2024-01-012024-12-31_ecd_NonPeoNeoMember"
      decimals="0"
      id="Fact000114"
      unitRef="USD">513490</ecd:NonPeoNeoAvgCompActuallyPaidAmt>
    <ecd:CompActuallyPaidVsTotalShareholderRtnTextBlock contextRef="From2024-01-01to2024-12-31" id="Fact000116">&lt;p id="xdx_892_eecd--CompActuallyPaidVsTotalShareholderRtnTextBlock_dU_zKBM8YzztKd4" style="font: 10pt Times New Roman, Times, Serif; margin: 0; display: none; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Relationship
between CAP and TSR&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
graph below reflects the relationship between the PEO and Average Non-PEO NEO CAP and the Company&#x2019;s cumulative indexed Total Shareholder
Return (&#x201c;TSR&#x201d;) (assuming an initial fixed investment of $100) for the fiscal years ended December 31, 2022, 2023 and 2024:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0; margin-bottom: 0; text-align: center"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;img alt="" src="formdef14a_004.jpg" style="width: 28px; height: 30px"/&gt;&lt;/span&gt;&lt;/p&gt;

</ecd:CompActuallyPaidVsTotalShareholderRtnTextBlock>
    <ecd:CompActuallyPaidVsNetIncomeTextBlock contextRef="From2024-01-01to2024-12-31" id="Fact000118">&lt;p id="xdx_891_eecd--CompActuallyPaidVsNetIncomeTextBlock_dU_zrGuaEIDN0i" style="font: 10pt Times New Roman, Times, Serif; margin: 0; display: none; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Relationship
between CAP and net income (loss)&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
graph below reflects the relationship between the PEO and Average Non-PEO NEO CAP and the Company&#x2019;s net income (loss) for the fiscal
years ended December 31, 2022, 2023 and 2024:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; text-align: center; margin-top: 0; margin-bottom: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;img alt="" src="formdef14a_005.jpg"/&gt;&lt;/span&gt;&lt;/p&gt;

</ecd:CompActuallyPaidVsNetIncomeTextBlock>
    <link:footnoteLink
      xlink:role="http://www.xbrl.org/2003/role/link"
      xlink:type="extended">
        <link:loc
          xlink:href="#Fact000015"
          xlink:label="Fact000015"
          xlink:type="locator"/>
        <link:footnote id="Footnote000033" xlink:label="Footnote000033" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">The
    PEO in all reporting years is Hao (Peter) Liu. The non-PEO NEOs in the 2024 and 2023 reporting years are Clay Crolius and Charles
    Becher. The non-PEO NEOs in the 2022 reporting year are Clay Crolius, Charles Becher and Robert Tirva.</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000015"
          xlink:to="Footnote000033"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact000016"
          xlink:label="Fact000016"
          xlink:type="locator"/>
        <link:footnote id="Footnote000034" xlink:label="Footnote000034" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Amounts
    reflect Summary Compensation Table (&#x201c;SCT&#x201d;) Total Pay for our PEO and non-PEO NEOs for each corresponding year.</link:footnote>
        <link:footnote id="Footnote000035" xlink:label="Footnote000035" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">The
    Compensation Actually Paid to our PEO and non-PEO NEOs reflects the following adjustments required by applicable SEC rules from total
    compensation reported in the SCT:</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000016"
          xlink:to="Footnote000035"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000016"
          xlink:to="Footnote000033"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000016"
          xlink:to="Footnote000034"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact000017"
          xlink:label="Fact000017"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000017"
          xlink:to="Footnote000033"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact000018"
          xlink:label="Fact000018"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000018"
          xlink:to="Footnote000035"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000018"
          xlink:to="Footnote000033"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000018"
          xlink:to="Footnote000034"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact000019"
          xlink:label="Fact000019"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000019"
          xlink:to="Footnote000033"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact000020"
          xlink:label="Fact000020"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000020"
          xlink:to="Footnote000033"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact000021"
          xlink:label="Fact000021"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000021"
          xlink:to="Footnote000033"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact000022"
          xlink:label="Fact000022"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000022"
          xlink:to="Footnote000035"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000022"
          xlink:to="Footnote000033"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000022"
          xlink:to="Footnote000034"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact000023"
          xlink:label="Fact000023"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000023"
          xlink:to="Footnote000033"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact000024"
          xlink:label="Fact000024"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000024"
          xlink:to="Footnote000035"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000024"
          xlink:to="Footnote000033"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000024"
          xlink:to="Footnote000034"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact000025"
          xlink:label="Fact000025"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000025"
          xlink:to="Footnote000033"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact000026"
          xlink:label="Fact000026"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000026"
          xlink:to="Footnote000033"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact000027"
          xlink:label="Fact000027"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000027"
          xlink:to="Footnote000033"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact000028"
          xlink:label="Fact000028"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000028"
          xlink:to="Footnote000035"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000028"
          xlink:to="Footnote000033"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000028"
          xlink:to="Footnote000034"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact000029"
          xlink:label="Fact000029"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000029"
          xlink:to="Footnote000033"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact000030"
          xlink:label="Fact000030"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000030"
          xlink:to="Footnote000035"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000030"
          xlink:to="Footnote000033"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000030"
          xlink:to="Footnote000034"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact000031"
          xlink:label="Fact000031"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000031"
          xlink:to="Footnote000033"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact000032"
          xlink:label="Fact000032"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000032"
          xlink:to="Footnote000033"
          xlink:type="arc"/>
    </link:footnoteLink>
</xbrl>
