text:
/*
 * LogSentinel RESTful API
 * Read more at https://docs.logsentinel.com/
 *
 * OpenAPI spec version: 1
 *
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */

package com.logsentinel.model;

import java.util.Objects;
import java.util.Arrays;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import com.logsentinel.model.MetadataExtractionPaths;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;

/**
 * UpdateApplicationRequest
 */

public class UpdateApplicationRequest {
  @JsonProperty("containsPersonalData")
  private Boolean containsPersonalData = null;

  @JsonProperty("dataMaskingPatterns")
  private List<String> dataMaskingPatterns = null;

  @JsonProperty("detailsTransformationScript")
  private String detailsTransformationScript = null;

  @JsonProperty("displayedDetailsFields")
  private String displayedDetailsFields = null;

  @JsonProperty("id")
  private UUID id = null;

  @JsonProperty("ipWhiteList")
  private List<String> ipWhiteList = null;

  @JsonProperty("latestHashRecipientEmails")
  private List<String> latestHashRecipientEmails = null;

  @JsonProperty("logGroupingEnabled")
  private Boolean logGroupingEnabled = null;

  @JsonProperty("logLevelErrorReportRecipientEmails")
  private List<String> logLevelErrorReportRecipientEmails = null;

  @JsonProperty("logLevelRegexes")
  private Map<String, String> logLevelRegexes = null;

  @JsonProperty("metadataExtractionPaths")
  private MetadataExtractionPaths metadataExtractionPaths = null;

  @JsonProperty("name")
  private String name = null;

  @JsonProperty("openDataAnonymizationRegexes")
  private List<String> openDataAnonymizationRegexes = null;

  @JsonProperty("openDataAnonymizeBodyFields")
  private List<String> openDataAnonymizeBodyFields = null;

  @JsonProperty("openDataEnabled")
  private Boolean openDataEnabled = null;

  @JsonProperty("openDataWhitelistRegexes")
  private List<String> openDataWhitelistRegexes = null;

  @JsonProperty("partialVerificationPeriodMinutes")
  private Integer partialVerificationPeriodMinutes = null;

  @JsonProperty("propertiesForIdenticalEntries")
  private List<String> propertiesForIdenticalEntries = null;

  @JsonProperty("retentionMonths")
  private Integer retentionMonths = null;

  @JsonProperty("signatureVerificationPublicKeys")
  private List<String> signatureVerificationPublicKeys = null;

  /**
   * Gets or Sets sourceCategory
   */
  public enum SourceCategoryEnum {
    CLOUD_INFRASTRUCTURE("CLOUD_INFRASTRUCTURE"),

    NETWORK_APPLIANCE("NETWORK_APPLIANCE"),

    DATABASE("DATABASE"),

    ACTIVE_DIRECTORY("ACTIVE_DIRECTORY"),

    ERP("ERP"),

    ACCOUNTING("ACCOUNTING"),

    HR_AND_PAYROLL("HR_AND_PAYROLL"),

    SERVER_OS("SERVER_OS"),

    WORKSTATION("WORKSTATION"),

    WEB_SERVER("WEB_SERVER"),

    ANTIVIRUS("ANTIVIRUS"),

    VPN("VPN"),

    DOMAIN_SPECIFIC_APPLICATION("DOMAIN_SPECIFIC_APPLICATION"),

    OTHER_SAAS("OTHER_SAAS"),

    OTHER("OTHER");

    private String value;

    SourceCategoryEnum(String value) {
      this.value = value;
    }

    @JsonValue
    public String getValue() {
      return value;
    }

    @Override
    public String toString() {
      return String.valueOf(value);
    }

    @JsonCreator
    public static SourceCategoryEnum fromValue(String text) {
      for (SourceCategoryEnum b : SourceCategoryEnum.values()) {
        if (String.valueOf(b.value).equals(text)) {
          return b;
        }
      }
      return null;
    }
  }

  @JsonProperty("sourceCategory")
  private SourceCategoryEnum sourceCategory = null;

  @JsonProperty("storeHashesInEthereum")
  private Boolean storeHashesInEthereum = null;

  @JsonProperty("verificationFailureReportRecipientEmails")
  private List<String> verificationFailureReportRecipientEmails = null;

  @JsonProperty("verificationPeriodMinutes")
  private Integer verificationPeriodMinutes = null;

  /**
   * Gets or Sets warnLevel
   */
  public enum WarnLevelEnum {
    TRACE("TRACE"),

    DEBUG("DEBUG"),

    INFO("INFO"),

    WARN("WARN"),

    ERROR("ERROR"),

    CRITICAL("CRITICAL"),

    FATAL("FATAL");

    private String value;

    WarnLevelEnum(String value) {
      this.value = value;
    }

    @JsonValue
    public String getValue() {
      return value;
    }

    @Override
    public String toString() {
      return String.valueOf(value);
    }

    @JsonCreator
    public static WarnLevelEnum fromValue(String text) {
      for (WarnLevelEnum b : WarnLevelEnum.values()) {
        if (String.valueOf(b.value).equals(text)) {
          return b;
        }
      }
      return null;
    }
  }

  @JsonProperty("warnLevel")
  private WarnLevelEnum warnLevel = null;

  public UpdateApplicationRequest containsPersonalData(Boolean containsPersonalData) {
    this.containsPersonalData = containsPersonalData;
    return this;
  }

   /**
   * Get containsPersonalData
   * @return containsPersonalData
  **/
  @ApiModelProperty(value = "")
  public Boolean isContainsPersonalData() {
    return containsPersonalData;
  }

  public void setContainsPersonalData(Boolean containsPersonalData) {
    this.containsPersonalData = containsPersonalData;
  }

  public UpdateApplicationRequest dataMaskingPatterns(List<String> dataMaskingPatterns) {
    this.dataMaskingPatterns = dataMaskingPatterns;
    return this;
  }

  public UpdateApplicationRequest addDataMaskingPatternsItem(String dataMaskingPatternsItem) {
    if (this.dataMaskingPatterns == null) {
      this.dataMaskingPatterns = new ArrayList<>();
    }
    this.dataMaskingPatterns.add(dataMaskingPatternsItem);
    return this;
  }

   /**
   * Get dataMaskingPatterns
   * @return dataMaskingPatterns
  **/
  @ApiModelProperty(value = "")
  public List<String> getDataMaskingPatterns() {
    return dataMaskingPatterns;
  }

  public void setDataMaskingPatterns(List<String> dataMaskingPatterns) {
    this.dataMaskingPatterns = dataMaskingPatterns;
  }

  public UpdateApplicationRequest detailsTransformationScript(String detailsTransformationScript) {
    this.detailsTransformationScript = detailsTransformationScript;
    return this;
  }

   /**
   * Get detailsTransformationScript
   * @return detailsTransformationScript
  **/
  @ApiModelProperty(value = "")
  public String getDetailsTransformationScript() {
    return detailsTransformationScript;
  }

  public void setDetailsTransformationScript(String detailsTransformationScript) {
    this.detailsTransformationScript = detailsTransformationScript;
  }

  public UpdateApplicationRequest displayedDetailsFields(String displayedDetailsFields) {
    this.displayedDetailsFields = displayedDetailsFields;
    return this;
  }

   /**
   * Get displayedDetailsFields
   * @return displayedDetailsFields
  **/
  @ApiModelProperty(value = "")
  public String getDisplayedDetailsFields() {
    return displayedDetailsFields;
  }

  public void setDisplayedDetailsFields(String displayedDetailsFields) {
    this.displayedDetailsFields = displayedDetailsFields;
  }

  public UpdateApplicationRequest id(UUID id) {
    this.id = id;
    return this;
  }

   /**
   * Get id
   * @return id
  **/
  @ApiModelProperty(value = "")
  public UUID getId() {
    return id;
  }

  public void setId(UUID id) {
    this.id = id;
  }

  public UpdateApplicationRequest ipWhiteList(List<String> ipWhiteList) {
    this.ipWhiteList = ipWhiteList;
    return this;
  }

  public UpdateApplicationRequest addIpWhiteListItem(String ipWhiteListItem) {
    if (this.ipWhiteList == null) {
      this.ipWhiteList = new ArrayList<>();
    }
    this.ipWhiteList.add(ipWhiteListItem);
    return this;
  }

   /**
   * Get ipWhiteList
   * @return ipWhiteList
  **/
  @ApiModelProperty(value = "")
  public List<String> getIpWhiteList() {
    return ipWhiteList;
  }

  public void setIpWhiteList(List<String> ipWhiteList) {
    this.ipWhiteList = ipWhiteList;
  }

  public UpdateApplicationRequest latestHashRecipientEmails(List<String> latestHashRecipientEmails) {
    this.latestHashRecipientEmails = latestHashRecipientEmails;
    return this;
  }

  public UpdateApplicationRequest addLatestHashRecipientEmailsItem(String latestHashRecipientEmailsItem) {
    if (this.latestHashRecipientEmails == null) {
      this.latestHashRecipientEmails = new ArrayList<>();
    }
    this.latestHashRecipientEmails.add(latestHashRecipientEmailsItem);
    return this;
  }

   /**
   * Get latestHashRecipientEmails
   * @return latestHashRecipientEmails
  **/
  @ApiModelProperty(value = "")
  public List<String> getLatestHashRecipientEmails() {
    return latestHashRecipientEmails;
  }

  public void setLatestHashRecipientEmails(List<String> latestHashRecipientEmails) {
    this.latestHashRecipientEmails = latestHashRecipientEmails;
  }

  public UpdateApplicationRequest logGroupingEnabled(Boolean logGroupingEnabled) {
    this.logGroupingEnabled = logGroupingEnabled;
    return this;
  }

   /**
   * Get logGroupingEnabled
   * @return logGroupingEnabled
  **/
  @ApiModelProperty(value = "")
  public Boolean isLogGroupingEnabled() {
    return logGroupingEnabled;
  }

  public void setLogGroupingEnabled(Boolean logGroupingEnabled) {
    this.logGroupingEnabled = logGroupingEnabled;
  }

  public UpdateApplicationRequest logLevelErrorReportRecipientEmails(List<String> logLevelErrorReportRecipientEmails) {
    this.logLevelErrorReportRecipientEmails = logLevelErrorReportRecipientEmails;
    return this;
  }

  public UpdateApplicationRequest addLogLevelErrorReportRecipientEmailsItem(String logLevelErrorReportRecipientEmailsItem) {
    if (this.logLevelErrorReportRecipientEmails == null) {
      this.logLevelErrorReportRecipientEmails = new ArrayList<>();
    }
    this.logLevelErrorReportRecipientEmails.add(logLevelErrorReportRecipientEmailsItem);
    return this;
  }

   /**
   * Get logLevelErrorReportRecipientEmails
   * @return logLevelErrorReportRecipientEmails
  **/
  @ApiModelProperty(value = "")
  public List<String> getLogLevelErrorReportRecipientEmails() {
    return logLevelErrorReportRecipientEmails;
  }

  public void setLogLevelErrorReportRecipientEmails(List<String> logLevelErrorReportRecipientEmails) {
    this.logLevelErrorReportRecipientEmails = logLevelErrorReportRecipientEmails;
  }

  public UpdateApplicationRequest logLevelRegexes(Map<String, String> logLevelRegexes) {
    this.logLevelRegexes = logLevelRegexes;
    return this;
  }

  public UpdateApplicationRequest putLogLevelRegexesItem(String key, String logLevelRegexesItem) {
    if (this.logLevelRegexes == null) {
      this.logLevelRegexes = new HashMap<>();
    }
    this.logLevelRegexes.put(key, logLevelRegexesItem);
    return this;
  }

   /**
   * Get logLevelRegexes
   * @return logLevelRegexes
  **/
  @ApiModelProperty(value = "")
  public Map<String, String> getLogLevelRegexes() {
    return logLevelRegexes;
  }

  public void setLogLevelRegexes(Map<String, String> logLevelRegexes) {
    this.logLevelRegexes = logLevelRegexes;
  }

  public UpdateApplicationRequest metadataExtractionPaths(MetadataExtractionPaths metadataExtractionPaths) {
    this.metadataExtractionPaths = metadataExtractionPaths;
    return this;
  }

   /**
   * Get metadataExtractionPaths
   * @return metadataExtractionPaths
  **/
  @ApiModelProperty(value = "")
  public MetadataExtractionPaths getMetadataExtractionPaths() {
    return metadataExtractionPaths;
  }

  public void setMetadataExtractionPaths(MetadataExtractionPaths metadataExtractionPaths) {
    this.metadataExtractionPaths = metadataExtractionPaths;
  }

  public UpdateApplicationRequest name(String name) {
    this.name = name;
    return this;
  }

   /**
   * Get name
   * @return name
  **/
  @ApiModelProperty(value = "")
  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public UpdateApplicationRequest openDataAnonymizationRegexes(List<String> openDataAnonymizationRegexes) {
    this.openDataAnonymizationRegexes = openDataAnonymizationRegexes;
    return this;
  }

  public UpdateApplicationRequest addOpenDataAnonymizationRegexesItem(String openDataAnonymizationRegexesItem) {
    if (this.openDataAnonymizationRegexes == null) {
      this.openDataAnonymizationRegexes = new ArrayList<>();
    }
    this.openDataAnonymizationRegexes.add(openDataAnonymizationRegexesItem);
    return this;
  }

   /**
   * Get openDataAnonymizationRegexes
   * @return openDataAnonymizationRegexes
  **/
  @ApiModelProperty(value = "")
  public List<String> getOpenDataAnonymizationRegexes() {
    return openDataAnonymizationRegexes;
  }

  public void setOpenDataAnonymizationRegexes(List<String> openDataAnonymizationRegexes) {
    this.openDataAnonymizationRegexes = openDataAnonymizationRegexes;
  }

  public UpdateApplicationRequest openDataAnonymizeBodyFields(List<String> openDataAnonymizeBodyFields) {
    this.openDataAnonymizeBodyFields = openDataAnonymizeBodyFields;
    return this;
  }

  public UpdateApplicationRequest addOpenDataAnonymizeBodyFieldsItem(String openDataAnonymizeBodyFieldsItem) {
    if (this.openDataAnonymizeBodyFields == null) {
      this.openDataAnonymizeBodyFields = new ArrayList<>();
    }
    this.openDataAnonymizeBodyFields.add(openDataAnonymizeBodyFieldsItem);
    return this;
  }

   /**
   * Get openDataAnonymizeBodyFields
   * @return openDataAnonymizeBodyFields
  **/
  @ApiModelProperty(value = "")
  public List<String> getOpenDataAnonymizeBodyFields() {
    return openDataAnonymizeBodyFields;
  }

  public void setOpenDataAnonymizeBodyFields(List<String> openDataAnonymizeBodyFields) {
    this.openDataAnonymizeBodyFields = openDataAnonymizeBodyFields;
  }

  public UpdateApplicationRequest openDataEnabled(Boolean openDataEnabled) {
    this.openDataEnabled = openDataEnabled;
    return this;
  }

   /**
   * Get openDataEnabled
   * @return openDataEnabled
  **/
  @ApiModelProperty(value = "")
  public Boolean isOpenDataEnabled() {
    return openDataEnabled;
  }

  public void setOpenDataEnabled(Boolean openDataEnabled) {
    this.openDataEnabled = openDataEnabled;
  }

  public UpdateApplicationRequest openDataWhitelistRegexes(List<String> openDataWhitelistRegexes) {
    this.openDataWhitelistRegexes = openDataWhitelistRegexes;
    return this;
  }

  public UpdateApplicationRequest addOpenDataWhitelistRegexesItem(String openDataWhitelistRegexesItem) {
    if (this.openDataWhitelistRegexes == null) {
      this.openDataWhitelistRegexes = new ArrayList<>();
    }
    this.openDataWhitelistRegexes.add(openDataWhitelistRegexesItem);
    return this;
  }

   /**
   * Get openDataWhitelistRegexes
   * @return openDataWhitelistRegexes
  **/
  @ApiModelProperty(value = "")
  public List<String> getOpenDataWhitelistRegexes() {
    return openDataWhitelistRegexes;
  }

  public void setOpenDataWhitelistRegexes(List<String> openDataWhitelistRegexes) {
    this.openDataWhitelistRegexes = openDataWhitelistRegexes;
  }

  public UpdateApplicationRequest partialVerificationPeriodMinutes(Integer partialVerificationPeriodMinutes) {
    this.partialVerificationPeriodMinutes = partialVerificationPeriodMinutes;
    return this;
  }

   /**
   * Get partialVerificationPeriodMinutes
   * @return partialVerificationPeriodMinutes
  **/
  @ApiModelProperty(value = "")
  public Integer getPartialVerificationPeriodMinutes() {
    return partialVerificationPeriodMinutes;
  }

  public void setPartialVerificationPeriodMinutes(Integer partialVerificationPeriodMinutes) {
    this.partialVerificationPeriodMinutes = partialVerificationPeriodMinutes;
  }

  public UpdateApplicationRequest propertiesForIdenticalEntries(List<String> propertiesForIdenticalEntries) {
    this.propertiesForIdenticalEntries = propertiesForIdenticalEntries;
    return this;
  }

  public UpdateApplicationRequest addPropertiesForIdenticalEntriesItem(String propertiesForIdenticalEntriesItem) {
    if (this.propertiesForIdenticalEntries == null) {
      this.propertiesForIdenticalEntries = new ArrayList<>();
    }
    this.propertiesForIdenticalEntries.add(propertiesForIdenticalEntriesItem);
    return this;
  }

   /**
   * Get propertiesForIdenticalEntries
   * @return propertiesForIdenticalEntries
  **/
  @ApiModelProperty(value = "")
  public List<String> getPropertiesForIdenticalEntries() {
    return propertiesForIdenticalEntries;
  }

  public void setPropertiesForIdenticalEntries(List<String> propertiesForIdenticalEntries) {
    this.propertiesForIdenticalEntries = propertiesForIdenticalEntries;
  }

  public UpdateApplicationRequest retentionMonths(Integer retentionMonths) {
    this.retentionMonths = retentionMonths;
    return this;
  }

   /**
   * Get retentionMonths
   * @return retentionMonths
  **/
  @ApiModelProperty(value = "")
  public Integer getRetentionMonths() {
    return retentionMonths;
  }

  public void setRetentionMonths(Integer retentionMonths) {
    this.retentionMonths = retentionMonths;
  }

  public UpdateApplicationRequest signatureVerificationPublicKeys(List<String> signatureVerificationPublicKeys) {
    this.signatureVerificationPublicKeys = signatureVerificationPublicKeys;
    return this;
  }

  public UpdateApplicationRequest addSignatureVerificationPublicKeysItem(String signatureVerificationPublicKeysItem) {
    if (this.signatureVerificationPublicKeys == null) {
      this.signatureVerificationPublicKeys = new ArrayList<>();
    }
    this.signatureVerificationPublicKeys.add(signatureVerificationPublicKeysItem);
    return this;
  }

   /**
   * Get signatureVerificationPublicKeys
   * @return signatureVerificationPublicKeys
  **/
  @ApiModelProperty(value = "")
  public List<String> getSignatureVerificationPublicKeys() {
    return signatureVerificationPublicKeys;
  }

  public void setSignatureVerificationPublicKeys(List<String> signatureVerificationPublicKeys) {
    this.signatureVerificationPublicKeys = signatureVerificationPublicKeys;
  }

  public UpdateApplicationRequest sourceCategory(SourceCategoryEnum sourceCategory) {
    this.sourceCategory = sourceCategory;
    return this;
  }

   /**
   * Get sourceCategory
   * @return sourceCategory
  **/
  @ApiModelProperty(value = "")
  public SourceCategoryEnum getSourceCategory() {
    return sourceCategory;
  }

  public void setSourceCategory(SourceCategoryEnum sourceCategory) {
    this.sourceCategory = sourceCategory;
  }

  public UpdateApplicationRequest storeHashesInEthereum(Boolean storeHashesInEthereum) {
    this.storeHashesInEthereum = storeHashesInEthereum;
    return this;
  }

   /**
   * Get storeHashesInEthereum
   * @return storeHashesInEthereum
  **/
  @ApiModelProperty(value = "")
  public Boolean isStoreHashesInEthereum() {
    return storeHashesInEthereum;
  }

  public void setStoreHashesInEthereum(Boolean storeHashesInEthereum) {
    this.storeHashesInEthereum = storeHashesInEthereum;
  }

  public UpdateApplicationRequest verificationFailureReportRecipientEmails(List<String> verificationFailureReportRecipientEmails) {
    this.verificationFailureReportRecipientEmails = verificationFailureReportRecipientEmails;
    return this;
  }

  public UpdateApplicationRequest addVerificationFailureReportRecipientEmailsItem(String verificationFailureReportRecipientEmailsItem) {
    if (this.verificationFailureReportRecipientEmails == null) {
      this.verificationFailureReportRecipientEmails = new ArrayList<>();
    }
    this.verificationFailureReportRecipientEmails.add(verificationFailureReportRecipientEmailsItem);
    return this;
  }

   /**
   * Get verificationFailureReportRecipientEmails
   * @return verificationFailureReportRecipientEmails
  **/
  @ApiModelProperty(value = "")
  public List<String> getVerificationFailureReportRecipientEmails() {
    return verificationFailureReportRecipientEmails;
  }

  public void setVerificationFailureReportRecipientEmails(List<String> verificationFailureReportRecipientEmails) {
    this.verificationFailureReportRecipientEmails = verificationFailureReportRecipientEmails;
  }

  public UpdateApplicationRequest verificationPeriodMinutes(Integer verificationPeriodMinutes) {
    this.verificationPeriodMinutes = verificationPeriodMinutes;
    return this;
  }

   /**
   * Get verificationPeriodMinutes
   * @return verificationPeriodMinutes
  **/
  @ApiModelProperty(value = "")
  public Integer getVerificationPeriodMinutes() {
    return verificationPeriodMinutes;
  }

  public void setVerificationPeriodMinutes(Integer verificationPeriodMinutes) {
    this.verificationPeriodMinutes = verificationPeriodMinutes;
  }

  public UpdateApplicationRequest warnLevel(WarnLevelEnum warnLevel) {
    this.warnLevel = warnLevel;
    return this;
  }

   /**
   * Get warnLevel
   * @return warnLevel
  **/
  @ApiModelProperty(value = "")
  public WarnLevelEnum getWarnLevel() {
    return warnLevel;
  }

  public void setWarnLevel(WarnLevelEnum warnLevel) {
    this.warnLevel = warnLevel;
  }

  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    UpdateApplicationRequest updateApplicationRequest = (UpdateApplicationRequest) o;
    return Objects.equals(this.containsPersonalData, updateApplicationRequest.containsPersonalData) &&
        Objects.equals(this.dataMaskingPatterns, updateApplicationRequest.dataMaskingPatterns) &&
        Objects.equals(this.detailsTransformationScript, updateApplicationRequest.detailsTransformationScript) &&
        Objects.equals(this.displayedDetailsFields, updateApplicationRequest.displayedDetailsFields) &&
        Objects.equals(this.id, updateApplicationRequest.id) &&
        Objects.equals(this.ipWhiteList, updateApplicationRequest.ipWhiteList) &&
        Objects.equals(this.latestHashRecipientEmails, updateApplicationRequest.latestHashRecipientEmails) &&
        Objects.equals(this.logGroupingEnabled, updateApplicationRequest.logGroupingEnabled) &&
        Objects.equals(this.logLevelErrorReportRecipientEmails, updateApplicationRequest.logLevelErrorReportRecipientEmails) &&
        Objects.equals(this.logLevelRegexes, updateApplicationRequest.logLevelRegexes) &&
        Objects.equals(this.metadataExtractionPaths, updateApplicationRequest.metadataExtractionPaths) &&
        Objects.equals(this.name, updateApplicationRequest.name) &&
        Objects.equals(this.openDataAnonymizationRegexes, updateApplicationRequest.openDataAnonymizationRegexes) &&
        Objects.equals(this.openDataAnonymizeBodyFields, updateApplicationRequest.openDataAnonymizeBodyFields) &&
        Objects.equals(this.openDataEnabled, updateApplicationRequest.openDataEnabled) &&
        Objects.equals(this.openDataWhitelistRegexes, updateApplicationRequest.openDataWhitelistRegexes) &&
        Objects.equals(this.partialVerificationPeriodMinutes, updateApplicationRequest.partialVerificationPeriodMinutes) &&
        Objects.equals(this.propertiesForIdenticalEntries, updateApplicationRequest.propertiesForIdenticalEntries) &&
        Objects.equals(this.retentionMonths, updateApplicationRequest.retentionMonths) &&
        Objects.equals(this.signatureVerificationPublicKeys, updateApplicationRequest.signatureVerificationPublicKeys) &&
        Objects.equals(this.sourceCategory, updateApplicationRequest.sourceCategory) &&
        Objects.equals(this.storeHashesInEthereum, updateApplicationRequest.storeHashesInEthereum) &&
        Objects.equals(this.verificationFailureReportRecipientEmails, updateApplicationRequest.verificationFailureReportRecipientEmails) &&
        Objects.equals(this.verificationPeriodMinutes, updateApplicationRequest.verificationPeriodMinutes) &&
        Objects.equals(this.warnLevel, updateApplicationRequest.warnLevel);
  }

  @Override
  public int hashCode() {
    return Objects.hash(containsPersonalData, dataMaskingPatterns, detailsTransformationScript, displayedDetailsFields, id, ipWhiteList, latestHashRecipientEmails, logGroupingEnabled, logLevelErrorReportRecipientEmails, logLevelRegexes, metadataExtractionPaths, name, openDataAnonymizationRegexes, openDataAnonymizeBodyFields, openDataEnabled, openDataWhitelistRegexes, partialVerificationPeriodMinutes, propertiesForIdenticalEntries, retentionMonths, signatureVerificationPublicKeys, sourceCategory, storeHashesInEthereum, verificationFailureReportRecipientEmails, verificationPeriodMinutes, warnLevel);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class UpdateApplicationRequest {\n");

    sb.append("    containsPersonalData: ").append(toIndentedString(containsPersonalData)).append("\n");
    sb.append("    dataMaskingPatterns: ").append(toIndentedString(dataMaskingPatterns)).append("\n");
    sb.append("    detailsTransformationScript: ").append(toIndentedString(detailsTransformationScript)).append("\n");
    sb.append("    displayedDetailsFields: ").append(toIndentedString(displayedDetailsFields)).append("\n");
    sb.append("    id: ").append(toIndentedString(id)).append("\n");
    sb.append("    ipWhiteList: ").append(toIndentedString(ipWhiteList)).append("\n");
    sb.append("    latestHashRecipientEmails: ").append(toIndentedString(latestHashRecipientEmails)).append("\n");
    sb.append("    logGroupingEnabled: ").append(toIndentedString(logGroupingEnabled)).append("\n");
    sb.append("    logLevelErrorReportRecipientEmails: ").append(toIndentedString(logLevelErrorReportRecipientEmails)).append("\n");
    sb.append("    logLevelRegexes: ").append(toIndentedString(logLevelRegexes)).append("\n");
    sb.append("    metadataExtractionPaths: ").append(toIndentedString(metadataExtractionPaths)).append("\n");
    sb.append("    name: ").append(toIndentedString(name)).append("\n");
    sb.append("    openDataAnonymizationRegexes: ").append(toIndentedString(openDataAnonymizationRegexes)).append("\n");
    sb.append("    openDataAnonymizeBodyFields: ").append(toIndentedString(openDataAnonymizeBodyFields)).append("\n");
    sb.append("    openDataEnabled: ").append(toIndentedString(openDataEnabled)).append("\n");
    sb.append("    openDataWhitelistRegexes: ").append(toIndentedString(openDataWhitelistRegexes)).append("\n");
    sb.append("    partialVerificationPeriodMinutes: ").append(toIndentedString(partialVerificationPeriodMinutes)).append("\n");
    sb.append("    propertiesForIdenticalEntries: ").append(toIndentedString(propertiesForIdenticalEntries)).append("\n");
    sb.append("    retentionMonths: ").append(toIndentedString(retentionMonths)).append("\n");
    sb.append("    signatureVerificationPublicKeys: ").append(toIndentedString(signatureVerificationPublicKeys)).append("\n");
    sb.append("    sourceCategory: ").append(toIndentedString(sourceCategory)).append("\n");
    sb.append("    storeHashesInEthereum: ").append(toIndentedString(storeHashesInEthereum)).append("\n");
    sb.append("    verificationFailureReportRecipientEmails: ").append(toIndentedString(verificationFailureReportRecipientEmails)).append("\n");
    sb.append("    verificationPeriodMinutes: ").append(toIndentedString(verificationPeriodMinutes)).append("\n");
    sb.append("    warnLevel: ").append(toIndentedString(warnLevel)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(java.lang.Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }

}


text:
#include <iostream>
#include <string>
#include "oolua.h"
#include <include/cppunit/extensions/HelperMacros.h>

namespace
{
    bool get_result(OOLUA::Script* lua)
    {
        bool result;
        OOLUA::pull(*lua, result);
        return result;
    }

    template<typename T>
    std::auto_ptr<T> get_class(OOLUA::Script* lua)
    {
        OOLUA::cpp_acquire_ptr<T*> result;
        OOLUA::pull(*lua, result);
        return std::auto_ptr<T>(result.m_ptr);
    }

    template<typename T, typename T1>
    void operator_script(OOLUA::Script* lua, T& lhs, T1& rhs, std::string const& op)
    {
        std::string func(std::string("func = function(lhs, rhs) return lhs ")
            + op
            + std::string(" rhs end"));
        lua->run_chunk(func);  // ¶¨ÒåÁË func£¬²¢²»Ö´ÐÐ
        lua->call("func", &lhs, &rhs);  // µ÷ÓÃ func
    }
} // namespace
/*
Name: Proxy
Function: ʹÓà Proxy µÄÔËËã·û
Remark: OOLUA µÚËĸöÀý×Ó
*/

// ÉùÃ÷Ò»¸ö Àà »òÕß struct
class Class_ops
{
public:
    Class_ops(int const & i):m_i(i){}
    Class_ops():m_i(0){}
    Class_ops(Class_ops const & rhs): m_i(rhs.m_i){}

    int const & geti() const
    {
        return m_i;
    }

    bool operator == (Class_ops const & rhs) const
    {
        return m_i == rhs.m_i;
    }

    bool operator < (Class_ops const & rhs) const
    {
        return m_i < rhs.m_i;
    }

    bool operator <= (Class_ops const & rhs) const
    {
        return m_i <= rhs.m_i;
    }

    Class_ops operator + (Class_ops const & rhs) const
    {
        return Class_ops(m_i + rhs.m_i);
    }

    Class_ops operator * (Class_ops const & rhs) const
    {
        return Class_ops(m_i * rhs.m_i);
    }

    Class_ops operator - (Class_ops const & rhs) const
    {
        return Class_ops(m_i - rhs.m_i);
    }

    Class_ops operator / (Class_ops const & rhs) const
    {
        return Class_ops(m_i / rhs.m_i);
    }
private:
    int m_i;
};

// Proxy Block
// first, create a proxy block which starts with a OOLUA_PROXY call to which you pass the
//        name of the C++ class to be proxied, this block ends at the next OOLU_PROXY_END
OOLUA_PROXY(Class_ops)
    OOLUA_TAGS(
        Equal_op
        , Less_op
        , Less_equal_op
        , Add_op
        , Sub_op
        , Mul_op
        , Div_op
    )
    OOLUA_MFUNC_CONST(geti)
OOLUA_PROXY_END

// Exporting
// second, export the member functions which are to be made available for the type in Lua.
//         Exporting defines which member functions will be registered with Lua when the class
//         type is registered.  Even when there are no member functions to be exported you still
//         need to inform OOLua about this.  Calling on an OOLUA_EXPORT* procedure in a header
//         file is an error that will fail to compile
OOLUA_EXPORT_FUNCTIONS(Class_ops)
OOLUA_EXPORT_FUNCTIONS_CONST(Class_ops, geti)

// Registering
// Lastly, register the type with a lua_State after which the type can be created and used in Lua

void less_leftThanRight_proxyOperators()
{
    OOLUA::Script* m_lua = new OOLUA::Script;
    m_lua->register_class<Class_ops>();
    Class_ops lhs(0);
    Class_ops rhs(899);
    std::string func(std::string("func = function(lhs, rhs) print('Proxy') return lhs < rhs end"));
    m_lua->run_chunk(func);
    m_lua->call("func", &lhs, &rhs);
    bool result;
    OOLUA::pull(*m_lua, result);
    std::cout << "result: " << result << std::endl;
    delete m_lua;
}

void print_memberVar_afterMul()
{
    OOLUA::Script* m_lua = new OOLUA::Script;
    m_lua->register_class<Class_ops>();
    Class_ops left(45);
    Class_ops right(9);
    operator_script(m_lua, left, right, "/");
    int result = get_class<Class_ops>(m_lua)->geti();

    std::cout << "i = " << result << std::endl;
}
int main()
{
    //less_leftThanRight_proxyOperators();
    print_memberVar_afterMul();
    system("pause");
    return 0;
}

redpajama_set_name: RedPajamaGithub


text:
#include "SkBenchmark.h"
#include "SkCanvas.h"
#include "SkRandom.h"
#include "SkShader.h"
#include "SkString.h"
#include "SkBicubicImageFilter.h"

// This bench exercises SkBicubicImageFilter, upsampling a 40x40 input to
// 100x100, 400x100, 100x400, and 400x400.

class BicubicBench : public SkBenchmark {
    SkSize         fScale;
    SkString       fName;

public:
    BicubicBench(void* param, float x, float y)
        :  INHERITED(param), fScale(SkSize::Make(SkFloatToScalar(x), SkFloatToScalar(y))) {
        fName.printf("bicubic_%gx%g",
            SkScalarToFloat(fScale.fWidth), SkScalarToFloat(fScale.fHeight));
    }

protected:
    virtual const char* onGetName() {
        return fName.c_str();
    }

    virtual void onDraw(SkCanvas* canvas) {
        SkPaint paint;
        this->setupPaint(&paint);

        paint.setAntiAlias(true);

        SkRandom rand;
        SkRect r = SkRect::MakeWH(40, 40);
        SkAutoTUnref<SkImageFilter> bicubic(SkBicubicImageFilter::CreateMitchell(fScale));
        paint.setImageFilter(bicubic);
        canvas->save();
        canvas->clipRect(r);
        canvas->drawOval(r, paint);
        canvas->restore();
    }

private:
    typedef SkBenchmark INHERITED;
};

static SkBenchmark* Fact00(void* p) { return new BicubicBench(p, 10.0f, 10.0f); }
static SkBenchmark* Fact01(void* p) { return new BicubicBench(p, 2.5f, 10.0f); }
static SkBenchmark* Fact02(void* p) { return new BicubicBench(p, 10.0f, 2.5f); }
static SkBenchmark* Fact03(void* p) { return new BicubicBench(p, 2.5f, 2.5f); }

static BenchRegistry gReg00(Fact00);
static BenchRegistry gReg01(Fact01);
static BenchRegistry gReg02(Fact02);
static BenchRegistry gReg03(Fact03);


text:
It's very simple to get PDF file from LaTeX input.
```shell
$ sudo apt-get install texlive-latex-base texlive-latex-extra
$ pdflatex invoice.tex invoice.pdf
```


text:
using System;
using Jal.Router.Interface;
using Jal.Router.Model;
using Microsoft.ApplicationInsights;

namespace Jal.Router.ApplicationInsights
{
    public class StatisticsLogger : ILogger<Statistic>
    {
        private readonly TelemetryClient _client;
        public StatisticsLogger(TelemetryClient client)
        {
            _client = client;
        }

        public void Log(Statistic statistics, DateTime datetime)
        {
            foreach (var item in statistics.Properties)
            {
                _client.TrackMetric($"{statistics.Path}/{statistics.Subscription} - {item.Key}", Double.Parse(item.Value));
            }
        }
    }
}


text:
layout: page
title: Snow Music Conference
date: 2016-05-24
author: Rose Osborne
tags: weekly links, java
status: published
summary: Nullam ullamcorper velit ac quam fringilla, ut lacinia.
banner: images/banner/people.jpg
booking:
  startDate: 04/27/2016
  endDate: 04/29/2016
  ctyhocn: MNONCHX
  groupCode: SMC
published: true
---
Proin volutpat ultricies elit vitae luctus. Donec vel sapien ex. Interdum et malesuada fames ac ante ipsum primis in faucibus. Vivamus congue, justo quis semper posuere, nibh tortor tincidunt nisi, tincidunt varius dolor lorem eu est. Nulla eget lacus et elit interdum placerat. Aenean porttitor dolor enim. Duis ornare rutrum massa quis convallis. Donec commodo lectus ex, vel lacinia tortor faucibus a. Ut hendrerit lobortis erat vitae lobortis.

* Aliquam quis quam eleifend, aliquam odio ac, rhoncus orci.

Integer luctus augue vitae elit feugiat, id ornare lectus pretium. Donec justo diam, placerat at tortor ut, mollis porttitor ex. In rutrum nunc at purus interdum faucibus. Sed fermentum, massa quis dapibus iaculis, dolor dolor tincidunt risus, sit amet tempus sem quam vel nisi. Donec mollis tortor magna, nec dapibus felis gravida quis. In convallis metus vitae eros lacinia pharetra. Integer et commodo mi.
Nullam elementum ante a nibh convallis mollis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam vel gravida ipsum. Fusce elit arcu, malesuada vel pulvinar feugiat, egestas nec dolor. Sed convallis placerat eros at placerat. Vestibulum tempus euismod ullamcorper. Phasellus metus ligula, ultricies sit amet blandit sed, blandit ac nisl. Aliquam erat volutpat.


text:
<?php
require_once 'headerDB.inc.php';
require_once 'gtdfuncs.inc.php';
$alltypes=getTypes();
/*
   ----------------------------------------------
   first, define the default menus
*/
$menu=array();

$menu[] = array("link"=>'','label'=>'Capture');
//-------------------------------------------
$menu[] = array("link"=>"item.php?type=i", 'title'=>"Drop an item into the inbox", 'label' => "Inbox item");
$menu[] = array("link"=>"item.php?type=a&nextonly=true", 'title'=>"Create a new next action", 'label' => "Next Action");
$menu[] = array("link"=>"item.php?type=a", 'title'=>"Create a new action", 'label' => "Action");
$menu[] = array("link"=>"item.php?type=w", 'title'=>"Create a new waiting on item", 'label' => "Waiting On");
$menu[] = array("link"=>"item.php?type=r", 'title'=>"Create a reference", 'label' => "Reference");
$menu[] = array("link"=>"item.php?type=p", 'title'=>"Create a new project", 'label' => "Project");
$menu[] = array("link"=>"item.php?type=p&someday=true", 'title'=>"Create a project for someday", 'label' => "Someday/Maybe");
$menu[] = array("link"=>'','label'=>'separator');
$menu[] = array("link"=>"item.php?type=g", 'title'=>"Define a new {$alltypes['g']}", 'label' => "{$alltypes['g']}");
$menu[] = array("link"=>"item.php?type=o", 'title'=>"Define a new {$alltypes['o']}", 'label' => "{$alltypes['o']}");
$menu[] = array("link"=>"item.php?type=v", 'title'=>"Define a new {$alltypes['v']}", 'label' => "{$alltypes['v']}");
$menu[] = array("link"=>"item.php?type=m", 'title'=>"Define a new {$alltypes['m']}", 'label' => "{$alltypes['m']}");
/*
   ----------------------------------------------
*/
$menu[] = array("link"=>'','label'=>'Process');
//-------------------------------------------
$menu[] = array("link"=>"listItems.php?type=i", 'title'=>"Process inbox", 'label' => "Inbox");
$menu[] = array("link"=>"listItems.php?type=a&nextonly=true", 'title'=>"Process Next actions", 'label' => "Next Actions");
$menu[] = array("link"=>"listItems.php?type=a", 'title'=>"Process actions", 'label' => "Actions");
$menu[] = array("link"=>"listItems.php?type=w", 'title'=>"Process waiting-ons", 'label' => "Waiting On");
$menu[] = array("link"=>"listItems.php?type=r", 'title'=>"Process references", 'label' => "References");
$menu[] = array("link"=>"listItems.php?type=p", 'title'=>"Process projects", 'label' => "Projects");
$menu[] = array("link"=>"listItems.php?type=p&someday=true", 'title'=>"Process Someday projects", 'label' => "Someday/Maybes");
$menu[] = array("link"=>'','label'=>'separator');
$menu[] = array("link"=>"reportContext.php", 'title'=>"Process actions sorted by space context", 'label' => "Actions in context");
$menu[] = array("link"=>"index.php", 'title'=>"Summary view", 'label' => "Summary");
$menu[] = array("link"=>"listItems.php?quickfind", 'title'=>'Find an item based on text in its title, description or outcome', 'label'=>'Quick Find');
/*
   ----------------------------------------------
*/
$menu[] = array("link"=>'','label'=>'Review');
//-------------------------------------------
$menu[] = array("link"=>"weekly.php", 'title'=>"Steps in the Weekly Review", 'label' => "Weekly Review");
$menu[] = array("link"=>"orphans.php", 'title'=>"List items without a parent item", 'label' => "Orphaned Items");
$menu[] = array("link"=>"listItems.php?type=*&tickler=true&liveparents=*", 'title'=>"Hidden items and reminders", 'label' => "Tickler File");
$menu[] = array("link"=>'','label'=>'separator');
$menu[] = array("link"=>"listItems.php?type=g", 'title'=>"Review {$alltypes['g']}s", 'label' => "{$alltypes['g']}s");
$menu[] = array("link"=>"listItems.php?type=o", 'title'=>"Review {$alltypes['o']}s", 'label' => "{$alltypes['o']}s");
$menu[] = array("link"=>"listItems.php?type=v", 'title'=>"Review {$alltypes['v']}s", 'label' => "{$alltypes['v']}s");
$menu[] = array("link"=>"listItems.php?type=m", 'title'=>"Review {$alltypes['m']}s", 'label' => "{$alltypes['m']}s");
/*
   ----------------------------------------------
*/
$menu[] = array("link"=>'','label'=>'Lists');
//-------------------------------------------
$menu[] = array("link"=>"item.php?type=L", 'title'=>"Create a general purpose list", 'label' => "New List");
$menu[] = array("link"=>"listItems.php?type=L", 'title'=>"Show general-purpose lists", 'label' => "Show Lists");
$menu[] = array("link"=>'','label'=>'separator');
$menu[] = array("link"=>"item.php?type=C", 'title'=>"Create a reusable list", 'label' => "New Checklist");
$menu[] = array("link"=>"listItems.php?type=C", 'title'=>"Show reusable checklists", 'label' => "Show Checklists");
/*
   ----------------------------------------------
*/
$menu[] = array("link"=>'','label'=>'Configure');
//-------------------------------------------
$menu[] = array("link"=>"editCat.php?field=category", 'title'=>"Edit Meta-categories", 'label' => "Categories");
$menu[] = array("link"=>"editCat.php?field=context", 'title'=>"Edit spatial contexts", 'label' => "Space Contexts");
$menu[] = array("link"=>"editCat.php?field=time-context", 'title'=>"Edit time contexts", 'label' => "Time Contexts");
$menu[] = array("link"=>'','label'=>'separator');
$menu[] = array("link"=>"preferences.php", 'title'=>"User preferences", 'label' => "Preferences");
if (!$_SESSION['config']['suppressAdmin']) {
    $menu[] = array("link"=>"types1.php", 'title'=>"Change names in the hierarchy", 'label' => "Edit Level names");
    $menu[] = array("link"=>"types2.php", 'title'=>"Change relationships between the levels", 'label' => "Edit Levels");
    $menu[] = array("link"=>"admin.php", 'title'=>"Administration", 'label' => "Admin");
}
/*
   ----------------------------------------------
*/
$menu[] = array("link"=>'','label'=>'Help');
//-------------------------------------------
$newbuglink="https://www.hosted-projects.com/trac/toae/gtdphp/newticket";
if (!$_SESSION['config']['withholdVersionInfo'])
    $newbuglink.='?milestone='._GTDPHP_VERSION.'&description='.urlencode(
        'gtd-php='._GTD_REVISION.' , GTD-db='._GTD_VERSION
        .' , PHP='.PHP_VERSION.' , Database='.getDBVersion()
        .' , Browser='.$_SERVER['HTTP_USER_AGENT']
    );
$menu[] = array("link"=>"http://www.gtd-php.com/Users/Documentation", 'title'=>"Documentation", 'label' => "Helpfile Wiki");
$menu[] = array("link"=>$newbuglink, 'title'=>"Report a bug", 'label' => "Report a bug");
$menu[] = array("link"=>"listkeys.php", 'title'=>"List the shortcut keys", 'label' => "Show shortcut keys");
$menu[] = array("link"=>"http://toae.org/boards", 'title'=>"Help and development discussions", 'label' => "Support Forum");
$menu[] = array('link'=>'http://www.gtd-php.com/Developers/Contrib','title'=>'User-contributed enhancements','label'=>'Themes and add-ons');
$menu[] = array("link"=>"https://www.hosted-projects.com/trac/toae/gtdphp", 'title'=>"Bug tracking and project development", 'label' => "Developers' wiki");
$menu[] = array("link"=>"http://www.frappr.com/gtdphp", 'title'=>"Tell us where you are", 'label' => "Frappr Map");
if ($_SESSION['debug']['debug']) {
    $menu[] = array("link"=>"https://www.hosted-projects.com/trac/toae/gtdphp/log?action=stop_on_copy&rev="
        ._GTD_REVISION."&stop_rev=411&mode=follow_copy&verbose=on"
        ,'title'=>'Changelog (requires trac login)', 'label'=>'Changelog');
}
$menu[] = array("link"=>'','label'=>'separator');
$menu[] = array("link"=>"donate.php", 'title'=>"Help us defray our costs", 'label' => "Donate");
$menu[] = array("link"=>"license.php", 'title'=>"The GTD-PHP license and credits", 'label' => "License & Credits");
$menu[] = array("link"=>"version.php", 'title'=>"Version information", 'label' => "Version");
/*
   ----------------------------------------------
        now process addons
*/
$eventhandlers=@array_merge((array)$_SESSION['addons'][_GTD_ON_MENU]['*'],
                            (array)$_SESSION['addons'][_GTD_ON_MENU][$page]
                            );
foreach ($eventhandlers as $addonid=>$thisaddon) {
    $url=$thisaddon['where'];
    foreach ($menu as $key=>$line) {
        if ($url!==$line['link']) continue;
        switch ($thisaddon['when']) {
            case 'before':
                $offset=$key;
                $length=0;
                break;
            case 'replace':
                $offset=$key;
                $length=1;
                break;
            case 'after': // deliberately flows through to default
            default:
                $offset=$key+1;
                $length=0;
                break;
        }
        unset($thisaddon['where']);
        unset($thisaddon['when']);
        $thisaddon['link']="addon.php?addonid=$addonid&url={$thisaddon['link']}";
        array_splice($menu,$offset,$length,array($thisaddon));
        break;
    }
}
/*
   ----------------------------------------------
        finally, echo out the menus
*/
gtd_handleEvent(_GTD_ON_TITLE,$pagename);
?>

<?php
        echo $_SESSION['config']['title'];
    ?><?php
        echo ' ',(isset($titlefull))?$titlefull:$title;
    ?>

    <?php
    $accesskeys=$class=$menuend='';
    foreach ($menu as $index=>$line) {
        if (empty($line['link'])) {
            if ($line['label']==='separator') {
                $class=" class='menuseparator' ";
            } else {
                echo "$menuend
{$line['label']}
\n";
                $menuend="

\n";
            }
        } else {
            if (empty($_SESSION['keys'][$line['link']]))
                $keypress='';
            else {
                $menu[$index]['key']=$key=$_SESSION['keys'][$line['link']];
                $keypress=" ($key)";
                $accesskeys.="";
            }
	        echo "
\n"
                ,""
                ,"{$line['label']}$keypress
\n";
            $class='';
        }
    }
    echo $menuend;
    ?>

<?php echo $accesskeys; ?>


text:
SYNONYM

#### According to
Index Fungorum

#### Published in
null

#### Original name
Endomyces fibuliger Lindner, 1907

### Remarks
null


text:
'use strict';

/*!
 * Snakeskin
 * https://github.com/SnakeskinTpl/Snakeskin
 *
 * Released under the MIT license
 * https://github.com/SnakeskinTpl/Snakeskin/blob/master/LICENSE
 */

export const
	$dirNameShorthands = {},
	$dirNameAliases = {},
	$dirGroups = {};

export const
	$blockDirs = {},
	$textDirs = {},
	$logicDirs = {};

export const
	$dirChain = {},
	$dirParents = {},
	$dirEnd = {},
	$dirTrim = {},
	$dirInterpolation = {},
	$rgxp = {};

export const
	$blocks = {},
	$consts = {},
	$constPositions = {};

export const
	$write = {},
	$output = {};

export const
	$args = {},
	$argsRes = {};

export const
	$extMap = {},
	$extList = {};

export const
	$templates = {},
	$cache = {};

export const
	$globalCache = {},
	$globalFnCache = {};

export const $router = {
	'block': $blocks,
	'const': $consts
};

export const $routerPositions = {
	'const': $constPositions
};

export const $scope = {
	'block': {},
	'template': {}
};


text:
Domgen::Generator.define([:iris_audit],
                         "#{File.dirname(__FILE__)}/templates",
                         [Domgen::Java::Helper]) do |g|
  g.template_set(:iris_audit_server) do |template_set|
    template_set.erb_template(:repository,
                              'audit_resources.java.erb',
                              'main/java/#{repository.iris_audit.qualified_audit_resources_name.gsub(".","/")}.java')
    template_set.erb_template(:repository,
                              'audit_context_impl.java.erb',
                              'main/java/#{repository.iris_audit.qualified_audit_context_impl_name.gsub(".","/")}.java')
    template_set.erb_template(:repository,
                              'audit_context_util.java.erb',
                              'main/java/#{repository.iris_audit.qualified_audit_context_util_name.gsub(".","/")}.java')
    template_set.erb_template(:service,
                              'interceptor_impl.java.erb',
                              'main/java/#{service.iris_audit.qualified_interceptor_impl_name.gsub(".","/")}.java',
                              :guard => 'service.ejb? && service.ejb.generate_boundary?')
  end

  g.template_set(:iris_audit_client) do |template_set|
    template_set.erb_template(:repository,
                              'audit_fragment_adapter.java.erb',
                              'main/java/#{repository.iris_audit.qualified_audit_fragment_adapter_name.gsub(".","/")}.java',
                              :guard => 'repository.gwt?')
  end
end


text:
using System.IO;
using System.Runtime.Serialization.Json;
using System.Text;

namespace viadflib.TravelTime.Utils
{
    public class JsonHelper
    {
        public static T Deserialize<T>(string json)
        {
            var serializer = new DataContractJsonSerializer(typeof(T));
            var stream = new MemoryStream(Encoding.UTF8.GetBytes(json));
            return (T)serializer.ReadObject(stream);
        }

    }
}


text:
import sys
print '\n'.join(sys.path)
import naoqi

if __name__ == '__main__':
	print "Naoqi Test"


text:
Contributing
============

To contribute, please follow the [PSR-2][] guidelines.

[PSR-2]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md


text:
package com.example;

import java.net.InetSocketAddress;

import io.netty.bootstrap.ServerBootstrap;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.Channel;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelFutureListener;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.oio.OioServerSocketChannel;
import io.netty.util.CharsetUtil;

public class NettyOioServer {
	public void server(int port) throws Exception {
        final ByteBuf buf = Unpooled.unreleasableBuffer(Unpooled.copiedBuffer("Hi!\r\n", CharsetUtil.UTF_8));
        //事件循环组
        EventLoopGroup group = new NioEventLoopGroup();
        try {
            //用来引导服务器配置
            ServerBootstrap b = new ServerBootstrap();
            //使用OIO阻塞模式
            b.group(group).channel(OioServerSocketChannel.class).localAddress(new InetSocketAddress(port))
            //指定ChannelInitializer初始化handlers
                    .childHandler(new ChannelInitializer<Channel>() {
                        @Override
                        protected void initChannel(Channel ch) throws Exception {
                            //添加一个"入站"handler到ChannelPipeline
                            ch.pipeline().addLast(new ChannelInboundHandlerAdapter() {
                                @Override
                                public void channelActive(ChannelHandlerContext ctx) throws Exception {
                                    //连接后,写消息到客户端,写完后便关闭连接
                                    ctx.writeAndFlush(buf.duplicate()).addListener(ChannelFutureListener.CLOSE);
                                }
                            });
                        }
                    });
            //绑定服务器接受连接
            ChannelFuture f = b.bind().sync();
            f.channel().closeFuture().sync();
        } catch (Exception e) {
            //释放所有资源
            group.shutdownGracefully();
        }
    }
}


text:
@interface CustomCollectionViewCell : UICollectionViewCell

@property (nonatomic, strong) IBOutlet UILabel *testo;

@end


text:
package org.apereo.cas.mfa.simple.web.flow;

import org.apereo.cas.authentication.adaptive.UnauthorizedAuthenticationException;
import org.apereo.cas.configuration.model.support.mfa.CasSimpleMultifactorProperties;
import org.apereo.cas.ticket.TransientSessionTicketFactory;
import org.apereo.cas.ticket.registry.TicketRegistry;
import org.apereo.cas.util.io.CommunicationsManager;
import org.apereo.cas.web.flow.CasWebflowConstants;
import org.apereo.cas.web.support.WebUtils;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import lombok.val;
import org.apache.commons.lang3.StringUtils;
import org.springframework.webflow.action.AbstractAction;
import org.springframework.webflow.action.EventFactorySupport;
import org.springframework.webflow.core.collection.LocalAttributeMap;
import org.springframework.webflow.execution.Event;
import org.springframework.webflow.execution.RequestContext;

/**
 * This is {@link CasSimpleSendTokenAction}.
 *
 * @author Misagh Moayyed
 * @since 6.0.0
 */
@Slf4j
@RequiredArgsConstructor
public class CasSimpleSendTokenAction extends AbstractAction {
    private final TicketRegistry ticketRegistry;
    private final CommunicationsManager communicationsManager;
    private final TransientSessionTicketFactory ticketFactory;
    private final CasSimpleMultifactorProperties properties;

    @Override
    protected Event doExecute(final RequestContext requestContext) {
        val service = WebUtils.getService(requestContext);
        val token = ticketFactory.create(service);

        val authentication = WebUtils.getInProgressAuthentication();
        val principal = authentication.getPrincipal();

        val smsProperties = properties.getSms();
        val text = StringUtils.isNotBlank(smsProperties.getText())
            ? String.format(smsProperties.getText(), token.getId())
            : token.getId();

        val emailProperties = properties.getMail();
        val body = emailProperties.getFormattedBody(token.getId());

        val smsSent = communicationsManager.sms(principal, smsProperties.getAttributeName(), text, smsProperties.getFrom());
        val emailSent = communicationsManager.email(principal, emailProperties.getAttributeName(), emailProperties, body);

        if (smsSent || emailSent) {
            ticketRegistry.addTicket(token);
            LOGGER.debug("Successfully submitted token via SMS and/or email to [{}]", principal.getId());
            val attributes = new LocalAttributeMap("token", token.getId());
            return new EventFactorySupport().event(this, CasWebflowConstants.TRANSITION_ID_SUCCESS, attributes);
        }
        throw new UnauthorizedAuthenticationException("Both email and SMS communication strategies failed to submit token to user");
    }
}


text:
$(function() {

  // initialize Isotope
  var $container = $('.js-isotope').isotope({
    itemSelector: '.person',
    layoutMode: 'masonry',
    getSortData: {
      name: '.person__name',
      floor: '[data-floor]'
    },
    sortAscending: {
      name: true,
      floor: false
    },
    sortBy: 'random'
  });

  // filter on click
  $('#filters li').on('click', function() {
    var filterValue = $(this).attr('data-filter');
    $container.isotope({ filter: filterValue });
  });

  // sort on click
  $('#sorts li').on('click', function() {
    var sortValue = $(this).attr('data-sort');
    $container.isotope({ sortBy: sortValue });
  });

  // show and hide cards
  $('.person').on('click', function() {
    $('.cards').fadeIn();
  });
  $('.card__close').on('click', function() {
    $('.cards').fadeOut();
  });

});

// adding captions to Flickity
// http://codepen.io/desandro/pen/dPdVNM

$(document).ready( function() {
  var $gallery = $('.gallery').flickity({
    cellSelector: 'img',
    imagesLoaded: true,
    percentPosition: false
  });
  var $caption = $('.caption');
  // Flickity instance
  var flkty = $gallery.data('flickity');

  $gallery.on( 'cellSelect', function() {
    // set image caption using img's alt
    $caption.text( flkty.selectedElement.alt );
  });
});


text:
<?php

namespace FDevs\ArticleBundle\Document;

use FDevs\ArticleBundle\Model\Category as BaseCategory;

class Category extends BaseCategory
{

}


text:
>**_This documentation is for a preview version of the Azure DevOps Migration Tools._ If you are not using the preview version then please head over to the main [documentation](https://nkdagility.github.io/azure-devops-migration-tools).**

[Overview](.././index.md) > [Reference](../index.md) > [ProcessorEnrichers](./index.md) > **TfsEmbededImagesEnricher**

missng XML code comments

### Options

Options not yet implmeneted

### Example JSON

```JSON
!No Support for V1
```


text:
{% extends "smartmin/base.html" %}

{% load smartmin i18n %}

{% block content %}

{% block table-controls %}

    {% if view.search_fields %}
    {% block search-form %}
    <form class="form-inline" role="form">

        <input type="text" class="form-control input-medium search-query" name="search" value="{{ search }}">

      <button type="submit" class="btn btn-default">{% trans "Search" %}</button>
    </form>
    {% endblock %}
    {% else %}

    {% endif %}

    {% block table-buttons %}
    {% if view.add_button %}
    {% trans "Add" %}
    {% endif %}
    {% endblock table-buttons %}

{% endblock %}

{% block pjax %}

    {% block pre-table %}{% endblock %}

    {% block table %}

          {% for field in fields %}
          {% get_label field %}
          {% endfor %}

        {% for obj in object_list %}

          {% for field in fields %}

            {% if field in link_fields %}{% endif %}{% get_value obj field %}{% if field in link_fields %}{% endif %}

          {% endfor %}

        {% empty %}

          {% for field in fields %}

          {% endfor %}

        {% endfor %}

        {% block extra-rows %}
        {% endblock extra-rows %}

    {% endblock table %}

    {% block post-table %}{% endblock post-table %}

{% block paginator %}

      {% if not paginator or paginator.num_pages <= 1 %}
	{% blocktrans count counter=object_list|length %}
	 {{ counter }} result
	{% plural %}
         {{ counter }} results
        {% endblocktrans %}
      {% else %}
	{% blocktrans with start=page_obj.start_index end=start_obj.end_index count=paginator.count %}
	Results {{ start }}-{{ end }} of {{ count }}
	{% endblocktrans %}
      {% endif %}

    {% if paginator and paginator.num_pages > 1 %}

        {% if page_obj.has_previous %}

← {% trans "Previous" %}

        {% else %}

← {% trans "Previous" %}

        {% endif %}

        {% for page_num in paginator.page_range %}
	  {% if page_obj.number < 5 %}
	    {% if page_num < 10 %}
	      {% if not page_num == page_obj.number %}

{{ page_num }}

	      {% else %}

{{ page_num }}

              {% endif %}
            {% endif %}
	  {% elif page_num < page_obj.number|add:"5" and page_num > page_obj.number|add:"-5" %}
	    {% if not page_num == page_obj.number %}

{{ page_num }}

	    {% else %}

{{ page_num }}

            {% endif %}
	  {% elif page_obj.number > paginator.num_pages|add:"-5" %}
	    {% if page_num > paginator.num_pages|add:"-9" %}
	      {% if not page_num == page_obj.number %}

{{ page_num }}

	      {% else %}

{{ page_num }}

              {% endif %}
	    {% endif %}

          {% endif %}
        {% endfor %}

        {% if page_obj.has_next %}

{% trans "Next" %} →

        {% else %}

{% trans "Next" %} →

        {% endif %}

    {% endif %}

{% endblock %}

{% endblock pjax %}
{% endblock content %}

{% block extra-script %}
{{ block.super }}

{% endblock %}


text:
[![No Maintenance Intended](http://unmaintained.tech/badge.svg)](http://unmaintained.tech/)

Plantilla de tareas de Gulp.js para distintos usos, con un package.json con todos los módulos requeridos.


text:
'use strict';

var utils = require('./utils');

/**
 * Shallow copy an object, array or primitive.
 *
 * @param  {any} `val`
 * @return {any}
 */

function clone(val) {
  var type = utils.typeOf(val);

  if (clone.hasOwnProperty(type)) {
    return clone[type](val);
  }
  return val;
}

clone.array = function cloneArray(arr) {
  return arr.slice();
};

clone.date = function cloneDate(date) {
  return new Date(+date);
};

clone.object = function cloneObject(obj) {
  if (utils.isObject(obj)) {
    return utils.mixin({}, obj);
  } else {
    return obj;
  }
};

clone.regexp = function cloneRegExp(re) {
  var flags = '';
  flags += re.multiline ? 'm' : '';
  flags += re.global ? 'g' : '';
  flags += re.ignorecase ? 'i' : '';
  return new RegExp(re.source, flags);
};

/**
 * Expose `clone`
 */

module.exports = clone;


text:
import {
  clickable_, setupEventListener, timeout_, doc, isAlive_, set_noRAF_old_cr_, math, isTop, OnChrome, readyState_,
  loc_, getTime, recordLog, VTr, vApi, Stop_, isTY, OnEdge, abs_
} from "../lib/utils"
import {
  createElement_, set_createElement_, OnDocLoaded_, runJS_, rAF_, removeEl_s, attr_s, setOrRemoveAttr_s,
  parentNode_unsafe_s
} from "../lib/dom_utils"
import { safeDestroy, setupBackupTimer_cr } from "./port"
import { coreHints, doesWantToReloadLinkHints, hintOptions, reinitLinkHintsIn } from "./link_hints"
import { grabBackFocus } from "./insert"

export const main_not_ff = (Build.BTypes & ~BrowserType.Firefox ? (): void => {
(function extendClick(this: void, isFirstTime?: boolean): void {
/** Note(gdh1995):
 * According to source code of C72,
 *     getElementsByTagName has a special cache (per container node) for tag name queries,
 * and I think it's shared across V8 worlds.
 * https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/dom/container_node.cc?type=cs&q=getElementsByTagName&g=0&l=1578
 */
  const enum InnerConsts {
    MaxElementsInOneTickDebug = 1024,
    MaxElementsInOneTickRelease = 512,
    MaxUnsafeEventsInOneTick = 12,
    DelayToWaitDomReady = 1000,
    DelayForNext = 36,
    DelayForNextComplicatedCase = 1,
    TimeoutOf3rdPartyFunctionsCache = 1e4, // 10 seconds
    kSecretAttr = "data-vimium",

    kVOnClick = "VimiumCClickable",
    kHook = "VimiumC",
    kCmd = "VC",
    kModToExposeSecret = 1e4,
    kRandStrLenInBuild = 7,
  }
  type ClickableEventDetail = [ inDocument: number[], forDetached: number[], fromAttrs: BOOL ] | string
/** Note: on Firefox, a `[sec, cmd]` can not be visited by the main world:
 * https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Sharing_objects_with_page_scripts#Constructors_from_the_page_context.
 */
  // `high bits` mean secret, `lower bits >> kContentCmd.MaskedBitNumber` mean content cmd
  type CommandEventDetail = number;
  interface CustomEventCls {
    prototype: CustomEvent;
    new <Type extends InnerConsts & string>(typeArg: Type, eventInitDict?: { detail?:
      Type extends InnerConsts.kVOnClick ? ClickableEventDetail
        : Type extends InnerConsts.kCmd ? CommandEventDetail
        : never;
      composed?: boolean; }): CustomEvent;
  }
  interface DelegateEventCls {
    prototype: FocusEvent;
    new (typeArg: InnerConsts.kVOnClick | GlobalConsts.MarkAcrossJSWorlds
        , eventInitDict: Pick<FocusEventInit, "relatedTarget" | "composed">): FocusEvent;
  }

  const kVOnClick1 = InnerConsts.kVOnClick
    , outKMK = GlobalConsts.MarkAcrossJSWorlds
    , kHookRand = (outKMK + BuildStr.RandomClick) as InnerConsts.kHook
    , appInfo = OnChrome
        && (Build.MinCVer <= BrowserVer.NoRAFOrRICOnSandboxedPage
            || Build.MinCVer < BrowserVer.MinEnsuredNewScriptsFromExtensionOnSandboxedPage
            || Build.MinCVer < BrowserVer.MinEnsuredES6MethodFunction
            || Build.MinCVer < BrowserVer.MinEventListenersFromExtensionOnSandboxedPage)
        ? !isTY((window as PartialOf<typeof globalThis, "queueMicrotask">).queueMicrotask, kTY.func)
          ? navigator.userAgent!.match(<RegExpOne & RegExpSearchable<1>> /\bChrom(?:e|ium)\/(\d+)/) : 0 as const
        : [BrowserVer.Min$queueMicrotask]
    , tmpChromeVer: BrowserVer | 1 | 0 = OnChrome
        && (Build.MinCVer <= BrowserVer.NoRAFOrRICOnSandboxedPage
            || Build.MinCVer < BrowserVer.MinEnsuredNewScriptsFromExtensionOnSandboxedPage
            || Build.MinCVer < BrowserVer.MinEnsuredES6MethodFunction
            || Build.MinCVer < BrowserVer.MinEventListenersFromExtensionOnSandboxedPage)
        ? appInfo && <BrowserVer> +appInfo[1] || 0
        : OnChrome ? 1 : 0
    , secret: string = ((math.random() * GlobalConsts.SecretRange + GlobalConsts.SecretBase) | 0) + ""
    , script = createElement_("script");
  let hook = function (event: Event): void {
    const t = (event as TypeToAssert<Event, DelegateEventCls["prototype"], "relatedTarget">).relatedTarget,
    S = InnerConsts.kSecretAttr;
    // use `instanceof` to require the `t` element is a new instance which has never entered this extension world
    if (++hookRetryTimes > GlobalConsts.MaxRetryTimesForSecret
        || !(t instanceof Element)) { return; }
    Stop_(event);
    if (t.localName !== "div" || attr_s(t as SafeElement, S) !== secret) { return }
    setupEventListener(0, kHookRand, hook, 1);
    hook = null as never;
    if (box == null) {
      setOrRemoveAttr_s(t as SafeElement, S)
      setupEventListener(t, kVOnClick1, onClick);
      box = t;
    }
  };
  function onClick(this: Element | Window, event: Event): void {
    Stop_(event)
    if (!box) { return; }
    const rawDetail = (
        event as TypeToAssert<Event, (CustomEventCls | DelegateEventCls)["prototype"], "detail">
        ).detail as ClickableEventDetail | null | undefined,
    isSafe = this === box,
    detail = rawDetail && isTY(rawDetail, kTY.obj) && isSafe ? rawDetail : "",
    fromAttrs: 0 | 1 | 2 = detail ? (detail[2] + 1) as 1 | 2 : 0;
    let path: typeof event.path, reHint: number | undefined,
    target = detail ? null : (event as DelegateEventCls["prototype"]).relatedTarget as Element | null
        || (!OnEdge
            && (!OnChrome || Build.MinCVer >= BrowserVer.Min$Event$$Path$IncludeWindowAndElementsIfListenedOnWindow)
            ? event.path![0] as Element
            : (path = event.path) && path.length > 1 ? path[0] as Element : null)
    if (detail) {
      resolve(0, detail[0]); resolve(1, detail[1]);
    } else if (/* safer */ target
        && (isSafe && !rawDetail || +secret % InnerConsts.kModToExposeSecret + <string> target.tagName === rawDetail)) {
      clickable_.add(target);
    } else {
      if (!Build.NDEBUG && !isSafe && target
          && +secret % InnerConsts.kModToExposeSecret + <string> target.tagName !== rawDetail) {
        console.error("extend click: unexpected: detail =", rawDetail, target);
        return;
      }
    }
    if (!Build.NDEBUG && (++counterResolvePath <= 32
        || Math.floor(Math.log(counterResolvePath) / Math.log(1.414)) !==
           Math.floor(Math.log(counterResolvePath - 1) / Math.log(1.414)))) {
      console.log(`Vimium C: extend click: resolve ${detail ? "[%o + %o]" : "<%o>%s"} in %o @t=%o .`
        , detail ? detail[0].length
          : target && (isTY(target.localName) ? target.localName : (target as ElementWithToStr) + "")
        , detail ? detail[2] ? -0 : detail[1].length
          : (event as FocusEvent).relatedTarget ? " (detached)"
          : this === window ? " (path on window)" : " (path on box)"
        , loc_.pathname.replace(<RegExpOne> /^.*(\/[^\/;]+\/?)(;[^\/]+)?$/, "$1")
        , getTime() % 3600000);
    }
    if (isFirstResolve & fromAttrs) {
      isFirstResolve ^= fromAttrs;
      coreHints.h < 0 && doesWantToReloadLinkHints("lo") && (reHint = GlobalConsts.MinCancelableInBackupTimer)
    }
    if (coreHints.h > 0 && !reHint && hintOptions.autoReload && doesWantToReloadLinkHints("de")) {
      reHint = abs_(getTime() - coreHints.h) < GlobalConsts.ExtendClick_DelayToStartIteration + 100
          ? InnerConsts.DelayForNext + 17 : 0
    }
    reHint && reinitLinkHintsIn(reHint)
  }
  const resolve = (isBox: BOOL, nodeIndexArray: number[]): void => {
    if (!nodeIndexArray.length) { return; }
    const list = (isBox ? box as Element : doc).getElementsByTagName("*");
    for (const index of nodeIndexArray) {
      let el = list[index];
      el && clickable_.add(el);
    }
  }
  const dispatchCmd = (cmd: SecondLevelContentCmds): void => {
    box && box.dispatchEvent(new (CustomEvent as CustomEventCls)(
        InnerConsts.kCmd, {
      detail: (+secret << kContentCmd.MaskedBitNumber) | cmd
    }));
  }
  const execute = (cmd: ValidContentCommands): void => {
    if (cmd < kContentCmd._minSuppressClickable) {
      isFirstResolve = 0;
      dispatchCmd(cmd as ValidContentCommands & ContentCommandsNotSuppress);
      return;
    }
    /** this function should keep idempotent */
    if (box) {
      setupEventListener(box, kVOnClick1, onClick, 1);
      setupEventListener(0, kVOnClick1, onClick, 1);
      dispatchCmd(kContentCmd.Destroy);
    }
    if (box == null && isFirstTime) {
      setupEventListener(0, kHookRand, hook, 1);
      if (cmd === kContentCmd.DestroyForCSP) {
        // normally, if here, must have: limited by CSP; not C or C >= MinEnsuredNewScriptsFromExtensionOnSandboxedPage
        // ignore the rare (unexpected) case that injected code breaks even when not limited by CSP,
        //     which might mean curCVer has no ES6...
        runJS_("`${" + outKMK + "=>" + secret + "}`")
      }
    }
    box = 0;
    vApi.e = null;
  }

/**
 * Note:
 *   should not create HTML/SVG elements before document gets ready,
 *   otherwise the default XML parser will not enter a "xml_viewer_mode"
 * Stack trace:
 * * https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc?q=XMLDocumentParser::end&l=390
 * * https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc?q=XMLDocumentParser::DoEnd&l=1543
 * * https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc?g=0&q=HasNoStyleInformation&l=106
 * * https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/dom/document.cc?g=0&q=Document::CreateRawElement&l=946
 * Vimium issue: https://github.com/philc/vimium/pull/1797#issuecomment-135761835
 */
  if ((script as Element as ElementToHTML).lang == null) {
    set_createElement_(doc.createElementNS.bind(doc, VTr(kTip.XHTML) as "http://www.w3.org/1999/xhtml"
        ) as typeof createElement_)
    isFirstTime != null && OnDocLoaded_(extendClick); // retry after a while, using a real <script>
    return
  }
  script.dataset.vimium = secret

  let box: Element | undefined | 0, hookRetryTimes = 0, counterResolvePath = 0,
  isFirstResolve: 0 | 1 | 2 | 3 | 4 = isTop ? 3 : 4

// #region injected code
  /** the `InnerVerifier` needs to satisfy
   * * never return any object (aka. keep void) if only "not absolutely safe"
   * * never change the global environment / break this closure
   * * must look like a real task and contain random string
   */
  interface InnerVerifier { (maybeSecret: string): void }
  let injected: string = (Build.NDEBUG && Build.Inline ? VTr(isFirstTime ? kTip.extendClick : kTip.removeCurScript)
          : !isFirstTime && VTr(kTip.removeCurScript))
        || "'use strict';(" + (function VC(this: void): void {

type FUNC = (this: unknown, ...args: never[]) => unknown;
const V = /** verifier */ (maybeSecret: string): void | boolean => {
    I = GlobalConsts.MarkAcrossJSWorlds + BuildStr.RandomClick === maybeSecret
},
MayChrome = !!(Build.BTypes & BrowserType.Chrome),
MayEdge = !!(Build.BTypes & BrowserType.Edge), MayNotEdge = !!(Build.BTypes & ~BrowserType.Edge),
MayES5 = MayChrome && Build.MinCVer < BrowserVer.MinTestedES6Environment,
doc0 = document, curScript = doc0.currentScript as HTMLScriptElement,
sec = curScript.dataset.vimium!,
kAEL = "addEventListener", kToS = "toString", kProto = "prototype", kByTag = "getElementsByTagName",
ETP = EventTarget[kProto], _listen = ETP[kAEL],
toRegister: Element[] & { p (el: Element): void | 1; s: Element[]["splice"] } = [] as any,
_apply = _listen.apply, _call = _listen.call,
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
call = _call.bind(_call as any) as <T, A extends any[], R>(func: (this: T, ...a: A) => R, thisArg: T, ...args: A) => R,
dispatch = _call.bind<(this: (this: EventTarget, ev: Event) => boolean
    , self: EventTarget, evt: Event) => boolean>(ETP.dispatchEvent),
ElCls = Element, ElProto = ElCls[kProto],
Append = !MayChrome || Build.MinCVer >= BrowserVer.MinEnsured$ParentNode$$appendAndPrepend
    ? ElProto.append! : ElProto.appendChild,
GetRootNode = ElProto.getRootNode,
Attr = ElProto.setAttribute, HasAttr = ElProto.hasAttribute, Remove = ElProto.remove,
StopProp = Event[kProto].stopImmediatePropagation as (this: Event) => void,
contains = ElProto.contains.bind(doc0), // in fact, it is Node::contains
nodeIndexListInDocument: number[] = [], nodeIndexListForDetached: number[] = [],
getElementsByTagNameInDoc = doc0[kByTag], getElementsByTagNameInEP = ElProto[kByTag],
IndexOf = _call.bind(toRegister.indexOf) as never as (list: HTMLCollectionOf<Element>, item: Element) => number,
push = (toRegister as { p (el: Element | number): void | number}).p = nodeIndexListInDocument.push,
pushInDocument = push.bind(nodeIndexListInDocument), pushForDetached = push.bind(nodeIndexListForDetached),
CECls = CustomEvent as CustomEventCls,
DECls = FocusEvent as DelegateEventCls,
FProto = Function[kProto], _toString = FProto[kToS],
listen = _call.bind<(this: (this: EventTarget,
          type: string, listener: EventListenerOrEventListenerObject, useCapture?: EventListenerOptions | boolean
        ) => 42 | void,
        self: EventTarget, name: string, listener: EventListenerOrEventListenerObject,
        opts?: EventListenerOptions | boolean
    ) => 42 | void>(_listen),
rEL = MayChrome && Build.MinCVer < BrowserVer.Min$addEventListener$support$once
    ? removeEventListener : 0 as never as null, clearTimeout1 = clearTimeout,
kVOnClick = InnerConsts.kVOnClick,
kRand = BuildStr.RandomClick, kEventName2 = kVOnClick + kRand,
kReady = "readystatechange", kFunc = "function",
docCreateElement = doc0.createElement,
StringSplit = !Build.NDEBUG ? kReady.split : 0 as never, StringSubstr = kReady.substr,
checkIsNotVerifier = (func?: InnerVerifier | unknown): void | 42 => {
  if (!Build.NDEBUG && !verifierPrefixLen) {
    verifierLen = (verifierStrPrefix = call(_toString, V)).length,
    verifierPrefixLen = (verifierStrPrefix = call(StringSplit, verifierStrPrefix, sec)[0]).length
  }
  func && (func as InnerVerifier)(
        call(StringSubstr, call(_toString, func as InnerVerifier)
          , !Build.NDEBUG ? verifierPrefixLen!
                - (GlobalConsts.LengthOfMarkAcrossJSWorlds + InnerConsts.kRandStrLenInBuild)
              /** `16` is for {@see #BrowserVer.MinEnsured$Function$$toString$preservesWhitespace} */
              : MayES5 ? 16 : 7
          , GlobalConsts.LengthOfMarkAcrossJSWorlds + InnerConsts.kRandStrLenInBuild + GlobalConsts.SecretStringLength)
  )
}
const hooks = {
  toString: function toString(this: FUNC): string {
    const a = this, args = arguments;
    const str = call(_apply as (this: (this: FUNC, ...args: any[]) => string, self: FUNC, args: IArguments) => string,
        _toString, a, args)
    const mayStrBeToStr: boolean
        = str !== (myAELStr
                  || (myToStrStr = call(_toString, myToStr),
                      Build.NDEBUG
                      ? verifierStrPrefix = call(StringSubstr, call(_toString, V), 0
                        , GlobalConsts.LengthOfMarkAcrossJSWorlds + InnerConsts.kRandStrLenInBuild + (MayES5 ? 16 : 7))
                      : (verifierLen = (verifierStrPrefix = call(_toString, V)).length,
                        verifierPrefixLen = (verifierStrPrefix = call(StringSplit, verifierStrPrefix, sec)[0]).length),
                      myAELStr = call(_toString, myAEL)))
    args[0] === kMk + BuildStr.RandomClick && checkIsNotVerifier(args[1])
    detectDisabled && str === detectDisabled && executeCmd()
    return mayStrBeToStr && str !== myToStrStr
        ? str.length !== (!Build.NDEBUG ? verifierLen
              : GlobalConsts.LengthOfMarkAcrossJSWorlds + GlobalConsts.SecretStringLength + (MayES5 ? 22 : 13))
          || call(StringSubstr, str, 0, !Build.NDEBUG ? verifierPrefixLen! : GlobalConsts.LengthOfMarkAcrossJSWorlds
                  + InnerConsts.kRandStrLenInBuild + (MayES5 ? 16 : 7)) !== verifierStrPrefix
          ? str : call(_toString, noop)
        : a === myToStr || a === myAEL || (I = 0,
          // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-argument
          mayStrBeToStr ? call(a as any, noop, kMk + kRand, V) : (a as any)(kMk + kRand, noop, 0, V), I)
        ? call(_toString, mayStrBeToStr ? _toString : _listen) : str
  },
  addEventListener: function addEventListener(this: EventTarget, type: string
      , listener: EventListenerOrEventListenerObject): void {
    const a = this, args = arguments, len = args.length;
    const ret = type === GlobalConsts.MarkAcrossJSWorlds + BuildStr.RandomClick ? checkIsNotVerifier(args[3])
        : len === 2 ? listen(a, type, listener) : len === 3 ? listen(a, type, listener, args[2] as EventListenerOptions)
        : call(_apply as (this: (this: EventTarget, ...args: any[]) => void, o: EventTarget, args: IArguments) => void,
             _listen as (this: EventTarget, ...args1: any[]) => void, a, args);
    if (type === "click" || type === "mousedown" || type === "dblclick"
        ? listener && a instanceof ElCls && a.localName !== "a"
        : type === kEventName2 && !isReRegistering
          // note: window.history is mutable on C35, so only these can be used: top,window,location,document
          && a && !(a as Window).window && (a as Node).nodeType === kNode.ELEMENT_NODE) {
      toRegister.p(a as Element);
      timer = timer || (queueMicroTask_(delayToStartIteration), 1);
    }
    return ret as void
  }
},
myAEL = (/*#__NOINLINE__*/ hooks)[kAEL], myToStr = (/*#__NOINLINE__*/ hooks)[kToS]

let doInit = (): void => {
  if (MayChrome && Build.MinCVer < BrowserVer.Min$addEventListener$support$once) {
    doInit && rEL!(kReady, doInit, !0)
  }
  if (!detectDisabled) { return }
  detectDisabled = 0;
  // note: `HTMLCollection::operator []` can not be overridden by `Object.defineProperty` on C32/83
  const docEl2 = MayEdge ? (docChildren as Extract<typeof docChildren, Function>)(0)
      : (docChildren as Exclude<typeof docChildren, Function>)[0] as Element | null,
  el = call(docCreateElement, doc0, "div") as HTMLDivElement,
  S = InnerConsts.kSecretAttr;
  if (MayChrome && Build.MinCVer < BrowserVer.Min$addEventListener$support$once) {
    doInit = null as never
  }
  docChildren = null as never;
  if (!docEl2) { return executeCmd(); }
  call(Attr, el, S, sec);
  listen(el, InnerConsts.kCmd, executeCmd, !0);
  dispatch(window, new DECls((kMk + kRand) as typeof kMk, {relatedTarget: el}));
  if (call(HasAttr, el, S)) {
    executeCmd();
  } else {
    root = el;
    timer = toRegister.length > 0 ? setTimeout_(next, InnerConsts.DelayForNext) : 0;
  }
},
/** kMarkToVerify */ kMk = GlobalConsts.MarkAcrossJSWorlds as const,
detectDisabled: string | 0 = kMk + "=>" + sec,
myAELStr: string | undefined, myToStrStr: string | undefined,
verifierStrPrefix: string | undefined, verifierPrefixLen: number | undefined, verifierLen: number | undefined,
/** verifierIsLastMatched */ I: BOOL | boolean | undefined,
// here `setTimeout` is normal and will not use TimerType.fake
setTimeout_ = setTimeout as SafeSetTimeout,
docChildren: Document["children"] | ((index: number) => Element | null) = doc0.children,
unsafeDispatchCounter = 0,
allNodesInDocument = null as HTMLCollectionOf<Element> | null,
allNodesForDetached = null as HTMLCollectionOf<Element> | null,
root: HTMLDivElement, timer = setTimeout_(doInit, InnerConsts.DelayToWaitDomReady),
queueMicroTask_: (callback: () => void) => void =
    MayEdge || MayChrome && Build.MinCVer < BrowserVer.Min$queueMicrotask
    ? MayNotEdge ? (window as PartialOf<typeof globalThis, "queueMicrotask">).queueMicrotask! : 0 as never
    : queueMicrotask,
isReRegistering: BOOL | boolean = 0
// To avoid a host script detect Vimum C by code like:
// ` a1 = setTimeout(()=>{}); $0.addEventListener('click', ()=>{}); a2=setTimeout(()=>{}); [a1, a2] `
const delayToStartIteration = (): void => { setTimeout_(next, GlobalConsts.ExtendClick_DelayToStartIteration) }
const next = (): void => {
  const len = toRegister.length,
  start = len > (Build.NDEBUG ? InnerConsts.MaxElementsInOneTickRelease : InnerConsts.MaxElementsInOneTickDebug)
    ? len - (Build.NDEBUG ? InnerConsts.MaxElementsInOneTickRelease : InnerConsts.MaxElementsInOneTickDebug) : 0,
  delta = len - start;
  timer = start > 0 ? setTimeout_(next, InnerConsts.DelayForNext) : 0;
  if (!len) { return; }
  call(Remove, root); // just safer
  // skip some nodes if only crashing, so that there would be less crash logs in console
  const slice = toRegister.s(start, delta);
  for (let i = unsafeDispatchCounter = 0; i < slice.length; i++) {
    prepareRegister(slice[i]); // avoid for-of, in case Array::[[Symbol.iterator]] was modified
  }
  doRegister(0);
  allNodesInDocument = allNodesForDetached = null;
}
const prepareRegister = (element: Element): void => {
  if (contains(element)) {
    pushInDocument(
      IndexOf(allNodesInDocument = allNodesInDocument || call(getElementsByTagNameInDoc, doc0, "*")
        , element));
    return;
  }
  // here element is inside a #shadow-root or not connected
  const doc1 = element.ownerDocument;
  // in case element is <form> / <frameset> / adopted into another document, or aEL is from another frame
  if (doc1 !== doc0) {
    // although on Firefox element.__proto__ is auto-updated when it is adopted
    // but aEl may be called before real insertion
    if ((!MayChrome || Build.MinCVer >= BrowserVer.MinFramesetHasNoNamedGetter || (doc1 as WindowWithTop).top !== top)
        && (doc1 as Exclude<typeof doc1, Window>).nodeType === kNode.DOCUMENT_NODE
        && (doc1 as Document).defaultView) {
      // just smell like a Document
      /*#__NOINLINE__*/
      safeReRegister(element, doc1 as Document);
    } // `defaultView` is to check whether element is in a DOM tree of a real frame
    // Note: on C72, ownerDocument of elements under <template>.content
    // is a fake "about:blank" document object
    return;
  }
  let parent: Node | RadioNodeList | null | undefined, tempParent: Node | RadioNodeList | null | undefined;
  if (!MayEdge && (!MayChrome || Build.MinCVer >= BrowserVer.Min$Node$$getRootNode) || GetRootNode) {
    parent = call(GetRootNode!, element);
  } else {
    // according to tests and source code, the named getter for <frameset> requires <frame>.contentDocument is valid
    // so here pe and pn will not be Window if only ignoring the case of `<div> -> #shadow-root -> <frameset>`
    let kValue = "value", curEl: Element | null = element;
    for (;  parent     = curEl.parentNode    as Exclude<Element["parentNode"],    Window>
          , tempParent = curEl.parentElement as Exclude<Element["parentElement"], Window>
        ; curEl = tempParent as Element) {
      // here skips more cases than an "almost precise" solution, but it is enough
      if (tempParent !== parent && kValue in tempParent) {
        if (!parent || parent.nodeType !== kNode.ELEMENT_NODE) { break; }
        if (kValue in parent) { return; }
        tempParent = parent as Element;
      }
    }
    parent = parent || curEl;
  }
  // Document::nodeType is not changable (except overridden by an element like <img>), so the comparsion below is safe
  let type = parent.nodeType, s: Element["tagName"];
  // note: the below may change DOM trees,
  // so `dispatch` MUST NEVER throw. Otherwise a page might break
  if (type === kNode.ELEMENT_NODE) {
    parent !== root && call(Append, root, parent as Element);
    pushForDetached(
      IndexOf(allNodesForDetached = allNodesForDetached || call(getElementsByTagNameInEP, root, "*")
        , element));
  // Note: ignore the case that a plain #document-fragment has a fake .host
  }
  else if (type !== kNode.DOCUMENT_FRAGMENT_NODE) { /* empty */ }
  else if (unsafeDispatchCounter < InnerConsts.MaxUnsafeEventsInOneTick - 2) {
    if (MayNotEdge && (tempParent = (parent as TypeToAssert<DocumentFragment, ShadowRoot, "host">).host)) {
      parent = (!MayEdge && (!MayChrome || Build.MinCVer >= BrowserVer.Min$Node$$getRootNode) || GetRootNode)
          && (tempParent as NonNullable<ShadowRoot["host"]>).shadowRoot // an open shadow tree
          && call(GetRootNode!, element, {composed: !0});
      if (parent && (parent === doc0 || (<NodeToElement> parent).nodeType === kNode.ELEMENT_NODE)
          && typeof (s = element.tagName) === "string") {
        parent !== doc0 && parent !== root && call(Append, root, parent);
        unsafeDispatchCounter++;
        dispatch(element, new CECls(kVOnClick, {detail: +sec % InnerConsts.kModToExposeSecret + s, composed: !0}))
      }
    } else {
      unsafeDispatchCounter++;
      dispatch(root, new DECls(kVOnClick, {relatedTarget: element}));
    }
  } else {
      toRegister.p(element);
      if (unsafeDispatchCounter < InnerConsts.MaxUnsafeEventsInOneTick + 1) {
        unsafeDispatchCounter = InnerConsts.MaxUnsafeEventsInOneTick + 1; // a fake value to run it only once a tick
        clearTimeout1(timer);
        timer = setTimeout_(next, InnerConsts.DelayForNextComplicatedCase);
      }
  }
}
const doRegister = (fromAttrs: BOOL): void => {
  if (nodeIndexListInDocument.length + nodeIndexListForDetached.length) {
    unsafeDispatchCounter++
    dispatch(root, new CECls(kVOnClick, { detail: [nodeIndexListInDocument, nodeIndexListForDetached, fromAttrs] }))
  }
  nodeIndexListInDocument.length = nodeIndexListForDetached.length = 0
// check lastChild, so avoid a mutation scope created in
// https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/core/dom/node.cc;l=2117;drc=06e052d21baaa5afc7c851ed43c6a90e53dc6156
  root.textContent = "";
}
const safeReRegister = (element: Element, doc1: Document): void => {
  const localAEL = doc1[kAEL], localREL = doc1.removeEventListener;
  if (typeof localAEL == kFunc && typeof localREL == kFunc && localAEL !== myAEL) {
    isReRegistering = 1;
    try {
      // Note: here may break in case .addEventListener is an <embed> or overridden by host code
      call(localAEL, element, kEventName2, noop);
    } catch {}
    try {
      call(localREL, element, kEventName2, noop);
    } catch {}
    isReRegistering = 0;
  }
}
const executeCmd = (eventOrDestroy?: Event): void => {
  const detail: CommandEventDetail = eventOrDestroy && (eventOrDestroy as CustomEvent).detail,
  cmd: SecondLevelContentCmds | kContentCmd._fake = detail
      ? (detail >> kContentCmd.MaskedBitNumber) === +sec ? detail & ((1 << kContentCmd.MaskedBitNumber) - 1)
        : kContentCmd._fake
      : eventOrDestroy ? kContentCmd._fake : kContentCmd.Destroy;
  // always stopProp even if the secret does not match, so that an attacker can not detect secret by enumerating numbers
  detail && call(StopProp, eventOrDestroy!);
  let len: number, i: number, tag: Element["localName"]
  if (cmd < kContentCmd._minSuppressClickable) {
    if (!cmd || !root) { return; }
    call(Remove, root);
    allNodesInDocument = call(getElementsByTagNameInDoc, doc0, "*");
    len = allNodesInDocument.length, i = unsafeDispatchCounter = 0
    len = len < GlobalConsts.MinElementCountToStopScanOnClick || cmd === kContentCmd.ManuallyFindAllOnClick
        ? len : 0; // stop it
    for (; i < len; i++) {
      const el: Element | HTMLElement = allNodesInDocument[i];
      if (((el as HTMLElement).onclick || (el as HTMLElement).onmousedown) && !call(HasAttr, el, "onclick")
          && (tag = el.localName) !== "a" && tag !== "button") { // ignore <button>s to iter faster
        pushInDocument(i);
      }
    }
    doRegister(1);
    allNodesInDocument = null;
    return;
  }
  toRegister.length = detectDisabled = 0;
  toRegister.p = setTimeout_ = noop;
  root = null as never;
  clearTimeout1(timer);
  timer = 1;
}
const noop = (): 1 => { return 1 }

if (!MayNotEdge
    || (MayEdge || MayChrome && Build.MinCVer < BrowserVer.Min$queueMicrotask) && typeof queueMicroTask_ !== kFunc) {
  if (MayChrome && Build.MinCVer <= BrowserVer.Maybe$Promise$onlyHas$$resolved) {
    const promise_ = Promise
    queueMicroTask_ = (promise_.resolve ? promise_.resolve() : promise_.resolved!()) as any
  } else {
    queueMicroTask_ = Promise.resolve() as any
  }
  queueMicroTask_ = (queueMicroTask_ as any as Promise<void>).then.bind(queueMicroTask_ as any as Promise<void>);
}
if (MayEdge) {
  docChildren = docChildren.item.bind(docChildren)
}
toRegister.s = toRegister.splice;
// only the below can affect outsides
curScript.remove();
ETP[kAEL] = myAEL;
if (MayChrome && Build.MinCVer < BrowserVer.Min$addEventListener$support$once) {
  _listen(kReady, doInit, !0);
} else {
  _listen(kReady, doInit, {capture: !0, once: !0});
}
FProto[kToS] = myToStr

      }).toString() + ")();" /** need "toString()": {@link ../scripts/dependencies.js#patchExtendClick} */

// #endregion injected code

  if (isFirstTime) {
    if (!Build.NDEBUG && readyState_ === "complete") {
      alert("Vimium C: Error! should not run extend_click twice")
      return
    }
    if (OnChrome && Build.MinCVer < BrowserVer.MinEnsuredES6MethodFunction
        && tmpChromeVer >= BrowserVer.MinEnsuredES6MethodFunction) {
      injected = injected.replace(<RegExpG> /: ?function \w+/g, "");
    }
    if (OnChrome && Build.MinCVer < BrowserVer.MinEnsuredES6ArrowFunction
        && tmpChromeVer < BrowserVer.MinEnsuredES6ArrowFunction) {
      injected = injected.replace(<RegExpG> (Build.NDEBUG ? /\(([\w,]*\))=>/g : /\(([\w, ]*\))=>/g), "function($1")
    }
    injected = injected.replace("" + BuildStr.RandomClick, "$&" + secret as `$&${typeof secret}`)
    vApi.e = execute;
    setupEventListener(0, kHookRand, hook);
    setupEventListener(0, kVOnClick1, onClick);
  }
  /**
   * According to `V8CodeCache::ProduceCache` and `V8CodeCache::GetCompileOptions`
   *     in third_party/blink/renderer/bindings/core/v8/v8_code_cache.cc,
   *   and ScriptController::ExecuteScriptAndReturnValue
   *     in third_party/blink/renderer/bindings/core/v8/script_controller.cc,
   * inlined script are not cached for `v8::ScriptCompiler::kNoCacheBecauseInlineScript`.
   * But here it still uses the same script, just for my personal preference.
   */
  runJS_(injected, script)
  script.dataset.vimium = "";
  if (OnChrome && Build.MinCVer <= BrowserVer.NoRAFOrRICOnSandboxedPage
      && tmpChromeVer === BrowserVer.NoRAFOrRICOnSandboxedPage) {
    set_noRAF_old_cr_(1)
    rAF_((): void => { set_noRAF_old_cr_(0) })
  }
  // not check MinEnsuredNewScriptsFromExtensionOnSandboxedPage
  // for the case JavaScript is disabled in CS: https://github.com/philc/vimium/issues/3187
  if (!parentNode_unsafe_s(script)) { // It succeeded in hooking.
    // wait the inner listener of `start` to finish its work
    OnDocLoaded_((): void => {
      // only for new versions of Chrome (and Edge);
      // CSP would block a <script> before MinEnsuredNewScriptsFromExtensionOnSandboxedPage
      // if !box, avoid checking isFirstTime, so that auto clean VApi.execute_
      !box ? execute(kContentCmd.DestroyForCSP) : isFirstTime && isAlive_ &&
      OnDocLoaded_(timeout_.bind(null, (): void => {
        isFirstResolve && dispatchCmd(kContentCmd.AutoFindAllOnClick);
        isFirstResolve = 0;
      }, GlobalConsts.ExtendClick_DelayToFindAll), 1);
    });
    return
  }
  // else: CSP script-src before C68, CSP sandbox before C68 or JS-disabled-in-CS on C/E
  removeEl_s(script)
  execute(kContentCmd.Destroy);
  if (!OnChrome || !Build.NDEBUG && !injected) {
    // on Edge (EdgeHTML), `setTimeout` and `requestAnimationFrame` work well
    return;
  }
  // ensured on Chrome
  recordLog(kTip.logNotWorkOnSandboxed)
  if (Build.MinCVer < BrowserVer.MinEventListenersFromExtensionOnSandboxedPage
      && tmpChromeVer && tmpChromeVer < BrowserVer.MinEventListenersFromExtensionOnSandboxedPage) {
    safeDestroy(1)
  } else {
    /*#__INLINE__*/ setupBackupTimer_cr()
  }
})(grabBackFocus as boolean)
} : 0 as never) as () => void

if (!(Build.NDEBUG || BrowserVer.Min$queueMicrotask >= BrowserVer.NoRAFOrRICOnSandboxedPage
    && BrowserVer.Min$queueMicrotask >= BrowserVer.MinEnsuredNewScriptsFromExtensionOnSandboxedPage
    && BrowserVer.Min$queueMicrotask >= BrowserVer.MinEnsuredES6MethodFunction
    && BrowserVer.Min$queueMicrotask >= BrowserVer.MinEventListenersFromExtensionOnSandboxedPage)) {
  alert(`Assert error: missing chrome version detection before ${BrowserVer.Min$queueMicrotask}`)
}
if (!(Build.NDEBUG
      || BrowserVer.MinEnsuredNewScriptsFromExtensionOnSandboxedPage <= BrowserVer.NoRAFOrRICOnSandboxedPage)) {
  console.log("Assert error: Warning: may no timer function on sandbox page!");
}


text:
package org.ahp.core.exceptions;

/**
 *
 * @author Anita Onnuvel
 *
 */
public enum AhpExceptionCodes {

    AHP_00_000( "AHP.00.000" ), AHP_00_001( "AHP.00.001" );

    private String mExceptionCodeLiteral;

    /**
     *
     * @param pExceptionCodeLiteral
     */
    private AhpExceptionCodes( String pExceptionCodeLiteral ) {
        this.mExceptionCodeLiteral = pExceptionCodeLiteral;
    }

    public String getValue() {
        return this.mExceptionCodeLiteral;
    }

    public String toString() {
        return this.mExceptionCodeLiteral;
    }

}


text:
package io.leangen.graphql.execution.relay;

import graphql.relay.ConnectionCursor;

/**
 * Created by bojan.tomic on 5/17/16.
 */
@FunctionalInterface
public interface CursorProvider<N> {

    ConnectionCursor createCursor(N node, int index);
}