@Nullable
  private Set<StdArrangementRuleAliasToken> deserializeTokensDefinition(@NotNull Element element, @NotNull ArrangementSettings defaultSettings) {
    if (!(defaultSettings instanceof ArrangementExtendableSettings)) {
      return null;
    }

    final Element tokensRoot = element.getChild(TOKENS_ELEMENT_NAME);
    if (tokensRoot == null) {
      return ((ArrangementExtendableSettings)myDefaultSettings).getRuleAliases();
    }

    final Set<StdArrangementRuleAliasToken> tokenDefinitions = new HashSet<>();
    final List<Element> tokens = tokensRoot.getChildren(TOKEN_ELEMENT_NAME);
    for (Element token : tokens) {
      final Attribute id = token.getAttribute(TOKEN_ID);
      final Attribute name = token.getAttribute(TOKEN_NAME);
      assert id != null && name != null : "Can not find id for token: " + token;
      final Element rules = token.getChild(RULES_ELEMENT_NAME);
      final List<StdArrangementMatchRule> tokenRules =
        rules == null ? ContainerUtil.emptyList() : deserializeRules(rules, null);
      tokenDefinitions.add(new StdArrangementRuleAliasToken(id.getValue(), name.getValue(), tokenRules));
    }
    return tokenDefinitions;
  }
@Nullable
  private Set<StdArrangementRuleAliasToken> deserializeTokensDefinition(@NotNull Element element, @NotNull ArrangementSettings defaultSettings)