import sys, os
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from cats import CATS as BASE

EXTRA = [
"digital asset management software","product information management software","translation management systems","localisation platforms","content marketing platforms",
"influencer marketing platforms","public relations software","media monitoring tools","press release distribution services","brand monitoring tools",
"webinar platforms","virtual event platforms","event registration software","event management software","ticketing platforms",
"appointment scheduling software","meeting scheduling tools","calendar apps","task management apps","to do list apps",
"kanban board tools","gantt chart software","resource management software","professional services automation software","agency management software",
"proposal software","quoting software","CPQ software","sales engagement platforms","sales intelligence tools",
"lead generation tools","cold email tools","email deliverability tools","email warmup tools","email finder tools",
"conversation intelligence software","call tracking software","cloud phone systems","contact centre software","IVR software",
"customer success platforms","product onboarding tools","in app messaging tools","NPS survey tools","churn prediction software",
"help centre software","chatbot builders","conversational AI platforms","voice AI agents","AI customer support tools",
"screen sharing tools","remote desktop software","virtual desktop platforms","device management software","mobile device management software",
"IT asset management software","patch management software","network monitoring tools","bandwidth monitoring tools","packet capture tools",
"firewall vendors","zero trust network access providers","secure web gateways","cloud access security brokers","data loss prevention software",
"privileged access management software","identity governance software","single sign on providers","multi factor authentication providers","passwordless authentication providers",
"secrets management tools","certificate management tools","vulnerability scanners","container security tools","cloud security posture management tools",
"software composition analysis tools","static application security testing tools","dynamic application security testing tools","bug bounty platforms","threat intelligence platforms",
"incident response platforms","on call scheduling software","status page providers","chaos engineering tools","load testing tools",
"performance testing tools","browser testing platforms","mobile app testing tools","test automation frameworks","visual regression testing tools",
"code review tools","static analysis tools","dependency management tools","monorepo build tools","package registries",
"infrastructure as code tools","configuration management tools","kubernetes management platforms","service mesh tools","serverless platforms",
"platform as a service providers","bare metal cloud providers","GPU cloud providers","object storage providers","content delivery networks",
"DNS providers","domain registrars","SSL certificate providers","email hosting providers","calendar hosting providers",
"database as a service providers","managed postgres providers","time series databases","graph databases","search engines for applications",
"message queue services","event streaming platforms","workflow orchestration tools","data quality tools","data observability tools",
"data lineage tools","master data management software","data governance platforms","customer identity resolution tools","consent management platforms",
"privacy compliance software","GDPR compliance tools","SOC 2 compliance automation tools","risk management software","audit management software",
"vendor risk management software","policy management software","whistleblowing software","ethics hotline providers","ESG reporting software",
"carbon accounting software","supply chain visibility software","demand planning software","production planning software","quality management software",
"maintenance management software","asset tracking software","barcode scanning apps","RFID software","IoT platforms",
"digital twin platforms","CAD software","PCB design software","simulation software","3D rendering software",
"animation software","motion graphics software","audio editing software","music production software","DAW plugins",
"live streaming platforms","video hosting platforms","video CMS platforms","interactive video tools","screen annotation tools",
"presentation software","slide design tools","diagramming tools","whiteboard tools","mind mapping software",
"documentation generators","API testing tools","API monitoring tools","API mocking tools","GraphQL tools",
"webhooks management tools","integration platform as a service providers","no code automation tools","workflow automation tools","robotic process automation software",
"low code app builders","internal tool builders","admin panel builders","form builders","survey panel providers",
"scheduling APIs","email API providers","voice API providers","video API providers","chat API providers",
"maps APIs","geocoding APIs","weather APIs","financial data APIs","company data APIs",
"people data APIs","enrichment APIs","sanctions screening providers","KYC providers","AML software",
"accounting practice management software","bookkeeping services","spend management software","corporate card providers","treasury management software",
"FP&A software","revenue recognition software","dunning management tools","churn recovery tools","usage based billing platforms",
"pricing optimisation software","discount management tools","affiliate tracking software","attribution software","marketing mix modelling tools",
"customer journey analytics tools","heatmap tools","form analytics tools","funnel analytics tools","mobile analytics platforms",
"app store optimisation tools","mobile attribution platforms","push notification analytics tools","in app purchase tools","paywall tools",
"headless commerce platforms","subscription commerce platforms","marketplace platforms","point of sale systems","restaurant POS systems",
"retail management software","salon software","gym management software","childcare management software","veterinary practice software",
"dental practice management software","medical practice management software","electronic health record systems","telehealth platforms","patient engagement software",
"clinical trial management systems","laboratory information management systems","pharmacy management software","medical billing software","healthcare analytics platforms",
"legal practice management software","legal research tools","contract review AI tools","e-discovery software","IP management software",
"real estate CRM software","property management software","construction management software","estimating software for contractors","architecture practice software",
"nonprofit CRM software","donor management software","fundraising platforms","grant management software","volunteer management software",
"school management software","student information systems","classroom tools for teachers","exam proctoring software","plagiarism detection tools",
"library management systems","museum collection management software","archive management software","digital preservation tools","research data management platforms",
"reference management software","academic writing tools","survey research platforms","statistical software","notebook platforms for data science",
"machine learning platforms","model serving platforms","feature stores","data labelling tools","synthetic data tools",
"prompt management tools","LLM evaluation tools","retrieval augmented generation frameworks","AI agent frameworks","AI gateway providers",
]
CATS300 = BASE + EXTRA
seen = set(); OUT = []
for c in CATS300:
    if c not in seen:
        seen.add(c); OUT.append(c)
CATS = OUT
if __name__ == "__main__":
    print(len(CATS))
