| Index: third_party/pkg/angular/lib/tools/selector.dart | 
| diff --git a/third_party/pkg/angular/lib/tools/selector.dart b/third_party/pkg/angular/lib/tools/selector.dart | 
| deleted file mode 100644 | 
| index 01cb503c656c412ff8f07d7e3dc5314fff11e7aa..0000000000000000000000000000000000000000 | 
| --- a/third_party/pkg/angular/lib/tools/selector.dart | 
| +++ /dev/null | 
| @@ -1,122 +0,0 @@ | 
| -library selector; | 
| - | 
| -import 'package:html5lib/dom.dart'; | 
| - | 
| -class ContainsSelector { | 
| -  String selector; | 
| -  RegExp regexp; | 
| - | 
| -  ContainsSelector(this.selector, regexp) { | 
| -    this.regexp = new RegExp(regexp); | 
| -  } | 
| -} | 
| - | 
| -RegExp _SELECTOR_REGEXP = new RegExp(r'^(?:([\w\-]+)|(?:\.([\w\-]+))|(?:\[([\w\-\*]+)(?:=([^\]]*))?\]))'); | 
| -RegExp _COMMENT_COMPONENT_REGEXP = new RegExp(r'^\[([\w\-]+)(?:\=(.*))?\]$'); | 
| -RegExp _CONTAINS_REGEXP = new RegExp(r'^:contains\(\/(.+)\/\)$'); // | 
| -RegExp _ATTR_CONTAINS_REGEXP = new RegExp(r'^\[\*=\/(.+)\/\]$'); // | 
| - | 
| -class _SelectorPart { | 
| -  final String element; | 
| -  final String className; | 
| -  final String attrName; | 
| -  final String attrValue; | 
| - | 
| -  const _SelectorPart.fromElement(String this.element) | 
| -      : className = null, attrName = null, attrValue = null; | 
| - | 
| -  const _SelectorPart.fromClass(String this.className) | 
| -      : element = null, attrName = null, attrValue = null; | 
| - | 
| - | 
| -  const _SelectorPart.fromAttribute(String this.attrName, String this.attrValue) | 
| -      : element = null, className = null; | 
| - | 
| -  toString() => | 
| -    element == null | 
| -      ? (className == null | 
| -         ? (attrValue == '' ? '[$attrName]' : '[$attrName=$attrValue]') | 
| -         : '.$className') | 
| -      : element; | 
| -} | 
| - | 
| -List<_SelectorPart> _splitCss(String selector) { | 
| -  List<_SelectorPart> parts = []; | 
| -  var remainder = selector; | 
| -  var match; | 
| -  while (!remainder.isEmpty) { | 
| -    if ((match = _SELECTOR_REGEXP.firstMatch(remainder)) != null) { | 
| -      if (match[1] != null) { | 
| -        parts.add(new _SelectorPart.fromElement(match[1].toLowerCase())); | 
| -      } else if (match[2] != null) { | 
| -        parts.add(new _SelectorPart.fromClass(match[2].toLowerCase())); | 
| -      } else if (match[3] != null) { | 
| -        var attrValue = match[4] == null ? '' : match[4].toLowerCase(); | 
| -        parts.add(new _SelectorPart.fromAttribute(match[3].toLowerCase(), | 
| -                                                  attrValue)); | 
| -      } else { | 
| -        throw "Missmatched RegExp $_SELECTOR_REGEXP on $remainder"; | 
| -      } | 
| -    } else { | 
| -      throw "Unknown selector format '$remainder'."; | 
| -    } | 
| -    remainder = remainder.substring(match.end); | 
| -  } | 
| -  return parts; | 
| -} | 
| - | 
| -bool matchesNode(Node node, String selector) { | 
| -  var match, selectorParts; | 
| -  if ((match = _CONTAINS_REGEXP.firstMatch(selector)) != null) { | 
| -    if (node is! Text) { | 
| -      return false; | 
| -    } | 
| -    return new RegExp(match.group(1)).hasMatch((node as Text).value); | 
| -  } else if ((match = _ATTR_CONTAINS_REGEXP.firstMatch(selector)) != null) { | 
| -    if (node is! Element) { | 
| -      return false; | 
| -    } | 
| -    var regexp = new RegExp(match.group(1)); | 
| -    for (String attrName in node.attributes.keys) { | 
| -      if (regexp.hasMatch(node.attributes[attrName])) { | 
| -        return true; | 
| -      } | 
| -    } | 
| -    return false; | 
| -  } else if ((selectorParts = _splitCss(selector)) != null) { | 
| -    if (node is! Element) { | 
| -      return false; | 
| -    } | 
| -    String nodeName = node.tagName.toLowerCase(); | 
| - | 
| -    bool stillGood = true; | 
| -    selectorParts.forEach((_SelectorPart part) { | 
| -      if (part.element != null) { | 
| -        if (nodeName != part.element) { | 
| -          stillGood = false; | 
| -        } | 
| -      } else if (part.className != null) { | 
| -        if (node.attributes['class'] == null || | 
| -            !node.attributes['class'].split(' ').contains(part.className)) { | 
| -          stillGood = false; | 
| -        } | 
| -      } else if (part.attrName != null) { | 
| -        String matchingKey = _matchingKey(node.attributes.keys, part.attrName); | 
| -        if (matchingKey == null || part.attrValue == '' ? | 
| -              node.attributes[matchingKey] == null : | 
| -              node.attributes[matchingKey] != part.attrValue) { | 
| -          stillGood = false; | 
| -        } | 
| -      } | 
| -    }); | 
| - | 
| -    return stillGood; | 
| -  } | 
| - | 
| -  throw new ArgumentError('Unsupported Selector: $selector'); | 
| -} | 
| - | 
| -String _matchingKey(Iterable keys, String attrName) => | 
| -    keys.firstWhere( | 
| -        (key) => new RegExp('^${attrName.replaceAll('*', r'[\w\-]+')}\$').hasMatch(key.toString()), | 
| -        orElse: () => null); | 
|  |