Create Account
Log In
Dark
chart
exchange
Premium
Terminal
Screener
Stocks
Crypto
Forex
Trends
Depth
Close
Check out our Dark Pool Levels


ACI Worldwide, Inc. Reports Financial Results for the Quarter Ended June 30, 2020


Business Wire | Aug 6, 2020 06:01AM EDT

ACI Worldwide, Inc. Reports Financial Results for the Quarter Ended June 30, 2020

Aug. 06, 2020

NAPLES, Fla.--(BUSINESS WIRE)--Aug. 06, 2020--ACI Worldwide (NASDAQ: ACIW), a leading global provider of real-time digital payment software and solutions, today announced financial results for the quarter ended June 30, 2020.

"Despite the continued challenges presented by the COVID-19 pandemic, our focus on maximizing profitability, coupled with our resilient business model, produced significant EBITDA growth of 42% and margin expansion of 1,000 basis points versus the second quarter of last year," said Odilon Almeida, President and CEO of ACI Worldwide. "ACI's substantial recurring revenue, reliable cash flows, and high customer retention continue to provide stability as we navigate the macroeconomic landscape. We are also making significant progress in developing and implementing our three-pillar strategy, namely, Fit for Growth, Focused on Growth, and Step Change Value Creation. Guided by these three fundamental pillars and with a sense of urgency, we will build an agile and nimble organization with a best in class global sales process; we will focus our investment on growing geographies, segments and products; and we will pursue M&A opportunities that will drive step-change value creation. We are confident that we have the right team, assets, and three-pillar strategy to build a financially stronger and operationally superior company that is well positioned for continuous profitable growth and significant value creation."

Q2 2020 FINANCIAL RESULTS

New bookings in the quarter were $136 million, up 6% compared to Q2 last year.

Revenue in the quarter was $300 million, up 1% compared to Q2 2019, or up 2% after adjusting for foreign currency fluctuations. Total recurring revenue was up 4% compared to Q2 last year and comprised 78% of total revenue in Q2 2020 compared to 75% of total revenue in Q2 last year.

Net income in the quarter was $14 million, up 146% compared to Q2 last year. Adjusted EBITDA in the quarter was $78 million, up 42% compared to Q2 last year. Net adjusted EBITDA margin was 35% versus 25% in Q2 last year.

Revenue from ACI's On Demand segment was $181 million, up 5% from Q2 last year. On Demand segment net adjusted EBITDA margin improved to 31% compared to 18% last year. On Demand segment net adjusted EBITDA margin is adjusted for pass through interchange revenue of $75 million and $78 million, for Q2 2020 and Q2 2019, respectively.

Revenue from ACI's On Premise segment was $119 million, down 5% from Q2 last year primarily as a result of lower non-recurring license and services revenue. On Premise segment adjusted EBITDA margin was 50% in Q2 2020 versus 46% in Q2 2019.

ACI ended Q2 2020 with a 12-month backlog of $1.1 billion and a 60-month backlog of $5.8 billion.

Cash flows from operating activities in the quarter were $68 million, up 371% from Q2 2019. ACI ended the quarter with $129 million in cash on hand and $300 million available on the Company's credit facility. The Company paid down $40 million in debt during the quarter.

FIRST HALF 2020 FINANCIAL RESULTS

New bookings in the six-months ended June 30, 2020 were $256 million, up 29% compared to the same period last year.

Revenue in the six-months ended June 30, 2020 was $591 million, up 17% compared to the same period last year driven primarily by the acquisition of Speedpay. Recurring revenue was 81% of total revenue in the six-months ended June 30, 2020 compared to 77% of total revenue in the same period last year.

Net loss in the six-months ended June 30, 2020 of $10 million, compared to a net loss of $20 million in the same period last year. Adjusted EBITDA in the six-months ended June 30, 2020 was $116 million, up 84% compared to the same period last year. Net adjusted EBITDA margin was 27% versus 17% in the first half last year.

Revenue from ACI's On Demand segment was $374 million in the six-months ended June 30, 2020, up 32% from the same period last year. On Demand segment net adjusted EBITDA margin improved to 27% compared to 11% last year. On Demand segment net adjusted EBITDA margin is adjusted for pass through interchange revenue of $164 million and $123 million, for the six-months ended June 30, 2020 and 2019, respectively.

Revenue from ACI's On Premise segment was $218 million in the six-months ended June 30, 2020, down 1% from the same period last year. On Premise segment adjusted EBITDA margin was 41% in the six-months ended June 30, 2020 versus 39% in the same period last year.

GUIDANCE

While a significant portion of ACI's revenues are recurring and the Company is optimistic about its pipeline of deals, the duration and severity of the COVID-19 pandemic has caused uncertainty regarding the timing of signing and realizing of revenue from new business. As previously announced, ACI has suspended guidance regarding its financial outlook for the full year 2020.

CONFERENCE CALL TO DISCUSS FINANCIAL RESULTSManagement will host a conference call at 8:30 am ET today to discuss these results. Interested persons may access a real-time audio broadcast of the teleconference at http://investor.aciworldwide.com/ or use the following numbers for dial-in participation: US/Canada: (866) 914-7436, international: +1 (817) 385-9117. Please provide your name, the conference name ACI Worldwide, Inc. and conference code 6539894. There will be a replay of the call available for two weeks on (855) 859-2056 for US/Canada callers and +1 (404) 537-3406 for international participants.

About ACI WorldwideACI Worldwide powers digital payments for more than 6,000 organizations around the world. More than 1,000 of the largest financial institutions and intermediaries, as well as thousands of global merchants, rely on ACI to execute $14 trillion each day in payments and securities. In addition, myriad organizations utilize our bill presentment and payment services. Through our comprehensive suite of software solutions delivered on customers' premises, through the public cloud or through ACI's private cloud, we provide real-time payment capabilities and enable the industry's most complete omni-channel payments experience.

(c) Copyright ACI Worldwide, Inc. 2020.

ACI, ACI Worldwide, ACI Payment Systems, the ACI logo and all ACI product names are trademarks or registered trademarks of ACI Worldwide, Inc., or one of its subsidiaries, in the United States, other countries or both. Other parties' trademarks referenced are the property of their respective owners.

To supplement our financial results presented on a GAAP basis, we use the non-GAAP measures indicated in the tables, which exclude significant transaction-related expenses, as well as other significant non-cash expenses such as depreciation, amortization and stock-based compensation, that we believe are helpful in understanding our past financial performance and our future results. The presentation of these non-GAAP financial measures should be considered in addition to our GAAP results and are not intended to be considered in isolation or as a substitute for the financial information prepared and presented in accordance with GAAP. Management generally compensates for limitations in the use of non-GAAP financial measures by relying on comparable GAAP financial measures and providing investors with a reconciliation of non-GAAP financial measures only in addition to and in conjunction with results presented in accordance with GAAP.

We believe that these non-GAAP financial measures reflect an additional way to view aspects of our operations that, when viewed with our GAAP results, provide a more complete understanding of factors and trends affecting our business. Certain non-GAAP measures include:

* Adjusted EBITDA: net income (loss) plus income tax expense (benefit), net interest income (expense), net other income (expense), depreciation, amortization and stock-based compensation, as well as significant transaction-related expenses. Adjusted EBITDA should be considered in addition to, rather than as a substitute for, net income (loss). * Net Adjusted EBITDA Margin: Adjusted EBITDA divided by revenue net of pass through interchange revenue. Net Adjusted EBITDA Margin should be considered in addition to, rather than as a substitute for, net income (loss).

ACI is also presenting adjusted operating free cash flow, which is defined as net cash provided by operating activities and net after-tax payments associated with significant transaction-related expenses, less capital expenditures. Adjusted operating free cash flow is considered a non-GAAP financial measure as defined by SEC Regulation G. We utilize this non-GAAP financial measure, and believe it is useful to investors, as an indicator of cash flow available for debt repayment and other investing activities, such as capital investments and acquisitions. We utilize adjusted operating free cash flow as a further indicator of operating performance and for planning investment activities. Adjusted operating free cash flow should be considered in addition to, rather than as a substitute for, net cash provided by operating activities. A limitation of adjusted operating free cash flow is that it does not represent the total increase or decrease in the cash balance for the period. This measure also does not exclude mandatory debt service obligations and, therefore, does not represent the residual cash flow available for discretionary expenditures. We believe that adjusted operating free cash flow is useful to investors to provide disclosures of our operating results on the same basis as that used by our management.

ACI backlog includes estimates for SaaS and PaaS, license, maintenance, and services revenue specified in executed contracts but excluded from contracted revenue that will be recognized in future periods, as well as revenue from assumed contract renewals to the extent that we believe recognition of the related revenue will occur within the corresponding backlog period. We have historically included assumed renewals in backlog estimates based upon automatic renewal provisions in the executed contract and our historic experience with customer renewal rates.

Backlog is considered a non-GAAP financial measure as defined by SEC Regulation G. Our 60-month backlog estimates are derived using the following key assumptions:

* License arrangements are assumed to renew at the end of their committed term or under the renewal option stated in the contract at a rate consistent with historical experience. If the license arrangement includes extended payment terms, the renewal estimate is adjusted for the effects of a significant financing component. * Maintenance fees are assumed to exist for the duration of the license term for those contracts in which the committed maintenance term is less than the committed license term. * SaaS and PaaS arrangements are assumed to renew at the end of their committed term at a rate consistent with our historical experiences. * Foreign currency exchange rates are assumed to remain constant over the 60-month backlog period for those contracts stated in currencies other than the U.S. dollar. * Our pricing policies and practices are assumed to remain constant over the 60-month backlog period.

Estimates of future financial results require substantial judgment and are based on several assumptions, as described above. These assumptions may turn out to be inaccurate or wrong for reasons outside of management's control. For example, our customers may attempt to renegotiate or terminate their contracts for many reasons, including mergers, changes in their financial condition, or general changes in economic conditions (e.g. economic declines resulting from COVID-19) in the customer's industry or geographic location. We may also experience delays in the development or delivery of products or services specified in customer contracts, which may cause the actual renewal rates and amounts to differ from historical experiences. Changes in foreign currency exchange rates may also impact the amount of revenue recognized in future periods. Accordingly, there can be no assurance that amounts included in backlog estimates will generate the specified revenues or that the actual revenues will be generated within the corresponding 60-month period. Additionally, because certain components of Committed Backlog and all of Renewal Backlog estimates are operating metrics, the estimates are not required to be subject to the same level of internal review or controls as contracted but not recognized Committed Backlog.

Backlog estimates should be considered in addition to, rather than as a substitute for, reported revenue and contracted but not recognized revenue (including deferred revenue).

FORWARD LOOKING STATEMENTS

This press release contains forward-looking statements based on current expectations that involve a number of risks and uncertainties. Generally, forward-looking statements do not relate strictly to historical or current facts and may include words or phrases such as "believes," "will," "expects," "anticipates," "intends," and words and phrases of similar impact. The forward-looking statements are made pursuant to safe harbor provisions of the Private Securities Litigation Reform Act of 1995.

Forward-looking statements in this press release include, but are not limited to, expectations regarding: (i) ACI's substantial recurring revenue, reliable cash flows, and high customer retention continue to provide stability as we navigate the macroeconomic landscape, (ii) progress in developing and implementing our three-pillar strategy, (iii) our building an agile and nimble organization with a best in class global sales process, (iv) our confidence that we have the right team, assets, and three-pillar strategy to build a financially stronger and operationally superior company that is well positioned for continuous profitable growth and significant value creation, (v) our optimism about our pipeline of deals, and (vi) uncertainty from COVID-19 and expectations for the rest of 2020.

All of the foregoing forward-looking statements are expressly qualified by the risk factors discussed in our filings with the Securities and Exchange Commission. Such factors include, but are not limited to, increased competition, the success of our Universal Payments strategy, demand for our products, consolidations and failures in the financial services industry, customer reluctance to switch to a new vendor, failure to obtain renewals of customer contracts or to obtain such renewals on favorable terms, delay or cancellation of customer projects or inaccurate project completion estimates, the complexity of our products and services and the risk that they may contain hidden defects or be subjected to security breaches or viruses, compliance of our products with applicable legislation, governmental regulations and industry standards, our compliance with privacy regulations, our ability to protect customer information from security breaches or attacks, our ability to adequately defend our intellectual property, exposure to credit or operating risks arising from certain payment funding methods, business interruptions or failure of our information technology and communication systems, our offshore software development activities, risks from operating internationally, including fluctuations in currency exchange rates, exposure to unknown tax liabilities, adverse changes in the global economy, worldwide events outside of our control, failure to attract and retain key personnel, litigation, future acquisitions, strategic partnerships and investments, integration of and achieving benefits from the Speedpay acquisition, impairment of our goodwill or intangible assets, restrictions and other financial covenants in our debt agreements, our existing levels of debt, replacement of LIBOR benchmark interest rate, the accuracy of management's backlog estimates, exposure to unknown tax liabilities, the cyclical nature of our revenue and earnings and the accuracy of forecasts due to the concentration of revenue-generating activity during the final weeks of each quarter, volatility in our stock price, and the COVID-19 pandemic. For a detailed discussion of these risk factors, parties that are relying on the forward-looking statements should review our filings with the Securities and Exchange Commission, including our most recently filed Annual Report on Form 10-K and our Quarterly Reports on Form 10-Q.

ACI WORLDWIDE, INC. AND SUBSIDIARIESCONDENSED CONSOLIDATED BALANCE SHEETS(unaudited and in thousands, except share and per share amounts)

June 30, December 31, 2020 2019

ASSETS

Current assets

Cash and cash equivalents $ 129,223 $ 121,398

Receivables, net of allowances 324,659 359,197

Settlement assets 338,372 391,039

Prepaid expenses 29,620 24,542

Other current assets 30,533 24,200

Total current assets 852,407 920,376

Noncurrent assets

Accrued receivables, net 199,964 213,041

Property and equipment, net 69,011 70,380

Operating lease right-of-use assets 54,816 57,382

Software, net 216,287 234,517

Goodwill 1,280,226 1,280,525

Intangible assets, net 335,697 356,969

Deferred income taxes, net 59,301 51,611

Other noncurrent assets 69,868 72,733

TOTAL ASSETS $ 3,137,577 $ 3,257,534

LIABILITIES AND STOCKHOLDERS' EQUITY

Current liabilities

Accounts payable $ 42,795 $ 37,010

Settlement liabilities 314,017 368,719

Employee compensation 36,717 29,318

Current portion of long-term debt 34,206 34,148

Deferred revenue 73,729 65,784

Other current liabilities 78,995 76,971

Total current liabilities 580,459 611,950

Noncurrent liabilities

Deferred revenue 63,692 53,155

Long-term debt 1,282,889 1,339,007

Deferred income taxes, net 31,140 32,053

Operating lease liabilities 45,999 46,766

Other noncurrent liabilities 42,661 44,635

Total liabilities 2,046,840 2,127,566

Commitments and contingencies

Stockholders' equity

Preferred stock - -

Common stock 702 702

Additional paid-in capital 667,554 667,658

Retained earnings 920,478 930,830

Treasury stock (399,663) (377,639)

Accumulated other comprehensive loss (98,334) (91,583)

Total stockholders' equity 1,090,737 1,129,968

TOTAL LIABILITIES AND STOCKHOLDERS' EQUITY $ 3,137,577 $ 3,257,534

ACI WORLDWIDE, INC. AND SUBSIDIARIESCONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS(unaudited and in thousands, except per share amounts)

Three Months Ended June Six Months Ended June 30, 30,

2020 2019 2020 2019

Revenues

Software as a serviceand platform as a $ 180,573 $ 172,499 $ 373,523 $ 281,056 service

License 50,136 52,541 78,265 73,619

Maintenance 52,749 51,922 106,029 107,033

Services 16,452 20,656 33,578 41,765

Total revenues 299,910 297,618 591,395 503,473

Operating expenses

Cost of revenue (1) 147,346 155,240 313,183 270,181

Research and 35,578 39,235 74,602 75,429 development

Selling and marketing 24,455 32,962 54,538 62,392

General and 29,758 49,319 65,684 80,836 administrative

Depreciation and 33,635 26,744 65,533 48,610 amortization

Total operating 270,772 303,500 573,540 537,448 expenses

Operating income 29,138 (5,882) 17,855 (33,975) (loss)

Other income (expense)

Interest expense (14,142) (15,323) (31,313) (26,937)

Interest income 2,954 2,997 5,854 6,030

Other, net 2,041 1,402 (7,717) (510)

Total other income (9,147) (10,924) (33,176) (21,417) (expense)

Income (loss) before 19,991 (16,806) (15,321) (55,392) income taxes

Income tax expense 5,916 (22,531) (4,969) (35,154) (benefit)

Net income (loss) $ 14,075 $ 5,725 $ (10,352) $ (20,238)

Income (loss) per common share

Basic $ 0.12 $ 0.05 $ (0.09) $ (0.17)

Diluted $ 0.12 $ 0.05 $ (0.09) $ (0.17)

Weighted averagecommon shares outstanding

Basic 116,033 116,586 116,019 116,287

Diluted 117,264 118,786 116,019 116,287

(1) The cost of revenue excludes charges for depreciation but includesamortization of purchased and developed software for resale.

ACI WORLDWIDE, INC. AND SUBSIDIARIESCONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS(unaudited and in thousands)

Three Months Ended June Six Months Ended June 30, 30,

2020 2019 2020 2019

Cash flows from operating activities:

Net income (loss) $ 14,075 $ 5,725 $ (10,352) $ (20,238)

Adjustments toreconcile net income(loss) to net cash flows from operatingactivities:

Depreciation 5,927 5,930 11,752 11,831

Amortization 29,765 23,848 57,762 42,799

Amortization ofoperating lease 5,245 3,646 8,801 7,029 right-of-use assets

Amortization ofdeferred debt issuance 1,204 930 2,416 1,683 costs

Deferred income taxes 5,671 (23,917) (4,742) (41,331)

Stock-based 7,932 14,372 14,882 20,957 compensation expense

Other 1,122 959 1,772 1,533

Changes in operatingassets andliabilities, net of impact ofacquisitions:

Receivables (19,646) (5,953) 29,053 88,596

Accounts payable 12,374 11,591 6,287 1,294

Accrued employee 1,192 7,435 8,177 (1,163) compensation

Current income taxes (4,006) (4,593) (9,367) (5,634)

Deferred revenue (259) (13,854) 22,236 (17,981)

Other current andnoncurrent assets and 7,433 (11,681) (13,148) (32,510) liabilities

Net cash flows from 68,029 14,438 125,529 56,865 operating activities

Cash flows from investing activities:

Purchases of property (7,018) (4,665) (10,615) (9,915) and equipment

Purchases of softwareand distribution (8,516) (6,722) (15,057) (11,300) rights

Acquisition ofbusinesses, net of - (758,546) - (758,546) cash acquired

Net cash flows from (15,534) (769,933) (25,672) (779,761) investing activities

Cash flows from financing activities:

Proceeds from issuance 947 922 1,894 1,753 of common stock

Proceeds fromexercises of stock 722 959 1,122 5,816 options

Repurchase ofstock-based (151) (185) (11,124) (2,809) compensation awardsfor tax withholdings

Repurchases of common - - (28,881) (631) stock

Proceeds fromrevolving credit - 250,000 30,000 250,000 facility

Repayment of revolving (30,000) (15,000) (69,000) (15,000) credit facility

Proceeds from termportion of credit - 500,000 - 500,000 agreement

Repayment of termportion of credit (9,738) (3,487) (19,475) (9,424) agreement

Payments for debt - (12,830) - (12,830) issuance costs

Payments on orproceeds from other (1,093) (363) (4,686) (2,220) debt, net

Net cash flows from (39,313) 720,016 (100,150) 714,655 financing activities

Effect of exchangerate fluctuations on (3,083) (1,298) 8,118 (865) cash

Net increase(decrease) in cash and 10,099 (36,777) 7,825 (9,106) cash equivalents

Cash and cashequivalents, beginning 119,124 176,173 121,398 148,502 of period

Cash and cashequivalents, end of $ 129,223 $ 139,396 $ 129,223 $ 139,396 period

Adjusted EBITDA (millions) Three Months Ended Six Months Ended June June 30, 30,

2020 2019 2020 2019

Net income (loss) $ 14.1 $ 5.7 $ (10.4) $ (20.2)

Plus:

Income tax expense (benefit) 5.9 (22.5) (5.0) (35.2)

Net interest expense 11.2 12.3 25.5 20.9

Net other income (expense) (2.0) (1.4) 7.7 0.5

Depreciation expense 5.9 5.9 11.8 11.8

Amortization expense 29.8 23.9 57.8 42.8

Non-cash stock-based 7.9 14.4 14.9 21.0 compensation expense

Adjusted EBITDA beforesignificant transaction-related $ 72.8 $ 38.3 $ 102.3 $ 41.6 expenses

Significant transaction-related 5.0 16.6 13.5 21.3 expenses

Adjusted EBITDA $ 77.8 $ 54.9 $ 115.8 $ 62.9

Segment Information Three Months Ended June Six Months Ended June(millions) 30, 30,

2020 2019 2020 2019

Revenue

ACI On Demand $ 180.6 $ 172.5 $ 373.5 $ 282.4

ACI On Premise 119.3 125.1 217.9 221.1

Total $ 299.9 $ 297.6 $ 591.4 $ 503.5

Interchange

ACI On Demand $ 74.8 $ 78.4 $ 163.6 $ 123.3

Net Revenue

ACI On Demand $ 105.8 $ 94.1 $ 209.9 $ 159.1

ACI On Premise 119.3 125.1 217.9 221.1

Total $ 225.1 $ 219.2 $ 427.8 $ 380.2

Segment Adjusted EBITDA

ACI On Demand $ 33.1 $ 17.3 $ 56.2 $ 17.1

ACI On Premise $ 59.1 $ 57.1 $ 90.0 $ 85.3

Segment Net Adjusted EBITDA Margin

ACI On Demand 31.3 % 18.4 % 26.8 % 10.7 %

ACI On Premise 49.5 % 45.6 % 41.3 % 38.6 %

Reconciliation of Adjusted Three Months Ended Six Months EndedOperating Free Cash Flow (millions) June 30, June 30,

2020 2019 2020 2019

Net cash flows from operating $ 68.0 $ 14.4 $ 125.5 $ 56.9 activities

Net after-tax payments associatedwith significant 5.0 12.5 9.0 15.2 transaction-related expenses

Less: capital expenditures (15.5) (11.4) (25.7) (21.2)

Adjusted Operating Free Cash Flow $ 57.5 $ 15.5 $ 108.8 $ 50.9

EPS impact of non-cash andsignificant transaction-related items Three Months Ended June 30,(millions)

2020 2019

$ in $ in EPS Millions EPS Millions Impact (Net of Impact (Net of Tax) Tax)

GAAP net income (loss) $ 0.12 $ 14.1 $ 0.05 $ 5.7

Adjusted for:

Tax benefit from release of valuation - - (0.16) (18.5) allowance

Significant transaction-related 0.03 3.5 0.11 12.6 expenses

Amortization of acquisition-related 0.06 7.0 0.05 5.7 intangibles

Amortization of acquisition-related 0.07 8.1 0.06 7.0 software

Non-cash stock-based compensation 0.05 6.0 0.09 10.9

Total adjustments $ 0.21 $ 24.6 $ 0.15 $ 17.7

Diluted EPS adjusted for non-cash and $ 0.33 $ 38.7 $ 0.20 $ 23.4 significant transaction-related items

EPS impact of non-cash andsignificant Six Months Ended June 30,transaction-related items (millions)

2020 2019

$ in $ in EPS Impact Millions EPS Impact Millions (Net of (Net of Tax) Tax)

GAAP net income (loss) $ (0.09) $ (10.4) $ (0.17) $ (20.2)

Adjusted for:

Tax benefit from release of - - (0.16) (18.5) valuation allowance

Significanttransaction-related 0.09 10.3 0.14 16.2 expenses

Amortization ofacquisition-related 0.12 14.1 0.09 9.9 intangibles

Amortization ofacquisition-related 0.14 16.1 0.11 12.5 software

Non-cash stock-based 0.10 11.3 0.14 15.9 compensation

Total adjustments $ 0.45 $ 51.8 $ 0.32 $ 36.0

Diluted EPS adjusted fornon-cash and significant $ 0.36 $ 41.4 $ 0.15 $ 15.8 transaction-related items

View source version on businesswire.com: https://www.businesswire.com/news/home/20200806005155/en/

CONTACT: John Kraft, Vice President, Investor Relations & Strategic Analysis ACI Worldwide 239-403-4627 john.kraft@aciworldwide.com






Share
About
Pricing
Policies
Markets
API
Info
tz UTC-4
Connect with us
ChartExchange Email
ChartExchange on Discord
ChartExchange on X
ChartExchange on Reddit
ChartExchange on GitHub
ChartExchange on YouTube
© 2020 - 2026 ChartExchange LLC