<?xml version="1.0" encoding="UTF-8" ?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at
  
      http://www.apache.org/licenses/LICENSE-2.0
    	  
  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
  
-->
<library>

	<resource name="userstatus_multiframe_rsc">
		<frame src="resources/bullet_ball_glass_green.png"/> <!-- user -->
		<frame src="resources/bullet_ball_glass_yellow.png"/> <!-- mod -->
		<frame src="resources/bullet_ball_glass_red.png"/> <!-- whiteboard allow -->
	</resource>
	
	<resource name="chat_message_incoming_rsc" src="resources/ledlightgreen.png" />
	
	<!-- FamFam Icon Set -->
	<resource name="screen_allow_rsc" src="resources/monitor_add.png" />
	<!-- FamFam Icon Set -->
    <resource name="screen_deny_rsc" src="resources/monitor_delete.png" />
    <!-- FamFam Icon Set -->
    <resource name="remote_allow_rsc" src="resources/mouse_add.png" />
    <!-- FamFam Icon Set -->
    <resource name="remote_deny_rsc" src="resources/mouse_delete.png" />
	
	<!-- FamFam Icon Set -->
	<resource name="a_allow_rsc" src="resources/micro_small_add.png" />
	<!-- FamFam Icon Set -->
	<resource name="a_deny_rsc" src="resources/micro_small_no.png" />
	<!-- FamFam Icon Set -->
	<resource name="av_allow_rsc" src="resources/audio_and_video.png" />
	<!-- FamFam Icon Set -->
	<resource name="av_deny_rsc" src="resources/audio_and_video_no.png" />
	<!-- FamFam Icon Set -->
	<resource name="start_private_chat_rsc" src="resources/page_edit.png" />
	
	<!-- APL author sebawagner -->
	<resource name="kick_user_rsc" src="resources/cancel_icon.png" />
	
	<!-- APL author sebawagner -->
	<resource name="mute_micro_btn_rsc">
        <frame src="resources/mute_micro.png" />
        <frame src="resources/mute_micro_red.png" />
    </resource>
    
    <!-- APL author sebawagner -->
    <resource name="mute_btn_rsc" src="resources/mute_micro.png" />
    <!-- APL author sebawagner -->
    <resource name="unmute_btn_rsc" src="resources/mute_micro_red.png" />
	
	<!-- APL author sebawagner -->
	<resource name="sidebar_tab_btn">
		<frame src="resources/sidebar_close.png" />
		<frame src="resources/sidebar_open.png" />
	</resource>
	
	<include href="innerlistViewEventUserListTable.lzx" />
	<include href="moderationMiniIconsEventUserList.lzx" />
	<include href="activitylist/" />
	<include href="roomSidebar/" />
	<include href="appointmentNotificationPopUp.lzx" />
	<include href="baseRoomInnerList.lzx" />
    <include href="baseConferenceRoom.lzx" />
    <include href="flexibleConferenceRoom.lzx" />
    <include href="restrictedConferenceRoom.lzx" />
    <include href="interviewConferenceRoom.lzx" />
    
    
</library>
