<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:acmr="http://acmrcsh.com/20211231"
  xmlns:country="http://xbrl.sec.gov/country/2021"
  xmlns:currency="http://xbrl.sec.gov/currency/2021"
  xmlns:dei="http://xbrl.sec.gov/dei/2021q4"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2021-01-31"
  xmlns:us-gaap="http://fasb.org/us-gaap/2021-01-31"
  xmlns:utr="http://www.xbrl.org/2009/utr"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="acmr-20211231.xsd" xlink:type="simple"/>
    <context id="c20210101to20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
        </entity>
        <period>
            <instant>2021-06-30</instant>
        </period>
    </context>
    <context id="c20220223_StatementClassOfStockAxis_CommonClassBMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-02-23</instant>
        </period>
    </context>
    <context id="c20220223_StatementClassOfStockAxis_CommonClassAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-02-23</instant>
        </period>
    </context>
    <context id="c20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_StatementClassOfStockAxis_CommonClassAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_StatementClassOfStockAxis_CommonClassBMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_StatementClassOfStockAxis_CommonClassBMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_StatementClassOfStockAxis_CommonClassAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20200101to20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20181231_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="c20181231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="c20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="c20181231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="c20181231_StatementEquityComponentsAxis_NoncontrollingInterestMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="c20181231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="c20181231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="c20190101to20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_StatementEquityComponentsAxis_NoncontrollingInterestMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_StatementEquityComponentsAxis_NoncontrollingInterestMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_StatementEquityComponentsAxis_NoncontrollingInterestMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20201231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="c20191231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="c20191231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="c20201231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20191231_StatementEquityComponentsAxis_NoncontrollingInterestMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="c20201231_StatementEquityComponentsAxis_NoncontrollingInterestMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="c20201231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_StatementEquityComponentsAxis_NoncontrollingInterestMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20191231_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="c20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20191231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="c20211231_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20211231_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20170831_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-08-31</instant>
        </period>
    </context>
    <context id="c20171108_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-11-08</instant>
        </period>
    </context>
    <context id="c20211231_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ShengweiResearchShanghaiIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20190101to20191231_ConsolidatedEntitiesAxis_CleanChipTechnologiesLimitedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:CleanChipTechnologiesLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20170913to20170913_StatementClassOfStockAxis_CommonClassBMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-09-13</startDate>
            <endDate>2017-09-13</endDate>
        </period>
    </context>
    <context id="c20170913to20170913_StatementClassOfStockAxis_CommonClassAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-09-13</startDate>
            <endDate>2017-09-13</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchCAIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchCAIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchWuxiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchWuxiIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchCaymanIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchCaymanIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConsolidatedEntitiesAxis_CleanChipTechnologiesLimitedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:CleanChipTechnologiesLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchKoreaCOLTDMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchKoreaCOLTDMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ShengweiResearchShanghaiIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchSingaporePTELTDMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchSingaporePTELTDMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20201231_ConsolidatedEntitiesAxis_CleanChipTechnologiesLimitedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:CleanChipTechnologiesLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_ConsolidatedEntitiesAxis_CleanChipTechnologiesLimitedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:CleanChipTechnologiesLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_ConsolidatedEntitiesAxis_ACMResearchCaymanIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchCaymanIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_ConsolidatedEntitiesAxis_ACMResearchCAIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchCAIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ShengweiResearchShanghaiIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_ConsolidatedEntitiesAxis_ACMResearchKoreaCOLTDMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchKoreaCOLTDMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_ConsolidatedEntitiesAxis_ACMResearchWuxiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchWuxiIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_ConsolidatedEntitiesAxis_ACMResearchWuxiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchWuxiIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_ConsolidatedEntitiesAxis_ACMResearchCaymanIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchCaymanIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_ConsolidatedEntitiesAxis_ACMResearchKoreaCOLTDMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchKoreaCOLTDMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_ConsolidatedEntitiesAxis_ACMResearchCAIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchCAIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_ConsolidatedEntitiesAxis_ACMResearchSingaporePTELTDMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchSingaporePTELTDMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211101to20211130_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_SubsidiarySaleOfStockAxis_IPOMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">us-gaap:IPOMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-11-01</startDate>
            <endDate>2021-11-30</endDate>
        </period>
    </context>
    <context id="c20211130_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_SubsidiarySaleOfStockAxis_IPOMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">us-gaap:IPOMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-11-30</instant>
        </period>
    </context>
    <context id="c20210101to20211231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndFixturesMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_PropertyPlantAndEquipmentByTypeAxis_ComputerAndOfficeEquipmentMember_RangeAxis_MaximumMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">acmr:ComputerAndOfficeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember_RangeAxis_MinimumMember_StatementGeographicalAxis_CN">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_PropertyPlantAndEquipmentByTypeAxis_ElectronicEquipmentMember_RangeAxis_MaximumMember_StatementGeographicalAxis_CN">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">acmr:ElectronicEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndFixturesMember_StatementGeographicalAxis_CN">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_PropertyPlantAndEquipmentByTypeAxis_ManufacturingEquipmentMember_StatementGeographicalAxis_CN">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">acmr:ManufacturingEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_PropertyPlantAndEquipmentByTypeAxis_TransportationEquipmentMember_RangeAxis_MaximumMember_StatementGeographicalAxis_CN">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:TransportationEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_PropertyPlantAndEquipmentByTypeAxis_TransportationEquipmentMember_RangeAxis_MinimumMember_StatementGeographicalAxis_CN">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:TransportationEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_PropertyPlantAndEquipmentByTypeAxis_ComputerAndOfficeEquipmentMember_RangeAxis_MinimumMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">acmr:ComputerAndOfficeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_PropertyPlantAndEquipmentByTypeAxis_ElectronicEquipmentMember_RangeAxis_MinimumMember_StatementGeographicalAxis_CN">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">acmr:ElectronicEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_FiniteLivedIntangibleAssetsByMajorClassAxis_ComputerSoftwareIntangibleAssetMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:ComputerSoftwareIntangibleAssetMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_FiniteLivedIntangibleAssetsByMajorClassAxis_ComputerSoftwareIntangibleAssetMember_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:ComputerSoftwareIntangibleAssetMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_ProductOrServiceAxis_ShippingAndHandlingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ShippingAndHandlingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_ProductOrServiceAxis_ShippingAndHandlingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ShippingAndHandlingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_ShippingAndHandlingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ShippingAndHandlingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_CustomerBMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">acmr:CustomerBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_CustomerCMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">acmr:CustomerCMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_CustomerAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">acmr:CustomerAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_CustomerCMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">acmr:CustomerCMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_CustomerBMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">acmr:CustomerBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_CustomerMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">acmr:CustomerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_CustomerAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">acmr:CustomerAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_CustomerMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">acmr:CustomerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20191231_CurrencyAxis_KRW">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:KRW</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="c20211231_CurrencyAxis_KRW">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:KRW</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20191231_CurrencyAxis_CNY">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CNY</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="c20201231_CurrencyAxis_CNY">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CNY</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_CurrencyAxis_KRW">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:KRW</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_CurrencyAxis_CNY">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CNY</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20190101to20191231_CurrencyAxis_CNY">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CNY</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_CurrencyAxis_KRW">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:KRW</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_CurrencyAxis_CNY">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CNY</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_CurrencyAxis_KRW">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:KRW</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_CurrencyAxis_KRW">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:KRW</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_CurrencyAxis_CNY">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CNY</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_StatementGeographicalAxis_OherRegionsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">acmr:OherRegionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_ProductOrServiceAxis_AdvancedPackagingExcludeECPServicesSparesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">acmr:AdvancedPackagingExcludeECPServicesSparesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_ProductOrServiceAxis_WetCleaningAndOtherFrontEndProcessingToolsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">acmr:WetCleaningAndOtherFrontEndProcessingToolsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_ProductOrServiceAxis_ECPFrontEndAndPackagingFurnaceAndOtherTechnologiesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">acmr:ECPFrontEndAndPackagingFurnaceAndOtherTechnologiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_ProductOrServiceAxis_ECPFrontEndAndPackagingFurnaceAndOtherTechnologiesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">acmr:ECPFrontEndAndPackagingFurnaceAndOtherTechnologiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_TotalSingleWaferAndSemiCriticalCleaningEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">acmr:TotalSingleWaferAndSemiCriticalCleaningEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_ECPFrontEndAndPackagingFurnaceAndOtherTechnologiesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">acmr:ECPFrontEndAndPackagingFurnaceAndOtherTechnologiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_ProductOrServiceAxis_AdvancedPackagingExcludeECPServicesSparesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">acmr:AdvancedPackagingExcludeECPServicesSparesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_StatementGeographicalAxis_OherRegionsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">acmr:OherRegionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_StatementGeographicalAxis_CN">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_ProductOrServiceAxis_AdvancedPackagingOtherProcessingServicesAndSparesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">acmr:AdvancedPackagingOtherProcessingServicesAndSparesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_WetCleaningAndOtherFrontEndProcessingToolsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">acmr:WetCleaningAndOtherFrontEndProcessingToolsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_AdvancedPackagingOtherProcessingServicesAndSparesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">acmr:AdvancedPackagingOtherProcessingServicesAndSparesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_StatementGeographicalAxis_CN">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_StatementGeographicalAxis_CN">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_StatementGeographicalAxis_OherRegionsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">acmr:OherRegionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_AdvancedPackagingExcludeECPServicesSparesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">acmr:AdvancedPackagingExcludeECPServicesSparesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_ProductOrServiceAxis_AdvancedPackagingOtherProcessingServicesAndSparesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">acmr:AdvancedPackagingOtherProcessingServicesAndSparesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_ProductOrServiceAxis_TotalSingleWaferAndSemiCriticalCleaningEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">acmr:TotalSingleWaferAndSemiCriticalCleaningEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_ProductOrServiceAxis_TotalSingleWaferAndSemiCriticalCleaningEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">acmr:TotalSingleWaferAndSemiCriticalCleaningEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_ProductOrServiceAxis_WetCleaningAndOtherFrontEndProcessingToolsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">acmr:WetCleaningAndOtherFrontEndProcessingToolsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20201231_PublicUtilitiesInventoryAxis_FirstToolsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PublicUtilitiesInventoryAxis">acmr:FirstToolsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_PublicUtilitiesInventoryAxis_ContractualObligationMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PublicUtilitiesInventoryAxis">acmr:ContractualObligationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_PublicUtilitiesInventoryAxis_ContractualObligationMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PublicUtilitiesInventoryAxis">acmr:ContractualObligationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_PublicUtilitiesInventoryAxis_FirstToolsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PublicUtilitiesInventoryAxis">acmr:FirstToolsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_PropertyPlantAndEquipmentByTypeAxis_EquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_PropertyPlantAndEquipmentByTypeAxis_OfficeEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:OfficeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_PropertyPlantAndEquipmentByTypeAxis_TransportationEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:TransportationEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_PropertyPlantAndEquipmentByTypeAxis_OfficeEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:OfficeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_PropertyPlantAndEquipmentByTypeAxis_TransportationEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:TransportationEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_PropertyPlantAndEquipmentByTypeAxis_EquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20200731_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ShengweiResearchShanghaiIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-07-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_LineOfCredit25Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit25Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_LineOfCredit12Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit12Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_LineOfCredit25Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit25Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_LineOfCredit11Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit11Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_LineOfCredit19Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit19Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_LineOfCredit9Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit9Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_LineOfCredit11Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit11Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_LineOfCredit16Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit16Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_LineOfCredit16Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit16Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_LineOfCredit28Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit28Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_LineOfCredit10Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit10Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_LineOfCredit17Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit17Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_LineOfCredit29Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit29Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_LineOfCredit15Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit15Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_LineOfCredit13Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit13Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_LineOfCredit14Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit14Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_LineOfCredit8Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit8Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_LineOfCredit8Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit8Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_LineOfCredit13Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit13Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_LineOfCredit12Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit12Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_LineOfCredit29Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit29Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_LineOfCredit19Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit19Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_LineOfCredit9Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit9Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_LineOfCredit18Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit18Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_LineOfCredit17Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit17Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_LineOfCredit20Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit20Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_LineOfCredit20Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit20Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_LineOfCredit15Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit15Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_LineOfCredit14Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit14Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_LineOfCredit28Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit28Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_LineOfCredit10Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit10Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_LineOfCredit18Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit18Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20210101to20211231_DebtInstrumentAxis_LineOfCredit19Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit19Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_DebtInstrumentAxis_LineOfCredit16Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit16Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_DebtInstrumentAxis_LineOfCredit14Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit14Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_DebtInstrumentAxis_LineOfCredit10Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit10Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_DebtInstrumentAxis_LineOfCredit8Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit8Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_DebtInstrumentAxis_LineOfCredit9Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit9Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_DebtInstrumentAxis_LineOfCredit18Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit18Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_DebtInstrumentAxis_LineOfCredit11Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit11Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_DebtInstrumentAxis_LineOfCredit12Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit12Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_DebtInstrumentAxis_LineOfCredit28Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit28Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_DebtInstrumentAxis_LineOfCredit25Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit25Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_DebtInstrumentAxis_LineOfCredit17Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit17Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_DebtInstrumentAxis_LineOfCredit13Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit13Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_DebtInstrumentAxis_LineOfCredit20Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit20Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_DebtInstrumentAxis_LineOfCredit29Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit29Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_DebtInstrumentAxis_LineOfCredit15Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit15Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20211231_LineOfCreditFacilityAxis_ChinaMerchantsBankMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">acmr:ChinaMerchantsBankMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_LineOfCreditFacilityAxis_BankOfChinaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">acmr:BankOfChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_LineOfCreditFacilityAxis_ChinaMerchantsBankMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">acmr:ChinaMerchantsBankMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_LineOfCreditFacilityAxis_BankOfChinaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">acmr:BankOfChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20210101to20211231_LineOfCreditFacilityAxis_BankOfChinaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">acmr:BankOfChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_LineOfCreditFacilityAxis_ChinaMerchantsBankMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">acmr:ChinaMerchantsBankMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_DebtInstrumentAxis_LoanTwoMember_LineOfCreditFacilityAxis_BankOfChinaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LoanTwoMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">acmr:BankOfChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_DebtInstrumentAxis_LoanOneMember_LineOfCreditFacilityAxis_BankOfChinaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LoanOneMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">acmr:BankOfChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_SubsidiesToTahoeSingleBenchCleanCommencedIn2020Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:SubsidiesToTahoeSingleBenchCleanCommencedIn2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_SubsidiesToStressFreePolishingProjectMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:SubsidiesToStressFreePolishingProjectMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_SubsidiesToStressFreePolishingProjectMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:SubsidiesToStressFreePolishingProjectMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_SubsidiesToSWLingangRDDevelopmentIn2021Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:SubsidiesToSWLingangRDDevelopmentIn2021Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_SubsidiesToPolytetrafluoroethyleneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:SubsidiesToPolytetrafluoroethyleneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_SubsidiesToPolytetrafluoroethyleneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:SubsidiesToPolytetrafluoroethyleneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_SubsidiesToSWLingangRDDevelopmentIn2021Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:SubsidiesToSWLingangRDDevelopmentIn2021Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_SubsidiesToTahoeSingleBenchCleanCommencedIn2020Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:SubsidiesToTahoeSingleBenchCleanCommencedIn2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_OtherMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:OtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_OtherMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:OtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_SubsidiesToElectroCopperPlatingProjectMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:SubsidiesToElectroCopperPlatingProjectMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_SubsidiesToOtherCleaningToolsCommencedIn2020Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:SubsidiesToOtherCleaningToolsCommencedIn2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_DebtInstrumentAxis_SubsidiesToElectroCopperPlatingProjectMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:SubsidiesToElectroCopperPlatingProjectMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_DebtInstrumentAxis_SubsidiesToOtherCleaningToolsCommencedIn2020Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:SubsidiesToOtherCleaningToolsCommencedIn2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20190627_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengyiSemiconductorTechnologyCompanyLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-06-27</instant>
        </period>
    </context>
    <context id="c20211029_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengyiSemiconductorTechnologyCompanyLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-10-29</instant>
        </period>
    </context>
    <context id="c20170911_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:NinebellCompanyLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-09-11</instant>
        </period>
    </context>
    <context id="c20170911_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember_StatementClassOfStockAxis_CommonClassAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:NinebellCompanyLimitedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-09-11</instant>
        </period>
    </context>
    <context id="c20190905to20190905_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengyiSemiconductorTechnologyCompanyLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-09-05</startDate>
            <endDate>2019-09-05</endDate>
        </period>
    </context>
    <context id="c20190930_RelatedPartyTransactionsByRelatedPartyAxis_HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-09-30</instant>
        </period>
    </context>
    <context id="c20201231_InvestmentTypeAxis_InvestmentExcludingOtherMember_RelatedPartyTransactionsByRelatedPartyAxis_HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">acmr:InvestmentExcludingOtherMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_InvestmentTypeAxis_InvestmentExcludingOtherMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">acmr:InvestmentExcludingOtherMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengyiSemiconductorTechnologyCompanyLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_InvestmentTypeAxis_OtherLongTermInvestmentsMember_RelatedPartyTransactionsByRelatedPartyAxis_WaferworksCompanyLimitedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:WaferworksCompanyLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_InvestmentTypeAxis_InvestmentExcludingOtherMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">acmr:InvestmentExcludingOtherMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengyiSemiconductorTechnologyCompanyLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_InvestmentTypeAxis_InvestmentExcludingOtherMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">acmr:InvestmentExcludingOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_InvestmentTypeAxis_InvestmentExcludingOtherMember_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">acmr:InvestmentExcludingOtherMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:NinebellCompanyLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_InvestmentTypeAxis_InvestmentExcludingOtherMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">acmr:InvestmentExcludingOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_InvestmentTypeAxis_OtherLongTermInvestmentsMember_RelatedPartyTransactionsByRelatedPartyAxis_WaferworksCompanyLimitedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:WaferworksCompanyLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_InvestmentTypeAxis_InvestmentExcludingOtherMember_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">acmr:InvestmentExcludingOtherMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:NinebellCompanyLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_InvestmentTypeAxis_InvestmentExcludingOtherMember_RelatedPartyTransactionsByRelatedPartyAxis_HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">acmr:InvestmentExcludingOtherMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20161231_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2016-12-31</instant>
        </period>
    </context>
    <context id="c20200729to20200729_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember_StatementClassOfStockAxis_CommonClassAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-07-29</startDate>
            <endDate>2020-07-29</endDate>
        </period>
    </context>
    <context id="c20170301to20170331_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-03-01</startDate>
            <endDate>2017-03-31</endDate>
        </period>
    </context>
    <context id="c20210609to20210609_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember_StatementClassOfStockAxis_CommonClassAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-06-09</startDate>
            <endDate>2021-06-09</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20180301to20180331_LongtermDebtTypeAxis_SeniorNotesMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SeniorNotesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-03-01</startDate>
            <endDate>2018-03-31</endDate>
        </period>
    </context>
    <context id="c20180331_LongtermDebtTypeAxis_SeniorNotesMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SeniorNotesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-03-31</instant>
        </period>
    </context>
    <context id="c20180331_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_LongtermDebtTypeAxis_IntercompanyNoteMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">acmr:IntercompanyNoteMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-03-31</instant>
        </period>
    </context>
    <context id="c20210101to20211231_LongtermDebtTypeAxis_SeniorNotesMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SeniorNotesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_LongtermDebtTypeAxis_IntercompanyNoteMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">acmr:IntercompanyNoteMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20190801to20190831_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-08-01</startDate>
            <endDate>2019-08-31</endDate>
        </period>
    </context>
    <context id="c20200401to20200430_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-04-01</startDate>
            <endDate>2020-04-30</endDate>
        </period>
    </context>
    <context id="c20190801to20190831_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-08-01</startDate>
            <endDate>2019-08-31</endDate>
        </period>
    </context>
    <context id="c20200430_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-04-30</instant>
        </period>
    </context>
    <context id="c20190801to20190831_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-08-01</startDate>
            <endDate>2019-08-31</endDate>
        </period>
    </context>
    <context id="c20200401to20200430_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-04-01</startDate>
            <endDate>2020-04-30</endDate>
        </period>
    </context>
    <context id="c20190831_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-08-31</instant>
        </period>
    </context>
    <context id="c20200430_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_LongtermDebtTypeAxis_SeniorNotesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SeniorNotesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-04-30</instant>
        </period>
    </context>
    <context id="c20200430_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-04-30</instant>
        </period>
    </context>
    <context id="c20200729_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-07-29</instant>
        </period>
    </context>
    <context id="c20210101to20211231_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20200430_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_LongtermDebtTypeAxis_IntercompanyNoteMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">acmr:IntercompanyNoteMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-04-30</instant>
        </period>
    </context>
    <context id="c20211231_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20200729_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember_StatementClassOfStockAxis_CommonClassAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-07-29</instant>
        </period>
    </context>
    <context id="c20190831_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-08-31</instant>
        </period>
    </context>
    <context id="c20170331_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-03-31</instant>
        </period>
    </context>
    <context id="c20200729to20200729_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-07-29</startDate>
            <endDate>2020-07-29</endDate>
        </period>
    </context>
    <context id="c20200618_RelatedPartyTransactionsByRelatedPartyAxis_QingdaoFortuneTechXinxingCapitalPartnershipMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:QingdaoFortuneTechXinxingCapitalPartnershipMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-18</instant>
        </period>
    </context>
    <context id="c20211231_RangeAxis_MinimumMember_RelatedPartyTransactionsByRelatedPartyAxis_SemiconductorManufacturingInternationalCorporationMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:SemiconductorManufacturingInternationalCorporationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:NinebellCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:NinebellCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_RelatedPartyTransactionsByRelatedPartyAxis_ShanghaiZhangjiangGroupCoLtdMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShanghaiZhangjiangGroupCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_RelatedPartyTransactionsByRelatedPartyAxis_ShanghaiZhangjiangGroupCoLtdMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShanghaiZhangjiangGroupCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20200101to20201231_RelatedPartyTransactionsByRelatedPartyAxis_ShanghaiZhangjiangGroupCoLtdMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShanghaiZhangjiangGroupCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:NinebellCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_RelatedPartyTransactionsByRelatedPartyAxis_ShanghaiZhangjiangGroupCoLtdMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShanghaiZhangjiangGroupCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:NinebellCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:NinebellCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_RelatedPartyTransactionsByRelatedPartyAxis_ShanghaiZhangjiangGroupCoLtdMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShanghaiZhangjiangGroupCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_StatementClassOfStockAxis_CommonClassBMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20180330to20180330_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-03-30</startDate>
            <endDate>2018-03-30</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember_StatementClassOfStockAxis_CommonClassAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20190801to20190831_StatementClassOfStockAxis_CommonClassAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-08-01</startDate>
            <endDate>2019-08-31</endDate>
        </period>
    </context>
    <context id="c20190831_StatementClassOfStockAxis_CommonClassAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-08-31</instant>
        </period>
    </context>
    <context id="c20200930">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
        </entity>
        <period>
            <instant>2020-09-30</instant>
        </period>
    </context>
    <context id="c20200101to20201231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_IncomeStatementLocationAxis_SellingAndMarketingExpenseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_IncomeStatementLocationAxis_SellingAndMarketingExpenseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_IncomeStatementLocationAxis_CostOfSalesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_IncomeStatementLocationAxis_ResearchAndDevelopmentExpenseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_IncomeStatementLocationAxis_SellingAndMarketingExpenseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_IncomeStatementLocationAxis_ResearchAndDevelopmentExpenseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_IncomeStatementLocationAxis_CostOfSalesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_IncomeStatementLocationAxis_CostOfSalesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_IncomeStatementLocationAxis_ResearchAndDevelopmentExpenseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">acmr:ServicePeriodBasedApproachMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20191231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">acmr:ServicePeriodBasedApproachMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="c20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_MarketBasedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">acmr:MarketBasedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">acmr:ServicePeriodBasedApproachMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">acmr:ServicePeriodBasedApproachMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20191231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">acmr:ServicePeriodBasedApproachMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="c20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">acmr:ServicePeriodBasedApproachMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">acmr:ServicePeriodBasedApproachMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">acmr:ServicePeriodBasedApproachMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_MarketBasedMember_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">acmr:MarketBasedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">acmr:ServicePeriodBasedApproachMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">acmr:ServicePeriodBasedApproachMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_MarketBasedMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">acmr:MarketBasedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">acmr:ServicePeriodBasedApproachMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_MarketBasedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">acmr:MarketBasedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">acmr:ServicePeriodBasedApproachMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">acmr:ServicePeriodBasedApproachMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">acmr:ServicePeriodBasedApproachMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">acmr:ServicePeriodBasedApproachMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_MarketBasedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">acmr:MarketBasedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20191231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="c20181231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="c20181231_AwardTypeAxis_EmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="c20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="c20211231_AwardTypeAxis_EmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20191231_AwardTypeAxis_EmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="c20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_AwardTypeAxis_EmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20180101to20181231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="c20180101to20181231_AwardTypeAxis_EmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="c20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20200101to20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_IncomeTaxAuthorityAxis_DomesticCountryMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_IncomeTaxAuthorityAxis_ForeignCountryMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_IncomeTaxAuthorityAxis_DomesticCountryMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_IncomeTaxAuthorityAxis_ForeignCountryMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20201231_IncomeTaxAuthorityAxis_ForeignCountryMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_IncomeTaxAuthorityAxis_DomesticCountryMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_IncomeTaxAuthorityAxis_ForeignCountryMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_IncomeTaxAuthorityAxis_DomesticCountryMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20210101to20211231_IncomeTaxAuthorityAxis_ForeignCountryMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_IncomeTaxAuthorityAxis_ForeignCountryMember_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20200101to20201231_IncomeTaxAuthorityAxis_ForeignCountryMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_IncomeTaxAuthorityAxis_ForeignCountryMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20211231_ConsolidatedEntitiesAxis_ParentCompanyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_ConsolidatedEntitiesAxis_ParentCompanyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20191231_ConsolidatedEntitiesAxis_ParentCompanyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="c20181231_ConsolidatedEntitiesAxis_ParentCompanyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001680062</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:ParentCompanyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <unit id="U001">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="U002">
        <measure>shares</measure>
    </unit>
    <unit id="U003">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="U004">
        <measure>pure</measure>
    </unit>
    <unit id="U005">
        <divide>
            <unitNumerator>
                <measure>iso4217:CNY</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="U006">
        <measure>acmr:Grants</measure>
    </unit>
    <unit id="U007">
        <measure>acmr:Customer</measure>
    </unit>
    <unit id="U008">
        <measure>utr:sqft</measure>
    </unit>
    <unit id="U009">
        <measure>iso4217:CNY</measure>
    </unit>
    <unit id="U010">
        <measure>acmr:Loan</measure>
    </unit>
    <unit id="U011">
        <measure>acmr:Intallment</measure>
    </unit>
    <unit id="U012">
        <measure>acmr:Investor</measure>
    </unit>
    <unit id="U013">
        <measure>acmr:Agreement</measure>
    </unit>
    <unit id="U014">
        <measure>acmr:Segment</measure>
    </unit>
    <dei:AmendmentFlag
      contextRef="c20210101to20211231"
      id="Fact_f3ba75411f7e44a9b810580ed5a39aae">false</dei:AmendmentFlag>
    <dei:CurrentFiscalYearEndDate
      contextRef="c20210101to20211231"
      id="Fact_1396dac738c84d01b01f968a240e9678">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentFiscalYearFocus
      contextRef="c20210101to20211231"
      id="Fact_7c74ca074afa449facd3c2940bf3dcd7">2021</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="c20210101to20211231"
      id="Fact_1940f7913d054fb986584c86cbfc6b38">FY</dei:DocumentFiscalPeriodFocus>
    <dei:EntityCentralIndexKey
      contextRef="c20210101to20211231"
      id="Fact_95c647cd80e846c394a8946bd86e0015">0001680062</dei:EntityCentralIndexKey>
    <us-gaap:StockholdersEquityNoteStockSplitConversionRatio1
      contextRef="c20170913to20170913_StatementClassOfStockAxis_CommonClassBMember"
      decimals="2"
      id="Fact_ef51bf21ed594997b6ee064ee1b3eef1"
      unitRef="U004">0.33</us-gaap:StockholdersEquityNoteStockSplitConversionRatio1>
    <us-gaap:StockholdersEquityNoteStockSplitConversionRatio1
      contextRef="c20170913to20170913_StatementClassOfStockAxis_CommonClassAMember"
      decimals="2"
      id="Fact_a34993ba44944024a0796470363588ab"
      unitRef="U004">0.33</us-gaap:StockholdersEquityNoteStockSplitConversionRatio1>
    <us-gaap:FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1
      contextRef="c20210101to20211231_FiniteLivedIntangibleAssetsByMajorClassAxis_ComputerSoftwareIntangibleAssetMember_RangeAxis_MinimumMember"
      id="Fact_2c89738b26ae455db9bbfa2c1318eee4">P2Y</us-gaap:FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_CustomerCMember"
      id="Fact_f6619c6f20f546edb1069e48d3202f70"
      unitRef="U004"
      xsi:nil="true"/>
    <us-gaap:RedeemableNoncontrollingInterestEquityFairValue
      contextRef="c20200930"
      decimals="-6"
      id="Fact_6b9292f9521044dfb4d484d7d7e2a991"
      unitRef="U001">0</us-gaap:RedeemableNoncontrollingInterestEquityFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      id="Fact_fd14ad3532a2488cbff6bc64ed738e9c">P0Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <dei:AuditorFirmId
      contextRef="c20210101to20211231"
      id="Fact_16f02cd795c6459595f03d819ab358b9">1818</dei:AuditorFirmId>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_LineOfCreditFacilityAxis_ChinaMerchantsBankMember"
      id="Fact_2714802a49934c03a08054f607fc2079">2030-11-30</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_DebtInstrumentAxis_LoanOneMember_LineOfCreditFacilityAxis_BankOfChinaMember"
      id="Fact_73bd7774559c47d2a94efb32c171d52e">2024-06-30</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_DebtInstrumentAxis_LoanTwoMember_LineOfCreditFacilityAxis_BankOfChinaMember"
      id="Fact_e0e456d02cd44283b391cb898e4d2fd6">2024-09-30</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:OperatingLossCarryforwardsExpirationDate
      contextRef="c20210101to20211231_IncomeTaxAuthorityAxis_DomesticCountryMember"
      id="Fact_676e4017debc43328069cc948c0d1077">2022-12-31</us-gaap:OperatingLossCarryforwardsExpirationDate>
    <us-gaap:OperatingLossCarryforwardsExpirationDate
      contextRef="c20210101to20211231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember"
      id="Fact_9d55fe7af4ad42eebcfbe96c394d0445">2032-12-31</us-gaap:OperatingLossCarryforwardsExpirationDate>
    <us-gaap:OperatingLossCarryforwardsExpirationDate
      contextRef="c20210101to20211231_IncomeTaxAuthorityAxis_ForeignCountryMember"
      id="Fact_944fed3a7bea4f08adeee9c680884bcd">2022-12-31</us-gaap:OperatingLossCarryforwardsExpirationDate>
    <us-gaap:TaxCreditCarryforwardExpirationDate
      contextRef="c20210101to20211231_IncomeTaxAuthorityAxis_DomesticCountryMember"
      id="Fact_a8703bbe4e2b407f8d606b1f2cca792c">2022-12-31</us-gaap:TaxCreditCarryforwardExpirationDate>
    <dei:DocumentType
      contextRef="c20210101to20211231"
      id="Fact_ea3ed21b777347e8955673818e8af47a">10-K</dei:DocumentType>
    <dei:DocumentAnnualReport
      contextRef="c20210101to20211231"
      id="Fact_89805a9c81594ed2b74fcc461c630bcf">true</dei:DocumentAnnualReport>
    <dei:DocumentPeriodEndDate
      contextRef="c20210101to20211231"
      id="Fact_190312b8d73043ba80ec31717047b7d9">2021-12-31</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport
      contextRef="c20210101to20211231"
      id="Fact_8f6a53bf49db4091a9d65216e11d7364">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="c20210101to20211231"
      id="Fact_905b040cdc84408eb48bfe8c1d4fbaea">001-38273</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="c20210101to20211231"
      id="Fact_a7144d529314499aa23153e8c4dfc2cc">ACM Research, Inc.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="c20210101to20211231"
      id="Fact_04d9556b5aef4201b8ce73a39b549a5f">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="c20210101to20211231"
      id="Fact_34098591df1b49b8851f7e76f483515e">94-3290283</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="c20210101to20211231"
      id="Fact_35a2080acc5342d5839605d0c7de86a9">42307 Osgood Road, Suite I</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown
      contextRef="c20210101to20211231"
      id="Fact_e4536f03ade64131a7e3dd30071604b1">Fremont</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="c20210101to20211231"
      id="Fact_1af1406102194fe4aa31500cb7de1b6d">CA</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="c20210101to20211231"
      id="Fact_ad865f314b8f473f826e3fe2218ccf0a">94539</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="c20210101to20211231"
      id="Fact_9406e936fcf64042bc431083433746e7">510</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="c20210101to20211231"
      id="Fact_f8250333b30943748e5e2f8816e5e44f">445-3700</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="c20210101to20211231"
      id="Fact_3850296f6d8949869399458c44eb8882">Class A Common Stock, $0.0001 par value</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="c20210101to20211231"
      id="Fact_f0f8e32241864a36877779be37622d6e">ACMR</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="c20210101to20211231"
      id="Fact_6d0fd360e53346148befe4e18757996b">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityWellKnownSeasonedIssuer
      contextRef="c20210101to20211231"
      id="Fact_3aea5bf0a7cf4e8dbe44834dc6902588">No</dei:EntityWellKnownSeasonedIssuer>
    <dei:EntityVoluntaryFilers
      contextRef="c20210101to20211231"
      id="Fact_ef6033f177164c4cb1181c5a86ede381">No</dei:EntityVoluntaryFilers>
    <dei:EntityCurrentReportingStatus
      contextRef="c20210101to20211231"
      id="Fact_9deefbe0f94c4c2fb43d2e565d51fdd0">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="c20210101to20211231"
      id="Fact_41cf0a4c11824452a4738799762cb413">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="c20210101to20211231"
      id="Fact_a279ea190857403bb2eb83956be70611">Large Accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="c20210101to20211231"
      id="Fact_ec0ca8c74d4b46b7a54c66fb4373df84">false</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="c20210101to20211231"
      id="Fact_41dfdd5e141c4d05a3898dad9c6184b4">false</dei:EntityEmergingGrowthCompany>
    <dei:IcfrAuditorAttestationFlag
      contextRef="c20210101to20211231"
      id="Fact_1b7e0154accd49ef9722eae316679f39">true</dei:IcfrAuditorAttestationFlag>
    <dei:EntityShellCompany
      contextRef="c20210101to20211231"
      id="Fact_b861b446f3fe47bfbe203f98ce1139f7">false</dei:EntityShellCompany>
    <dei:EntityPublicFloat
      contextRef="c20210630"
      decimals="-5"
      id="Fact_71932edf371f4fd4a84196a422275d3b"
      unitRef="U001">1980600000</dei:EntityPublicFloat>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="c20220223_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_696df49f04e042b3a6c29daf9f79a054"
      unitRef="U002">17883192</dei:EntityCommonStockSharesOutstanding>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="c20220223_StatementClassOfStockAxis_CommonClassBMember"
      decimals="0"
      id="Fact_5e3dc6f0a0304f3f961bf06fe708d0fd"
      unitRef="U002">1695604</dei:EntityCommonStockSharesOutstanding>
    <dei:AuditorName
      contextRef="c20210101to20211231"
      id="Fact_f3df458e7739456d89f04238acd4cfde">BDO China Shu Lun Pan Certified Public Accountants LLP</dei:AuditorName>
    <dei:AuditorLocation
      contextRef="c20210101to20211231"
      id="Fact_d76c149f46374907b84b461466ab954d">Shenzhen, China</dei:AuditorLocation>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="c20211231"
      decimals="-3"
      id="Fact_2982cd590b3e457d98fc4e3f235e1285"
      unitRef="U001">563067000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="c20201231"
      decimals="-3"
      id="Fact_8798b191559f41faa8de2d8919b81fc7"
      unitRef="U001">71766000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:MarketableSecuritiesCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_4e069febc40c402791401afa683614bb"
      unitRef="U001">29498000</us-gaap:MarketableSecuritiesCurrent>
    <us-gaap:MarketableSecuritiesCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_48e418d556fc49a39599bc46e5fef727"
      unitRef="U001">28239000</us-gaap:MarketableSecuritiesCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_14fb0b82500744218e231cd620fa587c"
      unitRef="U001">0</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_02e53f4e76304d3a97c37bc0938030d1"
      unitRef="U001">0</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_43b8ada8148f401c9f7cb3c750603ef1"
      unitRef="U001">105553000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_9e330223531844fca2e9477db4006751"
      unitRef="U001">56441000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:IncomeTaxesReceivable
      contextRef="c20211231"
      decimals="-3"
      id="Fact_a2ac6b6685344ba796a67f0bc6921e8a"
      unitRef="U001">1082000</us-gaap:IncomeTaxesReceivable>
    <us-gaap:IncomeTaxesReceivable
      contextRef="c20201231"
      decimals="-3"
      id="Fact_4ccc051993f144199f9e803c8960414c"
      unitRef="U001">0</us-gaap:IncomeTaxesReceivable>
    <us-gaap:OtherReceivablesNetCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_87487cb6161c400dbafc719811fea141"
      unitRef="U001">18979000</us-gaap:OtherReceivablesNetCurrent>
    <us-gaap:OtherReceivablesNetCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_54c69dc77c0142b5b89b4d7097925955"
      unitRef="U001">9679000</us-gaap:OtherReceivablesNetCurrent>
    <us-gaap:InventoryNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_319dce523cd14e1eb6534b7c70f814d1"
      unitRef="U001">218116000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="c20201231"
      decimals="-3"
      id="Fact_ba801573f5da4249a39dbf830a151a8e"
      unitRef="U001">88639000</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_2353b43f53df4224bd1d5466650da1a4"
      unitRef="U001">16639000</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_5025552aa0574ed6a91aa4bf62e4e806"
      unitRef="U001">5892000</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:AssetsCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_2bd519948e2f4ac483c2ea632f26464a"
      unitRef="U001">952934000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_b75fe3a64b8e40abacae59d66444b3c4"
      unitRef="U001">260656000</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_b98f2d2abe0f445aa6013dc5dda8e9cb"
      unitRef="U001">14042000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20201231"
      decimals="-3"
      id="Fact_d6cdabc16d274af599c2606b82167fc9"
      unitRef="U001">8192000</us-gaap:PropertyPlantAndEquipmentNet>
    <acmr:LandUseRightNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_b494b96aa86240a190fea24c18da4d29"
      unitRef="U001">9667000</acmr:LandUseRightNet>
    <acmr:LandUseRightNet
      contextRef="c20201231"
      decimals="-3"
      id="Fact_39c11ed19bee457fb9a8de7177e45028"
      unitRef="U001">9646000</acmr:LandUseRightNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="c20211231"
      decimals="-3"
      id="Fact_7ddb92fadb8343c7b422e2db13a5aa17"
      unitRef="U001">4182000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="c20201231"
      decimals="-3"
      id="Fact_8b0d099351ef4963bafc9cbd59940465"
      unitRef="U001">4297000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_225402c6816844ceacf198adfcce8766"
      unitRef="U001">477000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="c20201231"
      decimals="-3"
      id="Fact_6c62c20530b04fa9a2b60e6216e8acee"
      unitRef="U001">554000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_1ba95aa72d6844f9ba528bb3e2bb8a26"
      unitRef="U001">13166000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="c20201231"
      decimals="-3"
      id="Fact_39b6e6856e164b629f993dfe70dce631"
      unitRef="U001">11076000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:Investments
      contextRef="c20211231"
      decimals="-3"
      id="Fact_a99611d5757e46c29187efdfd6c52556"
      unitRef="U001">12694000</us-gaap:Investments>
    <us-gaap:Investments
      contextRef="c20201231"
      decimals="-3"
      id="Fact_75fc56b1df174bf299abe520a1b8cd2b"
      unitRef="U001">6340000</us-gaap:Investments>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_a0f8ab36febb45029ef74b8147400f4f"
      unitRef="U001">45017000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_8e2f48c734bc480baddfd11e8e3f81a1"
      unitRef="U001">40496000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="c20211231"
      decimals="-3"
      id="Fact_a989ebe4b7c848c093fce1902c92134f"
      unitRef="U001">1052179000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="c20201231"
      decimals="-3"
      id="Fact_57471e7e84c14738b236a81c36428d45"
      unitRef="U001">341257000</us-gaap:Assets>
    <us-gaap:ShortTermBorrowings
      contextRef="c20211231"
      decimals="-3"
      id="Fact_5ba7dcc7a7544187a7458ac9803be32f"
      unitRef="U001">9591000</us-gaap:ShortTermBorrowings>
    <us-gaap:ShortTermBorrowings
      contextRef="c20201231"
      decimals="-3"
      id="Fact_815291c1def743008aa5d82ca77051fd"
      unitRef="U001">26147000</us-gaap:ShortTermBorrowings>
    <us-gaap:LongTermDebtCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_8a4493dd66f34908be3c7ebac534c4ad"
      unitRef="U001">2410000</us-gaap:LongTermDebtCurrent>
    <us-gaap:LongTermDebtCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_4aa9b96e71e742ef953a84c76a4dcaa2"
      unitRef="U001">1591000</us-gaap:LongTermDebtCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_9b383404b6ab4904814512097ea4ffc9"
      unitRef="U001">101350000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_d7dc16cb564f482e8e25ab04350b339e"
      unitRef="U001">35603000</us-gaap:AccountsPayableCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_3917255628f64bd9b9b9bd549637b58a"
      unitRef="U001">52824000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_3050a18a004b4197b6cbb54497bcfc38"
      unitRef="U001">17888000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:DeferredIncomeCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_a0a161c7280048269cd821ff9b6b7813"
      unitRef="U001">3180000</us-gaap:DeferredIncomeCurrent>
    <us-gaap:DeferredIncomeCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_0fc2196e017a48e5b38463a7b5ddd582"
      unitRef="U001">1343000</us-gaap:DeferredIncomeCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_fa17f737f2384f62898fedc8d0cdbb7a"
      unitRef="U001">254000</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_f435a5abc84c4d4ba9ad2871a982a5e1"
      unitRef="U001">31000</us-gaap:AccruedIncomeTaxesCurrent>
    <acmr:IncomeTaxesCurrentPayableAndDeferredTaxLiabilities
      contextRef="c20211231"
      decimals="-3"
      id="Fact_ba4430638e234b4e82e894021bdd6812"
      unitRef="U001">2282000</acmr:IncomeTaxesCurrentPayableAndDeferredTaxLiabilities>
    <acmr:IncomeTaxesCurrentPayableAndDeferredTaxLiabilities
      contextRef="c20201231"
      decimals="-3"
      id="Fact_fdec9391d5a44d2c8bec9e665f3eef0a"
      unitRef="U001">83000</acmr:IncomeTaxesCurrentPayableAndDeferredTaxLiabilities>
    <us-gaap:OtherAccountsPayableAndAccruedLiabilities
      contextRef="c20211231"
      decimals="-3"
      id="Fact_93a0e4ace65341a3a2bd2c0939883d8c"
      unitRef="U001">31735000</us-gaap:OtherAccountsPayableAndAccruedLiabilities>
    <us-gaap:OtherAccountsPayableAndAccruedLiabilities
      contextRef="c20201231"
      decimals="-3"
      id="Fact_94f6a66b127343fe815388b735116418"
      unitRef="U001">18805000</us-gaap:OtherAccountsPayableAndAccruedLiabilities>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_64dac7d3a0df421dbc2be3f1066dd857"
      unitRef="U001">2313000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_88044e989e914f6382bcaccd5731fc75"
      unitRef="U001">1417000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_fefe1ff466704d389b843c6587e3f3e8"
      unitRef="U001">205939000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_bbbfba02b82f456aa9fe042da64d49a9"
      unitRef="U001">102908000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_28e5d0186c9c4586b51d407098cc6331"
      unitRef="U001">22957000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_fb5faa6613d54d588d1f3edcc0394de8"
      unitRef="U001">17979000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_d389eceb2bf345e285eb7c2eebc70b04"
      unitRef="U001">1869000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_54f00bc20d8148e7a58a8bb75dfbee2d"
      unitRef="U001">2880000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_8f69e8fea42c471cb18b21d3633b0068"
      unitRef="U001">1302000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="c20201231"
      decimals="-3"
      id="Fact_e9569358fbdf4462936779ea8fcb940a"
      unitRef="U001">1286000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_ed32f4f9c58a479495fc5bd17489da1f"
      unitRef="U001">8447000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_6228a99e20084481acc942d525059409"
      unitRef="U001">8034000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="c20211231"
      decimals="-3"
      id="Fact_1761bc5734464abdae1a3c8b0fd56a46"
      unitRef="U001">240514000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="c20201231"
      decimals="-3"
      id="Fact_c298592310664a79ae4e43a308dc8b8c"
      unitRef="U001">133087000</us-gaap:Liabilities>
    <us-gaap:CommitmentsAndContingencies
      contextRef="c20211231"
      id="Fact_0bba2e00940a4de090973a0a28c22f85"
      unitRef="U001"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="c20201231"
      id="Fact_ac3582b6ae14447b8637c1a55fdd0880"
      unitRef="U001"
      xsi:nil="true"/>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="4"
      id="Fact_d57e4f5459fc4b64badc0d50aa563c7c"
      unitRef="U003">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="4"
      id="Fact_b54913d937264110ae82b66933b939cf"
      unitRef="U003">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_e665a08d102c49689a57ecf852c10509"
      unitRef="U002">150000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_ff47d309b0a243788e1d7c5d3182fdc3"
      unitRef="U002">50000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_a055534e84d54ebdb3e13ca4587f1232"
      unitRef="U002">17869643</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_259187bde20142c79db47ff7fcdf77c0"
      unitRef="U002">17869643</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_c61625dd94004b1ea16a4c452f2aed6e"
      unitRef="U002">16896693</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_00f0849777fb43be8b38b73ddc8e6570"
      unitRef="U002">16896693</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockValue
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="-3"
      id="Fact_ae723da0a18341f883397adb6f8c8cff"
      unitRef="U001">2000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="-3"
      id="Fact_313ecfc33b09479cbe16d0f95b584e33"
      unitRef="U001">2000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="4"
      id="Fact_feb5185d57c74a8da08d8dc7cb35d131"
      unitRef="U003">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="4"
      id="Fact_8ce2d42987a24ecbb2f43d11141e64bc"
      unitRef="U003">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="0"
      id="Fact_f12f7165b39e4a749e1b32416f990242"
      unitRef="U002">5307816</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="0"
      id="Fact_fa8ab74c3b37452aa1412281e00f10ec"
      unitRef="U002">2409738</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="0"
      id="Fact_cbeaa349595141898c867b72c69dcb82"
      unitRef="U002">1695938</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="0"
      id="Fact_45f79755ec0845a1867e63ee20e5f79c"
      unitRef="U002">1695938</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="0"
      id="Fact_db011e2611924939b330259220382844"
      unitRef="U002">1802606</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="0"
      id="Fact_6b7550f5e739430d869356d33cac5597"
      unitRef="U002">1802606</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="-3"
      id="Fact_5d0ae48ba3514be08105fdd6fefb0c61"
      unitRef="U001">0</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="-3"
      id="Fact_baa45fdb9236488c96158ed430e5852b"
      unitRef="U001">0</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapital
      contextRef="c20211231"
      decimals="-3"
      id="Fact_e20a18d92be84635b1f52f25d9ca1f67"
      unitRef="U001">595049000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital
      contextRef="c20201231"
      decimals="-3"
      id="Fact_7ffb08a3ecb44195acc2ed4b2a241f5e"
      unitRef="U001">102004000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="c20211231"
      decimals="-3"
      id="Fact_de5537a7117d4160aa875dca410c259a"
      unitRef="U001">72044000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="c20201231"
      decimals="-3"
      id="Fact_b0553b644f884056ac948075b5a1f3d2"
      unitRef="U001">34287000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="c20211231"
      decimals="-3"
      id="Fact_34089ef54c6e4e2c9dde5b977b92fda1"
      unitRef="U001">9109000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="c20201231"
      decimals="-3"
      id="Fact_0fb34dabb0d04ae5a47d3a92a534a00e"
      unitRef="U001">4857000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:StockholdersEquity
      contextRef="c20211231"
      decimals="-3"
      id="Fact_dd904fa250704828a294669fb866434d"
      unitRef="U001">676204000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20201231"
      decimals="-3"
      id="Fact_6d32f2f309184bdd8d4fadf52ba19547"
      unitRef="U001">141150000</us-gaap:StockholdersEquity>
    <us-gaap:MinorityInterest
      contextRef="c20211231"
      decimals="-3"
      id="Fact_a20ec486529b412ba5966b1b6f2c1eff"
      unitRef="U001">135461000</us-gaap:MinorityInterest>
    <us-gaap:MinorityInterest
      contextRef="c20201231"
      decimals="-3"
      id="Fact_2a159ac190154e7c8eef1dcfb909b065"
      unitRef="U001">67020000</us-gaap:MinorityInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20211231"
      decimals="-3"
      id="Fact_9b213be0d7ef48849b04d881ff367450"
      unitRef="U001">811665000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20201231"
      decimals="-3"
      id="Fact_cd307fe8931a4f1cb660fde4b908af5e"
      unitRef="U001">208170000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="c20211231"
      decimals="-3"
      id="Fact_f10c83aef94143f689fc417699f8c8b2"
      unitRef="U001">1052179000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="c20201231"
      decimals="-3"
      id="Fact_4d295d16e9d24da6a7b11947b7766c48"
      unitRef="U001">341257000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_0f2536bc16a041ae890ab3d22e6fddd1"
      unitRef="U001">259751000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_64b20917393545fa81505db763ef439e"
      unitRef="U001">156624000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_f6e66cf1205642e0a4012e6def7030d6"
      unitRef="U001">107524000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfRevenue
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_09f0b6ec061f4343b6c08af9d4c58672"
      unitRef="U001">144895000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_486e8754635a476fb0b0b47cdf8f40b3"
      unitRef="U001">87025000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_f00738caf73e48f7899be4acef27c598"
      unitRef="U001">56870000</us-gaap:CostOfRevenue>
    <us-gaap:GrossProfit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_1cdf49d8ef0f486a9ab5358ed8563072"
      unitRef="U001">114856000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_1461a9b5545c4064b2bab10e3785de13"
      unitRef="U001">69599000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_e259906f905a44f38c6a99ffde29a64d"
      unitRef="U001">50654000</us-gaap:GrossProfit>
    <us-gaap:SellingAndMarketingExpense
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_91fac8afab484bfb9ab4c938d93873af"
      unitRef="U001">26733000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_5863a14f821343e0aa4b5d8feaf63d47"
      unitRef="U001">16773000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_00ff1a5903be46e8a1987d69fdf4887e"
      unitRef="U001">11902000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_dc9a47f3951f477783c8f7973f3cf347"
      unitRef="U001">34207000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_072423d409ba4297bd6706209224ff8c"
      unitRef="U001">19119000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_57a112ff644f470295529901a4cb7599"
      unitRef="U001">12900000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_2f2fbc65db944c21989e31c9231d5743"
      unitRef="U001">15214000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_e6775aef366b461cb164336bb781ea27"
      unitRef="U001">12215000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_7b9fc35df20748ca998b9cbaafa7322c"
      unitRef="U001">8061000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:OperatingExpenses
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_3ddb0e251be9438eb0df60418793b244"
      unitRef="U001">76154000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_7e8f8157d2884e27a3c10b8361d0bf4f"
      unitRef="U001">48107000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_1c77364cb50540e981325cab26358fa9"
      unitRef="U001">32863000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_adb047cdd4c04f85a258fe8b6e66ea68"
      unitRef="U001">38702000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_61fc3beafc6f448abbe3c6a7bd56b7e1"
      unitRef="U001">21492000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_37f4d2e3afeb4ad8908a55461bde54e4"
      unitRef="U001">17791000</us-gaap:OperatingIncomeLoss>
    <us-gaap:InvestmentIncomeInterest
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_095a1b65dd40464fad9dc77e37fae90e"
      unitRef="U001">505000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_c8b9e20db13e443ab2fbbeb23ac61e09"
      unitRef="U001">897000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_6c0d81bdee7f44dcbe5541d30ec1142c"
      unitRef="U001">333000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InterestExpense
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_29400e2ee80f41438f448133ef0fa8d5"
      unitRef="U001">765000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_90dac5903e6743b9869811a25cc73551"
      unitRef="U001">982000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_fa63557d6afc437aa2861bd01e444215"
      unitRef="U001">745000</us-gaap:InterestExpense>
    <acmr:IncreaseDecreaseInFinancialLiabilityCarriedAtFairValue
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_2a4d98fbf90d44ca85c3503f25b43a5a"
      unitRef="U001">0</acmr:IncreaseDecreaseInFinancialLiabilityCarriedAtFairValue>
    <acmr:IncreaseDecreaseInFinancialLiabilityCarriedAtFairValue
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_5fbe5e8f1cd54921adc6b1d554483381"
      unitRef="U001">11964000</acmr:IncreaseDecreaseInFinancialLiabilityCarriedAtFairValue>
    <acmr:IncreaseDecreaseInFinancialLiabilityCarriedAtFairValue
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_5cbfc1ff5ed349cfa80a4c7f95e316db"
      unitRef="U001">0</acmr:IncreaseDecreaseInFinancialLiabilityCarriedAtFairValue>
    <us-gaap:MarketableSecuritiesUnrealizedGainLoss
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_bf0e023c6708465ea15329fdf5b6163d"
      unitRef="U001">607000</us-gaap:MarketableSecuritiesUnrealizedGainLoss>
    <us-gaap:MarketableSecuritiesUnrealizedGainLoss
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_79ea66374c9e4d45a5077c5d9b6bf985"
      unitRef="U001">12574000</us-gaap:MarketableSecuritiesUnrealizedGainLoss>
    <us-gaap:MarketableSecuritiesUnrealizedGainLoss
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_e1c42b93b46b4779aceecdb9ae6d90fb"
      unitRef="U001">0</us-gaap:MarketableSecuritiesUnrealizedGainLoss>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_d64addc3ed684a0da35e07bf7685c1dd"
      unitRef="U001">-631000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_362c9bebfe4a41418c5de0f250dc0670"
      unitRef="U001">-3377000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_61dc6d70539843c98121169238fa1105"
      unitRef="U001">1393000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromEquityMethodInvestments
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_221aaf03ad554d5693accb1f9719e0a5"
      unitRef="U001">4637000</us-gaap:IncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromEquityMethodInvestments
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_376c7d47cad4405daee64be8a94b41ea"
      unitRef="U001">655000</us-gaap:IncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromEquityMethodInvestments
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_dc610eb9003042a99d79fd454ff8306c"
      unitRef="U001">168000</us-gaap:IncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_95460937bd4b46b1bffa6992d1f79c2f"
      unitRef="U001">43055000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_abdea02b2f6d44e487f7fc744344d4f7"
      unitRef="U001">19295000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_89b17e0c8c104b4e8cb5e73ae537cc85"
      unitRef="U001">18940000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_dc2745884e0043948cf9ca1fc8527cf5"
      unitRef="U001">134000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_df9653664dde43b19491be1e72e09739"
      unitRef="U001">-2382000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_d56eda1d57b5419e82266b6124ab0866"
      unitRef="U001">-518000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ProfitLoss
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_fa2812b566b54113b142325fbb032a47"
      unitRef="U001">42921000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_6706edf4ac23435dad2d40edfe2fd63c"
      unitRef="U001">21677000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_a07ed4c764ca453390cbae162a99f31f"
      unitRef="U001">19458000</us-gaap:ProfitLoss>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_51713f056e8140a2948e520adbe03c54"
      unitRef="U001">5164000</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_9b2f033aa9bf4feeb32e4c561db5eddf"
      unitRef="U001">2897000</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_32edc34db82645ad85f8f7f5d07b4dca"
      unitRef="U001">564000</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_cf7b7dce324247b1a75c196b79468df1"
      unitRef="U001">37757000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_f4e18bae2e3749f58d2689b41a099cb2"
      unitRef="U001">18780000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_8635e2a6109842f2a3f23497e2b577ce"
      unitRef="U001">18894000</us-gaap:NetIncomeLoss>
    <us-gaap:ProfitLoss
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_d495d79a8f654eb599823ce264e5a95d"
      unitRef="U001">42921000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_aaf4b66943824072a7b9fcbc91938301"
      unitRef="U001">21677000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_f22a9cf0fcc54ffc82c340171df7e6e8"
      unitRef="U001">19458000</us-gaap:ProfitLoss>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_4a08bcf915a146729206529b4ffb997e"
      unitRef="U001">4695000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_078845d42cd84b3180e4c108011fc504"
      unitRef="U001">10493000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_6a68c9063a0c482784a16d8db807b724"
      unitRef="U001">-899000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_e26ef9835649434784dc6e76bedd57aa"
      unitRef="U001">47616000</us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_ea38d31af28e4832afce037d3d33f143"
      unitRef="U001">32170000</us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_89b739099fe94b5a812b06bbc89e062b"
      unitRef="U001">18559000</us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest>
    <acmr:ComprehensiveIncomeLossAttributableToNonControllingInterestsAndRedeemableNonControllingInterests
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_967ad9b45bc1474cb30636c565b0e96a"
      unitRef="U001">5607000</acmr:ComprehensiveIncomeLossAttributableToNonControllingInterestsAndRedeemableNonControllingInterests>
    <acmr:ComprehensiveIncomeLossAttributableToNonControllingInterestsAndRedeemableNonControllingInterests
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_b3348038791049a09367f40aa4e2c750"
      unitRef="U001">6858000</acmr:ComprehensiveIncomeLossAttributableToNonControllingInterestsAndRedeemableNonControllingInterests>
    <acmr:ComprehensiveIncomeLossAttributableToNonControllingInterestsAndRedeemableNonControllingInterests
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_6b5cb2ffd1f54d5b94c2b6836072edd6"
      unitRef="U001">483000</acmr:ComprehensiveIncomeLossAttributableToNonControllingInterestsAndRedeemableNonControllingInterests>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_7b58a52322114e1fa245e25172ba40e2"
      unitRef="U001">42009000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_6139b71a87ba4faf8eeb4478326c4109"
      unitRef="U001">25312000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_6e776340d0bd431c96164a118e61bca1"
      unitRef="U001">18076000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20210101to20211231"
      decimals="2"
      id="Fact_cdf703b19f0f424fb26fc7fd9c10ef4d"
      unitRef="U003">1.96</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20200101to20201231"
      decimals="2"
      id="Fact_5d8d4762b6da4b0fbb96468eddb65ea9"
      unitRef="U003">1.03</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20190101to20191231"
      decimals="2"
      id="Fact_190f3e840ecb486aba2fede3963b15f6"
      unitRef="U003">1.12</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20210101to20211231"
      decimals="2"
      id="Fact_a0297681d57a4b94bddfcb381645786b"
      unitRef="U003">1.73</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20200101to20201231"
      decimals="2"
      id="Fact_6efa166b24784ad5b3e2bb3d21e92f2d"
      unitRef="U003">0.89</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20190101to20191231"
      decimals="2"
      id="Fact_b9a798039e6d4e709dfa2ed488e9ea3e"
      unitRef="U003">0.99</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20210101to20211231"
      decimals="0"
      id="Fact_76c6bbe77303458a898005baaacf158c"
      unitRef="U002">19218236</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20200101to20201231"
      decimals="0"
      id="Fact_ba1a5f1455614cdbb4a7499bf4e065ed"
      unitRef="U002">18233361</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20190101to20191231"
      decimals="0"
      id="Fact_ed60b42579994ccc93146d3637e77f87"
      unitRef="U002">16800623</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20210101to20211231"
      decimals="0"
      id="Fact_ef002bd15ed5463d962bf17f5de3c0ec"
      unitRef="U002">21785572</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20200101to20201231"
      decimals="0"
      id="Fact_4801471cff0c4971931e5262743636b6"
      unitRef="U002">21183469</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20190101to20191231"
      decimals="0"
      id="Fact_0933437c6ca94442a243dba4075cb5ad"
      unitRef="U002">19135497</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:SharesOutstanding
      contextRef="c20181231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_8301a46688894d208332c0dc4ca6f65b"
      unitRef="U002">14110315</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20181231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_e694f05b08e9407288b36466f2085c9c"
      unitRef="U001">1000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:SharesOutstanding
      contextRef="c20181231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_c1e18e6c327a413ba7c37005e8fe3726"
      unitRef="U002">1898423</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20181231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_af9eaaf2a3c24f7992986024646c628a"
      unitRef="U001">0</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20181231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_b0fa2ae927e64b7182a4a70f7177d81d"
      unitRef="U001">56567000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20181231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_6e0bfd331a974c44ab5ee32d187a5f81"
      unitRef="U001">-3387000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20181231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_5e92d45db1f24a65858cdb43487ad66d"
      unitRef="U001">-857000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20181231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_a5abba6b18fb421b88693a9a4be9996a"
      unitRef="U001">0</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20181231"
      decimals="-3"
      id="Fact_1f3d5c9786fd44fd8e4ac19417777e4a"
      unitRef="U001">52324000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLoss
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_bc0149b6c6184dd7acdd37e35842adcb"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_004fb1aca54d4202ad6541aa770a2be9"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_221c8365460d4179a238a3192410fa57"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_a7147feefddc4b5c830cf42c56e75742"
      unitRef="U001">18894000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_f6aa8c45db86453893b70315053ea2d5"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_9a6d462301ba41ea864cf8daa9b28bc5"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_f5f9fa86adfc4f7ea128a8ad3a95fa5f"
      unitRef="U001">18894000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_cb7f0a7c50f5468da8c962a439106b92"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_7a4e50d104ee40ae85e86a857da42f4b"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_c44c96c1134146789502ff60ff90b89e"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_a3cc0908f4884b94ab1c031f25cf398f"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_5471973667ff4ec18af398b1c3cc1d87"
      unitRef="U001">-818000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_cc4a2f23b692459ba68d9af6367aa597"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_60f5a43431334e6e9208c0c3879e70bb"
      unitRef="U001">-818000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_e83f7c1dcde04a82a916b3fd98a1f4d9"
      unitRef="U002">195297</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_25ff31dc2d0e42ed93d5d8a42129197a"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="INF"
      id="Fact_a45f51d1ddc94526976cdaa231c26453"
      unitRef="U002">0</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_d0469bf4ef1c4f0cad9fff08adf4212c"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_27ba1f72cd9442c4af1d95ef67b5cfa6"
      unitRef="U001">317000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_aa900db151134ac9833404a131cdd1c0"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_0637fb3efea0427683d258c0fd6fd01f"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_19c427775c334fa5bc9dd4c4e313aa28"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_06ddcd82f401456d93dbe2f207ca8871"
      unitRef="U001">317000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_5dcaf856921149ca899f28483c821ff5"
      unitRef="U001">576000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_eaafbd244a704e97b819e0f4860e5b48"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_6b1a38875d144c37b242b515a01241af"
      unitRef="U001">576000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_9fd5969c827a408b9db791bc9cab270b"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_ac083b1202a64d18aa0b081ba8af1340"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_a9580b4ee4f44a79b22c6c68e2f5ac83"
      unitRef="U001">3572000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_daa126b829be4f6b89553ad64d07c162"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_3f05db649b1a45d2830eafe87a6a634c"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_039fd44805514585a3fe38d9c851290c"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_8bf21e2220a14a909d66bf3cfc236508"
      unitRef="U001">3572000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_47a3284e4133499d8c7ffcba947476f3"
      unitRef="U002">2053572</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_f9746473d6fe4e57926db658f6fa40c4"
      unitRef="U001">1000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="INF"
      id="Fact_8f21d227f5364c7e9b45e93653a50d0a"
      unitRef="U002">0</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_cf60109599f443b9adad4b43f3331727"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_0fc259ee9846447989da80783c59a996"
      unitRef="U001">26434000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_835a1a8272114f9ba30574d07efb0de3"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_40b1377d87094be9b07d7c36290d83b2"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_99c2d3021ff7400c8a88f9552cf27997"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_024bf87e39f84063b6500052766bcda0"
      unitRef="U001">26435000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_00d5ebf381b442baafda23ac2203fbad"
      unitRef="U002">214286</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_26aed1a4cfd54438831c17fdbf50be1e"
      unitRef="U001">0</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="INF"
      id="Fact_01ea73c84a344262bae6577656d98579"
      unitRef="U002">0</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_cfa238ad8d6948ca8751dee31c935bf5"
      unitRef="U001">0</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_d7ae403c12ac4dc388b3a0a841faa1ab"
      unitRef="U001">2827000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_85a294d3f0ec43898271c0376e11a36a"
      unitRef="U001">0</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_e4344be2fb2e45f6941b32f66787c23d"
      unitRef="U001">0</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_5ed41fcbfbbe4b8399d2db22cb5c6c78"
      unitRef="U001">0</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_9361a4f59a7147c4821c5edadfff84c3"
      unitRef="U001">2827000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_c90aeae9451340d9b8edba70640de2a0"
      unitRef="U002">35815</us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_fd8a674bbbf946a6b7342f39c1acfd58"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_d07cab5f94f44a96befb93070949d345"
      unitRef="U002">-35815</us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_e84502d7afcc488087d545986647e48a"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_e63196fa30a14d78b154a102d1bf47ad"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_25dc005e65d247d1ae0e1ba6c4e76976"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_235b5dae1aa74c9d81c33aa79eab13ec"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_ee544e9605164b85b84d3ce904f7fa83"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_b00a10c4fb464d43a87598359de237d7"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_f5f64855df68407dabb532ee17559614"
      unitRef="U002">1438</acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_805c2624abd24fcd855dba2cd2b15688"
      unitRef="U001">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="INF"
      id="Fact_eeebb89efee54e0c9508028087f5e17f"
      unitRef="U002">0</acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_c15e073a9b604ed9953a51cf56e949cd"
      unitRef="U001">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_8b555cc6d5e647e1b3ddc9d2c564f21d"
      unitRef="U001">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_f51d24ab80e34acdbba87298841ae90d"
      unitRef="U001">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_f44914a6e4f74e57bd9e61b239770736"
      unitRef="U001">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised
      contextRef="c20190101to20191231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_cdcade5a52814384a1a2e798d9d3bcd7"
      unitRef="U001">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_ea96231951054040b6c36a972ad3d165"
      unitRef="U001">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
    <us-gaap:SharesOutstanding
      contextRef="c20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_7099048b287444e29edcd5ee1bc5b7f3"
      unitRef="U002">16182151</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_40337799118e4f94801ddccf4f583632"
      unitRef="U001">2000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:SharesOutstanding
      contextRef="c20191231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_8aee55a0e15a4f8f8394c6274ed365f9"
      unitRef="U002">1862608</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20191231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_13a66f97e4324353a130ce078263bbfa"
      unitRef="U001">0</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20191231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_6ce36b41d7fb4ba1bd170050e9d670c6"
      unitRef="U001">83487000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20191231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_7012f4f65ebd41bdb8eb1e296bfc23f2"
      unitRef="U001">15507000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20191231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_945f65b256b94d598a970a104fcd08d1"
      unitRef="U001">-1675000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20191231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_d8a7c427b1284b2a85520853644211d9"
      unitRef="U001">0</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20191231"
      decimals="-3"
      id="Fact_ff7d1280f761496d855d3a3cd13c653d"
      unitRef="U001">97321000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <acmr:NetIncomeExcludingRedeemableNonControllingInterest
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_061b88b52a914dea9134959035ff8371"
      unitRef="U001">0</acmr:NetIncomeExcludingRedeemableNonControllingInterest>
    <acmr:NetIncomeExcludingRedeemableNonControllingInterest
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_ba4db314e0004cda94d82b440c1dfbdc"
      unitRef="U001">0</acmr:NetIncomeExcludingRedeemableNonControllingInterest>
    <acmr:NetIncomeExcludingRedeemableNonControllingInterest
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_f19bbd46e38a47db9de8660d6acb06dd"
      unitRef="U001">0</acmr:NetIncomeExcludingRedeemableNonControllingInterest>
    <acmr:NetIncomeExcludingRedeemableNonControllingInterest
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_ff5b09dbc8aa4dfdabc2b4cc69297104"
      unitRef="U001">18780000</acmr:NetIncomeExcludingRedeemableNonControllingInterest>
    <acmr:NetIncomeExcludingRedeemableNonControllingInterest
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_f8fc3a4328134b0bbdcec698f7827bcf"
      unitRef="U001">0</acmr:NetIncomeExcludingRedeemableNonControllingInterest>
    <acmr:NetIncomeExcludingRedeemableNonControllingInterest
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_8b55da6f835e4dd899f9344e2d4b6203"
      unitRef="U001">2254000</acmr:NetIncomeExcludingRedeemableNonControllingInterest>
    <acmr:NetIncomeExcludingRedeemableNonControllingInterest
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_a8146365725e4a3a94e9dd1a2ca092d3"
      unitRef="U001">21034000</acmr:NetIncomeExcludingRedeemableNonControllingInterest>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_3848d49ab1cc454aab9349f6e2c355ee"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_4764cc92b0da468096a82ff88949d951"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_9b4b2113a28d4b108ca516ca6855a5cd"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_37a280756f7b4b749ac0ec535f16d0c4"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_1b36610f23504d63acb8e7f3c3db997c"
      unitRef="U001">6532000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_e9d37650e6c64c75a024df4743a87c1a"
      unitRef="U001">4808000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_65281d6c3bbd4a23b2fc1bb68760282d"
      unitRef="U001">11340000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_f436c74b6ebb412e99904bd9d7d47178"
      unitRef="U002">832504</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_86894fe2010243189ce7b5d8f4e3400b"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="INF"
      id="Fact_75aea7daf21b4af48fd6f89ab0487b24"
      unitRef="U002">0</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_c7ad0251e8be4b0f8b63544ae75ed198"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_14d47c4960764682a314db0283285f0d"
      unitRef="U001">2745000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_f42c14906bac4bcfa33d75d45d951d0a"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_73658b0ba311459cab10a11b8de7f787"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_0c7f78fa662b4e5594f8c3748c910171"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_c5c190e4c04a406283d8266e8a9be3e9"
      unitRef="U001">2745000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_82607a9112da434e9e8f356573c098eb"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_a663ecd81ee54917b494c9f58c2bcc22"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_4821cf900bf34ad5844fdcbad699bdc3"
      unitRef="U001">5628000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_43e79774fbce47fdb8047a392bedcf67"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_c7b2b1d9f36540f2a4630aae7803862a"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_80537ae6707e4c7fb0df3418a1a9c251"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_c7439cd73cbc415196610d8d1b5193de"
      unitRef="U001">5628000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_540cf1491c7e44f6bc3710d79dbaa036"
      unitRef="U002">60002</us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_fb2066feccb8494b814b061baf161a6b"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_8668f1f755e64d05a0d8531cb919ca5f"
      unitRef="U002">-60002</us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_f96554a14af34ce2a62ac9eba337648e"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_0cfebf2422e042329fcfa04bbda1ecbf"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_27ac8642d88849ebaddcd5a0010f6d1e"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_97d3b56e218a420aadc6e3fffcd0dd1e"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_9dd3d1e812c1449b9e27125f095d12b7"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_877aecb49ff9454a90373b88c3900e19"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockRepurchasedAndRetiredDuringPeriodShares
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_10931a20210441efabb26adfbb39727b"
      unitRef="U002">242681</us-gaap:StockRepurchasedAndRetiredDuringPeriodShares>
    <us-gaap:StockRepurchasedAndRetiredDuringPeriodValue
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_35b902be325d4f2badecc82ebbd7f87f"
      unitRef="U001">0</us-gaap:StockRepurchasedAndRetiredDuringPeriodValue>
    <us-gaap:StockRepurchasedAndRetiredDuringPeriodShares
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="INF"
      id="Fact_1e542ee4d84942c7b750deb7adc7b8cc"
      unitRef="U002">0</us-gaap:StockRepurchasedAndRetiredDuringPeriodShares>
    <us-gaap:StockRepurchasedAndRetiredDuringPeriodValue
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_9cba5dfdab564359969e662611669861"
      unitRef="U001">0</us-gaap:StockRepurchasedAndRetiredDuringPeriodValue>
    <us-gaap:StockRepurchasedAndRetiredDuringPeriodValue
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_69b0ea272a544d6188d24b038fe793a0"
      unitRef="U001">9715000</us-gaap:StockRepurchasedAndRetiredDuringPeriodValue>
    <us-gaap:StockRepurchasedAndRetiredDuringPeriodValue
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_75fa989c8ac04b0b99ec9da4f38828a5"
      unitRef="U001">0</us-gaap:StockRepurchasedAndRetiredDuringPeriodValue>
    <us-gaap:StockRepurchasedAndRetiredDuringPeriodValue
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_83a9cdd676c34f45956ac9ccdbb5b4cb"
      unitRef="U001">0</us-gaap:StockRepurchasedAndRetiredDuringPeriodValue>
    <us-gaap:StockRepurchasedAndRetiredDuringPeriodValue
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_1243f7ccdaf5430f8e767ee9e54a2755"
      unitRef="U001">0</us-gaap:StockRepurchasedAndRetiredDuringPeriodValue>
    <us-gaap:StockRepurchasedAndRetiredDuringPeriodValue
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_8725956ce1d7426caac2ce66a70753ba"
      unitRef="U001">9715000</us-gaap:StockRepurchasedAndRetiredDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_cbaac30f98b14172ae31f3b30c7b4c8f"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_e3b5d842209a4b599a55c76eadefe1d4"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_fd88261a797243b4b69a934594325d8b"
      unitRef="U001">19859000</us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_6e50568f37eb47d9b24e1a64896bb443"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_e4a30ce8b56348af862f46f635d47245"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_b9e6564a13ae4193b819d325fd45188e"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_44dde33aa4e74c26b3c0617d8b7198e0"
      unitRef="U001">19859000</us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued>
    <acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_ca8a4b0c48b8421e91e115e678040f0f"
      unitRef="U002">64717</acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_e4ef485f558641a79e95b836c6aed486"
      unitRef="U001">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="INF"
      id="Fact_ddf67c8fe115499896b101889b2aeef1"
      unitRef="U002">0</acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_19abe82bf901426a90479c611f5bcf8b"
      unitRef="U001">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_3795ab2717a64135bf80a63221b4f17b"
      unitRef="U001">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_c87e78b33e0e4abcbec0ea87f99f0624"
      unitRef="U001">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_8b40c0c110884d058dae93e85703967b"
      unitRef="U001">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_9ccc03937a8a4cb9aacdd0f9e234f942"
      unitRef="U001">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
    <acmr:ReclassificationOfRedeemableNonControllingInterest
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_73b541d6a0c24a848b65c88cca9211c6"
      unitRef="U001">0</acmr:ReclassificationOfRedeemableNonControllingInterest>
    <acmr:ReclassificationOfRedeemableNonControllingInterest
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_9fe66003444241ca936aceb945289b48"
      unitRef="U001">0</acmr:ReclassificationOfRedeemableNonControllingInterest>
    <acmr:ReclassificationOfRedeemableNonControllingInterest
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_fcbfd3b991c64e47be9cc5b343f2821a"
      unitRef="U001">0</acmr:ReclassificationOfRedeemableNonControllingInterest>
    <acmr:ReclassificationOfRedeemableNonControllingInterest
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_628bd81d2ab143f39c18e5e6826e60ba"
      unitRef="U001">0</acmr:ReclassificationOfRedeemableNonControllingInterest>
    <acmr:ReclassificationOfRedeemableNonControllingInterest
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_36b2adaa9eea4b0181c8e83163374e94"
      unitRef="U001">0</acmr:ReclassificationOfRedeemableNonControllingInterest>
    <acmr:ReclassificationOfRedeemableNonControllingInterest
      contextRef="c20200101to20201231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_1b3898119cf1490dbb15a76ccdecd934"
      unitRef="U001">59958000</acmr:ReclassificationOfRedeemableNonControllingInterest>
    <acmr:ReclassificationOfRedeemableNonControllingInterest
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_3d2a5e7a7e1c448c975cbfd648d974a4"
      unitRef="U001">59958000</acmr:ReclassificationOfRedeemableNonControllingInterest>
    <us-gaap:SharesOutstanding
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_dad2be4d0560493eab1c40296046b0fd"
      unitRef="U002">16896693</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_ae0c47dc040b45cfad2adbba414d65a1"
      unitRef="U001">2000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:SharesOutstanding
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_2897ae1483264d9eb53072aa7c9e3951"
      unitRef="U002">1802606</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_cb6603d2fbc64573987f0d8bc772a8be"
      unitRef="U001">0</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20201231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_536eba4f2e7b4661ad07e157c906a701"
      unitRef="U001">102004000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20201231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_98ea90d97c6840f4a3faddc13bdcfbce"
      unitRef="U001">34287000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20201231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_beadd0bbbb9a4173929d3bf1c68e1b4e"
      unitRef="U001">4857000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20201231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_d8178fe47cb448809390b2003d08f058"
      unitRef="U001">67020000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20201231"
      decimals="-3"
      id="Fact_82d4ef7d106c4be392eaee90f6d1a86d"
      unitRef="U001">208170000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <acmr:NetIncomeExcludingRedeemableNonControllingInterest
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_b7774942df394622908dc7672f1bba1e"
      unitRef="U001">0</acmr:NetIncomeExcludingRedeemableNonControllingInterest>
    <acmr:NetIncomeExcludingRedeemableNonControllingInterest
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_a80d0b516f884a2cb40d1850c0cbcb55"
      unitRef="U001">0</acmr:NetIncomeExcludingRedeemableNonControllingInterest>
    <acmr:NetIncomeExcludingRedeemableNonControllingInterest
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_92b390e36ea4496dbe2e5a4cf0468006"
      unitRef="U001">0</acmr:NetIncomeExcludingRedeemableNonControllingInterest>
    <acmr:NetIncomeExcludingRedeemableNonControllingInterest
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_d72ef368cec24e19b0a88f0bf0ee4086"
      unitRef="U001">37757000</acmr:NetIncomeExcludingRedeemableNonControllingInterest>
    <acmr:NetIncomeExcludingRedeemableNonControllingInterest
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_3179083a03934b6593bb135632de2e40"
      unitRef="U001">0</acmr:NetIncomeExcludingRedeemableNonControllingInterest>
    <acmr:NetIncomeExcludingRedeemableNonControllingInterest
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_676fd9e6c669495bbaf5419f916c4bd8"
      unitRef="U001">5164000</acmr:NetIncomeExcludingRedeemableNonControllingInterest>
    <acmr:NetIncomeExcludingRedeemableNonControllingInterest
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_90cb03a1b1a54dccb89ec5f8055b7302"
      unitRef="U001">42921000</acmr:NetIncomeExcludingRedeemableNonControllingInterest>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_ddec5c91faa04c938e5eb74e43d29843"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_1e50df5e7fbd417fb60b94e222fe5dbe"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_7713683733034ae1afcaa67987d76f38"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_1c302a4760564346aedb907d1664ae25"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_9ae4dda3369043d2a580399af6a9ae48"
      unitRef="U001">4252000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_b6f70cebab7d42c0a7aadfc5ec264896"
      unitRef="U001">443000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_1970ee4d030443d1ad11b1099dd3a559"
      unitRef="U001">4695000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_66fff980455043d6a944e4721536ba83"
      unitRef="U002">623601</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_46172d145eae43179d7c6b47a4bc0bda"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="INF"
      id="Fact_b70e0630e1f84d0aa82f16b6071fcd5e"
      unitRef="U002">0</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_d150c7f11edb4397b47d231664c2028b"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_03c934b07c464751a6be1b831451ae9a"
      unitRef="U001">3430000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_cddfbfbce1ee49bb9d902c17646bd578"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_92d4b16157a2452eb244650be058e0c7"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_0a06585e7598430fbd4b61f4821e4440"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_66327f5585c748b6a603f28c4576bac4"
      unitRef="U001">3430000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_70dcba6946eb423080936e41868156e2"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_ecaa073dad044418a685ceadf17cd867"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_93ff5db38b4d4b929ec595799b4cfdd8"
      unitRef="U001">5117000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_e6c24360b13b474199039d0e2f6deec9"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_01c3664a5ae646458089eee7502d9895"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_5d4b3f79a6c241b38f105a7c509f7b16"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_1d672ea3641e468e85328c6da1914a7b"
      unitRef="U001">5117000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_bea0ac8b9867414eb428e92afe44a711"
      unitRef="U002">242681</acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_de21e08414f64bc9936aeea24dc448a2"
      unitRef="U001">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="INF"
      id="Fact_936590ea5eaa4f42881d836055a8b322"
      unitRef="U002">0</acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_78e8fe0c61604e0a961d7bb1bc9ec4a0"
      unitRef="U001">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_0c341d01c0d34623aa6b138a215a9d2b"
      unitRef="U001">1820000</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_4891a946066748249db0db05c07b98bb"
      unitRef="U001">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_78333298e66045c7bde621f511fc6f74"
      unitRef="U001">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_0bbe596b738245db9b7c2237bc2fcff2"
      unitRef="U001">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_2dfeb7d4cfb44fcfa9bda0279c550d1d"
      unitRef="U001">1820000</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
    <us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_c09c21683fdc481495e15bf2e796cea4"
      unitRef="U002">106668</us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_17e2d618042d44b4b3d5632c709fa727"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_6ba85e82dece4e83948eae0c279b845b"
      unitRef="U002">-106668</us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_43d48d15d1604e2ab089739370864309"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_6d65650b278d414a8a683e908de95a1c"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_96c2181deb094d558958251a743a2da0"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_0eb58f7ae7b5439b804fdd7950b0b9e6"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_9b9d8c4664b5488bba5c40c0b8f7b011"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_f44b0e2ec9d64b0296400311d33f4f37"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <acmr:SubsidiaryEquityIssuedDuringPeriodShares
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="INF"
      id="Fact_7e08946641484eadb27c7975fd9fa9f3"
      unitRef="U002">0</acmr:SubsidiaryEquityIssuedDuringPeriodShares>
    <acmr:SubsidiaryEquityIssuedDuringPeriodValueNetOfIssuanceCosts
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_b53e06cd6efc4ffc837661bad3d99f04"
      unitRef="U001">0</acmr:SubsidiaryEquityIssuedDuringPeriodValueNetOfIssuanceCosts>
    <acmr:SubsidiaryEquityIssuedDuringPeriodShares
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="INF"
      id="Fact_3da64d57133448efb13eb796e60783a0"
      unitRef="U002">0</acmr:SubsidiaryEquityIssuedDuringPeriodShares>
    <acmr:SubsidiaryEquityIssuedDuringPeriodValueNetOfIssuanceCosts
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_1229e647332b4d52991653586117f0ca"
      unitRef="U001">0</acmr:SubsidiaryEquityIssuedDuringPeriodValueNetOfIssuanceCosts>
    <acmr:SubsidiaryEquityIssuedDuringPeriodValueNetOfIssuanceCosts
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_409f5f4c31ed4c0ca2c6e9381234e400"
      unitRef="U001">482678000</acmr:SubsidiaryEquityIssuedDuringPeriodValueNetOfIssuanceCosts>
    <acmr:SubsidiaryEquityIssuedDuringPeriodValueNetOfIssuanceCosts
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_424a5e0f5b5c43e198ad9f9e0e232afb"
      unitRef="U001">0</acmr:SubsidiaryEquityIssuedDuringPeriodValueNetOfIssuanceCosts>
    <acmr:SubsidiaryEquityIssuedDuringPeriodValueNetOfIssuanceCosts
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_8a15b29600ea41fcbe626561851b077b"
      unitRef="U001">0</acmr:SubsidiaryEquityIssuedDuringPeriodValueNetOfIssuanceCosts>
    <acmr:SubsidiaryEquityIssuedDuringPeriodValueNetOfIssuanceCosts
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_8cbbd82575be41b990ebfa0db880a494"
      unitRef="U001">62834000</acmr:SubsidiaryEquityIssuedDuringPeriodValueNetOfIssuanceCosts>
    <acmr:SubsidiaryEquityIssuedDuringPeriodValueNetOfIssuanceCosts
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_b861ea52a7724637ab558df5b2db41f7"
      unitRef="U001">545512000</acmr:SubsidiaryEquityIssuedDuringPeriodValueNetOfIssuanceCosts>
    <us-gaap:SharesOutstanding
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_ca5cf90095ef4a6bb6d7510bf977396f"
      unitRef="U002">17869643</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_708f005302cc4f3daf318c43643a5ac1"
      unitRef="U001">2000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:SharesOutstanding
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_4a38bace97794820a1132f0478746254"
      unitRef="U002">1695938</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_dc6455788e2840c3a6f1970d807c074d"
      unitRef="U001">0</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_4fc52f7fb7314bf2813ac9518156961f"
      unitRef="U001">595049000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20211231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_5b8f85677816440ca0558de6fabadc30"
      unitRef="U001">72044000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_cdf2c00c000d4014ad05a2e638eb4110"
      unitRef="U001">9109000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20211231_StatementEquityComponentsAxis_NoncontrollingInterestMember"
      decimals="-3"
      id="Fact_dbd59ffc87824562b25b24c4fd7fbefe"
      unitRef="U001">135461000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20211231"
      decimals="-3"
      id="Fact_c8426c52daa54ebc8ef5787c686a25ba"
      unitRef="U001">811665000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:ProfitLoss
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_68ec09d33b0249bd8a347aca50974b89"
      unitRef="U001">42921000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_dfaff62895d146bb9f097af04b491d4c"
      unitRef="U001">21677000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_c3576bfd23c44c828fb58fd1482834c5"
      unitRef="U001">19458000</us-gaap:ProfitLoss>
    <us-gaap:DepreciationAndAmortization
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_bae5cac45e5d4692b801c03dc9824b3c"
      unitRef="U001">2353000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_01f1bc4748284bf1ab895b9a5532228c"
      unitRef="U001">1055000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_dff425236b5149938ecfab5a6d277181"
      unitRef="U001">788000</us-gaap:DepreciationAndAmortization>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_6f51d94c28694c26a14b8eea7a9d5ccd"
      unitRef="U001">0</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_c4eea96f21b74562b5273e145071b784"
      unitRef="U001">-25000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_c2e4c745e1754500872f4bb30067c594"
      unitRef="U001">-294000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:IncomeLossFromEquityMethodInvestments
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_6b1ddef21d5c49e7b8ca3e844486e644"
      unitRef="U001">4637000</us-gaap:IncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromEquityMethodInvestments
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_c32915801ef8466c8a13eb56bc71a837"
      unitRef="U001">655000</us-gaap:IncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromEquityMethodInvestments
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_45bbf69a9ae547cc9193bb53d3443d6a"
      unitRef="U001">168000</us-gaap:IncomeLossFromEquityMethodInvestments>
    <us-gaap:MarketableSecuritiesUnrealizedGainLoss
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_8fa477a8f3c54a9db8394ee7be8f8be5"
      unitRef="U001">607000</us-gaap:MarketableSecuritiesUnrealizedGainLoss>
    <us-gaap:MarketableSecuritiesUnrealizedGainLoss
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_7fee5e9a10594165ac9297bd9bb313f9"
      unitRef="U001">12574000</us-gaap:MarketableSecuritiesUnrealizedGainLoss>
    <us-gaap:MarketableSecuritiesUnrealizedGainLoss
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_7b8c599f8c6a46f5b80077f22271b55e"
      unitRef="U001">0</us-gaap:MarketableSecuritiesUnrealizedGainLoss>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_7deffaa5221143c28d84ab566e4c1269"
      unitRef="U001">-1840000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_6497494c6ef94d4aa8fe9f117316eb7f"
      unitRef="U001">-4085000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_998c1ce862614993811d424fdab1cd4d"
      unitRef="U001">-3719000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:ShareBasedCompensation
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_ffc6b1018f5545d4a3769629cefb7756"
      unitRef="U001">5117000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_79c3680c4e5941949b8d6f5ca538ef93"
      unitRef="U001">5628000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_3238b6c16092437b8ef9e0b9057891fe"
      unitRef="U001">3572000</us-gaap:ShareBasedCompensation>
    <acmr:ChangeInFairValueOfFinancialLiability
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_7ecf4993017543f8b565a2c8c4ea0808"
      unitRef="U001">0</acmr:ChangeInFairValueOfFinancialLiability>
    <acmr:ChangeInFairValueOfFinancialLiability
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_9479fd7c69a44c379437f5c936324b8b"
      unitRef="U001">11964000</acmr:ChangeInFairValueOfFinancialLiability>
    <acmr:ChangeInFairValueOfFinancialLiability
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_19b9fb038bfe44568cbf9c7e85920692"
      unitRef="U001">0</acmr:ChangeInFairValueOfFinancialLiability>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_431d5339e2a24e4d8df85afdd83f75d5"
      unitRef="U001">47624000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_941e129fca5b430aa23d2690ea1733ee"
      unitRef="U001">22085000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_02c6d2acf9704e2fa6ff3e08851dd12a"
      unitRef="U001">6961000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInIncomeTaxesReceivable
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_db502a72701743f2b478d18b230caa28"
      unitRef="U001">1082000</us-gaap:IncreaseDecreaseInIncomeTaxesReceivable>
    <us-gaap:IncreaseDecreaseInIncomeTaxesReceivable
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_e903751a9da84c0dbf3a0794a91bb17a"
      unitRef="U001">0</us-gaap:IncreaseDecreaseInIncomeTaxesReceivable>
    <us-gaap:IncreaseDecreaseInIncomeTaxesReceivable
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_3e8c6f6d517a48b295f98d6377a8e9a1"
      unitRef="U001">0</us-gaap:IncreaseDecreaseInIncomeTaxesReceivable>
    <us-gaap:IncreaseDecreaseInOtherReceivables
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_d4f41351ed814a4ca81436c84497f7d8"
      unitRef="U001">8420000</us-gaap:IncreaseDecreaseInOtherReceivables>
    <us-gaap:IncreaseDecreaseInOtherReceivables
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_71df9b7db5d243e4987e7d4aadf74f22"
      unitRef="U001">6882000</us-gaap:IncreaseDecreaseInOtherReceivables>
    <us-gaap:IncreaseDecreaseInOtherReceivables
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_e45cdc5341c449999d78ac0dbf0b9778"
      unitRef="U001">-891000</us-gaap:IncreaseDecreaseInOtherReceivables>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_d31c16305f914c1792df6d76215c3d34"
      unitRef="U001">127656000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_9ddda618048e40bdb75467e8d4fcf01a"
      unitRef="U001">40768000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_24603699cbe348f7883115ec61795add"
      unitRef="U001">6658000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidExpense
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_c27ad4917d5b48ed89405eff63f19156"
      unitRef="U001">10606000</us-gaap:IncreaseDecreaseInPrepaidExpense>
    <us-gaap:IncreaseDecreaseInPrepaidExpense
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_13534a710f0b4ebea8adb22d5e5fb110"
      unitRef="U001">3518000</us-gaap:IncreaseDecreaseInPrepaidExpense>
    <us-gaap:IncreaseDecreaseInPrepaidExpense
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_e1b1d1d332614cdbb3344bf35e7cbcdf"
      unitRef="U001">83000</us-gaap:IncreaseDecreaseInPrepaidExpense>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentAssets
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_05f2cd0bfc924133affe2189bbe1190d"
      unitRef="U001">4521000</us-gaap:IncreaseDecreaseInOtherNoncurrentAssets>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentAssets
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_fab2ecf234c04cf0825b5140a3f55aae"
      unitRef="U001">99000</us-gaap:IncreaseDecreaseInOtherNoncurrentAssets>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentAssets
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_0ae51b4ffcbb46acae74e0e19b23f193"
      unitRef="U001">151000</us-gaap:IncreaseDecreaseInOtherNoncurrentAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_3e2c37d152ef49f6b74c3f2e83db47fa"
      unitRef="U001">65211000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_41c07f365d314fec99afdccd3aa11298"
      unitRef="U001">21275000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_9f29a419496e4a08af7e54de067d4c7b"
      unitRef="U001">-3058000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_9d4e5f8a46d04d2abb0a12c1959d7110"
      unitRef="U001">34831000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_7bd27c2ab50f4434ad2905cb2abd24a0"
      unitRef="U001">8578000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_1fe05f346cb44f5a9e1c7300ccdcd699"
      unitRef="U001">705000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_3478c38464d54522b8fa9f63ec40d6cc"
      unitRef="U001">226000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_67f210043d4341aeb2af00bc89dcffb0"
      unitRef="U001">-3137000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_60fe5a579e3e432481968e7374f43f6d"
      unitRef="U001">1952000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <acmr:IncreaseDecreaseInPayableAndDeferredTaxLiabilities
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_7990c883438846ccbd352602ac9738aa"
      unitRef="U001">2200000</acmr:IncreaseDecreaseInPayableAndDeferredTaxLiabilities>
    <acmr:IncreaseDecreaseInPayableAndDeferredTaxLiabilities
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_6f6142370ac8418c9a79d6ef93751036"
      unitRef="U001">-83000</acmr:IncreaseDecreaseInPayableAndDeferredTaxLiabilities>
    <acmr:IncreaseDecreaseInPayableAndDeferredTaxLiabilities
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_b26acafedb62487aa747250ccbb775e1"
      unitRef="U001">0</acmr:IncreaseDecreaseInPayableAndDeferredTaxLiabilities>
    <us-gaap:IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_1758af4041474ec0ae61c178f70c95b6"
      unitRef="U001">10551000</us-gaap:IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_3aa7b8473d8f4f319b4ae1367708b2c8"
      unitRef="U001">5236000</us-gaap:IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_5d62cf6c3db04abf8f1e7d0557475aca"
      unitRef="U001">2865000</us-gaap:IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_6c2de28584294d4e81f0cc74b1a5c98a"
      unitRef="U001">3180000</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_11ce36fcf59046308bb08be518e539f8"
      unitRef="U001">1343000</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_950cf4e5256148fc83f5be138a394fac"
      unitRef="U001">0</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_5aeb75093e9941cebc0fc6eac1636904"
      unitRef="U001">310000</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_5f10523dd107424097a8c887adcb1be4"
      unitRef="U001">3558000</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_0ac6d006c8f54ef7b4334d441f8ff5d9"
      unitRef="U001">-324000</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_f821cd77d98148b4a5ba5fb141fd27c8"
      unitRef="U001">-40093000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_2bb350ce781b4342af1e87de47731c55"
      unitRef="U001">-13547000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_57235451aacd4b77ab41f316dc2f94cf"
      unitRef="U001">9403000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_8913fea6ca0f4740a9a83395acd9f49b"
      unitRef="U001">9153000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_6b15204040924b008ace6c52be11d518"
      unitRef="U001">5211000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_3cf51a9e1d9c489eb638889e076f9f08"
      unitRef="U001">971000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquireIntangibleAssets
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_4b6078c936414d29a9168585cefa47b7"
      unitRef="U001">559000</us-gaap:PaymentsToAcquireIntangibleAssets>
    <us-gaap:PaymentsToAcquireIntangibleAssets
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_6b7661d544ea4a4abf87959a14af8215"
      unitRef="U001">324000</us-gaap:PaymentsToAcquireIntangibleAssets>
    <us-gaap:PaymentsToAcquireIntangibleAssets
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_117835e72dbe4be593a4ebba543c1c7e"
      unitRef="U001">154000</us-gaap:PaymentsToAcquireIntangibleAssets>
    <acmr:PaymentsToAcquireOfLandUseRight
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_2779b319e3b34d7fbfe4fca69f76b24b"
      unitRef="U001">0</acmr:PaymentsToAcquireOfLandUseRight>
    <acmr:PaymentsToAcquireOfLandUseRight
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_5eebc760d0c649519f32c3a94253bb65"
      unitRef="U001">9744000</acmr:PaymentsToAcquireOfLandUseRight>
    <acmr:PaymentsToAcquireOfLandUseRight
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_9b411c67dac24db6b73520a7240ca7f3"
      unitRef="U001">0</acmr:PaymentsToAcquireOfLandUseRight>
    <us-gaap:PaymentsToAcquireMarketableSecurities
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_a1fcd22715ce4da2a6fc7fcbe230d931"
      unitRef="U001">0</us-gaap:PaymentsToAcquireMarketableSecurities>
    <us-gaap:PaymentsToAcquireMarketableSecurities
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_5ed7f32e93524009bad46c0a4c407070"
      unitRef="U001">15020000</us-gaap:PaymentsToAcquireMarketableSecurities>
    <us-gaap:PaymentsToAcquireMarketableSecurities
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_270af94b5c9d4d9dbe64918d2b81f44b"
      unitRef="U001">0</us-gaap:PaymentsToAcquireMarketableSecurities>
    <acmr:PrePaymentForProperty
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_80e0f7ceeff642a48d0610000130965c"
      unitRef="U001">0</acmr:PrePaymentForProperty>
    <acmr:PrePaymentForProperty
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_d85f8d72dc074b1f91758ad8111ec834"
      unitRef="U001">40206000</acmr:PrePaymentForProperty>
    <acmr:PrePaymentForProperty
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_264ea70d40474977a0bf2a05b0828808"
      unitRef="U001">0</acmr:PrePaymentForProperty>
    <us-gaap:PaymentsToAcquireInterestInSubsidiariesAndAffiliates
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_ac8261e778994c588056a10a6acf0a81"
      unitRef="U001">1568000</us-gaap:PaymentsToAcquireInterestInSubsidiariesAndAffiliates>
    <us-gaap:PaymentsToAcquireInterestInSubsidiariesAndAffiliates
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_3d70b375ba984e2da9cc8f1879cee12f"
      unitRef="U001">0</us-gaap:PaymentsToAcquireInterestInSubsidiariesAndAffiliates>
    <us-gaap:PaymentsToAcquireInterestInSubsidiariesAndAffiliates
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_1462c60d8fe745f6bfa7381975f56950"
      unitRef="U001">4406000</us-gaap:PaymentsToAcquireInterestInSubsidiariesAndAffiliates>
    <us-gaap:ProceedsFromEquityMethodInvestmentDividendsOrDistributionsReturnOfCapital
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_05e5aa23d1f946aaa352ab18f7457d75"
      unitRef="U001">0</us-gaap:ProceedsFromEquityMethodInvestmentDividendsOrDistributionsReturnOfCapital>
    <us-gaap:ProceedsFromEquityMethodInvestmentDividendsOrDistributionsReturnOfCapital
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_2247e729da2a49b4b44a057e2fa59a15"
      unitRef="U001">555000</us-gaap:ProceedsFromEquityMethodInvestmentDividendsOrDistributionsReturnOfCapital>
    <us-gaap:ProceedsFromEquityMethodInvestmentDividendsOrDistributionsReturnOfCapital
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_801db87ed90844eeb3845b5edc1abee3"
      unitRef="U001">0</us-gaap:ProceedsFromEquityMethodInvestmentDividendsOrDistributionsReturnOfCapital>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_e3eccd0afbbf435981a6f8988cb46e7b"
      unitRef="U001">-11280000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_24f55e3cc3c24402a85e63de0db8d1a9"
      unitRef="U001">-69950000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_97abef24d68b4c39ab8d2ddbfa413faa"
      unitRef="U001">-5531000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromShortTermDebt
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_098a2f3d331d40abb773b66ccf39af78"
      unitRef="U001">22884000</us-gaap:ProceedsFromShortTermDebt>
    <us-gaap:ProceedsFromShortTermDebt
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_6c30ebbae58341f0acaa0a00d361f3c7"
      unitRef="U001">32573000</us-gaap:ProceedsFromShortTermDebt>
    <us-gaap:ProceedsFromShortTermDebt
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_bbd7b382558d4771a7fcd643ad6d0208"
      unitRef="U001">18423000</us-gaap:ProceedsFromShortTermDebt>
    <us-gaap:RepaymentsOfLinesOfCredit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_34fc3e6b7caf44f2b639f551088e6a0a"
      unitRef="U001">39809000</us-gaap:RepaymentsOfLinesOfCredit>
    <us-gaap:RepaymentsOfLinesOfCredit
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_2bf0bc32ec7a4e1bb457c68b26fd5252"
      unitRef="U001">20234000</us-gaap:RepaymentsOfLinesOfCredit>
    <us-gaap:RepaymentsOfLinesOfCredit
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_1e86f317d3a54d5bade6e2b667460fd2"
      unitRef="U001">14005000</us-gaap:RepaymentsOfLinesOfCredit>
    <us-gaap:ProceedsFromIssuanceOfLongTermDebt
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_3f1a9cf039eb48c3af370a43c8d54095"
      unitRef="U001">7056000</us-gaap:ProceedsFromIssuanceOfLongTermDebt>
    <us-gaap:ProceedsFromIssuanceOfLongTermDebt
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_92fc70846a13489e86d071465d01ba31"
      unitRef="U001">19699000</us-gaap:ProceedsFromIssuanceOfLongTermDebt>
    <us-gaap:ProceedsFromIssuanceOfLongTermDebt
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_dde543ce81e446ebb69c56f2f069de9f"
      unitRef="U001">0</us-gaap:ProceedsFromIssuanceOfLongTermDebt>
    <acmr:RepaymentsOfLongTermBorrowing
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_4ef4a4b110554d81987f662022226b53"
      unitRef="U001">2127000</acmr:RepaymentsOfLongTermBorrowing>
    <acmr:RepaymentsOfLongTermBorrowing
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_9ed583a4833a49278b8c0eed4816827c"
      unitRef="U001">129000</acmr:RepaymentsOfLongTermBorrowing>
    <acmr:RepaymentsOfLongTermBorrowing
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_59b8a3a40c254131b288618f1656cbb1"
      unitRef="U001">0</acmr:RepaymentsOfLongTermBorrowing>
    <us-gaap:RepaymentsOfNotesPayable
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_7d037889044943339c2cd2fea48d6452"
      unitRef="U001">0</us-gaap:RepaymentsOfNotesPayable>
    <us-gaap:RepaymentsOfNotesPayable
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_f565455a4d8b4431ba021b52088420b9"
      unitRef="U001">1820000</us-gaap:RepaymentsOfNotesPayable>
    <us-gaap:RepaymentsOfNotesPayable
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_c30a3ef1983049a6a57eb56bc8a1c618"
      unitRef="U001">0</us-gaap:RepaymentsOfNotesPayable>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_ba779209c39b4ca184e3201f91f62a59"
      unitRef="U001">3430000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_0ac81afc0b3c4061ae97249de3a3a37e"
      unitRef="U001">2745000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_80ec0e81d4f749b3ad9aed503e1082dc"
      unitRef="U001">317000</us-gaap:ProceedsFromStockOptionsExercised>
    <acmr:ProceedsFromIssuanceOfNetOfDirectExpenses
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_d94af47ca7b24259a3428788d9d02574"
      unitRef="U001">2287000</acmr:ProceedsFromIssuanceOfNetOfDirectExpenses>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_a9b1e906251844d2a3c586fefe95ea6b"
      unitRef="U001">0</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_524f0a56fe44464baf3f9ae87a5c1194"
      unitRef="U001">0</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_9ac35f6cecba42738ba9d24457cd07b4"
      unitRef="U001">26434000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_9e223bd4ec78407dbf0676b6efb614b2"
      unitRef="U001">0</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_3acbd44edd66449fb423f6ddf72fb13d"
      unitRef="U001">0</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_b44d2c626deb413e8ba6d0aa38ace0d5"
      unitRef="U001">2827000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <acmr:PaymentForCancellationOfStockOptions
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_581b9a1db423412f94a6642c427db989"
      unitRef="U001">0</acmr:PaymentForCancellationOfStockOptions>
    <acmr:PaymentForCancellationOfStockOptions
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_eef6a9432a9149d99a18a9aa57640df3"
      unitRef="U001">0</acmr:PaymentForCancellationOfStockOptions>
    <acmr:PaymentForCancellationOfStockOptions
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_3d396e514fe14193ba53bb2b4b2f4c41"
      unitRef="U001">576000</acmr:PaymentForCancellationOfStockOptions>
    <us-gaap:ProceedsFromMinorityShareholders
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_07da98c8eb5f44e69965cc34515babb0"
      unitRef="U001">0</us-gaap:ProceedsFromMinorityShareholders>
    <us-gaap:ProceedsFromMinorityShareholders
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_b093a4ba26a84734b7a85634fe0eb4b1"
      unitRef="U001">0</us-gaap:ProceedsFromMinorityShareholders>
    <us-gaap:ProceedsFromMinorityShareholders
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_1a0b405401254d4bb70dbc8d4514a738"
      unitRef="U001">59679000</us-gaap:ProceedsFromMinorityShareholders>
    <acmr:ProceedsFromSubsidiaryEquityIssuanceNetOfIssuanceCosts
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_b16bcc5c033c430086d2b8b755b3e777"
      unitRef="U001">545512000</acmr:ProceedsFromSubsidiaryEquityIssuanceNetOfIssuanceCosts>
    <acmr:ProceedsFromSubsidiaryEquityIssuanceNetOfIssuanceCosts
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_b73703258b1142e085451dfa44d06700"
      unitRef="U001">0</acmr:ProceedsFromSubsidiaryEquityIssuanceNetOfIssuanceCosts>
    <acmr:ProceedsFromSubsidiaryEquityIssuanceNetOfIssuanceCosts
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_7ad4dd5c7eb74fd084cca055c43afa8f"
      unitRef="U001">0</acmr:ProceedsFromSubsidiaryEquityIssuanceNetOfIssuanceCosts>
    <us-gaap:ProceedsFromWarrantExercises
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_6bee992ab0694d4caf6580c2cbab49f0"
      unitRef="U001">1820000</us-gaap:ProceedsFromWarrantExercises>
    <us-gaap:ProceedsFromWarrantExercises
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_52874c15a4fd46498d119b10f62d8668"
      unitRef="U001">0</us-gaap:ProceedsFromWarrantExercises>
    <us-gaap:ProceedsFromWarrantExercises
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_1d77b76e3c8c43de8149ba65432bc7db"
      unitRef="U001">0</us-gaap:ProceedsFromWarrantExercises>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_081cf22eba964445ab2be7fb1ee3a9f0"
      unitRef="U001">538766000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_ac7bb617b091458292ef528f41b87e4f"
      unitRef="U001">32834000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_60e2ccf9b53947ce877a9720c59eca74"
      unitRef="U001">87445000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_0a7c32d3e3c1462fbf82929c84d5ffa4"
      unitRef="U001">3908000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_a583491c3a574a9fb7c804abe208163f"
      unitRef="U001">4570000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_1fc52cb927ed44d3b4576c4ae3d7f0f0"
      unitRef="U001">-582000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_5cd85d808656471199ba0f3c3f76c3eb"
      unitRef="U001">491301000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_7f87a20815f141d7a4608b904b8dc7b8"
      unitRef="U001">-46093000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_1599eeec02e24237bdf57a68d8c5191b"
      unitRef="U001">90735000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20201231"
      decimals="-3"
      id="Fact_8a847ccb87fe4bbe91b6516376c5ed0b"
      unitRef="U001">71766000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20191231"
      decimals="-3"
      id="Fact_ff2f2ea75e2a428b92f9680264f33edf"
      unitRef="U001">117859000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20181231"
      decimals="-3"
      id="Fact_7ca2611e424f487b94ff72bcdab0c653"
      unitRef="U001">27124000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20211231"
      decimals="-3"
      id="Fact_0260ad728cc048e5b08fa2ba7ee04be5"
      unitRef="U001">563067000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20201231"
      decimals="-3"
      id="Fact_cf8c1fd359ac45a09eb0dd27fa898a06"
      unitRef="U001">71766000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20191231"
      decimals="-3"
      id="Fact_b0efdf570a254b3a8631cd48b3dda145"
      unitRef="U001">117859000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:InterestPaidNet
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_aea01df58ba64439a4ddf7f5511b7b9b"
      unitRef="U001">765000</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_a35485fc2a784e0389f361d654bbb53a"
      unitRef="U001">982000</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_8456108f1403435795de1ac70a5852ea"
      unitRef="U001">745000</us-gaap:InterestPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_02ca7674688547e886fd620c24e2f8b6"
      unitRef="U001">1132000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_91f02eed8d0849eeb8be7f5e52db09de"
      unitRef="U001">4971000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_e60d6682feff490c9e4769d86e0ed7b4"
      unitRef="U001">1156000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="c20211231"
      decimals="-3"
      id="Fact_b6bb71c27a34445ea7b52ec255797c41"
      unitRef="U001">563067000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="c20201231"
      decimals="-3"
      id="Fact_b6940a7d76a74edaaede84d3df843781"
      unitRef="U001">71766000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="c20191231"
      decimals="-3"
      id="Fact_889e6b4b8a034683b079d80f36d0b1f2"
      unitRef="U001">58261000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:RestrictedCashCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_22c398508818487a993a37d31e073938"
      unitRef="U001">0</us-gaap:RestrictedCashCurrent>
    <us-gaap:RestrictedCashCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_9aac7f564a534856894d4916b7fa5237"
      unitRef="U001">0</us-gaap:RestrictedCashCurrent>
    <us-gaap:RestrictedCashCurrent
      contextRef="c20191231"
      decimals="-3"
      id="Fact_6f7a8bb08c9b4a41b5a5cdf0bf21568d"
      unitRef="U001">59598000</us-gaap:RestrictedCashCurrent>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20211231"
      decimals="-3"
      id="Fact_44dcb10c75b444818eeabcffe7d7ff7c"
      unitRef="U001">563067000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20201231"
      decimals="-3"
      id="Fact_8605dc8b7373400bb208232748a3dee0"
      unitRef="U001">71766000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20191231"
      decimals="-3"
      id="Fact_07618482f85544a5967e40e1a456e0ea"
      unitRef="U001">117859000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <acmr:WarrantConversionToCommonStock
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_bf5ba7d5384d45f8a9365560d08efd19"
      unitRef="U001">0</acmr:WarrantConversionToCommonStock>
    <acmr:WarrantConversionToCommonStock
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_b97f8caa09a74cba961b6a53650393f7"
      unitRef="U001">399000</acmr:WarrantConversionToCommonStock>
    <acmr:WarrantConversionToCommonStock
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_dd81af8d4df7427ebee4b9a98193afb3"
      unitRef="U001">9000</acmr:WarrantConversionToCommonStock>
    <acmr:ShareCancellation
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_56e9c7b789044610a1f79aeb84b00501"
      unitRef="U001">0</acmr:ShareCancellation>
    <acmr:ShareCancellation
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_85103beaceb743c7a85bb760a1934596"
      unitRef="U001">9715000</acmr:ShareCancellation>
    <acmr:ShareCancellation
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_eed5bf31541144c486f4eb12bc7ef11d"
      unitRef="U001">0</acmr:ShareCancellation>
    <acmr:CashlessExerciseOfStockOptions
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_a39b8e6da0554268affade3f9691b14b"
      unitRef="U001">137000</acmr:CashlessExerciseOfStockOptions>
    <acmr:CashlessExerciseOfStockOptions
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_04060feb9e5d4b0482d157cdb8f7bd51"
      unitRef="U001">0</acmr:CashlessExerciseOfStockOptions>
    <acmr:CashlessExerciseOfStockOptions
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_ce03ec06f9c94410a721e8086c4cf9f5"
      unitRef="U001">0</acmr:CashlessExerciseOfStockOptions>
    <acmr:IssuanceOfWarrantForSettlementOfFinancialLiability
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_e423bcdaf47548e899aa8db17dc27a27"
      unitRef="U001">0</acmr:IssuanceOfWarrantForSettlementOfFinancialLiability>
    <acmr:IssuanceOfWarrantForSettlementOfFinancialLiability
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_3b4747c8c8f84d3da7db7f37f113a0b5"
      unitRef="U001">19859000</acmr:IssuanceOfWarrantForSettlementOfFinancialLiability>
    <acmr:IssuanceOfWarrantForSettlementOfFinancialLiability
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_299ec58e26d2426984d33f73105b3b0c"
      unitRef="U001">0</acmr:IssuanceOfWarrantForSettlementOfFinancialLiability>
    <us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock
      contextRef="c20210101to20211231"
      id="Text_2440a09c88884a369cd1b474f6447dfb">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 1 &#x2013; DESCRIPTION OF BUSINESS&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;ACM Research, Inc. (&#x201c;ACM&#x201d;) and its subsidiaries (collectively with ACM, the &#x201c;Company&#x201d;) develop, manufacture and sell single-wafer wet cleaning equipment used to improve
      the manufacturing process and yield for advanced integrated chips. The Company markets and sells its single-wafer wet-cleaning equipment, under the brand name &#x201c;Ultra C,&#x201d; based on the Company&#x2019;s proprietary Space Alternated Phase Shift (&#x201c;SAPS&#x201d;) and
      Timely Energized Bubble Oscillation (&#x201c;TEBO&#x201d;) technologies. These tools are designed to remove random defects from a wafer surface efficiently, without damaging the wafer or its features, even at increasingly advanced process nodes.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;ACM was incorporated in California in 1998, and it initially focused on developing tools for manufacturing process steps involving the integration of ultra low-K
      materials and copper. The Company&#x2019;s early efforts focused on stress-free copper-polishing technology, and it sold tools based on that technology in the early 2000s.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In 2006 the Company established its operational center in Shanghai in the People&#x2019;s Republic of China (the &#x201c;PRC&#x201d;), where it operates through ACM&#x2019;s subsidiary ACM Research
      (Shanghai), Inc. (&#x201c;ACM Shanghai&#x201d;). ACM Shanghai was formed to help establish and build relationships with integrated circuit manufacturers in the PRC, and the Company initially financed its Shanghai operations in part through sales of non-controlling
      equity interests in ACM Shanghai.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In 2007 the Company began to focus its development efforts on single-wafer wet-cleaning solutions for the front-end chip fabrication process. The Company introduced its
      SAPS megasonic technology, which can be applied in wet wafer cleaning at numerous steps during the chip fabrication process, in 2009. It introduced its TEBO technology, which can be applied at numerous steps during the fabrication of small node
      two-dimensional conventional and three-dimensional patterned wafers, in March 2016. The Company has designed its equipment models for SAPS and TEBO solutions using a modular configuration that enables it to create a wet-cleaning tool meeting the
      specific requirements of a customer, while using pre-existing designs for chamber, electrical, chemical delivery and other modules. In August 2018, the Company introduced its Ultra-C Tahoe wafer cleaning tool, which can deliver high cleaning
      performance with significantly less sulfuric acid than typically consumed by conventional high-temperature single-wafer cleaning tools. Based on its electro-chemical plating (&#x201c;ECP&#x201d;) technology, the Company introduced in March 2019 its Ultra ECP AP,
      or &#x201c;Advanced Packaging,&#x201d; tool for bumping, or applying copper, tin and nickel to semiconductor wafers at the die-level, and its Ultra ECP MAP, or &#x201c;Multi-Anode Partial Plating,&#x201d; tool to deliver advanced electrochemical copper plating for copper
      interconnect applications in front-end wafer fabrication processes. The Company also offers a range of custom-made equipment, including cleaners, coaters and developers, to back-end wafer assembly and packaging factories, principally in the PRC.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In 2011 ACM Shanghai formed a wholly owned subsidiary in the PRC, ACM Research (Wuxi), Inc. (&#x201c;ACM Wuxi&#x201d;), to manage sales and service operations.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In November 2016 ACM re-domesticated from California to Delaware pursuant to a merger in which ACM Research, Inc., a California corporation, was merged into a newly
      formed, wholly owned Delaware subsidiary, also named ACM Research, Inc.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In June 2017 ACM formed a wholly owned subsidiary in Hong Kong, CleanChip Technologies Limited (&#x201c;CleanChip&#x201d;), to act on the Company&#x2019;s behalf in Asian markets outside the
      PRC by, for example, serving as a trading partner between ACM Shanghai and its customers, procuring raw materials and components, performing sales and marketing activities, and making strategic investments.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In August 2017 ACM purchased 18.77% of ACM Shanghai&#x2019;s
      equity interests held by Shanghai Science and Technology Venture Capital Co., Ltd. On November 8, 2017, ACM purchased the remaining 18.36%
      of ACM Shanghai&#x2019;s equity interest held by third parties, Shanghai Pudong High-Tech Investment Co., Ltd. (&#x201c;PDHTI&#x201d;) and Shanghai Zhangjiang Science &amp;amp; Technology Venture Capital Co., Ltd. (&#x201c;ZSTVC&#x201d;). At December 31, 2017, ACM owned all of the
      outstanding equity interests of ACM Shanghai, and indirectly through ACM Shanghai, owned all of the outstanding equity interests of ACM Wuxi.&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;On September 13, 2017, ACM effectuated a &lt;span style="-sec-ix-hidden:Fact_ef51bf21ed594997b6ee064ee1b3eef1"&gt;&lt;span style="-sec-ix-hidden:Fact_a34993ba44944024a0796470363588ab"&gt;1-for-3&lt;/span&gt;&lt;/span&gt;
      reverse stock split of Class A and Class B common stock. Unless otherwise indicated, all share numbers, per share amount, share prices, exercise prices and conversion rates set forth in these notes and the accompanying consolidated financial
      statements have been adjusted retrospectively to reflect the reverse stock split.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;On November 2, 2017, the Registration Statement on Form S-1 (File No. 333- 220451) for ACM&#x2019;s initial public offering of Class A common stock (the &#x201c;IPO&#x201d;) was declared
      effective by the U.S. Securities and Exchange Commission. Shares of Class A common stock began trading on the Nasdaq Global Market on November 3, 2017, and the closing for the IPO was held on November 7, 2017.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In December 2017 ACM formed a wholly owned subsidiary in the Republic of Korea, ACM Research Korea CO., LTD. (&#x201c;ACM Korea&#x201d;), to serve customers based in Republic of Korea
      and perform sales, marketing, research and development activities for new products and solutions.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In March 2019 ACM Shanghai formed a wholly owned subsidiary in the PRC, Shengwei Research (Shanghai), Inc., to manage activities related to addition of future long-term
      production capacity.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In June 2019 Cleanchip formed a wholly owned subsidiary in California, ACM Research (CA), Inc. (&#x201c;ACM California&#x201d;), to provide procurement services on behalf of ACM
      Shanghai.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In June 2019 ACM announced plans to complete over the next three years
      a listing (the &#x201c;STAR Listing&#x201d;) of shares of ACM Shanghai on the Shanghai Stock Exchange&#x2019;s new Sci-Tech innovAtion boaRd, known as the STAR Market, and a concurrent initial public offering (the &#x201c;STAR IPO&#x201d;) of ACM Shanghai shares in the PRC. ACM
      Shanghai is currently ACM&#x2019;s primary operating subsidiary, and at the time of announcement, was wholly owned by ACM. To meet a STAR Listing requirement that it have multiple independent stockholders in the PRC, ACM Shanghai completed private
      placements of its shares in June and November 2019, following which, as of September 30, 2020, the private placement investors held a total of 8.3%
      of the outstanding shares of ACM Shanghai and ACM Research held the remaining 91.7%. As part of the STAR Listing process, in June 2020 the
      ownership interests held by the private investors were reclassified from redeemable non-controlling interests to non-controlling interests as the redemption feature was terminated (note 19).&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In preparation for the STAR IPO, ACM completed a reorganization in December 2019 that included the sale of all of the shares of Cleanchip by ACM to ACM Shanghai for $3,500. The reorganization and sale had no impact on ACM&#x2019;s consolidated financial statements.&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In August 2021 ACM formed a wholly owned subsidiary Singapore, ACM research (Singapore) PTE, Ltd. to perform sales, marketing, and other business development activities.&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; In November 2021, ACM&#x2019;s operating subsidiary ACM Shanghai, completed its STAR IPO and its shares began trading on the STAR Market.&#160; In the STAR IPO, ACM Shanghai issued
      43,355,753 shares, representing 10%
      of the total 433,557,100 shares outstanding after the issuance. The shares were issued at a public offering price of RMB 85.00 per share, and the net proceeds of the STAR IPO, after issuance costs,&#160; totaled $545,512. Upon completion of the STAR IPO, ACM owned 82.5% of the
      outstanding ACM Shanghai shares.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; The Company has direct or indirect interests in the following subsidiaries:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 38.97%; vertical-align: middle;"&gt; &lt;/td&gt;

    &lt;td style="width: 28.89%; vertical-align: bottom;"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Place and date of&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="2" style="width: 32.14%; vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Effective interest held as at&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 38.97%; vertical-align: middle; border-bottom: #000000 2px solid;"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Name of subsidiaries&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 28.89%; vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;incorporation&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 16.27%; vertical-align: middle; border-bottom: #000000 2px solid;"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 15.87%; vertical-align: middle; border-bottom: #000000 2px solid;"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 38.97%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;ACM Research (Shanghai), Inc.&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 28.89%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;PRC, May 2005&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 16.27%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;82.5%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 15.87%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;91.7%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 38.97%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;ACM Research (Wuxi), Inc.&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 28.89%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;PRC, July 2011&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 16.27%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;82.5%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 15.87%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;91.7%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 38.97%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;CleanChip Technologies Limited&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 28.89%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Hong Kong, September 2017&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 16.27%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;82.5%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 15.87%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;91.7%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 38.97%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;ACM Research Korea CO., LTD.&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 28.89%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Korea, December 2017&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 16.27%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;82.5%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 15.87%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;91.7%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 38.97%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;Shengwei Research (Shanghai), Inc.&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 28.89%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;PRC, March 2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 16.27%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;82.5%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 15.87%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;91.7%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 38.97%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;ACM Research (CA), Inc.&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 28.89%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;USA, April 2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 16.27%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;82.5%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 15.87%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;91.7%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 38.97%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;ACM Research (Cayman), Inc.&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 28.89%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cayman Islands, April 2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 16.27%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;100.0%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 15.87%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;100.0%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="width: 38.97%; vertical-align: middle;"&gt;ACM Research (Singapore) PTE. Ltd.&lt;br/&gt;
          &lt;/td&gt;

    &lt;td rowspan="1" style="width: 28.89%; vertical-align: middle;"&gt;Singapore, August 2021&lt;br/&gt;
          &lt;/td&gt;

    &lt;td rowspan="1" style="width: 16.27%; vertical-align: middle; text-align: right;"&gt;100.0%&lt;br/&gt;
          &lt;/td&gt;

    &lt;td rowspan="1" style="width: 15.87%; vertical-align: middle; text-align: right;"&gt;NM&lt;br/&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock>
    <acmr:BusinessAcquisitionPercentageOfEquityInterestsAcquired
      contextRef="c20170831_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="4"
      id="Fact_b543103c5faf42f6bbd22fa55834be7c"
      unitRef="U004">0.1877</acmr:BusinessAcquisitionPercentageOfEquityInterestsAcquired>
    <acmr:BusinessAcquisitionPercentageOfEquityInterestsAcquired
      contextRef="c20171108_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="4"
      id="Fact_7961a7e2d90d4646b935442617de3581"
      unitRef="U004">0.1836</acmr:BusinessAcquisitionPercentageOfEquityInterestsAcquired>
    <acmr:TermToCompleteListingOfShares
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      id="Fact_a6289c2d0adc48ca8624b6f96501b12e">P3Y</acmr:TermToCompleteListingOfShares>
    <acmr:BusinessAcquisitionPercentageOfEquityInterestsAcquired
      contextRef="c20211231_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="3"
      id="Fact_b7d697402fc84ee4ba7dda7213ad7b2a"
      unitRef="U004">0.083</acmr:BusinessAcquisitionPercentageOfEquityInterestsAcquired>
    <acmr:BusinessAcquisitionPercentageOfEquityInterestsAcquired
      contextRef="c20211231_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember"
      decimals="3"
      id="Fact_a71c4688b67e455c8bf1fb0b66d8ebc4"
      unitRef="U004">0.917</acmr:BusinessAcquisitionPercentageOfEquityInterestsAcquired>
    <us-gaap:ProceedsFromDivestitureOfInterestInConsolidatedSubsidiaries
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_CleanChipTechnologiesLimitedMember"
      decimals="-3"
      id="Fact_bdad9bde98f448e4b33acc3737d09f7a"
      unitRef="U001">3500000</us-gaap:ProceedsFromDivestitureOfInterestInConsolidatedSubsidiaries>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="c20211101to20211130_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_SubsidiarySaleOfStockAxis_IPOMember"
      decimals="0"
      id="Fact_f6d9b1a316c24f2786dee822ca3a2c46"
      unitRef="U002">43355753</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <acmr:PercentageAmountOfSharesOfferedFromSharesOutstanding
      contextRef="c20211130_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_SubsidiarySaleOfStockAxis_IPOMember"
      decimals="2"
      id="Fact_cab9415e54a94d0da0eb172ffa4edf79"
      unitRef="U004">0.10</acmr:PercentageAmountOfSharesOfferedFromSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="c20211130_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_SubsidiarySaleOfStockAxis_IPOMember"
      decimals="0"
      id="Fact_0a55e2ab0ece4da28de7e396df68b738"
      unitRef="U002">433557100</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:SaleOfStockPricePerShare
      contextRef="c20211130_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_SubsidiarySaleOfStockAxis_IPOMember"
      decimals="2"
      id="Fact_28e1e246a9a34637bf5dae8aba10590e"
      unitRef="U005">85.00</us-gaap:SaleOfStockPricePerShare>
    <us-gaap:ProceedsFromIssuanceInitialPublicOffering
      contextRef="c20211101to20211130_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_SubsidiarySaleOfStockAxis_IPOMember"
      decimals="-3"
      id="Fact_38b0aef028ac4516b1f2b46bae93f2a0"
      unitRef="U001">545512000</us-gaap:ProceedsFromIssuanceInitialPublicOffering>
    <us-gaap:SaleOfStockPercentageOfOwnershipAfterTransaction
      contextRef="c20211101to20211130_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_SubsidiarySaleOfStockAxis_IPOMember"
      decimals="3"
      id="Fact_3d90e8b129244862827f8b294f7e3b91"
      unitRef="U004">0.825</us-gaap:SaleOfStockPercentageOfOwnershipAfterTransaction>
    <acmr:DirectOrIndirectInterestsInSubsidiariesTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_c6699ab199c04bec9ffe48c1b89d7e5f">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; The Company has direct or indirect interests in the following subsidiaries:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 38.97%; vertical-align: middle;"&gt; &lt;/td&gt;

    &lt;td style="width: 28.89%; vertical-align: bottom;"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Place and date of&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="2" style="width: 32.14%; vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Effective interest held as at&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 38.97%; vertical-align: middle; border-bottom: #000000 2px solid;"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Name of subsidiaries&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 28.89%; vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;incorporation&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 16.27%; vertical-align: middle; border-bottom: #000000 2px solid;"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 15.87%; vertical-align: middle; border-bottom: #000000 2px solid;"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 38.97%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;ACM Research (Shanghai), Inc.&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 28.89%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;PRC, May 2005&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 16.27%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;82.5%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 15.87%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;91.7%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 38.97%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;ACM Research (Wuxi), Inc.&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 28.89%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;PRC, July 2011&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 16.27%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;82.5%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 15.87%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;91.7%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 38.97%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;CleanChip Technologies Limited&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 28.89%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Hong Kong, September 2017&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 16.27%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;82.5%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 15.87%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;91.7%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 38.97%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;ACM Research Korea CO., LTD.&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 28.89%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Korea, December 2017&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 16.27%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;82.5%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 15.87%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;91.7%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 38.97%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;Shengwei Research (Shanghai), Inc.&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 28.89%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;PRC, March 2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 16.27%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;82.5%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 15.87%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;91.7%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 38.97%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;ACM Research (CA), Inc.&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 28.89%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;USA, April 2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 16.27%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;82.5%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 15.87%; vertical-align: middle; background-color: #FFFFFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;91.7%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 38.97%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;ACM Research (Cayman), Inc.&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 28.89%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cayman Islands, April 2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 16.27%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;100.0%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td style="width: 15.87%; vertical-align: middle; background-color: #CCEEFF;"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt;"&gt;100.0%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="width: 38.97%; vertical-align: middle;"&gt;ACM Research (Singapore) PTE. Ltd.&lt;br/&gt;
          &lt;/td&gt;

    &lt;td rowspan="1" style="width: 28.89%; vertical-align: middle;"&gt;Singapore, August 2021&lt;br/&gt;
          &lt;/td&gt;

    &lt;td rowspan="1" style="width: 16.27%; vertical-align: middle; text-align: right;"&gt;100.0%&lt;br/&gt;
          &lt;/td&gt;

    &lt;td rowspan="1" style="width: 15.87%; vertical-align: middle; text-align: right;"&gt;NM&lt;br/&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</acmr:DirectOrIndirectInterestsInSubsidiariesTableTextBlock>
    <acmr:NameOfSubsidiary
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      id="Fact_1aa8d60eee2141848d7e6e6599de4117">ACM Research (Shanghai), Inc.</acmr:NameOfSubsidiary>
    <acmr:NameOfDateOfIncorporation
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      id="Fact_b6edc5fb21aa4e3a938aec27c1cfccf1">PRC, May 2005</acmr:NameOfDateOfIncorporation>
    <acmr:SubsidiariesOwnershipPercentage
      contextRef="c20211231_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="3"
      id="Fact_a92771a220c24bcbb6294ec80df57ec9"
      unitRef="U004">0.825</acmr:SubsidiariesOwnershipPercentage>
    <acmr:SubsidiariesOwnershipPercentage
      contextRef="c20201231_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="3"
      id="Fact_006d292a114a4710a5ebe1626f6c7782"
      unitRef="U004">0.917</acmr:SubsidiariesOwnershipPercentage>
    <acmr:NameOfSubsidiary
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchWuxiIncMember"
      id="Fact_0f14eda2d33d4a74b40986429c98f2ef">ACM Research (Wuxi), Inc.</acmr:NameOfSubsidiary>
    <acmr:NameOfDateOfIncorporation
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchWuxiIncMember"
      id="Fact_de17b2a33acd4b248a8a14f9b2ac0d81">PRC, July 2011</acmr:NameOfDateOfIncorporation>
    <acmr:SubsidiariesOwnershipPercentage
      contextRef="c20211231_ConsolidatedEntitiesAxis_ACMResearchWuxiIncMember"
      decimals="3"
      id="Fact_9073ec5d17e54694915a39d1bd1c52c1"
      unitRef="U004">0.825</acmr:SubsidiariesOwnershipPercentage>
    <acmr:SubsidiariesOwnershipPercentage
      contextRef="c20201231_ConsolidatedEntitiesAxis_ACMResearchWuxiIncMember"
      decimals="3"
      id="Fact_6b4f713c334148af81ebcbf1fdf9dc33"
      unitRef="U004">0.917</acmr:SubsidiariesOwnershipPercentage>
    <acmr:NameOfSubsidiary
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_CleanChipTechnologiesLimitedMember"
      id="Fact_e59e4f19bd5a4f6a99066e449d9e4c86">CleanChip Technologies Limited</acmr:NameOfSubsidiary>
    <acmr:NameOfDateOfIncorporation
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_CleanChipTechnologiesLimitedMember"
      id="Fact_b2cbf341cb0a42afbdd20716bc470f9e">Hong Kong, September 2017</acmr:NameOfDateOfIncorporation>
    <acmr:SubsidiariesOwnershipPercentage
      contextRef="c20211231_ConsolidatedEntitiesAxis_CleanChipTechnologiesLimitedMember"
      decimals="3"
      id="Fact_9e08499554264da2b59792a5c22631d7"
      unitRef="U004">0.825</acmr:SubsidiariesOwnershipPercentage>
    <acmr:SubsidiariesOwnershipPercentage
      contextRef="c20201231_ConsolidatedEntitiesAxis_CleanChipTechnologiesLimitedMember"
      decimals="3"
      id="Fact_8880f5d60873411593788e8d09921e57"
      unitRef="U004">0.917</acmr:SubsidiariesOwnershipPercentage>
    <acmr:NameOfSubsidiary
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchKoreaCOLTDMember"
      id="Fact_2944e0b402b3404f96d25461dde74df8">ACM Research Korea CO., LTD.</acmr:NameOfSubsidiary>
    <acmr:NameOfDateOfIncorporation
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchKoreaCOLTDMember"
      id="Fact_e7d3fa4ad2884370904be3f5d225d44a">Korea, December 2017</acmr:NameOfDateOfIncorporation>
    <acmr:SubsidiariesOwnershipPercentage
      contextRef="c20211231_ConsolidatedEntitiesAxis_ACMResearchKoreaCOLTDMember"
      decimals="3"
      id="Fact_192bb99d763142e28f19fde2ca05bd49"
      unitRef="U004">0.825</acmr:SubsidiariesOwnershipPercentage>
    <acmr:SubsidiariesOwnershipPercentage
      contextRef="c20201231_ConsolidatedEntitiesAxis_ACMResearchKoreaCOLTDMember"
      decimals="3"
      id="Fact_5429fc2217934ef2a0e33335eb164cad"
      unitRef="U004">0.917</acmr:SubsidiariesOwnershipPercentage>
    <acmr:NameOfSubsidiary
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember"
      id="Fact_560f0d576d3a43ea84a3f835b2f5ae75">Shengwei Research (Shanghai), Inc.</acmr:NameOfSubsidiary>
    <acmr:NameOfDateOfIncorporation
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember"
      id="Fact_4e4c6175e8ea41afa8c2abd86d647c56">PRC, March 2019</acmr:NameOfDateOfIncorporation>
    <acmr:SubsidiariesOwnershipPercentage
      contextRef="c20211231_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember"
      decimals="3"
      id="Fact_87387080332347f9bc267aff7cc7039a"
      unitRef="U004">0.825</acmr:SubsidiariesOwnershipPercentage>
    <acmr:SubsidiariesOwnershipPercentage
      contextRef="c20201231_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember"
      decimals="3"
      id="Fact_e1a6abd523da4946b2b71063ae2668ff"
      unitRef="U004">0.917</acmr:SubsidiariesOwnershipPercentage>
    <acmr:NameOfSubsidiary
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchCAIncMember"
      id="Fact_095b3bd89b9e4e9d8763b58a3a56a8f1">ACM Research (CA), Inc.</acmr:NameOfSubsidiary>
    <acmr:NameOfDateOfIncorporation
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchCAIncMember"
      id="Fact_2e2bb68b73c24bd48958ca65cab50d1c">USA, April 2019</acmr:NameOfDateOfIncorporation>
    <acmr:SubsidiariesOwnershipPercentage
      contextRef="c20211231_ConsolidatedEntitiesAxis_ACMResearchCAIncMember"
      decimals="3"
      id="Fact_d135103830fe49b79fb6aff02eaee683"
      unitRef="U004">0.825</acmr:SubsidiariesOwnershipPercentage>
    <acmr:SubsidiariesOwnershipPercentage
      contextRef="c20201231_ConsolidatedEntitiesAxis_ACMResearchCAIncMember"
      decimals="3"
      id="Fact_cf981555420740c383769090a318c0e5"
      unitRef="U004">0.917</acmr:SubsidiariesOwnershipPercentage>
    <acmr:NameOfSubsidiary
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchCaymanIncMember"
      id="Fact_68608f4f34944a5e964ef9fb5b10f876">ACM Research (Cayman), Inc.</acmr:NameOfSubsidiary>
    <acmr:NameOfDateOfIncorporation
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchCaymanIncMember"
      id="Fact_fa2a0670782a43b8ae73e48bf80d3d96">Cayman Islands, April 2019</acmr:NameOfDateOfIncorporation>
    <acmr:SubsidiariesOwnershipPercentage
      contextRef="c20211231_ConsolidatedEntitiesAxis_ACMResearchCaymanIncMember"
      decimals="3"
      id="Fact_9818121bca9b4441b6f107ffcf0fe1da"
      unitRef="U004">1.000</acmr:SubsidiariesOwnershipPercentage>
    <acmr:SubsidiariesOwnershipPercentage
      contextRef="c20201231_ConsolidatedEntitiesAxis_ACMResearchCaymanIncMember"
      decimals="3"
      id="Fact_9aac21a83a55442997fc80d38b91d515"
      unitRef="U004">1.000</acmr:SubsidiariesOwnershipPercentage>
    <acmr:NameOfSubsidiary
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchSingaporePTELTDMember"
      id="Fact_727d3e0e7a9649e785d5c4c549158a70">ACM Research (Singapore) PTE. Ltd.</acmr:NameOfSubsidiary>
    <acmr:NameOfDateOfIncorporation
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchSingaporePTELTDMember"
      id="Fact_3f146da661fa437a97ef1d28c6a4273c">Singapore, August 2021</acmr:NameOfDateOfIncorporation>
    <acmr:SubsidiariesOwnershipPercentage
      contextRef="c20211231_ConsolidatedEntitiesAxis_ACMResearchSingaporePTELTDMember"
      decimals="3"
      id="Fact_bd2a35888f684c2cac5e447e7a9b6af2"
      unitRef="U004">1.000</acmr:SubsidiariesOwnershipPercentage>
    <us-gaap:SignificantAccountingPoliciesTextBlock
      contextRef="c20210101to20211231"
      id="Text_81b82ab3b6214c0f9e1946f76d553a01">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 2 &#x2013; SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Basis of Presentation and Principles of Consolidation&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company&#x2019;s consolidated financial statements include the accounts of ACM and its subsidiaries, including ACM Shanghai and its subsidiaries, which include ACM Wuxi,
      ACM Shengwei and CleanChip (the subsidiaries of which include ACM California and ACM Korea). ACM&#x2019;s subsidiaries are those entities in which ACM, directly and indirectly, controls more than one half of the voting power. All significant intercompany
      transactions and balances have been eliminated upon consolidation.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;COVID-19 Assessment&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The outbreak of COVID-19, the coronavirus, has grown both in the United States and globally, and related government and private sector responsive actions have adversely
      affected the Company&#x2019;s business operations. In December 2019 a series of emergency quarantine measures taken by the PRC government disrupted domestic business activities during the weeks after the initial outbreak of COVID-19. Since that time, an
      increasing number of countries, including the United States, have imposed restrictions on travel to and from the PRC and elsewhere, as well as general movement restrictions, business closures and other measures imposed to slow the spread of COVID-19.
      The situation continues to develop, however, and it is impossible to predict the effect and ultimate impact of the COVID-19 pandemic on the Company&#x2019;s business operations and results. While the quarantine, social distancing and other regulatory
      measures instituted or recommended in response to COVID-19 are expected to be temporary, the duration of the business disruptions, and related financial impact, cannot be estimated at this time. COVID-19 has been declared a worldwide health pandemic
      that could adversely affect the economies and financial markets of many countries, resulting in an economic downturn and changes in global economic policy that could reduce demand for the Company&#x2019;s products and its customers&#x2019; chips and have a
      material adverse impact on the Company&#x2019;s business, operating results and financial condition. Through Dece&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;mber&lt;/span&gt; 31, 2021, the Company had not experienced a significant negative
      impact from COVID-19 on its operations, capital and financial resources, including overall liquidity position.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Company conducts substantially all of its product development, manufacturing, support and services in
        the PRC, and those activities have been directly impacted by the COVID-19 pandemic and related restrictions on transportation and public appearances. The Company cannot assure that closures or reductions of its PRC operations or production may not
        be necessary in upcoming months as the result of business interruptions arising from protective measures being taken by the PRC and other governmental agencies or of other consequences of the COVID-19 pandemic.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Company&#x2019;s corporate headquarters are located in San Mateo County in the San Francisco Bay Area. The
        effects of actions taken by local governmental agencies in the future may negatively impact productivity, disrupt the business of the Company and delay timelines, the magnitude of which will depend, in part, on the length and severity of the
        restrictions and other limitations on the Company&#x2019;s ability to conduct its business in the ordinary course.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;prolonged and broad-based shift to a remote working environment continues to create inherent
        productivity, connectivity, and oversight challenges and could affect our ability to enhance, develop and support existing products and services, detect and prevent spam and problematic content, hold product sales and marketing events, and generate
        new sales leads, among others. In addition, the changed environment under which the Company is operating could have an effect on its internal controls over financial reporting as well as our ability to meet a number of its compliance requirements
        in a timely or quality manner. Additional and/or extended, governmental lockdowns, restrictions or new regulations could significantly impact the ability of our employees and vendors to work productively. Governmental restrictions have been
        globally inconsistent and it remains unclear when a return to worksite locations or travel will be permitted or what restrictions will be in place in those environments. As the Company prepares to return its workforce in more locations back to the
        office in 2022, it may experience increased costs as it prepares its facilities for a safe return to work environment and experiment with hybrid work models, in addition to potential effects on its ability to compete effectively and maintain its
        corporate culture.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Extended &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;periods of interruption to our corporate, development or manufacturing facilities due to the
        COVID-19 pandemic could cause the Company to lose revenue and market share, which would depress its financial performance and could be difficult to recapture. The Company&#x2019;s business may also be harmed if travel to or from the PRC or the United
        States continues to be restricted or inadvisable or if members of management and other employees are absent because they contract the coronavirus, they elect not to come to work due to the illness affecting others in the Company&#x2019;s office or
        laboratory facilities, or they are subject to quarantines or other governmentally imposed restrictions.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Use of Estimates&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The preparation of the consolidated financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the reported amounts
      of assets and liabilities and disclosure of contingent assets and liabilities at the balance sheet date and the reported revenues and expenses during the reported period in the consolidated financial statements and accompanying notes. The Company&#x2019;s
      significant accounting estimates and assumptions include, but are not limited to, those used for the valuation and recognition of fair value of trading securities, stock-based compensation arrangements and warrant liability, realization of deferred
      tax assets, assessment for impairment of long-lived assets, allowance for doubtful accounts, inventory valuation for excess and obsolete inventories, lower of cost and market value or net realizable value of inventories, depreciable lives of property
      and equipment and useful life of intangible assets.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Management evaluates these estimates and assumptions on a regular basis. Actual results could differ from those estimates and assumptions.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Reclassifications&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; margin-right: 12pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Certain prior year amounts in the notes to the Consolidated Financial Statements, have been reclassified to conform with the current year
      presentation. These classifications within the statements had no impact on the Company&#x2019;s results of operations.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Cash and Cash Equivalents&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cash and cash equivalents consist of cash on hand, bank deposits that are unrestricted as to withdrawal and use, and highly liquid investments with an original maturity
      date of three months or less at the date of purchase. At times, cash deposits may exceed government-insured limits.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Restricted cash&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Restricted cash represents deposits not readily available to ACM. Restricted cash as of December 31, 2019 represented cash hold in reserve, all of the proceeds received
      from issuance of common stock to redeemable non-controlling interest in segregated cash and cash-equivalent accounts. There was no
      restricted cash as of December 31, 2020, as the redemption feature of these proceeds was terminated during the second quarter of 2020.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Accounts Receivable&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accounts receivable are presented net of an allowance for doubtful accounts. The Company reviews its accounts receivable on a periodic basis and makes general and
      specific allowances when there is doubt as to the collectability of individual balances. In evaluating the collectability of individual receivable balances, the Company considers many factors, including the age of the balance, a customer&#x2019;s historical
      payment history and credit worthiness, current economic trends and reasonable and supportable forecasts. Accounts are written off after all collection efforts have been exhausted. At December 31, 2021, and 2020, the Company, based on a review of its
      outstanding balances and its customers, determined the allowance for doubtful accounts in the amount of $0 and $0 respectively.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Land use right, net&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The land use right represents the cost to purchase a right to use state-owned land in the PRC with lease terms of 50 years expiring in 2070, for which an upfront lump-sum payment was made during the year ended December 31, 2020. The Company classifies the land use right as non-current assets on the
      consolidated balance sheets (note 7).&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The land use right is carried at cost less accumulated amortization and impairment losses, if any. Amortization is computed using the straight-line method over the term
      specified in the land use right certificate, which is 50 years.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Inventory&lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Inventory consists of raw materials and related goods, work-in-progress, finished goods, and other consumable materials such as spare parts. Finished goods typically are
      shipped from the Company&#x2019;s warehouse within one month of completion.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Inventory was recorded at the lower of cost or net realizable value at December 31, 2021 and 2020.&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;The cost of a general inventory item is determined using the weighted moving average method. Under the weighted moving average method, the Company calculates the new average price
                of all items of a particular inventory stock each time one or more items of that stock are purchased. The then-current average price of the stock is used for purposes of determining cost of inventory or cost of revenue. The cost of an
                inventory item purchased specifically for a customized product is determined using the specific identification method. Low-cost consumable materials and packaging materials are expensed as incurred.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net realizable value is the estimated selling price, in the ordinary course of business, less estimated costs to complete or dispose.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company assesses the recoverability of all inventories quarterly to determine if any adjustments are required. Potential excess or obsolete inventory is written off
      based on management&#x2019;s analysis of inventory levels and estimates of future 12-month demand and market conditions.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Property, Plant and Equipment, Net&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Property, plant and equipment are recorded at cost less accumulated depreciation and any provision for impairment in value. Depreciation begins when the asset is placed
      in service and is calculated by using the straight-line method over the estimated useful life of an asset (or, if shorter, over the lease term). Betterments or renewals are capitalized when incurred. Plant, property and equipment is reviewed each
      year to determine whether any events or circumstances indicate that the carrying amount of the assets may not be recoverable.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Estimated useful lives of assets in the United States are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div&gt;
      &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; margin-left: 0px; margin-right: auto;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; text-indent: -12pt; margin-left: 12pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Computer and office equipment&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3 to 5 years&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #FFFFFF;"&gt;
              &lt;div style="text-align: left; text-indent: -12pt; margin-left: 12pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Furniture and fixtures&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #FFFFFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;5 years&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; text-indent: -12pt; margin-left: 12pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Leasehold improvements&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;shorter of lease term or estimated useful life&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
    &lt;/div&gt;

&lt;div style="clear: both;"&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;ACM&#x2019;s subsidiaries follow regulations for depreciation of fixed assets implemented under the PRC&#x2019;s Enterprise Income Tax Law, which state that the minimum useful lives
      used for calculating depreciation for fixed assets are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div&gt;
      &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Manufacturing equipment&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;for small to medium-sized equipment, 5 years; for
                large equipment,&lt;/div&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;estimated by purchasing department at time of acceptance&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #FFFFFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Furniture and fixtures&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #FFFFFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;5 years&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Transportation equipment&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;4 to 5 years&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #FFFFFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Electronic equipment&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #FFFFFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3 to 5 years&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Leasehold improvements&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;remaining lease term for improvements on leased fixed assets or,&lt;/div&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;for large improvements, estimated useful life;&lt;/div&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;not less than 3 years for non-fixed asset repairs&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
      &lt;/div&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Expenditures for maintenance and repairs that neither materially add to the value of the property nor appreciably prolong the life of the property are charged to expense
      as incurred. Upon retirement or sale of an asset, the cost of the asset and the related accumulated depreciation are eliminated from the accounts and any resulting gain or loss is credited or charged to income.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Intangible Assets, Net&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Intangible assets consist of software used for finance, manufacturing, and research and development purposes. Assets are valued at cost at the time of acquisition and
      are amortized over their beneficial periods. If a contract specifies a beneficial period, then the intangible asset is amortized over a term not exceeding the beneficial period. If the contract does not specify a beneficial period, then the
      intangible asset is amortized over a term not exceeding the valid period specified by local law. If neither the contract nor local law specifies a beneficial period, then the intangible asset is amortized over a period of up to 10 years. Currently, the software that the Company uses is amortized for between &lt;span style="-sec-ix-hidden:Fact_2c89738b26ae455db9bbfa2c1318eee4"&gt;two&lt;/span&gt; and ten-years, based on its &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;functionality and useful life in&lt;/span&gt; accordance with the policy described above.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Investments&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company uses the equity method of accounting for its investment in, and earning or loss of, companies that it does not control but over which it does exert
      significant influence. The Company considers whether the fair value of its equity method investment has declined below its carrying value whenever adverse events or changes in circumstances indicate that recorded value may not be recoverable. The
      Company reviews its investments for other-than-temporary impairment whenever events or changes in business circumstances indicate that the carrying value of the investment may not be fully recoverable. Investments identified as having an indication
      of impairment are subject to further analysis to determine if the impairment is other-than-temporary and this analysis requires estimating the fair value of the investment. The determination of fair value of the investment involves considering
      factors such as current economic and market conditions, the operating performance of the entities including current earnings trends and forecasted cash flows, and other company and industry specific information. If the Company considers any decline
      to be other than temporary (based on various factors, including historical financial results and the overall health of the investee), then a write-down would be recorded to estimated fair value. See note 14 for discussion of equity method investment.&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; The Company elects to measure its investments in other equity securities that the Company does not have control nor significant influence on the investee at cost minus
      impairment, if any for those equity securities without a readily determinable fair value.&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;All marketable securities are classified as trading securities and trading securities and are stated at fair market value, less a discount applied to reflect the
      remaining lock-up period when the securities are subject to lock-up period. Fair market value is determined by the most recently traded price of the security at the balance sheet date. Net realized and unrealized gains and losses on trading
      securities are included in the consolidated statements of operations. The cost of investments sold is based on the average cost method. Interest and dividend income earned are included in other income (expense), net.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Valuation of Long-Lived Assets&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Long-lived assets are evaluated for impairment whenever events or changes in circumstance indicate that the carrying value of the assets may not be fully recoverable or
      that the useful life of the assets is shorter than the Company had originally estimated. When these events or changes occur, the Company evaluates the impairment of the long-lived assets by comparing the carrying value of the assets to an estimate of
      future undiscounted cash flows expected to be generated from the use of the assets and their eventual disposition. If the sum of the expected future undiscounted cash flow is less than the carrying value of the assets, the Company recognizes an
      impairment loss based on the excess of the carrying value over the fair value. No impairment charge was recognized for either of the periods presented.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Leases&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company determines if an arrangement is a lease at inception. Operating leases are included in operating lease right-of-use (&#x201c;ROU&#x201d;) assets, other current liabilities
      and operating lease liabilities in the consolidated balance sheets.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;ROU assets represent the Company&#x2019;s right to use an underlying asset for the lease term, and lease liabilities represent the Company&#x2019;s obligation to make lease payments
      arising from the lease. Operating lease ROU assets and liabilities are recognized at commencement date based on the present value of lease payments over the lease term. As most of the Company&#x2019;s leases do not provide an implicit rate, the Company uses
      its incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments. It uses the implicit rate when readily determinable. The operating lease ROU asset also includes any lease
      payments made and excludes lease incentives. The Company&#x2019;s lease terms may include options to extend or terminate the lease when it is reasonably certain that the Company will exercise that option. Lease expense for lease payments is recognized on a
      straight-line basis over the lease term.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company derives revenue principally from the sale of semiconductor capital equipment. Revenue from contracts with customers is recognized using the following five
      steps pursuant ASC Topic 606, &lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;Revenue from Contracts with Customers&lt;/span&gt;:&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Identify the contract(s) with a customer;&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2.&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Identify the performance obligations in the contract;&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3.&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Determine the transaction price;&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;4.&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Allocate the transaction price to the performance obligations in the contract; and&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;5.&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Recognize revenue when (or as) the entity satisfies a performance obligation.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;A contract contains a promise (or promises) to transfer goods or services to a customer. A performance obligation is a promise (or a group of promises) that is distinct.
      The transaction price is the amount of consideration a company expects to be entitled from a customer in exchange for providing the goods or services.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The unit of account for revenue recognition is a performance obligation (a good or service). A contract may contain one or more performance obligations. Performance
      obligations are accounted for separately if they are distinct. A good or service is distinct if the customer can benefit from the good or service either on its own or together with other resources that are readily available to the customer, and the
      good or service is distinct in the context of the contract. Otherwise performance obligations are combined with other promised goods or services until the Company identifies a bundle of goods or services that is distinct. Promises in contracts which
      do not result in the transfer of a good or service are not performance obligations, as well as those promises that are administrative in nature, or are immaterial in the context of the contract. The Company has addressed whether various goods and
      services promised to the customer represent distinct performance obligations. The Company applied the guidance of ASC Topic 606-10-25-16 through 18 in order to verify which promises should be assessed for classification as distinct performance
      obligations. The Company&#x2019;s contracts with customers include more than one performance obligation. For example, the delivery of a piece of equipment generally includes the promise to install the equipment in the customer&#x2019;s facility. The Company&#x2019;s
      performance obligations in connection with a sale of equipment generally include production, delivery and installation, together with the provision of a warranty.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The transaction price is allocated to all the separate performance obligations in an arrangement. It reflects the amount of consideration to which the Company expects to
      be entitled in exchange for transferring goods or services, which may include an estimate of variable consideration to the extent that it is probable of not being subject to significant reversals in the future based on the Company&#x2019;s experience with
      similar arrangements. The transaction price excludes amounts collected on behalf of third parties, such as sales taxes. This is done on a relative selling price basis using standalone selling prices (&#x201c;SSP&#x201d;). The SSP represents the price at which the
      Company would sell that good or service on a standalone basis at the inception of the contract. Given the requirement for establishing SSP for all performance obligations, if the SSP is directly observable through standalone sales, then such sales
      should be considered in the establishment of the SSP for the performance obligation. The Company does not have observable SSPs for most performance obligations as the obligations are not regularly sold on a standalone basis. Production, delivery and
      installation of a product, together with provision of a warranty, are a single unit of accounting.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Revenue is recognized when the Company satisfies each performance obligation by transferring control of the promised goods or services to the customer. Goods or services
      can transfer at a point in time (upon the acceptance of the products or upon the arrival at the destination as stipulated in the shipment terms) in a sale arrangement. In general, the Company recognizes revenue when a tool has been demonstrated to
      meet the customer&#x2019;s predetermined specifications and is accepted by the customer. If terms of the sale provide for a lapsing customer acceptance period, the Company recognizes revenue as of the earlier of the expiration of the lapsing acceptance
      period and customer acceptance. In the following circumstances, however, the Company recognizes revenue upon shipment or delivery, when legal title to the tool is passed to a customer as follows:&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;When the customer has previously accepted the same tool with the same specifications and the Company can objectively demonstrate that the tool meets all of the required acceptance
                criteria;&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;When the sales contract or purchase order contains no acceptance agreement or lapsing acceptance provision and the Company can objectively demonstrate that the tool meets all of
                the required acceptance criteria;&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;When the customer withholds acceptance due to issues unrelated to product performance, in which case revenue is recognized when the system is performing as intended and meets
                predetermined specifications; or&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;When the Company&#x2019;s sales arrangements do not include a general right of return.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company offers post-warranty period services, which consist principally of the installation and replacement of parts and small-scale modifications to the equipment.
      The related revenue and costs of revenue are recognized when parts have been delivered and installed and the customers have obtained control of the parts. The Company does not expect revenue from extended maintenance service contracts to represent a
      material portion of its revenue in the future.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company incurs costs related to the acquisition of its contracts with customers in the form of sales commissions. Sales commissions are paid to third party
      representatives and distributors. Contractual agreements with these parties outline commission structures and rates to be paid. Generally speaking, the contracts are all individual procurement decisions by the customers and are not for significant
      periods of time, nor do they include renewal provisions. As such, all contracts have an economic life of significantly less than a year. Accordingly, the Company expenses sales commissions when incurred. These costs are recorded within sales and
      marketing expenses.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company does not incur any costs to fulfill the contracts with customers that are not already reported in compliance with another applicable standard (for example,
      inventory or plant, property and equipment).&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Cost of Revenue&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cost of revenue primarily consists of: direct materials, comprised principally of parts used in assembling equipment, together with crating and shipping costs; direct
      labor, including salaries and other labor related expenses attributable to the Company&#x2019;s manufacturing department; and allocated overhead cost, such as personnel cost, depreciation expense, and allocated administrative costs associated with supply
      chain management and quality assurance activities, as well as shipping insurance premiums.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Research and Development Costs&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Research and development costs relating to the development of new products and processes, including significant improvements and refinements to existing products or to
      the process of supporting customer evaluations of tools, including the development of new tools for evaluation by customers during the product demonstration process, are expensed as incurred.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Shipping and Handling Costs&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Shipping and handling costs, which relate to transportation of products to customer locations, are charged to selling and marketing expense. For the years ended December
      31, 2021, 2020 and 2019, shipping and handling costs included in sales and marketing expenses were $923, $76, and $172, respectively.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Borrowing Costs&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Borrowing costs attributable directly to the acquisition, construction or production of qualifying assets that require a substantial period of time to be ready for their
      intended use or sale are capitalized as part of the cost of those assets. Income earned on temporary investments of specific borrowings pending their expenditure on those assets is deducted from borrowing costs capitalized. All other borrowing costs
      are recognized in interest expenses in the consolidated statements of operations and comprehensive income in the period in which they are incurred.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Warranty&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;For each of its products, the Company generally provides a standard assurance type warranty ranging from 12 to 36 months and covering replacement of the product during the warranty
      period. The Company accounts for the estimated warranty costs as sales and marketing expenses at the time revenue is recognized. Warranty obligations are affected by historical failure rates and associated replacement costs. Utilizing historical
      warranty cost records, the Company calculates a rate of warranty expenses to revenue to determine the estimated warranty charge. The Company updates these estimated charges on a regular basis. &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Warranty obligations are included in other payables and accrued expenses in the consolidated balance sheets. &lt;/span&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt; color: rgb(0, 0, 0);"&gt;The following table shows changes in the Company&#x2019;s warranty obligations for the years ended December 31, 2021, 2020 and 2019
      respectively.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-indent: -7pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;2019&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Balance at beginning of period&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,975&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,811&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,710&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Additions&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,026&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,101&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,105&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Utilized&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2,370&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,937&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,004&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Balance at end of period&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,631&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,975&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,811&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Government Subsidies&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;ACM Shanghai has received seven special government
      grants. The first grant, which was awarded in 2008, relates to the development and commercialization of 65nm to 45nm stress-free polishing technology. The second grant was awarded in 2009 to fund interest expense on short-term borrowings. The third
      grant was made in 2014 and relates to the development of electro copper-plating technology. The fourth grant was made in June 2018 and related to development of polytetrafluoroethylene. The fifth grant was made in 2020, and relates to the development
      of Tahoe single bench cleaning technologies. As of December 31, 2021, the fourth and fifth grants had been fully utilized. The sixth grant was made in 2020, and relates to the development of other cleaning technologies. The seventh grant was made in
      2021, and relates to the development of the R&amp;amp;D and production center in the Lin-gang Special Area of Shanghai. These governmental authorities provide significant funding, although ACM Shanghai and ACM Shengwei is also required to invest certain
      amounts in the projects.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The governmental grants contain certain operating conditions, and the Company is required to go through a government due diligence process once the project is complete.
      The grants therefore are recorded as long-term liabilities upon receipt, although the Company is not required to return any funds it receives. Grant amounts are recognized in our statements of operations and comprehensive income as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: rgb(0, 0, 0);"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"/&gt;

    &lt;td style="width: 24.75pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Government subsidies relating to current expenses are recorded as reductions of those expenses in the periods in which the current expenses are recorded. For the years ended December
              31, 2021, 2020 and 2019, related government subsidies recognized as reductions of relevant expenses in the consolidated statements of operations and comprehensive income were $11,260, $2,658 and $3,195, respectively.&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: rgb(0, 0, 0);"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"/&gt;

    &lt;td style="width: 24.75pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Government subsidies related to depreciable assets are credited to income over the useful lives of the related assets for which the grant was received. For the years ended December
              31, 2021, 2020 and 2019, related government subsidies recognized as other income in the consolidated statements of operations and comprehensive income were $200, $149, and $147, respectively.&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Unearned government subsidies received are deferred for recognition and recorded as other long-term liabilities (note 13) in the balance sheet until the criteria for
      such recognition are satisfied.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Stock-based Compensation&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;ACM grants stock options to employees and non-employee consultants and directors and accounts for those stock-based awards in accordance with FASB ASC Topic 718, &lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;Compensation &#x2013; Stock Compensation.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Stock-based awards granted to employees and non-employee consultants and directors are measured at the fair value of the awards on the grant date and are recognized as
      expenses either (a) immediately on grant, if no vesting conditions are required or (b) using the graded vesting method, net of estimated forfeitures, over the requisite service period. The fair value of stock options is determined using the
      Black-Scholes valuation model when there is only service condition attached or the Monte Carlo valuation model when there is performance condition attached. Stock-based compensation expense, when recognized, is charged to the category of operating
      expense corresponding to the service function of the employees and non-employee consultants and directors.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Income Taxes&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company accounts for income taxes using the liability method whereby deferred tax asset and liability account balances are determined based on differences between
      the financial reporting and tax bases of assets and liabilities and are measured using the enacted tax rates and laws that will be in effect when the differences are expected to reverse. The Company provides a valuation allowance, if necessary, to
      reduce deferred tax assets to their estimated realizable values.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In evaluating the ability to recover its deferred income tax assets, the Company considers all available positive and negative evidence, including its operating results,
      ongoing tax planning and forecasts of future taxable income on a jurisdiction-by-jurisdiction basis. In the event the Company determines that it would be able to realize its deferred income tax assets in the future in excess of their net recorded
      amount, it would make an adjustment to the valuation allowance that would reduce the provision for income taxes. Conversely, in the event that all or part of the net deferred tax assets are determined not to be realizable in the future, an adjustment
      to the valuation allowance would be charged to earnings in the period such determination is made.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Tax benefits related to uncertain tax positions are recognized when it is more likely than not that a tax position will be sustained during an audit. Interest and
      penalties related to unrecognized tax benefits are included within the provision for income tax.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Basic and Diluted Net Income per Common Share&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Basic and diluted net income per common share are calculated as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-indent: -7pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;2019&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Numerator:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net income&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;42,921&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;21,677&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;19,458&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Less: Net income attributable to non-controlling interests and redeemable non-controlling interests&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,164&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,897&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;564&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;Net income available to common stockholders, basic&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;$ &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;37,757&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;18,780&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;$ &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;18,894&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="margin-left: 18pt; text-indent: -9pt;"&gt;Less: Dilutive effect arising from share-based awards by ACM Shanghai &lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;108&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net income available to common stockholders, diluted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;37,649&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,780&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,894&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Weighted average shares outstanding, basic&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;19,218,236&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,233,361&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;16,800,623&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Effect of dilutive securities&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,567,336&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,950,108&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,334,874&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Weighted average shares outstanding, diluted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;21,785,572&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;21,183,469&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;19,135,497&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net income per common share:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Basic&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.96&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.03&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.12&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Diluted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.73&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.89&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.99&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Basic and diluted net income per common share are presented using the two-class method, which allocates undistributed earnings to common stock and any participating
      securities according to dividend rights and participation rights on a proportionate basis. Under the two-class method, basic net income per common share is computed by dividing the sum of distributed and undistributed earnings attributable to common
      stockholders by the weighted average number of shares of common stock outstanding during the period. ACM did not have any participating securities outstanding during the three-year period ending December&#160;31, 2021.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;ACM has been authorized to issue Class A and Class B common stock since redomesticating in Delaware in November 2016. The two classes of common stock are substantially
      identical in all material respects, except for voting rights. Since ACM did not declare any dividends during the years ended December 31, 2021, 2020 and 2019, the net income per common share attributable to each class is the same under the
      &#x201c;two-class&#x201d; method. As such, the two classes of common stock have been presented on a combined basis in the consolidated statements of operations and comprehensive income and in the above computation of net income per common share.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Diluted &lt;/span&gt;and diluted net income per common share are presented using the two-class method, which
      allocates undistributed earnings to common stock and any participating securities according to dividend rights and participation rights on a proportionate basis. Under the two-class method, basic net income (per common share is computed by dividing
      the sum of distributed and undistributed earnings attributable to common stockholders by the weighted average number of shares of common stock outstanding during the period. ACM did not have any participating securities outstanding during the
      three-year period ending December&#160;31, 2021.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Diluted net income per common share reflects the potential dilution from securities, including stock
        options and issued warrants, that could share in ACM&#x2019;s earnings. Certain potential dilutive securities were excluded from the net income per share calculation because the impact would be anti-dilutive. The number of potentially dilutive shares that
        were not included in the calculation of diluted net income per share in the periods presented where their inclusion would be anti-dilutive were&lt;/span&gt;&#160;98,800,
      78,000 and 606,000 the
      years ended December 31, 2021, 2020 and 2019, respectively.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Comprehensive Income Attributable to the Company&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company applies FASB ASC Topic 220, &lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;Comprehensive Income&lt;/span&gt;, which
      establishes standards for the reporting and display of comprehensive income or loss, requiring its components to be reported in a financial statement with the same prominence as other financial statements. The comprehensive income attributable to the
      Company was $42,009, $25,312,
      and $18,076 for the years ended December 31, 2021, 2020 and 2019, respectively.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Statutory reserves&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The income of ACM&#x2019;s PRC subsidiaries is distributable to their shareholders after transfers to reserves as required under relevant PRC laws and regulations and the
      subsidiaries&#x2019; Articles of Association. As stipulated by the relevant laws and regulations in the PRC, the PRC subsidiaries are required to maintain reserves, including reserves for statutory surpluses and public welfare funds that are not
      distributable to shareholders. A PRC subsidiary&#x2019;s appropriations to the reserves are approved by its board of directors. At least 10% of annual statutory after-tax profits, as determined in accordance with PRC accounting standards and regulations, is
      required to be allocated to the statutory surplus reserves. If the cumulative total of the statutory surplus reserves reaches 50% of a PRC subsidiary&#x2019;s registered capital, any further appropriation is optional.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Statutory surplus reserves may be used to offset accumulated losses or to increase the registered capital of a PRC subsidiary, subject to approval from the relevant PRC
      authorities, and are not available for dividend distribution to the subsidiary&#x2019;s shareholders. The PRC subsidiaries are prohibited from distributing dividends unless any losses from prior years have been offset. Except for offsetting prior years&#x2019;
      losses, however, statutory surplus reserves must be maintained at a minimum of 25% of share capital after such usage. ACM Shanghai estimated a statutory surplus reserve of $8,312 and $4,388 based on an accumulated profit as of December 31, 2021 and 2020,
      respectively, which is included in the accumulated surplus in the consolidated balance sheets.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Fair Value of Financial Instruments&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Under the FASB&#x2019;s authoritative guidance on fair value measurements, fair value is the price that would be received to sell an asset or paid to transfer a liability in an
      orderly transaction between market participants at the measurement date. In determining the fair value, the Company uses various methods including market, income and cost approaches. Based on these approaches, the Company often utilizes certain
      assumptions that market participants would use in pricing the asset or liability, including assumptions about risk and the risks inherent in the inputs to the valuation technique. These inputs can be readily observable, market corroborated or
      generally unobservable inputs. The Company uses valuation techniques that maximize the use of observable inputs and minimize the use of unobservable inputs. Based on observability of the inputs used in the valuation techniques, the Company is
      required to provide the following information according to the fair value hierarchy. The fair value hierarchy ranks the quality and reliability of the information used to determine fair values. Financial assets and liabilities carried at fair value
      are classified and disclosed in one of the following three categories:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Level 1: Valuations for assets and liabilities traded in active exchange markets. Valuations are obtained from readily available pricing sources for market transactions
      involving identical assets or liabilities.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Level 2: Valuations for assets and liabilities traded in less active dealer or broker markets. Valuations are obtained from third party pricing services for identical or
      similar assets or liabilities.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Level 3: Valuations for assets and liabilities that are derived from other valuation methodologies, including option pricing models, discounted cash flow models and
      similar techniques, and not based on market exchange, dealer or broker traded transactions. Level 3 valuations incorporate certain unobservable assumptions and projections in determining the fair value assigned to such assets.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;All transfers between fair value hierarchy levels are recognized by the Company at the end of each reporting period. In certain cases, the inputs used to measure fair
      value may fall into different levels of the fair value hierarchy. In such cases, an investment&#x2019;s level within the fair value hierarchy is based on the lowest level of input that is significant to the fair value measurement in its entirety requires
      judgment, and considers factors specific to the investment. The inputs or methodology used for valuing financial instruments are not necessarily an indication of the risks associated with investment in those instruments.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic; font-weight: bold;"&gt;Fair Value Measured or Disclosed on a Recurring Basis&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;Trading securities - &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;The fair value of trading securities derives from the on quoted prices for identical securities in active markets at the balance sheet date, less a discount applied to reflect the remaining lock-up period. The Company classifies the
        valuation techniques that use these inputs as Level 1 and Level 2 fair value measurement as of December 31, 2021 and 2022, respectively (note 16).&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;Financial liability &#x2013; &lt;/span&gt;The fair value of financial liability are classified
      within Level 3 as the fair values are measured based on the inputs&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;&#160;&lt;/span&gt;linked to the choice of settlement by the counter party that are unobservable in the market.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;Other financial items for disclosure purpose&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;&#x2014;The fair value of other financial items of the Company, other than long-term borrowings for disclosure purpose, including cash and cash equivalents, accounts receivable, other receivables, short-term borrowings,
        accounts payable, advances from customers, and other payables and accrued expenses, approximate their carrying value due to their short-term nature. The carrying value of the long-term borrowings which are subject to fixed interest rate
        approximates its fair value as the market interest rate did not significantly change from the borrowing date to December 31, 2021.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Operating and Financial Risks&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;Concentration of Credit Risk&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Financial instruments that potentially subject the Company to credit risk consist principally of cash and cash equivalents, restricted cash and accounts receivable. The
      Company deposits and invests its cash with financial institutions that management believes are creditworthy.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company is potentially subject to concentrations of credit risks in its accounts receivable. In the year ended December 31, 2021 and 2020, a total of two and three customers, respectively,
      individually accounted for greater than ten percent of the Company&#x2019;s revenue:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Customer A&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;28.1&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;36.9&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Customer B&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;20.8&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;26.8&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Customer C&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="-sec-ix-hidden:Fact_f6619c6f20f546edb1069e48d3202f70"&gt;*&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;12.1&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;48.9&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;75.8&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;Interest Rate Risk&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;As of December 31, 2021 and 2020, the balance of the Company&#x2019;s short term bank borrowings (note 9), matured at various dates within the following year and did not expose
      the Company to interest rate risk.&#160; As of December 31, 2021, the balance of the Company&#x2019;s long-term borrowings (note 12) carried a fixed interest rate and the Company may have been exposed to fair value interest rate risk.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;Liquidity Risk&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company&#x2019;s working capital at December 31, 2021 and 2020 was sufficient to meet its then-current requirements. The Company may, however, require additional cash due
      to changing business conditions or other future developments, including any investments or acquisitions the Company decides to pursue. In the long run, the Company intends to rely primarily on cash flows from operations and additional borrowings from
      financial institutions in order to meet its cash needs. If those sources are insufficient to meet cash requirements, the Company may seek to issue additional debt or equity.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;Country Risk&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company has significant investments in the PRC. The operating results of the Company may be adversely affected by changes in the political and social conditions in
      the PRC and by changes in PRC government policies with respect to laws and regulations, anti-inflationary measures, currency conversion and remittance abroad, and rates and methods of taxation, among other things.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;Foreign Currency Risk and Translation&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company&#x2019;s consolidated financial statements are presented in U.S. dollars, which is the Company&#x2019;s reporting currency, while the functional currency of ACM&#x2019;s
      subsidiaries is the Chinese Renminbi (&#x201c;RMB&#x201d;), and the Korean Won. Changes in the relative values of U.S. dollars and RMB affect the Company&#x2019;s reported levels of revenues and profitability as the results of its operations are translated from RMB into
      U.S. dollars for reporting purposes. Because the Company has not engaged in any hedging activities, it cannot predict the impact of future exchange rate fluctuations on the results of its operations and it may experience economic losses as a result
      of foreign currency exchange rate fluctuations.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Transactions of ACM&#x2019;s subsidiaries involving foreign currencies are recorded in functional currency according to the rate of exchange prevailing on the date when the
      transaction occurs. The ending balances of the Company&#x2019;s foreign currency accounts are converted into functional currency using the rate of exchange prevailing at the end of each reporting period. Net gains and losses resulting from foreign exchange
      fluctuations as marked to market at year-end are included in the consolidated statements of operations and comprehensive income. Total foreign currency translation adjustment was $4,695, $10,493 and ($899) for the years ended December 31, 2021, 2020 and 2019, respectively.&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In accordance with FASB ASC Topic 830, &lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;Foreign Currency Matters&lt;/span&gt;, the Company
      translates assets and liabilities into U.S. dollars from RMB or Korean Won using the rate of exchange prevailing at the applicable balance sheet date and the consolidated statements of operations and comprehensive income and consolidated statements
      of cash flows are translated at an average rate during the reporting period. Adjustments resulting from the translation are recorded in stockholders&#x2019; (deficit) equity as part of accumulated other comprehensive income (loss). Any differences between
      the initially recorded amount and the settlement amount are recorded as a gain or loss on foreign currency transaction in the consolidated statements of operations and comprehensive income.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Translations of amounts from RMB and Korean Won into U.S. dollars were made at the following exchange rates for the respective dates and periods:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;At December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; text-indent: -9pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&lt;span style="text-indent: 0pt;"&gt;2019&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Consolidated balance sheets:&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;RMB to $1.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.3757&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.5232&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.9784&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;KRW to $1.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,145.48&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,088.14&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,156.07&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td colspan="12" style="vertical-align: middle;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Consolidated statements of operations and comprehensive income:&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;RMB to $1.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.4515&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.8966&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.8966&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;KRW to $1.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,190.48&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,179.25&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,165.50&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic; font-weight: bold;"&gt;Recently Adopted Accounting Pronouncements&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In December 2019, the Financial Accounting Standards Board (the &#x201c;FASB&#x201d;) issued Accounting Standards Update (&#x201c;ASU&#x201d;) No. 2019-12, Income Taxes (Topic 740): Simplifying the
      Accounting for Income Taxes. ASU 2019-12 simplifies the accounting for income taxes by removing certain exceptions to the general principles in Topic 740. It also improves consistent application of and simplifies GAAP for other areas of Topic 740 by
      clarifying and amending existing guidance. The Company adopted ASU 2019-12 on January 1, 2021. The adoption of ASU 2019-12 did not have a material impact on the Company&#x2019;s consolidated financial statements.&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; In March 2020, the FASB issued ASU No. 2020-04, Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting. ASU
      2020-04 provide optional expedients and exceptions for applying GAAP to contracts, hedging relationships, and other transactions affected by reference rate reform. The Company adopted ASU 2020-04 on January 1, 2021. The adoption of ASU 2020-04 did
      not have a material impact on the Company&#x2019;s consolidated financial statements.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic; font-weight: bold;"&gt;Recent Accounting Pronouncements Not Yet Adopted&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;In &lt;/span&gt;June 2016, the FASB issued ASU 2016-13, &lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;Financial Instruments-Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments&lt;/span&gt;. ASU 2016-13 replaced the pre-existing incurred loss impairment methodology with a methodology that reflects
      expected credit losses and requires consideration of a broader range of reasonable and supportable information to inform credit loss estimates. ASU 2016-13 requires use of a forward-looking expected credit loss model for accounts receivables, loans
      and other financial instruments. ASU 2016-13 is effective for fiscal years beginning after December 15, 2019, with early adoption permitted. &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In October 2019, the FASB issued ASU 2019-10,&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt; Financial Instruments &#x2013; Credit Losses
        (Topic 326), Derivatives and Hedging (Topic 815) and Leases (Topic 842)&lt;/span&gt;, which defers the effective date for public filers that are considered small reporting companies (&#x201c;SRC&#x201d;) as defined by the U.S. Securities and Exchange Commission
      (&#x201c;SEC&#x201d;) to fiscal years beginning after December&#160;15, 2022, including interim periods within those fiscal years. Since &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;the Company was eligible to be an SRC based on its SRC determination
        as of November 15, 2019 (which is the issuance date of ASU 2019-10) in accordance with SEC regulations, the Company will adopt the standards for the year beginning January 1, 2023. Adoption of the standard requires using a modified retrospective
        approach through a cumulative-effect adjustment to retained earnings as of the effective date to align existing credit loss methodology with the new standard. The Company is evaluating the impact of this standard on its consolidated financial
        statements, including accounting policies, processes and systems and expects the standard will have a minor impact on its consolidated financial statements.&lt;/span&gt;  &lt;/div&gt;
</us-gaap:SignificantAccountingPoliciesTextBlock>
    <acmr:BasisOfPresentationAndPrinciplesOfConsolidationPolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_996e1d32abde446ab5dddbf105b2041b">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Basis of Presentation and Principles of Consolidation&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company&#x2019;s consolidated financial statements include the accounts of ACM and its subsidiaries, including ACM Shanghai and its subsidiaries, which include ACM Wuxi,
      ACM Shengwei and CleanChip (the subsidiaries of which include ACM California and ACM Korea). ACM&#x2019;s subsidiaries are those entities in which ACM, directly and indirectly, controls more than one half of the voting power. All significant intercompany
      transactions and balances have been eliminated upon consolidation.&lt;/div&gt;
</acmr:BasisOfPresentationAndPrinciplesOfConsolidationPolicyTextBlock>
    <acmr:COVID19AssessmentPolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_b617fa89438147d088e4af18e66f4deb">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;COVID-19 Assessment&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The outbreak of COVID-19, the coronavirus, has grown both in the United States and globally, and related government and private sector responsive actions have adversely
      affected the Company&#x2019;s business operations. In December 2019 a series of emergency quarantine measures taken by the PRC government disrupted domestic business activities during the weeks after the initial outbreak of COVID-19. Since that time, an
      increasing number of countries, including the United States, have imposed restrictions on travel to and from the PRC and elsewhere, as well as general movement restrictions, business closures and other measures imposed to slow the spread of COVID-19.
      The situation continues to develop, however, and it is impossible to predict the effect and ultimate impact of the COVID-19 pandemic on the Company&#x2019;s business operations and results. While the quarantine, social distancing and other regulatory
      measures instituted or recommended in response to COVID-19 are expected to be temporary, the duration of the business disruptions, and related financial impact, cannot be estimated at this time. COVID-19 has been declared a worldwide health pandemic
      that could adversely affect the economies and financial markets of many countries, resulting in an economic downturn and changes in global economic policy that could reduce demand for the Company&#x2019;s products and its customers&#x2019; chips and have a
      material adverse impact on the Company&#x2019;s business, operating results and financial condition. Through Dece&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;mber&lt;/span&gt; 31, 2021, the Company had not experienced a significant negative
      impact from COVID-19 on its operations, capital and financial resources, including overall liquidity position.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Company conducts substantially all of its product development, manufacturing, support and services in
        the PRC, and those activities have been directly impacted by the COVID-19 pandemic and related restrictions on transportation and public appearances. The Company cannot assure that closures or reductions of its PRC operations or production may not
        be necessary in upcoming months as the result of business interruptions arising from protective measures being taken by the PRC and other governmental agencies or of other consequences of the COVID-19 pandemic.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Company&#x2019;s corporate headquarters are located in San Mateo County in the San Francisco Bay Area. The
        effects of actions taken by local governmental agencies in the future may negatively impact productivity, disrupt the business of the Company and delay timelines, the magnitude of which will depend, in part, on the length and severity of the
        restrictions and other limitations on the Company&#x2019;s ability to conduct its business in the ordinary course.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;prolonged and broad-based shift to a remote working environment continues to create inherent
        productivity, connectivity, and oversight challenges and could affect our ability to enhance, develop and support existing products and services, detect and prevent spam and problematic content, hold product sales and marketing events, and generate
        new sales leads, among others. In addition, the changed environment under which the Company is operating could have an effect on its internal controls over financial reporting as well as our ability to meet a number of its compliance requirements
        in a timely or quality manner. Additional and/or extended, governmental lockdowns, restrictions or new regulations could significantly impact the ability of our employees and vendors to work productively. Governmental restrictions have been
        globally inconsistent and it remains unclear when a return to worksite locations or travel will be permitted or what restrictions will be in place in those environments. As the Company prepares to return its workforce in more locations back to the
        office in 2022, it may experience increased costs as it prepares its facilities for a safe return to work environment and experiment with hybrid work models, in addition to potential effects on its ability to compete effectively and maintain its
        corporate culture.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Extended &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;periods of interruption to our corporate, development or manufacturing facilities due to the
        COVID-19 pandemic could cause the Company to lose revenue and market share, which would depress its financial performance and could be difficult to recapture. The Company&#x2019;s business may also be harmed if travel to or from the PRC or the United
        States continues to be restricted or inadvisable or if members of management and other employees are absent because they contract the coronavirus, they elect not to come to work due to the illness affecting others in the Company&#x2019;s office or
        laboratory facilities, or they are subject to quarantines or other governmentally imposed restrictions.&lt;/span&gt;&lt;/div&gt;
</acmr:COVID19AssessmentPolicyTextBlock>
    <us-gaap:UseOfEstimates
      contextRef="c20210101to20211231"
      id="Text_4846ba9d0e0948f0989683953689c024">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Use of Estimates&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The preparation of the consolidated financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the reported amounts
      of assets and liabilities and disclosure of contingent assets and liabilities at the balance sheet date and the reported revenues and expenses during the reported period in the consolidated financial statements and accompanying notes. The Company&#x2019;s
      significant accounting estimates and assumptions include, but are not limited to, those used for the valuation and recognition of fair value of trading securities, stock-based compensation arrangements and warrant liability, realization of deferred
      tax assets, assessment for impairment of long-lived assets, allowance for doubtful accounts, inventory valuation for excess and obsolete inventories, lower of cost and market value or net realizable value of inventories, depreciable lives of property
      and equipment and useful life of intangible assets.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Management evaluates these estimates and assumptions on a regular basis. Actual results could differ from those estimates and assumptions.&lt;/div&gt;
</us-gaap:UseOfEstimates>
    <us-gaap:PriorPeriodReclassificationAdjustmentDescription
      contextRef="c20210101to20211231"
      id="Text_c16d8b9e785b4527a1e0d182bf0bd110">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Reclassifications&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; margin-right: 12pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Certain prior year amounts in the notes to the Consolidated Financial Statements, have been reclassified to conform with the current year
      presentation. These classifications within the statements had no impact on the Company&#x2019;s results of operations.&lt;/div&gt;
</us-gaap:PriorPeriodReclassificationAdjustmentDescription>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_b289f7d42adc4b4e9e2a210000b4f8f9">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Cash and Cash Equivalents&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cash and cash equivalents consist of cash on hand, bank deposits that are unrestricted as to withdrawal and use, and highly liquid investments with an original maturity
      date of three months or less at the date of purchase. At times, cash deposits may exceed government-insured limits.&lt;/div&gt;
</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <us-gaap:CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy
      contextRef="c20210101to20211231"
      id="Text_ffba9e3789b94dbf80e244739298ff88">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Restricted cash&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Restricted cash represents deposits not readily available to ACM. Restricted cash as of December 31, 2019 represented cash hold in reserve, all of the proceeds received
      from issuance of common stock to redeemable non-controlling interest in segregated cash and cash-equivalent accounts. There was no
      restricted cash as of December 31, 2020, as the redemption feature of these proceeds was terminated during the second quarter of 2020.&lt;/div&gt;
</us-gaap:CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy>
    <us-gaap:RestrictedCashCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_b333d207609144a7aa85ce6712816277"
      unitRef="U001">0</us-gaap:RestrictedCashCurrent>
    <us-gaap:ReceivablesPolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_e16a9cb9c68b41fb82f5dcdb742d2f24">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Accounts Receivable&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accounts receivable are presented net of an allowance for doubtful accounts. The Company reviews its accounts receivable on a periodic basis and makes general and
      specific allowances when there is doubt as to the collectability of individual balances. In evaluating the collectability of individual receivable balances, the Company considers many factors, including the age of the balance, a customer&#x2019;s historical
      payment history and credit worthiness, current economic trends and reasonable and supportable forecasts. Accounts are written off after all collection efforts have been exhausted. At December 31, 2021, and 2020, the Company, based on a review of its
      outstanding balances and its customers, determined the allowance for doubtful accounts in the amount of $0 and $0 respectively.&lt;/div&gt;
</us-gaap:ReceivablesPolicyTextBlock>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="c20211231"
      decimals="-3"
      id="Fact_7d5a2e7592564a8eb8a202c10d7712ff"
      unitRef="U001">0</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="c20201231"
      decimals="-3"
      id="Fact_347f50a167f64cdc8feb1775223ac396"
      unitRef="U001">0</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <acmr:LandUseRightsNetPolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_a2e43e9207a945729ef6e779de9a3593">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Land use right, net&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The land use right represents the cost to purchase a right to use state-owned land in the PRC with lease terms of 50 years expiring in 2070, for which an upfront lump-sum payment was made during the year ended December 31, 2020. The Company classifies the land use right as non-current assets on the
      consolidated balance sheets (note 7).&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The land use right is carried at cost less accumulated amortization and impairment losses, if any. Amortization is computed using the straight-line method over the term
      specified in the land use right certificate, which is 50 years.&lt;/div&gt;
</acmr:LandUseRightsNetPolicyTextBlock>
    <acmr:RightToUseLandLeaseTerm
      contextRef="c20210101to20211231"
      id="Fact_d55ee0614b76400dbccfdda51550573a">P50Y</acmr:RightToUseLandLeaseTerm>
    <acmr:RightToUseLandLeaseTerm
      contextRef="c20210101to20211231"
      id="Fact_583f2abb00d3487ba0178b7ddd8156f4">P50Y</acmr:RightToUseLandLeaseTerm>
    <us-gaap:InventoryPolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_eb693fb796b047a1864709e06592383b">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Inventory&lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Inventory consists of raw materials and related goods, work-in-progress, finished goods, and other consumable materials such as spare parts. Finished goods typically are
      shipped from the Company&#x2019;s warehouse within one month of completion.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Inventory was recorded at the lower of cost or net realizable value at December 31, 2021 and 2020.&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;The cost of a general inventory item is determined using the weighted moving average method. Under the weighted moving average method, the Company calculates the new average price
                of all items of a particular inventory stock each time one or more items of that stock are purchased. The then-current average price of the stock is used for purposes of determining cost of inventory or cost of revenue. The cost of an
                inventory item purchased specifically for a customized product is determined using the specific identification method. Low-cost consumable materials and packaging materials are expensed as incurred.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net realizable value is the estimated selling price, in the ordinary course of business, less estimated costs to complete or dispose.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company assesses the recoverability of all inventories quarterly to determine if any adjustments are required. Potential excess or obsolete inventory is written off
      based on management&#x2019;s analysis of inventory levels and estimates of future 12-month demand and market conditions.&lt;/div&gt;
</us-gaap:InventoryPolicyTextBlock>
    <acmr:MaximumShipmentPeriodOfFinishedGoodsFromWarehouse
      contextRef="c20210101to20211231"
      id="Fact_e701d26888674b9798b25028f653e0fe">P1M</acmr:MaximumShipmentPeriodOfFinishedGoodsFromWarehouse>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_90f385bb73df4cd58a70bdc73b4109b3">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Property, Plant and Equipment, Net&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Property, plant and equipment are recorded at cost less accumulated depreciation and any provision for impairment in value. Depreciation begins when the asset is placed
      in service and is calculated by using the straight-line method over the estimated useful life of an asset (or, if shorter, over the lease term). Betterments or renewals are capitalized when incurred. Plant, property and equipment is reviewed each
      year to determine whether any events or circumstances indicate that the carrying amount of the assets may not be recoverable.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Estimated useful lives of assets in the United States are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div&gt;
      &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; margin-left: 0px; margin-right: auto;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; text-indent: -12pt; margin-left: 12pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Computer and office equipment&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3 to 5 years&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #FFFFFF;"&gt;
              &lt;div style="text-align: left; text-indent: -12pt; margin-left: 12pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Furniture and fixtures&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #FFFFFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;5 years&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; text-indent: -12pt; margin-left: 12pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Leasehold improvements&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;shorter of lease term or estimated useful life&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
    &lt;/div&gt;

&lt;div style="clear: both;"&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;ACM&#x2019;s subsidiaries follow regulations for depreciation of fixed assets implemented under the PRC&#x2019;s Enterprise Income Tax Law, which state that the minimum useful lives
      used for calculating depreciation for fixed assets are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div&gt;
      &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Manufacturing equipment&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;for small to medium-sized equipment, 5 years; for
                large equipment,&lt;/div&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;estimated by purchasing department at time of acceptance&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #FFFFFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Furniture and fixtures&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #FFFFFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;5 years&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Transportation equipment&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;4 to 5 years&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #FFFFFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Electronic equipment&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #FFFFFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3 to 5 years&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Leasehold improvements&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;remaining lease term for improvements on leased fixed assets or,&lt;/div&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;for large improvements, estimated useful life;&lt;/div&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;not less than 3 years for non-fixed asset repairs&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
      &lt;/div&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Expenditures for maintenance and repairs that neither materially add to the value of the property nor appreciably prolong the life of the property are charged to expense
      as incurred. Upon retirement or sale of an asset, the cost of the asset and the related accumulated depreciation are eliminated from the accounts and any resulting gain or loss is credited or charged to income.&lt;/div&gt;
</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <acmr:ScheduleOfEstimatedUsefulLivesForPropertyAndEquipmentTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_3fabe057785749edae02a14d1cd0e958">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Estimated useful lives of assets in the United States are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div&gt;
      &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; margin-left: 0px; margin-right: auto;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; text-indent: -12pt; margin-left: 12pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Computer and office equipment&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3 to 5 years&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #FFFFFF;"&gt;
              &lt;div style="text-align: left; text-indent: -12pt; margin-left: 12pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Furniture and fixtures&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #FFFFFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;5 years&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; text-indent: -12pt; margin-left: 12pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Leasehold improvements&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;shorter of lease term or estimated useful life&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
    &lt;/div&gt;

&lt;div style="clear: both;"&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;ACM&#x2019;s subsidiaries follow regulations for depreciation of fixed assets implemented under the PRC&#x2019;s Enterprise Income Tax Law, which state that the minimum useful lives
      used for calculating depreciation for fixed assets are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div&gt;
      &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Manufacturing equipment&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;for small to medium-sized equipment, 5 years; for
                large equipment,&lt;/div&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;estimated by purchasing department at time of acceptance&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #FFFFFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Furniture and fixtures&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #FFFFFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;5 years&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Transportation equipment&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;4 to 5 years&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #FFFFFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Electronic equipment&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #FFFFFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3 to 5 years&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="width: 33.33%; vertical-align: top; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Leasehold improvements&lt;/div&gt;
            &lt;/td&gt;

    &lt;td style="width: 66.67%; vertical-align: bottom; background-color: #CCEEFF;"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;remaining lease term for improvements on leased fixed assets or,&lt;/div&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;for large improvements, estimated useful life;&lt;/div&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;not less than 3 years for non-fixed asset repairs&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
      &lt;/div&gt;
</acmr:ScheduleOfEstimatedUsefulLivesForPropertyAndEquipmentTableTextBlock>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20210101to20211231_PropertyPlantAndEquipmentByTypeAxis_ComputerAndOfficeEquipmentMember_RangeAxis_MinimumMember_StatementGeographicalAxis_US"
      id="Fact_42eb2ff6b71f4b33b648808a1fb873d7">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20210101to20211231_PropertyPlantAndEquipmentByTypeAxis_ComputerAndOfficeEquipmentMember_RangeAxis_MaximumMember_StatementGeographicalAxis_US"
      id="Fact_85dda528a126496dba2cad3952620d17">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20210101to20211231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndFixturesMember_StatementGeographicalAxis_US"
      id="Fact_7150d255a84d4a77b9b785c7d0d99d7b">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20210101to20211231_PropertyPlantAndEquipmentByTypeAxis_ManufacturingEquipmentMember_StatementGeographicalAxis_CN"
      id="Fact_10a86c143ca9478b9d4626aa6a29f797">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20210101to20211231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndFixturesMember_StatementGeographicalAxis_CN"
      id="Fact_60657e12e3324086bd5a60083aaaf7f6">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20210101to20211231_PropertyPlantAndEquipmentByTypeAxis_TransportationEquipmentMember_RangeAxis_MinimumMember_StatementGeographicalAxis_CN"
      id="Fact_90f6d0375577487e8ed8f647e5bd4521">P4Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20210101to20211231_PropertyPlantAndEquipmentByTypeAxis_TransportationEquipmentMember_RangeAxis_MaximumMember_StatementGeographicalAxis_CN"
      id="Fact_e94a930961eb4461af31c519231731d4">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20210101to20211231_PropertyPlantAndEquipmentByTypeAxis_ElectronicEquipmentMember_RangeAxis_MinimumMember_StatementGeographicalAxis_CN"
      id="Fact_13ea45e3412144678fa8a111c9aeace1">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20210101to20211231_PropertyPlantAndEquipmentByTypeAxis_ElectronicEquipmentMember_RangeAxis_MaximumMember_StatementGeographicalAxis_CN"
      id="Fact_6953d76389474ce284c6f2bd51c5e5c8">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20210101to20211231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember_RangeAxis_MinimumMember_StatementGeographicalAxis_CN"
      id="Fact_5138be81cf3d4689bcf87f4cf2f59002">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:IntangibleAssetsFiniteLivedPolicy
      contextRef="c20210101to20211231"
      id="Text_e81253aa7906438db730723eb3bac99f">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Intangible Assets, Net&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Intangible assets consist of software used for finance, manufacturing, and research and development purposes. Assets are valued at cost at the time of acquisition and
      are amortized over their beneficial periods. If a contract specifies a beneficial period, then the intangible asset is amortized over a term not exceeding the beneficial period. If the contract does not specify a beneficial period, then the
      intangible asset is amortized over a term not exceeding the valid period specified by local law. If neither the contract nor local law specifies a beneficial period, then the intangible asset is amortized over a period of up to 10 years. Currently, the software that the Company uses is amortized for between &lt;span style="-sec-ix-hidden:Fact_2c89738b26ae455db9bbfa2c1318eee4"&gt;two&lt;/span&gt; and ten-years, based on its &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;functionality and useful life in&lt;/span&gt; accordance with the policy described above.&lt;/div&gt;
</us-gaap:IntangibleAssetsFiniteLivedPolicy>
    <acmr:IntangibleAssetsAmortizationPeriodCondition
      contextRef="c20210101to20211231_RangeAxis_MaximumMember"
      id="Fact_91fddaf7f7364f2a80e9822366039603">P10Y</acmr:IntangibleAssetsAmortizationPeriodCondition>
    <us-gaap:FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1
      contextRef="c20210101to20211231_FiniteLivedIntangibleAssetsByMajorClassAxis_ComputerSoftwareIntangibleAssetMember_RangeAxis_MaximumMember"
      id="Fact_baa4ad9097734db7af5e2b163c9a69ba">P10Y</us-gaap:FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1>
    <us-gaap:InvestmentPolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_ad2873e72f8d403cbb5aa2fd6e759548">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Investments&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company uses the equity method of accounting for its investment in, and earning or loss of, companies that it does not control but over which it does exert
      significant influence. The Company considers whether the fair value of its equity method investment has declined below its carrying value whenever adverse events or changes in circumstances indicate that recorded value may not be recoverable. The
      Company reviews its investments for other-than-temporary impairment whenever events or changes in business circumstances indicate that the carrying value of the investment may not be fully recoverable. Investments identified as having an indication
      of impairment are subject to further analysis to determine if the impairment is other-than-temporary and this analysis requires estimating the fair value of the investment. The determination of fair value of the investment involves considering
      factors such as current economic and market conditions, the operating performance of the entities including current earnings trends and forecasted cash flows, and other company and industry specific information. If the Company considers any decline
      to be other than temporary (based on various factors, including historical financial results and the overall health of the investee), then a write-down would be recorded to estimated fair value. See note 14 for discussion of equity method investment.&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; The Company elects to measure its investments in other equity securities that the Company does not have control nor significant influence on the investee at cost minus
      impairment, if any for those equity securities without a readily determinable fair value.&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;All marketable securities are classified as trading securities and trading securities and are stated at fair market value, less a discount applied to reflect the
      remaining lock-up period when the securities are subject to lock-up period. Fair market value is determined by the most recently traded price of the security at the balance sheet date. Net realized and unrealized gains and losses on trading
      securities are included in the consolidated statements of operations. The cost of investments sold is based on the average cost method. Interest and dividend income earned are included in other income (expense), net.&lt;/div&gt;
</us-gaap:InvestmentPolicyTextBlock>
    <us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_faec7f64552747918b3576045099c927">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Valuation of Long-Lived Assets&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Long-lived assets are evaluated for impairment whenever events or changes in circumstance indicate that the carrying value of the assets may not be fully recoverable or
      that the useful life of the assets is shorter than the Company had originally estimated. When these events or changes occur, the Company evaluates the impairment of the long-lived assets by comparing the carrying value of the assets to an estimate of
      future undiscounted cash flows expected to be generated from the use of the assets and their eventual disposition. If the sum of the expected future undiscounted cash flow is less than the carrying value of the assets, the Company recognizes an
      impairment loss based on the excess of the carrying value over the fair value. No impairment charge was recognized for either of the periods presented.&lt;/div&gt;
</us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock>
    <us-gaap:LesseeLeasesPolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_7e0c58f491454b6fb689e9479fc905ec">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Leases&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company determines if an arrangement is a lease at inception. Operating leases are included in operating lease right-of-use (&#x201c;ROU&#x201d;) assets, other current liabilities
      and operating lease liabilities in the consolidated balance sheets.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;ROU assets represent the Company&#x2019;s right to use an underlying asset for the lease term, and lease liabilities represent the Company&#x2019;s obligation to make lease payments
      arising from the lease. Operating lease ROU assets and liabilities are recognized at commencement date based on the present value of lease payments over the lease term. As most of the Company&#x2019;s leases do not provide an implicit rate, the Company uses
      its incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments. It uses the implicit rate when readily determinable. The operating lease ROU asset also includes any lease
      payments made and excludes lease incentives. The Company&#x2019;s lease terms may include options to extend or terminate the lease when it is reasonably certain that the Company will exercise that option. Lease expense for lease payments is recognized on a
      straight-line basis over the lease term.&lt;/div&gt;
</us-gaap:LesseeLeasesPolicyTextBlock>
    <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_77d061413cf34fa48751694d6b4028ac">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company derives revenue principally from the sale of semiconductor capital equipment. Revenue from contracts with customers is recognized using the following five
      steps pursuant ASC Topic 606, &lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;Revenue from Contracts with Customers&lt;/span&gt;:&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Identify the contract(s) with a customer;&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2.&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Identify the performance obligations in the contract;&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3.&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Determine the transaction price;&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;4.&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Allocate the transaction price to the performance obligations in the contract; and&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;5.&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Recognize revenue when (or as) the entity satisfies a performance obligation.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;A contract contains a promise (or promises) to transfer goods or services to a customer. A performance obligation is a promise (or a group of promises) that is distinct.
      The transaction price is the amount of consideration a company expects to be entitled from a customer in exchange for providing the goods or services.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The unit of account for revenue recognition is a performance obligation (a good or service). A contract may contain one or more performance obligations. Performance
      obligations are accounted for separately if they are distinct. A good or service is distinct if the customer can benefit from the good or service either on its own or together with other resources that are readily available to the customer, and the
      good or service is distinct in the context of the contract. Otherwise performance obligations are combined with other promised goods or services until the Company identifies a bundle of goods or services that is distinct. Promises in contracts which
      do not result in the transfer of a good or service are not performance obligations, as well as those promises that are administrative in nature, or are immaterial in the context of the contract. The Company has addressed whether various goods and
      services promised to the customer represent distinct performance obligations. The Company applied the guidance of ASC Topic 606-10-25-16 through 18 in order to verify which promises should be assessed for classification as distinct performance
      obligations. The Company&#x2019;s contracts with customers include more than one performance obligation. For example, the delivery of a piece of equipment generally includes the promise to install the equipment in the customer&#x2019;s facility. The Company&#x2019;s
      performance obligations in connection with a sale of equipment generally include production, delivery and installation, together with the provision of a warranty.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The transaction price is allocated to all the separate performance obligations in an arrangement. It reflects the amount of consideration to which the Company expects to
      be entitled in exchange for transferring goods or services, which may include an estimate of variable consideration to the extent that it is probable of not being subject to significant reversals in the future based on the Company&#x2019;s experience with
      similar arrangements. The transaction price excludes amounts collected on behalf of third parties, such as sales taxes. This is done on a relative selling price basis using standalone selling prices (&#x201c;SSP&#x201d;). The SSP represents the price at which the
      Company would sell that good or service on a standalone basis at the inception of the contract. Given the requirement for establishing SSP for all performance obligations, if the SSP is directly observable through standalone sales, then such sales
      should be considered in the establishment of the SSP for the performance obligation. The Company does not have observable SSPs for most performance obligations as the obligations are not regularly sold on a standalone basis. Production, delivery and
      installation of a product, together with provision of a warranty, are a single unit of accounting.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Revenue is recognized when the Company satisfies each performance obligation by transferring control of the promised goods or services to the customer. Goods or services
      can transfer at a point in time (upon the acceptance of the products or upon the arrival at the destination as stipulated in the shipment terms) in a sale arrangement. In general, the Company recognizes revenue when a tool has been demonstrated to
      meet the customer&#x2019;s predetermined specifications and is accepted by the customer. If terms of the sale provide for a lapsing customer acceptance period, the Company recognizes revenue as of the earlier of the expiration of the lapsing acceptance
      period and customer acceptance. In the following circumstances, however, the Company recognizes revenue upon shipment or delivery, when legal title to the tool is passed to a customer as follows:&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;When the customer has previously accepted the same tool with the same specifications and the Company can objectively demonstrate that the tool meets all of the required acceptance
                criteria;&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;When the sales contract or purchase order contains no acceptance agreement or lapsing acceptance provision and the Company can objectively demonstrate that the tool meets all of
                the required acceptance criteria;&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;When the customer withholds acceptance due to issues unrelated to product performance, in which case revenue is recognized when the system is performing as intended and meets
                predetermined specifications; or&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;When the Company&#x2019;s sales arrangements do not include a general right of return.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company offers post-warranty period services, which consist principally of the installation and replacement of parts and small-scale modifications to the equipment.
      The related revenue and costs of revenue are recognized when parts have been delivered and installed and the customers have obtained control of the parts. The Company does not expect revenue from extended maintenance service contracts to represent a
      material portion of its revenue in the future.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company incurs costs related to the acquisition of its contracts with customers in the form of sales commissions. Sales commissions are paid to third party
      representatives and distributors. Contractual agreements with these parties outline commission structures and rates to be paid. Generally speaking, the contracts are all individual procurement decisions by the customers and are not for significant
      periods of time, nor do they include renewal provisions. As such, all contracts have an economic life of significantly less than a year. Accordingly, the Company expenses sales commissions when incurred. These costs are recorded within sales and
      marketing expenses.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company does not incur any costs to fulfill the contracts with customers that are not already reported in compliance with another applicable standard (for example,
      inventory or plant, property and equipment).&lt;/div&gt;
</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
    <us-gaap:CostOfSalesPolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_d9ae963a09d14046bcdb09c69de8510b">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Cost of Revenue&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cost of revenue primarily consists of: direct materials, comprised principally of parts used in assembling equipment, together with crating and shipping costs; direct
      labor, including salaries and other labor related expenses attributable to the Company&#x2019;s manufacturing department; and allocated overhead cost, such as personnel cost, depreciation expense, and allocated administrative costs associated with supply
      chain management and quality assurance activities, as well as shipping insurance premiums.&lt;/div&gt;
</us-gaap:CostOfSalesPolicyTextBlock>
    <us-gaap:ResearchAndDevelopmentExpensePolicy
      contextRef="c20210101to20211231"
      id="Text_336f0c35839c482b8125d08557dc009e">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Research and Development Costs&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Research and development costs relating to the development of new products and processes, including significant improvements and refinements to existing products or to
      the process of supporting customer evaluations of tools, including the development of new tools for evaluation by customers during the product demonstration process, are expensed as incurred.&lt;/div&gt;
</us-gaap:ResearchAndDevelopmentExpensePolicy>
    <acmr:ShippingAndHandlingCostsPolicyPolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_a5a9868aa5e143f0a6f702149a7b056c">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Shipping and Handling Costs&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Shipping and handling costs, which relate to transportation of products to customer locations, are charged to selling and marketing expense. For the years ended December
      31, 2021, 2020 and 2019, shipping and handling costs included in sales and marketing expenses were $923, $76, and $172, respectively.&lt;/div&gt;
</acmr:ShippingAndHandlingCostsPolicyPolicyTextBlock>
    <us-gaap:SellingAndMarketingExpense
      contextRef="c20210101to20211231_ProductOrServiceAxis_ShippingAndHandlingMember"
      decimals="-3"
      id="Fact_c34f4f57cee7400e95ecafc2acc1c9c2"
      unitRef="U001">923000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="c20200101to20201231_ProductOrServiceAxis_ShippingAndHandlingMember"
      decimals="-3"
      id="Fact_947cbd8cc9bb4f1dbfd7132c82db7161"
      unitRef="U001">76000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="c20190101to20191231_ProductOrServiceAxis_ShippingAndHandlingMember"
      decimals="-3"
      id="Fact_15a11c86886b4d7bbfe360fbd697f851"
      unitRef="U001">172000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:DebtPolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_3604068bcdf8448fab2cbb8ea2e26760">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Borrowing Costs&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Borrowing costs attributable directly to the acquisition, construction or production of qualifying assets that require a substantial period of time to be ready for their
      intended use or sale are capitalized as part of the cost of those assets. Income earned on temporary investments of specific borrowings pending their expenditure on those assets is deducted from borrowing costs capitalized. All other borrowing costs
      are recognized in interest expenses in the consolidated statements of operations and comprehensive income in the period in which they are incurred.&lt;/div&gt;
</us-gaap:DebtPolicyTextBlock>
    <us-gaap:StandardProductWarrantyPolicy
      contextRef="c20210101to20211231"
      id="Text_ba6e47b1c59b4718a62f57529be5092b">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Warranty&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;For each of its products, the Company generally provides a standard assurance type warranty ranging from 12 to 36 months and covering replacement of the product during the warranty
      period. The Company accounts for the estimated warranty costs as sales and marketing expenses at the time revenue is recognized. Warranty obligations are affected by historical failure rates and associated replacement costs. Utilizing historical
      warranty cost records, the Company calculates a rate of warranty expenses to revenue to determine the estimated warranty charge. The Company updates these estimated charges on a regular basis. &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Warranty obligations are included in other payables and accrued expenses in the consolidated balance sheets. &lt;/span&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt; color: rgb(0, 0, 0);"&gt;The following table shows changes in the Company&#x2019;s warranty obligations for the years ended December 31, 2021, 2020 and 2019
      respectively.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-indent: -7pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;2019&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Balance at beginning of period&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,975&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,811&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,710&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Additions&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,026&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,101&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,105&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Utilized&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2,370&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,937&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,004&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Balance at end of period&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,631&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,975&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,811&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:StandardProductWarrantyPolicy>
    <acmr:StandardProductWarrantyPeriod
      contextRef="c20210101to20211231_RangeAxis_MinimumMember"
      id="Fact_ebda69b1ad3c49fb88c40ca409c38dbc">P12M</acmr:StandardProductWarrantyPeriod>
    <acmr:StandardProductWarrantyPeriod
      contextRef="c20210101to20211231_RangeAxis_MaximumMember"
      id="Fact_0ed4c522a39c475287ffb44a8b16de37">P36M</acmr:StandardProductWarrantyPeriod>
    <us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_ea40d5ad2d5b45b8abc8bcd0ce2b87c2">&lt;span style="font-family: 'Times New Roman'; font-size: 10pt; color: rgb(0, 0, 0);"&gt;The following table shows changes in the Company&#x2019;s warranty obligations for the years ended December 31, 2021, 2020 and 2019
      respectively.&lt;/span&gt;
&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-indent: -7pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;2019&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Balance at beginning of period&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,975&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,811&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,710&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Additions&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,026&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,101&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,105&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Utilized&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2,370&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,937&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,004&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Balance at end of period&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,631&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,975&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,811&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_f1a340b3f66e4d55911e811b634166d2"
      unitRef="U001">3975000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent
      contextRef="c20191231"
      decimals="-3"
      id="Fact_9639ef3881894c279fed00a11a030e5f"
      unitRef="U001">2811000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent
      contextRef="c20181231"
      decimals="-3"
      id="Fact_35e236035e814ee58008f660a7ebafa3"
      unitRef="U001">1710000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <acmr:ProductWarrantyAccrualAdditions
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_840a8b8164f14bfc80055b419aa7c6e0"
      unitRef="U001">5026000</acmr:ProductWarrantyAccrualAdditions>
    <acmr:ProductWarrantyAccrualAdditions
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_a3a8909a44e1471eb2bf8208f426234d"
      unitRef="U001">3101000</acmr:ProductWarrantyAccrualAdditions>
    <acmr:ProductWarrantyAccrualAdditions
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_96ae3595e916471799cf83210889e140"
      unitRef="U001">2105000</acmr:ProductWarrantyAccrualAdditions>
    <acmr:ProductWarrantyAccrualUtilized
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_73063e5c0c2348d19c22aeaf007a8cad"
      unitRef="U001">2370000</acmr:ProductWarrantyAccrualUtilized>
    <acmr:ProductWarrantyAccrualUtilized
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_d36a79fa10014c8f8e61e59972ea4092"
      unitRef="U001">1937000</acmr:ProductWarrantyAccrualUtilized>
    <acmr:ProductWarrantyAccrualUtilized
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_ad30b314911c40feb0013de4db3cda6e"
      unitRef="U001">1004000</acmr:ProductWarrantyAccrualUtilized>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_87bc0f6bfc49497aacbe74a9ad184e1e"
      unitRef="U001">6631000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_7419543d94084dbaa05b96c5df2132b4"
      unitRef="U001">3975000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent
      contextRef="c20191231"
      decimals="-3"
      id="Fact_0718645d81a24ab192d86e458d60cf03"
      unitRef="U001">2811000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <acmr:GovernmentSubsidiesPolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_3ba00c2b23924888ac469ac1794a1af7">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Government Subsidies&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;ACM Shanghai has received seven special government
      grants. The first grant, which was awarded in 2008, relates to the development and commercialization of 65nm to 45nm stress-free polishing technology. The second grant was awarded in 2009 to fund interest expense on short-term borrowings. The third
      grant was made in 2014 and relates to the development of electro copper-plating technology. The fourth grant was made in June 2018 and related to development of polytetrafluoroethylene. The fifth grant was made in 2020, and relates to the development
      of Tahoe single bench cleaning technologies. As of December 31, 2021, the fourth and fifth grants had been fully utilized. The sixth grant was made in 2020, and relates to the development of other cleaning technologies. The seventh grant was made in
      2021, and relates to the development of the R&amp;amp;D and production center in the Lin-gang Special Area of Shanghai. These governmental authorities provide significant funding, although ACM Shanghai and ACM Shengwei is also required to invest certain
      amounts in the projects.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The governmental grants contain certain operating conditions, and the Company is required to go through a government due diligence process once the project is complete.
      The grants therefore are recorded as long-term liabilities upon receipt, although the Company is not required to return any funds it receives. Grant amounts are recognized in our statements of operations and comprehensive income as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: rgb(0, 0, 0);"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"/&gt;

    &lt;td style="width: 24.75pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Government subsidies relating to current expenses are recorded as reductions of those expenses in the periods in which the current expenses are recorded. For the years ended December
              31, 2021, 2020 and 2019, related government subsidies recognized as reductions of relevant expenses in the consolidated statements of operations and comprehensive income were $11,260, $2,658 and $3,195, respectively.&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: rgb(0, 0, 0);"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"/&gt;

    &lt;td style="width: 24.75pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Government subsidies related to depreciable assets are credited to income over the useful lives of the related assets for which the grant was received. For the years ended December
              31, 2021, 2020 and 2019, related government subsidies recognized as other income in the consolidated statements of operations and comprehensive income were $200, $149, and $147, respectively.&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Unearned government subsidies received are deferred for recognition and recorded as other long-term liabilities (note 13) in the balance sheet until the criteria for
      such recognition are satisfied.&lt;/div&gt;
</acmr:GovernmentSubsidiesPolicyTextBlock>
    <acmr:NumberOfGrantsReceived
      contextRef="c20210101to20211231"
      decimals="INF"
      id="Fact_69257e09934b456d865b146b42c421b6"
      unitRef="U006">7</acmr:NumberOfGrantsReceived>
    <acmr:GovernmentSubsidiesRecognizedAsReductionsOfRelevantExpenses
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_ef0d7a4afcc74f0eb571610d05bba763"
      unitRef="U001">11260000</acmr:GovernmentSubsidiesRecognizedAsReductionsOfRelevantExpenses>
    <acmr:GovernmentSubsidiesRecognizedAsReductionsOfRelevantExpenses
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_ca18ef8a8da644f382fdd1743bdc138d"
      unitRef="U001">2658000</acmr:GovernmentSubsidiesRecognizedAsReductionsOfRelevantExpenses>
    <acmr:GovernmentSubsidiesRecognizedAsReductionsOfRelevantExpenses
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_cf56a3f3c5034cc78fa8c817e89157a0"
      unitRef="U001">3195000</acmr:GovernmentSubsidiesRecognizedAsReductionsOfRelevantExpenses>
    <acmr:GovernmentSubsidiesRecognizedAsOtherIncome
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_d029214d0f06449f8912a8af104aa35e"
      unitRef="U001">200000</acmr:GovernmentSubsidiesRecognizedAsOtherIncome>
    <acmr:GovernmentSubsidiesRecognizedAsOtherIncome
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_5289e2811b60434eb0a9a0c26ec5c751"
      unitRef="U001">149000</acmr:GovernmentSubsidiesRecognizedAsOtherIncome>
    <acmr:GovernmentSubsidiesRecognizedAsOtherIncome
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_eefcb56d5b50404b9e134e3547ea3ce1"
      unitRef="U001">147000</acmr:GovernmentSubsidiesRecognizedAsOtherIncome>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy
      contextRef="c20210101to20211231"
      id="Text_fbd8672e83f543bfabd5adb4500e8bad">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Stock-based Compensation&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;ACM grants stock options to employees and non-employee consultants and directors and accounts for those stock-based awards in accordance with FASB ASC Topic 718, &lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;Compensation &#x2013; Stock Compensation.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Stock-based awards granted to employees and non-employee consultants and directors are measured at the fair value of the awards on the grant date and are recognized as
      expenses either (a) immediately on grant, if no vesting conditions are required or (b) using the graded vesting method, net of estimated forfeitures, over the requisite service period. The fair value of stock options is determined using the
      Black-Scholes valuation model when there is only service condition attached or the Monte Carlo valuation model when there is performance condition attached. Stock-based compensation expense, when recognized, is charged to the category of operating
      expense corresponding to the service function of the employees and non-employee consultants and directors.&lt;/div&gt;
</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:IncomeTaxPolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_38864a5852774d2ba22321ec5bca3792">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Income Taxes&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company accounts for income taxes using the liability method whereby deferred tax asset and liability account balances are determined based on differences between
      the financial reporting and tax bases of assets and liabilities and are measured using the enacted tax rates and laws that will be in effect when the differences are expected to reverse. The Company provides a valuation allowance, if necessary, to
      reduce deferred tax assets to their estimated realizable values.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In evaluating the ability to recover its deferred income tax assets, the Company considers all available positive and negative evidence, including its operating results,
      ongoing tax planning and forecasts of future taxable income on a jurisdiction-by-jurisdiction basis. In the event the Company determines that it would be able to realize its deferred income tax assets in the future in excess of their net recorded
      amount, it would make an adjustment to the valuation allowance that would reduce the provision for income taxes. Conversely, in the event that all or part of the net deferred tax assets are determined not to be realizable in the future, an adjustment
      to the valuation allowance would be charged to earnings in the period such determination is made.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Tax benefits related to uncertain tax positions are recognized when it is more likely than not that a tax position will be sustained during an audit. Interest and
      penalties related to unrecognized tax benefits are included within the provision for income tax.&lt;/div&gt;
</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:EarningsPerSharePolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_8150288ec278434f8a45ad6d95cd810b">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Basic and Diluted Net Income per Common Share&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Basic and diluted net income per common share are calculated as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-indent: -7pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;2019&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Numerator:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net income&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;42,921&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;21,677&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;19,458&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Less: Net income attributable to non-controlling interests and redeemable non-controlling interests&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,164&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,897&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;564&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;Net income available to common stockholders, basic&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;$ &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;37,757&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;18,780&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;$ &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;18,894&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="margin-left: 18pt; text-indent: -9pt;"&gt;Less: Dilutive effect arising from share-based awards by ACM Shanghai &lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;108&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net income available to common stockholders, diluted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;37,649&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,780&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,894&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Weighted average shares outstanding, basic&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;19,218,236&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,233,361&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;16,800,623&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Effect of dilutive securities&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,567,336&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,950,108&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,334,874&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Weighted average shares outstanding, diluted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;21,785,572&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;21,183,469&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;19,135,497&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net income per common share:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Basic&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.96&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.03&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.12&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Diluted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.73&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.89&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.99&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Basic and diluted net income per common share are presented using the two-class method, which allocates undistributed earnings to common stock and any participating
      securities according to dividend rights and participation rights on a proportionate basis. Under the two-class method, basic net income per common share is computed by dividing the sum of distributed and undistributed earnings attributable to common
      stockholders by the weighted average number of shares of common stock outstanding during the period. ACM did not have any participating securities outstanding during the three-year period ending December&#160;31, 2021.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;ACM has been authorized to issue Class A and Class B common stock since redomesticating in Delaware in November 2016. The two classes of common stock are substantially
      identical in all material respects, except for voting rights. Since ACM did not declare any dividends during the years ended December 31, 2021, 2020 and 2019, the net income per common share attributable to each class is the same under the
      &#x201c;two-class&#x201d; method. As such, the two classes of common stock have been presented on a combined basis in the consolidated statements of operations and comprehensive income and in the above computation of net income per common share.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Diluted &lt;/span&gt;and diluted net income per common share are presented using the two-class method, which
      allocates undistributed earnings to common stock and any participating securities according to dividend rights and participation rights on a proportionate basis. Under the two-class method, basic net income (per common share is computed by dividing
      the sum of distributed and undistributed earnings attributable to common stockholders by the weighted average number of shares of common stock outstanding during the period. ACM did not have any participating securities outstanding during the
      three-year period ending December&#160;31, 2021.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Diluted net income per common share reflects the potential dilution from securities, including stock
        options and issued warrants, that could share in ACM&#x2019;s earnings. Certain potential dilutive securities were excluded from the net income per share calculation because the impact would be anti-dilutive. The number of potentially dilutive shares that
        were not included in the calculation of diluted net income per share in the periods presented where their inclusion would be anti-dilutive were&lt;/span&gt;&#160;98,800,
      78,000 and 606,000 the
      years ended December 31, 2021, 2020 and 2019, respectively.&lt;/div&gt;
</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_8444202d5b324567b505d8554dafc934">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Basic and diluted net income per common share are calculated as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-indent: -7pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;2019&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Numerator:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net income&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;42,921&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;21,677&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;19,458&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Less: Net income attributable to non-controlling interests and redeemable non-controlling interests&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,164&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,897&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;564&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;Net income available to common stockholders, basic&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;$ &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;37,757&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;18,780&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;$ &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;18,894&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="margin-left: 18pt; text-indent: -9pt;"&gt;Less: Dilutive effect arising from share-based awards by ACM Shanghai &lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;108&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net income available to common stockholders, diluted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;37,649&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,780&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,894&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Weighted average shares outstanding, basic&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;19,218,236&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,233,361&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;16,800,623&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Effect of dilutive securities&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,567,336&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,950,108&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,334,874&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Weighted average shares outstanding, diluted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;21,785,572&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;21,183,469&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;19,135,497&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net income per common share:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Basic&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.96&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.03&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.12&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Diluted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.73&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.89&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.99&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:ProfitLoss
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_ef3d7b6c89944dd29d07dccfc2a5ad63"
      unitRef="U001">42921000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_316072daaf8642b6a98318796dfd0d46"
      unitRef="U001">21677000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_5e548eb1e3cd446cb93a09604f4e0d21"
      unitRef="U001">19458000</us-gaap:ProfitLoss>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_0b79e9e2660d4947a9e1a6af96f53708"
      unitRef="U001">5164000</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_317218d7ff4749e29d63f3a76e7c9f02"
      unitRef="U001">2897000</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_8b53e866964f4966b40968a14dfaa10a"
      unitRef="U001">564000</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_a75d43f25b8147ca9b326256ae6448fd"
      unitRef="U001">37757000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_2b35e5a0f6f1424eaa3ae135f6a002fe"
      unitRef="U001">18780000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_8872eed3d9be4b9ead63492007109621"
      unitRef="U001">18894000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
    <us-gaap:DilutiveSecuritiesEffectOnBasicEarningsPerShareOther
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_14480ad3ef764849972da1ba3f39f796"
      unitRef="U001">-108000</us-gaap:DilutiveSecuritiesEffectOnBasicEarningsPerShareOther>
    <us-gaap:DilutiveSecuritiesEffectOnBasicEarningsPerShareOther
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_7dd03a30cd5b4876aa7cc2b4c4e5c3e2"
      unitRef="U001">0</us-gaap:DilutiveSecuritiesEffectOnBasicEarningsPerShareOther>
    <us-gaap:DilutiveSecuritiesEffectOnBasicEarningsPerShareOther
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_67d31ff17b274aee81a53ee36813714d"
      unitRef="U001">0</us-gaap:DilutiveSecuritiesEffectOnBasicEarningsPerShareOther>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_933c62c52350492fbb7c6bb5730900f0"
      unitRef="U001">37649000</us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_e03554ff8c2e44458ec34bdb477e9d37"
      unitRef="U001">18780000</us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_f0461f1833be43978e8f781bb3ccdbeb"
      unitRef="U001">18894000</us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20210101to20211231"
      decimals="0"
      id="Fact_a50d0667d10e442f956acbea0ea78a06"
      unitRef="U002">19218236</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20200101to20201231"
      decimals="0"
      id="Fact_001185c8ccee4572b8cd402b4c5f9b88"
      unitRef="U002">18233361</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20190101to20191231"
      decimals="0"
      id="Fact_5876e48fea644a2fb0f062d569f9cb34"
      unitRef="U002">16800623</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="c20210101to20211231"
      decimals="0"
      id="Fact_4ffe6e912c12428d8795f676140e28cb"
      unitRef="U002">2567336</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="c20200101to20201231"
      decimals="0"
      id="Fact_c0f95f4b61a74ebd8016628dd5ca32b2"
      unitRef="U002">2950108</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="c20190101to20191231"
      decimals="0"
      id="Fact_a2c5298adeab44748107f17d2c726ff5"
      unitRef="U002">2334874</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20210101to20211231"
      decimals="0"
      id="Fact_e83ef14f2dde4aef8ea48946864083a0"
      unitRef="U002">21785572</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20200101to20201231"
      decimals="0"
      id="Fact_cde2647ad4ee41d58bb7dc069c018ec2"
      unitRef="U002">21183469</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20190101to20191231"
      decimals="0"
      id="Fact_4a46cf58706f434e9c5e3497bf2cddb8"
      unitRef="U002">19135497</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20210101to20211231"
      decimals="2"
      id="Fact_088df56e01564fd684310b3c15d2a166"
      unitRef="U003">1.96</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20200101to20201231"
      decimals="2"
      id="Fact_90ae4a2cb51b413b8bd8c24d7891ed09"
      unitRef="U003">1.03</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20190101to20191231"
      decimals="2"
      id="Fact_c79a4a8bf6dc4e90942d255301b96d4b"
      unitRef="U003">1.12</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20210101to20211231"
      decimals="2"
      id="Fact_0f8abeadb6f448fc97f541efa9709024"
      unitRef="U003">1.73</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20200101to20201231"
      decimals="2"
      id="Fact_87455f463575478da452716e664acd0b"
      unitRef="U003">0.89</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20190101to20191231"
      decimals="2"
      id="Fact_5088e5e3dde249f08366f513c834e453"
      unitRef="U003">0.99</us-gaap:EarningsPerShareDiluted>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c20210101to20211231"
      decimals="0"
      id="Fact_0ad340cc26e54b3bbcf0a966bb7d5a82"
      unitRef="U002">98800</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c20200101to20201231"
      decimals="0"
      id="Fact_817aa1c1deeb4a4dab7f62b3adb1f197"
      unitRef="U002">78000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c20190101to20191231"
      decimals="0"
      id="Fact_e8516ff804434c2598e114fe0d9a9499"
      unitRef="U002">606000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:ComprehensiveIncomePolicyPolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_c51efacfd9d74270a5c946d0c82bf8a3">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Comprehensive Income Attributable to the Company&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company applies FASB ASC Topic 220, &lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;Comprehensive Income&lt;/span&gt;, which
      establishes standards for the reporting and display of comprehensive income or loss, requiring its components to be reported in a financial statement with the same prominence as other financial statements. The comprehensive income attributable to the
      Company was $42,009, $25,312,
      and $18,076 for the years ended December 31, 2021, 2020 and 2019, respectively.&lt;/div&gt;
</us-gaap:ComprehensiveIncomePolicyPolicyTextBlock>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_6fac2fa13c794e268207eab66244734e"
      unitRef="U001">42009000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_d35a2f5642264387b2766aa9f68ca8c9"
      unitRef="U001">25312000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_29f4c8311b964214839566d71a1018b0"
      unitRef="U001">18076000</us-gaap:ComprehensiveIncomeNetOfTax>
    <acmr:StatutoryReservesPolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_eb37219647a34fa1a04b5dfc52581e3f">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Statutory reserves&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The income of ACM&#x2019;s PRC subsidiaries is distributable to their shareholders after transfers to reserves as required under relevant PRC laws and regulations and the
      subsidiaries&#x2019; Articles of Association. As stipulated by the relevant laws and regulations in the PRC, the PRC subsidiaries are required to maintain reserves, including reserves for statutory surpluses and public welfare funds that are not
      distributable to shareholders. A PRC subsidiary&#x2019;s appropriations to the reserves are approved by its board of directors. At least 10% of annual statutory after-tax profits, as determined in accordance with PRC accounting standards and regulations, is
      required to be allocated to the statutory surplus reserves. If the cumulative total of the statutory surplus reserves reaches 50% of a PRC subsidiary&#x2019;s registered capital, any further appropriation is optional.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Statutory surplus reserves may be used to offset accumulated losses or to increase the registered capital of a PRC subsidiary, subject to approval from the relevant PRC
      authorities, and are not available for dividend distribution to the subsidiary&#x2019;s shareholders. The PRC subsidiaries are prohibited from distributing dividends unless any losses from prior years have been offset. Except for offsetting prior years&#x2019;
      losses, however, statutory surplus reserves must be maintained at a minimum of 25% of share capital after such usage. ACM Shanghai estimated a statutory surplus reserve of $8,312 and $4,388 based on an accumulated profit as of December 31, 2021 and 2020,
      respectively, which is included in the accumulated surplus in the consolidated balance sheets.&lt;/div&gt;
</acmr:StatutoryReservesPolicyTextBlock>
    <us-gaap:StatutoryAccountingPracticesStatutoryCapitalAndSurplusBalance
      contextRef="c20211231_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="-3"
      id="Fact_a4bce5cee23d47178d2b45f4b6fed711"
      unitRef="U001">8312000</us-gaap:StatutoryAccountingPracticesStatutoryCapitalAndSurplusBalance>
    <us-gaap:StatutoryAccountingPracticesStatutoryCapitalAndSurplusBalance
      contextRef="c20201231_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="-3"
      id="Fact_cbe734d83af04062b275716939b94649"
      unitRef="U001">4388000</us-gaap:StatutoryAccountingPracticesStatutoryCapitalAndSurplusBalance>
    <us-gaap:FairValueOfFinancialInstrumentsPolicy
      contextRef="c20210101to20211231"
      id="Text_e4cc4a1c13af42cbac5026dddbbc9e9f">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Fair Value of Financial Instruments&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Under the FASB&#x2019;s authoritative guidance on fair value measurements, fair value is the price that would be received to sell an asset or paid to transfer a liability in an
      orderly transaction between market participants at the measurement date. In determining the fair value, the Company uses various methods including market, income and cost approaches. Based on these approaches, the Company often utilizes certain
      assumptions that market participants would use in pricing the asset or liability, including assumptions about risk and the risks inherent in the inputs to the valuation technique. These inputs can be readily observable, market corroborated or
      generally unobservable inputs. The Company uses valuation techniques that maximize the use of observable inputs and minimize the use of unobservable inputs. Based on observability of the inputs used in the valuation techniques, the Company is
      required to provide the following information according to the fair value hierarchy. The fair value hierarchy ranks the quality and reliability of the information used to determine fair values. Financial assets and liabilities carried at fair value
      are classified and disclosed in one of the following three categories:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Level 1: Valuations for assets and liabilities traded in active exchange markets. Valuations are obtained from readily available pricing sources for market transactions
      involving identical assets or liabilities.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Level 2: Valuations for assets and liabilities traded in less active dealer or broker markets. Valuations are obtained from third party pricing services for identical or
      similar assets or liabilities.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Level 3: Valuations for assets and liabilities that are derived from other valuation methodologies, including option pricing models, discounted cash flow models and
      similar techniques, and not based on market exchange, dealer or broker traded transactions. Level 3 valuations incorporate certain unobservable assumptions and projections in determining the fair value assigned to such assets.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;All transfers between fair value hierarchy levels are recognized by the Company at the end of each reporting period. In certain cases, the inputs used to measure fair
      value may fall into different levels of the fair value hierarchy. In such cases, an investment&#x2019;s level within the fair value hierarchy is based on the lowest level of input that is significant to the fair value measurement in its entirety requires
      judgment, and considers factors specific to the investment. The inputs or methodology used for valuing financial instruments are not necessarily an indication of the risks associated with investment in those instruments.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic; font-weight: bold;"&gt;Fair Value Measured or Disclosed on a Recurring Basis&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;Trading securities - &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;The fair value of trading securities derives from the on quoted prices for identical securities in active markets at the balance sheet date, less a discount applied to reflect the remaining lock-up period. The Company classifies the
        valuation techniques that use these inputs as Level 1 and Level 2 fair value measurement as of December 31, 2021 and 2022, respectively (note 16).&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;Financial liability &#x2013; &lt;/span&gt;The fair value of financial liability are classified
      within Level 3 as the fair values are measured based on the inputs&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;&#160;&lt;/span&gt;linked to the choice of settlement by the counter party that are unobservable in the market.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;Other financial items for disclosure purpose&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;&#x2014;The fair value of other financial items of the Company, other than long-term borrowings for disclosure purpose, including cash and cash equivalents, accounts receivable, other receivables, short-term borrowings,
        accounts payable, advances from customers, and other payables and accrued expenses, approximate their carrying value due to their short-term nature. The carrying value of the long-term borrowings which are subject to fixed interest rate
        approximates its fair value as the market interest rate did not significantly change from the borrowing date to December 31, 2021.&lt;/span&gt;&lt;/div&gt;
</us-gaap:FairValueOfFinancialInstrumentsPolicy>
    <acmr:OperatingAndFinancialRisksPolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_183f2132403646a8b0ae7431b9d83308">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Operating and Financial Risks&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;Concentration of Credit Risk&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Financial instruments that potentially subject the Company to credit risk consist principally of cash and cash equivalents, restricted cash and accounts receivable. The
      Company deposits and invests its cash with financial institutions that management believes are creditworthy.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company is potentially subject to concentrations of credit risks in its accounts receivable. In the year ended December 31, 2021 and 2020, a total of two and three customers, respectively,
      individually accounted for greater than ten percent of the Company&#x2019;s revenue:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Customer A&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;28.1&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;36.9&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Customer B&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;20.8&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;26.8&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Customer C&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="-sec-ix-hidden:Fact_f6619c6f20f546edb1069e48d3202f70"&gt;*&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;12.1&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;48.9&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;75.8&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;Interest Rate Risk&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;As of December 31, 2021 and 2020, the balance of the Company&#x2019;s short term bank borrowings (note 9), matured at various dates within the following year and did not expose
      the Company to interest rate risk.&#160; As of December 31, 2021, the balance of the Company&#x2019;s long-term borrowings (note 12) carried a fixed interest rate and the Company may have been exposed to fair value interest rate risk.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;Liquidity Risk&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company&#x2019;s working capital at December 31, 2021 and 2020 was sufficient to meet its then-current requirements. The Company may, however, require additional cash due
      to changing business conditions or other future developments, including any investments or acquisitions the Company decides to pursue. In the long run, the Company intends to rely primarily on cash flows from operations and additional borrowings from
      financial institutions in order to meet its cash needs. If those sources are insufficient to meet cash requirements, the Company may seek to issue additional debt or equity.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;Country Risk&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company has significant investments in the PRC. The operating results of the Company may be adversely affected by changes in the political and social conditions in
      the PRC and by changes in PRC government policies with respect to laws and regulations, anti-inflationary measures, currency conversion and remittance abroad, and rates and methods of taxation, among other things.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;Foreign Currency Risk and Translation&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company&#x2019;s consolidated financial statements are presented in U.S. dollars, which is the Company&#x2019;s reporting currency, while the functional currency of ACM&#x2019;s
      subsidiaries is the Chinese Renminbi (&#x201c;RMB&#x201d;), and the Korean Won. Changes in the relative values of U.S. dollars and RMB affect the Company&#x2019;s reported levels of revenues and profitability as the results of its operations are translated from RMB into
      U.S. dollars for reporting purposes. Because the Company has not engaged in any hedging activities, it cannot predict the impact of future exchange rate fluctuations on the results of its operations and it may experience economic losses as a result
      of foreign currency exchange rate fluctuations.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Transactions of ACM&#x2019;s subsidiaries involving foreign currencies are recorded in functional currency according to the rate of exchange prevailing on the date when the
      transaction occurs. The ending balances of the Company&#x2019;s foreign currency accounts are converted into functional currency using the rate of exchange prevailing at the end of each reporting period. Net gains and losses resulting from foreign exchange
      fluctuations as marked to market at year-end are included in the consolidated statements of operations and comprehensive income. Total foreign currency translation adjustment was $4,695, $10,493 and ($899) for the years ended December 31, 2021, 2020 and 2019, respectively.&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In accordance with FASB ASC Topic 830, &lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;Foreign Currency Matters&lt;/span&gt;, the Company
      translates assets and liabilities into U.S. dollars from RMB or Korean Won using the rate of exchange prevailing at the applicable balance sheet date and the consolidated statements of operations and comprehensive income and consolidated statements
      of cash flows are translated at an average rate during the reporting period. Adjustments resulting from the translation are recorded in stockholders&#x2019; (deficit) equity as part of accumulated other comprehensive income (loss). Any differences between
      the initially recorded amount and the settlement amount are recorded as a gain or loss on foreign currency transaction in the consolidated statements of operations and comprehensive income.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Translations of amounts from RMB and Korean Won into U.S. dollars were made at the following exchange rates for the respective dates and periods:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;At December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; text-indent: -9pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&lt;span style="text-indent: 0pt;"&gt;2019&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Consolidated balance sheets:&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;RMB to $1.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.3757&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.5232&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.9784&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;KRW to $1.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,145.48&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,088.14&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,156.07&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td colspan="12" style="vertical-align: middle;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Consolidated statements of operations and comprehensive income:&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;RMB to $1.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.4515&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.8966&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.8966&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;KRW to $1.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,190.48&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,179.25&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,165.50&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</acmr:OperatingAndFinancialRisksPolicyTextBlock>
    <us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock
      contextRef="c20210101to20211231"
      id="Text_133d1e5c69b34e92b6f12e79253f797e">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company is potentially subject to concentrations of credit risks in its accounts receivable. In the year ended December 31, 2021 and 2020, a total of two and three customers, respectively,
      individually accounted for greater than ten percent of the Company&#x2019;s revenue:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Customer A&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;28.1&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;36.9&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Customer B&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;20.8&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;26.8&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Customer C&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="-sec-ix-hidden:Fact_f6619c6f20f546edb1069e48d3202f70"&gt;*&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;12.1&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;48.9&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;75.8&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock>
    <acmr:NumberOfMajorCustomers
      contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember"
      decimals="INF"
      id="Fact_23375442c8ef4453b1aeba110416f874"
      unitRef="U007">2</acmr:NumberOfMajorCustomers>
    <acmr:NumberOfMajorCustomers
      contextRef="c20200101to20201231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember"
      decimals="INF"
      id="Fact_8a10cdc38409447ab0f2fd4810da0499"
      unitRef="U007">3</acmr:NumberOfMajorCustomers>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_CustomerAMember"
      decimals="3"
      id="Fact_a7f609e033834724a9d8a9ae782cd2f5"
      unitRef="U004">0.281</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20200101to20201231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_CustomerAMember"
      decimals="3"
      id="Fact_fea1b4231b6c4e2193594f2613d1cae9"
      unitRef="U004">0.369</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_CustomerBMember"
      decimals="3"
      id="Fact_5a669200987b441cbf8ce503c41615ec"
      unitRef="U004">0.208</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20200101to20201231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_CustomerBMember"
      decimals="3"
      id="Fact_0c371db0f4d84d37bde2d2e624eeef60"
      unitRef="U004">0.268</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20200101to20201231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_CustomerCMember"
      decimals="3"
      id="Fact_ce3e672c9dc9454cba349ef98d9ffe2d"
      unitRef="U004">0.121</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_CustomerMember"
      decimals="3"
      id="Fact_96c789ccd3d5474c8026d1f79f4b6139"
      unitRef="U004">0.489</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20200101to20201231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_CustomerMember"
      decimals="3"
      id="Fact_abbd71efbe6a4b928e52a295807afbd3"
      unitRef="U004">0.758</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_bd55056df94c42b09dd74378de9852d4"
      unitRef="U001">4695000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_2720b560fb0c4702b3f1c8d86f5b245d"
      unitRef="U001">10493000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_44d0b85b8fb342e98ba5d3d4805a439f"
      unitRef="U001">-899000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <acmr:SchedulesOfTranslationsOfForeignExchangeRateTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_4aa59746deb24ab6b9aec6dafbf4fe62">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Translations of amounts from RMB and Korean Won into U.S. dollars were made at the following exchange rates for the respective dates and periods:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;At December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; text-indent: -9pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&lt;span style="text-indent: 0pt;"&gt;2019&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Consolidated balance sheets:&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;RMB to $1.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.3757&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.5232&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.9784&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;KRW to $1.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,145.48&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,088.14&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,156.07&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td colspan="12" style="vertical-align: middle;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;Consolidated statements of operations and comprehensive income:&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;RMB to $1.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.4515&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.8966&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.8966&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;KRW to $1.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,190.48&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,179.25&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,165.50&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</acmr:SchedulesOfTranslationsOfForeignExchangeRateTableTextBlock>
    <us-gaap:ForeignCurrencyExchangeRateTranslation1
      contextRef="c20211231_CurrencyAxis_CNY"
      decimals="4"
      id="Fact_2a4dce592f4a4b0b881fbad6818dfba0"
      unitRef="U004">6.3757</us-gaap:ForeignCurrencyExchangeRateTranslation1>
    <us-gaap:ForeignCurrencyExchangeRateTranslation1
      contextRef="c20201231_CurrencyAxis_CNY"
      decimals="4"
      id="Fact_4ffc7b154d5a4d83832c9a63fb6df31d"
      unitRef="U004">6.5232</us-gaap:ForeignCurrencyExchangeRateTranslation1>
    <us-gaap:ForeignCurrencyExchangeRateTranslation1
      contextRef="c20191231_CurrencyAxis_CNY"
      decimals="4"
      id="Fact_2a17f86ba46743f88ab4603e003bc553"
      unitRef="U004">6.9784</us-gaap:ForeignCurrencyExchangeRateTranslation1>
    <us-gaap:ForeignCurrencyExchangeRateTranslation1
      contextRef="c20211231_CurrencyAxis_KRW"
      decimals="2"
      id="Fact_59ec5cff4d76494eb4269ee6751ae39f"
      unitRef="U004">1145.48</us-gaap:ForeignCurrencyExchangeRateTranslation1>
    <us-gaap:ForeignCurrencyExchangeRateTranslation1
      contextRef="c20201231_CurrencyAxis_KRW"
      decimals="2"
      id="Fact_f77fbe6e2a8f4c84a196944c92b0691c"
      unitRef="U004">1088.14</us-gaap:ForeignCurrencyExchangeRateTranslation1>
    <us-gaap:ForeignCurrencyExchangeRateTranslation1
      contextRef="c20191231_CurrencyAxis_KRW"
      decimals="2"
      id="Fact_4a36cbb17e9c4ce8ac17e07b990d5d17"
      unitRef="U004">1156.07</us-gaap:ForeignCurrencyExchangeRateTranslation1>
    <acmr:ForeignCurrencyExchangeRateTranslation2
      contextRef="c20210101to20211231_CurrencyAxis_CNY"
      decimals="4"
      id="Fact_f1b01d7f554248f4867e54b1e916f28b"
      unitRef="U004">6.4515</acmr:ForeignCurrencyExchangeRateTranslation2>
    <acmr:ForeignCurrencyExchangeRateTranslation2
      contextRef="c20200101to20201231_CurrencyAxis_CNY"
      decimals="4"
      id="Fact_119197be7c4a4f1a891df71027bfea29"
      unitRef="U004">6.8966</acmr:ForeignCurrencyExchangeRateTranslation2>
    <acmr:ForeignCurrencyExchangeRateTranslation2
      contextRef="c20190101to20191231_CurrencyAxis_CNY"
      decimals="4"
      id="Fact_66624bcb92474ac7bb6b2cc80c0234b7"
      unitRef="U004">6.8966</acmr:ForeignCurrencyExchangeRateTranslation2>
    <acmr:ForeignCurrencyExchangeRateTranslation2
      contextRef="c20210101to20211231_CurrencyAxis_KRW"
      decimals="2"
      id="Fact_91047e8e629f451bbffae8f87e7a9262"
      unitRef="U004">1190.48</acmr:ForeignCurrencyExchangeRateTranslation2>
    <acmr:ForeignCurrencyExchangeRateTranslation2
      contextRef="c20200101to20201231_CurrencyAxis_KRW"
      decimals="2"
      id="Fact_be2fa3ec545c426689f6dcb6574cffcd"
      unitRef="U004">1179.25</acmr:ForeignCurrencyExchangeRateTranslation2>
    <acmr:ForeignCurrencyExchangeRateTranslation2
      contextRef="c20190101to20191231_CurrencyAxis_KRW"
      decimals="2"
      id="Fact_eaca0778560b42e4addd618949057e5b"
      unitRef="U004">1165.50</acmr:ForeignCurrencyExchangeRateTranslation2>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="c20210101to20211231"
      id="Text_ed84949f37f9491680f98836627de2fa">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic; font-weight: bold;"&gt;Recently Adopted Accounting Pronouncements&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In December 2019, the Financial Accounting Standards Board (the &#x201c;FASB&#x201d;) issued Accounting Standards Update (&#x201c;ASU&#x201d;) No. 2019-12, Income Taxes (Topic 740): Simplifying the
      Accounting for Income Taxes. ASU 2019-12 simplifies the accounting for income taxes by removing certain exceptions to the general principles in Topic 740. It also improves consistent application of and simplifies GAAP for other areas of Topic 740 by
      clarifying and amending existing guidance. The Company adopted ASU 2019-12 on January 1, 2021. The adoption of ASU 2019-12 did not have a material impact on the Company&#x2019;s consolidated financial statements.&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; In March 2020, the FASB issued ASU No. 2020-04, Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting. ASU
      2020-04 provide optional expedients and exceptions for applying GAAP to contracts, hedging relationships, and other transactions affected by reference rate reform. The Company adopted ASU 2020-04 on January 1, 2021. The adoption of ASU 2020-04 did
      not have a material impact on the Company&#x2019;s consolidated financial statements.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic; font-weight: bold;"&gt;Recent Accounting Pronouncements Not Yet Adopted&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;In &lt;/span&gt;June 2016, the FASB issued ASU 2016-13, &lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;Financial Instruments-Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments&lt;/span&gt;. ASU 2016-13 replaced the pre-existing incurred loss impairment methodology with a methodology that reflects
      expected credit losses and requires consideration of a broader range of reasonable and supportable information to inform credit loss estimates. ASU 2016-13 requires use of a forward-looking expected credit loss model for accounts receivables, loans
      and other financial instruments. ASU 2016-13 is effective for fiscal years beginning after December 15, 2019, with early adoption permitted. &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In October 2019, the FASB issued ASU 2019-10,&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt; Financial Instruments &#x2013; Credit Losses
        (Topic 326), Derivatives and Hedging (Topic 815) and Leases (Topic 842)&lt;/span&gt;, which defers the effective date for public filers that are considered small reporting companies (&#x201c;SRC&#x201d;) as defined by the U.S. Securities and Exchange Commission
      (&#x201c;SEC&#x201d;) to fiscal years beginning after December&#160;15, 2022, including interim periods within those fiscal years. Since &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;the Company was eligible to be an SRC based on its SRC determination
        as of November 15, 2019 (which is the issuance date of ASU 2019-10) in accordance with SEC regulations, the Company will adopt the standards for the year beginning January 1, 2023. Adoption of the standard requires using a modified retrospective
        approach through a cumulative-effect adjustment to retained earnings as of the effective date to align existing credit loss methodology with the new standard. The Company is evaluating the impact of this standard on its consolidated financial
        statements, including accounting policies, processes and systems and expects the standard will have a minor impact on its consolidated financial statements.&lt;/span&gt;  &lt;/div&gt;
</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:RevenueFromContractWithCustomerTextBlock
      contextRef="c20210101to20211231"
      id="Text_780a65c4017347e2b650f3fb364785fe">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 3 &#x2013; REVENUE FROM CONTRACTS WITH CUSTOMERS&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company assesses revenues based upon the nature or type of goods or services it provides and the geographic location of the related business. The following tables
      present disaggregated revenue information:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%; margin-left: auto; margin-right: auto;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Single Wafer Cleaning, Tahoe and Semi-Critical Cleaning Equipment&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;189,208&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;131,248&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;90,501&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;ECP (front-end and packaging), Furnace and Other Technologies&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;33,210&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;13,343&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,900&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Advanced Packaging (excluding ECP), Services &amp;amp; Spares&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;37,333&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;12,033&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;10,124&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 4px; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Total Revenue By Product Category&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;259,751&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;156,624&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;107,524&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Wet cleaning and other front-end processing tools&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;$ &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;202,268&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;$ &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;136,317&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;90,935&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Advanced packaging, other processing tools, services and spares&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;57,483&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;20,307&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;16,590&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 4px; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Total Revenue Front-end and Back-End&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;259,751&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;156,624&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;107,524&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto 0px 0px; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Mainland China&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;258,615&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;154,359&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;103,467&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other Regions&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,136&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,265&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,057&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;259,751&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;156,624&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;107,524&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:DisaggregationOfRevenueTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_f6ac1a4e0bd248ec9d255c4eed391bad">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company assesses revenues based upon the nature or type of goods or services it provides and the geographic location of the related business. The following tables
      present disaggregated revenue information:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%; margin-left: auto; margin-right: auto;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Single Wafer Cleaning, Tahoe and Semi-Critical Cleaning Equipment&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;189,208&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;131,248&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;90,501&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;ECP (front-end and packaging), Furnace and Other Technologies&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;33,210&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;13,343&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,900&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Advanced Packaging (excluding ECP), Services &amp;amp; Spares&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;37,333&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;12,033&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;10,124&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 4px; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Total Revenue By Product Category&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;259,751&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;156,624&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;107,524&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Wet cleaning and other front-end processing tools&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;$ &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;202,268&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;$ &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;136,317&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;90,935&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Advanced packaging, other processing tools, services and spares&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;57,483&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;20,307&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;16,590&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 4px; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Total Revenue Front-end and Back-End&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;259,751&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;156,624&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;107,524&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto 0px 0px; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Mainland China&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;258,615&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;154,359&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;103,467&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other Regions&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,136&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,265&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,057&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;259,751&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;156,624&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;107,524&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ProductOrServiceAxis_TotalSingleWaferAndSemiCriticalCleaningEquipmentMember"
      decimals="-3"
      id="Fact_b8ee7b407f2944a49ab7f4846d9dfc74"
      unitRef="U001">189208000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20200101to20201231_ProductOrServiceAxis_TotalSingleWaferAndSemiCriticalCleaningEquipmentMember"
      decimals="-3"
      id="Fact_665a650bcffe4d4db6bb7a708d3692c1"
      unitRef="U001">131248000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20190101to20191231_ProductOrServiceAxis_TotalSingleWaferAndSemiCriticalCleaningEquipmentMember"
      decimals="-3"
      id="Fact_2c17dac21b1e45778d2f5098b24a8fed"
      unitRef="U001">90501000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ProductOrServiceAxis_ECPFrontEndAndPackagingFurnaceAndOtherTechnologiesMember"
      decimals="-3"
      id="Fact_0a2dda339e1542bfb2861450f8427c73"
      unitRef="U001">33210000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20200101to20201231_ProductOrServiceAxis_ECPFrontEndAndPackagingFurnaceAndOtherTechnologiesMember"
      decimals="-3"
      id="Fact_a4f0944f840b417d8397114d0fd4f7a9"
      unitRef="U001">13343000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20190101to20191231_ProductOrServiceAxis_ECPFrontEndAndPackagingFurnaceAndOtherTechnologiesMember"
      decimals="-3"
      id="Fact_f6bffe2ce7d845bfa1ac3400a6e395df"
      unitRef="U001">6900000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ProductOrServiceAxis_AdvancedPackagingExcludeECPServicesSparesMember"
      decimals="-3"
      id="Fact_58542ac1f23e4bfca14fba72a0234452"
      unitRef="U001">37333000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20200101to20201231_ProductOrServiceAxis_AdvancedPackagingExcludeECPServicesSparesMember"
      decimals="-3"
      id="Fact_0aae1949a7a94edb947ed40db9205141"
      unitRef="U001">12033000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20190101to20191231_ProductOrServiceAxis_AdvancedPackagingExcludeECPServicesSparesMember"
      decimals="-3"
      id="Fact_e361149e1ac7485daaa37b9d0ce4066b"
      unitRef="U001">10124000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_696e648976ac4249bca4d650ae675ebe"
      unitRef="U001">259751000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_69e250e1f4a84f15aee22cf4822caf50"
      unitRef="U001">156624000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_f377574f7bf14b0c92947eba28ccb276"
      unitRef="U001">107524000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ProductOrServiceAxis_WetCleaningAndOtherFrontEndProcessingToolsMember"
      decimals="-3"
      id="Fact_1d85913dea1f4f7b8ce298dc075b2b0b"
      unitRef="U001">202268000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20200101to20201231_ProductOrServiceAxis_WetCleaningAndOtherFrontEndProcessingToolsMember"
      decimals="-3"
      id="Fact_811412b1a9d04a66aa5181a94cbd23b3"
      unitRef="U001">136317000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20190101to20191231_ProductOrServiceAxis_WetCleaningAndOtherFrontEndProcessingToolsMember"
      decimals="-3"
      id="Fact_48dfc29a35324203a27905c50376a1b3"
      unitRef="U001">90935000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ProductOrServiceAxis_AdvancedPackagingOtherProcessingServicesAndSparesMember"
      decimals="-3"
      id="Fact_f2e577c99d50478fb06b0e52107ebb93"
      unitRef="U001">57483000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20200101to20201231_ProductOrServiceAxis_AdvancedPackagingOtherProcessingServicesAndSparesMember"
      decimals="-3"
      id="Fact_f93db1b7e10447d481b2113f4967dd07"
      unitRef="U001">20307000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20190101to20191231_ProductOrServiceAxis_AdvancedPackagingOtherProcessingServicesAndSparesMember"
      decimals="-3"
      id="Fact_a90eaf28c9414da19032f441a9871c2a"
      unitRef="U001">16590000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_b939a512c769492ea8b503b678ea4a57"
      unitRef="U001">259751000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_7768451cd5e743bea2d738bfa94e8ff6"
      unitRef="U001">156624000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_7629dc48360347e4b0161cc170fd45d0"
      unitRef="U001">107524000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_StatementGeographicalAxis_CN"
      decimals="-3"
      id="Fact_b06f9d48e8394914afd96eb2952d3703"
      unitRef="U001">258615000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20200101to20201231_StatementGeographicalAxis_CN"
      decimals="-3"
      id="Fact_18e35c275df545f1b253f8cf15b30af5"
      unitRef="U001">154359000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20190101to20191231_StatementGeographicalAxis_CN"
      decimals="-3"
      id="Fact_a65bf9caca5a44d681c6c28276eccd80"
      unitRef="U001">103467000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_StatementGeographicalAxis_OherRegionsMember"
      decimals="-3"
      id="Fact_6731bd1c275c49899badd1a3c816f975"
      unitRef="U001">1136000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20200101to20201231_StatementGeographicalAxis_OherRegionsMember"
      decimals="-3"
      id="Fact_6d346081995842edbd2eb59120e8f3e5"
      unitRef="U001">2265000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20190101to20191231_StatementGeographicalAxis_OherRegionsMember"
      decimals="-3"
      id="Fact_272b5fee55084e56842663e2ae1caa10"
      unitRef="U001">4057000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_82be2432ae9c4a098e12f84344e5dbfe"
      unitRef="U001">259751000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_618e7faffb584d37bbc85a0c50191f79"
      unitRef="U001">156624000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_d56b6b22ead94023810a214dd4818a38"
      unitRef="U001">107524000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock
      contextRef="c20210101to20211231"
      id="Text_68680fd8ed82482badf27d28c267b196">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 4 &#x2013; ACCOUNTS RECEIVABLE&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;At December 31, 2021 and 2020, accounts receivable consisted of the following:&lt;/div&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accounts receivable&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;105,553&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;56,441&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Less: Allowance for doubtful accounts&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;105,553&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;56,441&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company reviews accounts receivable on a periodic basis and makes general and specific allowances when there is doubt as to the collectability of individual
      balances. No allowance for doubtful accounts was considered necessary at December 31, 2021 and 2020.&lt;/div&gt;
</us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock>
    <us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock
      contextRef="c20210101to20211231"
      id="Text_020fc52e64244fb28b20a4e8f8a0bef8">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;At December 31, 2021 and 2020, accounts receivable consisted of the following:&lt;/div&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accounts receivable&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;105,553&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;56,441&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Less: Allowance for doubtful accounts&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;105,553&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;56,441&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock>
    <us-gaap:AccountsReceivableGrossCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_fd7a398a03aa450d935dee21965d6821"
      unitRef="U001">105553000</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AccountsReceivableGrossCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_746db397f01c4c8481cb93e3f3808a14"
      unitRef="U001">56441000</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_f7c6789d5da04d86bed017f297b930ed"
      unitRef="U001">0</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_753e237664674cb99009d849e820bc08"
      unitRef="U001">0</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_7947f903bd414d2cb85d8fa1e29d3fc0"
      unitRef="U001">105553000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_f26ead4c3ad3476199a0e15a8a0f3bd3"
      unitRef="U001">56441000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_a134ee26bec04374986745ae803f1876"
      unitRef="U001">-0</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_8fc53fe4f0304e3b8e784eacd874d86f"
      unitRef="U001">-0</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:InventoryDisclosureTextBlock
      contextRef="c20210101to20211231"
      id="Text_494484404c8a4d5a809e40eef8913276">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 5 &#x2013; INVENTORIES&lt;/div&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;At December 31, 2021 and 2020, inventory consisted of the following:&lt;/div&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Raw materials&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;90,552&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;32,391&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Work in process&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;35,840&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;23,871&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Finished goods&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;91,724&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;32,377&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total inventory&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;218,116&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;88,639&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;At December 31, 2021 and 2020, the Company held an inventory reserve of $1,215
      and $1,140 respectively. &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;At December 31, 2021 and 2020, respectively,
        finished goods inventory included system shipments of first-tools to existing or prospective customers, for which ownership does not transfer until customer acceptance or customer purchase, totaling $91,724 and $32,377 respectively. At December 31, 2021 and 2020,
        the value of finished goods inventory for which customers are contractually obligated to take ownership upon acceptance totaled $71,889
        and $20,834, respectively.&lt;/span&gt;&lt;/div&gt;
</us-gaap:InventoryDisclosureTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_764821d2496049e38e8ed1e923b1bceb">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;At December 31, 2021 and 2020, inventory consisted of the following:&lt;/div&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Raw materials&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;90,552&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;32,391&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Work in process&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;35,840&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;23,871&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Finished goods&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;91,724&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;32,377&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total inventory&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;218,116&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;88,639&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryRawMaterials
      contextRef="c20211231"
      decimals="-3"
      id="Fact_109a15c15c84419f8ccc32f9a0a10f66"
      unitRef="U001">90552000</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryRawMaterials
      contextRef="c20201231"
      decimals="-3"
      id="Fact_b9870d7c3eb34f4991d050e8966edfe5"
      unitRef="U001">32391000</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryWorkInProcess
      contextRef="c20211231"
      decimals="-3"
      id="Fact_3af3144646314b18819b5a103226c3bc"
      unitRef="U001">35840000</us-gaap:InventoryWorkInProcess>
    <us-gaap:InventoryWorkInProcess
      contextRef="c20201231"
      decimals="-3"
      id="Fact_2ea1f02f4ed2456fab156bae033a2217"
      unitRef="U001">23871000</us-gaap:InventoryWorkInProcess>
    <us-gaap:InventoryFinishedGoods
      contextRef="c20211231"
      decimals="-3"
      id="Fact_c3eb890460234c51a355ec6bbf52f6e6"
      unitRef="U001">91724000</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryFinishedGoods
      contextRef="c20201231"
      decimals="-3"
      id="Fact_b2baadc79e9d46d6a90db5fd1fb11890"
      unitRef="U001">32377000</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryGross
      contextRef="c20211231"
      decimals="-3"
      id="Fact_a4790a99d0c64cb383031e18cdbed1a6"
      unitRef="U001">218116000</us-gaap:InventoryGross>
    <us-gaap:InventoryGross
      contextRef="c20201231"
      decimals="-3"
      id="Fact_e4c5801b1def416a84755d3e48cbc56c"
      unitRef="U001">88639000</us-gaap:InventoryGross>
    <us-gaap:InventoryValuationReserves
      contextRef="c20211231"
      decimals="-3"
      id="Fact_a064dd5afbb0462da0319196f37ccbf4"
      unitRef="U001">1215000</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryValuationReserves
      contextRef="c20201231"
      decimals="-3"
      id="Fact_180cc69f6be2420f9969f5171cf078b5"
      unitRef="U001">1140000</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryFinishedGoods
      contextRef="c20211231_PublicUtilitiesInventoryAxis_FirstToolsMember"
      decimals="-3"
      id="Fact_d2a39e9addab45b6b3613a158de3bbc4"
      unitRef="U001">91724000</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryFinishedGoods
      contextRef="c20201231_PublicUtilitiesInventoryAxis_FirstToolsMember"
      decimals="-3"
      id="Fact_40b4fabfb1c340e4bf20d3d5e3455e43"
      unitRef="U001">32377000</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryFinishedGoods
      contextRef="c20211231_PublicUtilitiesInventoryAxis_ContractualObligationMember"
      decimals="-3"
      id="Fact_4f2c3e4e7a8d4e52bf40b0bc0c5b64d0"
      unitRef="U001">71889000</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryFinishedGoods
      contextRef="c20201231_PublicUtilitiesInventoryAxis_ContractualObligationMember"
      decimals="-3"
      id="Fact_be0d06d58dad4b73a49d820bd2bd784b"
      unitRef="U001">20834000</us-gaap:InventoryFinishedGoods>
    <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock
      contextRef="c20210101to20211231"
      id="Text_9eb73a56b39c4dda9feceb998b7cef20">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 6 &#x2013; PROPERTY, PLANT AND EQUIPMENT, NET&lt;/div&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;At December 31, 2021 and 2020, property, plant and equipment consisted of the following:&lt;/div&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Manufacturing equipment&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,973&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,966&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Office equipment&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,012&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,047&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Transportation equipment&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;217&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;216&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Leasehold improvement&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,134&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,398&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total cost&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;14,336&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,627&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Less: Total accumulated depreciation&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(5,900&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(3,745&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Construction in progress&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,606&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,310&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total property, plant and equipment, net&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;14,042&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,192&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Depreciation expense was $2,099, $826, and $713 the years ended December 31,
      2021, 2020 and 2019, respectively. During the years ended December 31, 2021 and 2020, the Company retired certain fully depreciated manufacturing equipment with cost of $0 and $446, respectively.&lt;/div&gt;
</us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
    <us-gaap:PropertyPlantAndEquipmentTextBlock
      contextRef="c20210101to20211231"
      id="Text_4691a55a1ecd4e70806db3f0961cc9ac">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;At December 31, 2021 and 2020, property, plant and equipment consisted of the following:&lt;/div&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Manufacturing equipment&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,973&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,966&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Office equipment&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,012&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,047&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Transportation equipment&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;217&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;216&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Leasehold improvement&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,134&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,398&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total cost&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;14,336&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,627&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Less: Total accumulated depreciation&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(5,900&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(3,745&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Construction in progress&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,606&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,310&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total property, plant and equipment, net&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;14,042&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,192&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20211231_PropertyPlantAndEquipmentByTypeAxis_EquipmentMember"
      decimals="-3"
      id="Fact_0b09e4a58d7542fa9a26df229f053e7a"
      unitRef="U001">7973000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20201231_PropertyPlantAndEquipmentByTypeAxis_EquipmentMember"
      decimals="-3"
      id="Fact_65a602ce6ba245419e02fb2652943281"
      unitRef="U001">5966000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20211231_PropertyPlantAndEquipmentByTypeAxis_OfficeEquipmentMember"
      decimals="-3"
      id="Fact_e3edbb0bd2a14cf18e192bec684a3a82"
      unitRef="U001">2012000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20201231_PropertyPlantAndEquipmentByTypeAxis_OfficeEquipmentMember"
      decimals="-3"
      id="Fact_aad163468570467b9fd124e87f650e73"
      unitRef="U001">1047000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20211231_PropertyPlantAndEquipmentByTypeAxis_TransportationEquipmentMember"
      decimals="-3"
      id="Fact_d422db13a8f547f8bac9ca308f4afb91"
      unitRef="U001">217000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20201231_PropertyPlantAndEquipmentByTypeAxis_TransportationEquipmentMember"
      decimals="-3"
      id="Fact_7598275220c84273b5fd81def42608d0"
      unitRef="U001">216000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20211231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember"
      decimals="-3"
      id="Fact_d2fe0d13b5094ec583c1f3a7ec28332b"
      unitRef="U001">4134000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20201231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember"
      decimals="-3"
      id="Fact_1a42f496d3354e9ca7df769f29550ae6"
      unitRef="U001">2398000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20211231"
      decimals="-3"
      id="Fact_9a380df9a8dd4b5b812b2a2ec5e41508"
      unitRef="U001">14336000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20201231"
      decimals="-3"
      id="Fact_eea1d7a7573b465a891c9d06857af1db"
      unitRef="U001">9627000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="c20211231"
      decimals="-3"
      id="Fact_e388b6678a9e48d294a0a6b20554dd6c"
      unitRef="U001">5900000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="c20201231"
      decimals="-3"
      id="Fact_e29ed32e2d1f4dd2a22c23fd3796f9b8"
      unitRef="U001">3745000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:ConstructionInProgressGross
      contextRef="c20211231"
      decimals="-3"
      id="Fact_74c1a569e2824c2b9500feda02a14950"
      unitRef="U001">5606000</us-gaap:ConstructionInProgressGross>
    <us-gaap:ConstructionInProgressGross
      contextRef="c20201231"
      decimals="-3"
      id="Fact_9725a350114f4a40b98ede12418713b4"
      unitRef="U001">2310000</us-gaap:ConstructionInProgressGross>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_9aa8e4e91d404c46b79dc9a275265723"
      unitRef="U001">14042000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20201231"
      decimals="-3"
      id="Fact_9ed597501cd841baab8de78f96179a65"
      unitRef="U001">8192000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:Depreciation
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_94c1c94eab78408384a9ced92387a6cc"
      unitRef="U001">2099000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_5ae4f2fa66ba42898e84b585dc57c8de"
      unitRef="U001">826000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_c863f45977e34f1ca4af5b98e6d63b3f"
      unitRef="U001">713000</us-gaap:Depreciation>
    <us-gaap:PropertyPlantAndEquipmentDisposals
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_98a5d26eb0b846ce8996effbdae71c89"
      unitRef="U001">0</us-gaap:PropertyPlantAndEquipmentDisposals>
    <us-gaap:PropertyPlantAndEquipmentDisposals
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_f1334b2c646d4ddd9b28051861ca8ada"
      unitRef="U001">446000</us-gaap:PropertyPlantAndEquipmentDisposals>
    <acmr:LandUseRightsNetTextBlock
      contextRef="c20210101to20211231"
      id="Text_09dd970aa4764474bdf3d307654b8542">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 7 &#x2013; LAND USE RIGHT, NET&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt; color: rgb(0, 0, 0);"&gt;A summary of land use right is as follows:&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Land use right purchase amount&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,966&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,744&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Less: accumulated amortization&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(299&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(98&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Land use right, net&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,667&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,646&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In 2020 ACM Shanghai, through its wholly owned subsidiary Shengwei Research (Shanghai), Inc., entered into an agreement for a 50-year land use right in the Lingang region of Shanghai. In July 2020, Shengwei Research (Shanghai), Inc. began a multi-year construction project for a new 1,000,000 square foot development and production center that will incorporate new manufacturing systems and automation technologies, and will provide
      floor space to support significantly increase production capacity and related research and development activities.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The amortization for the year ended December 31, 2021 and 2020 was $199
      and $98 respectively.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The annual amortization of land use right for each of the five succeeding years is as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&#160;Year ending December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2022&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;199&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;199&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;199&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2025&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;199&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2026&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;199&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</acmr:LandUseRightsNetTextBlock>
    <acmr:LandUseRightsNetTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_f0acabbdb914400caab2624a98f28107">&lt;span style="font-family: 'Times New Roman'; font-size: 10pt; color: rgb(0, 0, 0);"&gt;A summary of land use right is as follows:&lt;/span&gt;
&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Land use right purchase amount&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,966&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,744&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Less: accumulated amortization&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(299&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(98&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Land use right, net&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,667&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,646&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</acmr:LandUseRightsNetTableTextBlock>
    <acmr:LandUseRightPurchaseAmount
      contextRef="c20211231"
      decimals="-3"
      id="Fact_ea287525e94a44f984a079f7cdf60d06"
      unitRef="U001">9966000</acmr:LandUseRightPurchaseAmount>
    <acmr:LandUseRightPurchaseAmount
      contextRef="c20201231"
      decimals="-3"
      id="Fact_8e1f406cd5c3493684a1b99815731eeb"
      unitRef="U001">9744000</acmr:LandUseRightPurchaseAmount>
    <acmr:LandUseRightAccumulatedAmortization
      contextRef="c20211231"
      decimals="-3"
      id="Fact_2b09cfead1ce42a7bc27ebab3433ef10"
      unitRef="U001">299000</acmr:LandUseRightAccumulatedAmortization>
    <acmr:LandUseRightAccumulatedAmortization
      contextRef="c20201231"
      decimals="-3"
      id="Fact_2df646f61dba42e7812f6a6b772d302d"
      unitRef="U001">98000</acmr:LandUseRightAccumulatedAmortization>
    <acmr:LandUseRightNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_33e4b67fd3254f8b8a670e38250d84b7"
      unitRef="U001">9667000</acmr:LandUseRightNet>
    <acmr:LandUseRightNet
      contextRef="c20201231"
      decimals="-3"
      id="Fact_fe886c5fb91049bc904131c802c5e866"
      unitRef="U001">9646000</acmr:LandUseRightNet>
    <acmr:RightToUseLandLeaseTerm
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember"
      id="Fact_edf3263b5e194cdbbb5a37c2a27f6b88">P50Y</acmr:RightToUseLandLeaseTerm>
    <acmr:AreaOfSquareFootForDevelopmentAndProductionCenter
      contextRef="c20200731_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember"
      decimals="0"
      id="Fact_7d86a3b0fb0d42df83cf99454305997f"
      unitRef="U008">1000000</acmr:AreaOfSquareFootForDevelopmentAndProductionCenter>
    <us-gaap:AdjustmentForAmortization
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_b89710a8ca724146adad0ee438be60c4"
      unitRef="U001">199000</us-gaap:AdjustmentForAmortization>
    <us-gaap:AdjustmentForAmortization
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_bfe42948e3d34d4cbf349c531173906e"
      unitRef="U001">98000</us-gaap:AdjustmentForAmortization>
    <acmr:AnnualAmortizationOfLandUseRightTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_3e0798ebabcd4b30ba0190165b6b7feb">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The annual amortization of land use right for each of the five succeeding years is as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&#160;Year ending December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2022&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;199&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;199&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;199&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2025&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;199&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2026&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;199&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</acmr:AnnualAmortizationOfLandUseRightTableTextBlock>
    <acmr:AmortizationOfLandUseRightDueNextTwelveMonths
      contextRef="c20211231"
      decimals="-3"
      id="Fact_4d627fababe54a95a990b024f847c0d0"
      unitRef="U001">199000</acmr:AmortizationOfLandUseRightDueNextTwelveMonths>
    <acmr:AmortizationOfLandUseRightDueYearTwo
      contextRef="c20211231"
      decimals="-3"
      id="Fact_c40394b682a04b1992ac905ea5d202f5"
      unitRef="U001">199000</acmr:AmortizationOfLandUseRightDueYearTwo>
    <acmr:AmortizationOfLandUseRightDueYearThree
      contextRef="c20211231"
      decimals="-3"
      id="Fact_a8f7b43aa32c457aa9540b340dd2b58a"
      unitRef="U001">199000</acmr:AmortizationOfLandUseRightDueYearThree>
    <acmr:AnnualAmortizationOfLandUseRightDueYearFour
      contextRef="c20211231"
      decimals="-3"
      id="Fact_b57cb35b7e4a462e9fbd4aa29e5c4acf"
      unitRef="U001">199000</acmr:AnnualAmortizationOfLandUseRightDueYearFour>
    <acmr:AmortizationOfLandUseRightDueYearFive
      contextRef="c20211231"
      decimals="-3"
      id="Fact_4b473d6d532748788f864dba9bb8aafc"
      unitRef="U001">199000</acmr:AmortizationOfLandUseRightDueYearFive>
    <acmr:OtherAssetsNonCurrentDisclosureTextBlock
      contextRef="c20210101to20211231"
      id="Text_4b03edb9975548d89634625705f3e11b">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 8 &#x2013; OTHER LONG-TERM ASSETS&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;At December 31, 2021 and 2020, other long-term assets consisted of the following:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Prepayment for property - Lingang&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;42,111&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;39,450&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: top; width: 76%;" valign="bottom"&gt;Prepayment for property, plant and equipment and other non-current assets &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;440&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: top; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;Prepayment for property - lease deposit &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;429&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Security deposit for land use right&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;773&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;756&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Others&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,264&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;290&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total other long-term assets&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;45,017&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;40,496&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The prepayment for property - Lingang is for the housing in Lingang, Shanghai, which consists of (1) the contractual amount to acquire the property and (2) capitalized
      interest charges on the long-term loan related to acquisition of the property, which amounted to $986 as of December 31, 2021. In January
      2022, ACM Shengwei received ownership of the apartment units and corresponding land use rights. The property is pledged for a long-term loan from China Merchants Bank (note 12).&lt;/div&gt;
</acmr:OtherAssetsNonCurrentDisclosureTextBlock>
    <us-gaap:ScheduleOfOtherAssetsNoncurrentTextBlock
      contextRef="c20210101to20211231"
      id="Text_094e75cc216b4ba1b3d714bfefddfbdd">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;At December 31, 2021 and 2020, other long-term assets consisted of the following:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Prepayment for property - Lingang&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;42,111&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;39,450&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: top; width: 76%;" valign="bottom"&gt;Prepayment for property, plant and equipment and other non-current assets &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;440&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: top; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;Prepayment for property - lease deposit &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;429&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Security deposit for land use right&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;773&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;756&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Others&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,264&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;290&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total other long-term assets&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;45,017&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;40,496&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfOtherAssetsNoncurrentTextBlock>
    <acmr:PrepaymentForPropertyNonCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_03b9ee5539e245c7ba794decf1c8f6b6"
      unitRef="U001">42111000</acmr:PrepaymentForPropertyNonCurrent>
    <acmr:PrepaymentForPropertyNonCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_fb87e816e11a4407b836f3a20250b867"
      unitRef="U001">39450000</acmr:PrepaymentForPropertyNonCurrent>
    <acmr:PrepaymentForPropertyPlantAndEquipmentAndOtherNonCurrentAssets
      contextRef="c20211231"
      decimals="-3"
      id="Fact_8853a762346f4dd7b6c44a53d33a23e5"
      unitRef="U001">440000</acmr:PrepaymentForPropertyPlantAndEquipmentAndOtherNonCurrentAssets>
    <acmr:PrepaymentForPropertyPlantAndEquipmentAndOtherNonCurrentAssets
      contextRef="c20201231"
      decimals="-3"
      id="Fact_6954f5d600714355bf0a69daf43c92fe"
      unitRef="U001">0</acmr:PrepaymentForPropertyPlantAndEquipmentAndOtherNonCurrentAssets>
    <acmr:PrepaymentForPropertyLeaseDeposit
      contextRef="c20211231"
      decimals="-3"
      id="Fact_cc489ee074204fd4ac0464a3c1ed22a5"
      unitRef="U001">429000</acmr:PrepaymentForPropertyLeaseDeposit>
    <acmr:PrepaymentForPropertyLeaseDeposit
      contextRef="c20201231"
      decimals="-3"
      id="Fact_2ce5cf75409e425e817c229ef6e49c72"
      unitRef="U001">0</acmr:PrepaymentForPropertyLeaseDeposit>
    <acmr:SecurityDepositForLandUseRight
      contextRef="c20211231"
      decimals="-3"
      id="Fact_d0ac3b15df1947039b21710a7ccf4bdf"
      unitRef="U001">773000</acmr:SecurityDepositForLandUseRight>
    <acmr:SecurityDepositForLandUseRight
      contextRef="c20201231"
      decimals="-3"
      id="Fact_78fc8e17b42440f6982264c201f0ec9a"
      unitRef="U001">756000</acmr:SecurityDepositForLandUseRight>
    <us-gaap:OtherAssetsMiscellaneousNoncurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_a2a50db1df3b4a66a027dafde77baaba"
      unitRef="U001">1264000</us-gaap:OtherAssetsMiscellaneousNoncurrent>
    <us-gaap:OtherAssetsMiscellaneousNoncurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_675172c9edeb4a70818c30e792391113"
      unitRef="U001">290000</us-gaap:OtherAssetsMiscellaneousNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_1eb4361ea9394511b751f9c28126e612"
      unitRef="U001">45017000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_8e61c74202a54dc7b11bc27d2c4b806c"
      unitRef="U001">40496000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:AccumulatedCapitalizedInterestCosts
      contextRef="c20211231"
      decimals="-3"
      id="Fact_d86bd7ff1bc24f51a243afcf9249379d"
      unitRef="U001">986000</us-gaap:AccumulatedCapitalizedInterestCosts>
    <us-gaap:ShortTermDebtTextBlock
      contextRef="c20210101to20211231"
      id="Text_4cdfffc5cd72476b8c83e193b12c870e">
&lt;div&gt;&lt;span style="font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;"&gt;NOTE 9 &#x2013; SHORT-TERM BORROWINGS &lt;/span&gt;&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;"&gt;&#160;&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; text-align: justify; font-family: 'Times New Roman';"&gt;At December 31, 2021 and December 31, 2020, short-term and long-term borrowings consisted of the following:&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"&gt;&#160;&lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; letter-spacing: normal; orphans: 2; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: bold;"&gt;December 31,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: bold;"&gt;2021&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: bold;"&gt;2020&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;
              &lt;div style="text-align: justify; color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 9pt;"&gt;Line of credit up to RMB &lt;span style="text-indent: 0pt;"&gt;80,000&lt;/span&gt; from China Everbright Bank,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;1)due on April 1, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;4.70&lt;/span&gt;%. *1 and fully repaid on &lt;span style="text-indent: 0pt;"&gt;March 23, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;4,599&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;2)due on June 27, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;4.25&lt;/span&gt;%. *1 and fully repaid on &lt;span style="text-indent: 0pt;"&gt;June 28, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;1,380&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;3)due on April 29, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;2.80&lt;/span&gt;%. *1 and fully repaid on &lt;span style="text-indent: 0pt;"&gt;March 23, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;820&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;4)due on June 27, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;2.70&lt;/span&gt;%. *1 and fully repaid on &lt;span style="text-indent: 0pt;"&gt;June 25, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;2,080&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-align: justify; color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 9pt;"&gt;Line of credit up to RMB &lt;span style="text-indent: 0pt;"&gt;20,000&lt;/span&gt; from Bank of Communications,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;1)due on April 12, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;4.65&lt;/span&gt;% and fully repaid on &lt;span style="text-indent: 0pt;"&gt;April 12, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;1,533&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;2)due on May 24, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;3.65&lt;/span&gt;% and fully repaid on &lt;span style="text-indent: 0pt;"&gt;May 24, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;1,533&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
              &lt;div style="text-align: justify; color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 9pt;"&gt;Line of credit up to RMB &lt;span style="text-indent: 0pt;"&gt;70,000&lt;/span&gt; from Bank of Shanghai Pudong Branch,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;1)due on May 27, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;4.68&lt;/span&gt;%. *2 and fully repaid on &lt;span style="text-indent: 0pt;"&gt;May 27, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;2,575&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;2)due on June 27, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;4.68&lt;/span&gt;%. *2 and fully repaid on &lt;span style="text-indent: 0pt;"&gt;March 29, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;1,380&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;3)due on May 28, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;3.48&lt;/span&gt;%. *2 and fully repaid on &lt;span style="text-indent: 0pt;"&gt;May 28, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;2,442&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;4)due on June 7, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;3.50&lt;/span&gt;%. *2 and fully repaid on &lt;span style="text-indent: 0pt;"&gt;June 7, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;1,521&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;5)due on June 16, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;3.50&lt;/span&gt;%. *2 and fully repaid on &lt;span style="text-indent: 0pt;"&gt;June 16, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;1,838&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
              &lt;div style="text-align: justify; color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 9pt;"&gt;Line of credit up to RMB &lt;span style="text-indent: 0pt;"&gt;80,000&lt;/span&gt; from China Merchants Bank,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;1)due on August 10,2021 with annual interest rate of &lt;span style="text-indent: 0pt;"&gt;3.85&lt;/span&gt;% and fully repaid on &lt;span style="text-indent: 0pt;"&gt;August 10, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;1,380&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;2)due on August 25,2021 with annual interest rate of &lt;span style="text-indent: 0pt;"&gt;3.85&lt;/span&gt;% and fully repaid on &lt;span style="text-indent: 0pt;"&gt;August 25, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;3,066&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-align: justify; color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 9pt;"&gt;Line of credit up to RMB &lt;span style="text-indent: 0pt;"&gt;100,000&lt;/span&gt; from Bank of Shanghai Pudong Branch,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;1)due on &lt;span style="text-indent: 0pt;"&gt;June 7, 2022&lt;/span&gt;
                with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;2.7&lt;/span&gt;%. *3&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;4,616&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-align: justify; color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 9pt;"&gt;Line of credit up to RMB &lt;span style="text-indent: 0pt;"&gt;150,000&lt;/span&gt; from China Everbright Bank,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;1)due on &lt;span style="text-indent: 0pt;"&gt;October 21, 2022&lt;/span&gt;
                with annual interest rate of &lt;span style="text-indent: 0pt;"&gt;1.95&lt;/span&gt;%.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;3,407&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
              &lt;div style="text-align: justify; color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 9pt;"&gt;Line of credit up to RMB &lt;span style="text-indent: 0pt;"&gt;60,000&lt;/span&gt; from Bank of Communications,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;1)due on &lt;span style="text-indent: 0pt;"&gt;October 25, 2022&lt;/span&gt;
                with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;3.85&lt;/span&gt;%.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;1,568&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 9pt;"&gt;Total&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;9,591&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;26,147&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"&gt;&#160;&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; font-family: 'Times New Roman';"&gt;*1 &lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;guaranteed















          by ACM&#x2019;s Chief Executive Officer&lt;/span&gt;&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; font-family: 'Times New Roman';"&gt;*2 &lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;guaranteed















          by ACM&#x2019;s Chief Executive Officer and Cleanchip Technologies Limited&lt;/span&gt;&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; font-family: 'Times New Roman';"&gt;*3 &lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;guaranteed by Cleanchip Technologies Limited&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;For the years ended December 31, 2021, 2020 and 2019, interest expense related to short-term borrowings amounted to $700, $897, and $745, respectively.&lt;/div&gt;
</us-gaap:ShortTermDebtTextBlock>
    <us-gaap:ScheduleOfDebtTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_83d1a7e3ecd04cf9be7b3fdd4a8793c6">
&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; text-align: justify; font-family: 'Times New Roman';"&gt;At December 31, 2021 and December 31, 2020, short-term and long-term borrowings consisted of the following:&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"&gt;&#160;&lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; letter-spacing: normal; orphans: 2; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: bold;"&gt;December 31,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: bold;"&gt;2021&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: bold;"&gt;2020&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;
              &lt;div style="text-align: justify; color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 9pt;"&gt;Line of credit up to RMB &lt;span style="text-indent: 0pt;"&gt;80,000&lt;/span&gt; from China Everbright Bank,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;1)due on April 1, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;4.70&lt;/span&gt;%. *1 and fully repaid on &lt;span style="text-indent: 0pt;"&gt;March 23, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;4,599&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;2)due on June 27, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;4.25&lt;/span&gt;%. *1 and fully repaid on &lt;span style="text-indent: 0pt;"&gt;June 28, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;1,380&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;3)due on April 29, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;2.80&lt;/span&gt;%. *1 and fully repaid on &lt;span style="text-indent: 0pt;"&gt;March 23, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;820&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;4)due on June 27, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;2.70&lt;/span&gt;%. *1 and fully repaid on &lt;span style="text-indent: 0pt;"&gt;June 25, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;2,080&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-align: justify; color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 9pt;"&gt;Line of credit up to RMB &lt;span style="text-indent: 0pt;"&gt;20,000&lt;/span&gt; from Bank of Communications,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;1)due on April 12, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;4.65&lt;/span&gt;% and fully repaid on &lt;span style="text-indent: 0pt;"&gt;April 12, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;1,533&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;2)due on May 24, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;3.65&lt;/span&gt;% and fully repaid on &lt;span style="text-indent: 0pt;"&gt;May 24, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;1,533&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
              &lt;div style="text-align: justify; color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 9pt;"&gt;Line of credit up to RMB &lt;span style="text-indent: 0pt;"&gt;70,000&lt;/span&gt; from Bank of Shanghai Pudong Branch,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;1)due on May 27, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;4.68&lt;/span&gt;%. *2 and fully repaid on &lt;span style="text-indent: 0pt;"&gt;May 27, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;2,575&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;2)due on June 27, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;4.68&lt;/span&gt;%. *2 and fully repaid on &lt;span style="text-indent: 0pt;"&gt;March 29, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;1,380&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;3)due on May 28, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;3.48&lt;/span&gt;%. *2 and fully repaid on &lt;span style="text-indent: 0pt;"&gt;May 28, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;2,442&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;4)due on June 7, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;3.50&lt;/span&gt;%. *2 and fully repaid on &lt;span style="text-indent: 0pt;"&gt;June 7, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;1,521&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;5)due on June 16, 2021 with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;3.50&lt;/span&gt;%. *2 and fully repaid on &lt;span style="text-indent: 0pt;"&gt;June 16, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;1,838&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
              &lt;div style="text-align: justify; color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 9pt;"&gt;Line of credit up to RMB &lt;span style="text-indent: 0pt;"&gt;80,000&lt;/span&gt; from China Merchants Bank,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;1)due on August 10,2021 with annual interest rate of &lt;span style="text-indent: 0pt;"&gt;3.85&lt;/span&gt;% and fully repaid on &lt;span style="text-indent: 0pt;"&gt;August 10, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;1,380&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;2)due on August 25,2021 with annual interest rate of &lt;span style="text-indent: 0pt;"&gt;3.85&lt;/span&gt;% and fully repaid on &lt;span style="text-indent: 0pt;"&gt;August 25, 2021&lt;/span&gt;.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;3,066&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-align: justify; color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 9pt;"&gt;Line of credit up to RMB &lt;span style="text-indent: 0pt;"&gt;100,000&lt;/span&gt; from Bank of Shanghai Pudong Branch,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;1)due on &lt;span style="text-indent: 0pt;"&gt;June 7, 2022&lt;/span&gt;
                with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;2.7&lt;/span&gt;%. *3&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;4,616&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-align: justify; color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 9pt;"&gt;Line of credit up to RMB &lt;span style="text-indent: 0pt;"&gt;150,000&lt;/span&gt; from China Everbright Bank,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;1)due on &lt;span style="text-indent: 0pt;"&gt;October 21, 2022&lt;/span&gt;
                with annual interest rate of &lt;span style="text-indent: 0pt;"&gt;1.95&lt;/span&gt;%.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;3,407&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
              &lt;div style="text-align: justify; color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 9pt;"&gt;Line of credit up to RMB &lt;span style="text-indent: 0pt;"&gt;60,000&lt;/span&gt; from Bank of Communications,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 18pt;"&gt;1)due on &lt;span style="text-indent: 0pt;"&gt;October 25, 2022&lt;/span&gt;
                with an annual interest rate of &lt;span style="text-indent: 0pt;"&gt;3.85&lt;/span&gt;%.&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="color: rgb(13, 13, 13); font-family: 'Times New Roman';"&gt;1,568&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; text-indent: -9pt; margin-left: 9pt;"&gt;Total&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;9,591&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;26,147&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"&gt;&#160;&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; font-family: 'Times New Roman';"&gt;*1 &lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;guaranteed















          by ACM&#x2019;s Chief Executive Officer&lt;/span&gt;&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; font-family: 'Times New Roman';"&gt;*2 &lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;guaranteed















          by ACM&#x2019;s Chief Executive Officer and Cleanchip Technologies Limited&lt;/span&gt;&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; font-family: 'Times New Roman';"&gt;*3 &lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;guaranteed by Cleanchip Technologies Limited&lt;/span&gt;&lt;/div&gt;
</us-gaap:ScheduleOfDebtTableTextBlock>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit11Member"
      decimals="-3"
      id="Fact_e67f14cf8bd9478b94526ebd1dfe197f"
      unitRef="U009">80000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit9Member"
      decimals="-3"
      id="Fact_d0ff2623fc6c4cb8bb227c15c963017f"
      unitRef="U009">80000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit10Member"
      decimals="-3"
      id="Fact_a93226a90c37401eaac7179853805d3e"
      unitRef="U009">80000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit8Member"
      decimals="-3"
      id="Fact_39b5f96177a3437a9cc6799213dc2366"
      unitRef="U009">80000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit8Member"
      decimals="4"
      id="Fact_5ef74182c3f74329858eff684bdfd797"
      unitRef="U004">0.0470</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit8Member"
      id="Fact_0cd07a7027cc4b20bd69cd8bb7e544ee">2021-03-23</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:ShortTermBorrowings
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit8Member"
      decimals="-3"
      id="Fact_5576038924fe4b1086967378b6f27bd2"
      unitRef="U001">0</us-gaap:ShortTermBorrowings>
    <us-gaap:ShortTermBorrowings
      contextRef="c20201231_DebtInstrumentAxis_LineOfCredit8Member"
      decimals="-3"
      id="Fact_ff0c91592a9e4a56ba9e6889f8938640"
      unitRef="U001">4599000</us-gaap:ShortTermBorrowings>
    <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit9Member"
      decimals="4"
      id="Fact_2a659128b681485b8faa454c948e4da9"
      unitRef="U004">0.0425</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit9Member"
      id="Fact_cc422f7f0a864e279a8fdf2195722e50">2021-06-28</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:ShortTermBorrowings
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit9Member"
      decimals="-3"
      id="Fact_e6f88ace68bf444e9744d481feb8a1eb"
      unitRef="U001">0</us-gaap:ShortTermBorrowings>
    <us-gaap:ShortTermBorrowings
      contextRef="c20201231_DebtInstrumentAxis_LineOfCredit9Member"
      decimals="-3"
      id="Fact_1696bb07a2904f299cf1e579f90e5cbb"
      unitRef="U001">1380000</us-gaap:ShortTermBorrowings>
    <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit10Member"
      decimals="4"
      id="Fact_74ff673a1c8d484fab47d041313cc2cc"
      unitRef="U004">0.0280</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit10Member"
      id="Fact_984ef22aad2d422d903c8303866ebd40">2021-03-23</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:ShortTermBorrowings
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit10Member"
      decimals="-3"
      id="Fact_f84af0e09c5c48f5ab82eccaffc5a9ff"
      unitRef="U001">0</us-gaap:ShortTermBorrowings>
    <us-gaap:ShortTermBorrowings
      contextRef="c20201231_DebtInstrumentAxis_LineOfCredit10Member"
      decimals="-3"
      id="Fact_b4fe4783962b461bb97979d801518675"
      unitRef="U001">820000</us-gaap:ShortTermBorrowings>
    <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit11Member"
      decimals="4"
      id="Fact_920f7f8d95874f3d9d992691a3245de4"
      unitRef="U004">0.0270</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit11Member"
      id="Fact_4b2ccb9fe4ed4027a3e1b60d721c34b0">2021-06-25</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:ShortTermBorrowings
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit11Member"
      decimals="-3"
      id="Fact_6e7f49f8a90545168c523797d7b1a57b"
      unitRef="U001">0</us-gaap:ShortTermBorrowings>
    <us-gaap:ShortTermBorrowings
      contextRef="c20201231_DebtInstrumentAxis_LineOfCredit11Member"
      decimals="-3"
      id="Fact_8664409a651540d3b1dc12d049a813dc"
      unitRef="U001">2080000</us-gaap:ShortTermBorrowings>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit12Member"
      decimals="-3"
      id="Fact_b296b1c53c914caead731a1ebbc673bb"
      unitRef="U009">20000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit13Member"
      decimals="-3"
      id="Fact_8010e3a2bf7a47b2bb1c909a160c7fed"
      unitRef="U009">20000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit12Member"
      decimals="4"
      id="Fact_79a92727c7c4451ab3822a35c5e3cc34"
      unitRef="U004">0.0465</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit12Member"
      id="Fact_7866a716c07b484d8933ddb49ea4b07d">2021-04-12</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:ShortTermBorrowings
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit12Member"
      decimals="-3"
      id="Fact_b351381d29704a0fab0210c20fcfbd07"
      unitRef="U001">0</us-gaap:ShortTermBorrowings>
    <us-gaap:ShortTermBorrowings
      contextRef="c20201231_DebtInstrumentAxis_LineOfCredit12Member"
      decimals="-3"
      id="Fact_71bc743068ff41a5b7d856f8cd3897d5"
      unitRef="U001">1533000</us-gaap:ShortTermBorrowings>
    <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit13Member"
      decimals="4"
      id="Fact_268cacec079643ccaec20dfc5c5ff605"
      unitRef="U004">0.0365</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit13Member"
      id="Fact_90569eef94944f0b9c83eade0c5ebaca">2021-05-24</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:ShortTermBorrowings
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit13Member"
      decimals="-3"
      id="Fact_ccba4e81cfa342e78ca5643c6623306d"
      unitRef="U001">0</us-gaap:ShortTermBorrowings>
    <us-gaap:ShortTermBorrowings
      contextRef="c20201231_DebtInstrumentAxis_LineOfCredit13Member"
      decimals="-3"
      id="Fact_c377f5dfb6184e85bb431658c34bd55e"
      unitRef="U001">1533000</us-gaap:ShortTermBorrowings>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit17Member"
      decimals="-3"
      id="Fact_e6062bfeb22e4211b1f69123abef4daa"
      unitRef="U009">70000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit14Member"
      decimals="-3"
      id="Fact_c6548afcf5b2448187dcf307805fcfe0"
      unitRef="U009">70000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit15Member"
      decimals="-3"
      id="Fact_78cb08a0c166452f9b5cd93c9e11d4ab"
      unitRef="U009">70000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit16Member"
      decimals="-3"
      id="Fact_562473534f8249729b5e0e49e13c06e6"
      unitRef="U009">70000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit18Member"
      decimals="-3"
      id="Fact_4aa832e7f482423da3cdf71107832d19"
      unitRef="U009">70000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit14Member"
      decimals="4"
      id="Fact_d2368c72c617403885d78ba639d5fabf"
      unitRef="U004">0.0468</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit14Member"
      id="Fact_01ebad86b44a4f0ebc564dfabe959375">2021-05-27</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:ShortTermBorrowings
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit14Member"
      decimals="-3"
      id="Fact_8a64b49600594f85a1462d19dafba2be"
      unitRef="U001">0</us-gaap:ShortTermBorrowings>
    <us-gaap:ShortTermBorrowings
      contextRef="c20201231_DebtInstrumentAxis_LineOfCredit14Member"
      decimals="-3"
      id="Fact_3a8452e67f7e45a09c1a40b54b834076"
      unitRef="U001">2575000</us-gaap:ShortTermBorrowings>
    <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit15Member"
      decimals="4"
      id="Fact_cc6f25972ef64cd2b5310f30dfb8f9af"
      unitRef="U004">0.0468</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit15Member"
      id="Fact_64e97c33e30f49d2a91d4b2000cdd3f6">2021-03-29</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:ShortTermBorrowings
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit15Member"
      decimals="-3"
      id="Fact_d22120dbdf01474c963575e9a53b58a9"
      unitRef="U001">0</us-gaap:ShortTermBorrowings>
    <us-gaap:ShortTermBorrowings
      contextRef="c20201231_DebtInstrumentAxis_LineOfCredit15Member"
      decimals="-3"
      id="Fact_ec818753e5e641eba69e2a7817058583"
      unitRef="U001">1380000</us-gaap:ShortTermBorrowings>
    <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit16Member"
      decimals="4"
      id="Fact_4cebf51251c64076b65f36ec97fb5a14"
      unitRef="U004">0.0348</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit16Member"
      id="Fact_625cb2212fa74e069e65db50f76b0fa1">2021-05-28</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:ShortTermBorrowings
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit16Member"
      decimals="-3"
      id="Fact_b8dfdac1aca94f75bdf54d62945e16a6"
      unitRef="U001">0</us-gaap:ShortTermBorrowings>
    <us-gaap:ShortTermBorrowings
      contextRef="c20201231_DebtInstrumentAxis_LineOfCredit16Member"
      decimals="-3"
      id="Fact_a3e5eaf925f0465f846f3a662b135ef0"
      unitRef="U001">2442000</us-gaap:ShortTermBorrowings>
    <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit17Member"
      decimals="4"
      id="Fact_e40558fb3cf449098362e8d5b8f7634f"
      unitRef="U004">0.0350</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit17Member"
      id="Fact_cff6f9c2f9b64ef5af55feb63117efb2">2021-06-07</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:ShortTermBorrowings
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit17Member"
      decimals="-3"
      id="Fact_b99bd39557694319bf85a268597fe8b6"
      unitRef="U001">0</us-gaap:ShortTermBorrowings>
    <us-gaap:ShortTermBorrowings
      contextRef="c20201231_DebtInstrumentAxis_LineOfCredit17Member"
      decimals="-3"
      id="Fact_e64a521f0fbd48a8ad7278c90605becb"
      unitRef="U001">1521000</us-gaap:ShortTermBorrowings>
    <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit18Member"
      decimals="4"
      id="Fact_2cfa91ea73dd4dc89bf1c779df32f7c5"
      unitRef="U004">0.0350</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit18Member"
      id="Fact_c25015e37d514b4aaf3f21954c8f9a3a">2021-06-16</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:ShortTermBorrowings
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit18Member"
      decimals="-3"
      id="Fact_2720c72879ba45c1af0c5fe896e9e8da"
      unitRef="U001">0</us-gaap:ShortTermBorrowings>
    <us-gaap:ShortTermBorrowings
      contextRef="c20201231_DebtInstrumentAxis_LineOfCredit18Member"
      decimals="-3"
      id="Fact_53978c02dcd440cb82365e52dafbb932"
      unitRef="U001">1838000</us-gaap:ShortTermBorrowings>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit20Member"
      decimals="-3"
      id="Fact_c141cb133893463bacab0fa96cca4b6d"
      unitRef="U009">80000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit19Member"
      decimals="-3"
      id="Fact_a3afd5b15ddd47c98c0d2ac3542c4ad8"
      unitRef="U009">80000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit19Member"
      decimals="4"
      id="Fact_61dd5a8d46134cd5b64d95519ebae61f"
      unitRef="U004">0.0385</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit19Member"
      id="Fact_bbb440c468af45bca8c0adeb8a2717e8">2021-08-10</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:ShortTermBorrowings
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit19Member"
      decimals="-3"
      id="Fact_41bd62db02e740d29c2c18a673ca19d4"
      unitRef="U001">0</us-gaap:ShortTermBorrowings>
    <us-gaap:ShortTermBorrowings
      contextRef="c20201231_DebtInstrumentAxis_LineOfCredit19Member"
      decimals="-3"
      id="Fact_46b9b7cbb2ee4d519e3741aa7ee37c2b"
      unitRef="U001">1380000</us-gaap:ShortTermBorrowings>
    <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit20Member"
      decimals="4"
      id="Fact_e8be988ce9e545b98ed0522f39b31e45"
      unitRef="U004">0.0385</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit20Member"
      id="Fact_63a7f71342f84a2593f2f9064b915e64">2021-08-25</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:ShortTermBorrowings
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit20Member"
      decimals="-3"
      id="Fact_0f481335c1834dd894006560742f387e"
      unitRef="U001">0</us-gaap:ShortTermBorrowings>
    <us-gaap:ShortTermBorrowings
      contextRef="c20201231_DebtInstrumentAxis_LineOfCredit20Member"
      decimals="-3"
      id="Fact_7ed6fbcdf282442687b0a1f40e9da5ab"
      unitRef="U001">3066000</us-gaap:ShortTermBorrowings>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit25Member"
      decimals="-3"
      id="Fact_4f64adf9204d46538751296dd8f53954"
      unitRef="U009">100000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit25Member"
      id="Fact_f95a972cc70c4f438fa77411a565d86f">2022-06-07</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit25Member"
      decimals="3"
      id="Fact_17c0fb94f5ff4be2a735e7c43f370249"
      unitRef="U004">0.027</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
    <us-gaap:ShortTermBorrowings
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit25Member"
      decimals="-3"
      id="Fact_6d5096bddec541ff92beefa82aeffb68"
      unitRef="U001">4616000</us-gaap:ShortTermBorrowings>
    <us-gaap:ShortTermBorrowings
      contextRef="c20201231_DebtInstrumentAxis_LineOfCredit25Member"
      decimals="-3"
      id="Fact_bb26bacde0114615bf2f9a2cfc616855"
      unitRef="U001">0</us-gaap:ShortTermBorrowings>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit28Member"
      decimals="-3"
      id="Fact_74b6526a70ba445ea2c0a80dee2eaae2"
      unitRef="U009">150000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit28Member"
      id="Fact_c5e3dd7b7c5948439223f5c99c428e73">2022-10-21</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit28Member"
      decimals="4"
      id="Fact_2a81dcd3fa70485188d8a32f8026f725"
      unitRef="U004">0.0195</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
    <us-gaap:ShortTermBorrowings
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit28Member"
      decimals="-3"
      id="Fact_046ed5ec00394e78a7ef22fec8bdbc25"
      unitRef="U001">3407000</us-gaap:ShortTermBorrowings>
    <us-gaap:ShortTermBorrowings
      contextRef="c20201231_DebtInstrumentAxis_LineOfCredit28Member"
      decimals="-3"
      id="Fact_981b4fffa2914eae880e17f48224f324"
      unitRef="U001">0</us-gaap:ShortTermBorrowings>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit29Member"
      decimals="-3"
      id="Fact_b5fbf48b9ad045708fc8b0bf6afa4f77"
      unitRef="U009">60000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit29Member"
      id="Fact_e53a7abe895a4969a8517ad296b763e3">2022-10-25</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod
      contextRef="c20210101to20211231_DebtInstrumentAxis_LineOfCredit29Member"
      decimals="4"
      id="Fact_540ea84398ea40f2b3c3b98f17796316"
      unitRef="U004">0.0385</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
    <us-gaap:ShortTermBorrowings
      contextRef="c20211231_DebtInstrumentAxis_LineOfCredit29Member"
      decimals="-3"
      id="Fact_1344d28a51fb4202be4c38135daa292f"
      unitRef="U001">1568000</us-gaap:ShortTermBorrowings>
    <us-gaap:ShortTermBorrowings
      contextRef="c20201231_DebtInstrumentAxis_LineOfCredit29Member"
      decimals="-3"
      id="Fact_e9a7bdfdbabb45678508d503d6eaf6e4"
      unitRef="U001">0</us-gaap:ShortTermBorrowings>
    <us-gaap:ShortTermBorrowings
      contextRef="c20211231"
      decimals="-3"
      id="Fact_95e69009dafd472d835d0c1843372fbb"
      unitRef="U001">9591000</us-gaap:ShortTermBorrowings>
    <us-gaap:ShortTermBorrowings
      contextRef="c20201231"
      decimals="-3"
      id="Fact_7fe991c7872048e38fae89169c1bced1"
      unitRef="U001">26147000</us-gaap:ShortTermBorrowings>
    <us-gaap:InterestExpenseShortTermBorrowings
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_0a2c3143daa74e74844612ac72721db7"
      unitRef="U001">700000</us-gaap:InterestExpenseShortTermBorrowings>
    <us-gaap:InterestExpenseShortTermBorrowings
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_cda2b8820cff4bba8a62b8970f4a56f3"
      unitRef="U001">897000</us-gaap:InterestExpenseShortTermBorrowings>
    <us-gaap:InterestExpenseShortTermBorrowings
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_ecd749ba16c84a07be4ff27a32c34243"
      unitRef="U001">745000</us-gaap:InterestExpenseShortTermBorrowings>
    <us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock
      contextRef="c20210101to20211231"
      id="Text_43ed4a94265f402eac393ba3c9e682ed">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 10 &#x2013; OTHER PAYABLE AND ACCRUED EXPENSES&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;At December 31, 2021 and 2020, other payable and accrued expenses consisted of the following:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accrued commissions&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;12,507&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,127&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accrued warranty&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,631&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,975&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accrued payroll&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,684&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,068&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accrued professional fees&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;785&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;384&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accrued machine testing fees&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;149&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,595&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 2px; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Others&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,979&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,656&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Total&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;31,735&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,805&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock>
    <us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_2bbdbfbc8969462eaeaaa1958fafea82">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;At December 31, 2021 and 2020, other payable and accrued expenses consisted of the following:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accrued commissions&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;12,507&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,127&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accrued warranty&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,631&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,975&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accrued payroll&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,684&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,068&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accrued professional fees&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;785&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;384&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accrued machine testing fees&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;149&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,595&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 2px; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Others&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,979&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,656&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Total&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;31,735&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,805&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock>
    <us-gaap:AccruedSalesCommissionCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_1cf1823a75f84e9f8cc5505078f350ff"
      unitRef="U001">12507000</us-gaap:AccruedSalesCommissionCurrent>
    <us-gaap:AccruedSalesCommissionCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_f19cbf6aa70c4ab6ae0351230f6920eb"
      unitRef="U001">7127000</us-gaap:AccruedSalesCommissionCurrent>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_40d62c8a37ba40b8a0bcdf2366201200"
      unitRef="U001">6631000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_197a5e4879874c588aeaa5d46fe38da9"
      unitRef="U001">3975000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_e6ee3e656d7049e281dd183f6a4eb9f7"
      unitRef="U001">5684000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_d44f9803b334435bb2a68adf41a46b40"
      unitRef="U001">3068000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:AccruedProfessionalFeesCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_4ae1b17ff0d446fd8fc3ace42ac045db"
      unitRef="U001">785000</us-gaap:AccruedProfessionalFeesCurrent>
    <us-gaap:AccruedProfessionalFeesCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_0e583f79486c401aba17ed77bdb50602"
      unitRef="U001">384000</us-gaap:AccruedProfessionalFeesCurrent>
    <acmr:AccruedMachineTestingFeesCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_8e9a20c711f7432e814d407e26edaf32"
      unitRef="U001">149000</acmr:AccruedMachineTestingFeesCurrent>
    <acmr:AccruedMachineTestingFeesCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_e4e18ad32d2542b5b529af1a8662df9c"
      unitRef="U001">1595000</acmr:AccruedMachineTestingFeesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_fb6619eaf75c40ac87499da0659e09a2"
      unitRef="U001">5979000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_8df2f8b0e4164a28ac9ae3ad5767e65d"
      unitRef="U001">2656000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:OtherAccountsPayableAndAccruedLiabilities
      contextRef="c20211231"
      decimals="-3"
      id="Fact_7dde1bd2608e4291b24d3acf5d762b7c"
      unitRef="U001">31735000</us-gaap:OtherAccountsPayableAndAccruedLiabilities>
    <us-gaap:OtherAccountsPayableAndAccruedLiabilities
      contextRef="c20201231"
      decimals="-3"
      id="Fact_1e251605bd6547b4be79d0c32c53c8ec"
      unitRef="U001">18805000</us-gaap:OtherAccountsPayableAndAccruedLiabilities>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="c20210101to20211231"
      id="Text_b15577446b6549bd8126645f768e3031">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 11 &#x2013; LEASES&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company leases space under non-cancelable operating leases for several office and manufacturing locations. These leases do not have significant rent escalation
      holidays, concessions, leasehold improvement incentives, or other build-out clauses. Further, the leases do not contain contingent rent provisions.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Most leases include one or more options to renew. The exercise of lease renewal options is typically at the Company&#x2019;s sole discretion; therefore, the majority of
      renewals to extend the lease terms are not included in the Company&#x2019;s right-of-use assets and lease liabilities as they are not reasonably certain of exercise. The Company regularly evaluates the renewal options, and when they are reasonably certain
      of exercise, the Company includes the renewal period in its lease term.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;As most of the Company&#x2019;s leases do not provide an implicit rate, the Company uses its incremental borrowing rate based on the information available at the lease
      commencement date in determining the present value of the lease payments. The Company has a centrally managed treasury function; therefore, based on the applicable lease terms and the current economic environment, it applies a portfolio approach for
      determining the incremental borrowing rate.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The components of lease expense were as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px; width: 63.97%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 0.98%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" rowspan="1" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: middle; width: 0.82%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px; width: 63.97%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 0.98%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 0.98%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 0.98%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 0.98%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 0.98%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" rowspan="1" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); text-align: center;" valign="bottom"&gt;&#160;&lt;span style="font-weight: bold;"&gt;2019&lt;/span&gt;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: center; width: 0.82%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 63.97%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Operating lease cost&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 0.98%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 0.98%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9.07%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,451&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 0.98%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 0.98%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 0.98%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9.07%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,541&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.98%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.98%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.98%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;$ &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9.07%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;1,432&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.82%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 63.97%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Short-term lease cost&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 0.98%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 0.98%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9.07%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;394&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 0.98%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 0.98%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 0.98%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9.07%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;236&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.98%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.98%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.98%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9.07%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;165&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.82%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 63.97%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Lease cost&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 0.98%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 0.98%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9.07%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,845&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 0.98%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 0.98%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 0.98%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9.07%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,777&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.98%; background-color: rgb(204, 238, 255); padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.98%; background-color: rgb(204, 238, 255); padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.98%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;$ &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9.07%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;1,597&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.82%; background-color: rgb(204, 238, 255); padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Supplemental cash flow information related to operating leases was as follows for the years ended December 31, 2021, 2020 and 2019:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" rowspan="1" style="vertical-align: top; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" rowspan="1" style="text-align: center; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160; &lt;span style="font-weight: bold;"&gt;2019&lt;/span&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cash paid for amounts included in the measurement of lease liabilities:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 9%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 17.65pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Operating cash outflow from operating leases&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,845&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,777&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;$&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;1,597&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Maturities of lease liabilities for all operating leases were as follows as of December 31, 2021:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2022&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,385&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,063&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;929&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2025&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;19&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;Total lease payments&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,396&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;Less: Interest&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(214&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;Present value of lease liabilities&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,182&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The weighted average remaining lease terms and discount rates for all operating leases were as follows as of December 31, 2021 and 2020:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;Remaining lease term and discount rate:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;Weighted average remaining lease term (years)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.37&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2.11&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;Weighted average discount rate&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4.54&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5.14&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:LesseeOperatingLeasesTextBlock>
    <us-gaap:LeaseCostTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_af3bdd35c7dc41f5a6def32fd10af0c2">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The components of lease expense were as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px; width: 63.97%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 0.98%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" rowspan="1" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: middle; width: 0.82%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px; width: 63.97%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 0.98%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 0.98%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 0.98%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 0.98%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 0.98%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" rowspan="1" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); text-align: center;" valign="bottom"&gt;&#160;&lt;span style="font-weight: bold;"&gt;2019&lt;/span&gt;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: center; width: 0.82%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 63.97%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Operating lease cost&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 0.98%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 0.98%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9.07%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,451&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 0.98%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 0.98%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 0.98%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9.07%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,541&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.98%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.98%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.98%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;$ &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9.07%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;1,432&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.82%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 63.97%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Short-term lease cost&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 0.98%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 0.98%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9.07%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;394&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 0.98%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 0.98%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 0.98%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9.07%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;236&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.98%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.98%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.98%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9.07%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;165&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.82%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 63.97%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Lease cost&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 0.98%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 0.98%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9.07%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,845&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 0.98%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 0.98%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 0.98%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9.07%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,777&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.98%; background-color: rgb(204, 238, 255); padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.98%; background-color: rgb(204, 238, 255); padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.98%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;$ &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9.07%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;1,597&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 0.82%; background-color: rgb(204, 238, 255); padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:LeaseCostTableTextBlock>
    <us-gaap:OperatingLeaseCost
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_eb14b0492360487ab5454810dd4b0732"
      unitRef="U001">2451000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_c6598adfb4f5436b85db31fb2b2dd05f"
      unitRef="U001">1541000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_52dca5dce54c47c89b84195feae5586c"
      unitRef="U001">1432000</us-gaap:OperatingLeaseCost>
    <us-gaap:ShortTermLeaseCost
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_98517d851e2142e8bdaaf3f33ee3690f"
      unitRef="U001">394000</us-gaap:ShortTermLeaseCost>
    <us-gaap:ShortTermLeaseCost
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_5aa88b7859de497facc0f93fc750f68c"
      unitRef="U001">236000</us-gaap:ShortTermLeaseCost>
    <us-gaap:ShortTermLeaseCost
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_e326800759fb41e4a65e2b36e017b5f8"
      unitRef="U001">165000</us-gaap:ShortTermLeaseCost>
    <us-gaap:LeaseCost
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_f2aef1fa3bf5471a80b8c050052ff9ed"
      unitRef="U001">2845000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_bb2a0cfcda774e9290e52baca7786bdb"
      unitRef="U001">1777000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_e1ae72688c8f4aaea70ad4035a1819b3"
      unitRef="U001">1597000</us-gaap:LeaseCost>
    <acmr:LesseeOperatingLeaseSupplementalCashFlowInformationRelatedToOperatingLeasTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_998dea294db64465b9dff9b20ba43cb0">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Supplemental cash flow information related to operating leases was as follows for the years ended December 31, 2021, 2020 and 2019:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" rowspan="1" style="vertical-align: top; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" rowspan="1" style="text-align: center; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160; &lt;span style="font-weight: bold;"&gt;2019&lt;/span&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cash paid for amounts included in the measurement of lease liabilities:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 9%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 17.65pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Operating cash outflow from operating leases&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,845&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,777&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;$&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;1,597&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</acmr:LesseeOperatingLeaseSupplementalCashFlowInformationRelatedToOperatingLeasTableTextBlock>
    <us-gaap:OperatingLeasePayments
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_f5d998db013b456ca56738d0586f76f4"
      unitRef="U001">2845000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_0d1f6e44da624e32bf3e5ce0ea37a790"
      unitRef="U001">1777000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_6fa15c4d017d405cbabd87bf32d60638"
      unitRef="U001">1597000</us-gaap:OperatingLeasePayments>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_92060f90f1214061a665d4f6b593c4df">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Maturities of lease liabilities for all operating leases were as follows as of December 31, 2021:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2022&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,385&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,063&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;929&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2025&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;19&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;Total lease payments&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,396&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;Less: Interest&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(214&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;Present value of lease liabilities&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,182&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="c20211231"
      decimals="-3"
      id="Fact_6a344b46a51a4addb46465da599c7d01"
      unitRef="U001">2385000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="c20211231"
      decimals="-3"
      id="Fact_09bdc6d523d94b6ba9fa229af3e8ac4a"
      unitRef="U001">1063000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="c20211231"
      decimals="-3"
      id="Fact_df4858380e1c4158ba35645cc14912e1"
      unitRef="U001">929000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="c20211231"
      decimals="-3"
      id="Fact_6434723e05ed4bfe8f3aa7d8a53afab6"
      unitRef="U001">19000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="c20211231"
      decimals="-3"
      id="Fact_87c95563f3104e6497045e5d6e7d744f"
      unitRef="U001">4396000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="c20211231"
      decimals="-3"
      id="Fact_c4f4bdc3bae7409c8fd46b9c9c2d7d8f"
      unitRef="U001">214000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability
      contextRef="c20211231"
      decimals="-3"
      id="Fact_4ea0dfb2760c405ea8366c1afbe14488"
      unitRef="U001">4182000</us-gaap:OperatingLeaseLiability>
    <acmr:LesseeOperatingLeaseWeightedAverageRemainingLeaseTermAndDiscountRateTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_9932de9ec4c24f1689257e1e2d378a33">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The weighted average remaining lease terms and discount rates for all operating leases were as follows as of December 31, 2021 and 2020:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;Remaining lease term and discount rate:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;Weighted average remaining lease term (years)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.37&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2.11&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;Weighted average discount rate&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4.54&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5.14&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</acmr:LesseeOperatingLeaseWeightedAverageRemainingLeaseTermAndDiscountRateTableTextBlock>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="c20211231"
      id="Fact_6e049d698fec4e24ae4ce856d349c344">P1Y4M13D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="c20201231"
      id="Fact_af101a3e1fea4edaba085b09ac5d047d">P2Y1M9D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="c20211231"
      decimals="4"
      id="Fact_3f635912eedb458aa43c96cdc582e7e4"
      unitRef="U004">0.0454</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="c20201231"
      decimals="4"
      id="Fact_80440a89a39e4058b7bacc3acbb06a41"
      unitRef="U004">0.0514</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:LongTermDebtTextBlock
      contextRef="c20210101to20211231"
      id="Text_43548cec242a4c6e8be519c53233c97c">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 12 &#x2013; LONG-TERM BORROWINGS&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;At December 31, 2021 and 2020, long-term borrowings consisted of the following:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-indent: -7pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;2020&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Loan from China Merchants Bank&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,390&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;19,570&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;Loans from Bank of China&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;6,977&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Less: Current portion&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2,410&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,591&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;22,957&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;17,979&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The loan from China Merchants Bank is for the purpose of purchasing property in Lingang, Shanghai. The loan is repayable in 120 installments with the last installment due in &lt;span style="-sec-ix-hidden:Fact_2714802a49934c03a08054f607fc2079"&gt;November 2030&lt;/span&gt;,
      with an annual interest rate of 4.65%. The loan is pledged by the property of Shengwei Research (Shanghai) Inc. and guaranteed by ACM
      Research (Shanghai) Inc. As of December 31, 2021, the right certificate of the pledged property has not been obtained and the procedures of the formal pledge registration in the bank had not been completed.&lt;/div&gt;

&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"&gt;Two loans from Bank of China are for the purpose of funding ACM Shanghai project expenditures. The loans bear interest at an annual rate of 2.6% and are repayable in 6
        installments, with the last installments due in &lt;span style="-sec-ix-hidden:Fact_73bd7774559c47d2a94efb32c171d52e"&gt;June 2024&lt;/span&gt; and &lt;span style="-sec-ix-hidden:Fact_e0e456d02cd44283b391cb898e4d2fd6"&gt;September 2024&lt;/span&gt;.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Scheduled principal payments for the outstanding long-term loan as of December 31, 2021 are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year ending December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2022&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,410&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,491&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,436&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2025&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,959&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2026 and onwards&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;11,071&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;25,367&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"&gt;For the year ended
        December 31, 2021, $1,040 of interest related to long-term borrowings was incurred, of which $65 was charged to interest expense and $975 was capitalized as
        other long-term assets. For the year ended December 31, 2020, $72 of interest related to long-term borrowings was incurred, and
        capitalized, as other long-term assets.&lt;/div&gt;
</us-gaap:LongTermDebtTextBlock>
    <us-gaap:ScheduleOfDebtInstrumentsTextBlock
      contextRef="c20210101to20211231"
      id="Text_c5645cde895549b38fddb181b0a9aa7f">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;At December 31, 2021 and 2020, long-term borrowings consisted of the following:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-indent: -7pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;2020&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Loan from China Merchants Bank&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,390&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;19,570&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;Loans from Bank of China&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;6,977&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Less: Current portion&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2,410&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,591&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;22,957&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;17,979&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfDebtInstrumentsTextBlock>
    <us-gaap:LongTermDebt
      contextRef="c20211231_LineOfCreditFacilityAxis_ChinaMerchantsBankMember"
      decimals="-3"
      id="Fact_9090b88e724d444691b619f6e184dccb"
      unitRef="U001">18390000</us-gaap:LongTermDebt>
    <us-gaap:LongTermDebt
      contextRef="c20201231_LineOfCreditFacilityAxis_ChinaMerchantsBankMember"
      decimals="-3"
      id="Fact_7cf4f738800245919b430d84de307b37"
      unitRef="U001">19570000</us-gaap:LongTermDebt>
    <us-gaap:LongTermDebt
      contextRef="c20211231_LineOfCreditFacilityAxis_BankOfChinaMember"
      decimals="-3"
      id="Fact_3bce26d4f3854befb217b0cdf7f7882e"
      unitRef="U001">6977000</us-gaap:LongTermDebt>
    <us-gaap:LongTermDebt
      contextRef="c20201231_LineOfCreditFacilityAxis_BankOfChinaMember"
      decimals="-3"
      id="Fact_38f528c102d14843ab8057cb4a221c11"
      unitRef="U001">0</us-gaap:LongTermDebt>
    <us-gaap:LongTermDebtCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_637a0be4b8b2484d9797c9e50bf9e672"
      unitRef="U001">2410000</us-gaap:LongTermDebtCurrent>
    <us-gaap:LongTermDebtCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_2ad45acb13d34a129a0ff78eaf9f0b28"
      unitRef="U001">1591000</us-gaap:LongTermDebtCurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_0f65108c5aaf4f9aa5f21693938cd4e5"
      unitRef="U001">22957000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_c919134c67d4404b9c9ed3f54d7271f1"
      unitRef="U001">17979000</us-gaap:LongTermDebtNoncurrent>
    <acmr:NumberOfInstallmentsForLoanRepayable
      contextRef="c20210101to20211231_LineOfCreditFacilityAxis_ChinaMerchantsBankMember"
      decimals="0"
      id="Fact_6b09015a48ee433eb6979c324874e330"
      unitRef="U011">120</acmr:NumberOfInstallmentsForLoanRepayable>
    <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod
      contextRef="c20210101to20211231_LineOfCreditFacilityAxis_ChinaMerchantsBankMember"
      decimals="4"
      id="Fact_6215b33eda2948479d6980d2c16c75eb"
      unitRef="U004">0.0465</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
    <acmr:DebtInstrumentsNumberOfLoans
      contextRef="c20210101to20211231_LineOfCreditFacilityAxis_BankOfChinaMember"
      decimals="INF"
      id="Fact_cf0bec540ed14ae0b5d0247517618956"
      unitRef="U010">2</acmr:DebtInstrumentsNumberOfLoans>
    <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod
      contextRef="c20210101to20211231_DebtInstrumentAxis_LoanOneMember_LineOfCreditFacilityAxis_BankOfChinaMember"
      decimals="3"
      id="Fact_ac9e1df97e814497aeae3945690e0207"
      unitRef="U004">0.026</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
    <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod
      contextRef="c20210101to20211231_DebtInstrumentAxis_LoanTwoMember_LineOfCreditFacilityAxis_BankOfChinaMember"
      decimals="3"
      id="Fact_0eee6b6a031547b69c78d27c07abadba"
      unitRef="U004">0.026</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
    <acmr:NumberOfInstallmentsForLoanRepayable
      contextRef="c20210101to20211231_DebtInstrumentAxis_LoanOneMember_LineOfCreditFacilityAxis_BankOfChinaMember"
      decimals="0"
      id="Fact_6c5d4cb8800c4aec84f96541785da772"
      unitRef="U011">6</acmr:NumberOfInstallmentsForLoanRepayable>
    <acmr:NumberOfInstallmentsForLoanRepayable
      contextRef="c20210101to20211231_DebtInstrumentAxis_LoanTwoMember_LineOfCreditFacilityAxis_BankOfChinaMember"
      decimals="0"
      id="Fact_0f0ca969ef4a4fa4b6358f266cd7e6ae"
      unitRef="U011">6</acmr:NumberOfInstallmentsForLoanRepayable>
    <us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_edfd339ea9914d878e845ae251482c77">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Scheduled principal payments for the outstanding long-term loan as of December 31, 2021 are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year ending December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2022&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,410&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,491&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,436&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2025&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,959&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2026 and onwards&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;11,071&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;25,367&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths
      contextRef="c20211231"
      decimals="-3"
      id="Fact_291f58b8389442d586b4076df048a1b1"
      unitRef="U001">2410000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo
      contextRef="c20211231"
      decimals="-3"
      id="Fact_81a0214e361c40429f31603efe01117c"
      unitRef="U001">2491000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree
      contextRef="c20211231"
      decimals="-3"
      id="Fact_914097ae1a3e4d3dbc190a35ab736eff"
      unitRef="U001">7436000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour
      contextRef="c20211231"
      decimals="-3"
      id="Fact_c5f8c296b1bb40759de0c8b9fcc6100c"
      unitRef="U001">1959000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour>
    <acmr:LongTermDebtMaturitiesRepaymentsOfPrincipalYearFiveAndAfter
      contextRef="c20211231"
      decimals="-3"
      id="Fact_5ce40feb9cc54c2b8ce2950d7cb9f137"
      unitRef="U001">11071000</acmr:LongTermDebtMaturitiesRepaymentsOfPrincipalYearFiveAndAfter>
    <us-gaap:LongTermDebt
      contextRef="c20211231"
      decimals="-3"
      id="Fact_20cd5875662548f7b84706368a2aedc0"
      unitRef="U001">25367000</us-gaap:LongTermDebt>
    <us-gaap:InterestCostsIncurred
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_c6cfb6841980416b87c4fb61ec74a28e"
      unitRef="U001">1040000</us-gaap:InterestCostsIncurred>
    <us-gaap:InterestExpenseLongTermDebt
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_bb13d63f04824cd59cb820585e9d1c03"
      unitRef="U001">65000</us-gaap:InterestExpenseLongTermDebt>
    <us-gaap:InterestCostsCapitalized
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_16c1425695774c50b5be34cef81b6673"
      unitRef="U001">975000</us-gaap:InterestCostsCapitalized>
    <us-gaap:InterestCostsIncurred
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_c5cf50c3a93e4dc29e7dcb37d553e77c"
      unitRef="U001">72000</us-gaap:InterestCostsIncurred>
    <us-gaap:InterestCostsCapitalized
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_bc3f2febfc7043bdac7ca08cce65c8f1"
      unitRef="U001">72000</us-gaap:InterestCostsCapitalized>
    <us-gaap:OtherLiabilitiesDisclosureTextBlock
      contextRef="c20210101to20211231"
      id="Text_2dae5c9fafb242a28fd6f5285d317362">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 13 &#x2013; OTHER LONG-TERM LIABILITIES&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other long-term liabilities represent government subsidies received from PRC governmental authorities for development and commercialization of certain technology but not
      yet recognized (note 2). As of December 31, 2021 and 2020, other long-term liabilities consisted of the following unearned government subsidies:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Subsidies to Stress Free Polishing project, commenced in 2008 and 2017&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;791&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,266&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Subsidies to Electro Copper Plating project, commenced in 2014&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;160&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,156&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Subsidies to Polytetrafluoroethylene, commenced in 2018&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;130&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Subsidies to Tahoe-Single Bench Clean, commenced in 2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,544&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Subsidies to other cleaning tools,commenced in 2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,014&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,591&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;Subsidies to SW Lingang R&amp;amp;D development in 2021&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;5,958&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;524&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;347&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,447&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,034&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:OtherLiabilitiesDisclosureTextBlock>
    <us-gaap:OtherNoncurrentLiabilitiesTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_4ec7b60a14e140f0a871f73c54037336">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other long-term liabilities represent government subsidies received from PRC governmental authorities for development and commercialization of certain technology but not
      yet recognized (note 2). As of December 31, 2021 and 2020, other long-term liabilities consisted of the following unearned government subsidies:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Subsidies to Stress Free Polishing project, commenced in 2008 and 2017&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;791&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,266&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Subsidies to Electro Copper Plating project, commenced in 2014&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;160&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,156&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Subsidies to Polytetrafluoroethylene, commenced in 2018&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;130&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Subsidies to Tahoe-Single Bench Clean, commenced in 2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,544&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Subsidies to other cleaning tools,commenced in 2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,014&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,591&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;Subsidies to SW Lingang R&amp;amp;D development in 2021&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;5,958&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;524&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;347&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,447&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,034&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:OtherNoncurrentLiabilitiesTableTextBlock>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20211231_DebtInstrumentAxis_SubsidiesToStressFreePolishingProjectMember"
      decimals="-3"
      id="Fact_68588a21bf4348c1bd3ca7d1a5e5ef99"
      unitRef="U001">791000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20201231_DebtInstrumentAxis_SubsidiesToStressFreePolishingProjectMember"
      decimals="-3"
      id="Fact_276e5ec556c043aab58b5bdb7640c935"
      unitRef="U001">1266000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20211231_DebtInstrumentAxis_SubsidiesToElectroCopperPlatingProjectMember"
      decimals="-3"
      id="Fact_69e96fa9286c4efaa7b54b0ff5df47ea"
      unitRef="U001">160000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20201231_DebtInstrumentAxis_SubsidiesToElectroCopperPlatingProjectMember"
      decimals="-3"
      id="Fact_ddebdc37543d41be861ae41b4f1f6da2"
      unitRef="U001">2156000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20211231_DebtInstrumentAxis_SubsidiesToPolytetrafluoroethyleneMember"
      decimals="-3"
      id="Fact_2de3c8d110f24edb97becbe35b389c62"
      unitRef="U001">0</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20201231_DebtInstrumentAxis_SubsidiesToPolytetrafluoroethyleneMember"
      decimals="-3"
      id="Fact_fe6ff5808d8c420695c96efae7f2a1c8"
      unitRef="U001">130000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20211231_DebtInstrumentAxis_SubsidiesToTahoeSingleBenchCleanCommencedIn2020Member"
      decimals="-3"
      id="Fact_60784593ce324ec1a51983903f4c54a1"
      unitRef="U001">0</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20201231_DebtInstrumentAxis_SubsidiesToTahoeSingleBenchCleanCommencedIn2020Member"
      decimals="-3"
      id="Fact_5692aeb233fb4d82b551913638a3fbff"
      unitRef="U001">1544000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20211231_DebtInstrumentAxis_SubsidiesToOtherCleaningToolsCommencedIn2020Member"
      decimals="-3"
      id="Fact_7d5f6e308d8842c28d83c8ba02c49bfc"
      unitRef="U001">1014000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20201231_DebtInstrumentAxis_SubsidiesToOtherCleaningToolsCommencedIn2020Member"
      decimals="-3"
      id="Fact_344bc6df6c9a4bb78c206c3697a304b0"
      unitRef="U001">2591000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20211231_DebtInstrumentAxis_SubsidiesToSWLingangRDDevelopmentIn2021Member"
      decimals="-3"
      id="Fact_76872da438114fb2bd0d32d3b53a63ef"
      unitRef="U001">5958000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20201231_DebtInstrumentAxis_SubsidiesToSWLingangRDDevelopmentIn2021Member"
      decimals="-3"
      id="Fact_9f0e35c9faa5492a880a2c63541c42ba"
      unitRef="U001">0</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20211231_DebtInstrumentAxis_OtherMember"
      decimals="-3"
      id="Fact_52570e669951437e900684532c33e86f"
      unitRef="U001">524000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20201231_DebtInstrumentAxis_OtherMember"
      decimals="-3"
      id="Fact_482080c40f654708b0671c37ec676818"
      unitRef="U001">347000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_f10b3e9ca35e42778cbf0d795e33fc0b"
      unitRef="U001">8447000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_5baa9c6065674b1e917cf2376fe99de2"
      unitRef="U001">8034000</us-gaap:OtherLiabilitiesNoncurrent>
    <acmr:LongTermInvestmentTextBlock
      contextRef="c20210101to20211231"
      id="Text_f096f14dc2624be1b90daf3069facf4f">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 14 &#x2013; LONG-TERM INVESTMENT&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;On September 6, 2017, ACM and Ninebell Co., Ltd. (&#x201c;Ninebell&#x201d;), a Korean company that is one of the Company&#x2019;s principal material suppliers, entered into an ordinary share
      purchase agreement, effective as of September 11, 2017, pursuant to which Ninebell issued to ACM ordinary shares representing 20% of
      Ninebell&#x2019;s post-closing equity for a purchase price of $1,200, and a common stock purchase agreement, effective as of September 11, 2017,
      pursuant to which ACM issued 133,334 shares of Class A common stock to Ninebell for a purchase price of $1,000 at $7.50 per share. The investment in
      Ninebell is accounted for under the equity method.&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;On June 27, 2019, ACM Shanghai and Shengyi Semiconductor Technology Co., Ltd. (&#x201c;Shengyi&#x201d;), a company based in Wuxi, China that is one of the Company&#x2019;s component
      suppliers, entered into an agreement pursuant to which Shengyi issued to ACM Shanghai shares representing 15% of Shengyi&#x2019;s post-closing
      equity for a purchase price of $109. The investment in Shengyi is accounted for under the equity method.&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;On September 5, 2019, ACM Shanghai, entered into a Partnership Agreement with six other investors, as limited partners, and Beijing Shixi Qingliu Investment Co., Ltd., as general partner and manager, with respect to the formation of Hefei Shixi Chanheng Integrated
      Circuit Industry Venture Capital Fund Partnership (LP), a Chinese limited partnership based in Hefei, China. Pursuant to such Partnership Agreement, on September 30, 2019, ACM Shanghai invested RMB 30,000 ($4,200), which represented 10% of the partnership&#x2019;s total subscribed capital. The investment in Hefei Shixi Chanheng Integrated Circuit Industry Venture Capital Fund Partnership
      (LP) is accounted for under the equity method in accordance with ASC 323-30-S99-1.&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;On October 29, 2021, ACM Shanghai and Waferworks (Shanghai) Co., Ltd, or Waferworks, a company based in Shanghai, China, and one of the Company&#x2019;s customers, entered into
      an agreement pursuant to which Waferworks issued to ACM Shanghai shares representing 0.25% of Waferworks&#x2019; post-closing equity for a
      purchase price of $1,568. As there is no readily determinable fair value, the Company measures the investment in Waferworks at cost minus
      impairment, if any.&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;The Company treats the equity investment in the consolidated financial statements under the equity method.
        Under the equity method, the investment is initially recorded at cost, adjusted for any excess of the Company&#x2019;s share of the incorporated-date fair values of the investee&#x2019;s identifiable net assets over the cost of the investment (if any).
        Thereafter, the investment is adjusted for the post incorporation change in the Company&#x2019;s share of the investee&#x2019;s net assets and any impairment loss relating to the investment.&#160;&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Ninebell&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,051&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,666&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Shengyi&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;211&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;134&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Hefei Shixi&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,864&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,540&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: middle; width: 76%;" valign="bottom"&gt;&lt;span style="font-weight: bold;"&gt;Subtotal&lt;/span&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-weight: bold;" valign="bottom"&gt;11,126&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-weight: bold;" valign="bottom"&gt;6,340&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;Other investee:&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: middle; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;Waferworks&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;1,568&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;12,694&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;6,340&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;br/&gt;
      &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"&gt;For the
        years ended December 31, 2021, 2020 and 2019, the Company&#x2019;s share of equity investees&#x2019; net income was $4,637, $655 and $168, respectively, which was
        included in income on equity method investment in the accompanying consolidated statements of operations and comprehensive income. &lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;For the year ended December 31, 2021, 2020 and 2019, dividends received from its equity investee was $0, $555 and $0, respectively, which was offset in part by a reduction in the carrying value of the Company&#x2019;s share of equity investees&#x2019; net income.&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;
</acmr:LongTermInvestmentTextBlock>
    <us-gaap:EquityMethodInvestmentOwnershipPercentage
      contextRef="c20170911_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember"
      decimals="2"
      id="Fact_c8aa9eb7382349569fd0ade4062efd50"
      unitRef="U004">0.20</us-gaap:EquityMethodInvestmentOwnershipPercentage>
    <us-gaap:EquityMethodInvestmentAggregateCost
      contextRef="c20170911_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember"
      decimals="-3"
      id="Fact_028fa16b38384e7195e6310a075cc8e0"
      unitRef="U001">1200000</us-gaap:EquityMethodInvestmentAggregateCost>
    <us-gaap:SharesIssued
      contextRef="c20170911_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_daff77c1d1a846ba9cdefd234523cffb"
      unitRef="U002">133334</us-gaap:SharesIssued>
    <us-gaap:EquityMethodInvestmentAggregateCost
      contextRef="c20170911_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember_StatementClassOfStockAxis_CommonClassAMember"
      decimals="-3"
      id="Fact_95acbcb796d64ba480321d98f7b01d00"
      unitRef="U001">1000000</us-gaap:EquityMethodInvestmentAggregateCost>
    <us-gaap:SharesIssuedPricePerShare
      contextRef="c20170911_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember_StatementClassOfStockAxis_CommonClassAMember"
      decimals="2"
      id="Fact_9e429416820c4783ace3f351731ccd96"
      unitRef="U003">7.50</us-gaap:SharesIssuedPricePerShare>
    <us-gaap:EquityMethodInvestmentOwnershipPercentage
      contextRef="c20190627_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember"
      decimals="2"
      id="Fact_90c675dd29ce456cb8ca68741223cb9f"
      unitRef="U004">0.15</us-gaap:EquityMethodInvestmentOwnershipPercentage>
    <us-gaap:EquityMethodInvestments
      contextRef="c20190627_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember"
      decimals="-3"
      id="Fact_0a49152c32ca4ec48e41c8ec0185f4d2"
      unitRef="U001">109000</us-gaap:EquityMethodInvestments>
    <acmr:NumberOfInvestorsWithAgreementsEntered
      contextRef="c20190905to20190905_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember"
      decimals="INF"
      id="Fact_e161a37cca434e1ba3561925c59ee7cf"
      unitRef="U012">6</acmr:NumberOfInvestorsWithAgreementsEntered>
    <acmr:InvestmentInPartnership
      contextRef="c20190930_RelatedPartyTransactionsByRelatedPartyAxis_HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember"
      decimals="-3"
      id="Fact_d4d4f531dc504d6280f182f1249f2b67"
      unitRef="U009">30000000</acmr:InvestmentInPartnership>
    <acmr:InvestmentInPartnership
      contextRef="c20190930_RelatedPartyTransactionsByRelatedPartyAxis_HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember"
      decimals="-3"
      id="Fact_98eb4ed2bbf34a509ee48bf13bab5662"
      unitRef="U001">4200000</acmr:InvestmentInPartnership>
    <acmr:OwnershipPercentageInPartnership
      contextRef="c20190930_RelatedPartyTransactionsByRelatedPartyAxis_HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember"
      decimals="2"
      id="Fact_a92bd19c6060431ba36eae618150ea33"
      unitRef="U004">0.10</acmr:OwnershipPercentageInPartnership>
    <us-gaap:EquityMethodInvestmentOwnershipPercentage
      contextRef="c20211029_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember"
      decimals="4"
      id="Fact_a0bc702a682548c686df425e0fb0dcc6"
      unitRef="U004">0.0025</us-gaap:EquityMethodInvestmentOwnershipPercentage>
    <us-gaap:EquityMethodInvestments
      contextRef="c20211029_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember"
      decimals="-3"
      id="Fact_191858cfb86d475ab9c05f86cbd359c9"
      unitRef="U001">1568000</us-gaap:EquityMethodInvestments>
    <acmr:LongTermInvestmentTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_ef61d73561b34ba2805f079f4a630fe0">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;The Company treats the equity investment in the consolidated financial statements under the equity method.
        Under the equity method, the investment is initially recorded at cost, adjusted for any excess of the Company&#x2019;s share of the incorporated-date fair values of the investee&#x2019;s identifiable net assets over the cost of the investment (if any).
        Thereafter, the investment is adjusted for the post incorporation change in the Company&#x2019;s share of the investee&#x2019;s net assets and any impairment loss relating to the investment.&#160;&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Ninebell&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,051&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,666&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Shengyi&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;211&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;134&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Hefei Shixi&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,864&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,540&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: middle; width: 76%;" valign="bottom"&gt;&lt;span style="font-weight: bold;"&gt;Subtotal&lt;/span&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-weight: bold;" valign="bottom"&gt;11,126&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-weight: bold;" valign="bottom"&gt;6,340&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;Other investee:&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: middle; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;Waferworks&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;1,568&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;12,694&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;6,340&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</acmr:LongTermInvestmentTableTextBlock>
    <us-gaap:Investments
      contextRef="c20211231_InvestmentTypeAxis_InvestmentExcludingOtherMember_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember"
      decimals="-3"
      id="Fact_7dad24107f28404fbf6c3ded479fa31f"
      unitRef="U001">3051000</us-gaap:Investments>
    <us-gaap:Investments
      contextRef="c20201231_InvestmentTypeAxis_InvestmentExcludingOtherMember_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember"
      decimals="-3"
      id="Fact_73e48e991bea44dab95afb6026971715"
      unitRef="U001">1666000</us-gaap:Investments>
    <us-gaap:Investments
      contextRef="c20211231_InvestmentTypeAxis_InvestmentExcludingOtherMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember"
      decimals="-3"
      id="Fact_1fc8a88a8f944734a2e9703c1d8631d8"
      unitRef="U001">211000</us-gaap:Investments>
    <us-gaap:Investments
      contextRef="c20201231_InvestmentTypeAxis_InvestmentExcludingOtherMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember"
      decimals="-3"
      id="Fact_8fe13f2eb0cb49aa9621b76d48526bc3"
      unitRef="U001">134000</us-gaap:Investments>
    <us-gaap:Investments
      contextRef="c20211231_InvestmentTypeAxis_InvestmentExcludingOtherMember_RelatedPartyTransactionsByRelatedPartyAxis_HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember"
      decimals="-3"
      id="Fact_8dee6155abae41f987c65cb1e04accc0"
      unitRef="U001">7864000</us-gaap:Investments>
    <us-gaap:Investments
      contextRef="c20201231_InvestmentTypeAxis_InvestmentExcludingOtherMember_RelatedPartyTransactionsByRelatedPartyAxis_HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember"
      decimals="-3"
      id="Fact_d8cc5dd6f03d4262ac16a21edbc9be8b"
      unitRef="U001">4540000</us-gaap:Investments>
    <us-gaap:Investments
      contextRef="c20211231_InvestmentTypeAxis_InvestmentExcludingOtherMember"
      decimals="-3"
      id="Fact_8075bbeed68643f092d15a0e4d3a88d5"
      unitRef="U001">11126000</us-gaap:Investments>
    <us-gaap:Investments
      contextRef="c20201231_InvestmentTypeAxis_InvestmentExcludingOtherMember"
      decimals="-3"
      id="Fact_65491c58a8fa4af79d8eb85363e6e4bb"
      unitRef="U001">6340000</us-gaap:Investments>
    <us-gaap:Investments
      contextRef="c20211231_InvestmentTypeAxis_OtherLongTermInvestmentsMember_RelatedPartyTransactionsByRelatedPartyAxis_WaferworksCompanyLimitedMember"
      decimals="-3"
      id="Fact_1f375c9978d34051aa0df2d1b639a349"
      unitRef="U001">1568000</us-gaap:Investments>
    <us-gaap:Investments
      contextRef="c20201231_InvestmentTypeAxis_OtherLongTermInvestmentsMember_RelatedPartyTransactionsByRelatedPartyAxis_WaferworksCompanyLimitedMember"
      decimals="-3"
      id="Fact_217a8b3e57474e41b4fbd5c642af24d0"
      unitRef="U001">0</us-gaap:Investments>
    <us-gaap:Investments
      contextRef="c20211231"
      decimals="-3"
      id="Fact_eaa2afe5335a42b08dac8a4f7ad63f94"
      unitRef="U001">12694000</us-gaap:Investments>
    <us-gaap:Investments
      contextRef="c20201231"
      decimals="-3"
      id="Fact_f00bcfde346647fa82ce53d260ea0e76"
      unitRef="U001">6340000</us-gaap:Investments>
    <us-gaap:IncomeLossFromEquityMethodInvestments
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_cd8704df7d4e4524be9bf44f30fdb0bf"
      unitRef="U001">4637000</us-gaap:IncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromEquityMethodInvestments
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_3fb9e20bd1fe4a9f8e506a3e5944c996"
      unitRef="U001">655000</us-gaap:IncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromEquityMethodInvestments
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_64dcfa61c579489aac6e4ecfba40ba97"
      unitRef="U001">168000</us-gaap:IncomeLossFromEquityMethodInvestments>
    <us-gaap:ProceedsFromEquityMethodInvestmentDividendsOrDistributionsReturnOfCapital
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_f149697b0fe5426b9f23cfc13ba96fe9"
      unitRef="U001">0</us-gaap:ProceedsFromEquityMethodInvestmentDividendsOrDistributionsReturnOfCapital>
    <us-gaap:ProceedsFromEquityMethodInvestmentDividendsOrDistributionsReturnOfCapital
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_239d1323e31b4c0d99856426e582c0bd"
      unitRef="U001">555000</us-gaap:ProceedsFromEquityMethodInvestmentDividendsOrDistributionsReturnOfCapital>
    <us-gaap:ProceedsFromEquityMethodInvestmentDividendsOrDistributionsReturnOfCapital
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_7efeff3b070e4356a5d6efb90c481f54"
      unitRef="U001">0</us-gaap:ProceedsFromEquityMethodInvestmentDividendsOrDistributionsReturnOfCapital>
    <acmr:FinancialLiabilityCarriedAtFairValueDisclosuresTextBlock
      contextRef="c20210101to20211231"
      id="Text_77af558660d94b1cb092cf0b86fc0712">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 15 &#x2013; FINANCIAL LIABILITY CARRIED AT FAIR VALUE&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In December 2016 Shengxin (Shanghai) Management Consulting Limited Partnership (&#x201c;SMC&#x201d;) paid 20,123,500 RMB ($2,981 as of the date of funding) (the &#x201c;SMC
      Investment&#x201d;) to ACM Shanghai for investment pursuant to terms to be subsequently negotiated. SMC is a PRC limited partnership partially owned by employees of ACM Shanghai.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In March 2017 (a) ACM issued to SMC a warrant (the &#x201c;Warrant&#x201d;) exercisable to purchase 397,502 shares of Class A common stock at a price of $7.50 per share, for a total exercise price of $2,981, and (b) ACM Shanghai agreed to repay the SMC Investment within 60 days after the exercise of the Warrant. In March 2018 SMC exercised the Warrant in full, as a result of which (1) ACM issued 397,502 shares of Class A common stock to SMC, (2) SMC borrowed the funds to pay the Warrant exercise price pursuant to a senior secured promissory note (the &#x201c;SMC Note&#x201d;) in the principal amount of $2,981 issued to ACM Shanghai, which in turn issued to ACM a promissory note (the &#x201c;Intercompany Note&#x201d;) in the principal amount of $2,981 in payment of the Warrant exercise price. Each of the SMC Note and the Intercompany Note bore interest at a rate of 3.01% per annum and matured on August 17, 2023.
      The SMC Note was secured by a pledge of the shares issued upon exercise of the Warrant.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In connection with its follow-on public offering of Class A common stock in August 2019, ACM agreed to purchase a total of 154,821 of the Warrant shares from SMC at a per share price of $13.195,
      of which (a) $1,161 was applied to reduce SMC&#x2019;s obligations to ACM Shanghai under the SMC Note, and which ACM then withheld for its own
      account and applied to reduce ACM Shanghai&#x2019;s obligations to ACM under the Intercompany Note, and (b) the remaining $882 was paid to SMC. In
      a separate transaction, ACM Shanghai repaid $1,161 of the SMC Investment in cash, which reduced the amount of the SMC Investment due to SMC
      to $1,820.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The SMC Note and SMC Investment are offsetting items in the Company&#x2019;s consolidated balance sheet in accordance with ASC 210-20-45-1 up to April 30, 2020.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In preparation for the STAR IPO, ACM Shanghai was required to terminate its financial relationship with SMC. In order to facilitate such termination, on April 30, 2020,
      ACM entered into two agreements relating to outstanding obligations among ACM Research, ACM Shanghai and SMC. Pursuant to such agreements:
      (i) ACM Shanghai assigned to ACM its rights under the SMC Note, including the right to receive payment of the $1,820 payable thereunder;
      (ii) ACM cancelled the outstanding $1,820 obligation of ACM Shanghai under the Intercompany Note; (iii) SMC surrendered its remaining 242,681 Warrant shares to ACM Research; and (iv) in exchange for such 242,681 Warrant shares, ACM agreed to deliver to SMC certain consideration (&#x201c;SMC Consideration&#x201d;) agreed upon by ACM Research and SMC, subject to obtaining certain PRC regulatory approvals. Under the agreements, if
      the required approvals were not obtained by December 31, 2023, ACM would cancel the SMC Note as consideration for the 242,681 Warrant
      shares. In a separate transaction in April 2020, ACM Shanghai repaid the remaining $1,820 of the SMC Investment in cash.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;For the period beginning April 30, 2020, the SMC Consideration is accounted for as a financial liability, and the Company applies fair value option to measure the SMC
      Consideration in accordance with ASC 825-10-15-4a. On April 30, 2020, the SMC Consideration was $9,715 which was for cancellation of the
      Warrant shares and recorded in the equity. The financial liability was remeasured to fair value as of the end of each of the reporting periods.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;On July 29, 2020, ACM and SMC entered into an amended agreement under which, in settlement of the SMC Consideration, ACM issued to SMC a warrant (the &#x201c;SMC 2020 Warrant&#x201d;)
      to purchase 242,681 shares of Class A common stock at a purchase price of $7.50 per share, and ACM cancelled the SMC Note. The financial liability was remeasured to fair value of $21,679 as of July 29, 2020, and was retired with the issuance of the SMC 2020 Warrant.&#160; The Company recognized a change in fair value of financial liability of $11,964 for the year ended December 31, 2020, which was reflected in the consolidated statement of operations. The Company recorded the difference of $19,859 between the SMC 2020 Warrant of $21,679
      and the SMC Note of $1,820 into the equity.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The SMC 2020 Warrant was initially measured at fair value at the issuance date and classified as equity permanently in accordance with ASC 815. The fair value of the SMC
      2020 Warrant amounted to $21,679, based on the grant date using the Black-Scholes valuation model with the following assumptions:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;July 29,&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Fair value of common share(1)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;89.28&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Expected term in years(2)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3.42&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Volatility(3)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;47.42&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Risk-free interest rate(4)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.15&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Expected dividend(5)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: rgb(0, 0, 0);"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1)&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Fair value of Class A common stock was the closing
              market price of the Class A common stock on July 29, 2020.&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: rgb(0, 0, 0);"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2)&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Expected term of share options is based on the
              average of the vesting period and the contractual term for each grant according to Staff Accounting Bulletin 110.&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: rgb(0, 0, 0);"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(3)&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Volatility is calculated based on the historical
              volatility of the stock of companies comparable to ACM in the period equal to the expected term of each grant.&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: rgb(0, 0, 0);"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(4)&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Risk-free interest rate is based on the yields of
              U.S. Treasury securities with maturities similar to the expected term of the share options in effect at the time of grant.&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: rgb(0, 0, 0);"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(5)&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Expected dividend is assumed to be 0%, as ACM has no
              history or expectation of paying a dividend on its common stock.&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; text-align: justify;"&gt;On June 9, 2021, subsequent to its obtaining the necessary PRC approvals, SMC exercised the 2020 Warrant by paying the $1,820 exercise price to ACM and surrendering the 2020 Warrant to ACM. In return, ACM delivered 242,681 shares of ACM Class A common stock to SMC.&lt;br/&gt;
    &lt;/div&gt;
</acmr:FinancialLiabilityCarriedAtFairValueDisclosuresTextBlock>
    <acmr:CashDeliveredAsOfCloseOfBusiness
      contextRef="c20161231_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember"
      decimals="-3"
      id="Fact_65cf6e01d58c4595a504ec9eea23c515"
      unitRef="U009">20123500000</acmr:CashDeliveredAsOfCloseOfBusiness>
    <acmr:CashDeliveredAsOfCloseOfBusiness
      contextRef="c20161231_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember"
      decimals="-3"
      id="Fact_8d41109878a0475daceca224c295b65b"
      unitRef="U001">2981000</acmr:CashDeliveredAsOfCloseOfBusiness>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="c20170301to20170331_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_222e40b2eee04b018a88aebafab395c1"
      unitRef="U002">397502</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:SharePrice
      contextRef="c20170331_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember"
      decimals="2"
      id="Fact_695c206aa47441a3bc3c171fb9dc9ddf"
      unitRef="U003">7.50</us-gaap:SharePrice>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="c20170301to20170331_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember"
      decimals="-3"
      id="Fact_90da724f16a44c84b747afae880dd394"
      unitRef="U001">2981000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <acmr:InvestmentRepaymentPeriod
      contextRef="c20210101to20211231_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember"
      id="Fact_c78e70b1e6e6430c89a118cc2831b3c2">P60D</acmr:InvestmentRepaymentPeriod>
    <acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised
      contextRef="c20180301to20180331_LongtermDebtTypeAxis_SeniorNotesMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_8b2da7011eea449881a9b2325fe81b28"
      unitRef="U002">397502</acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised>
    <us-gaap:DebtInstrumentFaceAmount
      contextRef="c20180331_LongtermDebtTypeAxis_SeniorNotesMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember"
      decimals="-3"
      id="Fact_2b5dc3f77edf433f927de78fcd659c7b"
      unitRef="U001">2981000</us-gaap:DebtInstrumentFaceAmount>
    <us-gaap:DebtInstrumentFaceAmount
      contextRef="c20180331_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_LongtermDebtTypeAxis_IntercompanyNoteMember"
      decimals="-3"
      id="Fact_16a3a78cc1b842c8b68bb09210949815"
      unitRef="U001">2981000</us-gaap:DebtInstrumentFaceAmount>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="c20180331_LongtermDebtTypeAxis_SeniorNotesMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember"
      decimals="4"
      id="Fact_fcac3388cac44ea385f840c9a76fcdee"
      unitRef="U004">0.0301</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="c20180331_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_LongtermDebtTypeAxis_IntercompanyNoteMember"
      decimals="4"
      id="Fact_c2667bede6114d8c84027c5eded78911"
      unitRef="U004">0.0301</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_LongtermDebtTypeAxis_IntercompanyNoteMember"
      id="Fact_e3e21c5fb31e4e6e95923d8b64ee37dd">2023-08-17</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:DebtInstrumentMaturityDate
      contextRef="c20210101to20211231_LongtermDebtTypeAxis_SeniorNotesMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember"
      id="Fact_d4d59e6a8590451889380381412f82b5">2023-08-17</us-gaap:DebtInstrumentMaturityDate>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="c20190801to20190831_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember"
      decimals="0"
      id="Fact_9b91d040a29a4dbd9ce3235854e8d74f"
      unitRef="U002">154821</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:SharePrice
      contextRef="c20190831_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember"
      decimals="3"
      id="Fact_51c2ef4c4d214c238e08ed8bfa333287"
      unitRef="U003">13.195</us-gaap:SharePrice>
    <us-gaap:SharePrice
      contextRef="c20190831_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember"
      decimals="3"
      id="Fact_18586b063ce44e0a9592d34ba6314361"
      unitRef="U003">13.195</us-gaap:SharePrice>
    <us-gaap:RepaymentOfNotesReceivableFromRelatedParties
      contextRef="c20190801to20190831_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="-3"
      id="Fact_03bc5958ae084736a0c51d568322dacc"
      unitRef="U001">1161000</us-gaap:RepaymentOfNotesReceivableFromRelatedParties>
    <us-gaap:RepaymentOfNotesReceivableFromRelatedParties
      contextRef="c20190801to20190831_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember"
      decimals="-3"
      id="Fact_bdffdf8b62f0437da056e43e35d02e53"
      unitRef="U001">882000</us-gaap:RepaymentOfNotesReceivableFromRelatedParties>
    <us-gaap:PaymentsForProceedsFromInvestments
      contextRef="c20190801to20190831_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember"
      decimals="-3"
      id="Fact_edbed7e3d19f48acaab210fc336b2366"
      unitRef="U001">1161000</us-gaap:PaymentsForProceedsFromInvestments>
    <us-gaap:DueToRelatedPartiesCurrentAndNoncurrent
      contextRef="c20190831_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember"
      decimals="-3"
      id="Fact_c2aaacc06d95459cbd9d38dc80005a29"
      unitRef="U001">1820000</us-gaap:DueToRelatedPartiesCurrentAndNoncurrent>
    <acmr:NumberOfAgreements
      contextRef="c20200430_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="INF"
      id="Fact_feeb7d484242464891235015ef09c2c9"
      unitRef="U013">2</acmr:NumberOfAgreements>
    <us-gaap:ReceivablesNetCurrent
      contextRef="c20200430_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_LongtermDebtTypeAxis_SeniorNotesMember"
      decimals="-3"
      id="Fact_d8113c61ce984e8eae85d53bbcde42cc"
      unitRef="U001">1820000</us-gaap:ReceivablesNetCurrent>
    <us-gaap:WarrantsNotSettleableInCashFairValueDisclosure
      contextRef="c20200430_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_LongtermDebtTypeAxis_IntercompanyNoteMember"
      decimals="-3"
      id="Fact_ccc976b001204f9b843f28c424b9849e"
      unitRef="U001">1820000</us-gaap:WarrantsNotSettleableInCashFairValueDisclosure>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="c20200401to20200430_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember"
      decimals="0"
      id="Fact_12eb05eba309414b89460cfc02485d8e"
      unitRef="U002">242681</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="c20200401to20200430_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember"
      decimals="0"
      id="Fact_b5d74d6ee54e43faabf1ee584557f6e5"
      unitRef="U002">242681</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="c20200401to20200430_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember"
      decimals="0"
      id="Fact_74011980875b495b8b6ba463eedc8533"
      unitRef="U002">242681</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:PaymentsForProceedsFromInvestments
      contextRef="c20200401to20200430_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember"
      decimals="-3"
      id="Fact_f73061afff84410a955728b21aea3d5a"
      unitRef="U001">1820000</us-gaap:PaymentsForProceedsFromInvestments>
    <acmr:ConsiderationPriceInFairValue
      contextRef="c20200430_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember"
      decimals="-3"
      id="Fact_7bd9ffcc7f6e4af3b4ab24c3d54b02e9"
      unitRef="U001">9715000</acmr:ConsiderationPriceInFairValue>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="c20200729to20200729_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_28ec1f1f3b79439481c2f765b81cf03c"
      unitRef="U002">242681</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:SharePrice
      contextRef="c20200729_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember_StatementClassOfStockAxis_CommonClassAMember"
      decimals="2"
      id="Fact_c92fa359980b49eeb2792d7457267862"
      unitRef="U003">7.50</us-gaap:SharePrice>
    <us-gaap:FinancialLiabilitiesFairValueDisclosure
      contextRef="c20200729_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember"
      decimals="-3"
      id="Fact_b7ff3f902680451cb191b84a34aa310e"
      unitRef="U001">21679000</us-gaap:FinancialLiabilitiesFairValueDisclosure>
    <acmr:IncreaseDecreaseInFinancialLiabilityCarriedAtFairValue
      contextRef="c20210101to20211231_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember"
      decimals="-3"
      id="Fact_934e9e6ced9844a49fbffcfe84fbe21c"
      unitRef="U001">11964000</acmr:IncreaseDecreaseInFinancialLiabilityCarriedAtFairValue>
    <acmr:IssuanceOfWarrantForSettlementOfFinancialLiability
      contextRef="c20210101to20211231_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember"
      decimals="-3"
      id="Fact_212ec508037241feae92eca6e312756f"
      unitRef="U001">19859000</acmr:IssuanceOfWarrantForSettlementOfFinancialLiability>
    <us-gaap:WarrantsNotSettleableInCashFairValueDisclosure
      contextRef="c20211231_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember"
      decimals="-3"
      id="Fact_b399d93d29cf4eb9ac28b97794b9d75e"
      unitRef="U001">21679000</us-gaap:WarrantsNotSettleableInCashFairValueDisclosure>
    <us-gaap:WarrantsNotSettleableInCashFairValueDisclosure
      contextRef="c20200430_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_LongtermDebtTypeAxis_IntercompanyNoteMember"
      decimals="-3"
      id="Fact_82d354dfd2b148d6bf75544327344648"
      unitRef="U001">1820000</us-gaap:WarrantsNotSettleableInCashFairValueDisclosure>
    <acmr:ScheduleOfShareBasedPaymentAwardWarrantsValuationAssumptionsTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_2e4788eefed8467e83dc059836cf9786">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The SMC 2020 Warrant was initially measured at fair value at the issuance date and classified as equity permanently in accordance with ASC 815. The fair value of the SMC
      2020 Warrant amounted to $21,679, based on the grant date using the Black-Scholes valuation model with the following assumptions:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;July 29,&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Fair value of common share(1)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;89.28&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Expected term in years(2)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3.42&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Volatility(3)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;47.42&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Risk-free interest rate(4)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.15&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Expected dividend(5)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: rgb(0, 0, 0);"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1)&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Fair value of Class A common stock was the closing
              market price of the Class A common stock on July 29, 2020.&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: rgb(0, 0, 0);"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2)&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Expected term of share options is based on the
              average of the vesting period and the contractual term for each grant according to Staff Accounting Bulletin 110.&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: rgb(0, 0, 0);"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(3)&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Volatility is calculated based on the historical
              volatility of the stock of companies comparable to ACM in the period equal to the expected term of each grant.&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: rgb(0, 0, 0);"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(4)&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Risk-free interest rate is based on the yields of
              U.S. Treasury securities with maturities similar to the expected term of the share options in effect at the time of grant.&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: rgb(0, 0, 0);"&gt;


  &lt;tr&gt;

    &lt;td style="width: 27pt; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(5)&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Expected dividend is assumed to be 0%, as ACM has no
              history or expectation of paying a dividend on its common stock.&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</acmr:ScheduleOfShareBasedPaymentAwardWarrantsValuationAssumptionsTableTextBlock>
    <us-gaap:WarrantsNotSettleableInCashFairValueDisclosure
      contextRef="c20211231_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember"
      decimals="-3"
      id="Fact_851b92bf06434eddbfabf4718c5e7148"
      unitRef="U001">21679000</us-gaap:WarrantsNotSettleableInCashFairValueDisclosure>
    <us-gaap:SharePrice
      contextRef="c20200729_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember"
      decimals="2"
      id="Fact_0ca559a9f8ef4d31815c0047d87edf11"
      unitRef="U003">89.28</us-gaap:SharePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="c20200729to20200729_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember"
      id="Fact_bceacd5ae2e64941801ccf604d0c015e">P3Y5M1D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c20200729to20200729_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember"
      decimals="4"
      id="Fact_d746a4783ea849ff9e2ba4c344036905"
      unitRef="U004">0.4742</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c20200729to20200729_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember"
      decimals="4"
      id="Fact_b12835ca7ece470bb4394f5f4adeece0"
      unitRef="U004">0.0015</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c20200729to20200729_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember"
      decimals="2"
      id="Fact_26ba4ab35eaf424a96e71e273888a82e"
      unitRef="U004">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="c20210609to20210609_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember_StatementClassOfStockAxis_CommonClassAMember"
      decimals="-3"
      id="Fact_629a81c433694a328f2918160c9ba046"
      unitRef="U001">1820000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="c20210609to20210609_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_b70a0ddf42bf4840bd153d0037eadee2"
      unitRef="U002">242681</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <acmr:TradingSecuritiesTextBlock
      contextRef="c20210101to20211231"
      id="Text_aa1ca43727a142469de9d2c715b181bd">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 16 &#x2013; TRADING SECURITIES&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Pursuant to a &lt;/span&gt;Partnership Agreement dated June 9, 2020 (the &#x201c;Partnership Agreement&#x201d;) and a
      Supplementary Agreement thereto dated June 15, 2020 (the &#x201c;Supplementary Agreement&#x201d;), ACM Shanghai became a limited partner of Qingdao Fortune-Tech Xinxing Capital Partnership (L.P.), a Chinese limited partnership based in Shanghai, China (the
      &#x201c;Partnership&#x201d;) of which China Fortune-Tech Capital Co., Ltd serves as general partner and thirteen unaffiliated entities serve, with ACM Shanghai, as limited partners. The Partnership was formed to establish a special fund that would purchase, in a
      strategic placement, shares of Semiconductor Manufacturing International Corporation, (&#x201c;SMIC&#x201d;) to be listed on the STAR Market. SMIC is a Shanghai-based foundry that has been a customer of the Company&#x2019;s single-wafer wet-cleaning tools. The limited
      partners of the Partnership contributed to the fund a total of RMB 2.224 billion ($315.0 million), of which ACM Shanghai contributed RMB 100 million
      ($14.2 million), or 4.3% of
      the total contribution, on&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; June 18, 2020.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Upon the &lt;/span&gt;closing of the SMIC offering in July 2020, the initial number of SMIC shares owned by the
      Partnership was apportioned to all of the limited partners in proportion to their respective capital contributions (4.3% in the case of ACM
      Shanghai). All of the SMIC shares acquired by the Partnership are subject, under applicable Chinese laws, to lock-up restrictions that prevent sales of the shares for one year after the shares were acquired. Thereafter an individual limited partner
      will be able to instruct the general partner to sell, on behalf of the limited partner, all or a portion of the limited partner&#x2019;s apportioned shares, subject to compliance with all laws, regulations, trading rules, the Partnership Agreement and the
      Supplementary Agreement. Alternatively, following the lock-up period, limited partners holding at least thirty percent of the total SMIC
      shares held by the Partnership will be able, pursuant to a call auction in accordance with the Supplementary Agreement, to cause the general partner to arrange to sell all of the shares desired to be offered by each of the limited partners that
      complies with procedural requirements provided in&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; the Supplementary Agreement.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;As &lt;/span&gt;SMIC was listed on the STAR Market in July 2020, ACM Shanghai&#x2019;s investment is accounted for as
      trading securities and is stated at fair market value. At December 31, 2020, the fair market value is classified as Level 2 of the hierarchy established under ASC 820 with valuations based on quoted prices for identical securities in active markets,
      less a discount applied to reflect the remaining lock-up period. Following the expiration of the lock-up period in July 2021, the trading securities are stated at fair market value, which is classified as Level 1 of the hierarchy established under
      ASC 820 with valuations based on quoted prices for identical securities in active markets at December 31, 2021.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The components of trading securities were as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Trading securities listed in Shanghai Stock Exchange&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cost&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;15,363&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;15,020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Market value&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;29,498&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;28,239&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;For the year ended December 31, 2021 and 2020, unrealized &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;gain on trading securities, net of exchange
        difference amounted to $&lt;/span&gt;607&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; and $12,574, respectively&lt;/span&gt;.&lt;/div&gt;
</acmr:TradingSecuritiesTextBlock>
    <acmr:CapitalFundOfLimitedPartnership
      contextRef="c20200618_RelatedPartyTransactionsByRelatedPartyAxis_QingdaoFortuneTechXinxingCapitalPartnershipMember"
      decimals="-6"
      id="Fact_5b86681524014fc796a0224cf5de8e37"
      unitRef="U009">2224000000</acmr:CapitalFundOfLimitedPartnership>
    <acmr:CapitalFundOfLimitedPartnership
      contextRef="c20200618_RelatedPartyTransactionsByRelatedPartyAxis_QingdaoFortuneTechXinxingCapitalPartnershipMember"
      decimals="-5"
      id="Fact_3ac243455393487bb85e0048e9715b16"
      unitRef="U001">315000000.0</acmr:CapitalFundOfLimitedPartnership>
    <acmr:InvestmentInPartnership
      contextRef="c20200618_RelatedPartyTransactionsByRelatedPartyAxis_QingdaoFortuneTechXinxingCapitalPartnershipMember"
      decimals="-6"
      id="Fact_f5a1c13c77614eaa9589533bfb2fc25d"
      unitRef="U009">100000000</acmr:InvestmentInPartnership>
    <acmr:InvestmentInPartnership
      contextRef="c20200618_RelatedPartyTransactionsByRelatedPartyAxis_QingdaoFortuneTechXinxingCapitalPartnershipMember"
      decimals="-5"
      id="Fact_e2f2f7848a554a7ba00eeb6e6b4f5b09"
      unitRef="U001">14200000</acmr:InvestmentInPartnership>
    <acmr:OwnershipPercentageInPartnership
      contextRef="c20200618_RelatedPartyTransactionsByRelatedPartyAxis_QingdaoFortuneTechXinxingCapitalPartnershipMember"
      decimals="3"
      id="Fact_224deeefbd4845bda5efeda2a9057c10"
      unitRef="U004">0.043</acmr:OwnershipPercentageInPartnership>
    <acmr:OwnershipPercentageInPartnership
      contextRef="c20200618_RelatedPartyTransactionsByRelatedPartyAxis_QingdaoFortuneTechXinxingCapitalPartnershipMember"
      decimals="3"
      id="Fact_910d2024c1794df2bc6b4069bca22b99"
      unitRef="U004">0.043</acmr:OwnershipPercentageInPartnership>
    <acmr:OwnershipPercentageInPartnership
      contextRef="c20211231_RangeAxis_MinimumMember_RelatedPartyTransactionsByRelatedPartyAxis_SemiconductorManufacturingInternationalCorporationMember"
      decimals="2"
      id="Fact_480bcfec53fe4f54b8e5cc99a15e3f25"
      unitRef="U004">0.30</acmr:OwnershipPercentageInPartnership>
    <us-gaap:TradingSecuritiesAndCertainTradingAssetsTextBlock
      contextRef="c20210101to20211231"
      id="Text_02f7df50ce8f4511b3dca8b632420b6b">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The components of trading securities were as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Trading securities listed in Shanghai Stock Exchange&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cost&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;15,363&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;15,020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Market value&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;29,498&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;28,239&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:TradingSecuritiesAndCertainTradingAssetsTextBlock>
    <us-gaap:TradingSecuritiesDebtAmortizedCost
      contextRef="c20211231"
      decimals="-3"
      id="Fact_96f00b1063e04bca8cda0cd5468ad5c7"
      unitRef="U001">15363000</us-gaap:TradingSecuritiesDebtAmortizedCost>
    <us-gaap:TradingSecuritiesDebtAmortizedCost
      contextRef="c20201231"
      decimals="-3"
      id="Fact_2871aa2748ab43f2b285a623fa26a048"
      unitRef="U001">15020000</us-gaap:TradingSecuritiesDebtAmortizedCost>
    <acmr:DebtSecuritiesTradingSecuritiesEquity
      contextRef="c20211231"
      decimals="-3"
      id="Fact_a02cc98e531145f1a58fe721af5ed1c4"
      unitRef="U001">29498000</acmr:DebtSecuritiesTradingSecuritiesEquity>
    <acmr:DebtSecuritiesTradingSecuritiesEquity
      contextRef="c20201231"
      decimals="-3"
      id="Fact_d5c53336129545909d4bf972cd4951a2"
      unitRef="U001">28239000</acmr:DebtSecuritiesTradingSecuritiesEquity>
    <us-gaap:DebtSecuritiesTradingUnrealizedGain
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_b4fbbe514e0f4c4e90113f7f5f12abec"
      unitRef="U001">607000</us-gaap:DebtSecuritiesTradingUnrealizedGain>
    <us-gaap:DebtSecuritiesTradingUnrealizedGain
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_265ff060c39d4180bcdc50838aa0b5bf"
      unitRef="U001">12574000</us-gaap:DebtSecuritiesTradingUnrealizedGain>
    <us-gaap:RelatedPartyTransactionsDisclosureTextBlock
      contextRef="c20210101to20211231"
      id="Text_8276b3e18912472394969005a23ba83c">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 17 &#x2013; RELATED PARTY BALANCES AND TRANSACTIONS&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" rowspan="1" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0); text-align: center; white-space: nowrap;"&gt;&lt;span style="font-weight: bold;"&gt;December 31,&lt;/span&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Prepaid expenses&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&#160;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&#160;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Ninebell&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,383&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,607&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div&gt;
      &lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" rowspan="1" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0); text-align: center; white-space: nowrap;"&gt;&lt;span style="font-weight: bold;"&gt;December 31,&lt;/span&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Accounts payable&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&#160;2021&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0); font-weight: bold; text-align: center;"&gt;2020&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Ninebell&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,703&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,898&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Shengyi&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,196&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,195&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,899&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,093&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
    &lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div&gt;
      &lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); margin-left: 0px; margin-right: auto; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Purchase of materials&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2019&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Ninebell&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;33,659&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;15,251&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,572&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Shengyi&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,434&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,300&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;856&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;36,093&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;17,551&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,428&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
    &lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div&gt;
      &lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); margin-left: 0px; margin-right: auto; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Service fee charged by&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2019&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Shengyi&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;561&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;322&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Ninebell&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;22&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;561&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;$ &lt;br/&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;344&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
      &lt;/div&gt;
</us-gaap:RelatedPartyTransactionsDisclosureTextBlock>
    <us-gaap:ScheduleOfRelatedPartyTransactionsTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_5022d929c05a4791afcf9a0ffcb0f250">
&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" rowspan="1" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0); text-align: center; white-space: nowrap;"&gt;&lt;span style="font-weight: bold;"&gt;December 31,&lt;/span&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Prepaid expenses&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&#160;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&#160;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Ninebell&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,383&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,607&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div&gt;
      &lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" rowspan="1" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0); text-align: center; white-space: nowrap;"&gt;&lt;span style="font-weight: bold;"&gt;December 31,&lt;/span&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Accounts payable&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&#160;2021&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0); font-weight: bold; text-align: center;"&gt;2020&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Ninebell&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,703&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,898&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Shengyi&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,196&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,195&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,899&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,093&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
    &lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div&gt;
      &lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); margin-left: 0px; margin-right: auto; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Purchase of materials&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2019&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Ninebell&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;33,659&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;15,251&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,572&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Shengyi&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,434&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,300&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;856&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;36,093&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;17,551&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,428&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
    &lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div&gt;
      &lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); margin-left: 0px; margin-right: auto; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: top; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Service fee charged by&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2019&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Shengyi&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;561&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;322&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Ninebell&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;22&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: top; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;561&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;$ &lt;br/&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;344&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
      &lt;/div&gt;
</us-gaap:ScheduleOfRelatedPartyTransactionsTableTextBlock>
    <acmr:RelatedPartyTransactionPrepaidExpenseFromRelatedParty
      contextRef="c20211231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember"
      decimals="-3"
      id="Fact_f721d8b8a7be4da5a909c4a405b81414"
      unitRef="U001">2383000</acmr:RelatedPartyTransactionPrepaidExpenseFromRelatedParty>
    <acmr:RelatedPartyTransactionPrepaidExpenseFromRelatedParty
      contextRef="c20201231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember"
      decimals="-3"
      id="Fact_002e804a5e5e411eaa30d92c5e60f7bf"
      unitRef="U001">1607000</acmr:RelatedPartyTransactionPrepaidExpenseFromRelatedParty>
    <us-gaap:AccountsPayableRelatedPartiesCurrent
      contextRef="c20211231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember"
      decimals="-3"
      id="Fact_eaf94d6f42804af2a41d5176af872e07"
      unitRef="U001">5703000</us-gaap:AccountsPayableRelatedPartiesCurrent>
    <us-gaap:AccountsPayableRelatedPartiesCurrent
      contextRef="c20201231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember"
      decimals="-3"
      id="Fact_47c08e573bbe42f1aee554a8ffb56d58"
      unitRef="U001">2898000</us-gaap:AccountsPayableRelatedPartiesCurrent>
    <us-gaap:AccountsPayableRelatedPartiesCurrent
      contextRef="c20211231_RelatedPartyTransactionsByRelatedPartyAxis_ShanghaiZhangjiangGroupCoLtdMember"
      decimals="-3"
      id="Fact_3772d3ea59004b4f9d90680c303fba7a"
      unitRef="U001">2196000</us-gaap:AccountsPayableRelatedPartiesCurrent>
    <us-gaap:AccountsPayableRelatedPartiesCurrent
      contextRef="c20201231_RelatedPartyTransactionsByRelatedPartyAxis_ShanghaiZhangjiangGroupCoLtdMember"
      decimals="-3"
      id="Fact_222ae3e70f59491693949f6c5cfd0771"
      unitRef="U001">1195000</us-gaap:AccountsPayableRelatedPartiesCurrent>
    <us-gaap:AccountsPayableRelatedPartiesCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_3a8b61c3dc6a4f0997006397aaff7683"
      unitRef="U001">7899000</us-gaap:AccountsPayableRelatedPartiesCurrent>
    <us-gaap:AccountsPayableRelatedPartiesCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_ab06be07c00545e4a485bf3f87330f87"
      unitRef="U001">4093000</us-gaap:AccountsPayableRelatedPartiesCurrent>
    <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty
      contextRef="c20210101to20211231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember"
      decimals="-3"
      id="Fact_d7406976386e47f8be541003f5f68e57"
      unitRef="U001">33659000</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
    <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty
      contextRef="c20200101to20201231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember"
      decimals="-3"
      id="Fact_f11c91cc9cc6458e8d1bdd80fd239d32"
      unitRef="U001">15251000</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
    <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty
      contextRef="c20190101to20191231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember"
      decimals="-3"
      id="Fact_e0c5d1a39bc348bba4dfe9e70ab49e5a"
      unitRef="U001">8572000</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
    <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty
      contextRef="c20210101to20211231_RelatedPartyTransactionsByRelatedPartyAxis_ShanghaiZhangjiangGroupCoLtdMember"
      decimals="-3"
      id="Fact_781d47a7d12f4cc88fb0418eacb20ba1"
      unitRef="U001">2434000</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
    <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty
      contextRef="c20200101to20201231_RelatedPartyTransactionsByRelatedPartyAxis_ShanghaiZhangjiangGroupCoLtdMember"
      decimals="-3"
      id="Fact_6929a378a8a14c3b9fe2c2c4e4fb4142"
      unitRef="U001">2300000</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
    <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty
      contextRef="c20190101to20191231_RelatedPartyTransactionsByRelatedPartyAxis_ShanghaiZhangjiangGroupCoLtdMember"
      decimals="-3"
      id="Fact_541cc99c797e49ac8998d082e0ff06e4"
      unitRef="U001">856000</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
    <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_538e445e08e94d1fb16234b3d6f45170"
      unitRef="U001">36093000</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
    <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_862ab9cab8ac4a96896e9c66d0bb880d"
      unitRef="U001">17551000</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
    <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_34cfe7e7e923452199029e40500dbd48"
      unitRef="U001">9428000</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
    <us-gaap:RelatedPartyCosts
      contextRef="c20210101to20211231_RelatedPartyTransactionsByRelatedPartyAxis_ShanghaiZhangjiangGroupCoLtdMember"
      decimals="-3"
      id="Fact_168fc8b63de24fd7a5fb1d0f679a6c13"
      unitRef="U001">561000</us-gaap:RelatedPartyCosts>
    <us-gaap:RelatedPartyCosts
      contextRef="c20200101to20201231_RelatedPartyTransactionsByRelatedPartyAxis_ShanghaiZhangjiangGroupCoLtdMember"
      decimals="-3"
      id="Fact_55748203fdde470782dfad4deecf247d"
      unitRef="U001">322000</us-gaap:RelatedPartyCosts>
    <us-gaap:RelatedPartyCosts
      contextRef="c20190101to20191231_RelatedPartyTransactionsByRelatedPartyAxis_ShanghaiZhangjiangGroupCoLtdMember"
      decimals="-3"
      id="Fact_efb5a1ea612340e1b196765df077b4e8"
      unitRef="U001">0</us-gaap:RelatedPartyCosts>
    <us-gaap:RelatedPartyCosts
      contextRef="c20210101to20211231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember"
      decimals="-3"
      id="Fact_cfeb648028ef4f4a9def7b07a5709eb1"
      unitRef="U001">0</us-gaap:RelatedPartyCosts>
    <us-gaap:RelatedPartyCosts
      contextRef="c20200101to20201231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember"
      decimals="-3"
      id="Fact_fed3f9038ab74575a123b78cc333c50a"
      unitRef="U001">22000</us-gaap:RelatedPartyCosts>
    <us-gaap:RelatedPartyCosts
      contextRef="c20190101to20191231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember"
      decimals="-3"
      id="Fact_969f4f697f064cd69b3498aeedbcc3fe"
      unitRef="U001">0</us-gaap:RelatedPartyCosts>
    <us-gaap:RelatedPartyCosts
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_8841346bf3bb493288109e7333d7b4d0"
      unitRef="U001">561000</us-gaap:RelatedPartyCosts>
    <us-gaap:RelatedPartyCosts
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_6c7b17314ed74e4195064a052550a078"
      unitRef="U001">344000</us-gaap:RelatedPartyCosts>
    <us-gaap:RelatedPartyCosts
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_e30bcee83b4f4c1da7c18ed43c9cbe37"
      unitRef="U001">0</us-gaap:RelatedPartyCosts>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock
      contextRef="c20210101to20211231"
      id="Text_f5c8c25d507d48bba100cf46f5c4aa06">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 18 &#x2013; COMMON STOCK&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; text-align: justify; font-family: 'Times New Roman';"&gt;At December 31, 2020, ACM was authorized to issue 50,000,000 shares of Class A common stock and 2,409,738 shares
        of Class B common stock, each with a par value of $0.0001. On July 13, 2021, the Company filed a certificate of amendment to its
        restated certificate of incorporation with the Secretary of State of the State of Delaware. The amendment i) increased the authorized number of shares of Class A common stock from 50,000,000 to 150,000,000 with 60,000,000 of the 100,000,000 additional
        authorized shares of Class A common stock reserved for issuance only as dividends on outstanding shares of Class A common stock; ii) increased the authorized number of shares of Class B common stock from 2,409,738 to 5,307,816, with all of the authorized but unissued
        shares of Class B common stock being available for issuance only as dividends on outstanding shares of Class B common stock; and iii) removed a now obsolete provision related to the automatic conversion of Class B common stock into Class A common
        stock.&#160; The amendment to ACM&#x2019;s certificate of incorporation that increased the number of authorized Class A common stock and Class B common stock was approved by ACM&#x2019;s stockholders on June 2, 2021.&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; text-align: justify; font-family: 'Times New Roman';"&gt;At December 31, 2021, ACM was authorized to issue 150,000,000 shares of Class A common stock and 5,307,816
        shares of Class B common stock, each with a par value of $0.0001. Each share of Class A common stock is entitled to one vote, and each share of Class B common stock is entitled to twenty votes and is convertible at any time into one share of Class A common stock. Shares of Class A
        common stock and Class B common stock are treated equally, identically and ratably with respect to any dividends declared by the Board of Directors unless the Board of Directors declares different dividends to the Class A common stock and Class B
        common stock by getting approval from a majority of common stockholders.&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;On March 30, 2018, SMC exercised the SMC Warrant in full (note 15) to purchase 397,502 shares of Class A common stock. &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;During the year ended &lt;/span&gt;December 31, 2020&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;,
        SMC transferred and cancelled its ownership of &lt;/span&gt;242,681&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; shares of
        Class A common stock to ACM in exchange for the SMC &lt;/span&gt;2020&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; Warrant (note &lt;/span&gt;15&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;).&lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;During














        the year ended December 31, 2021, the Company issued 623,601 shares of Class A common stock upon options exercises by certain employees
        and non-employees and an additional 106,668 shares of Class A common stock upon conversion of an equal number of shares of Class B
        common stock. During the year ended December 31, 2020, ACM issued 832,504 shares of Class A common stock upon option exercises by
        employees and non-employees and an additional 60,002 shares of Class A common stock upon conversion of an equal number of shares of
        Class B common stock. During the year ended December 31, 2019, ACM issued 195,297 shares of Class A common stock upon option exercises
        by employees and non-employees and an additional 35,815 shares of Class A common stock upon conversion of an equal number of shares of
        Class B common stock.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;span style="font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; text-align: justify; text-indent: 0px; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;During the year ended December 31, 2021, ACM issued 242,681
          shares of Class A common stock upon the warrant exercise SMC (Note 15). &lt;/span&gt;During the year ended December 31, 2020, ACM issued 64,717
        shares of Class A common stock upon cashless warrant exercises by non-employees.&#160; During the year ended December 31, 2019, ACM issued 1,438
        shares of Class A common stock upon cashless warrant exercises by non-employees.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In August 2019, ACM sold a total of 2,053,572 shares of
      Class A common stock to the public at a price of $14.00 per share for aggregate gross proceeds of $28,750. Net proceeds to ACM excluded an underwriting discount and offering expenses totaling $2,287. ACM repurchased outstanding shares from certain directors, employees and SMC upon the exercise of the underwriters&#x2019; over-allotment option using a portion of ACM&#x2019;s net proceeds from the public offering for the
      purpose of share constructive retirement. A total of 214,286 repurchased shares were accounted for share retirement during the year ended
      December 31, 2019.&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;At &lt;/span&gt;December 31, 2021&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; and &lt;/span&gt;2020&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;, the number of shares of Class A common stock issued and outstanding was&lt;/span&gt;&#160;17,869,643
      and 16,896,693, respectively. &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;At &lt;/span&gt;December 31, 2021&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; and &lt;/span&gt;2020&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;, the number of shares of Class B common stock issued and outstanding was&lt;/span&gt;&#160;1,695,938 and 1,802,606,
      respectively.&lt;/div&gt;
</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_4f97f4354f4947afb43bbe31bc42a538"
      unitRef="U002">50000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="0"
      id="Fact_32e920d4787842e79d8c13f9a6d41a7d"
      unitRef="U002">2409738</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="4"
      id="Fact_d78595d46d624ea9b762c2a59ae178ba"
      unitRef="U003">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="4"
      id="Fact_42f3aca0faeb45e895dd6753777dcf76"
      unitRef="U003">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_525f79c027b94441baba06c005c69608"
      unitRef="U002">50000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_4147370c0eff46fb93923c274c407580"
      unitRef="U002">150000000</us-gaap:CommonStockSharesAuthorized>
    <acmr:AdditionalSharesReservedForIssuanceAsDividends
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_ea521fcc966d4381a29f4860bbcf2b21"
      unitRef="U002">60000000</acmr:AdditionalSharesReservedForIssuanceAsDividends>
    <acmr:CommonStockAdditionalSharesAuthorized
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_026544417b964657ae8cf4f456ae0043"
      unitRef="U002">100000000</acmr:CommonStockAdditionalSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="0"
      id="Fact_e7798e173c0c4066846a00b55b724892"
      unitRef="U002">2409738</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="0"
      id="Fact_b8810100f4504c01afc95c91d983c3e1"
      unitRef="U002">5307816</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_87ea108c2bc245208a0268a6ce7b7443"
      unitRef="U002">150000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="0"
      id="Fact_75d29a61a3a8430ea7aa919687219b73"
      unitRef="U002">5307816</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="4"
      id="Fact_c5e8aaef3e224aebbb70afa814bb6cca"
      unitRef="U003">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="4"
      id="Fact_5853b61cb0084520939258928bc54d93"
      unitRef="U003">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <acmr:VotingRightsPerShare
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="INF"
      id="Fact_114de3d171cd435b8fbbe30effe72085"
      unitRef="U002">1</acmr:VotingRightsPerShare>
    <acmr:VotingRightsPerShare
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="INF"
      id="Fact_61059797d2dd4f7b839881d042a2e601"
      unitRef="U002">20</acmr:VotingRightsPerShare>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="INF"
      id="Fact_f63da5a7a8114e04aa87033b4aa15f70"
      unitRef="U002">1</us-gaap:ConversionOfStockSharesConverted1>
    <acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised
      contextRef="c20180330to20180330_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_10d3c10d6d0748d8bf5914bcd134f03f"
      unitRef="U002">397502</acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="c20200101to20201231_ClassOfWarrantOrRightAxis_ShengxinShanghaiManagementConsultingLimitedPartnership2020WarrantsMember_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_a7545804b3e54fd9825da8e8dc1534e1"
      unitRef="U002">242681</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_6c964248d77c4d6681bfd98b65f6d011"
      unitRef="U002">623601</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_a292019a6f064e52925f25ed4ba136c6"
      unitRef="U002">106668</us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_7f987a90318b415b980b2e0f76188f4f"
      unitRef="U002">832504</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_dff13ebd1a9f47819d67e316ec955d38"
      unitRef="U002">60002</us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_6b6ddd919ae54cbca2d6625e9c10184c"
      unitRef="U002">195297</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_39a687b7cffb416d9e8d603651f0a541"
      unitRef="U002">35815</us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits>
    <acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised
      contextRef="c20210101to20211231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_3dbb0a4cfe8849c7b6b1e3f37be2297c"
      unitRef="U002">242681</acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised
      contextRef="c20200101to20201231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_a1e71970cfd7451ba09b22565e751593"
      unitRef="U002">64717</acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised>
    <acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_a4642417c98e4afebc840dbd3d6f70cc"
      unitRef="U002">1438</acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="c20190801to20190831_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_b7173eab328543e8be9e6c160dd7fe21"
      unitRef="U002">2053572</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:SharePrice
      contextRef="c20190831_StatementClassOfStockAxis_CommonClassAMember"
      decimals="2"
      id="Fact_f00284d31f6346f6b1718097ec683bfc"
      unitRef="U003">14.00</us-gaap:SharePrice>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="c20190801to20190831_StatementClassOfStockAxis_CommonClassAMember"
      decimals="-3"
      id="Fact_98e4e0dba1404ae3a95a3e6320085b9c"
      unitRef="U001">28750000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <acmr:UnderwritingDiscountAndOfferingExpenses
      contextRef="c20190801to20190831_StatementClassOfStockAxis_CommonClassAMember"
      decimals="-3"
      id="Fact_ae31c5d926814c8db69582f0e303111a"
      unitRef="U001">2287000</acmr:UnderwritingDiscountAndOfferingExpenses>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="c20190101to20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_a1dc5d48fd604db3ba10a0e0e7665980"
      unitRef="U002">214286</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:CommonStockSharesIssued
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_fe8d92a867fb4c1a97cad455f30cce1a"
      unitRef="U002">17869643</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_dae96ce4d347486d85ddbfb6f0220a88"
      unitRef="U002">17869643</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_705031e125b64fae9ab459484b589920"
      unitRef="U002">16896693</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassAMember"
      decimals="0"
      id="Fact_68fce4cc3b124b88be8ab2631e6c45df"
      unitRef="U002">16896693</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="0"
      id="Fact_378dabc6eb3b4e65a18642e20d5c302e"
      unitRef="U002">1695938</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="c20211231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="0"
      id="Fact_0ec23bf84f934fc7b63c196b2064d288"
      unitRef="U002">1695938</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="0"
      id="Fact_da87fc5385a4463ba13474ee6908d043"
      unitRef="U002">1802606</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="c20201231_StatementClassOfStockAxis_CommonClassBMember"
      decimals="0"
      id="Fact_19be44af2a754861b70d30972aaff00a"
      unitRef="U002">1802606</us-gaap:CommonStockSharesOutstanding>
    <acmr:RedeemableNonControllingInterestsTextBlock
      contextRef="c20210101to20211231"
      id="Text_c5bd9c379d494efa9b219e3edc710c7d">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 19 &#x2013; REDEEMABLE NON-CONTROLLING INTERESTS&lt;/div&gt;

&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;The Company recorded
      initial carrying amount of redeemable non-controlling interests at fair value on the date of issuance, and presented in temporary equity on the consolidated balance sheets initially.&lt;/div&gt;

&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&#160;&lt;/div&gt;

&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;As the non-controlling
      interests would be redeemable at a fixed purchase price, it is classified as common-share non-controlling interests redeemable at other than fair value. The Company applied the entire adjustment method (income classification) for subsequent
      measurement in accordance with Financial Accounting Standards Board (the &#x201c;FASB&#x201d;) Accounting Standards Classification (&#x201c;ASC&#x201d;) ASC 480-10-S99.&lt;/div&gt;

&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;During the second quarter
      of 2020, the redemption feature of the private placement funding terminated and the aggregate proceeds of the funding therefore were reclassified from redeemable non-controlling interests to non-controlling interests. At September 30, 2020, the
      balance of redeemable non-controlling interest was &lt;span style="-sec-ix-hidden:Fact_6b9292f9521044dfb4d484d7d7e2a991"&gt;nil&lt;/span&gt;.&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;The components of the
      change in the redeemable non-controlling interests for the year ended December 31, 2020 are presented in the following table: &lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Balance at December 31, 2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;60,162&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net income attributable to redeemable non-controlling interests&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;643&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Effect of foreign currency translation gain attributable to redeemable non-controlling interests&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(847&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 88%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Reclassification of redeemable non-controlling interest&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(59,958&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Balance at December 31, &lt;span style="text-indent: 0pt;"&gt;2020&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</acmr:RedeemableNonControllingInterestsTextBlock>
    <us-gaap:RedeemableNoncontrollingInterestTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_c27c086cf71f493081adb201a111fddd">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;The components of the
      change in the redeemable non-controlling interests for the year ended December 31, 2020 are presented in the following table: &lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Balance at December 31, 2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;60,162&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net income attributable to redeemable non-controlling interests&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;643&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Effect of foreign currency translation gain attributable to redeemable non-controlling interests&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(847&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 88%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Reclassification of redeemable non-controlling interest&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(59,958&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Balance at December 31, &lt;span style="text-indent: 0pt;"&gt;2020&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:RedeemableNoncontrollingInterestTableTextBlock>
    <us-gaap:RedeemableNoncontrollingInterestEquityCarryingAmount
      contextRef="c20191231"
      decimals="-3"
      id="Fact_53ad427b05d046c08b23abef8cd0dfc3"
      unitRef="U001">60162000</us-gaap:RedeemableNoncontrollingInterestEquityCarryingAmount>
    <us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_fe1ddcba81814930802f6f88bcf562e8"
      unitRef="U001">643000</us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationAdjustmentTaxPortionAttributableToNoncontrollingInterest
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_2e3d994a77d9437cb9dfe0711dd2139e"
      unitRef="U001">-847000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationAdjustmentTaxPortionAttributableToNoncontrollingInterest>
    <acmr:ReclassificationOfRedeemableNonControllingInterest
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_5c7dc597ba7e4062ad5c63b4a2809649"
      unitRef="U001">59958000</acmr:ReclassificationOfRedeemableNonControllingInterest>
    <us-gaap:RedeemableNoncontrollingInterestEquityCarryingAmount
      contextRef="c20201231"
      decimals="-3"
      id="Fact_9868f274a130411982d219fde688b5a5"
      unitRef="U001">0</us-gaap:RedeemableNoncontrollingInterestEquityCarryingAmount>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="c20210101to20211231"
      id="Text_c30b7417aa204180838ae91d15863f27">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 20 &#x2013; STOCK-BASED COMPENSATION&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;In January 2020 ACM
      Shanghai adopted a 2019 Stock Option Incentive Plan (the &#x201c;Subsidiary Stock Option Plan&#x201d;) that provides for, among other incentives, the granting to officers, directors, employees of options to purchase shares of ACM Shanghai&#x2019;s common stock. The fair
      value of the stock options granted is estimated at the date of grant based on the Black-Scholes option pricing model using assumptions generally consistent with those used for ACM&#x2019;s stock options. Because ACM Shanghai shares did not begin trading
      until November 2021, the expected volatility is estimated with reference to the average historical volatility of a group of publicly traded companies that are believed to have similar characteristics to ACM Shanghai.&lt;/div&gt;

&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&#160;&lt;/div&gt;

&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;ACM&#x2019;s stock-based
      compensation consists of employee and non-employee awards issued under the 1998 Stock Option Plan and the 2016 Omnibus Incentive Plan and as standalone options. ACM granted stock options to employees under the 2016 Omnibus Incentive Plan during the
      years ended December 31, 2021, 2020 and 2019. The vesting condition may consist of service period determined by the Board of Directors for a grant, or certain performance conditions determined by the Board of Directors for a grant. The fair value of
      the stock options granted with service period based condition is estimated at the date of grant using the Black-Scholes option pricing model. The fair value of the stock options granted with market based condition is estimated at the date of grant
      using the Monte Carlo simulation model.&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following table summarizes the components of stock-based compensation expense included in the consolidated statements of operations:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Stock-Based Compensation Expense:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cost of revenue&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;397&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;175&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;250&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Sales and marketing expense&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,802&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,199&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;328&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Research and development expense&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,115&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;763&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,093&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;General and administrative expense&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,803&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,491&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,901&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,117&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,628&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,572&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Stock-based compensation expense by type:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Employee stock purchase plan&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,674&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,900&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,265&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Non-employee stock purchase plan&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;94&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;396&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,307&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Subsidiary option grants&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;349&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;332&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,117&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,628&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,572&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: normal; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;The fair value of options granted to employees with a service
        period based condition is estimated on the grant date using the Black-Scholes valuation model with the following assumptions:&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-weight: bold;"&gt;
                &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-weight: bold;"&gt;
                &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-weight: bold;"&gt;
                &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Fair value of common share(1)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;38.38-51.07&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;22.07-85.27&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman';"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman';"&gt;13.64-16.81&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Expected term in years(2)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;6.25&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;5.50-6.25&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;6.25&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Volatility(3)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;48.53-49.47&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;42.17%-48.15&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman';"&gt;39.91%-40.35&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Risk-free interest rate(4)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;1.00%-1.44&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;0.44%-0.82&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman';"&gt;1.69%-2.46&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Expected dividend(5)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;0&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;0&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman';"&gt;0&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&#160;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 27pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; vertical-align: top;"&gt;(1)&lt;/td&gt;

    &lt;td style="width: auto; text-align: justify; vertical-align: top;"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Fair value of Class A common stock value was the closing
                market price of the Class A common stock on the grant date.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 27pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; vertical-align: top;"&gt;(2)&lt;/td&gt;

    &lt;td style="width: auto; text-align: justify; vertical-align: top;"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Expected term of share options is based on the average of
                the vesting period and the contractual term for each grant according to Staff Accounting Bulletin 110.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 27pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; vertical-align: top;"&gt;(3)&lt;/td&gt;

    &lt;td style="width: auto; text-align: justify; vertical-align: top;"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Volatility is calculated based on the historical volatility
                of the stock of companies comparable to ACM in the period equal to the expected term of each grant.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 27pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; vertical-align: top;"&gt;(4)&lt;/td&gt;

    &lt;td style="width: auto; text-align: justify; vertical-align: top;"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Risk-free interest rate is based on the yields of U.S.
                Treasury securities with maturities similar to the expected term of the share options in effect at the time of grant.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 27pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; vertical-align: top;"&gt;(5)&lt;/td&gt;

    &lt;td style="width: auto; text-align: justify; vertical-align: top;"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Expected dividend is assumed to be 0% as ACM has no history or expectation of paying a dividend on its common stock.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&#160;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman';"&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-weight: normal; font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;During the year ended December 31, 2021, no option was granted to employee with market based condition.&#160;&lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal;"&gt;During















          the year ended December 31, 2020, the fair value of option granted to an employee with market based condition was estimated on the grant date using the Monte Carlo simulation model with the following assumptions:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&#160;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: bold;"&gt;Year Ended&lt;/div&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: bold;"&gt;December 31,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: bold;"&gt;2020&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; font-family: 'Times New Roman'; margin-left: 7.2pt;"&gt;Fair value of common share(1)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;22.07&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 88%;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; font-family: 'Times New Roman'; margin-left: 7.2pt;"&gt;Expected term in years(2)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;9.20 - 9.80&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; font-family: 'Times New Roman'; margin-left: 7.2pt;"&gt;Volatility(3)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;45.10&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 88%;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; font-family: 'Times New Roman'; margin-left: 7.2pt;"&gt;Risk-free interest rate(4)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;2.68&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; font-family: 'Times New Roman'; margin-left: 7.2pt;"&gt;Expected dividend(5)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;0&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&#160;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 27pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; vertical-align: top;"&gt;(1)&lt;/td&gt;

    &lt;td style="width: auto; text-align: justify; vertical-align: top;"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Fair value of Class A common stock value was the closing
                market price of the Class A common stock on the grant date.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 27pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; vertical-align: top;"&gt;(2)&lt;/td&gt;

    &lt;td style="width: auto; text-align: justify; vertical-align: top;"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Expected term of share options is based on the average of
                the vesting period and the contractual term for each grant according to Staff Accounting Bulletin 110.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 27pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; vertical-align: top;"&gt;(3)&lt;/td&gt;

    &lt;td style="width: auto; text-align: justify; vertical-align: top;"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Volatility is calculated based on the historical volatility
                of the stock of companies comparable to ACM in the period equal to the expected term of each grant.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 27pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; vertical-align: top;"&gt;(4)&lt;/td&gt;

    &lt;td style="width: auto; text-align: justify; vertical-align: top;"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Risk-free interest rate is based on the yields of U.S.
                Treasury securities with maturities similar to the expected term of the share options in effect at the time of grant.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 27pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; vertical-align: top;"&gt;(5)&lt;/td&gt;

    &lt;td style="width: auto; text-align: justify; vertical-align: top;"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Expected dividend is assumed to be 0%, as ACM has no history or expectation of paying a dividend on its common stock.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic; font-weight: bold;"&gt;Employee Awards&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following table summarizes the Company&#x2019;s employee share option activities during the years ended December&#160;31, 2019, 2020 and 2021:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px; width: 32%;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Number of&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Option Share&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Weighted&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Average Grant&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Date Fair Value&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Weighted&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Average&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Exercise&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Price&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); width: 17%;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Weighted Average&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Remaining&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Contractual Term&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Outstanding at December 31, 2018&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2,503,405&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;0.91&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;4.09&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: middle; width: 17%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;7.30 years&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Granted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;656,000&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.29&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;16.21&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Exercised&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(106,768&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.60&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2.09&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: middle; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Expired&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2,757&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3.34&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;8.16&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Forfeited/cancelled&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(55,817&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2.38&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.23&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: middle; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Outstanding at December 31, &lt;span style="text-indent: 0pt;"&gt;2019&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2,994,063&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2.59&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;6.77&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;7.05 years&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Granted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;786,399&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;12.17&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;29.17&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: middle; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Exercised&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(547,189&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.34&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3.78&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Forfeited/cancelled&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(41,862&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4.80&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;12.65&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Outstanding at December 31, &lt;span style="text-indent: 0pt;"&gt;2020&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;3,191,411&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;5.13&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;12.73&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: middle; width: 17%;" valign="bottom"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;7.13 years&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Granted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;140,400&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;48.16&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;106.15&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Exercised&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(477,058&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2.46&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.30&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Forfeited/cancelled&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(54,004&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;24.97&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;57.10&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Outstanding at December 31, &lt;span style="text-indent: 0pt;"&gt;2021&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2,800,749&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;7.36&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;17.65&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;6.53 years&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Vested and exercisable at December 31, &lt;span style="text-indent: 0pt;"&gt;2021&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,922,180&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&#160;&#160;&#160;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;As of December 31, 2021 and 2020, $9,544 and $8,733, respectively, of total unrecognized employee stock-based compensation expense, net of estimated forfeitures, related to stock-based awards for ACM
      were expected to be recognized over a weighted-average period of 1.61 years and 1.89 years, respectively. Total recognized compensation cost may be adjusted for future changes in estimated forfeitures.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic; font-weight: bold;"&gt;Non-employee Awards&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following table summarizes the Company&#x2019;s non-employee share option activities during the years ended December 31, 2019, 2020 and 2021:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px; width: 32%;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Number of&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Option Shares&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Weighted&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Average Grant&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Date Fair Value&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Weighted&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Average&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Exercise&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Price&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); width: 17%;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Weighted Average&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Remaining&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Contractual Term&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Outstanding at December 31, 2018&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;1,212,374&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;0.78&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255); font-weight: bold;" valign="bottom"&gt;2.57&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;6.66 years&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Granted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Exercised&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(88,529&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.45&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.06&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Expired&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Forfeited/cancelled&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(22,232&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.55&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Outstanding at December 31, &lt;span style="text-indent: 0pt;"&gt;2019&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;1,101,613&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;0.82&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2.69&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;5.85 years&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Granted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;20,000&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;10.29&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;25.60&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Exercised&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(285,315&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.88&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3.17&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Expired&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&#160;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Forfeited/cancelled&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(260&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.30&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.75&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Outstanding at December 31, &lt;span style="text-indent: 0pt;"&gt;2020&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;836,038&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;1.02&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;3.07&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;4.92 years&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Granted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Exercised&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(146,543&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.12&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3.83&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Expired&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Forfeited/cancelled&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(489&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.34&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.84&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Outstanding at December 31, &lt;span style="text-indent: 0pt;"&gt;2021&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;689,006&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;1.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2.91&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;3.98 years&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Vested and exercisable at December 31, &lt;span style="text-indent: 0pt;"&gt;2021&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;677,756&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&#160;&#160;&#160;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;As of December 31, 2021 and 2020, $102 and $195, respectively, of total unrecognized non-employee stock-based compensation expense, net of estimated forfeitures, related to stock-based awards were
      expected to be recognized over a weighted-average period of 0.06 years and 0.09 years, respectively. Total recognized compensation cost may be adjusted for future changes in estimated forfeitures.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic; font-weight: bold;"&gt;ACM Shanghai Option Grants&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following table summarizes the ACM Shanghai employee stock option activities during the years ended December 31, 2021 and 2020:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px; width: 32%;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Number of&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Option Shares in&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;ACM Shanghai&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Weighted&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Average Grant&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Date Fair Value&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Weighted&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Average&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Exercise&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Price&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); width: 17%;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Weighted Average&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Remaining&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Contractual Term&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Outstanding at December 31, &lt;span style="text-indent: 0pt;"&gt;2019&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 17%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&lt;span style="-sec-ix-hidden:Fact_fd14ad3532a2488cbff6bc64ed738e9c"&gt;-&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Granted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,869,808&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.23&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.89&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 17%;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Exercised&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Expired&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 17%;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Forfeited/cancelled&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(446,154&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.23&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.89&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Outstanding at December 31, &lt;span style="text-indent: 0pt;"&gt;2020&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;5,423,654&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;0.23&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;1.89&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;3.50 years&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 32%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;Granted&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 17%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;Exercised&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 17%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 32%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;Expired&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 17%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;Forfeited/cancelled&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;(46,154&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;0.24&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;2.04&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 17%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; font-weight: bold; background-color: rgb(204, 238, 255); width: 32%;" valign="bottom"&gt;Outstanding at December 31, 2021&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255); width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; text-align: left; vertical-align: bottom; background-color: rgb(204, 238, 255); width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; vertical-align: bottom; text-align: right; background-color: rgb(204, 238, 255); width: 14%;" valign="bottom"&gt;5,377,500&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; text-align: left; vertical-align: bottom; background-color: rgb(204, 238, 255); width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255); width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; text-align: left; vertical-align: bottom; background-color: rgb(204, 238, 255); width: 1%;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; vertical-align: bottom; text-align: right; background-color: rgb(204, 238, 255); width: 14%;" valign="bottom"&gt;0.24&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; text-align: left; vertical-align: bottom; background-color: rgb(204, 238, 255); width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255); width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; text-align: left; vertical-align: bottom; background-color: rgb(204, 238, 255); width: 1%;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; vertical-align: bottom; text-align: right; background-color: rgb(204, 238, 255); width: 14%;" valign="bottom"&gt;2.04&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; text-align: left; vertical-align: bottom; background-color: rgb(204, 238, 255); width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; text-align: right; font-weight: bold; background-color: rgb(204, 238, 255); width: 17%; white-space: nowrap;" valign="bottom"&gt;2.50 years&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Vested and exercisable at December 31, &lt;span style="text-indent: 0pt;"&gt;2021&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 17%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;During the year ended December 31, 2021 and 2020, the Company recognized stock-based compensation expense of $349 and $332, related to stock option grants of ACM Shanghai. As of
      December 31, 2021 and 2020, $525 and $822
      of total unrecognized non-employee stock-based compensation expense, net of estimated forfeitures, related to ACM Shanghai stock-based awards were expected to be recognized over a weighted-average period of 1.5 and 2.5 years. Total recognized compensation cost may be
      adjusted for future changes in estimated forfeitures.&lt;/div&gt;
</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:ScheduleOfCompensationCostForShareBasedPaymentArrangementsAllocationOfShareBasedCompensationCostsByPlanTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_f400b83c8c8b41c39fb1bccddcd36529">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following table summarizes the components of stock-based compensation expense included in the consolidated statements of operations:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Stock-Based Compensation Expense:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cost of revenue&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;397&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;175&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;250&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Sales and marketing expense&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,802&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,199&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;328&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Research and development expense&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,115&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;763&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,093&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;General and administrative expense&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,803&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,491&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,901&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,117&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,628&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,572&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Stock-based compensation expense by type:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Employee stock purchase plan&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,674&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,900&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,265&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Non-employee stock purchase plan&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;94&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;396&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,307&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Subsidiary option grants&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;349&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;332&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,117&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,628&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,572&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfCompensationCostForShareBasedPaymentArrangementsAllocationOfShareBasedCompensationCostsByPlanTableTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20210101to20211231_IncomeStatementLocationAxis_CostOfSalesMember"
      decimals="-3"
      id="Fact_4c3e2c832270482795d8cb151b4834d1"
      unitRef="U001">397000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20200101to20201231_IncomeStatementLocationAxis_CostOfSalesMember"
      decimals="-3"
      id="Fact_ebb0d06eb4724bc485245593a254fa57"
      unitRef="U001">175000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20190101to20191231_IncomeStatementLocationAxis_CostOfSalesMember"
      decimals="-3"
      id="Fact_05827fbf562b49e5ab60e603527c7c49"
      unitRef="U001">250000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20210101to20211231_IncomeStatementLocationAxis_SellingAndMarketingExpenseMember"
      decimals="-3"
      id="Fact_9242493574c741a882022e99b15919c9"
      unitRef="U001">1802000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20200101to20201231_IncomeStatementLocationAxis_SellingAndMarketingExpenseMember"
      decimals="-3"
      id="Fact_2b98779e56de443d95bec5359364c60e"
      unitRef="U001">1199000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20190101to20191231_IncomeStatementLocationAxis_SellingAndMarketingExpenseMember"
      decimals="-3"
      id="Fact_918353eefdac42958dad223a7d35b614"
      unitRef="U001">328000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20210101to20211231_IncomeStatementLocationAxis_ResearchAndDevelopmentExpenseMember"
      decimals="-3"
      id="Fact_8092e924eb8a4c3d86453ba99238b500"
      unitRef="U001">1115000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20200101to20201231_IncomeStatementLocationAxis_ResearchAndDevelopmentExpenseMember"
      decimals="-3"
      id="Fact_ee726828056f41d6874d052a3baa0239"
      unitRef="U001">763000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20190101to20191231_IncomeStatementLocationAxis_ResearchAndDevelopmentExpenseMember"
      decimals="-3"
      id="Fact_5b8450cb6d884ffeb15acdc18afd6374"
      unitRef="U001">1093000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20210101to20211231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember"
      decimals="-3"
      id="Fact_76fc96de9bdd4371b4433474a9e4ffef"
      unitRef="U001">1803000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20200101to20201231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember"
      decimals="-3"
      id="Fact_4faf4712cffb4da796fd9c1f6402f9f1"
      unitRef="U001">3491000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20190101to20191231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember"
      decimals="-3"
      id="Fact_e50709b2721140108e10a70b06a48b6b"
      unitRef="U001">1901000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_583b2475ef0a47bdae5073b3737c2234"
      unitRef="U001">5117000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_19b4692752cb46ac87ed089ee1ac386b"
      unitRef="U001">5628000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_e5ca7707e44f468691750cb5590f0bb3"
      unitRef="U001">3572000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="-3"
      id="Fact_ed45a449adc34acca6b828424963562a"
      unitRef="U001">4674000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="-3"
      id="Fact_255fe22c7aff41ab93282e62317540ad"
      unitRef="U001">4900000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="-3"
      id="Fact_c309b26efd2d4e92a19cf8a8efce7e28"
      unitRef="U001">2265000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20210101to20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="-3"
      id="Fact_d0ef257b74d54746a42615518747948b"
      unitRef="U001">94000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20200101to20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="-3"
      id="Fact_1d2a3ca248dd4caa850b1a82cca64c14"
      unitRef="U001">396000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20190101to20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="-3"
      id="Fact_608793e2a62c49608dae6fe0e9f2e2b6"
      unitRef="U001">1307000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="-3"
      id="Fact_69fdd2e1430842b3bcb83c0adb8a9a83"
      unitRef="U001">349000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="-3"
      id="Fact_0db0050627274799ac3927e988a4b78c"
      unitRef="U001">332000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="-3"
      id="Fact_57ca63ca657b43fd8ac07b02e70f6e0a"
      unitRef="U001">0</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_f1db30c74e4748709be59d7b5c1ef28a"
      unitRef="U001">5117000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_a203db1aef554d68903bd779e9918629"
      unitRef="U001">5628000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_8bc2b88277034c0190b07873687b07e0"
      unitRef="U001">3572000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_024f56cf218f4256a06689a3b86511a3">
&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: normal; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;The fair value of options granted to employees with a service
        period based condition is estimated on the grant date using the Black-Scholes valuation model with the following assumptions:&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-weight: bold;"&gt;
                &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-weight: bold;"&gt;
                &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; font-family: 'Times New Roman'; font-weight: bold;"&gt;
                &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Fair value of common share(1)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;38.38-51.07&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;22.07-85.27&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman';"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman';"&gt;13.64-16.81&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Expected term in years(2)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;6.25&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;5.50-6.25&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;6.25&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Volatility(3)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;48.53-49.47&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;42.17%-48.15&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman';"&gt;39.91%-40.35&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Risk-free interest rate(4)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;1.00%-1.44&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;0.44%-0.82&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman';"&gt;1.69%-2.46&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Expected dividend(5)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;0&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;0&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman';"&gt;0&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&#160;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 27pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; vertical-align: top;"&gt;(1)&lt;/td&gt;

    &lt;td style="width: auto; text-align: justify; vertical-align: top;"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Fair value of Class A common stock value was the closing
                market price of the Class A common stock on the grant date.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 27pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; vertical-align: top;"&gt;(2)&lt;/td&gt;

    &lt;td style="width: auto; text-align: justify; vertical-align: top;"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Expected term of share options is based on the average of
                the vesting period and the contractual term for each grant according to Staff Accounting Bulletin 110.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 27pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; vertical-align: top;"&gt;(3)&lt;/td&gt;

    &lt;td style="width: auto; text-align: justify; vertical-align: top;"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Volatility is calculated based on the historical volatility
                of the stock of companies comparable to ACM in the period equal to the expected term of each grant.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 27pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; vertical-align: top;"&gt;(4)&lt;/td&gt;

    &lt;td style="width: auto; text-align: justify; vertical-align: top;"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Risk-free interest rate is based on the yields of U.S.
                Treasury securities with maturities similar to the expected term of the share options in effect at the time of grant.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 27pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; vertical-align: top;"&gt;(5)&lt;/td&gt;

    &lt;td style="width: auto; text-align: justify; vertical-align: top;"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Expected dividend is assumed to be 0% as ACM has no history or expectation of paying a dividend on its common stock.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&#160;&lt;/div&gt;
&lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal;"&gt;During















          the year ended December 31, 2020, the fair value of option granted to an employee with market based condition was estimated on the grant date using the Monte Carlo simulation model with the following assumptions:&lt;/span&gt;
&lt;div&gt;&#160;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: bold;"&gt;Year Ended&lt;/div&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: bold;"&gt;December 31,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: bold;"&gt;2020&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; font-family: 'Times New Roman'; margin-left: 7.2pt;"&gt;Fair value of common share(1)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;22.07&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 88%;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; font-family: 'Times New Roman'; margin-left: 7.2pt;"&gt;Expected term in years(2)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;9.20 - 9.80&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; font-family: 'Times New Roman'; margin-left: 7.2pt;"&gt;Volatility(3)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;45.10&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 88%;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; font-family: 'Times New Roman'; margin-left: 7.2pt;"&gt;Risk-free interest rate(4)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;2.68&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; font-family: 'Times New Roman'; margin-left: 7.2pt;"&gt;Expected dividend(5)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;0&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;%&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&#160;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 27pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; vertical-align: top;"&gt;(1)&lt;/td&gt;

    &lt;td style="width: auto; text-align: justify; vertical-align: top;"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Fair value of Class A common stock value was the closing
                market price of the Class A common stock on the grant date.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 27pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; vertical-align: top;"&gt;(2)&lt;/td&gt;

    &lt;td style="width: auto; text-align: justify; vertical-align: top;"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Expected term of share options is based on the average of
                the vesting period and the contractual term for each grant according to Staff Accounting Bulletin 110.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 27pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; vertical-align: top;"&gt;(3)&lt;/td&gt;

    &lt;td style="width: auto; text-align: justify; vertical-align: top;"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Volatility is calculated based on the historical volatility
                of the stock of companies comparable to ACM in the period equal to the expected term of each grant.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 27pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; vertical-align: top;"&gt;(4)&lt;/td&gt;

    &lt;td style="width: auto; text-align: justify; vertical-align: top;"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Risk-free interest rate is based on the yields of U.S.
                Treasury securities with maturities similar to the expected term of the share options in effect at the time of grant.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 20.25pt;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 27pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; vertical-align: top;"&gt;(5)&lt;/td&gt;

    &lt;td style="width: auto; text-align: justify; vertical-align: top;"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';"&gt;Expected dividend is assumed to be 0%, as ACM has no history or expectation of paying a dividend on its common stock.&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
    <us-gaap:SharePrice
      contextRef="c20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MinimumMember"
      decimals="2"
      id="Fact_f781cc202744419988604408a8e2efd0"
      unitRef="U003">38.38</us-gaap:SharePrice>
    <us-gaap:SharePrice
      contextRef="c20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MaximumMember"
      decimals="2"
      id="Fact_1acf2e771e3a4df1a47f789087d1d434"
      unitRef="U003">51.07</us-gaap:SharePrice>
    <us-gaap:SharePrice
      contextRef="c20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MinimumMember"
      decimals="2"
      id="Fact_a08a845524c14fe0a8f0d588179b143f"
      unitRef="U003">22.07</us-gaap:SharePrice>
    <us-gaap:SharePrice
      contextRef="c20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MaximumMember"
      decimals="2"
      id="Fact_0697c9a7c54e44468fe6edf8d12c3831"
      unitRef="U003">85.27</us-gaap:SharePrice>
    <us-gaap:SharePrice
      contextRef="c20191231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MinimumMember"
      decimals="2"
      id="Fact_252f7c1f376948b98088ed664945871e"
      unitRef="U003">13.64</us-gaap:SharePrice>
    <us-gaap:SharePrice
      contextRef="c20191231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MaximumMember"
      decimals="2"
      id="Fact_ca4d1c4da1684e09a89beb23fb9c2fdc"
      unitRef="U003">16.81</us-gaap:SharePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember"
      id="Fact_2315df69e1ca4795aca6581e55b50047">P6Y3M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MinimumMember"
      id="Fact_6ce84786ed4147d29d64f78e20c6524a">P5Y6M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MaximumMember"
      id="Fact_bf5e158da22946fe9ad64ef8ee7fdb81">P6Y3M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember"
      id="Fact_9c3e64489c0e453e8e13212702e6c849">P6Y3M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MinimumMember"
      decimals="4"
      id="Fact_c84c740fa3c744abb1a56b475a9a5671"
      unitRef="U004">0.4853</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MaximumMember"
      decimals="4"
      id="Fact_35d65cb798404175b4d0c18708ed0332"
      unitRef="U004">0.4947</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MinimumMember"
      decimals="4"
      id="Fact_dc02c8a729fc466186c993c2c40b0d3c"
      unitRef="U004">0.4217</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MaximumMember"
      decimals="4"
      id="Fact_d98ccd823ce54ed2bc78e97fbd005915"
      unitRef="U004">0.4815</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MinimumMember"
      decimals="4"
      id="Fact_e7f5c8534a194401a8f3f104425f5d98"
      unitRef="U004">0.3991</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MaximumMember"
      decimals="4"
      id="Fact_b7af258aeea64ab78612f77045e5df9c"
      unitRef="U004">0.4035</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MinimumMember"
      decimals="4"
      id="Fact_42db956604f945c8885e38afbc9d15f2"
      unitRef="U004">0.0100</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MaximumMember"
      decimals="4"
      id="Fact_4deda3d213cd41aab0dd4f7986f3525b"
      unitRef="U004">0.0144</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MinimumMember"
      decimals="4"
      id="Fact_70a65790905d442a9dc2e0cd079efa87"
      unitRef="U004">0.0044</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MaximumMember"
      decimals="4"
      id="Fact_a7f71d95ba34498cbd72f4be4d135310"
      unitRef="U004">0.0082</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MinimumMember"
      decimals="4"
      id="Fact_07fb60b7e56247c2ab65b51d6f48061b"
      unitRef="U004">0.0169</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember_RangeAxis_MaximumMember"
      decimals="4"
      id="Fact_aff0222edb0f4e4680e9414541044661"
      unitRef="U004">0.0246</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember"
      decimals="4"
      id="Fact_721648efeceb4b468edee4c342eef5b6"
      unitRef="U004">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember"
      decimals="4"
      id="Fact_d18d73aae6c6492f92db9124569f7429"
      unitRef="U004">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember"
      decimals="4"
      id="Fact_62aae686fadd40778b2ec07d7120e184"
      unitRef="U004">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_ServicePeriodBasedApproachMember"
      decimals="2"
      id="Fact_727962f230994e978ca66233a5da2fed"
      unitRef="U004">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_MarketBasedMember"
      decimals="INF"
      id="Fact_028d778205cd4c529ffdc1e6402a25b0"
      unitRef="U002">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:SharePrice
      contextRef="c20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_MarketBasedMember"
      decimals="2"
      id="Fact_6e179ebccb994804bb856e689b96754e"
      unitRef="U003">22.07</us-gaap:SharePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_MarketBasedMember_RangeAxis_MinimumMember"
      id="Fact_c53d01595c2b42ca92bc86fe0eff52b5">P9Y2M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_MarketBasedMember_RangeAxis_MaximumMember"
      id="Fact_7214343129fe47349d156bbac1ac70c9">P9Y9M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_MarketBasedMember"
      decimals="4"
      id="Fact_da800c9022e74571bb49679c1b94efb1"
      unitRef="U004">0.4510</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_MarketBasedMember"
      decimals="4"
      id="Fact_9e2e97cb2b734e32a22415708842507b"
      unitRef="U004">0.0268</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_MarketBasedMember"
      decimals="2"
      id="Fact_bfd12e82fd4a4cca9c880a1793732dd3"
      unitRef="U004">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_MarketBasedMember"
      decimals="2"
      id="Fact_f95572f4c41b4765be6dfd5e60b20e8e"
      unitRef="U004">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember"
      id="Text_89742ee6fefc4621b5d05d0b09a74cd8">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following table summarizes the Company&#x2019;s employee share option activities during the years ended December&#160;31, 2019, 2020 and 2021:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px; width: 32%;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Number of&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Option Share&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Weighted&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Average Grant&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Date Fair Value&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Weighted&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Average&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Exercise&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Price&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); width: 17%;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Weighted Average&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Remaining&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Contractual Term&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Outstanding at December 31, 2018&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2,503,405&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;0.91&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;4.09&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: middle; width: 17%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;7.30 years&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Granted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;656,000&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.29&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;16.21&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Exercised&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(106,768&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.60&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2.09&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: middle; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Expired&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2,757&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3.34&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;8.16&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Forfeited/cancelled&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(55,817&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2.38&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.23&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: middle; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Outstanding at December 31, &lt;span style="text-indent: 0pt;"&gt;2019&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2,994,063&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2.59&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;6.77&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;7.05 years&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Granted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;786,399&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;12.17&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;29.17&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: middle; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Exercised&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(547,189&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.34&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3.78&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Forfeited/cancelled&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(41,862&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4.80&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;12.65&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Outstanding at December 31, &lt;span style="text-indent: 0pt;"&gt;2020&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;3,191,411&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;5.13&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;12.73&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: middle; width: 17%;" valign="bottom"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;7.13 years&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Granted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;140,400&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;48.16&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;106.15&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Exercised&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(477,058&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2.46&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.30&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Forfeited/cancelled&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(54,004&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;24.97&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;57.10&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Outstanding at December 31, &lt;span style="text-indent: 0pt;"&gt;2021&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2,800,749&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;7.36&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;17.65&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;6.53 years&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Vested and exercisable at December 31, &lt;span style="text-indent: 0pt;"&gt;2021&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,922,180&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&#160;&#160;&#160;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="c20181231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="0"
      id="Fact_2495b8d705d34bad8e1fdae17144ba9a"
      unitRef="U002">2503405</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20181231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_baf8feb05e6d4d14b4b07ec4f28df51c"
      unitRef="U003">0.91</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c20181231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_f4371b7d350c4606a56dc35e1fd2c734"
      unitRef="U003">4.09</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="c20180101to20181231_AwardTypeAxis_EmployeeStockOptionMember"
      id="Fact_520f0f06f57c4b9da80d489f46ea8d26">P7Y3M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="0"
      id="Fact_59c4dd36e69e4c0f99b730eb75de6d2f"
      unitRef="U002">656000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_18d7a62952234cd8a1a0de32606f3eaa"
      unitRef="U003">6.29</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_baf0bf1c87014d25b2203a0057d8fba5"
      unitRef="U003">16.21</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="0"
      id="Fact_974ced5856f1484fb6572bfee6e406b5"
      unitRef="U002">106768</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_a8426fb1619b43aeb965f448c587ae5b"
      unitRef="U003">0.60</acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_c01b4efcfa9f4f86a0c8c46792dae4a0"
      unitRef="U003">2.09</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="0"
      id="Fact_0ba4f5d5b76d4504a0e29c913e0e8645"
      unitRef="U002">2757</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod>
    <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_45b3d0ad7058402c999f7ee7a139ea62"
      unitRef="U003">3.34</acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_370a181c2a27494a9ffc3a070fe68cd0"
      unitRef="U003">8.16</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="0"
      id="Fact_6cc93312c5194a638676afec1e489c4b"
      unitRef="U002">55817</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_164ac0c2b2bb449897dddd16c5d88f45"
      unitRef="U003">2.38</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_350eafd714cd497da2e51785f5b779ca"
      unitRef="U003">6.23</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="c20191231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="0"
      id="Fact_32330f1f09ec4beca5bae83169a49e25"
      unitRef="U002">2994063</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20191231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_ef3ae3c909164e2e8b3eac464cecf7e9"
      unitRef="U003">2.59</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c20191231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_a6e1809673e748d5b59d8071664b4d7e"
      unitRef="U003">6.77</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember"
      id="Fact_47b53312e3f04c19b2eb658e272fa3af">P7Y18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="0"
      id="Fact_390a370da9a24e87bcfa4b341fecbbc4"
      unitRef="U002">786399</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_ad47df6da4004ce7999188801e2a1b9e"
      unitRef="U003">12.17</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_3e898d422c524633ad5f445bc1918072"
      unitRef="U003">29.17</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="0"
      id="Fact_148294aeec1b4fc69acfb873af2434d2"
      unitRef="U002">547189</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_cd264e05e33b4660ae63b8678c36d019"
      unitRef="U003">1.34</acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_7599f3639d454db8ab18b1cabea92143"
      unitRef="U003">3.78</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="0"
      id="Fact_2527162856bd4271bfeee812f4635bbf"
      unitRef="U002">41862</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_743f13e1413c4f2eb0c037169c0d3f45"
      unitRef="U003">4.80</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_e7e4a07e8919489c8d1f59e4846431e5"
      unitRef="U003">12.65</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="c20201231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="0"
      id="Fact_18618472a6c54d0e8eabb9dfa5d5f2e5"
      unitRef="U002">3191411</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20201231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_1a5c1791ecb24d39a34469471709c946"
      unitRef="U003">5.13</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c20201231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_ec761e8dd8924071bea11ba5a3e5389c"
      unitRef="U003">12.73</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember"
      id="Fact_bdce0ff508bd4fa7a472e9edb7bb0c65">P7Y1M17D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="0"
      id="Fact_a0f85395789b42c0ba0e28940215437b"
      unitRef="U002">140400</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_aead5748e5284233b5d907b645b69c92"
      unitRef="U003">48.16</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_17ab33de40cc4a37b35b0d4e78200840"
      unitRef="U003">106.15</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="0"
      id="Fact_aa4ce57159134006b71ebfc798029005"
      unitRef="U002">477058</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_d5608a583f754bbbbd2e6cd335cdd9ca"
      unitRef="U003">2.46</acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_78313ca1350d4158bab896130f4f276c"
      unitRef="U003">6.30</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="0"
      id="Fact_a54e61cdae904b08986cdd91cfcca22e"
      unitRef="U002">54004</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_da04c35957994acb9eebbe445ac60b47"
      unitRef="U003">24.97</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_ce6d3c84c55b41eca09fb0e6fd6723d3"
      unitRef="U003">57.10</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="c20211231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="0"
      id="Fact_866fd40c67b84819b3882312b0d79a7a"
      unitRef="U002">2800749</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20211231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_b96a14bd053b4dd299a218b9900997c2"
      unitRef="U003">7.36</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c20211231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_fb5dd3b7319b4258b6f4a22ffa7866d0"
      unitRef="U003">17.65</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember"
      id="Fact_42db780cb3d04eee8679b633729d3c1d">P6Y6M10D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="c20211231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="0"
      id="Fact_993f5569fc0d4f8e9b0b241f425584ca"
      unitRef="U002">1922180</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="c20211231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="-3"
      id="Fact_e5da6340da344886ba387d7c2b663f39"
      unitRef="U001">9544000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="c20201231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="-3"
      id="Fact_8ba8d009b1454ca58e06297bfd5a3446"
      unitRef="U001">8733000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember"
      id="Fact_0061f6c523ff46d1a2e7e8fda318fcd1">P1Y7M9D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember"
      id="Fact_77eed65d93d9424f9387952e99070882">P1Y10M20D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
      contextRef="c20210101to20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      id="Text_124038db7a3f4411945e07bde9491b47">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following table summarizes the Company&#x2019;s non-employee share option activities during the years ended December 31, 2019, 2020 and 2021:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px; width: 32%;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Number of&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Option Shares&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Weighted&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Average Grant&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Date Fair Value&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Weighted&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Average&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Exercise&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Price&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); width: 17%;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Weighted Average&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Remaining&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Contractual Term&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Outstanding at December 31, 2018&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;1,212,374&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;0.78&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255); font-weight: bold;" valign="bottom"&gt;2.57&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;6.66 years&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Granted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Exercised&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(88,529&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.45&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.06&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Expired&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Forfeited/cancelled&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(22,232&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.55&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Outstanding at December 31, &lt;span style="text-indent: 0pt;"&gt;2019&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;1,101,613&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;0.82&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2.69&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;5.85 years&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Granted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;20,000&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;10.29&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;25.60&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Exercised&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(285,315&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.88&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3.17&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Expired&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&#160;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Forfeited/cancelled&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(260&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.30&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.75&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Outstanding at December 31, &lt;span style="text-indent: 0pt;"&gt;2020&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;836,038&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;1.02&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;3.07&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;4.92 years&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Granted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Exercised&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(146,543&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.12&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3.83&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Expired&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Forfeited/cancelled&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(489&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.34&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.84&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Outstanding at December 31, &lt;span style="text-indent: 0pt;"&gt;2021&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;689,006&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;1.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2.91&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;3.98 years&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Vested and exercisable at December 31, &lt;span style="text-indent: 0pt;"&gt;2021&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;677,756&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&#160;&#160;&#160;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="c20181231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_d30df951fc6644b2b663d9a3b0f4a2d0"
      unitRef="U002">1212374</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20181231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_c907dd2ef53142be9c144c237ecec5d6"
      unitRef="U003">0.78</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c20181231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_00f13e331ad2412cb47b9f38af502832"
      unitRef="U003">2.57</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="c20180101to20181231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      id="Fact_6c264e408c55460eb532ae7c8938cc95">P6Y7M28D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="c20190101to20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="INF"
      id="Fact_6f5d5e2ebfe74f77a11ab6c72e7ae7a6"
      unitRef="U002">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20190101to20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_ddf3849fe2044afd9408be2e063c9e85"
      unitRef="U003">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="c20190101to20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_84fc709092284b2bb05b89969d12d7fc"
      unitRef="U003">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20190101to20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_00c01ce5e77e46c9a8486ed7bc1f20cc"
      unitRef="U002">88529</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20190101to20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_41478c522f694f2b8cbee347b21c0e48"
      unitRef="U003">0.45</acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="c20190101to20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_9683a872c6a6405c842bc98c71ab3841"
      unitRef="U003">1.06</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
      contextRef="c20190101to20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="INF"
      id="Fact_a94597e344704156841dd0c9c1932516"
      unitRef="U002">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod>
    <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20190101to20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_e6103cc17380488692a91f195b002782"
      unitRef="U003">0</acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="c20190101to20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_130e19156def4cc689740d2ce3925e2d"
      unitRef="U003">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="c20190101to20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_1deb9afc66214decb52e73df54e56bc0"
      unitRef="U002">22232</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue
      contextRef="c20190101to20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_4200ab7e26074b5b99751fdc06758a9b"
      unitRef="U003">0.55</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="c20190101to20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_f99549b3a6a9434a9ae1687741c253e9"
      unitRef="U003">3.00</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="c20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_424668ebfb6149888928b4f6e443c293"
      unitRef="U002">1101613</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_f5e93afe100b4059a3491ae9cc5e2c8b"
      unitRef="U003">0.82</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_c670143aac604444af3c64b9e498f058"
      unitRef="U003">2.69</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="c20190101to20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      id="Fact_9674fa0ca8d2427599124e80dbc34cbf">P5Y10M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="c20200101to20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_2f1ca39c1f174c9289475db823848805"
      unitRef="U002">20000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20200101to20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_7aa171ac2ec44171a764673d7c399d5a"
      unitRef="U003">10.29</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="c20200101to20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_770b076937064264831cf7b0c5591bc0"
      unitRef="U003">25.60</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20200101to20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_2285b948c830432e9d36a4b00e734a36"
      unitRef="U002">285315</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20200101to20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_269dfbba51d64af5981efdb7fe9d898a"
      unitRef="U003">0.88</acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="c20200101to20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_c4498f7e95af4a6181a4ded45e5341ae"
      unitRef="U003">3.17</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
      contextRef="c20200101to20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="INF"
      id="Fact_e1645764e5fd4cb99fbad779642992f5"
      unitRef="U002">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod>
    <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20200101to20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_88a18d44669f4bad94f9f6e4e109f99e"
      unitRef="U003">0</acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="c20200101to20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_df9932dbbc1a4dcba10177c927d37d86"
      unitRef="U003">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="c20200101to20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_d624a0a26eed4e4e8fe96a813fe0217b"
      unitRef="U002">260</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue
      contextRef="c20200101to20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_cd82867e084b44bf99bf1be8b6595b56"
      unitRef="U003">0.30</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="c20200101to20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_6a9e4b69a71b47839a9114bcbd86129d"
      unitRef="U003">0.75</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="c20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_bb70225874024ba0ad1d91e5ef569fea"
      unitRef="U002">836038</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_37acf1c384c2476aadde40a84d2bded4"
      unitRef="U003">1.02</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_3a2d000a234d429abef89d8624316494"
      unitRef="U003">3.07</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="c20200101to20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      id="Fact_18b437a682bf42b29e18d605ddf52531">P4Y11M1D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="c20210101to20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="INF"
      id="Fact_6f0317899b144840a3d2b76feeb4ce99"
      unitRef="U002">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20210101to20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_2b68445f0a8540fc966c375748b5acf8"
      unitRef="U003">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="c20210101to20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_a498e15fa43f48deb02dc451f56ff3b4"
      unitRef="U003">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20210101to20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_1dc699cd2008491ab113ccccc92a78e1"
      unitRef="U002">146543</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20210101to20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_0ead218fb47d49b991c76f52bb1d3788"
      unitRef="U003">1.12</acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="c20210101to20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_b22467a0985445dbadd185329bdbae1d"
      unitRef="U003">3.83</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
      contextRef="c20210101to20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="INF"
      id="Fact_86efabe90118492097f46ab05a1d4c1f"
      unitRef="U002">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod>
    <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20210101to20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_24f5496d4238420cb78f2f272f126d57"
      unitRef="U003">0</acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="c20210101to20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_b9be79a19a554db6b33b2cccbd2ee824"
      unitRef="U003">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="c20210101to20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_af8cbcb6763244708cc653a7957b9c9a"
      unitRef="U002">489</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue
      contextRef="c20210101to20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_886b7c6252e6484a9eadd1c77f0997e6"
      unitRef="U003">0.34</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="c20210101to20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_11d3e743e96649248941b08b820d8f34"
      unitRef="U003">0.84</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="c20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_f5d8a28dfcff4522a54594d12abcf42f"
      unitRef="U002">689006</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_207b618263594b4e8e424a632146a6a3"
      unitRef="U003">1.00</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="2"
      id="Fact_280afe8ac04e4d28b2c9e65d1e9e36a0"
      unitRef="U003">2.91</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="c20210101to20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      id="Fact_aeb7d6f7596e4764a976088057aa14a4">P3Y11M23D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="c20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="0"
      id="Fact_d749f3b1081a438ca313dff7cf23166a"
      unitRef="U002">677756</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="c20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="-3"
      id="Fact_7f96647d385e495ea87438467713c8ec"
      unitRef="U001">102000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="c20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      decimals="-3"
      id="Fact_5a13d7a539d84cb29d31803517a747f2"
      unitRef="U001">195000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="c20210101to20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      id="Fact_419d944da09b4beab8fd887d7399065a">P0Y21D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="c20200101to20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember"
      id="Fact_5d007a9185e145a9b7fc5c1de12680f9">P0Y1M2D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      id="Text_fca502ddd56c429a8d9ac02189012041">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following table summarizes the ACM Shanghai employee stock option activities during the years ended December 31, 2021 and 2020:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px; width: 32%;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Number of&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Option Shares in&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;ACM Shanghai&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Weighted&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Average Grant&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Date Fair Value&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Weighted&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Average&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Exercise&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Price&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); width: 17%;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Weighted Average&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Remaining&lt;/div&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Contractual Term&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Outstanding at December 31, &lt;span style="text-indent: 0pt;"&gt;2019&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 17%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;&lt;span style="-sec-ix-hidden:Fact_fd14ad3532a2488cbff6bc64ed738e9c"&gt;-&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Granted&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,869,808&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.23&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.89&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 17%;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Exercised&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Expired&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 17%;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 32%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Forfeited/cancelled&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(446,154&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.23&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.89&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 17%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Outstanding at December 31, &lt;span style="text-indent: 0pt;"&gt;2020&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;5,423,654&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;0.23&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;1.89&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td style="vertical-align: bottom; width: 17%;" valign="bottom"&gt;
            &lt;div style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;3.50 years&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 32%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;Granted&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 17%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;Exercised&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 17%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 32%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;Expired&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 17%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;Forfeited/cancelled&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;(46,154&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;0.24&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;2.04&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 17%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; font-weight: bold; background-color: rgb(204, 238, 255); width: 32%;" valign="bottom"&gt;Outstanding at December 31, 2021&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255); width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; text-align: left; vertical-align: bottom; background-color: rgb(204, 238, 255); width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; vertical-align: bottom; text-align: right; background-color: rgb(204, 238, 255); width: 14%;" valign="bottom"&gt;5,377,500&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; text-align: left; vertical-align: bottom; background-color: rgb(204, 238, 255); width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255); width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; text-align: left; vertical-align: bottom; background-color: rgb(204, 238, 255); width: 1%;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; vertical-align: bottom; text-align: right; background-color: rgb(204, 238, 255); width: 14%;" valign="bottom"&gt;0.24&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; text-align: left; vertical-align: bottom; background-color: rgb(204, 238, 255); width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255); width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; text-align: left; vertical-align: bottom; background-color: rgb(204, 238, 255); width: 1%;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; vertical-align: bottom; text-align: right; background-color: rgb(204, 238, 255); width: 14%;" valign="bottom"&gt;2.04&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="font-weight: bold; text-align: left; vertical-align: bottom; background-color: rgb(204, 238, 255); width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; text-align: right; font-weight: bold; background-color: rgb(204, 238, 255); width: 17%; white-space: nowrap;" valign="bottom"&gt;2.50 years&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 32%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Vested and exercisable at December 31, &lt;span style="text-indent: 0pt;"&gt;2021&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 14%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 17%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="c20191231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="INF"
      id="Fact_f4b7c5c267bb438dbd9aa61d703987b6"
      unitRef="U002">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20191231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="0"
      id="Fact_678fa1bbfcc84475816ed96942472de0"
      unitRef="U003">0</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c20191231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="0"
      id="Fact_49db7665fa2f4df5a54c18b9a00ac732"
      unitRef="U003">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="0"
      id="Fact_e0dafb812950429b8525a23f0250cb40"
      unitRef="U002">5869808</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="2"
      id="Fact_82f4c4b8a77e4875a4d856c8a9f07e65"
      unitRef="U003">0.23</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="2"
      id="Fact_acda1639c9ea4153b8c944c37f207159"
      unitRef="U003">1.89</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="INF"
      id="Fact_2da40f13a85b454e8d0c34d07e35a0bf"
      unitRef="U002">0</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="0"
      id="Fact_3a4c668f2171484f93d6324b3a30a666"
      unitRef="U003">0</acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="0"
      id="Fact_06ba40de538a4df49f5986d16359f20b"
      unitRef="U003">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="INF"
      id="Fact_cfc52640faec46198dcc130963258238"
      unitRef="U002">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod>
    <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="0"
      id="Fact_7c5c7a652d574141a5d4898ffd810af5"
      unitRef="U003">0</acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="0"
      id="Fact_d72226793c7745ecbcef80ecd3a08031"
      unitRef="U003">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="0"
      id="Fact_571fcc30c0c84beb8e704b7900427e28"
      unitRef="U002">446154</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="2"
      id="Fact_59fe9e7376d943b4b58058546205806a"
      unitRef="U003">0.23</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="2"
      id="Fact_9182b65758ea413883fb708f0674af92"
      unitRef="U003">1.89</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="c20201231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="0"
      id="Fact_c90b9149bec343f1b2221264871dc7b4"
      unitRef="U002">5423654</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20201231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="2"
      id="Fact_0962c84600e44d4d839c1d4759d53792"
      unitRef="U003">0.23</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c20201231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="2"
      id="Fact_79630d1cda4a4e04aaf704db04489a3d"
      unitRef="U003">1.89</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      id="Fact_6e369151343446a199920a604b2320d8">P3Y6M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="INF"
      id="Fact_29344ee1e02b42fba70f60544b7da6ef"
      unitRef="U002">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="0"
      id="Fact_ed5746ae26ec472db84d2237179760d4"
      unitRef="U003">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="0"
      id="Fact_3e80813bf58a4c6ea0e564765e6a856e"
      unitRef="U003">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="INF"
      id="Fact_c83c4e13c85849599613d7852b3fb25d"
      unitRef="U002">0</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="0"
      id="Fact_01515a6fbe7840f18e1e537449c5a3cd"
      unitRef="U003">0</acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="0"
      id="Fact_109e82ff660c4982a1367935acac784a"
      unitRef="U003">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="INF"
      id="Fact_2e2fafefc31049fe98af82cd0f6bf0d8"
      unitRef="U002">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod>
    <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="0"
      id="Fact_175148a35c1b4f5388acb1f9e042a024"
      unitRef="U003">0</acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="0"
      id="Fact_99b4b6a603e64967a60afd65ee8adf7c"
      unitRef="U003">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="0"
      id="Fact_4f9fb0e8ebc347daa0b8fa84796065f1"
      unitRef="U002">46154</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="2"
      id="Fact_2ed77be858ed44e2a4e28d67b3ca2a44"
      unitRef="U003">0.24</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="2"
      id="Fact_d82072f893c54744bd3baae1edbbc729"
      unitRef="U003">2.04</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="c20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="0"
      id="Fact_b43ca3254c3b4768800ffd46bb5b5dfc"
      unitRef="U002">5377500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="2"
      id="Fact_2d41e06dd697406f88a9ecd9e6ba5d4b"
      unitRef="U003">0.24</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="2"
      id="Fact_c1939d4fb3c141d2a73f60fcd71a872a"
      unitRef="U003">2.04</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      id="Fact_b3167b89a85a41d89c66daa0f5399670">P2Y6M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="c20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="INF"
      id="Fact_45e07425de25478bba419dc682f3b736"
      unitRef="U002">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="-3"
      id="Fact_07a09ea1849d4ae5a2dfb7333fc1952c"
      unitRef="U001">349000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20200101to20201231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="-3"
      id="Fact_2f26576fd49b449a93a3b3e659d7f46c"
      unitRef="U001">332000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="c20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="-3"
      id="Fact_13d03f7e9ca34b4f8f87ec73d77ce367"
      unitRef="U001">525000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="c20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      decimals="-3"
      id="Fact_88fd45dda01f4b4f921295cc3e41af07"
      unitRef="U001">822000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="c20210101to20211231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      id="Fact_eb1fdbd988c54dc38c08691000327682">P1Y6M</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="c20200101to20201231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember"
      id="Fact_f2364e0a3bf54df0aea410d8ec9cb3de">P2Y6M</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="c20210101to20211231"
      id="Text_58ff154a2f514b7985cd7bd851adbf68">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 21 &#x2013; INCOME TAXES&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following represent components of the income tax benefit (expense) for the years ended December 31, 2021, 2020 and 2019:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: center; vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle; text-align: center;" valign="bottom"&gt; &lt;span style="font-style: italic;"&gt;(in thousands)&lt;/span&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Current:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;U.S. federal&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(91&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(61&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;U.S. state&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Foreign&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2,195&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2,014&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(3,176&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total current tax expense&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2,288&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2,077&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(3,176&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;U.S. federal&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,089&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,325&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,728&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;U.S. state&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Foreign&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;65&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2,866&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(34&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 25.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total deferred tax benefit&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,154&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,459&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,694&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total income tax benefit (expense)&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(134&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,382&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;518&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Tax effects of temporary differences that give rise to significant portions of the Company&#x2019;s deferred tax assets at December 31, 2021 and 2020 are presented below:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" rowspan="1" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); text-align: center;" valign="bottom"&gt;&lt;span style="font-weight: bold;"&gt;2019&lt;/span&gt; &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred tax assets:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net operating loss carry forwards (offshore)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;522&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;323&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;216&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net operating loss carry forwards (U.S.) and credit&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;12,173&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,981&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;3,218&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred revenue (offshore)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;361&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;556&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;1,181&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accruals (U.S.)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;15&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;22&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;15&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Reserves and other (offshore)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,528&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;884&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;426&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Stock-based compensation (U.S.)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,283&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,599&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;1,168&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Property and equipment (U.S.)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;164&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;3&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Lease liability&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;559&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;659&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total gross deferred tax assets&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;17,442&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;14,188&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;6,227&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Less: valuation allowance&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(919&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(848&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;(896&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total deferred tax assets&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;16,523&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;13,340&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;5,331&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred tax liabilities:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Fixed assets&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(589&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(697&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred revenue (offshore)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,486&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(967&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Unrealized gain on trading securities&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,886&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="margin-left: 9pt;"&gt;Equity Investments&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;(2,584&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total deferred tax liabilities&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(4,659&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(3,550&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Translation difference&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred tax assets, net&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;11,864&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,790&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;5,331&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company considers all available evidence to determine whether it is more likely than not that some portion or all of the deferred tax assets will be realized. The
      ultimate realization of deferred tax assets is dependent upon the generation of future taxable income during the periods in which those temporary differences become realizable. Management considers the scheduled reversal of deferred tax liabilities
      (including the impact of available carryback and carry-forward periods), and projected taxable income in assessing the realizability of deferred tax assets. In making such judgments, significant weight is given to evidence that can be objectively
      verified. Based on all available evidence, a partial valuation allowance has been established against some net deferred tax assets as of December 31, 2021 and 2020, based on estimates of recoverability. In order to fully realize the U.S. deferred tax
      assets, the Company must generate sufficient taxable income in future periods before the expiration of the deferred tax assets governed by the tax code.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;As of December 31, 2021 and 2020, the Company had valuation allowances, respectively, of $160 and $288 for U.S federal purposes, $237 and $237 for U.S. state purposes and $522&#160; and $323 for PRC income tax purposes.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;As of December 31, 2021 and 2020, the Company had net operating loss carry-forwards of, respectively, $56,077 and $44,333 for U.S federal purposes, $545 and $545 for U.S. state purposes and $2,086 and $1,294 for PRC income tax
      purposes&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;. &lt;/span&gt;Such losses begin expiring in &lt;span style="-sec-ix-hidden:Fact_676e4017debc43328069cc948c0d1077"&gt;2022&lt;/span&gt;, &lt;span style="-sec-ix-hidden:Fact_9d55fe7af4ad42eebcfbe96c394d0445"&gt;2032&lt;/span&gt; and &lt;span style="-sec-ix-hidden:Fact_944fed3a7bea4f08adeee9c680884bcd"&gt;2022&lt;/span&gt; for U.S. federal, U.S. state
      and PRC income tax purposes, respectively.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;As of December 31, 2021 and 2020, the Company had research credit carry-forwards of, respectively, $200 and $359 for U.S. federal purposes and $377 and $377 for U.S. state purposes. Such
      credits begin expiring in &lt;span style="-sec-ix-hidden:Fact_a8703bbe4e2b407f8d606b1f2cca792c"&gt;2022&lt;/span&gt; for U.S. federal carry-forwards. There is no expiration date for U.S. state carry-forwards.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Under provisions of the U.S. Internal Revenue Code (the &#x201c;IRC&#x201d;), a limitation applies to the use of the U.S. net operating loss and credit carry-forwards that would be
      applicable if ACM experiences an &#x201c;ownership change,&#x201d; as defined in IRC Section 382. ACM conducted an analysis of its stock ownership under IRC Section 382 and $11,957 of the net operating loss carryforwards are subject to annual limitation as a result of the ownership change in 2017. The net operating loss carryforwards are not expected to expire
      before utilization.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company&#x2019;s effective tax rate differs from statutory rates of 21%
      for U.S. federal income tax purposes and 12.5% to 25% for PRC income tax purpose due to the effects of the valuation allowance and certain permanent differences as they pertain to book-tax differences in &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;employee stock-based compensation and &lt;/span&gt;the value of client shares received for services. Pursuant to the Corporate Income Tax Law of the PRC, all of the Company&#x2019;s PRC subsidiaries are liable to PRC Corporate
      Income Taxes at a rate of 25%, except for ACM Shanghai. According to Guoshuihan 2009 No. 203, if an entity is certified as an &#x201c;advanced
      and new technology enterprise,&#x201d; it is entitled to a preferential income tax rate of 12.5%. ACM Shanghai obtained the certificate of
      &#x201c;advanced and new technology enterprise&#x201d; in each of 2012, 2016 and 2018 with an effective period of three years, and the provision for PRC
      corporate income tax for ACM Shanghai is calculated by applying the income tax rate of 12.5% for the years ended December 31, 2021,
      2020 and 2019.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Income tax expense for the years ended December 31, 2021, 2020 and 2019 differed from the amounts computed by applying the statutory U.S. federal income tax rate of 21% to pretax income as a result of the following:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-indent: -7pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;2019&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Effective tax rate reconciliation:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Income tax provision at statutory rate&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;21.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;21.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;21.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Stock Compensation&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;(12.75&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;(36.99&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;(1.05&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Foreign rate differential&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(11.60&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(5.07&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(6.44&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other permanent difference&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.23&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;11.71&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2.82&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"/&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&#160; Foreign income taxed in US&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;10.32&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"/&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;6.05&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"/&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;6.94&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"/&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Foreign Research Expense&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;(6.59&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;(8.80&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;(5.82&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Change in valuation allowance&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.16&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.25&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(20.19&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total income tax expense (benefit)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.31&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(12.35&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2.74&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Tax positions are evaluated in a two-step process. The Company first determines whether it is more likely than not that a tax position will be sustained upon
      examination. If a tax position meets the more-likely-than-not recognition threshold it is then measured to determine the amount of benefit to recognize in the financial statements. The tax position is measured as the largest amount of benefit that is
      greater than 50% likely of being realized upon ultimate settlement. The aggregate changes in the balance of gross unrecognized tax benefits, which excludes interest and penalties, for the years ended December 31, 2021 and 2020, were as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" rowspan="1" style="vertical-align: middle; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: center; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; text-align: center; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;span style="font-weight: bold;"&gt;2019&lt;/span&gt; &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Beginning balance&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;570&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;44&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;44&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Increase of unrecognized tax benefits taken in prior years&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;52&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;116&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Increase of unrecognized tax benefits related to current year&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,476&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;410&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: middle; width: 64%;" valign="bottom"&gt;&#160;&#160; Reductions for tax positions related to prior years&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;(32&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Reductions to unrecognized tax benefits related to lapsing statute of limitations&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Ending balance&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,066&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;570&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;44&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company is subject to taxation in the United States, California and foreign jurisdictions. The federal, state and foreign income tax returns are under the statute of
      limitations subject to tax examinations for the tax years ended December 31, 1999 through December 31, 2021. To the extent the Company has tax attribute carry-forwards, the tax years in which the attribute was generated may still be adjusted upon
      examination by the U.S. Internal Revenue Service or by state or foreign tax authorities to the extent utilized in a future period.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company had $6,066 and $570 of unrecognized tax benefits as of December 31, 2021 and 2020, respectively.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;The &lt;/span&gt;Company recognizes interest and penalties related to uncertain tax positions in income tax
      expense. As of December 31, 2021 and 2020, respectively, the Company had $44 and $44 of accrued penalties related to uncertain tax positions, all of which was recognized in the Company&#x2019;s consolidated statements of operations and comprehensive income for the year then ended.
      The amount of the unrecognized tax benefit that, if recognized, would impact the effective tax rate was $5,950 as of December&#160;31, 2021.
      There were no ongoing examinations by taxing authorities as of December 31, 2021 or 2020.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company intends to indefinitely reinvest the PRC earnings outside of the United States as of December 31, 2021 and 2020. Thus, deferred taxes are not provided in the
      United States for unremitted earnings in the PRC.&lt;/div&gt;
</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_0a585ff55e864788a65cb138937aa5f0">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following represent components of the income tax benefit (expense) for the years ended December 31, 2021, 2020 and 2019:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: center; vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle; text-align: center;" valign="bottom"&gt; &lt;span style="font-style: italic;"&gt;(in thousands)&lt;/span&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Current:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;U.S. federal&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(91&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(61&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;U.S. state&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Foreign&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2,195&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2,014&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(3,176&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total current tax expense&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2,288&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2,077&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(3,176&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;U.S. federal&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,089&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,325&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,728&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;U.S. state&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Foreign&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;65&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2,866&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(34&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 25.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total deferred tax benefit&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,154&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,459&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,694&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total income tax benefit (expense)&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(134&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,382&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;518&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_737055db3b6c429fbc531e1997cf1e47"
      unitRef="U001">91000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_8856c688f222469385057bba1ba06c5a"
      unitRef="U001">61000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_137b8a5fa32745b0b25a09f8535f5321"
      unitRef="U001">0</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_d8bcfaebf3f44ec7a0612973aab6dd55"
      unitRef="U001">2000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_a6b76eacd6974b7bbe648595320e0912"
      unitRef="U001">2000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_8c6a5668711b4a6f9f2f01b5821bc2b8"
      unitRef="U001">0</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_2a90671d45cc487eaa5e589fdbd1d056"
      unitRef="U001">2195000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_5b13ba404b8d466eb92ee635a74c28fa"
      unitRef="U001">2014000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_8fa3200ffa4c4545b6ddf2ea6071e208"
      unitRef="U001">3176000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_b67fa3d1e4784c5a988f34a9fee93e05"
      unitRef="U001">2288000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_c761e7033f424ab698eed65eac36a8ed"
      unitRef="U001">2077000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_72538d9068c443f7969775e44abd75e7"
      unitRef="U001">3176000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_b511cc3ee88a493984a5180e87778ad5"
      unitRef="U001">-2089000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_30f8ed133d3247f7afee824912c60816"
      unitRef="U001">-7325000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_ef586ea8c5464560a7ee7aec6fb80aea"
      unitRef="U001">-3728000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_30a7ae1f209d4a78849e25ac56633f72"
      unitRef="U001">0</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_4a0dfaefc3024b099598b5902fe7024b"
      unitRef="U001">0</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_24e7ffeb2f1b468a803bae7a63278335"
      unitRef="U001">0</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_7b4219da8ebd427096848894ec62aead"
      unitRef="U001">-65000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_4c7a317baaa445f5847e99ae0d30942b"
      unitRef="U001">2866000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_99a08e2a9ce04d0099848a98a93ff859"
      unitRef="U001">34000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_f66afd1e633b4fe2a1d9b7a1991ce446"
      unitRef="U001">-2154000</us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit>
    <us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_8526a31817c345d0a45697a88b247f2f"
      unitRef="U001">-4459000</us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit>
    <us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_1b86e1c0842048b2b0ad4c87ad27e55e"
      unitRef="U001">-3694000</us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_ef32316fa5e848428b098134df5c1721"
      unitRef="U001">134000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_14bb88dcd7d34de19e13df2957541110"
      unitRef="U001">-2382000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_b64e006fb2ee4fbe938ae9ed815ee33a"
      unitRef="U001">-518000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_fe2d80e9d3f54c5785c31b15b67b92a6">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Tax effects of temporary differences that give rise to significant portions of the Company&#x2019;s deferred tax assets at December 31, 2021 and 2020 are presented below:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" rowspan="1" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); text-align: center;" valign="bottom"&gt;&lt;span style="font-weight: bold;"&gt;2019&lt;/span&gt; &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred tax assets:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net operating loss carry forwards (offshore)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;522&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;323&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;216&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net operating loss carry forwards (U.S.) and credit&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;12,173&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,981&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;3,218&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred revenue (offshore)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;361&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;556&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;1,181&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accruals (U.S.)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;15&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;22&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;15&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Reserves and other (offshore)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,528&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;884&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;426&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Stock-based compensation (U.S.)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,283&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,599&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;1,168&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Property and equipment (U.S.)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;164&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;3&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Lease liability&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;559&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;659&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total gross deferred tax assets&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;17,442&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;14,188&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;6,227&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Less: valuation allowance&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(919&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(848&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;(896&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total deferred tax assets&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;16,523&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;13,340&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;5,331&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred tax liabilities:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Fixed assets&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(589&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(697&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred revenue (offshore)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,486&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(967&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Unrealized gain on trading securities&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,886&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="margin-left: 9pt;"&gt;Equity Investments&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;(2,584&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total deferred tax liabilities&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(4,659&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(3,550&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Translation difference&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred tax assets, net&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;11,864&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,790&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;5,331&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign
      contextRef="c20211231"
      decimals="-3"
      id="Fact_fbfff5e779a7442099701680143b826c"
      unitRef="U001">522000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign
      contextRef="c20201231"
      decimals="-3"
      id="Fact_216c2964808443eb9aabe682121af0b5"
      unitRef="U001">323000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign
      contextRef="c20191231"
      decimals="-3"
      id="Fact_6a677185f0dd443d9c2085442efa20f8"
      unitRef="U001">216000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic
      contextRef="c20211231"
      decimals="-3"
      id="Fact_9d6f933a099444e3801ce6e59623919f"
      unitRef="U001">12173000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic
      contextRef="c20201231"
      decimals="-3"
      id="Fact_fe5d0b4d9e2442e1a944bc803bf09a59"
      unitRef="U001">9981000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic
      contextRef="c20191231"
      decimals="-3"
      id="Fact_5f4c9cff0cc645a88ebc62047d21d76c"
      unitRef="U001">3218000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic>
    <us-gaap:DeferredTaxAssetsDeferredIncome
      contextRef="c20211231"
      decimals="-3"
      id="Fact_edbccb3db85a4d0f843b3d520c72528d"
      unitRef="U001">361000</us-gaap:DeferredTaxAssetsDeferredIncome>
    <us-gaap:DeferredTaxAssetsDeferredIncome
      contextRef="c20201231"
      decimals="-3"
      id="Fact_cd93ec3cff354c26b8ea9818f79aeabc"
      unitRef="U001">556000</us-gaap:DeferredTaxAssetsDeferredIncome>
    <us-gaap:DeferredTaxAssetsDeferredIncome
      contextRef="c20191231"
      decimals="-3"
      id="Fact_36dc435c450b433b8e1ffa94eb11d0f7"
      unitRef="U001">1181000</us-gaap:DeferredTaxAssetsDeferredIncome>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
      contextRef="c20211231"
      decimals="-3"
      id="Fact_47a02eaf6f794313afe357a70f3d3b19"
      unitRef="U001">15000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
      contextRef="c20201231"
      decimals="-3"
      id="Fact_2716d76b3d6e4570b565862d2415f5c8"
      unitRef="U001">22000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
      contextRef="c20191231"
      decimals="-3"
      id="Fact_7b68d4b29a4b47c7af949697376c020b"
      unitRef="U001">15000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReserves
      contextRef="c20211231"
      decimals="-3"
      id="Fact_ba1d1fae56dd48c9a0236daeedf9e09b"
      unitRef="U001">1528000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReserves>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReserves
      contextRef="c20201231"
      decimals="-3"
      id="Fact_e17a9a9fd0ef4546b123db9d4cea05de"
      unitRef="U001">884000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReserves>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReserves
      contextRef="c20191231"
      decimals="-3"
      id="Fact_c3af54fa55ed49e09e0b66b1fdccfaf1"
      unitRef="U001">426000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReserves>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="c20211231"
      decimals="-3"
      id="Fact_cafd2e7160f34f06b745c46506ceebe1"
      unitRef="U001">2283000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="c20201231"
      decimals="-3"
      id="Fact_5db81818624740d1894b635eb8336179"
      unitRef="U001">1599000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="c20191231"
      decimals="-3"
      id="Fact_3bc8d0a472414082ba5c1c1e45946e81"
      unitRef="U001">1168000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment
      contextRef="c20211231"
      decimals="-3"
      id="Fact_c1ff821a199d490cad062d5284cb0255"
      unitRef="U001">1000</us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment
      contextRef="c20201231"
      decimals="-3"
      id="Fact_b21543ff8f12450ba7cdb29fd00b1910"
      unitRef="U001">164000</us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment
      contextRef="c20191231"
      decimals="-3"
      id="Fact_0bb32ea3636146de8fa1426881d84551"
      unitRef="U001">3000</us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment>
    <acmr:DeferredTaxAssetsLeaseLiability
      contextRef="c20211231"
      decimals="-3"
      id="Fact_3f2d737fc3934204889a9ac3ec834afc"
      unitRef="U001">559000</acmr:DeferredTaxAssetsLeaseLiability>
    <acmr:DeferredTaxAssetsLeaseLiability
      contextRef="c20201231"
      decimals="-3"
      id="Fact_1679e064422e4007be0584feb4d7559a"
      unitRef="U001">659000</acmr:DeferredTaxAssetsLeaseLiability>
    <acmr:DeferredTaxAssetsLeaseLiability
      contextRef="c20191231"
      decimals="-3"
      id="Fact_abc6bb5b179541f389c84e2d5f0ec214"
      unitRef="U001">0</acmr:DeferredTaxAssetsLeaseLiability>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="c20211231"
      decimals="-3"
      id="Fact_789338a6b7ca4d7c8e11839c45269faf"
      unitRef="U001">17442000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="c20201231"
      decimals="-3"
      id="Fact_0de9bcd074a84bca89594bce01d734ba"
      unitRef="U001">14188000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="c20191231"
      decimals="-3"
      id="Fact_ba99625b849549bd95eae005d9675dc6"
      unitRef="U001">6227000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="c20211231"
      decimals="-3"
      id="Fact_6a037175dfab46509bf4491c8e19f99b"
      unitRef="U001">919000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="c20201231"
      decimals="-3"
      id="Fact_67471219f1ae44c9b9520160dc8b1f9d"
      unitRef="U001">848000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="c20191231"
      decimals="-3"
      id="Fact_02bc360de3464b0985c58451d9ec527f"
      unitRef="U001">896000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_57949ec5bc3549d891a9254fc8ff712f"
      unitRef="U001">16523000</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="c20201231"
      decimals="-3"
      id="Fact_6af7321c88814f068b92bbb5ee050b9c"
      unitRef="U001">13340000</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="c20191231"
      decimals="-3"
      id="Fact_dce0e4ea86584c4ab4f70a66cee5e722"
      unitRef="U001">5331000</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:DeferredTaxLiabilitiesOtherFiniteLivedAssets
      contextRef="c20211231"
      decimals="-3"
      id="Fact_9f942ef2c1da4fedabded670f67769d9"
      unitRef="U001">589000</us-gaap:DeferredTaxLiabilitiesOtherFiniteLivedAssets>
    <us-gaap:DeferredTaxLiabilitiesOtherFiniteLivedAssets
      contextRef="c20201231"
      decimals="-3"
      id="Fact_023aaa6c69fd47d9bce67ca489e246c5"
      unitRef="U001">697000</us-gaap:DeferredTaxLiabilitiesOtherFiniteLivedAssets>
    <us-gaap:DeferredTaxLiabilitiesOtherFiniteLivedAssets
      contextRef="c20191231"
      decimals="-3"
      id="Fact_2e52dd9578ed4cdbac24228749389c28"
      unitRef="U001">0</us-gaap:DeferredTaxLiabilitiesOtherFiniteLivedAssets>
    <us-gaap:DeferredTaxLiabilitiesTaxDeferredIncome
      contextRef="c20211231"
      decimals="-3"
      id="Fact_c60c925d62324af792090fd7de11d8b9"
      unitRef="U001">1486000</us-gaap:DeferredTaxLiabilitiesTaxDeferredIncome>
    <us-gaap:DeferredTaxLiabilitiesTaxDeferredIncome
      contextRef="c20201231"
      decimals="-3"
      id="Fact_d148cc8861de4f94b8db09141dbb5134"
      unitRef="U001">967000</us-gaap:DeferredTaxLiabilitiesTaxDeferredIncome>
    <us-gaap:DeferredTaxLiabilitiesTaxDeferredIncome
      contextRef="c20191231"
      decimals="-3"
      id="Fact_43e6ff8464d146789de8f00389da8e22"
      unitRef="U001">0</us-gaap:DeferredTaxLiabilitiesTaxDeferredIncome>
    <us-gaap:DeferredTaxLiabilitiesUnrealizedGainsOnTradingSecurities
      contextRef="c20211231"
      decimals="-3"
      id="Fact_987974cbb2c14f3c9e6a21fb1d1f0622"
      unitRef="U001">0</us-gaap:DeferredTaxLiabilitiesUnrealizedGainsOnTradingSecurities>
    <us-gaap:DeferredTaxLiabilitiesUnrealizedGainsOnTradingSecurities
      contextRef="c20201231"
      decimals="-3"
      id="Fact_49340c76b2804278b3ba70784199cf22"
      unitRef="U001">1886000</us-gaap:DeferredTaxLiabilitiesUnrealizedGainsOnTradingSecurities>
    <us-gaap:DeferredTaxLiabilitiesUnrealizedGainsOnTradingSecurities
      contextRef="c20191231"
      decimals="-3"
      id="Fact_eaa055047c5942b09f3f1c35b635711b"
      unitRef="U001">0</us-gaap:DeferredTaxLiabilitiesUnrealizedGainsOnTradingSecurities>
    <acmr:DeferredTaxLiabilitiesEquityInvestments
      contextRef="c20211231"
      decimals="-3"
      id="Fact_adfb3869e4de44ac87de3add1580c1f5"
      unitRef="U001">2584000</acmr:DeferredTaxLiabilitiesEquityInvestments>
    <acmr:DeferredTaxLiabilitiesEquityInvestments
      contextRef="c20201231"
      decimals="-3"
      id="Fact_6f3035d705a440e19d441d30c285a650"
      unitRef="U001">0</acmr:DeferredTaxLiabilitiesEquityInvestments>
    <acmr:DeferredTaxLiabilitiesEquityInvestments
      contextRef="c20191231"
      decimals="-3"
      id="Fact_a20552dd8ace4436a07d592292b9e926"
      unitRef="U001">0</acmr:DeferredTaxLiabilitiesEquityInvestments>
    <us-gaap:DeferredTaxLiabilities
      contextRef="c20211231"
      decimals="-3"
      id="Fact_a4fa65f3bb3041008f856159adb172d5"
      unitRef="U001">4659000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:DeferredTaxLiabilities
      contextRef="c20201231"
      decimals="-3"
      id="Fact_aa0cc9857ed94029b852d5fc2320bf4c"
      unitRef="U001">3550000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:DeferredTaxLiabilities
      contextRef="c20191231"
      decimals="-3"
      id="Fact_e03b791d27994708ba5877a2999a407f"
      unitRef="U001">0</us-gaap:DeferredTaxLiabilities>
    <acmr:DeferredTaxAssetsLiabilitiesTranslationDifference
      contextRef="c20211231"
      decimals="-3"
      id="Fact_630ee73adc404b029683c4a475fc4481"
      unitRef="U001">0</acmr:DeferredTaxAssetsLiabilitiesTranslationDifference>
    <acmr:DeferredTaxAssetsLiabilitiesTranslationDifference
      contextRef="c20201231"
      decimals="-3"
      id="Fact_7ebe580f2ae14536a11531b37e34fec7"
      unitRef="U001">0</acmr:DeferredTaxAssetsLiabilitiesTranslationDifference>
    <acmr:DeferredTaxAssetsLiabilitiesTranslationDifference
      contextRef="c20191231"
      decimals="-3"
      id="Fact_4f5f18ab7bfe4507abe9912f3c7f9fe6"
      unitRef="U001">0</acmr:DeferredTaxAssetsLiabilitiesTranslationDifference>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_1e4403eac8f64d428d2c4612f963e932"
      unitRef="U001">11864000</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet
      contextRef="c20201231"
      decimals="-3"
      id="Fact_a16859dd392a457eada61be14ed59fa0"
      unitRef="U001">9790000</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet
      contextRef="c20191231"
      decimals="-3"
      id="Fact_ffea823adec64bb98075e0a62889f960"
      unitRef="U001">5331000</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount
      contextRef="c20210101to20211231_IncomeTaxAuthorityAxis_DomesticCountryMember"
      decimals="-3"
      id="Fact_8273cfbd38f14616b4d28953a4e3d045"
      unitRef="U001">160000</us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount>
    <us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount
      contextRef="c20200101to20201231_IncomeTaxAuthorityAxis_DomesticCountryMember"
      decimals="-3"
      id="Fact_94ed1f0c13374ed3af5a3abddb19ce35"
      unitRef="U001">288000</us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount>
    <us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount
      contextRef="c20210101to20211231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember"
      decimals="-3"
      id="Fact_4ef18515d8d44fd2a30aa0aa03a23896"
      unitRef="U001">237000</us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount>
    <us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount
      contextRef="c20200101to20201231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember"
      decimals="-3"
      id="Fact_ba5dd36bbe8a40849d52d227653c0b41"
      unitRef="U001">237000</us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount>
    <us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount
      contextRef="c20210101to20211231_IncomeTaxAuthorityAxis_ForeignCountryMember"
      decimals="-3"
      id="Fact_08df4f6688514b12a29b7d0c1ebeaeb4"
      unitRef="U001">522000</us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount>
    <us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount
      contextRef="c20200101to20201231_IncomeTaxAuthorityAxis_ForeignCountryMember"
      decimals="-3"
      id="Fact_bd69bac4833640529dc06ca084b124dc"
      unitRef="U001">323000</us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount>
    <us-gaap:OperatingLossCarryforwards
      contextRef="c20211231_IncomeTaxAuthorityAxis_DomesticCountryMember"
      decimals="-3"
      id="Fact_3efcbcc36e004ff7b68f4404c2bb5c78"
      unitRef="U001">56077000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="c20201231_IncomeTaxAuthorityAxis_DomesticCountryMember"
      decimals="-3"
      id="Fact_94da96572e0b4a1bab61884c73e2cb0c"
      unitRef="U001">44333000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="c20211231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember"
      decimals="-3"
      id="Fact_4f10b87fd94740a6a6bef60d764550a1"
      unitRef="U001">545000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="c20201231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember"
      decimals="-3"
      id="Fact_5bc7a9756e7c4637bc1d2ba96262fad2"
      unitRef="U001">545000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="c20211231_IncomeTaxAuthorityAxis_ForeignCountryMember"
      decimals="-3"
      id="Fact_228d0732f0964b858c34fa2ed80117f1"
      unitRef="U001">2086000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="c20201231_IncomeTaxAuthorityAxis_ForeignCountryMember"
      decimals="-3"
      id="Fact_a4328a54c0c342c084bc1b8260a5420a"
      unitRef="U001">1294000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch
      contextRef="c20211231_IncomeTaxAuthorityAxis_DomesticCountryMember"
      decimals="-3"
      id="Fact_5a4eda4f238140d6853d0f49f27291d3"
      unitRef="U001">200000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch
      contextRef="c20201231_IncomeTaxAuthorityAxis_DomesticCountryMember"
      decimals="-3"
      id="Fact_e042a47bbada40c3b9a007776f5711fa"
      unitRef="U001">359000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch
      contextRef="c20211231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember"
      decimals="-3"
      id="Fact_00caa7ef704d480d878f0d456027e702"
      unitRef="U001">377000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch
      contextRef="c20201231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember"
      decimals="-3"
      id="Fact_3253dda825b54c22b4c5c1dd90cce14b"
      unitRef="U001">377000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch>
    <acmr:OperatingLossCarryforwardsSubjectToAnnualLimitationOwnershipChange
      contextRef="c20191231"
      decimals="-3"
      id="Fact_62ea82f9fc044c569690afffe6a9be0f"
      unitRef="U001">11957000</acmr:OperatingLossCarryforwardsSubjectToAnnualLimitationOwnershipChange>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c20210101to20211231"
      decimals="2"
      id="Fact_7780d7157c5746b784c8410d76821bd2"
      unitRef="U004">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <acmr:ForeignCorporateTaxRate
      contextRef="c20210101to20211231_IncomeTaxAuthorityAxis_ForeignCountryMember_RangeAxis_MinimumMember"
      decimals="3"
      id="Fact_449d4149c4a64008ae9c72126f5a3142"
      unitRef="U004">0.125</acmr:ForeignCorporateTaxRate>
    <acmr:ForeignCorporateTaxRate
      contextRef="c20210101to20211231_IncomeTaxAuthorityAxis_ForeignCountryMember_RangeAxis_MaximumMember"
      decimals="2"
      id="Fact_79f0488c1f764610a1847bdb201a90b6"
      unitRef="U004">0.25</acmr:ForeignCorporateTaxRate>
    <acmr:ForeignCorporateTaxRate
      contextRef="c20210101to20211231_IncomeTaxAuthorityAxis_ForeignCountryMember_RangeAxis_MaximumMember"
      decimals="2"
      id="Fact_3a8358108b504ddea826abf3d2186b4f"
      unitRef="U004">0.25</acmr:ForeignCorporateTaxRate>
    <acmr:ForeignCorporateTaxRate
      contextRef="c20210101to20211231_IncomeTaxAuthorityAxis_ForeignCountryMember_RangeAxis_MinimumMember"
      decimals="3"
      id="Fact_ccccb294551c49abb699e26307ae1185"
      unitRef="U004">0.125</acmr:ForeignCorporateTaxRate>
    <acmr:EffectivePeriodOfPreferentialIncomeTaxRate
      contextRef="c20210101to20211231_IncomeTaxAuthorityAxis_ForeignCountryMember"
      id="Fact_38badc91e7f84f52afbcfa853c35da2f">P3Y</acmr:EffectivePeriodOfPreferentialIncomeTaxRate>
    <acmr:ForeignCorporateTaxRate
      contextRef="c20190101to20191231_IncomeTaxAuthorityAxis_ForeignCountryMember_RangeAxis_MinimumMember"
      decimals="3"
      id="Fact_cbf581ec44394e06b76bf581cd2f85dd"
      unitRef="U004">0.125</acmr:ForeignCorporateTaxRate>
    <acmr:ForeignCorporateTaxRate
      contextRef="c20210101to20211231_IncomeTaxAuthorityAxis_ForeignCountryMember_RangeAxis_MinimumMember"
      decimals="3"
      id="Fact_067e6811a52644908ba923c7c9e94fac"
      unitRef="U004">0.125</acmr:ForeignCorporateTaxRate>
    <acmr:ForeignCorporateTaxRate
      contextRef="c20200101to20201231_IncomeTaxAuthorityAxis_ForeignCountryMember_RangeAxis_MinimumMember"
      decimals="3"
      id="Fact_00d39c0eadf7443ca3a3cae734907b6b"
      unitRef="U004">0.125</acmr:ForeignCorporateTaxRate>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_14977b00663c4c6083c8fc374aae1e70">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Income tax expense for the years ended December 31, 2021, 2020 and 2019 differed from the amounts computed by applying the statutory U.S. federal income tax rate of 21% to pretax income as a result of the following:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-indent: -7pt;"&gt;&lt;span style="text-indent: 0pt;"&gt;2019&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Effective tax rate reconciliation:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Income tax provision at statutory rate&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;21.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;21.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;21.00&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Stock Compensation&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;(12.75&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;(36.99&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;(1.05&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Foreign rate differential&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(11.60&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(5.07&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(6.44&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other permanent difference&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.23&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;11.71&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2.82&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"/&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&#160; Foreign income taxed in US&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;10.32&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"/&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;6.05&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"/&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;6.94&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"/&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Foreign Research Expense&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;(6.59&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;(8.80&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;(5.82&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Change in valuation allowance&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.16&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.25&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(20.19&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total income tax expense (benefit)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.31&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(12.35&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2.74&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c20200101to20201231"
      decimals="2"
      id="Fact_f155fc1f454f4ae48ab3d74f96899592"
      unitRef="U004">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c20210101to20211231"
      decimals="2"
      id="Fact_3cca899a6ea44fd38fdc5964b25d2e14"
      unitRef="U004">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c20210101to20211231"
      decimals="4"
      id="Fact_782ea9e6fc2e41feb8ba076aa3fd991c"
      unitRef="U004">0.2100</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c20200101to20201231"
      decimals="4"
      id="Fact_49d4e1df79f542898112cdfd1bcdcf30"
      unitRef="U004">0.2100</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c20190101to20191231"
      decimals="4"
      id="Fact_7f4a0ee1e94e47f09561c80964d61e7e"
      unitRef="U004">0.2100</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="c20210101to20211231"
      decimals="4"
      id="Fact_08aae8da7dfd4ed2994354f9f2079fac"
      unitRef="U004">-0.1275</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="c20200101to20201231"
      decimals="4"
      id="Fact_13017403638c492689d6cc4a585ae699"
      unitRef="U004">-0.3699</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="c20190101to20191231"
      decimals="4"
      id="Fact_3f9673e5c3cf4353892b8fe7eabd8862"
      unitRef="U004">-0.0105</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="c20210101to20211231"
      decimals="4"
      id="Fact_e732ce2760ec4bcd88495849660e8bda"
      unitRef="U004">-0.1160</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="c20200101to20201231"
      decimals="4"
      id="Fact_4b0afa576bf84145a6d9f10b0bffbdf2"
      unitRef="U004">-0.0507</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="c20190101to20191231"
      decimals="4"
      id="Fact_ba62a91535a34cd5bad83a66c296e7ea"
      unitRef="U004">-0.0644</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="c20210101to20211231"
      decimals="4"
      id="Fact_bd47606b6e814974b7033abbfca8beb2"
      unitRef="U004">-0.0023</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="c20200101to20201231"
      decimals="4"
      id="Fact_3605d4493ec843758865b5112db6cbe7"
      unitRef="U004">0.1171</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="c20190101to20191231"
      decimals="4"
      id="Fact_df622d2822394331ae1fd682d6aa9207"
      unitRef="U004">0.0282</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarnings
      contextRef="c20210101to20211231"
      decimals="4"
      id="Fact_50641b9a6c374fbe81829bb08e4f4d56"
      unitRef="U004">0.1032</us-gaap:EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarnings>
    <us-gaap:EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarnings
      contextRef="c20200101to20201231"
      decimals="4"
      id="Fact_30707c40ff7f4564b1b321b6f5d1eecf"
      unitRef="U004">0.0605</us-gaap:EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarnings>
    <us-gaap:EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarnings
      contextRef="c20190101to20191231"
      decimals="4"
      id="Fact_dddc465f9db1484fa1f089ce2d7f9f03"
      unitRef="U004">0.0694</us-gaap:EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarnings>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseResearchAndDevelopment
      contextRef="c20210101to20211231"
      decimals="4"
      id="Fact_0c4f391608494150b25b776368f81168"
      unitRef="U004">0.0659</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseResearchAndDevelopment>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseResearchAndDevelopment
      contextRef="c20200101to20201231"
      decimals="4"
      id="Fact_39386e77111b454f948ae3404bb8bae1"
      unitRef="U004">0.0880</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseResearchAndDevelopment>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseResearchAndDevelopment
      contextRef="c20190101to20191231"
      decimals="4"
      id="Fact_09a5b9519b3644768045a797665b7c96"
      unitRef="U004">0.0582</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseResearchAndDevelopment>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="c20210101to20211231"
      decimals="4"
      id="Fact_5236ff1d7cf64d4ea3dfa7cf6dc42c11"
      unitRef="U004">0.0016</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="c20200101to20201231"
      decimals="4"
      id="Fact_9b3a9937c5714001a37c9d3b96c2a667"
      unitRef="U004">-0.0025</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="c20190101to20191231"
      decimals="4"
      id="Fact_92dd671910504a4e98ab03f6c5c31930"
      unitRef="U004">-0.2019</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="c20210101to20211231"
      decimals="4"
      id="Fact_548cdc9fc4794b17b384a9a101bf94a4"
      unitRef="U004">0.0031</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="c20200101to20201231"
      decimals="4"
      id="Fact_f3ae86fb45604e1eb983cbae2783a535"
      unitRef="U004">-0.1235</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="c20190101to20191231"
      decimals="4"
      id="Fact_14ba373bdc5245e48f4cdb263d0ba7ea"
      unitRef="U004">-0.0274</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:ScheduleOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForwardTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_a45b797bcfdc4fc5975fe10769a34a35">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Tax positions are evaluated in a two-step process. The Company first determines whether it is more likely than not that a tax position will be sustained upon
      examination. If a tax position meets the more-likely-than-not recognition threshold it is then measured to determine the amount of benefit to recognize in the financial statements. The tax position is measured as the largest amount of benefit that is
      greater than 50% likely of being realized upon ultimate settlement. The aggregate changes in the balance of gross unrecognized tax benefits, which excludes interest and penalties, for the years ended December 31, 2021 and 2020, were as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" rowspan="1" style="vertical-align: middle; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: center; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; text-align: center; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;span style="font-weight: bold;"&gt;2019&lt;/span&gt; &lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Beginning balance&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;570&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;44&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;44&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Increase of unrecognized tax benefits taken in prior years&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;52&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;116&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Increase of unrecognized tax benefits related to current year&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,476&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;410&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: middle; width: 64%;" valign="bottom"&gt;&#160;&#160; Reductions for tax positions related to prior years&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;(32&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Reductions to unrecognized tax benefits related to lapsing statute of limitations&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Ending balance&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,066&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;570&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;44&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForwardTableTextBlock>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="c20201231"
      decimals="-3"
      id="Fact_dc601e6085ad4dcd8742746e6f402d3f"
      unitRef="U001">570000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="c20191231"
      decimals="-3"
      id="Fact_861a3f46447b4448a3367c777ba37eac"
      unitRef="U001">44000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="c20181231"
      decimals="-3"
      id="Fact_60c5d0ac17ef45c2a39739f4a13523c1"
      unitRef="U001">44000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_20e7a38d6ebb405bba4efcf2907dbe1c"
      unitRef="U001">52000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_2f04bf85924f48048a64e8536c0198eb"
      unitRef="U001">116000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_7e07aa7dc7754b359cf21c7f3edd4b20"
      unitRef="U001">0</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_6491402622c249f3b63c7f61f880abe7"
      unitRef="U001">5476000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_741b6dc6097a46f28be9c582f3678750"
      unitRef="U001">410000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_e6f57040ab5a4c7c89a144740424eb27"
      unitRef="U001">0</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_0584840a20194ce5b7764a6a08535fde"
      unitRef="U001">32000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_0f2aae540adc4b2a839273927a9a37eb"
      unitRef="U001">0</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_d9aab1ebc1984de4b60a89b2c62c0e12"
      unitRef="U001">0</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_cf4b2ab329734f0198c3927da6c7323d"
      unitRef="U001">0</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
      contextRef="c20200101to20201231"
      decimals="-3"
      id="Fact_ae04113ccdc040288b38306983e14b9b"
      unitRef="U001">0</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
      contextRef="c20190101to20191231"
      decimals="-3"
      id="Fact_0d8ab2ba1b744d28bfe649f96cd71078"
      unitRef="U001">0</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="c20211231"
      decimals="-3"
      id="Fact_0e181d74279e4fabbbe981eabaab4086"
      unitRef="U001">6066000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="c20201231"
      decimals="-3"
      id="Fact_869db6cd831b4d34b855d9e8121e0e85"
      unitRef="U001">570000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="c20191231"
      decimals="-3"
      id="Fact_07b51b9350ae4c3a90c432e94c8583e5"
      unitRef="U001">44000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="c20211231"
      decimals="-3"
      id="Fact_700a3c0b261f4cd1967d4c325248abd7"
      unitRef="U001">6066000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="c20201231"
      decimals="-3"
      id="Fact_6fa99e095bf54aa0b166bc65b394e800"
      unitRef="U001">570000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued
      contextRef="c20211231"
      decimals="-3"
      id="Fact_44bb5510762b417683a3aa9887689cf1"
      unitRef="U001">44000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued
      contextRef="c20201231"
      decimals="-3"
      id="Fact_2f5d946e464f4604b97f0572a6f886e5"
      unitRef="U001">44000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued>
    <us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate
      contextRef="c20211231"
      decimals="-3"
      id="Fact_a90ddf364357473c9f4dc4f0687c2e9e"
      unitRef="U001">5950000</us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate>
    <us-gaap:SegmentReportingDisclosureTextBlock
      contextRef="c20210101to20211231"
      id="Text_5a224a6b8c5044489df919cc71ca655e">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 22 &#x2013; SEGMENT INFORMATION&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt; &lt;/span&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company is engaged in the developing, manufacture and sale of single-wafer wet cleaning equipment, which have been organized as one reporting segment as the equipment has substantially similar nature and economic characteristics. The Company&#x2019;s principal operating decision maker,
      ACM&#x2019;s Chief Executive Officer, receives and reviews the results of the operations for all major type of equipment as a whole when making decisions about allocating resources and assessing performance of the Company. In accordance with FASB ASC
      280-10, the Company is not required to report segment information.&lt;/div&gt;
</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:NumberOfReportableSegments
      contextRef="c20210101to20211231"
      decimals="INF"
      id="Fact_28adeecc18db479f83ade1b4a9939f19"
      unitRef="U014">1</us-gaap:NumberOfReportableSegments>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="c20210101to20211231"
      id="Text_792cabd371f34cdca9b9cc096d452eb2">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 23 &#x2013; COMMITMENTS AND CONTINGENCIES&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company leases offices under non-cancelable operating lease agreements. See note 11 for future minimum lease payments under non-cancelable operating lease agreements
      with initial terms of one year or more.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;As of December 31, 2021 and 2020, the Company had $5,463 and
      $1,173 of open capital commitments, respectively.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;the normal course of business, the Company is subject to contingencies, including legal proceedings
        and environmental claims arising out of the normal course of businesses that relate to a wide range of matters, including among others, contracts breach liability. The Company records accruals for such contingencies based upon the assessment of the
        probability of occurrence and, where determinable, an estimate of the liability. Management may consider many factors in making these assessments including past history, scientific evidence and the specifics of each matter.&#160; Some of these
        contingencies involve claims that are subject to substantial uncertainties and unascertainable damages&lt;/span&gt;.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Company&#x2019;s management has evaluated all such proceedings and claims that existed as of December 31,
        2021 and 2020. In the opinion of management, no provision for liability nor disclosure was required as of December 31, 2021 related to any claim against the Company because: (a) there is not a reasonable possibility that a loss exceeding amounts
        already recognized (if any) may be incurred with respect to such claim; (b) a reasonably possible loss or range of loss cannot be estimated; or (c) such estimate is immaterial.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;As of December 31, 2021, the Company had one outstanding legal proceeding regarding securities class
        action. On December 21, 2020, a putative class action lawsuit against ACM and three of its current executive officers was filed in the U.S. District Court for the Northern District of California under the caption &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;Kain v. ACM Research, Inc., et al.&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;, No. 3:20-cv-09241. The complaint asserted claims under Sections 10(b) and 20(a) of
        the Securities Exchange Act of 1934 and Rule 10b-5 promulgated thereunder, and sought monetary damages in an unspecified amount as well as costs and expenses incurred in the litigation.&#160; The suit was dismisse&lt;/span&gt;d with prejudice on January 10,
      2022.&lt;/div&gt;
</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <us-gaap:ContractualObligation
      contextRef="c20211231"
      decimals="-3"
      id="Fact_d13d9eb33304480a839e3ef933d798ff"
      unitRef="U001">5463000</us-gaap:ContractualObligation>
    <us-gaap:ContractualObligation
      contextRef="c20201231"
      decimals="-3"
      id="Fact_14bd0d29140c4cb29f943d873478de8a"
      unitRef="U001">1173000</us-gaap:ContractualObligation>
    <us-gaap:RestrictedAssetsDisclosureTextBlock
      contextRef="c20210101to20211231"
      id="Text_ce9cc6ea1a4b45b9ac8b8a2950b02f21">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 24 &#x2013; RESTRICTED NET ASSETS&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In accordance with the PRC&#x2019;s Foreign Enterprise Law, ACM Shanghai, Shengwei Research (Shanghai), Inc., and ACM Wuxi are required to make contributions to a statutory
      surplus reserve (note 2).&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;As a result of PRC laws and regulations that require annual appropriations of 10% of net after-tax profits to be set aside prior to payment of dividends as a general
      reserve fund or statutory surplus fund, ACM Shanghai is restricted in its ability to transfer a portion of its net assets to ACM (including any assets received as distributions from Shengwei Research (Shanghai), Inc. and ACM Wuxi. Amounts restricted
      included paid-in capital and statutory reserve funds, as determined pursuant to PRC accounting standards and regulations, were $671,750, $119,377 and $113,168 as of December 31,
      2021, 2020 and 2019, respectively.&lt;/div&gt;
</us-gaap:RestrictedAssetsDisclosureTextBlock>
    <us-gaap:AmountOfRestrictedNetAssetsForConsolidatedAndUnconsolidatedSubsidiaries
      contextRef="c20211231"
      decimals="-3"
      id="Fact_e46f03736f1b409f8d7f1ab55ffd920a"
      unitRef="U001">671750000</us-gaap:AmountOfRestrictedNetAssetsForConsolidatedAndUnconsolidatedSubsidiaries>
    <us-gaap:AmountOfRestrictedNetAssetsForConsolidatedAndUnconsolidatedSubsidiaries
      contextRef="c20201231"
      decimals="-3"
      id="Fact_4f89bae8b017431891234507594c6d24"
      unitRef="U001">119377000</us-gaap:AmountOfRestrictedNetAssetsForConsolidatedAndUnconsolidatedSubsidiaries>
    <us-gaap:AmountOfRestrictedNetAssetsForConsolidatedAndUnconsolidatedSubsidiaries
      contextRef="c20191231"
      decimals="-3"
      id="Fact_20a12b69e3cf4f71ae77944a9febc89a"
      unitRef="U001">113168000</us-gaap:AmountOfRestrictedNetAssetsForConsolidatedAndUnconsolidatedSubsidiaries>
    <us-gaap:CondensedFinancialInformationOfParentCompanyOnlyDisclosureTextBlock
      contextRef="c20210101to20211231"
      id="Text_1554e71dcad741c6aa4f1c94ce12abf4">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;NOTE 25 &#x2013; PARENT COMPANY ONLY CONDENSED FINANCIAL INFORMATION&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company performed a test on the restricted net assets of consolidated subsidiaries in accordance with Rule 4-08(e)(3) of Regulation S-X of the SEC and concluded that
      it was applicable for the Company to disclose the financial information for ACM only. Certain information and footnote disclosures generally included in financial statements prepared in accordance with GAAP have been condensed or omitted. The
      footnote disclosure contains supplemental information relating to the operations of ACM separately.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;ACM&#x2019;s subsidiaries did not pay any dividends to ACM during the periods presented.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;ACM did not have significant capital or other commitments, long-term obligations, or guarantees as of December 31, 2021 or 2020.&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following represents condensed unconsolidated financial information of ACM only as of December 31, 2021 and 2020, and for the years ended December 31, 2021, 2020 and
      2019:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;CONDENSED BALANCE SHEET&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Assets&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: middle; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Current assets:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 25.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cash and cash equivalents&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;29,536&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;30,188&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 25.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accounts receivable&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;16&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 25.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Due from intercompany&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 25.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other receivable&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;48&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 25.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Prepaid expenses&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;594&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;359&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total current assets&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;30,194&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;30,552&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred tax assets&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;13,166&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;11,076&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Investment in unconsolidated subsidiaries&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;637,961&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;102,455&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 33.85pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total assets&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;681,321&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;144,083&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Liabilities and Stockholders&#x2019; Equity&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accounts payable&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;875&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,278&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other payable&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;404&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;255&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Income taxes payable&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;254&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;31&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;FIN-48 payable&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,282&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;83&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred tax liability&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,302&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,286&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 33.85pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total liabilities&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,117&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,933&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 33.85pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total stockholders&#x2019; equity&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;676,204&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;141,150&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 33.85pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total liabilities and stockholders equity&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;681,321&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;144,083&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;CONDENSED STATEMENT OF OPERATIONS&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Revenue&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;16&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,776&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;10,683&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cost of revenue&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,707&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(10,036&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 33.85pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Gross profit&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;16&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;69&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;647&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Operating expenses:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 25.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Sales and marketing expenses&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2,443&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,361&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(490&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 25.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;General and administrative expenses&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(5,116&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(5,010&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(3,639&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 25.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Research and development expenses&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(476&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Loss from operations&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(7,543&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(6,302&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(3,958&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Equity in earnings of unconsolidated subsidiaries&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;43,866&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;36,273&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;22,510&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Change in fair value of financial liability&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(11,964&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Interest income, net&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;54&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;90&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;231&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Interest expense, net&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(67&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other income, net&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,380&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;683&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;178&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Income before income taxes&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;37,757&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,780&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,894&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 25.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Income tax expense&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net income&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;37,757&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,780&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,894&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;CONDENSED STATEMENT OF CASH FLOWS&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net cash used in operating activities&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(5,902&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(290&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(7,957&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net cash provided by investing activities&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net cash provided by financing activities&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,250&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,745&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;23,347&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net increase (decrease) in cash and cash equivalents&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(652&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,455&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;15,390&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cash and cash equivalents, beginning of year&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;30,188&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;27,733&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;13,161&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Effect of exchange rate changes on cash and cash equivalents&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(818&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cash and cash equivalents, end of year&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;29,536&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;30,188&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;27,733&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:CondensedFinancialInformationOfParentCompanyOnlyDisclosureTextBlock>
    <srt:ScheduleOfCondensedBalanceSheetTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_c20cb50950bd41d786ae347ec43dc417">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following represents condensed unconsolidated financial information of ACM only as of December 31, 2021 and 2020, and for the years ended December 31, 2021, 2020 and
      2019:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;CONDENSED BALANCE SHEET&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; width: 100%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Assets&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: middle; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Current assets:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 25.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cash and cash equivalents&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;29,536&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;30,188&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 25.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accounts receivable&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;16&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 25.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Due from intercompany&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 25.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other receivable&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;48&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 25.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Prepaid expenses&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;594&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;359&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total current assets&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;30,194&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;30,552&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred tax assets&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;13,166&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;11,076&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Investment in unconsolidated subsidiaries&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;637,961&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;102,455&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 33.85pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total assets&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;681,321&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;144,083&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Liabilities and Stockholders&#x2019; Equity&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accounts payable&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;875&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,278&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other payable&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;404&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;255&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Income taxes payable&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;254&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;31&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;FIN-48 payable&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,282&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;83&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred tax liability&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,302&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,286&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 33.85pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total liabilities&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,117&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,933&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 33.85pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total stockholders&#x2019; equity&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;676,204&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;141,150&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 33.85pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total liabilities and stockholders equity&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;681,321&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;144,083&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</srt:ScheduleOfCondensedBalanceSheetTableTextBlock>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="c20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_feb48e894c204233b13fc363a09e6000"
      unitRef="U001">29536000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="c20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_f93ca913c3a04616906bbba341b5ff42"
      unitRef="U001">30188000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="c20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_4db542a918bd426da638367baf92fb48"
      unitRef="U001">16000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="c20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_b08b346f779a48b981dc141aa3278ee1"
      unitRef="U001">0</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:DueFromAffiliateCurrent
      contextRef="c20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_4f1fe512171d488f8827e802cb2bb52d"
      unitRef="U001">0</us-gaap:DueFromAffiliateCurrent>
    <us-gaap:DueFromAffiliateCurrent
      contextRef="c20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_b86818d0462d4da99a0437fd1cca4079"
      unitRef="U001">0</us-gaap:DueFromAffiliateCurrent>
    <us-gaap:OtherReceivablesNetCurrent
      contextRef="c20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_71df9dae87184739ac5f8dc4e5ef7ea7"
      unitRef="U001">48000</us-gaap:OtherReceivablesNetCurrent>
    <us-gaap:OtherReceivablesNetCurrent
      contextRef="c20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_6f1fa9d1352b4c0380fb22778a2bf061"
      unitRef="U001">5000</us-gaap:OtherReceivablesNetCurrent>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="c20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_870ec5d3d64f4e7284a14b6562528967"
      unitRef="U001">594000</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="c20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_b078b747214b44a29a84ba3164e8a804"
      unitRef="U001">359000</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:AssetsCurrent
      contextRef="c20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_6c4abeef36f944159f46f1b81e3609ba"
      unitRef="U001">30194000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="c20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_b2e77dfe74fb497284ab4936448d0d69"
      unitRef="U001">30552000</us-gaap:AssetsCurrent>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="c20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_773eeeea1de24226846ed8a1e8ec34b3"
      unitRef="U001">13166000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="c20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_77449c3b30f7487ba56040564f114ca2"
      unitRef="U001">11076000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:InvestmentsInAffiliatesSubsidiariesAssociatesAndJointVentures
      contextRef="c20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_9c8a57b7f4cc43808594ff9f902dfeb3"
      unitRef="U001">637961000</us-gaap:InvestmentsInAffiliatesSubsidiariesAssociatesAndJointVentures>
    <us-gaap:InvestmentsInAffiliatesSubsidiariesAssociatesAndJointVentures
      contextRef="c20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_493c31f1b8f24ab09649ed61b3f59a95"
      unitRef="U001">102455000</us-gaap:InvestmentsInAffiliatesSubsidiariesAssociatesAndJointVentures>
    <us-gaap:Assets
      contextRef="c20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_52567ac0050741f48854e32b8e77a9fc"
      unitRef="U001">681321000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="c20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_abad5779b85f430a854aeee240f9ebd4"
      unitRef="U001">144083000</us-gaap:Assets>
    <us-gaap:AccountsPayableAndOtherAccruedLiabilities
      contextRef="c20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_6533ca181e8c4d9ea9ed842f15c1d2cd"
      unitRef="U001">875000</us-gaap:AccountsPayableAndOtherAccruedLiabilities>
    <us-gaap:AccountsPayableAndOtherAccruedLiabilities
      contextRef="c20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_ef6befe4cb2244828ec5f38a1cc29c4e"
      unitRef="U001">1278000</us-gaap:AccountsPayableAndOtherAccruedLiabilities>
    <us-gaap:OtherNotesPayable
      contextRef="c20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_9ead2242f2174a04a05d93dd11667b24"
      unitRef="U001">404000</us-gaap:OtherNotesPayable>
    <us-gaap:OtherNotesPayable
      contextRef="c20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_dcdd0cf13a594078bb186b96a66c9aba"
      unitRef="U001">255000</us-gaap:OtherNotesPayable>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="c20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_937cd3d3825d4c108435ffcf4d9412a1"
      unitRef="U001">254000</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="c20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_aec5a9319e9d437aa9270b6179f17e9e"
      unitRef="U001">31000</us-gaap:AccruedIncomeTaxesCurrent>
    <acmr:IncomeTaxesCurrentPayableAndDeferredTaxLiabilities
      contextRef="c20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_59b996826f3a4fa186f9c100696524bc"
      unitRef="U001">2282000</acmr:IncomeTaxesCurrentPayableAndDeferredTaxLiabilities>
    <acmr:IncomeTaxesCurrentPayableAndDeferredTaxLiabilities
      contextRef="c20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_636f691491d54f0496c3640723f64b44"
      unitRef="U001">83000</acmr:IncomeTaxesCurrentPayableAndDeferredTaxLiabilities>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="c20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_95fc939189014a6b8ecc8dfe00c73283"
      unitRef="U001">1302000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="c20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_c2d95189db7743d2bbe61a0705332222"
      unitRef="U001">1286000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:Liabilities
      contextRef="c20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_564828abef534b75a39532f0f8892fdd"
      unitRef="U001">5117000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="c20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_0bf38cbf807f41fb85578c0ea750cb40"
      unitRef="U001">2933000</us-gaap:Liabilities>
    <us-gaap:StockholdersEquity
      contextRef="c20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_0bc97da02d344b2caff358f64846a783"
      unitRef="U001">676204000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_ccb4350d87534022855ad4f150787607"
      unitRef="U001">141150000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="c20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_8abc13b670ab429d987be5f6643bd92f"
      unitRef="U001">681321000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="c20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_e17721da657b4751811996634debfc88"
      unitRef="U001">144083000</us-gaap:LiabilitiesAndStockholdersEquity>
    <srt:ScheduleOfCondensedIncomeStatementTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_fed237ca7b3b40799eb0caf54fbb2b3f">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;CONDENSED STATEMENT OF OPERATIONS&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Revenue&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;16&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,776&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;10,683&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cost of revenue&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,707&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(10,036&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 33.85pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Gross profit&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;16&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;69&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;647&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Operating expenses:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 25.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Sales and marketing expenses&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2,443&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,361&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(490&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 25.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;General and administrative expenses&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(5,116&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(5,010&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(3,639&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 25.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Research and development expenses&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(476&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Loss from operations&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(7,543&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(6,302&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(3,958&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Equity in earnings of unconsolidated subsidiaries&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;43,866&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;36,273&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;22,510&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Change in fair value of financial liability&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(11,964&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Interest income, net&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;54&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;90&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;231&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Interest expense, net&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(67&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other income, net&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,380&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;683&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;178&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Income before income taxes&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;37,757&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,780&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,894&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 25.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Income tax expense&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 14.4pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net income&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;37,757&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,780&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;18,894&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</srt:ScheduleOfCondensedIncomeStatementTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_cae3efd0d33f472884811d245cbc3c38"
      unitRef="U001">16000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_1ce6b2ee68b043f481478f7be352654c"
      unitRef="U001">1776000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_76bd4e7b1b824e639aed5164d77d8418"
      unitRef="U001">10683000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfRevenue
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_2624325d4a78470e8bce0a7251d56a0e"
      unitRef="U001">0</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_c1507d91c79c40fbbab1ea37292cc40c"
      unitRef="U001">1707000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_42449e217d1343b99a089832effd4a1b"
      unitRef="U001">10036000</us-gaap:CostOfRevenue>
    <us-gaap:GrossProfit
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_466390fa849246c4bff8e500d98fedf9"
      unitRef="U001">16000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_34e2c77687754759af5806322805d0bb"
      unitRef="U001">69000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_f5357473bcaa4f2fa07695cf39d5a7d3"
      unitRef="U001">647000</us-gaap:GrossProfit>
    <us-gaap:SellingAndMarketingExpense
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_abc9c7beba004deb9205efbb44d9e6df"
      unitRef="U001">2443000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_8562d07dc1c24be6988771d4cc4d565a"
      unitRef="U001">1361000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_fbfba963b71545deb19811b14628d072"
      unitRef="U001">490000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_b48692c55b73419c94cff0762d97e679"
      unitRef="U001">5116000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_4a6658ae19cf4935bb4456dcaba4be51"
      unitRef="U001">5010000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_ab5eb6e1a12c4145888847353023348e"
      unitRef="U001">3639000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_5ace7df1f5104133a4ddae535f9d11cb"
      unitRef="U001">0</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_b77b70b8efa34b3f90f5b6580bd06bb4"
      unitRef="U001">0</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_dde9e72b4e8e4b0990d8312d7106039f"
      unitRef="U001">476000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:OperatingIncomeLoss
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_10936a859606426887088f519647ca07"
      unitRef="U001">-7543000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_e88169600c25496f9314a2530f2bbc35"
      unitRef="U001">-6302000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_c348a79f156b4dab9a7b7d4237edffaf"
      unitRef="U001">-3958000</us-gaap:OperatingIncomeLoss>
    <us-gaap:IncomeLossFromEquityMethodInvestments
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_4ff890efb69a4d658aa038818021a6c1"
      unitRef="U001">43866000</us-gaap:IncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromEquityMethodInvestments
      contextRef="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_224e977ea098400aaf14e092d163f0a6"
      unitRef="U001">36273000</us-gaap:IncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromEquityMethodInvestments
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_1ac30bafcd3243a6b8dda61e23d2d04a"
      unitRef="U001">22510000</us-gaap:IncomeLossFromEquityMethodInvestments>
    <acmr:IncreaseDecreaseInFinancialLiabilityCarriedAtFairValue
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_e62f831bdce44b22b82c7b84cf088331"
      unitRef="U001">0</acmr:IncreaseDecreaseInFinancialLiabilityCarriedAtFairValue>
    <acmr:IncreaseDecreaseInFinancialLiabilityCarriedAtFairValue
      contextRef="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_c8cbd66aaa2941a29aa11565af92e14a"
      unitRef="U001">11964000</acmr:IncreaseDecreaseInFinancialLiabilityCarriedAtFairValue>
    <acmr:IncreaseDecreaseInFinancialLiabilityCarriedAtFairValue
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_18fd167842214c0e902a6b55556f2521"
      unitRef="U001">0</acmr:IncreaseDecreaseInFinancialLiabilityCarriedAtFairValue>
    <us-gaap:InvestmentIncomeInterest
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_a6b7a3379edd485e843083cae2b35883"
      unitRef="U001">54000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest
      contextRef="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_e563166b163e470ebab9d77a885535cf"
      unitRef="U001">90000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_0e8bcdc8d510480487f5a40a8c7ec022"
      unitRef="U001">231000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InterestExpense
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_24fdb1a28dd04248a343b8ae7d5730c4"
      unitRef="U001">0</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_18b505f98a88425cb2a544f1712d5747"
      unitRef="U001">0</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_f832b2c557b042f39fad3390c4472e31"
      unitRef="U001">67000</us-gaap:InterestExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_fb14d7e0d0664c0792e03e7bce5875c5"
      unitRef="U001">1380000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_aaebc75bc4fe4111b270b2a364a76233"
      unitRef="U001">683000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_bafc2cebfb26431887f48c2eae01b5d8"
      unitRef="U001">178000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_9e3d714e9b02484e8c7cbaf6989a0b8d"
      unitRef="U001">37757000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_7113025532a243fba7b5721284ceba60"
      unitRef="U001">18780000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_bf4862ba48e84e5c9b5dd8fd4e0318cb"
      unitRef="U001">18894000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_d8421bd706d14ab999f2f7da4af25c65"
      unitRef="U001">0</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_80799fc2502d44cb97043ce54ceae157"
      unitRef="U001">0</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_0aaf8daa57ad458a843b4fe92fbb3f83"
      unitRef="U001">0</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_7067366f279b4f45b5bd97deaff3f498"
      unitRef="U001">37757000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_0e4fdedca55a49a8b54a0dc5cab3ce78"
      unitRef="U001">18780000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_f6faffe632c94ba795f0edc80dd65f18"
      unitRef="U001">18894000</us-gaap:NetIncomeLoss>
    <srt:ScheduleOfCondensedCashFlowStatementTableTextBlock
      contextRef="c20210101to20211231"
      id="Text_02434a5828d24ac49e87c3e0bc357cb3">
&lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;CONDENSED STATEMENT OF CASH FLOWS&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="margin: 0px auto; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"/&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Year Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2021&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2020&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: middle; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net cash used in operating activities&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(5,902&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(290&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(7,957&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net cash provided by investing activities&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net cash provided by financing activities&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,250&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,745&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;23,347&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net increase (decrease) in cash and cash equivalents&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(652&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,455&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;15,390&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cash and cash equivalents, beginning of year&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;30,188&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;27,733&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;13,161&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Effect of exchange rate changes on cash and cash equivalents&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;-&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(818&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: middle; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cash and cash equivalents, end of year&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;29,536&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;30,188&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;27,733&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</srt:ScheduleOfCondensedCashFlowStatementTableTextBlock>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_0cffd47661294fa3ae0749f482b3a538"
      unitRef="U001">-5902000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_60816f43c1bb415694c7bd55bf54e38f"
      unitRef="U001">-290000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_299fa7dd40a9414e852297a5d68e1538"
      unitRef="U001">-7957000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_ebc7fa3d2e484e3ca982cc8c69df44bd"
      unitRef="U001">0</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_919514f784aa484a9c80d18be673cf37"
      unitRef="U001">0</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_22b7233fffd843ca8c5ddd653ea3818a"
      unitRef="U001">0</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_1b32c4ae81014f2395adb9983a2e5ed0"
      unitRef="U001">5250000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_3aba720133cb4a8595c65449d303927d"
      unitRef="U001">2745000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_da654f79bd83402bbeaebb17acfadd70"
      unitRef="U001">23347000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_235f36c1a2f04d78890d2206caeba0c6"
      unitRef="U001">-652000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_748903137b534c52af05b2b844195786"
      unitRef="U001">2455000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_08fd5cfb9887443d91fcf3db7489e218"
      unitRef="U001">15390000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_0a6e137d1b5f4bfc8d35c8315a963854"
      unitRef="U001">30188000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_8cd9c188a09643c79ac05c9e9e8dbd44"
      unitRef="U001">27733000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20181231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_22ecbf86e1384efca00d2835fe80e5bf"
      unitRef="U001">13161000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20210101to20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_aaa03a5d1c444f8e8d3a17f7020a6651"
      unitRef="U001">0</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20200101to20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_2fa30a9e490a435183873faa9871a18b"
      unitRef="U001">0</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_a8df242a8821407fa2d58dc54fc8a92a"
      unitRef="U001">-818000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20211231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_f91d495f5fbf4e3d99b7427db2e27a36"
      unitRef="U001">29536000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20201231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_5ff835f9c45645a198ddd21f1de76265"
      unitRef="U001">30188000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20191231_ConsolidatedEntitiesAxis_ParentCompanyMember"
      decimals="-3"
      id="Fact_816735a5724c4368a1f982af2d9aeb0d"
      unitRef="U001">27733000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <link:footnoteLink
      xlink:role="http://www.xbrl.org/2003/role/link"
      xlink:type="extended">
        <link:loc
          xlink:href="#Fact_bceacd5ae2e64941801ccf604d0c015e"
          xlink:label="Fact_bceacd5ae2e64941801ccf604d0c015e"
          xlink:type="locator"/>
        <link:footnote id="Foot_c4b257251cb842cab1cbe24ea44e1896" xlink:label="Foot_c4b257251cb842cab1cbe24ea44e1896" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Expected term of share options is based on the
              average of the vesting period and the contractual term for each grant according to Staff Accounting Bulletin 110.</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_bceacd5ae2e64941801ccf604d0c015e"
          xlink:to="Foot_c4b257251cb842cab1cbe24ea44e1896"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_6ce84786ed4147d29d64f78e20c6524a"
          xlink:label="Fact_6ce84786ed4147d29d64f78e20c6524a"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_6ce84786ed4147d29d64f78e20c6524a"
          xlink:to="Foot_c4b257251cb842cab1cbe24ea44e1896"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_2315df69e1ca4795aca6581e55b50047"
          xlink:label="Fact_2315df69e1ca4795aca6581e55b50047"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_2315df69e1ca4795aca6581e55b50047"
          xlink:to="Foot_c4b257251cb842cab1cbe24ea44e1896"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_7214343129fe47349d156bbac1ac70c9"
          xlink:label="Fact_7214343129fe47349d156bbac1ac70c9"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_7214343129fe47349d156bbac1ac70c9"
          xlink:to="Foot_c4b257251cb842cab1cbe24ea44e1896"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_bf5e158da22946fe9ad64ef8ee7fdb81"
          xlink:label="Fact_bf5e158da22946fe9ad64ef8ee7fdb81"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_bf5e158da22946fe9ad64ef8ee7fdb81"
          xlink:to="Foot_c4b257251cb842cab1cbe24ea44e1896"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_9c3e64489c0e453e8e13212702e6c849"
          xlink:label="Fact_9c3e64489c0e453e8e13212702e6c849"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_9c3e64489c0e453e8e13212702e6c849"
          xlink:to="Foot_c4b257251cb842cab1cbe24ea44e1896"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_c53d01595c2b42ca92bc86fe0eff52b5"
          xlink:label="Fact_c53d01595c2b42ca92bc86fe0eff52b5"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_c53d01595c2b42ca92bc86fe0eff52b5"
          xlink:to="Foot_c4b257251cb842cab1cbe24ea44e1896"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_0ca559a9f8ef4d31815c0047d87edf11"
          xlink:label="Fact_0ca559a9f8ef4d31815c0047d87edf11"
          xlink:type="locator"/>
        <link:footnote id="Foot_7f99eb7f5795480ea271eed6bd1902a4" xlink:label="Foot_7f99eb7f5795480ea271eed6bd1902a4" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Fair value of Class A common stock was the closing
              market price of the Class A common stock on July 29, 2020.</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_0ca559a9f8ef4d31815c0047d87edf11"
          xlink:to="Foot_7f99eb7f5795480ea271eed6bd1902a4"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_a08a845524c14fe0a8f0d588179b143f"
          xlink:label="Fact_a08a845524c14fe0a8f0d588179b143f"
          xlink:type="locator"/>
        <link:footnote id="Foot_071182c7e7514d31b161328bfe278944" xlink:label="Foot_071182c7e7514d31b161328bfe278944" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Fair value of Class A common stock value was the closing
                market price of the Class A common stock on the grant date.</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_a08a845524c14fe0a8f0d588179b143f"
          xlink:to="Foot_071182c7e7514d31b161328bfe278944"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_ca4d1c4da1684e09a89beb23fb9c2fdc"
          xlink:label="Fact_ca4d1c4da1684e09a89beb23fb9c2fdc"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_ca4d1c4da1684e09a89beb23fb9c2fdc"
          xlink:to="Foot_071182c7e7514d31b161328bfe278944"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_6e179ebccb994804bb856e689b96754e"
          xlink:label="Fact_6e179ebccb994804bb856e689b96754e"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_6e179ebccb994804bb856e689b96754e"
          xlink:to="Foot_071182c7e7514d31b161328bfe278944"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_f781cc202744419988604408a8e2efd0"
          xlink:label="Fact_f781cc202744419988604408a8e2efd0"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_f781cc202744419988604408a8e2efd0"
          xlink:to="Foot_071182c7e7514d31b161328bfe278944"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_0697c9a7c54e44468fe6edf8d12c3831"
          xlink:label="Fact_0697c9a7c54e44468fe6edf8d12c3831"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_0697c9a7c54e44468fe6edf8d12c3831"
          xlink:to="Foot_071182c7e7514d31b161328bfe278944"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_252f7c1f376948b98088ed664945871e"
          xlink:label="Fact_252f7c1f376948b98088ed664945871e"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_252f7c1f376948b98088ed664945871e"
          xlink:to="Foot_071182c7e7514d31b161328bfe278944"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_1acf2e771e3a4df1a47f789087d1d434"
          xlink:label="Fact_1acf2e771e3a4df1a47f789087d1d434"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_1acf2e771e3a4df1a47f789087d1d434"
          xlink:to="Foot_071182c7e7514d31b161328bfe278944"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_b12835ca7ece470bb4394f5f4adeece0"
          xlink:label="Fact_b12835ca7ece470bb4394f5f4adeece0"
          xlink:type="locator"/>
        <link:footnote id="Foot_a568dc6349b9413ea59a50ddae0297b5" xlink:label="Foot_a568dc6349b9413ea59a50ddae0297b5" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Risk-free interest rate is based on the yields of
              U.S. Treasury securities with maturities similar to the expected term of the share options in effect at the time of grant.</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_b12835ca7ece470bb4394f5f4adeece0"
          xlink:to="Foot_a568dc6349b9413ea59a50ddae0297b5"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_4deda3d213cd41aab0dd4f7986f3525b"
          xlink:label="Fact_4deda3d213cd41aab0dd4f7986f3525b"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_4deda3d213cd41aab0dd4f7986f3525b"
          xlink:to="Foot_a568dc6349b9413ea59a50ddae0297b5"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_70a65790905d442a9dc2e0cd079efa87"
          xlink:label="Fact_70a65790905d442a9dc2e0cd079efa87"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_70a65790905d442a9dc2e0cd079efa87"
          xlink:to="Foot_a568dc6349b9413ea59a50ddae0297b5"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_42db956604f945c8885e38afbc9d15f2"
          xlink:label="Fact_42db956604f945c8885e38afbc9d15f2"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_42db956604f945c8885e38afbc9d15f2"
          xlink:to="Foot_a568dc6349b9413ea59a50ddae0297b5"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_9e2e97cb2b734e32a22415708842507b"
          xlink:label="Fact_9e2e97cb2b734e32a22415708842507b"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_9e2e97cb2b734e32a22415708842507b"
          xlink:to="Foot_a568dc6349b9413ea59a50ddae0297b5"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_aff0222edb0f4e4680e9414541044661"
          xlink:label="Fact_aff0222edb0f4e4680e9414541044661"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_aff0222edb0f4e4680e9414541044661"
          xlink:to="Foot_a568dc6349b9413ea59a50ddae0297b5"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_a7f71d95ba34498cbd72f4be4d135310"
          xlink:label="Fact_a7f71d95ba34498cbd72f4be4d135310"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_a7f71d95ba34498cbd72f4be4d135310"
          xlink:to="Foot_a568dc6349b9413ea59a50ddae0297b5"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_07fb60b7e56247c2ab65b51d6f48061b"
          xlink:label="Fact_07fb60b7e56247c2ab65b51d6f48061b"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_07fb60b7e56247c2ab65b51d6f48061b"
          xlink:to="Foot_a568dc6349b9413ea59a50ddae0297b5"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_bfd12e82fd4a4cca9c880a1793732dd3"
          xlink:label="Fact_bfd12e82fd4a4cca9c880a1793732dd3"
          xlink:type="locator"/>
        <link:footnote id="Foot_8861fb2a36ca4ede87e52ea7bccf33c9" xlink:label="Foot_8861fb2a36ca4ede87e52ea7bccf33c9" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Expected dividend is assumed to be 0%, as ACM has no
              history or expectation of paying a dividend on its common stock.</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_bfd12e82fd4a4cca9c880a1793732dd3"
          xlink:to="Foot_8861fb2a36ca4ede87e52ea7bccf33c9"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_f95572f4c41b4765be6dfd5e60b20e8e"
          xlink:label="Fact_f95572f4c41b4765be6dfd5e60b20e8e"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_f95572f4c41b4765be6dfd5e60b20e8e"
          xlink:to="Foot_8861fb2a36ca4ede87e52ea7bccf33c9"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_26ba4ab35eaf424a96e71e273888a82e"
          xlink:label="Fact_26ba4ab35eaf424a96e71e273888a82e"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_26ba4ab35eaf424a96e71e273888a82e"
          xlink:to="Foot_8861fb2a36ca4ede87e52ea7bccf33c9"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_d18d73aae6c6492f92db9124569f7429"
          xlink:label="Fact_d18d73aae6c6492f92db9124569f7429"
          xlink:type="locator"/>
        <link:footnote id="Foot_3898995c39734f209ff77534ace4f480" xlink:label="Foot_3898995c39734f209ff77534ace4f480" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Expected dividend is assumed to be 0% as ACM has no history or expectation of paying a dividend on its common stock.</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_d18d73aae6c6492f92db9124569f7429"
          xlink:to="Foot_3898995c39734f209ff77534ace4f480"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_721648efeceb4b468edee4c342eef5b6"
          xlink:label="Fact_721648efeceb4b468edee4c342eef5b6"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_721648efeceb4b468edee4c342eef5b6"
          xlink:to="Foot_3898995c39734f209ff77534ace4f480"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_727962f230994e978ca66233a5da2fed"
          xlink:label="Fact_727962f230994e978ca66233a5da2fed"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_727962f230994e978ca66233a5da2fed"
          xlink:to="Foot_3898995c39734f209ff77534ace4f480"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_62aae686fadd40778b2ec07d7120e184"
          xlink:label="Fact_62aae686fadd40778b2ec07d7120e184"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_62aae686fadd40778b2ec07d7120e184"
          xlink:to="Foot_3898995c39734f209ff77534ace4f480"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_d746a4783ea849ff9e2ba4c344036905"
          xlink:label="Fact_d746a4783ea849ff9e2ba4c344036905"
          xlink:type="locator"/>
        <link:footnote id="Foot_1f1f964567f14f698967309501d296ff" xlink:label="Foot_1f1f964567f14f698967309501d296ff" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Volatility is calculated based on the historical
              volatility of the stock of companies comparable to ACM in the period equal to the expected term of each grant.</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_d746a4783ea849ff9e2ba4c344036905"
          xlink:to="Foot_1f1f964567f14f698967309501d296ff"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_d98ccd823ce54ed2bc78e97fbd005915"
          xlink:label="Fact_d98ccd823ce54ed2bc78e97fbd005915"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_d98ccd823ce54ed2bc78e97fbd005915"
          xlink:to="Foot_1f1f964567f14f698967309501d296ff"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_35d65cb798404175b4d0c18708ed0332"
          xlink:label="Fact_35d65cb798404175b4d0c18708ed0332"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_35d65cb798404175b4d0c18708ed0332"
          xlink:to="Foot_1f1f964567f14f698967309501d296ff"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_da800c9022e74571bb49679c1b94efb1"
          xlink:label="Fact_da800c9022e74571bb49679c1b94efb1"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_da800c9022e74571bb49679c1b94efb1"
          xlink:to="Foot_1f1f964567f14f698967309501d296ff"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_c84c740fa3c744abb1a56b475a9a5671"
          xlink:label="Fact_c84c740fa3c744abb1a56b475a9a5671"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_c84c740fa3c744abb1a56b475a9a5671"
          xlink:to="Foot_1f1f964567f14f698967309501d296ff"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_e7f5c8534a194401a8f3f104425f5d98"
          xlink:label="Fact_e7f5c8534a194401a8f3f104425f5d98"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_e7f5c8534a194401a8f3f104425f5d98"
          xlink:to="Foot_1f1f964567f14f698967309501d296ff"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_dc02c8a729fc466186c993c2c40b0d3c"
          xlink:label="Fact_dc02c8a729fc466186c993c2c40b0d3c"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_dc02c8a729fc466186c993c2c40b0d3c"
          xlink:to="Foot_1f1f964567f14f698967309501d296ff"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_b7af258aeea64ab78612f77045e5df9c"
          xlink:label="Fact_b7af258aeea64ab78612f77045e5df9c"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_b7af258aeea64ab78612f77045e5df9c"
          xlink:to="Foot_1f1f964567f14f698967309501d296ff"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_6d5096bddec541ff92beefa82aeffb68"
          xlink:label="Fact_6d5096bddec541ff92beefa82aeffb68"
          xlink:type="locator"/>
        <link:footnote id="Foot_9d4312b900ed493fbdccdd202ff27b16" xlink:label="Foot_9d4312b900ed493fbdccdd202ff27b16" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">guaranteed by Cleanchip Technologies Limited</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_6d5096bddec541ff92beefa82aeffb68"
          xlink:to="Foot_9d4312b900ed493fbdccdd202ff27b16"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_bb26bacde0114615bf2f9a2cfc616855"
          xlink:label="Fact_bb26bacde0114615bf2f9a2cfc616855"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_bb26bacde0114615bf2f9a2cfc616855"
          xlink:to="Foot_9d4312b900ed493fbdccdd202ff27b16"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_6e7f49f8a90545168c523797d7b1a57b"
          xlink:label="Fact_6e7f49f8a90545168c523797d7b1a57b"
          xlink:type="locator"/>
        <link:footnote id="Foot_a20fed68e8b84de79784f9c59821582f" xlink:label="Foot_a20fed68e8b84de79784f9c59821582f" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">guaranteed















          by ACM&#x2019;s Chief Executive Officer</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_6e7f49f8a90545168c523797d7b1a57b"
          xlink:to="Foot_a20fed68e8b84de79784f9c59821582f"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_e6f88ace68bf444e9744d481feb8a1eb"
          xlink:label="Fact_e6f88ace68bf444e9744d481feb8a1eb"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_e6f88ace68bf444e9744d481feb8a1eb"
          xlink:to="Foot_a20fed68e8b84de79784f9c59821582f"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_8664409a651540d3b1dc12d049a813dc"
          xlink:label="Fact_8664409a651540d3b1dc12d049a813dc"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_8664409a651540d3b1dc12d049a813dc"
          xlink:to="Foot_a20fed68e8b84de79784f9c59821582f"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_f84af0e09c5c48f5ab82eccaffc5a9ff"
          xlink:label="Fact_f84af0e09c5c48f5ab82eccaffc5a9ff"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_f84af0e09c5c48f5ab82eccaffc5a9ff"
          xlink:to="Foot_a20fed68e8b84de79784f9c59821582f"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_ff0c91592a9e4a56ba9e6889f8938640"
          xlink:label="Fact_ff0c91592a9e4a56ba9e6889f8938640"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_ff0c91592a9e4a56ba9e6889f8938640"
          xlink:to="Foot_a20fed68e8b84de79784f9c59821582f"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_5576038924fe4b1086967378b6f27bd2"
          xlink:label="Fact_5576038924fe4b1086967378b6f27bd2"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_5576038924fe4b1086967378b6f27bd2"
          xlink:to="Foot_a20fed68e8b84de79784f9c59821582f"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_1696bb07a2904f299cf1e579f90e5cbb"
          xlink:label="Fact_1696bb07a2904f299cf1e579f90e5cbb"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_1696bb07a2904f299cf1e579f90e5cbb"
          xlink:to="Foot_a20fed68e8b84de79784f9c59821582f"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_b4fe4783962b461bb97979d801518675"
          xlink:label="Fact_b4fe4783962b461bb97979d801518675"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_b4fe4783962b461bb97979d801518675"
          xlink:to="Foot_a20fed68e8b84de79784f9c59821582f"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_b8dfdac1aca94f75bdf54d62945e16a6"
          xlink:label="Fact_b8dfdac1aca94f75bdf54d62945e16a6"
          xlink:type="locator"/>
        <link:footnote id="Foot_b18787c301d04f8bb0d3bdff0ec026e6" xlink:label="Foot_b18787c301d04f8bb0d3bdff0ec026e6" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">guaranteed















          by ACM&#x2019;s Chief Executive Officer and Cleanchip Technologies Limited</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_b8dfdac1aca94f75bdf54d62945e16a6"
          xlink:to="Foot_b18787c301d04f8bb0d3bdff0ec026e6"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_a3e5eaf925f0465f846f3a662b135ef0"
          xlink:label="Fact_a3e5eaf925f0465f846f3a662b135ef0"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_a3e5eaf925f0465f846f3a662b135ef0"
          xlink:to="Foot_b18787c301d04f8bb0d3bdff0ec026e6"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_e64a521f0fbd48a8ad7278c90605becb"
          xlink:label="Fact_e64a521f0fbd48a8ad7278c90605becb"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_e64a521f0fbd48a8ad7278c90605becb"
          xlink:to="Foot_b18787c301d04f8bb0d3bdff0ec026e6"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_ec818753e5e641eba69e2a7817058583"
          xlink:label="Fact_ec818753e5e641eba69e2a7817058583"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_ec818753e5e641eba69e2a7817058583"
          xlink:to="Foot_b18787c301d04f8bb0d3bdff0ec026e6"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_3a8452e67f7e45a09c1a40b54b834076"
          xlink:label="Fact_3a8452e67f7e45a09c1a40b54b834076"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_3a8452e67f7e45a09c1a40b54b834076"
          xlink:to="Foot_b18787c301d04f8bb0d3bdff0ec026e6"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_53978c02dcd440cb82365e52dafbb932"
          xlink:label="Fact_53978c02dcd440cb82365e52dafbb932"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_53978c02dcd440cb82365e52dafbb932"
          xlink:to="Foot_b18787c301d04f8bb0d3bdff0ec026e6"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_b99bd39557694319bf85a268597fe8b6"
          xlink:label="Fact_b99bd39557694319bf85a268597fe8b6"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_b99bd39557694319bf85a268597fe8b6"
          xlink:to="Foot_b18787c301d04f8bb0d3bdff0ec026e6"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_d22120dbdf01474c963575e9a53b58a9"
          xlink:label="Fact_d22120dbdf01474c963575e9a53b58a9"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_d22120dbdf01474c963575e9a53b58a9"
          xlink:to="Foot_b18787c301d04f8bb0d3bdff0ec026e6"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_8a64b49600594f85a1462d19dafba2be"
          xlink:label="Fact_8a64b49600594f85a1462d19dafba2be"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_8a64b49600594f85a1462d19dafba2be"
          xlink:to="Foot_b18787c301d04f8bb0d3bdff0ec026e6"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_2720c72879ba45c1af0c5fe896e9e8da"
          xlink:label="Fact_2720c72879ba45c1af0c5fe896e9e8da"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_2720c72879ba45c1af0c5fe896e9e8da"
          xlink:to="Foot_b18787c301d04f8bb0d3bdff0ec026e6"
          xlink:type="arc"/>
    </link:footnoteLink>
</xbrl>
