/*
 * Copyright (C) 2013 Apple Inc. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 * THE POSSIBILITY OF SUCH DAMAGE.
 */

.request-icon .icon {
    content: url(../Images/Request.svg);
}

.response-icon .icon {
    content: url(../Images/Response.svg);
}

.heap-snapshot-summary-icon .icon {
    content: url(../Images/HeapSnapshotSummary.svg);
}

.heap-snapshot-instances-icon .icon {
    content: url(../Images/HeapSnapshotInstances.svg);
}

.heap-snapshot-object-graph-icon .icon {
    content: url(../Images/HeapSnapshotObjectGraph.svg);
}

.dom-element-icon .icon {
    content: url(../Images/DOMElement.svg);
}

.dom-pseudo-element-icon .icon {
    content: url(../Images/PseudoElement.svg);
}

.dom-text-node-icon .icon {
    content: url(../Images/DOMTextNode.svg);
}

.dom-comment-icon .icon {
    content: url(../Images/DOMComment.svg);
}

.dom-document-type-icon .icon {
    content: url(../Images/DOMDocumentType.svg);
}

.dom-document-icon .icon {
    content: url(../Images/DOMDocument.svg);
}

.dom-character-data-icon .icon {
    content: url(../Images/DOMCharacterData.svg);
}

.dom-node-icon .icon {
    content: url(../Images/DOMNode.svg);
}

.object-icon .icon {
    content: url(../Images/Object.svg);
}

.function-icon .icon {
    content: url(../Images/Function.svg);
}

.native-icon .icon {
    content: url(../Images/Native.svg);
}

.program-icon .icon {
    content: url(../Images/Program.svg);
}

.events-icon .icon {
    content: url(../Images/Events.svg);
}

.call-trees-icon .icon {
    content: url(../Images/CallTrees.svg);
}

.snapshot-list-icon .icon {
    content: url(../Images/Events.svg);
}

.snapshot-diff-icon .icon {
    content: url(../Images/HeapSnapshotDiff.svg);
}

.image-icon .icon {
    content: url("../Images/Image.svg");
}

.source-icon .icon {
    content: url("../Images/Source.svg");
}
