/**
  * Создать новый экземпляр cloudflare-исключения (обычная js-antiddos проверка, без рекапчи).
  *
  * @param url адрес, по которому вызвана проверка
  * @param cfCookieName название cloudflare-куки
  * @param chanName название модуля чана (модуль должен имплементировать {@link HttpChanModule})
  * @return созданный объект
  */
 public static CloudflareException antiDDOS(String url, String cfCookieName, String chanName) {
   CloudflareException e = new CloudflareException();
   e.url = url;
   e.recaptcha = false;
   e.publicKey = null;
   e.checkCaptchaUrlFormat = null;
   e.cfCookieName = cfCookieName;
   e.chanName = chanName;
   return e;
 }
 /**
  * Создать новый экземпляр cloudflare-исключения (проверка с рекапчей).
  *
  * @param publicKey открытый ключ рекапчи
  * @param checkUrlFormat строка-формат URL для проверки капчи (первый %s - challenge, второй %s -
  *     ответ на капчу)
  * @param cfCookieName название cloudflare-куки
  * @param chanName название модуля чана
  * @return созданный объект
  */
 public static CloudflareException withRecaptcha(
     String publicKey, String checkUrlFormat, String cfCookieName, String chanName) {
   CloudflareException e = new CloudflareException();
   e.url = null;
   e.recaptcha = true;
   e.publicKey = publicKey;
   e.checkCaptchaUrlFormat = checkUrlFormat;
   e.cfCookieName = cfCookieName;
   e.chanName = chanName;
   return e;
 }