Нужна помощь программистов с оптимизацией PAC-файла

Как насчет формировать PAC-файл динамически под клиента?

Отдельный обучающий PAC-файл, в котором вместо перечня всех заблокированных только используемые/посещаемые клиентом ресурсы с разделением на DIRECT/PROXY.

Для всех пока не классифицированных ресурсов по умолчанию возвращает специальные обучающие PROXY.
Которые идентифицируют клиента и сохраняют для него списки для формирования его личного PAC-файла.

Подобный обучающий прокси может быть поднят самостоятельно.

Иной вариант это использование специального DNS-сервера и функции PAC-файла dnsResolve.
Скрипт добавляет нечто к исходному имени ресурса и пытается разрешить в IP-адрес.
Например для url c “ntc.party” добавляем несуществующий корневой домен “.antizapret” и полученное имя сервера “ntc.party.antizapret” пытаемся получить IP.
Если IP получили (или нет) можно сделать вывод надо или нет проксировать исходный URL.
А в зависимости от IP можно отправлять на разные прокси.

@ValdikSS Рассматривали сжатый DAWG (Directed Acyclic Word Graph)? Возможно подойдёт что-то такое
Да и base85 маловато для cp1252. Если оно все печатаемые символы хавает, можно намного больше взять

@ValdikSS
Попробовал на своем домене и vps поднять dnsmasq и поиграться с идеей разрешения адреса прокси.
Прикольно, оно работает.

Практически даже не требуется в dns-сервера (клиента) прописывать этот специальный dns, через глобальную dns прекрасно работает.
Так же можно не только домены но и отдельные заблокированные страницы и ip-адреса/подсети через dns узнавать онлайн - требуется проксирование или нет.
И получать свежие адреса прокси-серверов, без изменения PAC-скрипта.

Фактически некая маскировка под dns-трафик получается, двустороннее общение (из PAC-файла) со своими серверами, посредством функции dnsResolve.
Осталось продумать кодирование запросов/ответов и реализовать заполнение conf для dnsmasq.

В этот же список можно добавить:

(/caino/) {next}
(/cassino/) {next}
(/cazzino/) {next}
(/cazinno/) {next}
(/casiino/) {next}
(/casin0/) {next}
(/casi1no/) {next}
(/cas1no/) {next}
(/kacino/) {next}
(/kazzino/) {next}
(/cocaine/) {next}
(/businessinvest/) {next}
(/syka/) {next}
(/slot/) {next}
(/seeds/) {next}
(/fontan/) {next}

Спасибо, дополнил свой список

Вариант с PAC файлом в принципе не работает. По ссылке https://p.thenewone.lol:8443/proxy.pac открывается заглушка “This content has been blocked. Please contact team@pinata.cloud for more information - ERR_ID:00023”

Ссылка была заблочена но при этом сам pac-файл работал (у тех у кого это две отдельные сущности). Сейчас и он сам не работает. Нужно победить эту проблему, а она сложная.