From 926e0a903526a20effca0164729e5dccf169e78b Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 21 Jul 2018 00:12:28 -0400 Subject: [PATCH 001/110] Start working on some undo / redo functionality. this is just the start, only module state changes and fit rename is implemented, and probably not very well x_x --- gui/builtinShipBrowser/fitItem.py | 23 ++++++++++++++--- gui/builtinViews/fittingView.py | 7 +++-- gui/fitCommands/__init__.py | 1 + gui/fitCommands/moduleStateChange.py | 38 ++++++++++++++++++++++++++++ gui/mainFrame.py | 6 +++++ gui/mainMenuBar.py | 4 +-- service/fit.py | 3 +++ 7 files changed, 75 insertions(+), 7 deletions(-) create mode 100644 gui/fitCommands/__init__.py create mode 100644 gui/fitCommands/moduleStateChange.py diff --git a/gui/builtinShipBrowser/fitItem.py b/gui/builtinShipBrowser/fitItem.py index 2f05229d0..99cb9e0bb 100644 --- a/gui/builtinShipBrowser/fitItem.py +++ b/gui/builtinShipBrowser/fitItem.py @@ -21,6 +21,25 @@ from service.fit import Fit pyfalog = Logger(__name__) +class FitRenameCommand(wx.Command): + def __init__(self, fitID, newName): + wx.Command.__init__(self, True, "FitRename") + self.fitID = fitID + self.newName = newName + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.oldName = None + self.sFit = Fit.getInstance() + + def Do(self): + self.oldName, _ = self.sFit.renameFit(self.fitID, self.newName) + wx.PostEvent(self.mainFrame, FitRenamed(fitID=self.fitID)) + return True + + def Undo(self): + self.sFit.renameFit(self.fitID, self.oldName) + wx.PostEvent(self.mainFrame, FitRenamed(fitID=self.fitID)) + return True + class FitItem(SFItem.SFBrowserItem): def __init__(self, parent, fitID=None, shipFittingInfo=("Test", "TestTrait", "cnc's avatar", 0, 0, None), shipID=None, itemData=None, graphicID=None, @@ -325,14 +344,12 @@ class FitItem(SFItem.SFBrowserItem): self.Refresh() def renameFit(self, event=None): - sFit = Fit.getInstance() self.tcFitName.Show(False) self.editWasShown = 0 fitName = self.tcFitName.GetValue() if fitName: self.fitName = fitName - sFit.renameFit(self.fitID, self.fitName) - wx.PostEvent(self.mainFrame, FitRenamed(fitID=self.fitID)) + self.mainFrame.command.Submit(FitRenameCommand(self.fitID, self.fitName)) else: self.tcFitName.SetValue(self.fitName) diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index d6bf4ae0c..6ccc00c33 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -34,6 +34,7 @@ from gui.bitmap_loader import BitmapLoader import gui.builtinViews.emptyView from logbook import Logger from gui.chrome_tabs import EVT_NOTEBOOK_PAGE_CHANGED +import gui.fitCommands as cmd from service.fit import Fit from service.market import Market @@ -127,6 +128,8 @@ class FittingViewDrop(wx.DropTarget): return t + + class FittingView(d.Display): DEFAULT_COLS = ["State", "Ammo Icon", @@ -642,14 +645,14 @@ class FittingView(d.Display): fitID = self.mainFrame.getActiveFit() ctrl = event.cmdDown or event.middleIsDown click = "ctrl" if ctrl is True else "right" if event.GetButton() == 3 else "left" - sFit.toggleModulesState(fitID, self.mods[self.GetItemData(row)], mods, click) + + self.mainFrame.command.Submit(cmd.FitModuleStateChangeCommand(fitID, self.mods[self.GetItemData(row)], mods, click)) # update state tooltip tooltip = self.activeColumns[col].getToolTip(self.mods[self.GetItemData(row)]) if tooltip: self.SetToolTip(tooltip) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.mainFrame.getActiveFit())) else: event.Skip() diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py new file mode 100644 index 000000000..19100381e --- /dev/null +++ b/gui/fitCommands/__init__.py @@ -0,0 +1 @@ +from .moduleStateChange import FitModuleStateChangeCommand \ No newline at end of file diff --git a/gui/fitCommands/moduleStateChange.py b/gui/fitCommands/moduleStateChange.py new file mode 100644 index 000000000..c490115e2 --- /dev/null +++ b/gui/fitCommands/moduleStateChange.py @@ -0,0 +1,38 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE + + +class FitModuleStateChangeCommand(wx.Command): + def __init__(self, fitID, baseMod, modules, click): + # todo: instead of modules, needs to be positions. Dead objects are a thing + wx.Command.__init__(self, True, "Module State Change") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.fitID = fitID + self.baseMod = baseMod + self.modules = modules + self.click = click + + self.old_states = {} + for mod in modules: + # we don't use the actual module as the key, because it may have been deleted in subsequent calls (even if + # we undo a deletion, wouldn't be the same obj). So, we store the position + self.old_states[mod.modPosition] = mod.state + + def Do(self): + # todo: determine if we've changed state (recalc). If not, store that so we don't attempt to recalc on undo + self.sFit.toggleModulesState(self.fitID, self.baseMod, self.modules, self.click) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + + def Undo(self): + # todo: some sanity checking to make sure that we are applying state back to the same modules? + fit = self.sFit.getFit(self.fitID) + for k, v in self.old_states.items(): + fit.modules[k].state = v + self.sFit.recalc(fit) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True diff --git a/gui/mainFrame.py b/gui/mainFrame.py index 9b237663c..2a94f1b2c 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -170,6 +170,8 @@ class MainFrame(wx.Frame): i = wx.Icon(BitmapLoader.getBitmap("pyfa", "gui")) self.SetIcon(i) + self.command = wx.CommandProcessor() + # Create the layout and windows mainSizer = wx.BoxSizer(wx.HORIZONTAL) @@ -514,6 +516,10 @@ class MainFrame(wx.Frame): self.Bind(wx.EVT_MENU, self.showPreferenceDialog, id=wx.ID_PREFERENCES) # User guide self.Bind(wx.EVT_MENU, self.goWiki, id=menuBar.wikiId) + + self.Bind(wx.EVT_MENU, lambda evt: MainFrame.getInstance().command.Undo(), id=wx.ID_UNDO) + + self.Bind(wx.EVT_MENU, lambda evt: MainFrame.getInstance().command.Redo(), id=wx.ID_REDO) # EVE Forums self.Bind(wx.EVT_MENU, self.goForums, id=menuBar.forumId) # Save current character diff --git a/gui/mainMenuBar.py b/gui/mainMenuBar.py index 9c421f779..c0a28f1dc 100644 --- a/gui/mainMenuBar.py +++ b/gui/mainMenuBar.py @@ -90,8 +90,8 @@ class MainMenuBar(wx.MenuBar): editMenu = wx.Menu() self.Append(editMenu, "&Edit") - # editMenu.Append(wx.ID_UNDO) - # editMenu.Append(wx.ID_REDO) + editMenu.Append(wx.ID_UNDO) + editMenu.Append(wx.ID_REDO) editMenu.Append(wx.ID_COPY, "To Clipboard\tCTRL+C", "Export a fit to the clipboard") editMenu.Append(wx.ID_PASTE, "From Clipboard\tCTRL+V", "Import a fit from the clipboard") diff --git a/service/fit.py b/service/fit.py index 122de2fa6..3a4d044eb 100644 --- a/service/fit.py +++ b/service/fit.py @@ -170,8 +170,11 @@ class Fit(object): def renameFit(fitID, newName): pyfalog.debug("Renaming fit ({0}) to: {1}", fitID, newName) fit = eos.db.getFit(fitID) + old_name = fit.name fit.name = newName eos.db.commit() + return old_name, newName + @staticmethod def deleteFit(fitID): From 0c3fa53bcf3bae8b885ccc115bc15ebee980106f Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 21 Jul 2018 14:46:25 -0400 Subject: [PATCH 002/110] Support undo/redo module add --- gui/builtinViews/fittingView.py | 6 ++---- gui/fitCommands/__init__.py | 3 ++- gui/fitCommands/moduleAdd.py | 29 +++++++++++++++++++++++++++++ service/fit.py | 2 +- 4 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 gui/fitCommands/moduleAdd.py diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index 6ccc00c33..d25f2f097 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -382,14 +382,12 @@ class FittingView(d.Display): sFit.setAmmo(fitID, itemID, modules) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) else: - populate = sFit.appendModule(fitID, itemID) - if populate is not None: - self.slotsChanged() - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID, action="modadd", typeID=itemID)) + self.mainFrame.command.Submit(cmd.FitModuleAddCommand(fitID, itemID)) event.Skip() def removeItem(self, event): + '''Double Left Click - remove module''' if event.CmdDown(): return row, _ = self.HitTest(event.Position) diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index 19100381e..fcb59fc63 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -1 +1,2 @@ -from .moduleStateChange import FitModuleStateChangeCommand \ No newline at end of file +from .moduleStateChange import FitModuleStateChangeCommand +from.moduleAdd import FitModuleAddCommand \ No newline at end of file diff --git a/gui/fitCommands/moduleAdd.py b/gui/fitCommands/moduleAdd.py new file mode 100644 index 000000000..c7f4e21f7 --- /dev/null +++ b/gui/fitCommands/moduleAdd.py @@ -0,0 +1,29 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE + + +class FitModuleAddCommand(wx.Command): + def __init__(self, fitID, itemID): + # todo: instead of modules, needs to be positions. Dead objects are a thing + wx.Command.__init__(self, True, "Module Add") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.fitID = fitID + self.itemID = itemID + self.new_position = None + + def Do(self): + populate, self.new_position = self.sFit.appendModule(self.fitID, self.itemID) + if populate is not None: + # self.slotsChanged() # unsure how to handle this right now? Perhaps move this to the event itself? + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="modadd", typeID=self.itemID)) + return True + + def Undo(self): + # todo: self.slotsChanged() + result = self.sFit.removeModule(self.fitID, [self.new_position]) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="moddel", typeID=self.itemID)) + return True diff --git a/service/fit.py b/service/fit.py index 3a4d044eb..245007dda 100644 --- a/service/fit.py +++ b/service/fit.py @@ -566,7 +566,7 @@ class Fit(object): fit.fill() eos.db.commit() - return numSlots != len(fit.modules) + return numSlots != len(fit.modules), m.modPosition else: return None From 9309ddff07321572c70a2e12faaf0937f312c8c3 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 21 Jul 2018 15:34:58 -0400 Subject: [PATCH 003/110] Created undo/redo command for module remove, along with reapplying some module-specific attributes (state, charge). Fixed a bug when trying to add a module that doesn't fit --- gui/builtinViews/fittingView.py | 10 +-------- gui/fitCommands/__init__.py | 3 ++- gui/fitCommands/moduleAdd.py | 10 +++++---- gui/fitCommands/moduleRemove.py | 37 +++++++++++++++++++++++++++++++++ service/fit.py | 18 +++++++++------- 5 files changed, 57 insertions(+), 21 deletions(-) create mode 100644 gui/fitCommands/moduleRemove.py diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index d25f2f097..47255542f 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -401,18 +401,10 @@ class FittingView(d.Display): def removeModule(self, modules): """Removes a list of modules from the fit""" - sFit = Fit.getInstance() - if not isinstance(modules, list): modules = [modules] - positions = [mod.modPosition for mod in modules] - result = sFit.removeModule(self.activeFitID, positions) - - if result is not None: - self.slotsChanged() - ids = {mod.item.ID for mod in modules} - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.activeFitID, action="moddel", typeID=ids)) + self.mainFrame.command.Submit(cmd.FitModuleRemoveCommand(self.activeFitID, modules)) def addModule(self, x, y, srcIdx): """Add a module from the market browser""" diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index fcb59fc63..3aaaf1409 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -1,2 +1,3 @@ from .moduleStateChange import FitModuleStateChangeCommand -from.moduleAdd import FitModuleAddCommand \ No newline at end of file +from .moduleAdd import FitModuleAddCommand +from .moduleRemove import FitModuleRemoveCommand \ No newline at end of file diff --git a/gui/fitCommands/moduleAdd.py b/gui/fitCommands/moduleAdd.py index c7f4e21f7..e5b038317 100644 --- a/gui/fitCommands/moduleAdd.py +++ b/gui/fitCommands/moduleAdd.py @@ -7,8 +7,8 @@ from gui import globalEvents as GE class FitModuleAddCommand(wx.Command): def __init__(self, fitID, itemID): - # todo: instead of modules, needs to be positions. Dead objects are a thing wx.Command.__init__(self, True, "Module Add") + # todo: evaluate mutaplasmid modules self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.sFit = Fit.getInstance() self.fitID = fitID @@ -16,6 +16,7 @@ class FitModuleAddCommand(wx.Command): self.new_position = None def Do(self): + # todo: figure how not to add this command to stack if module doesn't fit correctly. populate, self.new_position = self.sFit.appendModule(self.fitID, self.itemID) if populate is not None: # self.slotsChanged() # unsure how to handle this right now? Perhaps move this to the event itself? @@ -23,7 +24,8 @@ class FitModuleAddCommand(wx.Command): return True def Undo(self): - # todo: self.slotsChanged() - result = self.sFit.removeModule(self.fitID, [self.new_position]) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="moddel", typeID=self.itemID)) + if (self.new_position): + # todo: self.slotsChanged() + result = self.sFit.removeModule(self.fitID, [self.new_position]) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="moddel", typeID=self.itemID)) return True diff --git a/gui/fitCommands/moduleRemove.py b/gui/fitCommands/moduleRemove.py new file mode 100644 index 000000000..df1bda3a6 --- /dev/null +++ b/gui/fitCommands/moduleRemove.py @@ -0,0 +1,37 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from collections import namedtuple + + +ModuleInfoCache = namedtuple('ModuleInfoCache', ['modPosition', 'itemID', 'state', 'charge']) + +class FitModuleRemoveCommand(wx.Command): + def __init__(self, fitID, modules): + # todo: evaluate mutaplasmid modules + wx.Command.__init__(self, True, "Module Remove") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.fitID = fitID + self.modCache = [ModuleInfoCache(mod.modPosition, mod.item.ID, mod.state, mod.charge) for mod in modules] + + def Do(self): + self.sFit.getFit(self.fitID) + result = self.sFit.removeModule(self.fitID, [mod.modPosition for mod in self.modCache]) + + if result is not None: + # self.slotsChanged() # todo: fix + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="moddel", typeID=set([mod.itemID for mod in self.modCache]))) + return True + + def Undo(self): + for mod in self.modCache: + m = self.sFit.changeModule(self.fitID, mod.modPosition, mod.itemID, False) + m.state = mod.state + m.charge = mod.charge + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="modadd", typeID=set([mod.itemID for mod in self.modCache]))) + + return True diff --git a/service/fit.py b/service/fit.py index 245007dda..1172cd2fb 100644 --- a/service/fit.py +++ b/service/fit.py @@ -568,7 +568,7 @@ class Fit(object): return numSlots != len(fit.modules), m.modPosition else: - return None + return None, None def removeModule(self, fitID, positions): """Removes modules based on a number of positions.""" @@ -627,7 +627,7 @@ class Fit(object): else: return None - def changeModule(self, fitID, position, newItemID): + def changeModule(self, fitID, position, newItemID, recalc=True): fit = eos.db.getFit(fitID) # We're trying to add a charge to a slot, which won't work. Instead, try to add the charge to the module in that slot. @@ -656,15 +656,16 @@ class Fit(object): if m.isValidState(State.ACTIVE): m.state = State.ACTIVE - # As some items may affect state-limiting attributes of the ship, calculate new attributes first - self.recalc(fit) + if (recalc): + # As some items may affect state-limiting attributes of the ship, calculate new attributes first + self.recalc(fit) # Then, check states of all modules and change where needed. This will recalc if needed self.checkStates(fit, m) fit.fill() eos.db.commit() - return True + return m else: return None @@ -1073,7 +1074,7 @@ class Fit(object): def isAmmo(itemID): return eos.db.getItem(itemID).category.name == "Charge" - def setAmmo(self, fitID, ammoID, modules): + def setAmmo(self, fitID, ammoID, modules, recalc=True): pyfalog.debug("Set ammo for fit ID: {0}", fitID) if fitID is None: return @@ -1085,7 +1086,8 @@ class Fit(object): if mod.isValidCharge(ammo): mod.charge = ammo - self.recalc(fit) + if recalc: + self.recalc(fit) @staticmethod def getTargetResists(fitID): @@ -1259,6 +1261,8 @@ class Fit(object): self.recalc(fit) def recalc(self, fit): + if isinstance(fit, int): + fit = self.getFit(fit) start_time = time() pyfalog.info("=" * 10 + "recalc: {0}" + "=" * 10, fit.name) From ec3cd75f4c763ac369e7dbe7e6f58b7727de8b0e Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 21 Jul 2018 16:00:02 -0400 Subject: [PATCH 004/110] Convert the context > Remove Module to command pattern --- gui/builtinContextMenus/itemRemove.py | 8 ++++---- gui/fitCommands/moduleRemove.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gui/builtinContextMenus/itemRemove.py b/gui/builtinContextMenus/itemRemove.py index 8e9ede5c6..dca400c5d 100644 --- a/gui/builtinContextMenus/itemRemove.py +++ b/gui/builtinContextMenus/itemRemove.py @@ -5,7 +5,7 @@ import wx import gui.globalEvents as GE from service.fit import Fit from service.settings import ContextMenuSettings - +import gui.fitCommands as cmd class ItemRemove(ContextMenu): def __init__(self): @@ -35,9 +35,9 @@ class ItemRemove(ContextMenu): fit = sFit.getFit(fitID) if srcContext == "fittingModule": - for module in selection: - if module is not None: - sFit.removeModule(fitID, fit.modules.index(module)) + modules = [module for module in selection if module is not None] + self.mainFrame.command.Submit(cmd.FitModuleRemoveCommand(fitID, modules)) + return # the command takes care of the PostEvent elif srcContext in ("fittingCharge", "projectedCharge"): sFit.setAmmo(fitID, None, selection) elif srcContext == "droneItem": diff --git a/gui/fitCommands/moduleRemove.py b/gui/fitCommands/moduleRemove.py index df1bda3a6..bc055cde6 100644 --- a/gui/fitCommands/moduleRemove.py +++ b/gui/fitCommands/moduleRemove.py @@ -5,9 +5,9 @@ import gui.mainFrame from gui import globalEvents as GE from collections import namedtuple - ModuleInfoCache = namedtuple('ModuleInfoCache', ['modPosition', 'itemID', 'state', 'charge']) + class FitModuleRemoveCommand(wx.Command): def __init__(self, fitID, modules): # todo: evaluate mutaplasmid modules From 5d0342ee2d0bd0287e9d6dd36939104e83f56ec4 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 21 Jul 2018 18:04:07 -0400 Subject: [PATCH 005/110] Convert module charge handling to command pattern (adding charges and removing charges) --- gui/builtinContextMenus/itemRemove.py | 2 +- gui/builtinContextMenus/moduleAmmoPicker.py | 7 ++--- .../moduleGlobalAmmoPicker.py | 5 ++-- gui/builtinViews/fittingView.py | 3 +- gui/fitCommands/__init__.py | 3 +- gui/fitCommands/moduleAddCharge.py | 30 +++++++++++++++++++ 6 files changed, 38 insertions(+), 12 deletions(-) create mode 100644 gui/fitCommands/moduleAddCharge.py diff --git a/gui/builtinContextMenus/itemRemove.py b/gui/builtinContextMenus/itemRemove.py index dca400c5d..d6b8f79f1 100644 --- a/gui/builtinContextMenus/itemRemove.py +++ b/gui/builtinContextMenus/itemRemove.py @@ -39,7 +39,7 @@ class ItemRemove(ContextMenu): self.mainFrame.command.Submit(cmd.FitModuleRemoveCommand(fitID, modules)) return # the command takes care of the PostEvent elif srcContext in ("fittingCharge", "projectedCharge"): - sFit.setAmmo(fitID, None, selection) + self.mainFrame.command.Submit(cmd.FitModuleAddChargeCommand(fitID, None, selection)) elif srcContext == "droneItem": sFit.removeDrone(fitID, fit.drones.index(selection[0])) elif srcContext == "fighterItem": diff --git a/gui/builtinContextMenus/moduleAmmoPicker.py b/gui/builtinContextMenus/moduleAmmoPicker.py index 93ff48754..59f6c3391 100644 --- a/gui/builtinContextMenus/moduleAmmoPicker.py +++ b/gui/builtinContextMenus/moduleAmmoPicker.py @@ -11,7 +11,7 @@ import gui.globalEvents as GE from gui.contextMenu import ContextMenu from gui.bitmap_loader import BitmapLoader from service.settings import ContextMenuSettings - +import gui.fitCommands as cmd class ModuleAmmoPicker(ContextMenu): DAMAGE_TYPES = ("em", "explosive", "kinetic", "thermal") @@ -228,11 +228,8 @@ class ModuleAmmoPicker(ContextMenu): event.Skip() return - sFit = Fit.getInstance() fitID = self.mainFrame.getActiveFit() - - sFit.setAmmo(fitID, charge.ID if charge is not None else None, self.modules) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.FitModuleAddChargeCommand(fitID, charge.ID if charge is not None else None, self.modules)) ModuleAmmoPicker.register() diff --git a/gui/builtinContextMenus/moduleGlobalAmmoPicker.py b/gui/builtinContextMenus/moduleGlobalAmmoPicker.py index 5e516e68f..81bce6649 100644 --- a/gui/builtinContextMenus/moduleGlobalAmmoPicker.py +++ b/gui/builtinContextMenus/moduleGlobalAmmoPicker.py @@ -7,7 +7,7 @@ from gui.builtinContextMenus.moduleAmmoPicker import ModuleAmmoPicker from eos.db.saveddata.queries import getFit as db_getFit from service.fit import Fit from service.settings import ContextMenuSettings - +import gui.fitCommands as cmd class ModuleGlobalAmmoPicker(ModuleAmmoPicker): def __init__(self): @@ -40,8 +40,7 @@ class ModuleGlobalAmmoPicker(ModuleAmmoPicker): if mod.itemID == selectedModule.itemID: allModules.append(mod) - sFit.setAmmo(fitID, charge.ID if charge is not None else None, allModules) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.FitModuleAddChargeCommand(fitID, charge.ID if charge is not None else None, allModules)) def display(self, srcContext, selection): if not self.settings.get('moduleGlobalAmmoPicker'): diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index 47255542f..84678bb8f 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -379,8 +379,7 @@ class FittingView(d.Display): sel = self.GetNextSelected(sel) if len(modules) > 0: - sFit.setAmmo(fitID, itemID, modules) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.FitModuleAddChargeCommand(fitID, itemID, modules)) else: self.mainFrame.command.Submit(cmd.FitModuleAddCommand(fitID, itemID)) diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index 3aaaf1409..9ed595da5 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -1,3 +1,4 @@ from .moduleStateChange import FitModuleStateChangeCommand from .moduleAdd import FitModuleAddCommand -from .moduleRemove import FitModuleRemoveCommand \ No newline at end of file +from .moduleRemove import FitModuleRemoveCommand +from .moduleAddCharge import FitModuleAddChargeCommand \ No newline at end of file diff --git a/gui/fitCommands/moduleAddCharge.py b/gui/fitCommands/moduleAddCharge.py new file mode 100644 index 000000000..c125230b9 --- /dev/null +++ b/gui/fitCommands/moduleAddCharge.py @@ -0,0 +1,30 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE + + +class FitModuleAddChargeCommand(wx.Command): + def __init__(self, fitID, itemID, modules): + wx.Command.__init__(self, True, "Module Charge Add") + # todo: evaluate mutaplasmid modules + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.fitID = fitID + self.itemID = itemID + self.positions = {mod.modPosition: mod.chargeID for mod in modules} + + def Do(self): + fit = self.sFit.getFit(self.fitID) + self.sFit.setAmmo(self.fitID, self.itemID, [fit.modules[i] for i in self.positions.keys()]) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + + def Undo(self): + fit = self.sFit.getFit(self.fitID) + for position, chargeID in self.positions.items(): + self.sFit.setAmmo(self.fitID, chargeID, [fit.modules[position]], False) + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True From a66eb059e293bc2fe9b7aa2dbdd5222a22fe665e Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 21 Jul 2018 18:20:24 -0400 Subject: [PATCH 006/110] Convert module swap to command pattern --- gui/builtinViews/fittingView.py | 8 ++----- gui/fitCommands/__init__.py | 3 ++- gui/fitCommands/moduleSwapOrClone.py | 34 ++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 7 deletions(-) create mode 100644 gui/fitCommands/moduleSwapOrClone.py diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index 84678bb8f..fab09726b 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -468,13 +468,9 @@ class FittingView(d.Display): if mod1.slot != mod2.slot: return + fitID = self.mainFrame.getActiveFit() if getattr(mod2, "modPosition") is not None: - if clone and mod2.isEmpty: - sFit.cloneModule(self.mainFrame.getActiveFit(), srcIdx, mod2.modPosition) - else: - sFit.swapModules(self.mainFrame.getActiveFit(), srcIdx, mod2.modPosition) - - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.mainFrame.getActiveFit())) + self.mainFrame.command.Submit(cmd.FitModuleSwapOrCloneCommand(fitID, srcIdx, mod2.modPosition, clone and mod2.isEmpty)) else: pyfalog.error("Missing module position for: {0}", str(getattr(mod2, "ID", "Unknown"))) diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index 9ed595da5..c9bbf25da 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -1,4 +1,5 @@ from .moduleStateChange import FitModuleStateChangeCommand from .moduleAdd import FitModuleAddCommand from .moduleRemove import FitModuleRemoveCommand -from .moduleAddCharge import FitModuleAddChargeCommand \ No newline at end of file +from .moduleAddCharge import FitModuleAddChargeCommand +from .moduleSwapOrClone import FitModuleSwapOrCloneCommand \ No newline at end of file diff --git a/gui/fitCommands/moduleSwapOrClone.py b/gui/fitCommands/moduleSwapOrClone.py new file mode 100644 index 000000000..65b6a10dc --- /dev/null +++ b/gui/fitCommands/moduleSwapOrClone.py @@ -0,0 +1,34 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE + + +class FitModuleSwapOrCloneCommand(wx.Command): + def __init__(self, fitID, srcPosition, dstPosition, clone=False): + # todo: instead of modules, needs to be positions. Dead objects are a thing + wx.Command.__init__(self, True, "Module State Change") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.fitID = fitID + self.srcPosition = srcPosition + self.dstPosition = dstPosition + self.clone = clone + + def Do(self): + if self.clone: + self.sFit.cloneModule(self.fitID, self.srcPosition, self.dstPosition) + else: + self.sFit.swapModules(self.fitID, self.srcPosition, self.dstPosition) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + + def Undo(self): + if self.clone: + # if we had cloned, the destinations was originally an empty slot, hence we can just remove the module + self.sFit.removeModule(self.fitID, [self.dstPosition]) + else: + self.sFit.swapModules(self.fitID, self.dstPosition, self.srcPosition) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True From 2ccad2a3588545351dc398d6e253ab930e4390f7 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 21 Jul 2018 19:52:28 -0400 Subject: [PATCH 007/110] Handle use case of moving a module from market to fitting view --- gui/builtinViews/fittingView.py | 28 ++++++++------------ gui/fitCommands/helpers.py | 3 +++ gui/fitCommands/moduleAdd.py | 45 ++++++++++++++++++++++++++------- gui/fitCommands/moduleRemove.py | 3 +-- 4 files changed, 51 insertions(+), 28 deletions(-) create mode 100644 gui/fitCommands/helpers.py diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index fab09726b..d74474bbd 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -361,6 +361,9 @@ class FittingView(d.Display): self.parent.SetPageTextIcon(pageIndex, text, bitmap) def appendItem(self, event): + ''' + Adds items that are double clicks from the market browser. We handle both modules and ammo + ''' if not self: event.Skip() return @@ -370,6 +373,7 @@ class FittingView(d.Display): if fitID is not None: sFit = Fit.getInstance() if sFit.isAmmo(itemID): + # If we've selected ammo, then apply to the selected module(s) modules = [] sel = self.GetFirstSelected() while sel != -1 and sel not in self.blanks: @@ -405,23 +409,17 @@ class FittingView(d.Display): self.mainFrame.command.Submit(cmd.FitModuleRemoveCommand(self.activeFitID, modules)) - def addModule(self, x, y, srcIdx): - """Add a module from the market browser""" + def addModule(self, x, y, itemID): + """Add a module from the market browser (from dragging it)""" dstRow, _ = self.HitTest((x, y)) if dstRow != -1 and dstRow not in self.blanks: - sFit = Fit.getInstance() fitID = self.mainFrame.getActiveFit() mod = self.mods[dstRow] if not isinstance(mod, Module): # make sure we're not adding something to a T3D Mode return - moduleChanged = sFit.changeModule(fitID, self.mods[dstRow].modPosition, srcIdx) - if moduleChanged is None: - # the new module doesn't fit in specified slot, try to simply append it - wx.PostEvent(self.mainFrame, ItemSelected(itemID=srcIdx)) - - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.mainFrame.getActiveFit(), action="modadd", typeID=srcIdx)) + self.mainFrame.command.Submit(cmd.FitModuleAddCommand(fitID, itemID, self.mods[dstRow].modPosition)) def swapCargo(self, x, y, srcIdx): """Swap a module from cargo to fitting window""" @@ -449,18 +447,13 @@ class FittingView(d.Display): sFit = Fit.getInstance() fit = sFit.getFit(self.activeFitID) - if mstate.CmdDown(): - clone = True - else: - clone = False - dstRow, _ = self.HitTest((x, y)) if dstRow != -1 and dstRow not in self.blanks: - mod1 = fit.modules[srcIdx] mod2 = self.mods[dstRow] + if not isinstance(mod2, Module): return @@ -468,9 +461,11 @@ class FittingView(d.Display): if mod1.slot != mod2.slot: return + clone = mstate.CmdDown() and mod2.isEmpty + fitID = self.mainFrame.getActiveFit() if getattr(mod2, "modPosition") is not None: - self.mainFrame.command.Submit(cmd.FitModuleSwapOrCloneCommand(fitID, srcIdx, mod2.modPosition, clone and mod2.isEmpty)) + self.mainFrame.command.Submit(cmd.FitModuleSwapOrCloneCommand(fitID, srcIdx, mod2.modPosition, clone)) else: pyfalog.error("Missing module position for: {0}", str(getattr(mod2, "ID", "Unknown"))) @@ -626,7 +621,6 @@ class FittingView(d.Display): else: mods = self.getSelectedMods() - sFit = Fit.getInstance() fitID = self.mainFrame.getActiveFit() ctrl = event.cmdDown or event.middleIsDown click = "ctrl" if ctrl is True else "right" if event.GetButton() == 3 else "left" diff --git a/gui/fitCommands/helpers.py b/gui/fitCommands/helpers.py new file mode 100644 index 000000000..81c862193 --- /dev/null +++ b/gui/fitCommands/helpers.py @@ -0,0 +1,3 @@ +from collections import namedtuple + +ModuleInfoCache = namedtuple('ModuleInfoCache', ['modPosition', 'itemID', 'state', 'charge']) diff --git a/gui/fitCommands/moduleAdd.py b/gui/fitCommands/moduleAdd.py index e5b038317..ee631cc65 100644 --- a/gui/fitCommands/moduleAdd.py +++ b/gui/fitCommands/moduleAdd.py @@ -3,29 +3,56 @@ from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE +from .helpers import ModuleInfoCache class FitModuleAddCommand(wx.Command): - def __init__(self, fitID, itemID): + def __init__(self, fitID, itemID, position=None): wx.Command.__init__(self, True, "Module Add") # todo: evaluate mutaplasmid modules self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.sFit = Fit.getInstance() self.fitID = fitID self.itemID = itemID - self.new_position = None + self.new_position = position + self.old_mod = None def Do(self): - # todo: figure how not to add this command to stack if module doesn't fit correctly. - populate, self.new_position = self.sFit.appendModule(self.fitID, self.itemID) - if populate is not None: + change = None + + # if we have a position set, try to apply the module to that position + if self.new_position: + fit = self.sFit.getFit(self.fitID) + old_mod = fit.modules[self.new_position] + cache = ModuleInfoCache(old_mod.modPosition, old_mod.itemID, old_mod.state, old_mod.charge) + change = self.sFit.changeModule(self.fitID, self.new_position, self.itemID) + if change is None: + # the new module doesn't fit in specified slot, remove the position + self.new_position = None + elif not old_mod.isEmpty: + self.old_mod = cache + + # if we're not trying to set module to a position, simply append + if not self.new_position: + change, self.new_position = self.sFit.appendModule(self.fitID, self.itemID) + + if change is not None: + print('new position: ',self.new_position ) # self.slotsChanged() # unsure how to handle this right now? Perhaps move this to the event itself? wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="modadd", typeID=self.itemID)) - return True + return True + return False def Undo(self): - if (self.new_position): - # todo: self.slotsChanged() - result = self.sFit.removeModule(self.fitID, [self.new_position]) + if self.new_position: + if self.old_mod: + # we added a module on top of another one + m = self.sFit.changeModule(self.fitID, self.old_mod.modPosition, self.old_mod.itemID, False) + m.state = self.old_mod.state + m.charge = self.old_mod.charge + else: + # todo: self.slotsChanged() + # we simply added a module, so simply remove + result = self.sFit.removeModule(self.fitID, [self.new_position]) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="moddel", typeID=self.itemID)) return True diff --git a/gui/fitCommands/moduleRemove.py b/gui/fitCommands/moduleRemove.py index bc055cde6..b70423beb 100644 --- a/gui/fitCommands/moduleRemove.py +++ b/gui/fitCommands/moduleRemove.py @@ -5,8 +5,7 @@ import gui.mainFrame from gui import globalEvents as GE from collections import namedtuple -ModuleInfoCache = namedtuple('ModuleInfoCache', ['modPosition', 'itemID', 'state', 'charge']) - +from .helpers import ModuleInfoCache class FitModuleRemoveCommand(wx.Command): def __init__(self, fitID, modules): From d5aeb0913dac8f38ef56602da6cbd09275461679 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Tue, 24 Jul 2018 01:29:57 -0400 Subject: [PATCH 008/110] Start refactoring the refactor that was started with command pattern refactoring. Instead of attempting to keep all the Fit service functionality, move these into specific "Fitting Commands" that are designed to define a unit of work and it's undo. Then, we will have "GUI Commands" which are defined as actions taken by the user themselves - these will usually use one or more "Fitting Commands". --- gui/builtinContextMenus/itemRemove.py | 4 +- gui/builtinContextMenus/moduleAmmoPicker.py | 2 +- .../moduleGlobalAmmoPicker.py | 2 +- gui/builtinViews/fittingView.py | 12 +-- gui/fitCommands/__init__.py | 10 +-- gui/fitCommands/fitAddModule.py | 70 +++++++++++++++++ gui/fitCommands/fitRemoveModule.py | 57 ++++++++++++++ gui/fitCommands/fitReplaceModule.py | 77 +++++++++++++++++++ gui/fitCommands/moduleAdd.py | 47 +++++------ gui/fitCommands/moduleAddCharge.py | 2 +- gui/fitCommands/moduleRemove.py | 21 +++-- gui/fitCommands/moduleStateChange.py | 2 +- gui/fitCommands/moduleSwapOrClone.py | 2 +- service/fit.py | 5 +- utils/deprecated.py | 16 ++++ 15 files changed, 272 insertions(+), 57 deletions(-) create mode 100644 gui/fitCommands/fitAddModule.py create mode 100644 gui/fitCommands/fitRemoveModule.py create mode 100644 gui/fitCommands/fitReplaceModule.py create mode 100644 utils/deprecated.py diff --git a/gui/builtinContextMenus/itemRemove.py b/gui/builtinContextMenus/itemRemove.py index d6b8f79f1..c1c11fde5 100644 --- a/gui/builtinContextMenus/itemRemove.py +++ b/gui/builtinContextMenus/itemRemove.py @@ -36,10 +36,10 @@ class ItemRemove(ContextMenu): if srcContext == "fittingModule": modules = [module for module in selection if module is not None] - self.mainFrame.command.Submit(cmd.FitModuleRemoveCommand(fitID, modules)) + self.mainFrame.command.Submit(cmd.GuiModuleRemoveCommand(fitID, modules)) return # the command takes care of the PostEvent elif srcContext in ("fittingCharge", "projectedCharge"): - self.mainFrame.command.Submit(cmd.FitModuleAddChargeCommand(fitID, None, selection)) + self.mainFrame.command.Submit(cmd.GuiModuleAddChargeCommand(fitID, None, selection)) elif srcContext == "droneItem": sFit.removeDrone(fitID, fit.drones.index(selection[0])) elif srcContext == "fighterItem": diff --git a/gui/builtinContextMenus/moduleAmmoPicker.py b/gui/builtinContextMenus/moduleAmmoPicker.py index 59f6c3391..9b9a3a308 100644 --- a/gui/builtinContextMenus/moduleAmmoPicker.py +++ b/gui/builtinContextMenus/moduleAmmoPicker.py @@ -229,7 +229,7 @@ class ModuleAmmoPicker(ContextMenu): return fitID = self.mainFrame.getActiveFit() - self.mainFrame.command.Submit(cmd.FitModuleAddChargeCommand(fitID, charge.ID if charge is not None else None, self.modules)) + self.mainFrame.command.Submit(cmd.GuiModuleAddChargeCommand(fitID, charge.ID if charge is not None else None, self.modules)) ModuleAmmoPicker.register() diff --git a/gui/builtinContextMenus/moduleGlobalAmmoPicker.py b/gui/builtinContextMenus/moduleGlobalAmmoPicker.py index 81bce6649..6f19aec96 100644 --- a/gui/builtinContextMenus/moduleGlobalAmmoPicker.py +++ b/gui/builtinContextMenus/moduleGlobalAmmoPicker.py @@ -40,7 +40,7 @@ class ModuleGlobalAmmoPicker(ModuleAmmoPicker): if mod.itemID == selectedModule.itemID: allModules.append(mod) - self.mainFrame.command.Submit(cmd.FitModuleAddChargeCommand(fitID, charge.ID if charge is not None else None, allModules)) + self.mainFrame.command.Submit(cmd.GuiModuleAddChargeCommand(fitID, charge.ID if charge is not None else None, allModules)) def display(self, srcContext, selection): if not self.settings.get('moduleGlobalAmmoPicker'): diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index d74474bbd..f57d54adc 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -383,9 +383,9 @@ class FittingView(d.Display): sel = self.GetNextSelected(sel) if len(modules) > 0: - self.mainFrame.command.Submit(cmd.FitModuleAddChargeCommand(fitID, itemID, modules)) + self.mainFrame.command.Submit(cmd.GuiModuleAddChargeCommand(fitID, itemID, modules)) else: - self.mainFrame.command.Submit(cmd.FitModuleAddCommand(fitID, itemID)) + self.mainFrame.command.Submit(cmd.GuiModuleAddCommand(fitID, itemID)) event.Skip() @@ -407,7 +407,7 @@ class FittingView(d.Display): if not isinstance(modules, list): modules = [modules] - self.mainFrame.command.Submit(cmd.FitModuleRemoveCommand(self.activeFitID, modules)) + self.mainFrame.command.Submit(cmd.GuiModuleRemoveCommand(self.activeFitID, modules)) def addModule(self, x, y, itemID): """Add a module from the market browser (from dragging it)""" @@ -419,7 +419,7 @@ class FittingView(d.Display): if not isinstance(mod, Module): # make sure we're not adding something to a T3D Mode return - self.mainFrame.command.Submit(cmd.FitModuleAddCommand(fitID, itemID, self.mods[dstRow].modPosition)) + self.mainFrame.command.Submit(cmd.GuiModuleAddCommand(fitID, itemID, self.mods[dstRow].modPosition)) def swapCargo(self, x, y, srcIdx): """Swap a module from cargo to fitting window""" @@ -465,7 +465,7 @@ class FittingView(d.Display): fitID = self.mainFrame.getActiveFit() if getattr(mod2, "modPosition") is not None: - self.mainFrame.command.Submit(cmd.FitModuleSwapOrCloneCommand(fitID, srcIdx, mod2.modPosition, clone)) + self.mainFrame.command.Submit(cmd.GuiModuleSwapOrCloneCommand(fitID, srcIdx, mod2.modPosition, clone)) else: pyfalog.error("Missing module position for: {0}", str(getattr(mod2, "ID", "Unknown"))) @@ -625,7 +625,7 @@ class FittingView(d.Display): ctrl = event.cmdDown or event.middleIsDown click = "ctrl" if ctrl is True else "right" if event.GetButton() == 3 else "left" - self.mainFrame.command.Submit(cmd.FitModuleStateChangeCommand(fitID, self.mods[self.GetItemData(row)], mods, click)) + self.mainFrame.command.Submit(cmd.GuiModuleStateChangeCommand(fitID, self.mods[self.GetItemData(row)], mods, click)) # update state tooltip tooltip = self.activeColumns[col].getToolTip(self.mods[self.GetItemData(row)]) diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index c9bbf25da..b3cb622fc 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -1,5 +1,5 @@ -from .moduleStateChange import FitModuleStateChangeCommand -from .moduleAdd import FitModuleAddCommand -from .moduleRemove import FitModuleRemoveCommand -from .moduleAddCharge import FitModuleAddChargeCommand -from .moduleSwapOrClone import FitModuleSwapOrCloneCommand \ No newline at end of file +from .moduleStateChange import GuiModuleStateChangeCommand +from .moduleAdd import GuiModuleAddCommand +from .moduleRemove import GuiModuleRemoveCommand +from .moduleAddCharge import GuiModuleAddChargeCommand +from .moduleSwapOrClone import GuiModuleSwapOrCloneCommand \ No newline at end of file diff --git a/gui/fitCommands/fitAddModule.py b/gui/fitCommands/fitAddModule.py new file mode 100644 index 000000000..8ff72ab74 --- /dev/null +++ b/gui/fitCommands/fitAddModule.py @@ -0,0 +1,70 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) + + +class FitAddModuleCommand(wx.Command): + """" + Fitting command that appends a module to a fit using the first available slot. + + from sFit.appendModule + """ + def __init__(self, fitID, itemID): + wx.Command.__init__(self, True, "Module Add") + self.fitID = fitID + self.itemID = itemID + self.new_position = None + self.change = None + + def Do(self): + fitID = self.fitID + itemID = self.itemID + pyfalog.debug("Appending module for fit ({0}) using item: {1}", fitID, itemID) + fit = eos.db.getFit(fitID) + item = eos.db.getItem(itemID, eager=("attributes", "group.category")) + + try: + self.module = Module(item) + except ValueError: + pyfalog.warning("Invalid item: {0}", itemID) + return False + + if self.module.item.category.name == "Subsystem": + fit.modules.freeSlot(self.module.getModifiedItemAttr("subSystemSlot")) + + if self.module.fits(fit): + self.module.owner = fit + numSlots = len(fit.modules) + fit.modules.append(self.module) + if self.module.isValidState(State.ACTIVE): + self.module.state = State.ACTIVE + + # todo: fix these + # As some items may affect state-limiting attributes of the ship, calculate new attributes first + # self.recalc(fit) + # Then, check states of all modules and change where needed. This will recalc if needed + # self.checkStates(fit, m) + + fit.fill() + eos.db.commit() + + self.change = numSlots != len(fit.modules) + self.new_position = self.module.modPosition + else: + return False + + return True + + def Undo(self): + from .fitRemoveModule import FitRemoveModuleCommand # Avoid circular import + if self.new_position: + cmd = FitRemoveModuleCommand(self.fitID, [self.new_position]) + cmd.Do() + return True diff --git a/gui/fitCommands/fitRemoveModule.py b/gui/fitCommands/fitRemoveModule.py new file mode 100644 index 000000000..02d4c193b --- /dev/null +++ b/gui/fitCommands/fitRemoveModule.py @@ -0,0 +1,57 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) + + +class FitRemoveModuleCommand(wx.Command): + """" + Fitting command that removes a module at a specified positions + + from sFit.removeModule + """ + def __init__(self, fitID: int, positions: list = None): + wx.Command.__init__(self, True, "Module Remove") + self.fitID = fitID + self.positions = positions + self.modCache = [] + self.change = None + + def Do(self): + fitID = self.fitID + pyfalog.debug("Removing module from position ({0}) for fit ID: {1}", self.positions, fitID) + fit = eos.db.getFit(fitID) + + for x in self.positions: + mod = fit.modules[x] + if not mod.isEmpty: + self.modCache.append(ModuleInfoCache(mod.modPosition, mod.item.ID, mod.state, mod.charge)) + fit.modules.toDummy(x) + + # if no modules have changes, report back None + if not len(self.modCache) > 0: + return False + + numSlots = len(fit.modules) + # todo: determine if we need to do this still + # self.recalc(fit) + # self.checkStates(fit, None) + fit.fill() + eos.db.commit() + self.slotsChanged = numSlots != len(fit.modules) + return True + + def Undo(self): + from .fitAddModule import FitAddModuleCommand # avoids circular import + for mod in self.modCache: + cmd = FitAddModuleCommand(self.fitID, mod.itemID) + cmd.Do() + cmd.module.state = mod.state + cmd.module.charge = mod.charge + return True diff --git a/gui/fitCommands/fitReplaceModule.py b/gui/fitCommands/fitReplaceModule.py new file mode 100644 index 000000000..0d9900b0e --- /dev/null +++ b/gui/fitCommands/fitReplaceModule.py @@ -0,0 +1,77 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) + + +class FitReplaceModuleCommand(wx.Command): + """" + Fitting command that changes an existing module into another. + + from sFit.changeModule + """ + def __init__(self, fitID, position, itemID): + wx.Command.__init__(self, True, "Change Module") + self.fitID = fitID + self.itemID = itemID + self.position = position + self.module = None # the module version of itemID + self.old_module = None + + def Do(self): + return self.change_module(self.fitID, self.position, self.itemID) + + def Undo(self): + self.change_module(self.fitID, self.position, self.itemID) + self.module.state = self.old_module.state + self.module.charge = self.old_module.charge + return True + + def change_module(self, fitID, position, itemID): + fit = eos.db.getFit(fitID) + + # We're trying to add a charge to a slot, which won't work. Instead, try to add the charge to the module in that slot. + # todo: evaluate if this is still a thing + # actually, this seems like it should be handled higher up... + # + # if self.isAmmo(itemID): + # module = fit.modules[self.position] + # if not module.isEmpty: + # self.setAmmo(fitID, itemID, [module]) + # return True + + pyfalog.debug("Changing position of module from position ({0}) for fit ID: {1}", self.position, fitID) + + item = eos.db.getItem(itemID, eager=("attributes", "group.category")) + + mod = fit.modules[self.position] + self.old_module.append(ModuleInfoCache(mod.modPosition, mod.item.ID, mod.state, mod.charge)) + + # Dummy it out in case the next bit fails + fit.modules.toDummy(self.position) + + try: + self.module = Module(item) + except ValueError: + pyfalog.warning("Invalid item: {0}", itemID) + return False + + if self.module.fits(fit): + self.module.owner = fit + fit.modules.toModule(self.position, self.module) + if self.module.isValidState(State.ACTIVE): + self.module.state = State.ACTIVE + + # Then, check states of all modules and change where needed. This will recalc if needed + # self.checkStates(fit, m) + + fit.fill() + eos.db.commit() + return True + return False diff --git a/gui/fitCommands/moduleAdd.py b/gui/fitCommands/moduleAdd.py index ee631cc65..a783c241d 100644 --- a/gui/fitCommands/moduleAdd.py +++ b/gui/fitCommands/moduleAdd.py @@ -4,9 +4,10 @@ from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE from .helpers import ModuleInfoCache +from .fitAddModule import FitAddModuleCommand +from .fitReplaceModule import FitReplaceModuleCommand - -class FitModuleAddCommand(wx.Command): +class GuiModuleAddCommand(wx.Command): def __init__(self, fitID, itemID, position=None): wx.Command.__init__(self, True, "Module Add") # todo: evaluate mutaplasmid modules @@ -14,45 +15,37 @@ class FitModuleAddCommand(wx.Command): self.sFit = Fit.getInstance() self.fitID = fitID self.itemID = itemID + self.internal_history = wx.CommandProcessor() self.new_position = position self.old_mod = None def Do(self): - change = None - + success = False # if we have a position set, try to apply the module to that position if self.new_position: - fit = self.sFit.getFit(self.fitID) - old_mod = fit.modules[self.new_position] - cache = ModuleInfoCache(old_mod.modPosition, old_mod.itemID, old_mod.state, old_mod.charge) - change = self.sFit.changeModule(self.fitID, self.new_position, self.itemID) - if change is None: - # the new module doesn't fit in specified slot, remove the position + success = self.internal_history.Submit(FitReplaceModuleCommand(self.fitID, self.new_position, self.itemID)) + if not success: + # something went wrong with trying to fit the module into specific location, attemp to append it self.new_position = None - elif not old_mod.isEmpty: - self.old_mod = cache # if we're not trying to set module to a position, simply append if not self.new_position: - change, self.new_position = self.sFit.appendModule(self.fitID, self.itemID) + success = self.internal_history.Submit(FitAddModuleCommand(self.fitID, self.itemID)) - if change is not None: - print('new position: ',self.new_position ) - # self.slotsChanged() # unsure how to handle this right now? Perhaps move this to the event itself? + if success: wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="modadd", typeID=self.itemID)) return True return False + # + # if change is not None: + # print('new position: ',self.new_position ) + # # self.slotsChanged() # unsure how to handle this right now? Perhaps move this to the event itself? + # return True + # return False + def Undo(self): - if self.new_position: - if self.old_mod: - # we added a module on top of another one - m = self.sFit.changeModule(self.fitID, self.old_mod.modPosition, self.old_mod.itemID, False) - m.state = self.old_mod.state - m.charge = self.old_mod.charge - else: - # todo: self.slotsChanged() - # we simply added a module, so simply remove - result = self.sFit.removeModule(self.fitID, [self.new_position]) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="moddel", typeID=self.itemID)) + for _ in self.internal_history.Commands: + self.internal_history.Undo() + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="moddel", typeID=self.itemID)) return True diff --git a/gui/fitCommands/moduleAddCharge.py b/gui/fitCommands/moduleAddCharge.py index c125230b9..c696b51c5 100644 --- a/gui/fitCommands/moduleAddCharge.py +++ b/gui/fitCommands/moduleAddCharge.py @@ -5,7 +5,7 @@ import gui.mainFrame from gui import globalEvents as GE -class FitModuleAddChargeCommand(wx.Command): +class GuiModuleAddChargeCommand(wx.Command): def __init__(self, fitID, itemID, modules): wx.Command.__init__(self, True, "Module Charge Add") # todo: evaluate mutaplasmid modules diff --git a/gui/fitCommands/moduleRemove.py b/gui/fitCommands/moduleRemove.py index b70423beb..25ce96658 100644 --- a/gui/fitCommands/moduleRemove.py +++ b/gui/fitCommands/moduleRemove.py @@ -6,8 +6,10 @@ from gui import globalEvents as GE from collections import namedtuple from .helpers import ModuleInfoCache +from .fitRemoveModule import FitRemoveModuleCommand -class FitModuleRemoveCommand(wx.Command): + +class GuiModuleRemoveCommand(wx.Command): def __init__(self, fitID, modules): # todo: evaluate mutaplasmid modules wx.Command.__init__(self, True, "Module Remove") @@ -15,22 +17,19 @@ class FitModuleRemoveCommand(wx.Command): self.sFit = Fit.getInstance() self.fitID = fitID self.modCache = [ModuleInfoCache(mod.modPosition, mod.item.ID, mod.state, mod.charge) for mod in modules] + self.internal_history = wx.CommandProcessor() def Do(self): - self.sFit.getFit(self.fitID) - result = self.sFit.removeModule(self.fitID, [mod.modPosition for mod in self.modCache]) + # todo: what happens when one remove in an array of removes fucks up? (it really shouldn't it's easy peasy) + success = self.internal_history.Submit(FitRemoveModuleCommand(self.fitID, [mod.modPosition for mod in self.modCache])) - if result is not None: + if success is not None: # self.slotsChanged() # todo: fix wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="moddel", typeID=set([mod.itemID for mod in self.modCache]))) - return True + return True def Undo(self): - for mod in self.modCache: - m = self.sFit.changeModule(self.fitID, mod.modPosition, mod.itemID, False) - m.state = mod.state - m.charge = mod.charge - self.sFit.recalc(self.fitID) + for x in self.internal_history.Commands: + self.internal_history.Undo() wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="modadd", typeID=set([mod.itemID for mod in self.modCache]))) - return True diff --git a/gui/fitCommands/moduleStateChange.py b/gui/fitCommands/moduleStateChange.py index c490115e2..340526972 100644 --- a/gui/fitCommands/moduleStateChange.py +++ b/gui/fitCommands/moduleStateChange.py @@ -5,7 +5,7 @@ import gui.mainFrame from gui import globalEvents as GE -class FitModuleStateChangeCommand(wx.Command): +class GuiModuleStateChangeCommand(wx.Command): def __init__(self, fitID, baseMod, modules, click): # todo: instead of modules, needs to be positions. Dead objects are a thing wx.Command.__init__(self, True, "Module State Change") diff --git a/gui/fitCommands/moduleSwapOrClone.py b/gui/fitCommands/moduleSwapOrClone.py index 65b6a10dc..58a3c00c5 100644 --- a/gui/fitCommands/moduleSwapOrClone.py +++ b/gui/fitCommands/moduleSwapOrClone.py @@ -5,7 +5,7 @@ import gui.mainFrame from gui import globalEvents as GE -class FitModuleSwapOrCloneCommand(wx.Command): +class GuiModuleSwapOrCloneCommand(wx.Command): def __init__(self, fitID, srcPosition, dstPosition, clone=False): # todo: instead of modules, needs to be positions. Dead objects are a thing wx.Command.__init__(self, True, "Module State Change") diff --git a/service/fit.py b/service/fit.py index 1172cd2fb..c4c0c15e6 100644 --- a/service/fit.py +++ b/service/fit.py @@ -37,7 +37,7 @@ from eos.saveddata.fit import Fit as FitType, ImplantLocation from service.character import Character from service.damagePattern import DamagePattern from service.settings import SettingsProvider - +from utils.deprecated import deprecated pyfalog = Logger(__name__) @@ -538,6 +538,7 @@ class Fit(object): eos.db.commit() return mutator.value + @deprecated def appendModule(self, fitID, itemID): pyfalog.debug("Appending module for fit ({0}) using item: {1}", fitID, itemID) fit = eos.db.getFit(fitID) @@ -570,6 +571,7 @@ class Fit(object): else: return None, None + @deprecated def removeModule(self, fitID, positions): """Removes modules based on a number of positions.""" pyfalog.debug("Removing module from position ({0}) for fit ID: {1}", positions, fitID) @@ -627,6 +629,7 @@ class Fit(object): else: return None + @deprecated def changeModule(self, fitID, position, newItemID, recalc=True): fit = eos.db.getFit(fitID) diff --git a/utils/deprecated.py b/utils/deprecated.py new file mode 100644 index 000000000..e7eeb9fad --- /dev/null +++ b/utils/deprecated.py @@ -0,0 +1,16 @@ +import warnings +import functools + +def deprecated(func): + """This is a decorator which can be used to mark functions + as deprecated. It will result in a warning being emitted + when the function is used.""" + @functools.wraps(func) + def new_func(*args, **kwargs): + warnings.simplefilter('always', DeprecationWarning) # turn off filter + warnings.warn("Call to deprecated function {}.".format(func.__name__), + category=DeprecationWarning, + stacklevel=2) + warnings.simplefilter('default', DeprecationWarning) # reset filter + return func(*args, **kwargs) + return new_func From 9ccdb51063d1ea5aaee00687d931c03ffd6bc243 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Wed, 25 Jul 2018 00:58:11 -0400 Subject: [PATCH 009/110] remove some logging tweaks --- config.py | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/config.py b/config.py index fa073ad9d..750888659 100644 --- a/config.py +++ b/config.py @@ -229,19 +229,6 @@ def defLogging(): ) ]) - with logging_setup.threadbound(): - - # Output all stdout (print) messages as warnings - try: - sys.stdout = LoggerWriter(pyfalog.warning) - except: - pyfalog.critical("Cannot redirect. Continuing without writing stdout to log.") - - # Output all stderr (stacktrace) messages as critical - try: - sys.stderr = LoggerWriter(pyfalog.critical) - except: - pyfalog.critical("Cannot redirect. Continuing without writing stderr to log.") class LoggerWriter(object): From 65c568bd95778582fec2eaf7c6e9041a842c2b12 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Wed, 25 Jul 2018 22:02:44 -0400 Subject: [PATCH 010/110] Move some module state mapping definitions to the module file and add deprecation flags some sFit functions (will be moving to module / commands) --- eos/saveddata/module.py | 24 ++++++++++++++++++++++++ service/fit.py | 23 +++++------------------ 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index d95afc5c6..d5a68bae3 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -64,6 +64,30 @@ class Slot(Enum): FS_HEAVY = 15 +ProjectedMap = { + State.OVERHEATED: State.ACTIVE, + State.ACTIVE: State.OFFLINE, + State.OFFLINE: State.ACTIVE, + State.ONLINE: State.ACTIVE # Just in case +} + + +# Old state : New State +LocalMap = { + State.OVERHEATED: State.ACTIVE, + State.ACTIVE: State.ONLINE, + State.OFFLINE: State.ONLINE, + State.ONLINE: State.ACTIVE +} + + +# For system effects. They should only ever be online or offline +ProjectedSystem = { + State.OFFLINE: State.ONLINE, + State.ONLINE: State.OFFLINE +} + + class Hardpoint(Enum): NONE = 0 MISSILE = 1 diff --git a/service/fit.py b/service/fit.py index c4c0c15e6..0f775b458 100644 --- a/service/fit.py +++ b/service/fit.py @@ -32,7 +32,7 @@ from eos.saveddata.drone import Drone as es_Drone from eos.saveddata.fighter import Fighter as es_Fighter from eos.saveddata.implant import Implant as es_Implant from eos.saveddata.ship import Ship as es_Ship -from eos.saveddata.module import Module as es_Module, State, Slot +from eos.saveddata.module import Module as es_Module, State, Slot, ProjectedMap, ProjectedSystem, LocalMap from eos.saveddata.fit import Fit as FitType, ImplantLocation from service.character import Character from service.damagePattern import DamagePattern @@ -1186,6 +1186,7 @@ class Fit(object): if changed: self.recalc(fit) + @deprecated def toggleModulesState(self, fitID, base, modules, click): pyfalog.debug("Toggle module state for fit ID: {0}", fitID) changed = False @@ -1210,31 +1211,17 @@ class Fit(object): # Then, check states of all modules and change where needed. This will recalc if needed self.checkStates(fit, base) - # Old state : New State - localMap = { - State.OVERHEATED: State.ACTIVE, - State.ACTIVE: State.ONLINE, - State.OFFLINE: State.ONLINE, - State.ONLINE: State.ACTIVE} - projectedMap = { - State.OVERHEATED: State.ACTIVE, - State.ACTIVE: State.OFFLINE, - State.OFFLINE: State.ACTIVE, - State.ONLINE: State.ACTIVE} # Just in case - # For system effects. They should only ever be online or offline - projectedSystem = { - State.OFFLINE: State.ONLINE, - State.ONLINE: State.OFFLINE} + @deprecated def __getProposedState(self, mod, click, proposedState=None): pyfalog.debug("Get proposed state for module.") if mod.slot == Slot.SUBSYSTEM or mod.isEmpty: return State.ONLINE if mod.slot == Slot.SYSTEM: - transitionMap = self.projectedSystem + transitionMap = ProjectedSystem else: - transitionMap = self.projectedMap if mod.projected else self.localMap + transitionMap = ProjectedMap if mod.projected else LocalMap currState = mod.state From 1f9024a740fe00c1586c9c6c7069e08bcd10815f Mon Sep 17 00:00:00 2001 From: blitzmann Date: Wed, 25 Jul 2018 22:06:53 -0400 Subject: [PATCH 011/110] Move `getProposedState`from fit service to module class --- eos/saveddata/module.py | 31 +++++++++++++++++++++++++++++++ service/fit.py | 33 +++------------------------------ 2 files changed, 34 insertions(+), 30 deletions(-) diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index d5a68bae3..a675b0fb0 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -29,6 +29,7 @@ from eos.enum import Enum from eos.modifiedAttributeDict import ModifiedAttributeDict, ItemAttrShortcut, ChargeAttrShortcut from eos.saveddata.citadel import Citadel from eos.saveddata.mutator import Mutator +from utils.deprecated import deprecated pyfalog = Logger(__name__) @@ -856,6 +857,36 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): else: return 0 + @staticmethod + def getProposedState(mod, click, proposedState=None): + # todo: instead of passing in module, make this a instanced function. + pyfalog.debug("Get proposed state for module.") + if mod.slot == Slot.SUBSYSTEM or mod.isEmpty: + return State.ONLINE + + if mod.slot == Slot.SYSTEM: + transitionMap = ProjectedSystem + else: + transitionMap = ProjectedMap if mod.projected else LocalMap + + currState = mod.state + + if proposedState is not None: + state = proposedState + elif click == "right": + state = State.OVERHEATED + elif click == "ctrl": + state = State.OFFLINE + else: + state = transitionMap[currState] + if not mod.isValidState(state): + state = -1 + + if mod.isValidState(state): + return state + else: + return currState + def __deepcopy__(self, memo): item = self.item if item is None: diff --git a/service/fit.py b/service/fit.py index 0f775b458..3b5513e5b 100644 --- a/service/fit.py +++ b/service/fit.py @@ -466,7 +466,7 @@ class Fit(object): elif isinstance(thing, es_Fighter): thing.active = not thing.active elif isinstance(thing, es_Module): - thing.state = self.__getProposedState(thing, click) + thing.state = es_Module.getProposedState(thing, click) if not thing.canHaveState(thing.state, fit): thing.state = State.OFFLINE elif isinstance(thing, FitType): @@ -1190,14 +1190,14 @@ class Fit(object): def toggleModulesState(self, fitID, base, modules, click): pyfalog.debug("Toggle module state for fit ID: {0}", fitID) changed = False - proposedState = self.__getProposedState(base, click) + proposedState = es_Module.getProposedState(base, click) if proposedState != base.state: changed = True base.state = proposedState for mod in modules: if mod != base: - p = self.__getProposedState(mod, click, proposedState) + p = es_Module.getProposedState(mod, click, proposedState) mod.state = p if p != mod.state: changed = True @@ -1212,34 +1212,7 @@ class Fit(object): self.checkStates(fit, base) - @deprecated - def __getProposedState(self, mod, click, proposedState=None): - pyfalog.debug("Get proposed state for module.") - if mod.slot == Slot.SUBSYSTEM or mod.isEmpty: - return State.ONLINE - if mod.slot == Slot.SYSTEM: - transitionMap = ProjectedSystem - else: - transitionMap = ProjectedMap if mod.projected else LocalMap - - currState = mod.state - - if proposedState is not None: - state = proposedState - elif click == "right": - state = State.OVERHEATED - elif click == "ctrl": - state = State.OFFLINE - else: - state = transitionMap[currState] - if not mod.isValidState(state): - state = -1 - - if mod.isValidState(state): - return state - else: - return currState def refreshFit(self, fitID): pyfalog.debug("Refresh fit for fit ID: {0}", fitID) From dd6fe01df5cc41d6cc1ac49f3da90bf277511795 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Wed, 25 Jul 2018 22:24:57 -0400 Subject: [PATCH 012/110] Migrate module state change to gui/fit command pattern --- gui/fitCommands/fitChangeState.py | 61 ++++++++++++++++++++++++++++ gui/fitCommands/moduleRemove.py | 1 - gui/fitCommands/moduleStateChange.py | 21 ++++------ 3 files changed, 68 insertions(+), 15 deletions(-) create mode 100644 gui/fitCommands/fitChangeState.py diff --git a/gui/fitCommands/fitChangeState.py b/gui/fitCommands/fitChangeState.py new file mode 100644 index 000000000..c800e030e --- /dev/null +++ b/gui/fitCommands/fitChangeState.py @@ -0,0 +1,61 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from logbook import Logger +from eos.saveddata.module import Module +pyfalog = Logger(__name__) +import eos.db + +class FitChangeStatesCommand(wx.Command): + def __init__(self, fitID, baseMod, modules, click): + # todo: instead of modules, needs to be positions. Dead objects are a thing + wx.Command.__init__(self, True, "Module State Change") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.fitID = fitID + self.baseMod = baseMod + self.modules = modules + self.click = click + self.changed = None + self.old_states = {} + for mod in modules: + # we don't use the actual module as the key, because it may have been deleted in subsequent calls (even if + # we undo a deletion, wouldn't be the same obj). So, we store the position + self.old_states[mod.modPosition] = mod.state + + def Do(self): + # todo: determine if we've changed state (recalc). If not, store that so we don't attempt to recalc on undo + # self.sFit.toggleModulesState(self.fitID, self.baseMod, self.modules, self.click) + + pyfalog.debug("Toggle module state for fit ID: {0}", self.fitID) + changed = False + proposedState = Module.getProposedState(self.baseMod, self.click) + + if proposedState != self.baseMod.state: + changed = True + self.baseMod.state = proposedState + for mod in self.modules: + if mod != self.baseMod: + p = Module.getProposedState(mod, self.click, proposedState) + mod.state = p + if p != mod.state: + changed = True + + if changed: + self.changed = changed + eos.db.commit() + # As some items may affect state-limiting attributes of the ship, calculate new attributes first + # self.recalc(fit) + # # Then, check states of all modules and change where needed. This will recalc if needed + # self.checkStates(fit, base) + return True + return False + + def Undo(self): + # todo: some sanity checking to make sure that we are applying state back to the same modules? + fit = self.sFit.getFit(self.fitID) + for k, v in self.old_states.items(): + fit.modules[k].state = v + return True diff --git a/gui/fitCommands/moduleRemove.py b/gui/fitCommands/moduleRemove.py index 25ce96658..bcf2cf139 100644 --- a/gui/fitCommands/moduleRemove.py +++ b/gui/fitCommands/moduleRemove.py @@ -3,7 +3,6 @@ from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE -from collections import namedtuple from .helpers import ModuleInfoCache from .fitRemoveModule import FitRemoveModuleCommand diff --git a/gui/fitCommands/moduleStateChange.py b/gui/fitCommands/moduleStateChange.py index 340526972..167777bd1 100644 --- a/gui/fitCommands/moduleStateChange.py +++ b/gui/fitCommands/moduleStateChange.py @@ -3,7 +3,7 @@ from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE - +from .fitChangeState import FitChangeStatesCommand class GuiModuleStateChangeCommand(wx.Command): def __init__(self, fitID, baseMod, modules, click): @@ -15,24 +15,17 @@ class GuiModuleStateChangeCommand(wx.Command): self.baseMod = baseMod self.modules = modules self.click = click - - self.old_states = {} - for mod in modules: - # we don't use the actual module as the key, because it may have been deleted in subsequent calls (even if - # we undo a deletion, wouldn't be the same obj). So, we store the position - self.old_states[mod.modPosition] = mod.state + self.internal_history = wx.CommandProcessor() def Do(self): # todo: determine if we've changed state (recalc). If not, store that so we don't attempt to recalc on undo - self.sFit.toggleModulesState(self.fitID, self.baseMod, self.modules, self.click) + self.internal_history.Submit(FitChangeStatesCommand(self.fitID, self.baseMod, self.modules, self.click)) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True def Undo(self): - # todo: some sanity checking to make sure that we are applying state back to the same modules? - fit = self.sFit.getFit(self.fitID) - for k, v in self.old_states.items(): - fit.modules[k].state = v - self.sFit.recalc(fit) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + for x in self.internal_history.Commands: + self.internal_history.Undo() + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True + From 53f6d431094fd2f49c3538048e953badac5b3cd2 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Wed, 25 Jul 2018 22:49:09 -0400 Subject: [PATCH 013/110] Migrate over the ammo setting stuff to fit/gui commands --- gui/fitCommands/fitSetCharge.py | 44 ++++++++++++++++++++++++++++++ gui/fitCommands/moduleAddCharge.py | 25 ++++++++--------- service/fit.py | 1 + 3 files changed, 57 insertions(+), 13 deletions(-) create mode 100644 gui/fitCommands/fitSetCharge.py diff --git a/gui/fitCommands/fitSetCharge.py b/gui/fitCommands/fitSetCharge.py new file mode 100644 index 000000000..0ae8a80fd --- /dev/null +++ b/gui/fitCommands/fitSetCharge.py @@ -0,0 +1,44 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from eos.saveddata.module import Module +from logbook import Logger +pyfalog = Logger(__name__) +import eos.db + +class FitSetChargeCommand(wx.Command): + def __init__(self, fitID, modules, chargeID=None): + # todo: determine if this command really should be used with a group of modules, or a simple per module basis + wx.Command.__init__(self, True, "Module Charge Add") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.fitID = fitID + self.chargeID = chargeID + self.modules = modules + self.positions = {mod.modPosition: mod.chargeID for mod in modules} + + def Do(self): + pyfalog.debug("Set ammo for fit ID: {0}", self.fitID) + if self.fitID is None: + return False + return self.__setAmmo(self.modules, self.chargeID) + + def Undo(self): + fit = eos.db.getFit(self.fitID) + for position, chargeID in self.positions.items(): + self.__setAmmo([fit.modules[position]], chargeID) + return True + + @staticmethod + def __setAmmo(modules, chargeID): + ammo = eos.db.getItem(chargeID) if chargeID else None + result = False + + for mod in modules: + if mod.isValidCharge(ammo): + result = True + mod.charge = ammo + eos.db.commit() + return result \ No newline at end of file diff --git a/gui/fitCommands/moduleAddCharge.py b/gui/fitCommands/moduleAddCharge.py index c696b51c5..7dd4ba6ec 100644 --- a/gui/fitCommands/moduleAddCharge.py +++ b/gui/fitCommands/moduleAddCharge.py @@ -3,28 +3,27 @@ from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE - +from .fitSetCharge import FitSetChargeCommand class GuiModuleAddChargeCommand(wx.Command): def __init__(self, fitID, itemID, modules): wx.Command.__init__(self, True, "Module Charge Add") - # todo: evaluate mutaplasmid modules self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() self.fitID = fitID - self.itemID = itemID - self.positions = {mod.modPosition: mod.chargeID for mod in modules} + # can set his up no to not have to set variables on our object + self.cmd = FitSetChargeCommand(fitID, modules, itemID) def Do(self): - fit = self.sFit.getFit(self.fitID) - self.sFit.setAmmo(self.fitID, self.itemID, [fit.modules[i] for i in self.positions.keys()]) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) - return True + if self.internal_history.Submit(self.cmd): + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False def Undo(self): - fit = self.sFit.getFit(self.fitID) - for position, chargeID in self.positions.items(): - self.sFit.setAmmo(self.fitID, chargeID, [fit.modules[position]], False) - self.sFit.recalc(self.fitID) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + for x in self.internal_history.Commands: + self.internal_history.Undo() + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True + diff --git a/service/fit.py b/service/fit.py index 3b5513e5b..b0bf81df0 100644 --- a/service/fit.py +++ b/service/fit.py @@ -1077,6 +1077,7 @@ class Fit(object): def isAmmo(itemID): return eos.db.getItem(itemID).category.name == "Charge" + @deprecated def setAmmo(self, fitID, ammoID, modules, recalc=True): pyfalog.debug("Set ammo for fit ID: {0}", fitID) if fitID is None: From 0d32b60f7eb757a760bd39f4da231ef78dbb2e56 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Thu, 26 Jul 2018 00:31:38 -0400 Subject: [PATCH 014/110] Convert module swap / clone to fit / gui commands --- gui/fitCommands/fitCloneModule.py | 49 ++++++++++++++++++++++++++++ gui/fitCommands/fitSwapModule.py | 44 +++++++++++++++++++++++++ gui/fitCommands/moduleSwapOrClone.py | 22 +++++++------ service/fit.py | 2 ++ 4 files changed, 107 insertions(+), 10 deletions(-) create mode 100644 gui/fitCommands/fitCloneModule.py create mode 100644 gui/fitCommands/fitSwapModule.py diff --git a/gui/fitCommands/fitCloneModule.py b/gui/fitCommands/fitCloneModule.py new file mode 100644 index 000000000..b126c5063 --- /dev/null +++ b/gui/fitCommands/fitCloneModule.py @@ -0,0 +1,49 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) +import copy + +class FitCloneModduleCommand(wx.Command): + """ + Clone a module from src to dst + This will overwrite dst! Checking for empty module must be + done at a higher level + + from sFit.cloneModule + """ + def __init__(self, fitID, src, dst): + wx.Command.__init__(self, True, "Module Clone") + self.fitID = fitID + self.src = src + self.dst = dst + + def Do(self): + pyfalog.debug("Cloning modules from source ({0}) to destination ({1}) for fit ID: {1}", self.src, self.dst, self.fitID) + fit = eos.db.getFit(self.fitID) + # Gather modules + srcMod = fit.modules[self.src] + dstMod = fit.modules[self.dst] # should be a placeholder module + + new = copy.deepcopy(srcMod) + new.owner = fit + if new.fits(fit): + # insert copy if module meets hardpoint restrictions + fit.modules.remove(dstMod) + fit.modules.insert(self.dst, new) + + eos.db.commit() + return True + return False + + def Undo(self): + from .fitRemoveModule import FitRemoveModuleCommand # Avoid circular import + cmd = FitRemoveModuleCommand(self.fitID, [self.dst]) + cmd.Do() + return True diff --git a/gui/fitCommands/fitSwapModule.py b/gui/fitCommands/fitSwapModule.py new file mode 100644 index 000000000..8f5ff4212 --- /dev/null +++ b/gui/fitCommands/fitSwapModule.py @@ -0,0 +1,44 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) + + +class FitSwapModuleCommand(wx.Command): + """" + from sFit.swapModules + """ + def __init__(self, fitID, src, dst): + wx.Command.__init__(self, True, "Module Swap") + self.fitID = fitID + self.src = src + self.dst = dst + + def Do(self): + self.__swap(self.fitID, self.src, self.dst) + return True + + def Undo(self): + self.__swap(self.fitID, self.dst, self.src) + return True + + def __swap(self, fitID, src, dst): + pyfalog.debug("Swapping modules from source ({0}) to destination ({1}) for fit ID: {1}", src, dst, fitID) + fit = eos.db.getFit(fitID) + # Gather modules + srcMod = fit.modules[src] + dstMod = fit.modules[dst] + + # To swap, we simply remove mod and insert at destination. + fit.modules.remove(srcMod) + fit.modules.insert(dst, srcMod) + fit.modules.remove(dstMod) + fit.modules.insert(src, dstMod) + + eos.db.commit() diff --git a/gui/fitCommands/moduleSwapOrClone.py b/gui/fitCommands/moduleSwapOrClone.py index 58a3c00c5..799b7a915 100644 --- a/gui/fitCommands/moduleSwapOrClone.py +++ b/gui/fitCommands/moduleSwapOrClone.py @@ -3,7 +3,8 @@ from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE - +from .fitSwapModule import FitSwapModuleCommand +from .fitCloneModule import FitCloneModduleCommand class GuiModuleSwapOrCloneCommand(wx.Command): def __init__(self, fitID, srcPosition, dstPosition, clone=False): @@ -15,20 +16,21 @@ class GuiModuleSwapOrCloneCommand(wx.Command): self.srcPosition = srcPosition self.dstPosition = dstPosition self.clone = clone + self.internal_history = wx.CommandProcessor() def Do(self): + result = None if self.clone: - self.sFit.cloneModule(self.fitID, self.srcPosition, self.dstPosition) + result = self.internal_history.Submit(FitCloneModduleCommand(self.fitID, self.srcPosition, self.dstPosition)) else: - self.sFit.swapModules(self.fitID, self.srcPosition, self.dstPosition) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) - return True + result = self.internal_history.Submit(FitSwapModuleCommand(self.fitID, self.srcPosition, self.dstPosition)) + + if result: + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return result def Undo(self): - if self.clone: - # if we had cloned, the destinations was originally an empty slot, hence we can just remove the module - self.sFit.removeModule(self.fitID, [self.dstPosition]) - else: - self.sFit.swapModules(self.fitID, self.dstPosition, self.srcPosition) + for _ in self.internal_history.Commands: + self.internal_history.Undo() wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True diff --git a/service/fit.py b/service/fit.py index b0bf81df0..d4bd396dc 100644 --- a/service/fit.py +++ b/service/fit.py @@ -736,6 +736,7 @@ class Fit(object): self.recalc(fit) @staticmethod + @deprecated def swapModules(fitID, src, dst): pyfalog.debug("Swapping modules from source ({0}) to destination ({1}) for fit ID: {1}", src, dst, fitID) fit = eos.db.getFit(fitID) @@ -751,6 +752,7 @@ class Fit(object): eos.db.commit() + @deprecated def cloneModule(self, fitID, src, dst): """ Clone a module from src to dst From 7f8ad3885d3ef80a7df9966927db2829a5c141be Mon Sep 17 00:00:00 2001 From: blitzmann Date: Thu, 26 Jul 2018 01:16:29 -0400 Subject: [PATCH 015/110] Create isCharge property --- eos/gamedata.py | 4 ++++ gui/fitCommands/moduleAdd.py | 2 ++ service/fit.py | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/eos/gamedata.py b/eos/gamedata.py index 7c7f85b8f..0fc9482e2 100644 --- a/eos/gamedata.py +++ b/eos/gamedata.py @@ -476,6 +476,10 @@ class Item(EqBase): def getAbyssalYypes(cls): cls.ABYSSAL_TYPES = eos.db.getAbyssalTypes() + @property + def isCharge(self): + return self.category.name == "Charge" + def __repr__(self): return "Item(ID={}, name={}) at {}".format( self.ID, self.name, hex(id(self)) diff --git a/gui/fitCommands/moduleAdd.py b/gui/fitCommands/moduleAdd.py index a783c241d..e035dbfd0 100644 --- a/gui/fitCommands/moduleAdd.py +++ b/gui/fitCommands/moduleAdd.py @@ -22,6 +22,8 @@ class GuiModuleAddCommand(wx.Command): def Do(self): success = False # if we have a position set, try to apply the module to that position + + # todo: check to see if item is a charge. if it is, dont try to add module, but instead set amm if self.new_position: success = self.internal_history.Submit(FitReplaceModuleCommand(self.fitID, self.new_position, self.itemID)) if not success: diff --git a/service/fit.py b/service/fit.py index d4bd396dc..175292666 100644 --- a/service/fit.py +++ b/service/fit.py @@ -1077,7 +1077,8 @@ class Fit(object): @staticmethod def isAmmo(itemID): - return eos.db.getItem(itemID).category.name == "Charge" + # todo: get rid of this form the service, use directly from item + return eos.db.getItem(itemID).isCharge @deprecated def setAmmo(self, fitID, ammoID, modules, recalc=True): From b724e5bec1b835e721067f7f6a84c91610dc83b9 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 27 Jul 2018 00:43:47 -0400 Subject: [PATCH 016/110] Set up commands for adding/removing cargo --- gui/builtinContextMenus/cargo.py | 6 +-- gui/builtinContextMenus/itemRemove.py | 3 +- gui/fitCommands/__init__.py | 6 ++- gui/fitCommands/fitAddCargo.py | 48 ++++++++++++++++++++++++ gui/fitCommands/fitRemoveCargo.py | 53 +++++++++++++++++++++++++++ gui/fitCommands/fitSetCharge.py | 2 +- gui/fitCommands/guiAddCargo.py | 29 +++++++++++++++ gui/fitCommands/guiRemoveCargo.py | 29 +++++++++++++++ service/fit.py | 3 ++ 9 files changed, 173 insertions(+), 6 deletions(-) create mode 100644 gui/fitCommands/fitAddCargo.py create mode 100644 gui/fitCommands/fitRemoveCargo.py create mode 100644 gui/fitCommands/guiAddCargo.py create mode 100644 gui/fitCommands/guiRemoveCargo.py diff --git a/gui/builtinContextMenus/cargo.py b/gui/builtinContextMenus/cargo.py index 32d6370cf..a0b1c6e80 100644 --- a/gui/builtinContextMenus/cargo.py +++ b/gui/builtinContextMenus/cargo.py @@ -5,6 +5,7 @@ import gui.globalEvents as GE import wx from service.fit import Fit from service.settings import ContextMenuSettings +import gui.fitCommands as cmd class Cargo(ContextMenu): @@ -32,13 +33,12 @@ class Cargo(ContextMenu): return "Add {0} to Cargo".format(itmContext) def activate(self, fullContext, selection, i): - sFit = Fit.getInstance() fitID = self.mainFrame.getActiveFit() typeID = int(selection[0].ID) - sFit.addCargo(fitID, typeID) + + self.mainFrame.command.Submit(cmd.GuiAddCargoCommand(fitID, typeID)) self.mainFrame.additionsPane.select("Cargo") - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) Cargo.register() diff --git a/gui/builtinContextMenus/itemRemove.py b/gui/builtinContextMenus/itemRemove.py index c1c11fde5..9eb741dda 100644 --- a/gui/builtinContextMenus/itemRemove.py +++ b/gui/builtinContextMenus/itemRemove.py @@ -49,7 +49,8 @@ class ItemRemove(ContextMenu): elif srcContext == "boosterItem": sFit.removeBooster(fitID, fit.boosters.index(selection[0])) elif srcContext == "cargoItem": - sFit.removeCargo(fitID, fit.cargo.index(selection[0])) + self.mainFrame.command.Submit(cmd.GuiRemoveCargoCommand(fitID, selection[0].itemID)) + return # the command takes care of the PostEvent elif srcContext in ("projectedFit", "projectedModule", "projectedDrone", "projectedFighter"): sFit.removeProjected(fitID, selection[0]) elif srcContext == "commandFit": diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index b3cb622fc..7e74e568e 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -2,4 +2,8 @@ from .moduleStateChange import GuiModuleStateChangeCommand from .moduleAdd import GuiModuleAddCommand from .moduleRemove import GuiModuleRemoveCommand from .moduleAddCharge import GuiModuleAddChargeCommand -from .moduleSwapOrClone import GuiModuleSwapOrCloneCommand \ No newline at end of file +from .moduleSwapOrClone import GuiModuleSwapOrCloneCommand +from .guiRemoveCargo import GuiRemoveCargoCommand +from .guiAddCargo import GuiAddCargoCommand +from .fitAddCargo import FitAddCargoCommand +from .fitRemoveCargo import FitRemoveCargoCommand \ No newline at end of file diff --git a/gui/fitCommands/fitAddCargo.py b/gui/fitCommands/fitAddCargo.py new file mode 100644 index 000000000..85bfae3eb --- /dev/null +++ b/gui/fitCommands/fitAddCargo.py @@ -0,0 +1,48 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) +from eos.saveddata.cargo import Cargo + +class FitAddCargoCommand(wx.Command): + """" + from sFit.addCargo + """ + def __init__(self, fitID, itemID, amount=1, replace=False): + wx.Command.__init__(self, True, "Cargo add") + self.fitID = fitID + self.itemID = itemID + self.amount = amount # add x amount. If this goes over amount, removes stack + self.replace = replace # if this is false, we increment. + + def Do(self): + pyfalog.debug("Adding cargo {0} (x{1}) for fit {2}", self.itemID, self.amount, self.fitID) + + fit = eos.db.getFit(self.fitID) + item = eos.db.getItem(self.itemID) + + cargo = next((x for x in fit.cargo if x.itemID == self.itemID), None) + + if cargo is None: + cargo = Cargo(item) + fit.cargo.append(cargo) + + if self.replace: + cargo.amount = self.amount + else: + cargo.amount += self.amount + + eos.db.commit() + return True + + def Undo(self): + from .fitRemoveCargo import FitRemoveCargoCommand # Avoid circular import + cmd = FitRemoveCargoCommand(self.fitID, self.itemID, self.amount) + cmd.Do() + return True diff --git a/gui/fitCommands/fitRemoveCargo.py b/gui/fitCommands/fitRemoveCargo.py new file mode 100644 index 000000000..41fb57b9e --- /dev/null +++ b/gui/fitCommands/fitRemoveCargo.py @@ -0,0 +1,53 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) + + +class FitRemoveCargoCommand(wx.Command): + """" + Fitting command that sets the amount for an item within the cargo. + + from sFit.removeCargo + """ + def __init__(self, fitID, itemID, amount=1, stack=False): + wx.Command.__init__(self, True, "Cargo remove") + self.fitID = fitID + self.itemID = itemID + self.stack = stack # remove entire stack + self.amount = amount # remove x amount. If this goes over amount, removes stack + self.old_amount = None + + def Do(self): + pyfalog.debug("Removing cargo {0} (x{1}) for fit {2}", self.itemID, self.amount, self.fitID) + fit = eos.db.getFit(self.fitID) + cargo = next((x for x in fit.cargo if x.itemID == self.itemID), None) + + if cargo is None: + return False + + self.old_amount = cargo.amount + + if self.amount >= cargo.amount: + self.stack = True # set to full stack, this allows easier logic in the Undo function + + if self.stack or self.amount >= cargo.amount: + fit.cargo.remove(cargo) + eos.db.commit() + return True + + cargo.amount -= self.amount + eos.db.commit() + return True + + def Undo(self): + from .fitAddCargo import FitAddCargoCommand # Avoid circular import + cmd = FitAddCargoCommand(self.fitID, self.itemID, self.old_amount, True) + cmd.Do() + return True diff --git a/gui/fitCommands/fitSetCharge.py b/gui/fitCommands/fitSetCharge.py index 0ae8a80fd..111959a18 100644 --- a/gui/fitCommands/fitSetCharge.py +++ b/gui/fitCommands/fitSetCharge.py @@ -37,7 +37,7 @@ class FitSetChargeCommand(wx.Command): result = False for mod in modules: - if mod.isValidCharge(ammo): + if not mod.isEmpty and mod.isValidCharge(ammo): result = True mod.charge = ammo eos.db.commit() diff --git a/gui/fitCommands/guiAddCargo.py b/gui/fitCommands/guiAddCargo.py new file mode 100644 index 000000000..98491505c --- /dev/null +++ b/gui/fitCommands/guiAddCargo.py @@ -0,0 +1,29 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .fitAddCargo import FitAddCargoCommand + +class GuiAddCargoCommand(wx.Command): + def __init__(self, fitID, itemID): + wx.Command.__init__(self, True, "Cargo Add") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + # can set his up no to not have to set variables on our object + self.cmd = FitAddCargoCommand(fitID, itemID) + + def Do(self): + if self.internal_history.Submit(self.cmd): + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for x in self.internal_history.Commands: + self.internal_history.Undo() + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + diff --git a/gui/fitCommands/guiRemoveCargo.py b/gui/fitCommands/guiRemoveCargo.py new file mode 100644 index 000000000..f86b607d2 --- /dev/null +++ b/gui/fitCommands/guiRemoveCargo.py @@ -0,0 +1,29 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .fitRemoveCargo import FitRemoveCargoCommand + +class GuiRemoveCargoCommand(wx.Command): + def __init__(self, fitID, itemID): + wx.Command.__init__(self, True, "Module Charge Add") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + # can set his up no to not have to set variables on our object + self.cmd = FitRemoveCargoCommand(fitID, itemID, stack=True) + + def Do(self): + if self.internal_history.Submit(self.cmd): + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for x in self.internal_history.Commands: + self.internal_history.Undo() + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + diff --git a/service/fit.py b/service/fit.py index 175292666..746990daf 100644 --- a/service/fit.py +++ b/service/fit.py @@ -672,6 +672,7 @@ class Fit(object): else: return None + @deprecated def moveCargoToModule(self, fitID, moduleIdx, cargoIdx, copyMod=False): """ Moves cargo to fitting window. Can either do a copy, move, or swap with current module @@ -775,6 +776,7 @@ class Fit(object): eos.db.commit() self.recalc(fit) + @deprecated def addCargo(self, fitID, itemID, amount=1, replace=False): """ Adds cargo via typeID of item. If replace = True, we replace amount with @@ -812,6 +814,7 @@ class Fit(object): return True + @deprecated def removeCargo(self, fitID, position): pyfalog.debug("Removing cargo from position ({0}) fit ID: {1}", position, fitID) if fitID is None: From dd430bc9bbe39290a1010ba152a2e3b4dd235ee3 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 27 Jul 2018 23:54:41 -0400 Subject: [PATCH 017/110] Implant and cargo conversions --- gui/builtinAdditionPanes/cargoView.py | 5 ++- gui/builtinAdditionPanes/implantView.py | 11 ++----- gui/builtinContextMenus/amount.py | 5 +-- gui/builtinContextMenus/cargoAmmo.py | 7 ++--- gui/builtinContextMenus/itemRemove.py | 3 +- gui/builtinContextMenus/metaSwap.py | 14 +++++---- gui/fitCommands/__init__.py | 4 ++- gui/fitCommands/fitAddImplant.py | 41 +++++++++++++++++++++++++ gui/fitCommands/fitRemoveImplant.py | 38 +++++++++++++++++++++++ gui/fitCommands/guiAddCargo.py | 4 +-- gui/fitCommands/guiAddImplant.py | 29 +++++++++++++++++ gui/fitCommands/guiRemoveImplant.py | 29 +++++++++++++++++ service/fit.py | 2 ++ 13 files changed, 164 insertions(+), 28 deletions(-) create mode 100644 gui/fitCommands/fitAddImplant.py create mode 100644 gui/fitCommands/fitRemoveImplant.py create mode 100644 gui/fitCommands/guiAddImplant.py create mode 100644 gui/fitCommands/guiRemoveImplant.py diff --git a/gui/builtinAdditionPanes/cargoView.py b/gui/builtinAdditionPanes/cargoView.py index a5b94f31b..2b385c72a 100644 --- a/gui/builtinAdditionPanes/cargoView.py +++ b/gui/builtinAdditionPanes/cargoView.py @@ -26,6 +26,7 @@ import gui.globalEvents as GE from gui.utils.staticHelpers import DragDropHelper from service.fit import Fit from service.market import Market +import gui.fitCommands as cmd class CargoViewDrop(wx.DropTarget): @@ -80,9 +81,7 @@ class CargoView(d.Display): if data[0] == "fitting": self.swapModule(x, y, int(data[1])) elif data[0] == "market": - sFit = Fit.getInstance() - sFit.addCargo(self.mainFrame.getActiveFit(), int(data[1]), 1) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.mainFrame.getActiveFit())) + self.mainFrame.command.Submit(cmd.GuiAddCargoCommand(self.mainFrame.getActiveFit(), int(data[1]))) def startDrag(self, event): row = event.GetIndex() diff --git a/gui/builtinAdditionPanes/implantView.py b/gui/builtinAdditionPanes/implantView.py index b1d7bbe66..7144d6cb5 100644 --- a/gui/builtinAdditionPanes/implantView.py +++ b/gui/builtinAdditionPanes/implantView.py @@ -28,7 +28,7 @@ import gui.globalEvents as GE from eos.saveddata.fit import ImplantLocation from service.fit import Fit from service.market import Market - +import gui.fitCommands as cmd class ImplantView(wx.Panel): def __init__(self, parent): @@ -155,9 +155,7 @@ class ImplantDisplay(d.Display): event.Skip() return - trigger = sFit.addImplant(fitID, event.itemID) - if trigger: - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + if self.mainFrame.command.Submit(cmd.GuiAddImplantCommand(fitID, event.itemID)): self.mainFrame.additionsPane.select("Implants") event.Skip() @@ -175,10 +173,7 @@ class ImplantDisplay(d.Display): def removeImplant(self, implant): fitID = self.mainFrame.getActiveFit() - sFit = Fit.getInstance() - - sFit.removeImplant(fitID, self.original.index(implant)) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.GuiRemoveImplantCommand(fitID, self.original.index(implant))) def click(self, event): event.Skip() diff --git a/gui/builtinContextMenus/amount.py b/gui/builtinContextMenus/amount.py index ed23e606a..eec575f29 100644 --- a/gui/builtinContextMenus/amount.py +++ b/gui/builtinContextMenus/amount.py @@ -9,7 +9,7 @@ from service.fit import Fit from eos.saveddata.cargo import Cargo as es_Cargo from eos.saveddata.fighter import Fighter as es_Fighter from service.settings import ContextMenuSettings - +import gui.fitCommands as cmd class ChangeAmount(ContextMenu): def __init__(self): @@ -45,7 +45,8 @@ class ChangeAmount(ContextMenu): cleanInput = re.sub(r'[^0-9.]', '', dlg.input.GetLineText(0).strip()) if isinstance(thing, es_Cargo): - sFit.addCargo(fitID, thing.item.ID, int(float(cleanInput)), replace=True) + self.mainFrame.command.Submit(cmd.GuiAddCargoCommand(fitID, thing.item.ID, int(float(cleanInput)), replace=True)) + return # no need for post event here elif isinstance(thing, es_Fit): sFit.changeAmount(fitID, thing, int(float(cleanInput))) elif isinstance(thing, es_Fighter): diff --git a/gui/builtinContextMenus/cargoAmmo.py b/gui/builtinContextMenus/cargoAmmo.py index 12ebe552f..e80801975 100644 --- a/gui/builtinContextMenus/cargoAmmo.py +++ b/gui/builtinContextMenus/cargoAmmo.py @@ -4,7 +4,7 @@ import gui.globalEvents as GE import wx from service.settings import ContextMenuSettings from service.fit import Fit - +import gui.fitCommands as cmd class CargoAmmo(ContextMenu): def __init__(self): @@ -28,13 +28,10 @@ class CargoAmmo(ContextMenu): return "Add {0} to Cargo (x1000)".format(itmContext) def activate(self, fullContext, selection, i): - sFit = Fit.getInstance() fitID = self.mainFrame.getActiveFit() - typeID = int(selection[0].ID) - sFit.addCargo(fitID, typeID, 1000) + self.mainFrame.command.Submit(cmd.GuiAddCargoCommand(fitID, typeID, 1000)) self.mainFrame.additionsPane.select("Cargo") - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) CargoAmmo.register() diff --git a/gui/builtinContextMenus/itemRemove.py b/gui/builtinContextMenus/itemRemove.py index 9eb741dda..b3cb414b5 100644 --- a/gui/builtinContextMenus/itemRemove.py +++ b/gui/builtinContextMenus/itemRemove.py @@ -45,7 +45,8 @@ class ItemRemove(ContextMenu): elif srcContext == "fighterItem": sFit.removeFighter(fitID, fit.fighters.index(selection[0])) elif srcContext == "implantItem": - sFit.removeImplant(fitID, fit.implants.index(selection[0])) + self.mainFrame.command.Submit(cmd.GuiRemoveImplantCommand(fitID, fit.implants.index(selection[0]))) + return # the command takes care of the PostEvent elif srcContext == "boosterItem": sFit.removeBooster(fitID, fit.boosters.index(selection[0])) elif srcContext == "cargoItem": diff --git a/gui/builtinContextMenus/metaSwap.py b/gui/builtinContextMenus/metaSwap.py index a5f6371e3..7956848f8 100644 --- a/gui/builtinContextMenus/metaSwap.py +++ b/gui/builtinContextMenus/metaSwap.py @@ -15,7 +15,7 @@ from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter from eos.saveddata.implant import Implant from eos.saveddata.cargo import Cargo - +import gui.fitCommands as cmd class MetaSwap(ContextMenu): def __init__(self): @@ -183,16 +183,18 @@ class MetaSwap(ContextMenu): elif isinstance(selected_item, Implant): for idx, implant_stack in enumerate(fit.implants): if implant_stack is selected_item: - sFit.removeImplant(fitID, idx, False) - sFit.addImplant(fitID, item.ID, True) - break + self.mainFrame.command.Submit(cmd.GuiRemoveImplantCommand(fitID, idx)) + self.mainFrame.command.Submit(cmd.GuiAddImplantCommand(fitID, item.ID)) + return elif isinstance(selected_item, Cargo): for idx, cargo_stack in enumerate(fit.cargo): if cargo_stack is selected_item: + # todo: make a command to change varieance of all items, or maybe per item type, which would + # utilize the two fitting commands that we need to remove then add? sFit.removeCargo(fitID, idx) - sFit.addCargo(fitID, item.ID, cargo_stack.amount, True) - break + self.mainFrame.command.Submit(cmd.GuiAddCargoCommand(fitID, item.ID, cargo_stack.amount, True)) + return # don't need the post event wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index 7e74e568e..c3507a7e6 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -6,4 +6,6 @@ from .moduleSwapOrClone import GuiModuleSwapOrCloneCommand from .guiRemoveCargo import GuiRemoveCargoCommand from .guiAddCargo import GuiAddCargoCommand from .fitAddCargo import FitAddCargoCommand -from .fitRemoveCargo import FitRemoveCargoCommand \ No newline at end of file +from .fitRemoveCargo import FitRemoveCargoCommand +from .guiRemoveImplant import GuiRemoveImplantCommand +from .guiAddImplant import GuiAddImplantCommand \ No newline at end of file diff --git a/gui/fitCommands/fitAddImplant.py b/gui/fitCommands/fitAddImplant.py new file mode 100644 index 000000000..91bc5be61 --- /dev/null +++ b/gui/fitCommands/fitAddImplant.py @@ -0,0 +1,41 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) +from eos.saveddata.implant import Implant + +class FitAddImplantCommand(wx.Command): + """" + from sFit.addImplant + """ + def __init__(self, fitID, itemID): + wx.Command.__init__(self, True, "Cargo add") + self.fitID = fitID + self.itemID = itemID + + def Do(self): + pyfalog.debug("Adding implant to fit ({0}) for item ID: {1}", self.fitID, self.itemID) + + fit = eos.db.getFit(self.fitID) + item = eos.db.getItem(self.itemID, eager="attributes") + try: + implant = Implant(item) + except ValueError: + pyfalog.warning("Invalid item: {0}", self.itemID) + return False + + fit.implants.append(implant) + self.new_index = fit.implants.index(implant) + return True + + def Undo(self): + from .fitRemoveImplant import FitRemoveImplantCommand # Avoid circular import + cmd = FitRemoveImplantCommand(self.fitID, self.new_index) + cmd.Do() + return True diff --git a/gui/fitCommands/fitRemoveImplant.py b/gui/fitCommands/fitRemoveImplant.py new file mode 100644 index 000000000..509bbd40d --- /dev/null +++ b/gui/fitCommands/fitRemoveImplant.py @@ -0,0 +1,38 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) + + +class FitRemoveImplantCommand(wx.Command): + """" + Fitting command that sets the amount for an item within the cargo. + + from sFit.removeImplant + """ + def __init__(self, fitID, position): + wx.Command.__init__(self, True, "Implant remove") + self.fitID = fitID + self.position = position + self.old_implant = None + + def Do(self): + pyfalog.debug("Removing implant from position ({0}) for fit ID: {1}", self.position, self.fitID) + + fit = eos.db.getFit(self.fitID) + implant = fit.implants[self.position] + self.old_implant = implant.itemID + fit.implants.remove(implant) + return True + + def Undo(self): + from .fitAddImplant import FitAddImplantCommand # Avoid circular import + cmd = FitAddImplantCommand(self.fitID, self.old_implant) + cmd.Do() + return True diff --git a/gui/fitCommands/guiAddCargo.py b/gui/fitCommands/guiAddCargo.py index 98491505c..dbff1360c 100644 --- a/gui/fitCommands/guiAddCargo.py +++ b/gui/fitCommands/guiAddCargo.py @@ -6,14 +6,14 @@ from gui import globalEvents as GE from .fitAddCargo import FitAddCargoCommand class GuiAddCargoCommand(wx.Command): - def __init__(self, fitID, itemID): + def __init__(self, fitID, itemID, amount=1, replace=False): wx.Command.__init__(self, True, "Cargo Add") self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.sFit = Fit.getInstance() self.internal_history = wx.CommandProcessor() self.fitID = fitID # can set his up no to not have to set variables on our object - self.cmd = FitAddCargoCommand(fitID, itemID) + self.cmd = FitAddCargoCommand(fitID, itemID, amount, replace) def Do(self): if self.internal_history.Submit(self.cmd): diff --git a/gui/fitCommands/guiAddImplant.py b/gui/fitCommands/guiAddImplant.py new file mode 100644 index 000000000..b01023aa3 --- /dev/null +++ b/gui/fitCommands/guiAddImplant.py @@ -0,0 +1,29 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .fitAddImplant import FitAddImplantCommand + +class GuiAddImplantCommand(wx.Command): + def __init__(self, fitID, itemID): + wx.Command.__init__(self, True, "Implant Add") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + # can set his up no to not have to set variables on our object + self.cmd = FitAddImplantCommand(fitID, itemID) + + def Do(self): + if self.internal_history.Submit(self.cmd): + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for x in self.internal_history.Commands: + self.internal_history.Undo() + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + diff --git a/gui/fitCommands/guiRemoveImplant.py b/gui/fitCommands/guiRemoveImplant.py new file mode 100644 index 000000000..ebe906a35 --- /dev/null +++ b/gui/fitCommands/guiRemoveImplant.py @@ -0,0 +1,29 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .fitRemoveImplant import FitRemoveImplantCommand + +class GuiRemoveImplantCommand(wx.Command): + def __init__(self, fitID, position): + wx.Command.__init__(self, True, "") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + # can set his up no to not have to set variables on our object + self.cmd = FitRemoveImplantCommand(fitID, position) + + def Do(self): + if self.internal_history.Submit(self.cmd): + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for x in self.internal_history.Commands: + self.internal_history.Undo() + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + diff --git a/service/fit.py b/service/fit.py index 746990daf..c63ce4205 100644 --- a/service/fit.py +++ b/service/fit.py @@ -319,6 +319,7 @@ class Fit(object): fit.notes)) return fits + @deprecated def addImplant(self, fitID, itemID, recalc=True): pyfalog.debug("Adding implant to fit ({0}) for item ID: {1}", fitID, itemID) if fitID is None: @@ -337,6 +338,7 @@ class Fit(object): self.recalc(fit) return True + @deprecated def removeImplant(self, fitID, position, recalc=True): pyfalog.debug("Removing implant from position ({0}) for fit ID: {1}", position, fitID) if fitID is None: From 984978a80d577b7b945f02fc400d85da87613739 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 28 Jul 2018 00:06:44 -0400 Subject: [PATCH 018/110] move some files around and create a context manager for fit recalclation --- gui/builtinViews/fittingView.py | 10 +- gui/fitCommands/__init__.py | 14 ++- gui/fitCommands/calc/__init__.py | 0 gui/fitCommands/{ => calc}/fitAddCargo.py | 0 gui/fitCommands/{ => calc}/fitAddImplant.py | 0 gui/fitCommands/{ => calc}/fitAddModule.py | 0 gui/fitCommands/{ => calc}/fitChangeState.py | 0 gui/fitCommands/{ => calc}/fitCloneModule.py | 0 gui/fitCommands/{ => calc}/fitRemoveCargo.py | 6 +- .../{ => calc}/fitRemoveImplant.py | 6 +- gui/fitCommands/{ => calc}/fitRemoveModule.py | 8 +- .../{ => calc}/fitReplaceModule.py | 2 +- gui/fitCommands/{ => calc}/fitSetCharge.py | 0 gui/fitCommands/{ => calc}/fitSwapModule.py | 0 gui/fitCommands/cargoToModule.py | 100 ++++++++++++++++++ gui/fitCommands/guiAddCargo.py | 2 +- .../{moduleAddCharge.py => guiAddCharge.py} | 2 +- gui/fitCommands/guiAddImplant.py | 2 +- .../{moduleAdd.py => guiAddModule.py} | 5 +- gui/fitCommands/guiRemoveCargo.py | 2 +- gui/fitCommands/guiRemoveImplant.py | 2 +- .../{moduleRemove.py => guiRemoveModule.py} | 2 +- ...leSwapOrClone.py => guiSwapCloneModule.py} | 4 +- ...StateChange.py => guiToggleModuleState.py} | 2 +- service/fit.py | 14 +++ 25 files changed, 143 insertions(+), 40 deletions(-) create mode 100644 gui/fitCommands/calc/__init__.py rename gui/fitCommands/{ => calc}/fitAddCargo.py (100%) rename gui/fitCommands/{ => calc}/fitAddImplant.py (100%) rename gui/fitCommands/{ => calc}/fitAddModule.py (100%) rename gui/fitCommands/{ => calc}/fitChangeState.py (100%) rename gui/fitCommands/{ => calc}/fitCloneModule.py (100%) rename gui/fitCommands/{ => calc}/fitRemoveCargo.py (87%) rename gui/fitCommands/{ => calc}/fitRemoveImplant.py (81%) rename gui/fitCommands/{ => calc}/fitRemoveModule.py (86%) rename gui/fitCommands/{ => calc}/fitReplaceModule.py (98%) rename gui/fitCommands/{ => calc}/fitSetCharge.py (100%) rename gui/fitCommands/{ => calc}/fitSwapModule.py (100%) create mode 100644 gui/fitCommands/cargoToModule.py rename gui/fitCommands/{moduleAddCharge.py => guiAddCharge.py} (94%) rename gui/fitCommands/{moduleAdd.py => guiAddModule.py} (93%) rename gui/fitCommands/{moduleRemove.py => guiRemoveModule.py} (96%) rename gui/fitCommands/{moduleSwapOrClone.py => guiSwapCloneModule.py} (91%) rename gui/fitCommands/{moduleStateChange.py => guiToggleModuleState.py} (95%) diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index f57d54adc..247003b55 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -436,10 +436,14 @@ class FittingView(d.Display): fit = sFit.getFit(self.activeFitID) typeID = fit.cargo[srcIdx].item.ID - sFit.moveCargoToModule(self.mainFrame.getActiveFit(), module.modPosition, srcIdx, - mstate.CmdDown() and module.isEmpty) + self.mainFrame.command.Submit(cmd.GuiCargoToModuleCommand( + self.mainFrame.getActiveFit(), + module.modPosition, + srcIdx, + mstate.CmdDown() and module.isEmpty)) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.mainFrame.getActiveFit(), action="modadd", typeID=typeID)) + + # wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.mainFrame.getActiveFit(), action="modadd", typeID=typeID)) def swapItems(self, x, y, srcIdx): """Swap two modules in fitting window""" diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index c3507a7e6..89a74b369 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -1,11 +1,9 @@ -from .moduleStateChange import GuiModuleStateChangeCommand -from .moduleAdd import GuiModuleAddCommand -from .moduleRemove import GuiModuleRemoveCommand -from .moduleAddCharge import GuiModuleAddChargeCommand -from .moduleSwapOrClone import GuiModuleSwapOrCloneCommand +from .guiToggleModuleState import GuiModuleStateChangeCommand +from .guiAddModule import GuiModuleAddCommand +from .guiRemoveModule import GuiModuleRemoveCommand +from .guiAddCharge import GuiModuleAddChargeCommand +from .guiSwapCloneModule import GuiModuleSwapOrCloneCommand from .guiRemoveCargo import GuiRemoveCargoCommand from .guiAddCargo import GuiAddCargoCommand -from .fitAddCargo import FitAddCargoCommand -from .fitRemoveCargo import FitRemoveCargoCommand from .guiRemoveImplant import GuiRemoveImplantCommand -from .guiAddImplant import GuiAddImplantCommand \ No newline at end of file +from .guiAddImplant import GuiAddImplantCommand diff --git a/gui/fitCommands/calc/__init__.py b/gui/fitCommands/calc/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/gui/fitCommands/fitAddCargo.py b/gui/fitCommands/calc/fitAddCargo.py similarity index 100% rename from gui/fitCommands/fitAddCargo.py rename to gui/fitCommands/calc/fitAddCargo.py diff --git a/gui/fitCommands/fitAddImplant.py b/gui/fitCommands/calc/fitAddImplant.py similarity index 100% rename from gui/fitCommands/fitAddImplant.py rename to gui/fitCommands/calc/fitAddImplant.py diff --git a/gui/fitCommands/fitAddModule.py b/gui/fitCommands/calc/fitAddModule.py similarity index 100% rename from gui/fitCommands/fitAddModule.py rename to gui/fitCommands/calc/fitAddModule.py diff --git a/gui/fitCommands/fitChangeState.py b/gui/fitCommands/calc/fitChangeState.py similarity index 100% rename from gui/fitCommands/fitChangeState.py rename to gui/fitCommands/calc/fitChangeState.py diff --git a/gui/fitCommands/fitCloneModule.py b/gui/fitCommands/calc/fitCloneModule.py similarity index 100% rename from gui/fitCommands/fitCloneModule.py rename to gui/fitCommands/calc/fitCloneModule.py diff --git a/gui/fitCommands/fitRemoveCargo.py b/gui/fitCommands/calc/fitRemoveCargo.py similarity index 87% rename from gui/fitCommands/fitRemoveCargo.py rename to gui/fitCommands/calc/fitRemoveCargo.py index 41fb57b9e..6b92278b3 100644 --- a/gui/fitCommands/fitRemoveCargo.py +++ b/gui/fitCommands/calc/fitRemoveCargo.py @@ -1,10 +1,6 @@ import wx -from service.fit import Fit -import gui.mainFrame -from gui import globalEvents as GE #from .helpers import ModuleInfoCache -from eos.saveddata.module import Module, State import eos.db from logbook import Logger pyfalog = Logger(__name__) @@ -47,7 +43,7 @@ class FitRemoveCargoCommand(wx.Command): return True def Undo(self): - from .fitAddCargo import FitAddCargoCommand # Avoid circular import + from gui.fitCommands.calc.fitAddCargo import FitAddCargoCommand # Avoid circular import cmd = FitAddCargoCommand(self.fitID, self.itemID, self.old_amount, True) cmd.Do() return True diff --git a/gui/fitCommands/fitRemoveImplant.py b/gui/fitCommands/calc/fitRemoveImplant.py similarity index 81% rename from gui/fitCommands/fitRemoveImplant.py rename to gui/fitCommands/calc/fitRemoveImplant.py index 509bbd40d..2a834878a 100644 --- a/gui/fitCommands/fitRemoveImplant.py +++ b/gui/fitCommands/calc/fitRemoveImplant.py @@ -1,10 +1,6 @@ import wx -from service.fit import Fit -import gui.mainFrame -from gui import globalEvents as GE #from .helpers import ModuleInfoCache -from eos.saveddata.module import Module, State import eos.db from logbook import Logger pyfalog = Logger(__name__) @@ -32,7 +28,7 @@ class FitRemoveImplantCommand(wx.Command): return True def Undo(self): - from .fitAddImplant import FitAddImplantCommand # Avoid circular import + from gui.fitCommands.calc.fitAddImplant import FitAddImplantCommand # Avoid circular import cmd = FitAddImplantCommand(self.fitID, self.old_implant) cmd.Do() return True diff --git a/gui/fitCommands/fitRemoveModule.py b/gui/fitCommands/calc/fitRemoveModule.py similarity index 86% rename from gui/fitCommands/fitRemoveModule.py rename to gui/fitCommands/calc/fitRemoveModule.py index 02d4c193b..876545718 100644 --- a/gui/fitCommands/fitRemoveModule.py +++ b/gui/fitCommands/calc/fitRemoveModule.py @@ -1,10 +1,6 @@ import wx -from service.fit import Fit -import gui.mainFrame -from gui import globalEvents as GE -from .helpers import ModuleInfoCache -from eos.saveddata.module import Module, State +from gui.fitCommands.helpers import ModuleInfoCache import eos.db from logbook import Logger pyfalog = Logger(__name__) @@ -48,7 +44,7 @@ class FitRemoveModuleCommand(wx.Command): return True def Undo(self): - from .fitAddModule import FitAddModuleCommand # avoids circular import + from gui.fitCommands.calc.fitAddModule import FitAddModuleCommand # avoids circular import for mod in self.modCache: cmd = FitAddModuleCommand(self.fitID, mod.itemID) cmd.Do() diff --git a/gui/fitCommands/fitReplaceModule.py b/gui/fitCommands/calc/fitReplaceModule.py similarity index 98% rename from gui/fitCommands/fitReplaceModule.py rename to gui/fitCommands/calc/fitReplaceModule.py index 0d9900b0e..9b1ecf2e3 100644 --- a/gui/fitCommands/fitReplaceModule.py +++ b/gui/fitCommands/calc/fitReplaceModule.py @@ -3,7 +3,7 @@ from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE -from .helpers import ModuleInfoCache +from gui.fitCommands.helpers import ModuleInfoCache from eos.saveddata.module import Module, State import eos.db from logbook import Logger diff --git a/gui/fitCommands/fitSetCharge.py b/gui/fitCommands/calc/fitSetCharge.py similarity index 100% rename from gui/fitCommands/fitSetCharge.py rename to gui/fitCommands/calc/fitSetCharge.py diff --git a/gui/fitCommands/fitSwapModule.py b/gui/fitCommands/calc/fitSwapModule.py similarity index 100% rename from gui/fitCommands/fitSwapModule.py rename to gui/fitCommands/calc/fitSwapModule.py diff --git a/gui/fitCommands/cargoToModule.py b/gui/fitCommands/cargoToModule.py new file mode 100644 index 000000000..df47cac03 --- /dev/null +++ b/gui/fitCommands/cargoToModule.py @@ -0,0 +1,100 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from gui.fitCommands.calc.fitSetCharge import FitSetChargeCommand +from logbook import Logger +pyfalog = Logger(__name__) + +class GuiCargoToModuleCommand(wx.Command): + """ + Moves cargo to fitting window. Can either do a copy, move, or swap with current module + If we try to copy/move into a spot with a non-empty module, we swap instead. + To avoid redundancy in converting Cargo item, this function does the + sanity checks as opposed to the GUI View. This is different than how the + normal .swapModules() does things, which is mostly a blind swap. + """ + + def __init__(self, fitID, moduleIdx, cargoIdx, copy=False): + # todo: instead of modules, needs to be positions. Dead objects are a thing + wx.Command.__init__(self, True, "Module State Change") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.fitID = fitID + self.moduleIdx = moduleIdx + self.cargoIdx = cargoIdx + self.copy = copy + self.internal_history = wx.CommandProcessor() + + def Do(self): + sFit = Fit.getInstance() + fit = sFit.getFit(self.fitID) + module = fit.modules[self.moduleIdx] + cargo = fit.cargo[self.cargoIdx] + result = None + + # We're trying to move a charge from cargo to a slot. Use SetCharge command (don't respect move vs copy) + if sFit.isAmmo(cargo.item.ID): + result = self.internal_history.Submit(FitSetChargeCommand(self.fitID, [module], cargo.item.ID)) + # else: + # + # pyfalog.debug("Moving cargo item to module for fit ID: {0}", self.fitID) + # + # # Gather modules and convert Cargo item to Module, silently return if not a module + # try: + # cargoP = es_Module(cargo.item) + # cargoP.owner = fit + # if cargoP.isValidState(State.ACTIVE): + # cargoP.state = State.ACTIVE + # except: + # pyfalog.warning("Invalid item: {0}", cargo.item) + # return + # + # if cargoP.slot != module.slot: # can't swap modules to different racks + # return + # + # # remove module that we are trying to move cargo to + # fit.modules.remove(module) + # + # if not cargoP.fits(fit): # if cargo doesn't fit, rollback and return + # fit.modules.insert(moduleIdx, module) + # return + # + # fit.modules.insert(moduleIdx, cargoP) + # + # if not copyMod: # remove existing cargo if not cloning + # if cargo.amount == 1: + # fit.cargo.remove(cargo) + # else: + # cargo.amount -= 1 + # + # if not module.isEmpty: # if module is placeholder, we don't want to convert/add it + # moduleItem = module.item if not module.item.isAbyssal else module.baseItem + # for x in fit.cargo.find(moduleItem): + # x.amount += 1 + # break + # else: + # moduleP = es_Cargo(moduleItem) + # moduleP.amount = 1 + # fit.cargo.insert(cargoIdx, moduleP) + # + # eos.db.commit() + # self.recalc(fit) + # # + # # + # # + # # if self.clone: + # # result = self.internal_history.Submit(FitCloneModduleCommand(self.fitID, self.srcPosition, self.dstPosition)) + # # else: + # # result = self.internal_history.Submit(FitSwapModuleCommand(self.fitID, self.srcPosition, self.dstPosition)) + + if result: + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return result + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True diff --git a/gui/fitCommands/guiAddCargo.py b/gui/fitCommands/guiAddCargo.py index dbff1360c..db923c7d1 100644 --- a/gui/fitCommands/guiAddCargo.py +++ b/gui/fitCommands/guiAddCargo.py @@ -3,7 +3,7 @@ from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE -from .fitAddCargo import FitAddCargoCommand +from .calc.fitAddCargo import FitAddCargoCommand class GuiAddCargoCommand(wx.Command): def __init__(self, fitID, itemID, amount=1, replace=False): diff --git a/gui/fitCommands/moduleAddCharge.py b/gui/fitCommands/guiAddCharge.py similarity index 94% rename from gui/fitCommands/moduleAddCharge.py rename to gui/fitCommands/guiAddCharge.py index 7dd4ba6ec..49b2a1680 100644 --- a/gui/fitCommands/moduleAddCharge.py +++ b/gui/fitCommands/guiAddCharge.py @@ -3,7 +3,7 @@ from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE -from .fitSetCharge import FitSetChargeCommand +from .calc.fitSetCharge import FitSetChargeCommand class GuiModuleAddChargeCommand(wx.Command): def __init__(self, fitID, itemID, modules): diff --git a/gui/fitCommands/guiAddImplant.py b/gui/fitCommands/guiAddImplant.py index b01023aa3..33495398d 100644 --- a/gui/fitCommands/guiAddImplant.py +++ b/gui/fitCommands/guiAddImplant.py @@ -3,7 +3,7 @@ from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE -from .fitAddImplant import FitAddImplantCommand +from .calc.fitAddImplant import FitAddImplantCommand class GuiAddImplantCommand(wx.Command): def __init__(self, fitID, itemID): diff --git a/gui/fitCommands/moduleAdd.py b/gui/fitCommands/guiAddModule.py similarity index 93% rename from gui/fitCommands/moduleAdd.py rename to gui/fitCommands/guiAddModule.py index e035dbfd0..20a27e23d 100644 --- a/gui/fitCommands/moduleAdd.py +++ b/gui/fitCommands/guiAddModule.py @@ -3,9 +3,8 @@ from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE -from .helpers import ModuleInfoCache -from .fitAddModule import FitAddModuleCommand -from .fitReplaceModule import FitReplaceModuleCommand +from .calc.fitAddModule import FitAddModuleCommand +from .calc.fitReplaceModule import FitReplaceModuleCommand class GuiModuleAddCommand(wx.Command): def __init__(self, fitID, itemID, position=None): diff --git a/gui/fitCommands/guiRemoveCargo.py b/gui/fitCommands/guiRemoveCargo.py index f86b607d2..210252418 100644 --- a/gui/fitCommands/guiRemoveCargo.py +++ b/gui/fitCommands/guiRemoveCargo.py @@ -3,7 +3,7 @@ from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE -from .fitRemoveCargo import FitRemoveCargoCommand +from .calc.fitRemoveCargo import FitRemoveCargoCommand class GuiRemoveCargoCommand(wx.Command): def __init__(self, fitID, itemID): diff --git a/gui/fitCommands/guiRemoveImplant.py b/gui/fitCommands/guiRemoveImplant.py index ebe906a35..af96355a4 100644 --- a/gui/fitCommands/guiRemoveImplant.py +++ b/gui/fitCommands/guiRemoveImplant.py @@ -3,7 +3,7 @@ from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE -from .fitRemoveImplant import FitRemoveImplantCommand +from .calc.fitRemoveImplant import FitRemoveImplantCommand class GuiRemoveImplantCommand(wx.Command): def __init__(self, fitID, position): diff --git a/gui/fitCommands/moduleRemove.py b/gui/fitCommands/guiRemoveModule.py similarity index 96% rename from gui/fitCommands/moduleRemove.py rename to gui/fitCommands/guiRemoveModule.py index bcf2cf139..32dc8cedc 100644 --- a/gui/fitCommands/moduleRemove.py +++ b/gui/fitCommands/guiRemoveModule.py @@ -5,7 +5,7 @@ import gui.mainFrame from gui import globalEvents as GE from .helpers import ModuleInfoCache -from .fitRemoveModule import FitRemoveModuleCommand +from .calc.fitRemoveModule import FitRemoveModuleCommand class GuiModuleRemoveCommand(wx.Command): diff --git a/gui/fitCommands/moduleSwapOrClone.py b/gui/fitCommands/guiSwapCloneModule.py similarity index 91% rename from gui/fitCommands/moduleSwapOrClone.py rename to gui/fitCommands/guiSwapCloneModule.py index 799b7a915..bc283943c 100644 --- a/gui/fitCommands/moduleSwapOrClone.py +++ b/gui/fitCommands/guiSwapCloneModule.py @@ -3,8 +3,8 @@ from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE -from .fitSwapModule import FitSwapModuleCommand -from .fitCloneModule import FitCloneModduleCommand +from gui.fitCommands.calc.fitSwapModule import FitSwapModuleCommand +from .calc.fitCloneModule import FitCloneModduleCommand class GuiModuleSwapOrCloneCommand(wx.Command): def __init__(self, fitID, srcPosition, dstPosition, clone=False): diff --git a/gui/fitCommands/moduleStateChange.py b/gui/fitCommands/guiToggleModuleState.py similarity index 95% rename from gui/fitCommands/moduleStateChange.py rename to gui/fitCommands/guiToggleModuleState.py index 167777bd1..0f2344e64 100644 --- a/gui/fitCommands/moduleStateChange.py +++ b/gui/fitCommands/guiToggleModuleState.py @@ -3,7 +3,7 @@ from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE -from .fitChangeState import FitChangeStatesCommand +from .calc.fitChangeState import FitChangeStatesCommand class GuiModuleStateChangeCommand(wx.Command): def __init__(self, fitID, baseMod, modules, click): diff --git a/service/fit.py b/service/fit.py index c63ce4205..016f5989a 100644 --- a/service/fit.py +++ b/service/fit.py @@ -41,6 +41,20 @@ from utils.deprecated import deprecated pyfalog = Logger(__name__) +class DeferRecalc(): + def __init__(self, fitID): + self.fitID = fitID + self.sFit = Fit.getInstance() + + def __enter__(self): + self._recalc = self.sFit.recalc + self.sFit.recalc = lambda x: print('Deferred Recalc') + + def __exit__(self, *args): + self.sFit.recalc = self._recalc + self.sFit.recalc(self.fitID) + + class Fit(object): instance = None From cfb7a70da565c669617f9f74a0b585cdc0179e24 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Mon, 30 Jul 2018 00:05:00 -0400 Subject: [PATCH 019/110] Add recalcs to Add and remove module --- gui/fitCommands/guiAddModule.py | 5 +++-- gui/fitCommands/guiRemoveModule.py | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/gui/fitCommands/guiAddModule.py b/gui/fitCommands/guiAddModule.py index 20a27e23d..5abf52651 100644 --- a/gui/fitCommands/guiAddModule.py +++ b/gui/fitCommands/guiAddModule.py @@ -1,5 +1,4 @@ import wx -from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE @@ -22,7 +21,7 @@ class GuiModuleAddCommand(wx.Command): success = False # if we have a position set, try to apply the module to that position - # todo: check to see if item is a charge. if it is, dont try to add module, but instead set amm + # todo: check to see if item is a charge. if it is, dont try to add module, but instead set ammo if self.new_position: success = self.internal_history.Submit(FitReplaceModuleCommand(self.fitID, self.new_position, self.itemID)) if not success: @@ -34,6 +33,7 @@ class GuiModuleAddCommand(wx.Command): success = self.internal_history.Submit(FitAddModuleCommand(self.fitID, self.itemID)) if success: + self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="modadd", typeID=self.itemID)) return True return False @@ -48,5 +48,6 @@ class GuiModuleAddCommand(wx.Command): def Undo(self): for _ in self.internal_history.Commands: self.internal_history.Undo() + self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="moddel", typeID=self.itemID)) return True diff --git a/gui/fitCommands/guiRemoveModule.py b/gui/fitCommands/guiRemoveModule.py index 32dc8cedc..9c7c5eef6 100644 --- a/gui/fitCommands/guiRemoveModule.py +++ b/gui/fitCommands/guiRemoveModule.py @@ -24,11 +24,13 @@ class GuiModuleRemoveCommand(wx.Command): if success is not None: # self.slotsChanged() # todo: fix + self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="moddel", typeID=set([mod.itemID for mod in self.modCache]))) return True def Undo(self): for x in self.internal_history.Commands: self.internal_history.Undo() + self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="modadd", typeID=set([mod.itemID for mod in self.modCache]))) return True From 098f0f92ee7d3d96eb69074c6353d63752dc0e82 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Tue, 31 Jul 2018 21:29:59 -0400 Subject: [PATCH 020/110] Fix issue with layout-modifying modules (need to build fill() into the recalc itself at some point) --- eos/saveddata/fit.py | 4 +++- gui/fitCommands/guiAddModule.py | 1 + service/fit.py | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 8f5cc2b36..62eaa2bb1 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -35,7 +35,6 @@ from eos.saveddata.character import Character from eos.saveddata.citadel import Citadel from eos.saveddata.module import Module, State, Slot, Hardpoint from logbook import Logger - pyfalog = Logger(__name__) @@ -913,6 +912,9 @@ class Fit(object): Fill this fit's module slots with enough dummy slots so that all slots are used. This is mostly for making the life of gui's easier. GUI's can call fill() and then stop caring about empty slots completely. + + todo: want to get rid of using this from the gui/commands, and instead make it a more built-in feature within + recalc. Figure out a way to keep track of any changes to slot layout and call this automatically """ if self.ship is None: return diff --git a/gui/fitCommands/guiAddModule.py b/gui/fitCommands/guiAddModule.py index 5abf52651..dad2780e1 100644 --- a/gui/fitCommands/guiAddModule.py +++ b/gui/fitCommands/guiAddModule.py @@ -4,6 +4,7 @@ import gui.mainFrame from gui import globalEvents as GE from .calc.fitAddModule import FitAddModuleCommand from .calc.fitReplaceModule import FitReplaceModuleCommand +from service.fit import Fit class GuiModuleAddCommand(wx.Command): def __init__(self, fitID, itemID, position=None): diff --git a/service/fit.py b/service/fit.py index 016f5989a..d3ed7d9c7 100644 --- a/service/fit.py +++ b/service/fit.py @@ -1256,5 +1256,5 @@ class Fit(object): fit.clear() fit.calculateModifiedAttributes() - + fit.fill() pyfalog.info("=" * 10 + "recalc time: " + str(time() - start_time) + "=" * 10) From fc153915b6adb64302a6acfacfbe80d25f98e879 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Thu, 2 Aug 2018 02:06:03 -0400 Subject: [PATCH 021/110] More work on commands, this time focusing on details with module add / remove functionalities. --- gui/fitCommands/calc/fitAddModule.py | 11 +++++-- gui/fitCommands/calc/fitRemoveModule.py | 9 ++--- gui/fitCommands/calc/fitReplaceModule.py | 21 ++++++++---- gui/fitCommands/calc/fitSetCharge.py | 26 ++++++++------- gui/fitCommands/guiAddCharge.py | 6 ++-- gui/fitCommands/guiAddModule.py | 42 ++++++++++++++---------- gui/fitCommands/guiRemoveModule.py | 15 +++++---- gui/fitCommands/helpers.py | 2 +- 8 files changed, 80 insertions(+), 52 deletions(-) diff --git a/gui/fitCommands/calc/fitAddModule.py b/gui/fitCommands/calc/fitAddModule.py index 8ff72ab74..39dabf7e1 100644 --- a/gui/fitCommands/calc/fitAddModule.py +++ b/gui/fitCommands/calc/fitAddModule.py @@ -16,10 +16,12 @@ class FitAddModuleCommand(wx.Command): from sFit.appendModule """ - def __init__(self, fitID, itemID): + def __init__(self, fitID, itemID, mutaplasmidID=None, baseID=None): wx.Command.__init__(self, True, "Module Add") self.fitID = fitID self.itemID = itemID + self.mutaplasmidID = mutaplasmidID + self.baseID = baseID self.new_position = None self.change = None @@ -30,8 +32,11 @@ class FitAddModuleCommand(wx.Command): fit = eos.db.getFit(fitID) item = eos.db.getItem(itemID, eager=("attributes", "group.category")) + bItem = eos.db.getItem(self.baseID) if self.baseID else None + mItem = next((x for x in bItem.mutaplasmids if x.ID == self.mutaplasmidID)) if self.mutaplasmidID else None + try: - self.module = Module(item) + self.module = Module(item, bItem, mItem) except ValueError: pyfalog.warning("Invalid item: {0}", itemID) return False @@ -52,7 +57,7 @@ class FitAddModuleCommand(wx.Command): # Then, check states of all modules and change where needed. This will recalc if needed # self.checkStates(fit, m) - fit.fill() + #fit.fill() eos.db.commit() self.change = numSlots != len(fit.modules) diff --git a/gui/fitCommands/calc/fitRemoveModule.py b/gui/fitCommands/calc/fitRemoveModule.py index 876545718..9eb2e013a 100644 --- a/gui/fitCommands/calc/fitRemoveModule.py +++ b/gui/fitCommands/calc/fitRemoveModule.py @@ -27,10 +27,10 @@ class FitRemoveModuleCommand(wx.Command): for x in self.positions: mod = fit.modules[x] if not mod.isEmpty: - self.modCache.append(ModuleInfoCache(mod.modPosition, mod.item.ID, mod.state, mod.charge)) + self.modCache.append(ModuleInfoCache(mod.modPosition, mod.item.ID, mod.state, mod.charge, mod.baseItemID, mod.mutaplasmidID)) fit.modules.toDummy(x) - # if no modules have changes, report back None + # if no modules have changes, skip command if not len(self.modCache) > 0: return False @@ -38,7 +38,7 @@ class FitRemoveModuleCommand(wx.Command): # todo: determine if we need to do this still # self.recalc(fit) # self.checkStates(fit, None) - fit.fill() + # fit.fill() eos.db.commit() self.slotsChanged = numSlots != len(fit.modules) return True @@ -46,7 +46,8 @@ class FitRemoveModuleCommand(wx.Command): def Undo(self): from gui.fitCommands.calc.fitAddModule import FitAddModuleCommand # avoids circular import for mod in self.modCache: - cmd = FitAddModuleCommand(self.fitID, mod.itemID) + # todo, send the state and charge? + cmd = FitAddModuleCommand(self.fitID, mod.itemID, mod.mutaplasmidID, mod.baseID) cmd.Do() cmd.module.state = mod.state cmd.module.charge = mod.charge diff --git a/gui/fitCommands/calc/fitReplaceModule.py b/gui/fitCommands/calc/fitReplaceModule.py index 9b1ecf2e3..ddfd2c770 100644 --- a/gui/fitCommands/calc/fitReplaceModule.py +++ b/gui/fitCommands/calc/fitReplaceModule.py @@ -28,7 +28,12 @@ class FitReplaceModuleCommand(wx.Command): return self.change_module(self.fitID, self.position, self.itemID) def Undo(self): - self.change_module(self.fitID, self.position, self.itemID) + if self.old_module is None: + fit = eos.db.getFit(self.fitID) + fit.modules.toDummy(self.position) + return True + + self.change_module(self.fitID, self.position, self.old_module.itemID) self.module.state = self.old_module.state self.module.charge = self.old_module.charge return True @@ -51,10 +56,8 @@ class FitReplaceModuleCommand(wx.Command): item = eos.db.getItem(itemID, eager=("attributes", "group.category")) mod = fit.modules[self.position] - self.old_module.append(ModuleInfoCache(mod.modPosition, mod.item.ID, mod.state, mod.charge)) - - # Dummy it out in case the next bit fails - fit.modules.toDummy(self.position) + if not mod.isEmpty: + self.old_module = ModuleInfoCache(mod.modPosition, mod.item.ID, mod.state, mod.charge, mod.baseItemID, mod.mutaplasmidID) try: self.module = Module(item) @@ -62,6 +65,12 @@ class FitReplaceModuleCommand(wx.Command): pyfalog.warning("Invalid item: {0}", itemID) return False + if self.module.slot != mod.slot: + return False + + # Dummy it out in case the next bit fails + fit.modules.toDummy(self.position) + if self.module.fits(fit): self.module.owner = fit fit.modules.toModule(self.position, self.module) @@ -71,7 +80,7 @@ class FitReplaceModuleCommand(wx.Command): # Then, check states of all modules and change where needed. This will recalc if needed # self.checkStates(fit, m) - fit.fill() + # fit.fill() eos.db.commit() return True return False diff --git a/gui/fitCommands/calc/fitSetCharge.py b/gui/fitCommands/calc/fitSetCharge.py index 111959a18..e97d55adb 100644 --- a/gui/fitCommands/calc/fitSetCharge.py +++ b/gui/fitCommands/calc/fitSetCharge.py @@ -9,34 +9,36 @@ pyfalog = Logger(__name__) import eos.db class FitSetChargeCommand(wx.Command): - def __init__(self, fitID, modules, chargeID=None): + def __init__(self, fitID, positions, chargeID=None): # todo: determine if this command really should be used with a group of modules, or a simple per module basis wx.Command.__init__(self, True, "Module Charge Add") self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.sFit = Fit.getInstance() self.fitID = fitID self.chargeID = chargeID - self.modules = modules - self.positions = {mod.modPosition: mod.chargeID for mod in modules} + self.positions = positions + self.cache = None def Do(self): pyfalog.debug("Set ammo for fit ID: {0}", self.fitID) - if self.fitID is None: - return False - return self.__setAmmo(self.modules, self.chargeID) + return self.__setAmmo(self.positions, self.chargeID) def Undo(self): - fit = eos.db.getFit(self.fitID) - for position, chargeID in self.positions.items(): - self.__setAmmo([fit.modules[position]], chargeID) + for position, chargeID in self.cache.items(): + self.__setAmmo([position], chargeID) return True - @staticmethod - def __setAmmo(modules, chargeID): + def __setAmmo(self, positions, chargeID): + fit = eos.db.getFit(self.fitID) + self.cache = {fit.modules[i].modPosition: fit.modules[i].chargeID for i in positions} ammo = eos.db.getItem(chargeID) if chargeID else None + + if not ammo.isCharge: + return False result = False - for mod in modules: + for pos in positions: + mod = fit.modules[pos] if not mod.isEmpty and mod.isValidCharge(ammo): result = True mod.charge = ammo diff --git a/gui/fitCommands/guiAddCharge.py b/gui/fitCommands/guiAddCharge.py index 49b2a1680..94d7d4249 100644 --- a/gui/fitCommands/guiAddCharge.py +++ b/gui/fitCommands/guiAddCharge.py @@ -13,10 +13,11 @@ class GuiModuleAddChargeCommand(wx.Command): self.internal_history = wx.CommandProcessor() self.fitID = fitID # can set his up no to not have to set variables on our object - self.cmd = FitSetChargeCommand(fitID, modules, itemID) + self.cmd = FitSetChargeCommand(fitID, [mod.modPosition for mod in modules], itemID) def Do(self): if self.internal_history.Submit(self.cmd): + self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True return False @@ -24,6 +25,7 @@ class GuiModuleAddChargeCommand(wx.Command): def Undo(self): for x in self.internal_history.Commands: self.internal_history.Undo() - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True diff --git a/gui/fitCommands/guiAddModule.py b/gui/fitCommands/guiAddModule.py index dad2780e1..06267919f 100644 --- a/gui/fitCommands/guiAddModule.py +++ b/gui/fitCommands/guiAddModule.py @@ -1,36 +1,48 @@ import wx - +import eos.db import gui.mainFrame from gui import globalEvents as GE from .calc.fitAddModule import FitAddModuleCommand from .calc.fitReplaceModule import FitReplaceModuleCommand +from .calc.fitSetCharge import FitSetChargeCommand from service.fit import Fit + class GuiModuleAddCommand(wx.Command): def __init__(self, fitID, itemID, position=None): - wx.Command.__init__(self, True, "Module Add") - # todo: evaluate mutaplasmid modules + """ + Handles adding an item, usually a module, to the Fitting Window. + + :param fitID: The fit ID that we are modifying + :param itemID: The item that is to be added to the Fitting View. If this turns out to be a charge, we attempt to + set the charge on the underlying module (requires position) + :param position: Optional. The position in fit.modules that we are attempting to set the item to + """ + wx.Command.__init__(self, True, "Module Add: {}".format(itemID)) self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.sFit = Fit.getInstance() self.fitID = fitID self.itemID = itemID self.internal_history = wx.CommandProcessor() - self.new_position = position + self.position = position self.old_mod = None def Do(self): success = False - # if we have a position set, try to apply the module to that position - - # todo: check to see if item is a charge. if it is, dont try to add module, but instead set ammo - if self.new_position: - success = self.internal_history.Submit(FitReplaceModuleCommand(self.fitID, self.new_position, self.itemID)) + item = eos.db.getItem(self.itemID) + if item.isCharge and self.position is not None: + success = self.internal_history.Submit(FitSetChargeCommand(self.fitID, [self.position], self.itemID)) if not success: - # something went wrong with trying to fit the module into specific location, attemp to append it - self.new_position = None + return False # if it's a charge item and this failed, nothing more we can try. + # if we have a position set, try to apply the module to that position + elif self.position is not None: + success = self.internal_history.Submit(FitReplaceModuleCommand(self.fitID, self.position, self.itemID)) + if not success: + # something went wrong with trying to fit the module into specific location, attempt to append it + self.position = None # if we're not trying to set module to a position, simply append - if not self.new_position: + if self.position is None: success = self.internal_history.Submit(FitAddModuleCommand(self.fitID, self.itemID)) if success: @@ -39,12 +51,6 @@ class GuiModuleAddCommand(wx.Command): return True return False - # - # if change is not None: - # print('new position: ',self.new_position ) - # # self.slotsChanged() # unsure how to handle this right now? Perhaps move this to the event itself? - # return True - # return False def Undo(self): for _ in self.internal_history.Commands: diff --git a/gui/fitCommands/guiRemoveModule.py b/gui/fitCommands/guiRemoveModule.py index 9c7c5eef6..508c7178b 100644 --- a/gui/fitCommands/guiRemoveModule.py +++ b/gui/fitCommands/guiRemoveModule.py @@ -10,26 +10,29 @@ from .calc.fitRemoveModule import FitRemoveModuleCommand class GuiModuleRemoveCommand(wx.Command): def __init__(self, fitID, modules): - # todo: evaluate mutaplasmid modules + """ + + :param fitID: The fit ID that we are modifying + :param modules: A list of Module objects that we are attempting to remove. + """ wx.Command.__init__(self, True, "Module Remove") self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.sFit = Fit.getInstance() self.fitID = fitID - self.modCache = [ModuleInfoCache(mod.modPosition, mod.item.ID, mod.state, mod.charge) for mod in modules] + self.modCache = [ModuleInfoCache(mod.modPosition, mod.item.ID, mod.state, mod.charge, mod.baseItemID, mod.mutaplasmidID) for mod in modules if not mod.isEmpty] self.internal_history = wx.CommandProcessor() def Do(self): - # todo: what happens when one remove in an array of removes fucks up? (it really shouldn't it's easy peasy) success = self.internal_history.Submit(FitRemoveModuleCommand(self.fitID, [mod.modPosition for mod in self.modCache])) - if success is not None: - # self.slotsChanged() # todo: fix + if success: self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="moddel", typeID=set([mod.itemID for mod in self.modCache]))) return True + return False def Undo(self): - for x in self.internal_history.Commands: + for _ in self.internal_history.Commands: self.internal_history.Undo() self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="modadd", typeID=set([mod.itemID for mod in self.modCache]))) diff --git a/gui/fitCommands/helpers.py b/gui/fitCommands/helpers.py index 81c862193..63aaf4b76 100644 --- a/gui/fitCommands/helpers.py +++ b/gui/fitCommands/helpers.py @@ -1,3 +1,3 @@ from collections import namedtuple -ModuleInfoCache = namedtuple('ModuleInfoCache', ['modPosition', 'itemID', 'state', 'charge']) +ModuleInfoCache = namedtuple('ModuleInfoCache', ['modPosition', 'itemID', 'state', 'charge', 'baseID', 'mutaplasmidID']) From 36b158637c9e015c019db027dc8e85f448fa147d Mon Sep 17 00:00:00 2001 From: blitzmann Date: Thu, 2 Aug 2018 23:23:52 -0400 Subject: [PATCH 022/110] Some documentation --- eos/effectHandlerHelpers.py | 2 ++ gui/fitCommands/calc/fitAddModule.py | 21 ++++++++++++++++----- gui/fitCommands/calc/fitRemoveModule.py | 9 +++++++-- gui/fitCommands/calc/fitSetCharge.py | 2 +- gui/fitCommands/guiAddModule.py | 9 +++++++++ gui/fitCommands/guiRemoveModule.py | 1 + 6 files changed, 36 insertions(+), 8 deletions(-) diff --git a/eos/effectHandlerHelpers.py b/eos/effectHandlerHelpers.py index f890ae0ed..446273a45 100644 --- a/eos/effectHandlerHelpers.py +++ b/eos/effectHandlerHelpers.py @@ -18,6 +18,7 @@ # =============================================================================== from logbook import Logger +from utils.deprecated import deprecated pyfalog = Logger(__name__) @@ -163,6 +164,7 @@ class HandledModuleList(HandledList): mod.position = index self[index] = mod + @deprecated def freeSlot(self, slot): for i in range(len(self)): mod = self[i] diff --git a/gui/fitCommands/calc/fitAddModule.py b/gui/fitCommands/calc/fitAddModule.py index 39dabf7e1..5d1a2c35c 100644 --- a/gui/fitCommands/calc/fitAddModule.py +++ b/gui/fitCommands/calc/fitAddModule.py @@ -12,23 +12,24 @@ pyfalog = Logger(__name__) class FitAddModuleCommand(wx.Command): """" - Fitting command that appends a module to a fit using the first available slot. + Fitting command that appends a module to a fit using the first available slot. In the case of a Subsystem, it checks + if there is already a subsystem with the same slot, and runs the replace command instead. from sFit.appendModule """ def __init__(self, fitID, itemID, mutaplasmidID=None, baseID=None): - wx.Command.__init__(self, True, "Module Add") + wx.Command.__init__(self, True) self.fitID = fitID self.itemID = itemID self.mutaplasmidID = mutaplasmidID self.baseID = baseID self.new_position = None self.change = None + self.replace_cmd = None def Do(self): fitID = self.fitID itemID = self.itemID - pyfalog.debug("Appending module for fit ({0}) using item: {1}", fitID, itemID) fit = eos.db.getFit(fitID) item = eos.db.getItem(itemID, eager=("attributes", "group.category")) @@ -38,13 +39,19 @@ class FitAddModuleCommand(wx.Command): try: self.module = Module(item, bItem, mItem) except ValueError: - pyfalog.warning("Invalid item: {0}", itemID) + pyfalog.warning("Invalid module: {}", item) return False + # If subsystem and we need to replace, run the replace command instead and bypass the rest of this command if self.module.item.category.name == "Subsystem": - fit.modules.freeSlot(self.module.getModifiedItemAttr("subSystemSlot")) + for mod in fit.modules: + if mod.getModifiedItemAttr("subSystemSlot") == self.module.getModifiedItemAttr("subSystemSlot"): + from .fitReplaceModule import FitReplaceModuleCommand + self.replace_cmd = FitReplaceModuleCommand(self.fitID, mod.modPosition, itemID) + return self.replace_cmd.Do() if self.module.fits(fit): + pyfalog.debug("Adding {} as module for fit {}", self.module, fit) self.module.owner = fit numSlots = len(fit.modules) fit.modules.append(self.module) @@ -68,6 +75,10 @@ class FitAddModuleCommand(wx.Command): return True def Undo(self): + # We added a subsystem module, which actually ran the replace command. Run the undo for that guy instead + if self.replace_cmd: + return self.replace_cmd.Undo() + from .fitRemoveModule import FitRemoveModuleCommand # Avoid circular import if self.new_position: cmd = FitRemoveModuleCommand(self.fitID, [self.new_position]) diff --git a/gui/fitCommands/calc/fitRemoveModule.py b/gui/fitCommands/calc/fitRemoveModule.py index 9eb2e013a..79ae52198 100644 --- a/gui/fitCommands/calc/fitRemoveModule.py +++ b/gui/fitCommands/calc/fitRemoveModule.py @@ -13,7 +13,7 @@ class FitRemoveModuleCommand(wx.Command): from sFit.removeModule """ def __init__(self, fitID: int, positions: list = None): - wx.Command.__init__(self, True, "Module Remove") + wx.Command.__init__(self, True) self.fitID = fitID self.positions = positions self.modCache = [] @@ -21,12 +21,14 @@ class FitRemoveModuleCommand(wx.Command): def Do(self): fitID = self.fitID - pyfalog.debug("Removing module from position ({0}) for fit ID: {1}", self.positions, fitID) fit = eos.db.getFit(fitID) + pyfalog.debug("Removing module from position ({0}) for fit ID: {1}", self.positions, fitID) + for x in self.positions: mod = fit.modules[x] if not mod.isEmpty: + pyfalog.debug(" -- Removing {}", mod) self.modCache.append(ModuleInfoCache(mod.modPosition, mod.item.ID, mod.state, mod.charge, mod.baseItemID, mod.mutaplasmidID)) fit.modules.toDummy(x) @@ -44,8 +46,11 @@ class FitRemoveModuleCommand(wx.Command): return True def Undo(self): + pyfalog.debug("Reapplying {} removed module(s) for {}", len(self.modCache), self.fitID) + from gui.fitCommands.calc.fitAddModule import FitAddModuleCommand # avoids circular import for mod in self.modCache: + pyfalog.debug(" -- {}", mod) # todo, send the state and charge? cmd = FitAddModuleCommand(self.fitID, mod.itemID, mod.mutaplasmidID, mod.baseID) cmd.Do() diff --git a/gui/fitCommands/calc/fitSetCharge.py b/gui/fitCommands/calc/fitSetCharge.py index e97d55adb..d06258924 100644 --- a/gui/fitCommands/calc/fitSetCharge.py +++ b/gui/fitCommands/calc/fitSetCharge.py @@ -20,7 +20,6 @@ class FitSetChargeCommand(wx.Command): self.cache = None def Do(self): - pyfalog.debug("Set ammo for fit ID: {0}", self.fitID) return self.__setAmmo(self.positions, self.chargeID) def Undo(self): @@ -40,6 +39,7 @@ class FitSetChargeCommand(wx.Command): for pos in positions: mod = fit.modules[pos] if not mod.isEmpty and mod.isValidCharge(ammo): + pyfalog.debug("Set ammo {} for {} on fit {}", ammo, mod, self.fitID) result = True mod.charge = ammo eos.db.commit() diff --git a/gui/fitCommands/guiAddModule.py b/gui/fitCommands/guiAddModule.py index 06267919f..ae279d506 100644 --- a/gui/fitCommands/guiAddModule.py +++ b/gui/fitCommands/guiAddModule.py @@ -6,6 +6,8 @@ from .calc.fitAddModule import FitAddModuleCommand from .calc.fitReplaceModule import FitReplaceModuleCommand from .calc.fitSetCharge import FitSetChargeCommand from service.fit import Fit +from logbook import Logger +pyfalog = Logger(__name__) class GuiModuleAddCommand(wx.Command): @@ -28,21 +30,27 @@ class GuiModuleAddCommand(wx.Command): self.old_mod = None def Do(self): + pyfalog.debug("{} Do()".format(self)) success = False item = eos.db.getItem(self.itemID) if item.isCharge and self.position is not None: + pyfalog.debug("Trying to add a charge") success = self.internal_history.Submit(FitSetChargeCommand(self.fitID, [self.position], self.itemID)) if not success: + pyfalog.debug(" Failed") return False # if it's a charge item and this failed, nothing more we can try. # if we have a position set, try to apply the module to that position elif self.position is not None: + pyfalog.debug("Trying to add a module to a specific position") success = self.internal_history.Submit(FitReplaceModuleCommand(self.fitID, self.position, self.itemID)) if not success: + pyfalog.debug(" Failed") # something went wrong with trying to fit the module into specific location, attempt to append it self.position = None # if we're not trying to set module to a position, simply append if self.position is None: + pyfalog.debug("Trying to append a module") success = self.internal_history.Submit(FitAddModuleCommand(self.fitID, self.itemID)) if success: @@ -53,6 +61,7 @@ class GuiModuleAddCommand(wx.Command): def Undo(self): + pyfalog.debug("{} Undo()".format(self)) for _ in self.internal_history.Commands: self.internal_history.Undo() self.sFit.recalc(self.fitID) diff --git a/gui/fitCommands/guiRemoveModule.py b/gui/fitCommands/guiRemoveModule.py index 508c7178b..169dbe593 100644 --- a/gui/fitCommands/guiRemoveModule.py +++ b/gui/fitCommands/guiRemoveModule.py @@ -11,6 +11,7 @@ from .calc.fitRemoveModule import FitRemoveModuleCommand class GuiModuleRemoveCommand(wx.Command): def __init__(self, fitID, modules): """ + Handles removing modules from fit.modules, :param fitID: The fit ID that we are modifying :param modules: A list of Module objects that we are attempting to remove. From c84c79c9171395cf39be50d024a45d9d05d46679 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 3 Aug 2018 01:08:33 -0400 Subject: [PATCH 023/110] More tweaks to existing commands --- gui/fitCommands/calc/fitChangeState.py | 4 +--- gui/fitCommands/calc/fitCloneModule.py | 4 ++-- gui/fitCommands/guiAddCharge.py | 2 +- gui/fitCommands/guiSwapCloneModule.py | 30 ++++++++++++++++--------- gui/fitCommands/guiToggleModuleState.py | 20 ++++++++++------- 5 files changed, 36 insertions(+), 24 deletions(-) diff --git a/gui/fitCommands/calc/fitChangeState.py b/gui/fitCommands/calc/fitChangeState.py index c800e030e..06ad7bfbd 100644 --- a/gui/fitCommands/calc/fitChangeState.py +++ b/gui/fitCommands/calc/fitChangeState.py @@ -26,9 +26,6 @@ class FitChangeStatesCommand(wx.Command): self.old_states[mod.modPosition] = mod.state def Do(self): - # todo: determine if we've changed state (recalc). If not, store that so we don't attempt to recalc on undo - # self.sFit.toggleModulesState(self.fitID, self.baseMod, self.modules, self.click) - pyfalog.debug("Toggle module state for fit ID: {0}", self.fitID) changed = False proposedState = Module.getProposedState(self.baseMod, self.click) @@ -43,6 +40,7 @@ class FitChangeStatesCommand(wx.Command): if p != mod.state: changed = True + # if we haven't change the state (eg, overheat -> overheat), simply fail the command if changed: self.changed = changed eos.db.commit() diff --git a/gui/fitCommands/calc/fitCloneModule.py b/gui/fitCommands/calc/fitCloneModule.py index b126c5063..14c24ddc6 100644 --- a/gui/fitCommands/calc/fitCloneModule.py +++ b/gui/fitCommands/calc/fitCloneModule.py @@ -10,7 +10,7 @@ from logbook import Logger pyfalog = Logger(__name__) import copy -class FitCloneModduleCommand(wx.Command): +class FitCloneModuleCommand(wx.Command): """ Clone a module from src to dst This will overwrite dst! Checking for empty module must be @@ -25,7 +25,6 @@ class FitCloneModduleCommand(wx.Command): self.dst = dst def Do(self): - pyfalog.debug("Cloning modules from source ({0}) to destination ({1}) for fit ID: {1}", self.src, self.dst, self.fitID) fit = eos.db.getFit(self.fitID) # Gather modules srcMod = fit.modules[self.src] @@ -34,6 +33,7 @@ class FitCloneModduleCommand(wx.Command): new = copy.deepcopy(srcMod) new.owner = fit if new.fits(fit): + pyfalog.debug("Cloning {} from source {} to destination {} for fit ID {}", srcMod, self.src, self.dst, self.fitID) # insert copy if module meets hardpoint restrictions fit.modules.remove(dstMod) fit.modules.insert(self.dst, new) diff --git a/gui/fitCommands/guiAddCharge.py b/gui/fitCommands/guiAddCharge.py index 94d7d4249..6d1e5e70a 100644 --- a/gui/fitCommands/guiAddCharge.py +++ b/gui/fitCommands/guiAddCharge.py @@ -23,7 +23,7 @@ class GuiModuleAddChargeCommand(wx.Command): return False def Undo(self): - for x in self.internal_history.Commands: + for _ in self.internal_history.Commands: self.internal_history.Undo() self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) diff --git a/gui/fitCommands/guiSwapCloneModule.py b/gui/fitCommands/guiSwapCloneModule.py index bc283943c..65ddea591 100644 --- a/gui/fitCommands/guiSwapCloneModule.py +++ b/gui/fitCommands/guiSwapCloneModule.py @@ -4,11 +4,14 @@ from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE from gui.fitCommands.calc.fitSwapModule import FitSwapModuleCommand -from .calc.fitCloneModule import FitCloneModduleCommand +from .calc.fitCloneModule import FitCloneModuleCommand +from logbook import Logger +pyfalog = Logger(__name__) + class GuiModuleSwapOrCloneCommand(wx.Command): + def __init__(self, fitID, srcPosition, dstPosition, clone=False): - # todo: instead of modules, needs to be positions. Dead objects are a thing wx.Command.__init__(self, True, "Module State Change") self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.sFit = Fit.getInstance() @@ -19,17 +22,24 @@ class GuiModuleSwapOrCloneCommand(wx.Command): self.internal_history = wx.CommandProcessor() def Do(self): - result = None - if self.clone: - result = self.internal_history.Submit(FitCloneModduleCommand(self.fitID, self.srcPosition, self.dstPosition)) - else: - result = self.internal_history.Submit(FitSwapModuleCommand(self.fitID, self.srcPosition, self.dstPosition)) + pyfalog.debug("{} Do()".format(self)) - if result: - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) - return result + if self.clone: + pyfalog.debug("Trying to clone module") + if self.internal_history.Submit(FitCloneModuleCommand(self.fitID, self.srcPosition, self.dstPosition)): + self.sFit.recalc(self.fitID) # clone needs a recalc + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + else: + pyfalog.debug("Trying to Swap module") + if self.internal_history.Submit(FitSwapModuleCommand(self.fitID, self.srcPosition, self.dstPosition)): + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + + return False def Undo(self): + pyfalog.debug("{} Undo()".format(self)) for _ in self.internal_history.Commands: self.internal_history.Undo() wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) diff --git a/gui/fitCommands/guiToggleModuleState.py b/gui/fitCommands/guiToggleModuleState.py index 0f2344e64..7fcd824b1 100644 --- a/gui/fitCommands/guiToggleModuleState.py +++ b/gui/fitCommands/guiToggleModuleState.py @@ -5,6 +5,7 @@ import gui.mainFrame from gui import globalEvents as GE from .calc.fitChangeState import FitChangeStatesCommand + class GuiModuleStateChangeCommand(wx.Command): def __init__(self, fitID, baseMod, modules, click): # todo: instead of modules, needs to be positions. Dead objects are a thing @@ -16,16 +17,19 @@ class GuiModuleStateChangeCommand(wx.Command): self.modules = modules self.click = click self.internal_history = wx.CommandProcessor() + self.cmd = FitChangeStatesCommand(self.fitID, self.baseMod, self.modules, self.click) def Do(self): - # todo: determine if we've changed state (recalc). If not, store that so we don't attempt to recalc on undo - self.internal_history.Submit(FitChangeStatesCommand(self.fitID, self.baseMod, self.modules, self.click)) + if self.internal_history.Submit(self.cmd): + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True - def Undo(self): - for x in self.internal_history.Commands: - self.internal_history.Undo() - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) - return True - From 168622052316f8f840a538ad37dd338f1fd69119 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 3 Aug 2018 01:42:06 -0400 Subject: [PATCH 024/110] Fix the state change command to not store the modules themselves, but the positions --- gui/builtinViews/fittingView.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index 247003b55..74d02295c 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -268,7 +268,9 @@ class FittingView(d.Display): sel = [] row = self.GetFirstSelected() while row != -1: - sel.append(self.mods[self.GetItemData(row)]) + mod = self.mods[self.GetItemData(row)] + if mod and not isinstance(mod, Rack): + sel.append(mod) row = self.GetNextSelected(row) return sel @@ -629,7 +631,7 @@ class FittingView(d.Display): ctrl = event.cmdDown or event.middleIsDown click = "ctrl" if ctrl is True else "right" if event.GetButton() == 3 else "left" - self.mainFrame.command.Submit(cmd.GuiModuleStateChangeCommand(fitID, self.mods[self.GetItemData(row)], mods, click)) + self.mainFrame.command.Submit(cmd.GuiModuleStateChangeCommand(fitID, self.mods[self.GetItemData(row)].modPosition, [mod.modPosition for mod in mods], click)) # update state tooltip tooltip = self.activeColumns[col].getToolTip(self.mods[self.GetItemData(row)]) From aa282990a5a3a08d85fb90e1edc90b308a3bafe5 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 3 Aug 2018 01:42:06 -0400 Subject: [PATCH 025/110] Fix the state change command to not store the modules themselves, but the positions --- gui/builtinViews/fittingView.py | 6 ++- gui/fitCommands/calc/fitChangeState.py | 59 ++++++++++++++++---------- 2 files changed, 41 insertions(+), 24 deletions(-) diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index 247003b55..74d02295c 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -268,7 +268,9 @@ class FittingView(d.Display): sel = [] row = self.GetFirstSelected() while row != -1: - sel.append(self.mods[self.GetItemData(row)]) + mod = self.mods[self.GetItemData(row)] + if mod and not isinstance(mod, Rack): + sel.append(mod) row = self.GetNextSelected(row) return sel @@ -629,7 +631,7 @@ class FittingView(d.Display): ctrl = event.cmdDown or event.middleIsDown click = "ctrl" if ctrl is True else "right" if event.GetButton() == 3 else "left" - self.mainFrame.command.Submit(cmd.GuiModuleStateChangeCommand(fitID, self.mods[self.GetItemData(row)], mods, click)) + self.mainFrame.command.Submit(cmd.GuiModuleStateChangeCommand(fitID, self.mods[self.GetItemData(row)].modPosition, [mod.modPosition for mod in mods], click)) # update state tooltip tooltip = self.activeColumns[col].getToolTip(self.mods[self.GetItemData(row)]) diff --git a/gui/fitCommands/calc/fitChangeState.py b/gui/fitCommands/calc/fitChangeState.py index 06ad7bfbd..a6a1548cd 100644 --- a/gui/fitCommands/calc/fitChangeState.py +++ b/gui/fitCommands/calc/fitChangeState.py @@ -9,40 +9,53 @@ pyfalog = Logger(__name__) import eos.db class FitChangeStatesCommand(wx.Command): - def __init__(self, fitID, baseMod, modules, click): + """ + Fitting command that trys to change the state of modules in [positions]. We use the base module to determine the + state that we will try to apply for all modules. + + + """ + def __init__(self, fitID, baseModPos, positions, click): # todo: instead of modules, needs to be positions. Dead objects are a thing wx.Command.__init__(self, True, "Module State Change") self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.sFit = Fit.getInstance() self.fitID = fitID - self.baseMod = baseMod - self.modules = modules + self.baseModPos = baseModPos + self.positions = positions self.click = click self.changed = None self.old_states = {} - for mod in modules: - # we don't use the actual module as the key, because it may have been deleted in subsequent calls (even if - # we undo a deletion, wouldn't be the same obj). So, we store the position - self.old_states[mod.modPosition] = mod.state def Do(self): - pyfalog.debug("Toggle module state for fit ID: {0}", self.fitID) - changed = False - proposedState = Module.getProposedState(self.baseMod, self.click) + fit = eos.db.getFit(self.fitID) - if proposedState != self.baseMod.state: - changed = True - self.baseMod.state = proposedState - for mod in self.modules: - if mod != self.baseMod: - p = Module.getProposedState(mod, self.click, proposedState) - mod.state = p - if p != mod.state: - changed = True + baseMod = fit.modules[self.baseModPos] + + # make sure positions only include non-empty positions + self.positions = [x for x in self.positions if not fit.modules[x].isEmpty] + + for x in self.positions: + self.old_states[x] = fit.modules[x].state + + proposedState = Module.getProposedState(baseMod, self.click) + pyfalog.debug("Attempting to change modules to {}", proposedState) + + if proposedState != baseMod.state: + pyfalog.debug("Toggle {} state: {} for fit ID: {}", baseMod, proposedState, self.fitID) + + self.changed = True + baseMod.state = proposedState + for i in [x for x in self.positions if x != self.baseModPos]: # dont consider base module position + mod = fit.modules[i] + p = Module.getProposedState(mod, self.click, proposedState) + mod.state = p + if p != mod.state: + pyfalog.debug("Toggle {} state: {} for fit ID: {}", mod, p, self.fitID) + self.changed = True # if we haven't change the state (eg, overheat -> overheat), simply fail the command - if changed: - self.changed = changed + if self.changed: eos.db.commit() # As some items may affect state-limiting attributes of the ship, calculate new attributes first # self.recalc(fit) @@ -55,5 +68,7 @@ class FitChangeStatesCommand(wx.Command): # todo: some sanity checking to make sure that we are applying state back to the same modules? fit = self.sFit.getFit(self.fitID) for k, v in self.old_states.items(): - fit.modules[k].state = v + mod = fit.modules[k] + pyfalog.debug("Reverting {} to state {} for fit ID", mod, v, self.fitID) + mod.state = v return True From 6057a1a7d99018fdf09e6990590d2d447b992ded Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 3 Aug 2018 02:01:26 -0400 Subject: [PATCH 026/110] Fix issue with setting None charge --- gui/fitCommands/calc/fitSetCharge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/fitCommands/calc/fitSetCharge.py b/gui/fitCommands/calc/fitSetCharge.py index d06258924..eeb4df407 100644 --- a/gui/fitCommands/calc/fitSetCharge.py +++ b/gui/fitCommands/calc/fitSetCharge.py @@ -32,7 +32,7 @@ class FitSetChargeCommand(wx.Command): self.cache = {fit.modules[i].modPosition: fit.modules[i].chargeID for i in positions} ammo = eos.db.getItem(chargeID) if chargeID else None - if not ammo.isCharge: + if ammo is not None and not ammo.isCharge: return False result = False From 15ba5c8ace1b1fcb2a22e48d0af87838a06ca37e Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 3 Aug 2018 02:01:42 -0400 Subject: [PATCH 027/110] Convert tactical mode switching --- gui/builtinContextMenus/tacticalMode.py | 6 ++--- gui/fitCommands/__init__.py | 1 + gui/fitCommands/calc/fitSetMode.py | 34 +++++++++++++++++++++++++ gui/fitCommands/guiSetMode.py | 31 ++++++++++++++++++++++ service/fit.py | 1 + 5 files changed, 69 insertions(+), 4 deletions(-) create mode 100644 gui/fitCommands/calc/fitSetMode.py create mode 100644 gui/fitCommands/guiSetMode.py diff --git a/gui/builtinContextMenus/tacticalMode.py b/gui/builtinContextMenus/tacticalMode.py index e09b26940..04c82574f 100644 --- a/gui/builtinContextMenus/tacticalMode.py +++ b/gui/builtinContextMenus/tacticalMode.py @@ -6,7 +6,7 @@ import gui.mainFrame import gui.globalEvents as GE from service.fit import Fit from service.settings import ContextMenuSettings - +import gui.fitCommands as cmd class TacticalMode(ContextMenu): def __init__(self): @@ -60,10 +60,8 @@ class TacticalMode(ContextMenu): event.Skip() return - sFit = Fit.getInstance() fitID = self.mainFrame.getActiveFit() - sFit.setMode(fitID, self.modeIds[event.Id]) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.GuiSetModeCommand(fitID, self.modeIds[event.Id])) TacticalMode.register() diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index 89a74b369..c7a37439f 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -7,3 +7,4 @@ from .guiRemoveCargo import GuiRemoveCargoCommand from .guiAddCargo import GuiAddCargoCommand from .guiRemoveImplant import GuiRemoveImplantCommand from .guiAddImplant import GuiAddImplantCommand +from .guiSetMode import GuiSetModeCommand \ No newline at end of file diff --git a/gui/fitCommands/calc/fitSetMode.py b/gui/fitCommands/calc/fitSetMode.py new file mode 100644 index 000000000..183c292aa --- /dev/null +++ b/gui/fitCommands/calc/fitSetMode.py @@ -0,0 +1,34 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) + + +class FitSetModeCommand(wx.Command): + """" + from sFit.setMode + """ + def __init__(self, fitID, mode): + wx.Command.__init__(self, True, "Cargo add") + self.fitID = fitID + self.mode = mode + self.old_mode = None + + def Do(self): + pyfalog.debug("Set mode for fit ID: {0}", self.fitID) + fit = eos.db.getFit(self.fitID) + self.old_mode = fit.mode + fit.mode = self.mode + eos.db.commit() + return True + + def Undo(self): + cmd = FitSetModeCommand(self.fitID, self.old_mode) + cmd.Do() + return True diff --git a/gui/fitCommands/guiSetMode.py b/gui/fitCommands/guiSetMode.py new file mode 100644 index 000000000..2c1e4864c --- /dev/null +++ b/gui/fitCommands/guiSetMode.py @@ -0,0 +1,31 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .calc.fitSetMode import FitSetModeCommand + +class GuiSetModeCommand(wx.Command): + def __init__(self, fitID, mode): + wx.Command.__init__(self, True, "Cargo Add") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + # can set his up no to not have to set variables on our object + self.cmd = FitSetModeCommand(fitID, mode) + + def Do(self): + if self.internal_history.Submit(self.cmd): + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + diff --git a/service/fit.py b/service/fit.py index d3ed7d9c7..47c9c2960 100644 --- a/service/fit.py +++ b/service/fit.py @@ -1155,6 +1155,7 @@ class Fit(object): self.recalc(fit) + @deprecated def setMode(self, fitID, mode): pyfalog.debug("Set mode for fit ID: {0}", fitID) if fitID is None: From fcc53d3f214c74f8fd2c00c4fee2cfe220568288 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Fri, 3 Aug 2018 16:10:27 -0400 Subject: [PATCH 028/110] Add commands for booster and command fits --- eos/db/saveddata/fit.py | 2 +- eos/saveddata/fit.py | 4 +- gui/builtinAdditionPanes/boosterView.py | 10 ++--- gui/builtinAdditionPanes/commandView.py | 11 ++--- gui/builtinContextMenus/itemRemove.py | 3 +- gui/builtinContextMenus/metaSwap.py | 12 +++--- gui/fitCommands/__init__.py | 4 ++ gui/fitCommands/calc/fitAddBooster.py | 42 +++++++++++++++++++ gui/fitCommands/calc/fitAddCommand.py | 53 ++++++++++++++++++++++++ gui/fitCommands/calc/fitRemoveBooster.py | 32 ++++++++++++++ gui/fitCommands/calc/fitRemoveCommand.py | 43 +++++++++++++++++++ gui/fitCommands/guiAddBooster.py | 29 +++++++++++++ gui/fitCommands/guiAddCommand.py | 29 +++++++++++++ gui/fitCommands/guiAddModule.py | 1 + gui/fitCommands/guiRemoveBooster.py | 29 +++++++++++++ gui/fitCommands/guiRemoveCommand.py | 29 +++++++++++++ service/fit.py | 8 +++- 17 files changed, 318 insertions(+), 23 deletions(-) create mode 100644 gui/fitCommands/calc/fitAddBooster.py create mode 100644 gui/fitCommands/calc/fitAddCommand.py create mode 100644 gui/fitCommands/calc/fitRemoveBooster.py create mode 100644 gui/fitCommands/calc/fitRemoveCommand.py create mode 100644 gui/fitCommands/guiAddBooster.py create mode 100644 gui/fitCommands/guiAddCommand.py create mode 100644 gui/fitCommands/guiRemoveBooster.py create mode 100644 gui/fitCommands/guiRemoveCommand.py diff --git a/eos/db/saveddata/fit.py b/eos/db/saveddata/fit.py index 0ae4509e2..9701d5d6b 100644 --- a/eos/db/saveddata/fit.py +++ b/eos/db/saveddata/fit.py @@ -138,7 +138,7 @@ es_Fit._Fit__projectedFits = association_proxy( creator=lambda sourceID, source_fit: ProjectedFit(sourceID, source_fit) ) -es_Fit._Fit__commandFits = association_proxy( +es_Fit.commandFitDict = association_proxy( "boostedOf", # look at the boostedOf association... "booster_fit", # .. and return the booster fit creator=lambda boosterID, booster_fit: CommandFit(boosterID, booster_fit) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 8f5cc2b36..7b9e79e6c 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -262,7 +262,7 @@ class Fit(object): @property def commandFits(self): - return [fit for fit in list(self.__commandFits.values()) if not fit.isInvalid] + return [fit for fit in list(self.commandFitDict.values()) if not fit.isInvalid] def getProjectionInfo(self, fitID): return self.projectedOnto.get(fitID, None) @@ -1605,7 +1605,7 @@ class Fit(object): eos.db.saveddata_session.refresh(fit) for fit in self.commandFits: - copy_ship.__commandFits[fit.ID] = fit + copy_ship.commandFitDict[fit.ID] = fit forceUpdateSavedata(fit) copyCommandInfo = fit.getCommandInfo(copy_ship.ID) originalCommandInfo = fit.getCommandInfo(self.ID) diff --git a/gui/builtinAdditionPanes/boosterView.py b/gui/builtinAdditionPanes/boosterView.py index 8923f83de..ef9c88f2d 100644 --- a/gui/builtinAdditionPanes/boosterView.py +++ b/gui/builtinAdditionPanes/boosterView.py @@ -26,7 +26,7 @@ from gui.builtinViewColumns.state import State from gui.contextMenu import ContextMenu from gui.utils.staticHelpers import DragDropHelper from service.fit import Fit - +import gui.fitCommands as cmd class BoosterViewDrop(wx.DropTarget): def __init__(self, dropFn, *args, **kwargs): @@ -134,9 +134,7 @@ class BoosterView(d.Display): event.Skip() return - trigger = sFit.addBooster(fitID, event.itemID) - if trigger: - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + if self.mainFrame.command.Submit(cmd.GuiAddBoosterCommand(fitID, event.itemID)): self.mainFrame.additionsPane.select("Boosters") event.Skip() @@ -150,9 +148,7 @@ class BoosterView(d.Display): def removeBooster(self, booster): fitID = self.mainFrame.getActiveFit() - sFit = Fit.getInstance() - sFit.removeBooster(fitID, self.origional.index(booster)) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.GuiRemoveImplantCommand(fitID, self.origional.index(booster))) def click(self, event): event.Skip() diff --git a/gui/builtinAdditionPanes/commandView.py b/gui/builtinAdditionPanes/commandView.py index 2bfa700c9..52cda66cb 100644 --- a/gui/builtinAdditionPanes/commandView.py +++ b/gui/builtinAdditionPanes/commandView.py @@ -30,7 +30,7 @@ from gui.builtinViewColumns.state import State from gui.contextMenu import ContextMenu from gui.utils.staticHelpers import DragDropHelper from service.fit import Fit - +import gui.fitCommands as cmd class DummyItem(object): def __init__(self, txt): @@ -111,10 +111,11 @@ class CommandView(d.Display): if type == "fit": activeFit = self.mainFrame.getActiveFit() if activeFit: - sFit = Fit.getInstance() - draggedFit = sFit.getFit(fitID) - sFit.addCommandFit(activeFit, draggedFit) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=activeFit)) + # sFit = Fit.getInstance() + # draggedFit = sFit.getFit(fitID) + # sFit.addCommandFit(activeFit, draggedFit) + # wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=activeFit)) + self.mainFrame.command.Submit(cmd.GuiAddCommandCommand(activeFit, fitID)) def startDrag(self, event): row = event.GetIndex() diff --git a/gui/builtinContextMenus/itemRemove.py b/gui/builtinContextMenus/itemRemove.py index b3cb414b5..60a0d36d1 100644 --- a/gui/builtinContextMenus/itemRemove.py +++ b/gui/builtinContextMenus/itemRemove.py @@ -48,7 +48,8 @@ class ItemRemove(ContextMenu): self.mainFrame.command.Submit(cmd.GuiRemoveImplantCommand(fitID, fit.implants.index(selection[0]))) return # the command takes care of the PostEvent elif srcContext == "boosterItem": - sFit.removeBooster(fitID, fit.boosters.index(selection[0])) + self.mainFrame.command.Submit(cmd.GuiRemoveBoosterCommand(fitID, fit.boosters.index(selection[0]))) + return # the command takes care of the PostEvent elif srcContext == "cargoItem": self.mainFrame.command.Submit(cmd.GuiRemoveCargoCommand(fitID, selection[0].itemID)) return # the command takes care of the PostEvent diff --git a/gui/builtinContextMenus/metaSwap.py b/gui/builtinContextMenus/metaSwap.py index 7956848f8..871ebad68 100644 --- a/gui/builtinContextMenus/metaSwap.py +++ b/gui/builtinContextMenus/metaSwap.py @@ -140,6 +140,7 @@ class MetaSwap(ContextMenu): if isinstance(selected_item, Module): pos = fit.modules.index(selected_item) sFit.changeModule(fitID, pos, item.ID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) elif isinstance(selected_item, Drone): drone_count = None @@ -152,6 +153,7 @@ class MetaSwap(ContextMenu): if drone_count: sFit.addDrone(fitID, item.ID, drone_count, True) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) elif isinstance(selected_item, Fighter): fighter_count = None @@ -172,12 +174,13 @@ class MetaSwap(ContextMenu): break sFit.addFighter(fitID, item.ID, True) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) elif isinstance(selected_item, Booster): for idx, booster_stack in enumerate(fit.boosters): if booster_stack is selected_item: - sFit.removeBooster(fitID, idx, False) - sFit.addBooster(fitID, item.ID, True) + self.mainFrame.command.Submit(cmd.GuiRemoveBoosterCommand(fitID, idx)) + self.mainFrame.command.Submit(cmd.GuiAddBoosterCommand(fitID, item.ID)) break elif isinstance(selected_item, Implant): @@ -185,7 +188,7 @@ class MetaSwap(ContextMenu): if implant_stack is selected_item: self.mainFrame.command.Submit(cmd.GuiRemoveImplantCommand(fitID, idx)) self.mainFrame.command.Submit(cmd.GuiAddImplantCommand(fitID, item.ID)) - return + break elif isinstance(selected_item, Cargo): for idx, cargo_stack in enumerate(fit.cargo): @@ -194,9 +197,8 @@ class MetaSwap(ContextMenu): # utilize the two fitting commands that we need to remove then add? sFit.removeCargo(fitID, idx) self.mainFrame.command.Submit(cmd.GuiAddCargoCommand(fitID, item.ID, cargo_stack.amount, True)) - return # don't need the post event + break - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) MetaSwap.register() diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index 89a74b369..1102eaf08 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -7,3 +7,7 @@ from .guiRemoveCargo import GuiRemoveCargoCommand from .guiAddCargo import GuiAddCargoCommand from .guiRemoveImplant import GuiRemoveImplantCommand from .guiAddImplant import GuiAddImplantCommand +from .guiAddBooster import GuiAddBoosterCommand +from .guiRemoveBooster import GuiRemoveBoosterCommand +from .guiAddCommand import GuiAddCommandCommand +from .guiRemoveCommand import GuiRemoveCommandCommand \ No newline at end of file diff --git a/gui/fitCommands/calc/fitAddBooster.py b/gui/fitCommands/calc/fitAddBooster.py new file mode 100644 index 000000000..356a742da --- /dev/null +++ b/gui/fitCommands/calc/fitAddBooster.py @@ -0,0 +1,42 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) +from eos.saveddata.booster import Booster + +class FitAddBoosterCommand(wx.Command): + """" + from sFit.addBooster + """ + def __init__(self, fitID, itemID): + wx.Command.__init__(self, True) + self.fitID = fitID + self.itemID = itemID + self.new_index = None + + def Do(self): + pyfalog.debug("Adding booster ({0}) to fit ID: {1}", self.itemID, self.fitID) + + fit = eos.db.getFit(self.fitID) + item = eos.db.getItem(self.itemID, eager="attributes") + try: + booster = Booster(item) + except ValueError: + pyfalog.warning("Invalid item: {0}", self.itemID) + return False + + fit.boosters.append(booster) + self.new_index = fit.boosters.index(booster) + return True + + def Undo(self): + from .fitRemoveBooster import FitRemoveBoosterCommand # Avoid circular import + cmd = FitRemoveBoosterCommand(self.fitID, self.new_index) + cmd.Do() + return True diff --git a/gui/fitCommands/calc/fitAddCommand.py b/gui/fitCommands/calc/fitAddCommand.py new file mode 100644 index 000000000..61dbc68b7 --- /dev/null +++ b/gui/fitCommands/calc/fitAddCommand.py @@ -0,0 +1,53 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) + + +class FitAddCommandCommand(wx.Command): # well that's an unfrtunate name + """" + from sFit.addCommand + """ + def __init__(self, fitID, commandFitID): + wx.Command.__init__(self, True) + self.fitID = fitID + self.commandFitID = commandFitID + + def Do(self): + pyfalog.debug("Projecting command fit ({0}) onto: {1}", self.fitID, self.commandFitID) + fit = eos.db.getFit(self.fitID) + command = eos.db.getFit(self.commandFitID) + + if not command: + # if redoing when the command fit has been deleted, simply fail this command + return False + + if command in fit.commandFits: + return + + fit.commandFitDict[command.ID] = command + + # this bit is required -- see GH issue # 83 + eos.db.saveddata_session.flush() + eos.db.saveddata_session.refresh(command) + + eos.db.commit() + return True + + def Undo(self): + command = eos.db.getFit(self.commandFitID) + + if not command: + # can't find the command fit, it must have been deleted. Just skip this undo + return True + + from .fitRemoveCommand import FitRemoveCommandCommand + cmd = FitRemoveCommandCommand(self.fitID, self.commandFitID) + cmd.Do() + return True diff --git a/gui/fitCommands/calc/fitRemoveBooster.py b/gui/fitCommands/calc/fitRemoveBooster.py new file mode 100644 index 000000000..f22b6fb8e --- /dev/null +++ b/gui/fitCommands/calc/fitRemoveBooster.py @@ -0,0 +1,32 @@ +import wx + +#from .helpers import ModuleInfoCache +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) + + +class FitRemoveBoosterCommand(wx.Command): + """" + from sFit.removeBooster + """ + def __init__(self, fitID, position): + wx.Command.__init__(self, True, "Implant remove") + self.fitID = fitID + self.position = position + self.old = None + + def Do(self): + pyfalog.debug("Removing booster from position ({0}) for fit ID: {1}", self.position, self.fitID) + + fit = eos.db.getFit(self.fitID) + booster = fit.boosters[self.position] + self.old = booster.itemID + fit.boosters.remove(booster) + return True + + def Undo(self): + from .fitAddBooster import FitAddBoosterCommand # Avoid circular import + cmd = FitAddBoosterCommand(self.fitID, self.old) + cmd.Do() + return True diff --git a/gui/fitCommands/calc/fitRemoveCommand.py b/gui/fitCommands/calc/fitRemoveCommand.py new file mode 100644 index 000000000..57052aa1e --- /dev/null +++ b/gui/fitCommands/calc/fitRemoveCommand.py @@ -0,0 +1,43 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) + + +class FitRemoveCommandCommand(wx.Command): # well that's an unfrtunate name + """" + from sFit.removeCommand + """ + def __init__(self, fitID, commandFitID): + wx.Command.__init__(self, True) + self.fitID = fitID + self.commandFitID = commandFitID + + def Do(self): + pyfalog.debug("Removing command projection from fit ({0}) for: {1}", self.fitID, self.commandFitID) + fit = eos.db.getFit(self.fitID) + command = eos.db.getFit(self.commandFitID) + if not command: + return False + del fit.commandFitDict[command.ID] + + eos.db.commit() + return True + + def Undo(self): + command = eos.db.getFit(self.commandFitID) + + if not command: + # can't find the command fit, it must have been deleted. Just skip this undo + return True + + from .fitAddCommand import FitAddCommandCommand + cmd = FitAddCommandCommand(self.fitID, self.commandFitID) + cmd.Do() + return True diff --git a/gui/fitCommands/guiAddBooster.py b/gui/fitCommands/guiAddBooster.py new file mode 100644 index 000000000..392ce3034 --- /dev/null +++ b/gui/fitCommands/guiAddBooster.py @@ -0,0 +1,29 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .calc.fitAddBooster import FitAddBoosterCommand + +class GuiAddBoosterCommand(wx.Command): + def __init__(self, fitID, itemID): + wx.Command.__init__(self, True, "Booster Add") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + # can set his up no to not have to set variables on our object + self.cmd = FitAddBoosterCommand(fitID, itemID) + + def Do(self): + if self.internal_history.Submit(self.cmd): + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for x in self.internal_history.Commands: + self.internal_history.Undo() + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + diff --git a/gui/fitCommands/guiAddCommand.py b/gui/fitCommands/guiAddCommand.py new file mode 100644 index 000000000..995bc545a --- /dev/null +++ b/gui/fitCommands/guiAddCommand.py @@ -0,0 +1,29 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .calc.fitAddCommand import FitAddCommandCommand + +class GuiAddCommandCommand(wx.Command): + def __init__(self, fitID, commandFitID): + wx.Command.__init__(self, True, "") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + # can set his up no to not have to set variables on our object + self.cmd = FitAddCommandCommand(fitID, commandFitID) + + def Do(self): + if self.internal_history.Submit(self.cmd): + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for x in self.internal_history.Commands: + self.internal_history.Undo() + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + diff --git a/gui/fitCommands/guiAddModule.py b/gui/fitCommands/guiAddModule.py index 5abf52651..12d26d6ac 100644 --- a/gui/fitCommands/guiAddModule.py +++ b/gui/fitCommands/guiAddModule.py @@ -1,6 +1,7 @@ import wx import gui.mainFrame +from service.fit import Fit from gui import globalEvents as GE from .calc.fitAddModule import FitAddModuleCommand from .calc.fitReplaceModule import FitReplaceModuleCommand diff --git a/gui/fitCommands/guiRemoveBooster.py b/gui/fitCommands/guiRemoveBooster.py new file mode 100644 index 000000000..92578b0b8 --- /dev/null +++ b/gui/fitCommands/guiRemoveBooster.py @@ -0,0 +1,29 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .calc.fitRemoveBooster import FitRemoveBoosterCommand + +class GuiRemoveBoosterCommand(wx.Command): + def __init__(self, fitID, position): + wx.Command.__init__(self, True, "") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + # can set his up no to not have to set variables on our object + self.cmd = FitRemoveBoosterCommand(fitID, position) + + def Do(self): + if self.internal_history.Submit(self.cmd): + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for x in self.internal_history.Commands: + self.internal_history.Undo() + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + diff --git a/gui/fitCommands/guiRemoveCommand.py b/gui/fitCommands/guiRemoveCommand.py new file mode 100644 index 000000000..d2c13c749 --- /dev/null +++ b/gui/fitCommands/guiRemoveCommand.py @@ -0,0 +1,29 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .calc.fitRemoveCommand import FitRemoveCommandCommand + +class GuiRemoveCommandCommand(wx.Command): + def __init__(self, fitID, commandFitID): + wx.Command.__init__(self, True, "") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + # can set his up no to not have to set variables on our object + self.cmd = FitRemoveCommandCommand(fitID, commandFitID) + + def Do(self): + if self.internal_history.Submit(self.cmd): + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for x in self.internal_history.Commands: + self.internal_history.Undo() + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + diff --git a/service/fit.py b/service/fit.py index 016f5989a..e5ff9b21c 100644 --- a/service/fit.py +++ b/service/fit.py @@ -365,6 +365,7 @@ class Fit(object): self.recalc(fit) return True + @deprecated def addBooster(self, fitID, itemID, recalc=True): pyfalog.debug("Adding booster ({0}) to fit ID: {1}", itemID, fitID) if fitID is None: @@ -383,6 +384,7 @@ class Fit(object): self.recalc(fit) return True + @deprecated def removeBooster(self, fitID, position, recalc=True): pyfalog.debug("Removing booster from position ({0}) for fit ID: {1}", position, fitID) if fitID is None: @@ -451,6 +453,7 @@ class Fit(object): self.recalc(fit) return True + @deprecated def addCommandFit(self, fitID, thing): pyfalog.debug("Projecting command fit ({0}) onto: {1}", fitID, thing) if fitID is None: @@ -461,7 +464,7 @@ class Fit(object): if thing in fit.commandFits: return - fit.__commandFits[thing.ID] = thing + fit.commandFitDict[thing.ID] = thing # this bit is required -- see GH issue # 83 eos.db.saveddata_session.flush() @@ -539,10 +542,11 @@ class Fit(object): eos.db.commit() self.recalc(fit) + @deprecated def removeCommand(self, fitID, thing): pyfalog.debug("Removing command projection from fit ({0}) for: {1}", fitID, thing) fit = eos.db.getFit(fitID) - del fit.__commandFits[thing.ID] + del fit.commandFitDict[thing.ID] eos.db.commit() self.recalc(fit) From 3c7f0258dfc5d1212c15b8b63bb4641a885301bb Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 3 Aug 2018 21:19:51 -0400 Subject: [PATCH 029/110] More converting for command fits --- gui/builtinAdditionPanes/commandView.py | 10 ++-------- gui/builtinContextMenus/commandFits.py | 6 ++---- gui/builtinContextMenus/itemRemove.py | 4 ++-- gui/builtinContextMenus/tabbedFits.py | 7 +++---- gui/builtinShipBrowser/fitItem.py | 9 +++------ gui/fitCommands/guiAddCommand.py | 4 +++- gui/fitCommands/guiRemoveCommand.py | 4 +++- 7 files changed, 18 insertions(+), 26 deletions(-) diff --git a/gui/builtinAdditionPanes/commandView.py b/gui/builtinAdditionPanes/commandView.py index 52cda66cb..7a35ac74b 100644 --- a/gui/builtinAdditionPanes/commandView.py +++ b/gui/builtinAdditionPanes/commandView.py @@ -103,18 +103,13 @@ class CommandView(d.Display): sFit = Fit.getInstance() row = self.GetFirstSelected() if row != -1: - sFit.removeCommand(fitID, self.get(row)) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.GuiRemoveCommandCommand(fitID, self.get(row).ID)) def handleDrag(self, type, fitID): # Those are drags coming from pyfa sources, NOT builtin wx drags if type == "fit": activeFit = self.mainFrame.getActiveFit() if activeFit: - # sFit = Fit.getInstance() - # draggedFit = sFit.getFit(fitID) - # sFit.addCommandFit(activeFit, draggedFit) - # wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=activeFit)) self.mainFrame.command.Submit(cmd.GuiAddCommandCommand(activeFit, fitID)) def startDrag(self, event): @@ -228,5 +223,4 @@ class CommandView(d.Display): sFit = Fit.getInstance() thing = self.get(row) if thing: # thing doesn't exist if it's the dummy value - sFit.removeCommand(fitID, thing) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.GuiRemoveCommandCommand(fitID, thing.ID)) diff --git a/gui/builtinContextMenus/commandFits.py b/gui/builtinContextMenus/commandFits.py index 936dd0cc0..d2dd7ec94 100644 --- a/gui/builtinContextMenus/commandFits.py +++ b/gui/builtinContextMenus/commandFits.py @@ -7,7 +7,7 @@ import gui.mainFrame import gui.globalEvents as GE from gui.contextMenu import ContextMenu from service.settings import ContextMenuSettings - +import gui.fitCommands as cmd class CommandFits(ContextMenu): # Get list of items that define a command fit @@ -99,9 +99,7 @@ class CommandFits(ContextMenu): sFit = Fit.getInstance() fitID = self.mainFrame.getActiveFit() - - sFit.addCommandFit(fitID, fit) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.GuiAddCommandCommand(fitID, fit.ID)) CommandFits.populateFits(None) diff --git a/gui/builtinContextMenus/itemRemove.py b/gui/builtinContextMenus/itemRemove.py index 60a0d36d1..d075eba2e 100644 --- a/gui/builtinContextMenus/itemRemove.py +++ b/gui/builtinContextMenus/itemRemove.py @@ -56,8 +56,8 @@ class ItemRemove(ContextMenu): elif srcContext in ("projectedFit", "projectedModule", "projectedDrone", "projectedFighter"): sFit.removeProjected(fitID, selection[0]) elif srcContext == "commandFit": - sFit.removeCommand(fitID, selection[0]) - + self.mainFrame.command.Submit(cmd.GuiRemoveCommandCommand(fitID, selection[0].ID)) + return wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) diff --git a/gui/builtinContextMenus/tabbedFits.py b/gui/builtinContextMenus/tabbedFits.py index c55a90b35..d8b516027 100644 --- a/gui/builtinContextMenus/tabbedFits.py +++ b/gui/builtinContextMenus/tabbedFits.py @@ -8,7 +8,7 @@ import gui.mainFrame import gui.globalEvents as GE from gui.contextMenu import ContextMenu from gui.builtinViews.emptyView import BlankPage - +import gui.fitCommands as cmd class TabbedFits(ContextMenu): def __init__(self): @@ -57,11 +57,10 @@ class TabbedFits(ContextMenu): fit = self.fitLookup[event.Id] if self.context == 'commandView': - sFit.addCommandFit(fitID, fit) + self.mainFrame.command.Submit(cmd.GuiAddCommandCommand(fitID, fit.ID)) elif self.context == 'projected': sFit.project(fitID, fit) - - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) TabbedFits.register() diff --git a/gui/builtinShipBrowser/fitItem.py b/gui/builtinShipBrowser/fitItem.py index 99cb9e0bb..73617a458 100644 --- a/gui/builtinShipBrowser/fitItem.py +++ b/gui/builtinShipBrowser/fitItem.py @@ -17,7 +17,7 @@ from .events import ImportSelected, SearchSelected, FitSelected, BoosterListUpda from gui.bitmap_loader import BitmapLoader from gui.builtinShipBrowser.pfBitmapFrame import PFBitmapFrame from service.fit import Fit - +import gui.fitCommands as cmd pyfalog = Logger(__name__) @@ -209,11 +209,8 @@ class FitItem(SFItem.SFBrowserItem): def OnAddCommandFit(self, event): activeFit = self.mainFrame.getActiveFit() if activeFit: - sFit = Fit.getInstance() - commandFit = sFit.getFit(self.fitID) - sFit.addCommandFit(activeFit, commandFit) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=activeFit)) - self.mainFrame.additionsPane.select("Command") + if self.mainFrame.command.Submit(cmd.GuiAddCommandCommand(activeFit, self.fitID)): + self.mainFrame.additionsPane.select("Command") def OnMouseCaptureLost(self, event): """ Destroy drag information (GH issue #479)""" diff --git a/gui/fitCommands/guiAddCommand.py b/gui/fitCommands/guiAddCommand.py index 995bc545a..a46da244e 100644 --- a/gui/fitCommands/guiAddCommand.py +++ b/gui/fitCommands/guiAddCommand.py @@ -18,12 +18,14 @@ class GuiAddCommandCommand(wx.Command): def Do(self): if self.internal_history.Submit(self.cmd): wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + self.sFit.recalc(self.fitID) return True return False def Undo(self): - for x in self.internal_history.Commands: + for _ in self.internal_history.Commands: self.internal_history.Undo() + self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True diff --git a/gui/fitCommands/guiRemoveCommand.py b/gui/fitCommands/guiRemoveCommand.py index d2c13c749..d01abce08 100644 --- a/gui/fitCommands/guiRemoveCommand.py +++ b/gui/fitCommands/guiRemoveCommand.py @@ -17,13 +17,15 @@ class GuiRemoveCommandCommand(wx.Command): def Do(self): if self.internal_history.Submit(self.cmd): + self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True return False def Undo(self): - for x in self.internal_history.Commands: + for _ in self.internal_history.Commands: self.internal_history.Undo() + self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True From 425c7f657c6fa4acdd3946ece8909553aa69d47f Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 3 Aug 2018 22:30:09 -0400 Subject: [PATCH 030/110] Do command fit toggle. Still need to settle on the logic for how to handle deleted fits - seems there's an issue with the queue. --- gui/builtinAdditionPanes/commandView.py | 4 +-- gui/fitCommands/__init__.py | 1 + gui/fitCommands/calc/fitToggleCommand.py | 42 ++++++++++++++++++++++++ gui/fitCommands/guiToggleCommand.py | 31 +++++++++++++++++ service/fit.py | 1 + 5 files changed, 76 insertions(+), 3 deletions(-) create mode 100644 gui/fitCommands/calc/fitToggleCommand.py create mode 100644 gui/fitCommands/guiToggleCommand.py diff --git a/gui/builtinAdditionPanes/commandView.py b/gui/builtinAdditionPanes/commandView.py index 7a35ac74b..d05e4fe8c 100644 --- a/gui/builtinAdditionPanes/commandView.py +++ b/gui/builtinAdditionPanes/commandView.py @@ -186,9 +186,7 @@ class CommandView(d.Display): col = self.getColumn(event.Position) if col == self.getColIndex(State): fitID = self.mainFrame.getActiveFit() - sFit = Fit.getInstance() - sFit.toggleCommandFit(fitID, item) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.GuiToggleCommandCommand(fitID, item.ID)) def scheduleMenu(self, event): event.Skip() diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index 7e16fecbb..7abbd4141 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -12,3 +12,4 @@ from .guiRemoveBooster import GuiRemoveBoosterCommand from .guiAddCommand import GuiAddCommandCommand from .guiRemoveCommand import GuiRemoveCommandCommand from .guiSetMode import GuiSetModeCommand +from .guiToggleCommand import GuiToggleCommandCommand \ No newline at end of file diff --git a/gui/fitCommands/calc/fitToggleCommand.py b/gui/fitCommands/calc/fitToggleCommand.py new file mode 100644 index 000000000..c8adc87ac --- /dev/null +++ b/gui/fitCommands/calc/fitToggleCommand.py @@ -0,0 +1,42 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) +from eos.saveddata.implant import Implant + +class FitToggleCommandCommand(wx.Command): + """" + from sFit.toggleCommandFit + """ + def __init__(self, fitID, commandFitId): + wx.Command.__init__(self, True, "Cargo add") + self.fitID = fitID + self.commandFitID = commandFitId + + def Do(self): + pyfalog.debug("Toggle command fit ({0}) for: {1}", self.commandFitID, self.fitID) + commandFit = eos.db.getFit(self.commandFitID) + + if not commandFit: + pyfalog.debug(" -- Command fit not found, deleted?") + return False + + commandInfo = commandFit.getCommandInfo(self.fitID) + + if not commandInfo: + pyfalog.debug(" -- Command fit info not found, deleted?") + return False + + commandInfo.active = not commandInfo.active + eos.db.commit() + return True + + def Undo(self): + cmd = FitToggleCommandCommand(self.fitID, self.commandFitID) + return cmd.Do() diff --git a/gui/fitCommands/guiToggleCommand.py b/gui/fitCommands/guiToggleCommand.py new file mode 100644 index 000000000..b7f07ed78 --- /dev/null +++ b/gui/fitCommands/guiToggleCommand.py @@ -0,0 +1,31 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .calc.fitToggleCommand import FitToggleCommandCommand + +class GuiToggleCommandCommand(wx.Command): + def __init__(self, fitID, commandFitID): + wx.Command.__init__(self, True, "") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + # can set his up no to not have to set variables on our object + self.cmd = FitToggleCommandCommand(fitID, commandFitID) + + def Do(self): + if self.internal_history.Submit(self.cmd): + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + diff --git a/service/fit.py b/service/fit.py index d581ff07f..238c5c58b 100644 --- a/service/fit.py +++ b/service/fit.py @@ -496,6 +496,7 @@ class Fit(object): eos.db.commit() self.recalc(fit) + @deprecated def toggleCommandFit(self, fitID, thing): pyfalog.debug("Toggle command fit ({0}) for: {1}", fitID, thing) fit = eos.db.getFit(fitID) From 0f4f8c636d72085b7d14c77e46e88d1ec72ced37 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 4 Aug 2018 22:10:14 -0400 Subject: [PATCH 031/110] Start working on projections --- gui/builtinAdditionPanes/projectedView.py | 19 ++--- gui/builtinContextMenus/project.py | 12 ++-- gui/builtinContextMenus/tabbedFits.py | 4 +- gui/builtinContextMenus/whProjector.py | 6 +- gui/builtinShipBrowser/fitItem.py | 5 +- gui/fitCommands/__init__.py | 3 +- gui/fitCommands/calc/fitAddProjectedModule.py | 49 +++++++++++++ .../calc/fitRemoveProjectedModule.py | 39 ++++++++++ gui/fitCommands/guiAddProjected.py | 71 +++++++++++++++++++ service/fit.py | 1 + 10 files changed, 184 insertions(+), 25 deletions(-) create mode 100644 gui/fitCommands/calc/fitAddProjectedModule.py create mode 100644 gui/fitCommands/calc/fitRemoveProjectedModule.py create mode 100644 gui/fitCommands/guiAddProjected.py diff --git a/gui/builtinAdditionPanes/projectedView.py b/gui/builtinAdditionPanes/projectedView.py index 24ca11f3a..4cb18abd8 100644 --- a/gui/builtinAdditionPanes/projectedView.py +++ b/gui/builtinAdditionPanes/projectedView.py @@ -32,6 +32,7 @@ from gui.contextMenu import ContextMenu from gui.utils.staticHelpers import DragDropHelper from service.fit import Fit from service.market import Market +import gui.fitCommands as cmd pyfalog = Logger(__name__) @@ -100,6 +101,7 @@ class ProjectedView(d.Display): data[1] is typeID or index of data we want to manipulate """ sFit = Fit.getInstance() + fitID = self.mainFrame.getActiveFit() fit = sFit.getFit(self.mainFrame.getActiveFit()) if data[0] == "projected": @@ -109,12 +111,14 @@ class ProjectedView(d.Display): dstRow, _ = self.HitTest((x, y)) # Gather module information to get position module = fit.modules[int(data[1])] - sFit.project(fit.ID, module) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fit.ID)) + self.mainFrame.command.Submit(cmd.GuiAddProjectedCommand(fitID, module.itemID, 'item')) + # sFit.project(fit.ID, module) + # wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fit.ID)) elif data[0] == "market": - sFit = Fit.getInstance() - sFit.project(fit.ID, int(data[1])) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fit.ID)) + # sFit = Fit.getInstance() + self.mainFrame.command.Submit(cmd.GuiAddProjectedCommand(fitID, int(data[1]), 'item')) + # sFit.project(fit.ID, int(data[1])) + # wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fit.ID)) def kbEvent(self, event): keycode = event.GetKeyCode() @@ -131,10 +135,7 @@ class ProjectedView(d.Display): if type == "fit": activeFit = self.mainFrame.getActiveFit() if activeFit: - sFit = Fit.getInstance() - draggedFit = sFit.getFit(fitID) - sFit.project(activeFit, draggedFit) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=activeFit)) + self.mainFrame.command.Submit(cmd.GuiAddProjectedCommand(activeFit, fitID, 'fit')) def startDrag(self, event): row = event.GetIndex() diff --git a/gui/builtinContextMenus/project.py b/gui/builtinContextMenus/project.py index f06c29152..dbfa16724 100644 --- a/gui/builtinContextMenus/project.py +++ b/gui/builtinContextMenus/project.py @@ -5,7 +5,7 @@ import gui.globalEvents as GE import wx from service.fit import Fit from service.settings import ContextMenuSettings - +import gui.fitCommands as cmd class Project(ContextMenu): def __init__(self): @@ -35,10 +35,12 @@ class Project(ContextMenu): def activate(self, fullContext, selection, i): sFit = Fit.getInstance() fitID = self.mainFrame.getActiveFit() - trigger = sFit.project(fitID, selection[0]) - if trigger: - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) - self.mainFrame.additionsPane.select("Projected") + self.mainFrame.command.Submit(cmd.GuiAddProjectedCommand(fitID, selection[0].ID, 'item')) + + # trigger = sFit.project(fitID, selection[0]) + # if trigger: + # wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + # self.mainFrame.additionsPane.select("Projected") Project.register() diff --git a/gui/builtinContextMenus/tabbedFits.py b/gui/builtinContextMenus/tabbedFits.py index d8b516027..689622c3b 100644 --- a/gui/builtinContextMenus/tabbedFits.py +++ b/gui/builtinContextMenus/tabbedFits.py @@ -51,7 +51,6 @@ class TabbedFits(ContextMenu): return m def handleSelection(self, event): - sFit = Fit.getInstance() fitID = self.mainFrame.getActiveFit() fit = self.fitLookup[event.Id] @@ -59,8 +58,7 @@ class TabbedFits(ContextMenu): if self.context == 'commandView': self.mainFrame.command.Submit(cmd.GuiAddCommandCommand(fitID, fit.ID)) elif self.context == 'projected': - sFit.project(fitID, fit) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.GuiAddProjectedCommand(fitID, fit.ID, 'fit')) TabbedFits.register() diff --git a/gui/builtinContextMenus/whProjector.py b/gui/builtinContextMenus/whProjector.py index ac0bd5c1b..1ec8252e8 100644 --- a/gui/builtinContextMenus/whProjector.py +++ b/gui/builtinContextMenus/whProjector.py @@ -8,7 +8,7 @@ from service.fit import Fit from service.settings import ContextMenuSettings from itertools import chain import re - +import gui.fitCommands as cmd class WhProjector(ContextMenu): @@ -87,10 +87,8 @@ class WhProjector(ContextMenu): event.Skip() return - sFit = Fit.getInstance() fitID = self.mainFrame.getActiveFit() - sFit.project(fitID, swObj) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.GuiAddProjectedCommand(fitID, swObj.ID, 'item')) def buildMenu(self, data, local_menu, rootMenu, msw): for swType in sorted(data): diff --git a/gui/builtinShipBrowser/fitItem.py b/gui/builtinShipBrowser/fitItem.py index 73617a458..58aa0f553 100644 --- a/gui/builtinShipBrowser/fitItem.py +++ b/gui/builtinShipBrowser/fitItem.py @@ -202,9 +202,8 @@ class FitItem(SFItem.SFBrowserItem): if activeFit: sFit = Fit.getInstance() projectedFit = sFit.getFit(self.fitID) - sFit.project(activeFit, projectedFit) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=activeFit)) - self.mainFrame.additionsPane.select("Projected") + if self.mainFrame.command.Submit(cmd.GuiAddProjectedCommand(activeFit, projectedFit.ID, 'fit')): + self.mainFrame.additionsPane.select("Projected") def OnAddCommandFit(self, event): activeFit = self.mainFrame.getActiveFit() diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index 7abbd4141..f253af60c 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -12,4 +12,5 @@ from .guiRemoveBooster import GuiRemoveBoosterCommand from .guiAddCommand import GuiAddCommandCommand from .guiRemoveCommand import GuiRemoveCommandCommand from .guiSetMode import GuiSetModeCommand -from .guiToggleCommand import GuiToggleCommandCommand \ No newline at end of file +from .guiToggleCommand import GuiToggleCommandCommand +from .guiAddProjected import GuiAddProjectedCommand \ No newline at end of file diff --git a/gui/fitCommands/calc/fitAddProjectedModule.py b/gui/fitCommands/calc/fitAddProjectedModule.py new file mode 100644 index 000000000..bf9ebf6c2 --- /dev/null +++ b/gui/fitCommands/calc/fitAddProjectedModule.py @@ -0,0 +1,49 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +from eos.saveddata.module import Module +from eos.saveddata.drone import Drone +from eos.saveddata.fighter import Fighter +pyfalog = Logger(__name__) + + +class FitAddProjectedModuleCommand(wx.Command): + """" + from sFit.project + """ + def __init__(self, fitID, itemID): + wx.Command.__init__(self, True) + self.fitID = fitID + self.itemID = itemID + self.new_index = None + + def Do(self): + pyfalog.debug("Projecting fit ({0}) onto: {1}", self.fitID, self.itemID) + fit = eos.db.getFit(self.fitID) + item = eos.db.getItem(self.itemID, eager=("attributes", "group.category")) + + try: + module = Module(item) + except ValueError: + return False + + module.state = State.ACTIVE + if not module.canHaveState(module.state, fit): + module.state = State.OFFLINE + fit.projectedModules.append(module) + + eos.db.commit() + self.new_index = fit.projectedModules.index(module) + return True + + def Undo(self): + from gui.fitCommands.calc.fitRemoveProjectedModule import FitRemoveProjectedModuleCommand # avoids circular import + cmd = FitRemoveProjectedModuleCommand(self.fitID, self.new_index) + cmd.Do() + return True diff --git a/gui/fitCommands/calc/fitRemoveProjectedModule.py b/gui/fitCommands/calc/fitRemoveProjectedModule.py new file mode 100644 index 000000000..ffb398006 --- /dev/null +++ b/gui/fitCommands/calc/fitRemoveProjectedModule.py @@ -0,0 +1,39 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +from eos.saveddata.module import Module +from eos.saveddata.drone import Drone +from eos.saveddata.fighter import Fighter +pyfalog = Logger(__name__) + + +class FitRemoveProjectedModuleCommand(wx.Command): + """" + from sFit.project + """ + def __init__(self, fitID, position): + wx.Command.__init__(self, True) + self.fitID = fitID + self.position = position + self.removed_item = None + + def Do(self): + pyfalog.debug("Removing ({0}) onto: {1}", self.fitID, self.position) + fit = eos.db.getFit(self.fitID) + self.removed_item = fit.projectedModules[self.position].itemID + del fit.projectedModules[self.position] + + eos.db.commit() + return True + + def Undo(self): + from gui.fitCommands.calc.fitAddProjectedModule import FitAddProjectedModuleCommand + cmd = FitAddProjectedModuleCommand(self.fitID, self.removed_item) + cmd.Do() + return True diff --git a/gui/fitCommands/guiAddProjected.py b/gui/fitCommands/guiAddProjected.py new file mode 100644 index 000000000..e483fb84f --- /dev/null +++ b/gui/fitCommands/guiAddProjected.py @@ -0,0 +1,71 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from eos.saveddata.module import Module +from .calc.fitAddProjectedModule import FitAddProjectedModuleCommand +from logbook import Logger +import eos.db +pyfalog = Logger(__name__) + + +class GuiAddProjectedCommand(wx.Command): + def __init__(self, fitID, id, type='item'): + wx.Command.__init__(self, True, "Projected Add") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + self.id = id + self.type = type + + def Do(self): + result = False + # since we can project various types, we need to switch of the fit command. We can't do this switch easily in + # the fit command since each type might have a different kind of undo, easier to split it out + if self.type == 'item': + item = eos.db.getItem(self.id, eager=("attributes", "group.category")) + + if item.category.name == "Drone": + # @todo: this may need to be reworked once we visit drone commands + pyfalog.warn("DRONE PROJECTION NOT IMPLEMENTED") + # drone = None + # for d in fit.projectedDrones.find(item): + # if d is None or d.amountActive == d.amount or d.amount >= 5: + # drone = d + # break + # + # if drone is None: + # drone = Drone(item) + # fit.projectedDrones.append(drone) + # + # drone.amount += 1 + elif item.category.name == "Fighter": + pyfalog.warn("FIGHTER PROJECTION NOT IMPLEMENTED") + # fighter = Fighter(item) + # fit.projectedFighters.append(fighter) + elif item.group.name in Module.SYSTEM_GROUPS: + pyfalog.warn("WH PROJECTION NOT IMPLEMENTED") + # module = Module(item) + # module.state = State.ONLINE + # fit.projectedModules.append(module) + else: + # attempt a regular module projection + result = self.internal_history.Submit(FitAddProjectedModuleCommand(self.fitID, self.id)) + elif self.type == 'fit': + pyfalog.warn("FIT PROJECTION NOT IMPLEMENTED") + + if result: + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + diff --git a/service/fit.py b/service/fit.py index 238c5c58b..4916df143 100644 --- a/service/fit.py +++ b/service/fit.py @@ -397,6 +397,7 @@ class Fit(object): self.recalc(fit) return True + @deprecated def project(self, fitID, thing): pyfalog.debug("Projecting fit ({0}) onto: {1}", fitID, thing) if fitID is None: From 326e1e04c296e75911b6027a8a61d33a60996be3 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Sun, 5 Aug 2018 08:14:12 -0400 Subject: [PATCH 032/110] Reworked slot-copying logic so that we can call it explicitly outside the append. Needed for the fitting commands to know what the previous item ID was that it's replacing. --- eos/effectHandlerHelpers.py | 12 +++++++++--- gui/builtinAdditionPanes/boosterView.py | 2 +- gui/fitCommands/calc/fitAddBooster.py | 10 +++++++++- gui/fitCommands/calc/fitAddImplant.py | 8 ++++++++ gui/fitCommands/guiAddBooster.py | 2 ++ gui/fitCommands/guiRemoveBooster.py | 2 ++ 6 files changed, 31 insertions(+), 5 deletions(-) diff --git a/eos/effectHandlerHelpers.py b/eos/effectHandlerHelpers.py index 446273a45..3cba3e40f 100644 --- a/eos/effectHandlerHelpers.py +++ b/eos/effectHandlerHelpers.py @@ -197,14 +197,20 @@ class HandledImplantBoosterList(HandledList): self.remove(thing) return + self.makeRoom(thing) + HandledList.append(self, thing) + + def makeRoom(self, thing): # if needed, remove booster that was occupying slot oldObj = next((m for m in self if m.slot == thing.slot), None) if oldObj: - pyfalog.info("Slot {0} occupied with {1}, replacing with {2}", thing.slot, oldObj.item.name, thing.item.name) + pyfalog.info("Slot {0} occupied with {1}, replacing with {2}", thing.slot, oldObj.item.name, + thing.item.name) + itemID = oldObj.itemID oldObj.itemID = 0 # hack to remove from DB. See GH issue #324 self.remove(oldObj) - - HandledList.append(self, thing) + return itemID + return None class HandledSsoCharacterList(list): diff --git a/gui/builtinAdditionPanes/boosterView.py b/gui/builtinAdditionPanes/boosterView.py index ef9c88f2d..48b3ed36d 100644 --- a/gui/builtinAdditionPanes/boosterView.py +++ b/gui/builtinAdditionPanes/boosterView.py @@ -148,7 +148,7 @@ class BoosterView(d.Display): def removeBooster(self, booster): fitID = self.mainFrame.getActiveFit() - self.mainFrame.command.Submit(cmd.GuiRemoveImplantCommand(fitID, self.origional.index(booster))) + self.mainFrame.command.Submit(cmd.GuiRemoveBoosterCommand(fitID, self.origional.index(booster))) def click(self, event): event.Skip() diff --git a/gui/fitCommands/calc/fitAddBooster.py b/gui/fitCommands/calc/fitAddBooster.py index 356a742da..61f4f5b49 100644 --- a/gui/fitCommands/calc/fitAddBooster.py +++ b/gui/fitCommands/calc/fitAddBooster.py @@ -19,7 +19,7 @@ class FitAddBoosterCommand(wx.Command): self.fitID = fitID self.itemID = itemID self.new_index = None - + self.old_item = None def Do(self): pyfalog.debug("Adding booster ({0}) to fit ID: {1}", self.itemID, self.fitID) @@ -31,11 +31,19 @@ class FitAddBoosterCommand(wx.Command): pyfalog.warning("Invalid item: {0}", self.itemID) return False + self.old_item = fit.boosters.makeRoom(booster) + fit.boosters.append(booster) self.new_index = fit.boosters.index(booster) return True def Undo(self): + if self.old_item: + # If we had an item in the slot previously, add it back. + cmd = FitAddBoosterCommand(self.fitID, self.old_item) + cmd.Do() + return True + from .fitRemoveBooster import FitRemoveBoosterCommand # Avoid circular import cmd = FitRemoveBoosterCommand(self.fitID, self.new_index) cmd.Do() diff --git a/gui/fitCommands/calc/fitAddImplant.py b/gui/fitCommands/calc/fitAddImplant.py index 91bc5be61..b65b53e69 100644 --- a/gui/fitCommands/calc/fitAddImplant.py +++ b/gui/fitCommands/calc/fitAddImplant.py @@ -18,6 +18,7 @@ class FitAddImplantCommand(wx.Command): wx.Command.__init__(self, True, "Cargo add") self.fitID = fitID self.itemID = itemID + self.old_item = None def Do(self): pyfalog.debug("Adding implant to fit ({0}) for item ID: {1}", self.fitID, self.itemID) @@ -30,11 +31,18 @@ class FitAddImplantCommand(wx.Command): pyfalog.warning("Invalid item: {0}", self.itemID) return False + self.old_item = fit.implants.makeRoom(implant) fit.implants.append(implant) self.new_index = fit.implants.index(implant) return True def Undo(self): + if self.old_item: + # If we had an item in the slot previously, add it back. + cmd = FitAddImplantCommand(self.fitID, self.old_item) + cmd.Do() + return True + from .fitRemoveImplant import FitRemoveImplantCommand # Avoid circular import cmd = FitRemoveImplantCommand(self.fitID, self.new_index) cmd.Do() diff --git a/gui/fitCommands/guiAddBooster.py b/gui/fitCommands/guiAddBooster.py index 392ce3034..3dc423cf6 100644 --- a/gui/fitCommands/guiAddBooster.py +++ b/gui/fitCommands/guiAddBooster.py @@ -17,6 +17,7 @@ class GuiAddBoosterCommand(wx.Command): def Do(self): if self.internal_history.Submit(self.cmd): + self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True return False @@ -24,6 +25,7 @@ class GuiAddBoosterCommand(wx.Command): def Undo(self): for x in self.internal_history.Commands: self.internal_history.Undo() + self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True diff --git a/gui/fitCommands/guiRemoveBooster.py b/gui/fitCommands/guiRemoveBooster.py index 92578b0b8..2155ab120 100644 --- a/gui/fitCommands/guiRemoveBooster.py +++ b/gui/fitCommands/guiRemoveBooster.py @@ -17,6 +17,7 @@ class GuiRemoveBoosterCommand(wx.Command): def Do(self): if self.internal_history.Submit(self.cmd): + self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True return False @@ -24,6 +25,7 @@ class GuiRemoveBoosterCommand(wx.Command): def Undo(self): for x in self.internal_history.Commands: self.internal_history.Undo() + self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True From 804d90c50cf3029c5cde90eaf988e3a40353b6eb Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Sun, 5 Aug 2018 08:17:24 -0400 Subject: [PATCH 033/110] Don't run adding command on implants and boosters if item is already item --- gui/fitCommands/calc/fitAddBooster.py | 6 +++++- gui/fitCommands/calc/fitAddImplant.py | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gui/fitCommands/calc/fitAddBooster.py b/gui/fitCommands/calc/fitAddBooster.py index 61f4f5b49..d030c4026 100644 --- a/gui/fitCommands/calc/fitAddBooster.py +++ b/gui/fitCommands/calc/fitAddBooster.py @@ -20,11 +20,16 @@ class FitAddBoosterCommand(wx.Command): self.itemID = itemID self.new_index = None self.old_item = None + def Do(self): pyfalog.debug("Adding booster ({0}) to fit ID: {1}", self.itemID, self.fitID) fit = eos.db.getFit(self.fitID) item = eos.db.getItem(self.itemID, eager="attributes") + + if next((x for x in fit.boosters if x.itemID == self.itemID), None): + return False # already have item in list of boosters + try: booster = Booster(item) except ValueError: @@ -32,7 +37,6 @@ class FitAddBoosterCommand(wx.Command): return False self.old_item = fit.boosters.makeRoom(booster) - fit.boosters.append(booster) self.new_index = fit.boosters.index(booster) return True diff --git a/gui/fitCommands/calc/fitAddImplant.py b/gui/fitCommands/calc/fitAddImplant.py index b65b53e69..ae8ea848b 100644 --- a/gui/fitCommands/calc/fitAddImplant.py +++ b/gui/fitCommands/calc/fitAddImplant.py @@ -25,6 +25,10 @@ class FitAddImplantCommand(wx.Command): fit = eos.db.getFit(self.fitID) item = eos.db.getItem(self.itemID, eager="attributes") + + if next((x for x in fit.implants if x.itemID == self.itemID), None): + return False # already have item in list of implants + try: implant = Implant(item) except ValueError: From d6b280d3ccb92453a72575ce7846e3475de99276 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Thu, 9 Aug 2018 15:52:34 -0400 Subject: [PATCH 034/110] Working commit for adding / removing projected modules / environments --- eos/effectHandlerHelpers.py | 16 ++++++++++------ gui/builtinAdditionPanes/projectedView.py | 3 +-- gui/builtinContextMenus/itemRemove.py | 5 +++-- gui/fitCommands/__init__.py | 3 ++- gui/fitCommands/guiAddProjected.py | 6 ++---- service/fit.py | 1 + 6 files changed, 19 insertions(+), 15 deletions(-) diff --git a/eos/effectHandlerHelpers.py b/eos/effectHandlerHelpers.py index 3cba3e40f..194429d31 100644 --- a/eos/effectHandlerHelpers.py +++ b/eos/effectHandlerHelpers.py @@ -236,12 +236,7 @@ class HandledProjectedModList(HandledList): isSystemEffect = proj.item.group.name == "Effect Beacon" if isSystemEffect: - # remove other system effects - only 1 per fit plz - oldEffect = next((m for m in self if m.item.group.name == "Effect Beacon"), None) - - if oldEffect: - pyfalog.info("System effect occupied with {0}, replacing with {1}", oldEffect.item.name, proj.item.name) - self.remove(oldEffect) + self.makeRoom(proj) HandledList.append(self, proj) @@ -249,6 +244,15 @@ class HandledProjectedModList(HandledList): if not proj.item.isType("projected") and not isSystemEffect: self.remove(proj) + def makeRoom(self, proj): + # remove other system effects - only 1 per fit plz + oldEffect = next((m for m in self if m.item.group.name == "Effect Beacon"), None) + + if oldEffect: + pyfalog.info("System effect occupied with {0}, replacing with {1}", oldEffect.item.name, proj.item.name) + self.remove(oldEffect) + return oldEffect.itemID + return None class HandledProjectedDroneList(HandledDroneCargoList): def append(self, proj): diff --git a/gui/builtinAdditionPanes/projectedView.py b/gui/builtinAdditionPanes/projectedView.py index 4cb18abd8..293f34cf2 100644 --- a/gui/builtinAdditionPanes/projectedView.py +++ b/gui/builtinAdditionPanes/projectedView.py @@ -323,5 +323,4 @@ class ProjectedView(d.Display): sFit = Fit.getInstance() thing = self.get(row) if thing: # thing doesn't exist if it's the dummy value - sFit.removeProjected(fitID, thing) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.GuiRemoveProjectedCommand(fitID, thing)) diff --git a/gui/builtinContextMenus/itemRemove.py b/gui/builtinContextMenus/itemRemove.py index d075eba2e..0d464461d 100644 --- a/gui/builtinContextMenus/itemRemove.py +++ b/gui/builtinContextMenus/itemRemove.py @@ -54,10 +54,11 @@ class ItemRemove(ContextMenu): self.mainFrame.command.Submit(cmd.GuiRemoveCargoCommand(fitID, selection[0].itemID)) return # the command takes care of the PostEvent elif srcContext in ("projectedFit", "projectedModule", "projectedDrone", "projectedFighter"): - sFit.removeProjected(fitID, selection[0]) + self.mainFrame.command.Submit(cmd.GuiRemoveProjectedCommand(fitID, selection[0])) + return # the command takes care of the PostEvent elif srcContext == "commandFit": self.mainFrame.command.Submit(cmd.GuiRemoveCommandCommand(fitID, selection[0].ID)) - return + return # the command takes care of the PostEvent wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index f253af60c..692aa6589 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -13,4 +13,5 @@ from .guiAddCommand import GuiAddCommandCommand from .guiRemoveCommand import GuiRemoveCommandCommand from .guiSetMode import GuiSetModeCommand from .guiToggleCommand import GuiToggleCommandCommand -from .guiAddProjected import GuiAddProjectedCommand \ No newline at end of file +from .guiAddProjected import GuiAddProjectedCommand +from .guiRemoveProjected import GuiRemoveProjectedCommand \ No newline at end of file diff --git a/gui/fitCommands/guiAddProjected.py b/gui/fitCommands/guiAddProjected.py index e483fb84f..cc556f32c 100644 --- a/gui/fitCommands/guiAddProjected.py +++ b/gui/fitCommands/guiAddProjected.py @@ -5,6 +5,7 @@ import gui.mainFrame from gui import globalEvents as GE from eos.saveddata.module import Module from .calc.fitAddProjectedModule import FitAddProjectedModuleCommand +from .calc.fitAddProjectedEnv import FitAddProjectedEnvCommand from logbook import Logger import eos.db pyfalog = Logger(__name__) @@ -46,10 +47,7 @@ class GuiAddProjectedCommand(wx.Command): # fighter = Fighter(item) # fit.projectedFighters.append(fighter) elif item.group.name in Module.SYSTEM_GROUPS: - pyfalog.warn("WH PROJECTION NOT IMPLEMENTED") - # module = Module(item) - # module.state = State.ONLINE - # fit.projectedModules.append(module) + result = self.internal_history.Submit(FitAddProjectedEnvCommand(self.fitID, self.id)) else: # attempt a regular module projection result = self.internal_history.Submit(FitAddProjectedModuleCommand(self.fitID, self.id)) diff --git a/service/fit.py b/service/fit.py index 4916df143..d1fab9dbe 100644 --- a/service/fit.py +++ b/service/fit.py @@ -528,6 +528,7 @@ class Fit(object): eos.db.commit() self.recalc(fit) + @deprecated def removeProjected(self, fitID, thing): pyfalog.debug("Removing projection on fit ({0}) from: {1}", fitID, thing) fit = eos.db.getFit(fitID) From bd975becf165ea433bca491ccf0bc9d80c38def3 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Fri, 10 Aug 2018 12:47:51 -0400 Subject: [PATCH 035/110] Continue work on projections (adding/removing projected environment and fit) --- eos/db/saveddata/fit.py | 2 +- eos/saveddata/fit.py | 4 +- gui/fitCommands/calc/fitAddProjectedEnv.py | 59 +++++++++++++ gui/fitCommands/calc/fitAddProjectedFit.py | 49 +++++++++++ gui/fitCommands/calc/fitRemoveProjectedEnv.py | 44 ++++++++++ gui/fitCommands/calc/fitRemoveProjectedFit.py | 46 +++++++++++ gui/fitCommands/guiAddProjected.py | 3 +- gui/fitCommands/guiRemoveProjected.py | 82 +++++++++++++++++++ service/fit.py | 4 +- 9 files changed, 287 insertions(+), 6 deletions(-) create mode 100644 gui/fitCommands/calc/fitAddProjectedEnv.py create mode 100644 gui/fitCommands/calc/fitAddProjectedFit.py create mode 100644 gui/fitCommands/calc/fitRemoveProjectedEnv.py create mode 100644 gui/fitCommands/calc/fitRemoveProjectedFit.py create mode 100644 gui/fitCommands/guiRemoveProjected.py diff --git a/eos/db/saveddata/fit.py b/eos/db/saveddata/fit.py index 9701d5d6b..7e3c76f5f 100644 --- a/eos/db/saveddata/fit.py +++ b/eos/db/saveddata/fit.py @@ -132,7 +132,7 @@ class CommandFit(object): ) -es_Fit._Fit__projectedFits = association_proxy( +es_Fit.projectedFitDict = association_proxy( "victimOf", # look at the victimOf association... "source_fit", # .. and return the source fits creator=lambda sourceID, source_fit: ProjectedFit(sourceID, source_fit) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 56c4df1a2..ad4a48ebf 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -257,7 +257,7 @@ class Fit(object): def projectedFits(self): # only in extreme edge cases will the fit be invalid, but to be sure do # not return them. - return [fit for fit in list(self.__projectedFits.values()) if not fit.isInvalid] + return [fit for fit in list(self.projectedFitDict.values()) if not fit.isInvalid] @property def commandFits(self): @@ -1615,7 +1615,7 @@ class Fit(object): forceUpdateSavedata(fit) for fit in self.projectedFits: - copy_ship.__projectedFits[fit.ID] = fit + copy_ship.projectedFitDict[fit.ID] = fit forceUpdateSavedata(fit) copyProjectionInfo = fit.getProjectionInfo(copy_ship.ID) originalProjectionInfo = fit.getProjectionInfo(self.ID) diff --git a/gui/fitCommands/calc/fitAddProjectedEnv.py b/gui/fitCommands/calc/fitAddProjectedEnv.py new file mode 100644 index 000000000..974f8efa5 --- /dev/null +++ b/gui/fitCommands/calc/fitAddProjectedEnv.py @@ -0,0 +1,59 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +from eos.saveddata.module import Module +from eos.saveddata.drone import Drone +from eos.saveddata.fighter import Fighter +from .fitRemoveProjectedModule import FitRemoveProjectedModuleCommand +pyfalog = Logger(__name__) + + +class FitAddProjectedEnvCommand(wx.Command): + """" + from sFit.project + """ + def __init__(self, fitID, itemID): + wx.Command.__init__(self, True) + self.fitID = fitID + self.itemID = itemID + self.new_index = None + self.old_item = None + + def Do(self): + pyfalog.debug("Projecting fit ({0}) onto: {1}", self.fitID, self.itemID) + fit = eos.db.getFit(self.fitID) + item = eos.db.getItem(self.itemID, eager=("attributes", "group.category")) + + try: + module = Module(item) + except ValueError: + return False + + # todo: thing to check for existing environmental effects + + self.old_item = fit.projectedModules.makeRoom(module) + + module.state = State.ONLINE + fit.projectedModules.append(module) + + eos.db.commit() + self.new_index = fit.projectedModules.index(module) + return True + + def Undo(self): + if self.old_item: + # If we had an item in the slot previously, add it back. + cmd = FitAddProjectedEnvCommand(self.fitID, self.old_item) + cmd.Do() + return True + from gui.fitCommands.calc.fitRemoveProjectedEnv import FitRemoveProjectedEnvCommand # avoids circular import + cmd = FitRemoveProjectedEnvCommand(self.fitID, self.itemID) + cmd.Do() + + return True diff --git a/gui/fitCommands/calc/fitAddProjectedFit.py b/gui/fitCommands/calc/fitAddProjectedFit.py new file mode 100644 index 000000000..70fdece0a --- /dev/null +++ b/gui/fitCommands/calc/fitAddProjectedFit.py @@ -0,0 +1,49 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +from eos.saveddata.module import Module +from eos.saveddata.drone import Drone +from eos.saveddata.fighter import Fighter +from .fitRemoveProjectedModule import FitRemoveProjectedModuleCommand +pyfalog = Logger(__name__) + + +class FitAddProjectedFitCommand(wx.Command): + """" + from sFit.project + """ + def __init__(self, fitID, projectedFitID): + wx.Command.__init__(self, True) + self.fitID = fitID + self.projectedFitID = projectedFitID + self.new_index = None + self.old_item = None + + def Do(self): + pyfalog.debug("Projecting fit ({0}) onto: {1}", self.fitID, self.projectedFitID) + fit = eos.db.getFit(self.fitID) + projectedFit = eos.db.getFit(self.projectedFitID) + + if projectedFit is None or projectedFit in fit.projectedFits: + return False + + fit.projectedFitDict[projectedFit.ID] = projectedFit + + # this bit is required -- see GH issue # 83 + eos.db.saveddata_session.flush() + eos.db.saveddata_session.refresh(projectedFit) + + eos.db.commit() + return True + + def Undo(self): + from gui.fitCommands.calc.fitRemoveProjectedFit import FitRemoveProjectedFitCommand # avoids circular import + cmd = FitRemoveProjectedFitCommand(self.fitID, self.projectedFitID) + cmd.Do() + return True diff --git a/gui/fitCommands/calc/fitRemoveProjectedEnv.py b/gui/fitCommands/calc/fitRemoveProjectedEnv.py new file mode 100644 index 000000000..b53f40ab0 --- /dev/null +++ b/gui/fitCommands/calc/fitRemoveProjectedEnv.py @@ -0,0 +1,44 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +from eos.saveddata.module import Module +from eos.saveddata.drone import Drone +from eos.saveddata.fighter import Fighter +from .fitRemoveProjectedModule import FitRemoveProjectedModuleCommand +pyfalog = Logger(__name__) + + +# this has the same exact definition that regular rpojected modules, besides the undo +class FitRemoveProjectedEnvCommand(FitRemoveProjectedModuleCommand): + """" + from sFit.project + """ + + def __init__(self, fitID, itemID): + wx.Command.__init__(self, True) + self.fitID = fitID + self.itemID = itemID + self.removed_item = None + + def Do(self): + pyfalog.debug("Removing ({0}) onto: {1}", self.fitID, self.itemID) + fit = eos.db.getFit(self.fitID) + + item = next((x for x in fit.projectedModules if x.itemID == self.itemID), None) + self.removed_item = item.itemID + fit.projectedModules.remove(item) + + eos.db.commit() + return True + + def Undo(self): + from gui.fitCommands.calc.fitAddProjectedEnv import FitAddProjectedEnvCommand + cmd = FitAddProjectedEnvCommand(self.fitID, self.removed_item) + cmd.Do() + return True diff --git a/gui/fitCommands/calc/fitRemoveProjectedFit.py b/gui/fitCommands/calc/fitRemoveProjectedFit.py new file mode 100644 index 000000000..829c7d3ea --- /dev/null +++ b/gui/fitCommands/calc/fitRemoveProjectedFit.py @@ -0,0 +1,46 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +from eos.saveddata.module import Module +from eos.saveddata.drone import Drone +from eos.saveddata.fighter import Fighter +from .fitRemoveProjectedModule import FitRemoveProjectedModuleCommand +pyfalog = Logger(__name__) + + +# this has the same exact definition that regular rpojected modules, besides the undo +class FitRemoveProjectedFitCommand(FitRemoveProjectedModuleCommand): + """" + from sFit.project + """ + + def __init__(self, fitID, projectedFitID): + wx.Command.__init__(self, True) + self.fitID = fitID + self.projectedFitID = projectedFitID + + def Do(self): + pyfalog.debug("Removing ({0}) onto: {1}", self.fitID, self.projectedFitID) + fit = eos.db.getFit(self.fitID) + projectedFit = eos.db.getFit(self.projectedFitID) + + if projectedFit is None: + return False + + del fit.projectedFitDict[projectedFit.ID] + + eos.db.commit() + return True + + def Undo(self): + # todo: figure out if I need to return false here if the fit doesn't return true (means it was deleted) + from gui.fitCommands.calc.fitAddProjectedFit import FitAddProjectedFitCommand + cmd = FitAddProjectedFitCommand(self.fitID, self.projectedFitID) + cmd.Do() + return True diff --git a/gui/fitCommands/guiAddProjected.py b/gui/fitCommands/guiAddProjected.py index cc556f32c..ac6c65c23 100644 --- a/gui/fitCommands/guiAddProjected.py +++ b/gui/fitCommands/guiAddProjected.py @@ -6,6 +6,7 @@ from gui import globalEvents as GE from eos.saveddata.module import Module from .calc.fitAddProjectedModule import FitAddProjectedModuleCommand from .calc.fitAddProjectedEnv import FitAddProjectedEnvCommand +from .calc.fitAddProjectedFit import FitAddProjectedFitCommand from logbook import Logger import eos.db pyfalog = Logger(__name__) @@ -52,7 +53,7 @@ class GuiAddProjectedCommand(wx.Command): # attempt a regular module projection result = self.internal_history.Submit(FitAddProjectedModuleCommand(self.fitID, self.id)) elif self.type == 'fit': - pyfalog.warn("FIT PROJECTION NOT IMPLEMENTED") + result = self.internal_history.Submit(FitAddProjectedFitCommand(self.fitID, self.id)) if result: self.sFit.recalc(self.fitID) diff --git a/gui/fitCommands/guiRemoveProjected.py b/gui/fitCommands/guiRemoveProjected.py new file mode 100644 index 000000000..f3b36478c --- /dev/null +++ b/gui/fitCommands/guiRemoveProjected.py @@ -0,0 +1,82 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from eos.saveddata.module import Module +from .calc.fitRemoveProjectedModule import FitRemoveProjectedModuleCommand +from .calc.fitRemoveProjectedEnv import FitRemoveProjectedEnvCommand +from .calc.fitRemoveProjectedFit import FitRemoveProjectedFitCommand +from logbook import Logger +import eos.db +pyfalog = Logger(__name__) + +from eos.saveddata.drone import Drone +from eos.saveddata.module import Module +from eos.saveddata.fighter import Fighter + + +class GuiRemoveProjectedCommand(wx.Command): + def __init__(self, fitID, thing): + wx.Command.__init__(self, True, "Projected Add") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + fit = self.sFit.getFit(fitID) + + if isinstance(thing, Drone): + self.data = fit.projectedDrones.index(thing) + self.type = 'drone' + elif isinstance(thing, Module): + # todo: projected stuff should be wrapped in a projected class wrapper for easier maintainence + if thing.item.group.name in Module.SYSTEM_GROUPS: + self.type = 'env' + self.data = thing.itemID + else: + self.type = 'module' + self.data = fit.projectedModules.index(thing) + elif isinstance(thing, Fighter): + self.data = fit.projectedFighters.index(thing) + self.type = 'fighter' + else: + # todo: fix! + self.data = thing.ID + self.type = 'fit' + + def Do(self): + result = False + # since we can project various types, we need to switch of the fit command. We can't do this switch easily in + # the fit command since each type might have a different kind of undo, easier to split it out + if self.type == 'module': + result = self.internal_history.Submit(FitRemoveProjectedModuleCommand(self.fitID, self.data)) + elif self.type == 'env': + result = self.internal_history.Submit(FitRemoveProjectedEnvCommand(self.fitID, self.data)) + elif self.type == 'fit': + result = self.internal_history.Submit(FitRemoveProjectedFitCommand(self.fitID, self.data)) + + # if item.category.name == "Drone": + # pyfalog.warn("DRONE REMOVE PROJECTION NOT IMPLEMENTED") + # elif item.category.name == "Fighter": + # pyfalog.warn("FIGHTER REMOVE PROJECTION NOT IMPLEMENTED") + # elif item.group.name in Module.SYSTEM_GROUPS: + # result = self.internal_history.Submit(FitRemoveProjectedEnvCommand(self.fitID, self.id)) + # else: + # # attempt a regular module projection + # + # elif self.type == 'fit': + # pyfalog.warn("FIT REMOVE PROJECTION NOT IMPLEMENTED") + + if result: + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + diff --git a/service/fit.py b/service/fit.py index d1fab9dbe..c19513dd0 100644 --- a/service/fit.py +++ b/service/fit.py @@ -416,7 +416,7 @@ class Fit(object): if thing in fit.projectedFits: return - fit.__projectedFits[thing.ID] = thing + fit.projectedFitDict[thing.ID] = thing # this bit is required -- see GH issue # 83 eos.db.saveddata_session.flush() @@ -539,7 +539,7 @@ class Fit(object): elif isinstance(thing, es_Fighter): fit.projectedFighters.remove(thing) else: - del fit.__projectedFits[thing.ID] + del fit.projectedFitDict[thing.ID] # fit.projectedFits.remove(thing) eos.db.commit() From 391c3a32a6385e6fa11023bee7c00f78c4d2a4b3 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Fri, 10 Aug 2018 13:29:26 -0400 Subject: [PATCH 036/110] commands for add / remove projected fighters --- .../calc/fitAddProjectedFighter.py | 47 +++++++++++++++++++ .../calc/fitRemoveProjectedFighter.py | 44 +++++++++++++++++ gui/fitCommands/guiAddProjected.py | 6 +-- gui/fitCommands/guiRemoveProjected.py | 3 ++ 4 files changed, 96 insertions(+), 4 deletions(-) create mode 100644 gui/fitCommands/calc/fitAddProjectedFighter.py create mode 100644 gui/fitCommands/calc/fitRemoveProjectedFighter.py diff --git a/gui/fitCommands/calc/fitAddProjectedFighter.py b/gui/fitCommands/calc/fitAddProjectedFighter.py new file mode 100644 index 000000000..df0163c01 --- /dev/null +++ b/gui/fitCommands/calc/fitAddProjectedFighter.py @@ -0,0 +1,47 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +from eos.saveddata.fighter import Fighter +from eos.saveddata.drone import Drone +pyfalog = Logger(__name__) + + +class FitAddProjectedFighterCommand(wx.Command): + """" + from sFit.project + """ + def __init__(self, fitID, itemID): + wx.Command.__init__(self, True) + self.fitID = fitID + self.itemID = itemID + self.new_index = None + + def Do(self): + pyfalog.debug("Projecting fit ({0}) onto: {1}", self.fitID, self.itemID) + fit = eos.db.getFit(self.fitID) + item = eos.db.getItem(self.itemID, eager=("attributes", "group.category")) + + try: + fighter = Fighter(item) + except ValueError: + return False + + fit.projectedFighters.append(fighter) + # sometimes fighters aren't added because they aren't valid projectionable ones. todo: move that logic into here + if fighter in fit.projectedFighters: + eos.db.commit() + self.new_index = fit.projectedFighters.index(fighter) + return True + return False + + def Undo(self): + from gui.fitCommands.calc.fitRemoveProjectedFighter import FitRemoveProjectedFighterCommand # avoids circular import + cmd = FitRemoveProjectedFighterCommand(self.fitID, self.new_index) + cmd.Do() + return True diff --git a/gui/fitCommands/calc/fitRemoveProjectedFighter.py b/gui/fitCommands/calc/fitRemoveProjectedFighter.py new file mode 100644 index 000000000..47ae53603 --- /dev/null +++ b/gui/fitCommands/calc/fitRemoveProjectedFighter.py @@ -0,0 +1,44 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +from eos.saveddata.module import Module +from eos.saveddata.drone import Drone +from eos.saveddata.fighter import Fighter +from .fitRemoveProjectedModule import FitRemoveProjectedModuleCommand +pyfalog = Logger(__name__) + + +# this has the same exact definition that regular rpojected modules, besides the undo +class FitRemoveProjectedFighterCommand(FitRemoveProjectedModuleCommand): + """" + from sFit.project + """ + + def __init__(self, fitID, position): + wx.Command.__init__(self, True) + self.fitID = fitID + self.position = position + self.removed_item = None + + def Do(self): + pyfalog.debug("Removing ({0}) onto: {1}", self.fitID, self.position) + fit = eos.db.getFit(self.fitID) + + fighter = fit.projectedFighters[self.position] + fit.projectedFighters.remove(fighter) + self.removed_item = fighter.itemID + + eos.db.commit() + return True + + def Undo(self): + from gui.fitCommands.calc.fitAddProjectedFighter import FitAddProjectedFighterCommand + cmd = FitAddProjectedFighterCommand(self.fitID, self.removed_item) + cmd.Do() + return True diff --git a/gui/fitCommands/guiAddProjected.py b/gui/fitCommands/guiAddProjected.py index ac6c65c23..895678e1b 100644 --- a/gui/fitCommands/guiAddProjected.py +++ b/gui/fitCommands/guiAddProjected.py @@ -7,6 +7,7 @@ from eos.saveddata.module import Module from .calc.fitAddProjectedModule import FitAddProjectedModuleCommand from .calc.fitAddProjectedEnv import FitAddProjectedEnvCommand from .calc.fitAddProjectedFit import FitAddProjectedFitCommand +from .calc.fitAddProjectedFighter import FitAddProjectedFighterCommand from logbook import Logger import eos.db pyfalog = Logger(__name__) @@ -44,13 +45,10 @@ class GuiAddProjectedCommand(wx.Command): # # drone.amount += 1 elif item.category.name == "Fighter": - pyfalog.warn("FIGHTER PROJECTION NOT IMPLEMENTED") - # fighter = Fighter(item) - # fit.projectedFighters.append(fighter) + result = self.internal_history.Submit(FitAddProjectedFighterCommand(self.fitID, self.id)) elif item.group.name in Module.SYSTEM_GROUPS: result = self.internal_history.Submit(FitAddProjectedEnvCommand(self.fitID, self.id)) else: - # attempt a regular module projection result = self.internal_history.Submit(FitAddProjectedModuleCommand(self.fitID, self.id)) elif self.type == 'fit': result = self.internal_history.Submit(FitAddProjectedFitCommand(self.fitID, self.id)) diff --git a/gui/fitCommands/guiRemoveProjected.py b/gui/fitCommands/guiRemoveProjected.py index f3b36478c..e9e2d6c7b 100644 --- a/gui/fitCommands/guiRemoveProjected.py +++ b/gui/fitCommands/guiRemoveProjected.py @@ -7,6 +7,7 @@ from eos.saveddata.module import Module from .calc.fitRemoveProjectedModule import FitRemoveProjectedModuleCommand from .calc.fitRemoveProjectedEnv import FitRemoveProjectedEnvCommand from .calc.fitRemoveProjectedFit import FitRemoveProjectedFitCommand +from .calc.fitRemoveProjectedFighter import FitRemoveProjectedFighterCommand from logbook import Logger import eos.db pyfalog = Logger(__name__) @@ -54,6 +55,8 @@ class GuiRemoveProjectedCommand(wx.Command): result = self.internal_history.Submit(FitRemoveProjectedEnvCommand(self.fitID, self.data)) elif self.type == 'fit': result = self.internal_history.Submit(FitRemoveProjectedFitCommand(self.fitID, self.data)) + elif self.type == 'fighter': + result = self.internal_history.Submit(FitRemoveProjectedFighterCommand(self.fitID, self.data)) # if item.category.name == "Drone": # pyfalog.warn("DRONE REMOVE PROJECTION NOT IMPLEMENTED") From 2164588329da47693733c842150ec895c01393b2 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Sun, 12 Aug 2018 17:49:58 -0400 Subject: [PATCH 037/110] projected drone commands --- gui/fitCommands/calc/fitAddProjectedDrone.py | 52 +++++++++++++++++++ .../calc/fitRemoveProjectedDrone.py | 51 ++++++++++++++++++ .../calc/fitRemoveProjectedFighter.py | 2 +- gui/fitCommands/guiAddProjected.py | 15 +----- gui/fitCommands/guiRemoveProjected.py | 24 +++++---- 5 files changed, 121 insertions(+), 23 deletions(-) create mode 100644 gui/fitCommands/calc/fitAddProjectedDrone.py create mode 100644 gui/fitCommands/calc/fitRemoveProjectedDrone.py diff --git a/gui/fitCommands/calc/fitAddProjectedDrone.py b/gui/fitCommands/calc/fitAddProjectedDrone.py new file mode 100644 index 000000000..9109c4b7b --- /dev/null +++ b/gui/fitCommands/calc/fitAddProjectedDrone.py @@ -0,0 +1,52 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +from eos.saveddata.module import Module +from eos.saveddata.drone import Drone +from eos.saveddata.fighter import Fighter +from .fitRemoveProjectedModule import FitRemoveProjectedModuleCommand +pyfalog = Logger(__name__) + + +class FitAddProjectedDroneCommand(wx.Command): + """" + from sFit.project + """ + def __init__(self, fitID, itemID): + wx.Command.__init__(self, True) + self.fitID = fitID + self.itemID = itemID + self.index = None + + def Do(self): + pyfalog.debug("Projecting fit ({0}) onto: {1}", self.fitID, self.itemID) + fit = eos.db.getFit(self.fitID) + item = eos.db.getItem(self.itemID) + + drone = None + for d in fit.projectedDrones.find(item): + if d is None or d.amountActive == d.amount or d.amount >= 5: + drone = d + break + + if drone is None: + drone = Drone(item) + fit.projectedDrones.append(drone) + + self.index = fit.projectedDrones.index(drone) + drone.amount += 1 + + eos.db.commit() + return True + + def Undo(self): + from gui.fitCommands.calc.fitRemoveProjectedDrone import FitRemoveProjectedDroneCommand # avoids circular import + cmd = FitRemoveProjectedDroneCommand(self.fitID, self.index) + cmd.Do() + return True diff --git a/gui/fitCommands/calc/fitRemoveProjectedDrone.py b/gui/fitCommands/calc/fitRemoveProjectedDrone.py new file mode 100644 index 000000000..3742dc9eb --- /dev/null +++ b/gui/fitCommands/calc/fitRemoveProjectedDrone.py @@ -0,0 +1,51 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +from eos.saveddata.module import Module +from eos.saveddata.drone import Drone +from eos.saveddata.fighter import Fighter +pyfalog = Logger(__name__) + + +# this has the same exact definition that regular projected modules, besides the undo +class FitRemoveProjectedDroneCommand(wx.Command): + """" + from sFit.project + """ + + def __init__(self, fitID, position, stack=False): + wx.Command.__init__(self, True) + self.fitID = fitID + self.position = position + self.removed_item = None + self.stack = stack + + def Do(self): + pyfalog.debug("Removing ({0}) onto: {1}", self.fitID, self.position) + fit = eos.db.getFit(self.fitID) + + drone = fit.projectedDrones[self.position] + if self.stack: + fit.projectedDrones.remove(drone) + else: + if drone.amount > 1: + drone.amount -= 1 + else: + fit.projectedDrones.remove(drone) + + self.drone_item = drone.itemID + + eos.db.commit() + return True + + def Undo(self): + from gui.fitCommands.calc.fitAddProjectedDrone import FitAddProjectedDroneCommand + cmd = FitAddProjectedDroneCommand(self.fitID, self.drone_item) + cmd.Do() + return True diff --git a/gui/fitCommands/calc/fitRemoveProjectedFighter.py b/gui/fitCommands/calc/fitRemoveProjectedFighter.py index 47ae53603..186ee0b43 100644 --- a/gui/fitCommands/calc/fitRemoveProjectedFighter.py +++ b/gui/fitCommands/calc/fitRemoveProjectedFighter.py @@ -15,7 +15,7 @@ pyfalog = Logger(__name__) # this has the same exact definition that regular rpojected modules, besides the undo -class FitRemoveProjectedFighterCommand(FitRemoveProjectedModuleCommand): +class FitRemoveProjectedFighterCommand(wx.Command): """" from sFit.project """ diff --git a/gui/fitCommands/guiAddProjected.py b/gui/fitCommands/guiAddProjected.py index 895678e1b..7bc81bb76 100644 --- a/gui/fitCommands/guiAddProjected.py +++ b/gui/fitCommands/guiAddProjected.py @@ -8,6 +8,7 @@ from .calc.fitAddProjectedModule import FitAddProjectedModuleCommand from .calc.fitAddProjectedEnv import FitAddProjectedEnvCommand from .calc.fitAddProjectedFit import FitAddProjectedFitCommand from .calc.fitAddProjectedFighter import FitAddProjectedFighterCommand +from .calc.fitAddProjectedDrone import FitAddProjectedDroneCommand from logbook import Logger import eos.db pyfalog = Logger(__name__) @@ -31,19 +32,7 @@ class GuiAddProjectedCommand(wx.Command): item = eos.db.getItem(self.id, eager=("attributes", "group.category")) if item.category.name == "Drone": - # @todo: this may need to be reworked once we visit drone commands - pyfalog.warn("DRONE PROJECTION NOT IMPLEMENTED") - # drone = None - # for d in fit.projectedDrones.find(item): - # if d is None or d.amountActive == d.amount or d.amount >= 5: - # drone = d - # break - # - # if drone is None: - # drone = Drone(item) - # fit.projectedDrones.append(drone) - # - # drone.amount += 1 + result = self.internal_history.Submit(FitAddProjectedDroneCommand(self.fitID, self.id)) elif item.category.name == "Fighter": result = self.internal_history.Submit(FitAddProjectedFighterCommand(self.fitID, self.id)) elif item.group.name in Module.SYSTEM_GROUPS: diff --git a/gui/fitCommands/guiRemoveProjected.py b/gui/fitCommands/guiRemoveProjected.py index e9e2d6c7b..2bf91b876 100644 --- a/gui/fitCommands/guiRemoveProjected.py +++ b/gui/fitCommands/guiRemoveProjected.py @@ -9,8 +9,9 @@ from .calc.fitRemoveProjectedEnv import FitRemoveProjectedEnvCommand from .calc.fitRemoveProjectedFit import FitRemoveProjectedFitCommand from .calc.fitRemoveProjectedFighter import FitRemoveProjectedFighterCommand from logbook import Logger -import eos.db +from .calc.fitRemoveProjectedDrone import FitRemoveProjectedDroneCommand pyfalog = Logger(__name__) +import eos.db from eos.saveddata.drone import Drone from eos.saveddata.module import Module @@ -18,6 +19,14 @@ from eos.saveddata.fighter import Fighter class GuiRemoveProjectedCommand(wx.Command): + mapping = { + 'fit': FitRemoveProjectedFitCommand, + 'module': FitRemoveProjectedModuleCommand, + 'fighter': FitRemoveProjectedFighterCommand, + 'env': FitRemoveProjectedEnvCommand, + 'drone': FitRemoveProjectedDroneCommand + } + def __init__(self, fitID, thing): wx.Command.__init__(self, True, "Projected Add") self.mainFrame = gui.mainFrame.MainFrame.getInstance() @@ -49,14 +58,11 @@ class GuiRemoveProjectedCommand(wx.Command): result = False # since we can project various types, we need to switch of the fit command. We can't do this switch easily in # the fit command since each type might have a different kind of undo, easier to split it out - if self.type == 'module': - result = self.internal_history.Submit(FitRemoveProjectedModuleCommand(self.fitID, self.data)) - elif self.type == 'env': - result = self.internal_history.Submit(FitRemoveProjectedEnvCommand(self.fitID, self.data)) - elif self.type == 'fit': - result = self.internal_history.Submit(FitRemoveProjectedFitCommand(self.fitID, self.data)) - elif self.type == 'fighter': - result = self.internal_history.Submit(FitRemoveProjectedFighterCommand(self.fitID, self.data)) + + cls = self.mapping.get(self.type, None) + if cls: + cmd = cls(self.fitID, self.data) + result = self.internal_history.Submit(cmd) # if item.category.name == "Drone": # pyfalog.warn("DRONE REMOVE PROJECTION NOT IMPLEMENTED") From 008d73e60557edf9227f12088eb111c298548e36 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Mon, 13 Aug 2018 02:01:16 -0400 Subject: [PATCH 038/110] Finish off commands for cargo to module action --- gui/fitCommands/__init__.py | 3 +- gui/fitCommands/calc/fitCargoToModule.py | 54 ++++++++++++ gui/fitCommands/cargoToModule.py | 100 ----------------------- gui/fitCommands/guiCargoToModule.py | 63 ++++++++++++++ 4 files changed, 119 insertions(+), 101 deletions(-) create mode 100644 gui/fitCommands/calc/fitCargoToModule.py delete mode 100644 gui/fitCommands/cargoToModule.py create mode 100644 gui/fitCommands/guiCargoToModule.py diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index 692aa6589..75889255f 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -14,4 +14,5 @@ from .guiRemoveCommand import GuiRemoveCommandCommand from .guiSetMode import GuiSetModeCommand from .guiToggleCommand import GuiToggleCommandCommand from .guiAddProjected import GuiAddProjectedCommand -from .guiRemoveProjected import GuiRemoveProjectedCommand \ No newline at end of file +from .guiRemoveProjected import GuiRemoveProjectedCommand +from .guiCargoToModule import GuiCargoToModuleCommand \ No newline at end of file diff --git a/gui/fitCommands/calc/fitCargoToModule.py b/gui/fitCommands/calc/fitCargoToModule.py new file mode 100644 index 000000000..d030c4026 --- /dev/null +++ b/gui/fitCommands/calc/fitCargoToModule.py @@ -0,0 +1,54 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) +from eos.saveddata.booster import Booster + +class FitAddBoosterCommand(wx.Command): + """" + from sFit.addBooster + """ + def __init__(self, fitID, itemID): + wx.Command.__init__(self, True) + self.fitID = fitID + self.itemID = itemID + self.new_index = None + self.old_item = None + + def Do(self): + pyfalog.debug("Adding booster ({0}) to fit ID: {1}", self.itemID, self.fitID) + + fit = eos.db.getFit(self.fitID) + item = eos.db.getItem(self.itemID, eager="attributes") + + if next((x for x in fit.boosters if x.itemID == self.itemID), None): + return False # already have item in list of boosters + + try: + booster = Booster(item) + except ValueError: + pyfalog.warning("Invalid item: {0}", self.itemID) + return False + + self.old_item = fit.boosters.makeRoom(booster) + fit.boosters.append(booster) + self.new_index = fit.boosters.index(booster) + return True + + def Undo(self): + if self.old_item: + # If we had an item in the slot previously, add it back. + cmd = FitAddBoosterCommand(self.fitID, self.old_item) + cmd.Do() + return True + + from .fitRemoveBooster import FitRemoveBoosterCommand # Avoid circular import + cmd = FitRemoveBoosterCommand(self.fitID, self.new_index) + cmd.Do() + return True diff --git a/gui/fitCommands/cargoToModule.py b/gui/fitCommands/cargoToModule.py deleted file mode 100644 index df47cac03..000000000 --- a/gui/fitCommands/cargoToModule.py +++ /dev/null @@ -1,100 +0,0 @@ -import wx -from service.fit import Fit - -import gui.mainFrame -from gui import globalEvents as GE -from gui.fitCommands.calc.fitSetCharge import FitSetChargeCommand -from logbook import Logger -pyfalog = Logger(__name__) - -class GuiCargoToModuleCommand(wx.Command): - """ - Moves cargo to fitting window. Can either do a copy, move, or swap with current module - If we try to copy/move into a spot with a non-empty module, we swap instead. - To avoid redundancy in converting Cargo item, this function does the - sanity checks as opposed to the GUI View. This is different than how the - normal .swapModules() does things, which is mostly a blind swap. - """ - - def __init__(self, fitID, moduleIdx, cargoIdx, copy=False): - # todo: instead of modules, needs to be positions. Dead objects are a thing - wx.Command.__init__(self, True, "Module State Change") - self.mainFrame = gui.mainFrame.MainFrame.getInstance() - self.sFit = Fit.getInstance() - self.fitID = fitID - self.moduleIdx = moduleIdx - self.cargoIdx = cargoIdx - self.copy = copy - self.internal_history = wx.CommandProcessor() - - def Do(self): - sFit = Fit.getInstance() - fit = sFit.getFit(self.fitID) - module = fit.modules[self.moduleIdx] - cargo = fit.cargo[self.cargoIdx] - result = None - - # We're trying to move a charge from cargo to a slot. Use SetCharge command (don't respect move vs copy) - if sFit.isAmmo(cargo.item.ID): - result = self.internal_history.Submit(FitSetChargeCommand(self.fitID, [module], cargo.item.ID)) - # else: - # - # pyfalog.debug("Moving cargo item to module for fit ID: {0}", self.fitID) - # - # # Gather modules and convert Cargo item to Module, silently return if not a module - # try: - # cargoP = es_Module(cargo.item) - # cargoP.owner = fit - # if cargoP.isValidState(State.ACTIVE): - # cargoP.state = State.ACTIVE - # except: - # pyfalog.warning("Invalid item: {0}", cargo.item) - # return - # - # if cargoP.slot != module.slot: # can't swap modules to different racks - # return - # - # # remove module that we are trying to move cargo to - # fit.modules.remove(module) - # - # if not cargoP.fits(fit): # if cargo doesn't fit, rollback and return - # fit.modules.insert(moduleIdx, module) - # return - # - # fit.modules.insert(moduleIdx, cargoP) - # - # if not copyMod: # remove existing cargo if not cloning - # if cargo.amount == 1: - # fit.cargo.remove(cargo) - # else: - # cargo.amount -= 1 - # - # if not module.isEmpty: # if module is placeholder, we don't want to convert/add it - # moduleItem = module.item if not module.item.isAbyssal else module.baseItem - # for x in fit.cargo.find(moduleItem): - # x.amount += 1 - # break - # else: - # moduleP = es_Cargo(moduleItem) - # moduleP.amount = 1 - # fit.cargo.insert(cargoIdx, moduleP) - # - # eos.db.commit() - # self.recalc(fit) - # # - # # - # # - # # if self.clone: - # # result = self.internal_history.Submit(FitCloneModduleCommand(self.fitID, self.srcPosition, self.dstPosition)) - # # else: - # # result = self.internal_history.Submit(FitSwapModuleCommand(self.fitID, self.srcPosition, self.dstPosition)) - - if result: - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) - return result - - def Undo(self): - for _ in self.internal_history.Commands: - self.internal_history.Undo() - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) - return True diff --git a/gui/fitCommands/guiCargoToModule.py b/gui/fitCommands/guiCargoToModule.py new file mode 100644 index 000000000..63f595788 --- /dev/null +++ b/gui/fitCommands/guiCargoToModule.py @@ -0,0 +1,63 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from gui.fitCommands.calc.fitSetCharge import FitSetChargeCommand +from gui.fitCommands.calc.fitReplaceModule import FitReplaceModuleCommand +from gui.fitCommands.calc.fitRemoveCargo import FitRemoveCargoCommand +from logbook import Logger +pyfalog = Logger(__name__) + +class GuiCargoToModuleCommand(wx.Command): + """ + Moves cargo to fitting window. Can either do a copy, move, or swap with current module + If we try to copy/move into a spot with a non-empty module, we swap instead. + To avoid redundancy in converting Cargo item, this function does the + sanity checks as opposed to the GUI View. This is different than how the + normal .swapModules() does things, which is mostly a blind swap. + """ + + def __init__(self, fitID, moduleIdx, cargoIdx, copy=False): + wx.Command.__init__(self, True, "Module State Change") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.fitID = fitID + self.moduleIdx = moduleIdx + self.cargoIdx = cargoIdx + self.copy = copy + self.internal_history = wx.CommandProcessor() + + def Do(self): + sFit = Fit.getInstance() + fit = sFit.getFit(self.fitID) + module = fit.modules[self.moduleIdx] + cargo = fit.cargo[self.cargoIdx] + result = None + + # We're trying to move a charge from cargo to a slot. Use SetCharge command (don't respect move vs copy) + if sFit.isAmmo(cargo.item.ID): + result = self.internal_history.Submit(FitSetChargeCommand(self.fitID, [module], cargo.item.ID)) + else: + + pyfalog.debug("Moving cargo item to module for fit ID: {0}", self.fitID) + + self.addCmd = FitReplaceModuleCommand(self.fitID, module.modPosition, cargo.itemID) + result = self.internal_history.Submit(self.addCmd) + if not result: + # module failed + return False + + if not self.copy: + self.removeCmd = FitRemoveCargoCommand(self.fitID, cargo.itemID) + result = self.internal_history.Submit(self.removeCmd) + + if result: + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return result + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True From 9977866eb02b2418ad28376f12e29cf2ed58e79b Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Mon, 13 Aug 2018 15:03:19 -0400 Subject: [PATCH 039/110] work on moving from cargo to modules (including swapping modules) --- gui/builtinAdditionPanes/cargoView.py | 4 ++ gui/fitCommands/calc/fitCargoToModule.py | 54 ------------------------ gui/fitCommands/guiCargoToModule.py | 15 ++++++- 3 files changed, 17 insertions(+), 56 deletions(-) delete mode 100644 gui/fitCommands/calc/fitCargoToModule.py diff --git a/gui/builtinAdditionPanes/cargoView.py b/gui/builtinAdditionPanes/cargoView.py index 2b385c72a..dbc722eac 100644 --- a/gui/builtinAdditionPanes/cargoView.py +++ b/gui/builtinAdditionPanes/cargoView.py @@ -130,6 +130,10 @@ class CargoView(d.Display): if mstate.cmdDown: # if copying, append to cargo sFit.addCargo(self.mainFrame.getActiveFit(), module.item.ID if not module.item.isAbyssal else module.baseItemID) else: # else, move / swap + # self.mainFrame.command.Submit(cmd.GuiCargoToModuleCommand( + # self.mainFrame.getActiveFit(), + # module.modPosition, + # dstRow)) sFit.moveCargoToModule(self.mainFrame.getActiveFit(), module.position, dstRow) else: # dragging to blank spot, append sFit.addCargo(self.mainFrame.getActiveFit(), module.item.ID if not module.item.isAbyssal else module.baseItemID) diff --git a/gui/fitCommands/calc/fitCargoToModule.py b/gui/fitCommands/calc/fitCargoToModule.py deleted file mode 100644 index d030c4026..000000000 --- a/gui/fitCommands/calc/fitCargoToModule.py +++ /dev/null @@ -1,54 +0,0 @@ -import wx -from service.fit import Fit - -import gui.mainFrame -from gui import globalEvents as GE -#from .helpers import ModuleInfoCache -from eos.saveddata.module import Module, State -import eos.db -from logbook import Logger -pyfalog = Logger(__name__) -from eos.saveddata.booster import Booster - -class FitAddBoosterCommand(wx.Command): - """" - from sFit.addBooster - """ - def __init__(self, fitID, itemID): - wx.Command.__init__(self, True) - self.fitID = fitID - self.itemID = itemID - self.new_index = None - self.old_item = None - - def Do(self): - pyfalog.debug("Adding booster ({0}) to fit ID: {1}", self.itemID, self.fitID) - - fit = eos.db.getFit(self.fitID) - item = eos.db.getItem(self.itemID, eager="attributes") - - if next((x for x in fit.boosters if x.itemID == self.itemID), None): - return False # already have item in list of boosters - - try: - booster = Booster(item) - except ValueError: - pyfalog.warning("Invalid item: {0}", self.itemID) - return False - - self.old_item = fit.boosters.makeRoom(booster) - fit.boosters.append(booster) - self.new_index = fit.boosters.index(booster) - return True - - def Undo(self): - if self.old_item: - # If we had an item in the slot previously, add it back. - cmd = FitAddBoosterCommand(self.fitID, self.old_item) - cmd.Do() - return True - - from .fitRemoveBooster import FitRemoveBoosterCommand # Avoid circular import - cmd = FitRemoveBoosterCommand(self.fitID, self.new_index) - cmd.Do() - return True diff --git a/gui/fitCommands/guiCargoToModule.py b/gui/fitCommands/guiCargoToModule.py index 63f595788..784cfba88 100644 --- a/gui/fitCommands/guiCargoToModule.py +++ b/gui/fitCommands/guiCargoToModule.py @@ -6,6 +6,7 @@ from gui import globalEvents as GE from gui.fitCommands.calc.fitSetCharge import FitSetChargeCommand from gui.fitCommands.calc.fitReplaceModule import FitReplaceModuleCommand from gui.fitCommands.calc.fitRemoveCargo import FitRemoveCargoCommand +from .calc.fitAddCargo import FitAddCargoCommand from logbook import Logger pyfalog = Logger(__name__) @@ -43,12 +44,22 @@ class GuiCargoToModuleCommand(wx.Command): pyfalog.debug("Moving cargo item to module for fit ID: {0}", self.fitID) self.addCmd = FitReplaceModuleCommand(self.fitID, module.modPosition, cargo.itemID) + result = self.internal_history.Submit(self.addCmd) + if not result: - # module failed + # creating module failed for whatever reason return False - if not self.copy: + if self.addCmd.old_module is not None: + # we're swapping with an existing module, so remove cargo and add module + self.removeCmd = FitRemoveCargoCommand(self.fitID, cargo.itemID) + result = self.internal_history.Submit(self.removeCmd) + + self.addCargoCmd = FitAddCargoCommand(self.fitID, self.addCmd.old_module.itemID) + result = self.internal_history.Submit(self.addCargoCmd) + elif not self.copy: + # move, not copying, so remove cargo self.removeCmd = FitRemoveCargoCommand(self.fitID, cargo.itemID) result = self.internal_history.Submit(self.removeCmd) From d74f2b2e422dcc2de83c71a9c9174f08629781dd Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Mon, 13 Aug 2018 17:01:16 -0400 Subject: [PATCH 040/110] Rework the logic of dragging module to cargo --- gui/builtinAdditionPanes/cargoView.py | 22 +++------ gui/fitCommands/__init__.py | 3 +- gui/fitCommands/guiModuleToCargo.py | 70 +++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 16 deletions(-) create mode 100644 gui/fitCommands/guiModuleToCargo.py diff --git a/gui/builtinAdditionPanes/cargoView.py b/gui/builtinAdditionPanes/cargoView.py index dbc722eac..8eb54875f 100644 --- a/gui/builtinAdditionPanes/cargoView.py +++ b/gui/builtinAdditionPanes/cargoView.py @@ -126,22 +126,14 @@ class CargoView(d.Display): if not result: return - if dstRow != -1: # we're swapping with cargo - if mstate.cmdDown: # if copying, append to cargo - sFit.addCargo(self.mainFrame.getActiveFit(), module.item.ID if not module.item.isAbyssal else module.baseItemID) - else: # else, move / swap - # self.mainFrame.command.Submit(cmd.GuiCargoToModuleCommand( - # self.mainFrame.getActiveFit(), - # module.modPosition, - # dstRow)) - sFit.moveCargoToModule(self.mainFrame.getActiveFit(), module.position, dstRow) - else: # dragging to blank spot, append - sFit.addCargo(self.mainFrame.getActiveFit(), module.item.ID if not module.item.isAbyssal else module.baseItemID) + cargoPos = dstRow if dstRow > -1 else None - if not mstate.cmdDown: # if not copying, remove module - sFit.removeModule(self.mainFrame.getActiveFit(), module.position) - - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.mainFrame.getActiveFit(), action="moddel", typeID=module.item.ID)) + self.mainFrame.command.Submit(cmd.GuiModuleToCargoCommand( + self.mainFrame.getActiveFit(), + module.modPosition, + cargoPos, + mstate.cmdDown + )) def fitChanged(self, event): sFit = Fit.getInstance() diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index 75889255f..966295b7e 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -15,4 +15,5 @@ from .guiSetMode import GuiSetModeCommand from .guiToggleCommand import GuiToggleCommandCommand from .guiAddProjected import GuiAddProjectedCommand from .guiRemoveProjected import GuiRemoveProjectedCommand -from .guiCargoToModule import GuiCargoToModuleCommand \ No newline at end of file +from .guiCargoToModule import GuiCargoToModuleCommand +from .guiModuleToCargo import GuiModuleToCargoCommand \ No newline at end of file diff --git a/gui/fitCommands/guiModuleToCargo.py b/gui/fitCommands/guiModuleToCargo.py new file mode 100644 index 000000000..ef8e84b7a --- /dev/null +++ b/gui/fitCommands/guiModuleToCargo.py @@ -0,0 +1,70 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from gui.fitCommands.calc.fitSetCharge import FitSetChargeCommand +from gui.fitCommands.calc.fitReplaceModule import FitReplaceModuleCommand +from gui.fitCommands.calc.fitRemoveCargo import FitRemoveCargoCommand +from gui.fitCommands.calc.fitRemoveModule import FitRemoveModuleCommand + +from .calc.fitAddCargo import FitAddCargoCommand +from logbook import Logger +pyfalog = Logger(__name__) + +class GuiModuleToCargoCommand(wx.Command): + def __init__(self, fitID, moduleIdx, cargoIdx, copy=False): + wx.Command.__init__(self, True, "Module State Change") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.fitID = fitID + self.moduleIdx = moduleIdx + self.cargoIdx = cargoIdx + self.copy = copy + self.internal_history = wx.CommandProcessor() + + def Do(self): + sFit = Fit.getInstance() + fit = sFit.getFit(self.fitID) + module = fit.modules[self.moduleIdx] + result = False + + if self.cargoIdx: # we're swapping with cargo + if self.copy: # if copying, simply add item to cargo + result = self.internal_history.Submit(FitAddCargoCommand(self.mainFrame.getActiveFit(), module.item.ID if not module.item.isAbyssal else module.baseItemID)) + else: # otherwise, try to swap by replacing module with cargo item. If successful, remove old cargo and add new cargo + + cargo = fit.cargo[self.cargoIdx] + self.modReplaceCmd = FitReplaceModuleCommand(self.fitID, module.modPosition, cargo.itemID) + + result = self.internal_history.Submit(self.modReplaceCmd) + + if not result: + # creating module failed for whatever reason + return False + + if self.modReplaceCmd.old_module is not None: + # we're swapping with an existing module, so remove cargo and add module + self.removeCmd = FitRemoveCargoCommand(self.fitID, cargo.itemID) + result = self.internal_history.Submit(self.removeCmd) + + self.addCargoCmd = FitAddCargoCommand(self.fitID, self.modReplaceCmd.old_module.itemID) + result = self.internal_history.Submit(self.addCargoCmd) + + else: # dragging to blank spot, append + result = self.internal_history.Submit(FitAddCargoCommand(self.mainFrame.getActiveFit(), + module.item.ID if not module.item.isAbyssal else module.baseItemID)) + + if not self.copy: # if not copying, remove module + self.internal_history.Submit(FitRemoveModuleCommand(self.mainFrame.getActiveFit(), [self.moduleIdx])) + + + if result: + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="moddel", typeID=module.item.ID)) + return result + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True From 646a903f1850ef55ea6f7ba2f294e2c0e0218f7b Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Mon, 13 Aug 2018 17:16:00 -0400 Subject: [PATCH 041/110] differentiate command processors based on fitID --- gui/mainFrame.py | 6 ++++-- service/fit.py | 12 ++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/gui/mainFrame.py b/gui/mainFrame.py index 2a94f1b2c..3f35ff7ae 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -170,8 +170,6 @@ class MainFrame(wx.Frame): i = wx.Icon(BitmapLoader.getBitmap("pyfa", "gui")) self.SetIcon(i) - self.command = wx.CommandProcessor() - # Create the layout and windows mainSizer = wx.BoxSizer(wx.HORIZONTAL) @@ -246,6 +244,10 @@ class MainFrame(wx.Frame): self.Bind(GE.EVT_SSO_LOGIN, self.onSSOLogin) self.Bind(GE.EVT_SSO_LOGGING_IN, self.ShowSsoLogin) + @property + def command(self): + return Fit.getCommandProcessor(self.getActiveFit()) + def ShowSsoLogin(self, event): if getattr(event, "login_mode", LoginMethod.SERVER) == LoginMethod.MANUAL and getattr(event, "sso_mode", SsoMode.AUTO) == SsoMode.AUTO: dlg = SsoLogin(self) diff --git a/service/fit.py b/service/fit.py index c19513dd0..a4624692a 100644 --- a/service/fit.py +++ b/service/fit.py @@ -38,6 +38,8 @@ from service.character import Character from service.damagePattern import DamagePattern from service.settings import SettingsProvider from utils.deprecated import deprecated +import wx + pyfalog = Logger(__name__) @@ -57,6 +59,7 @@ class DeferRecalc(): class Fit(object): instance = None + processors = {} @classmethod def getInstance(cls): @@ -213,12 +216,21 @@ class Fit(object): eos.db.remove(fit) + if fitID in Fit.__class__.processors: + del Fit.__class__.processors[fitID] + pyfalog.debug(" Need to refresh {} fits: {}", len(refreshFits), refreshFits) for fit in refreshFits: eos.db.saveddata_session.refresh(fit) eos.db.saveddata_session.commit() + @classmethod + def getCommandProcessor(cls, fitID): + if fitID not in cls.processors: + cls.processors[fitID] = wx.CommandProcessor() + return cls.processors[fitID] + @staticmethod def copyFit(fitID): pyfalog.debug("Creating copy of fit ID: {0}", fitID) From efbf2e743289062a8b71de6e0d5e0578390e4dbc Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Mon, 13 Aug 2018 18:50:00 -0400 Subject: [PATCH 042/110] Make sure we recalc during swaps from cargo to module --- gui/builtinViews/fittingView.py | 7 ------- gui/fitCommands/guiCargoToModule.py | 3 ++- gui/fitCommands/guiModuleToCargo.py | 3 ++- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index 74d02295c..a1c2b62e0 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -434,19 +434,12 @@ class FittingView(d.Display): if not isinstance(module, Module): return - sFit = Fit.getInstance() - fit = sFit.getFit(self.activeFitID) - typeID = fit.cargo[srcIdx].item.ID - self.mainFrame.command.Submit(cmd.GuiCargoToModuleCommand( self.mainFrame.getActiveFit(), module.modPosition, srcIdx, mstate.CmdDown() and module.isEmpty)) - - # wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.mainFrame.getActiveFit(), action="modadd", typeID=typeID)) - def swapItems(self, x, y, srcIdx): """Swap two modules in fitting window""" mstate = wx.GetMouseState() diff --git a/gui/fitCommands/guiCargoToModule.py b/gui/fitCommands/guiCargoToModule.py index 784cfba88..3ce9cc4b0 100644 --- a/gui/fitCommands/guiCargoToModule.py +++ b/gui/fitCommands/guiCargoToModule.py @@ -34,7 +34,7 @@ class GuiCargoToModuleCommand(wx.Command): fit = sFit.getFit(self.fitID) module = fit.modules[self.moduleIdx] cargo = fit.cargo[self.cargoIdx] - result = None + result = False # We're trying to move a charge from cargo to a slot. Use SetCharge command (don't respect move vs copy) if sFit.isAmmo(cargo.item.ID): @@ -64,6 +64,7 @@ class GuiCargoToModuleCommand(wx.Command): result = self.internal_history.Submit(self.removeCmd) if result: + sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return result diff --git a/gui/fitCommands/guiModuleToCargo.py b/gui/fitCommands/guiModuleToCargo.py index ef8e84b7a..d59680408 100644 --- a/gui/fitCommands/guiModuleToCargo.py +++ b/gui/fitCommands/guiModuleToCargo.py @@ -58,9 +58,10 @@ class GuiModuleToCargoCommand(wx.Command): if not self.copy: # if not copying, remove module self.internal_history.Submit(FitRemoveModuleCommand(self.mainFrame.getActiveFit(), [self.moduleIdx])) - if result: + sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID, action="moddel", typeID=module.item.ID)) + return result def Undo(self): From 513e9d14d89926cf66227e8619d23ccafcebd06b Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Mon, 13 Aug 2018 18:53:30 -0400 Subject: [PATCH 043/110] Moved the default fighter ability to the __init__() --- eos/saveddata/fighter.py | 14 ++++++++++++++ gui/builtinViews/fittingView.py | 2 -- service/fit.py | 14 +------------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eos/saveddata/fighter.py b/eos/saveddata/fighter.py index 694970343..8c515b945 100644 --- a/eos/saveddata/fighter.py +++ b/eos/saveddata/fighter.py @@ -53,6 +53,20 @@ class Fighter(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): self.build() + standardAttackActive = False + for ability in self.abilities: + if ability.effect.isImplemented and ability.effect.handlerName == 'fighterabilityattackm': + # Activate "standard attack" if available + ability.active = True + standardAttackActive = True + else: + # Activate all other abilities (Neut, Web, etc) except propmods if no standard attack is active + if ability.effect.isImplemented and \ + standardAttackActive is False and \ + ability.effect.handlerName != 'fighterabilitymicrowarpdrive' and \ + ability.effect.handlerName != 'fighterabilityevasivemaneuvers': + ability.active = True + @reconstructor def init(self): """Initialize a fighter from the database and validate""" diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index a1c2b62e0..eab0b9fa0 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -128,8 +128,6 @@ class FittingViewDrop(wx.DropTarget): return t - - class FittingView(d.Display): DEFAULT_COLS = ["State", "Ammo Icon", diff --git a/service/fit.py b/service/fit.py index a4624692a..87b8f02a9 100644 --- a/service/fit.py +++ b/service/fit.py @@ -861,6 +861,7 @@ class Fit(object): self.recalc(fit) return True + @deprecated def addFighter(self, fitID, itemID, recalc=True): pyfalog.debug("Adding fighters ({0}) to fit ID: {1}", itemID, fitID) if fitID is None: @@ -880,19 +881,6 @@ class Fit(object): fighter = es_Fighter(item) used = fit.getSlotsUsed(fighter.slot) total = fit.getNumSlots(fighter.slot) - standardAttackActive = False - for ability in fighter.abilities: - if ability.effect.isImplemented and ability.effect.handlerName == 'fighterabilityattackm': - # Activate "standard attack" if available - ability.active = True - standardAttackActive = True - else: - # Activate all other abilities (Neut, Web, etc) except propmods if no standard attack is active - if ability.effect.isImplemented and \ - standardAttackActive is False and \ - ability.effect.handlerName != 'fighterabilitymicrowarpdrive' and \ - ability.effect.handlerName != 'fighterabilityevasivemaneuvers': - ability.active = True if used >= total: fighter.active = False From f0983c14683f1c5268c1307efd9395ed7a1555c4 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Mon, 13 Aug 2018 19:35:32 -0400 Subject: [PATCH 044/110] Implement fighter add/remove commands --- gui/builtinAdditionPanes/fighterView.py | 11 ++--- gui/builtinContextMenus/itemRemove.py | 3 +- gui/fitCommands/__init__.py | 4 +- gui/fitCommands/calc/fitAddFighter.py | 53 ++++++++++++++++++++++++ gui/fitCommands/calc/fitRemoveFighter.py | 34 +++++++++++++++ gui/fitCommands/guiAddFighter.py | 30 ++++++++++++++ gui/fitCommands/guiRemoveFighter.py | 32 ++++++++++++++ gui/mainFrame.py | 2 +- service/fit.py | 1 + 9 files changed, 160 insertions(+), 10 deletions(-) create mode 100644 gui/fitCommands/calc/fitAddFighter.py create mode 100644 gui/fitCommands/calc/fitRemoveFighter.py create mode 100644 gui/fitCommands/guiAddFighter.py create mode 100644 gui/fitCommands/guiRemoveFighter.py diff --git a/gui/builtinAdditionPanes/fighterView.py b/gui/builtinAdditionPanes/fighterView.py index 3292583fd..916bcf585 100644 --- a/gui/builtinAdditionPanes/fighterView.py +++ b/gui/builtinAdditionPanes/fighterView.py @@ -30,6 +30,7 @@ from gui.contextMenu import ContextMenu from gui.utils.staticHelpers import DragDropHelper from service.fit import Fit from service.market import Market +import gui.fitCommands as cmd class FighterViewDrop(wx.DropTarget): @@ -269,11 +270,9 @@ class FighterDisplay(d.Display): event.Skip() def addItem(self, event): - sFit = Fit.getInstance() fitID = self.mainFrame.getActiveFit() - trigger = sFit.addFighter(fitID, event.itemID) - if trigger: - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + + if self.mainFrame.command.Submit(cmd.GuiAddFighterCommand(fitID, event.itemID)): self.mainFrame.additionsPane.select("Fighters") event.Skip() @@ -288,9 +287,7 @@ class FighterDisplay(d.Display): def removeFighter(self, fighter): fitID = self.mainFrame.getActiveFit() - sFit = Fit.getInstance() - sFit.removeFighter(fitID, self.original.index(fighter)) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.GuiRemoveFighterCommand(fitID, self.original.index(fighter))) def click(self, event): event.Skip() diff --git a/gui/builtinContextMenus/itemRemove.py b/gui/builtinContextMenus/itemRemove.py index 0d464461d..65094c7a4 100644 --- a/gui/builtinContextMenus/itemRemove.py +++ b/gui/builtinContextMenus/itemRemove.py @@ -43,7 +43,8 @@ class ItemRemove(ContextMenu): elif srcContext == "droneItem": sFit.removeDrone(fitID, fit.drones.index(selection[0])) elif srcContext == "fighterItem": - sFit.removeFighter(fitID, fit.fighters.index(selection[0])) + self.mainFrame.command.Submit(cmd.GuiRemoveFighterCommand(fitID, fit.fighters.index(selection[0]))) + return # the command takes care of the PostEvent elif srcContext == "implantItem": self.mainFrame.command.Submit(cmd.GuiRemoveImplantCommand(fitID, fit.implants.index(selection[0]))) return # the command takes care of the PostEvent diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index 966295b7e..5acf62ffd 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -16,4 +16,6 @@ from .guiToggleCommand import GuiToggleCommandCommand from .guiAddProjected import GuiAddProjectedCommand from .guiRemoveProjected import GuiRemoveProjectedCommand from .guiCargoToModule import GuiCargoToModuleCommand -from .guiModuleToCargo import GuiModuleToCargoCommand \ No newline at end of file +from .guiModuleToCargo import GuiModuleToCargoCommand +from .guiAddFighter import GuiAddFighterCommand +from .guiRemoveFighter import GuiRemoveFighterCommand \ No newline at end of file diff --git a/gui/fitCommands/calc/fitAddFighter.py b/gui/fitCommands/calc/fitAddFighter.py new file mode 100644 index 000000000..9ceda53a1 --- /dev/null +++ b/gui/fitCommands/calc/fitAddFighter.py @@ -0,0 +1,53 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) +from eos.saveddata.fighter import Fighter + +class FitAddFighterCommand(wx.Command): + """" + from sFit.addFighter + """ + def __init__(self, fitID, itemID, amount=1, replace=False): + wx.Command.__init__(self, True, "Cargo add") + self.fitID = fitID + self.itemID = itemID + self.new_index = None + + def Do(self): + fit = eos.db.getFit(self.fitID) + item = eos.db.getItem(self.itemID, eager=("attributes", "group.category")) + + try: + fighter = Fighter(item) + except ValueError: + pyfalog.warning("Invalid fighter: {}", item) + return False + + if not fighter.fits(fit): + return False + + used = fit.getSlotsUsed(fighter.slot) + total = fit.getNumSlots(fighter.slot) + + if used >= total: + fighter.active = False + + fit.fighters.append(fighter) + self.new_index = fit.fighters.index(fighter) + + eos.db.commit() + + return True + + def Undo(self): + from .fitRemoveFighter import FitRemoveFighterCommand # Avoid circular import + cmd = FitRemoveFighterCommand(self.fitID, self.new_index) + cmd.Do() + return True diff --git a/gui/fitCommands/calc/fitRemoveFighter.py b/gui/fitCommands/calc/fitRemoveFighter.py new file mode 100644 index 000000000..58b1f7c6a --- /dev/null +++ b/gui/fitCommands/calc/fitRemoveFighter.py @@ -0,0 +1,34 @@ +import wx + +from gui.fitCommands.helpers import ModuleInfoCache +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) + + +class FitRemoveFighterCommand(wx.Command): + """" + Fitting command that removes a module at a specified positions + + from sFit.removeFighter + """ + def __init__(self, fitID: int, position: int): + wx.Command.__init__(self, True) + self.fitID = fitID + self.position = position + self.change = None + self.removed_item = None + + def Do(self): + fitID = self.fitID + fit = eos.db.getFit(fitID) + f = fit.fighters[self.position] + fit.fighters.remove(f) + self.removed_item = f.itemID + eos.db.commit() + return True + + def Undo(self): + from gui.fitCommands.calc.fitAddFighter import FitAddFighterCommand # avoids circular import + cmd = FitAddFighterCommand(self.fitID, self.removed_item) + return cmd.Do() diff --git a/gui/fitCommands/guiAddFighter.py b/gui/fitCommands/guiAddFighter.py new file mode 100644 index 000000000..095688142 --- /dev/null +++ b/gui/fitCommands/guiAddFighter.py @@ -0,0 +1,30 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .calc.fitAddFighter import FitAddFighterCommand + +class GuiAddFighterCommand(wx.Command): + def __init__(self, fitID, itemID): + wx.Command.__init__(self, True, "Cargo Add") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + self.itemID = itemID + + def Do(self): + cmd = FitAddFighterCommand(self.fitID, self.itemID) + if self.internal_history.Submit(cmd): + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + diff --git a/gui/fitCommands/guiRemoveFighter.py b/gui/fitCommands/guiRemoveFighter.py new file mode 100644 index 000000000..f1b983ec5 --- /dev/null +++ b/gui/fitCommands/guiRemoveFighter.py @@ -0,0 +1,32 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .calc.fitRemoveFighter import FitRemoveFighterCommand + + +class GuiRemoveFighterCommand(wx.Command): + def __init__(self, fitID, position): + wx.Command.__init__(self, True, "Module Remove") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.fitID = fitID + self.position = position + self.internal_history = wx.CommandProcessor() + + def Do(self): + success = self.internal_history.Submit(FitRemoveFighterCommand(self.fitID, self.position)) + + if success: + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True diff --git a/gui/mainFrame.py b/gui/mainFrame.py index 3f35ff7ae..5dd119db0 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -245,7 +245,7 @@ class MainFrame(wx.Frame): self.Bind(GE.EVT_SSO_LOGGING_IN, self.ShowSsoLogin) @property - def command(self): + def command(self) -> wx.CommandProcessor: return Fit.getCommandProcessor(self.getActiveFit()) def ShowSsoLogin(self, event): diff --git a/service/fit.py b/service/fit.py index 87b8f02a9..c7cb70fd1 100644 --- a/service/fit.py +++ b/service/fit.py @@ -897,6 +897,7 @@ class Fit(object): else: return False + @deprecated def removeFighter(self, fitID, i, recalc=True): pyfalog.debug("Removing fighters from fit ID: {0}", fitID) fit = eos.db.getFit(fitID) From a5a152d3956d2100b5d7c3cffbcd0daaa3529bc7 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Tue, 14 Aug 2018 00:58:50 -0400 Subject: [PATCH 045/110] Move meta swap functionality to command process --- gui/builtinContextMenus/metaSwap.py | 134 +++++++++++++------------- gui/fitCommands/__init__.py | 3 +- gui/fitCommands/calc/fitAddFighter.py | 2 +- gui/fitCommands/guiMetaSwap.py | 64 ++++++++++++ 4 files changed, 136 insertions(+), 67 deletions(-) create mode 100644 gui/fitCommands/guiMetaSwap.py diff --git a/gui/builtinContextMenus/metaSwap.py b/gui/builtinContextMenus/metaSwap.py index 871ebad68..bd98c6bfa 100644 --- a/gui/builtinContextMenus/metaSwap.py +++ b/gui/builtinContextMenus/metaSwap.py @@ -122,82 +122,86 @@ class MetaSwap(ContextMenu): id = ContextMenu.nextID() mitem = wx.MenuItem(rootMenu, id, item.name) bindmenu.Bind(wx.EVT_MENU, self.handleModule, mitem) - self.moduleLookup[id] = item + print(context) + self.moduleLookup[id] = item, context m.Append(mitem) return m def handleModule(self, event): - item = self.moduleLookup.get(event.Id, None) + item, context = self.moduleLookup.get(event.Id, None) if item is None: event.Skip() return - sFit = Fit.getInstance() fitID = self.mainFrame.getActiveFit() - fit = sFit.getFit(fitID) - for selected_item in self.selection: - if isinstance(selected_item, Module): - pos = fit.modules.index(selected_item) - sFit.changeModule(fitID, pos, item.ID) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.GuiMetaSwapCommand(fitID, context, item.ID, self.selection)) - elif isinstance(selected_item, Drone): - drone_count = None - - for idx, drone_stack in enumerate(fit.drones): - if drone_stack is selected_item: - drone_count = drone_stack.amount - sFit.removeDrone(fitID, idx, drone_count, False) - break - - if drone_count: - sFit.addDrone(fitID, item.ID, drone_count, True) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) - - elif isinstance(selected_item, Fighter): - fighter_count = None - - for idx, fighter_stack in enumerate(fit.fighters): - # Right now fighters always will have max stack size. - # Including this for future improvement, so if adjustable - # fighter stacks get added we're ready for it. - if fighter_stack is selected_item: - if fighter_stack.amount > 0: - fighter_count = fighter_stack.amount - elif fighter_stack.amount == -1: - fighter_count = fighter_stack.amountActive - else: - fighter_count.amount = 0 - - sFit.removeFighter(fitID, idx, False) - break - - sFit.addFighter(fitID, item.ID, True) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) - - elif isinstance(selected_item, Booster): - for idx, booster_stack in enumerate(fit.boosters): - if booster_stack is selected_item: - self.mainFrame.command.Submit(cmd.GuiRemoveBoosterCommand(fitID, idx)) - self.mainFrame.command.Submit(cmd.GuiAddBoosterCommand(fitID, item.ID)) - break - - elif isinstance(selected_item, Implant): - for idx, implant_stack in enumerate(fit.implants): - if implant_stack is selected_item: - self.mainFrame.command.Submit(cmd.GuiRemoveImplantCommand(fitID, idx)) - self.mainFrame.command.Submit(cmd.GuiAddImplantCommand(fitID, item.ID)) - break - - elif isinstance(selected_item, Cargo): - for idx, cargo_stack in enumerate(fit.cargo): - if cargo_stack is selected_item: - # todo: make a command to change varieance of all items, or maybe per item type, which would - # utilize the two fitting commands that we need to remove then add? - sFit.removeCargo(fitID, idx) - self.mainFrame.command.Submit(cmd.GuiAddCargoCommand(fitID, item.ID, cargo_stack.amount, True)) - break + # for selected_item in self.selection: + # if isinstance(selected_item, Module): + # pos = fit.modules.index(selected_item) + # self.mainFrame.command.Submit(cmd.GuiModuleAddCommand(fitID, item.ID, pos)) + # + # + # sFit.changeModule(fitID, pos, item.ID) + # wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + # + # elif isinstance(selected_item, Drone): + # drone_count = None + # + # for idx, drone_stack in enumerate(fit.drones): + # if drone_stack is selected_item: + # drone_count = drone_stack.amount + # sFit.removeDrone(fitID, idx, drone_count, False) + # break + # + # if drone_count: + # sFit.addDrone(fitID, item.ID, drone_count, True) + # wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + # + # elif isinstance(selected_item, Fighter): + # fighter_count = None + # + # for idx, fighter_stack in enumerate(fit.fighters): + # # Right now fighters always will have max stack size. + # # Including this for future improvement, so if adjustable + # # fighter stacks get added we're ready for it. + # if fighter_stack is selected_item: + # if fighter_stack.amount > 0: + # fighter_count = fighter_stack.amount + # elif fighter_stack.amount == -1: + # fighter_count = fighter_stack.amountActive + # else: + # fighter_count.amount = 0 + # + # sFit.removeFighter(fitID, idx, False) + # break + # + # sFit.addFighter(fitID, item.ID, True) + # wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + # + # elif isinstance(selected_item, Booster): + # for idx, booster_stack in enumerate(fit.boosters): + # if booster_stack is selected_item: + # self.mainFrame.command.Submit(cmd.GuiRemoveBoosterCommand(fitID, idx)) + # self.mainFrame.command.Submit(cmd.GuiAddBoosterCommand(fitID, item.ID)) + # break + # + # elif isinstance(selected_item, Implant): + # for idx, implant_stack in enumerate(fit.implants): + # if implant_stack is selected_item: + # self.mainFrame.command.Submit(cmd.GuiRemoveImplantCommand(fitID, idx)) + # self.mainFrame.command.Submit(cmd.GuiAddImplantCommand(fitID, item.ID)) + # break + # + # elif isinstance(selected_item, Cargo): + # for idx, cargo_stack in enumerate(fit.cargo): + # if cargo_stack is selected_item: + # # todo: make a command to change varieance of all items, or maybe per item type, which would + # # utilize the two fitting commands that we need to remove then add? + # sFit.removeCargo(fitID, idx) + # self.mainFrame.command.Submit(cmd.GuiAddCargoCommand(fitID, item.ID, cargo_stack.amount, True)) + # break diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index 5acf62ffd..6515b5e27 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -18,4 +18,5 @@ from .guiRemoveProjected import GuiRemoveProjectedCommand from .guiCargoToModule import GuiCargoToModuleCommand from .guiModuleToCargo import GuiModuleToCargoCommand from .guiAddFighter import GuiAddFighterCommand -from .guiRemoveFighter import GuiRemoveFighterCommand \ No newline at end of file +from .guiRemoveFighter import GuiRemoveFighterCommand +from .guiMetaSwap import GuiMetaSwapCommand \ No newline at end of file diff --git a/gui/fitCommands/calc/fitAddFighter.py b/gui/fitCommands/calc/fitAddFighter.py index 9ceda53a1..dfaccbf3d 100644 --- a/gui/fitCommands/calc/fitAddFighter.py +++ b/gui/fitCommands/calc/fitAddFighter.py @@ -14,7 +14,7 @@ class FitAddFighterCommand(wx.Command): """" from sFit.addFighter """ - def __init__(self, fitID, itemID, amount=1, replace=False): + def __init__(self, fitID, itemID): wx.Command.__init__(self, True, "Cargo add") self.fitID = fitID self.itemID = itemID diff --git a/gui/fitCommands/guiMetaSwap.py b/gui/fitCommands/guiMetaSwap.py new file mode 100644 index 000000000..e40906070 --- /dev/null +++ b/gui/fitCommands/guiMetaSwap.py @@ -0,0 +1,64 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .calc.fitRemoveImplant import FitRemoveImplantCommand +from .calc.fitAddImplant import FitAddImplantCommand +from .calc.fitRemoveBooster import FitRemoveBoosterCommand +from .calc.fitAddBooster import FitAddBoosterCommand +from .calc.fitRemoveCargo import FitRemoveCargoCommand +from .calc.fitAddCargo import FitAddCargoCommand +from .calc.fitReplaceModule import FitReplaceModuleCommand +from .calc.fitAddFighter import FitAddFighterCommand +from .calc.fitRemoveFighter import FitRemoveFighterCommand + +class GuiMetaSwapCommand(wx.Command): + def __init__(self, fitID, context, itemID, selection: list): + wx.Command.__init__(self, True, "Meta Swap") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + self.itemID = itemID + self.context = context + self.data = [] + fit = self.sFit.getFit(fitID) + + if context == 'fittingModule': + for x in selection: + self.data.append(((FitReplaceModuleCommand, fitID, fit.modules.index(x), itemID),),) + elif context == 'implantItem': + for x in selection: + idx = fit.implants.index(x) + self.data.append(((FitRemoveImplantCommand, fitID, idx), (FitAddImplantCommand, fitID, itemID))) + elif context == 'boosterItem': + for x in selection: + idx = fit.boosters.index(x) + self.data.append(((FitRemoveBoosterCommand, fitID, idx), (FitAddBoosterCommand, fitID, itemID))) + elif context == 'cargoItem': + for x in selection: + self.data.append(((FitRemoveCargoCommand, fitID, x.itemID, 1, True), (FitAddCargoCommand, fitID, itemID, x.amount))) + elif context == 'fighterItem': + for x in selection: + self.data.append(((FitRemoveFighterCommand, fitID, fit.fighters.index(x)), (FitAddFighterCommand, fitID, itemID))) + elif context == 'droneItem': + raise NotImplementedError() + + + def Do(self): + for cmds in self.data: + for cmd in cmds: + self.internal_history.Submit(cmd[0](*cmd[1:])) + + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + + def Undo(self): + for x in self.internal_history.Commands: + self.internal_history.Undo() + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + From 71257b5265bc3cf1b02e4082040dae2d6ebd6564 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Tue, 14 Aug 2018 01:25:36 -0400 Subject: [PATCH 046/110] Implement some various toggles as commands --- gui/builtinAdditionPanes/boosterView.py | 4 +-- gui/builtinAdditionPanes/fighterView.py | 4 +-- gui/builtinAdditionPanes/implantView.py | 4 +-- gui/fitCommands/__init__.py | 5 +++- gui/fitCommands/calc/fitToggleBooster.py | 32 +++++++++++++++++++++++ gui/fitCommands/calc/fitToggleFighter.py | 33 ++++++++++++++++++++++++ gui/fitCommands/calc/fitToggleImplant.py | 33 ++++++++++++++++++++++++ gui/fitCommands/guiMetaSwap.py | 1 + gui/fitCommands/guiToggleBooster.py | 30 +++++++++++++++++++++ gui/fitCommands/guiToggleFighter.py | 30 +++++++++++++++++++++ gui/fitCommands/guiToggleImplant.py | 30 +++++++++++++++++++++ service/fit.py | 3 +++ 12 files changed, 199 insertions(+), 10 deletions(-) create mode 100644 gui/fitCommands/calc/fitToggleBooster.py create mode 100644 gui/fitCommands/calc/fitToggleFighter.py create mode 100644 gui/fitCommands/calc/fitToggleImplant.py create mode 100644 gui/fitCommands/guiToggleBooster.py create mode 100644 gui/fitCommands/guiToggleFighter.py create mode 100644 gui/fitCommands/guiToggleImplant.py diff --git a/gui/builtinAdditionPanes/boosterView.py b/gui/builtinAdditionPanes/boosterView.py index 48b3ed36d..a68e4ff3a 100644 --- a/gui/builtinAdditionPanes/boosterView.py +++ b/gui/builtinAdditionPanes/boosterView.py @@ -157,9 +157,7 @@ class BoosterView(d.Display): col = self.getColumn(event.Position) if col == self.getColIndex(State): fitID = self.mainFrame.getActiveFit() - sFit = Fit.getInstance() - sFit.toggleBooster(fitID, row) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.GuiToggleImplantCommand(fitID, row)) def scheduleMenu(self, event): event.Skip() diff --git a/gui/builtinAdditionPanes/fighterView.py b/gui/builtinAdditionPanes/fighterView.py index 916bcf585..bf797ae15 100644 --- a/gui/builtinAdditionPanes/fighterView.py +++ b/gui/builtinAdditionPanes/fighterView.py @@ -296,10 +296,8 @@ class FighterDisplay(d.Display): col = self.getColumn(event.Position) if col == self.getColIndex(State): fitID = self.mainFrame.getActiveFit() - sFit = Fit.getInstance() fighter = self.fighters[row] - sFit.toggleFighter(fitID, self.original.index(fighter)) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.GuiToggleFighterCommand(fitID, self.original.index(fighter))) def scheduleMenu(self, event): event.Skip() diff --git a/gui/builtinAdditionPanes/implantView.py b/gui/builtinAdditionPanes/implantView.py index 7144d6cb5..0e2188e6f 100644 --- a/gui/builtinAdditionPanes/implantView.py +++ b/gui/builtinAdditionPanes/implantView.py @@ -187,9 +187,7 @@ class ImplantDisplay(d.Display): col = self.getColumn(event.Position) if col == self.getColIndex(State): fitID = self.mainFrame.getActiveFit() - sFit = Fit.getInstance() - sFit.toggleImplant(fitID, row) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.GuiToggleImplantCommand(fitID, row)) def scheduleMenu(self, event): event.Skip() diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index 6515b5e27..8b053bf82 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -19,4 +19,7 @@ from .guiCargoToModule import GuiCargoToModuleCommand from .guiModuleToCargo import GuiModuleToCargoCommand from .guiAddFighter import GuiAddFighterCommand from .guiRemoveFighter import GuiRemoveFighterCommand -from .guiMetaSwap import GuiMetaSwapCommand \ No newline at end of file +from .guiMetaSwap import GuiMetaSwapCommand +from .guiToggleFighter import GuiToggleFighterCommand +from .guiToggleImplant import GuiToggleImplantCommand +from .guiToggleBooster import GuiToggleImplantCommand \ No newline at end of file diff --git a/gui/fitCommands/calc/fitToggleBooster.py b/gui/fitCommands/calc/fitToggleBooster.py new file mode 100644 index 000000000..504ab114a --- /dev/null +++ b/gui/fitCommands/calc/fitToggleBooster.py @@ -0,0 +1,32 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) + +class FitToggleBoosterCommand(wx.Command): + """" + from sFit.toggleBooster + """ + def __init__(self, fitID, position): + wx.Command.__init__(self, True, "Cargo add") + self.fitID = fitID + self.position = position + + def Do(self): + pyfalog.debug("Toggling booster for fit ID: {0}", self.fitID) + fit = eos.db.getFit(self.fitID) + booster = fit.boosters[self.position] + booster.active = not booster.active + + eos.db.commit() + return True + + def Undo(self): + cmd = FitToggleBoosterCommand(self.fitID, self.position) + return cmd.Do() diff --git a/gui/fitCommands/calc/fitToggleFighter.py b/gui/fitCommands/calc/fitToggleFighter.py new file mode 100644 index 000000000..d0e2a325c --- /dev/null +++ b/gui/fitCommands/calc/fitToggleFighter.py @@ -0,0 +1,33 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) +from eos.saveddata.implant import Implant + +class FitToggleFighterCommand(wx.Command): + """" + from sFit.toggleFighter + """ + def __init__(self, fitID, position): + wx.Command.__init__(self, True, "Cargo add") + self.fitID = fitID + self.position = position + + def Do(self): + pyfalog.debug("Toggling fighters for fit ID: {0}", self.fitID) + fit = eos.db.getFit(self.fitID) + f = fit.fighters[self.position] + f.active = not f.active + + eos.db.commit() + return True + + def Undo(self): + cmd = FitToggleFighterCommand(self.fitID, self.position) + return cmd.Do() diff --git a/gui/fitCommands/calc/fitToggleImplant.py b/gui/fitCommands/calc/fitToggleImplant.py new file mode 100644 index 000000000..a44b5f293 --- /dev/null +++ b/gui/fitCommands/calc/fitToggleImplant.py @@ -0,0 +1,33 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) +from eos.saveddata.implant import Implant + +class FitToggleImplantCommand(wx.Command): + """" + from sFit.toggleImplant + """ + def __init__(self, fitID, position): + wx.Command.__init__(self, True, "Cargo add") + self.fitID = fitID + self.position = position + + def Do(self): + pyfalog.debug("Toggling implant for fit ID: {0}", self.fitID) + fit = eos.db.getFit(self.fitID) + implant = fit.implants[self.position] + implant.active = not implant.active + + eos.db.commit() + return True + + def Undo(self): + cmd = FitToggleImplantCommand(self.fitID, self.position) + return cmd.Do() diff --git a/gui/fitCommands/guiMetaSwap.py b/gui/fitCommands/guiMetaSwap.py index e40906070..e5f3848a5 100644 --- a/gui/fitCommands/guiMetaSwap.py +++ b/gui/fitCommands/guiMetaSwap.py @@ -13,6 +13,7 @@ from .calc.fitReplaceModule import FitReplaceModuleCommand from .calc.fitAddFighter import FitAddFighterCommand from .calc.fitRemoveFighter import FitRemoveFighterCommand + class GuiMetaSwapCommand(wx.Command): def __init__(self, fitID, context, itemID, selection: list): wx.Command.__init__(self, True, "Meta Swap") diff --git a/gui/fitCommands/guiToggleBooster.py b/gui/fitCommands/guiToggleBooster.py new file mode 100644 index 000000000..7d5016dc5 --- /dev/null +++ b/gui/fitCommands/guiToggleBooster.py @@ -0,0 +1,30 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .calc.fitToggleBooster import FitToggleBoosterCommand + +class GuiToggleImplantCommand(wx.Command): + def __init__(self, fitID, position): + wx.Command.__init__(self, True, "") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + self.position = position + + def Do(self): + if self.internal_history.Submit(FitToggleBoosterCommand(self.fitID, self.position)): + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + diff --git a/gui/fitCommands/guiToggleFighter.py b/gui/fitCommands/guiToggleFighter.py new file mode 100644 index 000000000..eee3c945e --- /dev/null +++ b/gui/fitCommands/guiToggleFighter.py @@ -0,0 +1,30 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .calc.fitToggleFighter import FitToggleFighterCommand + +class GuiToggleFighterCommand(wx.Command): + def __init__(self, fitID, position): + wx.Command.__init__(self, True, "") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + self.position = position + + def Do(self): + if self.internal_history.Submit(FitToggleFighterCommand(self.fitID, self.position)): + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + diff --git a/gui/fitCommands/guiToggleImplant.py b/gui/fitCommands/guiToggleImplant.py new file mode 100644 index 000000000..e7ae24669 --- /dev/null +++ b/gui/fitCommands/guiToggleImplant.py @@ -0,0 +1,30 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .calc.fitToggleImplant import FitToggleImplantCommand + +class GuiToggleImplantCommand(wx.Command): + def __init__(self, fitID, position): + wx.Command.__init__(self, True, "") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + self.position = position + + def Do(self): + if self.internal_history.Submit(FitToggleImplantCommand(self.fitID, self.position)): + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + diff --git a/service/fit.py b/service/fit.py index c7cb70fd1..7dbda941b 100644 --- a/service/fit.py +++ b/service/fit.py @@ -1022,6 +1022,7 @@ class Fit(object): self.recalc(fit) return True + @deprecated def toggleFighter(self, fitID, i): pyfalog.debug("Toggling fighters for fit ID: {0}", fitID) fit = eos.db.getFit(fitID) @@ -1032,6 +1033,7 @@ class Fit(object): self.recalc(fit) return True + @deprecated def toggleImplant(self, fitID, i): pyfalog.debug("Toggling implant for fit ID: {0}", fitID) fit = eos.db.getFit(fitID) @@ -1066,6 +1068,7 @@ class Fit(object): self.recalc(fit) return True + @deprecated def toggleBooster(self, fitID, i): pyfalog.debug("Toggling booster for fit ID: {0}", fitID) fit = eos.db.getFit(fitID) From eeb2b019c0b07f7ed369b01c66adc423f9bbe8e0 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Tue, 14 Aug 2018 01:26:17 -0400 Subject: [PATCH 047/110] Remove the crap from meta swap that was already reimplemented, leaving only drones as a reminder on what needs to be done --- gui/builtinContextMenus/metaSwap.py | 53 +---------------------------- 1 file changed, 1 insertion(+), 52 deletions(-) diff --git a/gui/builtinContextMenus/metaSwap.py b/gui/builtinContextMenus/metaSwap.py index bd98c6bfa..1c4be8017 100644 --- a/gui/builtinContextMenus/metaSwap.py +++ b/gui/builtinContextMenus/metaSwap.py @@ -138,13 +138,7 @@ class MetaSwap(ContextMenu): self.mainFrame.command.Submit(cmd.GuiMetaSwapCommand(fitID, context, item.ID, self.selection)) # for selected_item in self.selection: - # if isinstance(selected_item, Module): - # pos = fit.modules.index(selected_item) - # self.mainFrame.command.Submit(cmd.GuiModuleAddCommand(fitID, item.ID, pos)) - # - # - # sFit.changeModule(fitID, pos, item.ID) - # wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + # # elif isinstance(selected_item, Drone): # drone_count = None @@ -157,51 +151,6 @@ class MetaSwap(ContextMenu): # # if drone_count: # sFit.addDrone(fitID, item.ID, drone_count, True) - # wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) - # - # elif isinstance(selected_item, Fighter): - # fighter_count = None - # - # for idx, fighter_stack in enumerate(fit.fighters): - # # Right now fighters always will have max stack size. - # # Including this for future improvement, so if adjustable - # # fighter stacks get added we're ready for it. - # if fighter_stack is selected_item: - # if fighter_stack.amount > 0: - # fighter_count = fighter_stack.amount - # elif fighter_stack.amount == -1: - # fighter_count = fighter_stack.amountActive - # else: - # fighter_count.amount = 0 - # - # sFit.removeFighter(fitID, idx, False) - # break - # - # sFit.addFighter(fitID, item.ID, True) - # wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) - # - # elif isinstance(selected_item, Booster): - # for idx, booster_stack in enumerate(fit.boosters): - # if booster_stack is selected_item: - # self.mainFrame.command.Submit(cmd.GuiRemoveBoosterCommand(fitID, idx)) - # self.mainFrame.command.Submit(cmd.GuiAddBoosterCommand(fitID, item.ID)) - # break - # - # elif isinstance(selected_item, Implant): - # for idx, implant_stack in enumerate(fit.implants): - # if implant_stack is selected_item: - # self.mainFrame.command.Submit(cmd.GuiRemoveImplantCommand(fitID, idx)) - # self.mainFrame.command.Submit(cmd.GuiAddImplantCommand(fitID, item.ID)) - # break - # - # elif isinstance(selected_item, Cargo): - # for idx, cargo_stack in enumerate(fit.cargo): - # if cargo_stack is selected_item: - # # todo: make a command to change varieance of all items, or maybe per item type, which would - # # utilize the two fitting commands that we need to remove then add? - # sFit.removeCargo(fitID, idx) - # self.mainFrame.command.Submit(cmd.GuiAddCargoCommand(fitID, item.ID, cargo_stack.amount, True)) - # break From 3d4b41d1351eabb4b9a479ebec5ef97fc8009d00 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Tue, 14 Aug 2018 01:31:59 -0400 Subject: [PATCH 048/110] Move deprecated methods to a base class - will remove this eventually, want to keep Fit clean --- service/fit.py | 577 +------------------------------------ service/fitDeprecated.py | 607 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 610 insertions(+), 574 deletions(-) create mode 100644 service/fitDeprecated.py diff --git a/service/fit.py b/service/fit.py index 7dbda941b..0807ba8a8 100644 --- a/service/fit.py +++ b/service/fit.py @@ -37,11 +37,11 @@ from eos.saveddata.fit import Fit as FitType, ImplantLocation from service.character import Character from service.damagePattern import DamagePattern from service.settings import SettingsProvider -from utils.deprecated import deprecated import wx pyfalog = Logger(__name__) +from service.fitDeprecated import FitDeprecated class DeferRecalc(): def __init__(self, fitID): @@ -57,7 +57,8 @@ class DeferRecalc(): self.sFit.recalc(self.fitID) -class Fit(object): +# inherits from FitDeprecated so that I can move all the dead shit, but not affect functionality +class Fit(FitDeprecated): instance = None processors = {} @@ -192,7 +193,6 @@ class Fit(object): eos.db.commit() return old_name, newName - @staticmethod def deleteFit(fitID): fit = eos.db.getFit(fitID) @@ -345,148 +345,6 @@ class Fit(object): fit.notes)) return fits - @deprecated - def addImplant(self, fitID, itemID, recalc=True): - pyfalog.debug("Adding implant to fit ({0}) for item ID: {1}", fitID, itemID) - if fitID is None: - return False - - fit = eos.db.getFit(fitID) - item = eos.db.getItem(itemID, eager="attributes") - try: - implant = es_Implant(item) - except ValueError: - pyfalog.warning("Invalid item: {0}", itemID) - return False - - fit.implants.append(implant) - if recalc: - self.recalc(fit) - return True - - @deprecated - def removeImplant(self, fitID, position, recalc=True): - pyfalog.debug("Removing implant from position ({0}) for fit ID: {1}", position, fitID) - if fitID is None: - return False - - fit = eos.db.getFit(fitID) - implant = fit.implants[position] - fit.implants.remove(implant) - if recalc: - self.recalc(fit) - return True - - @deprecated - def addBooster(self, fitID, itemID, recalc=True): - pyfalog.debug("Adding booster ({0}) to fit ID: {1}", itemID, fitID) - if fitID is None: - return False - - fit = eos.db.getFit(fitID) - item = eos.db.getItem(itemID, eager="attributes") - try: - booster = es_Booster(item) - except ValueError: - pyfalog.warning("Invalid item: {0}", itemID) - return False - - fit.boosters.append(booster) - if recalc: - self.recalc(fit) - return True - - @deprecated - def removeBooster(self, fitID, position, recalc=True): - pyfalog.debug("Removing booster from position ({0}) for fit ID: {1}", position, fitID) - if fitID is None: - return False - - fit = eos.db.getFit(fitID) - booster = fit.boosters[position] - fit.boosters.remove(booster) - if recalc: - self.recalc(fit) - return True - - @deprecated - def project(self, fitID, thing): - pyfalog.debug("Projecting fit ({0}) onto: {1}", fitID, thing) - if fitID is None: - return - - fit = eos.db.getFit(fitID) - - if isinstance(thing, int): - thing = eos.db.getItem(thing, - eager=("attributes", "group.category")) - - if isinstance(thing, es_Module): - thing = copy.deepcopy(thing) - fit.projectedModules.append(thing) - elif isinstance(thing, FitType): - if thing in fit.projectedFits: - return - - fit.projectedFitDict[thing.ID] = thing - - # this bit is required -- see GH issue # 83 - eos.db.saveddata_session.flush() - eos.db.saveddata_session.refresh(thing) - elif thing.category.name == "Drone": - drone = None - for d in fit.projectedDrones.find(thing): - if d is None or d.amountActive == d.amount or d.amount >= 5: - drone = d - break - - if drone is None: - drone = es_Drone(thing) - fit.projectedDrones.append(drone) - - drone.amount += 1 - elif thing.category.name == "Fighter": - fighter = es_Fighter(thing) - fit.projectedFighters.append(fighter) - elif thing.group.name in es_Module.SYSTEM_GROUPS: - module = es_Module(thing) - module.state = State.ONLINE - fit.projectedModules.append(module) - else: - try: - module = es_Module(thing) - except ValueError: - return False - module.state = State.ACTIVE - if not module.canHaveState(module.state, fit): - module.state = State.OFFLINE - fit.projectedModules.append(module) - - eos.db.commit() - self.recalc(fit) - return True - - @deprecated - def addCommandFit(self, fitID, thing): - pyfalog.debug("Projecting command fit ({0}) onto: {1}", fitID, thing) - if fitID is None: - return - - fit = eos.db.getFit(fitID) - - if thing in fit.commandFits: - return - - fit.commandFitDict[thing.ID] = thing - - # this bit is required -- see GH issue # 83 - eos.db.saveddata_session.flush() - eos.db.saveddata_session.refresh(thing) - - eos.db.commit() - self.recalc(fit) - return True - def toggleProjected(self, fitID, thing, click): pyfalog.debug("Toggling projected on fit ({0}) for: {1}", fitID, thing) fit = eos.db.getFit(fitID) @@ -509,16 +367,6 @@ class Fit(object): eos.db.commit() self.recalc(fit) - @deprecated - def toggleCommandFit(self, fitID, thing): - pyfalog.debug("Toggle command fit ({0}) for: {1}", fitID, thing) - fit = eos.db.getFit(fitID) - commandInfo = thing.getCommandInfo(fitID) - if commandInfo: - commandInfo.active = not commandInfo.active - - eos.db.commit() - self.recalc(fit) def changeAmount(self, fitID, projected_fit, amount): """Change amount of projected fits""" @@ -540,31 +388,6 @@ class Fit(object): eos.db.commit() self.recalc(fit) - @deprecated - def removeProjected(self, fitID, thing): - pyfalog.debug("Removing projection on fit ({0}) from: {1}", fitID, thing) - fit = eos.db.getFit(fitID) - if isinstance(thing, es_Drone): - fit.projectedDrones.remove(thing) - elif isinstance(thing, es_Module): - fit.projectedModules.remove(thing) - elif isinstance(thing, es_Fighter): - fit.projectedFighters.remove(thing) - else: - del fit.projectedFitDict[thing.ID] - # fit.projectedFits.remove(thing) - - eos.db.commit() - self.recalc(fit) - - @deprecated - def removeCommand(self, fitID, thing): - pyfalog.debug("Removing command projection from fit ({0}) for: {1}", fitID, thing) - fit = eos.db.getFit(fitID) - del fit.commandFitDict[thing.ID] - - eos.db.commit() - self.recalc(fit) def changeMutatedValue(self, mutator, value): pyfalog.debug("Changing mutated value for {} / {}: {} => {}".format(mutator.module, mutator.module.mutaplasmid, mutator.value, value)) @@ -573,66 +396,6 @@ class Fit(object): eos.db.commit() return mutator.value - @deprecated - def appendModule(self, fitID, itemID): - pyfalog.debug("Appending module for fit ({0}) using item: {1}", fitID, itemID) - fit = eos.db.getFit(fitID) - item = eos.db.getItem(itemID, eager=("attributes", "group.category")) - try: - m = es_Module(item) - except ValueError: - pyfalog.warning("Invalid item: {0}", itemID) - return False - - if m.item.category.name == "Subsystem": - fit.modules.freeSlot(m.getModifiedItemAttr("subSystemSlot")) - - if m.fits(fit): - m.owner = fit - numSlots = len(fit.modules) - fit.modules.append(m) - if m.isValidState(State.ACTIVE): - m.state = State.ACTIVE - - # As some items may affect state-limiting attributes of the ship, calculate new attributes first - self.recalc(fit) - # Then, check states of all modules and change where needed. This will recalc if needed - self.checkStates(fit, m) - - fit.fill() - eos.db.commit() - - return numSlots != len(fit.modules), m.modPosition - else: - return None, None - - @deprecated - def removeModule(self, fitID, positions): - """Removes modules based on a number of positions.""" - pyfalog.debug("Removing module from position ({0}) for fit ID: {1}", positions, fitID) - fit = eos.db.getFit(fitID) - - # Convert scalar value to list - if not isinstance(positions, list): - positions = [positions] - - modulesChanged = False - for x in positions: - if not fit.modules[x].isEmpty: - fit.modules.toDummy(x) - modulesChanged = True - - # if no modules have changes, report back None - if not modulesChanged: - return None - - numSlots = len(fit.modules) - self.recalc(fit) - self.checkStates(fit, None) - fit.fill() - eos.db.commit() - return numSlots != len(fit.modules) - def convertMutaplasmid(self, fitID, position, mutaplasmid): # this is mostly the same thing as the self.changeModule method, however it initializes an abyssal module with # the old module as it's base, and then replaces it @@ -664,251 +427,6 @@ class Fit(object): else: return None - @deprecated - def changeModule(self, fitID, position, newItemID, recalc=True): - fit = eos.db.getFit(fitID) - - # We're trying to add a charge to a slot, which won't work. Instead, try to add the charge to the module in that slot. - if self.isAmmo(newItemID): - module = fit.modules[position] - if not module.isEmpty: - self.setAmmo(fitID, newItemID, [module]) - return True - - pyfalog.debug("Changing position of module from position ({0}) for fit ID: {1}", position, fitID) - - item = eos.db.getItem(newItemID, eager=("attributes", "group.category")) - - # Dummy it out in case the next bit fails - fit.modules.toDummy(position) - - try: - m = es_Module(item) - except ValueError: - pyfalog.warning("Invalid item: {0}", newItemID) - return False - - if m.fits(fit): - m.owner = fit - fit.modules.toModule(position, m) - if m.isValidState(State.ACTIVE): - m.state = State.ACTIVE - - if (recalc): - # As some items may affect state-limiting attributes of the ship, calculate new attributes first - self.recalc(fit) - # Then, check states of all modules and change where needed. This will recalc if needed - self.checkStates(fit, m) - - fit.fill() - eos.db.commit() - - return m - else: - return None - - @deprecated - def moveCargoToModule(self, fitID, moduleIdx, cargoIdx, copyMod=False): - """ - Moves cargo to fitting window. Can either do a copy, move, or swap with current module - If we try to copy/move into a spot with a non-empty module, we swap instead. - To avoid redundancy in converting Cargo item, this function does the - sanity checks as opposed to the GUI View. This is different than how the - normal .swapModules() does things, which is mostly a blind swap. - """ - - fit = eos.db.getFit(fitID) - module = fit.modules[moduleIdx] - cargo = fit.cargo[cargoIdx] - - # We're trying to move a charge from cargo to a slot - try to add charge to dst module. Don't do anything with - # the charge in the cargo (don't respect move vs copy) - if self.isAmmo(cargo.item.ID): - if not module.isEmpty: - self.setAmmo(fitID, cargo.item.ID, [module]) - return - - pyfalog.debug("Moving cargo item to module for fit ID: {0}", fitID) - - # Gather modules and convert Cargo item to Module, silently return if not a module - try: - cargoP = es_Module(cargo.item) - cargoP.owner = fit - if cargoP.isValidState(State.ACTIVE): - cargoP.state = State.ACTIVE - except: - pyfalog.warning("Invalid item: {0}", cargo.item) - return - - if cargoP.slot != module.slot: # can't swap modules to different racks - return - - # remove module that we are trying to move cargo to - fit.modules.remove(module) - - if not cargoP.fits(fit): # if cargo doesn't fit, rollback and return - fit.modules.insert(moduleIdx, module) - return - - fit.modules.insert(moduleIdx, cargoP) - - if not copyMod: # remove existing cargo if not cloning - if cargo.amount == 1: - fit.cargo.remove(cargo) - else: - cargo.amount -= 1 - - if not module.isEmpty: # if module is placeholder, we don't want to convert/add it - moduleItem = module.item if not module.item.isAbyssal else module.baseItem - for x in fit.cargo.find(moduleItem): - x.amount += 1 - break - else: - moduleP = es_Cargo(moduleItem) - moduleP.amount = 1 - fit.cargo.insert(cargoIdx, moduleP) - - eos.db.commit() - self.recalc(fit) - - @staticmethod - @deprecated - def swapModules(fitID, src, dst): - pyfalog.debug("Swapping modules from source ({0}) to destination ({1}) for fit ID: {1}", src, dst, fitID) - fit = eos.db.getFit(fitID) - # Gather modules - srcMod = fit.modules[src] - dstMod = fit.modules[dst] - - # To swap, we simply remove mod and insert at destination. - fit.modules.remove(srcMod) - fit.modules.insert(dst, srcMod) - fit.modules.remove(dstMod) - fit.modules.insert(src, dstMod) - - eos.db.commit() - - @deprecated - def cloneModule(self, fitID, src, dst): - """ - Clone a module from src to dst - This will overwrite dst! Checking for empty module must be - done at a higher level - """ - pyfalog.debug("Cloning modules from source ({0}) to destination ({1}) for fit ID: {1}", src, dst, fitID) - fit = eos.db.getFit(fitID) - # Gather modules - srcMod = fit.modules[src] - dstMod = fit.modules[dst] # should be a placeholder module - - new = copy.deepcopy(srcMod) - new.owner = fit - if new.fits(fit): - # insert copy if module meets hardpoint restrictions - fit.modules.remove(dstMod) - fit.modules.insert(dst, new) - - eos.db.commit() - self.recalc(fit) - - @deprecated - def addCargo(self, fitID, itemID, amount=1, replace=False): - """ - Adds cargo via typeID of item. If replace = True, we replace amount with - given parameter, otherwise we increment - """ - pyfalog.debug("Adding cargo ({0}) fit ID: {1}", itemID, fitID) - - if fitID is None: - return False - - fit = eos.db.getFit(fitID) - item = eos.db.getItem(itemID) - cargo = None - - # adding from market - for x in fit.cargo.find(item): - if x is not None: - # found item already in cargo, use previous value and remove old - cargo = x - fit.cargo.remove(x) - break - - if cargo is None: - # if we don't have the item already in cargo, use default values - cargo = es_Cargo(item) - - fit.cargo.append(cargo) - if replace: - cargo.amount = amount - else: - cargo.amount += amount - - self.recalc(fit) - eos.db.commit() - - return True - - @deprecated - def removeCargo(self, fitID, position): - pyfalog.debug("Removing cargo from position ({0}) fit ID: {1}", position, fitID) - if fitID is None: - return False - - fit = eos.db.getFit(fitID) - charge = fit.cargo[position] - fit.cargo.remove(charge) - self.recalc(fit) - return True - - @deprecated - def addFighter(self, fitID, itemID, recalc=True): - pyfalog.debug("Adding fighters ({0}) to fit ID: {1}", itemID, fitID) - if fitID is None: - return False - - fit = eos.db.getFit(fitID) - item = eos.db.getItem(itemID, eager=("attributes", "group.category")) - if item.category.name == "Fighter": - fighter = None - ''' - for d in fit.fighters.find(item): - if d is not None and d.amountActive == 0 and d.amount < max(5, fit.extraAttributes["maxActiveDrones"]): - drone = d - break - ''' - if fighter is None: - fighter = es_Fighter(item) - used = fit.getSlotsUsed(fighter.slot) - total = fit.getNumSlots(fighter.slot) - - if used >= total: - fighter.active = False - - if fighter.fits(fit) is True: - fit.fighters.append(fighter) - else: - return False - - eos.db.commit() - if recalc: - self.recalc(fit) - return True - else: - return False - - @deprecated - def removeFighter(self, fitID, i, recalc=True): - pyfalog.debug("Removing fighters from fit ID: {0}", fitID) - fit = eos.db.getFit(fitID) - f = fit.fighters[i] - fit.fighters.remove(f) - - eos.db.commit() - if recalc: - self.recalc(fit) - return True - def addDrone(self, fitID, itemID, numDronesToAdd=1, recalc=True): pyfalog.debug("Adding {0} drones ({1}) to fit ID: {2}", numDronesToAdd, itemID, fitID) if fitID is None: @@ -1022,28 +540,6 @@ class Fit(object): self.recalc(fit) return True - @deprecated - def toggleFighter(self, fitID, i): - pyfalog.debug("Toggling fighters for fit ID: {0}", fitID) - fit = eos.db.getFit(fitID) - f = fit.fighters[i] - f.active = not f.active - - eos.db.commit() - self.recalc(fit) - return True - - @deprecated - def toggleImplant(self, fitID, i): - pyfalog.debug("Toggling implant for fit ID: {0}", fitID) - fit = eos.db.getFit(fitID) - implant = fit.implants[i] - implant.active = not implant.active - - eos.db.commit() - self.recalc(fit) - return True - def toggleImplantSource(self, fitID, source): pyfalog.debug("Toggling implant source for fit ID: {0}", fitID) fit = eos.db.getFit(fitID) @@ -1068,17 +564,6 @@ class Fit(object): self.recalc(fit) return True - @deprecated - def toggleBooster(self, fitID, i): - pyfalog.debug("Toggling booster for fit ID: {0}", fitID) - fit = eos.db.getFit(fitID) - booster = fit.boosters[i] - booster.active = not booster.active - - eos.db.commit() - self.recalc(fit) - return True - def toggleFighterAbility(self, fitID, ability): pyfalog.debug("Toggling fighter ability for fit ID: {0}", fitID) fit = eos.db.getFit(fitID) @@ -1110,22 +595,6 @@ class Fit(object): # todo: get rid of this form the service, use directly from item return eos.db.getItem(itemID).isCharge - @deprecated - def setAmmo(self, fitID, ammoID, modules, recalc=True): - pyfalog.debug("Set ammo for fit ID: {0}", fitID) - if fitID is None: - return - - fit = eos.db.getFit(fitID) - ammo = eos.db.getItem(ammoID) if ammoID else None - - for mod in modules: - if mod.isValidCharge(ammo): - mod.charge = ammo - - if recalc: - self.recalc(fit) - @staticmethod def getTargetResists(fitID): pyfalog.debug("Get target resists for fit ID: {0}", fitID) @@ -1166,18 +635,6 @@ class Fit(object): self.recalc(fit) - @deprecated - def setMode(self, fitID, mode): - pyfalog.debug("Set mode for fit ID: {0}", fitID) - if fitID is None: - return - - fit = eos.db.getFit(fitID) - fit.mode = mode - eos.db.commit() - - self.recalc(fit) - def setAsPattern(self, fitID, ammo): pyfalog.debug("Set as pattern for fit ID: {0}", fitID) if fitID is None: @@ -1221,34 +678,6 @@ class Fit(object): if changed: self.recalc(fit) - @deprecated - def toggleModulesState(self, fitID, base, modules, click): - pyfalog.debug("Toggle module state for fit ID: {0}", fitID) - changed = False - proposedState = es_Module.getProposedState(base, click) - - if proposedState != base.state: - changed = True - base.state = proposedState - for mod in modules: - if mod != base: - p = es_Module.getProposedState(mod, click, proposedState) - mod.state = p - if p != mod.state: - changed = True - - if changed: - eos.db.commit() - fit = eos.db.getFit(fitID) - - # As some items may affect state-limiting attributes of the ship, calculate new attributes first - self.recalc(fit) - # Then, check states of all modules and change where needed. This will recalc if needed - self.checkStates(fit, base) - - - - def refreshFit(self, fitID): pyfalog.debug("Refresh fit for fit ID: {0}", fitID) if fitID is None: diff --git a/service/fitDeprecated.py b/service/fitDeprecated.py new file mode 100644 index 000000000..8bc522217 --- /dev/null +++ b/service/fitDeprecated.py @@ -0,0 +1,607 @@ +# =============================================================================== +# Copyright (C) 2010 Diego Duclos +# +# This file is part of pyfa. +# +# pyfa is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# pyfa is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with pyfa. If not, see . +# =============================================================================== + +import copy +from logbook import Logger + +import eos.db +from eos.saveddata.booster import Booster as es_Booster +from eos.saveddata.cargo import Cargo as es_Cargo + +from eos.saveddata.drone import Drone as es_Drone +from eos.saveddata.fighter import Fighter as es_Fighter +from eos.saveddata.implant import Implant as es_Implant +from eos.saveddata.module import Module as es_Module, State +from eos.saveddata.fit import Fit as FitType +from utils.deprecated import deprecated + +pyfalog = Logger(__name__) + + +class FitDeprecated(object): + + @deprecated + def addImplant(self, fitID, itemID, recalc=True): + pyfalog.debug("Adding implant to fit ({0}) for item ID: {1}", fitID, itemID) + if fitID is None: + return False + + fit = eos.db.getFit(fitID) + item = eos.db.getItem(itemID, eager="attributes") + try: + implant = es_Implant(item) + except ValueError: + pyfalog.warning("Invalid item: {0}", itemID) + return False + + fit.implants.append(implant) + if recalc: + self.recalc(fit) + return True + + @deprecated + def removeImplant(self, fitID, position, recalc=True): + pyfalog.debug("Removing implant from position ({0}) for fit ID: {1}", position, fitID) + if fitID is None: + return False + + fit = eos.db.getFit(fitID) + implant = fit.implants[position] + fit.implants.remove(implant) + if recalc: + self.recalc(fit) + return True + + @deprecated + def addBooster(self, fitID, itemID, recalc=True): + pyfalog.debug("Adding booster ({0}) to fit ID: {1}", itemID, fitID) + if fitID is None: + return False + + fit = eos.db.getFit(fitID) + item = eos.db.getItem(itemID, eager="attributes") + try: + booster = es_Booster(item) + except ValueError: + pyfalog.warning("Invalid item: {0}", itemID) + return False + + fit.boosters.append(booster) + if recalc: + self.recalc(fit) + return True + + @deprecated + def removeBooster(self, fitID, position, recalc=True): + pyfalog.debug("Removing booster from position ({0}) for fit ID: {1}", position, fitID) + if fitID is None: + return False + + fit = eos.db.getFit(fitID) + booster = fit.boosters[position] + fit.boosters.remove(booster) + if recalc: + self.recalc(fit) + return True + + @deprecated + def project(self, fitID, thing): + pyfalog.debug("Projecting fit ({0}) onto: {1}", fitID, thing) + if fitID is None: + return + + fit = eos.db.getFit(fitID) + + if isinstance(thing, int): + thing = eos.db.getItem(thing, + eager=("attributes", "group.category")) + + if isinstance(thing, es_Module): + thing = copy.deepcopy(thing) + fit.projectedModules.append(thing) + elif isinstance(thing, FitType): + if thing in fit.projectedFits: + return + + fit.projectedFitDict[thing.ID] = thing + + # this bit is required -- see GH issue # 83 + eos.db.saveddata_session.flush() + eos.db.saveddata_session.refresh(thing) + elif thing.category.name == "Drone": + drone = None + for d in fit.projectedDrones.find(thing): + if d is None or d.amountActive == d.amount or d.amount >= 5: + drone = d + break + + if drone is None: + drone = es_Drone(thing) + fit.projectedDrones.append(drone) + + drone.amount += 1 + elif thing.category.name == "Fighter": + fighter = es_Fighter(thing) + fit.projectedFighters.append(fighter) + elif thing.group.name in es_Module.SYSTEM_GROUPS: + module = es_Module(thing) + module.state = State.ONLINE + fit.projectedModules.append(module) + else: + try: + module = es_Module(thing) + except ValueError: + return False + module.state = State.ACTIVE + if not module.canHaveState(module.state, fit): + module.state = State.OFFLINE + fit.projectedModules.append(module) + + eos.db.commit() + self.recalc(fit) + return True + + @deprecated + def addCommandFit(self, fitID, thing): + pyfalog.debug("Projecting command fit ({0}) onto: {1}", fitID, thing) + if fitID is None: + return + + fit = eos.db.getFit(fitID) + + if thing in fit.commandFits: + return + + fit.commandFitDict[thing.ID] = thing + + # this bit is required -- see GH issue # 83 + eos.db.saveddata_session.flush() + eos.db.saveddata_session.refresh(thing) + + eos.db.commit() + self.recalc(fit) + return True + + @deprecated + def toggleCommandFit(self, fitID, thing): + pyfalog.debug("Toggle command fit ({0}) for: {1}", fitID, thing) + fit = eos.db.getFit(fitID) + commandInfo = thing.getCommandInfo(fitID) + if commandInfo: + commandInfo.active = not commandInfo.active + + eos.db.commit() + self.recalc(fit) + + @deprecated + def removeProjected(self, fitID, thing): + pyfalog.debug("Removing projection on fit ({0}) from: {1}", fitID, thing) + fit = eos.db.getFit(fitID) + if isinstance(thing, es_Drone): + fit.projectedDrones.remove(thing) + elif isinstance(thing, es_Module): + fit.projectedModules.remove(thing) + elif isinstance(thing, es_Fighter): + fit.projectedFighters.remove(thing) + else: + del fit.projectedFitDict[thing.ID] + # fit.projectedFits.remove(thing) + + eos.db.commit() + self.recalc(fit) + + @deprecated + def removeCommand(self, fitID, thing): + pyfalog.debug("Removing command projection from fit ({0}) for: {1}", fitID, thing) + fit = eos.db.getFit(fitID) + del fit.commandFitDict[thing.ID] + + eos.db.commit() + self.recalc(fit) + + @deprecated + def appendModule(self, fitID, itemID): + pyfalog.debug("Appending module for fit ({0}) using item: {1}", fitID, itemID) + fit = eos.db.getFit(fitID) + item = eos.db.getItem(itemID, eager=("attributes", "group.category")) + try: + m = es_Module(item) + except ValueError: + pyfalog.warning("Invalid item: {0}", itemID) + return False + + if m.item.category.name == "Subsystem": + fit.modules.freeSlot(m.getModifiedItemAttr("subSystemSlot")) + + if m.fits(fit): + m.owner = fit + numSlots = len(fit.modules) + fit.modules.append(m) + if m.isValidState(State.ACTIVE): + m.state = State.ACTIVE + + # As some items may affect state-limiting attributes of the ship, calculate new attributes first + self.recalc(fit) + # Then, check states of all modules and change where needed. This will recalc if needed + self.checkStates(fit, m) + + fit.fill() + eos.db.commit() + + return numSlots != len(fit.modules), m.modPosition + else: + return None, None + + @deprecated + def removeModule(self, fitID, positions): + """Removes modules based on a number of positions.""" + pyfalog.debug("Removing module from position ({0}) for fit ID: {1}", positions, fitID) + fit = eos.db.getFit(fitID) + + # Convert scalar value to list + if not isinstance(positions, list): + positions = [positions] + + modulesChanged = False + for x in positions: + if not fit.modules[x].isEmpty: + fit.modules.toDummy(x) + modulesChanged = True + + # if no modules have changes, report back None + if not modulesChanged: + return None + + numSlots = len(fit.modules) + self.recalc(fit) + self.checkStates(fit, None) + fit.fill() + eos.db.commit() + return numSlots != len(fit.modules) + + @deprecated + def changeModule(self, fitID, position, newItemID, recalc=True): + fit = eos.db.getFit(fitID) + + # We're trying to add a charge to a slot, which won't work. Instead, try to add the charge to the module in that slot. + if self.isAmmo(newItemID): + module = fit.modules[position] + if not module.isEmpty: + self.setAmmo(fitID, newItemID, [module]) + return True + + pyfalog.debug("Changing position of module from position ({0}) for fit ID: {1}", position, fitID) + + item = eos.db.getItem(newItemID, eager=("attributes", "group.category")) + + # Dummy it out in case the next bit fails + fit.modules.toDummy(position) + + try: + m = es_Module(item) + except ValueError: + pyfalog.warning("Invalid item: {0}", newItemID) + return False + + if m.fits(fit): + m.owner = fit + fit.modules.toModule(position, m) + if m.isValidState(State.ACTIVE): + m.state = State.ACTIVE + + if (recalc): + # As some items may affect state-limiting attributes of the ship, calculate new attributes first + self.recalc(fit) + # Then, check states of all modules and change where needed. This will recalc if needed + self.checkStates(fit, m) + + fit.fill() + eos.db.commit() + + return m + else: + return None + + @deprecated + def moveCargoToModule(self, fitID, moduleIdx, cargoIdx, copyMod=False): + """ + Moves cargo to fitting window. Can either do a copy, move, or swap with current module + If we try to copy/move into a spot with a non-empty module, we swap instead. + To avoid redundancy in converting Cargo item, this function does the + sanity checks as opposed to the GUI View. This is different than how the + normal .swapModules() does things, which is mostly a blind swap. + """ + + fit = eos.db.getFit(fitID) + module = fit.modules[moduleIdx] + cargo = fit.cargo[cargoIdx] + + # We're trying to move a charge from cargo to a slot - try to add charge to dst module. Don't do anything with + # the charge in the cargo (don't respect move vs copy) + if self.isAmmo(cargo.item.ID): + if not module.isEmpty: + self.setAmmo(fitID, cargo.item.ID, [module]) + return + + pyfalog.debug("Moving cargo item to module for fit ID: {0}", fitID) + + # Gather modules and convert Cargo item to Module, silently return if not a module + try: + cargoP = es_Module(cargo.item) + cargoP.owner = fit + if cargoP.isValidState(State.ACTIVE): + cargoP.state = State.ACTIVE + except: + pyfalog.warning("Invalid item: {0}", cargo.item) + return + + if cargoP.slot != module.slot: # can't swap modules to different racks + return + + # remove module that we are trying to move cargo to + fit.modules.remove(module) + + if not cargoP.fits(fit): # if cargo doesn't fit, rollback and return + fit.modules.insert(moduleIdx, module) + return + + fit.modules.insert(moduleIdx, cargoP) + + if not copyMod: # remove existing cargo if not cloning + if cargo.amount == 1: + fit.cargo.remove(cargo) + else: + cargo.amount -= 1 + + if not module.isEmpty: # if module is placeholder, we don't want to convert/add it + moduleItem = module.item if not module.item.isAbyssal else module.baseItem + for x in fit.cargo.find(moduleItem): + x.amount += 1 + break + else: + moduleP = es_Cargo(moduleItem) + moduleP.amount = 1 + fit.cargo.insert(cargoIdx, moduleP) + + eos.db.commit() + self.recalc(fit) + + @staticmethod + @deprecated + def swapModules(fitID, src, dst): + pyfalog.debug("Swapping modules from source ({0}) to destination ({1}) for fit ID: {1}", src, dst, fitID) + fit = eos.db.getFit(fitID) + # Gather modules + srcMod = fit.modules[src] + dstMod = fit.modules[dst] + + # To swap, we simply remove mod and insert at destination. + fit.modules.remove(srcMod) + fit.modules.insert(dst, srcMod) + fit.modules.remove(dstMod) + fit.modules.insert(src, dstMod) + + eos.db.commit() + + @deprecated + def cloneModule(self, fitID, src, dst): + """ + Clone a module from src to dst + This will overwrite dst! Checking for empty module must be + done at a higher level + """ + pyfalog.debug("Cloning modules from source ({0}) to destination ({1}) for fit ID: {1}", src, dst, fitID) + fit = eos.db.getFit(fitID) + # Gather modules + srcMod = fit.modules[src] + dstMod = fit.modules[dst] # should be a placeholder module + + new = copy.deepcopy(srcMod) + new.owner = fit + if new.fits(fit): + # insert copy if module meets hardpoint restrictions + fit.modules.remove(dstMod) + fit.modules.insert(dst, new) + + eos.db.commit() + self.recalc(fit) + + @deprecated + def addCargo(self, fitID, itemID, amount=1, replace=False): + """ + Adds cargo via typeID of item. If replace = True, we replace amount with + given parameter, otherwise we increment + """ + pyfalog.debug("Adding cargo ({0}) fit ID: {1}", itemID, fitID) + + if fitID is None: + return False + + fit = eos.db.getFit(fitID) + item = eos.db.getItem(itemID) + cargo = None + + # adding from market + for x in fit.cargo.find(item): + if x is not None: + # found item already in cargo, use previous value and remove old + cargo = x + fit.cargo.remove(x) + break + + if cargo is None: + # if we don't have the item already in cargo, use default values + cargo = es_Cargo(item) + + fit.cargo.append(cargo) + if replace: + cargo.amount = amount + else: + cargo.amount += amount + + self.recalc(fit) + eos.db.commit() + + return True + + @deprecated + def removeCargo(self, fitID, position): + pyfalog.debug("Removing cargo from position ({0}) fit ID: {1}", position, fitID) + if fitID is None: + return False + + fit = eos.db.getFit(fitID) + charge = fit.cargo[position] + fit.cargo.remove(charge) + self.recalc(fit) + return True + + @deprecated + def addFighter(self, fitID, itemID, recalc=True): + pyfalog.debug("Adding fighters ({0}) to fit ID: {1}", itemID, fitID) + if fitID is None: + return False + + fit = eos.db.getFit(fitID) + item = eos.db.getItem(itemID, eager=("attributes", "group.category")) + if item.category.name == "Fighter": + fighter = None + ''' + for d in fit.fighters.find(item): + if d is not None and d.amountActive == 0 and d.amount < max(5, fit.extraAttributes["maxActiveDrones"]): + drone = d + break + ''' + if fighter is None: + fighter = es_Fighter(item) + used = fit.getSlotsUsed(fighter.slot) + total = fit.getNumSlots(fighter.slot) + + if used >= total: + fighter.active = False + + if fighter.fits(fit) is True: + fit.fighters.append(fighter) + else: + return False + + eos.db.commit() + if recalc: + self.recalc(fit) + return True + else: + return False + + @deprecated + def removeFighter(self, fitID, i, recalc=True): + pyfalog.debug("Removing fighters from fit ID: {0}", fitID) + fit = eos.db.getFit(fitID) + f = fit.fighters[i] + fit.fighters.remove(f) + + eos.db.commit() + if recalc: + self.recalc(fit) + return True + + @deprecated + def toggleFighter(self, fitID, i): + pyfalog.debug("Toggling fighters for fit ID: {0}", fitID) + fit = eos.db.getFit(fitID) + f = fit.fighters[i] + f.active = not f.active + + eos.db.commit() + self.recalc(fit) + return True + + @deprecated + def toggleImplant(self, fitID, i): + pyfalog.debug("Toggling implant for fit ID: {0}", fitID) + fit = eos.db.getFit(fitID) + implant = fit.implants[i] + implant.active = not implant.active + + eos.db.commit() + self.recalc(fit) + return True + + @deprecated + def toggleBooster(self, fitID, i): + pyfalog.debug("Toggling booster for fit ID: {0}", fitID) + fit = eos.db.getFit(fitID) + booster = fit.boosters[i] + booster.active = not booster.active + + eos.db.commit() + self.recalc(fit) + return True + + @deprecated + def setAmmo(self, fitID, ammoID, modules, recalc=True): + pyfalog.debug("Set ammo for fit ID: {0}", fitID) + if fitID is None: + return + + fit = eos.db.getFit(fitID) + ammo = eos.db.getItem(ammoID) if ammoID else None + + for mod in modules: + if mod.isValidCharge(ammo): + mod.charge = ammo + + if recalc: + self.recalc(fit) + + @deprecated + def setMode(self, fitID, mode): + pyfalog.debug("Set mode for fit ID: {0}", fitID) + if fitID is None: + return + + fit = eos.db.getFit(fitID) + fit.mode = mode + eos.db.commit() + + self.recalc(fit) + + @deprecated + def toggleModulesState(self, fitID, base, modules, click): + pyfalog.debug("Toggle module state for fit ID: {0}", fitID) + changed = False + proposedState = es_Module.getProposedState(base, click) + + if proposedState != base.state: + changed = True + base.state = proposedState + for mod in modules: + if mod != base: + p = es_Module.getProposedState(mod, click, proposedState) + mod.state = p + if p != mod.state: + changed = True + + if changed: + eos.db.commit() + fit = eos.db.getFit(fitID) + + # As some items may affect state-limiting attributes of the ship, calculate new attributes first + self.recalc(fit) + # Then, check states of all modules and change where needed. This will recalc if needed + self.checkStates(fit, base) From bcbed3df39c02c7e9872f914d2b112b86646ad7a Mon Sep 17 00:00:00 2001 From: blitzmann Date: Thu, 16 Aug 2018 00:24:31 -0400 Subject: [PATCH 049/110] Fix an issue which caused pyfa to crash (turns out instantiating the commands in the init was not a good idea) --- gui/devTools.py | 15 +++++++++++++-- gui/fitCommands/guiAddBooster.py | 7 +++---- gui/fitCommands/guiAddCargo.py | 11 ++++++----- gui/fitCommands/guiAddCharge.py | 6 +++--- gui/fitCommands/guiAddCommand.py | 5 ++--- gui/fitCommands/guiAddFighter.py | 4 ++-- gui/fitCommands/guiAddImplant.py | 11 ++++++----- gui/fitCommands/guiCargoToModule.py | 1 + gui/fitCommands/guiMetaSwap.py | 3 +-- gui/fitCommands/guiModuleToCargo.py | 1 + gui/fitCommands/guiRemoveBooster.py | 7 +++---- gui/fitCommands/guiRemoveCargo.py | 9 ++++----- gui/fitCommands/guiRemoveCommand.py | 5 ++--- gui/fitCommands/guiRemoveImplant.py | 9 ++++----- gui/fitCommands/guiRemoveModule.py | 1 - gui/fitCommands/guiSetMode.py | 5 ++--- gui/fitCommands/guiSwapCloneModule.py | 4 ++++ gui/fitCommands/guiToggleCommand.py | 5 ++--- gui/fitCommands/guiToggleModuleState.py | 3 +-- 19 files changed, 60 insertions(+), 52 deletions(-) diff --git a/gui/devTools.py b/gui/devTools.py index 98a14662c..88486431a 100644 --- a/gui/devTools.py +++ b/gui/devTools.py @@ -35,7 +35,7 @@ class DevTools(wx.Dialog): def __init__(self, parent): wx.Dialog.__init__(self, parent, id=wx.ID_ANY, title="Damage Pattern Editor", size=wx.Size(400, 240)) - + self.mainFrame = parent self.block = False self.SetSizeHints(wx.DefaultSize, wx.DefaultSize) @@ -56,13 +56,19 @@ class DevTools(wx.Dialog): self.fitTest = wx.Button(self, wx.ID_ANY, "Test fits", wx.DefaultPosition, wx.DefaultSize, 0) mainSizer.Add(self.fitTest, 0, wx.EXPAND | wx.TOP | wx.BOTTOM, 5) - self.fitTest .Bind(wx.EVT_BUTTON, self.fit_test) + self.fitTest.Bind(wx.EVT_BUTTON, self.fit_test) + + self.cmdPrint = wx.Button(self, wx.ID_ANY, "Command Print", wx.DefaultPosition, wx.DefaultSize, 0) + mainSizer.Add(self.cmdPrint, 0, wx.EXPAND | wx.TOP | wx.BOTTOM, 5) + + self.cmdPrint.Bind(wx.EVT_BUTTON, self.cmd_print) self.SetSizer(mainSizer) self.Layout() self.CenterOnParent() self.Show() + print(parent) def objects_by_id(self, evt): input = self.id_get.GetValue() @@ -81,6 +87,11 @@ class DevTools(wx.Dialog): else: print(None) + def cmd_print(self, evt): + print("="*20) + for x in self.mainFrame.command.GetCommands(): + print("{}{} {}".format("==> " if x == self.mainFrame.command.GetCurrentCommand() else "", x.GetName(), x)) + def gc_collect(self, evt): print(gc.collect()) print(gc.get_debug()) diff --git a/gui/fitCommands/guiAddBooster.py b/gui/fitCommands/guiAddBooster.py index 3dc423cf6..fc89209cb 100644 --- a/gui/fitCommands/guiAddBooster.py +++ b/gui/fitCommands/guiAddBooster.py @@ -12,18 +12,17 @@ class GuiAddBoosterCommand(wx.Command): self.sFit = Fit.getInstance() self.internal_history = wx.CommandProcessor() self.fitID = fitID - # can set his up no to not have to set variables on our object - self.cmd = FitAddBoosterCommand(fitID, itemID) + self.itemID = itemID def Do(self): - if self.internal_history.Submit(self.cmd): + if self.internal_history.Submit(FitAddBoosterCommand(self.fitID, self.itemID)): self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True return False def Undo(self): - for x in self.internal_history.Commands: + for _ in self.internal_history.Commands: self.internal_history.Undo() self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) diff --git a/gui/fitCommands/guiAddCargo.py b/gui/fitCommands/guiAddCargo.py index db923c7d1..d23af64bb 100644 --- a/gui/fitCommands/guiAddCargo.py +++ b/gui/fitCommands/guiAddCargo.py @@ -12,18 +12,19 @@ class GuiAddCargoCommand(wx.Command): self.sFit = Fit.getInstance() self.internal_history = wx.CommandProcessor() self.fitID = fitID - # can set his up no to not have to set variables on our object - self.cmd = FitAddCargoCommand(fitID, itemID, amount, replace) + self.itemID = itemID + self.amount = amount + self.replace = replace def Do(self): - if self.internal_history.Submit(self.cmd): + if self.internal_history.Submit(FitAddCargoCommand(self.fitID, self.itemID, self.amount, self.replace)): wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True return False def Undo(self): - for x in self.internal_history.Commands: + for _ in self.internal_history.Commands: self.internal_history.Undo() - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True diff --git a/gui/fitCommands/guiAddCharge.py b/gui/fitCommands/guiAddCharge.py index 6d1e5e70a..26ae3bf94 100644 --- a/gui/fitCommands/guiAddCharge.py +++ b/gui/fitCommands/guiAddCharge.py @@ -12,11 +12,11 @@ class GuiModuleAddChargeCommand(wx.Command): self.sFit = Fit.getInstance() self.internal_history = wx.CommandProcessor() self.fitID = fitID - # can set his up no to not have to set variables on our object - self.cmd = FitSetChargeCommand(fitID, [mod.modPosition for mod in modules], itemID) + self.itemID = itemID + self.positions = [mod.modPosition for mod in modules] def Do(self): - if self.internal_history.Submit(self.cmd): + if self.internal_history.Submit(FitSetChargeCommand(self.fitID, self.positions, self.itemID)): self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True diff --git a/gui/fitCommands/guiAddCommand.py b/gui/fitCommands/guiAddCommand.py index a46da244e..38f3a1110 100644 --- a/gui/fitCommands/guiAddCommand.py +++ b/gui/fitCommands/guiAddCommand.py @@ -12,11 +12,10 @@ class GuiAddCommandCommand(wx.Command): self.sFit = Fit.getInstance() self.internal_history = wx.CommandProcessor() self.fitID = fitID - # can set his up no to not have to set variables on our object - self.cmd = FitAddCommandCommand(fitID, commandFitID) + self.commandFitID = commandFitID def Do(self): - if self.internal_history.Submit(self.cmd): + if self.internal_history.Submit(FitAddCommandCommand(self.fitID, self.commandFitID)): wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) self.sFit.recalc(self.fitID) return True diff --git a/gui/fitCommands/guiAddFighter.py b/gui/fitCommands/guiAddFighter.py index 095688142..2e699b53a 100644 --- a/gui/fitCommands/guiAddFighter.py +++ b/gui/fitCommands/guiAddFighter.py @@ -15,8 +15,7 @@ class GuiAddFighterCommand(wx.Command): self.itemID = itemID def Do(self): - cmd = FitAddFighterCommand(self.fitID, self.itemID) - if self.internal_history.Submit(cmd): + if self.internal_history.Submit(FitAddFighterCommand(self.fitID, self.itemID)): self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True @@ -25,6 +24,7 @@ class GuiAddFighterCommand(wx.Command): def Undo(self): for _ in self.internal_history.Commands: self.internal_history.Undo() + self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True diff --git a/gui/fitCommands/guiAddImplant.py b/gui/fitCommands/guiAddImplant.py index 33495398d..d819a55d3 100644 --- a/gui/fitCommands/guiAddImplant.py +++ b/gui/fitCommands/guiAddImplant.py @@ -12,18 +12,19 @@ class GuiAddImplantCommand(wx.Command): self.sFit = Fit.getInstance() self.internal_history = wx.CommandProcessor() self.fitID = fitID - # can set his up no to not have to set variables on our object - self.cmd = FitAddImplantCommand(fitID, itemID) + self.itemID = itemID def Do(self): - if self.internal_history.Submit(self.cmd): + if self.internal_history.Submit(FitAddImplantCommand(self.fitID, self.itemID)): + self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True return False def Undo(self): - for x in self.internal_history.Commands: + for _ in self.internal_history.Commands: self.internal_history.Undo() - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True diff --git a/gui/fitCommands/guiCargoToModule.py b/gui/fitCommands/guiCargoToModule.py index 3ce9cc4b0..506c47001 100644 --- a/gui/fitCommands/guiCargoToModule.py +++ b/gui/fitCommands/guiCargoToModule.py @@ -71,5 +71,6 @@ class GuiCargoToModuleCommand(wx.Command): def Undo(self): for _ in self.internal_history.Commands: self.internal_history.Undo() + self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True diff --git a/gui/fitCommands/guiMetaSwap.py b/gui/fitCommands/guiMetaSwap.py index e5f3848a5..9b4af4039 100644 --- a/gui/fitCommands/guiMetaSwap.py +++ b/gui/fitCommands/guiMetaSwap.py @@ -46,7 +46,6 @@ class GuiMetaSwapCommand(wx.Command): elif context == 'droneItem': raise NotImplementedError() - def Do(self): for cmds in self.data: for cmd in cmds: @@ -57,7 +56,7 @@ class GuiMetaSwapCommand(wx.Command): return True def Undo(self): - for x in self.internal_history.Commands: + for _ in self.internal_history.Commands: self.internal_history.Undo() self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) diff --git a/gui/fitCommands/guiModuleToCargo.py b/gui/fitCommands/guiModuleToCargo.py index d59680408..c0b483d2c 100644 --- a/gui/fitCommands/guiModuleToCargo.py +++ b/gui/fitCommands/guiModuleToCargo.py @@ -67,5 +67,6 @@ class GuiModuleToCargoCommand(wx.Command): def Undo(self): for _ in self.internal_history.Commands: self.internal_history.Undo() + self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True diff --git a/gui/fitCommands/guiRemoveBooster.py b/gui/fitCommands/guiRemoveBooster.py index 2155ab120..0e96f1c2e 100644 --- a/gui/fitCommands/guiRemoveBooster.py +++ b/gui/fitCommands/guiRemoveBooster.py @@ -12,18 +12,17 @@ class GuiRemoveBoosterCommand(wx.Command): self.sFit = Fit.getInstance() self.internal_history = wx.CommandProcessor() self.fitID = fitID - # can set his up no to not have to set variables on our object - self.cmd = FitRemoveBoosterCommand(fitID, position) + self.position = position def Do(self): - if self.internal_history.Submit(self.cmd): + if self.internal_history.Submit(FitRemoveBoosterCommand(self.fitID, self.position)): self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True return False def Undo(self): - for x in self.internal_history.Commands: + for _ in self.internal_history.Commands: self.internal_history.Undo() self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) diff --git a/gui/fitCommands/guiRemoveCargo.py b/gui/fitCommands/guiRemoveCargo.py index 210252418..ec42e4d3c 100644 --- a/gui/fitCommands/guiRemoveCargo.py +++ b/gui/fitCommands/guiRemoveCargo.py @@ -12,18 +12,17 @@ class GuiRemoveCargoCommand(wx.Command): self.sFit = Fit.getInstance() self.internal_history = wx.CommandProcessor() self.fitID = fitID - # can set his up no to not have to set variables on our object - self.cmd = FitRemoveCargoCommand(fitID, itemID, stack=True) + self.itemID = itemID def Do(self): - if self.internal_history.Submit(self.cmd): + if self.internal_history.Submit(FitRemoveCargoCommand(self.fitID, self.itemID, stack=True)): wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True return False def Undo(self): - for x in self.internal_history.Commands: + for _ in self.internal_history.GetCommands(): self.internal_history.Undo() - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True diff --git a/gui/fitCommands/guiRemoveCommand.py b/gui/fitCommands/guiRemoveCommand.py index d01abce08..351f9697b 100644 --- a/gui/fitCommands/guiRemoveCommand.py +++ b/gui/fitCommands/guiRemoveCommand.py @@ -12,11 +12,10 @@ class GuiRemoveCommandCommand(wx.Command): self.sFit = Fit.getInstance() self.internal_history = wx.CommandProcessor() self.fitID = fitID - # can set his up no to not have to set variables on our object - self.cmd = FitRemoveCommandCommand(fitID, commandFitID) + self.commandFitID = commandFitID def Do(self): - if self.internal_history.Submit(self.cmd): + if self.internal_history.Submit(FitRemoveCommandCommand(self.fitID, self.commandFitID)): self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True diff --git a/gui/fitCommands/guiRemoveImplant.py b/gui/fitCommands/guiRemoveImplant.py index af96355a4..7c9c6a4c1 100644 --- a/gui/fitCommands/guiRemoveImplant.py +++ b/gui/fitCommands/guiRemoveImplant.py @@ -12,18 +12,17 @@ class GuiRemoveImplantCommand(wx.Command): self.sFit = Fit.getInstance() self.internal_history = wx.CommandProcessor() self.fitID = fitID - # can set his up no to not have to set variables on our object - self.cmd = FitRemoveImplantCommand(fitID, position) + self.position = position def Do(self): - if self.internal_history.Submit(self.cmd): + if self.internal_history.Submit(FitRemoveImplantCommand(self.fitID, self.position)): wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True return False def Undo(self): - for x in self.internal_history.Commands: + for _ in self.internal_history.Commands: self.internal_history.Undo() - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True diff --git a/gui/fitCommands/guiRemoveModule.py b/gui/fitCommands/guiRemoveModule.py index 169dbe593..848708856 100644 --- a/gui/fitCommands/guiRemoveModule.py +++ b/gui/fitCommands/guiRemoveModule.py @@ -3,7 +3,6 @@ from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE - from .helpers import ModuleInfoCache from .calc.fitRemoveModule import FitRemoveModuleCommand diff --git a/gui/fitCommands/guiSetMode.py b/gui/fitCommands/guiSetMode.py index 2c1e4864c..0ad7b80f6 100644 --- a/gui/fitCommands/guiSetMode.py +++ b/gui/fitCommands/guiSetMode.py @@ -12,11 +12,10 @@ class GuiSetModeCommand(wx.Command): self.sFit = Fit.getInstance() self.internal_history = wx.CommandProcessor() self.fitID = fitID - # can set his up no to not have to set variables on our object - self.cmd = FitSetModeCommand(fitID, mode) + self.mode = mode def Do(self): - if self.internal_history.Submit(self.cmd): + if self.internal_history.Submit(FitSetModeCommand(self.fitID, self.mode)): self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True diff --git a/gui/fitCommands/guiSwapCloneModule.py b/gui/fitCommands/guiSwapCloneModule.py index 65ddea591..cbeaf0845 100644 --- a/gui/fitCommands/guiSwapCloneModule.py +++ b/gui/fitCommands/guiSwapCloneModule.py @@ -42,5 +42,9 @@ class GuiModuleSwapOrCloneCommand(wx.Command): pyfalog.debug("{} Undo()".format(self)) for _ in self.internal_history.Commands: self.internal_history.Undo() + + if self.clone: + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True diff --git a/gui/fitCommands/guiToggleCommand.py b/gui/fitCommands/guiToggleCommand.py index b7f07ed78..85f32c143 100644 --- a/gui/fitCommands/guiToggleCommand.py +++ b/gui/fitCommands/guiToggleCommand.py @@ -12,11 +12,10 @@ class GuiToggleCommandCommand(wx.Command): self.sFit = Fit.getInstance() self.internal_history = wx.CommandProcessor() self.fitID = fitID - # can set his up no to not have to set variables on our object - self.cmd = FitToggleCommandCommand(fitID, commandFitID) + self.commandFitID = commandFitID def Do(self): - if self.internal_history.Submit(self.cmd): + if self.internal_history.Submit(FitToggleCommandCommand(self.fitID, self.commandFitID)): self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True diff --git a/gui/fitCommands/guiToggleModuleState.py b/gui/fitCommands/guiToggleModuleState.py index 7fcd824b1..d87339347 100644 --- a/gui/fitCommands/guiToggleModuleState.py +++ b/gui/fitCommands/guiToggleModuleState.py @@ -17,10 +17,9 @@ class GuiModuleStateChangeCommand(wx.Command): self.modules = modules self.click = click self.internal_history = wx.CommandProcessor() - self.cmd = FitChangeStatesCommand(self.fitID, self.baseMod, self.modules, self.click) def Do(self): - if self.internal_history.Submit(self.cmd): + if self.internal_history.Submit(FitChangeStatesCommand(self.fitID, self.baseMod, self.modules, self.click)): self.sFit.recalc(self.fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) return True From 083b34c780e5a1dd7b0628741130fc8585f9a2b2 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Thu, 16 Aug 2018 23:40:50 -0400 Subject: [PATCH 050/110] working commit --- gui/builtinAdditionPanes/droneView.py | 6 +-- gui/fitCommands/__init__.py | 3 +- gui/fitCommands/calc/fitAddDrone.py | 53 +++++++++++++++++++++++++++ gui/fitCommands/guiAddDrone.py | 30 +++++++++++++++ service/fit.py | 2 + service/fitDeprecated.py | 28 ++++++++++++++ 6 files changed, 117 insertions(+), 5 deletions(-) create mode 100644 gui/fitCommands/calc/fitAddDrone.py create mode 100644 gui/fitCommands/guiAddDrone.py diff --git a/gui/builtinAdditionPanes/droneView.py b/gui/builtinAdditionPanes/droneView.py index e9b893047..264b07183 100644 --- a/gui/builtinAdditionPanes/droneView.py +++ b/gui/builtinAdditionPanes/droneView.py @@ -29,7 +29,7 @@ from gui.contextMenu import ContextMenu from gui.utils.staticHelpers import DragDropHelper from service.fit import Fit from service.market import Market - +import gui.fitCommands as cmd class DroneViewDrop(wx.DropTarget): def __init__(self, dropFn, *args, **kwargs): @@ -213,9 +213,7 @@ class DroneView(Display): event.Skip() return - trigger = sFit.addDrone(fitID, event.itemID) - if trigger: - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + if self.mainFrame.command.Submit(cmd.GuiAddDroneCommand(fitID, event.itemID)): self.mainFrame.additionsPane.select("Drones") event.Skip() diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index 8b053bf82..5394dafa0 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -22,4 +22,5 @@ from .guiRemoveFighter import GuiRemoveFighterCommand from .guiMetaSwap import GuiMetaSwapCommand from .guiToggleFighter import GuiToggleFighterCommand from .guiToggleImplant import GuiToggleImplantCommand -from .guiToggleBooster import GuiToggleImplantCommand \ No newline at end of file +from .guiToggleBooster import GuiToggleImplantCommand +from .guiAddDrone import GuiAddDroneCommand \ No newline at end of file diff --git a/gui/fitCommands/calc/fitAddDrone.py b/gui/fitCommands/calc/fitAddDrone.py new file mode 100644 index 000000000..59e01b807 --- /dev/null +++ b/gui/fitCommands/calc/fitAddDrone.py @@ -0,0 +1,53 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) +from eos.saveddata.drone import Drone + +class FitAddDroneCommand(wx.Command): + """" + from sFit.addDrone + """ + def __init__(self, fitID, itemID, amount=1, replace=False): + wx.Command.__init__(self, True, "Drone add") + self.fitID = fitID + self.itemID = itemID + self.amount = amount # add x amount. If this goes over amount, removes stack + self.replace = replace # if this is false, we increment. + + def Do(self): + pyfalog.debug("Adding {0} drones ({1}) to fit ID: {2}", self.amount, self.itemID, self.fitID) + + fit = eos.db.getFit(self.fitID) + item = eos.db.getItem(self.itemID, eager=("attributes", "group.category")) + + for d in fit.drones.find(item): + if d is not None and d.amountActive == 0 and d.amount < max(5, fit.extraAttributes["maxActiveDrones"]): + drone = d + break + else: + try: + drone = Drone(item) + except ValueError: + pyfalog.warning("Invalid drone: {}", item) + return False + + if not drone.fits(fit): + return False + fit.drones.append(drone) + + drone.amount += self.amount + eos.db.commit() + return True + + def Undo(self): + from .fitRemoveCargo import FitRemoveCargoCommand # Avoid circular import + cmd = FitRemoveCargoCommand(self.fitID, self.itemID, self.amount) + cmd.Do() + return True diff --git a/gui/fitCommands/guiAddDrone.py b/gui/fitCommands/guiAddDrone.py new file mode 100644 index 000000000..f55f40363 --- /dev/null +++ b/gui/fitCommands/guiAddDrone.py @@ -0,0 +1,30 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .calc.fitAddDrone import FitAddDroneCommand + +class GuiAddDroneCommand(wx.Command): + def __init__(self, fitID, itemID): + wx.Command.__init__(self, True, "Cargo Add") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + self.itemID = itemID + + def Do(self): + cmd = FitAddDroneCommand(self.fitID, self.itemID) + if self.internal_history.Submit(cmd): + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + diff --git a/service/fit.py b/service/fit.py index 0807ba8a8..0b9e73ed0 100644 --- a/service/fit.py +++ b/service/fit.py @@ -37,6 +37,7 @@ from eos.saveddata.fit import Fit as FitType, ImplantLocation from service.character import Character from service.damagePattern import DamagePattern from service.settings import SettingsProvider +from utils.deprecated import deprecated import wx pyfalog = Logger(__name__) @@ -427,6 +428,7 @@ class Fit(FitDeprecated): else: return None + @deprecated def addDrone(self, fitID, itemID, numDronesToAdd=1, recalc=True): pyfalog.debug("Adding {0} drones ({1}) to fit ID: {2}", numDronesToAdd, itemID, fitID) if fitID is None: diff --git a/service/fitDeprecated.py b/service/fitDeprecated.py index 8bc522217..8593930a3 100644 --- a/service/fitDeprecated.py +++ b/service/fitDeprecated.py @@ -35,6 +35,34 @@ pyfalog = Logger(__name__) class FitDeprecated(object): + @deprecated + def addDrone(self, fitID, itemID, numDronesToAdd=1, recalc=True): + pyfalog.debug("Adding {0} drones ({1}) to fit ID: {2}", numDronesToAdd, itemID, fitID) + if fitID is None: + return False + + fit = eos.db.getFit(fitID) + item = eos.db.getItem(itemID, eager=("attributes", "group.category")) + if item.category.name == "Drone": + drone = None + for d in fit.drones.find(item): + if d is not None and d.amountActive == 0 and d.amount < max(5, fit.extraAttributes["maxActiveDrones"]): + drone = d + break + + if drone is None: + drone = es_Drone(item) + if drone.fits(fit) is True: + fit.drones.append(drone) + else: + return False + drone.amount += numDronesToAdd + eos.db.commit() + if recalc: + self.recalc(fit) + return True + else: + return False @deprecated def addImplant(self, fitID, itemID, recalc=True): From a37fdf48c852753c195cbf5c5b508252cd0a9a7c Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 18 Aug 2018 00:06:50 -0400 Subject: [PATCH 051/110] Fix implant / booster toggles, add qty change commands, started dinking with drone stacks, although think I might remove this altogether in favor of a qty change --- gui/builtinAdditionPanes/boosterView.py | 2 +- gui/builtinAdditionPanes/droneView.py | 4 +- gui/builtinContextMenus/amount.py | 9 +- gui/builtinContextMenus/droneRemoveStack.py | 5 +- gui/builtinContextMenus/droneSplit.py | 87 ++++++++++++++++++- gui/builtinContextMenus/itemRemove.py | 4 +- gui/fitCommands/__init__.py | 8 +- gui/fitCommands/calc/fitAddDrone.py | 9 +- gui/fitCommands/calc/fitChangeCargoQty.py | 33 +++++++ gui/fitCommands/calc/fitChangeFighterQty.py | 36 ++++++++ .../calc/fitChangeProjectedFitQty.py | 42 +++++++++ gui/fitCommands/calc/fitRemoveDrone.py | 49 +++++++++++ gui/fitCommands/guiChangeCargoQty.py | 38 ++++++++ gui/fitCommands/guiChangeFighterQty.py | 39 +++++++++ gui/fitCommands/guiChangeProjectedFitQty.py | 39 +++++++++ gui/fitCommands/guiRemoveDrone.py | 31 +++++++ gui/fitCommands/guiToggleBooster.py | 2 +- service/fit.py | 20 +---- service/fitDeprecated.py | 24 +++++ 19 files changed, 441 insertions(+), 40 deletions(-) create mode 100644 gui/fitCommands/calc/fitChangeCargoQty.py create mode 100644 gui/fitCommands/calc/fitChangeFighterQty.py create mode 100644 gui/fitCommands/calc/fitChangeProjectedFitQty.py create mode 100644 gui/fitCommands/calc/fitRemoveDrone.py create mode 100644 gui/fitCommands/guiChangeCargoQty.py create mode 100644 gui/fitCommands/guiChangeFighterQty.py create mode 100644 gui/fitCommands/guiChangeProjectedFitQty.py create mode 100644 gui/fitCommands/guiRemoveDrone.py diff --git a/gui/builtinAdditionPanes/boosterView.py b/gui/builtinAdditionPanes/boosterView.py index a68e4ff3a..1d487d2ad 100644 --- a/gui/builtinAdditionPanes/boosterView.py +++ b/gui/builtinAdditionPanes/boosterView.py @@ -157,7 +157,7 @@ class BoosterView(d.Display): col = self.getColumn(event.Position) if col == self.getColIndex(State): fitID = self.mainFrame.getActiveFit() - self.mainFrame.command.Submit(cmd.GuiToggleImplantCommand(fitID, row)) + self.mainFrame.command.Submit(cmd.GuiToggleBoosterCommand(fitID, row)) def scheduleMenu(self, event): event.Skip() diff --git a/gui/builtinAdditionPanes/droneView.py b/gui/builtinAdditionPanes/droneView.py index 264b07183..4200f1046 100644 --- a/gui/builtinAdditionPanes/droneView.py +++ b/gui/builtinAdditionPanes/droneView.py @@ -228,9 +228,7 @@ class DroneView(Display): def removeDrone(self, drone): fitID = self.mainFrame.getActiveFit() - sFit = Fit.getInstance() - sFit.removeDrone(fitID, self.original.index(drone)) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.GuiRemoveDroneCommand(fitID, self.original.index(drone))) def click(self, event): event.Skip() diff --git a/gui/builtinContextMenus/amount.py b/gui/builtinContextMenus/amount.py index eec575f29..e5416ede6 100644 --- a/gui/builtinContextMenus/amount.py +++ b/gui/builtinContextMenus/amount.py @@ -42,15 +42,18 @@ class ChangeAmount(ContextMenu): return sFit = Fit.getInstance() + fit = sFit.getFit(fitID) cleanInput = re.sub(r'[^0-9.]', '', dlg.input.GetLineText(0).strip()) if isinstance(thing, es_Cargo): - self.mainFrame.command.Submit(cmd.GuiAddCargoCommand(fitID, thing.item.ID, int(float(cleanInput)), replace=True)) + self.mainFrame.command.Submit(cmd.GuiChangeCargoQty(fitID, fit.cargo.index(thing), int(float(cleanInput)))) return # no need for post event here elif isinstance(thing, es_Fit): - sFit.changeAmount(fitID, thing, int(float(cleanInput))) + self.mainFrame.command.Submit(cmd.GuiChangeProjectedFitQty(fitID, thing.ID, int(float(cleanInput)))) + return elif isinstance(thing, es_Fighter): - sFit.changeActiveFighters(fitID, thing, int(float(cleanInput))) + self.mainFrame.command.Submit(cmd.GuiChangeFighterQty(fitID, fit.fighters.index(thing), int(float(cleanInput)))) + return wx.PostEvent(mainFrame, GE.FitChanged(fitID=fitID)) diff --git a/gui/builtinContextMenus/droneRemoveStack.py b/gui/builtinContextMenus/droneRemoveStack.py index c7dae1e03..5af373e41 100644 --- a/gui/builtinContextMenus/droneRemoveStack.py +++ b/gui/builtinContextMenus/droneRemoveStack.py @@ -5,6 +5,7 @@ import wx import gui.globalEvents as GE from service.fit import Fit from service.settings import ContextMenuSettings +import gui.fitCommands as cmd class ItemRemove(ContextMenu): @@ -27,9 +28,7 @@ class ItemRemove(ContextMenu): fit = sFit.getFit(fitID) idx = fit.drones.index(selection[0]) - sFit.removeDrone(fitID, idx, numDronesToRemove=fit.drones[idx].amount) - - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.GuiRemoveDroneCommand(fitID, idx, fit.drones[idx].amount)) ItemRemove.register() diff --git a/gui/builtinContextMenus/droneSplit.py b/gui/builtinContextMenus/droneSplit.py index ec52db3f8..9701cc10f 100644 --- a/gui/builtinContextMenus/droneSplit.py +++ b/gui/builtinContextMenus/droneSplit.py @@ -5,6 +5,7 @@ from service.fit import Fit # noinspection PyPackageRequirements import wx from service.settings import ContextMenuSettings +import re class DroneSplit(ContextMenu): @@ -23,14 +24,94 @@ class DroneSplit(ContextMenu): def activate(self, fullContext, selection, i): srcContext = fullContext[0] - dlg = DroneSpinner(self.mainFrame, selection[0], srcContext) - dlg.ShowModal() - dlg.Destroy() + drone = selection[0] + dlg = DroneStackSplit(self.mainFrame, drone.amount) + + if dlg.ShowModal() == wx.ID_OK: + + if dlg.input.GetLineText(0).strip() == '': + return + + sFit = Fit.getInstance() + cleanInput = re.sub(r'[^0-9.]', '', dlg.input.GetLineText(0).strip()) + fitID = self.mainFrame.getActiveFit() + + if srcContext == "droneItem": + sFit.splitDroneStack(fitID, drone, int(float(cleanInput))) + else: + sFit.splitProjectedDroneStack(fitID, drone, int(float(cleanInput))) + + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + + # if isinstance(thing, es_Cargo): + # self.mainFrame.command.Submit( + # cmd.GuiAddCargoCommand(fitID, thing.item.ID, int(float(cleanInput)), replace=True)) + # return # no need for post event here + # elif isinstance(thing, es_Fit): + # sFit.changeAmount(fitID, thing, int(float(cleanInput))) + # elif isinstance(thing, es_Fighter): + # sFit.changeActiveFighters(fitID, thing, int(float(cleanInput))) + # + # wx.PostEvent(mainFrame, GE.FitChanged(fitID=fitID)) + # + # dlg = DroneSpinner(self.mainFrame, selection[0], srcContext) + # dlg.ShowModal() + # dlg.Destroy() DroneSplit.register() +class DroneStackSplit(wx.Dialog): + def __init__(self, parent, value): + wx.Dialog.__init__(self, parent, title="Split Drone Stack") + self.SetMinSize((346, 156)) + + bSizer1 = wx.BoxSizer(wx.VERTICAL) + + bSizer2 = wx.BoxSizer(wx.VERTICAL) + text = wx.StaticText(self, wx.ID_ANY, "New Amount:") + bSizer2.Add(text, 0) + + bSizer1.Add(bSizer2, 0, wx.ALL, 10) + + self.input = wx.TextCtrl(self, wx.ID_ANY, style=wx.TE_PROCESS_ENTER) + self.input.SetValue(str(value)) + self.input.SelectAll() + + bSizer1.Add(self.input, 0, wx.LEFT | wx.RIGHT | wx.EXPAND, 15) + + bSizer3 = wx.BoxSizer(wx.VERTICAL) + bSizer3.Add(wx.StaticLine(self, wx.ID_ANY), 0, wx.BOTTOM | wx.EXPAND, 15) + + bSizer3.Add(self.CreateStdDialogButtonSizer(wx.OK | wx.CANCEL), 0, wx.EXPAND) + bSizer1.Add(bSizer3, 0, wx.ALL | wx.EXPAND, 10) + + self.input.SetFocus() + self.input.Bind(wx.EVT_CHAR, self.onChar) + self.input.Bind(wx.EVT_TEXT_ENTER, self.processEnter) + self.SetSizer(bSizer1) + self.CenterOnParent() + self.Fit() + + def processEnter(self, evt): + self.EndModal(wx.ID_OK) + + # checks to make sure it's valid number + @staticmethod + def onChar(event): + key = event.GetKeyCode() + + acceptable_characters = "1234567890" + acceptable_keycode = [3, 22, 13, 8, 127] # modifiers like delete, copy, paste + if key in acceptable_keycode or key >= 255 or (key < 255 and chr(key) in acceptable_characters): + event.Skip() + return + else: + return False + + + class DroneSpinner(wx.Dialog): def __init__(self, parent, drone, context): wx.Dialog.__init__(self, parent, title="Select Amount", size=wx.Size(220, 60)) diff --git a/gui/builtinContextMenus/itemRemove.py b/gui/builtinContextMenus/itemRemove.py index 65094c7a4..cbae19145 100644 --- a/gui/builtinContextMenus/itemRemove.py +++ b/gui/builtinContextMenus/itemRemove.py @@ -40,8 +40,10 @@ class ItemRemove(ContextMenu): return # the command takes care of the PostEvent elif srcContext in ("fittingCharge", "projectedCharge"): self.mainFrame.command.Submit(cmd.GuiModuleAddChargeCommand(fitID, None, selection)) + return elif srcContext == "droneItem": - sFit.removeDrone(fitID, fit.drones.index(selection[0])) + self.mainFrame.command.Submit(cmd.GuiRemoveDroneCommand(fitID, fit.drones.index(selection[0]))) + return elif srcContext == "fighterItem": self.mainFrame.command.Submit(cmd.GuiRemoveFighterCommand(fitID, fit.fighters.index(selection[0]))) return # the command takes care of the PostEvent diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index 5394dafa0..b708d153a 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -22,5 +22,9 @@ from .guiRemoveFighter import GuiRemoveFighterCommand from .guiMetaSwap import GuiMetaSwapCommand from .guiToggleFighter import GuiToggleFighterCommand from .guiToggleImplant import GuiToggleImplantCommand -from .guiToggleBooster import GuiToggleImplantCommand -from .guiAddDrone import GuiAddDroneCommand \ No newline at end of file +from .guiToggleBooster import GuiToggleBoosterCommand +from .guiAddDrone import GuiAddDroneCommand +from .guiRemoveDrone import GuiRemoveDroneCommand +from .guiChangeFighterQty import GuiChangeFighterQty +from .guiChangeCargoQty import GuiChangeCargoQty +from .guiChangeProjectedFitQty import GuiChangeProjectedFitQty \ No newline at end of file diff --git a/gui/fitCommands/calc/fitAddDrone.py b/gui/fitCommands/calc/fitAddDrone.py index 59e01b807..c92f9fa78 100644 --- a/gui/fitCommands/calc/fitAddDrone.py +++ b/gui/fitCommands/calc/fitAddDrone.py @@ -20,6 +20,7 @@ class FitAddDroneCommand(wx.Command): self.itemID = itemID self.amount = amount # add x amount. If this goes over amount, removes stack self.replace = replace # if this is false, we increment. + self.index = None def Do(self): pyfalog.debug("Adding {0} drones ({1}) to fit ID: {2}", self.amount, self.itemID, self.fitID) @@ -44,10 +45,10 @@ class FitAddDroneCommand(wx.Command): drone.amount += self.amount eos.db.commit() + self.index = fit.drones.index(drone) return True def Undo(self): - from .fitRemoveCargo import FitRemoveCargoCommand # Avoid circular import - cmd = FitRemoveCargoCommand(self.fitID, self.itemID, self.amount) - cmd.Do() - return True + from .fitRemoveDrone import FitRemoveDroneCommand # Avoid circular import + cmd = FitRemoveDroneCommand(self.fitID, self.index, self.amount) + return cmd.Do() diff --git a/gui/fitCommands/calc/fitChangeCargoQty.py b/gui/fitCommands/calc/fitChangeCargoQty.py new file mode 100644 index 000000000..c737f3c22 --- /dev/null +++ b/gui/fitCommands/calc/fitChangeCargoQty.py @@ -0,0 +1,33 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) +from eos.saveddata.drone import Drone + +class FitChangeCargoQty(wx.Command): + def __init__(self, fitID, position, amount=1): + wx.Command.__init__(self, True, "Drone add") + self.fitID = fitID + self.position = position + self.amount = amount # add x amount. If this goes over amount, removes stack + self.old_amount = None + + def Do(self): + pyfalog.debug("Changing cargo ({0}) for fit ({1}) to amount: {2}", self.position, self.fitID, self.amount) + fit = eos.db.getFit(self.fitID) + cargo = fit.cargo[self.position] + self.old_amount = cargo.amount + cargo.amount = self.amount + + eos.db.commit() + return True + + def Undo(self): + cmd = FitChangeCargoQty(self.fitID, self.position, self.old_amount) + return cmd.Do() diff --git a/gui/fitCommands/calc/fitChangeFighterQty.py b/gui/fitCommands/calc/fitChangeFighterQty.py new file mode 100644 index 000000000..d8c2af274 --- /dev/null +++ b/gui/fitCommands/calc/fitChangeFighterQty.py @@ -0,0 +1,36 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) +from eos.saveddata.drone import Drone + +class FitChangeFighterQty(wx.Command): + """" + from sFit.changeActiveFighters + """ + def __init__(self, fitID, position, amount=1): + wx.Command.__init__(self, True, "Drone add") + self.fitID = fitID + self.position = position + self.amount = amount # add x amount. If this goes over amount, removes stack + self.old_amount = None + + def Do(self): + pyfalog.debug("Changing active fighters ({0}) for fit ({1}) to amount: {2}", self.position, self.fitID, self.amount) + fit = eos.db.getFit(self.fitID) + fighter = fit.fighters[self.position] + self.old_amount = fighter.amountActive + fighter.amountActive = self.amount + + eos.db.commit() + return True + + def Undo(self): + cmd = FitChangeFighterQty(self.fitID, self.position, self.old_amount) + return cmd.Do() diff --git a/gui/fitCommands/calc/fitChangeProjectedFitQty.py b/gui/fitCommands/calc/fitChangeProjectedFitQty.py new file mode 100644 index 000000000..e379ec883 --- /dev/null +++ b/gui/fitCommands/calc/fitChangeProjectedFitQty.py @@ -0,0 +1,42 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) + +class FitChangeProjectedFitQty(wx.Command): + """" + from sFit.changeAmount + """ + def __init__(self, fitID, pfitID, amount=1): + wx.Command.__init__(self, True, "Drone add") + self.fitID = fitID + self.pfitID = pfitID + self.amount = amount + self.old_amount = None + + def Do(self): + fit = eos.db.getFit(self.fitID) + pfit = eos.db.getFit(self.pfitID) + + if not pfit: # fit was deleted + return False + + amount = min(20, max(1, self.amount)) # 1 <= a <= 20 + + projectionInfo = pfit.getProjectionInfo(self.fitID) + if projectionInfo: + self.old_amount = projectionInfo.amount + projectionInfo.amount = amount + + eos.db.commit() + return True + + def Undo(self): + cmd = FitChangeProjectedFitQty(self.fitID, self.pfitID, self.old_amount) + return cmd.Do() diff --git a/gui/fitCommands/calc/fitRemoveDrone.py b/gui/fitCommands/calc/fitRemoveDrone.py new file mode 100644 index 000000000..13e96d435 --- /dev/null +++ b/gui/fitCommands/calc/fitRemoveDrone.py @@ -0,0 +1,49 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) +from eos.saveddata.drone import Drone + +class FitRemoveDroneCommand(wx.Command): + """" + from sFit.addDrone + """ + def __init__(self, fitID, position, amount=1): + wx.Command.__init__(self, True, "Drone add") + self.fitID = fitID + self.position = position + self.amount = amount # add x amount. If this goes over amount, removes stack + self.removed_item = None + + def Do(self): + pyfalog.debug("Removing {0} drones for fit ID: {1}", self.amount, self.fitID) + fit = eos.db.getFit(self.fitID) + d = fit.drones[self.position] + d.amount -= self.amount + if d.amountActive > 0: + d.amountActive -= self.amount + + if d.amount == 0: + self.removed_item = d.itemID + del fit.drones[self.position] + + eos.db.commit() + return True + + def Undo(self): + if self.removed_item: + from .fitAddDrone import FitAddDroneCommand # Avoid circular import + cmd = FitAddDroneCommand(self.fitID, self.removed_item, self.amount) + return cmd.Do() + else: + fit = eos.db.getFit(self.fitID) + d = fit.drones[self.position] + d.amount += self.amount + eos.db.commit() + return True diff --git a/gui/fitCommands/guiChangeCargoQty.py b/gui/fitCommands/guiChangeCargoQty.py new file mode 100644 index 000000000..b8a6c8873 --- /dev/null +++ b/gui/fitCommands/guiChangeCargoQty.py @@ -0,0 +1,38 @@ +import wx +import eos.db +import gui.mainFrame +from service.fit import Fit +from gui import globalEvents as GE +from .calc.fitAddModule import FitAddModuleCommand +from .calc.fitReplaceModule import FitReplaceModuleCommand +from .calc.fitChangeCargoQty import FitChangeCargoQty +from service.fit import Fit +from logbook import Logger +pyfalog = Logger(__name__) + + +class GuiChangeCargoQty(wx.Command): + def __init__(self, fitID, position, amount=1): + wx.Command.__init__(self, True, "") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.fitID = fitID + self.position = position + self.amount = amount + self.internal_history = wx.CommandProcessor() + + def Do(self): + cmd = FitChangeCargoQty(self.fitID, self.position, self.amount) + if self.internal_history.Submit(cmd): + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True diff --git a/gui/fitCommands/guiChangeFighterQty.py b/gui/fitCommands/guiChangeFighterQty.py new file mode 100644 index 000000000..063c6cda5 --- /dev/null +++ b/gui/fitCommands/guiChangeFighterQty.py @@ -0,0 +1,39 @@ +import wx +import eos.db +import gui.mainFrame +from service.fit import Fit +from gui import globalEvents as GE +from .calc.fitAddModule import FitAddModuleCommand +from .calc.fitReplaceModule import FitReplaceModuleCommand +from .calc.fitChangeFighterQty import FitChangeFighterQty +from service.fit import Fit +from logbook import Logger +pyfalog = Logger(__name__) + + +class GuiChangeFighterQty(wx.Command): + def __init__(self, fitID, position, amount=1): + wx.Command.__init__(self, True, "") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.fitID = fitID + self.position = position + self.amount = amount + self.internal_history = wx.CommandProcessor() + + def Do(self): + cmd = FitChangeFighterQty(self.fitID, self.position, self.amount) + if self.internal_history.Submit(cmd): + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + + def Undo(self): + pyfalog.debug("{} Undo()".format(self)) + for _ in self.internal_history.Commands: + self.internal_history.Undo() + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True diff --git a/gui/fitCommands/guiChangeProjectedFitQty.py b/gui/fitCommands/guiChangeProjectedFitQty.py new file mode 100644 index 000000000..006876077 --- /dev/null +++ b/gui/fitCommands/guiChangeProjectedFitQty.py @@ -0,0 +1,39 @@ +import wx +import eos.db +import gui.mainFrame +from service.fit import Fit +from gui import globalEvents as GE +from .calc.fitAddModule import FitAddModuleCommand +from .calc.fitReplaceModule import FitReplaceModuleCommand +from .calc.fitChangeProjectedFitQty import FitChangeProjectedFitQty +from service.fit import Fit +from logbook import Logger +pyfalog = Logger(__name__) + + +class GuiChangeProjectedFitQty(wx.Command): + def __init__(self, fitID, pfitID, amount=1): + wx.Command.__init__(self, True, "") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.fitID = fitID + self.pfitID = pfitID + self.amount = amount + self.internal_history = wx.CommandProcessor() + + def Do(self): + cmd = FitChangeProjectedFitQty(self.fitID, self.pfitID, self.amount) + if self.internal_history.Submit(cmd): + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + + def Undo(self): + pyfalog.debug("{} Undo()".format(self)) + for _ in self.internal_history.Commands: + self.internal_history.Undo() + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True diff --git a/gui/fitCommands/guiRemoveDrone.py b/gui/fitCommands/guiRemoveDrone.py new file mode 100644 index 000000000..252adc2af --- /dev/null +++ b/gui/fitCommands/guiRemoveDrone.py @@ -0,0 +1,31 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .calc.fitRemoveDrone import FitRemoveDroneCommand + +class GuiRemoveDroneCommand(wx.Command): + def __init__(self, fitID, position, amount=1): + wx.Command.__init__(self, True, "Cargo Add") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + self.position = position + self.amount = amount + + def Do(self): + cmd = FitRemoveDroneCommand(self.fitID, self.position, self.amount) + if self.internal_history.Submit(cmd): + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + diff --git a/gui/fitCommands/guiToggleBooster.py b/gui/fitCommands/guiToggleBooster.py index 7d5016dc5..166ad9648 100644 --- a/gui/fitCommands/guiToggleBooster.py +++ b/gui/fitCommands/guiToggleBooster.py @@ -5,7 +5,7 @@ import gui.mainFrame from gui import globalEvents as GE from .calc.fitToggleBooster import FitToggleBoosterCommand -class GuiToggleImplantCommand(wx.Command): +class GuiToggleBoosterCommand(wx.Command): def __init__(self, fitID, position): wx.Command.__init__(self, True, "") self.mainFrame = gui.mainFrame.MainFrame.getInstance() diff --git a/service/fit.py b/service/fit.py index 0b9e73ed0..6ed79829d 100644 --- a/service/fit.py +++ b/service/fit.py @@ -369,25 +369,6 @@ class Fit(FitDeprecated): self.recalc(fit) - def changeAmount(self, fitID, projected_fit, amount): - """Change amount of projected fits""" - pyfalog.debug("Changing fit ({0}) for projected fit ({1}) to new amount: {2}", fitID, projected_fit.getProjectionInfo(fitID), amount) - fit = eos.db.getFit(fitID) - amount = min(20, max(1, amount)) # 1 <= a <= 20 - projectionInfo = projected_fit.getProjectionInfo(fitID) - if projectionInfo: - projectionInfo.amount = amount - - eos.db.commit() - self.recalc(fit) - - def changeActiveFighters(self, fitID, fighter, amount): - pyfalog.debug("Changing active fighters ({0}) for fit ({1}) to amount: {2}", fighter.itemID, fitID, amount) - fit = eos.db.getFit(fitID) - fighter.amountActive = amount - - eos.db.commit() - self.recalc(fit) def changeMutatedValue(self, mutator, value): @@ -513,6 +494,7 @@ class Fit(FitDeprecated): fit = eos.db.getFit(fitID) self.splitDrones(fit, d, amount, fit.drones) + @deprecated def removeDrone(self, fitID, i, numDronesToRemove=1, recalc=True): pyfalog.debug("Removing {0} drones for fit ID: {1}", numDronesToRemove, fitID) fit = eos.db.getFit(fitID) diff --git a/service/fitDeprecated.py b/service/fitDeprecated.py index 8593930a3..165d929eb 100644 --- a/service/fitDeprecated.py +++ b/service/fitDeprecated.py @@ -35,6 +35,30 @@ pyfalog = Logger(__name__) class FitDeprecated(object): + + @deprecated + def changeAmount(self, fitID, projected_fit, amount): + """Change amount of projected fits""" + pyfalog.debug("Changing fit ({0}) for projected fit ({1}) to new amount: {2}", fitID, + projected_fit.getProjectionInfo(fitID), amount) + fit = eos.db.getFit(fitID) + amount = min(20, max(1, amount)) # 1 <= a <= 20 + projectionInfo = projected_fit.getProjectionInfo(fitID) + if projectionInfo: + projectionInfo.amount = amount + + eos.db.commit() + self.recalc(fit) + + @deprecated + def changeActiveFighters(self, fitID, fighter, amount): + pyfalog.debug("Changing active fighters ({0}) for fit ({1}) to amount: {2}", fighter.itemID, fitID, amount) + fit = eos.db.getFit(fitID) + fighter.amountActive = amount + + eos.db.commit() + self.recalc(fit) + @deprecated def addDrone(self, fitID, itemID, numDronesToAdd=1, recalc=True): pyfalog.debug("Adding {0} drones ({1}) to fit ID: {2}", numDronesToAdd, itemID, fitID) From fd83a4b709f146f94ebb1368ebacac0633452f8b Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 18 Aug 2018 00:39:05 -0400 Subject: [PATCH 052/110] Remove drone splitting / merging, and introduce drone change qty --- gui/builtinAdditionPanes/droneView.py | 10 +++-- gui/builtinAdditionPanes/projectedView.py | 4 +- gui/builtinContextMenus/amount.py | 5 ++- gui/contextMenu.py | 4 +- gui/fitCommands/__init__.py | 3 +- gui/fitCommands/calc/fitAddProjectedDrone.py | 2 + gui/fitCommands/calc/fitAddProjectedModule.py | 2 + gui/fitCommands/calc/fitChangeDroneQty.py | 32 ++++++++++++++++ gui/fitCommands/guiChangeDroneQty.py | 38 +++++++++++++++++++ 9 files changed, 91 insertions(+), 9 deletions(-) create mode 100644 gui/fitCommands/calc/fitChangeDroneQty.py create mode 100644 gui/fitCommands/guiChangeDroneQty.py diff --git a/gui/builtinAdditionPanes/droneView.py b/gui/builtinAdditionPanes/droneView.py index 4200f1046..6e236d0fd 100644 --- a/gui/builtinAdditionPanes/droneView.py +++ b/gui/builtinAdditionPanes/droneView.py @@ -144,10 +144,12 @@ class DroneView(Display): data[1] is typeID or index of data we want to manipulate """ if data[0] == "drone": # we want to merge drones - srcRow = int(data[1]) - dstRow, _ = self.HitTest((x, y)) - if srcRow != -1 and dstRow != -1: - self._merge(srcRow, dstRow) + pass + # remove merge functionality, if people complain in the next while, can add it back + # srcRow = int(data[1]) + # dstRow, _ = self.HitTest((x, y)) + # if srcRow != -1 and dstRow != -1: + # self._merge(srcRow, dstRow) elif data[0] == "market": wx.PostEvent(self.mainFrame, ItemSelected(itemID=int(data[1]))) diff --git a/gui/builtinAdditionPanes/projectedView.py b/gui/builtinAdditionPanes/projectedView.py index 293f34cf2..678d3aa74 100644 --- a/gui/builtinAdditionPanes/projectedView.py +++ b/gui/builtinAdditionPanes/projectedView.py @@ -106,7 +106,9 @@ class ProjectedView(d.Display): if data[0] == "projected": # if source is coming from projected, we are trying to combine drones. - self.mergeDrones(x, y, int(data[1])) + pass + # removing merge functionality - if people complain about it, can add it back as a command + # self.mergeDrones(x, y, int(data[1])) elif data[0] == "fitting": dstRow, _ = self.HitTest((x, y)) # Gather module information to get position diff --git a/gui/builtinContextMenus/amount.py b/gui/builtinContextMenus/amount.py index e5416ede6..5389daacc 100644 --- a/gui/builtinContextMenus/amount.py +++ b/gui/builtinContextMenus/amount.py @@ -6,6 +6,7 @@ import gui.globalEvents as GE import wx import re from service.fit import Fit +from eos.saveddata.drone import Drone from eos.saveddata.cargo import Cargo as es_Cargo from eos.saveddata.fighter import Fighter as es_Fighter from service.settings import ContextMenuSettings @@ -20,7 +21,7 @@ class ChangeAmount(ContextMenu): if not self.settings.get('amount'): return False - return srcContext in ("cargoItem", "projectedFit", "fighterItem", "projectedFighter") + return srcContext in ("droneItem", "cargoItem", "projectedFit", "fighterItem", "projectedFighter") def getText(self, itmContext, selection): return u"Change {0} Quantity".format(itmContext) @@ -48,6 +49,8 @@ class ChangeAmount(ContextMenu): if isinstance(thing, es_Cargo): self.mainFrame.command.Submit(cmd.GuiChangeCargoQty(fitID, fit.cargo.index(thing), int(float(cleanInput)))) return # no need for post event here + elif isinstance(thing, Drone): + self.mainFrame.command.Submit(cmd.GuiChangeDroneQty(fitID, fit.drones.index(thing), int(float(cleanInput)))) elif isinstance(thing, es_Fit): self.mainFrame.command.Submit(cmd.GuiChangeProjectedFitQty(fitID, thing.ID, int(float(cleanInput)))) return diff --git a/gui/contextMenu.py b/gui/contextMenu.py index 08ea258d5..7060579a7 100644 --- a/gui/contextMenu.py +++ b/gui/contextMenu.py @@ -186,7 +186,7 @@ from gui.builtinContextMenus import ( # noqa: E402,F401 itemStats, damagePattern, marketJump, - droneSplit, + #droneSplit, itemRemove, droneRemoveStack, ammoPattern, @@ -202,7 +202,7 @@ from gui.builtinContextMenus import ( # noqa: E402,F401 priceOptions, amount, cargoAmmo, - droneStack, + #droneStack, metaSwap, implantSets, fighterAbilities, diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index b708d153a..93d012975 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -27,4 +27,5 @@ from .guiAddDrone import GuiAddDroneCommand from .guiRemoveDrone import GuiRemoveDroneCommand from .guiChangeFighterQty import GuiChangeFighterQty from .guiChangeCargoQty import GuiChangeCargoQty -from .guiChangeProjectedFitQty import GuiChangeProjectedFitQty \ No newline at end of file +from .guiChangeProjectedFitQty import GuiChangeProjectedFitQty +from .guiChangeDroneQty import GuiChangeDroneQty \ No newline at end of file diff --git a/gui/fitCommands/calc/fitAddProjectedDrone.py b/gui/fitCommands/calc/fitAddProjectedDrone.py index 9109c4b7b..5649b6048 100644 --- a/gui/fitCommands/calc/fitAddProjectedDrone.py +++ b/gui/fitCommands/calc/fitAddProjectedDrone.py @@ -37,6 +37,8 @@ class FitAddProjectedDroneCommand(wx.Command): if drone is None: drone = Drone(item) + if not drone.item.isType("projected"): + return False fit.projectedDrones.append(drone) self.index = fit.projectedDrones.index(drone) diff --git a/gui/fitCommands/calc/fitAddProjectedModule.py b/gui/fitCommands/calc/fitAddProjectedModule.py index bf9ebf6c2..7701e375e 100644 --- a/gui/fitCommands/calc/fitAddProjectedModule.py +++ b/gui/fitCommands/calc/fitAddProjectedModule.py @@ -30,6 +30,8 @@ class FitAddProjectedModuleCommand(wx.Command): try: module = Module(item) + if not module.item.isType("projected"): + return False except ValueError: return False diff --git a/gui/fitCommands/calc/fitChangeDroneQty.py b/gui/fitCommands/calc/fitChangeDroneQty.py new file mode 100644 index 000000000..162431837 --- /dev/null +++ b/gui/fitCommands/calc/fitChangeDroneQty.py @@ -0,0 +1,32 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) + +class FitChangeDroneQty(wx.Command): + def __init__(self, fitID, position, amount=1): + wx.Command.__init__(self, True, "Drone add") + self.fitID = fitID + self.position = position + self.amount = amount # add x amount. If this goes over amount, removes stack + self.old_amount = None + + def Do(self): + pyfalog.debug("Changing active fighters ({0}) for fit ({1}) to amount: {2}", self.position, self.fitID, self.amount) + fit = eos.db.getFit(self.fitID) + drone = fit.drones[self.position] + self.old_amount = drone.amount + drone.amount = self.amount + + eos.db.commit() + return True + + def Undo(self): + cmd = FitChangeDroneQty(self.fitID, self.position, self.old_amount) + return cmd.Do() diff --git a/gui/fitCommands/guiChangeDroneQty.py b/gui/fitCommands/guiChangeDroneQty.py new file mode 100644 index 000000000..9c27a8945 --- /dev/null +++ b/gui/fitCommands/guiChangeDroneQty.py @@ -0,0 +1,38 @@ +import wx +import eos.db +import gui.mainFrame +from service.fit import Fit +from gui import globalEvents as GE +from .calc.fitAddModule import FitAddModuleCommand +from .calc.fitReplaceModule import FitReplaceModuleCommand +from .calc.fitChangeDroneQty import FitChangeDroneQty +from service.fit import Fit +from logbook import Logger +pyfalog = Logger(__name__) + + +class GuiChangeDroneQty(wx.Command): + def __init__(self, fitID, position, amount=1): + wx.Command.__init__(self, True, "") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.fitID = fitID + self.position = position + self.amount = amount + self.internal_history = wx.CommandProcessor() + + def Do(self): + cmd = FitChangeDroneQty(self.fitID, self.position, self.amount) + if self.internal_history.Submit(cmd): + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True From b17314f3c6a367aa8a5618d6f08acea859ffa285 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 18 Aug 2018 00:45:26 -0400 Subject: [PATCH 053/110] Add projected drone change command, and remove some prints --- gui/builtinContextMenus/amount.py | 9 +++-- gui/builtinContextMenus/boosterSideEffects.py | 2 +- gui/builtinContextMenus/metaSwap.py | 4 +- gui/fitCommands/__init__.py | 3 +- .../calc/fitChangeProjectedDroneQty.py | 32 +++++++++++++++ gui/fitCommands/guiChangeProjectedDroneQty.py | 39 +++++++++++++++++++ 6 files changed, 82 insertions(+), 7 deletions(-) create mode 100644 gui/fitCommands/calc/fitChangeProjectedDroneQty.py create mode 100644 gui/fitCommands/guiChangeProjectedDroneQty.py diff --git a/gui/builtinContextMenus/amount.py b/gui/builtinContextMenus/amount.py index 5389daacc..dc002d52b 100644 --- a/gui/builtinContextMenus/amount.py +++ b/gui/builtinContextMenus/amount.py @@ -21,7 +21,7 @@ class ChangeAmount(ContextMenu): if not self.settings.get('amount'): return False - return srcContext in ("droneItem", "cargoItem", "projectedFit", "fighterItem", "projectedFighter") + return srcContext in ("droneItem", "projectedDrone", "cargoItem", "projectedFit", "fighterItem", "projectedFighter") def getText(self, itmContext, selection): return u"Change {0} Quantity".format(itmContext) @@ -30,7 +30,7 @@ class ChangeAmount(ContextMenu): thing = selection[0] mainFrame = gui.mainFrame.MainFrame.getInstance() fitID = mainFrame.getActiveFit() - + srcContext = fullContext[0] if isinstance(thing, es_Fit): value = thing.getProjectionInfo(fitID).amount else: @@ -50,7 +50,10 @@ class ChangeAmount(ContextMenu): self.mainFrame.command.Submit(cmd.GuiChangeCargoQty(fitID, fit.cargo.index(thing), int(float(cleanInput)))) return # no need for post event here elif isinstance(thing, Drone): - self.mainFrame.command.Submit(cmd.GuiChangeDroneQty(fitID, fit.drones.index(thing), int(float(cleanInput)))) + if srcContext == "droneItem": + self.mainFrame.command.Submit(cmd.GuiChangeDroneQty(fitID, fit.drones.index(thing), int(float(cleanInput)))) + else: + self.mainFrame.command.Submit(cmd.GuiChangeProjectedDroneQty(fitID, fit.projectedDrones.index(thing), int(float(cleanInput)))) elif isinstance(thing, es_Fit): self.mainFrame.command.Submit(cmd.GuiChangeProjectedFitQty(fitID, thing.ID, int(float(cleanInput)))) return diff --git a/gui/builtinContextMenus/boosterSideEffects.py b/gui/builtinContextMenus/boosterSideEffects.py index a936e9340..eb162c3e7 100644 --- a/gui/builtinContextMenus/boosterSideEffects.py +++ b/gui/builtinContextMenus/boosterSideEffects.py @@ -50,7 +50,7 @@ class BoosterSideEffect(ContextMenu): if not effect.effect.isImplemented: continue menuItem = self.addEffect(rootMenu if msw else sub, effect) - sub.AppendItem(menuItem) + sub.Append(menuItem) menuItem.Check(effect.active) return sub diff --git a/gui/builtinContextMenus/metaSwap.py b/gui/builtinContextMenus/metaSwap.py index 1c4be8017..9909ab9fa 100644 --- a/gui/builtinContextMenus/metaSwap.py +++ b/gui/builtinContextMenus/metaSwap.py @@ -91,7 +91,7 @@ class MetaSwap(ContextMenu): # Sort items by metalevel, and group within that metalevel items = list(self.variations) - print(context) + if "implantItem" in context: # sort implants based on name items.sort(key=lambda x: x.name) @@ -122,7 +122,7 @@ class MetaSwap(ContextMenu): id = ContextMenu.nextID() mitem = wx.MenuItem(rootMenu, id, item.name) bindmenu.Bind(wx.EVT_MENU, self.handleModule, mitem) - print(context) + self.moduleLookup[id] = item, context m.Append(mitem) return m diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index 93d012975..2fce1e1c6 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -28,4 +28,5 @@ from .guiRemoveDrone import GuiRemoveDroneCommand from .guiChangeFighterQty import GuiChangeFighterQty from .guiChangeCargoQty import GuiChangeCargoQty from .guiChangeProjectedFitQty import GuiChangeProjectedFitQty -from .guiChangeDroneQty import GuiChangeDroneQty \ No newline at end of file +from .guiChangeDroneQty import GuiChangeDroneQty +from.guiChangeProjectedDroneQty import GuiChangeProjectedDroneQty \ No newline at end of file diff --git a/gui/fitCommands/calc/fitChangeProjectedDroneQty.py b/gui/fitCommands/calc/fitChangeProjectedDroneQty.py new file mode 100644 index 000000000..0ac99c098 --- /dev/null +++ b/gui/fitCommands/calc/fitChangeProjectedDroneQty.py @@ -0,0 +1,32 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) + +class FitChangeProjectedDroneQty(wx.Command): + def __init__(self, fitID, position, amount=1): + wx.Command.__init__(self, True, "Drone add") + self.fitID = fitID + self.position = position + self.amount = amount # add x amount. If this goes over amount, removes stack + self.old_amount = None + + def Do(self): + pyfalog.debug("Changing active fighters ({0}) for fit ({1}) to amount: {2}", self.position, self.fitID, self.amount) + fit = eos.db.getFit(self.fitID) + drone = fit.projectedDrones[self.position] + self.old_amount = drone.amount + drone.amount = self.amount + + eos.db.commit() + return True + + def Undo(self): + cmd = FitChangeProjectedDroneQty(self.fitID, self.position, self.old_amount) + return cmd.Do() diff --git a/gui/fitCommands/guiChangeProjectedDroneQty.py b/gui/fitCommands/guiChangeProjectedDroneQty.py new file mode 100644 index 000000000..38fcf31f9 --- /dev/null +++ b/gui/fitCommands/guiChangeProjectedDroneQty.py @@ -0,0 +1,39 @@ +import wx +import eos.db +import gui.mainFrame +from service.fit import Fit +from gui import globalEvents as GE +from .calc.fitAddModule import FitAddModuleCommand +from .calc.fitReplaceModule import FitReplaceModuleCommand +from .calc.fitChangeProjectedDroneQty import FitChangeProjectedDroneQty +from service.fit import Fit +from logbook import Logger +pyfalog = Logger(__name__) + + +class GuiChangeProjectedDroneQty(wx.Command): + def __init__(self, fitID, position, amount=1): + wx.Command.__init__(self, True, "") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.fitID = fitID + self.position = position + self.amount = amount + self.internal_history = wx.CommandProcessor() + + def Do(self): + cmd = FitChangeProjectedDroneQty(self.fitID, self.position, self.amount) + if self.internal_history.Submit(cmd): + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + + def Undo(self): + pyfalog.debug("{} Undo()".format(self)) + for _ in self.internal_history.Commands: + self.internal_history.Undo() + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True From 7e94914f6591f3d9b631cb2af8716c81ff84803c Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 18 Aug 2018 01:09:37 -0400 Subject: [PATCH 054/110] Implement drone toggle command --- gui/builtinAdditionPanes/droneView.py | 4 +- gui/fitCommands/__init__.py | 3 +- gui/fitCommands/calc/fitToggleDrone.py | 35 ++++++++++ gui/fitCommands/guiToggleDrone.py | 30 +++++++++ service/fit.py | 86 ------------------------ service/fitDeprecated.py | 91 ++++++++++++++++++++++++++ 6 files changed, 159 insertions(+), 90 deletions(-) create mode 100644 gui/fitCommands/calc/fitToggleDrone.py create mode 100644 gui/fitCommands/guiToggleDrone.py diff --git a/gui/builtinAdditionPanes/droneView.py b/gui/builtinAdditionPanes/droneView.py index 6e236d0fd..e95906ae9 100644 --- a/gui/builtinAdditionPanes/droneView.py +++ b/gui/builtinAdditionPanes/droneView.py @@ -239,10 +239,8 @@ class DroneView(Display): col = self.getColumn(event.Position) if col == self.getColIndex(State): fitID = self.mainFrame.getActiveFit() - sFit = Fit.getInstance() drone = self.drones[row] - sFit.toggleDrone(fitID, self.original.index(drone)) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.GuiToggleDroneCommand(fitID, self.original.index(drone))) def scheduleMenu(self, event): event.Skip() diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index 2fce1e1c6..1c1e3905e 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -29,4 +29,5 @@ from .guiChangeFighterQty import GuiChangeFighterQty from .guiChangeCargoQty import GuiChangeCargoQty from .guiChangeProjectedFitQty import GuiChangeProjectedFitQty from .guiChangeDroneQty import GuiChangeDroneQty -from.guiChangeProjectedDroneQty import GuiChangeProjectedDroneQty \ No newline at end of file +from .guiChangeProjectedDroneQty import GuiChangeProjectedDroneQty +from .guiToggleDrone import GuiToggleDroneCommand \ No newline at end of file diff --git a/gui/fitCommands/calc/fitToggleDrone.py b/gui/fitCommands/calc/fitToggleDrone.py new file mode 100644 index 000000000..a10796888 --- /dev/null +++ b/gui/fitCommands/calc/fitToggleDrone.py @@ -0,0 +1,35 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) + +class FitToggleDroneCommand(wx.Command): + """" + from sFit.toggleDrone + """ + def __init__(self, fitID, position): + wx.Command.__init__(self, True, "Cargo add") + self.fitID = fitID + self.position = position + + def Do(self): + pyfalog.debug("Toggling drones for fit ID: {0}", self.fitID) + fit = eos.db.getFit(self.fitID) + d = fit.drones[self.position] + if d.amount == d.amountActive: + d.amountActive = 0 + else: + d.amountActive = d.amount + + eos.db.commit() + return True + + def Undo(self): + cmd = FitToggleDroneCommand(self.fitID, self.position) + return cmd.Do() diff --git a/gui/fitCommands/guiToggleDrone.py b/gui/fitCommands/guiToggleDrone.py new file mode 100644 index 000000000..3dc8c4cec --- /dev/null +++ b/gui/fitCommands/guiToggleDrone.py @@ -0,0 +1,30 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .calc.fitToggleDrone import FitToggleDroneCommand + +class GuiToggleDroneCommand(wx.Command): + def __init__(self, fitID, position): + wx.Command.__init__(self, True, "") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + self.position = position + + def Do(self): + if self.internal_history.Submit(FitToggleDroneCommand(self.fitID, self.position)): + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + diff --git a/service/fit.py b/service/fit.py index 6ed79829d..1f4b417dd 100644 --- a/service/fit.py +++ b/service/fit.py @@ -438,92 +438,6 @@ class Fit(FitDeprecated): else: return False - def mergeDrones(self, fitID, d1, d2, projected=False): - pyfalog.debug("Merging drones on fit ID: {0}", fitID) - if fitID is None: - return False - - fit = eos.db.getFit(fitID) - if d1.item != d2.item: - return False - - if projected: - fit.projectedDrones.remove(d1) - else: - fit.drones.remove(d1) - - d2.amount += d1.amount - d2.amountActive += d1.amountActive - - # If we have less than the total number of drones active, make them all active. Fixes #728 - # This could be removed if we ever add an enhancement to make drone stacks partially active. - if d2.amount > d2.amountActive: - d2.amountActive = d2.amount - - eos.db.commit() - self.recalc(fit) - return True - - @staticmethod - def splitDrones(fit, d, amount, l): - pyfalog.debug("Splitting drones for fit ID: {0}", fit) - total = d.amount - active = d.amountActive > 0 - d.amount = amount - d.amountActive = amount if active else 0 - - newD = es_Drone(d.item) - newD.amount = total - amount - newD.amountActive = newD.amount if active else 0 - l.append(newD) - eos.db.commit() - - def splitProjectedDroneStack(self, fitID, d, amount): - pyfalog.debug("Splitting projected drone stack for fit ID: {0}", fitID) - if fitID is None: - return False - - fit = eos.db.getFit(fitID) - self.splitDrones(fit, d, amount, fit.projectedDrones) - - def splitDroneStack(self, fitID, d, amount): - pyfalog.debug("Splitting drone stack for fit ID: {0}", fitID) - if fitID is None: - return False - - fit = eos.db.getFit(fitID) - self.splitDrones(fit, d, amount, fit.drones) - - @deprecated - def removeDrone(self, fitID, i, numDronesToRemove=1, recalc=True): - pyfalog.debug("Removing {0} drones for fit ID: {1}", numDronesToRemove, fitID) - fit = eos.db.getFit(fitID) - d = fit.drones[i] - d.amount -= numDronesToRemove - if d.amountActive > 0: - d.amountActive -= numDronesToRemove - - if d.amount == 0: - del fit.drones[i] - - eos.db.commit() - if recalc: - self.recalc(fit) - return True - - def toggleDrone(self, fitID, i): - pyfalog.debug("Toggling drones for fit ID: {0}", fitID) - fit = eos.db.getFit(fitID) - d = fit.drones[i] - if d.amount == d.amountActive: - d.amountActive = 0 - else: - d.amountActive = d.amount - - eos.db.commit() - self.recalc(fit) - return True - def toggleImplantSource(self, fitID, source): pyfalog.debug("Toggling implant source for fit ID: {0}", fitID) fit = eos.db.getFit(fitID) diff --git a/service/fitDeprecated.py b/service/fitDeprecated.py index 165d929eb..e36014364 100644 --- a/service/fitDeprecated.py +++ b/service/fitDeprecated.py @@ -36,6 +36,97 @@ pyfalog = Logger(__name__) class FitDeprecated(object): + @deprecated + def toggleDrone(self, fitID, i): + pyfalog.debug("Toggling drones for fit ID: {0}", fitID) + fit = eos.db.getFit(fitID) + d = fit.drones[i] + if d.amount == d.amountActive: + d.amountActive = 0 + else: + d.amountActive = d.amount + + eos.db.commit() + self.recalc(fit) + return True + + @deprecated + def mergeDrones(self, fitID, d1, d2, projected=False): + pyfalog.debug("Merging drones on fit ID: {0}", fitID) + if fitID is None: + return False + + fit = eos.db.getFit(fitID) + if d1.item != d2.item: + return False + + if projected: + fit.projectedDrones.remove(d1) + else: + fit.drones.remove(d1) + + d2.amount += d1.amount + d2.amountActive += d1.amountActive + + # If we have less than the total number of drones active, make them all active. Fixes #728 + # This could be removed if we ever add an enhancement to make drone stacks partially active. + if d2.amount > d2.amountActive: + d2.amountActive = d2.amount + + eos.db.commit() + self.recalc(fit) + return True + + @staticmethod + @deprecated + def splitDrones(fit, d, amount, l): + pyfalog.debug("Splitting drones for fit ID: {0}", fit) + total = d.amount + active = d.amountActive > 0 + d.amount = amount + d.amountActive = amount if active else 0 + + newD = es_Drone(d.item) + newD.amount = total - amount + newD.amountActive = newD.amount if active else 0 + l.append(newD) + eos.db.commit() + + @deprecated + def splitProjectedDroneStack(self, fitID, d, amount): + pyfalog.debug("Splitting projected drone stack for fit ID: {0}", fitID) + if fitID is None: + return False + + fit = eos.db.getFit(fitID) + self.splitDrones(fit, d, amount, fit.projectedDrones) + + @deprecated + def splitDroneStack(self, fitID, d, amount): + pyfalog.debug("Splitting drone stack for fit ID: {0}", fitID) + if fitID is None: + return False + + fit = eos.db.getFit(fitID) + self.splitDrones(fit, d, amount, fit.drones) + + @deprecated + def removeDrone(self, fitID, i, numDronesToRemove=1, recalc=True): + pyfalog.debug("Removing {0} drones for fit ID: {1}", numDronesToRemove, fitID) + fit = eos.db.getFit(fitID) + d = fit.drones[i] + d.amount -= numDronesToRemove + if d.amountActive > 0: + d.amountActive -= numDronesToRemove + + if d.amount == 0: + del fit.drones[i] + + eos.db.commit() + if recalc: + self.recalc(fit) + return True + @deprecated def changeAmount(self, fitID, projected_fit, amount): """Change amount of projected fits""" From 82d8c95d2fac205e1d054f2d1af0f53307818496 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 23 Aug 2018 19:22:24 +0300 Subject: [PATCH 055/110] Rework export format for abyssal mods, now uses references --- service/port.py | 54 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 18 deletions(-) diff --git a/service/port.py b/service/port.py index 5ad5c4ed3..87ed7ac46 100644 --- a/service/port.py +++ b/service/port.py @@ -1066,7 +1066,7 @@ class Port(object): @classmethod - def exportEft(cls, fit, mutations=False, implants=False): + def exportEft(cls, fit, mutations=True, implants=False): # EFT formatted export is split in several sections, each section is # separated from another using 2 blank lines. Sections might have several # sub-sections, which are separated by 1 blank line @@ -1075,37 +1075,33 @@ class Port(object): header = '[{}, {}]'.format(fit.ship.item.name, fit.name) # Section 1: modules, rigs, subsystems, services - def formatAttrVal(val): - if int(val) == val: - return int(val) - return val - offineSuffix = ' /OFFLINE' modsBySlotType = {} + # Format: {reference number: module} + mutants = {} + mutantReference = 1 sFit = svcFit.getInstance() for module in fit.modules: slot = module.slot slotTypeMods = modsBySlotType.setdefault(slot, []) if module.item: - mutatedMod = bool(module.mutators) + mutated = bool(module.mutators) # if module was mutated, use base item name for export - if mutatedMod: + if mutated: modName = module.baseItem.name else: modName = module.item.name + if mutated and mutations: + mutants[mutantReference] = module + mutationSuffix = ' [{}]'.format(mutantReference) + mutantReference += 1 + else: + mutationSuffix = '' modOfflineSuffix = offineSuffix if module.state == State.OFFLINE else '' if module.charge and sFit.serviceFittingOptions['exportCharges']: - slotTypeMods.append('{}, {}{}'.format(modName, module.charge.name, modOfflineSuffix)) + slotTypeMods.append('{}, {}{}{}'.format(modName, module.charge.name, modOfflineSuffix, mutationSuffix)) else: - slotTypeMods.append('{}{}'.format(modName, modOfflineSuffix)) - if mutatedMod and mutations: - mutationGrade = module.mutaplasmid.item.name.split(' ', 1)[0].lower() - mutatedAttrs = {} - for attrID, mutator in module.mutators.items(): - attrName = getAttributeInfo(attrID).name - mutatedAttrs[attrName] = mutator.value - customAttrsLine = ', '.join('{} {}'.format(a, formatAttrVal(mutatedAttrs[a])) for a in sorted(mutatedAttrs)) - slotTypeMods.append(' {}: {}'.format(mutationGrade, customAttrsLine)) + slotTypeMods.append('{}{}{}'.format(modName, modOfflineSuffix, mutationSuffix)) else: slotTypeMods.append('[Empty {} slot]'.format(Slot.getName(slot).capitalize() if slot is not None else '')) modSection = [] @@ -1157,6 +1153,28 @@ class Port(object): if cargoLines: sections.append('\n'.join(cargoLines)) + # Section 5: mutated modules' details + mutationLines = [] + if mutants and mutations: + + def formatAttrVal(val): + if int(val) == val: + return int(val) + return val + + for mutantReference in sorted(mutants): + mutant = mutants[mutantReference] + mutatedAttrs = {} + for attrID, mutator in mutant.mutators.items(): + attrName = getAttributeInfo(attrID).name + mutatedAttrs[attrName] = mutator.value + mutationLines.append('[{}] {}'.format(mutantReference, mutant.baseItem.name)) + mutationLines.append(' {}'.format(mutant.mutaplasmid.item.name)) + customAttrsLine = ', '.join('{} {}'.format(a, formatAttrVal(mutatedAttrs[a])) for a in sorted(mutatedAttrs)) + mutationLines.append(' {}'.format(customAttrsLine)) + if mutationLines: + sections.append('\n'.join(mutationLines)) + return '{}\n\n{}'.format(header, '\n\n\n'.join(sections)) @classmethod From 13498e9b35e7ed401a73b690e793ac29ab932642 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Thu, 23 Aug 2018 21:46:13 -0400 Subject: [PATCH 056/110] bump --- config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.py b/config.py index 7afe652f5..50894c424 100644 --- a/config.py +++ b/config.py @@ -24,7 +24,7 @@ saveInRoot = False # Version data -version = "2.4.0" +version = "2.5.0b1" tag = "Stable" expansionName = "YC120.8" expansionVersion = "1.0" From 6240f23c02fd957b48bbdacb1b6cca7dc39abeb5 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Fri, 24 Aug 2018 09:54:03 +0300 Subject: [PATCH 057/110] Enumerate mutated modules based on their export order rather than how pyfa order, and round attribute values to avoid float errors --- service/port.py | 65 +++++++++++++++++++++++-------------------------- 1 file changed, 30 insertions(+), 35 deletions(-) diff --git a/service/port.py b/service/port.py index 87ed7ac46..d964f7bb5 100644 --- a/service/port.py +++ b/service/port.py @@ -33,6 +33,7 @@ import xml.parsers.expat from eos import db from eos.db.gamedata.queries import getAttributeInfo +from gui.utils.numberFormatter import roundToPrec from service.fit import Fit as svcFit # noinspection PyPackageRequirements @@ -1075,41 +1076,40 @@ class Port(object): header = '[{}, {}]'.format(fit.ship.item.name, fit.name) # Section 1: modules, rigs, subsystems, services - offineSuffix = ' /OFFLINE' modsBySlotType = {} - # Format: {reference number: module} - mutants = {} - mutantReference = 1 sFit = svcFit.getInstance() for module in fit.modules: slot = module.slot - slotTypeMods = modsBySlotType.setdefault(slot, []) - if module.item: - mutated = bool(module.mutators) - # if module was mutated, use base item name for export - if mutated: - modName = module.baseItem.name - else: - modName = module.item.name - if mutated and mutations: - mutants[mutantReference] = module - mutationSuffix = ' [{}]'.format(mutantReference) - mutantReference += 1 - else: - mutationSuffix = '' - modOfflineSuffix = offineSuffix if module.state == State.OFFLINE else '' - if module.charge and sFit.serviceFittingOptions['exportCharges']: - slotTypeMods.append('{}, {}{}{}'.format(modName, module.charge.name, modOfflineSuffix, mutationSuffix)) - else: - slotTypeMods.append('{}{}{}'.format(modName, modOfflineSuffix, mutationSuffix)) - else: - slotTypeMods.append('[Empty {} slot]'.format(Slot.getName(slot).capitalize() if slot is not None else '')) + modsBySlotType.setdefault(slot, []).append(module) + # Format: {reference number: module} modSection = [] + offineSuffix = ' /OFFLINE' + mutants = {} + mutantReference = 1 for slotType in EFT_SLOT_ORDER: rackLines = [] - data = modsBySlotType.get(slotType, ()) - for line in data: - rackLines.append(line) + modules = modsBySlotType.get(slotType, ()) + for module in modules: + if module.item: + mutated = bool(module.mutators) + # if module was mutated, use base item name for export + if mutated: + modName = module.baseItem.name + else: + modName = module.item.name + if mutated and mutations: + mutants[mutantReference] = module + mutationSuffix = ' [{}]'.format(mutantReference) + mutantReference += 1 + else: + mutationSuffix = '' + modOfflineSuffix = offineSuffix if module.state == State.OFFLINE else '' + if module.charge and sFit.serviceFittingOptions['exportCharges']: + rackLines.append('{}, {}{}{}'.format(modName, module.charge.name, modOfflineSuffix, mutationSuffix)) + else: + rackLines.append('{}{}{}'.format(modName, modOfflineSuffix, mutationSuffix)) + else: + rackLines.append('[Empty {} slot]'.format(Slot.getName(slotType).capitalize() if slotType is not None else '')) if rackLines: modSection.append('\n'.join(rackLines)) if modSection: @@ -1156,12 +1156,6 @@ class Port(object): # Section 5: mutated modules' details mutationLines = [] if mutants and mutations: - - def formatAttrVal(val): - if int(val) == val: - return int(val) - return val - for mutantReference in sorted(mutants): mutant = mutants[mutantReference] mutatedAttrs = {} @@ -1170,7 +1164,8 @@ class Port(object): mutatedAttrs[attrName] = mutator.value mutationLines.append('[{}] {}'.format(mutantReference, mutant.baseItem.name)) mutationLines.append(' {}'.format(mutant.mutaplasmid.item.name)) - customAttrsLine = ', '.join('{} {}'.format(a, formatAttrVal(mutatedAttrs[a])) for a in sorted(mutatedAttrs)) + # Round to 7th significant number to avoid exporting float errors + customAttrsLine = ', '.join('{} {}'.format(a, roundToPrec(mutatedAttrs[a], 7)) for a in sorted(mutatedAttrs)) mutationLines.append(' {}'.format(customAttrsLine)) if mutationLines: sections.append('\n'.join(mutationLines)) From 0a2fa62e21e37c4e3d8c9133d18572a5848a7884 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Fri, 24 Aug 2018 09:55:32 +0300 Subject: [PATCH 058/110] Fix misplaced comment --- service/port.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/service/port.py b/service/port.py index d964f7bb5..13795c65e 100644 --- a/service/port.py +++ b/service/port.py @@ -1081,10 +1081,9 @@ class Port(object): for module in fit.modules: slot = module.slot modsBySlotType.setdefault(slot, []).append(module) - # Format: {reference number: module} modSection = [] offineSuffix = ' /OFFLINE' - mutants = {} + mutants = {} # Format: {reference number: module} mutantReference = 1 for slotType in EFT_SLOT_ORDER: rackLines = [] From 83222489c4b039108671f93f7bd8060051e96278 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Fri, 24 Aug 2018 10:01:31 +0300 Subject: [PATCH 059/110] Condense code a bit more --- service/port.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/service/port.py b/service/port.py index 13795c65e..f5fec6378 100644 --- a/service/port.py +++ b/service/port.py @@ -1079,8 +1079,7 @@ class Port(object): modsBySlotType = {} sFit = svcFit.getInstance() for module in fit.modules: - slot = module.slot - modsBySlotType.setdefault(slot, []).append(module) + modsBySlotType.setdefault(module.slot, []).append(module) modSection = [] offineSuffix = ' /OFFLINE' mutants = {} # Format: {reference number: module} From 66d559306fbdd7776bc207b359b85ddff6863172 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Fri, 24 Aug 2018 10:03:44 +0300 Subject: [PATCH 060/110] Avoid doing too wide lines --- service/port.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/service/port.py b/service/port.py index f5fec6378..8a6cf7343 100644 --- a/service/port.py +++ b/service/port.py @@ -1103,11 +1103,13 @@ class Port(object): mutationSuffix = '' modOfflineSuffix = offineSuffix if module.state == State.OFFLINE else '' if module.charge and sFit.serviceFittingOptions['exportCharges']: - rackLines.append('{}, {}{}{}'.format(modName, module.charge.name, modOfflineSuffix, mutationSuffix)) + rackLines.append('{}, {}{}{}'.format( + modName, module.charge.name, modOfflineSuffix, mutationSuffix)) else: rackLines.append('{}{}{}'.format(modName, modOfflineSuffix, mutationSuffix)) else: - rackLines.append('[Empty {} slot]'.format(Slot.getName(slotType).capitalize() if slotType is not None else '')) + rackLines.append('[Empty {} slot]'.format( + Slot.getName(slotType).capitalize() if slotType is not None else '')) if rackLines: modSection.append('\n'.join(rackLines)) if modSection: @@ -1146,7 +1148,10 @@ class Port(object): # Section 4: cargo cargoLines = [] - for cargo in sorted(fit.cargo, key=lambda c: (c.item.group.category.name, c.item.group.name, c.item.name)): + for cargo in sorted( + fit.cargo, + key=lambda c: (c.item.group.category.name, c.item.group.name, c.item.name) + ): cargoLines.append('{} x{}'.format(cargo.item.name, cargo.amount)) if cargoLines: sections.append('\n'.join(cargoLines)) @@ -1163,7 +1168,9 @@ class Port(object): mutationLines.append('[{}] {}'.format(mutantReference, mutant.baseItem.name)) mutationLines.append(' {}'.format(mutant.mutaplasmid.item.name)) # Round to 7th significant number to avoid exporting float errors - customAttrsLine = ', '.join('{} {}'.format(a, roundToPrec(mutatedAttrs[a], 7)) for a in sorted(mutatedAttrs)) + customAttrsLine = ', '.join( + '{} {}'.format(a, roundToPrec(mutatedAttrs[a], 7)) + for a in sorted(mutatedAttrs)) mutationLines.append(' {}'.format(customAttrsLine)) if mutationLines: sections.append('\n'.join(mutationLines)) From 4a27c60486c5b6355e8e99054d295ab7bd496432 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Fri, 24 Aug 2018 13:25:41 +0300 Subject: [PATCH 061/110] Clean up the fit being imported before parsing --- service/port.py | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/service/port.py b/service/port.py index 8a6cf7343..a0f8ddf32 100644 --- a/service/port.py +++ b/service/port.py @@ -625,21 +625,28 @@ class Port(object): @staticmethod def importEft(eftString): + # Split passed string in lines and clean them up + lines = eftString.splitlines() + for i in range(len(lines)): + lines[i] = lines[i].strip() + while lines and not lines[0]: + del lines[0] + while lines and not lines[-1]: + del lines[-1] + sMkt = Market.getInstance() - offineSuffix = " /OFFLINE" + offineSuffix = ' /OFFLINE' fit = Fit() - eftString = eftString.strip() - lines = re.split('[\n\r]+', eftString) - info = lines[0][1:-1].split(",", 1) - - if len(info) == 2: - shipType = info[0].strip() - fitName = info[1].strip() - else: - shipType = info[0].strip() - fitName = "Imported %s" % shipType + # Ship and fit name from header + header = lines.pop(0) + m = re.match('\[(?P[\w\s]+), (?P.+)\]', header) + if not m: + pyfalog.warning('Corrupted fit header in importEft') + return + shipType = m.group('shipType').strip() + fitName = m.group('fitName').strip() try: ship = sMkt.getItem(shipType) try: From 2dd1ddddd59266f9d812793f1be6e3dccda801e1 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Fri, 24 Aug 2018 18:57:42 +0300 Subject: [PATCH 062/110] Further rework of import function --- service/port.py | 85 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/service/port.py b/service/port.py index a0f8ddf32..f67c6e4ff 100644 --- a/service/port.py +++ b/service/port.py @@ -658,6 +658,91 @@ class Port(object): pyfalog.warning("Exception caught in importEft") return + def sectionIter(lines): + section = [] + for line in lines: + if not line: + if section: + yield section + section = [] + section.append(line) + if section: + yield section + + stubPattern = '^\[.+\]$' + modulePattern = '^(?P[^,/]+)(, (?P[^,/]+))?(?P /OFFLINE)?( \[(?P\d+)\])?$' + droneCargoPattern = '^(?P[^,/]+) x(?P\d+)$' + + sections = [] + for section in sectionIter(lines): + sectionItemData = [] + for line in section: + # Stub line + if re.match(stubPattern, line): + sectionItemData.append({'type': 'stub'}) + continue + # Items with quantity specifier + m = re.match(droneCargoPattern, line) + if m: + sectionItemData.append({ + 'type': 'multi', + 'typeName': m.group('typeName'), + 'amount': int(m.group('amount'))}) + continue + # All other items + m = re.match(modulePattern, line) + if m: + sectionItemData.append({ + 'type': 'normal', + 'typeName': m.group('typeName'), + 'chargeName': m.group('charge'), + 'offline': True if m.group('offline') else False, + 'mutation': int(m.group('mutation')) if m.group('mutation') else None}) + # Strip stubs from tail + while sectionItemData and sectionItemData[-1]['type'] == 'stub': + del sectionItemData[-1] + if sectionItemData: + sections.append(sectionItemData) + + + + for sectionItemData in sections: + sectionCats = set() + for entry in sectionItemData: + if entry['type'] == 'stub': + continue + try: + item = sMkt.getItem(entry['typeName'], eager='group.category') + except: + pyfalog.warning('no data can be found (old names)') + entry['type'] = 'stub' + continue + entry['item'] = item + import sys + sys.stderr.write('{}\n'.format(item.slot)) + sectionCats.add(item.category.name) + processStubs = ( + # To process stubs, we must make sure that all the items in section + # are from the same category + len(sectionCats) == 1 and tuple(sectionCats)[0] == 'Module' and + # And that they do not contain items with quantity specifier + all(i['type'] in ('stub', 'normal') for i in sectionItemData)) + isDronebay = ( + len(sectionCats) == 1 and tuple(sectionCats)[0] == 'Drone' and + all(i['type'] == 'multi' for i in sectionItemData)) + isFighterbay = ( + len(sectionCats) == 1 and tuple(sectionCats)[0] == 'Fighter' and + all(i['type'] == 'multi' for i in sectionItemData)) + + + + + + + + + + # maintain map of drones and their quantities droneMap = {} cargoMap = {} From a8c69abc72ae817d28f4213be4ceeb2d70aad2d0 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sat, 25 Aug 2018 11:06:33 +0300 Subject: [PATCH 063/110] Move EFT import/export related functions to separate file --- service/eftPort.py | 526 +++++++++++++++++++++++++++++++++++++++++++++ service/port.py | 371 +------------------------------- 2 files changed, 534 insertions(+), 363 deletions(-) create mode 100644 service/eftPort.py diff --git a/service/eftPort.py b/service/eftPort.py new file mode 100644 index 000000000..de69bd966 --- /dev/null +++ b/service/eftPort.py @@ -0,0 +1,526 @@ +# ============================================================================= +# Copyright (C) 2014 Ryan Holmes +# +# This file is part of pyfa. +# +# pyfa is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# pyfa is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with pyfa. If not, see . +# ============================================================================= + + +import re + +from logbook import Logger + +from eos.db.gamedata.queries import getAttributeInfo +from eos.saveddata.citadel import Citadel +from eos.saveddata.module import Module, Slot, State +from eos.saveddata.ship import Ship +from gui.utils.numberFormatter import roundToPrec +from service.fit import Fit as svcFit +from service.market import Market + + +pyfalog = Logger(__name__) + + +def fetchItem(typeName, eagerCat=True): + sMkt = Market.getInstance() + eager = 'group.category' if eagerCat else None + try: + return sMkt.getItem(typeName, eager=eager) + except: + pyfalog.warning('EftPort: unable to fetch item "{}"'.format(typeName)) + return + + +class EftImportError(Exception): + """Exception class emitted and consumed by EFT importer/exporter internally.""" + ... + + +class AmountMap(dict): + + def add(self, entity, amount): + if entity not in self: + self[entity] = 0 + self[entity] += amount + + +class AbstractFit: + + def __init__(self): + self.modulesHigh = [] + self.modulesMed = [] + self.modulesLow = [] + self.rigs = [] + self.subsystems = [] + self.services = [] + self.drones = AmountMap() + self.fighters = AmountMap() + self.implants = set() + self.boosters = set() + self.cargo = AmountMap() + + # def addModule(self, m): + # modContMap = { + # Slot.HIGH: self.modulesHigh, + # Slot.MED: self.modulesMed, + # Slot.LOW: self.modulesLow, + # Slot.RIG: self.rigs, + # Slot.SUBSYSTEM: self.subsystems, + # Slot.SERVICE: self.services} + + +class Section: + + def __init__(self): + self.lines = [] + self.itemData = [] + self.__itemDataCats = None + + @property + def itemDataCats(self): + if self.__itemDataCats is None: + cats = set() + for itemSpec in self.itemData: + if itemSpec is None: + continue + cats.add(itemSpec.item.category.name) + self.__itemDataCats = tuple(sorted(cats)) + return self.__itemDataCats + + def cleanItemDataTail(self): + while self.itemData and self.itemData[-1] is None: + del self.itemData[-1] + + +class BaseItemSpec: + + def __init__(self, typeName): + item = fetchItem(typeName, eagerCat=True) + if item is None: + raise EftImportError + self.typeName = typeName + self.item = item + + +class ItemSpec(BaseItemSpec): + + def __init__(self, typeName, chargeName=None): + super().__init__(typeName) + self.charge = self.__fetchCharge(chargeName) + self.offline = False + self.mutationIdx = None + + def __fetchCharge(self, chargeName): + if chargeName: + charge = fetchItem(chargeName, eagerCat=True) + if charge.category.name != 'Charge': + charge = None + else: + charge = None + return charge + + +class MultiItemSpec(BaseItemSpec): + + def __init__(self, typeName): + super().__init__(typeName) + self.amount = 0 + + +class EftPort: + + SLOT_ORDER = [Slot.LOW, Slot.MED, Slot.HIGH, Slot.RIG, Slot.SUBSYSTEM, Slot.SERVICE] + OFFLINE_SUFFIX = ' /OFFLINE' + + @classmethod + def exportEft(cls, fit, mutations, implants): + # EFT formatted export is split in several sections, each section is + # separated from another using 2 blank lines. Sections might have several + # sub-sections, which are separated by 1 blank line + sections = [] + + header = '[{}, {}]'.format(fit.ship.item.name, fit.name) + + # Section 1: modules, rigs, subsystems, services + modsBySlotType = {} + sFit = svcFit.getInstance() + for module in fit.modules: + modsBySlotType.setdefault(module.slot, []).append(module) + modSection = [] + + mutants = {} # Format: {reference number: module} + mutantReference = 1 + for slotType in cls.SLOT_ORDER: + rackLines = [] + modules = modsBySlotType.get(slotType, ()) + for module in modules: + if module.item: + mutated = bool(module.mutators) + # if module was mutated, use base item name for export + if mutated: + modName = module.baseItem.name + else: + modName = module.item.name + if mutated and mutations: + mutants[mutantReference] = module + mutationSuffix = ' [{}]'.format(mutantReference) + mutantReference += 1 + else: + mutationSuffix = '' + modOfflineSuffix = cls.OFFLINE_SUFFIX if module.state == State.OFFLINE else '' + if module.charge and sFit.serviceFittingOptions['exportCharges']: + rackLines.append('{}, {}{}{}'.format( + modName, module.charge.name, modOfflineSuffix, mutationSuffix)) + else: + rackLines.append('{}{}{}'.format(modName, modOfflineSuffix, mutationSuffix)) + else: + rackLines.append('[Empty {} slot]'.format( + Slot.getName(slotType).capitalize() if slotType is not None else '')) + if rackLines: + modSection.append('\n'.join(rackLines)) + if modSection: + sections.append('\n\n'.join(modSection)) + + # Section 2: drones, fighters + minionSection = [] + droneLines = [] + for drone in sorted(fit.drones, key=lambda d: d.item.name): + droneLines.append('{} x{}'.format(drone.item.name, drone.amount)) + if droneLines: + minionSection.append('\n'.join(droneLines)) + fighterLines = [] + for fighter in sorted(fit.fighters, key=lambda f: f.item.name): + fighterLines.append('{} x{}'.format(fighter.item.name, fighter.amountActive)) + if fighterLines: + minionSection.append('\n'.join(fighterLines)) + if minionSection: + sections.append('\n\n'.join(minionSection)) + + # Section 3: implants, boosters + if implants: + charSection = [] + implantLines = [] + for implant in fit.implants: + implantLines.append(implant.item.name) + if implantLines: + charSection.append('\n'.join(implantLines)) + boosterLines = [] + for booster in fit.boosters: + boosterLines.append(booster.item.name) + if boosterLines: + charSection.append('\n'.join(boosterLines)) + if charSection: + sections.append('\n\n'.join(charSection)) + + # Section 4: cargo + cargoLines = [] + for cargo in sorted( + fit.cargo, + key=lambda c: (c.item.group.category.name, c.item.group.name, c.item.name) + ): + cargoLines.append('{} x{}'.format(cargo.item.name, cargo.amount)) + if cargoLines: + sections.append('\n'.join(cargoLines)) + + # Section 5: mutated modules' details + mutationLines = [] + if mutants and mutations: + for mutantReference in sorted(mutants): + mutant = mutants[mutantReference] + mutatedAttrs = {} + for attrID, mutator in mutant.mutators.items(): + attrName = getAttributeInfo(attrID).name + mutatedAttrs[attrName] = mutator.value + mutationLines.append('[{}] {}'.format(mutantReference, mutant.baseItem.name)) + mutationLines.append(' {}'.format(mutant.mutaplasmid.item.name)) + # Round to 7th significant number to avoid exporting float errors + customAttrsLine = ', '.join( + '{} {}'.format(a, roundToPrec(mutatedAttrs[a], 7)) + for a in sorted(mutatedAttrs)) + mutationLines.append(' {}'.format(customAttrsLine)) + if mutationLines: + sections.append('\n'.join(mutationLines)) + + return '{}\n\n{}'.format(header, '\n\n\n'.join(sections)) + + @classmethod + def importEft(cls, eftString): + lines = cls.__prepareImportString(eftString) + try: + fit = cls.__createFit(lines) + except EftImportError: + return + + aFit = AbstractFit() + + stubPattern = '^\[.+\]$' + modulePattern = '^(?P[^,/]+)(, (?P[^,/]+))?(?P{})?( \[(?P\d+)\])?$'.format(cls.OFFLINE_SUFFIX) + droneCargoPattern = '^(?P[^,/]+) x(?P\d+)$' + + dronebaySeen = False + fightersSeen = False + for section in cls.__importSectionIter(lines): + for line in section.lines: + # Stub line + if re.match(stubPattern, line): + section.itemData.append(None) + continue + # Items with quantity specifier + m = re.match(droneCargoPattern, line) + if m: + try: + itemSpec = MultiItemSpec(m.group('typeName')) + # Items which cannot be fetched are considered as stubs + except EftImportError: + section.itemData.append(None) + else: + itemSpec.amount = int(m.group('amount')) + section.itemData.append(itemSpec) + # All other items + m = re.match(modulePattern, line) + if m: + try: + itemSpec = ItemSpec(m.group('typeName'), chargeName=m.group('chargeName')) + # Items which cannot be fetched are considered as stubs + except EftImportError: + section.itemData.append(None) + else: + if m.group('offline'): + itemSpec.offline = True + if m.group('mutation'): + itemSpec.mutationIdx = int(m.group('mutation')) + section.itemData.append(itemSpec) + section.cleanItemDataTail() + # Finally, start putting items into intermediate containers + # All items in section have quantity specifier + if all(isinstance(id, MultiItemSpec) for id in section.itemData): + # Dronebay + if len(section.itemDataCats) == 1 and section.itemDataCats[0] == 'Drone' and not dronebaySeen: + for entry in section.itemData: + aFit.drones.add(entry['typeName'], entry['amount']) + dronebaySeen = True + # Fighters + elif len(section.itemDataCats) == 1 and section.itemDataCats[0] == 'Fighter' and not fightersSeen: + for entry in section.itemData: + aFit.fighters.add(entry['typeName'], entry['amount']) + fightersSeen = True + # Cargo + else: + for entry in section.itemData: + aFit.cargo.add(entry['typeName'], entry['amount']) + # All of items are normal or stubs + elif all(isinstance(id, ItemSpec) or id is None for id in section.itemData): + if len(section.itemDataCats) == 1: + if section.itemDataCats[0] in ('Module', 'Subsystem', 'Structure Module'): + slotTypes = set() + for entry in itemData: + if entry['type'] == 'stub': + continue + try: + m = Module(entry['item']) + except ValueError: + m = None + else: + slotTypes.add(m.slot) + entry['module'] = m + # If whole section uses container of the same type, + if len(slotTypes) == 1: + pass + else: + pass + + else: + pass + else: + pass + + # Mix between all types + else: + pass + + + + # maintain map of drones and their quantities + droneMap = {} + cargoMap = {} + moduleList = [] + for i in range(1, len(lines)): + ammoName = None + extraAmount = None + + line = lines[i].strip() + if not line: + continue + + setOffline = line.endswith(offineSuffix) + if setOffline is True: + # remove offline suffix from line + line = line[:len(line) - len(offineSuffix)] + + modAmmo = line.split(",") + # matches drone and cargo with x{qty} + modExtra = modAmmo[0].split(" x") + + if len(modAmmo) == 2: + # line with a module and ammo + ammoName = modAmmo[1].strip() + modName = modAmmo[0].strip() + elif len(modExtra) == 2: + # line with drone/cargo and qty + extraAmount = modExtra[1].strip() + modName = modExtra[0].strip() + else: + # line with just module + modName = modExtra[0].strip() + + try: + # get item information. If we are on a Drone/Cargo line, throw out cargo + item = sMkt.getItem(modName, eager="group.category") + except: + # if no data can be found (old names) + pyfalog.warning("no data can be found (old names)") + continue + + if not item.published: + continue + + if item.category.name == "Drone": + extraAmount = int(extraAmount) if extraAmount is not None else 1 + if modName not in droneMap: + droneMap[modName] = 0 + droneMap[modName] += extraAmount + elif item.category.name == "Fighter": + extraAmount = int(extraAmount) if extraAmount is not None else 1 + fighterItem = Fighter(item) + if extraAmount > fighterItem.fighterSquadronMaxSize: # Amount bigger then max fightergroup size + extraAmount = fighterItem.fighterSquadronMaxSize + if fighterItem.fits(fit): + fit.fighters.append(fighterItem) + + if len(modExtra) == 2 and item.category.name != "Drone" and item.category.name != "Fighter": + extraAmount = int(extraAmount) if extraAmount is not None else 1 + if modName not in cargoMap: + cargoMap[modName] = 0 + cargoMap[modName] += extraAmount + elif item.category.name == "Implant": + if "implantness" in item.attributes: + fit.implants.append(Implant(item)) + elif "boosterness" in item.attributes: + fit.boosters.append(Booster(item)) + else: + pyfalog.error("Failed to import implant: {0}", line) + # elif item.category.name == "Subsystem": + # try: + # subsystem = Module(item) + # except ValueError: + # continue + # + # if subsystem.fits(fit): + # fit.modules.append(subsystem) + else: + try: + m = Module(item) + except ValueError: + continue + # Add subsystems before modules to make sure T3 cruisers have subsystems installed + if item.category.name == "Subsystem": + if m.fits(fit): + fit.modules.append(m) + else: + if ammoName: + try: + ammo = sMkt.getItem(ammoName) + if m.isValidCharge(ammo) and m.charge is None: + m.charge = ammo + except: + pass + + if setOffline is True and m.isValidState(State.OFFLINE): + m.state = State.OFFLINE + elif m.isValidState(State.ACTIVE): + m.state = State.ACTIVE + + moduleList.append(m) + + # Recalc to get slot numbers correct for T3 cruisers + svcFit.getInstance().recalc(fit) + + for m in moduleList: + if m.fits(fit): + m.owner = fit + if not m.isValidState(m.state): + pyfalog.warning("Error: Module {0} cannot have state {1}", m, m.state) + + fit.modules.append(m) + + for droneName in droneMap: + d = Drone(sMkt.getItem(droneName)) + d.amount = droneMap[droneName] + fit.drones.append(d) + + for cargoName in cargoMap: + c = Cargo(sMkt.getItem(cargoName)) + c.amount = cargoMap[cargoName] + fit.cargo.append(c) + + return fit + + @staticmethod + def __prepareImportString(eftString): + lines = eftString.splitlines() + for i in range(len(lines)): + lines[i] = lines[i].strip() + while lines and not lines[0]: + del lines[0] + while lines and not lines[-1]: + del lines[-1] + return lines + + @classmethod + def __createFit(cls, lines): + """Create fit and set top-level entity (ship or citadel).""" + fit = Fit() + header = lines.pop(0) + m = re.match('\[(?P[\w\s]+), (?P.+)\]', header) + if not m: + pyfalog.warning('EftPort.importEft: corrupted fit header') + raise EftImportError + shipType = m.group('shipType').strip() + fitName = m.group('fitName').strip() + try: + ship = fetchItem(shipType, eagerCat=False) + try: + fit.ship = Ship(ship) + except ValueError: + fit.ship = Citadel(ship) + fit.name = fitName + except: + pyfalog.warning('EftPort.importEft: exception caught when parsing header') + raise EftImportError + return fit + + @staticmethod + def __importSectionIter(lines): + section = Section() + for line in lines: + if not line: + if section.lines: + yield section + section = Section() + else: + section.lines.append(line) + if section.lines: + yield section diff --git a/service/port.py b/service/port.py index f67c6e4ff..bf1ff4f90 100644 --- a/service/port.py +++ b/service/port.py @@ -32,8 +32,6 @@ from codecs import open import xml.parsers.expat from eos import db -from eos.db.gamedata.queries import getAttributeInfo -from gui.utils.numberFormatter import roundToPrec from service.fit import Fit as svcFit # noinspection PyPackageRequirements @@ -53,6 +51,7 @@ from utils.strfunctions import sequential_rep, replace_ltgt from abc import ABCMeta, abstractmethod from service.esi import Esi +from service.eftPort import EftPort from collections import OrderedDict @@ -62,7 +61,6 @@ class ESIExportException(Exception): pyfalog = Logger(__name__) -EFT_SLOT_ORDER = [Slot.LOW, Slot.MED, Slot.HIGH, Slot.RIG, Slot.SUBSYSTEM, Slot.SERVICE] INV_FLAGS = { Slot.LOW: 11, Slot.MED: 19, @@ -213,11 +211,7 @@ class IPortUser(metaclass=ABCMeta): class Port(object): - """ - 2017/03/31 NOTE: About change - 1. want to keep the description recorded in fit - 2. i think should not write wx.CallAfter in here - """ + """Service which houses all import/export format functions""" instance = None __tag_replace_flag = True @@ -351,8 +345,6 @@ class Port(object): db.save(fit) return fits - """Service which houses all import/export format functions""" - @classmethod def exportESI(cls, ofit, callback=None): # A few notes: @@ -625,248 +617,7 @@ class Port(object): @staticmethod def importEft(eftString): - # Split passed string in lines and clean them up - lines = eftString.splitlines() - for i in range(len(lines)): - lines[i] = lines[i].strip() - while lines and not lines[0]: - del lines[0] - while lines and not lines[-1]: - del lines[-1] - - sMkt = Market.getInstance() - offineSuffix = ' /OFFLINE' - - fit = Fit() - - # Ship and fit name from header - header = lines.pop(0) - m = re.match('\[(?P[\w\s]+), (?P.+)\]', header) - if not m: - pyfalog.warning('Corrupted fit header in importEft') - return - shipType = m.group('shipType').strip() - fitName = m.group('fitName').strip() - try: - ship = sMkt.getItem(shipType) - try: - fit.ship = Ship(ship) - except ValueError: - fit.ship = Citadel(ship) - fit.name = fitName - except: - pyfalog.warning("Exception caught in importEft") - return - - def sectionIter(lines): - section = [] - for line in lines: - if not line: - if section: - yield section - section = [] - section.append(line) - if section: - yield section - - stubPattern = '^\[.+\]$' - modulePattern = '^(?P[^,/]+)(, (?P[^,/]+))?(?P /OFFLINE)?( \[(?P\d+)\])?$' - droneCargoPattern = '^(?P[^,/]+) x(?P\d+)$' - - sections = [] - for section in sectionIter(lines): - sectionItemData = [] - for line in section: - # Stub line - if re.match(stubPattern, line): - sectionItemData.append({'type': 'stub'}) - continue - # Items with quantity specifier - m = re.match(droneCargoPattern, line) - if m: - sectionItemData.append({ - 'type': 'multi', - 'typeName': m.group('typeName'), - 'amount': int(m.group('amount'))}) - continue - # All other items - m = re.match(modulePattern, line) - if m: - sectionItemData.append({ - 'type': 'normal', - 'typeName': m.group('typeName'), - 'chargeName': m.group('charge'), - 'offline': True if m.group('offline') else False, - 'mutation': int(m.group('mutation')) if m.group('mutation') else None}) - # Strip stubs from tail - while sectionItemData and sectionItemData[-1]['type'] == 'stub': - del sectionItemData[-1] - if sectionItemData: - sections.append(sectionItemData) - - - - for sectionItemData in sections: - sectionCats = set() - for entry in sectionItemData: - if entry['type'] == 'stub': - continue - try: - item = sMkt.getItem(entry['typeName'], eager='group.category') - except: - pyfalog.warning('no data can be found (old names)') - entry['type'] = 'stub' - continue - entry['item'] = item - import sys - sys.stderr.write('{}\n'.format(item.slot)) - sectionCats.add(item.category.name) - processStubs = ( - # To process stubs, we must make sure that all the items in section - # are from the same category - len(sectionCats) == 1 and tuple(sectionCats)[0] == 'Module' and - # And that they do not contain items with quantity specifier - all(i['type'] in ('stub', 'normal') for i in sectionItemData)) - isDronebay = ( - len(sectionCats) == 1 and tuple(sectionCats)[0] == 'Drone' and - all(i['type'] == 'multi' for i in sectionItemData)) - isFighterbay = ( - len(sectionCats) == 1 and tuple(sectionCats)[0] == 'Fighter' and - all(i['type'] == 'multi' for i in sectionItemData)) - - - - - - - - - - - # maintain map of drones and their quantities - droneMap = {} - cargoMap = {} - moduleList = [] - for i in range(1, len(lines)): - ammoName = None - extraAmount = None - - line = lines[i].strip() - if not line: - continue - - setOffline = line.endswith(offineSuffix) - if setOffline is True: - # remove offline suffix from line - line = line[:len(line) - len(offineSuffix)] - - modAmmo = line.split(",") - # matches drone and cargo with x{qty} - modExtra = modAmmo[0].split(" x") - - if len(modAmmo) == 2: - # line with a module and ammo - ammoName = modAmmo[1].strip() - modName = modAmmo[0].strip() - elif len(modExtra) == 2: - # line with drone/cargo and qty - extraAmount = modExtra[1].strip() - modName = modExtra[0].strip() - else: - # line with just module - modName = modExtra[0].strip() - - try: - # get item information. If we are on a Drone/Cargo line, throw out cargo - item = sMkt.getItem(modName, eager="group.category") - except: - # if no data can be found (old names) - pyfalog.warning("no data can be found (old names)") - continue - - if not item.published: - continue - - if item.category.name == "Drone": - extraAmount = int(extraAmount) if extraAmount is not None else 1 - if modName not in droneMap: - droneMap[modName] = 0 - droneMap[modName] += extraAmount - elif item.category.name == "Fighter": - extraAmount = int(extraAmount) if extraAmount is not None else 1 - fighterItem = Fighter(item) - if extraAmount > fighterItem.fighterSquadronMaxSize: # Amount bigger then max fightergroup size - extraAmount = fighterItem.fighterSquadronMaxSize - if fighterItem.fits(fit): - fit.fighters.append(fighterItem) - - if len(modExtra) == 2 and item.category.name != "Drone" and item.category.name != "Fighter": - extraAmount = int(extraAmount) if extraAmount is not None else 1 - if modName not in cargoMap: - cargoMap[modName] = 0 - cargoMap[modName] += extraAmount - elif item.category.name == "Implant": - if "implantness" in item.attributes: - fit.implants.append(Implant(item)) - elif "boosterness" in item.attributes: - fit.boosters.append(Booster(item)) - else: - pyfalog.error("Failed to import implant: {0}", line) - # elif item.category.name == "Subsystem": - # try: - # subsystem = Module(item) - # except ValueError: - # continue - # - # if subsystem.fits(fit): - # fit.modules.append(subsystem) - else: - try: - m = Module(item) - except ValueError: - continue - # Add subsystems before modules to make sure T3 cruisers have subsystems installed - if item.category.name == "Subsystem": - if m.fits(fit): - fit.modules.append(m) - else: - if ammoName: - try: - ammo = sMkt.getItem(ammoName) - if m.isValidCharge(ammo) and m.charge is None: - m.charge = ammo - except: - pass - - if setOffline is True and m.isValidState(State.OFFLINE): - m.state = State.OFFLINE - elif m.isValidState(State.ACTIVE): - m.state = State.ACTIVE - - moduleList.append(m) - - # Recalc to get slot numbers correct for T3 cruisers - svcFit.getInstance().recalc(fit) - - for m in moduleList: - if m.fits(fit): - m.owner = fit - if not m.isValidState(m.state): - pyfalog.warning("Error: Module {0} cannot have state {1}", m, m.state) - - fit.modules.append(m) - - for droneName in droneMap: - d = Drone(sMkt.getItem(droneName)) - d.amount = droneMap[droneName] - fit.drones.append(d) - - for cargoName in cargoMap: - c = Cargo(sMkt.getItem(cargoName)) - c.amount = cargoMap[cargoName] - fit.cargo.append(c) - - return fit + return EftPort.importEft(eftString) @staticmethod def importEftCfg(shipname, contents, iportuser=None): @@ -1159,119 +910,12 @@ class Port(object): @classmethod - def exportEft(cls, fit, mutations=True, implants=False): - # EFT formatted export is split in several sections, each section is - # separated from another using 2 blank lines. Sections might have several - # sub-sections, which are separated by 1 blank line - sections = [] - - header = '[{}, {}]'.format(fit.ship.item.name, fit.name) - - # Section 1: modules, rigs, subsystems, services - modsBySlotType = {} - sFit = svcFit.getInstance() - for module in fit.modules: - modsBySlotType.setdefault(module.slot, []).append(module) - modSection = [] - offineSuffix = ' /OFFLINE' - mutants = {} # Format: {reference number: module} - mutantReference = 1 - for slotType in EFT_SLOT_ORDER: - rackLines = [] - modules = modsBySlotType.get(slotType, ()) - for module in modules: - if module.item: - mutated = bool(module.mutators) - # if module was mutated, use base item name for export - if mutated: - modName = module.baseItem.name - else: - modName = module.item.name - if mutated and mutations: - mutants[mutantReference] = module - mutationSuffix = ' [{}]'.format(mutantReference) - mutantReference += 1 - else: - mutationSuffix = '' - modOfflineSuffix = offineSuffix if module.state == State.OFFLINE else '' - if module.charge and sFit.serviceFittingOptions['exportCharges']: - rackLines.append('{}, {}{}{}'.format( - modName, module.charge.name, modOfflineSuffix, mutationSuffix)) - else: - rackLines.append('{}{}{}'.format(modName, modOfflineSuffix, mutationSuffix)) - else: - rackLines.append('[Empty {} slot]'.format( - Slot.getName(slotType).capitalize() if slotType is not None else '')) - if rackLines: - modSection.append('\n'.join(rackLines)) - if modSection: - sections.append('\n\n'.join(modSection)) - - # Section 2: drones, fighters - minionSection = [] - droneLines = [] - for drone in sorted(fit.drones, key=lambda d: d.item.name): - droneLines.append('{} x{}'.format(drone.item.name, drone.amount)) - if droneLines: - minionSection.append('\n'.join(droneLines)) - fighterLines = [] - for fighter in sorted(fit.fighters, key=lambda f: f.item.name): - fighterLines.append('{} x{}'.format(fighter.item.name, fighter.amountActive)) - if fighterLines: - minionSection.append('\n'.join(fighterLines)) - if minionSection: - sections.append('\n\n'.join(minionSection)) - - # Section 3: implants, boosters - if implants: - charSection = [] - implantLines = [] - for implant in fit.implants: - implantLines.append(implant.item.name) - if implantLines: - charSection.append('\n'.join(implantLines)) - boosterLines = [] - for booster in fit.boosters: - boosterLines.append(booster.item.name) - if boosterLines: - charSection.append('\n'.join(boosterLines)) - if charSection: - sections.append('\n\n'.join(charSection)) - - # Section 4: cargo - cargoLines = [] - for cargo in sorted( - fit.cargo, - key=lambda c: (c.item.group.category.name, c.item.group.name, c.item.name) - ): - cargoLines.append('{} x{}'.format(cargo.item.name, cargo.amount)) - if cargoLines: - sections.append('\n'.join(cargoLines)) - - # Section 5: mutated modules' details - mutationLines = [] - if mutants and mutations: - for mutantReference in sorted(mutants): - mutant = mutants[mutantReference] - mutatedAttrs = {} - for attrID, mutator in mutant.mutators.items(): - attrName = getAttributeInfo(attrID).name - mutatedAttrs[attrName] = mutator.value - mutationLines.append('[{}] {}'.format(mutantReference, mutant.baseItem.name)) - mutationLines.append(' {}'.format(mutant.mutaplasmid.item.name)) - # Round to 7th significant number to avoid exporting float errors - customAttrsLine = ', '.join( - '{} {}'.format(a, roundToPrec(mutatedAttrs[a], 7)) - for a in sorted(mutatedAttrs)) - mutationLines.append(' {}'.format(customAttrsLine)) - if mutationLines: - sections.append('\n'.join(mutationLines)) - - return '{}\n\n{}'.format(header, '\n\n\n'.join(sections)) + def exportEft(cls, fit): + return EftPort.exportEft(fit, mutations=False, implants=False) @classmethod def exportEftImps(cls, fit): - return cls.exportEft(fit, implants=True) + return EftPort.exportEft(fit, mutations=False, implants=True) @staticmethod def exportDna(fit): @@ -1478,7 +1122,8 @@ class Port(object): class PortProcessing(object): - """Port Processing class """ + """Port Processing class""" + @staticmethod def backupFits(path, iportuser): success = True From eb8fa2f259b36f73409d733a02368142bae2d9f1 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sat, 25 Aug 2018 16:03:45 +0300 Subject: [PATCH 064/110] Rework EFT importing --- service/eftPort.py | 496 +++++++++++++++++++++++++-------------------- 1 file changed, 272 insertions(+), 224 deletions(-) diff --git a/service/eftPort.py b/service/eftPort.py index de69bd966..028e7e274 100644 --- a/service/eftPort.py +++ b/service/eftPort.py @@ -23,9 +23,15 @@ import re from logbook import Logger from eos.db.gamedata.queries import getAttributeInfo +from eos.saveddata.cargo import Cargo from eos.saveddata.citadel import Citadel -from eos.saveddata.module import Module, Slot, State +from eos.saveddata.booster import Booster +from eos.saveddata.drone import Drone +from eos.saveddata.fighter import Fighter +from eos.saveddata.implant import Implant +from eos.saveddata.module import Module, State, Slot from eos.saveddata.ship import Ship +from eos.saveddata.fit import Fit from gui.utils.numberFormatter import roundToPrec from service.fit import Fit as svcFit from service.market import Market @@ -33,76 +39,74 @@ from service.market import Market pyfalog = Logger(__name__) +MODULE_CATS = ('Module', 'Subsystem', 'Structure Module') +SLOT_ORDER = (Slot.LOW, Slot.MED, Slot.HIGH, Slot.RIG, Slot.SUBSYSTEM, Slot.SERVICE) +OFFLINE_SUFFIX = ' /OFFLINE' + def fetchItem(typeName, eagerCat=True): sMkt = Market.getInstance() eager = 'group.category' if eagerCat else None try: - return sMkt.getItem(typeName, eager=eager) + item = sMkt.getItem(typeName, eager=eager) except: pyfalog.warning('EftPort: unable to fetch item "{}"'.format(typeName)) - return + return None + if sMkt.getPublicityByItem(item): + return item + else: + return None + + +def clearTail(lst): + while lst and lst[-1] is None: + del lst[-1] class EftImportError(Exception): - """Exception class emitted and consumed by EFT importer/exporter internally.""" + """Exception class emitted and consumed by EFT importer internally.""" ... -class AmountMap(dict): - - def add(self, entity, amount): - if entity not in self: - self[entity] = 0 - self[entity] += amount - - -class AbstractFit: - - def __init__(self): - self.modulesHigh = [] - self.modulesMed = [] - self.modulesLow = [] - self.rigs = [] - self.subsystems = [] - self.services = [] - self.drones = AmountMap() - self.fighters = AmountMap() - self.implants = set() - self.boosters = set() - self.cargo = AmountMap() - - # def addModule(self, m): - # modContMap = { - # Slot.HIGH: self.modulesHigh, - # Slot.MED: self.modulesMed, - # Slot.LOW: self.modulesLow, - # Slot.RIG: self.rigs, - # Slot.SUBSYSTEM: self.subsystems, - # Slot.SERVICE: self.services} - - class Section: def __init__(self): self.lines = [] - self.itemData = [] + self.itemSpecs = [] self.__itemDataCats = None @property def itemDataCats(self): if self.__itemDataCats is None: cats = set() - for itemSpec in self.itemData: + for itemSpec in self.itemSpecs: if itemSpec is None: continue cats.add(itemSpec.item.category.name) self.__itemDataCats = tuple(sorted(cats)) return self.__itemDataCats - def cleanItemDataTail(self): - while self.itemData and self.itemData[-1] is None: - del self.itemData[-1] + @property + def isModuleRack(self): + return all(i is None or i.isModule for i in self.itemSpecs) + + @property + def isImplantRack(self): + return all(i is not None and i.isImplant for i in self.itemSpecs) + + @property + def isDroneBay(self): + return all(i is not None and i.isDrone for i in self.itemSpecs) + + @property + def isFighterBay(self): + return all(i is not None and i.isFighter for i in self.itemSpecs) + + @property + def isCargoHold(self): + return ( + all(i is not None and i.isCargo for i in self.itemSpecs) and + not self.isDroneBay and not self.isFighterBay) class BaseItemSpec: @@ -114,8 +118,28 @@ class BaseItemSpec: self.typeName = typeName self.item = item + @property + def isModule(self): + return False -class ItemSpec(BaseItemSpec): + @property + def isImplant(self): + return False + + @property + def isDrone(self): + return False + + @property + def isFighter(self): + return False + + @property + def isCargo(self): + return False + + +class RegularItemSpec(BaseItemSpec): def __init__(self, typeName, chargeName=None): super().__init__(typeName) @@ -132,6 +156,17 @@ class ItemSpec(BaseItemSpec): charge = None return charge + @property + def isModule(self): + return self.item.category.name in MODULE_CATS + + @property + def isImplant(self): + return ( + self.item.category.name == 'Implant' and ( + 'implantness' in self.item.attributes or + 'boosterness' in self.item.attributes)) + class MultiItemSpec(BaseItemSpec): @@ -139,12 +174,127 @@ class MultiItemSpec(BaseItemSpec): super().__init__(typeName) self.amount = 0 + @property + def isDrone(self): + return self.item.category.name == 'Drone' + + @property + def isFighter(self): + return self.item.category.name == 'Fighter' + + @property + def isCargo(self): + return True + + +class AbstractFit: + + def __init__(self): + # Modules + self.modulesHigh = [] + self.modulesMed = [] + self.modulesLow = [] + self.rigs = [] + self.subsystems = [] + self.services = [] + # Non-modules + self.implants = [] + self.boosters = [] + self.drones = {} # Format: {item: Drone} + self.fighters = [] + self.cargo = {} # Format: {item: Cargo} + + @property + def modContMap(self): + return { + Slot.HIGH: self.modulesHigh, + Slot.MED: self.modulesMed, + Slot.LOW: self.modulesLow, + Slot.RIG: self.rigs, + Slot.SUBSYSTEM: self.subsystems, + Slot.SERVICE: self.services} + + def addModules(self, itemSpecs): + modules = [] + slotTypes = set() + for itemSpec in itemSpecs: + if itemSpec is None: + modules.append(None) + continue + m = self.__makeModule(itemSpec) + if m is None: + modules.append(None) + continue + modules.append(m) + slotTypes.add(m.slot) + clearTail(modules) + modContMap = self.modContMap + # If all the modules have same slot type, put them to appropriate + # container with stubs + if len(slotTypes) == 1: + slotType = tuple(slotTypes)[0] + modContMap[slotType].extend(modules) + # Otherwise, put just modules + else: + for m in modules: + if m is None: + continue + modContMap[m.slot].append(m) + + def addModule(self, itemSpec): + if itemSpec is None: + return + m = self.__makeModule(itemSpec) + if m is not None: + self.modContMap[m.slot].append(m) + + def __makeModule(self, itemSpec): + try: + m = Module(itemSpec.item) + except ValueError: + return None + if itemSpec.charge is not None and m.isValidCharge(itemSpec.charge): + m.charge = itemSpec.charge + if itemSpec.offline and m.isValidState(State.OFFLINE): + m.state = State.OFFLINE + elif m.isValidState(State.ACTIVE): + m.state = State.ACTIVE + return m + + def addImplant(self, itemSpec): + if itemSpec is None: + return + if 'implantness' in itemSpec.item.attributes: + self.implants.append(Implant(itemSpec.item)) + elif 'boosterness' in itemSpec.item.attributes: + self.boosters.append(Booster(itemSpec.item)) + else: + pyfalog.error('Failed to import implant: {}', itemSpec.typeName) + + def addDrone(self, itemSpec): + if itemSpec is None: + return + if itemSpec.item not in self.drones: + self.drones[itemSpec.item] = Drone(itemSpec.item) + self.drones[itemSpec.item].amount += itemSpec.amount + + def addFighter(self, itemSpec): + if itemSpec is None: + return + fighter = Fighter(itemSpec.item) + fighter.amount = itemSpec.amount + self.fighters.append(fighter) + + def addCargo(self, itemSpec): + if itemSpec is None: + return + if itemSpec.item not in self.cargo: + self.cargo[itemSpec.item] = Cargo(itemSpec.item) + self.cargo[itemSpec.item].amount += itemSpec.amount + class EftPort: - SLOT_ORDER = [Slot.LOW, Slot.MED, Slot.HIGH, Slot.RIG, Slot.SUBSYSTEM, Slot.SERVICE] - OFFLINE_SUFFIX = ' /OFFLINE' - @classmethod def exportEft(cls, fit, mutations, implants): # EFT formatted export is split in several sections, each section is @@ -163,7 +313,7 @@ class EftPort: mutants = {} # Format: {reference number: module} mutantReference = 1 - for slotType in cls.SLOT_ORDER: + for slotType in SLOT_ORDER: rackLines = [] modules = modsBySlotType.get(slotType, ()) for module in modules: @@ -180,7 +330,7 @@ class EftPort: mutantReference += 1 else: mutationSuffix = '' - modOfflineSuffix = cls.OFFLINE_SUFFIX if module.state == State.OFFLINE else '' + modOfflineSuffix = OFFLINE_SUFFIX if module.state == State.OFFLINE else '' if module.charge and sFit.serviceFittingOptions['exportCharges']: rackLines.append('{}, {}{}{}'.format( modName, module.charge.name, modOfflineSuffix, mutationSuffix)) @@ -267,16 +417,15 @@ class EftPort: aFit = AbstractFit() stubPattern = '^\[.+\]$' - modulePattern = '^(?P[^,/]+)(, (?P[^,/]+))?(?P{})?( \[(?P\d+)\])?$'.format(cls.OFFLINE_SUFFIX) + modulePattern = '^(?P[^,/]+)(, (?P[^,/]+))?(?P{})?( \[(?P\d+)\])?$'.format(OFFLINE_SUFFIX) droneCargoPattern = '^(?P[^,/]+) x(?P\d+)$' - dronebaySeen = False - fightersSeen = False + sections = [] for section in cls.__importSectionIter(lines): for line in section.lines: # Stub line if re.match(stubPattern, line): - section.itemData.append(None) + section.itemSpecs.append(None) continue # Items with quantity specifier m = re.match(droneCargoPattern, line) @@ -285,197 +434,96 @@ class EftPort: itemSpec = MultiItemSpec(m.group('typeName')) # Items which cannot be fetched are considered as stubs except EftImportError: - section.itemData.append(None) + section.itemSpecs.append(None) else: itemSpec.amount = int(m.group('amount')) - section.itemData.append(itemSpec) + section.itemSpecs.append(itemSpec) # All other items m = re.match(modulePattern, line) if m: try: - itemSpec = ItemSpec(m.group('typeName'), chargeName=m.group('chargeName')) + itemSpec = RegularItemSpec(m.group('typeName'), chargeName=m.group('chargeName')) # Items which cannot be fetched are considered as stubs except EftImportError: - section.itemData.append(None) + section.itemSpecs.append(None) else: if m.group('offline'): itemSpec.offline = True if m.group('mutation'): itemSpec.mutationIdx = int(m.group('mutation')) - section.itemData.append(itemSpec) - section.cleanItemDataTail() - # Finally, start putting items into intermediate containers - # All items in section have quantity specifier - if all(isinstance(id, MultiItemSpec) for id in section.itemData): - # Dronebay - if len(section.itemDataCats) == 1 and section.itemDataCats[0] == 'Drone' and not dronebaySeen: - for entry in section.itemData: - aFit.drones.add(entry['typeName'], entry['amount']) - dronebaySeen = True - # Fighters - elif len(section.itemDataCats) == 1 and section.itemDataCats[0] == 'Fighter' and not fightersSeen: - for entry in section.itemData: - aFit.fighters.add(entry['typeName'], entry['amount']) - fightersSeen = True - # Cargo - else: - for entry in section.itemData: - aFit.cargo.add(entry['typeName'], entry['amount']) - # All of items are normal or stubs - elif all(isinstance(id, ItemSpec) or id is None for id in section.itemData): - if len(section.itemDataCats) == 1: - if section.itemDataCats[0] in ('Module', 'Subsystem', 'Structure Module'): - slotTypes = set() - for entry in itemData: - if entry['type'] == 'stub': - continue - try: - m = Module(entry['item']) - except ValueError: - m = None - else: - slotTypes.add(m.slot) - entry['module'] = m - # If whole section uses container of the same type, - if len(slotTypes) == 1: - pass - else: - pass + section.itemSpecs.append(itemSpec) + clearTail(section.itemSpecs) + sections.append(section) - else: - pass - else: - pass - - # Mix between all types + hasDroneBay = any(s.isDroneBay for s in sections) + hasFighterBay = any(s.isFighterBay for s in sections) + for section in sections: + if section.isModuleRack: + aFit.addModules(section.itemSpecs) + elif section.isImplantRack: + for itemSpec in section.itemSpecs: + aFit.addImplant(itemSpec) + elif section.isDroneBay: + for itemSpec in section.itemSpecs: + aFit.addDrone(itemSpec) + elif section.isFighterBay: + for itemSpec in section.itemSpecs: + aFit.addFighter(itemSpec) + elif section.isCargoHold: + for itemSpec in section.itemSpecs: + aFit.addCargo(itemSpec) + # Mix between different kinds of item specs (can happen when some + # blank lines are removed) else: - pass + for itemSpec in section.itemSpecs: + if itemSpec is None: + continue + if itemSpec.isModule: + aFit.addModule(itemSpec) + elif itemSpec.isImplant: + aFit.addImplant(itemSpec) + elif itemSpec.isDrone and not hasDroneBay: + aFit.addDrone(itemSpec) + elif itemSpec.isFighter and not hasFighterBay: + aFit.addFighter(itemSpec) + elif itemSpec.isCargo: + aFit.addCargo(itemSpec) - - - # maintain map of drones and their quantities - droneMap = {} - cargoMap = {} - moduleList = [] - for i in range(1, len(lines)): - ammoName = None - extraAmount = None - - line = lines[i].strip() - if not line: + # Subsystems first because they modify slot amount + for subsystem in aFit.subsystems: + if subsystem is None: continue - - setOffline = line.endswith(offineSuffix) - if setOffline is True: - # remove offline suffix from line - line = line[:len(line) - len(offineSuffix)] - - modAmmo = line.split(",") - # matches drone and cargo with x{qty} - modExtra = modAmmo[0].split(" x") - - if len(modAmmo) == 2: - # line with a module and ammo - ammoName = modAmmo[1].strip() - modName = modAmmo[0].strip() - elif len(modExtra) == 2: - # line with drone/cargo and qty - extraAmount = modExtra[1].strip() - modName = modExtra[0].strip() - else: - # line with just module - modName = modExtra[0].strip() - - try: - # get item information. If we are on a Drone/Cargo line, throw out cargo - item = sMkt.getItem(modName, eager="group.category") - except: - # if no data can be found (old names) - pyfalog.warning("no data can be found (old names)") - continue - - if not item.published: - continue - - if item.category.name == "Drone": - extraAmount = int(extraAmount) if extraAmount is not None else 1 - if modName not in droneMap: - droneMap[modName] = 0 - droneMap[modName] += extraAmount - elif item.category.name == "Fighter": - extraAmount = int(extraAmount) if extraAmount is not None else 1 - fighterItem = Fighter(item) - if extraAmount > fighterItem.fighterSquadronMaxSize: # Amount bigger then max fightergroup size - extraAmount = fighterItem.fighterSquadronMaxSize - if fighterItem.fits(fit): - fit.fighters.append(fighterItem) - - if len(modExtra) == 2 and item.category.name != "Drone" and item.category.name != "Fighter": - extraAmount = int(extraAmount) if extraAmount is not None else 1 - if modName not in cargoMap: - cargoMap[modName] = 0 - cargoMap[modName] += extraAmount - elif item.category.name == "Implant": - if "implantness" in item.attributes: - fit.implants.append(Implant(item)) - elif "boosterness" in item.attributes: - fit.boosters.append(Booster(item)) - else: - pyfalog.error("Failed to import implant: {0}", line) - # elif item.category.name == "Subsystem": - # try: - # subsystem = Module(item) - # except ValueError: - # continue - # - # if subsystem.fits(fit): - # fit.modules.append(subsystem) - else: - try: - m = Module(item) - except ValueError: - continue - # Add subsystems before modules to make sure T3 cruisers have subsystems installed - if item.category.name == "Subsystem": - if m.fits(fit): - fit.modules.append(m) - else: - if ammoName: - try: - ammo = sMkt.getItem(ammoName) - if m.isValidCharge(ammo) and m.charge is None: - m.charge = ammo - except: - pass - - if setOffline is True and m.isValidState(State.OFFLINE): - m.state = State.OFFLINE - elif m.isValidState(State.ACTIVE): - m.state = State.ACTIVE - - moduleList.append(m) - - # Recalc to get slot numbers correct for T3 cruisers + if subsystem.fits(fit): + subsystem.owner = fit + fit.modules.append(subsystem) svcFit.getInstance().recalc(fit) - for m in moduleList: - if m.fits(fit): - m.owner = fit - if not m.isValidState(m.state): - pyfalog.warning("Error: Module {0} cannot have state {1}", m, m.state) - - fit.modules.append(m) - - for droneName in droneMap: - d = Drone(sMkt.getItem(droneName)) - d.amount = droneMap[droneName] - fit.drones.append(d) - - for cargoName in cargoMap: - c = Cargo(sMkt.getItem(cargoName)) - c.amount = cargoMap[cargoName] - fit.cargo.append(c) - + # Other stuff + for modRack in ( + aFit.rigs, + aFit.services, + aFit.modulesHigh, + aFit.modulesMed, + aFit.modulesLow, + ): + for m in modRack: + if m is None: + continue + if m.fits(fit): + m.owner = fit + if not m.isValidState(m.state): + pyfalog.warning('EftPort.importEft: module {} cannot have state {}', m, m.state) + fit.modules.append(m) + for implant in aFit.implants: + fit.implants.append(implant) + for booster in aFit.boosters: + fit.boosters.append(booster) + for drone in aFit.drones.values(): + fit.drones.append(drone) + for fighter in aFit.fighters: + fit.fighters.append(fighter) + for cargo in aFit.cargo.values(): + fit.cargo.append(cargo) return fit @staticmethod From 44aed364b70daab42217dce9331a829a91d5c72c Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sat, 25 Aug 2018 16:21:28 +0300 Subject: [PATCH 065/110] Fix oversight which broke dronebay/fighterbay/cargo detection --- service/eftPort.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/service/eftPort.py b/service/eftPort.py index 028e7e274..7c3df50e3 100644 --- a/service/eftPort.py +++ b/service/eftPort.py @@ -438,6 +438,7 @@ class EftPort: else: itemSpec.amount = int(m.group('amount')) section.itemSpecs.append(itemSpec) + continue # All other items m = re.match(modulePattern, line) if m: @@ -452,6 +453,7 @@ class EftPort: if m.group('mutation'): itemSpec.mutationIdx = int(m.group('mutation')) section.itemSpecs.append(itemSpec) + continue clearTail(section.itemSpecs) sections.append(section) @@ -524,6 +526,7 @@ class EftPort: fit.fighters.append(fighter) for cargo in aFit.cargo.values(): fit.cargo.append(cargo) + return fit @staticmethod From 93f1a18b37aeafcebf1c2a423dcd2c4feb7fd251 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sat, 25 Aug 2018 17:42:19 +0300 Subject: [PATCH 066/110] Respect spaces between the modules during import --- eos/effectHandlerHelpers.py | 4 ++++ service/eftPort.py | 43 +++++++++++++++++++++++++------------ 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/eos/effectHandlerHelpers.py b/eos/effectHandlerHelpers.py index f890ae0ed..927958702 100644 --- a/eos/effectHandlerHelpers.py +++ b/eos/effectHandlerHelpers.py @@ -113,6 +113,7 @@ class HandledList(list): class HandledModuleList(HandledList): + def append(self, mod): emptyPosition = float("Inf") for i in range(len(self)): @@ -130,6 +131,9 @@ class HandledModuleList(HandledList): self.remove(mod) return + self.appendIgnoreEmpty(mod) + + def appendIgnoreEmpty(self, mod): mod.position = len(self) HandledList.append(self, mod) if mod.isInvalid: diff --git a/service/eftPort.py b/service/eftPort.py index 7c3df50e3..ca7cc1be6 100644 --- a/service/eftPort.py +++ b/service/eftPort.py @@ -205,7 +205,7 @@ class AbstractFit: self.cargo = {} # Format: {item: Cargo} @property - def modContMap(self): + def __slotContainerMap(self): return { Slot.HIGH: self.modulesHigh, Slot.MED: self.modulesMed, @@ -214,6 +214,17 @@ class AbstractFit: Slot.SUBSYSTEM: self.subsystems, Slot.SERVICE: self.services} + def getContainerBySlot(self, slotType): + return self.__slotContainerMap.get(slotType) + + def getSlotByContainer(self, container): + slotType = None + for k, v in self.__slotContainerMap.items(): + if v is container: + slotType = k + break + return slotType + def addModules(self, itemSpecs): modules = [] slotTypes = set() @@ -228,25 +239,24 @@ class AbstractFit: modules.append(m) slotTypes.add(m.slot) clearTail(modules) - modContMap = self.modContMap # If all the modules have same slot type, put them to appropriate # container with stubs if len(slotTypes) == 1: slotType = tuple(slotTypes)[0] - modContMap[slotType].extend(modules) + self.getContainerBySlot(slotType).extend(modules) # Otherwise, put just modules else: for m in modules: if m is None: continue - modContMap[m.slot].append(m) + self.getContainerBySlot(m.slot).append(m) def addModule(self, itemSpec): if itemSpec is None: return m = self.__makeModule(itemSpec) if m is not None: - self.modContMap[m.slot].append(m) + self.getContainerBySlot(m.slot).append(m) def __makeModule(self, itemSpec): try: @@ -492,12 +502,15 @@ class EftPort: aFit.addCargo(itemSpec) # Subsystems first because they modify slot amount - for subsystem in aFit.subsystems: - if subsystem is None: - continue - if subsystem.fits(fit): - subsystem.owner = fit - fit.modules.append(subsystem) + for m in aFit.subsystems: + if m is None: + dummy = Module.buildEmpty(aFit.getSlotByContainer(aFit.subsystems)) + dummy.owner = fit + fit.modules.appendIgnoreEmpty(dummy) + elif m.fits(fit): + m.owner = fit + pyfalog.error('kurwa {}'.format(type(fit.modules))) + fit.modules.appendIgnoreEmpty(m) svcFit.getInstance().recalc(fit) # Other stuff @@ -510,12 +523,14 @@ class EftPort: ): for m in modRack: if m is None: - continue - if m.fits(fit): + dummy = Module.buildEmpty(aFit.getSlotByContainer(modRack)) + dummy.owner = fit + fit.modules.appendIgnoreEmpty(dummy) + elif m.fits(fit): m.owner = fit if not m.isValidState(m.state): pyfalog.warning('EftPort.importEft: module {} cannot have state {}', m, m.state) - fit.modules.append(m) + fit.modules.appendIgnoreEmpty(m) for implant in aFit.implants: fit.implants.append(implant) for booster in aFit.boosters: From f2c2e2e65a7aebc2f1c66fba3a166a31a296e8bd Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sat, 25 Aug 2018 19:27:03 +0300 Subject: [PATCH 067/110] Implement mutated attributes import --- eos/db/gamedata/queries.py | 15 ++++ service/eftPort.py | 142 +++++++++++++++++++++++++++++-------- service/port.py | 1 - 3 files changed, 126 insertions(+), 32 deletions(-) diff --git a/eos/db/gamedata/queries.py b/eos/db/gamedata/queries.py index 90e757788..c6ee5c70b 100644 --- a/eos/db/gamedata/queries.py +++ b/eos/db/gamedata/queries.py @@ -396,6 +396,21 @@ def getAbyssalTypes(): return set([r.resultingTypeID for r in gamedata_session.query(DynamicItem.resultingTypeID).distinct()]) +@cachedQuery(1, "itemID") +def getDynamicItem(itemID, eager=None): + try: + if isinstance(itemID, int): + if eager is None: + result = gamedata_session.query(DynamicItem).filter(DynamicItem.ID == itemID).one() + else: + result = gamedata_session.query(DynamicItem).options(*processEager(eager)).filter(DynamicItem.ID == itemID).one() + else: + raise TypeError("Need integer as argument") + except exc.NoResultFound: + result = None + return result + + def getRequiredFor(itemID, attrMapping): Attribute1 = aliased(Attribute) Attribute2 = aliased(Attribute) diff --git a/service/eftPort.py b/service/eftPort.py index ca7cc1be6..c5b1da145 100644 --- a/service/eftPort.py +++ b/service/eftPort.py @@ -22,7 +22,7 @@ import re from logbook import Logger -from eos.db.gamedata.queries import getAttributeInfo +from eos.db.gamedata.queries import getAttributeInfo, getDynamicItem from eos.saveddata.cargo import Cargo from eos.saveddata.citadel import Citadel from eos.saveddata.booster import Booster @@ -44,7 +44,7 @@ SLOT_ORDER = (Slot.LOW, Slot.MED, Slot.HIGH, Slot.RIG, Slot.SUBSYSTEM, Slot.SERV OFFLINE_SUFFIX = ' /OFFLINE' -def fetchItem(typeName, eagerCat=True): +def fetchItem(typeName, eagerCat=False): sMkt = Market.getInstance() eager = 'group.category' if eagerCat else None try: @@ -150,7 +150,7 @@ class RegularItemSpec(BaseItemSpec): def __fetchCharge(self, chargeName): if chargeName: charge = fetchItem(chargeName, eagerCat=True) - if charge.category.name != 'Charge': + if not charge or charge.category.name != 'Charge': charge = None else: charge = None @@ -203,6 +203,8 @@ class AbstractFit: self.drones = {} # Format: {item: Drone} self.fighters = [] self.cargo = {} # Format: {item: Cargo} + # Other stuff + self.mutations = {} # Format: {reference: (mutaplamid item, {attr ID: attr value})} @property def __slotContainerMap(self): @@ -259,10 +261,28 @@ class AbstractFit: self.getContainerBySlot(m.slot).append(m) def __makeModule(self, itemSpec): - try: - m = Module(itemSpec.item) - except ValueError: - return None + # Mutate item if needed + m = None + if itemSpec.mutationIdx in self.mutations: + mutaItem, mutaAttrs = self.mutations[itemSpec.mutationIdx] + mutaplasmid = getDynamicItem(mutaItem.ID) + if mutaplasmid: + try: + m = Module(mutaplasmid.resultingItem, itemSpec.item, mutaplasmid) + except ValueError: + pass + else: + for attrID, mutator in m.mutators.items(): + if attrID in mutaAttrs: + mutator.value = mutaAttrs[attrID] + # If we still don't have item (item is not mutated or we + # failed to construct mutated item), try to make regular item + if m is None: + try: + m = Module(itemSpec.item) + except ValueError: + return None + if itemSpec.charge is not None and m.isValidCharge(itemSpec.charge): m.charge = itemSpec.charge if itemSpec.offline and m.isValidState(State.OFFLINE): @@ -425,10 +445,13 @@ class EftPort: return aFit = AbstractFit() + aFit.mutations = cls.__getMutationData(lines) + pyfalog.error('{}'.format(aFit.mutations)) + nameChars = '[^,/\[\]]' # Characters which are allowed to be used in name stubPattern = '^\[.+\]$' - modulePattern = '^(?P[^,/]+)(, (?P[^,/]+))?(?P{})?( \[(?P\d+)\])?$'.format(OFFLINE_SUFFIX) - droneCargoPattern = '^(?P[^,/]+) x(?P\d+)$' + modulePattern = '^(?P{0}+)(, (?P{0}+))?(?P{1})?( \[(?P\d+)\])?$'.format(nameChars, OFFLINE_SUFFIX) + droneCargoPattern = '^(?P{}+) x(?P\d+)$'.format(nameChars) sections = [] for section in cls.__importSectionIter(lines): @@ -467,6 +490,7 @@ class EftPort: clearTail(section.itemSpecs) sections.append(section) + hasDroneBay = any(s.isDroneBay for s in sections) hasFighterBay = any(s.isFighterBay for s in sections) for section in sections: @@ -555,28 +579,61 @@ class EftPort: del lines[-1] return lines - @classmethod - def __createFit(cls, lines): - """Create fit and set top-level entity (ship or citadel).""" - fit = Fit() - header = lines.pop(0) - m = re.match('\[(?P[\w\s]+), (?P.+)\]', header) - if not m: - pyfalog.warning('EftPort.importEft: corrupted fit header') - raise EftImportError - shipType = m.group('shipType').strip() - fitName = m.group('fitName').strip() - try: - ship = fetchItem(shipType, eagerCat=False) - try: - fit.ship = Ship(ship) - except ValueError: - fit.ship = Citadel(ship) - fit.name = fitName - except: - pyfalog.warning('EftPort.importEft: exception caught when parsing header') - raise EftImportError - return fit + @staticmethod + def __getMutationData(lines): + data = {} + consumedIndices = set() + for i in range(len(lines)): + line = lines[i] + m = re.match('^\[(?P\d+)\]', line) + if m: + ref = int(m.group('ref')) + # Attempt to apply mutation is useless w/o mutaplasmid, so skip it + # altogether if we have no info on it + try: + mutaName = lines[i + 1] + except IndexError: + continue + else: + consumedIndices.add(i) + consumedIndices.add(i + 1) + # Get custom attribute values + mutaAttrs = {} + try: + mutaAttrsLine = lines[i + 2] + except IndexError: + pass + else: + consumedIndices.add(i + 2) + pairs = [p.strip() for p in mutaAttrsLine.split(',')] + for pair in pairs: + try: + attrName, value = pair.split(' ') + except ValueError: + continue + try: + value = float(value) + except (ValueError, TypeError): + continue + attrInfo = getAttributeInfo(attrName.strip()) + if attrInfo is None: + continue + mutaAttrs[attrInfo.ID] = value + mutaItem = fetchItem(mutaName) + if mutaItem is None: + continue + data[ref] = (mutaItem, mutaAttrs) + # If we got here, we have seen at least correct reference line and + # mutaplasmid name line + i += 2 + # Bonus points for seeing correct attrs line. Worst case we + # will have to scan it once again + if mutaAttrs: + i += 1 + # Cleanup the lines from mutaplasmid info + for i in sorted(consumedIndices, reverse=True): + del lines[i] + return data @staticmethod def __importSectionIter(lines): @@ -590,3 +647,26 @@ class EftPort: section.lines.append(line) if section.lines: yield section + + @classmethod + def __createFit(cls, lines): + """Create fit and set top-level entity (ship or citadel).""" + fit = Fit() + header = lines.pop(0) + m = re.match('\[(?P[\w\s]+), (?P.+)\]', header) + if not m: + pyfalog.warning('EftPort.importEft: corrupted fit header') + raise EftImportError + shipType = m.group('shipType').strip() + fitName = m.group('fitName').strip() + try: + ship = fetchItem(shipType) + try: + fit.ship = Ship(ship) + except ValueError: + fit.ship = Citadel(ship) + fit.name = fitName + except: + pyfalog.warning('EftPort.importEft: exception caught when parsing header') + raise EftImportError + return fit diff --git a/service/port.py b/service/port.py index bf1ff4f90..1337825c8 100644 --- a/service/port.py +++ b/service/port.py @@ -908,7 +908,6 @@ class Port(object): return fit_list - @classmethod def exportEft(cls, fit): return EftPort.exportEft(fit, mutations=False, implants=False) From 18ee37d8fd8af16a23c7ad2a99f2c3001217771d Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sat, 25 Aug 2018 19:30:48 +0300 Subject: [PATCH 068/110] Fix small oversight --- service/port.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/service/port.py b/service/port.py index 1337825c8..810d9b919 100644 --- a/service/port.py +++ b/service/port.py @@ -51,7 +51,7 @@ from utils.strfunctions import sequential_rep, replace_ltgt from abc import ABCMeta, abstractmethod from service.esi import Esi -from service.eftPort import EftPort +from service.eftPort import EftPort, SLOT_ORDER as EFT_SLOT_ORDER from collections import OrderedDict From ebe0efac8185b51efdb91b237691e4482a2568d7 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 25 Aug 2018 17:24:08 -0400 Subject: [PATCH 069/110] First bit of work for GUI support for abyssal export. --- gui/copySelectDialog.py | 74 +++++++++++++++++++++++++++++------------ gui/mainFrame.py | 22 ++++++------ service/eftPort.py | 27 ++++++++++++--- service/port.py | 4 +-- 4 files changed, 88 insertions(+), 39 deletions(-) diff --git a/gui/copySelectDialog.py b/gui/copySelectDialog.py index 9f5291026..9fd2c7e21 100644 --- a/gui/copySelectDialog.py +++ b/gui/copySelectDialog.py @@ -20,41 +20,59 @@ # noinspection PyPackageRequirements import wx +from service.eftPort import EFT_OPTIONS class CopySelectDialog(wx.Dialog): copyFormatEft = 0 - copyFormatEftImps = 1 - copyFormatXml = 2 - copyFormatDna = 3 - copyFormatEsi = 4 - copyFormatMultiBuy = 5 - copyFormatEfs = 6 + copyFormatXml = 1 + copyFormatDna = 2 + copyFormatEsi = 3 + copyFormatMultiBuy = 4 + copyFormatEfs = 5 def __init__(self, parent): wx.Dialog.__init__(self, parent, id=wx.ID_ANY, title="Select a format", size=(-1, -1), style=wx.DEFAULT_DIALOG_STYLE) mainSizer = wx.BoxSizer(wx.VERTICAL) - copyFormats = ["EFT", "EFT (Implants)", "XML", "DNA", "ESI", "MultiBuy", "EFS"] - copyFormatTooltips = {CopySelectDialog.copyFormatEft: "EFT text format", - CopySelectDialog.copyFormatEftImps: "EFT text format", - CopySelectDialog.copyFormatXml: "EVE native XML format", - CopySelectDialog.copyFormatDna: "A one-line text format", - CopySelectDialog.copyFormatEsi: "A JSON format used for ESI", - CopySelectDialog.copyFormatMultiBuy: "MultiBuy text format", - CopySelectDialog.copyFormatEfs: "JSON data format used by EFS"} - selector = wx.RadioBox(self, wx.ID_ANY, label="Copy to the clipboard using:", choices=copyFormats, - style=wx.RA_SPECIFY_ROWS) - selector.Bind(wx.EVT_RADIOBOX, self.Selected) - for format, tooltip in copyFormatTooltips.items(): - selector.SetItemToolTip(format, tooltip) + self.copyFormats = { + "EFT": CopySelectDialog.copyFormatEft, + "XML": CopySelectDialog.copyFormatXml, + "DNA": CopySelectDialog.copyFormatDna, + "ESI": CopySelectDialog.copyFormatEsi, + "MultiBuy": CopySelectDialog.copyFormatMultiBuy, + "EFS": CopySelectDialog.copyFormatEfs + } + + for i, format in enumerate(self.copyFormats.keys()): + if i == 0: + rdo = wx.RadioButton(self, wx.ID_ANY, format, style=wx.RB_GROUP) + else: + rdo = wx.RadioButton(self, wx.ID_ANY, format) + rdo.Bind(wx.EVT_RADIOBUTTON, self.Selected) + mainSizer.Add(rdo, 0, wx.EXPAND | wx.ALL, 5) self.copyFormat = CopySelectDialog.copyFormatEft - selector.SetSelection(self.copyFormat) - mainSizer.Add(selector, 0, wx.EXPAND | wx.ALL, 5) + # some sizer magic to deal with https://github.com/wxWidgets/Phoenix/issues/974 + self.box1 = wx.StaticBox(self, -1, "EFT Options") + self.bsizer1 = wx.BoxSizer(wx.VERTICAL) + self.bsizer2 = wx.BoxSizer(wx.VERTICAL) + self.bsizer1.AddSpacer(10) + self.bsizer1.Add(self.bsizer2, 1, wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT | wx.BOTTOM, 10) + + self.options = {} + + for x, v in EFT_OPTIONS.items(): + ch = wx.CheckBox(self.box1, -1, v['name']) + self.options[x] = ch + self.bsizer2.Add(ch, 1, wx.EXPAND) + + self.box1.SetSizer(self.bsizer1) + + mainSizer.Add(self.box1, 0, wx.EXPAND | wx.ALL, 5) buttonSizer = self.CreateButtonSizer(wx.OK | wx.CANCEL) if buttonSizer: mainSizer.Add(buttonSizer, 0, wx.EXPAND | wx.ALL, 5) @@ -64,7 +82,19 @@ class CopySelectDialog(wx.Dialog): self.Center() def Selected(self, event): - self.copyFormat = event.GetSelection() + obj = event.GetEventObject() + format = obj.GetLabel() + self.box1.Show(format == "EFT") + self.Fit() + self.copyFormat = self.copyFormats[format] def GetSelected(self): return self.copyFormat + + def GetOptions(self): + i = 0 + for x, v in self.options.items(): + if v.IsChecked(): + i = i ^ x.value + return i + diff --git a/gui/mainFrame.py b/gui/mainFrame.py index 9bd02feee..ba6715908 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -703,31 +703,31 @@ class MainFrame(wx.Frame): else: self.marketBrowser.search.Focus() - def clipboardEft(self): + def clipboardEft(self, options): fit = db_getFit(self.getActiveFit()) - toClipboard(Port.exportEft(fit)) + toClipboard(Port.exportEft(fit, options)) - def clipboardEftImps(self): + def clipboardEftImps(self, options): fit = db_getFit(self.getActiveFit()) toClipboard(Port.exportEftImps(fit)) - def clipboardDna(self): + def clipboardDna(self, options): fit = db_getFit(self.getActiveFit()) toClipboard(Port.exportDna(fit)) - def clipboardEsi(self): + def clipboardEsi(self, options): fit = db_getFit(self.getActiveFit()) toClipboard(Port.exportESI(fit)) - def clipboardXml(self): + def clipboardXml(self, options): fit = db_getFit(self.getActiveFit()) toClipboard(Port.exportXml(None, fit)) - def clipboardMultiBuy(self): + def clipboardMultiBuy(self, options): fit = db_getFit(self.getActiveFit()) toClipboard(Port.exportMultiBuy(fit)) - def clipboardEfs(self): + def clipboardEfs(self, options): fit = db_getFit(self.getActiveFit()) toClipboard(EfsPort.exportEfs(fit, 0)) @@ -742,7 +742,7 @@ class MainFrame(wx.Frame): def exportToClipboard(self, event): CopySelectDict = {CopySelectDialog.copyFormatEft: self.clipboardEft, - CopySelectDialog.copyFormatEftImps: self.clipboardEftImps, + #CopySelectDialog.copyFormatEftImps: self.clipboardEftImps, CopySelectDialog.copyFormatXml: self.clipboardXml, CopySelectDialog.copyFormatDna: self.clipboardDna, CopySelectDialog.copyFormatEsi: self.clipboardEsi, @@ -751,8 +751,8 @@ class MainFrame(wx.Frame): dlg = CopySelectDialog(self) dlg.ShowModal() selected = dlg.GetSelected() - - CopySelectDict[selected]() + options = dlg.GetOptions() + CopySelectDict[selected](options) try: dlg.Destroy() diff --git a/service/eftPort.py b/service/eftPort.py index c5b1da145..775c89cfa 100644 --- a/service/eftPort.py +++ b/service/eftPort.py @@ -35,14 +35,33 @@ from eos.saveddata.fit import Fit from gui.utils.numberFormatter import roundToPrec from service.fit import Fit as svcFit from service.market import Market +from enum import Enum pyfalog = Logger(__name__) + +class Options(Enum): + IMPLANTS = 1 + MUTATIONS = 2 + + MODULE_CATS = ('Module', 'Subsystem', 'Structure Module') SLOT_ORDER = (Slot.LOW, Slot.MED, Slot.HIGH, Slot.RIG, Slot.SUBSYSTEM, Slot.SERVICE) OFFLINE_SUFFIX = ' /OFFLINE' +EFT_OPTIONS = { + Options.IMPLANTS: { + "name": "Implants", + "description": "Exports implants" + }, + Options.MUTATIONS: { + "name": "Abyssal", + "description": "Exports Abyssal stats" + } + # 4: [] +} + def fetchItem(typeName, eagerCat=False): sMkt = Market.getInstance() @@ -326,7 +345,7 @@ class AbstractFit: class EftPort: @classmethod - def exportEft(cls, fit, mutations, implants): + def exportEft(cls, fit, options): # EFT formatted export is split in several sections, each section is # separated from another using 2 blank lines. Sections might have several # sub-sections, which are separated by 1 blank line @@ -354,7 +373,7 @@ class EftPort: modName = module.baseItem.name else: modName = module.item.name - if mutated and mutations: + if mutated and options & Options.MUTATIONS.value: mutants[mutantReference] = module mutationSuffix = ' [{}]'.format(mutantReference) mutantReference += 1 @@ -390,7 +409,7 @@ class EftPort: sections.append('\n\n'.join(minionSection)) # Section 3: implants, boosters - if implants: + if options & Options.IMPLANTS.value: charSection = [] implantLines = [] for implant in fit.implants: @@ -417,7 +436,7 @@ class EftPort: # Section 5: mutated modules' details mutationLines = [] - if mutants and mutations: + if mutants and options & Options.MUTATIONS.value: for mutantReference in sorted(mutants): mutant = mutants[mutantReference] mutatedAttrs = {} diff --git a/service/port.py b/service/port.py index 810d9b919..7e7ec7aea 100644 --- a/service/port.py +++ b/service/port.py @@ -909,8 +909,8 @@ class Port(object): return fit_list @classmethod - def exportEft(cls, fit): - return EftPort.exportEft(fit, mutations=False, implants=False) + def exportEft(cls, fit, options): + return EftPort.exportEft(fit, options) @classmethod def exportEftImps(cls, fit): From c530660132e8f57d6c89910b1d909fa4ce08ec38 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 25 Aug 2018 19:01:49 -0400 Subject: [PATCH 070/110] Save last export setting --- gui/copySelectDialog.py | 14 +++++++++++--- gui/mainFrame.py | 5 +++++ service/eftPort.py | 4 ++-- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/gui/copySelectDialog.py b/gui/copySelectDialog.py index 9fd2c7e21..d130b3174 100644 --- a/gui/copySelectDialog.py +++ b/gui/copySelectDialog.py @@ -21,6 +21,7 @@ # noinspection PyPackageRequirements import wx from service.eftPort import EFT_OPTIONS +from service.settings import SettingsProvider class CopySelectDialog(wx.Dialog): @@ -36,6 +37,8 @@ class CopySelectDialog(wx.Dialog): style=wx.DEFAULT_DIALOG_STYLE) mainSizer = wx.BoxSizer(wx.VERTICAL) + self.settings = SettingsProvider.getInstance().getSettings("pyfaExport", {"format": 0, "options": 0}) + self.copyFormats = { "EFT": CopySelectDialog.copyFormatEft, "XML": CopySelectDialog.copyFormatXml, @@ -51,10 +54,11 @@ class CopySelectDialog(wx.Dialog): else: rdo = wx.RadioButton(self, wx.ID_ANY, format) rdo.Bind(wx.EVT_RADIOBUTTON, self.Selected) + if self.settings['format'] == self.copyFormats[format]: + rdo.SetValue(True) + self.copyFormat = self.copyFormats[format] mainSizer.Add(rdo, 0, wx.EXPAND | wx.ALL, 5) - self.copyFormat = CopySelectDialog.copyFormatEft - # some sizer magic to deal with https://github.com/wxWidgets/Phoenix/issues/974 self.box1 = wx.StaticBox(self, -1, "EFT Options") self.bsizer1 = wx.BoxSizer(wx.VERTICAL) @@ -68,6 +72,8 @@ class CopySelectDialog(wx.Dialog): for x, v in EFT_OPTIONS.items(): ch = wx.CheckBox(self.box1, -1, v['name']) self.options[x] = ch + if self.settings['options'] & x: + ch.SetValue(True) self.bsizer2.Add(ch, 1, wx.EXPAND) self.box1.SetSizer(self.bsizer1) @@ -77,6 +83,8 @@ class CopySelectDialog(wx.Dialog): if buttonSizer: mainSizer.Add(buttonSizer, 0, wx.EXPAND | wx.ALL, 5) + self.box1.Show(self.GetSelected() == CopySelectDialog.copyFormatEft) + self.SetSizer(mainSizer) self.Fit() self.Center() @@ -95,6 +103,6 @@ class CopySelectDialog(wx.Dialog): i = 0 for x, v in self.options.items(): if v.IsChecked(): - i = i ^ x.value + i = i ^ x return i diff --git a/gui/mainFrame.py b/gui/mainFrame.py index ba6715908..c89914e44 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -752,6 +752,11 @@ class MainFrame(wx.Frame): dlg.ShowModal() selected = dlg.GetSelected() options = dlg.GetOptions() + + settings = SettingsProvider.getInstance().getSettings("pyfaExport") + settings["format"] = selected + settings["options"] = options + CopySelectDict[selected](options) try: diff --git a/service/eftPort.py b/service/eftPort.py index 775c89cfa..dfab8312d 100644 --- a/service/eftPort.py +++ b/service/eftPort.py @@ -51,11 +51,11 @@ SLOT_ORDER = (Slot.LOW, Slot.MED, Slot.HIGH, Slot.RIG, Slot.SUBSYSTEM, Slot.SERV OFFLINE_SUFFIX = ' /OFFLINE' EFT_OPTIONS = { - Options.IMPLANTS: { + Options.IMPLANTS.value: { "name": "Implants", "description": "Exports implants" }, - Options.MUTATIONS: { + Options.MUTATIONS.value: { "name": "Abyssal", "description": "Exports Abyssal stats" } From a1071715430828ebe5881e826ec5c923b6422ce4 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 25 Aug 2018 19:24:41 -0400 Subject: [PATCH 071/110] Fix for #1712 - instead of adding module (which is a simple append), we must replace module (where we give it a position) --- gui/fitCommands/calc/fitRemoveModule.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gui/fitCommands/calc/fitRemoveModule.py b/gui/fitCommands/calc/fitRemoveModule.py index 79ae52198..5134f2f1b 100644 --- a/gui/fitCommands/calc/fitRemoveModule.py +++ b/gui/fitCommands/calc/fitRemoveModule.py @@ -48,11 +48,11 @@ class FitRemoveModuleCommand(wx.Command): def Undo(self): pyfalog.debug("Reapplying {} removed module(s) for {}", len(self.modCache), self.fitID) - from gui.fitCommands.calc.fitAddModule import FitAddModuleCommand # avoids circular import + from gui.fitCommands.calc.fitReplaceModule import FitReplaceModuleCommand # avoids circular import for mod in self.modCache: pyfalog.debug(" -- {}", mod) # todo, send the state and charge? - cmd = FitAddModuleCommand(self.fitID, mod.itemID, mod.mutaplasmidID, mod.baseID) + cmd = FitReplaceModuleCommand(self.fitID, mod.modPosition, mod.itemID) cmd.Do() cmd.module.state = mod.state cmd.module.charge = mod.charge From c2b7cc00dd914ad031b478bf61583a2801012d73 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 25 Aug 2018 19:28:34 -0400 Subject: [PATCH 072/110] Fix for #1713 - should look at Fit.processors, not Fit.__class__.processors - artifact from a rewrite --- service/fit.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/service/fit.py b/service/fit.py index ae5a59eb8..b96cd3aa2 100644 --- a/service/fit.py +++ b/service/fit.py @@ -217,8 +217,8 @@ class Fit(FitDeprecated): eos.db.remove(fit) - if fitID in Fit.__class__.processors: - del Fit.__class__.processors[fitID] + if fitID in Fit.processors: + del Fit.processors[fitID] pyfalog.debug(" Need to refresh {} fits: {}", len(refreshFits), refreshFits) for fit in refreshFits: From e7d846063df785465d212115dd3cdd9bca19577a Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 25 Aug 2018 19:33:30 -0400 Subject: [PATCH 073/110] Fix for #1714 - was sending in the entire module, not just the position --- gui/fitCommands/guiCargoToModule.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/fitCommands/guiCargoToModule.py b/gui/fitCommands/guiCargoToModule.py index 506c47001..018014081 100644 --- a/gui/fitCommands/guiCargoToModule.py +++ b/gui/fitCommands/guiCargoToModule.py @@ -38,7 +38,7 @@ class GuiCargoToModuleCommand(wx.Command): # We're trying to move a charge from cargo to a slot. Use SetCharge command (don't respect move vs copy) if sFit.isAmmo(cargo.item.ID): - result = self.internal_history.Submit(FitSetChargeCommand(self.fitID, [module], cargo.item.ID)) + result = self.internal_history.Submit(FitSetChargeCommand(self.fitID, [module.modPosition], cargo.item.ID)) else: pyfalog.debug("Moving cargo item to module for fit ID: {0}", self.fitID) From 3faa57f39aa2bedf80bf3df6754face752381853 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sun, 26 Aug 2018 11:10:14 +0300 Subject: [PATCH 074/110] Remove debugging log requests --- service/eftPort.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/service/eftPort.py b/service/eftPort.py index dfab8312d..01adfc6ec 100644 --- a/service/eftPort.py +++ b/service/eftPort.py @@ -465,7 +465,6 @@ class EftPort: aFit = AbstractFit() aFit.mutations = cls.__getMutationData(lines) - pyfalog.error('{}'.format(aFit.mutations)) nameChars = '[^,/\[\]]' # Characters which are allowed to be used in name stubPattern = '^\[.+\]$' @@ -552,7 +551,6 @@ class EftPort: fit.modules.appendIgnoreEmpty(dummy) elif m.fits(fit): m.owner = fit - pyfalog.error('kurwa {}'.format(type(fit.modules))) fit.modules.appendIgnoreEmpty(m) svcFit.getInstance().recalc(fit) From 0a47fba10767f381b48edd504d24e6cc542ee1ae Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Tue, 28 Aug 2018 19:00:39 +0300 Subject: [PATCH 075/110] Move import/export facilities to their own folder --- gui/copySelectDialog.py | 2 +- gui/esiFittings.py | 2 +- gui/mainFrame.py | 3 +-- service/port/__init__.py | 2 ++ service/{efsPort.py => port/efs.py} | 0 service/{eftPort.py => port/eft.py} | 0 service/{ => port}/port.py | 2 +- 7 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 service/port/__init__.py rename service/{efsPort.py => port/efs.py} (100%) rename service/{eftPort.py => port/eft.py} (100%) rename service/{ => port}/port.py (99%) diff --git a/gui/copySelectDialog.py b/gui/copySelectDialog.py index d130b3174..11fa79bb9 100644 --- a/gui/copySelectDialog.py +++ b/gui/copySelectDialog.py @@ -20,7 +20,7 @@ # noinspection PyPackageRequirements import wx -from service.eftPort import EFT_OPTIONS +from service.port.eft import EFT_OPTIONS from service.settings import SettingsProvider diff --git a/gui/esiFittings.py b/gui/esiFittings.py index af3da77a5..5b7dec36d 100644 --- a/gui/esiFittings.py +++ b/gui/esiFittings.py @@ -15,7 +15,7 @@ import gui.globalEvents as GE from logbook import Logger from service.esi import Esi from service.esiAccess import APIException -from service.port import ESIExportException +from service.port.port import ESIExportException pyfalog = Logger(__name__) diff --git a/gui/mainFrame.py b/gui/mainFrame.py index c89914e44..ced466577 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -76,8 +76,7 @@ from service.esiAccess import SsoMode from eos.modifiedAttributeDict import ModifiedAttributeDict from eos.db.saveddata.loadDefaultDatabaseValues import DefaultDatabaseValues from eos.db.saveddata.queries import getFit as db_getFit -from service.port import Port, IPortUser -from service.efsPort import EfsPort +from service.port import Port, IPortUser, EfsPort from service.settings import HTMLExportSettings from time import gmtime, strftime diff --git a/service/port/__init__.py b/service/port/__init__.py new file mode 100644 index 000000000..2e884d214 --- /dev/null +++ b/service/port/__init__.py @@ -0,0 +1,2 @@ +from .efs import EfsPort +from .port import Port, IPortUser diff --git a/service/efsPort.py b/service/port/efs.py similarity index 100% rename from service/efsPort.py rename to service/port/efs.py diff --git a/service/eftPort.py b/service/port/eft.py similarity index 100% rename from service/eftPort.py rename to service/port/eft.py diff --git a/service/port.py b/service/port/port.py similarity index 99% rename from service/port.py rename to service/port/port.py index 7e7ec7aea..5b942263e 100644 --- a/service/port.py +++ b/service/port/port.py @@ -51,7 +51,7 @@ from utils.strfunctions import sequential_rep, replace_ltgt from abc import ABCMeta, abstractmethod from service.esi import Esi -from service.eftPort import EftPort, SLOT_ORDER as EFT_SLOT_ORDER +from service.port.eft import EftPort, SLOT_ORDER as EFT_SLOT_ORDER from collections import OrderedDict From d1e6647d1f7c5c4efb5c1adb469d2aede7505c64 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Thu, 30 Aug 2018 00:07:37 -0400 Subject: [PATCH 076/110] Don't show/hide options box, move options to under EFT, and simply disable them when EFT not selected --- gui/copySelectDialog.py | 40 ++++++++++++++++++---------------------- service/port/eft.py | 2 +- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/gui/copySelectDialog.py b/gui/copySelectDialog.py index 11fa79bb9..45191f6d9 100644 --- a/gui/copySelectDialog.py +++ b/gui/copySelectDialog.py @@ -48,6 +48,8 @@ class CopySelectDialog(wx.Dialog): "EFS": CopySelectDialog.copyFormatEfs } + self.options = {} + for i, format in enumerate(self.copyFormats.keys()): if i == 0: rdo = wx.RadioButton(self, wx.ID_ANY, format, style=wx.RB_GROUP) @@ -59,32 +61,22 @@ class CopySelectDialog(wx.Dialog): self.copyFormat = self.copyFormats[format] mainSizer.Add(rdo, 0, wx.EXPAND | wx.ALL, 5) - # some sizer magic to deal with https://github.com/wxWidgets/Phoenix/issues/974 - self.box1 = wx.StaticBox(self, -1, "EFT Options") - self.bsizer1 = wx.BoxSizer(wx.VERTICAL) - self.bsizer2 = wx.BoxSizer(wx.VERTICAL) - self.bsizer1.AddSpacer(10) + if format == "EFT": + bsizer = wx.BoxSizer(wx.VERTICAL) - self.bsizer1.Add(self.bsizer2, 1, wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT | wx.BOTTOM, 10) + for x, v in EFT_OPTIONS.items(): + ch = wx.CheckBox(self, -1, v['name']) + self.options[x] = ch + if self.settings['options'] & x: + ch.SetValue(True) + bsizer.Add(ch, 1, wx.EXPAND | wx.TOP | wx.BOTTOM, 3) + mainSizer.Add(bsizer, 1, wx.EXPAND | wx.LEFT, 20) - self.options = {} - - for x, v in EFT_OPTIONS.items(): - ch = wx.CheckBox(self.box1, -1, v['name']) - self.options[x] = ch - if self.settings['options'] & x: - ch.SetValue(True) - self.bsizer2.Add(ch, 1, wx.EXPAND) - - self.box1.SetSizer(self.bsizer1) - - mainSizer.Add(self.box1, 0, wx.EXPAND | wx.ALL, 5) buttonSizer = self.CreateButtonSizer(wx.OK | wx.CANCEL) if buttonSizer: mainSizer.Add(buttonSizer, 0, wx.EXPAND | wx.ALL, 5) - self.box1.Show(self.GetSelected() == CopySelectDialog.copyFormatEft) - + self.toggleOptions() self.SetSizer(mainSizer) self.Fit() self.Center() @@ -92,9 +84,13 @@ class CopySelectDialog(wx.Dialog): def Selected(self, event): obj = event.GetEventObject() format = obj.GetLabel() - self.box1.Show(format == "EFT") - self.Fit() self.copyFormat = self.copyFormats[format] + self.toggleOptions() + self.Fit() + + def toggleOptions(self): + for ch in self.options.values(): + ch.Enable(self.GetSelected() == CopySelectDialog.copyFormatEft) def GetSelected(self): return self.copyFormat diff --git a/service/port/eft.py b/service/port/eft.py index 01adfc6ec..ad984a068 100644 --- a/service/port/eft.py +++ b/service/port/eft.py @@ -56,7 +56,7 @@ EFT_OPTIONS = { "description": "Exports implants" }, Options.MUTATIONS.value: { - "name": "Abyssal", + "name": "Mutated Attributes", "description": "Exports Abyssal stats" } # 4: [] From ba157af496604976c99e3ee106167f6f6f84c96f Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 30 Aug 2018 14:25:40 +0300 Subject: [PATCH 077/110] Allow format to have no space between: ship name - fit name; module name - charge name; module spec - offline suffix; module spec - mutastats reference This fixes import of modules with charges from zkb and few other issues --- service/port/eft.py | 12 ++++++------ service/port/port.py | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/service/port/eft.py b/service/port/eft.py index ad984a068..fac4b8508 100644 --- a/service/port/eft.py +++ b/service/port/eft.py @@ -48,7 +48,7 @@ class Options(Enum): MODULE_CATS = ('Module', 'Subsystem', 'Structure Module') SLOT_ORDER = (Slot.LOW, Slot.MED, Slot.HIGH, Slot.RIG, Slot.SUBSYSTEM, Slot.SERVICE) -OFFLINE_SUFFIX = ' /OFFLINE' +OFFLINE_SUFFIX = '/OFFLINE' EFT_OPTIONS = { Options.IMPLANTS.value: { @@ -379,7 +379,7 @@ class EftPort: mutantReference += 1 else: mutationSuffix = '' - modOfflineSuffix = OFFLINE_SUFFIX if module.state == State.OFFLINE else '' + modOfflineSuffix = ' {}'.format(OFFLINE_SUFFIX) if module.state == State.OFFLINE else '' if module.charge and sFit.serviceFittingOptions['exportCharges']: rackLines.append('{}, {}{}{}'.format( modName, module.charge.name, modOfflineSuffix, mutationSuffix)) @@ -467,9 +467,9 @@ class EftPort: aFit.mutations = cls.__getMutationData(lines) nameChars = '[^,/\[\]]' # Characters which are allowed to be used in name - stubPattern = '^\[.+\]$' - modulePattern = '^(?P{0}+)(, (?P{0}+))?(?P{1})?( \[(?P\d+)\])?$'.format(nameChars, OFFLINE_SUFFIX) - droneCargoPattern = '^(?P{}+) x(?P\d+)$'.format(nameChars) + stubPattern = '^\[.+?\]$' + modulePattern = '^(?P{0}+?)(,\s*(?P{0}+?))?(?P\s*{1})?(\s*\[(?P\d+?)\])?$'.format(nameChars, OFFLINE_SUFFIX) + droneCargoPattern = '^(?P{}+?) x(?P\d+?)$'.format(nameChars) sections = [] for section in cls.__importSectionIter(lines): @@ -670,7 +670,7 @@ class EftPort: """Create fit and set top-level entity (ship or citadel).""" fit = Fit() header = lines.pop(0) - m = re.match('\[(?P[\w\s]+), (?P.+)\]', header) + m = re.match('\[(?P[\w\s]+),\s*(?P.+)\]', header) if not m: pyfalog.warning('EftPort.importEft: corrupted fit header') raise EftImportError diff --git a/service/port/port.py b/service/port/port.py index 5b942263e..9f359b36b 100644 --- a/service/port/port.py +++ b/service/port/port.py @@ -814,7 +814,7 @@ class Port(object): @staticmethod def importXml(text, iportuser=None): - # type: (basestring, IPortUser, basestring) -> list[eos.saveddata.fit.Fit] + # type: (str, IPortUser) -> list[eos.saveddata.fit.Fit] sMkt = Market.getInstance() doc = xml.dom.minidom.parseString(text) # NOTE: From 302cab54fdae03e58b2f742f10584eb0a130bc48 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 30 Aug 2018 15:23:24 +0300 Subject: [PATCH 078/110] Get rid of PortProcessing object --- service/port/eft.py | 890 +++++++++++++++++++++++++---------------- service/port/port.py | 271 ++----------- service/port/shared.py | 69 ++++ 3 files changed, 643 insertions(+), 587 deletions(-) create mode 100644 service/port/shared.py diff --git a/service/port/eft.py b/service/port/eft.py index fac4b8508..80640bfff 100644 --- a/service/port/eft.py +++ b/service/port/eft.py @@ -35,6 +35,7 @@ from eos.saveddata.fit import Fit from gui.utils.numberFormatter import roundToPrec from service.fit import Fit as svcFit from service.market import Market +from service.port.shared import IPortUser, processing_notify from enum import Enum @@ -59,10 +60,550 @@ EFT_OPTIONS = { "name": "Mutated Attributes", "description": "Exports Abyssal stats" } - # 4: [] } +class EftPort: + + @classmethod + def exportEft(cls, fit, options): + # EFT formatted export is split in several sections, each section is + # separated from another using 2 blank lines. Sections might have several + # sub-sections, which are separated by 1 blank line + sections = [] + + header = '[{}, {}]'.format(fit.ship.item.name, fit.name) + + # Section 1: modules, rigs, subsystems, services + modsBySlotType = {} + sFit = svcFit.getInstance() + for module in fit.modules: + modsBySlotType.setdefault(module.slot, []).append(module) + modSection = [] + + mutants = {} # Format: {reference number: module} + mutantReference = 1 + for slotType in SLOT_ORDER: + rackLines = [] + modules = modsBySlotType.get(slotType, ()) + for module in modules: + if module.item: + mutated = bool(module.mutators) + # if module was mutated, use base item name for export + if mutated: + modName = module.baseItem.name + else: + modName = module.item.name + if mutated and options & Options.MUTATIONS.value: + mutants[mutantReference] = module + mutationSuffix = ' [{}]'.format(mutantReference) + mutantReference += 1 + else: + mutationSuffix = '' + modOfflineSuffix = ' {}'.format(OFFLINE_SUFFIX) if module.state == State.OFFLINE else '' + if module.charge and sFit.serviceFittingOptions['exportCharges']: + rackLines.append('{}, {}{}{}'.format( + modName, module.charge.name, modOfflineSuffix, mutationSuffix)) + else: + rackLines.append('{}{}{}'.format(modName, modOfflineSuffix, mutationSuffix)) + else: + rackLines.append('[Empty {} slot]'.format( + Slot.getName(slotType).capitalize() if slotType is not None else '')) + if rackLines: + modSection.append('\n'.join(rackLines)) + if modSection: + sections.append('\n\n'.join(modSection)) + + # Section 2: drones, fighters + minionSection = [] + droneLines = [] + for drone in sorted(fit.drones, key=lambda d: d.item.name): + droneLines.append('{} x{}'.format(drone.item.name, drone.amount)) + if droneLines: + minionSection.append('\n'.join(droneLines)) + fighterLines = [] + for fighter in sorted(fit.fighters, key=lambda f: f.item.name): + fighterLines.append('{} x{}'.format(fighter.item.name, fighter.amountActive)) + if fighterLines: + minionSection.append('\n'.join(fighterLines)) + if minionSection: + sections.append('\n\n'.join(minionSection)) + + # Section 3: implants, boosters + if options & Options.IMPLANTS.value: + charSection = [] + implantLines = [] + for implant in fit.implants: + implantLines.append(implant.item.name) + if implantLines: + charSection.append('\n'.join(implantLines)) + boosterLines = [] + for booster in fit.boosters: + boosterLines.append(booster.item.name) + if boosterLines: + charSection.append('\n'.join(boosterLines)) + if charSection: + sections.append('\n\n'.join(charSection)) + + # Section 4: cargo + cargoLines = [] + for cargo in sorted( + fit.cargo, + key=lambda c: (c.item.group.category.name, c.item.group.name, c.item.name) + ): + cargoLines.append('{} x{}'.format(cargo.item.name, cargo.amount)) + if cargoLines: + sections.append('\n'.join(cargoLines)) + + # Section 5: mutated modules' details + mutationLines = [] + if mutants and options & Options.MUTATIONS.value: + for mutantReference in sorted(mutants): + mutant = mutants[mutantReference] + mutatedAttrs = {} + for attrID, mutator in mutant.mutators.items(): + attrName = getAttributeInfo(attrID).name + mutatedAttrs[attrName] = mutator.value + mutationLines.append('[{}] {}'.format(mutantReference, mutant.baseItem.name)) + mutationLines.append(' {}'.format(mutant.mutaplasmid.item.name)) + # Round to 7th significant number to avoid exporting float errors + customAttrsLine = ', '.join( + '{} {}'.format(a, roundToPrec(mutatedAttrs[a], 7)) + for a in sorted(mutatedAttrs)) + mutationLines.append(' {}'.format(customAttrsLine)) + if mutationLines: + sections.append('\n'.join(mutationLines)) + + return '{}\n\n{}'.format(header, '\n\n\n'.join(sections)) + + @classmethod + def importEft(cls, eftString): + lines = cls.__prepareImportString(eftString) + try: + fit = cls.__createFit(lines) + except EftImportError: + return + + aFit = AbstractFit() + aFit.mutations = cls.__getMutationData(lines) + + nameChars = '[^,/\[\]]' # Characters which are allowed to be used in name + stubPattern = '^\[.+?\]$' + modulePattern = '^(?P{0}+?)(,\s*(?P{0}+?))?(?P\s*{1})?(\s*\[(?P\d+?)\])?$'.format(nameChars, OFFLINE_SUFFIX) + droneCargoPattern = '^(?P{}+?) x(?P\d+?)$'.format(nameChars) + + sections = [] + for section in cls.__importSectionIter(lines): + for line in section.lines: + # Stub line + if re.match(stubPattern, line): + section.itemSpecs.append(None) + continue + # Items with quantity specifier + m = re.match(droneCargoPattern, line) + if m: + try: + itemSpec = MultiItemSpec(m.group('typeName')) + # Items which cannot be fetched are considered as stubs + except EftImportError: + section.itemSpecs.append(None) + else: + itemSpec.amount = int(m.group('amount')) + section.itemSpecs.append(itemSpec) + continue + # All other items + m = re.match(modulePattern, line) + if m: + try: + itemSpec = RegularItemSpec(m.group('typeName'), chargeName=m.group('chargeName')) + # Items which cannot be fetched are considered as stubs + except EftImportError: + section.itemSpecs.append(None) + else: + if m.group('offline'): + itemSpec.offline = True + if m.group('mutation'): + itemSpec.mutationIdx = int(m.group('mutation')) + section.itemSpecs.append(itemSpec) + continue + clearTail(section.itemSpecs) + sections.append(section) + + + hasDroneBay = any(s.isDroneBay for s in sections) + hasFighterBay = any(s.isFighterBay for s in sections) + for section in sections: + if section.isModuleRack: + aFit.addModules(section.itemSpecs) + elif section.isImplantRack: + for itemSpec in section.itemSpecs: + aFit.addImplant(itemSpec) + elif section.isDroneBay: + for itemSpec in section.itemSpecs: + aFit.addDrone(itemSpec) + elif section.isFighterBay: + for itemSpec in section.itemSpecs: + aFit.addFighter(itemSpec) + elif section.isCargoHold: + for itemSpec in section.itemSpecs: + aFit.addCargo(itemSpec) + # Mix between different kinds of item specs (can happen when some + # blank lines are removed) + else: + for itemSpec in section.itemSpecs: + if itemSpec is None: + continue + if itemSpec.isModule: + aFit.addModule(itemSpec) + elif itemSpec.isImplant: + aFit.addImplant(itemSpec) + elif itemSpec.isDrone and not hasDroneBay: + aFit.addDrone(itemSpec) + elif itemSpec.isFighter and not hasFighterBay: + aFit.addFighter(itemSpec) + elif itemSpec.isCargo: + aFit.addCargo(itemSpec) + + # Subsystems first because they modify slot amount + for m in aFit.subsystems: + if m is None: + dummy = Module.buildEmpty(aFit.getSlotByContainer(aFit.subsystems)) + dummy.owner = fit + fit.modules.appendIgnoreEmpty(dummy) + elif m.fits(fit): + m.owner = fit + fit.modules.appendIgnoreEmpty(m) + svcFit.getInstance().recalc(fit) + + # Other stuff + for modRack in ( + aFit.rigs, + aFit.services, + aFit.modulesHigh, + aFit.modulesMed, + aFit.modulesLow, + ): + for m in modRack: + if m is None: + dummy = Module.buildEmpty(aFit.getSlotByContainer(modRack)) + dummy.owner = fit + fit.modules.appendIgnoreEmpty(dummy) + elif m.fits(fit): + m.owner = fit + if not m.isValidState(m.state): + pyfalog.warning('EftPort.importEft: module {} cannot have state {}', m, m.state) + fit.modules.appendIgnoreEmpty(m) + for implant in aFit.implants: + fit.implants.append(implant) + for booster in aFit.boosters: + fit.boosters.append(booster) + for drone in aFit.drones.values(): + fit.drones.append(drone) + for fighter in aFit.fighters: + fit.fighters.append(fighter) + for cargo in aFit.cargo.values(): + fit.cargo.append(cargo) + + return fit + + @staticmethod + def importEftCfg(shipname, contents, iportuser): + """Handle import from EFT config store file""" + + # Check if we have such ship in database, bail if we don't + sMkt = Market.getInstance() + try: + sMkt.getItem(shipname) + except: + return [] # empty list is expected + + fits = [] # List for fits + fitIndices = [] # List for starting line numbers for each fit + lines = re.split('[\n\r]+', contents) # Separate string into lines + + for line in lines: + # Detect fit header + if line[:1] == "[" and line[-1:] == "]": + # Line index where current fit starts + startPos = lines.index(line) + fitIndices.append(startPos) + + for i, startPos in enumerate(fitIndices): + # End position is last file line if we're trying to get it for last fit, + # or start position of next fit minus 1 + endPos = len(lines) if i == len(fitIndices) - 1 else fitIndices[i + 1] + + # Finally, get lines for current fitting + fitLines = lines[startPos:endPos] + + try: + # Create fit object + fitobj = Fit() + # Strip square brackets and pull out a fit name + fitobj.name = fitLines[0][1:-1] + # Assign ship to fitting + try: + fitobj.ship = Ship(sMkt.getItem(shipname)) + except ValueError: + fitobj.ship = Citadel(sMkt.getItem(shipname)) + + moduleList = [] + for x in range(1, len(fitLines)): + line = fitLines[x] + if not line: + continue + + # Parse line into some data we will need + misc = re.match("(Drones|Implant|Booster)_(Active|Inactive)=(.+)", line) + cargo = re.match("Cargohold=(.+)", line) + # 2017/03/27 NOTE: store description from EFT + description = re.match("Description=(.+)", line) + + if misc: + entityType = misc.group(1) + entityState = misc.group(2) + entityData = misc.group(3) + if entityType == "Drones": + droneData = re.match("(.+),([0-9]+)", entityData) + # Get drone name and attempt to detect drone number + droneName = droneData.group(1) if droneData else entityData + droneAmount = int(droneData.group(2)) if droneData else 1 + # Bail if we can't get item or it's not from drone category + try: + droneItem = sMkt.getItem(droneName, eager="group.category") + except: + pyfalog.warning("Cannot get item.") + continue + if droneItem.category.name == "Drone": + # Add drone to the fitting + d = Drone(droneItem) + d.amount = droneAmount + if entityState == "Active": + d.amountActive = droneAmount + elif entityState == "Inactive": + d.amountActive = 0 + fitobj.drones.append(d) + elif droneItem.category.name == "Fighter": # EFT saves fighter as drones + ft = Fighter(droneItem) + ft.amount = int(droneAmount) if ft.amount <= ft.fighterSquadronMaxSize else ft.fighterSquadronMaxSize + fitobj.fighters.append(ft) + else: + continue + elif entityType == "Implant": + # Bail if we can't get item or it's not from implant category + try: + implantItem = sMkt.getItem(entityData, eager="group.category") + except: + pyfalog.warning("Cannot get item.") + continue + if implantItem.category.name != "Implant": + continue + # Add implant to the fitting + imp = Implant(implantItem) + if entityState == "Active": + imp.active = True + elif entityState == "Inactive": + imp.active = False + fitobj.implants.append(imp) + elif entityType == "Booster": + # Bail if we can't get item or it's not from implant category + try: + boosterItem = sMkt.getItem(entityData, eager="group.category") + except: + pyfalog.warning("Cannot get item.") + continue + # All boosters have implant category + if boosterItem.category.name != "Implant": + continue + # Add booster to the fitting + b = Booster(boosterItem) + if entityState == "Active": + b.active = True + elif entityState == "Inactive": + b.active = False + fitobj.boosters.append(b) + # If we don't have any prefixes, then it's a module + elif cargo: + cargoData = re.match("(.+),([0-9]+)", cargo.group(1)) + cargoName = cargoData.group(1) if cargoData else cargo.group(1) + cargoAmount = int(cargoData.group(2)) if cargoData else 1 + # Bail if we can't get item + try: + item = sMkt.getItem(cargoName) + except: + pyfalog.warning("Cannot get item.") + continue + # Add Cargo to the fitting + c = Cargo(item) + c.amount = cargoAmount + fitobj.cargo.append(c) + # 2017/03/27 NOTE: store description from EFT + elif description: + fitobj.notes = description.group(1).replace("|", "\n") + else: + withCharge = re.match("(.+),(.+)", line) + modName = withCharge.group(1) if withCharge else line + chargeName = withCharge.group(2) if withCharge else None + # If we can't get module item, skip it + try: + modItem = sMkt.getItem(modName) + except: + pyfalog.warning("Cannot get item.") + continue + + # Create module + m = Module(modItem) + + # Add subsystems before modules to make sure T3 cruisers have subsystems installed + if modItem.category.name == "Subsystem": + if m.fits(fitobj): + fitobj.modules.append(m) + else: + m.owner = fitobj + # Activate mod if it is activable + if m.isValidState(State.ACTIVE): + m.state = State.ACTIVE + # Add charge to mod if applicable, on any errors just don't add anything + if chargeName: + try: + chargeItem = sMkt.getItem(chargeName, eager="group.category") + if chargeItem.category.name == "Charge": + m.charge = chargeItem + except: + pyfalog.warning("Cannot get item.") + pass + # Append module to fit + moduleList.append(m) + + # Recalc to get slot numbers correct for T3 cruisers + svcFit.getInstance().recalc(fitobj) + + for module in moduleList: + if module.fits(fitobj): + fitobj.modules.append(module) + + # Append fit to list of fits + fits.append(fitobj) + + if iportuser: # NOTE: Send current processing status + processing_notify( + iportuser, IPortUser.PROCESS_IMPORT | IPortUser.ID_UPDATE, + "%s:\n%s" % (fitobj.ship.name, fitobj.name) + ) + + # Skip fit silently if we get an exception + except Exception as e: + pyfalog.error("Caught exception on fit.") + pyfalog.error(e) + pass + + return fits + + @staticmethod + def __prepareImportString(eftString): + lines = eftString.splitlines() + for i in range(len(lines)): + lines[i] = lines[i].strip() + while lines and not lines[0]: + del lines[0] + while lines and not lines[-1]: + del lines[-1] + return lines + + @staticmethod + def __getMutationData(lines): + data = {} + consumedIndices = set() + for i in range(len(lines)): + line = lines[i] + m = re.match('^\[(?P\d+)\]', line) + if m: + ref = int(m.group('ref')) + # Attempt to apply mutation is useless w/o mutaplasmid, so skip it + # altogether if we have no info on it + try: + mutaName = lines[i + 1] + except IndexError: + continue + else: + consumedIndices.add(i) + consumedIndices.add(i + 1) + # Get custom attribute values + mutaAttrs = {} + try: + mutaAttrsLine = lines[i + 2] + except IndexError: + pass + else: + consumedIndices.add(i + 2) + pairs = [p.strip() for p in mutaAttrsLine.split(',')] + for pair in pairs: + try: + attrName, value = pair.split(' ') + except ValueError: + continue + try: + value = float(value) + except (ValueError, TypeError): + continue + attrInfo = getAttributeInfo(attrName.strip()) + if attrInfo is None: + continue + mutaAttrs[attrInfo.ID] = value + mutaItem = fetchItem(mutaName) + if mutaItem is None: + continue + data[ref] = (mutaItem, mutaAttrs) + # If we got here, we have seen at least correct reference line and + # mutaplasmid name line + i += 2 + # Bonus points for seeing correct attrs line. Worst case we + # will have to scan it once again + if mutaAttrs: + i += 1 + # Cleanup the lines from mutaplasmid info + for i in sorted(consumedIndices, reverse=True): + del lines[i] + return data + + @staticmethod + def __importSectionIter(lines): + section = Section() + for line in lines: + if not line: + if section.lines: + yield section + section = Section() + else: + section.lines.append(line) + if section.lines: + yield section + + @staticmethod + def __createFit(lines): + """Create fit and set top-level entity (ship or citadel).""" + fit = Fit() + header = lines.pop(0) + m = re.match('\[(?P[\w\s]+),\s*(?P.+)\]', header) + if not m: + pyfalog.warning('EftPort.importEft: corrupted fit header') + raise EftImportError + shipType = m.group('shipType').strip() + fitName = m.group('fitName').strip() + try: + ship = fetchItem(shipType) + try: + fit.ship = Ship(ship) + except ValueError: + fit.ship = Citadel(ship) + fit.name = fitName + except: + pyfalog.warning('EftPort.importEft: exception caught when parsing header') + raise EftImportError + return fit + +# Various methods and functions which assist with EFT import-export + def fetchItem(typeName, eagerCat=False): sMkt = Market.getInstance() eager = 'group.category' if eagerCat else None @@ -340,350 +881,3 @@ class AbstractFit: if itemSpec.item not in self.cargo: self.cargo[itemSpec.item] = Cargo(itemSpec.item) self.cargo[itemSpec.item].amount += itemSpec.amount - - -class EftPort: - - @classmethod - def exportEft(cls, fit, options): - # EFT formatted export is split in several sections, each section is - # separated from another using 2 blank lines. Sections might have several - # sub-sections, which are separated by 1 blank line - sections = [] - - header = '[{}, {}]'.format(fit.ship.item.name, fit.name) - - # Section 1: modules, rigs, subsystems, services - modsBySlotType = {} - sFit = svcFit.getInstance() - for module in fit.modules: - modsBySlotType.setdefault(module.slot, []).append(module) - modSection = [] - - mutants = {} # Format: {reference number: module} - mutantReference = 1 - for slotType in SLOT_ORDER: - rackLines = [] - modules = modsBySlotType.get(slotType, ()) - for module in modules: - if module.item: - mutated = bool(module.mutators) - # if module was mutated, use base item name for export - if mutated: - modName = module.baseItem.name - else: - modName = module.item.name - if mutated and options & Options.MUTATIONS.value: - mutants[mutantReference] = module - mutationSuffix = ' [{}]'.format(mutantReference) - mutantReference += 1 - else: - mutationSuffix = '' - modOfflineSuffix = ' {}'.format(OFFLINE_SUFFIX) if module.state == State.OFFLINE else '' - if module.charge and sFit.serviceFittingOptions['exportCharges']: - rackLines.append('{}, {}{}{}'.format( - modName, module.charge.name, modOfflineSuffix, mutationSuffix)) - else: - rackLines.append('{}{}{}'.format(modName, modOfflineSuffix, mutationSuffix)) - else: - rackLines.append('[Empty {} slot]'.format( - Slot.getName(slotType).capitalize() if slotType is not None else '')) - if rackLines: - modSection.append('\n'.join(rackLines)) - if modSection: - sections.append('\n\n'.join(modSection)) - - # Section 2: drones, fighters - minionSection = [] - droneLines = [] - for drone in sorted(fit.drones, key=lambda d: d.item.name): - droneLines.append('{} x{}'.format(drone.item.name, drone.amount)) - if droneLines: - minionSection.append('\n'.join(droneLines)) - fighterLines = [] - for fighter in sorted(fit.fighters, key=lambda f: f.item.name): - fighterLines.append('{} x{}'.format(fighter.item.name, fighter.amountActive)) - if fighterLines: - minionSection.append('\n'.join(fighterLines)) - if minionSection: - sections.append('\n\n'.join(minionSection)) - - # Section 3: implants, boosters - if options & Options.IMPLANTS.value: - charSection = [] - implantLines = [] - for implant in fit.implants: - implantLines.append(implant.item.name) - if implantLines: - charSection.append('\n'.join(implantLines)) - boosterLines = [] - for booster in fit.boosters: - boosterLines.append(booster.item.name) - if boosterLines: - charSection.append('\n'.join(boosterLines)) - if charSection: - sections.append('\n\n'.join(charSection)) - - # Section 4: cargo - cargoLines = [] - for cargo in sorted( - fit.cargo, - key=lambda c: (c.item.group.category.name, c.item.group.name, c.item.name) - ): - cargoLines.append('{} x{}'.format(cargo.item.name, cargo.amount)) - if cargoLines: - sections.append('\n'.join(cargoLines)) - - # Section 5: mutated modules' details - mutationLines = [] - if mutants and options & Options.MUTATIONS.value: - for mutantReference in sorted(mutants): - mutant = mutants[mutantReference] - mutatedAttrs = {} - for attrID, mutator in mutant.mutators.items(): - attrName = getAttributeInfo(attrID).name - mutatedAttrs[attrName] = mutator.value - mutationLines.append('[{}] {}'.format(mutantReference, mutant.baseItem.name)) - mutationLines.append(' {}'.format(mutant.mutaplasmid.item.name)) - # Round to 7th significant number to avoid exporting float errors - customAttrsLine = ', '.join( - '{} {}'.format(a, roundToPrec(mutatedAttrs[a], 7)) - for a in sorted(mutatedAttrs)) - mutationLines.append(' {}'.format(customAttrsLine)) - if mutationLines: - sections.append('\n'.join(mutationLines)) - - return '{}\n\n{}'.format(header, '\n\n\n'.join(sections)) - - @classmethod - def importEft(cls, eftString): - lines = cls.__prepareImportString(eftString) - try: - fit = cls.__createFit(lines) - except EftImportError: - return - - aFit = AbstractFit() - aFit.mutations = cls.__getMutationData(lines) - - nameChars = '[^,/\[\]]' # Characters which are allowed to be used in name - stubPattern = '^\[.+?\]$' - modulePattern = '^(?P{0}+?)(,\s*(?P{0}+?))?(?P\s*{1})?(\s*\[(?P\d+?)\])?$'.format(nameChars, OFFLINE_SUFFIX) - droneCargoPattern = '^(?P{}+?) x(?P\d+?)$'.format(nameChars) - - sections = [] - for section in cls.__importSectionIter(lines): - for line in section.lines: - # Stub line - if re.match(stubPattern, line): - section.itemSpecs.append(None) - continue - # Items with quantity specifier - m = re.match(droneCargoPattern, line) - if m: - try: - itemSpec = MultiItemSpec(m.group('typeName')) - # Items which cannot be fetched are considered as stubs - except EftImportError: - section.itemSpecs.append(None) - else: - itemSpec.amount = int(m.group('amount')) - section.itemSpecs.append(itemSpec) - continue - # All other items - m = re.match(modulePattern, line) - if m: - try: - itemSpec = RegularItemSpec(m.group('typeName'), chargeName=m.group('chargeName')) - # Items which cannot be fetched are considered as stubs - except EftImportError: - section.itemSpecs.append(None) - else: - if m.group('offline'): - itemSpec.offline = True - if m.group('mutation'): - itemSpec.mutationIdx = int(m.group('mutation')) - section.itemSpecs.append(itemSpec) - continue - clearTail(section.itemSpecs) - sections.append(section) - - - hasDroneBay = any(s.isDroneBay for s in sections) - hasFighterBay = any(s.isFighterBay for s in sections) - for section in sections: - if section.isModuleRack: - aFit.addModules(section.itemSpecs) - elif section.isImplantRack: - for itemSpec in section.itemSpecs: - aFit.addImplant(itemSpec) - elif section.isDroneBay: - for itemSpec in section.itemSpecs: - aFit.addDrone(itemSpec) - elif section.isFighterBay: - for itemSpec in section.itemSpecs: - aFit.addFighter(itemSpec) - elif section.isCargoHold: - for itemSpec in section.itemSpecs: - aFit.addCargo(itemSpec) - # Mix between different kinds of item specs (can happen when some - # blank lines are removed) - else: - for itemSpec in section.itemSpecs: - if itemSpec is None: - continue - if itemSpec.isModule: - aFit.addModule(itemSpec) - elif itemSpec.isImplant: - aFit.addImplant(itemSpec) - elif itemSpec.isDrone and not hasDroneBay: - aFit.addDrone(itemSpec) - elif itemSpec.isFighter and not hasFighterBay: - aFit.addFighter(itemSpec) - elif itemSpec.isCargo: - aFit.addCargo(itemSpec) - - # Subsystems first because they modify slot amount - for m in aFit.subsystems: - if m is None: - dummy = Module.buildEmpty(aFit.getSlotByContainer(aFit.subsystems)) - dummy.owner = fit - fit.modules.appendIgnoreEmpty(dummy) - elif m.fits(fit): - m.owner = fit - fit.modules.appendIgnoreEmpty(m) - svcFit.getInstance().recalc(fit) - - # Other stuff - for modRack in ( - aFit.rigs, - aFit.services, - aFit.modulesHigh, - aFit.modulesMed, - aFit.modulesLow, - ): - for m in modRack: - if m is None: - dummy = Module.buildEmpty(aFit.getSlotByContainer(modRack)) - dummy.owner = fit - fit.modules.appendIgnoreEmpty(dummy) - elif m.fits(fit): - m.owner = fit - if not m.isValidState(m.state): - pyfalog.warning('EftPort.importEft: module {} cannot have state {}', m, m.state) - fit.modules.appendIgnoreEmpty(m) - for implant in aFit.implants: - fit.implants.append(implant) - for booster in aFit.boosters: - fit.boosters.append(booster) - for drone in aFit.drones.values(): - fit.drones.append(drone) - for fighter in aFit.fighters: - fit.fighters.append(fighter) - for cargo in aFit.cargo.values(): - fit.cargo.append(cargo) - - return fit - - @staticmethod - def __prepareImportString(eftString): - lines = eftString.splitlines() - for i in range(len(lines)): - lines[i] = lines[i].strip() - while lines and not lines[0]: - del lines[0] - while lines and not lines[-1]: - del lines[-1] - return lines - - @staticmethod - def __getMutationData(lines): - data = {} - consumedIndices = set() - for i in range(len(lines)): - line = lines[i] - m = re.match('^\[(?P\d+)\]', line) - if m: - ref = int(m.group('ref')) - # Attempt to apply mutation is useless w/o mutaplasmid, so skip it - # altogether if we have no info on it - try: - mutaName = lines[i + 1] - except IndexError: - continue - else: - consumedIndices.add(i) - consumedIndices.add(i + 1) - # Get custom attribute values - mutaAttrs = {} - try: - mutaAttrsLine = lines[i + 2] - except IndexError: - pass - else: - consumedIndices.add(i + 2) - pairs = [p.strip() for p in mutaAttrsLine.split(',')] - for pair in pairs: - try: - attrName, value = pair.split(' ') - except ValueError: - continue - try: - value = float(value) - except (ValueError, TypeError): - continue - attrInfo = getAttributeInfo(attrName.strip()) - if attrInfo is None: - continue - mutaAttrs[attrInfo.ID] = value - mutaItem = fetchItem(mutaName) - if mutaItem is None: - continue - data[ref] = (mutaItem, mutaAttrs) - # If we got here, we have seen at least correct reference line and - # mutaplasmid name line - i += 2 - # Bonus points for seeing correct attrs line. Worst case we - # will have to scan it once again - if mutaAttrs: - i += 1 - # Cleanup the lines from mutaplasmid info - for i in sorted(consumedIndices, reverse=True): - del lines[i] - return data - - @staticmethod - def __importSectionIter(lines): - section = Section() - for line in lines: - if not line: - if section.lines: - yield section - section = Section() - else: - section.lines.append(line) - if section.lines: - yield section - - @classmethod - def __createFit(cls, lines): - """Create fit and set top-level entity (ship or citadel).""" - fit = Fit() - header = lines.pop(0) - m = re.match('\[(?P[\w\s]+),\s*(?P.+)\]', header) - if not m: - pyfalog.warning('EftPort.importEft: corrupted fit header') - raise EftImportError - shipType = m.group('shipType').strip() - fitName = m.group('fitName').strip() - try: - ship = fetchItem(shipType) - try: - fit.ship = Ship(ship) - except ValueError: - fit.ship = Citadel(ship) - fit.name = fitName - except: - pyfalog.warning('EftPort.importEft: exception caught when parsing header') - raise EftImportError - return fit diff --git a/service/port/port.py b/service/port/port.py index 9f359b36b..3fc08aa25 100644 --- a/service/port/port.py +++ b/service/port/port.py @@ -38,8 +38,6 @@ from service.fit import Fit as svcFit import wx from eos.saveddata.cargo import Cargo -from eos.saveddata.implant import Implant -from eos.saveddata.booster import Booster from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter from eos.saveddata.module import Module, State, Slot @@ -52,6 +50,7 @@ from abc import ABCMeta, abstractmethod from service.esi import Esi from service.port.eft import EftPort, SLOT_ORDER as EFT_SLOT_ORDER +from service.port.shared import processing_notify from collections import OrderedDict @@ -235,10 +234,26 @@ class Port(object): @staticmethod def backupFits(path, iportuser): pyfalog.debug("Starting backup fits thread.") -# thread = FitBackupThread(path, callback) -# thread.start() + + def backupFitsWorkerFunc(path, iportuser): + success = True + try: + iportuser.on_port_process_start() + backedUpFits = Port.exportXml(iportuser, + *svcFit.getInstance().getAllFits()) + backupFile = open(path, "w", encoding="utf-8") + backupFile.write(backedUpFits) + backupFile.close() + except UserCancelException: + success = False + # Send done signal to GUI + # wx.CallAfter(callback, -1, "Done.") + flag = IPortUser.ID_ERROR if not success else IPortUser.ID_DONE + iportuser.on_port_processing(IPortUser.PROCESS_EXPORT | flag, + "User canceled or some error occurrence." if not success else "Done.") + threading.Thread( - target=PortProcessing.backupFits, + target=backupFitsWorkerFunc, args=(path, iportuser) ).start() @@ -251,10 +266,14 @@ class Port(object): :rtype: None """ pyfalog.debug("Starting import fits thread.") -# thread = FitImportThread(paths, iportuser) -# thread.start() + + def importFitsFromFileWorkerFunc(paths, iportuser): + iportuser.on_port_process_start() + success, result = Port.importFitFromFiles(paths, iportuser) + flag = IPortUser.ID_ERROR if not success else IPortUser.ID_DONE + iportuser.on_port_processing(IPortUser.PROCESS_IMPORT | flag, result) threading.Thread( - target=PortProcessing.importFitsFromFile, + target=importFitsFromFileWorkerFunc, args=(paths, iportuser) ).start() @@ -275,7 +294,7 @@ class Port(object): if iportuser: # Pulse msg = "Processing file:\n%s" % path pyfalog.debug(msg) - PortProcessing.notify(iportuser, IPortUser.PROCESS_IMPORT | IPortUser.ID_UPDATE, msg) + processing_notify(iportuser, IPortUser.PROCESS_IMPORT | IPortUser.ID_UPDATE, msg) # wx.CallAfter(callback, 1, msg) with open(path, "rb") as file_: @@ -310,7 +329,7 @@ class Port(object): # IDs.append(fit.ID) if iportuser: # Pulse pyfalog.debug("Processing complete, saving fits to database: {0}/{1}", idx + 1, numFits) - PortProcessing.notify( + processing_notify( iportuser, IPortUser.PROCESS_IMPORT | IPortUser.ID_UPDATE, "Processing complete, saving fits to database\n(%d/%d) %s" % (idx + 1, numFits, fit.ship.name) ) @@ -621,196 +640,7 @@ class Port(object): @staticmethod def importEftCfg(shipname, contents, iportuser=None): - """Handle import from EFT config store file""" - - # Check if we have such ship in database, bail if we don't - sMkt = Market.getInstance() - try: - sMkt.getItem(shipname) - except: - return [] # empty list is expected - - fits = [] # List for fits - fitIndices = [] # List for starting line numbers for each fit - lines = re.split('[\n\r]+', contents) # Separate string into lines - - for line in lines: - # Detect fit header - if line[:1] == "[" and line[-1:] == "]": - # Line index where current fit starts - startPos = lines.index(line) - fitIndices.append(startPos) - - for i, startPos in enumerate(fitIndices): - # End position is last file line if we're trying to get it for last fit, - # or start position of next fit minus 1 - endPos = len(lines) if i == len(fitIndices) - 1 else fitIndices[i + 1] - - # Finally, get lines for current fitting - fitLines = lines[startPos:endPos] - - try: - # Create fit object - fitobj = Fit() - # Strip square brackets and pull out a fit name - fitobj.name = fitLines[0][1:-1] - # Assign ship to fitting - try: - fitobj.ship = Ship(sMkt.getItem(shipname)) - except ValueError: - fitobj.ship = Citadel(sMkt.getItem(shipname)) - - moduleList = [] - for x in range(1, len(fitLines)): - line = fitLines[x] - if not line: - continue - - # Parse line into some data we will need - misc = re.match("(Drones|Implant|Booster)_(Active|Inactive)=(.+)", line) - cargo = re.match("Cargohold=(.+)", line) - # 2017/03/27 NOTE: store description from EFT - description = re.match("Description=(.+)", line) - - if misc: - entityType = misc.group(1) - entityState = misc.group(2) - entityData = misc.group(3) - if entityType == "Drones": - droneData = re.match("(.+),([0-9]+)", entityData) - # Get drone name and attempt to detect drone number - droneName = droneData.group(1) if droneData else entityData - droneAmount = int(droneData.group(2)) if droneData else 1 - # Bail if we can't get item or it's not from drone category - try: - droneItem = sMkt.getItem(droneName, eager="group.category") - except: - pyfalog.warning("Cannot get item.") - continue - if droneItem.category.name == "Drone": - # Add drone to the fitting - d = Drone(droneItem) - d.amount = droneAmount - if entityState == "Active": - d.amountActive = droneAmount - elif entityState == "Inactive": - d.amountActive = 0 - fitobj.drones.append(d) - elif droneItem.category.name == "Fighter": # EFT saves fighter as drones - ft = Fighter(droneItem) - ft.amount = int(droneAmount) if ft.amount <= ft.fighterSquadronMaxSize else ft.fighterSquadronMaxSize - fitobj.fighters.append(ft) - else: - continue - elif entityType == "Implant": - # Bail if we can't get item or it's not from implant category - try: - implantItem = sMkt.getItem(entityData, eager="group.category") - except: - pyfalog.warning("Cannot get item.") - continue - if implantItem.category.name != "Implant": - continue - # Add implant to the fitting - imp = Implant(implantItem) - if entityState == "Active": - imp.active = True - elif entityState == "Inactive": - imp.active = False - fitobj.implants.append(imp) - elif entityType == "Booster": - # Bail if we can't get item or it's not from implant category - try: - boosterItem = sMkt.getItem(entityData, eager="group.category") - except: - pyfalog.warning("Cannot get item.") - continue - # All boosters have implant category - if boosterItem.category.name != "Implant": - continue - # Add booster to the fitting - b = Booster(boosterItem) - if entityState == "Active": - b.active = True - elif entityState == "Inactive": - b.active = False - fitobj.boosters.append(b) - # If we don't have any prefixes, then it's a module - elif cargo: - cargoData = re.match("(.+),([0-9]+)", cargo.group(1)) - cargoName = cargoData.group(1) if cargoData else cargo.group(1) - cargoAmount = int(cargoData.group(2)) if cargoData else 1 - # Bail if we can't get item - try: - item = sMkt.getItem(cargoName) - except: - pyfalog.warning("Cannot get item.") - continue - # Add Cargo to the fitting - c = Cargo(item) - c.amount = cargoAmount - fitobj.cargo.append(c) - # 2017/03/27 NOTE: store description from EFT - elif description: - fitobj.notes = description.group(1).replace("|", "\n") - else: - withCharge = re.match("(.+),(.+)", line) - modName = withCharge.group(1) if withCharge else line - chargeName = withCharge.group(2) if withCharge else None - # If we can't get module item, skip it - try: - modItem = sMkt.getItem(modName) - except: - pyfalog.warning("Cannot get item.") - continue - - # Create module - m = Module(modItem) - - # Add subsystems before modules to make sure T3 cruisers have subsystems installed - if modItem.category.name == "Subsystem": - if m.fits(fitobj): - fitobj.modules.append(m) - else: - m.owner = fitobj - # Activate mod if it is activable - if m.isValidState(State.ACTIVE): - m.state = State.ACTIVE - # Add charge to mod if applicable, on any errors just don't add anything - if chargeName: - try: - chargeItem = sMkt.getItem(chargeName, eager="group.category") - if chargeItem.category.name == "Charge": - m.charge = chargeItem - except: - pyfalog.warning("Cannot get item.") - pass - # Append module to fit - moduleList.append(m) - - # Recalc to get slot numbers correct for T3 cruisers - svcFit.getInstance().recalc(fitobj) - - for module in moduleList: - if module.fits(fitobj): - fitobj.modules.append(module) - - # Append fit to list of fits - fits.append(fitobj) - - if iportuser: # NOTE: Send current processing status - PortProcessing.notify( - iportuser, IPortUser.PROCESS_IMPORT | IPortUser.ID_UPDATE, - "%s:\n%s" % (fitobj.ship.name, fitobj.name) - ) - - # Skip fit silently if we get an exception - except Exception as e: - pyfalog.error("Caught exception on fit.") - pyfalog.error(e) - pass - - return fits + return EftPort.importEftCfg(shipname, contents, iportuser) @staticmethod def importXml(text, iportuser=None): @@ -901,7 +731,7 @@ class Port(object): fit_list.append(fitobj) if iportuser: # NOTE: Send current processing status - PortProcessing.notify( + processing_notify( iportuser, IPortUser.PROCESS_IMPORT | IPortUser.ID_UPDATE, "Processing %s\n%s" % (fitobj.ship.name, fitobj.name) ) @@ -912,10 +742,6 @@ class Port(object): def exportEft(cls, fit, options): return EftPort.exportEft(fit, options) - @classmethod - def exportEftImps(cls, fit): - return EftPort.exportEft(fit, mutations=False, implants=True) - @staticmethod def exportDna(fit): dna = str(fit.shipID) @@ -1065,7 +891,7 @@ class Port(object): continue finally: if iportuser: - PortProcessing.notify( + processing_notify( iportuser, IPortUser.PROCESS_EXPORT | IPortUser.ID_UPDATE, (i, "convert to xml (%s/%s) %s" % (i + 1, fit_count, fit.ship.name)) ) @@ -1118,36 +944,3 @@ class Port(object): export = export[:-1] return export - - -class PortProcessing(object): - """Port Processing class""" - - @staticmethod - def backupFits(path, iportuser): - success = True - try: - iportuser.on_port_process_start() - backedUpFits = Port.exportXml(iportuser, *svcFit.getInstance().getAllFits()) - backupFile = open(path, "w", encoding="utf-8") - backupFile.write(backedUpFits) - backupFile.close() - except UserCancelException: - success = False - # Send done signal to GUI -# wx.CallAfter(callback, -1, "Done.") - flag = IPortUser.ID_ERROR if not success else IPortUser.ID_DONE - iportuser.on_port_processing(IPortUser.PROCESS_EXPORT | flag, - "User canceled or some error occurrence." if not success else "Done.") - - @staticmethod - def importFitsFromFile(paths, iportuser): - iportuser.on_port_process_start() - success, result = Port.importFitFromFiles(paths, iportuser) - flag = IPortUser.ID_ERROR if not success else IPortUser.ID_DONE - iportuser.on_port_processing(IPortUser.PROCESS_IMPORT | flag, result) - - @staticmethod - def notify(iportuser, flag, data): - if not iportuser.on_port_processing(flag, data): - raise UserCancelException diff --git a/service/port/shared.py b/service/port/shared.py new file mode 100644 index 000000000..39838a907 --- /dev/null +++ b/service/port/shared.py @@ -0,0 +1,69 @@ +# ============================================================================= +# Copyright (C) 2014 Ryan Holmes +# +# This file is part of pyfa. +# +# pyfa is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# pyfa is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with pyfa. If not, see . +# ============================================================================= + + +from abc import ABCMeta, abstractmethod + + +class UserCancelException(Exception): + """when user cancel on port processing.""" + pass + + +class IPortUser(metaclass=ABCMeta): + + ID_PULSE = 1 + # Pulse the progress bar + ID_UPDATE = ID_PULSE << 1 + # Replace message with data: update messate + ID_DONE = ID_PULSE << 2 + # open fits: import process done + ID_ERROR = ID_PULSE << 3 + # display error: raise some error + + PROCESS_IMPORT = ID_PULSE << 4 + # means import process. + PROCESS_EXPORT = ID_PULSE << 5 + # means import process. + + @abstractmethod + def on_port_processing(self, action, data=None): + """ + While importing fits from file, the logic calls back to this function to + update progress bar to show activity. XML files can contain multiple + ships with multiple fits, whereas EFT cfg files contain many fits of + a single ship. When iterating through the files, we update the message + when we start a new file, and then Pulse the progress bar with every fit + that is processed. + + action : a flag that lets us know how to deal with :data + None: Pulse the progress bar + 1: Replace message with data + other: Close dialog and handle based on :action (-1 open fits, -2 display error) + return: True is continue process, False is cancel. + """ + pass + + def on_port_process_start(self): + pass + + +def processing_notify(iportuser, flag, data): + if not iportuser.on_port_processing(flag, data): + raise UserCancelException From 02e35181d587f97bc5693296ccf04134414ea77d Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 30 Aug 2018 15:46:29 +0300 Subject: [PATCH 079/110] Move out DNA format into separate file --- service/port/dna.py | 176 ++++++++++++++++++++++++++++++++ service/port/port.py | 223 +++++------------------------------------ service/port/shared.py | 3 +- 3 files changed, 203 insertions(+), 199 deletions(-) create mode 100644 service/port/dna.py diff --git a/service/port/dna.py b/service/port/dna.py new file mode 100644 index 000000000..bd2645ef8 --- /dev/null +++ b/service/port/dna.py @@ -0,0 +1,176 @@ +# ============================================================================= +# Copyright (C) 2014 Ryan Holmes +# +# This file is part of pyfa. +# +# pyfa is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# pyfa is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with pyfa. If not, see . +# ============================================================================= + + +import re +from collections import OrderedDict + +from logbook import Logger + +from eos.saveddata.cargo import Cargo +from eos.saveddata.citadel import Citadel +from eos.saveddata.drone import Drone +from eos.saveddata.fighter import Fighter +from eos.saveddata.fit import Fit +from eos.saveddata.module import Module, State, Slot +from eos.saveddata.ship import Ship +from service.fit import Fit as svcFit +from service.market import Market + + +pyfalog = Logger(__name__) + + +def importDna(string): + sMkt = Market.getInstance() + + ids = list(map(int, re.findall(r'\d+', string))) + for id_ in ids: + try: + try: + try: + Ship(sMkt.getItem(sMkt.getItem(id_))) + except ValueError: + Citadel(sMkt.getItem(sMkt.getItem(id_))) + except ValueError: + Citadel(sMkt.getItem(id_)) + string = string[string.index(str(id_)):] + break + except: + pyfalog.warning("Exception caught in importDna") + pass + string = string[:string.index("::") + 2] + info = string.split(":") + + f = Fit() + try: + try: + f.ship = Ship(sMkt.getItem(int(info[0]))) + except ValueError: + f.ship = Citadel(sMkt.getItem(int(info[0]))) + f.name = "{0} - DNA Imported".format(f.ship.item.name) + except UnicodeEncodeError: + def logtransform(s_): + if len(s_) > 10: + return s_[:10] + "..." + return s_ + + pyfalog.exception("Couldn't import ship data {0}", [logtransform(s) for s in info]) + return None + + moduleList = [] + for itemInfo in info[1:]: + if itemInfo: + itemID, amount = itemInfo.split(";") + item = sMkt.getItem(int(itemID), eager="group.category") + + if item.category.name == "Drone": + d = Drone(item) + d.amount = int(amount) + f.drones.append(d) + elif item.category.name == "Fighter": + ft = Fighter(item) + ft.amount = int(amount) if ft.amount <= ft.fighterSquadronMaxSize else ft.fighterSquadronMaxSize + if ft.fits(f): + f.fighters.append(ft) + elif item.category.name == "Charge": + c = Cargo(item) + c.amount = int(amount) + f.cargo.append(c) + else: + for i in range(int(amount)): + try: + m = Module(item) + except: + pyfalog.warning("Exception caught in importDna") + continue + # Add subsystems before modules to make sure T3 cruisers have subsystems installed + if item.category.name == "Subsystem": + if m.fits(f): + f.modules.append(m) + else: + m.owner = f + if m.isValidState(State.ACTIVE): + m.state = State.ACTIVE + moduleList.append(m) + + # Recalc to get slot numbers correct for T3 cruisers + svcFit.getInstance().recalc(f) + + for module in moduleList: + if module.fits(f): + module.owner = f + if module.isValidState(State.ACTIVE): + module.state = State.ACTIVE + f.modules.append(module) + + return f + + +def exportDna(fit): + dna = str(fit.shipID) + subsystems = [] # EVE cares which order you put these in + mods = OrderedDict() + charges = OrderedDict() + sFit = svcFit.getInstance() + for mod in fit.modules: + if not mod.isEmpty: + if mod.slot == Slot.SUBSYSTEM: + subsystems.append(mod) + continue + if mod.itemID not in mods: + mods[mod.itemID] = 0 + mods[mod.itemID] += 1 + + if mod.charge and sFit.serviceFittingOptions["exportCharges"]: + if mod.chargeID not in charges: + charges[mod.chargeID] = 0 + # `or 1` because some charges (ie scripts) are without qty + charges[mod.chargeID] += mod.numCharges or 1 + + for subsystem in sorted(subsystems, key=lambda mod_: mod_.getModifiedItemAttr("subSystemSlot")): + dna += ":{0};1".format(subsystem.itemID) + + for mod in mods: + dna += ":{0};{1}".format(mod, mods[mod]) + + for drone in fit.drones: + dna += ":{0};{1}".format(drone.itemID, drone.amount) + + for fighter in fit.fighters: + dna += ":{0};{1}".format(fighter.itemID, fighter.amountActive) + + for fighter in fit.fighters: + dna += ":{0};{1}".format(fighter.itemID, fighter.amountActive) + + for cargo in fit.cargo: + # DNA format is a simple/dumb format. As CCP uses the slot information of the item itself + # without designating slots in the DNA standard, we need to make sure we only include + # charges in the DNA export. If modules were included, the EVE Client will interpret these + # as being "Fitted" to whatever slot they are for, and it causes an corruption error in the + # client when trying to save the fit + if cargo.item.category.name == "Charge": + if cargo.item.ID not in charges: + charges[cargo.item.ID] = 0 + charges[cargo.item.ID] += cargo.amount + + for charge in charges: + dna += ":{0};{1}".format(charge, charges[charge]) + + return dna + "::" diff --git a/service/port/port.py b/service/port/port.py index 3fc08aa25..29b5eba81 100644 --- a/service/port/port.py +++ b/service/port/port.py @@ -46,12 +46,11 @@ from eos.saveddata.citadel import Citadel from eos.saveddata.fit import Fit, ImplantLocation from service.market import Market from utils.strfunctions import sequential_rep, replace_ltgt -from abc import ABCMeta, abstractmethod from service.esi import Esi +from service.port.dna import exportDna, importDna from service.port.eft import EftPort, SLOT_ORDER as EFT_SLOT_ORDER -from service.port.shared import processing_notify -from collections import OrderedDict +from service.port.shared import IPortUser, UserCancelException, processing_notify class ESIExportException(Exception): @@ -165,50 +164,6 @@ def _resolve_module(hardware, sMkt, b_localized): return item -class UserCancelException(Exception): - """when user cancel on port processing.""" - pass - - -class IPortUser(metaclass=ABCMeta): - - ID_PULSE = 1 - # Pulse the progress bar - ID_UPDATE = ID_PULSE << 1 - # Replace message with data: update messate - ID_DONE = ID_PULSE << 2 - # open fits: import process done - ID_ERROR = ID_PULSE << 3 - # display error: raise some error - - PROCESS_IMPORT = ID_PULSE << 4 - # means import process. - PROCESS_EXPORT = ID_PULSE << 5 - # means import process. - - @abstractmethod - def on_port_processing(self, action, data=None): - """ - While importing fits from file, the logic calls back to this function to - update progress bar to show activity. XML files can contain multiple - ships with multiple fits, whereas EFT cfg files contain many fits of - a single ship. When iterating through the files, we update the message - when we start a new file, and then Pulse the progress bar with every fit - that is processed. - - action : a flag that lets us know how to deal with :data - None: Pulse the progress bar - 1: Replace message with data - other: Close dialog and handle based on :action (-1 open fits, -2 display error) - """ - - """return: True is continue process, False is cancel.""" - pass - - def on_port_process_start(self): - pass - - class Port(object): """Service which houses all import/export format functions""" instance = None @@ -272,6 +227,7 @@ class Port(object): success, result = Port.importFitFromFiles(paths, iportuser) flag = IPortUser.ID_ERROR if not success else IPortUser.ID_DONE iportuser.on_port_processing(IPortUser.PROCESS_IMPORT | flag, result) + threading.Thread( target=importFitsFromFileWorkerFunc, args=(paths, iportuser) @@ -548,100 +504,6 @@ class Port(object): return fitobj - @staticmethod - def importDna(string): - sMkt = Market.getInstance() - - ids = list(map(int, re.findall(r'\d+', string))) - for id_ in ids: - try: - try: - try: - Ship(sMkt.getItem(sMkt.getItem(id_))) - except ValueError: - Citadel(sMkt.getItem(sMkt.getItem(id_))) - except ValueError: - Citadel(sMkt.getItem(id_)) - string = string[string.index(str(id_)):] - break - except: - pyfalog.warning("Exception caught in importDna") - pass - string = string[:string.index("::") + 2] - info = string.split(":") - - f = Fit() - try: - try: - f.ship = Ship(sMkt.getItem(int(info[0]))) - except ValueError: - f.ship = Citadel(sMkt.getItem(int(info[0]))) - f.name = "{0} - DNA Imported".format(f.ship.item.name) - except UnicodeEncodeError: - def logtransform(s_): - if len(s_) > 10: - return s_[:10] + "..." - return s_ - - pyfalog.exception("Couldn't import ship data {0}", [logtransform(s) for s in info]) - return None - - moduleList = [] - for itemInfo in info[1:]: - if itemInfo: - itemID, amount = itemInfo.split(";") - item = sMkt.getItem(int(itemID), eager="group.category") - - if item.category.name == "Drone": - d = Drone(item) - d.amount = int(amount) - f.drones.append(d) - elif item.category.name == "Fighter": - ft = Fighter(item) - ft.amount = int(amount) if ft.amount <= ft.fighterSquadronMaxSize else ft.fighterSquadronMaxSize - if ft.fits(f): - f.fighters.append(ft) - elif item.category.name == "Charge": - c = Cargo(item) - c.amount = int(amount) - f.cargo.append(c) - else: - for i in range(int(amount)): - try: - m = Module(item) - except: - pyfalog.warning("Exception caught in importDna") - continue - # Add subsystems before modules to make sure T3 cruisers have subsystems installed - if item.category.name == "Subsystem": - if m.fits(f): - f.modules.append(m) - else: - m.owner = f - if m.isValidState(State.ACTIVE): - m.state = State.ACTIVE - moduleList.append(m) - - # Recalc to get slot numbers correct for T3 cruisers - svcFit.getInstance().recalc(f) - - for module in moduleList: - if module.fits(f): - module.owner = f - if module.isValidState(State.ACTIVE): - module.state = State.ACTIVE - f.modules.append(module) - - return f - - @staticmethod - def importEft(eftString): - return EftPort.importEft(eftString) - - @staticmethod - def importEftCfg(shipname, contents, iportuser=None): - return EftPort.importEftCfg(shipname, contents, iportuser) - @staticmethod def importXml(text, iportuser=None): # type: (str, IPortUser) -> list[eos.saveddata.fit.Fit] @@ -738,63 +600,6 @@ class Port(object): return fit_list - @classmethod - def exportEft(cls, fit, options): - return EftPort.exportEft(fit, options) - - @staticmethod - def exportDna(fit): - dna = str(fit.shipID) - subsystems = [] # EVE cares which order you put these in - mods = OrderedDict() - charges = OrderedDict() - sFit = svcFit.getInstance() - for mod in fit.modules: - if not mod.isEmpty: - if mod.slot == Slot.SUBSYSTEM: - subsystems.append(mod) - continue - if mod.itemID not in mods: - mods[mod.itemID] = 0 - mods[mod.itemID] += 1 - - if mod.charge and sFit.serviceFittingOptions["exportCharges"]: - if mod.chargeID not in charges: - charges[mod.chargeID] = 0 - # `or 1` because some charges (ie scripts) are without qty - charges[mod.chargeID] += mod.numCharges or 1 - - for subsystem in sorted(subsystems, key=lambda mod_: mod_.getModifiedItemAttr("subSystemSlot")): - dna += ":{0};1".format(subsystem.itemID) - - for mod in mods: - dna += ":{0};{1}".format(mod, mods[mod]) - - for drone in fit.drones: - dna += ":{0};{1}".format(drone.itemID, drone.amount) - - for fighter in fit.fighters: - dna += ":{0};{1}".format(fighter.itemID, fighter.amountActive) - - for fighter in fit.fighters: - dna += ":{0};{1}".format(fighter.itemID, fighter.amountActive) - - for cargo in fit.cargo: - # DNA format is a simple/dumb format. As CCP uses the slot information of the item itself - # without designating slots in the DNA standard, we need to make sure we only include - # charges in the DNA export. If modules were included, the EVE Client will interpret these - # as being "Fitted" to whatever slot they are for, and it causes an corruption error in the - # client when trying to save the fit - if cargo.item.category.name == "Charge": - if cargo.item.ID not in charges: - charges[cargo.item.ID] = 0 - charges[cargo.item.ID] += cargo.amount - - for charge in charges: - dna += ":{0};{1}".format(charge, charges[charge]) - - return dna + "::" - @staticmethod def exportXml(iportuser=None, *fits): doc = xml.dom.minidom.Document() @@ -944,3 +749,25 @@ class Port(object): export = export[:-1] return export + + # EFT-related methods + @staticmethod + def importEft(eftString): + return EftPort.importEft(eftString) + + @staticmethod + def importEftCfg(shipname, contents, iportuser=None): + return EftPort.importEftCfg(shipname, contents, iportuser) + + @classmethod + def exportEft(cls, fit, options): + return EftPort.exportEft(fit, options) + + # DNA-related methods + @staticmethod + def importDna(string): + return importDna(string) + + @staticmethod + def exportDna(fit): + return exportDna(fit) diff --git a/service/port/shared.py b/service/port/shared.py index 39838a907..a21a81d63 100644 --- a/service/port/shared.py +++ b/service/port/shared.py @@ -56,8 +56,9 @@ class IPortUser(metaclass=ABCMeta): None: Pulse the progress bar 1: Replace message with data other: Close dialog and handle based on :action (-1 open fits, -2 display error) - return: True is continue process, False is cancel. """ + + """return: True is continue process, False is cancel.""" pass def on_port_process_start(self): From dd0fbfddb94843897247ad2135decf51e18cce31 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 30 Aug 2018 15:57:59 +0300 Subject: [PATCH 080/110] Split ESI stuff into its own file --- gui/esiFittings.py | 2 +- service/port/esi.py | 208 +++++++++++++++++++++++++++++++++++++++++++ service/port/port.py | 180 +++---------------------------------- 3 files changed, 219 insertions(+), 171 deletions(-) create mode 100644 service/port/esi.py diff --git a/gui/esiFittings.py b/gui/esiFittings.py index 5b7dec36d..c471a1334 100644 --- a/gui/esiFittings.py +++ b/gui/esiFittings.py @@ -15,7 +15,7 @@ import gui.globalEvents as GE from logbook import Logger from service.esi import Esi from service.esiAccess import APIException -from service.port.port import ESIExportException +from service.port.esi import ESIExportException pyfalog = Logger(__name__) diff --git a/service/port/esi.py b/service/port/esi.py new file mode 100644 index 000000000..f1e02d13a --- /dev/null +++ b/service/port/esi.py @@ -0,0 +1,208 @@ +# ============================================================================= +# Copyright (C) 2014 Ryan Holmes +# +# This file is part of pyfa. +# +# pyfa is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# pyfa is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with pyfa. If not, see . +# ============================================================================= + + +import collections +import json + +from logbook import Logger + +from eos.saveddata.cargo import Cargo +from eos.saveddata.citadel import Citadel +from eos.saveddata.drone import Drone +from eos.saveddata.fighter import Fighter +from eos.saveddata.fit import Fit +from eos.saveddata.module import Module, State, Slot +from eos.saveddata.ship import Ship +from service.fit import Fit as svcFit +from service.market import Market + + +class ESIExportException(Exception): + pass + + +pyfalog = Logger(__name__) + +INV_FLAGS = { + Slot.LOW: 11, + Slot.MED: 19, + Slot.HIGH: 27, + Slot.RIG: 92, + Slot.SUBSYSTEM: 125, + Slot.SERVICE: 164 +} + +INV_FLAG_CARGOBAY = 5 +INV_FLAG_DRONEBAY = 87 +INV_FLAG_FIGHTER = 158 + + +def exportESI(ofit): + # A few notes: + # max fit name length is 50 characters + # Most keys are created simply because they are required, but bogus data is okay + + nested_dict = lambda: collections.defaultdict(nested_dict) + fit = nested_dict() + sFit = svcFit.getInstance() + + # max length is 50 characters + name = ofit.name[:47] + '...' if len(ofit.name) > 50 else ofit.name + fit['name'] = name + fit['ship_type_id'] = ofit.ship.item.ID + + # 2017/03/29 NOTE: "<" or "<" is Ignored + # fit['description'] = "" % ofit.ID + fit['description'] = ofit.notes[:397] + '...' if len(ofit.notes) > 400 else ofit.notes if ofit.notes is not None else "" + fit['items'] = [] + + slotNum = {} + charges = {} + for module in ofit.modules: + if module.isEmpty: + continue + + item = nested_dict() + slot = module.slot + + if slot == Slot.SUBSYSTEM: + # Order of subsystem matters based on this attr. See GH issue #130 + slot = int(module.getModifiedItemAttr("subSystemSlot")) + item['flag'] = slot + else: + if slot not in slotNum: + slotNum[slot] = INV_FLAGS[slot] + + item['flag'] = slotNum[slot] + slotNum[slot] += 1 + + item['quantity'] = 1 + item['type_id'] = module.item.ID + fit['items'].append(item) + + if module.charge and sFit.serviceFittingOptions["exportCharges"]: + if module.chargeID not in charges: + charges[module.chargeID] = 0 + # `or 1` because some charges (ie scripts) are without qty + charges[module.chargeID] += module.numCharges or 1 + + for cargo in ofit.cargo: + item = nested_dict() + item['flag'] = INV_FLAG_CARGOBAY + item['quantity'] = cargo.amount + item['type_id'] = cargo.item.ID + fit['items'].append(item) + + for chargeID, amount in list(charges.items()): + item = nested_dict() + item['flag'] = INV_FLAG_CARGOBAY + item['quantity'] = amount + item['type_id'] = chargeID + fit['items'].append(item) + + for drone in ofit.drones: + item = nested_dict() + item['flag'] = INV_FLAG_DRONEBAY + item['quantity'] = drone.amount + item['type_id'] = drone.item.ID + fit['items'].append(item) + + for fighter in ofit.fighters: + item = nested_dict() + item['flag'] = INV_FLAG_FIGHTER + item['quantity'] = fighter.amountActive + item['type_id'] = fighter.item.ID + fit['items'].append(item) + + if len(fit['items']) == 0: + raise ESIExportException("Cannot export fitting: module list cannot be empty.") + + return json.dumps(fit) + + +def importESI(str_): + + sMkt = Market.getInstance() + fitobj = Fit() + refobj = json.loads(str_) + items = refobj['items'] + # "<" and ">" is replace to "<", ">" by EVE client + fitobj.name = refobj['name'] + # 2017/03/29: read description + fitobj.notes = refobj['description'] + + try: + ship = refobj['ship_type_id'] + try: + fitobj.ship = Ship(sMkt.getItem(ship)) + except ValueError: + fitobj.ship = Citadel(sMkt.getItem(ship)) + except: + pyfalog.warning("Caught exception in importESI") + return None + + items.sort(key=lambda k: k['flag']) + + moduleList = [] + for module in items: + try: + item = sMkt.getItem(module['type_id'], eager="group.category") + if not item.published: + continue + if module['flag'] == INV_FLAG_DRONEBAY: + d = Drone(item) + d.amount = module['quantity'] + fitobj.drones.append(d) + elif module['flag'] == INV_FLAG_CARGOBAY: + c = Cargo(item) + c.amount = module['quantity'] + fitobj.cargo.append(c) + elif module['flag'] == INV_FLAG_FIGHTER: + fighter = Fighter(item) + fitobj.fighters.append(fighter) + else: + try: + m = Module(item) + # When item can't be added to any slot (unknown item or just charge), ignore it + except ValueError: + pyfalog.debug("Item can't be added to any slot (unknown item or just charge)") + continue + # Add subsystems before modules to make sure T3 cruisers have subsystems installed + if item.category.name == "Subsystem": + if m.fits(fitobj): + fitobj.modules.append(m) + else: + if m.isValidState(State.ACTIVE): + m.state = State.ACTIVE + + moduleList.append(m) + + except: + pyfalog.warning("Could not process module.") + continue + + # Recalc to get slot numbers correct for T3 cruisers + svcFit.getInstance().recalc(fitobj) + + for module in moduleList: + if module.fits(fitobj): + fitobj.modules.append(module) + + return fitobj diff --git a/service/port/port.py b/service/port/port.py index 29b5eba81..97acaba98 100644 --- a/service/port/port.py +++ b/service/port/port.py @@ -47,30 +47,15 @@ from eos.saveddata.fit import Fit, ImplantLocation from service.market import Market from utils.strfunctions import sequential_rep, replace_ltgt -from service.esi import Esi from service.port.dna import exportDna, importDna from service.port.eft import EftPort, SLOT_ORDER as EFT_SLOT_ORDER +from service.port.esi import importESI, exportESI from service.port.shared import IPortUser, UserCancelException, processing_notify -class ESIExportException(Exception): - pass - pyfalog = Logger(__name__) -INV_FLAGS = { - Slot.LOW: 11, - Slot.MED: 19, - Slot.HIGH: 27, - Slot.RIG: 92, - Slot.SUBSYSTEM: 125, - Slot.SERVICE: 164 -} - -INV_FLAG_CARGOBAY = 5 -INV_FLAG_DRONEBAY = 87 -INV_FLAG_FIGHTER = 158 # 2017/04/05 NOTE: simple validation, for xml file RE_XML_START = r'<\?xml\s+version="1.0"\s*\?>' @@ -320,89 +305,6 @@ class Port(object): db.save(fit) return fits - @classmethod - def exportESI(cls, ofit, callback=None): - # A few notes: - # max fit name length is 50 characters - # Most keys are created simply because they are required, but bogus data is okay - - nested_dict = lambda: collections.defaultdict(nested_dict) - fit = nested_dict() - sFit = svcFit.getInstance() - - # max length is 50 characters - name = ofit.name[:47] + '...' if len(ofit.name) > 50 else ofit.name - fit['name'] = name - fit['ship_type_id'] = ofit.ship.item.ID - - # 2017/03/29 NOTE: "<" or "<" is Ignored - # fit['description'] = "" % ofit.ID - fit['description'] = ofit.notes[:397] + '...' if len(ofit.notes) > 400 else ofit.notes if ofit.notes is not None else "" - fit['items'] = [] - - slotNum = {} - charges = {} - for module in ofit.modules: - if module.isEmpty: - continue - - item = nested_dict() - slot = module.slot - - if slot == Slot.SUBSYSTEM: - # Order of subsystem matters based on this attr. See GH issue #130 - slot = int(module.getModifiedItemAttr("subSystemSlot")) - item['flag'] = slot - else: - if slot not in slotNum: - slotNum[slot] = INV_FLAGS[slot] - - item['flag'] = slotNum[slot] - slotNum[slot] += 1 - - item['quantity'] = 1 - item['type_id'] = module.item.ID - fit['items'].append(item) - - if module.charge and sFit.serviceFittingOptions["exportCharges"]: - if module.chargeID not in charges: - charges[module.chargeID] = 0 - # `or 1` because some charges (ie scripts) are without qty - charges[module.chargeID] += module.numCharges or 1 - - for cargo in ofit.cargo: - item = nested_dict() - item['flag'] = INV_FLAG_CARGOBAY - item['quantity'] = cargo.amount - item['type_id'] = cargo.item.ID - fit['items'].append(item) - - for chargeID, amount in list(charges.items()): - item = nested_dict() - item['flag'] = INV_FLAG_CARGOBAY - item['quantity'] = amount - item['type_id'] = chargeID - fit['items'].append(item) - - for drone in ofit.drones: - item = nested_dict() - item['flag'] = INV_FLAG_DRONEBAY - item['quantity'] = drone.amount - item['type_id'] = drone.item.ID - fit['items'].append(item) - - for fighter in ofit.fighters: - item = nested_dict() - item['flag'] = INV_FLAG_FIGHTER - item['quantity'] = fighter.amountActive - item['type_id'] = fighter.item.ID - fit['items'].append(item) - - if len(fit['items']) == 0: - raise ESIExportException("Cannot export fitting: module list cannot be empty.") - - return json.dumps(fit) - @classmethod def importAuto(cls, string, path=None, activeFit=None, iportuser=None): # type: (basestring, basestring, object, IPortUser, basestring) -> object @@ -433,77 +335,6 @@ class Port(object): # Use DNA format for all other cases return "DNA", (cls.importDna(string),) - @staticmethod - def importESI(str_): - - sMkt = Market.getInstance() - fitobj = Fit() - refobj = json.loads(str_) - items = refobj['items'] - # "<" and ">" is replace to "<", ">" by EVE client - fitobj.name = refobj['name'] - # 2017/03/29: read description - fitobj.notes = refobj['description'] - - try: - ship = refobj['ship_type_id'] - try: - fitobj.ship = Ship(sMkt.getItem(ship)) - except ValueError: - fitobj.ship = Citadel(sMkt.getItem(ship)) - except: - pyfalog.warning("Caught exception in importESI") - return None - - items.sort(key=lambda k: k['flag']) - - moduleList = [] - for module in items: - try: - item = sMkt.getItem(module['type_id'], eager="group.category") - if not item.published: - continue - if module['flag'] == INV_FLAG_DRONEBAY: - d = Drone(item) - d.amount = module['quantity'] - fitobj.drones.append(d) - elif module['flag'] == INV_FLAG_CARGOBAY: - c = Cargo(item) - c.amount = module['quantity'] - fitobj.cargo.append(c) - elif module['flag'] == INV_FLAG_FIGHTER: - fighter = Fighter(item) - fitobj.fighters.append(fighter) - else: - try: - m = Module(item) - # When item can't be added to any slot (unknown item or just charge), ignore it - except ValueError: - pyfalog.debug("Item can't be added to any slot (unknown item or just charge)") - continue - # Add subsystems before modules to make sure T3 cruisers have subsystems installed - if item.category.name == "Subsystem": - if m.fits(fitobj): - fitobj.modules.append(m) - else: - if m.isValidState(State.ACTIVE): - m.state = State.ACTIVE - - moduleList.append(m) - - except: - pyfalog.warning("Could not process module.") - continue - - # Recalc to get slot numbers correct for T3 cruisers - svcFit.getInstance().recalc(fitobj) - - for module in moduleList: - if module.fits(fitobj): - fitobj.modules.append(module) - - return fitobj - @staticmethod def importXml(text, iportuser=None): # type: (str, IPortUser) -> list[eos.saveddata.fit.Fit] @@ -771,3 +602,12 @@ class Port(object): @staticmethod def exportDna(fit): return exportDna(fit) + + # ESI-related methods + @staticmethod + def importESI(string): + importESI(string) + + @staticmethod + def exportESI(fit): + exportESI(fit) From 4e5a70993e661f5ae5693b0868ef11f7d66ffcee Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 30 Aug 2018 16:15:23 +0300 Subject: [PATCH 081/110] Split XML facilities into their own file as well --- service/port/port.py | 331 +++---------------------------------------- service/port/xml.py | 325 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 342 insertions(+), 314 deletions(-) create mode 100644 service/port/xml.py diff --git a/service/port/port.py b/service/port/port.py index 97acaba98..045f5561e 100644 --- a/service/port/port.py +++ b/service/port/port.py @@ -19,135 +19,29 @@ import re import os -import xml.dom -from logbook import Logger -import collections -import json import threading -from bs4 import UnicodeDammit - - +import xml.dom +import xml.parsers.expat from codecs import open -import xml.parsers.expat +from bs4 import UnicodeDammit +from logbook import Logger from eos import db +from eos.saveddata.fit import ImplantLocation from service.fit import Fit as svcFit - -# noinspection PyPackageRequirements -import wx - -from eos.saveddata.cargo import Cargo -from eos.saveddata.drone import Drone -from eos.saveddata.fighter import Fighter -from eos.saveddata.module import Module, State, Slot -from eos.saveddata.ship import Ship -from eos.saveddata.citadel import Citadel -from eos.saveddata.fit import Fit, ImplantLocation -from service.market import Market -from utils.strfunctions import sequential_rep, replace_ltgt - from service.port.dna import exportDna, importDna from service.port.eft import EftPort, SLOT_ORDER as EFT_SLOT_ORDER from service.port.esi import importESI, exportESI from service.port.shared import IPortUser, UserCancelException, processing_notify - +from service.port.xml import importXml, exportXml pyfalog = Logger(__name__) - # 2017/04/05 NOTE: simple validation, for xml file RE_XML_START = r'<\?xml\s+version="1.0"\s*\?>' -# -- 170327 Ignored description -- -RE_LTGT = "&(lt|gt);" -L_MARK = "<localized hint="" -# <localized hint="([^"]+)">([^\*]+)\*<\/localized> -LOCALIZED_PATTERN = re.compile(r'([^\*]+)\*') - - -def _extract_match(t): - m = LOCALIZED_PATTERN.match(t) - # hint attribute, text content - return m.group(1), m.group(2) - - -def _resolve_ship(fitting, sMkt, b_localized): - # type: (xml.dom.minidom.Element, service.market.Market, bool) -> eos.saveddata.fit.Fit - """ NOTE: Since it is meaningless unless a correct ship object can be constructed, - process flow changed - """ - # ------ Confirm ship - # Maelstrom - shipType = fitting.getElementsByTagName("shipType").item(0).getAttribute("value") - anything = None - if b_localized: - # expect an official name, emergency cache - shipType, anything = _extract_match(shipType) - - limit = 2 - ship = None - while True: - must_retry = False - try: - try: - ship = Ship(sMkt.getItem(shipType)) - except ValueError: - ship = Citadel(sMkt.getItem(shipType)) - except Exception as e: - pyfalog.warning("Caught exception on _resolve_ship") - pyfalog.error(e) - limit -= 1 - if limit is 0: - break - shipType = anything - must_retry = True - if not must_retry: - break - - if ship is None: - raise Exception("cannot resolve ship type.") - - fitobj = Fit(ship=ship) - # ------ Confirm fit name - anything = fitting.getAttribute("name") - # 2017/03/29 NOTE: - # if fit name contained "<" or ">" then reprace to named html entity by EVE client - # if re.search(RE_LTGT, anything): - if "<" in anything or ">" in anything: - anything = replace_ltgt(anything) - fitobj.name = anything - - return fitobj - - -def _resolve_module(hardware, sMkt, b_localized): - # type: (xml.dom.minidom.Element, service.market.Market, bool) -> eos.saveddata.module.Module - moduleName = hardware.getAttribute("type") - emergency = None - if b_localized: - # expect an official name, emergency cache - moduleName, emergency = _extract_match(moduleName) - - item = None - limit = 2 - while True: - must_retry = False - try: - item = sMkt.getItem(moduleName, eager="group.category") - except Exception as e: - pyfalog.warning("Caught exception on _resolve_module") - pyfalog.error(e) - limit -= 1 - if limit is 0: - break - moduleName = emergency - must_retry = True - if not must_retry: - break - return item - class Port(object): """Service which houses all import/export format functions""" @@ -288,7 +182,7 @@ class Port(object): @staticmethod def importFitFromBuffer(bufferStr, activeFit=None): - # type: (basestring, object) -> object + # type: (str, object) -> object # TODO: catch the exception? # activeFit is reserved?, bufferStr is unicode? (assume only clipboard string? sFit = svcFit.getInstance() @@ -307,7 +201,7 @@ class Port(object): @classmethod def importAuto(cls, string, path=None, activeFit=None, iportuser=None): - # type: (basestring, basestring, object, IPortUser, basestring) -> object + # type: (Port, str, str, object, IPortUser) -> object # Get first line and strip space symbols of it to avoid possible detection errors firstLine = re.split("[\n\r]+", string.strip(), maxsplit=1)[0] firstLine = firstLine.strip() @@ -335,206 +229,6 @@ class Port(object): # Use DNA format for all other cases return "DNA", (cls.importDna(string),) - @staticmethod - def importXml(text, iportuser=None): - # type: (str, IPortUser) -> list[eos.saveddata.fit.Fit] - sMkt = Market.getInstance() - doc = xml.dom.minidom.parseString(text) - # NOTE: - # When L_MARK is included at this point, - # Decided to be localized data - b_localized = L_MARK in text - fittings = doc.getElementsByTagName("fittings").item(0) - fittings = fittings.getElementsByTagName("fitting") - fit_list = [] - failed = 0 - - for fitting in fittings: - try: - fitobj = _resolve_ship(fitting, sMkt, b_localized) - except: - failed += 1 - continue - - # -- 170327 Ignored description -- - # read description from exported xml. (EVE client, EFT) - description = fitting.getElementsByTagName("description").item(0).getAttribute("value") - if description is None: - description = "" - elif len(description): - # convert
to "\n" and remove html tags. - if Port.is_tag_replace(): - description = replace_ltgt( - sequential_rep(description, r"<(br|BR)>", "\n", r"<[^<>]+>", "") - ) - fitobj.notes = description - - hardwares = fitting.getElementsByTagName("hardware") - moduleList = [] - for hardware in hardwares: - try: - item = _resolve_module(hardware, sMkt, b_localized) - if not item or not item.published: - continue - - if item.category.name == "Drone": - d = Drone(item) - d.amount = int(hardware.getAttribute("qty")) - fitobj.drones.append(d) - elif item.category.name == "Fighter": - ft = Fighter(item) - ft.amount = int(hardware.getAttribute("qty")) if ft.amount <= ft.fighterSquadronMaxSize else ft.fighterSquadronMaxSize - fitobj.fighters.append(ft) - elif hardware.getAttribute("slot").lower() == "cargo": - # although the eve client only support charges in cargo, third-party programs - # may support items or "refits" in cargo. Support these by blindly adding all - # cargo, not just charges - c = Cargo(item) - c.amount = int(hardware.getAttribute("qty")) - fitobj.cargo.append(c) - else: - try: - m = Module(item) - # When item can't be added to any slot (unknown item or just charge), ignore it - except ValueError: - pyfalog.warning("item can't be added to any slot (unknown item or just charge), ignore it") - continue - # Add subsystems before modules to make sure T3 cruisers have subsystems installed - if item.category.name == "Subsystem": - if m.fits(fitobj): - m.owner = fitobj - fitobj.modules.append(m) - else: - if m.isValidState(State.ACTIVE): - m.state = State.ACTIVE - - moduleList.append(m) - - except KeyboardInterrupt: - pyfalog.warning("Keyboard Interrupt") - continue - - # Recalc to get slot numbers correct for T3 cruisers - svcFit.getInstance().recalc(fitobj) - - for module in moduleList: - if module.fits(fitobj): - module.owner = fitobj - fitobj.modules.append(module) - - fit_list.append(fitobj) - if iportuser: # NOTE: Send current processing status - processing_notify( - iportuser, IPortUser.PROCESS_IMPORT | IPortUser.ID_UPDATE, - "Processing %s\n%s" % (fitobj.ship.name, fitobj.name) - ) - - return fit_list - - @staticmethod - def exportXml(iportuser=None, *fits): - doc = xml.dom.minidom.Document() - fittings = doc.createElement("fittings") - # fit count - fit_count = len(fits) - fittings.setAttribute("count", "%s" % fit_count) - doc.appendChild(fittings) - sFit = svcFit.getInstance() - - for i, fit in enumerate(fits): - try: - fitting = doc.createElement("fitting") - fitting.setAttribute("name", fit.name) - fittings.appendChild(fitting) - description = doc.createElement("description") - # -- 170327 Ignored description -- - try: - notes = fit.notes # unicode - - if notes: - notes = notes[:397] + '...' if len(notes) > 400 else notes - - description.setAttribute( - "value", re.sub("(\r|\n|\r\n)+", "
", notes) if notes is not None else "" - ) - except Exception as e: - pyfalog.warning("read description is failed, msg=%s\n" % e.args) - - fitting.appendChild(description) - shipType = doc.createElement("shipType") - shipType.setAttribute("value", fit.ship.name) - fitting.appendChild(shipType) - - charges = {} - slotNum = {} - for module in fit.modules: - if module.isEmpty: - continue - - slot = module.slot - - if slot == Slot.SUBSYSTEM: - # Order of subsystem matters based on this attr. See GH issue #130 - slotId = module.getModifiedItemAttr("subSystemSlot") - 125 - else: - if slot not in slotNum: - slotNum[slot] = 0 - - slotId = slotNum[slot] - slotNum[slot] += 1 - - hardware = doc.createElement("hardware") - hardware.setAttribute("type", module.item.name) - slotName = Slot.getName(slot).lower() - slotName = slotName if slotName != "high" else "hi" - hardware.setAttribute("slot", "%s slot %d" % (slotName, slotId)) - fitting.appendChild(hardware) - - if module.charge and sFit.serviceFittingOptions["exportCharges"]: - if module.charge.name not in charges: - charges[module.charge.name] = 0 - # `or 1` because some charges (ie scripts) are without qty - charges[module.charge.name] += module.numCharges or 1 - - for drone in fit.drones: - hardware = doc.createElement("hardware") - hardware.setAttribute("qty", "%d" % drone.amount) - hardware.setAttribute("slot", "drone bay") - hardware.setAttribute("type", drone.item.name) - fitting.appendChild(hardware) - - for fighter in fit.fighters: - hardware = doc.createElement("hardware") - hardware.setAttribute("qty", "%d" % fighter.amountActive) - hardware.setAttribute("slot", "fighter bay") - hardware.setAttribute("type", fighter.item.name) - fitting.appendChild(hardware) - - for cargo in fit.cargo: - if cargo.item.name not in charges: - charges[cargo.item.name] = 0 - charges[cargo.item.name] += cargo.amount - - for name, qty in list(charges.items()): - hardware = doc.createElement("hardware") - hardware.setAttribute("qty", "%d" % qty) - hardware.setAttribute("slot", "cargo") - hardware.setAttribute("type", name) - fitting.appendChild(hardware) - except Exception as e: - # print("Failed on fitID: %d" % fit.ID) - pyfalog.error("Failed on fitID: %d, message: %s" % e.message) - continue - finally: - if iportuser: - processing_notify( - iportuser, IPortUser.PROCESS_EXPORT | IPortUser.ID_UPDATE, - (i, "convert to xml (%s/%s) %s" % (i + 1, fit_count, fit.ship.name)) - ) -# wx.CallAfter(callback, i, "(%s/%s) %s" % (i, fit_count, fit.ship.name)) - - return doc.toprettyxml() - @staticmethod def exportMultiBuy(fit): export = "%s\n" % fit.ship.item.name @@ -611,3 +305,12 @@ class Port(object): @staticmethod def exportESI(fit): exportESI(fit) + + # XML-related methods + @staticmethod + def importXml(text, iportuser=None): + return importXml(text, iportuser) + + @staticmethod + def exportXml(iportuser=None, *fits): + exportXml(iportuser, *fits) diff --git a/service/port/xml.py b/service/port/xml.py new file mode 100644 index 000000000..d5a5f08e0 --- /dev/null +++ b/service/port/xml.py @@ -0,0 +1,325 @@ +# ============================================================================= +# Copyright (C) 2014 Ryan Holmes +# +# This file is part of pyfa. +# +# pyfa is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# pyfa is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with pyfa. If not, see . +# ============================================================================= + +import re +import xml.dom +import xml.parsers.expat + +from logbook import Logger + +from eos.saveddata.cargo import Cargo +from eos.saveddata.citadel import Citadel +from eos.saveddata.drone import Drone +from eos.saveddata.fighter import Fighter +from eos.saveddata.fit import Fit +from eos.saveddata.module import Module, State, Slot +from eos.saveddata.ship import Ship +from service.fit import Fit as svcFit +from service.market import Market +from utils.strfunctions import sequential_rep, replace_ltgt + +from service.port.shared import IPortUser, processing_notify + + +pyfalog = Logger(__name__) + +# -- 170327 Ignored description -- +RE_LTGT = "&(lt|gt);" +L_MARK = "<localized hint="" +# <localized hint="([^"]+)">([^\*]+)\*<\/localized> +LOCALIZED_PATTERN = re.compile(r'([^\*]+)\*') + + +def _extract_match(t): + m = LOCALIZED_PATTERN.match(t) + # hint attribute, text content + return m.group(1), m.group(2) + + +def _resolve_ship(fitting, sMkt, b_localized): + # type: (xml.dom.minidom.Element, service.market.Market, bool) -> eos.saveddata.fit.Fit + """ NOTE: Since it is meaningless unless a correct ship object can be constructed, + process flow changed + """ + # ------ Confirm ship + # Maelstrom + shipType = fitting.getElementsByTagName("shipType").item(0).getAttribute("value") + anything = None + if b_localized: + # expect an official name, emergency cache + shipType, anything = _extract_match(shipType) + + limit = 2 + ship = None + while True: + must_retry = False + try: + try: + ship = Ship(sMkt.getItem(shipType)) + except ValueError: + ship = Citadel(sMkt.getItem(shipType)) + except Exception as e: + pyfalog.warning("Caught exception on _resolve_ship") + pyfalog.error(e) + limit -= 1 + if limit is 0: + break + shipType = anything + must_retry = True + if not must_retry: + break + + if ship is None: + raise Exception("cannot resolve ship type.") + + fitobj = Fit(ship=ship) + # ------ Confirm fit name + anything = fitting.getAttribute("name") + # 2017/03/29 NOTE: + # if fit name contained "<" or ">" then reprace to named html entity by EVE client + # if re.search(RE_LTGT, anything): + if "<" in anything or ">" in anything: + anything = replace_ltgt(anything) + fitobj.name = anything + + return fitobj + + +def _resolve_module(hardware, sMkt, b_localized): + # type: (xml.dom.minidom.Element, service.market.Market, bool) -> eos.saveddata.module.Module + moduleName = hardware.getAttribute("type") + emergency = None + if b_localized: + # expect an official name, emergency cache + moduleName, emergency = _extract_match(moduleName) + + item = None + limit = 2 + while True: + must_retry = False + try: + item = sMkt.getItem(moduleName, eager="group.category") + except Exception as e: + pyfalog.warning("Caught exception on _resolve_module") + pyfalog.error(e) + limit -= 1 + if limit is 0: + break + moduleName = emergency + must_retry = True + if not must_retry: + break + return item + + +def importXml(text, iportuser): + # type: (str, IPortUser) -> list[eos.saveddata.fit.Fit] + sMkt = Market.getInstance() + doc = xml.dom.minidom.parseString(text) + # NOTE: + # When L_MARK is included at this point, + # Decided to be localized data + b_localized = L_MARK in text + fittings = doc.getElementsByTagName("fittings").item(0) + fittings = fittings.getElementsByTagName("fitting") + fit_list = [] + failed = 0 + + for fitting in fittings: + try: + fitobj = _resolve_ship(fitting, sMkt, b_localized) + except: + failed += 1 + continue + + # -- 170327 Ignored description -- + # read description from exported xml. (EVE client, EFT) + description = fitting.getElementsByTagName("description").item(0).getAttribute("value") + if description is None: + description = "" + elif len(description): + # convert
to "\n" and remove html tags. + if Port.is_tag_replace(): + description = replace_ltgt( + sequential_rep(description, r"<(br|BR)>", "\n", r"<[^<>]+>", "") + ) + fitobj.notes = description + + hardwares = fitting.getElementsByTagName("hardware") + moduleList = [] + for hardware in hardwares: + try: + item = _resolve_module(hardware, sMkt, b_localized) + if not item or not item.published: + continue + + if item.category.name == "Drone": + d = Drone(item) + d.amount = int(hardware.getAttribute("qty")) + fitobj.drones.append(d) + elif item.category.name == "Fighter": + ft = Fighter(item) + ft.amount = int(hardware.getAttribute("qty")) if ft.amount <= ft.fighterSquadronMaxSize else ft.fighterSquadronMaxSize + fitobj.fighters.append(ft) + elif hardware.getAttribute("slot").lower() == "cargo": + # although the eve client only support charges in cargo, third-party programs + # may support items or "refits" in cargo. Support these by blindly adding all + # cargo, not just charges + c = Cargo(item) + c.amount = int(hardware.getAttribute("qty")) + fitobj.cargo.append(c) + else: + try: + m = Module(item) + # When item can't be added to any slot (unknown item or just charge), ignore it + except ValueError: + pyfalog.warning("item can't be added to any slot (unknown item or just charge), ignore it") + continue + # Add subsystems before modules to make sure T3 cruisers have subsystems installed + if item.category.name == "Subsystem": + if m.fits(fitobj): + m.owner = fitobj + fitobj.modules.append(m) + else: + if m.isValidState(State.ACTIVE): + m.state = State.ACTIVE + + moduleList.append(m) + + except KeyboardInterrupt: + pyfalog.warning("Keyboard Interrupt") + continue + + # Recalc to get slot numbers correct for T3 cruisers + svcFit.getInstance().recalc(fitobj) + + for module in moduleList: + if module.fits(fitobj): + module.owner = fitobj + fitobj.modules.append(module) + + fit_list.append(fitobj) + if iportuser: # NOTE: Send current processing status + processing_notify( + iportuser, IPortUser.PROCESS_IMPORT | IPortUser.ID_UPDATE, + "Processing %s\n%s" % (fitobj.ship.name, fitobj.name) + ) + + return fit_list + + +def exportXml(iportuser, *fits): + doc = xml.dom.minidom.Document() + fittings = doc.createElement("fittings") + # fit count + fit_count = len(fits) + fittings.setAttribute("count", "%s" % fit_count) + doc.appendChild(fittings) + sFit = svcFit.getInstance() + + for i, fit in enumerate(fits): + try: + fitting = doc.createElement("fitting") + fitting.setAttribute("name", fit.name) + fittings.appendChild(fitting) + description = doc.createElement("description") + # -- 170327 Ignored description -- + try: + notes = fit.notes # unicode + + if notes: + notes = notes[:397] + '...' if len(notes) > 400 else notes + + description.setAttribute( + "value", re.sub("(\r|\n|\r\n)+", "
", notes) if notes is not None else "" + ) + except Exception as e: + pyfalog.warning("read description is failed, msg=%s\n" % e.args) + + fitting.appendChild(description) + shipType = doc.createElement("shipType") + shipType.setAttribute("value", fit.ship.name) + fitting.appendChild(shipType) + + charges = {} + slotNum = {} + for module in fit.modules: + if module.isEmpty: + continue + + slot = module.slot + + if slot == Slot.SUBSYSTEM: + # Order of subsystem matters based on this attr. See GH issue #130 + slotId = module.getModifiedItemAttr("subSystemSlot") - 125 + else: + if slot not in slotNum: + slotNum[slot] = 0 + + slotId = slotNum[slot] + slotNum[slot] += 1 + + hardware = doc.createElement("hardware") + hardware.setAttribute("type", module.item.name) + slotName = Slot.getName(slot).lower() + slotName = slotName if slotName != "high" else "hi" + hardware.setAttribute("slot", "%s slot %d" % (slotName, slotId)) + fitting.appendChild(hardware) + + if module.charge and sFit.serviceFittingOptions["exportCharges"]: + if module.charge.name not in charges: + charges[module.charge.name] = 0 + # `or 1` because some charges (ie scripts) are without qty + charges[module.charge.name] += module.numCharges or 1 + + for drone in fit.drones: + hardware = doc.createElement("hardware") + hardware.setAttribute("qty", "%d" % drone.amount) + hardware.setAttribute("slot", "drone bay") + hardware.setAttribute("type", drone.item.name) + fitting.appendChild(hardware) + + for fighter in fit.fighters: + hardware = doc.createElement("hardware") + hardware.setAttribute("qty", "%d" % fighter.amountActive) + hardware.setAttribute("slot", "fighter bay") + hardware.setAttribute("type", fighter.item.name) + fitting.appendChild(hardware) + + for cargo in fit.cargo: + if cargo.item.name not in charges: + charges[cargo.item.name] = 0 + charges[cargo.item.name] += cargo.amount + + for name, qty in list(charges.items()): + hardware = doc.createElement("hardware") + hardware.setAttribute("qty", "%d" % qty) + hardware.setAttribute("slot", "cargo") + hardware.setAttribute("type", name) + fitting.appendChild(hardware) + except Exception as e: + pyfalog.error("Failed on fitID: %d, message: %s" % e.message) + continue + finally: + if iportuser: + processing_notify( + iportuser, IPortUser.PROCESS_EXPORT | IPortUser.ID_UPDATE, + (i, "convert to xml (%s/%s) %s" % (i + 1, fit_count, fit.ship.name)) + ) + return doc.toprettyxml() From 52dbd8d9ef98bbdcd7c164af305c633165198998 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 30 Aug 2018 16:17:56 +0300 Subject: [PATCH 082/110] Fix few export/import functions --- service/port/port.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/service/port/port.py b/service/port/port.py index 045f5561e..b821a126f 100644 --- a/service/port/port.py +++ b/service/port/port.py @@ -300,11 +300,11 @@ class Port(object): # ESI-related methods @staticmethod def importESI(string): - importESI(string) + return importESI(string) @staticmethod def exportESI(fit): - exportESI(fit) + return exportESI(fit) # XML-related methods @staticmethod @@ -313,4 +313,4 @@ class Port(object): @staticmethod def exportXml(iportuser=None, *fits): - exportXml(iportuser, *fits) + return exportXml(iportuser, *fits) From 8abad416bd5ca4045d94aadbedaaf9852f6e288d Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 30 Aug 2018 16:23:20 +0300 Subject: [PATCH 083/110] Split multibuy into its own file as well --- service/port/multibuy.py | 68 ++++++++++++++++++++++++++++++++++++++++ service/port/port.py | 63 +++++++------------------------------ 2 files changed, 80 insertions(+), 51 deletions(-) create mode 100644 service/port/multibuy.py diff --git a/service/port/multibuy.py b/service/port/multibuy.py new file mode 100644 index 000000000..2bf2d7a8a --- /dev/null +++ b/service/port/multibuy.py @@ -0,0 +1,68 @@ +# ============================================================================= +# Copyright (C) 2014 Ryan Holmes +# +# This file is part of pyfa. +# +# pyfa is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# pyfa is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with pyfa. If not, see . +# ============================================================================= + + +from service.fit import Fit as svcFit +from service.port.eft import SLOT_ORDER as EFT_SLOT_ORDER + + +def exportMultiBuy(fit): + export = "%s\n" % fit.ship.item.name + stuff = {} + sFit = svcFit.getInstance() + for module in fit.modules: + slot = module.slot + if slot not in stuff: + stuff[slot] = [] + curr = "%s\n" % module.item.name if module.item else "" + if module.charge and sFit.serviceFittingOptions["exportCharges"]: + curr += "%s x%s\n" % (module.charge.name, module.numCharges) + stuff[slot].append(curr) + + for slotType in EFT_SLOT_ORDER: + data = stuff.get(slotType) + if data is not None: + # export += "\n" + for curr in data: + export += curr + + if len(fit.drones) > 0: + for drone in fit.drones: + export += "%s x%s\n" % (drone.item.name, drone.amount) + + if len(fit.cargo) > 0: + for cargo in fit.cargo: + export += "%s x%s\n" % (cargo.item.name, cargo.amount) + + if len(fit.implants) > 0: + for implant in fit.implants: + export += "%s\n" % implant.item.name + + if len(fit.boosters) > 0: + for booster in fit.boosters: + export += "%s\n" % booster.item.name + + if len(fit.fighters) > 0: + for fighter in fit.fighters: + export += "%s x%s\n" % (fighter.item.name, fighter.amountActive) + + if export[-1] == "\n": + export = export[:-1] + + return export diff --git a/service/port/port.py b/service/port/port.py index b821a126f..bc09e301a 100644 --- a/service/port/port.py +++ b/service/port/port.py @@ -17,6 +17,7 @@ # along with pyfa. If not, see . # ============================================================================= + import re import os import threading @@ -31,8 +32,9 @@ from eos import db from eos.saveddata.fit import ImplantLocation from service.fit import Fit as svcFit from service.port.dna import exportDna, importDna -from service.port.eft import EftPort, SLOT_ORDER as EFT_SLOT_ORDER +from service.port.eft import EftPort from service.port.esi import importESI, exportESI +from service.port.multibuy import exportMultiBuy from service.port.shared import IPortUser, UserCancelException, processing_notify from service.port.xml import importXml, exportXml @@ -229,53 +231,7 @@ class Port(object): # Use DNA format for all other cases return "DNA", (cls.importDna(string),) - @staticmethod - def exportMultiBuy(fit): - export = "%s\n" % fit.ship.item.name - stuff = {} - sFit = svcFit.getInstance() - for module in fit.modules: - slot = module.slot - if slot not in stuff: - stuff[slot] = [] - curr = "%s\n" % module.item.name if module.item else "" - if module.charge and sFit.serviceFittingOptions["exportCharges"]: - curr += "%s x%s\n" % (module.charge.name, module.numCharges) - stuff[slot].append(curr) - - for slotType in EFT_SLOT_ORDER: - data = stuff.get(slotType) - if data is not None: - # export += "\n" - for curr in data: - export += curr - - if len(fit.drones) > 0: - for drone in fit.drones: - export += "%s x%s\n" % (drone.item.name, drone.amount) - - if len(fit.cargo) > 0: - for cargo in fit.cargo: - export += "%s x%s\n" % (cargo.item.name, cargo.amount) - - if len(fit.implants) > 0: - for implant in fit.implants: - export += "%s\n" % implant.item.name - - if len(fit.boosters) > 0: - for booster in fit.boosters: - export += "%s\n" % booster.item.name - - if len(fit.fighters) > 0: - for fighter in fit.fighters: - export += "%s x%s\n" % (fighter.item.name, fighter.amountActive) - - if export[-1] == "\n": - export = export[:-1] - - return export - - # EFT-related methods + ### EFT-related methods @staticmethod def importEft(eftString): return EftPort.importEft(eftString) @@ -288,7 +244,7 @@ class Port(object): def exportEft(cls, fit, options): return EftPort.exportEft(fit, options) - # DNA-related methods + ### DNA-related methods @staticmethod def importDna(string): return importDna(string) @@ -297,7 +253,7 @@ class Port(object): def exportDna(fit): return exportDna(fit) - # ESI-related methods + ### ESI-related methods @staticmethod def importESI(string): return importESI(string) @@ -306,7 +262,7 @@ class Port(object): def exportESI(fit): return exportESI(fit) - # XML-related methods + ### XML-related methods @staticmethod def importXml(text, iportuser=None): return importXml(text, iportuser) @@ -314,3 +270,8 @@ class Port(object): @staticmethod def exportXml(iportuser=None, *fits): return exportXml(iportuser, *fits) + + ### Multibuy-related methods + @staticmethod + def exportMultiBuy(fit): + return exportMultiBuy(fit) From f4311d1cefddd3933edfaf1acf87605c2caac325 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 30 Aug 2018 21:39:28 +0300 Subject: [PATCH 084/110] Remove object which we don't actually need --- service/port/eft.py | 1017 +++++++++++++++++++++--------------------- service/port/port.py | 10 +- 2 files changed, 511 insertions(+), 516 deletions(-) diff --git a/service/port/eft.py b/service/port/eft.py index 80640bfff..645a2ca2d 100644 --- a/service/port/eft.py +++ b/service/port/eft.py @@ -63,548 +63,543 @@ EFT_OPTIONS = { } -class EftPort: +def exportEft(fit, options): + # EFT formatted export is split in several sections, each section is + # separated from another using 2 blank lines. Sections might have several + # sub-sections, which are separated by 1 blank line + sections = [] - @classmethod - def exportEft(cls, fit, options): - # EFT formatted export is split in several sections, each section is - # separated from another using 2 blank lines. Sections might have several - # sub-sections, which are separated by 1 blank line - sections = [] + header = '[{}, {}]'.format(fit.ship.item.name, fit.name) - header = '[{}, {}]'.format(fit.ship.item.name, fit.name) + # Section 1: modules, rigs, subsystems, services + modsBySlotType = {} + sFit = svcFit.getInstance() + for module in fit.modules: + modsBySlotType.setdefault(module.slot, []).append(module) + modSection = [] - # Section 1: modules, rigs, subsystems, services - modsBySlotType = {} - sFit = svcFit.getInstance() - for module in fit.modules: - modsBySlotType.setdefault(module.slot, []).append(module) - modSection = [] - - mutants = {} # Format: {reference number: module} - mutantReference = 1 - for slotType in SLOT_ORDER: - rackLines = [] - modules = modsBySlotType.get(slotType, ()) - for module in modules: - if module.item: - mutated = bool(module.mutators) - # if module was mutated, use base item name for export - if mutated: - modName = module.baseItem.name - else: - modName = module.item.name - if mutated and options & Options.MUTATIONS.value: - mutants[mutantReference] = module - mutationSuffix = ' [{}]'.format(mutantReference) - mutantReference += 1 - else: - mutationSuffix = '' - modOfflineSuffix = ' {}'.format(OFFLINE_SUFFIX) if module.state == State.OFFLINE else '' - if module.charge and sFit.serviceFittingOptions['exportCharges']: - rackLines.append('{}, {}{}{}'.format( - modName, module.charge.name, modOfflineSuffix, mutationSuffix)) - else: - rackLines.append('{}{}{}'.format(modName, modOfflineSuffix, mutationSuffix)) + mutants = {} # Format: {reference number: module} + mutantReference = 1 + for slotType in SLOT_ORDER: + rackLines = [] + modules = modsBySlotType.get(slotType, ()) + for module in modules: + if module.item: + mutated = bool(module.mutators) + # if module was mutated, use base item name for export + if mutated: + modName = module.baseItem.name else: - rackLines.append('[Empty {} slot]'.format( - Slot.getName(slotType).capitalize() if slotType is not None else '')) - if rackLines: - modSection.append('\n'.join(rackLines)) - if modSection: - sections.append('\n\n'.join(modSection)) - - # Section 2: drones, fighters - minionSection = [] - droneLines = [] - for drone in sorted(fit.drones, key=lambda d: d.item.name): - droneLines.append('{} x{}'.format(drone.item.name, drone.amount)) - if droneLines: - minionSection.append('\n'.join(droneLines)) - fighterLines = [] - for fighter in sorted(fit.fighters, key=lambda f: f.item.name): - fighterLines.append('{} x{}'.format(fighter.item.name, fighter.amountActive)) - if fighterLines: - minionSection.append('\n'.join(fighterLines)) - if minionSection: - sections.append('\n\n'.join(minionSection)) - - # Section 3: implants, boosters - if options & Options.IMPLANTS.value: - charSection = [] - implantLines = [] - for implant in fit.implants: - implantLines.append(implant.item.name) - if implantLines: - charSection.append('\n'.join(implantLines)) - boosterLines = [] - for booster in fit.boosters: - boosterLines.append(booster.item.name) - if boosterLines: - charSection.append('\n'.join(boosterLines)) - if charSection: - sections.append('\n\n'.join(charSection)) - - # Section 4: cargo - cargoLines = [] - for cargo in sorted( - fit.cargo, - key=lambda c: (c.item.group.category.name, c.item.group.name, c.item.name) - ): - cargoLines.append('{} x{}'.format(cargo.item.name, cargo.amount)) - if cargoLines: - sections.append('\n'.join(cargoLines)) - - # Section 5: mutated modules' details - mutationLines = [] - if mutants and options & Options.MUTATIONS.value: - for mutantReference in sorted(mutants): - mutant = mutants[mutantReference] - mutatedAttrs = {} - for attrID, mutator in mutant.mutators.items(): - attrName = getAttributeInfo(attrID).name - mutatedAttrs[attrName] = mutator.value - mutationLines.append('[{}] {}'.format(mutantReference, mutant.baseItem.name)) - mutationLines.append(' {}'.format(mutant.mutaplasmid.item.name)) - # Round to 7th significant number to avoid exporting float errors - customAttrsLine = ', '.join( - '{} {}'.format(a, roundToPrec(mutatedAttrs[a], 7)) - for a in sorted(mutatedAttrs)) - mutationLines.append(' {}'.format(customAttrsLine)) - if mutationLines: - sections.append('\n'.join(mutationLines)) - - return '{}\n\n{}'.format(header, '\n\n\n'.join(sections)) - - @classmethod - def importEft(cls, eftString): - lines = cls.__prepareImportString(eftString) - try: - fit = cls.__createFit(lines) - except EftImportError: - return - - aFit = AbstractFit() - aFit.mutations = cls.__getMutationData(lines) - - nameChars = '[^,/\[\]]' # Characters which are allowed to be used in name - stubPattern = '^\[.+?\]$' - modulePattern = '^(?P{0}+?)(,\s*(?P{0}+?))?(?P\s*{1})?(\s*\[(?P\d+?)\])?$'.format(nameChars, OFFLINE_SUFFIX) - droneCargoPattern = '^(?P{}+?) x(?P\d+?)$'.format(nameChars) - - sections = [] - for section in cls.__importSectionIter(lines): - for line in section.lines: - # Stub line - if re.match(stubPattern, line): - section.itemSpecs.append(None) - continue - # Items with quantity specifier - m = re.match(droneCargoPattern, line) - if m: - try: - itemSpec = MultiItemSpec(m.group('typeName')) - # Items which cannot be fetched are considered as stubs - except EftImportError: - section.itemSpecs.append(None) - else: - itemSpec.amount = int(m.group('amount')) - section.itemSpecs.append(itemSpec) - continue - # All other items - m = re.match(modulePattern, line) - if m: - try: - itemSpec = RegularItemSpec(m.group('typeName'), chargeName=m.group('chargeName')) - # Items which cannot be fetched are considered as stubs - except EftImportError: - section.itemSpecs.append(None) - else: - if m.group('offline'): - itemSpec.offline = True - if m.group('mutation'): - itemSpec.mutationIdx = int(m.group('mutation')) - section.itemSpecs.append(itemSpec) - continue - clearTail(section.itemSpecs) - sections.append(section) - - - hasDroneBay = any(s.isDroneBay for s in sections) - hasFighterBay = any(s.isFighterBay for s in sections) - for section in sections: - if section.isModuleRack: - aFit.addModules(section.itemSpecs) - elif section.isImplantRack: - for itemSpec in section.itemSpecs: - aFit.addImplant(itemSpec) - elif section.isDroneBay: - for itemSpec in section.itemSpecs: - aFit.addDrone(itemSpec) - elif section.isFighterBay: - for itemSpec in section.itemSpecs: - aFit.addFighter(itemSpec) - elif section.isCargoHold: - for itemSpec in section.itemSpecs: - aFit.addCargo(itemSpec) - # Mix between different kinds of item specs (can happen when some - # blank lines are removed) + modName = module.item.name + if mutated and options & Options.MUTATIONS.value: + mutants[mutantReference] = module + mutationSuffix = ' [{}]'.format(mutantReference) + mutantReference += 1 + else: + mutationSuffix = '' + modOfflineSuffix = ' {}'.format(OFFLINE_SUFFIX) if module.state == State.OFFLINE else '' + if module.charge and sFit.serviceFittingOptions['exportCharges']: + rackLines.append('{}, {}{}{}'.format( + modName, module.charge.name, modOfflineSuffix, mutationSuffix)) + else: + rackLines.append('{}{}{}'.format(modName, modOfflineSuffix, mutationSuffix)) else: - for itemSpec in section.itemSpecs: - if itemSpec is None: - continue - if itemSpec.isModule: - aFit.addModule(itemSpec) - elif itemSpec.isImplant: - aFit.addImplant(itemSpec) - elif itemSpec.isDrone and not hasDroneBay: - aFit.addDrone(itemSpec) - elif itemSpec.isFighter and not hasFighterBay: - aFit.addFighter(itemSpec) - elif itemSpec.isCargo: - aFit.addCargo(itemSpec) + rackLines.append('[Empty {} slot]'.format( + Slot.getName(slotType).capitalize() if slotType is not None else '')) + if rackLines: + modSection.append('\n'.join(rackLines)) + if modSection: + sections.append('\n\n'.join(modSection)) - # Subsystems first because they modify slot amount - for m in aFit.subsystems: + # Section 2: drones, fighters + minionSection = [] + droneLines = [] + for drone in sorted(fit.drones, key=lambda d: d.item.name): + droneLines.append('{} x{}'.format(drone.item.name, drone.amount)) + if droneLines: + minionSection.append('\n'.join(droneLines)) + fighterLines = [] + for fighter in sorted(fit.fighters, key=lambda f: f.item.name): + fighterLines.append('{} x{}'.format(fighter.item.name, fighter.amountActive)) + if fighterLines: + minionSection.append('\n'.join(fighterLines)) + if minionSection: + sections.append('\n\n'.join(minionSection)) + + # Section 3: implants, boosters + if options & Options.IMPLANTS.value: + charSection = [] + implantLines = [] + for implant in fit.implants: + implantLines.append(implant.item.name) + if implantLines: + charSection.append('\n'.join(implantLines)) + boosterLines = [] + for booster in fit.boosters: + boosterLines.append(booster.item.name) + if boosterLines: + charSection.append('\n'.join(boosterLines)) + if charSection: + sections.append('\n\n'.join(charSection)) + + # Section 4: cargo + cargoLines = [] + for cargo in sorted( + fit.cargo, + key=lambda c: (c.item.group.category.name, c.item.group.name, c.item.name) + ): + cargoLines.append('{} x{}'.format(cargo.item.name, cargo.amount)) + if cargoLines: + sections.append('\n'.join(cargoLines)) + + # Section 5: mutated modules' details + mutationLines = [] + if mutants and options & Options.MUTATIONS.value: + for mutantReference in sorted(mutants): + mutant = mutants[mutantReference] + mutatedAttrs = {} + for attrID, mutator in mutant.mutators.items(): + attrName = getAttributeInfo(attrID).name + mutatedAttrs[attrName] = mutator.value + mutationLines.append('[{}] {}'.format(mutantReference, mutant.baseItem.name)) + mutationLines.append(' {}'.format(mutant.mutaplasmid.item.name)) + # Round to 7th significant number to avoid exporting float errors + customAttrsLine = ', '.join( + '{} {}'.format(a, roundToPrec(mutatedAttrs[a], 7)) + for a in sorted(mutatedAttrs)) + mutationLines.append(' {}'.format(customAttrsLine)) + if mutationLines: + sections.append('\n'.join(mutationLines)) + + return '{}\n\n{}'.format(header, '\n\n\n'.join(sections)) + + +def importEft(eftString): + lines = _importPrepareString(eftString) + try: + fit = _importCreateFit(lines) + except EftImportError: + return + + aFit = AbstractFit() + aFit.mutations = _importGetMutationData(lines) + + nameChars = '[^,/\[\]]' # Characters which are allowed to be used in name + stubPattern = '^\[.+?\]$' + modulePattern = '^(?P{0}+?)(,\s*(?P{0}+?))?(?P\s*{1})?(\s*\[(?P\d+?)\])?$'.format(nameChars, OFFLINE_SUFFIX) + droneCargoPattern = '^(?P{}+?) x(?P\d+?)$'.format(nameChars) + + sections = [] + for section in _importSectionIter(lines): + for line in section.lines: + # Stub line + if re.match(stubPattern, line): + section.itemSpecs.append(None) + continue + # Items with quantity specifier + m = re.match(droneCargoPattern, line) + if m: + try: + itemSpec = MultiItemSpec(m.group('typeName')) + # Items which cannot be fetched are considered as stubs + except EftImportError: + section.itemSpecs.append(None) + else: + itemSpec.amount = int(m.group('amount')) + section.itemSpecs.append(itemSpec) + continue + # All other items + m = re.match(modulePattern, line) + if m: + try: + itemSpec = RegularItemSpec(m.group('typeName'), chargeName=m.group('chargeName')) + # Items which cannot be fetched are considered as stubs + except EftImportError: + section.itemSpecs.append(None) + else: + if m.group('offline'): + itemSpec.offline = True + if m.group('mutation'): + itemSpec.mutationIdx = int(m.group('mutation')) + section.itemSpecs.append(itemSpec) + continue + _clearTail(section.itemSpecs) + sections.append(section) + + + hasDroneBay = any(s.isDroneBay for s in sections) + hasFighterBay = any(s.isFighterBay for s in sections) + for section in sections: + if section.isModuleRack: + aFit.addModules(section.itemSpecs) + elif section.isImplantRack: + for itemSpec in section.itemSpecs: + aFit.addImplant(itemSpec) + elif section.isDroneBay: + for itemSpec in section.itemSpecs: + aFit.addDrone(itemSpec) + elif section.isFighterBay: + for itemSpec in section.itemSpecs: + aFit.addFighter(itemSpec) + elif section.isCargoHold: + for itemSpec in section.itemSpecs: + aFit.addCargo(itemSpec) + # Mix between different kinds of item specs (can happen when some + # blank lines are removed) + else: + for itemSpec in section.itemSpecs: + if itemSpec is None: + continue + if itemSpec.isModule: + aFit.addModule(itemSpec) + elif itemSpec.isImplant: + aFit.addImplant(itemSpec) + elif itemSpec.isDrone and not hasDroneBay: + aFit.addDrone(itemSpec) + elif itemSpec.isFighter and not hasFighterBay: + aFit.addFighter(itemSpec) + elif itemSpec.isCargo: + aFit.addCargo(itemSpec) + + # Subsystems first because they modify slot amount + for m in aFit.subsystems: + if m is None: + dummy = Module.buildEmpty(aFit.getSlotByContainer(aFit.subsystems)) + dummy.owner = fit + fit.modules.appendIgnoreEmpty(dummy) + elif m.fits(fit): + m.owner = fit + fit.modules.appendIgnoreEmpty(m) + svcFit.getInstance().recalc(fit) + + # Other stuff + for modRack in ( + aFit.rigs, + aFit.services, + aFit.modulesHigh, + aFit.modulesMed, + aFit.modulesLow, + ): + for m in modRack: if m is None: - dummy = Module.buildEmpty(aFit.getSlotByContainer(aFit.subsystems)) + dummy = Module.buildEmpty(aFit.getSlotByContainer(modRack)) dummy.owner = fit fit.modules.appendIgnoreEmpty(dummy) elif m.fits(fit): m.owner = fit + if not m.isValidState(m.state): + pyfalog.warning('EftPort.importEft: module {} cannot have state {}', m, m.state) fit.modules.appendIgnoreEmpty(m) - svcFit.getInstance().recalc(fit) + for implant in aFit.implants: + fit.implants.append(implant) + for booster in aFit.boosters: + fit.boosters.append(booster) + for drone in aFit.drones.values(): + fit.drones.append(drone) + for fighter in aFit.fighters: + fit.fighters.append(fighter) + for cargo in aFit.cargo.values(): + fit.cargo.append(cargo) - # Other stuff - for modRack in ( - aFit.rigs, - aFit.services, - aFit.modulesHigh, - aFit.modulesMed, - aFit.modulesLow, - ): - for m in modRack: - if m is None: - dummy = Module.buildEmpty(aFit.getSlotByContainer(modRack)) - dummy.owner = fit - fit.modules.appendIgnoreEmpty(dummy) - elif m.fits(fit): - m.owner = fit - if not m.isValidState(m.state): - pyfalog.warning('EftPort.importEft: module {} cannot have state {}', m, m.state) - fit.modules.appendIgnoreEmpty(m) - for implant in aFit.implants: - fit.implants.append(implant) - for booster in aFit.boosters: - fit.boosters.append(booster) - for drone in aFit.drones.values(): - fit.drones.append(drone) - for fighter in aFit.fighters: - fit.fighters.append(fighter) - for cargo in aFit.cargo.values(): - fit.cargo.append(cargo) + return fit - return fit - @staticmethod - def importEftCfg(shipname, contents, iportuser): - """Handle import from EFT config store file""" +def importEftCfg(shipname, contents, iportuser): + """Handle import from EFT config store file""" + + # Check if we have such ship in database, bail if we don't + sMkt = Market.getInstance() + try: + sMkt.getItem(shipname) + except: + return [] # empty list is expected + + fits = [] # List for fits + fitIndices = [] # List for starting line numbers for each fit + lines = re.split('[\n\r]+', contents) # Separate string into lines + + for line in lines: + # Detect fit header + if line[:1] == "[" and line[-1:] == "]": + # Line index where current fit starts + startPos = lines.index(line) + fitIndices.append(startPos) + + for i, startPos in enumerate(fitIndices): + # End position is last file line if we're trying to get it for last fit, + # or start position of next fit minus 1 + endPos = len(lines) if i == len(fitIndices) - 1 else fitIndices[i + 1] + + # Finally, get lines for current fitting + fitLines = lines[startPos:endPos] - # Check if we have such ship in database, bail if we don't - sMkt = Market.getInstance() try: - sMkt.getItem(shipname) - except: - return [] # empty list is expected - - fits = [] # List for fits - fitIndices = [] # List for starting line numbers for each fit - lines = re.split('[\n\r]+', contents) # Separate string into lines - - for line in lines: - # Detect fit header - if line[:1] == "[" and line[-1:] == "]": - # Line index where current fit starts - startPos = lines.index(line) - fitIndices.append(startPos) - - for i, startPos in enumerate(fitIndices): - # End position is last file line if we're trying to get it for last fit, - # or start position of next fit minus 1 - endPos = len(lines) if i == len(fitIndices) - 1 else fitIndices[i + 1] - - # Finally, get lines for current fitting - fitLines = lines[startPos:endPos] - + # Create fit object + fitobj = Fit() + # Strip square brackets and pull out a fit name + fitobj.name = fitLines[0][1:-1] + # Assign ship to fitting try: - # Create fit object - fitobj = Fit() - # Strip square brackets and pull out a fit name - fitobj.name = fitLines[0][1:-1] - # Assign ship to fitting - try: - fitobj.ship = Ship(sMkt.getItem(shipname)) - except ValueError: - fitobj.ship = Citadel(sMkt.getItem(shipname)) + fitobj.ship = Ship(sMkt.getItem(shipname)) + except ValueError: + fitobj.ship = Citadel(sMkt.getItem(shipname)) - moduleList = [] - for x in range(1, len(fitLines)): - line = fitLines[x] - if not line: + moduleList = [] + for x in range(1, len(fitLines)): + line = fitLines[x] + if not line: + continue + + # Parse line into some data we will need + misc = re.match("(Drones|Implant|Booster)_(Active|Inactive)=(.+)", line) + cargo = re.match("Cargohold=(.+)", line) + # 2017/03/27 NOTE: store description from EFT + description = re.match("Description=(.+)", line) + + if misc: + entityType = misc.group(1) + entityState = misc.group(2) + entityData = misc.group(3) + if entityType == "Drones": + droneData = re.match("(.+),([0-9]+)", entityData) + # Get drone name and attempt to detect drone number + droneName = droneData.group(1) if droneData else entityData + droneAmount = int(droneData.group(2)) if droneData else 1 + # Bail if we can't get item or it's not from drone category + try: + droneItem = sMkt.getItem(droneName, eager="group.category") + except: + pyfalog.warning("Cannot get item.") + continue + if droneItem.category.name == "Drone": + # Add drone to the fitting + d = Drone(droneItem) + d.amount = droneAmount + if entityState == "Active": + d.amountActive = droneAmount + elif entityState == "Inactive": + d.amountActive = 0 + fitobj.drones.append(d) + elif droneItem.category.name == "Fighter": # EFT saves fighter as drones + ft = Fighter(droneItem) + ft.amount = int(droneAmount) if ft.amount <= ft.fighterSquadronMaxSize else ft.fighterSquadronMaxSize + fitobj.fighters.append(ft) + else: + continue + elif entityType == "Implant": + # Bail if we can't get item or it's not from implant category + try: + implantItem = sMkt.getItem(entityData, eager="group.category") + except: + pyfalog.warning("Cannot get item.") + continue + if implantItem.category.name != "Implant": + continue + # Add implant to the fitting + imp = Implant(implantItem) + if entityState == "Active": + imp.active = True + elif entityState == "Inactive": + imp.active = False + fitobj.implants.append(imp) + elif entityType == "Booster": + # Bail if we can't get item or it's not from implant category + try: + boosterItem = sMkt.getItem(entityData, eager="group.category") + except: + pyfalog.warning("Cannot get item.") + continue + # All boosters have implant category + if boosterItem.category.name != "Implant": + continue + # Add booster to the fitting + b = Booster(boosterItem) + if entityState == "Active": + b.active = True + elif entityState == "Inactive": + b.active = False + fitobj.boosters.append(b) + # If we don't have any prefixes, then it's a module + elif cargo: + cargoData = re.match("(.+),([0-9]+)", cargo.group(1)) + cargoName = cargoData.group(1) if cargoData else cargo.group(1) + cargoAmount = int(cargoData.group(2)) if cargoData else 1 + # Bail if we can't get item + try: + item = sMkt.getItem(cargoName) + except: + pyfalog.warning("Cannot get item.") + continue + # Add Cargo to the fitting + c = Cargo(item) + c.amount = cargoAmount + fitobj.cargo.append(c) + # 2017/03/27 NOTE: store description from EFT + elif description: + fitobj.notes = description.group(1).replace("|", "\n") + else: + withCharge = re.match("(.+),(.+)", line) + modName = withCharge.group(1) if withCharge else line + chargeName = withCharge.group(2) if withCharge else None + # If we can't get module item, skip it + try: + modItem = sMkt.getItem(modName) + except: + pyfalog.warning("Cannot get item.") continue - # Parse line into some data we will need - misc = re.match("(Drones|Implant|Booster)_(Active|Inactive)=(.+)", line) - cargo = re.match("Cargohold=(.+)", line) - # 2017/03/27 NOTE: store description from EFT - description = re.match("Description=(.+)", line) + # Create module + m = Module(modItem) - if misc: - entityType = misc.group(1) - entityState = misc.group(2) - entityData = misc.group(3) - if entityType == "Drones": - droneData = re.match("(.+),([0-9]+)", entityData) - # Get drone name and attempt to detect drone number - droneName = droneData.group(1) if droneData else entityData - droneAmount = int(droneData.group(2)) if droneData else 1 - # Bail if we can't get item or it's not from drone category - try: - droneItem = sMkt.getItem(droneName, eager="group.category") - except: - pyfalog.warning("Cannot get item.") - continue - if droneItem.category.name == "Drone": - # Add drone to the fitting - d = Drone(droneItem) - d.amount = droneAmount - if entityState == "Active": - d.amountActive = droneAmount - elif entityState == "Inactive": - d.amountActive = 0 - fitobj.drones.append(d) - elif droneItem.category.name == "Fighter": # EFT saves fighter as drones - ft = Fighter(droneItem) - ft.amount = int(droneAmount) if ft.amount <= ft.fighterSquadronMaxSize else ft.fighterSquadronMaxSize - fitobj.fighters.append(ft) - else: - continue - elif entityType == "Implant": - # Bail if we can't get item or it's not from implant category - try: - implantItem = sMkt.getItem(entityData, eager="group.category") - except: - pyfalog.warning("Cannot get item.") - continue - if implantItem.category.name != "Implant": - continue - # Add implant to the fitting - imp = Implant(implantItem) - if entityState == "Active": - imp.active = True - elif entityState == "Inactive": - imp.active = False - fitobj.implants.append(imp) - elif entityType == "Booster": - # Bail if we can't get item or it's not from implant category - try: - boosterItem = sMkt.getItem(entityData, eager="group.category") - except: - pyfalog.warning("Cannot get item.") - continue - # All boosters have implant category - if boosterItem.category.name != "Implant": - continue - # Add booster to the fitting - b = Booster(boosterItem) - if entityState == "Active": - b.active = True - elif entityState == "Inactive": - b.active = False - fitobj.boosters.append(b) - # If we don't have any prefixes, then it's a module - elif cargo: - cargoData = re.match("(.+),([0-9]+)", cargo.group(1)) - cargoName = cargoData.group(1) if cargoData else cargo.group(1) - cargoAmount = int(cargoData.group(2)) if cargoData else 1 - # Bail if we can't get item - try: - item = sMkt.getItem(cargoName) - except: - pyfalog.warning("Cannot get item.") - continue - # Add Cargo to the fitting - c = Cargo(item) - c.amount = cargoAmount - fitobj.cargo.append(c) - # 2017/03/27 NOTE: store description from EFT - elif description: - fitobj.notes = description.group(1).replace("|", "\n") + # Add subsystems before modules to make sure T3 cruisers have subsystems installed + if modItem.category.name == "Subsystem": + if m.fits(fitobj): + fitobj.modules.append(m) else: - withCharge = re.match("(.+),(.+)", line) - modName = withCharge.group(1) if withCharge else line - chargeName = withCharge.group(2) if withCharge else None - # If we can't get module item, skip it - try: - modItem = sMkt.getItem(modName) - except: - pyfalog.warning("Cannot get item.") - continue + m.owner = fitobj + # Activate mod if it is activable + if m.isValidState(State.ACTIVE): + m.state = State.ACTIVE + # Add charge to mod if applicable, on any errors just don't add anything + if chargeName: + try: + chargeItem = sMkt.getItem(chargeName, eager="group.category") + if chargeItem.category.name == "Charge": + m.charge = chargeItem + except: + pyfalog.warning("Cannot get item.") + pass + # Append module to fit + moduleList.append(m) - # Create module - m = Module(modItem) + # Recalc to get slot numbers correct for T3 cruisers + svcFit.getInstance().recalc(fitobj) - # Add subsystems before modules to make sure T3 cruisers have subsystems installed - if modItem.category.name == "Subsystem": - if m.fits(fitobj): - fitobj.modules.append(m) - else: - m.owner = fitobj - # Activate mod if it is activable - if m.isValidState(State.ACTIVE): - m.state = State.ACTIVE - # Add charge to mod if applicable, on any errors just don't add anything - if chargeName: - try: - chargeItem = sMkt.getItem(chargeName, eager="group.category") - if chargeItem.category.name == "Charge": - m.charge = chargeItem - except: - pyfalog.warning("Cannot get item.") - pass - # Append module to fit - moduleList.append(m) + for module in moduleList: + if module.fits(fitobj): + fitobj.modules.append(module) - # Recalc to get slot numbers correct for T3 cruisers - svcFit.getInstance().recalc(fitobj) + # Append fit to list of fits + fits.append(fitobj) - for module in moduleList: - if module.fits(fitobj): - fitobj.modules.append(module) + if iportuser: # NOTE: Send current processing status + processing_notify( + iportuser, IPortUser.PROCESS_IMPORT | IPortUser.ID_UPDATE, + "%s:\n%s" % (fitobj.ship.name, fitobj.name) + ) - # Append fit to list of fits - fits.append(fitobj) + # Skip fit silently if we get an exception + except Exception as e: + pyfalog.error("Caught exception on fit.") + pyfalog.error(e) + pass - if iportuser: # NOTE: Send current processing status - processing_notify( - iportuser, IPortUser.PROCESS_IMPORT | IPortUser.ID_UPDATE, - "%s:\n%s" % (fitobj.ship.name, fitobj.name) - ) + return fits - # Skip fit silently if we get an exception - except Exception as e: - pyfalog.error("Caught exception on fit.") - pyfalog.error(e) - pass - return fits +def _importPrepareString(eftString): + lines = eftString.splitlines() + for i in range(len(lines)): + lines[i] = lines[i].strip() + while lines and not lines[0]: + del lines[0] + while lines and not lines[-1]: + del lines[-1] + return lines - @staticmethod - def __prepareImportString(eftString): - lines = eftString.splitlines() - for i in range(len(lines)): - lines[i] = lines[i].strip() - while lines and not lines[0]: - del lines[0] - while lines and not lines[-1]: - del lines[-1] - return lines - - @staticmethod - def __getMutationData(lines): - data = {} - consumedIndices = set() - for i in range(len(lines)): - line = lines[i] - m = re.match('^\[(?P\d+)\]', line) - if m: - ref = int(m.group('ref')) - # Attempt to apply mutation is useless w/o mutaplasmid, so skip it - # altogether if we have no info on it - try: - mutaName = lines[i + 1] - except IndexError: - continue - else: - consumedIndices.add(i) - consumedIndices.add(i + 1) - # Get custom attribute values - mutaAttrs = {} - try: - mutaAttrsLine = lines[i + 2] - except IndexError: - pass - else: - consumedIndices.add(i + 2) - pairs = [p.strip() for p in mutaAttrsLine.split(',')] - for pair in pairs: - try: - attrName, value = pair.split(' ') - except ValueError: - continue - try: - value = float(value) - except (ValueError, TypeError): - continue - attrInfo = getAttributeInfo(attrName.strip()) - if attrInfo is None: - continue - mutaAttrs[attrInfo.ID] = value - mutaItem = fetchItem(mutaName) - if mutaItem is None: - continue - data[ref] = (mutaItem, mutaAttrs) - # If we got here, we have seen at least correct reference line and - # mutaplasmid name line - i += 2 - # Bonus points for seeing correct attrs line. Worst case we - # will have to scan it once again - if mutaAttrs: - i += 1 - # Cleanup the lines from mutaplasmid info - for i in sorted(consumedIndices, reverse=True): - del lines[i] - return data - - @staticmethod - def __importSectionIter(lines): - section = Section() - for line in lines: - if not line: - if section.lines: - yield section - section = Section() - else: - section.lines.append(line) - if section.lines: - yield section - - @staticmethod - def __createFit(lines): - """Create fit and set top-level entity (ship or citadel).""" - fit = Fit() - header = lines.pop(0) - m = re.match('\[(?P[\w\s]+),\s*(?P.+)\]', header) - if not m: - pyfalog.warning('EftPort.importEft: corrupted fit header') - raise EftImportError - shipType = m.group('shipType').strip() - fitName = m.group('fitName').strip() - try: - ship = fetchItem(shipType) +def _importGetMutationData(lines): + data = {} + consumedIndices = set() + for i in range(len(lines)): + line = lines[i] + m = re.match('^\[(?P\d+)\]', line) + if m: + ref = int(m.group('ref')) + # Attempt to apply mutation is useless w/o mutaplasmid, so skip it + # altogether if we have no info on it try: - fit.ship = Ship(ship) - except ValueError: - fit.ship = Citadel(ship) - fit.name = fitName - except: - pyfalog.warning('EftPort.importEft: exception caught when parsing header') - raise EftImportError - return fit + mutaName = lines[i + 1] + except IndexError: + continue + else: + consumedIndices.add(i) + consumedIndices.add(i + 1) + # Get custom attribute values + mutaAttrs = {} + try: + mutaAttrsLine = lines[i + 2] + except IndexError: + pass + else: + consumedIndices.add(i + 2) + pairs = [p.strip() for p in mutaAttrsLine.split(',')] + for pair in pairs: + try: + attrName, value = pair.split(' ') + except ValueError: + continue + try: + value = float(value) + except (ValueError, TypeError): + continue + attrInfo = getAttributeInfo(attrName.strip()) + if attrInfo is None: + continue + mutaAttrs[attrInfo.ID] = value + mutaItem = _fetchItem(mutaName) + if mutaItem is None: + continue + data[ref] = (mutaItem, mutaAttrs) + # If we got here, we have seen at least correct reference line and + # mutaplasmid name line + i += 2 + # Bonus points for seeing correct attrs line. Worst case we + # will have to scan it once again + if mutaAttrs: + i += 1 + # Cleanup the lines from mutaplasmid info + for i in sorted(consumedIndices, reverse=True): + del lines[i] + return data -# Various methods and functions which assist with EFT import-export -def fetchItem(typeName, eagerCat=False): +def _importSectionIter(lines): + section = Section() + for line in lines: + if not line: + if section.lines: + yield section + section = Section() + else: + section.lines.append(line) + if section.lines: + yield section + + +def _importCreateFit(lines): + """Create fit and set top-level entity (ship or citadel).""" + fit = Fit() + header = lines.pop(0) + m = re.match('\[(?P[\w\s]+),\s*(?P.+)\]', header) + if not m: + pyfalog.warning('EftPort.importEft: corrupted fit header') + raise EftImportError + shipType = m.group('shipType').strip() + fitName = m.group('fitName').strip() + try: + ship = _fetchItem(shipType) + try: + fit.ship = Ship(ship) + except ValueError: + fit.ship = Citadel(ship) + fit.name = fitName + except: + pyfalog.warning('EftPort.importEft: exception caught when parsing header') + raise EftImportError + return fit + + +def _fetchItem(typeName, eagerCat=False): sMkt = Market.getInstance() eager = 'group.category' if eagerCat else None try: @@ -618,7 +613,7 @@ def fetchItem(typeName, eagerCat=False): return None -def clearTail(lst): +def _clearTail(lst): while lst and lst[-1] is None: del lst[-1] @@ -672,7 +667,7 @@ class Section: class BaseItemSpec: def __init__(self, typeName): - item = fetchItem(typeName, eagerCat=True) + item = _fetchItem(typeName, eagerCat=True) if item is None: raise EftImportError self.typeName = typeName @@ -709,7 +704,7 @@ class RegularItemSpec(BaseItemSpec): def __fetchCharge(self, chargeName): if chargeName: - charge = fetchItem(chargeName, eagerCat=True) + charge = _fetchItem(chargeName, eagerCat=True) if not charge or charge.category.name != 'Charge': charge = None else: @@ -800,7 +795,7 @@ class AbstractFit: continue modules.append(m) slotTypes.add(m.slot) - clearTail(modules) + _clearTail(modules) # If all the modules have same slot type, put them to appropriate # container with stubs if len(slotTypes) == 1: diff --git a/service/port/port.py b/service/port/port.py index bc09e301a..021b89e07 100644 --- a/service/port/port.py +++ b/service/port/port.py @@ -32,8 +32,8 @@ from eos import db from eos.saveddata.fit import ImplantLocation from service.fit import Fit as svcFit from service.port.dna import exportDna, importDna -from service.port.eft import EftPort -from service.port.esi import importESI, exportESI +from service.port.eft import exportEft, importEft, importEftCfg +from service.port.esi import exportESI, importESI from service.port.multibuy import exportMultiBuy from service.port.shared import IPortUser, UserCancelException, processing_notify from service.port.xml import importXml, exportXml @@ -234,15 +234,15 @@ class Port(object): ### EFT-related methods @staticmethod def importEft(eftString): - return EftPort.importEft(eftString) + return importEft(eftString) @staticmethod def importEftCfg(shipname, contents, iportuser=None): - return EftPort.importEftCfg(shipname, contents, iportuser) + return importEftCfg(shipname, contents, iportuser) @classmethod def exportEft(cls, fit, options): - return EftPort.exportEft(fit, options) + return exportEft(fit, options) ### DNA-related methods @staticmethod From b05f1573c699e8e6b5e95cc22ad6fb1b199a0685 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 30 Aug 2018 21:41:50 +0300 Subject: [PATCH 085/110] Fix log messages --- service/port/eft.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/service/port/eft.py b/service/port/eft.py index 645a2ca2d..fbcd4c3b2 100644 --- a/service/port/eft.py +++ b/service/port/eft.py @@ -288,7 +288,7 @@ def importEft(eftString): elif m.fits(fit): m.owner = fit if not m.isValidState(m.state): - pyfalog.warning('EftPort.importEft: module {} cannot have state {}', m, m.state) + pyfalog.warning('service.port.eft.importEft: module {} cannot have state {}', m, m.state) fit.modules.appendIgnoreEmpty(m) for implant in aFit.implants: fit.implants.append(implant) @@ -582,7 +582,7 @@ def _importCreateFit(lines): header = lines.pop(0) m = re.match('\[(?P[\w\s]+),\s*(?P.+)\]', header) if not m: - pyfalog.warning('EftPort.importEft: corrupted fit header') + pyfalog.warning('service.port.eft.importEft: corrupted fit header') raise EftImportError shipType = m.group('shipType').strip() fitName = m.group('fitName').strip() @@ -594,7 +594,7 @@ def _importCreateFit(lines): fit.ship = Citadel(ship) fit.name = fitName except: - pyfalog.warning('EftPort.importEft: exception caught when parsing header') + pyfalog.warning('service.port.eft.importEft: exception caught when parsing header') raise EftImportError return fit @@ -605,7 +605,7 @@ def _fetchItem(typeName, eagerCat=False): try: item = sMkt.getItem(typeName, eager=eager) except: - pyfalog.warning('EftPort: unable to fetch item "{}"'.format(typeName)) + pyfalog.warning('service.port.eft: unable to fetch item "{}"'.format(typeName)) return None if sMkt.getPublicityByItem(item): return item From c552f6a1d457bbd6c47b108789e11da4d9c351aa Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 1 Sep 2018 17:54:10 -0400 Subject: [PATCH 086/110] formatting fixes --- gui/copySelectDialog.py | 1 - gui/mainFrame.py | 2 +- service/port/eft.py | 2 +- service/port/port.py | 10 +++++----- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/gui/copySelectDialog.py b/gui/copySelectDialog.py index 45191f6d9..10eff2647 100644 --- a/gui/copySelectDialog.py +++ b/gui/copySelectDialog.py @@ -101,4 +101,3 @@ class CopySelectDialog(wx.Dialog): if v.IsChecked(): i = i ^ x return i - diff --git a/gui/mainFrame.py b/gui/mainFrame.py index ced466577..ee0396c87 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -741,7 +741,7 @@ class MainFrame(wx.Frame): def exportToClipboard(self, event): CopySelectDict = {CopySelectDialog.copyFormatEft: self.clipboardEft, - #CopySelectDialog.copyFormatEftImps: self.clipboardEftImps, + # CopySelectDialog.copyFormatEftImps: self.clipboardEftImps, CopySelectDialog.copyFormatXml: self.clipboardXml, CopySelectDialog.copyFormatDna: self.clipboardDna, CopySelectDialog.copyFormatEsi: self.clipboardEsi, diff --git a/service/port/eft.py b/service/port/eft.py index fbcd4c3b2..fc8576d01 100644 --- a/service/port/eft.py +++ b/service/port/eft.py @@ -226,7 +226,6 @@ def importEft(eftString): _clearTail(section.itemSpecs) sections.append(section) - hasDroneBay = any(s.isDroneBay for s in sections) hasFighterBay = any(s.isFighterBay for s in sections) for section in sections: @@ -507,6 +506,7 @@ def _importPrepareString(eftString): del lines[-1] return lines + def _importGetMutationData(lines): data = {} consumedIndices = set() diff --git a/service/port/port.py b/service/port/port.py index 021b89e07..560af14ea 100644 --- a/service/port/port.py +++ b/service/port/port.py @@ -231,7 +231,7 @@ class Port(object): # Use DNA format for all other cases return "DNA", (cls.importDna(string),) - ### EFT-related methods + # EFT-related methods @staticmethod def importEft(eftString): return importEft(eftString) @@ -244,7 +244,7 @@ class Port(object): def exportEft(cls, fit, options): return exportEft(fit, options) - ### DNA-related methods + # DNA-related methods @staticmethod def importDna(string): return importDna(string) @@ -253,7 +253,7 @@ class Port(object): def exportDna(fit): return exportDna(fit) - ### ESI-related methods + # ESI-related methods @staticmethod def importESI(string): return importESI(string) @@ -262,7 +262,7 @@ class Port(object): def exportESI(fit): return exportESI(fit) - ### XML-related methods + # XML-related methods @staticmethod def importXml(text, iportuser=None): return importXml(text, iportuser) @@ -271,7 +271,7 @@ class Port(object): def exportXml(iportuser=None, *fits): return exportXml(iportuser, *fits) - ### Multibuy-related methods + # Multibuy-related methods @staticmethod def exportMultiBuy(fit): return exportMultiBuy(fit) From 6f5d0453a6fe139ba7748b299cf6ba14d4ab3911 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 1 Sep 2018 18:02:04 -0400 Subject: [PATCH 087/110] Added import of Port, which has a method that XML import uses. Importing inside the function to avoid circular import --- service/port/xml.py | 1 + 1 file changed, 1 insertion(+) diff --git a/service/port/xml.py b/service/port/xml.py index d5a5f08e0..54d5a98eb 100644 --- a/service/port/xml.py +++ b/service/port/xml.py @@ -129,6 +129,7 @@ def _resolve_module(hardware, sMkt, b_localized): def importXml(text, iportuser): + from .port import Port # type: (str, IPortUser) -> list[eos.saveddata.fit.Fit] sMkt = Market.getInstance() doc = xml.dom.minidom.parseString(text) From 7c7650ac0784a1721dbd9908794d3526d04a07e5 Mon Sep 17 00:00:00 2001 From: Alexander Maryanovsky Date: Tue, 11 Sep 2018 23:36:58 +0300 Subject: [PATCH 088/110] BitmapLoader.getBitmap will now load a @2x (or whatever the main window's content scale is) bitmap, if one is available. --- gui/bitmap_loader.py | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/gui/bitmap_loader.py b/gui/bitmap_loader.py index 061e05a0c..364b0a503 100644 --- a/gui/bitmap_loader.py +++ b/gui/bitmap_loader.py @@ -27,6 +27,8 @@ import wx import config +import gui.mainFrame as mainFrame + from logbook import Logger logging = Logger(__name__) @@ -55,9 +57,7 @@ class BitmapLoader(object): @classmethod def getBitmap(cls, name, location): if cls.dont_use_cached_bitmaps: - img = cls.getImage(name, location) - if img is not None: - return img.ConvertToBitmap() + return cls.loadBitmap(name, location) path = "%s%s" % (name, location) @@ -65,11 +65,7 @@ class BitmapLoader(object): cls.cached_bitmaps.popitem(False) if path not in cls.cached_bitmaps: - img = cls.getImage(name, location) - if img is not None: - bmp = img.ConvertToBitmap() - else: - bmp = None + bmp = cls.loadBitmap(name, location) cls.cached_bitmaps[path] = bmp else: bmp = cls.cached_bitmaps[path] @@ -78,8 +74,29 @@ class BitmapLoader(object): @classmethod def getImage(cls, name, location): - filename = "{0}.png".format(name) + return cls.getBitmap(name, location).ConvertToImage() + @classmethod + def loadBitmap(cls, name, location): + filename = "{0}.png".format(name) + scale = int(mainFrame.MainFrame.getInstance().GetContentScaleFactor()) + if scale == 1: + img = cls.loadImage(filename, location) + else: + filenameScaled = "{0}@{1}x.png".format(name, scale) + img = cls.loadImage(filenameScaled, location) + if img is None: + img = cls.loadImage(filename, location) + scale = 1 + if img is None: + return None + bmp: wx.Bitmap = img.ConvertToBitmap() + if scale > 1: + bmp.SetSize((int(bmp.GetWidth()/scale), int(bmp.GetHeight()/scale))) + return bmp + + @classmethod + def loadImage(cls, filename, location): if cls.archive: path = os.path.join(location, filename) if os.sep != "/" and os.sep in path: From 07b6c9c4370a013b65be4ca3274c872f1a68e244 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Tue, 11 Sep 2018 19:47:14 -0400 Subject: [PATCH 089/110] tweak icons script to save scaled versions of images --- scripts/icons_update.py | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/scripts/icons_update.py b/scripts/icons_update.py index 0ad4c5359..bd4cf58d7 100644 --- a/scripts/icons_update.py +++ b/scripts/icons_update.py @@ -198,13 +198,16 @@ if toadd: print("Can't find iconID {}".format(fname)) continue key = icon['iconFile'].lower() - icon = get_icon_file(key, ICON_SIZE) - if icon is None: - missing.add(fname) - continue - fullname = '{}.png'.format(fname) - fullpath = os.path.join(icons_dir, fullname) - icon.save(fullpath, 'png') + + for i in range(2): + scale = i+1 + icon = get_icon_file(key, tuple([x*scale for x in ICON_SIZE])) + if icon is None: + missing.add(fname) + continue + fullname = '{}@{}x.png'.format(fname, scale) + fullpath = os.path.join(icons_dir, fullname) + icon.save(fullpath, 'png') if missing: print((' {} icons are missing in export:'.format(len(missing)))) for fname in sorted(missing): @@ -229,15 +232,18 @@ if toadd: print(('Adding {} icons...'.format(len(toadd)))) missing = set() for fname in sorted(toadd): - icon = graphics_py_ob[int(fname)] - icon = "{}/{}_64.png".format(icon, fname) - icon = get_icon_file(icon, RENDER_SIZE) - if icon is None: - missing.add(fname) - continue - fullname = '{}.png'.format(fname) - fullpath = os.path.join(render_dir, fullname) - icon.save(fullpath, 'png') + key = graphics_py_ob[int(fname)] + key = "{}/{}_64.png".format(key, fname) + + for i in range(2): + scale = i+1 + icon = get_icon_file(key, tuple([x*scale for x in RENDER_SIZE])) + if icon is None: + missing.add(fname) + continue + fullname = '{}@{}x.png'.format(fname, scale) + fullpath = os.path.join(render_dir, fullname) + icon.save(fullpath, 'png') if missing: print((' {} icons are missing in export:'.format(len(missing)))) for fname in sorted(missing): From 7f02a078fd64d363e681a21c2479972568a4b37a Mon Sep 17 00:00:00 2001 From: blitzmann Date: Tue, 11 Sep 2018 19:48:02 -0400 Subject: [PATCH 090/110] Fix some import issues, and save the scale factor on the BitmapLoader class (since it probably won't be changing?) --- gui/bitmap_loader.py | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/gui/bitmap_loader.py b/gui/bitmap_loader.py index 364b0a503..b573d4c0c 100644 --- a/gui/bitmap_loader.py +++ b/gui/bitmap_loader.py @@ -27,8 +27,6 @@ import wx import config -import gui.mainFrame as mainFrame - from logbook import Logger logging = Logger(__name__) @@ -48,6 +46,8 @@ class BitmapLoader(object): dont_use_cached_bitmaps = False max_cached_bitmaps = 500 + scaling_factor = None + @classmethod def getStaticBitmap(cls, name, parent, location): static = wx.StaticBitmap(parent) @@ -78,18 +78,23 @@ class BitmapLoader(object): @classmethod def loadBitmap(cls, name, location): - filename = "{0}.png".format(name) - scale = int(mainFrame.MainFrame.getInstance().GetContentScaleFactor()) - if scale == 1: + if cls.scaling_factor is None: + import gui.mainFrame + cls.scaling_factor = int(gui.mainFrame.MainFrame.getInstance().GetContentScaleFactor()) + scale = cls.scaling_factor + print(cls.scaling_factor) + filenameScaled = "{0}@{1}x.png".format(name, scale) + img = cls.loadImage(filenameScaled, location) + + if img is None: + # can't find the scaled image, fallback to no scaling + filename = "{0}.png".format(name) img = cls.loadImage(filename, location) - else: - filenameScaled = "{0}@{1}x.png".format(name, scale) - img = cls.loadImage(filenameScaled, location) - if img is None: - img = cls.loadImage(filename, location) - scale = 1 + scale = 1 + if img is None: return None + bmp: wx.Bitmap = img.ConvertToBitmap() if scale > 1: bmp.SetSize((int(bmp.GetWidth()/scale), int(bmp.GetHeight()/scale))) From 9aa2b17ae63c30885a5335b6933edbe6f3564354 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Tue, 11 Sep 2018 19:50:25 -0400 Subject: [PATCH 091/110] commit all the new things! --- imgs/icons/{0.png => 0@1x.png} | Bin imgs/icons/0@2x.png | Bin 0 -> 1141 bytes imgs/icons/{10012.png => 10012@1x.png} | Bin imgs/icons/10012@2x.png | Bin 0 -> 1848 bytes imgs/icons/{10013.png => 10013@1x.png} | Bin imgs/icons/10013@2x.png | Bin 0 -> 1860 bytes imgs/icons/{10014.png => 10014@1x.png} | Bin imgs/icons/10014@2x.png | Bin 0 -> 1878 bytes imgs/icons/{10015.png => 10015@1x.png} | Bin imgs/icons/10015@2x.png | Bin 0 -> 1857 bytes imgs/icons/{10016.png => 10016@1x.png} | Bin imgs/icons/10016@2x.png | Bin 0 -> 1870 bytes imgs/icons/{10017.png => 10017@1x.png} | Bin imgs/icons/10017@2x.png | Bin 0 -> 2214 bytes imgs/icons/{10018.png => 10018@1x.png} | Bin imgs/icons/10018@2x.png | Bin 0 -> 2370 bytes imgs/icons/{10019.png => 10019@1x.png} | Bin imgs/icons/10019@2x.png | Bin 0 -> 2182 bytes imgs/icons/{10020.png => 10020@1x.png} | Bin imgs/icons/10020@2x.png | Bin 0 -> 2823 bytes imgs/icons/{10021.png => 10021@1x.png} | Bin imgs/icons/10021@2x.png | Bin 0 -> 2750 bytes imgs/icons/{10022.png => 10022@1x.png} | Bin imgs/icons/10022@2x.png | Bin 0 -> 2865 bytes imgs/icons/{10023.png => 10023@1x.png} | Bin imgs/icons/10023@2x.png | Bin 0 -> 2678 bytes imgs/icons/{10024.png => 10024@1x.png} | Bin imgs/icons/10024@2x.png | Bin 0 -> 2809 bytes imgs/icons/{10025.png => 10025@1x.png} | Bin imgs/icons/10025@2x.png | Bin 0 -> 2902 bytes imgs/icons/{10026.png => 10026@1x.png} | Bin imgs/icons/10026@2x.png | Bin 0 -> 2804 bytes imgs/icons/{10027.png => 10027@1x.png} | Bin imgs/icons/10027@2x.png | Bin 0 -> 3116 bytes imgs/icons/{10028.png => 10028@1x.png} | Bin imgs/icons/10028@2x.png | Bin 0 -> 1812 bytes imgs/icons/{10029.png => 10029@1x.png} | Bin imgs/icons/10029@2x.png | Bin 0 -> 3063 bytes imgs/icons/{10030.png => 10030@1x.png} | Bin imgs/icons/10030@2x.png | Bin 0 -> 2572 bytes imgs/icons/{10031.png => 10031@1x.png} | Bin imgs/icons/10031@2x.png | Bin 0 -> 2980 bytes imgs/icons/{10032.png => 10032@1x.png} | Bin imgs/icons/10032@2x.png | Bin 0 -> 2160 bytes imgs/icons/{10033.png => 10033@1x.png} | Bin imgs/icons/10033@2x.png | Bin 0 -> 2685 bytes imgs/icons/{10034.png => 10034@1x.png} | Bin imgs/icons/10034@2x.png | Bin 0 -> 3316 bytes imgs/icons/{10035.png => 10035@1x.png} | Bin imgs/icons/10035@2x.png | Bin 0 -> 3467 bytes imgs/icons/{10036.png => 10036@1x.png} | Bin imgs/icons/10036@2x.png | Bin 0 -> 3095 bytes imgs/icons/{10037.png => 10037@1x.png} | Bin imgs/icons/10037@2x.png | Bin 0 -> 2555 bytes imgs/icons/{10038.png => 10038@1x.png} | Bin imgs/icons/10038@2x.png | Bin 0 -> 2070 bytes imgs/icons/{10039.png => 10039@1x.png} | Bin imgs/icons/10039@2x.png | Bin 0 -> 2985 bytes imgs/icons/{10040.png => 10040@1x.png} | Bin imgs/icons/10040@2x.png | Bin 0 -> 3262 bytes imgs/icons/{10041.png => 10041@1x.png} | Bin imgs/icons/10041@2x.png | Bin 0 -> 3317 bytes imgs/icons/{10042.png => 10042@1x.png} | Bin imgs/icons/10042@2x.png | Bin 0 -> 2495 bytes imgs/icons/{10043.png => 10043@1x.png} | Bin imgs/icons/10043@2x.png | Bin 0 -> 2114 bytes imgs/icons/{10044.png => 10044@1x.png} | Bin imgs/icons/10044@2x.png | Bin 0 -> 2168 bytes imgs/icons/{10045.png => 10045@1x.png} | Bin imgs/icons/10045@2x.png | Bin 0 -> 2966 bytes imgs/icons/{10046.png => 10046@1x.png} | Bin imgs/icons/10046@2x.png | Bin 0 -> 2616 bytes imgs/icons/{10047.png => 10047@1x.png} | Bin imgs/icons/10047@2x.png | Bin 0 -> 2158 bytes imgs/icons/{10048.png => 10048@1x.png} | Bin imgs/icons/10048@2x.png | Bin 0 -> 2573 bytes imgs/icons/{10049.png => 10049@1x.png} | Bin imgs/icons/10049@2x.png | Bin 0 -> 2498 bytes imgs/icons/{1004.png => 1004@1x.png} | Bin imgs/icons/1004@2x.png | Bin 0 -> 2290 bytes imgs/icons/{10050.png => 10050@1x.png} | Bin imgs/icons/10050@2x.png | Bin 0 -> 2243 bytes imgs/icons/{10051.png => 10051@1x.png} | Bin imgs/icons/10051@2x.png | Bin 0 -> 2667 bytes imgs/icons/{10052.png => 10052@1x.png} | Bin imgs/icons/10052@2x.png | Bin 0 -> 2712 bytes imgs/icons/{10053.png => 10053@1x.png} | Bin imgs/icons/10053@2x.png | Bin 0 -> 2640 bytes imgs/icons/{10054.png => 10054@1x.png} | Bin imgs/icons/10054@2x.png | Bin 0 -> 2310 bytes imgs/icons/{10055.png => 10055@1x.png} | Bin imgs/icons/10055@2x.png | Bin 0 -> 2128 bytes imgs/icons/{10056.png => 10056@1x.png} | Bin imgs/icons/10056@2x.png | Bin 0 -> 2592 bytes imgs/icons/{10057.png => 10057@1x.png} | Bin imgs/icons/10057@2x.png | Bin 0 -> 2279 bytes imgs/icons/{10058.png => 10058@1x.png} | Bin imgs/icons/10058@2x.png | Bin 0 -> 2243 bytes imgs/icons/{10071.png => 10071@1x.png} | Bin imgs/icons/10071@2x.png | Bin 0 -> 1855 bytes imgs/icons/{10073.png => 10073@1x.png} | Bin imgs/icons/10073@2x.png | Bin 0 -> 2269 bytes imgs/icons/{10074.png => 10074@1x.png} | Bin imgs/icons/10074@2x.png | Bin 0 -> 3083 bytes imgs/icons/{10075.png => 10075@1x.png} | Bin imgs/icons/10075@2x.png | Bin 0 -> 3110 bytes imgs/icons/{10076.png => 10076@1x.png} | Bin imgs/icons/10076@2x.png | Bin 0 -> 2088 bytes imgs/icons/{10077.png => 10077@1x.png} | Bin imgs/icons/10077@2x.png | Bin 0 -> 2583 bytes imgs/icons/{10078.png => 10078@1x.png} | Bin imgs/icons/10078@2x.png | Bin 0 -> 2844 bytes imgs/icons/{10079.png => 10079@1x.png} | Bin imgs/icons/10079@2x.png | Bin 0 -> 2808 bytes imgs/icons/{1007.png => 1007@1x.png} | Bin imgs/icons/1007@2x.png | Bin 0 -> 1673 bytes imgs/icons/{10132.png => 10132@1x.png} | Bin imgs/icons/10132@2x.png | Bin 0 -> 3158 bytes imgs/icons/{10144.png => 10144@1x.png} | Bin imgs/icons/10144@2x.png | Bin 0 -> 2674 bytes imgs/icons/{10149.png => 10149@1x.png} | Bin imgs/icons/10149@2x.png | Bin 0 -> 1826 bytes imgs/icons/{10151.png => 10151@1x.png} | Bin imgs/icons/10151@2x.png | Bin 0 -> 2549 bytes imgs/icons/{10153.png => 10153@1x.png} | Bin imgs/icons/10153@2x.png | Bin 0 -> 1572 bytes imgs/icons/{10158.png => 10158@1x.png} | Bin imgs/icons/10158@2x.png | Bin 0 -> 2545 bytes imgs/icons/{10159.png => 10159@1x.png} | Bin imgs/icons/10159@2x.png | Bin 0 -> 1953 bytes imgs/icons/{10160.png => 10160@1x.png} | Bin imgs/icons/10160@2x.png | Bin 0 -> 2291 bytes imgs/icons/{10162.png => 10162@1x.png} | Bin imgs/icons/10162@2x.png | Bin 0 -> 1592 bytes imgs/icons/{10163.png => 10163@1x.png} | Bin imgs/icons/10163@2x.png | Bin 0 -> 1245 bytes imgs/icons/{10176.png => 10176@1x.png} | Bin imgs/icons/10176@2x.png | Bin 0 -> 2376 bytes imgs/icons/{10190.png => 10190@1x.png} | Bin imgs/icons/10190@2x.png | Bin 0 -> 2028 bytes imgs/icons/{10224.png => 10224@1x.png} | Bin imgs/icons/10224@2x.png | Bin 0 -> 2714 bytes imgs/icons/{10234.png => 10234@1x.png} | Bin imgs/icons/10234@2x.png | Bin 0 -> 2091 bytes imgs/icons/{10236.png => 10236@1x.png} | Bin imgs/icons/10236@2x.png | Bin 0 -> 2326 bytes imgs/icons/{10254.png => 10254@1x.png} | Bin imgs/icons/10254@2x.png | Bin 0 -> 2450 bytes imgs/icons/{10256.png => 10256@1x.png} | Bin imgs/icons/10256@2x.png | Bin 0 -> 3044 bytes imgs/icons/{1029.png => 1029@1x.png} | Bin imgs/icons/1029@2x.png | Bin 0 -> 1435 bytes imgs/icons/{1030.png => 1030@1x.png} | Bin imgs/icons/1030@2x.png | Bin 0 -> 1795 bytes imgs/icons/{1031.png => 1031@1x.png} | Bin imgs/icons/1031@2x.png | Bin 0 -> 1740 bytes imgs/icons/{1033.png => 1033@1x.png} | Bin imgs/icons/1033@2x.png | Bin 0 -> 1803 bytes imgs/icons/{1035.png => 1035@1x.png} | Bin imgs/icons/1035@2x.png | Bin 0 -> 1485 bytes imgs/icons/{1041.png => 1041@1x.png} | Bin imgs/icons/1041@2x.png | Bin 0 -> 1505 bytes imgs/icons/{1042.png => 1042@1x.png} | Bin imgs/icons/1042@2x.png | Bin 0 -> 1814 bytes imgs/icons/{1044.png => 1044@1x.png} | Bin imgs/icons/1044@2x.png | Bin 0 -> 1597 bytes imgs/icons/{1046.png => 1046@1x.png} | Bin imgs/icons/1046@2x.png | Bin 0 -> 2588 bytes imgs/icons/{1047.png => 1047@1x.png} | Bin imgs/icons/1047@2x.png | Bin 0 -> 2109 bytes imgs/icons/{104.png => 104@1x.png} | Bin imgs/icons/104@2x.png | Bin 0 -> 2199 bytes imgs/icons/{10570.png => 10570@1x.png} | Bin imgs/icons/10570@2x.png | Bin 0 -> 1904 bytes imgs/icons/{105.png => 105@1x.png} | Bin imgs/icons/105@2x.png | Bin 0 -> 1625 bytes imgs/icons/{1061.png => 1061@1x.png} | Bin imgs/icons/1061@2x.png | Bin 0 -> 2120 bytes imgs/icons/{10624.png => 10624@1x.png} | Bin imgs/icons/10624@2x.png | Bin 0 -> 1865 bytes imgs/icons/{10684.png => 10684@1x.png} | Bin imgs/icons/10684@2x.png | Bin 0 -> 2122 bytes imgs/icons/{106.png => 106@1x.png} | Bin imgs/icons/106@2x.png | Bin 0 -> 1762 bytes imgs/icons/{10756.png => 10756@1x.png} | Bin imgs/icons/10756@2x.png | Bin 0 -> 2083 bytes imgs/icons/{10785.png => 10785@1x.png} | Bin imgs/icons/10785@2x.png | Bin 0 -> 2240 bytes imgs/icons/{107.png => 107@1x.png} | Bin imgs/icons/107@2x.png | Bin 0 -> 1865 bytes imgs/icons/{10828.png => 10828@1x.png} | Bin imgs/icons/10828@2x.png | Bin 0 -> 2854 bytes imgs/icons/{10829.png => 10829@1x.png} | Bin imgs/icons/10829@2x.png | Bin 0 -> 1845 bytes imgs/icons/{10830.png => 10830@1x.png} | Bin imgs/icons/10830@2x.png | Bin 0 -> 1428 bytes imgs/icons/{10831.png => 10831@1x.png} | Bin imgs/icons/10831@2x.png | Bin 0 -> 2544 bytes imgs/icons/{10833.png => 10833@1x.png} | Bin imgs/icons/10833@2x.png | Bin 0 -> 2666 bytes imgs/icons/{10834.png => 10834@1x.png} | Bin imgs/icons/10834@2x.png | Bin 0 -> 2658 bytes imgs/icons/{10835.png => 10835@1x.png} | Bin imgs/icons/10835@2x.png | Bin 0 -> 2744 bytes imgs/icons/{10836.png => 10836@1x.png} | Bin imgs/icons/10836@2x.png | Bin 0 -> 2718 bytes imgs/icons/{10847.png => 10847@1x.png} | Bin imgs/icons/10847@2x.png | Bin 0 -> 1758 bytes imgs/icons/{1084.png => 1084@1x.png} | Bin imgs/icons/1084@2x.png | Bin 0 -> 2270 bytes imgs/icons/{10851.png => 10851@1x.png} | Bin imgs/icons/10851@2x.png | Bin 0 -> 1797 bytes imgs/icons/{10932.png => 10932@1x.png} | Bin imgs/icons/10932@2x.png | Bin 0 -> 2258 bytes imgs/icons/{10933.png => 10933@1x.png} | Bin imgs/icons/10933@2x.png | Bin 0 -> 2019 bytes imgs/icons/{10934.png => 10934@1x.png} | Bin imgs/icons/10934@2x.png | Bin 0 -> 2269 bytes imgs/icons/{10935.png => 10935@1x.png} | Bin imgs/icons/10935@2x.png | Bin 0 -> 2083 bytes imgs/icons/{10940.png => 10940@1x.png} | Bin imgs/icons/10940@2x.png | Bin 0 -> 2024 bytes imgs/icons/{10941.png => 10941@1x.png} | Bin imgs/icons/10941@2x.png | Bin 0 -> 2238 bytes imgs/icons/{10942.png => 10942@1x.png} | Bin imgs/icons/10942@2x.png | Bin 0 -> 2408 bytes imgs/icons/{109.png => 109@1x.png} | Bin imgs/icons/109@2x.png | Bin 0 -> 2038 bytes imgs/icons/{110.png => 110@1x.png} | Bin imgs/icons/110@2x.png | Bin 0 -> 2061 bytes imgs/icons/{111.png => 111@1x.png} | Bin imgs/icons/111@2x.png | Bin 0 -> 2356 bytes imgs/icons/{112.png => 112@1x.png} | Bin imgs/icons/112@2x.png | Bin 0 -> 1695 bytes imgs/icons/{1131.png => 1131@1x.png} | Bin imgs/icons/1131@2x.png | Bin 0 -> 1965 bytes imgs/icons/{1139.png => 1139@1x.png} | Bin imgs/icons/1139@2x.png | Bin 0 -> 1955 bytes imgs/icons/{1140.png => 1140@1x.png} | Bin imgs/icons/1140@2x.png | Bin 0 -> 1976 bytes imgs/icons/{1141.png => 1141@1x.png} | Bin imgs/icons/1141@2x.png | Bin 0 -> 1972 bytes imgs/icons/{1142.png => 1142@1x.png} | Bin imgs/icons/1142@2x.png | Bin 0 -> 1956 bytes imgs/icons/{1143.png => 1143@1x.png} | Bin imgs/icons/1143@2x.png | Bin 0 -> 1955 bytes imgs/icons/{1144.png => 1144@1x.png} | Bin imgs/icons/1144@2x.png | Bin 0 -> 1973 bytes imgs/icons/{1145.png => 1145@1x.png} | Bin imgs/icons/1145@2x.png | Bin 0 -> 1928 bytes imgs/icons/{1159.png => 1159@1x.png} | Bin imgs/icons/1159@2x.png | Bin 0 -> 2296 bytes imgs/icons/{1162.png => 1162@1x.png} | Bin imgs/icons/1162@2x.png | Bin 0 -> 2864 bytes imgs/icons/{1164.png => 1164@1x.png} | Bin imgs/icons/1164@2x.png | Bin 0 -> 2025 bytes imgs/icons/{1171.png => 1171@1x.png} | Bin imgs/icons/1171@2x.png | Bin 0 -> 2855 bytes imgs/icons/{1172.png => 1172@1x.png} | Bin imgs/icons/1172@2x.png | Bin 0 -> 2429 bytes imgs/icons/{1173.png => 1173@1x.png} | Bin imgs/icons/1173@2x.png | Bin 0 -> 2071 bytes imgs/icons/{1174.png => 1174@1x.png} | Bin imgs/icons/1174@2x.png | Bin 0 -> 2791 bytes imgs/icons/{1175.png => 1175@1x.png} | Bin imgs/icons/1175@2x.png | Bin 0 -> 2455 bytes imgs/icons/{1177.png => 1177@1x.png} | Bin imgs/icons/1177@2x.png | Bin 0 -> 2759 bytes imgs/icons/{1178.png => 1178@1x.png} | Bin imgs/icons/1178@2x.png | Bin 0 -> 2525 bytes imgs/icons/{1179.png => 1179@1x.png} | Bin imgs/icons/1179@2x.png | Bin 0 -> 2708 bytes imgs/icons/{1180.png => 1180@1x.png} | Bin imgs/icons/1180@2x.png | Bin 0 -> 2583 bytes imgs/icons/{1181.png => 1181@1x.png} | Bin imgs/icons/1181@2x.png | Bin 0 -> 2813 bytes imgs/icons/{1182.png => 1182@1x.png} | Bin imgs/icons/1182@2x.png | Bin 0 -> 2757 bytes imgs/icons/{1183.png => 1183@1x.png} | Bin imgs/icons/1183@2x.png | Bin 0 -> 2625 bytes imgs/icons/{1184.png => 1184@1x.png} | Bin imgs/icons/1184@2x.png | Bin 0 -> 2496 bytes imgs/icons/{1185.png => 1185@1x.png} | Bin imgs/icons/1185@2x.png | Bin 0 -> 2880 bytes imgs/icons/{1186.png => 1186@1x.png} | Bin imgs/icons/1186@2x.png | Bin 0 -> 2707 bytes imgs/icons/{1187.png => 1187@1x.png} | Bin imgs/icons/1187@2x.png | Bin 0 -> 2528 bytes imgs/icons/{1188.png => 1188@1x.png} | Bin imgs/icons/1188@2x.png | Bin 0 -> 2796 bytes imgs/icons/{1189.png => 1189@1x.png} | Bin imgs/icons/1189@2x.png | Bin 0 -> 2647 bytes imgs/icons/{1190.png => 1190@1x.png} | Bin imgs/icons/1190@2x.png | Bin 0 -> 2562 bytes imgs/icons/{1191.png => 1191@1x.png} | Bin imgs/icons/1191@2x.png | Bin 0 -> 2713 bytes imgs/icons/{1192.png => 1192@1x.png} | Bin imgs/icons/1192@2x.png | Bin 0 -> 2475 bytes imgs/icons/{1193.png => 1193@1x.png} | Bin imgs/icons/1193@2x.png | Bin 0 -> 2932 bytes imgs/icons/{1194.png => 1194@1x.png} | Bin imgs/icons/1194@2x.png | Bin 0 -> 2672 bytes imgs/icons/{1195.png => 1195@1x.png} | Bin imgs/icons/1195@2x.png | Bin 0 -> 2056 bytes imgs/icons/{1196.png => 1196@1x.png} | Bin imgs/icons/1196@2x.png | Bin 0 -> 2093 bytes imgs/icons/{1198.png => 1198@1x.png} | Bin imgs/icons/1198@2x.png | Bin 0 -> 2260 bytes imgs/icons/{1199.png => 1199@1x.png} | Bin imgs/icons/1199@2x.png | Bin 0 -> 2243 bytes imgs/icons/{1200.png => 1200@1x.png} | Bin imgs/icons/1200@2x.png | Bin 0 -> 2103 bytes imgs/icons/{1201.png => 1201@1x.png} | Bin imgs/icons/1201@2x.png | Bin 0 -> 1945 bytes imgs/icons/{1204.png => 1204@1x.png} | Bin imgs/icons/1204@2x.png | Bin 0 -> 2377 bytes imgs/icons/{1205.png => 1205@1x.png} | Bin imgs/icons/1205@2x.png | Bin 0 -> 2489 bytes imgs/icons/{1206.png => 1206@1x.png} | Bin imgs/icons/1206@2x.png | Bin 0 -> 2534 bytes imgs/icons/{1207.png => 1207@1x.png} | Bin imgs/icons/1207@2x.png | Bin 0 -> 2721 bytes imgs/icons/{1209.png => 1209@1x.png} | Bin imgs/icons/1209@2x.png | Bin 0 -> 2069 bytes imgs/icons/{1269.png => 1269@1x.png} | Bin imgs/icons/1269@2x.png | Bin 0 -> 2142 bytes imgs/icons/{1270.png => 1270@1x.png} | Bin imgs/icons/1270@2x.png | Bin 0 -> 2508 bytes imgs/icons/{1271.png => 1271@1x.png} | Bin imgs/icons/1271@2x.png | Bin 0 -> 2110 bytes imgs/icons/{1272.png => 1272@1x.png} | Bin imgs/icons/1272@2x.png | Bin 0 -> 2312 bytes imgs/icons/{1273.png => 1273@1x.png} | Bin imgs/icons/1273@2x.png | Bin 0 -> 2379 bytes imgs/icons/{1274.png => 1274@1x.png} | Bin imgs/icons/1274@2x.png | Bin 0 -> 2245 bytes imgs/icons/{1275.png => 1275@1x.png} | Bin imgs/icons/1275@2x.png | Bin 0 -> 2732 bytes imgs/icons/{1277.png => 1277@1x.png} | Bin imgs/icons/1277@2x.png | Bin 0 -> 1962 bytes imgs/icons/{1279.png => 1279@1x.png} | Bin imgs/icons/1279@2x.png | Bin 0 -> 2326 bytes imgs/icons/{1282.png => 1282@1x.png} | Bin imgs/icons/1282@2x.png | Bin 0 -> 2589 bytes imgs/icons/{1283.png => 1283@1x.png} | Bin imgs/icons/1283@2x.png | Bin 0 -> 1744 bytes imgs/icons/{1284.png => 1284@1x.png} | Bin imgs/icons/1284@2x.png | Bin 0 -> 2593 bytes imgs/icons/{1285.png => 1285@1x.png} | Bin imgs/icons/1285@2x.png | Bin 0 -> 2363 bytes imgs/icons/{1286.png => 1286@1x.png} | Bin imgs/icons/1286@2x.png | Bin 0 -> 2303 bytes imgs/icons/{1287.png => 1287@1x.png} | Bin imgs/icons/1287@2x.png | Bin 0 -> 2322 bytes imgs/icons/{1288.png => 1288@1x.png} | Bin imgs/icons/1288@2x.png | Bin 0 -> 2288 bytes imgs/icons/{1289.png => 1289@1x.png} | Bin imgs/icons/1289@2x.png | Bin 0 -> 2478 bytes imgs/icons/{1290.png => 1290@1x.png} | Bin imgs/icons/1290@2x.png | Bin 0 -> 2509 bytes imgs/icons/{1291.png => 1291@1x.png} | Bin imgs/icons/1291@2x.png | Bin 0 -> 2253 bytes imgs/icons/{1292.png => 1292@1x.png} | Bin imgs/icons/1292@2x.png | Bin 0 -> 2520 bytes imgs/icons/{1293.png => 1293@1x.png} | Bin imgs/icons/1293@2x.png | Bin 0 -> 2564 bytes imgs/icons/{1294.png => 1294@1x.png} | Bin imgs/icons/1294@2x.png | Bin 0 -> 2574 bytes imgs/icons/{1295.png => 1295@1x.png} | Bin imgs/icons/1295@2x.png | Bin 0 -> 2561 bytes imgs/icons/{1296.png => 1296@1x.png} | Bin imgs/icons/1296@2x.png | Bin 0 -> 2479 bytes imgs/icons/{1297.png => 1297@1x.png} | Bin imgs/icons/1297@2x.png | Bin 0 -> 2688 bytes imgs/icons/{1298.png => 1298@1x.png} | Bin imgs/icons/1298@2x.png | Bin 0 -> 2618 bytes imgs/icons/{1299.png => 1299@1x.png} | Bin imgs/icons/1299@2x.png | Bin 0 -> 2444 bytes imgs/icons/{1300.png => 1300@1x.png} | Bin imgs/icons/1300@2x.png | Bin 0 -> 2442 bytes imgs/icons/{1301.png => 1301@1x.png} | Bin imgs/icons/1301@2x.png | Bin 0 -> 2521 bytes imgs/icons/{1302.png => 1302@1x.png} | Bin imgs/icons/1302@2x.png | Bin 0 -> 2549 bytes imgs/icons/{1303.png => 1303@1x.png} | Bin imgs/icons/1303@2x.png | Bin 0 -> 2605 bytes imgs/icons/{1304.png => 1304@1x.png} | Bin imgs/icons/1304@2x.png | Bin 0 -> 2472 bytes imgs/icons/{1305.png => 1305@1x.png} | Bin imgs/icons/1305@2x.png | Bin 0 -> 2774 bytes imgs/icons/{1306.png => 1306@1x.png} | Bin imgs/icons/1306@2x.png | Bin 0 -> 2620 bytes imgs/icons/{1307.png => 1307@1x.png} | Bin imgs/icons/1307@2x.png | Bin 0 -> 2339 bytes imgs/icons/{1310.png => 1310@1x.png} | Bin imgs/icons/1310@2x.png | Bin 0 -> 2336 bytes imgs/icons/{1311.png => 1311@1x.png} | Bin imgs/icons/1311@2x.png | Bin 0 -> 2149 bytes imgs/icons/{1312.png => 1312@1x.png} | Bin imgs/icons/1312@2x.png | Bin 0 -> 2174 bytes imgs/icons/{1313.png => 1313@1x.png} | Bin imgs/icons/1313@2x.png | Bin 0 -> 2337 bytes imgs/icons/{1314.png => 1314@1x.png} | Bin imgs/icons/1314@2x.png | Bin 0 -> 2208 bytes imgs/icons/{1315.png => 1315@1x.png} | Bin imgs/icons/1315@2x.png | Bin 0 -> 2179 bytes imgs/icons/{1316.png => 1316@1x.png} | Bin imgs/icons/1316@2x.png | Bin 0 -> 2359 bytes imgs/icons/{1317.png => 1317@1x.png} | Bin imgs/icons/1317@2x.png | Bin 0 -> 2424 bytes imgs/icons/{1318.png => 1318@1x.png} | Bin imgs/icons/1318@2x.png | Bin 0 -> 2616 bytes imgs/icons/{1319.png => 1319@1x.png} | Bin imgs/icons/1319@2x.png | Bin 0 -> 2560 bytes imgs/icons/{1320.png => 1320@1x.png} | Bin imgs/icons/1320@2x.png | Bin 0 -> 2557 bytes imgs/icons/{1321.png => 1321@1x.png} | Bin imgs/icons/1321@2x.png | Bin 0 -> 2729 bytes imgs/icons/{1322.png => 1322@1x.png} | Bin imgs/icons/1322@2x.png | Bin 0 -> 2542 bytes imgs/icons/{1323.png => 1323@1x.png} | Bin imgs/icons/1323@2x.png | Bin 0 -> 2519 bytes imgs/icons/{1324.png => 1324@1x.png} | Bin imgs/icons/1324@2x.png | Bin 0 -> 2628 bytes imgs/icons/{1325.png => 1325@1x.png} | Bin imgs/icons/1325@2x.png | Bin 0 -> 2435 bytes imgs/icons/{1326.png => 1326@1x.png} | Bin imgs/icons/1326@2x.png | Bin 0 -> 2574 bytes imgs/icons/{1327.png => 1327@1x.png} | Bin imgs/icons/1327@2x.png | Bin 0 -> 2440 bytes imgs/icons/{1328.png => 1328@1x.png} | Bin imgs/icons/1328@2x.png | Bin 0 -> 2526 bytes imgs/icons/{1329.png => 1329@1x.png} | Bin imgs/icons/1329@2x.png | Bin 0 -> 2715 bytes imgs/icons/{1330.png => 1330@1x.png} | Bin imgs/icons/1330@2x.png | Bin 0 -> 2552 bytes imgs/icons/{1331.png => 1331@1x.png} | Bin imgs/icons/1331@2x.png | Bin 0 -> 2599 bytes imgs/icons/{1332.png => 1332@1x.png} | Bin imgs/icons/1332@2x.png | Bin 0 -> 2692 bytes imgs/icons/{1333.png => 1333@1x.png} | Bin imgs/icons/1333@2x.png | Bin 0 -> 1669 bytes imgs/icons/{1334.png => 1334@1x.png} | Bin imgs/icons/1334@2x.png | Bin 0 -> 1715 bytes imgs/icons/{1335.png => 1335@1x.png} | Bin imgs/icons/1335@2x.png | Bin 0 -> 1759 bytes imgs/icons/{1336.png => 1336@1x.png} | Bin imgs/icons/1336@2x.png | Bin 0 -> 1891 bytes imgs/icons/{1337.png => 1337@1x.png} | Bin imgs/icons/1337@2x.png | Bin 0 -> 1836 bytes imgs/icons/{1338.png => 1338@1x.png} | Bin imgs/icons/1338@2x.png | Bin 0 -> 1990 bytes imgs/icons/{1339.png => 1339@1x.png} | Bin imgs/icons/1339@2x.png | Bin 0 -> 1950 bytes imgs/icons/{1340.png => 1340@1x.png} | Bin imgs/icons/1340@2x.png | Bin 0 -> 1772 bytes imgs/icons/{1341.png => 1341@1x.png} | Bin imgs/icons/1341@2x.png | Bin 0 -> 1468 bytes imgs/icons/{1342.png => 1342@1x.png} | Bin imgs/icons/1342@2x.png | Bin 0 -> 1493 bytes imgs/icons/{1343.png => 1343@1x.png} | Bin imgs/icons/1343@2x.png | Bin 0 -> 1487 bytes imgs/icons/{1344.png => 1344@1x.png} | Bin imgs/icons/1344@2x.png | Bin 0 -> 1914 bytes imgs/icons/{1345.png => 1345@1x.png} | Bin imgs/icons/1345@2x.png | Bin 0 -> 2052 bytes imgs/icons/{1346.png => 1346@1x.png} | Bin imgs/icons/1346@2x.png | Bin 0 -> 1718 bytes imgs/icons/{1347.png => 1347@1x.png} | Bin imgs/icons/1347@2x.png | Bin 0 -> 1702 bytes imgs/icons/{1348.png => 1348@1x.png} | Bin imgs/icons/1348@2x.png | Bin 0 -> 1772 bytes imgs/icons/{1349.png => 1349@1x.png} | Bin imgs/icons/1349@2x.png | Bin 0 -> 1956 bytes imgs/icons/{1350.png => 1350@1x.png} | Bin imgs/icons/1350@2x.png | Bin 0 -> 1251 bytes imgs/icons/{1351.png => 1351@1x.png} | Bin imgs/icons/1351@2x.png | Bin 0 -> 1255 bytes imgs/icons/{1352.png => 1352@1x.png} | Bin imgs/icons/1352@2x.png | Bin 0 -> 1361 bytes imgs/icons/{1353.png => 1353@1x.png} | Bin imgs/icons/1353@2x.png | Bin 0 -> 1281 bytes imgs/icons/{1356.png => 1356@1x.png} | Bin imgs/icons/1356@2x.png | Bin 0 -> 2299 bytes imgs/icons/{1357.png => 1357@1x.png} | Bin imgs/icons/1357@2x.png | Bin 0 -> 1483 bytes imgs/icons/{1358.png => 1358@1x.png} | Bin imgs/icons/1358@2x.png | Bin 0 -> 1797 bytes imgs/icons/{1359.png => 1359@1x.png} | Bin imgs/icons/1359@2x.png | Bin 0 -> 2284 bytes imgs/icons/{1360.png => 1360@1x.png} | Bin imgs/icons/1360@2x.png | Bin 0 -> 2186 bytes imgs/icons/{1361.png => 1361@1x.png} | Bin imgs/icons/1361@2x.png | Bin 0 -> 2341 bytes imgs/icons/{1362.png => 1362@1x.png} | Bin imgs/icons/1362@2x.png | Bin 0 -> 2326 bytes imgs/icons/{1363.png => 1363@1x.png} | Bin imgs/icons/1363@2x.png | Bin 0 -> 2364 bytes imgs/icons/{1364.png => 1364@1x.png} | Bin imgs/icons/1364@2x.png | Bin 0 -> 2338 bytes imgs/icons/{1365.png => 1365@1x.png} | Bin imgs/icons/1365@2x.png | Bin 0 -> 2490 bytes imgs/icons/{1366.png => 1366@1x.png} | Bin imgs/icons/1366@2x.png | Bin 0 -> 2061 bytes imgs/icons/{1367.png => 1367@1x.png} | Bin imgs/icons/1367@2x.png | Bin 0 -> 2545 bytes imgs/icons/{1368.png => 1368@1x.png} | Bin imgs/icons/1368@2x.png | Bin 0 -> 2862 bytes imgs/icons/{1369.png => 1369@1x.png} | Bin imgs/icons/1369@2x.png | Bin 0 -> 2369 bytes imgs/icons/{1370.png => 1370@1x.png} | Bin imgs/icons/1370@2x.png | Bin 0 -> 2621 bytes imgs/icons/{1377.png => 1377@1x.png} | Bin imgs/icons/1377@2x.png | Bin 0 -> 2251 bytes imgs/icons/{1378.png => 1378@1x.png} | Bin imgs/icons/1378@2x.png | Bin 0 -> 1858 bytes imgs/icons/{1379.png => 1379@1x.png} | Bin imgs/icons/1379@2x.png | Bin 0 -> 1782 bytes imgs/icons/{1380.png => 1380@1x.png} | Bin imgs/icons/1380@2x.png | Bin 0 -> 1961 bytes imgs/icons/{1381.png => 1381@1x.png} | Bin imgs/icons/1381@2x.png | Bin 0 -> 1809 bytes imgs/icons/{1382.png => 1382@1x.png} | Bin imgs/icons/1382@2x.png | Bin 0 -> 1803 bytes imgs/icons/{1383.png => 1383@1x.png} | Bin imgs/icons/1383@2x.png | Bin 0 -> 1599 bytes imgs/icons/{1384.png => 1384@1x.png} | Bin imgs/icons/1384@2x.png | Bin 0 -> 1160 bytes imgs/icons/{1385.png => 1385@1x.png} | Bin imgs/icons/1385@2x.png | Bin 0 -> 2320 bytes imgs/icons/{1386.png => 1386@1x.png} | Bin imgs/icons/1386@2x.png | Bin 0 -> 2471 bytes imgs/icons/{1387.png => 1387@1x.png} | Bin imgs/icons/1387@2x.png | Bin 0 -> 2527 bytes imgs/icons/{1388.png => 1388@1x.png} | Bin imgs/icons/1388@2x.png | Bin 0 -> 1888 bytes imgs/icons/{1389.png => 1389@1x.png} | Bin imgs/icons/1389@2x.png | Bin 0 -> 954 bytes imgs/icons/{138.png => 138@1x.png} | Bin imgs/icons/138@2x.png | Bin 0 -> 2144 bytes imgs/icons/{1390.png => 1390@1x.png} | Bin imgs/icons/1390@2x.png | Bin 0 -> 1658 bytes imgs/icons/{1391.png => 1391@1x.png} | Bin imgs/icons/1391@2x.png | Bin 0 -> 1542 bytes imgs/icons/{1392.png => 1392@1x.png} | Bin imgs/icons/1392@2x.png | Bin 0 -> 1254 bytes imgs/icons/{1393.png => 1393@1x.png} | Bin imgs/icons/1393@2x.png | Bin 0 -> 1618 bytes imgs/icons/{1394.png => 1394@1x.png} | Bin imgs/icons/1394@2x.png | Bin 0 -> 1679 bytes imgs/icons/{1395.png => 1395@1x.png} | Bin imgs/icons/1395@2x.png | Bin 0 -> 1550 bytes imgs/icons/{1396.png => 1396@1x.png} | Bin imgs/icons/1396@2x.png | Bin 0 -> 1466 bytes imgs/icons/{1397.png => 1397@1x.png} | Bin imgs/icons/1397@2x.png | Bin 0 -> 844 bytes imgs/icons/{1398.png => 1398@1x.png} | Bin imgs/icons/1398@2x.png | Bin 0 -> 2234 bytes imgs/icons/{1399.png => 1399@1x.png} | Bin imgs/icons/1399@2x.png | Bin 0 -> 1941 bytes imgs/icons/{1400.png => 1400@1x.png} | Bin imgs/icons/1400@2x.png | Bin 0 -> 1711 bytes imgs/icons/{1401.png => 1401@1x.png} | Bin imgs/icons/1401@2x.png | Bin 0 -> 1981 bytes imgs/icons/{1405.png => 1405@1x.png} | Bin imgs/icons/1405@2x.png | Bin 0 -> 2311 bytes imgs/icons/{1406.png => 1406@1x.png} | Bin imgs/icons/1406@2x.png | Bin 0 -> 2475 bytes imgs/icons/{1432.png => 1432@1x.png} | Bin imgs/icons/1432@2x.png | Bin 0 -> 1882 bytes imgs/icons/{1435.png => 1435@1x.png} | Bin imgs/icons/1435@2x.png | Bin 0 -> 2583 bytes imgs/icons/{1436.png => 1436@1x.png} | Bin imgs/icons/1436@2x.png | Bin 0 -> 2402 bytes imgs/icons/{1443.png => 1443@1x.png} | Bin imgs/icons/1443@2x.png | Bin 0 -> 2037 bytes imgs/icons/{1444.png => 1444@1x.png} | Bin imgs/icons/1444@2x.png | Bin 0 -> 2324 bytes imgs/icons/{1446.png => 1446@1x.png} | Bin imgs/icons/1446@2x.png | Bin 0 -> 2567 bytes imgs/icons/{15.png => 15@1x.png} | Bin imgs/icons/15@2x.png | Bin 0 -> 2720 bytes imgs/icons/{1639.png => 1639@1x.png} | Bin imgs/icons/1639@2x.png | Bin 0 -> 1870 bytes imgs/icons/{1640.png => 1640@1x.png} | Bin imgs/icons/1640@2x.png | Bin 0 -> 2657 bytes imgs/icons/{1641.png => 1641@1x.png} | Bin imgs/icons/1641@2x.png | Bin 0 -> 1295 bytes imgs/icons/{1645.png => 1645@1x.png} | Bin imgs/icons/1645@2x.png | Bin 0 -> 2122 bytes imgs/icons/{1656.png => 1656@1x.png} | Bin imgs/icons/1656@2x.png | Bin 0 -> 2080 bytes imgs/icons/{1666.png => 1666@1x.png} | Bin imgs/icons/1666@2x.png | Bin 0 -> 2441 bytes imgs/icons/{1668.png => 1668@1x.png} | Bin imgs/icons/1668@2x.png | Bin 0 -> 1194 bytes imgs/icons/{168.png => 168@1x.png} | Bin imgs/icons/168@2x.png | Bin 0 -> 2068 bytes imgs/icons/{169.png => 169@1x.png} | Bin imgs/icons/169@2x.png | Bin 0 -> 2263 bytes imgs/icons/{16.png => 16@1x.png} | Bin imgs/icons/16@2x.png | Bin 0 -> 1980 bytes imgs/icons/{170.png => 170@1x.png} | Bin imgs/icons/170@2x.png | Bin 0 -> 3104 bytes imgs/icons/{1721.png => 1721@1x.png} | Bin imgs/icons/1721@2x.png | Bin 0 -> 2132 bytes imgs/icons/{1722.png => 1722@1x.png} | Bin imgs/icons/1722@2x.png | Bin 0 -> 2199 bytes imgs/icons/{1723.png => 1723@1x.png} | Bin imgs/icons/1723@2x.png | Bin 0 -> 2432 bytes imgs/icons/{182.png => 182@1x.png} | Bin imgs/icons/182@2x.png | Bin 0 -> 1933 bytes imgs/icons/{183.png => 183@1x.png} | Bin imgs/icons/183@2x.png | Bin 0 -> 1517 bytes imgs/icons/{184.png => 184@1x.png} | Bin imgs/icons/184@2x.png | Bin 0 -> 1486 bytes imgs/icons/{185.png => 185@1x.png} | Bin imgs/icons/185@2x.png | Bin 0 -> 1490 bytes imgs/icons/{186.png => 186@1x.png} | Bin imgs/icons/186@2x.png | Bin 0 -> 1987 bytes imgs/icons/{187.png => 187@1x.png} | Bin imgs/icons/187@2x.png | Bin 0 -> 2037 bytes imgs/icons/{188.png => 188@1x.png} | Bin imgs/icons/188@2x.png | Bin 0 -> 1847 bytes imgs/icons/{189.png => 189@1x.png} | Bin imgs/icons/189@2x.png | Bin 0 -> 1796 bytes imgs/icons/{190.png => 190@1x.png} | Bin imgs/icons/190@2x.png | Bin 0 -> 1525 bytes imgs/icons/{191.png => 191@1x.png} | Bin imgs/icons/191@2x.png | Bin 0 -> 1528 bytes imgs/icons/{192.png => 192@1x.png} | Bin imgs/icons/192@2x.png | Bin 0 -> 1787 bytes imgs/icons/{193.png => 193@1x.png} | Bin imgs/icons/193@2x.png | Bin 0 -> 1698 bytes imgs/icons/{2028.png => 2028@1x.png} | Bin imgs/icons/2028@2x.png | Bin 0 -> 1823 bytes imgs/icons/{2029.png => 2029@1x.png} | Bin imgs/icons/2029@2x.png | Bin 0 -> 1831 bytes imgs/icons/{2030.png => 2030@1x.png} | Bin imgs/icons/2030@2x.png | Bin 0 -> 1895 bytes imgs/icons/{2031.png => 2031@1x.png} | Bin imgs/icons/2031@2x.png | Bin 0 -> 1895 bytes imgs/icons/{2037.png => 2037@1x.png} | Bin imgs/icons/2037@2x.png | Bin 0 -> 1991 bytes imgs/icons/{2038.png => 2038@1x.png} | Bin imgs/icons/2038@2x.png | Bin 0 -> 2052 bytes imgs/icons/{2039.png => 2039@1x.png} | Bin imgs/icons/2039@2x.png | Bin 0 -> 1826 bytes imgs/icons/{2040.png => 2040@1x.png} | Bin imgs/icons/2040@2x.png | Bin 0 -> 2388 bytes imgs/icons/{2041.png => 2041@1x.png} | Bin imgs/icons/2041@2x.png | Bin 0 -> 1681 bytes imgs/icons/{2042.png => 2042@1x.png} | Bin imgs/icons/2042@2x.png | Bin 0 -> 1968 bytes imgs/icons/{2053.png => 2053@1x.png} | Bin imgs/icons/2053@2x.png | Bin 0 -> 2067 bytes imgs/icons/{2054.png => 2054@1x.png} | Bin imgs/icons/2054@2x.png | Bin 0 -> 2240 bytes imgs/icons/{2060.png => 2060@1x.png} | Bin imgs/icons/2060@2x.png | Bin 0 -> 2434 bytes imgs/icons/{2061.png => 2061@1x.png} | Bin imgs/icons/2061@2x.png | Bin 0 -> 2717 bytes imgs/icons/{2062.png => 2062@1x.png} | Bin imgs/icons/2062@2x.png | Bin 0 -> 2455 bytes imgs/icons/{2066.png => 2066@1x.png} | Bin imgs/icons/2066@2x.png | Bin 0 -> 2152 bytes imgs/icons/{20939.png => 20939@1x.png} | Bin imgs/icons/20939@2x.png | Bin 0 -> 1650 bytes imgs/icons/{2093.png => 2093@1x.png} | Bin imgs/icons/2093@2x.png | Bin 0 -> 1920 bytes imgs/icons/{20940.png => 20940@1x.png} | Bin imgs/icons/20940@2x.png | Bin 0 -> 1642 bytes imgs/icons/{20941.png => 20941@1x.png} | Bin imgs/icons/20941@2x.png | Bin 0 -> 1637 bytes imgs/icons/{20942.png => 20942@1x.png} | Bin imgs/icons/20942@2x.png | Bin 0 -> 1658 bytes imgs/icons/{20943.png => 20943@1x.png} | Bin imgs/icons/20943@2x.png | Bin 0 -> 2141 bytes imgs/icons/{20944.png => 20944@1x.png} | Bin imgs/icons/20944@2x.png | Bin 0 -> 2140 bytes imgs/icons/{20945.png => 20945@1x.png} | Bin imgs/icons/20945@2x.png | Bin 0 -> 2142 bytes imgs/icons/{20946.png => 20946@1x.png} | Bin imgs/icons/20946@2x.png | Bin 0 -> 2114 bytes imgs/icons/{20947.png => 20947@1x.png} | Bin imgs/icons/20947@2x.png | Bin 0 -> 1972 bytes imgs/icons/{20948.png => 20948@1x.png} | Bin imgs/icons/20948@2x.png | Bin 0 -> 1988 bytes imgs/icons/{20949.png => 20949@1x.png} | Bin imgs/icons/20949@2x.png | Bin 0 -> 1972 bytes imgs/icons/{2094.png => 2094@1x.png} | Bin imgs/icons/2094@2x.png | Bin 0 -> 2266 bytes imgs/icons/{20950.png => 20950@1x.png} | Bin imgs/icons/20950@2x.png | Bin 0 -> 1946 bytes imgs/icons/{20951.png => 20951@1x.png} | Bin imgs/icons/20951@2x.png | Bin 0 -> 2164 bytes imgs/icons/{20952.png => 20952@1x.png} | Bin imgs/icons/20952@2x.png | Bin 0 -> 2099 bytes imgs/icons/{20953.png => 20953@1x.png} | Bin imgs/icons/20953@2x.png | Bin 0 -> 2169 bytes imgs/icons/{20954.png => 20954@1x.png} | Bin imgs/icons/20954@2x.png | Bin 0 -> 2123 bytes imgs/icons/{20955.png => 20955@1x.png} | Bin imgs/icons/20955@2x.png | Bin 0 -> 1797 bytes imgs/icons/{20956.png => 20956@1x.png} | Bin imgs/icons/20956@2x.png | Bin 0 -> 1803 bytes imgs/icons/{20957.png => 20957@1x.png} | Bin imgs/icons/20957@2x.png | Bin 0 -> 1800 bytes imgs/icons/{20958.png => 20958@1x.png} | Bin imgs/icons/20958@2x.png | Bin 0 -> 1787 bytes imgs/icons/{20959.png => 20959@1x.png} | Bin imgs/icons/20959@2x.png | Bin 0 -> 602 bytes imgs/icons/{2095.png => 2095@1x.png} | Bin imgs/icons/2095@2x.png | Bin 0 -> 1728 bytes imgs/icons/{20966.png => 20966@1x.png} | Bin imgs/icons/20966@2x.png | Bin 0 -> 462 bytes imgs/icons/{20967.png => 20967@1x.png} | Bin imgs/icons/20967@2x.png | Bin 0 -> 730 bytes imgs/icons/{20968.png => 20968@1x.png} | Bin imgs/icons/20968@2x.png | Bin 0 -> 638 bytes imgs/icons/{20969.png => 20969@1x.png} | Bin imgs/icons/20969@2x.png | Bin 0 -> 2040 bytes imgs/icons/{2096.png => 2096@1x.png} | Bin imgs/icons/2096@2x.png | Bin 0 -> 1924 bytes imgs/icons/{20970.png => 20970@1x.png} | Bin imgs/icons/20970@2x.png | Bin 0 -> 2099 bytes imgs/icons/{20971.png => 20971@1x.png} | Bin imgs/icons/20971@2x.png | Bin 0 -> 2006 bytes imgs/icons/{20973.png => 20973@1x.png} | Bin imgs/icons/20973@2x.png | Bin 0 -> 3022 bytes imgs/icons/{20974.png => 20974@1x.png} | Bin imgs/icons/20974@2x.png | Bin 0 -> 2561 bytes imgs/icons/{20976.png => 20976@1x.png} | Bin imgs/icons/20976@2x.png | Bin 0 -> 2293 bytes imgs/icons/{20977.png => 20977@1x.png} | Bin imgs/icons/20977@2x.png | Bin 0 -> 2023 bytes imgs/icons/{21000.png => 21000@1x.png} | Bin imgs/icons/21000@2x.png | Bin 0 -> 1984 bytes imgs/icons/{2100.png => 2100@1x.png} | Bin imgs/icons/2100@2x.png | Bin 0 -> 1837 bytes imgs/icons/{2101.png => 2101@1x.png} | Bin imgs/icons/2101@2x.png | Bin 0 -> 2119 bytes imgs/icons/{21025.png => 21025@1x.png} | Bin imgs/icons/21025@2x.png | Bin 0 -> 2424 bytes imgs/icons/{21026.png => 21026@1x.png} | Bin imgs/icons/21026@2x.png | Bin 0 -> 2493 bytes imgs/icons/{21027.png => 21027@1x.png} | Bin imgs/icons/21027@2x.png | Bin 0 -> 2536 bytes imgs/icons/{21028.png => 21028@1x.png} | Bin imgs/icons/21028@2x.png | Bin 0 -> 2325 bytes imgs/icons/{21029.png => 21029@1x.png} | Bin imgs/icons/21029@2x.png | Bin 0 -> 2311 bytes imgs/icons/{2102.png => 2102@1x.png} | Bin imgs/icons/2102@2x.png | Bin 0 -> 2327 bytes imgs/icons/{21030.png => 21030@1x.png} | Bin imgs/icons/21030@2x.png | Bin 0 -> 2369 bytes imgs/icons/{21032.png => 21032@1x.png} | Bin imgs/icons/21032@2x.png | Bin 0 -> 2603 bytes imgs/icons/{2103.png => 2103@1x.png} | Bin imgs/icons/2103@2x.png | Bin 0 -> 1669 bytes imgs/icons/{21047.png => 21047@1x.png} | Bin imgs/icons/21047@2x.png | Bin 0 -> 2645 bytes imgs/icons/{21048.png => 21048@1x.png} | Bin imgs/icons/21048@2x.png | Bin 0 -> 2332 bytes imgs/icons/{2104.png => 2104@1x.png} | Bin imgs/icons/2104@2x.png | Bin 0 -> 2350 bytes imgs/icons/{21057.png => 21057@1x.png} | Bin imgs/icons/21057@2x.png | Bin 0 -> 2684 bytes imgs/icons/{21058.png => 21058@1x.png} | Bin imgs/icons/21058@2x.png | Bin 0 -> 2520 bytes imgs/icons/{21059.png => 21059@1x.png} | Bin imgs/icons/21059@2x.png | Bin 0 -> 2493 bytes imgs/icons/{2105.png => 2105@1x.png} | Bin imgs/icons/2105@2x.png | Bin 0 -> 2901 bytes imgs/icons/{21060.png => 21060@1x.png} | Bin imgs/icons/21060@2x.png | Bin 0 -> 2427 bytes imgs/icons/{21061.png => 21061@1x.png} | Bin imgs/icons/21061@2x.png | Bin 0 -> 2388 bytes imgs/icons/{21062.png => 21062@1x.png} | Bin imgs/icons/21062@2x.png | Bin 0 -> 1929 bytes imgs/icons/{21063.png => 21063@1x.png} | Bin imgs/icons/21063@2x.png | Bin 0 -> 1495 bytes imgs/icons/{21064.png => 21064@1x.png} | Bin imgs/icons/21064@2x.png | Bin 0 -> 2115 bytes imgs/icons/{21065.png => 21065@1x.png} | Bin imgs/icons/21065@2x.png | Bin 0 -> 2094 bytes imgs/icons/{21066.png => 21066@1x.png} | Bin imgs/icons/21066@2x.png | Bin 0 -> 1685 bytes imgs/icons/{2106.png => 2106@1x.png} | Bin imgs/icons/2106@2x.png | Bin 0 -> 2014 bytes imgs/icons/{21074.png => 21074@1x.png} | Bin imgs/icons/21074@2x.png | Bin 0 -> 2183 bytes imgs/icons/{21075.png => 21075@1x.png} | Bin imgs/icons/21075@2x.png | Bin 0 -> 2277 bytes imgs/icons/{21078.png => 21078@1x.png} | Bin imgs/icons/21078@2x.png | Bin 0 -> 2807 bytes imgs/icons/{21084.png => 21084@1x.png} | Bin imgs/icons/21084@2x.png | Bin 0 -> 2415 bytes imgs/icons/{21085.png => 21085@1x.png} | Bin imgs/icons/21085@2x.png | Bin 0 -> 3491 bytes imgs/icons/{21086.png => 21086@1x.png} | Bin imgs/icons/21086@2x.png | Bin 0 -> 3414 bytes imgs/icons/{21095.png => 21095@1x.png} | Bin imgs/icons/21095@2x.png | Bin 0 -> 2736 bytes imgs/icons/{21096.png => 21096@1x.png} | Bin imgs/icons/21096@2x.png | Bin 0 -> 2742 bytes imgs/icons/{21097.png => 21097@1x.png} | Bin imgs/icons/21097@2x.png | Bin 0 -> 2703 bytes imgs/icons/{21098.png => 21098@1x.png} | Bin imgs/icons/21098@2x.png | Bin 0 -> 2743 bytes imgs/icons/{21170.png => 21170@1x.png} | Bin imgs/icons/21170@2x.png | Bin 0 -> 2759 bytes imgs/icons/{21186.png => 21186@1x.png} | Bin imgs/icons/21186@2x.png | Bin 0 -> 1398 bytes imgs/icons/{21204.png => 21204@1x.png} | Bin imgs/icons/21204@2x.png | Bin 0 -> 2502 bytes imgs/icons/{21275.png => 21275@1x.png} | Bin imgs/icons/21275@2x.png | Bin 0 -> 1861 bytes imgs/icons/{21335.png => 21335@1x.png} | Bin imgs/icons/21335@2x.png | Bin 0 -> 2506 bytes imgs/icons/{21336.png => 21336@1x.png} | Bin imgs/icons/21336@2x.png | Bin 0 -> 2711 bytes imgs/icons/{21378.png => 21378@1x.png} | Bin imgs/icons/21378@2x.png | Bin 0 -> 1622 bytes imgs/icons/{21379.png => 21379@1x.png} | Bin imgs/icons/21379@2x.png | Bin 0 -> 2668 bytes imgs/icons/{21380.png => 21380@1x.png} | Bin imgs/icons/21380@2x.png | Bin 0 -> 2623 bytes imgs/icons/{21381.png => 21381@1x.png} | Bin imgs/icons/21381@2x.png | Bin 0 -> 2406 bytes imgs/icons/{21382.png => 21382@1x.png} | Bin imgs/icons/21382@2x.png | Bin 0 -> 2044 bytes imgs/icons/{21383.png => 21383@1x.png} | Bin imgs/icons/21383@2x.png | Bin 0 -> 2190 bytes imgs/icons/{21408.png => 21408@1x.png} | Bin imgs/icons/21408@2x.png | Bin 0 -> 2087 bytes imgs/icons/{21409.png => 21409@1x.png} | Bin imgs/icons/21409@2x.png | Bin 0 -> 1395 bytes imgs/icons/{21417.png => 21417@1x.png} | Bin imgs/icons/21417@2x.png | Bin 0 -> 3346 bytes imgs/icons/{21418.png => 21418@1x.png} | Bin imgs/icons/21418@2x.png | Bin 0 -> 3233 bytes imgs/icons/{21419.png => 21419@1x.png} | Bin imgs/icons/21419@2x.png | Bin 0 -> 2406 bytes imgs/icons/{21420.png => 21420@1x.png} | Bin imgs/icons/21420@2x.png | Bin 0 -> 494 bytes imgs/icons/{21421.png => 21421@1x.png} | Bin imgs/icons/21421@2x.png | Bin 0 -> 1333 bytes imgs/icons/{21426.png => 21426@1x.png} | Bin imgs/icons/21426@2x.png | Bin 0 -> 2031 bytes imgs/icons/{21428.png => 21428@1x.png} | Bin imgs/icons/21428@2x.png | Bin 0 -> 2039 bytes imgs/icons/{21437.png => 21437@1x.png} | Bin imgs/icons/21437@2x.png | Bin 0 -> 2154 bytes imgs/icons/{21439.png => 21439@1x.png} | Bin imgs/icons/21439@2x.png | Bin 0 -> 2598 bytes imgs/icons/{21440.png => 21440@1x.png} | Bin imgs/icons/21440@2x.png | Bin 0 -> 2538 bytes imgs/icons/{21441.png => 21441@1x.png} | Bin imgs/icons/21441@2x.png | Bin 0 -> 2516 bytes imgs/icons/{21442.png => 21442@1x.png} | Bin imgs/icons/21442@2x.png | Bin 0 -> 2541 bytes imgs/icons/{21481.png => 21481@1x.png} | Bin imgs/icons/21481@2x.png | Bin 0 -> 2165 bytes imgs/icons/{21482.png => 21482@1x.png} | Bin imgs/icons/21482@2x.png | Bin 0 -> 3258 bytes imgs/icons/{21483.png => 21483@1x.png} | Bin imgs/icons/21483@2x.png | Bin 0 -> 2707 bytes imgs/icons/{21484.png => 21484@1x.png} | Bin imgs/icons/21484@2x.png | Bin 0 -> 2706 bytes imgs/icons/{21485.png => 21485@1x.png} | Bin imgs/icons/21485@2x.png | Bin 0 -> 2663 bytes imgs/icons/{21486.png => 21486@1x.png} | Bin imgs/icons/21486@2x.png | Bin 0 -> 2782 bytes imgs/icons/{21487.png => 21487@1x.png} | Bin imgs/icons/21487@2x.png | Bin 0 -> 2647 bytes imgs/icons/{21489.png => 21489@1x.png} | Bin imgs/icons/21489@2x.png | Bin 0 -> 2078 bytes imgs/icons/{21513.png => 21513@1x.png} | Bin imgs/icons/21513@2x.png | Bin 0 -> 2485 bytes imgs/icons/{21530.png => 21530@1x.png} | Bin imgs/icons/21530@2x.png | Bin 0 -> 2474 bytes imgs/icons/{21531.png => 21531@1x.png} | Bin imgs/icons/21531@2x.png | Bin 0 -> 2079 bytes imgs/icons/{21532.png => 21532@1x.png} | Bin imgs/icons/21532@2x.png | Bin 0 -> 2416 bytes imgs/icons/{21533.png => 21533@1x.png} | Bin imgs/icons/21533@2x.png | Bin 0 -> 2277 bytes imgs/icons/{21534.png => 21534@1x.png} | Bin imgs/icons/21534@2x.png | Bin 0 -> 2333 bytes imgs/icons/{21561.png => 21561@1x.png} | Bin imgs/icons/21561@2x.png | Bin 0 -> 3296 bytes imgs/icons/{21564.png => 21564@1x.png} | Bin imgs/icons/21564@2x.png | Bin 0 -> 2870 bytes imgs/icons/{21565.png => 21565@1x.png} | Bin imgs/icons/21565@2x.png | Bin 0 -> 2866 bytes imgs/icons/{21566.png => 21566@1x.png} | Bin imgs/icons/21566@2x.png | Bin 0 -> 2923 bytes imgs/icons/{21567.png => 21567@1x.png} | Bin imgs/icons/21567@2x.png | Bin 0 -> 1501 bytes imgs/icons/{21568.png => 21568@1x.png} | Bin imgs/icons/21568@2x.png | Bin 0 -> 2457 bytes imgs/icons/{21569.png => 21569@1x.png} | Bin imgs/icons/21569@2x.png | Bin 0 -> 2530 bytes imgs/icons/{21570.png => 21570@1x.png} | Bin imgs/icons/21570@2x.png | Bin 0 -> 1476 bytes imgs/icons/{21571.png => 21571@1x.png} | Bin imgs/icons/21571@2x.png | Bin 0 -> 2421 bytes imgs/icons/{21574.png => 21574@1x.png} | Bin imgs/icons/21574@2x.png | Bin 0 -> 2456 bytes imgs/icons/{21575.png => 21575@1x.png} | Bin imgs/icons/21575@2x.png | Bin 0 -> 2566 bytes imgs/icons/{21581.png => 21581@1x.png} | Bin imgs/icons/21581@2x.png | Bin 0 -> 2704 bytes imgs/icons/{21593.png => 21593@1x.png} | Bin imgs/icons/21593@2x.png | Bin 0 -> 2060 bytes imgs/icons/{21594.png => 21594@1x.png} | Bin imgs/icons/21594@2x.png | Bin 0 -> 2516 bytes imgs/icons/{21595.png => 21595@1x.png} | Bin imgs/icons/21595@2x.png | Bin 0 -> 2233 bytes imgs/icons/{21596.png => 21596@1x.png} | Bin imgs/icons/21596@2x.png | Bin 0 -> 2062 bytes imgs/icons/{21597.png => 21597@1x.png} | Bin imgs/icons/21597@2x.png | Bin 0 -> 2105 bytes imgs/icons/{21598.png => 21598@1x.png} | Bin imgs/icons/21598@2x.png | Bin 0 -> 2180 bytes imgs/icons/{21599.png => 21599@1x.png} | Bin imgs/icons/21599@2x.png | Bin 0 -> 2252 bytes imgs/icons/{21601.png => 21601@1x.png} | Bin imgs/icons/21601@2x.png | Bin 0 -> 2428 bytes imgs/icons/{21602.png => 21602@1x.png} | Bin imgs/icons/21602@2x.png | Bin 0 -> 2367 bytes imgs/icons/{21603.png => 21603@1x.png} | Bin imgs/icons/21603@2x.png | Bin 0 -> 1726 bytes imgs/icons/{21604.png => 21604@1x.png} | Bin imgs/icons/21604@2x.png | Bin 0 -> 2585 bytes imgs/icons/{21605.png => 21605@1x.png} | Bin imgs/icons/21605@2x.png | Bin 0 -> 2489 bytes imgs/icons/{21607.png => 21607@1x.png} | Bin imgs/icons/21607@2x.png | Bin 0 -> 2383 bytes imgs/icons/{21608.png => 21608@1x.png} | Bin imgs/icons/21608@2x.png | Bin 0 -> 2818 bytes imgs/icons/{21609.png => 21609@1x.png} | Bin imgs/icons/21609@2x.png | Bin 0 -> 2533 bytes imgs/icons/{21610.png => 21610@1x.png} | Bin imgs/icons/21610@2x.png | Bin 0 -> 2584 bytes imgs/icons/{21611.png => 21611@1x.png} | Bin imgs/icons/21611@2x.png | Bin 0 -> 2537 bytes imgs/icons/{21618.png => 21618@1x.png} | Bin imgs/icons/21618@2x.png | Bin 0 -> 1992 bytes imgs/icons/{21620.png => 21620@1x.png} | Bin imgs/icons/21620@2x.png | Bin 0 -> 2221 bytes imgs/icons/{21621.png => 21621@1x.png} | Bin imgs/icons/21621@2x.png | Bin 0 -> 2454 bytes imgs/icons/{21622.png => 21622@1x.png} | Bin imgs/icons/21622@2x.png | Bin 0 -> 2496 bytes imgs/icons/{21683.png => 21683@1x.png} | Bin imgs/icons/21683@2x.png | Bin 0 -> 2586 bytes imgs/icons/{21684.png => 21684@1x.png} | Bin imgs/icons/21684@2x.png | Bin 0 -> 2565 bytes imgs/icons/{21685.png => 21685@1x.png} | Bin imgs/icons/21685@2x.png | Bin 0 -> 2589 bytes imgs/icons/{21686.png => 21686@1x.png} | Bin imgs/icons/21686@2x.png | Bin 0 -> 2589 bytes imgs/icons/{21687.png => 21687@1x.png} | Bin imgs/icons/21687@2x.png | Bin 0 -> 2624 bytes imgs/icons/{21688.png => 21688@1x.png} | Bin imgs/icons/21688@2x.png | Bin 0 -> 2612 bytes imgs/icons/{21689.png => 21689@1x.png} | Bin imgs/icons/21689@2x.png | Bin 0 -> 2625 bytes imgs/icons/{21690.png => 21690@1x.png} | Bin imgs/icons/21690@2x.png | Bin 0 -> 2585 bytes imgs/icons/{21691.png => 21691@1x.png} | Bin imgs/icons/21691@2x.png | Bin 0 -> 2308 bytes imgs/icons/{21692.png => 21692@1x.png} | Bin imgs/icons/21692@2x.png | Bin 0 -> 2319 bytes imgs/icons/{21693.png => 21693@1x.png} | Bin imgs/icons/21693@2x.png | Bin 0 -> 2280 bytes imgs/icons/{21694.png => 21694@1x.png} | Bin imgs/icons/21694@2x.png | Bin 0 -> 2308 bytes imgs/icons/{21695.png => 21695@1x.png} | Bin imgs/icons/21695@2x.png | Bin 0 -> 2613 bytes imgs/icons/{21696.png => 21696@1x.png} | Bin imgs/icons/21696@2x.png | Bin 0 -> 2599 bytes imgs/icons/{21698.png => 21698@1x.png} | Bin imgs/icons/21698@2x.png | Bin 0 -> 2573 bytes imgs/icons/{21699.png => 21699@1x.png} | Bin imgs/icons/21699@2x.png | Bin 0 -> 2613 bytes imgs/icons/{21700.png => 21700@1x.png} | Bin imgs/icons/21700@2x.png | Bin 0 -> 2401 bytes imgs/icons/{21701.png => 21701@1x.png} | Bin imgs/icons/21701@2x.png | Bin 0 -> 2364 bytes imgs/icons/{21702.png => 21702@1x.png} | Bin imgs/icons/21702@2x.png | Bin 0 -> 2376 bytes imgs/icons/{21703.png => 21703@1x.png} | Bin imgs/icons/21703@2x.png | Bin 0 -> 2356 bytes imgs/icons/{21704.png => 21704@1x.png} | Bin imgs/icons/21704@2x.png | Bin 0 -> 2463 bytes imgs/icons/{21705.png => 21705@1x.png} | Bin imgs/icons/21705@2x.png | Bin 0 -> 2437 bytes imgs/icons/{21706.png => 21706@1x.png} | Bin imgs/icons/21706@2x.png | Bin 0 -> 2438 bytes imgs/icons/{21707.png => 21707@1x.png} | Bin imgs/icons/21707@2x.png | Bin 0 -> 2463 bytes imgs/icons/{21725.png => 21725@1x.png} | Bin imgs/icons/21725@2x.png | Bin 0 -> 2335 bytes imgs/icons/{21729.png => 21729@1x.png} | Bin imgs/icons/21729@2x.png | Bin 0 -> 2427 bytes imgs/icons/{21730.png => 21730@1x.png} | Bin imgs/icons/21730@2x.png | Bin 0 -> 2425 bytes imgs/icons/{21731.png => 21731@1x.png} | Bin imgs/icons/21731@2x.png | Bin 0 -> 2066 bytes imgs/icons/{21741.png => 21741@1x.png} | Bin imgs/icons/21741@2x.png | Bin 0 -> 2231 bytes imgs/icons/{21742.png => 21742@1x.png} | Bin imgs/icons/21742@2x.png | Bin 0 -> 2384 bytes imgs/icons/{21743.png => 21743@1x.png} | Bin imgs/icons/21743@2x.png | Bin 0 -> 2456 bytes imgs/icons/{2176.png => 2176@1x.png} | Bin imgs/icons/2176@2x.png | Bin 0 -> 1844 bytes imgs/icons/{21774.png => 21774@1x.png} | Bin imgs/icons/21774@2x.png | Bin 0 -> 2559 bytes imgs/icons/{2177.png => 2177@1x.png} | Bin imgs/icons/2177@2x.png | Bin 0 -> 2100 bytes imgs/icons/{21783.png => 21783@1x.png} | Bin imgs/icons/21783@2x.png | Bin 0 -> 2271 bytes imgs/icons/{21784.png => 21784@1x.png} | Bin imgs/icons/21784@2x.png | Bin 0 -> 2841 bytes imgs/icons/{21785.png => 21785@1x.png} | Bin imgs/icons/21785@2x.png | Bin 0 -> 2147 bytes imgs/icons/{21787.png => 21787@1x.png} | Bin imgs/icons/21787@2x.png | Bin 0 -> 2408 bytes imgs/icons/{21788.png => 21788@1x.png} | Bin imgs/icons/21788@2x.png | Bin 0 -> 2267 bytes imgs/icons/{21789.png => 21789@1x.png} | Bin imgs/icons/21789@2x.png | Bin 0 -> 2289 bytes imgs/icons/{2178.png => 2178@1x.png} | Bin imgs/icons/2178@2x.png | Bin 0 -> 2049 bytes imgs/icons/{21790.png => 21790@1x.png} | Bin imgs/icons/21790@2x.png | Bin 0 -> 1753 bytes imgs/icons/{21791.png => 21791@1x.png} | Bin imgs/icons/21791@2x.png | Bin 0 -> 2387 bytes imgs/icons/{21792.png => 21792@1x.png} | Bin imgs/icons/21792@2x.png | Bin 0 -> 2232 bytes imgs/icons/{21793.png => 21793@1x.png} | Bin imgs/icons/21793@2x.png | Bin 0 -> 2551 bytes imgs/icons/{21794.png => 21794@1x.png} | Bin imgs/icons/21794@2x.png | Bin 0 -> 2517 bytes imgs/icons/{21795.png => 21795@1x.png} | Bin imgs/icons/21795@2x.png | Bin 0 -> 2304 bytes imgs/icons/{21796.png => 21796@1x.png} | Bin imgs/icons/21796@2x.png | Bin 0 -> 1924 bytes imgs/icons/{21797.png => 21797@1x.png} | Bin imgs/icons/21797@2x.png | Bin 0 -> 2270 bytes imgs/icons/{21798.png => 21798@1x.png} | Bin imgs/icons/21798@2x.png | Bin 0 -> 2165 bytes imgs/icons/{21799.png => 21799@1x.png} | Bin imgs/icons/21799@2x.png | Bin 0 -> 2252 bytes imgs/icons/{2179.png => 2179@1x.png} | Bin imgs/icons/2179@2x.png | Bin 0 -> 2217 bytes imgs/icons/{21800.png => 21800@1x.png} | Bin imgs/icons/21800@2x.png | Bin 0 -> 2270 bytes imgs/icons/{21801.png => 21801@1x.png} | Bin imgs/icons/21801@2x.png | Bin 0 -> 2240 bytes imgs/icons/{2180.png => 2180@1x.png} | Bin imgs/icons/2180@2x.png | Bin 0 -> 2289 bytes imgs/icons/{2181.png => 2181@1x.png} | Bin imgs/icons/2181@2x.png | Bin 0 -> 2063 bytes imgs/icons/{21829.png => 21829@1x.png} | Bin imgs/icons/21829@2x.png | Bin 0 -> 1905 bytes imgs/icons/{2182.png => 2182@1x.png} | Bin imgs/icons/2182@2x.png | Bin 0 -> 2223 bytes imgs/icons/{21832.png => 21832@1x.png} | Bin imgs/icons/21832@2x.png | Bin 0 -> 2334 bytes imgs/icons/{21833.png => 21833@1x.png} | Bin imgs/icons/21833@2x.png | Bin 0 -> 2300 bytes imgs/icons/{21835.png => 21835@1x.png} | Bin imgs/icons/21835@2x.png | Bin 0 -> 2062 bytes imgs/icons/{21839.png => 21839@1x.png} | Bin imgs/icons/21839@2x.png | Bin 0 -> 1975 bytes imgs/icons/{2183.png => 2183@1x.png} | Bin imgs/icons/2183@2x.png | Bin 0 -> 1660 bytes imgs/icons/{21840.png => 21840@1x.png} | Bin imgs/icons/21840@2x.png | Bin 0 -> 2010 bytes imgs/icons/{21841.png => 21841@1x.png} | Bin imgs/icons/21841@2x.png | Bin 0 -> 1813 bytes imgs/icons/{21843.png => 21843@1x.png} | Bin imgs/icons/21843@2x.png | Bin 0 -> 2074 bytes imgs/icons/{21844.png => 21844@1x.png} | Bin imgs/icons/21844@2x.png | Bin 0 -> 1974 bytes imgs/icons/{2184.png => 2184@1x.png} | Bin imgs/icons/2184@2x.png | Bin 0 -> 1916 bytes imgs/icons/{2185.png => 2185@1x.png} | Bin imgs/icons/2185@2x.png | Bin 0 -> 1876 bytes imgs/icons/{21860.png => 21860@1x.png} | Bin imgs/icons/21860@2x.png | Bin 0 -> 2212 bytes imgs/icons/{2186.png => 2186@1x.png} | Bin imgs/icons/2186@2x.png | Bin 0 -> 1581 bytes imgs/icons/{2187.png => 2187@1x.png} | Bin imgs/icons/2187@2x.png | Bin 0 -> 1985 bytes imgs/icons/{2188.png => 2188@1x.png} | Bin imgs/icons/2188@2x.png | Bin 0 -> 1692 bytes imgs/icons/{21891.png => 21891@1x.png} | Bin imgs/icons/21891@2x.png | Bin 0 -> 2107 bytes imgs/icons/{21898.png => 21898@1x.png} | Bin imgs/icons/21898@2x.png | Bin 0 -> 2181 bytes imgs/icons/{2189.png => 2189@1x.png} | Bin imgs/icons/2189@2x.png | Bin 0 -> 1695 bytes imgs/icons/{21903.png => 21903@1x.png} | Bin imgs/icons/21903@2x.png | Bin 0 -> 2412 bytes imgs/icons/{21904.png => 21904@1x.png} | Bin imgs/icons/21904@2x.png | Bin 0 -> 2649 bytes imgs/icons/{21905.png => 21905@1x.png} | Bin imgs/icons/21905@2x.png | Bin 0 -> 2851 bytes imgs/icons/{21906.png => 21906@1x.png} | Bin imgs/icons/21906@2x.png | Bin 0 -> 2196 bytes imgs/icons/{21907.png => 21907@1x.png} | Bin imgs/icons/21907@2x.png | Bin 0 -> 2414 bytes imgs/icons/{2190.png => 2190@1x.png} | Bin imgs/icons/2190@2x.png | Bin 0 -> 1703 bytes imgs/icons/{21916.png => 21916@1x.png} | Bin imgs/icons/21916@2x.png | Bin 0 -> 1996 bytes imgs/icons/{21917.png => 21917@1x.png} | Bin imgs/icons/21917@2x.png | Bin 0 -> 1988 bytes imgs/icons/{21918.png => 21918@1x.png} | Bin imgs/icons/21918@2x.png | Bin 0 -> 1979 bytes imgs/icons/{21919.png => 21919@1x.png} | Bin imgs/icons/21919@2x.png | Bin 0 -> 2034 bytes imgs/icons/{2191.png => 2191@1x.png} | Bin imgs/icons/2191@2x.png | Bin 0 -> 1904 bytes imgs/icons/{21920.png => 21920@1x.png} | Bin imgs/icons/21920@2x.png | Bin 0 -> 1995 bytes imgs/icons/{21921.png => 21921@1x.png} | Bin imgs/icons/21921@2x.png | Bin 0 -> 1947 bytes imgs/icons/{21922.png => 21922@1x.png} | Bin imgs/icons/21922@2x.png | Bin 0 -> 1649 bytes imgs/icons/{21923.png => 21923@1x.png} | Bin imgs/icons/21923@2x.png | Bin 0 -> 1521 bytes imgs/icons/{21924.png => 21924@1x.png} | Bin imgs/icons/21924@2x.png | Bin 0 -> 2412 bytes imgs/icons/{21925.png => 21925@1x.png} | Bin imgs/icons/21925@2x.png | Bin 0 -> 2425 bytes imgs/icons/{21926.png => 21926@1x.png} | Bin imgs/icons/21926@2x.png | Bin 0 -> 2451 bytes imgs/icons/{21927.png => 21927@1x.png} | Bin imgs/icons/21927@2x.png | Bin 0 -> 2459 bytes imgs/icons/{21928.png => 21928@1x.png} | Bin imgs/icons/21928@2x.png | Bin 0 -> 2470 bytes imgs/icons/{2192.png => 2192@1x.png} | Bin imgs/icons/2192@2x.png | Bin 0 -> 1807 bytes imgs/icons/{2193.png => 2193@1x.png} | Bin imgs/icons/2193@2x.png | Bin 0 -> 2428 bytes imgs/icons/{2194.png => 2194@1x.png} | Bin imgs/icons/2194@2x.png | Bin 0 -> 2469 bytes imgs/icons/{2195.png => 2195@1x.png} | Bin imgs/icons/2195@2x.png | Bin 0 -> 2562 bytes imgs/icons/{2196.png => 2196@1x.png} | Bin imgs/icons/2196@2x.png | Bin 0 -> 2467 bytes imgs/icons/{2197.png => 2197@1x.png} | Bin imgs/icons/2197@2x.png | Bin 0 -> 1977 bytes imgs/icons/{21980.png => 21980@1x.png} | Bin imgs/icons/21980@2x.png | Bin 0 -> 1961 bytes imgs/icons/{21981.png => 21981@1x.png} | Bin imgs/icons/21981@2x.png | Bin 0 -> 2338 bytes imgs/icons/{21982.png => 21982@1x.png} | Bin imgs/icons/21982@2x.png | Bin 0 -> 1854 bytes imgs/icons/{21983.png => 21983@1x.png} | Bin imgs/icons/21983@2x.png | Bin 0 -> 2274 bytes imgs/icons/{21984.png => 21984@1x.png} | Bin imgs/icons/21984@2x.png | Bin 0 -> 1978 bytes imgs/icons/{21985.png => 21985@1x.png} | Bin imgs/icons/21985@2x.png | Bin 0 -> 2303 bytes imgs/icons/{21986.png => 21986@1x.png} | Bin imgs/icons/21986@2x.png | Bin 0 -> 1944 bytes imgs/icons/{21987.png => 21987@1x.png} | Bin imgs/icons/21987@2x.png | Bin 0 -> 2184 bytes imgs/icons/{21988.png => 21988@1x.png} | Bin imgs/icons/21988@2x.png | Bin 0 -> 2248 bytes imgs/icons/{21989.png => 21989@1x.png} | Bin imgs/icons/21989@2x.png | Bin 0 -> 1936 bytes imgs/icons/{2198.png => 2198@1x.png} | Bin imgs/icons/2198@2x.png | Bin 0 -> 1958 bytes imgs/icons/{21990.png => 21990@1x.png} | Bin imgs/icons/21990@2x.png | Bin 0 -> 2278 bytes imgs/icons/{21991.png => 21991@1x.png} | Bin imgs/icons/21991@2x.png | Bin 0 -> 2182 bytes imgs/icons/{21992.png => 21992@1x.png} | Bin imgs/icons/21992@2x.png | Bin 0 -> 2325 bytes imgs/icons/{21993.png => 21993@1x.png} | Bin imgs/icons/21993@2x.png | Bin 0 -> 1966 bytes imgs/icons/{21994.png => 21994@1x.png} | Bin imgs/icons/21994@2x.png | Bin 0 -> 2307 bytes imgs/icons/{21995.png => 21995@1x.png} | Bin imgs/icons/21995@2x.png | Bin 0 -> 2039 bytes imgs/icons/{21996.png => 21996@1x.png} | Bin imgs/icons/21996@2x.png | Bin 0 -> 2383 bytes imgs/icons/{21997.png => 21997@1x.png} | Bin imgs/icons/21997@2x.png | Bin 0 -> 2003 bytes imgs/icons/{21998.png => 21998@1x.png} | Bin imgs/icons/21998@2x.png | Bin 0 -> 2160 bytes imgs/icons/{21999.png => 21999@1x.png} | Bin imgs/icons/21999@2x.png | Bin 0 -> 2258 bytes imgs/icons/{2199.png => 2199@1x.png} | Bin imgs/icons/2199@2x.png | Bin 0 -> 1912 bytes imgs/icons/{21.png => 21@1x.png} | Bin imgs/icons/21@2x.png | Bin 0 -> 2654 bytes imgs/icons/{22000.png => 22000@1x.png} | Bin imgs/icons/22000@2x.png | Bin 0 -> 1912 bytes imgs/icons/{22001.png => 22001@1x.png} | Bin imgs/icons/22001@2x.png | Bin 0 -> 2305 bytes imgs/icons/{22002.png => 22002@1x.png} | Bin imgs/icons/22002@2x.png | Bin 0 -> 2305 bytes imgs/icons/{22003.png => 22003@1x.png} | Bin imgs/icons/22003@2x.png | Bin 0 -> 2323 bytes imgs/icons/{22004.png => 22004@1x.png} | Bin imgs/icons/22004@2x.png | Bin 0 -> 2006 bytes imgs/icons/{22005.png => 22005@1x.png} | Bin imgs/icons/22005@2x.png | Bin 0 -> 2246 bytes imgs/icons/{22006.png => 22006@1x.png} | Bin imgs/icons/22006@2x.png | Bin 0 -> 2343 bytes imgs/icons/{22007.png => 22007@1x.png} | Bin imgs/icons/22007@2x.png | Bin 0 -> 2416 bytes imgs/icons/{22008.png => 22008@1x.png} | Bin imgs/icons/22008@2x.png | Bin 0 -> 2037 bytes imgs/icons/{22009.png => 22009@1x.png} | Bin imgs/icons/22009@2x.png | Bin 0 -> 2255 bytes imgs/icons/{2200.png => 2200@1x.png} | Bin imgs/icons/2200@2x.png | Bin 0 -> 1988 bytes imgs/icons/{22010.png => 22010@1x.png} | Bin imgs/icons/22010@2x.png | Bin 0 -> 2311 bytes imgs/icons/{22011.png => 22011@1x.png} | Bin imgs/icons/22011@2x.png | Bin 0 -> 1968 bytes imgs/icons/{22012.png => 22012@1x.png} | Bin imgs/icons/22012@2x.png | Bin 0 -> 2361 bytes imgs/icons/{22013.png => 22013@1x.png} | Bin imgs/icons/22013@2x.png | Bin 0 -> 2324 bytes imgs/icons/{22014.png => 22014@1x.png} | Bin imgs/icons/22014@2x.png | Bin 0 -> 2389 bytes imgs/icons/{22016.png => 22016@1x.png} | Bin imgs/icons/22016@2x.png | Bin 0 -> 2022 bytes imgs/icons/{22018.png => 22018@1x.png} | Bin imgs/icons/22018@2x.png | Bin 0 -> 2292 bytes imgs/icons/{2201.png => 2201@1x.png} | Bin imgs/icons/2201@2x.png | Bin 0 -> 2419 bytes imgs/icons/{22020.png => 22020@1x.png} | Bin imgs/icons/22020@2x.png | Bin 0 -> 2235 bytes imgs/icons/{22029.png => 22029@1x.png} | Bin imgs/icons/22029@2x.png | Bin 0 -> 2761 bytes imgs/icons/{2202.png => 2202@1x.png} | Bin imgs/icons/2202@2x.png | Bin 0 -> 2454 bytes imgs/icons/{22030.png => 22030@1x.png} | Bin imgs/icons/22030@2x.png | Bin 0 -> 2041 bytes imgs/icons/{22031.png => 22031@1x.png} | Bin imgs/icons/22031@2x.png | Bin 0 -> 2618 bytes imgs/icons/{22034.png => 22034@1x.png} | Bin imgs/icons/22034@2x.png | Bin 0 -> 1517 bytes imgs/icons/{22036.png => 22036@1x.png} | Bin imgs/icons/22036@2x.png | Bin 0 -> 2380 bytes imgs/icons/{2203.png => 2203@1x.png} | Bin imgs/icons/2203@2x.png | Bin 0 -> 2380 bytes imgs/icons/{22041.png => 22041@1x.png} | Bin imgs/icons/22041@2x.png | Bin 0 -> 1489 bytes imgs/icons/{2204.png => 2204@1x.png} | Bin imgs/icons/2204@2x.png | Bin 0 -> 2458 bytes imgs/icons/{2206.png => 2206@1x.png} | Bin imgs/icons/2206@2x.png | Bin 0 -> 2065 bytes imgs/icons/{2209.png => 2209@1x.png} | Bin imgs/icons/2209@2x.png | Bin 0 -> 2738 bytes imgs/icons/{2210.png => 2210@1x.png} | Bin imgs/icons/2210@2x.png | Bin 0 -> 1737 bytes imgs/icons/{2211.png => 2211@1x.png} | Bin imgs/icons/2211@2x.png | Bin 0 -> 1962 bytes imgs/icons/{2212.png => 2212@1x.png} | Bin imgs/icons/2212@2x.png | Bin 0 -> 2320 bytes imgs/icons/{2213.png => 2213@1x.png} | Bin imgs/icons/2213@2x.png | Bin 0 -> 2190 bytes imgs/icons/{2214.png => 2214@1x.png} | Bin imgs/icons/2214@2x.png | Bin 0 -> 2041 bytes imgs/icons/{2215.png => 2215@1x.png} | Bin imgs/icons/2215@2x.png | Bin 0 -> 2097 bytes imgs/icons/{2216.png => 2216@1x.png} | Bin imgs/icons/2216@2x.png | Bin 0 -> 1973 bytes imgs/icons/{2217.png => 2217@1x.png} | Bin imgs/icons/2217@2x.png | Bin 0 -> 2228 bytes imgs/icons/{2218.png => 2218@1x.png} | Bin imgs/icons/2218@2x.png | Bin 0 -> 2165 bytes imgs/icons/{2219.png => 2219@1x.png} | Bin imgs/icons/2219@2x.png | Bin 0 -> 2139 bytes imgs/icons/{2220.png => 2220@1x.png} | Bin imgs/icons/2220@2x.png | Bin 0 -> 2025 bytes imgs/icons/{2221.png => 2221@1x.png} | Bin imgs/icons/2221@2x.png | Bin 0 -> 2447 bytes imgs/icons/{2222.png => 2222@1x.png} | Bin imgs/icons/2222@2x.png | Bin 0 -> 3673 bytes imgs/icons/{2224.png => 2224@1x.png} | Bin imgs/icons/2224@2x.png | Bin 0 -> 2230 bytes imgs/icons/{2225.png => 2225@1x.png} | Bin imgs/icons/2225@2x.png | Bin 0 -> 3568 bytes imgs/icons/{2226.png => 2226@1x.png} | Bin imgs/icons/2226@2x.png | Bin 0 -> 2917 bytes imgs/icons/{2227.png => 2227@1x.png} | Bin imgs/icons/2227@2x.png | Bin 0 -> 2116 bytes imgs/icons/{2228.png => 2228@1x.png} | Bin imgs/icons/2228@2x.png | Bin 0 -> 2138 bytes imgs/icons/{2229.png => 2229@1x.png} | Bin imgs/icons/2229@2x.png | Bin 0 -> 2463 bytes imgs/icons/{2230.png => 2230@1x.png} | Bin imgs/icons/2230@2x.png | Bin 0 -> 2453 bytes imgs/icons/{2231.png => 2231@1x.png} | Bin imgs/icons/2231@2x.png | Bin 0 -> 2730 bytes imgs/icons/{2232.png => 2232@1x.png} | Bin imgs/icons/2232@2x.png | Bin 0 -> 2600 bytes imgs/icons/{2233.png => 2233@1x.png} | Bin imgs/icons/2233@2x.png | Bin 0 -> 2134 bytes imgs/icons/{2234.png => 2234@1x.png} | Bin imgs/icons/2234@2x.png | Bin 0 -> 2489 bytes imgs/icons/{2244.png => 2244@1x.png} | Bin imgs/icons/2244@2x.png | Bin 0 -> 2364 bytes imgs/icons/{22.png => 22@1x.png} | Bin imgs/icons/22@2x.png | Bin 0 -> 1891 bytes imgs/icons/{2302.png => 2302@1x.png} | Bin imgs/icons/2302@2x.png | Bin 0 -> 3008 bytes imgs/icons/{2304.png => 2304@1x.png} | Bin imgs/icons/2304@2x.png | Bin 0 -> 2612 bytes imgs/icons/{2309.png => 2309@1x.png} | Bin imgs/icons/2309@2x.png | Bin 0 -> 2093 bytes imgs/icons/{230.png => 230@1x.png} | Bin imgs/icons/230@2x.png | Bin 0 -> 2319 bytes imgs/icons/{2310.png => 2310@1x.png} | Bin imgs/icons/2310@2x.png | Bin 0 -> 2789 bytes imgs/icons/{2311.png => 2311@1x.png} | Bin imgs/icons/2311@2x.png | Bin 0 -> 2767 bytes imgs/icons/{2312.png => 2312@1x.png} | Bin imgs/icons/2312@2x.png | Bin 0 -> 2789 bytes imgs/icons/{2313.png => 2313@1x.png} | Bin imgs/icons/2313@2x.png | Bin 0 -> 2786 bytes imgs/icons/{2314.png => 2314@1x.png} | Bin imgs/icons/2314@2x.png | Bin 0 -> 2833 bytes imgs/icons/{2315.png => 2315@1x.png} | Bin imgs/icons/2315@2x.png | Bin 0 -> 2040 bytes imgs/icons/{2316.png => 2316@1x.png} | Bin imgs/icons/2316@2x.png | Bin 0 -> 2065 bytes imgs/icons/{2317.png => 2317@1x.png} | Bin imgs/icons/2317@2x.png | Bin 0 -> 2077 bytes imgs/icons/{2318.png => 2318@1x.png} | Bin imgs/icons/2318@2x.png | Bin 0 -> 2079 bytes imgs/icons/{2319.png => 2319@1x.png} | Bin imgs/icons/2319@2x.png | Bin 0 -> 2149 bytes imgs/icons/{231.png => 231@1x.png} | Bin imgs/icons/231@2x.png | Bin 0 -> 2268 bytes imgs/icons/{2320.png => 2320@1x.png} | Bin imgs/icons/2320@2x.png | Bin 0 -> 2865 bytes imgs/icons/{2321.png => 2321@1x.png} | Bin imgs/icons/2321@2x.png | Bin 0 -> 2721 bytes imgs/icons/{2322.png => 2322@1x.png} | Bin imgs/icons/2322@2x.png | Bin 0 -> 2776 bytes imgs/icons/{2323.png => 2323@1x.png} | Bin imgs/icons/2323@2x.png | Bin 0 -> 2755 bytes imgs/icons/{2324.png => 2324@1x.png} | Bin imgs/icons/2324@2x.png | Bin 0 -> 2889 bytes imgs/icons/{2325.png => 2325@1x.png} | Bin imgs/icons/2325@2x.png | Bin 0 -> 2661 bytes imgs/icons/{2326.png => 2326@1x.png} | Bin imgs/icons/2326@2x.png | Bin 0 -> 2644 bytes imgs/icons/{2327.png => 2327@1x.png} | Bin imgs/icons/2327@2x.png | Bin 0 -> 2619 bytes imgs/icons/{2328.png => 2328@1x.png} | Bin imgs/icons/2328@2x.png | Bin 0 -> 2704 bytes imgs/icons/{2329.png => 2329@1x.png} | Bin imgs/icons/2329@2x.png | Bin 0 -> 2738 bytes imgs/icons/{232.png => 232@1x.png} | Bin imgs/icons/232@2x.png | Bin 0 -> 2121 bytes imgs/icons/{2330.png => 2330@1x.png} | Bin imgs/icons/2330@2x.png | Bin 0 -> 2221 bytes imgs/icons/{2331.png => 2331@1x.png} | Bin imgs/icons/2331@2x.png | Bin 0 -> 2221 bytes imgs/icons/{2332.png => 2332@1x.png} | Bin imgs/icons/2332@2x.png | Bin 0 -> 2239 bytes imgs/icons/{2333.png => 2333@1x.png} | Bin imgs/icons/2333@2x.png | Bin 0 -> 2381 bytes imgs/icons/{2334.png => 2334@1x.png} | Bin imgs/icons/2334@2x.png | Bin 0 -> 2301 bytes imgs/icons/{2338.png => 2338@1x.png} | Bin imgs/icons/2338@2x.png | Bin 0 -> 2883 bytes imgs/icons/{2340.png => 2340@1x.png} | Bin imgs/icons/2340@2x.png | Bin 0 -> 2519 bytes imgs/icons/{2355.png => 2355@1x.png} | Bin imgs/icons/2355@2x.png | Bin 0 -> 2375 bytes imgs/icons/{2512.png => 2512@1x.png} | Bin imgs/icons/2512@2x.png | Bin 0 -> 2593 bytes imgs/icons/{2526.png => 2526@1x.png} | Bin imgs/icons/2526@2x.png | Bin 0 -> 2127 bytes imgs/icons/{2527.png => 2527@1x.png} | Bin imgs/icons/2527@2x.png | Bin 0 -> 2132 bytes imgs/icons/{2528.png => 2528@1x.png} | Bin imgs/icons/2528@2x.png | Bin 0 -> 2301 bytes imgs/icons/{2529.png => 2529@1x.png} | Bin imgs/icons/2529@2x.png | Bin 0 -> 2581 bytes imgs/icons/{2530.png => 2530@1x.png} | Bin imgs/icons/2530@2x.png | Bin 0 -> 2871 bytes imgs/icons/{2531.png => 2531@1x.png} | Bin imgs/icons/2531@2x.png | Bin 0 -> 2125 bytes imgs/icons/{2532.png => 2532@1x.png} | Bin imgs/icons/2532@2x.png | Bin 0 -> 1603 bytes imgs/icons/{2536.png => 2536@1x.png} | Bin imgs/icons/2536@2x.png | Bin 0 -> 1538 bytes imgs/icons/{2537.png => 2537@1x.png} | Bin imgs/icons/2537@2x.png | Bin 0 -> 1330 bytes imgs/icons/{2538.png => 2538@1x.png} | Bin imgs/icons/2538@2x.png | Bin 0 -> 1356 bytes imgs/icons/{2539.png => 2539@1x.png} | Bin imgs/icons/2539@2x.png | Bin 0 -> 1705 bytes imgs/icons/{2540.png => 2540@1x.png} | Bin imgs/icons/2540@2x.png | Bin 0 -> 1660 bytes imgs/icons/{2541.png => 2541@1x.png} | Bin imgs/icons/2541@2x.png | Bin 0 -> 2108 bytes imgs/icons/{2542.png => 2542@1x.png} | Bin imgs/icons/2542@2x.png | Bin 0 -> 1458 bytes imgs/icons/{2543.png => 2543@1x.png} | Bin imgs/icons/2543@2x.png | Bin 0 -> 1342 bytes imgs/icons/{2544.png => 2544@1x.png} | Bin imgs/icons/2544@2x.png | Bin 0 -> 1664 bytes imgs/icons/{2545.png => 2545@1x.png} | Bin imgs/icons/2545@2x.png | Bin 0 -> 1449 bytes imgs/icons/{2546.png => 2546@1x.png} | Bin imgs/icons/2546@2x.png | Bin 0 -> 1659 bytes imgs/icons/{2547.png => 2547@1x.png} | Bin imgs/icons/2547@2x.png | Bin 0 -> 1766 bytes imgs/icons/{2548.png => 2548@1x.png} | Bin imgs/icons/2548@2x.png | Bin 0 -> 1698 bytes imgs/icons/{2549.png => 2549@1x.png} | Bin imgs/icons/2549@2x.png | Bin 0 -> 1823 bytes imgs/icons/{2550.png => 2550@1x.png} | Bin imgs/icons/2550@2x.png | Bin 0 -> 1738 bytes imgs/icons/{2551.png => 2551@1x.png} | Bin imgs/icons/2551@2x.png | Bin 0 -> 2407 bytes imgs/icons/{2552.png => 2552@1x.png} | Bin imgs/icons/2552@2x.png | Bin 0 -> 1766 bytes imgs/icons/{2553.png => 2553@1x.png} | Bin imgs/icons/2553@2x.png | Bin 0 -> 2663 bytes imgs/icons/{2554.png => 2554@1x.png} | Bin imgs/icons/2554@2x.png | Bin 0 -> 2829 bytes imgs/icons/{2555.png => 2555@1x.png} | Bin imgs/icons/2555@2x.png | Bin 0 -> 2509 bytes imgs/icons/{2556.png => 2556@1x.png} | Bin imgs/icons/2556@2x.png | Bin 0 -> 2684 bytes imgs/icons/{2557.png => 2557@1x.png} | Bin imgs/icons/2557@2x.png | Bin 0 -> 2787 bytes imgs/icons/{2558.png => 2558@1x.png} | Bin imgs/icons/2558@2x.png | Bin 0 -> 3180 bytes imgs/icons/{2559.png => 2559@1x.png} | Bin imgs/icons/2559@2x.png | Bin 0 -> 2766 bytes imgs/icons/{2560.png => 2560@1x.png} | Bin imgs/icons/2560@2x.png | Bin 0 -> 2755 bytes imgs/icons/{2561.png => 2561@1x.png} | Bin imgs/icons/2561@2x.png | Bin 0 -> 3286 bytes imgs/icons/{2563.png => 2563@1x.png} | Bin imgs/icons/2563@2x.png | Bin 0 -> 2491 bytes imgs/icons/{2567.png => 2567@1x.png} | Bin imgs/icons/2567@2x.png | Bin 0 -> 1541 bytes imgs/icons/{2568.png => 2568@1x.png} | Bin imgs/icons/2568@2x.png | Bin 0 -> 1531 bytes imgs/icons/{2569.png => 2569@1x.png} | Bin imgs/icons/2569@2x.png | Bin 0 -> 1495 bytes imgs/icons/{2570.png => 2570@1x.png} | Bin imgs/icons/2570@2x.png | Bin 0 -> 1535 bytes imgs/icons/{2571.png => 2571@1x.png} | Bin imgs/icons/2571@2x.png | Bin 0 -> 1519 bytes imgs/icons/{2572.png => 2572@1x.png} | Bin imgs/icons/2572@2x.png | Bin 0 -> 1508 bytes imgs/icons/{2573.png => 2573@1x.png} | Bin imgs/icons/2573@2x.png | Bin 0 -> 1516 bytes imgs/icons/{2574.png => 2574@1x.png} | Bin imgs/icons/2574@2x.png | Bin 0 -> 1525 bytes imgs/icons/{2575.png => 2575@1x.png} | Bin imgs/icons/2575@2x.png | Bin 0 -> 1497 bytes imgs/icons/{2576.png => 2576@1x.png} | Bin imgs/icons/2576@2x.png | Bin 0 -> 1531 bytes imgs/icons/{2577.png => 2577@1x.png} | Bin imgs/icons/2577@2x.png | Bin 0 -> 1523 bytes imgs/icons/{2578.png => 2578@1x.png} | Bin imgs/icons/2578@2x.png | Bin 0 -> 1436 bytes imgs/icons/{2579.png => 2579@1x.png} | Bin imgs/icons/2579@2x.png | Bin 0 -> 1515 bytes imgs/icons/{2580.png => 2580@1x.png} | Bin imgs/icons/2580@2x.png | Bin 0 -> 1503 bytes imgs/icons/{2581.png => 2581@1x.png} | Bin imgs/icons/2581@2x.png | Bin 0 -> 1463 bytes imgs/icons/{2582.png => 2582@1x.png} | Bin imgs/icons/2582@2x.png | Bin 0 -> 1406 bytes imgs/icons/{2645.png => 2645@1x.png} | Bin imgs/icons/2645@2x.png | Bin 0 -> 2253 bytes imgs/icons/{2646.png => 2646@1x.png} | Bin imgs/icons/2646@2x.png | Bin 0 -> 2251 bytes imgs/icons/{2647.png => 2647@1x.png} | Bin imgs/icons/2647@2x.png | Bin 0 -> 2160 bytes imgs/icons/{2648.png => 2648@1x.png} | Bin imgs/icons/2648@2x.png | Bin 0 -> 2147 bytes imgs/icons/{2649.png => 2649@1x.png} | Bin imgs/icons/2649@2x.png | Bin 0 -> 2187 bytes imgs/icons/{2650.png => 2650@1x.png} | Bin imgs/icons/2650@2x.png | Bin 0 -> 2191 bytes imgs/icons/{2651.png => 2651@1x.png} | Bin imgs/icons/2651@2x.png | Bin 0 -> 2192 bytes imgs/icons/{2652.png => 2652@1x.png} | Bin imgs/icons/2652@2x.png | Bin 0 -> 2210 bytes imgs/icons/{2653.png => 2653@1x.png} | Bin imgs/icons/2653@2x.png | Bin 0 -> 2204 bytes imgs/icons/{2654.png => 2654@1x.png} | Bin imgs/icons/2654@2x.png | Bin 0 -> 2262 bytes imgs/icons/{2655.png => 2655@1x.png} | Bin imgs/icons/2655@2x.png | Bin 0 -> 2180 bytes imgs/icons/{2656.png => 2656@1x.png} | Bin imgs/icons/2656@2x.png | Bin 0 -> 2167 bytes imgs/icons/{2657.png => 2657@1x.png} | Bin imgs/icons/2657@2x.png | Bin 0 -> 2173 bytes imgs/icons/{2658.png => 2658@1x.png} | Bin imgs/icons/2658@2x.png | Bin 0 -> 2154 bytes imgs/icons/{2659.png => 2659@1x.png} | Bin imgs/icons/2659@2x.png | Bin 0 -> 2270 bytes imgs/icons/{2660.png => 2660@1x.png} | Bin imgs/icons/2660@2x.png | Bin 0 -> 2186 bytes imgs/icons/{2661.png => 2661@1x.png} | Bin imgs/icons/2661@2x.png | Bin 0 -> 2044 bytes imgs/icons/{2662.png => 2662@1x.png} | Bin imgs/icons/2662@2x.png | Bin 0 -> 1713 bytes imgs/icons/{2663.png => 2663@1x.png} | Bin imgs/icons/2663@2x.png | Bin 0 -> 2762 bytes imgs/icons/{2664.png => 2664@1x.png} | Bin imgs/icons/2664@2x.png | Bin 0 -> 2060 bytes imgs/icons/{2665.png => 2665@1x.png} | Bin imgs/icons/2665@2x.png | Bin 0 -> 2322 bytes imgs/icons/{2666.png => 2666@1x.png} | Bin imgs/icons/2666@2x.png | Bin 0 -> 2322 bytes imgs/icons/{2667.png => 2667@1x.png} | Bin imgs/icons/2667@2x.png | Bin 0 -> 1572 bytes imgs/icons/{2668.png => 2668@1x.png} | Bin imgs/icons/2668@2x.png | Bin 0 -> 1569 bytes imgs/icons/{2669.png => 2669@1x.png} | Bin imgs/icons/2669@2x.png | Bin 0 -> 1551 bytes imgs/icons/{2670.png => 2670@1x.png} | Bin imgs/icons/2670@2x.png | Bin 0 -> 1582 bytes imgs/icons/{2674.png => 2674@1x.png} | Bin imgs/icons/2674@2x.png | Bin 0 -> 1811 bytes imgs/icons/{2677.png => 2677@1x.png} | Bin imgs/icons/2677@2x.png | Bin 0 -> 2174 bytes imgs/icons/{2678.png => 2678@1x.png} | Bin imgs/icons/2678@2x.png | Bin 0 -> 1199 bytes imgs/icons/{2679.png => 2679@1x.png} | Bin imgs/icons/2679@2x.png | Bin 0 -> 2053 bytes imgs/icons/{2680.png => 2680@1x.png} | Bin imgs/icons/2680@2x.png | Bin 0 -> 1918 bytes imgs/icons/{2681.png => 2681@1x.png} | Bin imgs/icons/2681@2x.png | Bin 0 -> 2109 bytes imgs/icons/{2682.png => 2682@1x.png} | Bin imgs/icons/2682@2x.png | Bin 0 -> 1950 bytes imgs/icons/{2683.png => 2683@1x.png} | Bin imgs/icons/2683@2x.png | Bin 0 -> 1655 bytes imgs/icons/{2684.png => 2684@1x.png} | Bin imgs/icons/2684@2x.png | Bin 0 -> 2800 bytes imgs/icons/{2685.png => 2685@1x.png} | Bin imgs/icons/2685@2x.png | Bin 0 -> 2394 bytes imgs/icons/{2686.png => 2686@1x.png} | Bin imgs/icons/2686@2x.png | Bin 0 -> 1629 bytes imgs/icons/{2696.png => 2696@1x.png} | Bin imgs/icons/2696@2x.png | Bin 0 -> 3059 bytes imgs/icons/{2697.png => 2697@1x.png} | Bin imgs/icons/2697@2x.png | Bin 0 -> 2733 bytes imgs/icons/{2698.png => 2698@1x.png} | Bin imgs/icons/2698@2x.png | Bin 0 -> 1906 bytes imgs/icons/{2699.png => 2699@1x.png} | Bin imgs/icons/2699@2x.png | Bin 0 -> 2291 bytes imgs/icons/{26.png => 26@1x.png} | Bin imgs/icons/26@2x.png | Bin 0 -> 1653 bytes imgs/icons/{2700.png => 2700@1x.png} | Bin imgs/icons/2700@2x.png | Bin 0 -> 2310 bytes imgs/icons/{2701.png => 2701@1x.png} | Bin imgs/icons/2701@2x.png | Bin 0 -> 2325 bytes imgs/icons/{2702.png => 2702@1x.png} | Bin imgs/icons/2702@2x.png | Bin 0 -> 2293 bytes imgs/icons/{2703.png => 2703@1x.png} | Bin imgs/icons/2703@2x.png | Bin 0 -> 2129 bytes imgs/icons/{2705.png => 2705@1x.png} | Bin imgs/icons/2705@2x.png | Bin 0 -> 2308 bytes imgs/icons/{2732.png => 2732@1x.png} | Bin imgs/icons/2732@2x.png | Bin 0 -> 1751 bytes imgs/icons/{2754.png => 2754@1x.png} | Bin imgs/icons/2754@2x.png | Bin 0 -> 2278 bytes imgs/icons/{27.png => 27@1x.png} | Bin imgs/icons/27@2x.png | Bin 0 -> 1783 bytes imgs/icons/{2827.png => 2827@1x.png} | Bin imgs/icons/2827@2x.png | Bin 0 -> 1833 bytes imgs/icons/{2828.png => 2828@1x.png} | Bin imgs/icons/2828@2x.png | Bin 0 -> 1848 bytes imgs/icons/{2829.png => 2829@1x.png} | Bin imgs/icons/2829@2x.png | Bin 0 -> 1865 bytes imgs/icons/{2830.png => 2830@1x.png} | Bin imgs/icons/2830@2x.png | Bin 0 -> 1828 bytes imgs/icons/{2831.png => 2831@1x.png} | Bin imgs/icons/2831@2x.png | Bin 0 -> 1827 bytes imgs/icons/{2832.png => 2832@1x.png} | Bin imgs/icons/2832@2x.png | Bin 0 -> 1844 bytes imgs/icons/{2833.png => 2833@1x.png} | Bin imgs/icons/2833@2x.png | Bin 0 -> 1866 bytes imgs/icons/{2834.png => 2834@1x.png} | Bin imgs/icons/2834@2x.png | Bin 0 -> 1769 bytes imgs/icons/{2836.png => 2836@1x.png} | Bin imgs/icons/2836@2x.png | Bin 0 -> 2339 bytes imgs/icons/{2837.png => 2837@1x.png} | Bin imgs/icons/2837@2x.png | Bin 0 -> 2445 bytes imgs/icons/{2838.png => 2838@1x.png} | Bin imgs/icons/2838@2x.png | Bin 0 -> 2323 bytes imgs/icons/{2839.png => 2839@1x.png} | Bin imgs/icons/2839@2x.png | Bin 0 -> 2160 bytes imgs/icons/{2840.png => 2840@1x.png} | Bin imgs/icons/2840@2x.png | Bin 0 -> 2607 bytes imgs/icons/{2841.png => 2841@1x.png} | Bin imgs/icons/2841@2x.png | Bin 0 -> 2568 bytes imgs/icons/{2842.png => 2842@1x.png} | Bin imgs/icons/2842@2x.png | Bin 0 -> 2552 bytes imgs/icons/{2843.png => 2843@1x.png} | Bin imgs/icons/2843@2x.png | Bin 0 -> 1827 bytes imgs/icons/{2844.png => 2844@1x.png} | Bin imgs/icons/2844@2x.png | Bin 0 -> 1865 bytes imgs/icons/{2845.png => 2845@1x.png} | Bin imgs/icons/2845@2x.png | Bin 0 -> 1866 bytes imgs/icons/{2846.png => 2846@1x.png} | Bin imgs/icons/2846@2x.png | Bin 0 -> 1770 bytes imgs/icons/{2847.png => 2847@1x.png} | Bin imgs/icons/2847@2x.png | Bin 0 -> 1884 bytes imgs/icons/{2848.png => 2848@1x.png} | Bin imgs/icons/2848@2x.png | Bin 0 -> 1867 bytes imgs/icons/{2849.png => 2849@1x.png} | Bin imgs/icons/2849@2x.png | Bin 0 -> 1829 bytes imgs/icons/{2850.png => 2850@1x.png} | Bin imgs/icons/2850@2x.png | Bin 0 -> 1883 bytes imgs/icons/{2851.png => 2851@1x.png} | Bin imgs/icons/2851@2x.png | Bin 0 -> 2215 bytes imgs/icons/{2852.png => 2852@1x.png} | Bin imgs/icons/2852@2x.png | Bin 0 -> 1635 bytes imgs/icons/{2853.png => 2853@1x.png} | Bin imgs/icons/2853@2x.png | Bin 0 -> 2251 bytes imgs/icons/{2854.png => 2854@1x.png} | Bin imgs/icons/2854@2x.png | Bin 0 -> 1609 bytes imgs/icons/{2855.png => 2855@1x.png} | Bin imgs/icons/2855@2x.png | Bin 0 -> 1997 bytes imgs/icons/{2856.png => 2856@1x.png} | Bin imgs/icons/2856@2x.png | Bin 0 -> 1331 bytes imgs/icons/{2857.png => 2857@1x.png} | Bin imgs/icons/2857@2x.png | Bin 0 -> 1858 bytes imgs/icons/{2858.png => 2858@1x.png} | Bin imgs/icons/2858@2x.png | Bin 0 -> 2099 bytes imgs/icons/{2859.png => 2859@1x.png} | Bin imgs/icons/2859@2x.png | Bin 0 -> 2284 bytes imgs/icons/{2860.png => 2860@1x.png} | Bin imgs/icons/2860@2x.png | Bin 0 -> 1922 bytes imgs/icons/{2861.png => 2861@1x.png} | Bin imgs/icons/2861@2x.png | Bin 0 -> 2025 bytes imgs/icons/{2862.png => 2862@1x.png} | Bin imgs/icons/2862@2x.png | Bin 0 -> 2258 bytes imgs/icons/{2863.png => 2863@1x.png} | Bin imgs/icons/2863@2x.png | Bin 0 -> 1977 bytes imgs/icons/{2864.png => 2864@1x.png} | Bin imgs/icons/2864@2x.png | Bin 0 -> 2108 bytes imgs/icons/{2865.png => 2865@1x.png} | Bin imgs/icons/2865@2x.png | Bin 0 -> 1690 bytes imgs/icons/{2866.png => 2866@1x.png} | Bin imgs/icons/2866@2x.png | Bin 0 -> 1746 bytes imgs/icons/{2867.png => 2867@1x.png} | Bin imgs/icons/2867@2x.png | Bin 0 -> 2319 bytes imgs/icons/{2868.png => 2868@1x.png} | Bin imgs/icons/2868@2x.png | Bin 0 -> 2369 bytes imgs/icons/{2869.png => 2869@1x.png} | Bin imgs/icons/2869@2x.png | Bin 0 -> 1884 bytes imgs/icons/{2870.png => 2870@1x.png} | Bin imgs/icons/2870@2x.png | Bin 0 -> 2072 bytes imgs/icons/{2871.png => 2871@1x.png} | Bin imgs/icons/2871@2x.png | Bin 0 -> 1898 bytes imgs/icons/{2872.png => 2872@1x.png} | Bin imgs/icons/2872@2x.png | Bin 0 -> 1968 bytes imgs/icons/{2873.png => 2873@1x.png} | Bin imgs/icons/2873@2x.png | Bin 0 -> 2376 bytes imgs/icons/{2874.png => 2874@1x.png} | Bin imgs/icons/2874@2x.png | Bin 0 -> 1999 bytes imgs/icons/{2875.png => 2875@1x.png} | Bin imgs/icons/2875@2x.png | Bin 0 -> 2043 bytes imgs/icons/{2876.png => 2876@1x.png} | Bin imgs/icons/2876@2x.png | Bin 0 -> 1600 bytes imgs/icons/{2877.png => 2877@1x.png} | Bin imgs/icons/2877@2x.png | Bin 0 -> 1923 bytes imgs/icons/{2878.png => 2878@1x.png} | Bin imgs/icons/2878@2x.png | Bin 0 -> 1943 bytes imgs/icons/{2879.png => 2879@1x.png} | Bin imgs/icons/2879@2x.png | Bin 0 -> 2151 bytes imgs/icons/{2880.png => 2880@1x.png} | Bin imgs/icons/2880@2x.png | Bin 0 -> 1675 bytes imgs/icons/{2881.png => 2881@1x.png} | Bin imgs/icons/2881@2x.png | Bin 0 -> 2014 bytes imgs/icons/{2882.png => 2882@1x.png} | Bin imgs/icons/2882@2x.png | Bin 0 -> 2049 bytes imgs/icons/{2883.png => 2883@1x.png} | Bin imgs/icons/2883@2x.png | Bin 0 -> 1913 bytes imgs/icons/{2884.png => 2884@1x.png} | Bin imgs/icons/2884@2x.png | Bin 0 -> 1983 bytes imgs/icons/{2885.png => 2885@1x.png} | Bin imgs/icons/2885@2x.png | Bin 0 -> 2108 bytes imgs/icons/{2886.png => 2886@1x.png} | Bin imgs/icons/2886@2x.png | Bin 0 -> 2130 bytes imgs/icons/{2887.png => 2887@1x.png} | Bin imgs/icons/2887@2x.png | Bin 0 -> 1709 bytes imgs/icons/{2888.png => 2888@1x.png} | Bin imgs/icons/2888@2x.png | Bin 0 -> 1762 bytes imgs/icons/{2889.png => 2889@1x.png} | Bin imgs/icons/2889@2x.png | Bin 0 -> 2022 bytes imgs/icons/{2890.png => 2890@1x.png} | Bin imgs/icons/2890@2x.png | Bin 0 -> 1643 bytes imgs/icons/{2891.png => 2891@1x.png} | Bin imgs/icons/2891@2x.png | Bin 0 -> 1560 bytes imgs/icons/{2893.png => 2893@1x.png} | Bin imgs/icons/2893@2x.png | Bin 0 -> 1956 bytes imgs/icons/{28.png => 28@1x.png} | Bin imgs/icons/28@2x.png | Bin 0 -> 2206 bytes imgs/icons/{2908.png => 2908@1x.png} | Bin imgs/icons/2908@2x.png | Bin 0 -> 2273 bytes imgs/icons/{2934.png => 2934@1x.png} | Bin imgs/icons/2934@2x.png | Bin 0 -> 2733 bytes imgs/icons/{293.png => 293@1x.png} | Bin imgs/icons/293@2x.png | Bin 0 -> 1036 bytes imgs/icons/{2943.png => 2943@1x.png} | Bin imgs/icons/2943@2x.png | Bin 0 -> 1602 bytes imgs/icons/{294.png => 294@1x.png} | Bin imgs/icons/294@2x.png | Bin 0 -> 474 bytes imgs/icons/{295.png => 295@1x.png} | Bin imgs/icons/295@2x.png | Bin 0 -> 427 bytes imgs/icons/{2983.png => 2983@1x.png} | Bin imgs/icons/2983@2x.png | Bin 0 -> 1483 bytes imgs/icons/{2985.png => 2985@1x.png} | Bin imgs/icons/2985@2x.png | Bin 0 -> 2644 bytes imgs/icons/{2986.png => 2986@1x.png} | Bin imgs/icons/2986@2x.png | Bin 0 -> 2228 bytes imgs/icons/{2987.png => 2987@1x.png} | Bin imgs/icons/2987@2x.png | Bin 0 -> 2297 bytes imgs/icons/{2988.png => 2988@1x.png} | Bin imgs/icons/2988@2x.png | Bin 0 -> 2089 bytes imgs/icons/{2989.png => 2989@1x.png} | Bin imgs/icons/2989@2x.png | Bin 0 -> 2175 bytes imgs/icons/{2990.png => 2990@1x.png} | Bin imgs/icons/2990@2x.png | Bin 0 -> 2031 bytes imgs/icons/{2991.png => 2991@1x.png} | Bin imgs/icons/2991@2x.png | Bin 0 -> 1593 bytes imgs/icons/{2992.png => 2992@1x.png} | Bin imgs/icons/2992@2x.png | Bin 0 -> 1897 bytes imgs/icons/{2994.png => 2994@1x.png} | Bin imgs/icons/2994@2x.png | Bin 0 -> 1753 bytes imgs/icons/{29.png => 29@1x.png} | Bin imgs/icons/29@2x.png | Bin 0 -> 1957 bytes imgs/icons/{3000.png => 3000@1x.png} | Bin imgs/icons/3000@2x.png | Bin 0 -> 1783 bytes imgs/icons/{3001.png => 3001@1x.png} | Bin imgs/icons/3001@2x.png | Bin 0 -> 1893 bytes imgs/icons/{3006.png => 3006@1x.png} | Bin imgs/icons/3006@2x.png | Bin 0 -> 2317 bytes imgs/icons/{3007.png => 3007@1x.png} | Bin imgs/icons/3007@2x.png | Bin 0 -> 2121 bytes imgs/icons/{3010.png => 3010@1x.png} | Bin imgs/icons/3010@2x.png | Bin 0 -> 1394 bytes imgs/icons/{3012.png => 3012@1x.png} | Bin imgs/icons/3012@2x.png | Bin 0 -> 1901 bytes imgs/icons/{3013.png => 3013@1x.png} | Bin imgs/icons/3013@2x.png | Bin 0 -> 1992 bytes imgs/icons/{3019.png => 3019@1x.png} | Bin imgs/icons/3019@2x.png | Bin 0 -> 2380 bytes imgs/icons/{3025.png => 3025@1x.png} | Bin imgs/icons/3025@2x.png | Bin 0 -> 2083 bytes imgs/icons/{3036.png => 3036@1x.png} | Bin imgs/icons/3036@2x.png | Bin 0 -> 2204 bytes imgs/icons/{3074.png => 3074@1x.png} | Bin imgs/icons/3074@2x.png | Bin 0 -> 2380 bytes imgs/icons/{30.png => 30@1x.png} | Bin imgs/icons/30@2x.png | Bin 0 -> 2253 bytes imgs/icons/{3181.png => 3181@1x.png} | Bin imgs/icons/3181@2x.png | Bin 0 -> 2399 bytes imgs/icons/{3182.png => 3182@1x.png} | Bin imgs/icons/3182@2x.png | Bin 0 -> 2629 bytes imgs/icons/{3183.png => 3183@1x.png} | Bin imgs/icons/3183@2x.png | Bin 0 -> 2402 bytes imgs/icons/{3184.png => 3184@1x.png} | Bin imgs/icons/3184@2x.png | Bin 0 -> 2338 bytes imgs/icons/{3185.png => 3185@1x.png} | Bin imgs/icons/3185@2x.png | Bin 0 -> 2495 bytes imgs/icons/{3186.png => 3186@1x.png} | Bin imgs/icons/3186@2x.png | Bin 0 -> 2707 bytes imgs/icons/{3187.png => 3187@1x.png} | Bin imgs/icons/3187@2x.png | Bin 0 -> 2495 bytes imgs/icons/{3188.png => 3188@1x.png} | Bin imgs/icons/3188@2x.png | Bin 0 -> 2455 bytes imgs/icons/{3189.png => 3189@1x.png} | Bin imgs/icons/3189@2x.png | Bin 0 -> 2563 bytes imgs/icons/{3190.png => 3190@1x.png} | Bin imgs/icons/3190@2x.png | Bin 0 -> 2746 bytes imgs/icons/{3191.png => 3191@1x.png} | Bin imgs/icons/3191@2x.png | Bin 0 -> 2576 bytes imgs/icons/{3192.png => 3192@1x.png} | Bin imgs/icons/3192@2x.png | Bin 0 -> 2499 bytes imgs/icons/{3193.png => 3193@1x.png} | Bin imgs/icons/3193@2x.png | Bin 0 -> 2186 bytes imgs/icons/{3194.png => 3194@1x.png} | Bin imgs/icons/3194@2x.png | Bin 0 -> 2446 bytes imgs/icons/{3195.png => 3195@1x.png} | Bin imgs/icons/3195@2x.png | Bin 0 -> 2368 bytes imgs/icons/{3196.png => 3196@1x.png} | Bin imgs/icons/3196@2x.png | Bin 0 -> 2377 bytes imgs/icons/{3197.png => 3197@1x.png} | Bin imgs/icons/3197@2x.png | Bin 0 -> 2573 bytes imgs/icons/{3198.png => 3198@1x.png} | Bin imgs/icons/3198@2x.png | Bin 0 -> 2467 bytes imgs/icons/{3199.png => 3199@1x.png} | Bin imgs/icons/3199@2x.png | Bin 0 -> 2408 bytes imgs/icons/{31.png => 31@1x.png} | Bin imgs/icons/31@2x.png | Bin 0 -> 2268 bytes imgs/icons/{3200.png => 3200@1x.png} | Bin imgs/icons/3200@2x.png | Bin 0 -> 2638 bytes imgs/icons/{3201.png => 3201@1x.png} | Bin imgs/icons/3201@2x.png | Bin 0 -> 2586 bytes imgs/icons/{3202.png => 3202@1x.png} | Bin imgs/icons/3202@2x.png | Bin 0 -> 2788 bytes imgs/icons/{3203.png => 3203@1x.png} | Bin imgs/icons/3203@2x.png | Bin 0 -> 2709 bytes imgs/icons/{3210.png => 3210@1x.png} | Bin imgs/icons/3210@2x.png | Bin 0 -> 1966 bytes imgs/icons/{3211.png => 3211@1x.png} | Bin imgs/icons/3211@2x.png | Bin 0 -> 1933 bytes imgs/icons/{3212.png => 3212@1x.png} | Bin imgs/icons/3212@2x.png | Bin 0 -> 1860 bytes imgs/icons/{3213.png => 3213@1x.png} | Bin imgs/icons/3213@2x.png | Bin 0 -> 1769 bytes imgs/icons/{3214.png => 3214@1x.png} | Bin imgs/icons/3214@2x.png | Bin 0 -> 1851 bytes imgs/icons/{3215.png => 3215@1x.png} | Bin imgs/icons/3215@2x.png | Bin 0 -> 1884 bytes imgs/icons/{3216.png => 3216@1x.png} | Bin imgs/icons/3216@2x.png | Bin 0 -> 1681 bytes imgs/icons/{3217.png => 3217@1x.png} | Bin imgs/icons/3217@2x.png | Bin 0 -> 1722 bytes imgs/icons/{3218.png => 3218@1x.png} | Bin imgs/icons/3218@2x.png | Bin 0 -> 2498 bytes imgs/icons/{3219.png => 3219@1x.png} | Bin imgs/icons/3219@2x.png | Bin 0 -> 2446 bytes imgs/icons/{3220.png => 3220@1x.png} | Bin imgs/icons/3220@2x.png | Bin 0 -> 2605 bytes imgs/icons/{3221.png => 3221@1x.png} | Bin imgs/icons/3221@2x.png | Bin 0 -> 2570 bytes imgs/icons/{3222.png => 3222@1x.png} | Bin imgs/icons/3222@2x.png | Bin 0 -> 2960 bytes imgs/icons/{3223.png => 3223@1x.png} | Bin imgs/icons/3223@2x.png | Bin 0 -> 2554 bytes imgs/icons/{3224.png => 3224@1x.png} | Bin imgs/icons/3224@2x.png | Bin 0 -> 2647 bytes imgs/icons/{3225.png => 3225@1x.png} | Bin imgs/icons/3225@2x.png | Bin 0 -> 2655 bytes imgs/icons/{3226.png => 3226@1x.png} | Bin imgs/icons/3226@2x.png | Bin 0 -> 2086 bytes imgs/icons/{3227.png => 3227@1x.png} | Bin imgs/icons/3227@2x.png | Bin 0 -> 2050 bytes imgs/icons/{3228.png => 3228@1x.png} | Bin imgs/icons/3228@2x.png | Bin 0 -> 2028 bytes imgs/icons/{3229.png => 3229@1x.png} | Bin imgs/icons/3229@2x.png | Bin 0 -> 2084 bytes imgs/icons/{3230.png => 3230@1x.png} | Bin imgs/icons/3230@2x.png | Bin 0 -> 3470 bytes imgs/icons/{3231.png => 3231@1x.png} | Bin imgs/icons/3231@2x.png | Bin 0 -> 3442 bytes imgs/icons/{3232.png => 3232@1x.png} | Bin imgs/icons/3232@2x.png | Bin 0 -> 3469 bytes imgs/icons/{3233.png => 3233@1x.png} | Bin imgs/icons/3233@2x.png | Bin 0 -> 3521 bytes imgs/icons/{3234.png => 3234@1x.png} | Bin imgs/icons/3234@2x.png | Bin 0 -> 1521 bytes imgs/icons/{3235.png => 3235@1x.png} | Bin imgs/icons/3235@2x.png | Bin 0 -> 1491 bytes imgs/icons/{3236.png => 3236@1x.png} | Bin imgs/icons/3236@2x.png | Bin 0 -> 1473 bytes imgs/icons/{3237.png => 3237@1x.png} | Bin imgs/icons/3237@2x.png | Bin 0 -> 1537 bytes imgs/icons/{3240.png => 3240@1x.png} | Bin imgs/icons/3240@2x.png | Bin 0 -> 2767 bytes imgs/icons/{3241.png => 3241@1x.png} | Bin imgs/icons/3241@2x.png | Bin 0 -> 2068 bytes imgs/icons/{3246.png => 3246@1x.png} | Bin imgs/icons/3246@2x.png | Bin 0 -> 3166 bytes imgs/icons/{3247.png => 3247@1x.png} | Bin imgs/icons/3247@2x.png | Bin 0 -> 3254 bytes imgs/icons/{3248.png => 3248@1x.png} | Bin imgs/icons/3248@2x.png | Bin 0 -> 3350 bytes imgs/icons/{3249.png => 3249@1x.png} | Bin imgs/icons/3249@2x.png | Bin 0 -> 3415 bytes imgs/icons/{3250.png => 3250@1x.png} | Bin imgs/icons/3250@2x.png | Bin 0 -> 3277 bytes imgs/icons/{3251.png => 3251@1x.png} | Bin imgs/icons/3251@2x.png | Bin 0 -> 3306 bytes imgs/icons/{3252.png => 3252@1x.png} | Bin imgs/icons/3252@2x.png | Bin 0 -> 3278 bytes imgs/icons/{3253.png => 3253@1x.png} | Bin imgs/icons/3253@2x.png | Bin 0 -> 3310 bytes imgs/icons/{3254.png => 3254@1x.png} | Bin imgs/icons/3254@2x.png | Bin 0 -> 3310 bytes imgs/icons/{3255.png => 3255@1x.png} | Bin imgs/icons/3255@2x.png | Bin 0 -> 3359 bytes imgs/icons/{3256.png => 3256@1x.png} | Bin imgs/icons/3256@2x.png | Bin 0 -> 3288 bytes imgs/icons/{3257.png => 3257@1x.png} | Bin imgs/icons/3257@2x.png | Bin 0 -> 3357 bytes imgs/icons/{3258.png => 3258@1x.png} | Bin imgs/icons/3258@2x.png | Bin 0 -> 3291 bytes imgs/icons/{3259.png => 3259@1x.png} | Bin imgs/icons/3259@2x.png | Bin 0 -> 3329 bytes imgs/icons/{3260.png => 3260@1x.png} | Bin imgs/icons/3260@2x.png | Bin 0 -> 3301 bytes imgs/icons/{3261.png => 3261@1x.png} | Bin imgs/icons/3261@2x.png | Bin 0 -> 3372 bytes imgs/icons/{3262.png => 3262@1x.png} | Bin imgs/icons/3262@2x.png | Bin 0 -> 3327 bytes imgs/icons/{3263.png => 3263@1x.png} | Bin imgs/icons/3263@2x.png | Bin 0 -> 3365 bytes imgs/icons/{3264.png => 3264@1x.png} | Bin imgs/icons/3264@2x.png | Bin 0 -> 3306 bytes imgs/icons/{3265.png => 3265@1x.png} | Bin imgs/icons/3265@2x.png | Bin 0 -> 3352 bytes imgs/icons/{3266.png => 3266@1x.png} | Bin imgs/icons/3266@2x.png | Bin 0 -> 1455 bytes imgs/icons/{3278.png => 3278@1x.png} | Bin imgs/icons/3278@2x.png | Bin 0 -> 1989 bytes imgs/icons/{3279.png => 3279@1x.png} | Bin imgs/icons/3279@2x.png | Bin 0 -> 1977 bytes imgs/icons/{3280.png => 3280@1x.png} | Bin imgs/icons/3280@2x.png | Bin 0 -> 1989 bytes imgs/icons/{3281.png => 3281@1x.png} | Bin imgs/icons/3281@2x.png | Bin 0 -> 1984 bytes imgs/icons/{3282.png => 3282@1x.png} | Bin imgs/icons/3282@2x.png | Bin 0 -> 1865 bytes imgs/icons/{3283.png => 3283@1x.png} | Bin imgs/icons/3283@2x.png | Bin 0 -> 1781 bytes imgs/icons/{3300.png => 3300@1x.png} | Bin imgs/icons/3300@2x.png | Bin 0 -> 2207 bytes imgs/icons/{3302.png => 3302@1x.png} | Bin imgs/icons/3302@2x.png | Bin 0 -> 2902 bytes imgs/icons/{3303.png => 3303@1x.png} | Bin imgs/icons/3303@2x.png | Bin 0 -> 3246 bytes imgs/icons/{3304.png => 3304@1x.png} | Bin imgs/icons/3304@2x.png | Bin 0 -> 3478 bytes imgs/icons/{3305.png => 3305@1x.png} | Bin imgs/icons/3305@2x.png | Bin 0 -> 3419 bytes imgs/icons/{3306.png => 3306@1x.png} | Bin imgs/icons/3306@2x.png | Bin 0 -> 3376 bytes imgs/icons/{3307.png => 3307@1x.png} | Bin imgs/icons/3307@2x.png | Bin 0 -> 2188 bytes imgs/icons/{3308.png => 3308@1x.png} | Bin imgs/icons/3308@2x.png | Bin 0 -> 2157 bytes imgs/icons/{3309.png => 3309@1x.png} | Bin imgs/icons/3309@2x.png | Bin 0 -> 2138 bytes imgs/icons/{3310.png => 3310@1x.png} | Bin imgs/icons/3310@2x.png | Bin 0 -> 2149 bytes imgs/icons/{3311.png => 3311@1x.png} | Bin imgs/icons/3311@2x.png | Bin 0 -> 2105 bytes imgs/icons/{3312.png => 3312@1x.png} | Bin imgs/icons/3312@2x.png | Bin 0 -> 2161 bytes imgs/icons/{3313.png => 3313@1x.png} | Bin imgs/icons/3313@2x.png | Bin 0 -> 2163 bytes imgs/icons/{3314.png => 3314@1x.png} | Bin imgs/icons/3314@2x.png | Bin 0 -> 2157 bytes imgs/icons/{3315.png => 3315@1x.png} | Bin imgs/icons/3315@2x.png | Bin 0 -> 2165 bytes imgs/icons/{3316.png => 3316@1x.png} | Bin imgs/icons/3316@2x.png | Bin 0 -> 2148 bytes imgs/icons/{3317.png => 3317@1x.png} | Bin imgs/icons/3317@2x.png | Bin 0 -> 2105 bytes imgs/icons/{3318.png => 3318@1x.png} | Bin imgs/icons/3318@2x.png | Bin 0 -> 2034 bytes imgs/icons/{3319.png => 3319@1x.png} | Bin imgs/icons/3319@2x.png | Bin 0 -> 2151 bytes imgs/icons/{3320.png => 3320@1x.png} | Bin imgs/icons/3320@2x.png | Bin 0 -> 2159 bytes imgs/icons/{3321.png => 3321@1x.png} | Bin imgs/icons/3321@2x.png | Bin 0 -> 2200 bytes imgs/icons/{3322.png => 3322@1x.png} | Bin imgs/icons/3322@2x.png | Bin 0 -> 2162 bytes imgs/icons/{3323.png => 3323@1x.png} | Bin imgs/icons/3323@2x.png | Bin 0 -> 2207 bytes imgs/icons/{3324.png => 3324@1x.png} | Bin imgs/icons/3324@2x.png | Bin 0 -> 2219 bytes imgs/icons/{3325.png => 3325@1x.png} | Bin imgs/icons/3325@2x.png | Bin 0 -> 2306 bytes imgs/icons/{3326.png => 3326@1x.png} | Bin imgs/icons/3326@2x.png | Bin 0 -> 2058 bytes imgs/icons/{3327.png => 3327@1x.png} | Bin imgs/icons/3327@2x.png | Bin 0 -> 2230 bytes imgs/icons/{3328.png => 3328@1x.png} | Bin imgs/icons/3328@2x.png | Bin 0 -> 2343 bytes imgs/icons/{3329.png => 3329@1x.png} | Bin imgs/icons/3329@2x.png | Bin 0 -> 2538 bytes imgs/icons/{3330.png => 3330@1x.png} | Bin imgs/icons/3330@2x.png | Bin 0 -> 2451 bytes imgs/icons/{3333.png => 3333@1x.png} | Bin imgs/icons/3333@2x.png | Bin 0 -> 2287 bytes imgs/icons/{3334.png => 3334@1x.png} | Bin imgs/icons/3334@2x.png | Bin 0 -> 2210 bytes imgs/icons/{3335.png => 3335@1x.png} | Bin imgs/icons/3335@2x.png | Bin 0 -> 1884 bytes imgs/icons/{3336.png => 3336@1x.png} | Bin imgs/icons/3336@2x.png | Bin 0 -> 2104 bytes imgs/icons/{3337.png => 3337@1x.png} | Bin imgs/icons/3337@2x.png | Bin 0 -> 2246 bytes imgs/icons/{3338.png => 3338@1x.png} | Bin imgs/icons/3338@2x.png | Bin 0 -> 2569 bytes imgs/icons/{3339.png => 3339@1x.png} | Bin imgs/icons/3339@2x.png | Bin 0 -> 2101 bytes imgs/icons/{3340.png => 3340@1x.png} | Bin imgs/icons/3340@2x.png | Bin 0 -> 2070 bytes imgs/icons/{3341.png => 3341@1x.png} | Bin imgs/icons/3341@2x.png | Bin 0 -> 2123 bytes imgs/icons/{3342.png => 3342@1x.png} | Bin imgs/icons/3342@2x.png | Bin 0 -> 2119 bytes imgs/icons/{3343.png => 3343@1x.png} | Bin imgs/icons/3343@2x.png | Bin 0 -> 2534 bytes imgs/icons/{3344.png => 3344@1x.png} | Bin imgs/icons/3344@2x.png | Bin 0 -> 2491 bytes imgs/icons/{3345.png => 3345@1x.png} | Bin imgs/icons/3345@2x.png | Bin 0 -> 2519 bytes imgs/icons/{3346.png => 3346@1x.png} | Bin imgs/icons/3346@2x.png | Bin 0 -> 2178 bytes imgs/icons/{3347.png => 3347@1x.png} | Bin imgs/icons/3347@2x.png | Bin 0 -> 2547 bytes imgs/icons/{3348.png => 3348@1x.png} | Bin imgs/icons/3348@2x.png | Bin 0 -> 2502 bytes imgs/icons/{33.png => 33@1x.png} | Bin imgs/icons/33@2x.png | Bin 0 -> 1868 bytes imgs/icons/{3433.png => 3433@1x.png} | Bin imgs/icons/3433@2x.png | Bin 0 -> 2245 bytes imgs/icons/{3435.png => 3435@1x.png} | Bin imgs/icons/3435@2x.png | Bin 0 -> 1691 bytes imgs/icons/{3436.png => 3436@1x.png} | Bin imgs/icons/3436@2x.png | Bin 0 -> 2443 bytes imgs/icons/{3437.png => 3437@1x.png} | Bin imgs/icons/3437@2x.png | Bin 0 -> 2076 bytes imgs/icons/{3438.png => 3438@1x.png} | Bin imgs/icons/3438@2x.png | Bin 0 -> 2333 bytes imgs/icons/{3439.png => 3439@1x.png} | Bin imgs/icons/3439@2x.png | Bin 0 -> 2570 bytes imgs/icons/{3440.png => 3440@1x.png} | Bin imgs/icons/3440@2x.png | Bin 0 -> 1773 bytes imgs/icons/{3441.png => 3441@1x.png} | Bin imgs/icons/3441@2x.png | Bin 0 -> 2166 bytes imgs/icons/{3442.png => 3442@1x.png} | Bin imgs/icons/3442@2x.png | Bin 0 -> 2494 bytes imgs/icons/{3443.png => 3443@1x.png} | Bin imgs/icons/3443@2x.png | Bin 0 -> 2467 bytes imgs/icons/{3444.png => 3444@1x.png} | Bin imgs/icons/3444@2x.png | Bin 0 -> 2702 bytes imgs/icons/{3445.png => 3445@1x.png} | Bin imgs/icons/3445@2x.png | Bin 0 -> 2167 bytes imgs/icons/{3446.png => 3446@1x.png} | Bin imgs/icons/3446@2x.png | Bin 0 -> 1984 bytes imgs/icons/{3447.png => 3447@1x.png} | Bin imgs/icons/3447@2x.png | Bin 0 -> 1908 bytes imgs/icons/{3448.png => 3448@1x.png} | Bin imgs/icons/3448@2x.png | Bin 0 -> 1533 bytes imgs/icons/{3449.png => 3449@1x.png} | Bin imgs/icons/3449@2x.png | Bin 0 -> 2094 bytes imgs/icons/{3450.png => 3450@1x.png} | Bin imgs/icons/3450@2x.png | Bin 0 -> 2417 bytes imgs/icons/{349.png => 349@1x.png} | Bin imgs/icons/349@2x.png | Bin 0 -> 1805 bytes imgs/icons/{34.png => 34@1x.png} | Bin imgs/icons/34@2x.png | Bin 0 -> 2027 bytes imgs/icons/{350.png => 350@1x.png} | Bin imgs/icons/350@2x.png | Bin 0 -> 2022 bytes imgs/icons/{352.png => 352@1x.png} | Bin imgs/icons/352@2x.png | Bin 0 -> 1759 bytes imgs/icons/{355.png => 355@1x.png} | Bin imgs/icons/355@2x.png | Bin 0 -> 2324 bytes imgs/icons/{356.png => 356@1x.png} | Bin imgs/icons/356@2x.png | Bin 0 -> 2002 bytes imgs/icons/{360.png => 360@1x.png} | Bin imgs/icons/360@2x.png | Bin 0 -> 2527 bytes imgs/icons/{361.png => 361@1x.png} | Bin imgs/icons/361@2x.png | Bin 0 -> 2660 bytes imgs/icons/{3631.png => 3631@1x.png} | Bin imgs/icons/3631@2x.png | Bin 0 -> 2072 bytes imgs/icons/{3636.png => 3636@1x.png} | Bin imgs/icons/3636@2x.png | Bin 0 -> 2281 bytes imgs/icons/{3641.png => 3641@1x.png} | Bin imgs/icons/3641@2x.png | Bin 0 -> 2510 bytes imgs/icons/{3646.png => 3646@1x.png} | Bin imgs/icons/3646@2x.png | Bin 0 -> 2228 bytes imgs/icons/{365.png => 365@1x.png} | Bin imgs/icons/365@2x.png | Bin 0 -> 2612 bytes imgs/icons/{366.png => 366@1x.png} | Bin imgs/icons/366@2x.png | Bin 0 -> 2915 bytes imgs/icons/{370.png => 370@1x.png} | Bin imgs/icons/370@2x.png | Bin 0 -> 2441 bytes imgs/icons/{3716.png => 3716@1x.png} | Bin imgs/icons/3716@2x.png | Bin 0 -> 2620 bytes imgs/icons/{3717.png => 3717@1x.png} | Bin imgs/icons/3717@2x.png | Bin 0 -> 2038 bytes imgs/icons/{3718.png => 3718@1x.png} | Bin imgs/icons/3718@2x.png | Bin 0 -> 1388 bytes imgs/icons/{3719.png => 3719@1x.png} | Bin imgs/icons/3719@2x.png | Bin 0 -> 1902 bytes imgs/icons/{371.png => 371@1x.png} | Bin imgs/icons/371@2x.png | Bin 0 -> 2691 bytes imgs/icons/{3720.png => 3720@1x.png} | Bin imgs/icons/3720@2x.png | Bin 0 -> 2336 bytes imgs/icons/{3721.png => 3721@1x.png} | Bin imgs/icons/3721@2x.png | Bin 0 -> 1700 bytes imgs/icons/{3722.png => 3722@1x.png} | Bin imgs/icons/3722@2x.png | Bin 0 -> 3343 bytes imgs/icons/{3723.png => 3723@1x.png} | Bin imgs/icons/3723@2x.png | Bin 0 -> 3318 bytes imgs/icons/{3724.png => 3724@1x.png} | Bin imgs/icons/3724@2x.png | Bin 0 -> 3465 bytes imgs/icons/{3725.png => 3725@1x.png} | Bin imgs/icons/3725@2x.png | Bin 0 -> 3386 bytes imgs/icons/{3726.png => 3726@1x.png} | Bin imgs/icons/3726@2x.png | Bin 0 -> 3290 bytes imgs/icons/{3727.png => 3727@1x.png} | Bin imgs/icons/3727@2x.png | Bin 0 -> 3311 bytes imgs/icons/{3729.png => 3729@1x.png} | Bin imgs/icons/3729@2x.png | Bin 0 -> 3267 bytes imgs/icons/{3730.png => 3730@1x.png} | Bin imgs/icons/3730@2x.png | Bin 0 -> 3338 bytes imgs/icons/{3733.png => 3733@1x.png} | Bin imgs/icons/3733@2x.png | Bin 0 -> 3329 bytes imgs/icons/{3734.png => 3734@1x.png} | Bin imgs/icons/3734@2x.png | Bin 0 -> 2124 bytes imgs/icons/{3736.png => 3736@1x.png} | Bin imgs/icons/3736@2x.png | Bin 0 -> 2062 bytes imgs/icons/{3737.png => 3737@1x.png} | Bin imgs/icons/3737@2x.png | Bin 0 -> 2315 bytes imgs/icons/{3738.png => 3738@1x.png} | Bin imgs/icons/3738@2x.png | Bin 0 -> 2265 bytes imgs/icons/{3739.png => 3739@1x.png} | Bin imgs/icons/3739@2x.png | Bin 0 -> 2140 bytes imgs/icons/{3740.png => 3740@1x.png} | Bin imgs/icons/3740@2x.png | Bin 0 -> 2152 bytes imgs/icons/{3741.png => 3741@1x.png} | Bin imgs/icons/3741@2x.png | Bin 0 -> 2158 bytes imgs/icons/{3744.png => 3744@1x.png} | Bin imgs/icons/3744@2x.png | Bin 0 -> 2371 bytes imgs/icons/{3745.png => 3745@1x.png} | Bin imgs/icons/3745@2x.png | Bin 0 -> 2382 bytes imgs/icons/{3746.png => 3746@1x.png} | Bin imgs/icons/3746@2x.png | Bin 0 -> 2382 bytes imgs/icons/{3750.png => 3750@1x.png} | Bin imgs/icons/3750@2x.png | Bin 0 -> 2565 bytes imgs/icons/{3751.png => 3751@1x.png} | Bin imgs/icons/3751@2x.png | Bin 0 -> 2577 bytes imgs/icons/{3753.png => 3753@1x.png} | Bin imgs/icons/3753@2x.png | Bin 0 -> 2604 bytes imgs/icons/{3754.png => 3754@1x.png} | Bin imgs/icons/3754@2x.png | Bin 0 -> 1912 bytes imgs/icons/{3755.png => 3755@1x.png} | Bin imgs/icons/3755@2x.png | Bin 0 -> 2626 bytes imgs/icons/{3756.png => 3756@1x.png} | Bin imgs/icons/3756@2x.png | Bin 0 -> 1438 bytes imgs/icons/{3759.png => 3759@1x.png} | Bin imgs/icons/3759@2x.png | Bin 0 -> 2214 bytes imgs/icons/{3762.png => 3762@1x.png} | Bin imgs/icons/3762@2x.png | Bin 0 -> 2607 bytes imgs/icons/{3763.png => 3763@1x.png} | Bin imgs/icons/3763@2x.png | Bin 0 -> 2746 bytes imgs/icons/{3764.png => 3764@1x.png} | Bin imgs/icons/3764@2x.png | Bin 0 -> 2706 bytes imgs/icons/{3765.png => 3765@1x.png} | Bin imgs/icons/3765@2x.png | Bin 0 -> 2582 bytes imgs/icons/{3766.png => 3766@1x.png} | Bin imgs/icons/3766@2x.png | Bin 0 -> 2491 bytes imgs/icons/{376.png => 376@1x.png} | Bin imgs/icons/376@2x.png | Bin 0 -> 1843 bytes imgs/icons/{379.png => 379@1x.png} | Bin imgs/icons/379@2x.png | Bin 0 -> 2589 bytes imgs/icons/{381.png => 381@1x.png} | Bin imgs/icons/381@2x.png | Bin 0 -> 2463 bytes imgs/icons/{384.png => 384@1x.png} | Bin imgs/icons/384@2x.png | Bin 0 -> 2374 bytes imgs/icons/{386.png => 386@1x.png} | Bin imgs/icons/386@2x.png | Bin 0 -> 2123 bytes imgs/icons/{387.png => 387@1x.png} | Bin imgs/icons/387@2x.png | Bin 0 -> 1819 bytes imgs/icons/{389.png => 389@1x.png} | Bin imgs/icons/389@2x.png | Bin 0 -> 1868 bytes imgs/icons/{3943.png => 3943@1x.png} | Bin imgs/icons/3943@2x.png | Bin 0 -> 2493 bytes imgs/icons/{3945.png => 3945@1x.png} | Bin imgs/icons/3945@2x.png | Bin 0 -> 2640 bytes imgs/icons/{3946.png => 3946@1x.png} | Bin imgs/icons/3946@2x.png | Bin 0 -> 2602 bytes imgs/icons/{3947.png => 3947@1x.png} | Bin imgs/icons/3947@2x.png | Bin 0 -> 2556 bytes imgs/icons/{3948.png => 3948@1x.png} | Bin imgs/icons/3948@2x.png | Bin 0 -> 2649 bytes imgs/icons/{3950.png => 3950@1x.png} | Bin imgs/icons/3950@2x.png | Bin 0 -> 2778 bytes imgs/icons/{3951.png => 3951@1x.png} | Bin imgs/icons/3951@2x.png | Bin 0 -> 2665 bytes imgs/icons/{3952.png => 3952@1x.png} | Bin imgs/icons/3952@2x.png | Bin 0 -> 2601 bytes imgs/icons/{3953.png => 3953@1x.png} | Bin imgs/icons/3953@2x.png | Bin 0 -> 2677 bytes imgs/icons/{3955.png => 3955@1x.png} | Bin imgs/icons/3955@2x.png | Bin 0 -> 2316 bytes imgs/icons/{398.png => 398@1x.png} | Bin imgs/icons/398@2x.png | Bin 0 -> 2332 bytes imgs/icons/{400.png => 400@1x.png} | Bin imgs/icons/400@2x.png | Bin 0 -> 1770 bytes imgs/icons/{401.png => 401@1x.png} | Bin imgs/icons/401@2x.png | Bin 0 -> 1559 bytes imgs/icons/{402.png => 402@1x.png} | Bin imgs/icons/402@2x.png | Bin 0 -> 1402 bytes imgs/icons/{404.png => 404@1x.png} | Bin imgs/icons/404@2x.png | Bin 0 -> 1602 bytes imgs/icons/{405.png => 405@1x.png} | Bin imgs/icons/405@2x.png | Bin 0 -> 1884 bytes imgs/icons/{413.png => 413@1x.png} | Bin imgs/icons/413@2x.png | Bin 0 -> 1026 bytes imgs/icons/{67.png => 67@1x.png} | Bin imgs/icons/67@2x.png | Bin 0 -> 1725 bytes imgs/icons/{68.png => 68@1x.png} | Bin imgs/icons/68@2x.png | Bin 0 -> 1491 bytes imgs/icons/{69.png => 69@1x.png} | Bin imgs/icons/69@2x.png | Bin 0 -> 1188 bytes imgs/icons/{70.png => 70@1x.png} | Bin imgs/icons/70@2x.png | Bin 0 -> 1711 bytes imgs/icons/{71.png => 71@1x.png} | Bin imgs/icons/71@2x.png | Bin 0 -> 1309 bytes imgs/icons/{72.png => 72@1x.png} | Bin imgs/icons/72@2x.png | Bin 0 -> 1641 bytes imgs/icons/{73.png => 73@1x.png} | Bin imgs/icons/73@2x.png | Bin 0 -> 1291 bytes imgs/icons/{74.png => 74@1x.png} | Bin imgs/icons/74@2x.png | Bin 0 -> 1639 bytes imgs/icons/{76.png => 76@1x.png} | Bin imgs/icons/76@2x.png | Bin 0 -> 1576 bytes imgs/icons/{77.png => 77@1x.png} | Bin imgs/icons/77@2x.png | Bin 0 -> 1716 bytes imgs/icons/{79.png => 79@1x.png} | Bin imgs/icons/79@2x.png | Bin 0 -> 1778 bytes imgs/icons/{80.png => 80@1x.png} | Bin imgs/icons/80@2x.png | Bin 0 -> 1601 bytes imgs/icons/{81.png => 81@1x.png} | Bin imgs/icons/81@2x.png | Bin 0 -> 1909 bytes imgs/icons/{82.png => 82@1x.png} | Bin imgs/icons/82@2x.png | Bin 0 -> 1591 bytes imgs/icons/{83.png => 83@1x.png} | Bin imgs/icons/83@2x.png | Bin 0 -> 1653 bytes imgs/icons/{84.png => 84@1x.png} | Bin imgs/icons/84@2x.png | Bin 0 -> 1816 bytes imgs/icons/{86.png => 86@1x.png} | Bin imgs/icons/86@2x.png | Bin 0 -> 1802 bytes imgs/icons/{89.png => 89@1x.png} | Bin imgs/icons/89@2x.png | Bin 0 -> 1542 bytes imgs/icons/{90.png => 90@1x.png} | Bin imgs/icons/90@2x.png | Bin 0 -> 1450 bytes imgs/icons/{92.png => 92@1x.png} | Bin imgs/icons/92@2x.png | Bin 0 -> 2207 bytes imgs/icons/{94.png => 94@1x.png} | Bin imgs/icons/94@2x.png | Bin 0 -> 1868 bytes imgs/icons/{96.png => 96@1x.png} | Bin imgs/icons/96@2x.png | Bin 0 -> 1395 bytes imgs/icons/{97.png => 97@1x.png} | Bin imgs/icons/97@2x.png | Bin 0 -> 2553 bytes imgs/icons/{98.png => 98@1x.png} | Bin imgs/icons/98@2x.png | Bin 0 -> 2341 bytes imgs/renders/{10006.png => 10006@1x.png} | Bin imgs/renders/10006@2x.png | Bin 0 -> 7021 bytes imgs/renders/{10013.png => 10013@1x.png} | Bin imgs/renders/10013@2x.png | Bin 0 -> 7627 bytes imgs/renders/{10038.png => 10038@1x.png} | Bin imgs/renders/10038@2x.png | Bin 0 -> 6487 bytes imgs/renders/{10040.png => 10040@1x.png} | Bin imgs/renders/10040@2x.png | Bin 0 -> 7625 bytes imgs/renders/1053.png | Bin 2089 -> 0 bytes imgs/renders/1053@1x.png | Bin 0 -> 2094 bytes imgs/renders/1053@2x.png | Bin 0 -> 6422 bytes imgs/renders/{1064.png => 1064@1x.png} | Bin imgs/renders/1064@2x.png | Bin 0 -> 8166 bytes imgs/renders/{1065.png => 1065@1x.png} | Bin imgs/renders/1065@2x.png | Bin 0 -> 7331 bytes imgs/renders/{1066.png => 1066@1x.png} | Bin imgs/renders/1066@2x.png | Bin 0 -> 6778 bytes imgs/renders/{1067.png => 1067@1x.png} | Bin imgs/renders/1067@2x.png | Bin 0 -> 6465 bytes imgs/renders/{10782.png => 10782@1x.png} | Bin imgs/renders/10782@2x.png | Bin 0 -> 7375 bytes imgs/renders/{10950.png => 10950@1x.png} | Bin imgs/renders/10950@2x.png | Bin 0 -> 7189 bytes imgs/renders/{10951.png => 10951@1x.png} | Bin imgs/renders/10951@2x.png | Bin 0 -> 6794 bytes imgs/renders/{11775.png => 11775@1x.png} | Bin imgs/renders/11775@2x.png | Bin 0 -> 7040 bytes imgs/renders/11776.png | Bin 2342 -> 0 bytes imgs/renders/11776@1x.png | Bin 0 -> 2360 bytes imgs/renders/11776@2x.png | Bin 0 -> 7416 bytes imgs/renders/{11777.png => 11777@1x.png} | Bin imgs/renders/11777@2x.png | Bin 0 -> 7083 bytes imgs/renders/{11778.png => 11778@1x.png} | Bin imgs/renders/11778@2x.png | Bin 0 -> 5235 bytes imgs/renders/{11859.png => 11859@1x.png} | Bin imgs/renders/11859@2x.png | Bin 0 -> 6948 bytes imgs/renders/{11863.png => 11863@1x.png} | Bin imgs/renders/11863@2x.png | Bin 0 -> 6658 bytes imgs/renders/11865.png | Bin 2397 -> 0 bytes imgs/renders/11865@1x.png | Bin 0 -> 2389 bytes imgs/renders/11865@2x.png | Bin 0 -> 7386 bytes imgs/renders/{11869.png => 11869@1x.png} | Bin imgs/renders/11869@2x.png | Bin 0 -> 7190 bytes imgs/renders/{11875.png => 11875@1x.png} | Bin imgs/renders/11875@2x.png | Bin 0 -> 6924 bytes imgs/renders/{11876.png => 11876@1x.png} | Bin imgs/renders/11876@2x.png | Bin 0 -> 7207 bytes imgs/renders/{11877.png => 11877@1x.png} | Bin imgs/renders/11877@2x.png | Bin 0 -> 7216 bytes imgs/renders/{1231.png => 1231@1x.png} | Bin imgs/renders/1231@2x.png | Bin 0 -> 6676 bytes imgs/renders/1232.png | Bin 2099 -> 0 bytes imgs/renders/1232@1x.png | Bin 0 -> 2090 bytes imgs/renders/1232@2x.png | Bin 0 -> 6515 bytes imgs/renders/{1233.png => 1233@1x.png} | Bin imgs/renders/1233@2x.png | Bin 0 -> 6232 bytes imgs/renders/{1236.png => 1236@1x.png} | Bin imgs/renders/1236@2x.png | Bin 0 -> 6020 bytes imgs/renders/{1237.png => 1237@1x.png} | Bin imgs/renders/1237@2x.png | Bin 0 -> 6417 bytes imgs/renders/{1240.png => 1240@1x.png} | Bin imgs/renders/1240@2x.png | Bin 0 -> 5708 bytes imgs/renders/1730.png | Bin 2296 -> 0 bytes imgs/renders/1730@1x.png | Bin 0 -> 2293 bytes imgs/renders/1730@2x.png | Bin 0 -> 7417 bytes imgs/renders/{1731.png => 1731@1x.png} | Bin imgs/renders/1731@2x.png | Bin 0 -> 7314 bytes imgs/renders/{1733.png => 1733@1x.png} | Bin imgs/renders/1733@2x.png | Bin 0 -> 6788 bytes imgs/renders/{1751.png => 1751@1x.png} | Bin imgs/renders/1751@2x.png | Bin 0 -> 7408 bytes imgs/renders/{1762.png => 1762@1x.png} | Bin imgs/renders/1762@2x.png | Bin 0 -> 7307 bytes imgs/renders/{1771.png => 1771@1x.png} | Bin imgs/renders/1771@2x.png | Bin 0 -> 6766 bytes imgs/renders/{1773.png => 1773@1x.png} | Bin imgs/renders/1773@2x.png | Bin 0 -> 6736 bytes imgs/renders/{1776.png => 1776@1x.png} | Bin imgs/renders/1776@2x.png | Bin 0 -> 6813 bytes imgs/renders/{1777.png => 1777@1x.png} | Bin imgs/renders/1777@2x.png | Bin 0 -> 6572 bytes imgs/renders/1778.png | Bin 2083 -> 0 bytes imgs/renders/1778@1x.png | Bin 0 -> 2108 bytes imgs/renders/1778@2x.png | Bin 0 -> 6479 bytes imgs/renders/{1779.png => 1779@1x.png} | Bin imgs/renders/1779@2x.png | Bin 0 -> 5563 bytes imgs/renders/1784.png | Bin 2391 -> 0 bytes imgs/renders/1784@1x.png | Bin 0 -> 2394 bytes imgs/renders/1784@2x.png | Bin 0 -> 7472 bytes imgs/renders/{1786.png => 1786@1x.png} | Bin imgs/renders/1786@2x.png | Bin 0 -> 6960 bytes imgs/renders/{1789.png => 1789@1x.png} | Bin imgs/renders/1789@2x.png | Bin 0 -> 7276 bytes imgs/renders/1802.png | Bin 2208 -> 0 bytes imgs/renders/1802@1x.png | Bin 0 -> 2220 bytes imgs/renders/1802@2x.png | Bin 0 -> 7014 bytes imgs/renders/1803.png | Bin 2156 -> 0 bytes imgs/renders/1803@1x.png | Bin 0 -> 2171 bytes imgs/renders/1803@2x.png | Bin 0 -> 6965 bytes imgs/renders/{1811.png => 1811@1x.png} | Bin imgs/renders/1811@2x.png | Bin 0 -> 6612 bytes imgs/renders/1814.png | Bin 2160 -> 0 bytes imgs/renders/1814@1x.png | Bin 0 -> 2187 bytes imgs/renders/1814@2x.png | Bin 0 -> 6990 bytes imgs/renders/{1815.png => 1815@1x.png} | Bin imgs/renders/1815@2x.png | Bin 0 -> 7176 bytes imgs/renders/{1816.png => 1816@1x.png} | Bin imgs/renders/1816@2x.png | Bin 0 -> 6797 bytes imgs/renders/{1824.png => 1824@1x.png} | Bin imgs/renders/1824@2x.png | Bin 0 -> 7137 bytes imgs/renders/{1825.png => 1825@1x.png} | Bin imgs/renders/1825@2x.png | Bin 0 -> 7186 bytes imgs/renders/{1829.png => 1829@1x.png} | Bin imgs/renders/1829@2x.png | Bin 0 -> 7310 bytes imgs/renders/1831.png | Bin 2331 -> 0 bytes imgs/renders/1831@1x.png | Bin 0 -> 2362 bytes imgs/renders/1831@2x.png | Bin 0 -> 7335 bytes imgs/renders/1835.png | Bin 2190 -> 0 bytes imgs/renders/1835@1x.png | Bin 0 -> 2266 bytes imgs/renders/1835@2x.png | Bin 0 -> 7249 bytes imgs/renders/{1840.png => 1840@1x.png} | Bin imgs/renders/1840@2x.png | Bin 0 -> 6853 bytes imgs/renders/{1841.png => 1841@1x.png} | Bin imgs/renders/1841@2x.png | Bin 0 -> 7170 bytes imgs/renders/1847.png | Bin 2162 -> 0 bytes imgs/renders/1847@1x.png | Bin 0 -> 2169 bytes imgs/renders/1847@2x.png | Bin 0 -> 6668 bytes imgs/renders/{1848.png => 1848@1x.png} | Bin imgs/renders/1848@2x.png | Bin 0 -> 7174 bytes imgs/renders/{1854.png => 1854@1x.png} | Bin imgs/renders/1854@2x.png | Bin 0 -> 6330 bytes imgs/renders/{1855.png => 1855@1x.png} | Bin imgs/renders/1855@2x.png | Bin 0 -> 6897 bytes imgs/renders/{1860.png => 1860@1x.png} | Bin imgs/renders/1860@2x.png | Bin 0 -> 7249 bytes imgs/renders/{1861.png => 1861@1x.png} | Bin imgs/renders/1861@2x.png | Bin 0 -> 6424 bytes imgs/renders/{1872.png => 1872@1x.png} | Bin imgs/renders/1872@2x.png | Bin 0 -> 8096 bytes imgs/renders/1878.png | Bin 2289 -> 0 bytes imgs/renders/1878@1x.png | Bin 0 -> 2287 bytes imgs/renders/1878@2x.png | Bin 0 -> 7190 bytes imgs/renders/{1881.png => 1881@1x.png} | Bin imgs/renders/1881@2x.png | Bin 0 -> 6740 bytes imgs/renders/{1882.png => 1882@1x.png} | Bin imgs/renders/1882@2x.png | Bin 0 -> 7255 bytes imgs/renders/{1884.png => 1884@1x.png} | Bin imgs/renders/1884@2x.png | Bin 0 -> 5592 bytes imgs/renders/{1887.png => 1887@1x.png} | Bin imgs/renders/1887@2x.png | Bin 0 -> 6280 bytes imgs/renders/{1894.png => 1894@1x.png} | Bin imgs/renders/1894@2x.png | Bin 0 -> 6915 bytes imgs/renders/{1901.png => 1901@1x.png} | Bin imgs/renders/1901@2x.png | Bin 0 -> 7134 bytes imgs/renders/{1902.png => 1902@1x.png} | Bin imgs/renders/1902@2x.png | Bin 0 -> 6672 bytes imgs/renders/{1903.png => 1903@1x.png} | Bin imgs/renders/1903@2x.png | Bin 0 -> 7065 bytes imgs/renders/1909.png | Bin 2152 -> 0 bytes imgs/renders/1909@1x.png | Bin 0 -> 2201 bytes imgs/renders/1909@2x.png | Bin 0 -> 6915 bytes imgs/renders/{1912.png => 1912@1x.png} | Bin imgs/renders/1912@2x.png | Bin 0 -> 6932 bytes imgs/renders/{1913.png => 1913@1x.png} | Bin imgs/renders/1913@2x.png | Bin 0 -> 6643 bytes imgs/renders/{1914.png => 1914@1x.png} | Bin imgs/renders/1914@2x.png | Bin 0 -> 6292 bytes imgs/renders/1916.png | Bin 2126 -> 0 bytes imgs/renders/1916@1x.png | Bin 0 -> 2138 bytes imgs/renders/1916@2x.png | Bin 0 -> 7153 bytes imgs/renders/{1920.png => 1920@1x.png} | Bin imgs/renders/1920@2x.png | Bin 0 -> 7051 bytes imgs/renders/{1921.png => 1921@1x.png} | Bin imgs/renders/1921@2x.png | Bin 0 -> 6402 bytes imgs/renders/{1925.png => 1925@1x.png} | Bin imgs/renders/1925@2x.png | Bin 0 -> 6810 bytes imgs/renders/{1928.png => 1928@1x.png} | Bin imgs/renders/1928@2x.png | Bin 0 -> 5544 bytes imgs/renders/{1931.png => 1931@1x.png} | Bin imgs/renders/1931@2x.png | Bin 0 -> 6420 bytes imgs/renders/{1943.png => 1943@1x.png} | Bin imgs/renders/1943@2x.png | Bin 0 -> 6234 bytes imgs/renders/{1945.png => 1945@1x.png} | Bin imgs/renders/1945@2x.png | Bin 0 -> 6740 bytes imgs/renders/{1948.png => 1948@1x.png} | Bin imgs/renders/1948@2x.png | Bin 0 -> 5582 bytes imgs/renders/{1950.png => 1950@1x.png} | Bin imgs/renders/1950@2x.png | Bin 0 -> 6842 bytes imgs/renders/{1966.png => 1966@1x.png} | Bin imgs/renders/1966@2x.png | Bin 0 -> 5844 bytes imgs/renders/{1973.png => 1973@1x.png} | Bin imgs/renders/1973@2x.png | Bin 0 -> 5568 bytes imgs/renders/{1976.png => 1976@1x.png} | Bin imgs/renders/1976@2x.png | Bin 0 -> 5728 bytes imgs/renders/{20136.png => 20136@1x.png} | Bin imgs/renders/20136@2x.png | Bin 0 -> 7214 bytes imgs/renders/{20137.png => 20137@1x.png} | Bin imgs/renders/20137@2x.png | Bin 0 -> 7323 bytes imgs/renders/20198.png | Bin 2348 -> 0 bytes imgs/renders/20198@1x.png | Bin 0 -> 2372 bytes imgs/renders/20198@2x.png | Bin 0 -> 7633 bytes imgs/renders/{20199.png => 20199@1x.png} | Bin imgs/renders/20199@2x.png | Bin 0 -> 7645 bytes imgs/renders/20200.png | Bin 2384 -> 0 bytes imgs/renders/20200@1x.png | Bin 0 -> 2423 bytes imgs/renders/20200@2x.png | Bin 0 -> 7662 bytes imgs/renders/{20201.png => 20201@1x.png} | Bin imgs/renders/20201@2x.png | Bin 0 -> 6821 bytes imgs/renders/{20202.png => 20202@1x.png} | Bin imgs/renders/20202@2x.png | Bin 0 -> 6619 bytes imgs/renders/20215.png | Bin 2331 -> 0 bytes imgs/renders/20215@1x.png | Bin 0 -> 2359 bytes imgs/renders/20215@2x.png | Bin 0 -> 7584 bytes imgs/renders/20216.png | Bin 2388 -> 0 bytes imgs/renders/20216@1x.png | Bin 0 -> 2479 bytes imgs/renders/20216@2x.png | Bin 0 -> 8044 bytes imgs/renders/20217.png | Bin 2199 -> 0 bytes imgs/renders/20217@1x.png | Bin 0 -> 2226 bytes imgs/renders/20217@2x.png | Bin 0 -> 7087 bytes imgs/renders/20218.png | Bin 2068 -> 0 bytes imgs/renders/20218@1x.png | Bin 0 -> 2120 bytes imgs/renders/20218@2x.png | Bin 0 -> 6709 bytes imgs/renders/20227.png | Bin 2331 -> 0 bytes imgs/renders/20227@1x.png | Bin 0 -> 2348 bytes imgs/renders/20227@2x.png | Bin 0 -> 7521 bytes imgs/renders/20229.png | Bin 2146 -> 0 bytes imgs/renders/20229@1x.png | Bin 0 -> 2177 bytes imgs/renders/20229@2x.png | Bin 0 -> 7001 bytes imgs/renders/20230.png | Bin 1972 -> 0 bytes imgs/renders/20230@1x.png | Bin 0 -> 1985 bytes imgs/renders/20230@2x.png | Bin 0 -> 6382 bytes imgs/renders/{20231.png => 20231@1x.png} | Bin imgs/renders/20231@2x.png | Bin 0 -> 6832 bytes imgs/renders/{20277.png => 20277@1x.png} | Bin imgs/renders/20277@2x.png | Bin 0 -> 6828 bytes imgs/renders/20283.png | Bin 2276 -> 0 bytes imgs/renders/20283@1x.png | Bin 0 -> 2350 bytes imgs/renders/20283@2x.png | Bin 0 -> 7469 bytes imgs/renders/{20301.png => 20301@1x.png} | Bin imgs/renders/20301@2x.png | Bin 0 -> 6595 bytes imgs/renders/{20344.png => 20344@1x.png} | Bin imgs/renders/20344@2x.png | Bin 0 -> 6448 bytes imgs/renders/{20345.png => 20345@1x.png} | Bin imgs/renders/20345@2x.png | Bin 0 -> 6575 bytes imgs/renders/{20384.png => 20384@1x.png} | Bin imgs/renders/20384@2x.png | Bin 0 -> 7338 bytes imgs/renders/{20385.png => 20385@1x.png} | Bin imgs/renders/20385@2x.png | Bin 0 -> 7900 bytes imgs/renders/{20386.png => 20386@1x.png} | Bin imgs/renders/20386@2x.png | Bin 0 -> 8168 bytes imgs/renders/{20402.png => 20402@1x.png} | Bin imgs/renders/20402@2x.png | Bin 0 -> 6478 bytes imgs/renders/{20403.png => 20403@1x.png} | Bin imgs/renders/20403@2x.png | Bin 0 -> 7370 bytes imgs/renders/{2043.png => 2043@1x.png} | Bin imgs/renders/2043@2x.png | Bin 0 -> 6460 bytes imgs/renders/{2044.png => 2044@1x.png} | Bin imgs/renders/2044@2x.png | Bin 0 -> 6857 bytes imgs/renders/{2045.png => 2045@1x.png} | Bin imgs/renders/2045@2x.png | Bin 0 -> 6486 bytes imgs/renders/{20600.png => 20600@1x.png} | Bin imgs/renders/20600@2x.png | Bin 0 -> 7264 bytes imgs/renders/{20604.png => 20604@1x.png} | Bin imgs/renders/20604@2x.png | Bin 0 -> 7157 bytes imgs/renders/20605.png | Bin 2288 -> 0 bytes imgs/renders/20605@1x.png | Bin 0 -> 2291 bytes imgs/renders/20605@2x.png | Bin 0 -> 7230 bytes imgs/renders/{20614.png => 20614@1x.png} | Bin imgs/renders/20614@2x.png | Bin 0 -> 7014 bytes imgs/renders/{20615.png => 20615@1x.png} | Bin imgs/renders/20615@2x.png | Bin 0 -> 6514 bytes imgs/renders/{20616.png => 20616@1x.png} | Bin imgs/renders/20616@2x.png | Bin 0 -> 6748 bytes imgs/renders/{20977.png => 20977@1x.png} | Bin imgs/renders/20977@2x.png | Bin 0 -> 7163 bytes imgs/renders/20980.png | Bin 2159 -> 0 bytes imgs/renders/20980@1x.png | Bin 0 -> 2232 bytes imgs/renders/20980@2x.png | Bin 0 -> 7087 bytes imgs/renders/21052.png | Bin 1916 -> 0 bytes imgs/renders/21052@1x.png | Bin 0 -> 1934 bytes imgs/renders/21052@2x.png | Bin 0 -> 6138 bytes imgs/renders/{21076.png => 21076@1x.png} | Bin imgs/renders/21076@2x.png | Bin 0 -> 6481 bytes imgs/renders/21135.png | Bin 2222 -> 0 bytes imgs/renders/21135@1x.png | Bin 0 -> 2211 bytes imgs/renders/21135@2x.png | Bin 0 -> 6791 bytes imgs/renders/21137.png | Bin 2095 -> 0 bytes imgs/renders/21137@1x.png | Bin 0 -> 2104 bytes imgs/renders/21137@2x.png | Bin 0 -> 6604 bytes imgs/renders/{21138.png => 21138@1x.png} | Bin imgs/renders/21138@2x.png | Bin 0 -> 6262 bytes imgs/renders/21139.png | Bin 2195 -> 0 bytes imgs/renders/21139@1x.png | Bin 0 -> 2195 bytes imgs/renders/21139@2x.png | Bin 0 -> 6836 bytes imgs/renders/21150.png | Bin 2059 -> 0 bytes imgs/renders/21150@1x.png | Bin 0 -> 2064 bytes imgs/renders/21150@2x.png | Bin 0 -> 6197 bytes imgs/renders/{21155.png => 21155@1x.png} | Bin imgs/renders/21155@2x.png | Bin 0 -> 6575 bytes imgs/renders/{21156.png => 21156@1x.png} | Bin imgs/renders/21156@2x.png | Bin 0 -> 7360 bytes imgs/renders/{21210.png => 21210@1x.png} | Bin imgs/renders/21210@2x.png | Bin 0 -> 7642 bytes imgs/renders/21217.png | Bin 2115 -> 0 bytes imgs/renders/21217@1x.png | Bin 0 -> 2219 bytes imgs/renders/21217@2x.png | Bin 0 -> 7054 bytes imgs/renders/{21218.png => 21218@1x.png} | Bin imgs/renders/21218@2x.png | Bin 0 -> 7034 bytes imgs/renders/{21219.png => 21219@1x.png} | Bin imgs/renders/21219@2x.png | Bin 0 -> 6407 bytes imgs/renders/{21220.png => 21220@1x.png} | Bin imgs/renders/21220@2x.png | Bin 0 -> 6839 bytes imgs/renders/{21221.png => 21221@1x.png} | Bin imgs/renders/21221@2x.png | Bin 0 -> 7298 bytes imgs/renders/{21222.png => 21222@1x.png} | Bin imgs/renders/21222@2x.png | Bin 0 -> 7123 bytes imgs/renders/{21223.png => 21223@1x.png} | Bin imgs/renders/21223@2x.png | Bin 0 -> 6825 bytes imgs/renders/{21224.png => 21224@1x.png} | Bin imgs/renders/21224@2x.png | Bin 0 -> 6582 bytes imgs/renders/{2122.png => 2122@1x.png} | Bin imgs/renders/2122@2x.png | Bin 0 -> 7548 bytes imgs/renders/2123.png | Bin 2214 -> 0 bytes imgs/renders/2123@1x.png | Bin 0 -> 2216 bytes imgs/renders/2123@2x.png | Bin 0 -> 7018 bytes imgs/renders/{21252.png => 21252@1x.png} | Bin imgs/renders/21252@2x.png | Bin 0 -> 6885 bytes imgs/renders/{21254.png => 21254@1x.png} | Bin imgs/renders/21254@2x.png | Bin 0 -> 6776 bytes imgs/renders/{21255.png => 21255@1x.png} | Bin imgs/renders/21255@2x.png | Bin 0 -> 6620 bytes imgs/renders/{21256.png => 21256@1x.png} | Bin imgs/renders/21256@2x.png | Bin 0 -> 6207 bytes imgs/renders/{21277.png => 21277@1x.png} | Bin imgs/renders/21277@2x.png | Bin 0 -> 7452 bytes imgs/renders/{21278.png => 21278@1x.png} | Bin imgs/renders/21278@2x.png | Bin 0 -> 8491 bytes imgs/renders/21279.png | Bin 2291 -> 0 bytes imgs/renders/21279@1x.png | Bin 0 -> 2325 bytes imgs/renders/21279@2x.png | Bin 0 -> 7380 bytes imgs/renders/{21280.png => 21280@1x.png} | Bin imgs/renders/21280@2x.png | Bin 0 -> 7201 bytes imgs/renders/{21282.png => 21282@1x.png} | Bin imgs/renders/21282@2x.png | Bin 0 -> 6967 bytes imgs/renders/{21283.png => 21283@1x.png} | Bin imgs/renders/21283@2x.png | Bin 0 -> 6968 bytes imgs/renders/21315.png | Bin 2169 -> 0 bytes imgs/renders/21315@1x.png | Bin 0 -> 2162 bytes imgs/renders/21315@2x.png | Bin 0 -> 6601 bytes imgs/renders/{21344.png => 21344@1x.png} | Bin imgs/renders/21344@2x.png | Bin 0 -> 7021 bytes imgs/renders/{21354.png => 21354@1x.png} | Bin imgs/renders/21354@2x.png | Bin 0 -> 6867 bytes imgs/renders/{21358.png => 21358@1x.png} | Bin imgs/renders/21358@2x.png | Bin 0 -> 6498 bytes imgs/renders/{21360.png => 21360@1x.png} | Bin imgs/renders/21360@2x.png | Bin 0 -> 6897 bytes imgs/renders/{21361.png => 21361@1x.png} | Bin imgs/renders/21361@2x.png | Bin 0 -> 6663 bytes imgs/renders/{21362.png => 21362@1x.png} | Bin imgs/renders/21362@2x.png | Bin 0 -> 7580 bytes imgs/renders/{2138.png => 2138@1x.png} | Bin imgs/renders/2138@2x.png | Bin 0 -> 6418 bytes imgs/renders/{2139.png => 2139@1x.png} | Bin imgs/renders/2139@2x.png | Bin 0 -> 6956 bytes imgs/renders/{21405.png => 21405@1x.png} | Bin imgs/renders/21405@2x.png | Bin 0 -> 6809 bytes imgs/renders/{21406.png => 21406@1x.png} | Bin imgs/renders/21406@2x.png | Bin 0 -> 6949 bytes imgs/renders/{2140.png => 2140@1x.png} | Bin imgs/renders/2140@2x.png | Bin 0 -> 6892 bytes imgs/renders/2141.png | Bin 2223 -> 0 bytes imgs/renders/2141@1x.png | Bin 0 -> 2219 bytes imgs/renders/2141@2x.png | Bin 0 -> 7085 bytes imgs/renders/{21445.png => 21445@1x.png} | Bin imgs/renders/21445@2x.png | Bin 0 -> 6910 bytes imgs/renders/{21451.png => 21451@1x.png} | Bin imgs/renders/21451@2x.png | Bin 0 -> 6846 bytes imgs/renders/21489.png | Bin 2242 -> 0 bytes imgs/renders/21489@1x.png | Bin 0 -> 2237 bytes imgs/renders/21489@2x.png | Bin 0 -> 6822 bytes imgs/renders/21490.png | Bin 2073 -> 0 bytes imgs/renders/21490@1x.png | Bin 0 -> 2082 bytes imgs/renders/21490@2x.png | Bin 0 -> 6418 bytes imgs/renders/{21493.png => 21493@1x.png} | Bin imgs/renders/21493@2x.png | Bin 0 -> 6774 bytes imgs/renders/{2157.png => 2157@1x.png} | Bin imgs/renders/2157@2x.png | Bin 0 -> 6912 bytes imgs/renders/{2159.png => 2159@1x.png} | Bin imgs/renders/2159@2x.png | Bin 0 -> 7057 bytes imgs/renders/{2160.png => 2160@1x.png} | Bin imgs/renders/2160@2x.png | Bin 0 -> 5919 bytes imgs/renders/{21766.png => 21766@1x.png} | Bin imgs/renders/21766@2x.png | Bin 0 -> 6858 bytes imgs/renders/21821.png | Bin 2228 -> 0 bytes imgs/renders/21821@1x.png | Bin 0 -> 2244 bytes imgs/renders/21821@2x.png | Bin 0 -> 7021 bytes imgs/renders/{21822.png => 21822@1x.png} | Bin imgs/renders/21822@2x.png | Bin 0 -> 7578 bytes imgs/renders/21864.png | Bin 2185 -> 0 bytes imgs/renders/21864@1x.png | Bin 0 -> 2209 bytes imgs/renders/21864@2x.png | Bin 0 -> 6551 bytes imgs/renders/21976.png | Bin 1959 -> 0 bytes imgs/renders/21976@1x.png | Bin 0 -> 1959 bytes imgs/renders/21976@2x.png | Bin 0 -> 6330 bytes imgs/renders/21993.png | Bin 2014 -> 0 bytes imgs/renders/21993@1x.png | Bin 0 -> 2023 bytes imgs/renders/21993@2x.png | Bin 0 -> 6432 bytes imgs/renders/22001.png | Bin 2132 -> 0 bytes imgs/renders/22001@1x.png | Bin 0 -> 2132 bytes imgs/renders/22001@2x.png | Bin 0 -> 6531 bytes imgs/renders/22007.png | Bin 2034 -> 0 bytes imgs/renders/22007@1x.png | Bin 0 -> 2035 bytes imgs/renders/22007@2x.png | Bin 0 -> 6519 bytes imgs/renders/{22070.png => 22070@1x.png} | Bin imgs/renders/22070@2x.png | Bin 0 -> 6960 bytes imgs/renders/{22142.png => 22142@1x.png} | Bin imgs/renders/22142@2x.png | Bin 0 -> 5913 bytes imgs/renders/{22150.png => 22150@1x.png} | Bin imgs/renders/22150@2x.png | Bin 0 -> 6963 bytes imgs/renders/22161.png | Bin 1895 -> 0 bytes imgs/renders/22161@1x.png | Bin 0 -> 1870 bytes imgs/renders/22161@2x.png | Bin 0 -> 6126 bytes imgs/renders/{22189.png => 22189@1x.png} | Bin imgs/renders/22189@2x.png | Bin 0 -> 6212 bytes imgs/renders/{22195.png => 22195@1x.png} | Bin imgs/renders/22195@2x.png | Bin 0 -> 6240 bytes imgs/renders/{2239.png => 2239@1x.png} | Bin imgs/renders/2239@2x.png | Bin 0 -> 7205 bytes imgs/renders/{2240.png => 2240@1x.png} | Bin imgs/renders/2240@2x.png | Bin 0 -> 7066 bytes imgs/renders/{2241.png => 2241@1x.png} | Bin imgs/renders/2241@2x.png | Bin 0 -> 7266 bytes imgs/renders/{2242.png => 2242@1x.png} | Bin imgs/renders/2242@2x.png | Bin 0 -> 7150 bytes imgs/renders/{2295.png => 2295@1x.png} | Bin imgs/renders/2295@2x.png | Bin 0 -> 6069 bytes imgs/renders/{2382.png => 2382@1x.png} | Bin imgs/renders/2382@2x.png | Bin 0 -> 7292 bytes imgs/renders/2383.png | Bin 2204 -> 0 bytes imgs/renders/2383@1x.png | Bin 0 -> 2245 bytes imgs/renders/2383@2x.png | Bin 0 -> 7323 bytes imgs/renders/{2384.png => 2384@1x.png} | Bin imgs/renders/2384@2x.png | Bin 0 -> 6369 bytes imgs/renders/{2385.png => 2385@1x.png} | Bin imgs/renders/2385@2x.png | Bin 0 -> 7123 bytes imgs/renders/{2387.png => 2387@1x.png} | Bin imgs/renders/2387@2x.png | Bin 0 -> 7117 bytes imgs/renders/2388.png | Bin 2264 -> 0 bytes imgs/renders/2388@1x.png | Bin 0 -> 2277 bytes imgs/renders/2388@2x.png | Bin 0 -> 7227 bytes imgs/renders/{2389.png => 2389@1x.png} | Bin imgs/renders/2389@2x.png | Bin 0 -> 6482 bytes imgs/renders/{2390.png => 2390@1x.png} | Bin imgs/renders/2390@2x.png | Bin 0 -> 6189 bytes imgs/renders/{2522.png => 2522@1x.png} | Bin imgs/renders/2522@2x.png | Bin 0 -> 7424 bytes imgs/renders/{2523.png => 2523@1x.png} | Bin imgs/renders/2523@2x.png | Bin 0 -> 7387 bytes imgs/renders/{2524.png => 2524@1x.png} | Bin imgs/renders/2524@2x.png | Bin 0 -> 7581 bytes imgs/renders/{2632.png => 2632@1x.png} | Bin imgs/renders/2632@2x.png | Bin 0 -> 7383 bytes imgs/renders/{2633.png => 2633@1x.png} | Bin imgs/renders/2633@2x.png | Bin 0 -> 6951 bytes imgs/renders/{2634.png => 2634@1x.png} | Bin imgs/renders/2634@2x.png | Bin 0 -> 6687 bytes imgs/renders/{2635.png => 2635@1x.png} | Bin imgs/renders/2635@2x.png | Bin 0 -> 5938 bytes imgs/renders/{2636.png => 2636@1x.png} | Bin imgs/renders/2636@2x.png | Bin 0 -> 7441 bytes imgs/renders/2642.png | Bin 1837 -> 0 bytes imgs/renders/2642@1x.png | Bin 0 -> 1841 bytes imgs/renders/2642@2x.png | Bin 0 -> 5753 bytes imgs/renders/2709.png | Bin 2253 -> 0 bytes imgs/renders/2709@1x.png | Bin 0 -> 2198 bytes imgs/renders/2709@2x.png | Bin 0 -> 6868 bytes imgs/renders/{2710.png => 2710@1x.png} | Bin imgs/renders/2710@2x.png | Bin 0 -> 7895 bytes imgs/renders/{2711.png => 2711@1x.png} | Bin imgs/renders/2711@2x.png | Bin 0 -> 6637 bytes imgs/renders/{2712.png => 2712@1x.png} | Bin imgs/renders/2712@2x.png | Bin 0 -> 7073 bytes imgs/renders/{2713.png => 2713@1x.png} | Bin imgs/renders/2713@2x.png | Bin 0 -> 6260 bytes imgs/renders/{2714.png => 2714@1x.png} | Bin imgs/renders/2714@2x.png | Bin 0 -> 6282 bytes imgs/renders/{2715.png => 2715@1x.png} | Bin imgs/renders/2715@2x.png | Bin 0 -> 7536 bytes imgs/renders/{2716.png => 2716@1x.png} | Bin imgs/renders/2716@2x.png | Bin 0 -> 7463 bytes imgs/renders/{2737.png => 2737@1x.png} | Bin imgs/renders/2737@2x.png | Bin 0 -> 6707 bytes imgs/renders/{2738.png => 2738@1x.png} | Bin imgs/renders/2738@2x.png | Bin 0 -> 7392 bytes imgs/renders/{2739.png => 2739@1x.png} | Bin imgs/renders/2739@2x.png | Bin 0 -> 7555 bytes imgs/renders/{2740.png => 2740@1x.png} | Bin imgs/renders/2740@2x.png | Bin 0 -> 6982 bytes imgs/renders/{2743.png => 2743@1x.png} | Bin imgs/renders/2743@2x.png | Bin 0 -> 7581 bytes imgs/renders/{2744.png => 2744@1x.png} | Bin imgs/renders/2744@2x.png | Bin 0 -> 7153 bytes imgs/renders/{2755.png => 2755@1x.png} | Bin imgs/renders/2755@2x.png | Bin 0 -> 5183 bytes imgs/renders/2786.png | Bin 2260 -> 0 bytes imgs/renders/2786@1x.png | Bin 0 -> 2358 bytes imgs/renders/2786@2x.png | Bin 0 -> 7396 bytes imgs/renders/{2794.png => 2794@1x.png} | Bin imgs/renders/2794@2x.png | Bin 0 -> 6312 bytes imgs/renders/{2798.png => 2798@1x.png} | Bin imgs/renders/2798@2x.png | Bin 0 -> 7182 bytes imgs/renders/{2801.png => 2801@1x.png} | Bin imgs/renders/2801@2x.png | Bin 0 -> 7121 bytes imgs/renders/2802.png | Bin 2286 -> 0 bytes imgs/renders/2802@1x.png | Bin 0 -> 2298 bytes imgs/renders/2802@2x.png | Bin 0 -> 7210 bytes imgs/renders/{2804.png => 2804@1x.png} | Bin imgs/renders/2804@2x.png | Bin 0 -> 6898 bytes imgs/renders/{2805.png => 2805@1x.png} | Bin imgs/renders/2805@2x.png | Bin 0 -> 6767 bytes imgs/renders/{2807.png => 2807@1x.png} | Bin imgs/renders/2807@2x.png | Bin 0 -> 7098 bytes imgs/renders/{2811.png => 2811@1x.png} | Bin imgs/renders/2811@2x.png | Bin 0 -> 6515 bytes imgs/renders/{2814.png => 2814@1x.png} | Bin imgs/renders/2814@2x.png | Bin 0 -> 6144 bytes imgs/renders/{2894.png => 2894@1x.png} | Bin imgs/renders/2894@2x.png | Bin 0 -> 5897 bytes imgs/renders/{2905.png => 2905@1x.png} | Bin imgs/renders/2905@2x.png | Bin 0 -> 7199 bytes imgs/renders/{2906.png => 2906@1x.png} | Bin imgs/renders/2906@2x.png | Bin 0 -> 5552 bytes imgs/renders/{2909.png => 2909@1x.png} | Bin imgs/renders/2909@2x.png | Bin 0 -> 6994 bytes imgs/renders/{2910.png => 2910@1x.png} | Bin imgs/renders/2910@2x.png | Bin 0 -> 8934 bytes imgs/renders/{2911.png => 2911@1x.png} | Bin imgs/renders/2911@2x.png | Bin 0 -> 7567 bytes imgs/renders/{2912.png => 2912@1x.png} | Bin imgs/renders/2912@2x.png | Bin 0 -> 6356 bytes imgs/renders/{2925.png => 2925@1x.png} | Bin imgs/renders/2925@2x.png | Bin 0 -> 6553 bytes imgs/renders/{2926.png => 2926@1x.png} | Bin imgs/renders/2926@2x.png | Bin 0 -> 6832 bytes imgs/renders/{2928.png => 2928@1x.png} | Bin imgs/renders/2928@2x.png | Bin 0 -> 7063 bytes imgs/renders/{2929.png => 2929@1x.png} | Bin imgs/renders/2929@2x.png | Bin 0 -> 6122 bytes imgs/renders/{2930.png => 2930@1x.png} | Bin imgs/renders/2930@2x.png | Bin 0 -> 7215 bytes imgs/renders/{2931.png => 2931@1x.png} | Bin imgs/renders/2931@2x.png | Bin 0 -> 7511 bytes imgs/renders/{2932.png => 2932@1x.png} | Bin imgs/renders/2932@2x.png | Bin 0 -> 6741 bytes imgs/renders/{2938.png => 2938@1x.png} | Bin imgs/renders/2938@2x.png | Bin 0 -> 7433 bytes imgs/renders/{2939.png => 2939@1x.png} | Bin imgs/renders/2939@2x.png | Bin 0 -> 7361 bytes imgs/renders/{2940.png => 2940@1x.png} | Bin imgs/renders/2940@2x.png | Bin 0 -> 7557 bytes imgs/renders/{2942.png => 2942@1x.png} | Bin imgs/renders/2942@2x.png | Bin 0 -> 7157 bytes imgs/renders/{296.png => 296@1x.png} | Bin imgs/renders/296@2x.png | Bin 0 -> 7123 bytes imgs/renders/{297.png => 297@1x.png} | Bin imgs/renders/297@2x.png | Bin 0 -> 7492 bytes imgs/renders/{298.png => 298@1x.png} | Bin imgs/renders/298@2x.png | Bin 0 -> 6938 bytes imgs/renders/{299.png => 299@1x.png} | Bin imgs/renders/299@2x.png | Bin 0 -> 7346 bytes imgs/renders/{300.png => 300@1x.png} | Bin imgs/renders/300@2x.png | Bin 0 -> 7409 bytes imgs/renders/{301.png => 301@1x.png} | Bin imgs/renders/301@2x.png | Bin 0 -> 5914 bytes imgs/renders/3020.png | Bin 2291 -> 0 bytes imgs/renders/3020@1x.png | Bin 0 -> 2217 bytes imgs/renders/3020@2x.png | Bin 0 -> 7040 bytes imgs/renders/{302.png => 302@1x.png} | Bin imgs/renders/302@2x.png | Bin 0 -> 6463 bytes imgs/renders/{303.png => 303@1x.png} | Bin imgs/renders/303@2x.png | Bin 0 -> 6576 bytes imgs/renders/{304.png => 304@1x.png} | Bin imgs/renders/304@2x.png | Bin 0 -> 6302 bytes imgs/renders/{305.png => 305@1x.png} | Bin imgs/renders/305@2x.png | Bin 0 -> 5461 bytes imgs/renders/{306.png => 306@1x.png} | Bin imgs/renders/306@2x.png | Bin 0 -> 6055 bytes imgs/renders/{308.png => 308@1x.png} | Bin imgs/renders/308@2x.png | Bin 0 -> 6340 bytes imgs/renders/{309.png => 309@1x.png} | Bin imgs/renders/309@2x.png | Bin 0 -> 5710 bytes imgs/renders/{310.png => 310@1x.png} | Bin imgs/renders/310@2x.png | Bin 0 -> 6151 bytes imgs/renders/{311.png => 311@1x.png} | Bin imgs/renders/311@2x.png | Bin 0 -> 6715 bytes imgs/renders/{312.png => 312@1x.png} | Bin imgs/renders/312@2x.png | Bin 0 -> 7209 bytes imgs/renders/{3132.png => 3132@1x.png} | Bin imgs/renders/3132@2x.png | Bin 0 -> 7861 bytes imgs/renders/3133.png | Bin 2308 -> 0 bytes imgs/renders/3133@1x.png | Bin 0 -> 2343 bytes imgs/renders/3133@2x.png | Bin 0 -> 7577 bytes imgs/renders/{3134.png => 3134@1x.png} | Bin imgs/renders/3134@2x.png | Bin 0 -> 6050 bytes imgs/renders/3135.png | Bin 1949 -> 0 bytes imgs/renders/3135@1x.png | Bin 0 -> 1987 bytes imgs/renders/3135@2x.png | Bin 0 -> 6348 bytes imgs/renders/{313.png => 313@1x.png} | Bin imgs/renders/313@2x.png | Bin 0 -> 6615 bytes imgs/renders/314.png | Bin 2319 -> 0 bytes imgs/renders/314@1x.png | Bin 0 -> 2357 bytes imgs/renders/314@2x.png | Bin 0 -> 7368 bytes imgs/renders/{3168.png => 3168@1x.png} | Bin imgs/renders/3168@2x.png | Bin 0 -> 6583 bytes imgs/renders/3169.png | Bin 2269 -> 0 bytes imgs/renders/3169@1x.png | Bin 0 -> 2328 bytes imgs/renders/3169@2x.png | Bin 0 -> 7506 bytes imgs/renders/{316.png => 316@1x.png} | Bin imgs/renders/316@2x.png | Bin 0 -> 6850 bytes imgs/renders/3170.png | Bin 2312 -> 0 bytes imgs/renders/3170@1x.png | Bin 0 -> 2356 bytes imgs/renders/3170@2x.png | Bin 0 -> 7614 bytes imgs/renders/{317.png => 317@1x.png} | Bin imgs/renders/317@2x.png | Bin 0 -> 6698 bytes imgs/renders/{318.png => 318@1x.png} | Bin imgs/renders/318@2x.png | Bin 0 -> 6589 bytes imgs/renders/{319.png => 319@1x.png} | Bin imgs/renders/319@2x.png | Bin 0 -> 7060 bytes imgs/renders/320.png | Bin 2248 -> 0 bytes imgs/renders/3204.png | Bin 2202 -> 0 bytes imgs/renders/3204@1x.png | Bin 0 -> 2219 bytes imgs/renders/3204@2x.png | Bin 0 -> 6991 bytes imgs/renders/3205.png | Bin 1847 -> 0 bytes imgs/renders/3205@1x.png | Bin 0 -> 1841 bytes imgs/renders/3205@2x.png | Bin 0 -> 5740 bytes imgs/renders/{3207.png => 3207@1x.png} | Bin imgs/renders/3207@2x.png | Bin 0 -> 6972 bytes imgs/renders/320@1x.png | Bin 0 -> 2283 bytes imgs/renders/320@2x.png | Bin 0 -> 7292 bytes imgs/renders/{321.png => 321@1x.png} | Bin imgs/renders/321@2x.png | Bin 0 -> 6842 bytes imgs/renders/{322.png => 322@1x.png} | Bin imgs/renders/322@2x.png | Bin 0 -> 7213 bytes imgs/renders/{323.png => 323@1x.png} | Bin imgs/renders/323@2x.png | Bin 0 -> 6885 bytes imgs/renders/{324.png => 324@1x.png} | Bin imgs/renders/324@2x.png | Bin 0 -> 6617 bytes imgs/renders/{325.png => 325@1x.png} | Bin imgs/renders/325@2x.png | Bin 0 -> 6758 bytes imgs/renders/{326.png => 326@1x.png} | Bin imgs/renders/326@2x.png | Bin 0 -> 6615 bytes imgs/renders/{327.png => 327@1x.png} | Bin imgs/renders/327@2x.png | Bin 0 -> 7006 bytes imgs/renders/{328.png => 328@1x.png} | Bin imgs/renders/328@2x.png | Bin 0 -> 6041 bytes imgs/renders/{330.png => 330@1x.png} | Bin imgs/renders/330@2x.png | Bin 0 -> 6587 bytes imgs/renders/3331.png | Bin 2310 -> 0 bytes imgs/renders/3331@1x.png | Bin 0 -> 2314 bytes imgs/renders/3331@2x.png | Bin 0 -> 7688 bytes imgs/renders/{3349.png => 3349@1x.png} | Bin imgs/renders/3349@2x.png | Bin 0 -> 6962 bytes imgs/renders/{3350.png => 3350@1x.png} | Bin imgs/renders/3350@2x.png | Bin 0 -> 6515 bytes imgs/renders/{3351.png => 3351@1x.png} | Bin imgs/renders/3351@2x.png | Bin 0 -> 6929 bytes imgs/renders/3352.png | Bin 2194 -> 0 bytes imgs/renders/3352@1x.png | Bin 0 -> 2223 bytes imgs/renders/3352@2x.png | Bin 0 -> 6821 bytes imgs/renders/{3353.png => 3353@1x.png} | Bin imgs/renders/3353@2x.png | Bin 0 -> 7365 bytes imgs/renders/{3354.png => 3354@1x.png} | Bin imgs/renders/3354@2x.png | Bin 0 -> 5659 bytes imgs/renders/{3355.png => 3355@1x.png} | Bin imgs/renders/3355@2x.png | Bin 0 -> 6429 bytes imgs/renders/{3356.png => 3356@1x.png} | Bin imgs/renders/3356@2x.png | Bin 0 -> 7504 bytes imgs/renders/{3357.png => 3357@1x.png} | Bin imgs/renders/3357@2x.png | Bin 0 -> 6675 bytes imgs/renders/{3359.png => 3359@1x.png} | Bin imgs/renders/3359@2x.png | Bin 0 -> 7561 bytes imgs/renders/{335.png => 335@1x.png} | Bin imgs/renders/335@2x.png | Bin 0 -> 6357 bytes imgs/renders/{3360.png => 3360@1x.png} | Bin imgs/renders/3360@2x.png | Bin 0 -> 8194 bytes imgs/renders/{3361.png => 3361@1x.png} | Bin imgs/renders/3361@2x.png | Bin 0 -> 6943 bytes imgs/renders/{3362.png => 3362@1x.png} | Bin imgs/renders/3362@2x.png | Bin 0 -> 7032 bytes imgs/renders/{3363.png => 3363@1x.png} | Bin imgs/renders/3363@2x.png | Bin 0 -> 7340 bytes imgs/renders/{3364.png => 3364@1x.png} | Bin imgs/renders/3364@2x.png | Bin 0 -> 7229 bytes imgs/renders/{3365.png => 3365@1x.png} | Bin imgs/renders/3365@2x.png | Bin 0 -> 6730 bytes imgs/renders/{3367.png => 3367@1x.png} | Bin imgs/renders/3367@2x.png | Bin 0 -> 7444 bytes imgs/renders/{337.png => 337@1x.png} | Bin imgs/renders/337@2x.png | Bin 0 -> 6758 bytes imgs/renders/{338.png => 338@1x.png} | Bin imgs/renders/338@2x.png | Bin 0 -> 6517 bytes imgs/renders/{341.png => 341@1x.png} | Bin imgs/renders/341@2x.png | Bin 0 -> 6134 bytes imgs/renders/{3424.png => 3424@1x.png} | Bin imgs/renders/3424@2x.png | Bin 0 -> 7250 bytes imgs/renders/{343.png => 343@1x.png} | Bin imgs/renders/343@2x.png | Bin 0 -> 5919 bytes imgs/renders/{3466.png => 3466@1x.png} | Bin imgs/renders/3466@2x.png | Bin 0 -> 7148 bytes imgs/renders/{3714.png => 3714@1x.png} | Bin imgs/renders/3714@2x.png | Bin 0 -> 6523 bytes imgs/renders/{3799.png => 3799@1x.png} | Bin imgs/renders/3799@2x.png | Bin 0 -> 6366 bytes imgs/renders/{3800.png => 3800@1x.png} | Bin imgs/renders/3800@2x.png | Bin 0 -> 6480 bytes imgs/renders/{3814.png => 3814@1x.png} | Bin imgs/renders/3814@2x.png | Bin 0 -> 7384 bytes imgs/renders/{3815.png => 3815@1x.png} | Bin imgs/renders/3815@2x.png | Bin 0 -> 7010 bytes imgs/renders/{38.png => 38@1x.png} | Bin imgs/renders/38@2x.png | Bin 0 -> 7234 bytes imgs/renders/{39.png => 39@1x.png} | Bin imgs/renders/39@2x.png | Bin 0 -> 7185 bytes imgs/renders/{40.png => 40@1x.png} | Bin imgs/renders/40@2x.png | Bin 0 -> 7277 bytes imgs/renders/41.png | Bin 2409 -> 0 bytes imgs/renders/41@1x.png | Bin 0 -> 2406 bytes imgs/renders/41@2x.png | Bin 0 -> 7504 bytes imgs/renders/{42.png => 42@1x.png} | Bin imgs/renders/42@2x.png | Bin 0 -> 6998 bytes imgs/renders/43.png | Bin 2193 -> 0 bytes imgs/renders/43@1x.png | Bin 0 -> 2216 bytes imgs/renders/43@2x.png | Bin 0 -> 7037 bytes imgs/renders/{44.png => 44@1x.png} | Bin imgs/renders/44@2x.png | Bin 0 -> 5599 bytes imgs/renders/{4515.png => 4515@1x.png} | Bin imgs/renders/4515@2x.png | Bin 0 -> 6924 bytes imgs/renders/4517.png | Bin 2212 -> 0 bytes imgs/renders/4517@1x.png | Bin 0 -> 2130 bytes imgs/renders/4517@2x.png | Bin 0 -> 6581 bytes imgs/renders/{45.png => 45@1x.png} | Bin imgs/renders/45@2x.png | Bin 0 -> 5412 bytes imgs/renders/{46.png => 46@1x.png} | Bin imgs/renders/46@2x.png | Bin 0 -> 6323 bytes imgs/renders/{47.png => 47@1x.png} | Bin imgs/renders/47@2x.png | Bin 0 -> 5580 bytes imgs/renders/48.png | Bin 1845 -> 0 bytes imgs/renders/48@1x.png | Bin 0 -> 1836 bytes imgs/renders/48@2x.png | Bin 0 -> 5741 bytes imgs/renders/{49.png => 49@1x.png} | Bin imgs/renders/49@2x.png | Bin 0 -> 7078 bytes imgs/renders/{50.png => 50@1x.png} | Bin imgs/renders/50@2x.png | Bin 0 -> 7112 bytes imgs/renders/51.png | Bin 2261 -> 0 bytes imgs/renders/51@1x.png | Bin 0 -> 2201 bytes imgs/renders/51@2x.png | Bin 0 -> 6842 bytes imgs/renders/52.png | Bin 2320 -> 0 bytes imgs/renders/52@1x.png | Bin 0 -> 2283 bytes imgs/renders/52@2x.png | Bin 0 -> 7192 bytes imgs/renders/{53.png => 53@1x.png} | Bin imgs/renders/53@2x.png | Bin 0 -> 5262 bytes imgs/renders/{54.png => 54@1x.png} | Bin imgs/renders/54@2x.png | Bin 0 -> 6760 bytes imgs/renders/{55.png => 55@1x.png} | Bin imgs/renders/55@2x.png | Bin 0 -> 7243 bytes imgs/renders/{56.png => 56@1x.png} | Bin imgs/renders/56@2x.png | Bin 0 -> 7245 bytes imgs/renders/{57.png => 57@1x.png} | Bin imgs/renders/57@2x.png | Bin 0 -> 7316 bytes imgs/renders/58.png | Bin 2320 -> 0 bytes imgs/renders/58@1x.png | Bin 0 -> 2331 bytes imgs/renders/58@2x.png | Bin 0 -> 7572 bytes imgs/renders/59.png | Bin 2127 -> 0 bytes imgs/renders/59@1x.png | Bin 0 -> 2247 bytes imgs/renders/59@2x.png | Bin 0 -> 7250 bytes imgs/renders/{60.png => 60@1x.png} | Bin imgs/renders/60@2x.png | Bin 0 -> 7296 bytes imgs/renders/{61.png => 61@1x.png} | Bin imgs/renders/61@2x.png | Bin 0 -> 6834 bytes imgs/renders/62.png | Bin 2178 -> 0 bytes imgs/renders/62@1x.png | Bin 0 -> 2223 bytes imgs/renders/62@2x.png | Bin 0 -> 7202 bytes imgs/renders/{63.png => 63@1x.png} | Bin imgs/renders/63@2x.png | Bin 0 -> 7413 bytes imgs/renders/{64.png => 64@1x.png} | Bin imgs/renders/64@2x.png | Bin 0 -> 7199 bytes imgs/renders/{65.png => 65@1x.png} | Bin imgs/renders/65@2x.png | Bin 0 -> 6928 bytes 3061 files changed, 0 insertions(+), 0 deletions(-) rename imgs/icons/{0.png => 0@1x.png} (100%) create mode 100644 imgs/icons/0@2x.png rename imgs/icons/{10012.png => 10012@1x.png} (100%) create mode 100644 imgs/icons/10012@2x.png rename imgs/icons/{10013.png => 10013@1x.png} (100%) create mode 100644 imgs/icons/10013@2x.png rename imgs/icons/{10014.png => 10014@1x.png} (100%) create mode 100644 imgs/icons/10014@2x.png rename imgs/icons/{10015.png => 10015@1x.png} (100%) create mode 100644 imgs/icons/10015@2x.png rename imgs/icons/{10016.png => 10016@1x.png} (100%) create mode 100644 imgs/icons/10016@2x.png rename imgs/icons/{10017.png => 10017@1x.png} (100%) create mode 100644 imgs/icons/10017@2x.png rename imgs/icons/{10018.png => 10018@1x.png} (100%) create mode 100644 imgs/icons/10018@2x.png rename imgs/icons/{10019.png => 10019@1x.png} (100%) create mode 100644 imgs/icons/10019@2x.png rename imgs/icons/{10020.png => 10020@1x.png} (100%) create mode 100644 imgs/icons/10020@2x.png rename imgs/icons/{10021.png => 10021@1x.png} (100%) create mode 100644 imgs/icons/10021@2x.png rename imgs/icons/{10022.png => 10022@1x.png} (100%) create mode 100644 imgs/icons/10022@2x.png rename imgs/icons/{10023.png => 10023@1x.png} (100%) create mode 100644 imgs/icons/10023@2x.png rename imgs/icons/{10024.png => 10024@1x.png} (100%) create mode 100644 imgs/icons/10024@2x.png rename imgs/icons/{10025.png => 10025@1x.png} (100%) create mode 100644 imgs/icons/10025@2x.png rename imgs/icons/{10026.png => 10026@1x.png} (100%) create mode 100644 imgs/icons/10026@2x.png rename imgs/icons/{10027.png => 10027@1x.png} (100%) create mode 100644 imgs/icons/10027@2x.png rename imgs/icons/{10028.png => 10028@1x.png} (100%) create mode 100644 imgs/icons/10028@2x.png rename imgs/icons/{10029.png => 10029@1x.png} (100%) create mode 100644 imgs/icons/10029@2x.png rename imgs/icons/{10030.png => 10030@1x.png} (100%) create mode 100644 imgs/icons/10030@2x.png rename imgs/icons/{10031.png => 10031@1x.png} (100%) create mode 100644 imgs/icons/10031@2x.png rename imgs/icons/{10032.png => 10032@1x.png} (100%) create mode 100644 imgs/icons/10032@2x.png rename imgs/icons/{10033.png => 10033@1x.png} (100%) create mode 100644 imgs/icons/10033@2x.png rename imgs/icons/{10034.png => 10034@1x.png} (100%) create mode 100644 imgs/icons/10034@2x.png rename imgs/icons/{10035.png => 10035@1x.png} (100%) create mode 100644 imgs/icons/10035@2x.png rename imgs/icons/{10036.png => 10036@1x.png} (100%) create mode 100644 imgs/icons/10036@2x.png rename imgs/icons/{10037.png => 10037@1x.png} (100%) create mode 100644 imgs/icons/10037@2x.png rename imgs/icons/{10038.png => 10038@1x.png} (100%) create mode 100644 imgs/icons/10038@2x.png rename imgs/icons/{10039.png => 10039@1x.png} (100%) create mode 100644 imgs/icons/10039@2x.png rename imgs/icons/{10040.png => 10040@1x.png} (100%) create mode 100644 imgs/icons/10040@2x.png rename imgs/icons/{10041.png => 10041@1x.png} (100%) create mode 100644 imgs/icons/10041@2x.png rename imgs/icons/{10042.png => 10042@1x.png} (100%) create mode 100644 imgs/icons/10042@2x.png rename imgs/icons/{10043.png => 10043@1x.png} (100%) create mode 100644 imgs/icons/10043@2x.png rename imgs/icons/{10044.png => 10044@1x.png} (100%) create mode 100644 imgs/icons/10044@2x.png rename imgs/icons/{10045.png => 10045@1x.png} (100%) create mode 100644 imgs/icons/10045@2x.png rename imgs/icons/{10046.png => 10046@1x.png} (100%) create mode 100644 imgs/icons/10046@2x.png rename imgs/icons/{10047.png => 10047@1x.png} (100%) create mode 100644 imgs/icons/10047@2x.png rename imgs/icons/{10048.png => 10048@1x.png} (100%) create mode 100644 imgs/icons/10048@2x.png rename imgs/icons/{10049.png => 10049@1x.png} (100%) create mode 100644 imgs/icons/10049@2x.png rename imgs/icons/{1004.png => 1004@1x.png} (100%) create mode 100644 imgs/icons/1004@2x.png rename imgs/icons/{10050.png => 10050@1x.png} (100%) create mode 100644 imgs/icons/10050@2x.png rename imgs/icons/{10051.png => 10051@1x.png} (100%) create mode 100644 imgs/icons/10051@2x.png rename imgs/icons/{10052.png => 10052@1x.png} (100%) create mode 100644 imgs/icons/10052@2x.png rename imgs/icons/{10053.png => 10053@1x.png} (100%) create mode 100644 imgs/icons/10053@2x.png rename imgs/icons/{10054.png => 10054@1x.png} (100%) create mode 100644 imgs/icons/10054@2x.png rename imgs/icons/{10055.png => 10055@1x.png} (100%) create mode 100644 imgs/icons/10055@2x.png rename imgs/icons/{10056.png => 10056@1x.png} (100%) create mode 100644 imgs/icons/10056@2x.png rename imgs/icons/{10057.png => 10057@1x.png} (100%) create mode 100644 imgs/icons/10057@2x.png rename imgs/icons/{10058.png => 10058@1x.png} (100%) create mode 100644 imgs/icons/10058@2x.png rename imgs/icons/{10071.png => 10071@1x.png} (100%) create mode 100644 imgs/icons/10071@2x.png rename imgs/icons/{10073.png => 10073@1x.png} (100%) create mode 100644 imgs/icons/10073@2x.png rename imgs/icons/{10074.png => 10074@1x.png} (100%) create mode 100644 imgs/icons/10074@2x.png rename imgs/icons/{10075.png => 10075@1x.png} (100%) create mode 100644 imgs/icons/10075@2x.png rename imgs/icons/{10076.png => 10076@1x.png} (100%) create mode 100644 imgs/icons/10076@2x.png rename imgs/icons/{10077.png => 10077@1x.png} (100%) create mode 100644 imgs/icons/10077@2x.png rename imgs/icons/{10078.png => 10078@1x.png} (100%) create mode 100644 imgs/icons/10078@2x.png rename imgs/icons/{10079.png => 10079@1x.png} (100%) create mode 100644 imgs/icons/10079@2x.png rename imgs/icons/{1007.png => 1007@1x.png} (100%) create mode 100644 imgs/icons/1007@2x.png rename imgs/icons/{10132.png => 10132@1x.png} (100%) create mode 100644 imgs/icons/10132@2x.png rename imgs/icons/{10144.png => 10144@1x.png} (100%) create mode 100644 imgs/icons/10144@2x.png rename imgs/icons/{10149.png => 10149@1x.png} (100%) create mode 100644 imgs/icons/10149@2x.png rename imgs/icons/{10151.png => 10151@1x.png} (100%) create mode 100644 imgs/icons/10151@2x.png rename imgs/icons/{10153.png => 10153@1x.png} (100%) create mode 100644 imgs/icons/10153@2x.png rename imgs/icons/{10158.png => 10158@1x.png} (100%) create mode 100644 imgs/icons/10158@2x.png rename imgs/icons/{10159.png => 10159@1x.png} (100%) create mode 100644 imgs/icons/10159@2x.png rename imgs/icons/{10160.png => 10160@1x.png} (100%) create mode 100644 imgs/icons/10160@2x.png rename imgs/icons/{10162.png => 10162@1x.png} (100%) create mode 100644 imgs/icons/10162@2x.png rename imgs/icons/{10163.png => 10163@1x.png} (100%) create mode 100644 imgs/icons/10163@2x.png rename imgs/icons/{10176.png => 10176@1x.png} (100%) create mode 100644 imgs/icons/10176@2x.png rename imgs/icons/{10190.png => 10190@1x.png} (100%) create mode 100644 imgs/icons/10190@2x.png rename imgs/icons/{10224.png => 10224@1x.png} (100%) create mode 100644 imgs/icons/10224@2x.png rename imgs/icons/{10234.png => 10234@1x.png} (100%) create mode 100644 imgs/icons/10234@2x.png rename imgs/icons/{10236.png => 10236@1x.png} (100%) create mode 100644 imgs/icons/10236@2x.png rename imgs/icons/{10254.png => 10254@1x.png} (100%) create mode 100644 imgs/icons/10254@2x.png rename imgs/icons/{10256.png => 10256@1x.png} (100%) create mode 100644 imgs/icons/10256@2x.png rename imgs/icons/{1029.png => 1029@1x.png} (100%) create mode 100644 imgs/icons/1029@2x.png rename imgs/icons/{1030.png => 1030@1x.png} (100%) create mode 100644 imgs/icons/1030@2x.png rename imgs/icons/{1031.png => 1031@1x.png} (100%) create mode 100644 imgs/icons/1031@2x.png rename imgs/icons/{1033.png => 1033@1x.png} (100%) create mode 100644 imgs/icons/1033@2x.png rename imgs/icons/{1035.png => 1035@1x.png} (100%) create mode 100644 imgs/icons/1035@2x.png rename imgs/icons/{1041.png => 1041@1x.png} (100%) create mode 100644 imgs/icons/1041@2x.png rename imgs/icons/{1042.png => 1042@1x.png} (100%) create mode 100644 imgs/icons/1042@2x.png rename imgs/icons/{1044.png => 1044@1x.png} (100%) create mode 100644 imgs/icons/1044@2x.png rename imgs/icons/{1046.png => 1046@1x.png} (100%) create mode 100644 imgs/icons/1046@2x.png rename imgs/icons/{1047.png => 1047@1x.png} (100%) create mode 100644 imgs/icons/1047@2x.png rename imgs/icons/{104.png => 104@1x.png} (100%) create mode 100644 imgs/icons/104@2x.png rename imgs/icons/{10570.png => 10570@1x.png} (100%) create mode 100644 imgs/icons/10570@2x.png rename imgs/icons/{105.png => 105@1x.png} (100%) create mode 100644 imgs/icons/105@2x.png rename imgs/icons/{1061.png => 1061@1x.png} (100%) create mode 100644 imgs/icons/1061@2x.png rename imgs/icons/{10624.png => 10624@1x.png} (100%) create mode 100644 imgs/icons/10624@2x.png rename imgs/icons/{10684.png => 10684@1x.png} (100%) create mode 100644 imgs/icons/10684@2x.png rename imgs/icons/{106.png => 106@1x.png} (100%) create mode 100644 imgs/icons/106@2x.png rename imgs/icons/{10756.png => 10756@1x.png} (100%) create mode 100644 imgs/icons/10756@2x.png rename imgs/icons/{10785.png => 10785@1x.png} (100%) create mode 100644 imgs/icons/10785@2x.png rename imgs/icons/{107.png => 107@1x.png} (100%) create mode 100644 imgs/icons/107@2x.png rename imgs/icons/{10828.png => 10828@1x.png} (100%) create mode 100644 imgs/icons/10828@2x.png rename imgs/icons/{10829.png => 10829@1x.png} (100%) create mode 100644 imgs/icons/10829@2x.png rename imgs/icons/{10830.png => 10830@1x.png} (100%) create mode 100644 imgs/icons/10830@2x.png rename imgs/icons/{10831.png => 10831@1x.png} (100%) create mode 100644 imgs/icons/10831@2x.png rename imgs/icons/{10833.png => 10833@1x.png} (100%) create mode 100644 imgs/icons/10833@2x.png rename imgs/icons/{10834.png => 10834@1x.png} (100%) create mode 100644 imgs/icons/10834@2x.png rename imgs/icons/{10835.png => 10835@1x.png} (100%) create mode 100644 imgs/icons/10835@2x.png rename imgs/icons/{10836.png => 10836@1x.png} (100%) create mode 100644 imgs/icons/10836@2x.png rename imgs/icons/{10847.png => 10847@1x.png} (100%) create mode 100644 imgs/icons/10847@2x.png rename imgs/icons/{1084.png => 1084@1x.png} (100%) create mode 100644 imgs/icons/1084@2x.png rename imgs/icons/{10851.png => 10851@1x.png} (100%) create mode 100644 imgs/icons/10851@2x.png rename imgs/icons/{10932.png => 10932@1x.png} (100%) create mode 100644 imgs/icons/10932@2x.png rename imgs/icons/{10933.png => 10933@1x.png} (100%) create mode 100644 imgs/icons/10933@2x.png rename imgs/icons/{10934.png => 10934@1x.png} (100%) create mode 100644 imgs/icons/10934@2x.png rename imgs/icons/{10935.png => 10935@1x.png} (100%) create mode 100644 imgs/icons/10935@2x.png rename imgs/icons/{10940.png => 10940@1x.png} (100%) create mode 100644 imgs/icons/10940@2x.png rename imgs/icons/{10941.png => 10941@1x.png} (100%) create mode 100644 imgs/icons/10941@2x.png rename imgs/icons/{10942.png => 10942@1x.png} (100%) create mode 100644 imgs/icons/10942@2x.png rename imgs/icons/{109.png => 109@1x.png} (100%) create mode 100644 imgs/icons/109@2x.png rename imgs/icons/{110.png => 110@1x.png} (100%) create mode 100644 imgs/icons/110@2x.png rename imgs/icons/{111.png => 111@1x.png} (100%) create mode 100644 imgs/icons/111@2x.png rename imgs/icons/{112.png => 112@1x.png} (100%) create mode 100644 imgs/icons/112@2x.png rename imgs/icons/{1131.png => 1131@1x.png} (100%) create mode 100644 imgs/icons/1131@2x.png rename imgs/icons/{1139.png => 1139@1x.png} (100%) create mode 100644 imgs/icons/1139@2x.png rename imgs/icons/{1140.png => 1140@1x.png} (100%) create mode 100644 imgs/icons/1140@2x.png rename imgs/icons/{1141.png => 1141@1x.png} (100%) create mode 100644 imgs/icons/1141@2x.png rename imgs/icons/{1142.png => 1142@1x.png} (100%) create mode 100644 imgs/icons/1142@2x.png rename imgs/icons/{1143.png => 1143@1x.png} (100%) create mode 100644 imgs/icons/1143@2x.png rename imgs/icons/{1144.png => 1144@1x.png} (100%) create mode 100644 imgs/icons/1144@2x.png rename imgs/icons/{1145.png => 1145@1x.png} (100%) create mode 100644 imgs/icons/1145@2x.png rename imgs/icons/{1159.png => 1159@1x.png} (100%) create mode 100644 imgs/icons/1159@2x.png rename imgs/icons/{1162.png => 1162@1x.png} (100%) create mode 100644 imgs/icons/1162@2x.png rename imgs/icons/{1164.png => 1164@1x.png} (100%) create mode 100644 imgs/icons/1164@2x.png rename imgs/icons/{1171.png => 1171@1x.png} (100%) create mode 100644 imgs/icons/1171@2x.png rename imgs/icons/{1172.png => 1172@1x.png} (100%) create mode 100644 imgs/icons/1172@2x.png rename imgs/icons/{1173.png => 1173@1x.png} (100%) create mode 100644 imgs/icons/1173@2x.png rename imgs/icons/{1174.png => 1174@1x.png} (100%) create mode 100644 imgs/icons/1174@2x.png rename imgs/icons/{1175.png => 1175@1x.png} (100%) create mode 100644 imgs/icons/1175@2x.png rename imgs/icons/{1177.png => 1177@1x.png} (100%) create mode 100644 imgs/icons/1177@2x.png rename imgs/icons/{1178.png => 1178@1x.png} (100%) create mode 100644 imgs/icons/1178@2x.png rename imgs/icons/{1179.png => 1179@1x.png} (100%) create mode 100644 imgs/icons/1179@2x.png rename imgs/icons/{1180.png => 1180@1x.png} (100%) create mode 100644 imgs/icons/1180@2x.png rename imgs/icons/{1181.png => 1181@1x.png} (100%) create mode 100644 imgs/icons/1181@2x.png rename imgs/icons/{1182.png => 1182@1x.png} (100%) create mode 100644 imgs/icons/1182@2x.png rename imgs/icons/{1183.png => 1183@1x.png} (100%) create mode 100644 imgs/icons/1183@2x.png rename imgs/icons/{1184.png => 1184@1x.png} (100%) create mode 100644 imgs/icons/1184@2x.png rename imgs/icons/{1185.png => 1185@1x.png} (100%) create mode 100644 imgs/icons/1185@2x.png rename imgs/icons/{1186.png => 1186@1x.png} (100%) create mode 100644 imgs/icons/1186@2x.png rename imgs/icons/{1187.png => 1187@1x.png} (100%) create mode 100644 imgs/icons/1187@2x.png rename imgs/icons/{1188.png => 1188@1x.png} (100%) create mode 100644 imgs/icons/1188@2x.png rename imgs/icons/{1189.png => 1189@1x.png} (100%) create mode 100644 imgs/icons/1189@2x.png rename imgs/icons/{1190.png => 1190@1x.png} (100%) create mode 100644 imgs/icons/1190@2x.png rename imgs/icons/{1191.png => 1191@1x.png} (100%) create mode 100644 imgs/icons/1191@2x.png rename imgs/icons/{1192.png => 1192@1x.png} (100%) create mode 100644 imgs/icons/1192@2x.png rename imgs/icons/{1193.png => 1193@1x.png} (100%) create mode 100644 imgs/icons/1193@2x.png rename imgs/icons/{1194.png => 1194@1x.png} (100%) create mode 100644 imgs/icons/1194@2x.png rename imgs/icons/{1195.png => 1195@1x.png} (100%) create mode 100644 imgs/icons/1195@2x.png rename imgs/icons/{1196.png => 1196@1x.png} (100%) create mode 100644 imgs/icons/1196@2x.png rename imgs/icons/{1198.png => 1198@1x.png} (100%) create mode 100644 imgs/icons/1198@2x.png rename imgs/icons/{1199.png => 1199@1x.png} (100%) create mode 100644 imgs/icons/1199@2x.png rename imgs/icons/{1200.png => 1200@1x.png} (100%) create mode 100644 imgs/icons/1200@2x.png rename imgs/icons/{1201.png => 1201@1x.png} (100%) create mode 100644 imgs/icons/1201@2x.png rename imgs/icons/{1204.png => 1204@1x.png} (100%) create mode 100644 imgs/icons/1204@2x.png rename imgs/icons/{1205.png => 1205@1x.png} (100%) create mode 100644 imgs/icons/1205@2x.png rename imgs/icons/{1206.png => 1206@1x.png} (100%) create mode 100644 imgs/icons/1206@2x.png rename imgs/icons/{1207.png => 1207@1x.png} (100%) create mode 100644 imgs/icons/1207@2x.png rename imgs/icons/{1209.png => 1209@1x.png} (100%) create mode 100644 imgs/icons/1209@2x.png rename imgs/icons/{1269.png => 1269@1x.png} (100%) create mode 100644 imgs/icons/1269@2x.png rename imgs/icons/{1270.png => 1270@1x.png} (100%) create mode 100644 imgs/icons/1270@2x.png rename imgs/icons/{1271.png => 1271@1x.png} (100%) create mode 100644 imgs/icons/1271@2x.png rename imgs/icons/{1272.png => 1272@1x.png} (100%) create mode 100644 imgs/icons/1272@2x.png rename imgs/icons/{1273.png => 1273@1x.png} (100%) create mode 100644 imgs/icons/1273@2x.png rename imgs/icons/{1274.png => 1274@1x.png} (100%) create mode 100644 imgs/icons/1274@2x.png rename imgs/icons/{1275.png => 1275@1x.png} (100%) create mode 100644 imgs/icons/1275@2x.png rename imgs/icons/{1277.png => 1277@1x.png} (100%) create mode 100644 imgs/icons/1277@2x.png rename imgs/icons/{1279.png => 1279@1x.png} (100%) create mode 100644 imgs/icons/1279@2x.png rename imgs/icons/{1282.png => 1282@1x.png} (100%) create mode 100644 imgs/icons/1282@2x.png rename imgs/icons/{1283.png => 1283@1x.png} (100%) create mode 100644 imgs/icons/1283@2x.png rename imgs/icons/{1284.png => 1284@1x.png} (100%) create mode 100644 imgs/icons/1284@2x.png rename imgs/icons/{1285.png => 1285@1x.png} (100%) create mode 100644 imgs/icons/1285@2x.png rename imgs/icons/{1286.png => 1286@1x.png} (100%) create mode 100644 imgs/icons/1286@2x.png rename imgs/icons/{1287.png => 1287@1x.png} (100%) create mode 100644 imgs/icons/1287@2x.png rename imgs/icons/{1288.png => 1288@1x.png} (100%) create mode 100644 imgs/icons/1288@2x.png rename imgs/icons/{1289.png => 1289@1x.png} (100%) create mode 100644 imgs/icons/1289@2x.png rename imgs/icons/{1290.png => 1290@1x.png} (100%) create mode 100644 imgs/icons/1290@2x.png rename imgs/icons/{1291.png => 1291@1x.png} (100%) create mode 100644 imgs/icons/1291@2x.png rename imgs/icons/{1292.png => 1292@1x.png} (100%) create mode 100644 imgs/icons/1292@2x.png rename imgs/icons/{1293.png => 1293@1x.png} (100%) create mode 100644 imgs/icons/1293@2x.png rename imgs/icons/{1294.png => 1294@1x.png} (100%) create mode 100644 imgs/icons/1294@2x.png rename imgs/icons/{1295.png => 1295@1x.png} (100%) create mode 100644 imgs/icons/1295@2x.png rename imgs/icons/{1296.png => 1296@1x.png} (100%) create mode 100644 imgs/icons/1296@2x.png rename imgs/icons/{1297.png => 1297@1x.png} (100%) create mode 100644 imgs/icons/1297@2x.png rename imgs/icons/{1298.png => 1298@1x.png} (100%) create mode 100644 imgs/icons/1298@2x.png rename imgs/icons/{1299.png => 1299@1x.png} (100%) create mode 100644 imgs/icons/1299@2x.png rename imgs/icons/{1300.png => 1300@1x.png} (100%) create mode 100644 imgs/icons/1300@2x.png rename imgs/icons/{1301.png => 1301@1x.png} (100%) create mode 100644 imgs/icons/1301@2x.png rename imgs/icons/{1302.png => 1302@1x.png} (100%) create mode 100644 imgs/icons/1302@2x.png rename imgs/icons/{1303.png => 1303@1x.png} (100%) create mode 100644 imgs/icons/1303@2x.png rename imgs/icons/{1304.png => 1304@1x.png} (100%) create mode 100644 imgs/icons/1304@2x.png rename imgs/icons/{1305.png => 1305@1x.png} (100%) create mode 100644 imgs/icons/1305@2x.png rename imgs/icons/{1306.png => 1306@1x.png} (100%) create mode 100644 imgs/icons/1306@2x.png rename imgs/icons/{1307.png => 1307@1x.png} (100%) create mode 100644 imgs/icons/1307@2x.png rename imgs/icons/{1310.png => 1310@1x.png} (100%) create mode 100644 imgs/icons/1310@2x.png rename imgs/icons/{1311.png => 1311@1x.png} (100%) create mode 100644 imgs/icons/1311@2x.png rename imgs/icons/{1312.png => 1312@1x.png} (100%) create mode 100644 imgs/icons/1312@2x.png rename imgs/icons/{1313.png => 1313@1x.png} (100%) create mode 100644 imgs/icons/1313@2x.png rename imgs/icons/{1314.png => 1314@1x.png} (100%) create mode 100644 imgs/icons/1314@2x.png rename imgs/icons/{1315.png => 1315@1x.png} (100%) create mode 100644 imgs/icons/1315@2x.png rename imgs/icons/{1316.png => 1316@1x.png} (100%) create mode 100644 imgs/icons/1316@2x.png rename imgs/icons/{1317.png => 1317@1x.png} (100%) create mode 100644 imgs/icons/1317@2x.png rename imgs/icons/{1318.png => 1318@1x.png} (100%) create mode 100644 imgs/icons/1318@2x.png rename imgs/icons/{1319.png => 1319@1x.png} (100%) create mode 100644 imgs/icons/1319@2x.png rename imgs/icons/{1320.png => 1320@1x.png} (100%) create mode 100644 imgs/icons/1320@2x.png rename imgs/icons/{1321.png => 1321@1x.png} (100%) create mode 100644 imgs/icons/1321@2x.png rename imgs/icons/{1322.png => 1322@1x.png} (100%) create mode 100644 imgs/icons/1322@2x.png rename imgs/icons/{1323.png => 1323@1x.png} (100%) create mode 100644 imgs/icons/1323@2x.png rename imgs/icons/{1324.png => 1324@1x.png} (100%) create mode 100644 imgs/icons/1324@2x.png rename imgs/icons/{1325.png => 1325@1x.png} (100%) create mode 100644 imgs/icons/1325@2x.png rename imgs/icons/{1326.png => 1326@1x.png} (100%) create mode 100644 imgs/icons/1326@2x.png rename imgs/icons/{1327.png => 1327@1x.png} (100%) create mode 100644 imgs/icons/1327@2x.png rename imgs/icons/{1328.png => 1328@1x.png} (100%) create mode 100644 imgs/icons/1328@2x.png rename imgs/icons/{1329.png => 1329@1x.png} (100%) create mode 100644 imgs/icons/1329@2x.png rename imgs/icons/{1330.png => 1330@1x.png} (100%) create mode 100644 imgs/icons/1330@2x.png rename imgs/icons/{1331.png => 1331@1x.png} (100%) create mode 100644 imgs/icons/1331@2x.png rename imgs/icons/{1332.png => 1332@1x.png} (100%) create mode 100644 imgs/icons/1332@2x.png rename imgs/icons/{1333.png => 1333@1x.png} (100%) create mode 100644 imgs/icons/1333@2x.png rename imgs/icons/{1334.png => 1334@1x.png} (100%) create mode 100644 imgs/icons/1334@2x.png rename imgs/icons/{1335.png => 1335@1x.png} (100%) create mode 100644 imgs/icons/1335@2x.png rename imgs/icons/{1336.png => 1336@1x.png} (100%) create mode 100644 imgs/icons/1336@2x.png rename imgs/icons/{1337.png => 1337@1x.png} (100%) create mode 100644 imgs/icons/1337@2x.png rename imgs/icons/{1338.png => 1338@1x.png} (100%) create mode 100644 imgs/icons/1338@2x.png rename imgs/icons/{1339.png => 1339@1x.png} (100%) create mode 100644 imgs/icons/1339@2x.png rename imgs/icons/{1340.png => 1340@1x.png} (100%) create mode 100644 imgs/icons/1340@2x.png rename imgs/icons/{1341.png => 1341@1x.png} (100%) create mode 100644 imgs/icons/1341@2x.png rename imgs/icons/{1342.png => 1342@1x.png} (100%) create mode 100644 imgs/icons/1342@2x.png rename imgs/icons/{1343.png => 1343@1x.png} (100%) create mode 100644 imgs/icons/1343@2x.png rename imgs/icons/{1344.png => 1344@1x.png} (100%) create mode 100644 imgs/icons/1344@2x.png rename imgs/icons/{1345.png => 1345@1x.png} (100%) create mode 100644 imgs/icons/1345@2x.png rename imgs/icons/{1346.png => 1346@1x.png} (100%) create mode 100644 imgs/icons/1346@2x.png rename imgs/icons/{1347.png => 1347@1x.png} (100%) create mode 100644 imgs/icons/1347@2x.png rename imgs/icons/{1348.png => 1348@1x.png} (100%) create mode 100644 imgs/icons/1348@2x.png rename imgs/icons/{1349.png => 1349@1x.png} (100%) create mode 100644 imgs/icons/1349@2x.png rename imgs/icons/{1350.png => 1350@1x.png} (100%) create mode 100644 imgs/icons/1350@2x.png rename imgs/icons/{1351.png => 1351@1x.png} (100%) create mode 100644 imgs/icons/1351@2x.png rename imgs/icons/{1352.png => 1352@1x.png} (100%) create mode 100644 imgs/icons/1352@2x.png rename imgs/icons/{1353.png => 1353@1x.png} (100%) create mode 100644 imgs/icons/1353@2x.png rename imgs/icons/{1356.png => 1356@1x.png} (100%) create mode 100644 imgs/icons/1356@2x.png rename imgs/icons/{1357.png => 1357@1x.png} (100%) create mode 100644 imgs/icons/1357@2x.png rename imgs/icons/{1358.png => 1358@1x.png} (100%) create mode 100644 imgs/icons/1358@2x.png rename imgs/icons/{1359.png => 1359@1x.png} (100%) create mode 100644 imgs/icons/1359@2x.png rename imgs/icons/{1360.png => 1360@1x.png} (100%) create mode 100644 imgs/icons/1360@2x.png rename imgs/icons/{1361.png => 1361@1x.png} (100%) create mode 100644 imgs/icons/1361@2x.png rename imgs/icons/{1362.png => 1362@1x.png} (100%) create mode 100644 imgs/icons/1362@2x.png rename imgs/icons/{1363.png => 1363@1x.png} (100%) create mode 100644 imgs/icons/1363@2x.png rename imgs/icons/{1364.png => 1364@1x.png} (100%) create mode 100644 imgs/icons/1364@2x.png rename imgs/icons/{1365.png => 1365@1x.png} (100%) create mode 100644 imgs/icons/1365@2x.png rename imgs/icons/{1366.png => 1366@1x.png} (100%) create mode 100644 imgs/icons/1366@2x.png rename imgs/icons/{1367.png => 1367@1x.png} (100%) create mode 100644 imgs/icons/1367@2x.png rename imgs/icons/{1368.png => 1368@1x.png} (100%) create mode 100644 imgs/icons/1368@2x.png rename imgs/icons/{1369.png => 1369@1x.png} (100%) create mode 100644 imgs/icons/1369@2x.png rename imgs/icons/{1370.png => 1370@1x.png} (100%) create mode 100644 imgs/icons/1370@2x.png rename imgs/icons/{1377.png => 1377@1x.png} (100%) create mode 100644 imgs/icons/1377@2x.png rename imgs/icons/{1378.png => 1378@1x.png} (100%) create mode 100644 imgs/icons/1378@2x.png rename imgs/icons/{1379.png => 1379@1x.png} (100%) create mode 100644 imgs/icons/1379@2x.png rename imgs/icons/{1380.png => 1380@1x.png} (100%) create mode 100644 imgs/icons/1380@2x.png rename imgs/icons/{1381.png => 1381@1x.png} (100%) create mode 100644 imgs/icons/1381@2x.png rename imgs/icons/{1382.png => 1382@1x.png} (100%) create mode 100644 imgs/icons/1382@2x.png rename imgs/icons/{1383.png => 1383@1x.png} (100%) create mode 100644 imgs/icons/1383@2x.png rename imgs/icons/{1384.png => 1384@1x.png} (100%) create mode 100644 imgs/icons/1384@2x.png rename imgs/icons/{1385.png => 1385@1x.png} (100%) create mode 100644 imgs/icons/1385@2x.png rename imgs/icons/{1386.png => 1386@1x.png} (100%) create mode 100644 imgs/icons/1386@2x.png rename imgs/icons/{1387.png => 1387@1x.png} (100%) create mode 100644 imgs/icons/1387@2x.png rename imgs/icons/{1388.png => 1388@1x.png} (100%) create mode 100644 imgs/icons/1388@2x.png rename imgs/icons/{1389.png => 1389@1x.png} (100%) create mode 100644 imgs/icons/1389@2x.png rename imgs/icons/{138.png => 138@1x.png} (100%) create mode 100644 imgs/icons/138@2x.png rename imgs/icons/{1390.png => 1390@1x.png} (100%) create mode 100644 imgs/icons/1390@2x.png rename imgs/icons/{1391.png => 1391@1x.png} (100%) create mode 100644 imgs/icons/1391@2x.png rename imgs/icons/{1392.png => 1392@1x.png} (100%) create mode 100644 imgs/icons/1392@2x.png rename imgs/icons/{1393.png => 1393@1x.png} (100%) create mode 100644 imgs/icons/1393@2x.png rename imgs/icons/{1394.png => 1394@1x.png} (100%) create mode 100644 imgs/icons/1394@2x.png rename imgs/icons/{1395.png => 1395@1x.png} (100%) create mode 100644 imgs/icons/1395@2x.png rename imgs/icons/{1396.png => 1396@1x.png} (100%) create mode 100644 imgs/icons/1396@2x.png rename imgs/icons/{1397.png => 1397@1x.png} (100%) create mode 100644 imgs/icons/1397@2x.png rename imgs/icons/{1398.png => 1398@1x.png} (100%) create mode 100644 imgs/icons/1398@2x.png rename imgs/icons/{1399.png => 1399@1x.png} (100%) create mode 100644 imgs/icons/1399@2x.png rename imgs/icons/{1400.png => 1400@1x.png} (100%) create mode 100644 imgs/icons/1400@2x.png rename imgs/icons/{1401.png => 1401@1x.png} (100%) create mode 100644 imgs/icons/1401@2x.png rename imgs/icons/{1405.png => 1405@1x.png} (100%) create mode 100644 imgs/icons/1405@2x.png rename imgs/icons/{1406.png => 1406@1x.png} (100%) create mode 100644 imgs/icons/1406@2x.png rename imgs/icons/{1432.png => 1432@1x.png} (100%) create mode 100644 imgs/icons/1432@2x.png rename imgs/icons/{1435.png => 1435@1x.png} (100%) create mode 100644 imgs/icons/1435@2x.png rename imgs/icons/{1436.png => 1436@1x.png} (100%) create mode 100644 imgs/icons/1436@2x.png rename imgs/icons/{1443.png => 1443@1x.png} (100%) create mode 100644 imgs/icons/1443@2x.png rename imgs/icons/{1444.png => 1444@1x.png} (100%) create mode 100644 imgs/icons/1444@2x.png rename imgs/icons/{1446.png => 1446@1x.png} (100%) create mode 100644 imgs/icons/1446@2x.png rename imgs/icons/{15.png => 15@1x.png} (100%) create mode 100644 imgs/icons/15@2x.png rename imgs/icons/{1639.png => 1639@1x.png} (100%) create mode 100644 imgs/icons/1639@2x.png rename imgs/icons/{1640.png => 1640@1x.png} (100%) create mode 100644 imgs/icons/1640@2x.png rename imgs/icons/{1641.png => 1641@1x.png} (100%) create mode 100644 imgs/icons/1641@2x.png rename imgs/icons/{1645.png => 1645@1x.png} (100%) create mode 100644 imgs/icons/1645@2x.png rename imgs/icons/{1656.png => 1656@1x.png} (100%) create mode 100644 imgs/icons/1656@2x.png rename imgs/icons/{1666.png => 1666@1x.png} (100%) create mode 100644 imgs/icons/1666@2x.png rename imgs/icons/{1668.png => 1668@1x.png} (100%) create mode 100644 imgs/icons/1668@2x.png rename imgs/icons/{168.png => 168@1x.png} (100%) create mode 100644 imgs/icons/168@2x.png rename imgs/icons/{169.png => 169@1x.png} (100%) create mode 100644 imgs/icons/169@2x.png rename imgs/icons/{16.png => 16@1x.png} (100%) create mode 100644 imgs/icons/16@2x.png rename imgs/icons/{170.png => 170@1x.png} (100%) create mode 100644 imgs/icons/170@2x.png rename imgs/icons/{1721.png => 1721@1x.png} (100%) create mode 100644 imgs/icons/1721@2x.png rename imgs/icons/{1722.png => 1722@1x.png} (100%) create mode 100644 imgs/icons/1722@2x.png rename imgs/icons/{1723.png => 1723@1x.png} (100%) create mode 100644 imgs/icons/1723@2x.png rename imgs/icons/{182.png => 182@1x.png} (100%) create mode 100644 imgs/icons/182@2x.png rename imgs/icons/{183.png => 183@1x.png} (100%) create mode 100644 imgs/icons/183@2x.png rename imgs/icons/{184.png => 184@1x.png} (100%) create mode 100644 imgs/icons/184@2x.png rename imgs/icons/{185.png => 185@1x.png} (100%) create mode 100644 imgs/icons/185@2x.png rename imgs/icons/{186.png => 186@1x.png} (100%) create mode 100644 imgs/icons/186@2x.png rename imgs/icons/{187.png => 187@1x.png} (100%) create mode 100644 imgs/icons/187@2x.png rename imgs/icons/{188.png => 188@1x.png} (100%) create mode 100644 imgs/icons/188@2x.png rename imgs/icons/{189.png => 189@1x.png} (100%) create mode 100644 imgs/icons/189@2x.png rename imgs/icons/{190.png => 190@1x.png} (100%) create mode 100644 imgs/icons/190@2x.png rename imgs/icons/{191.png => 191@1x.png} (100%) create mode 100644 imgs/icons/191@2x.png rename imgs/icons/{192.png => 192@1x.png} (100%) create mode 100644 imgs/icons/192@2x.png rename imgs/icons/{193.png => 193@1x.png} (100%) create mode 100644 imgs/icons/193@2x.png rename imgs/icons/{2028.png => 2028@1x.png} (100%) create mode 100644 imgs/icons/2028@2x.png rename imgs/icons/{2029.png => 2029@1x.png} (100%) create mode 100644 imgs/icons/2029@2x.png rename imgs/icons/{2030.png => 2030@1x.png} (100%) create mode 100644 imgs/icons/2030@2x.png rename imgs/icons/{2031.png => 2031@1x.png} (100%) create mode 100644 imgs/icons/2031@2x.png rename imgs/icons/{2037.png => 2037@1x.png} (100%) create mode 100644 imgs/icons/2037@2x.png rename imgs/icons/{2038.png => 2038@1x.png} (100%) create mode 100644 imgs/icons/2038@2x.png rename imgs/icons/{2039.png => 2039@1x.png} (100%) create mode 100644 imgs/icons/2039@2x.png rename imgs/icons/{2040.png => 2040@1x.png} (100%) create mode 100644 imgs/icons/2040@2x.png rename imgs/icons/{2041.png => 2041@1x.png} (100%) create mode 100644 imgs/icons/2041@2x.png rename imgs/icons/{2042.png => 2042@1x.png} (100%) create mode 100644 imgs/icons/2042@2x.png rename imgs/icons/{2053.png => 2053@1x.png} (100%) create mode 100644 imgs/icons/2053@2x.png rename imgs/icons/{2054.png => 2054@1x.png} (100%) create mode 100644 imgs/icons/2054@2x.png rename imgs/icons/{2060.png => 2060@1x.png} (100%) create mode 100644 imgs/icons/2060@2x.png rename imgs/icons/{2061.png => 2061@1x.png} (100%) create mode 100644 imgs/icons/2061@2x.png rename imgs/icons/{2062.png => 2062@1x.png} (100%) create mode 100644 imgs/icons/2062@2x.png rename imgs/icons/{2066.png => 2066@1x.png} (100%) create mode 100644 imgs/icons/2066@2x.png rename imgs/icons/{20939.png => 20939@1x.png} (100%) create mode 100644 imgs/icons/20939@2x.png rename imgs/icons/{2093.png => 2093@1x.png} (100%) create mode 100644 imgs/icons/2093@2x.png rename imgs/icons/{20940.png => 20940@1x.png} (100%) create mode 100644 imgs/icons/20940@2x.png rename imgs/icons/{20941.png => 20941@1x.png} (100%) create mode 100644 imgs/icons/20941@2x.png rename imgs/icons/{20942.png => 20942@1x.png} (100%) create mode 100644 imgs/icons/20942@2x.png rename imgs/icons/{20943.png => 20943@1x.png} (100%) create mode 100644 imgs/icons/20943@2x.png rename imgs/icons/{20944.png => 20944@1x.png} (100%) create mode 100644 imgs/icons/20944@2x.png rename imgs/icons/{20945.png => 20945@1x.png} (100%) create mode 100644 imgs/icons/20945@2x.png rename imgs/icons/{20946.png => 20946@1x.png} (100%) create mode 100644 imgs/icons/20946@2x.png rename imgs/icons/{20947.png => 20947@1x.png} (100%) create mode 100644 imgs/icons/20947@2x.png rename imgs/icons/{20948.png => 20948@1x.png} (100%) create mode 100644 imgs/icons/20948@2x.png rename imgs/icons/{20949.png => 20949@1x.png} (100%) create mode 100644 imgs/icons/20949@2x.png rename imgs/icons/{2094.png => 2094@1x.png} (100%) create mode 100644 imgs/icons/2094@2x.png rename imgs/icons/{20950.png => 20950@1x.png} (100%) create mode 100644 imgs/icons/20950@2x.png rename imgs/icons/{20951.png => 20951@1x.png} (100%) create mode 100644 imgs/icons/20951@2x.png rename imgs/icons/{20952.png => 20952@1x.png} (100%) create mode 100644 imgs/icons/20952@2x.png rename imgs/icons/{20953.png => 20953@1x.png} (100%) create mode 100644 imgs/icons/20953@2x.png rename imgs/icons/{20954.png => 20954@1x.png} (100%) create mode 100644 imgs/icons/20954@2x.png rename imgs/icons/{20955.png => 20955@1x.png} (100%) create mode 100644 imgs/icons/20955@2x.png rename imgs/icons/{20956.png => 20956@1x.png} (100%) create mode 100644 imgs/icons/20956@2x.png rename imgs/icons/{20957.png => 20957@1x.png} (100%) create mode 100644 imgs/icons/20957@2x.png rename imgs/icons/{20958.png => 20958@1x.png} (100%) create mode 100644 imgs/icons/20958@2x.png rename imgs/icons/{20959.png => 20959@1x.png} (100%) create mode 100644 imgs/icons/20959@2x.png rename imgs/icons/{2095.png => 2095@1x.png} (100%) create mode 100644 imgs/icons/2095@2x.png rename imgs/icons/{20966.png => 20966@1x.png} (100%) create mode 100644 imgs/icons/20966@2x.png rename imgs/icons/{20967.png => 20967@1x.png} (100%) create mode 100644 imgs/icons/20967@2x.png rename imgs/icons/{20968.png => 20968@1x.png} (100%) create mode 100644 imgs/icons/20968@2x.png rename imgs/icons/{20969.png => 20969@1x.png} (100%) create mode 100644 imgs/icons/20969@2x.png rename imgs/icons/{2096.png => 2096@1x.png} (100%) create mode 100644 imgs/icons/2096@2x.png rename imgs/icons/{20970.png => 20970@1x.png} (100%) create mode 100644 imgs/icons/20970@2x.png rename imgs/icons/{20971.png => 20971@1x.png} (100%) create mode 100644 imgs/icons/20971@2x.png rename imgs/icons/{20973.png => 20973@1x.png} (100%) create mode 100644 imgs/icons/20973@2x.png rename imgs/icons/{20974.png => 20974@1x.png} (100%) create mode 100644 imgs/icons/20974@2x.png rename imgs/icons/{20976.png => 20976@1x.png} (100%) create mode 100644 imgs/icons/20976@2x.png rename imgs/icons/{20977.png => 20977@1x.png} (100%) create mode 100644 imgs/icons/20977@2x.png rename imgs/icons/{21000.png => 21000@1x.png} (100%) create mode 100644 imgs/icons/21000@2x.png rename imgs/icons/{2100.png => 2100@1x.png} (100%) create mode 100644 imgs/icons/2100@2x.png rename imgs/icons/{2101.png => 2101@1x.png} (100%) create mode 100644 imgs/icons/2101@2x.png rename imgs/icons/{21025.png => 21025@1x.png} (100%) create mode 100644 imgs/icons/21025@2x.png rename imgs/icons/{21026.png => 21026@1x.png} (100%) create mode 100644 imgs/icons/21026@2x.png rename imgs/icons/{21027.png => 21027@1x.png} (100%) create mode 100644 imgs/icons/21027@2x.png rename imgs/icons/{21028.png => 21028@1x.png} (100%) create mode 100644 imgs/icons/21028@2x.png rename imgs/icons/{21029.png => 21029@1x.png} (100%) create mode 100644 imgs/icons/21029@2x.png rename imgs/icons/{2102.png => 2102@1x.png} (100%) create mode 100644 imgs/icons/2102@2x.png rename imgs/icons/{21030.png => 21030@1x.png} (100%) create mode 100644 imgs/icons/21030@2x.png rename imgs/icons/{21032.png => 21032@1x.png} (100%) create mode 100644 imgs/icons/21032@2x.png rename imgs/icons/{2103.png => 2103@1x.png} (100%) create mode 100644 imgs/icons/2103@2x.png rename imgs/icons/{21047.png => 21047@1x.png} (100%) create mode 100644 imgs/icons/21047@2x.png rename imgs/icons/{21048.png => 21048@1x.png} (100%) create mode 100644 imgs/icons/21048@2x.png rename imgs/icons/{2104.png => 2104@1x.png} (100%) create mode 100644 imgs/icons/2104@2x.png rename imgs/icons/{21057.png => 21057@1x.png} (100%) create mode 100644 imgs/icons/21057@2x.png rename imgs/icons/{21058.png => 21058@1x.png} (100%) create mode 100644 imgs/icons/21058@2x.png rename imgs/icons/{21059.png => 21059@1x.png} (100%) create mode 100644 imgs/icons/21059@2x.png rename imgs/icons/{2105.png => 2105@1x.png} (100%) create mode 100644 imgs/icons/2105@2x.png rename imgs/icons/{21060.png => 21060@1x.png} (100%) create mode 100644 imgs/icons/21060@2x.png rename imgs/icons/{21061.png => 21061@1x.png} (100%) create mode 100644 imgs/icons/21061@2x.png rename imgs/icons/{21062.png => 21062@1x.png} (100%) create mode 100644 imgs/icons/21062@2x.png rename imgs/icons/{21063.png => 21063@1x.png} (100%) create mode 100644 imgs/icons/21063@2x.png rename imgs/icons/{21064.png => 21064@1x.png} (100%) create mode 100644 imgs/icons/21064@2x.png rename imgs/icons/{21065.png => 21065@1x.png} (100%) create mode 100644 imgs/icons/21065@2x.png rename imgs/icons/{21066.png => 21066@1x.png} (100%) create mode 100644 imgs/icons/21066@2x.png rename imgs/icons/{2106.png => 2106@1x.png} (100%) create mode 100644 imgs/icons/2106@2x.png rename imgs/icons/{21074.png => 21074@1x.png} (100%) create mode 100644 imgs/icons/21074@2x.png rename imgs/icons/{21075.png => 21075@1x.png} (100%) create mode 100644 imgs/icons/21075@2x.png rename imgs/icons/{21078.png => 21078@1x.png} (100%) create mode 100644 imgs/icons/21078@2x.png rename imgs/icons/{21084.png => 21084@1x.png} (100%) create mode 100644 imgs/icons/21084@2x.png rename imgs/icons/{21085.png => 21085@1x.png} (100%) create mode 100644 imgs/icons/21085@2x.png rename imgs/icons/{21086.png => 21086@1x.png} (100%) create mode 100644 imgs/icons/21086@2x.png rename imgs/icons/{21095.png => 21095@1x.png} (100%) create mode 100644 imgs/icons/21095@2x.png rename imgs/icons/{21096.png => 21096@1x.png} (100%) create mode 100644 imgs/icons/21096@2x.png rename imgs/icons/{21097.png => 21097@1x.png} (100%) create mode 100644 imgs/icons/21097@2x.png rename imgs/icons/{21098.png => 21098@1x.png} (100%) create mode 100644 imgs/icons/21098@2x.png rename imgs/icons/{21170.png => 21170@1x.png} (100%) create mode 100644 imgs/icons/21170@2x.png rename imgs/icons/{21186.png => 21186@1x.png} (100%) create mode 100644 imgs/icons/21186@2x.png rename imgs/icons/{21204.png => 21204@1x.png} (100%) create mode 100644 imgs/icons/21204@2x.png rename imgs/icons/{21275.png => 21275@1x.png} (100%) create mode 100644 imgs/icons/21275@2x.png rename imgs/icons/{21335.png => 21335@1x.png} (100%) create mode 100644 imgs/icons/21335@2x.png rename imgs/icons/{21336.png => 21336@1x.png} (100%) create mode 100644 imgs/icons/21336@2x.png rename imgs/icons/{21378.png => 21378@1x.png} (100%) create mode 100644 imgs/icons/21378@2x.png rename imgs/icons/{21379.png => 21379@1x.png} (100%) create mode 100644 imgs/icons/21379@2x.png rename imgs/icons/{21380.png => 21380@1x.png} (100%) create mode 100644 imgs/icons/21380@2x.png rename imgs/icons/{21381.png => 21381@1x.png} (100%) create mode 100644 imgs/icons/21381@2x.png rename imgs/icons/{21382.png => 21382@1x.png} (100%) create mode 100644 imgs/icons/21382@2x.png rename imgs/icons/{21383.png => 21383@1x.png} (100%) create mode 100644 imgs/icons/21383@2x.png rename imgs/icons/{21408.png => 21408@1x.png} (100%) create mode 100644 imgs/icons/21408@2x.png rename imgs/icons/{21409.png => 21409@1x.png} (100%) create mode 100644 imgs/icons/21409@2x.png rename imgs/icons/{21417.png => 21417@1x.png} (100%) create mode 100644 imgs/icons/21417@2x.png rename imgs/icons/{21418.png => 21418@1x.png} (100%) create mode 100644 imgs/icons/21418@2x.png rename imgs/icons/{21419.png => 21419@1x.png} (100%) create mode 100644 imgs/icons/21419@2x.png rename imgs/icons/{21420.png => 21420@1x.png} (100%) create mode 100644 imgs/icons/21420@2x.png rename imgs/icons/{21421.png => 21421@1x.png} (100%) create mode 100644 imgs/icons/21421@2x.png rename imgs/icons/{21426.png => 21426@1x.png} (100%) create mode 100644 imgs/icons/21426@2x.png rename imgs/icons/{21428.png => 21428@1x.png} (100%) create mode 100644 imgs/icons/21428@2x.png rename imgs/icons/{21437.png => 21437@1x.png} (100%) create mode 100644 imgs/icons/21437@2x.png rename imgs/icons/{21439.png => 21439@1x.png} (100%) create mode 100644 imgs/icons/21439@2x.png rename imgs/icons/{21440.png => 21440@1x.png} (100%) create mode 100644 imgs/icons/21440@2x.png rename imgs/icons/{21441.png => 21441@1x.png} (100%) create mode 100644 imgs/icons/21441@2x.png rename imgs/icons/{21442.png => 21442@1x.png} (100%) create mode 100644 imgs/icons/21442@2x.png rename imgs/icons/{21481.png => 21481@1x.png} (100%) create mode 100644 imgs/icons/21481@2x.png rename imgs/icons/{21482.png => 21482@1x.png} (100%) create mode 100644 imgs/icons/21482@2x.png rename imgs/icons/{21483.png => 21483@1x.png} (100%) create mode 100644 imgs/icons/21483@2x.png rename imgs/icons/{21484.png => 21484@1x.png} (100%) create mode 100644 imgs/icons/21484@2x.png rename imgs/icons/{21485.png => 21485@1x.png} (100%) create mode 100644 imgs/icons/21485@2x.png rename imgs/icons/{21486.png => 21486@1x.png} (100%) create mode 100644 imgs/icons/21486@2x.png rename imgs/icons/{21487.png => 21487@1x.png} (100%) create mode 100644 imgs/icons/21487@2x.png rename imgs/icons/{21489.png => 21489@1x.png} (100%) create mode 100644 imgs/icons/21489@2x.png rename imgs/icons/{21513.png => 21513@1x.png} (100%) create mode 100644 imgs/icons/21513@2x.png rename imgs/icons/{21530.png => 21530@1x.png} (100%) create mode 100644 imgs/icons/21530@2x.png rename imgs/icons/{21531.png => 21531@1x.png} (100%) create mode 100644 imgs/icons/21531@2x.png rename imgs/icons/{21532.png => 21532@1x.png} (100%) create mode 100644 imgs/icons/21532@2x.png rename imgs/icons/{21533.png => 21533@1x.png} (100%) create mode 100644 imgs/icons/21533@2x.png rename imgs/icons/{21534.png => 21534@1x.png} (100%) create mode 100644 imgs/icons/21534@2x.png rename imgs/icons/{21561.png => 21561@1x.png} (100%) create mode 100644 imgs/icons/21561@2x.png rename imgs/icons/{21564.png => 21564@1x.png} (100%) create mode 100644 imgs/icons/21564@2x.png rename imgs/icons/{21565.png => 21565@1x.png} (100%) create mode 100644 imgs/icons/21565@2x.png rename imgs/icons/{21566.png => 21566@1x.png} (100%) create mode 100644 imgs/icons/21566@2x.png rename imgs/icons/{21567.png => 21567@1x.png} (100%) create mode 100644 imgs/icons/21567@2x.png rename imgs/icons/{21568.png => 21568@1x.png} (100%) create mode 100644 imgs/icons/21568@2x.png rename imgs/icons/{21569.png => 21569@1x.png} (100%) create mode 100644 imgs/icons/21569@2x.png rename imgs/icons/{21570.png => 21570@1x.png} (100%) create mode 100644 imgs/icons/21570@2x.png rename imgs/icons/{21571.png => 21571@1x.png} (100%) create mode 100644 imgs/icons/21571@2x.png rename imgs/icons/{21574.png => 21574@1x.png} (100%) create mode 100644 imgs/icons/21574@2x.png rename imgs/icons/{21575.png => 21575@1x.png} (100%) create mode 100644 imgs/icons/21575@2x.png rename imgs/icons/{21581.png => 21581@1x.png} (100%) create mode 100644 imgs/icons/21581@2x.png rename imgs/icons/{21593.png => 21593@1x.png} (100%) create mode 100644 imgs/icons/21593@2x.png rename imgs/icons/{21594.png => 21594@1x.png} (100%) create mode 100644 imgs/icons/21594@2x.png rename imgs/icons/{21595.png => 21595@1x.png} (100%) create mode 100644 imgs/icons/21595@2x.png rename imgs/icons/{21596.png => 21596@1x.png} (100%) create mode 100644 imgs/icons/21596@2x.png rename imgs/icons/{21597.png => 21597@1x.png} (100%) create mode 100644 imgs/icons/21597@2x.png rename imgs/icons/{21598.png => 21598@1x.png} (100%) create mode 100644 imgs/icons/21598@2x.png rename imgs/icons/{21599.png => 21599@1x.png} (100%) create mode 100644 imgs/icons/21599@2x.png rename imgs/icons/{21601.png => 21601@1x.png} (100%) create mode 100644 imgs/icons/21601@2x.png rename imgs/icons/{21602.png => 21602@1x.png} (100%) create mode 100644 imgs/icons/21602@2x.png rename imgs/icons/{21603.png => 21603@1x.png} (100%) create mode 100644 imgs/icons/21603@2x.png rename imgs/icons/{21604.png => 21604@1x.png} (100%) create mode 100644 imgs/icons/21604@2x.png rename imgs/icons/{21605.png => 21605@1x.png} (100%) create mode 100644 imgs/icons/21605@2x.png rename imgs/icons/{21607.png => 21607@1x.png} (100%) create mode 100644 imgs/icons/21607@2x.png rename imgs/icons/{21608.png => 21608@1x.png} (100%) create mode 100644 imgs/icons/21608@2x.png rename imgs/icons/{21609.png => 21609@1x.png} (100%) create mode 100644 imgs/icons/21609@2x.png rename imgs/icons/{21610.png => 21610@1x.png} (100%) create mode 100644 imgs/icons/21610@2x.png rename imgs/icons/{21611.png => 21611@1x.png} (100%) create mode 100644 imgs/icons/21611@2x.png rename imgs/icons/{21618.png => 21618@1x.png} (100%) create mode 100644 imgs/icons/21618@2x.png rename imgs/icons/{21620.png => 21620@1x.png} (100%) create mode 100644 imgs/icons/21620@2x.png rename imgs/icons/{21621.png => 21621@1x.png} (100%) create mode 100644 imgs/icons/21621@2x.png rename imgs/icons/{21622.png => 21622@1x.png} (100%) create mode 100644 imgs/icons/21622@2x.png rename imgs/icons/{21683.png => 21683@1x.png} (100%) create mode 100644 imgs/icons/21683@2x.png rename imgs/icons/{21684.png => 21684@1x.png} (100%) create mode 100644 imgs/icons/21684@2x.png rename imgs/icons/{21685.png => 21685@1x.png} (100%) create mode 100644 imgs/icons/21685@2x.png rename imgs/icons/{21686.png => 21686@1x.png} (100%) create mode 100644 imgs/icons/21686@2x.png rename imgs/icons/{21687.png => 21687@1x.png} (100%) create mode 100644 imgs/icons/21687@2x.png rename imgs/icons/{21688.png => 21688@1x.png} (100%) create mode 100644 imgs/icons/21688@2x.png rename imgs/icons/{21689.png => 21689@1x.png} (100%) create mode 100644 imgs/icons/21689@2x.png rename imgs/icons/{21690.png => 21690@1x.png} (100%) create mode 100644 imgs/icons/21690@2x.png rename imgs/icons/{21691.png => 21691@1x.png} (100%) create mode 100644 imgs/icons/21691@2x.png rename imgs/icons/{21692.png => 21692@1x.png} (100%) create mode 100644 imgs/icons/21692@2x.png rename imgs/icons/{21693.png => 21693@1x.png} (100%) create mode 100644 imgs/icons/21693@2x.png rename imgs/icons/{21694.png => 21694@1x.png} (100%) create mode 100644 imgs/icons/21694@2x.png rename imgs/icons/{21695.png => 21695@1x.png} (100%) create mode 100644 imgs/icons/21695@2x.png rename imgs/icons/{21696.png => 21696@1x.png} (100%) create mode 100644 imgs/icons/21696@2x.png rename imgs/icons/{21698.png => 21698@1x.png} (100%) create mode 100644 imgs/icons/21698@2x.png rename imgs/icons/{21699.png => 21699@1x.png} (100%) create mode 100644 imgs/icons/21699@2x.png rename imgs/icons/{21700.png => 21700@1x.png} (100%) create mode 100644 imgs/icons/21700@2x.png rename imgs/icons/{21701.png => 21701@1x.png} (100%) create mode 100644 imgs/icons/21701@2x.png rename imgs/icons/{21702.png => 21702@1x.png} (100%) create mode 100644 imgs/icons/21702@2x.png rename imgs/icons/{21703.png => 21703@1x.png} (100%) create mode 100644 imgs/icons/21703@2x.png rename imgs/icons/{21704.png => 21704@1x.png} (100%) create mode 100644 imgs/icons/21704@2x.png rename imgs/icons/{21705.png => 21705@1x.png} (100%) create mode 100644 imgs/icons/21705@2x.png rename imgs/icons/{21706.png => 21706@1x.png} (100%) create mode 100644 imgs/icons/21706@2x.png rename imgs/icons/{21707.png => 21707@1x.png} (100%) create mode 100644 imgs/icons/21707@2x.png rename imgs/icons/{21725.png => 21725@1x.png} (100%) create mode 100644 imgs/icons/21725@2x.png rename imgs/icons/{21729.png => 21729@1x.png} (100%) create mode 100644 imgs/icons/21729@2x.png rename imgs/icons/{21730.png => 21730@1x.png} (100%) create mode 100644 imgs/icons/21730@2x.png rename imgs/icons/{21731.png => 21731@1x.png} (100%) create mode 100644 imgs/icons/21731@2x.png rename imgs/icons/{21741.png => 21741@1x.png} (100%) create mode 100644 imgs/icons/21741@2x.png rename imgs/icons/{21742.png => 21742@1x.png} (100%) create mode 100644 imgs/icons/21742@2x.png rename imgs/icons/{21743.png => 21743@1x.png} (100%) create mode 100644 imgs/icons/21743@2x.png rename imgs/icons/{2176.png => 2176@1x.png} (100%) create mode 100644 imgs/icons/2176@2x.png rename imgs/icons/{21774.png => 21774@1x.png} (100%) create mode 100644 imgs/icons/21774@2x.png rename imgs/icons/{2177.png => 2177@1x.png} (100%) create mode 100644 imgs/icons/2177@2x.png rename imgs/icons/{21783.png => 21783@1x.png} (100%) create mode 100644 imgs/icons/21783@2x.png rename imgs/icons/{21784.png => 21784@1x.png} (100%) create mode 100644 imgs/icons/21784@2x.png rename imgs/icons/{21785.png => 21785@1x.png} (100%) create mode 100644 imgs/icons/21785@2x.png rename imgs/icons/{21787.png => 21787@1x.png} (100%) create mode 100644 imgs/icons/21787@2x.png rename imgs/icons/{21788.png => 21788@1x.png} (100%) create mode 100644 imgs/icons/21788@2x.png rename imgs/icons/{21789.png => 21789@1x.png} (100%) create mode 100644 imgs/icons/21789@2x.png rename imgs/icons/{2178.png => 2178@1x.png} (100%) create mode 100644 imgs/icons/2178@2x.png rename imgs/icons/{21790.png => 21790@1x.png} (100%) create mode 100644 imgs/icons/21790@2x.png rename imgs/icons/{21791.png => 21791@1x.png} (100%) create mode 100644 imgs/icons/21791@2x.png rename imgs/icons/{21792.png => 21792@1x.png} (100%) create mode 100644 imgs/icons/21792@2x.png rename imgs/icons/{21793.png => 21793@1x.png} (100%) create mode 100644 imgs/icons/21793@2x.png rename imgs/icons/{21794.png => 21794@1x.png} (100%) create mode 100644 imgs/icons/21794@2x.png rename imgs/icons/{21795.png => 21795@1x.png} (100%) create mode 100644 imgs/icons/21795@2x.png rename imgs/icons/{21796.png => 21796@1x.png} (100%) create mode 100644 imgs/icons/21796@2x.png rename imgs/icons/{21797.png => 21797@1x.png} (100%) create mode 100644 imgs/icons/21797@2x.png rename imgs/icons/{21798.png => 21798@1x.png} (100%) create mode 100644 imgs/icons/21798@2x.png rename imgs/icons/{21799.png => 21799@1x.png} (100%) create mode 100644 imgs/icons/21799@2x.png rename imgs/icons/{2179.png => 2179@1x.png} (100%) create mode 100644 imgs/icons/2179@2x.png rename imgs/icons/{21800.png => 21800@1x.png} (100%) create mode 100644 imgs/icons/21800@2x.png rename imgs/icons/{21801.png => 21801@1x.png} (100%) create mode 100644 imgs/icons/21801@2x.png rename imgs/icons/{2180.png => 2180@1x.png} (100%) create mode 100644 imgs/icons/2180@2x.png rename imgs/icons/{2181.png => 2181@1x.png} (100%) create mode 100644 imgs/icons/2181@2x.png rename imgs/icons/{21829.png => 21829@1x.png} (100%) create mode 100644 imgs/icons/21829@2x.png rename imgs/icons/{2182.png => 2182@1x.png} (100%) create mode 100644 imgs/icons/2182@2x.png rename imgs/icons/{21832.png => 21832@1x.png} (100%) create mode 100644 imgs/icons/21832@2x.png rename imgs/icons/{21833.png => 21833@1x.png} (100%) create mode 100644 imgs/icons/21833@2x.png rename imgs/icons/{21835.png => 21835@1x.png} (100%) create mode 100644 imgs/icons/21835@2x.png rename imgs/icons/{21839.png => 21839@1x.png} (100%) create mode 100644 imgs/icons/21839@2x.png rename imgs/icons/{2183.png => 2183@1x.png} (100%) create mode 100644 imgs/icons/2183@2x.png rename imgs/icons/{21840.png => 21840@1x.png} (100%) create mode 100644 imgs/icons/21840@2x.png rename imgs/icons/{21841.png => 21841@1x.png} (100%) create mode 100644 imgs/icons/21841@2x.png rename imgs/icons/{21843.png => 21843@1x.png} (100%) create mode 100644 imgs/icons/21843@2x.png rename imgs/icons/{21844.png => 21844@1x.png} (100%) create mode 100644 imgs/icons/21844@2x.png rename imgs/icons/{2184.png => 2184@1x.png} (100%) create mode 100644 imgs/icons/2184@2x.png rename imgs/icons/{2185.png => 2185@1x.png} (100%) create mode 100644 imgs/icons/2185@2x.png rename imgs/icons/{21860.png => 21860@1x.png} (100%) create mode 100644 imgs/icons/21860@2x.png rename imgs/icons/{2186.png => 2186@1x.png} (100%) create mode 100644 imgs/icons/2186@2x.png rename imgs/icons/{2187.png => 2187@1x.png} (100%) create mode 100644 imgs/icons/2187@2x.png rename imgs/icons/{2188.png => 2188@1x.png} (100%) create mode 100644 imgs/icons/2188@2x.png rename imgs/icons/{21891.png => 21891@1x.png} (100%) create mode 100644 imgs/icons/21891@2x.png rename imgs/icons/{21898.png => 21898@1x.png} (100%) create mode 100644 imgs/icons/21898@2x.png rename imgs/icons/{2189.png => 2189@1x.png} (100%) create mode 100644 imgs/icons/2189@2x.png rename imgs/icons/{21903.png => 21903@1x.png} (100%) create mode 100644 imgs/icons/21903@2x.png rename imgs/icons/{21904.png => 21904@1x.png} (100%) create mode 100644 imgs/icons/21904@2x.png rename imgs/icons/{21905.png => 21905@1x.png} (100%) create mode 100644 imgs/icons/21905@2x.png rename imgs/icons/{21906.png => 21906@1x.png} (100%) create mode 100644 imgs/icons/21906@2x.png rename imgs/icons/{21907.png => 21907@1x.png} (100%) create mode 100644 imgs/icons/21907@2x.png rename imgs/icons/{2190.png => 2190@1x.png} (100%) create mode 100644 imgs/icons/2190@2x.png rename imgs/icons/{21916.png => 21916@1x.png} (100%) create mode 100644 imgs/icons/21916@2x.png rename imgs/icons/{21917.png => 21917@1x.png} (100%) create mode 100644 imgs/icons/21917@2x.png rename imgs/icons/{21918.png => 21918@1x.png} (100%) create mode 100644 imgs/icons/21918@2x.png rename imgs/icons/{21919.png => 21919@1x.png} (100%) create mode 100644 imgs/icons/21919@2x.png rename imgs/icons/{2191.png => 2191@1x.png} (100%) create mode 100644 imgs/icons/2191@2x.png rename imgs/icons/{21920.png => 21920@1x.png} (100%) create mode 100644 imgs/icons/21920@2x.png rename imgs/icons/{21921.png => 21921@1x.png} (100%) create mode 100644 imgs/icons/21921@2x.png rename imgs/icons/{21922.png => 21922@1x.png} (100%) create mode 100644 imgs/icons/21922@2x.png rename imgs/icons/{21923.png => 21923@1x.png} (100%) create mode 100644 imgs/icons/21923@2x.png rename imgs/icons/{21924.png => 21924@1x.png} (100%) create mode 100644 imgs/icons/21924@2x.png rename imgs/icons/{21925.png => 21925@1x.png} (100%) create mode 100644 imgs/icons/21925@2x.png rename imgs/icons/{21926.png => 21926@1x.png} (100%) create mode 100644 imgs/icons/21926@2x.png rename imgs/icons/{21927.png => 21927@1x.png} (100%) create mode 100644 imgs/icons/21927@2x.png rename imgs/icons/{21928.png => 21928@1x.png} (100%) create mode 100644 imgs/icons/21928@2x.png rename imgs/icons/{2192.png => 2192@1x.png} (100%) create mode 100644 imgs/icons/2192@2x.png rename imgs/icons/{2193.png => 2193@1x.png} (100%) create mode 100644 imgs/icons/2193@2x.png rename imgs/icons/{2194.png => 2194@1x.png} (100%) create mode 100644 imgs/icons/2194@2x.png rename imgs/icons/{2195.png => 2195@1x.png} (100%) create mode 100644 imgs/icons/2195@2x.png rename imgs/icons/{2196.png => 2196@1x.png} (100%) create mode 100644 imgs/icons/2196@2x.png rename imgs/icons/{2197.png => 2197@1x.png} (100%) create mode 100644 imgs/icons/2197@2x.png rename imgs/icons/{21980.png => 21980@1x.png} (100%) create mode 100644 imgs/icons/21980@2x.png rename imgs/icons/{21981.png => 21981@1x.png} (100%) create mode 100644 imgs/icons/21981@2x.png rename imgs/icons/{21982.png => 21982@1x.png} (100%) create mode 100644 imgs/icons/21982@2x.png rename imgs/icons/{21983.png => 21983@1x.png} (100%) create mode 100644 imgs/icons/21983@2x.png rename imgs/icons/{21984.png => 21984@1x.png} (100%) create mode 100644 imgs/icons/21984@2x.png rename imgs/icons/{21985.png => 21985@1x.png} (100%) create mode 100644 imgs/icons/21985@2x.png rename imgs/icons/{21986.png => 21986@1x.png} (100%) create mode 100644 imgs/icons/21986@2x.png rename imgs/icons/{21987.png => 21987@1x.png} (100%) create mode 100644 imgs/icons/21987@2x.png rename imgs/icons/{21988.png => 21988@1x.png} (100%) create mode 100644 imgs/icons/21988@2x.png rename imgs/icons/{21989.png => 21989@1x.png} (100%) create mode 100644 imgs/icons/21989@2x.png rename imgs/icons/{2198.png => 2198@1x.png} (100%) create mode 100644 imgs/icons/2198@2x.png rename imgs/icons/{21990.png => 21990@1x.png} (100%) create mode 100644 imgs/icons/21990@2x.png rename imgs/icons/{21991.png => 21991@1x.png} (100%) create mode 100644 imgs/icons/21991@2x.png rename imgs/icons/{21992.png => 21992@1x.png} (100%) create mode 100644 imgs/icons/21992@2x.png rename imgs/icons/{21993.png => 21993@1x.png} (100%) create mode 100644 imgs/icons/21993@2x.png rename imgs/icons/{21994.png => 21994@1x.png} (100%) create mode 100644 imgs/icons/21994@2x.png rename imgs/icons/{21995.png => 21995@1x.png} (100%) create mode 100644 imgs/icons/21995@2x.png rename imgs/icons/{21996.png => 21996@1x.png} (100%) create mode 100644 imgs/icons/21996@2x.png rename imgs/icons/{21997.png => 21997@1x.png} (100%) create mode 100644 imgs/icons/21997@2x.png rename imgs/icons/{21998.png => 21998@1x.png} (100%) create mode 100644 imgs/icons/21998@2x.png rename imgs/icons/{21999.png => 21999@1x.png} (100%) create mode 100644 imgs/icons/21999@2x.png rename imgs/icons/{2199.png => 2199@1x.png} (100%) create mode 100644 imgs/icons/2199@2x.png rename imgs/icons/{21.png => 21@1x.png} (100%) create mode 100644 imgs/icons/21@2x.png rename imgs/icons/{22000.png => 22000@1x.png} (100%) create mode 100644 imgs/icons/22000@2x.png rename imgs/icons/{22001.png => 22001@1x.png} (100%) create mode 100644 imgs/icons/22001@2x.png rename imgs/icons/{22002.png => 22002@1x.png} (100%) create mode 100644 imgs/icons/22002@2x.png rename imgs/icons/{22003.png => 22003@1x.png} (100%) create mode 100644 imgs/icons/22003@2x.png rename imgs/icons/{22004.png => 22004@1x.png} (100%) create mode 100644 imgs/icons/22004@2x.png rename imgs/icons/{22005.png => 22005@1x.png} (100%) create mode 100644 imgs/icons/22005@2x.png rename imgs/icons/{22006.png => 22006@1x.png} (100%) create mode 100644 imgs/icons/22006@2x.png rename imgs/icons/{22007.png => 22007@1x.png} (100%) create mode 100644 imgs/icons/22007@2x.png rename imgs/icons/{22008.png => 22008@1x.png} (100%) create mode 100644 imgs/icons/22008@2x.png rename imgs/icons/{22009.png => 22009@1x.png} (100%) create mode 100644 imgs/icons/22009@2x.png rename imgs/icons/{2200.png => 2200@1x.png} (100%) create mode 100644 imgs/icons/2200@2x.png rename imgs/icons/{22010.png => 22010@1x.png} (100%) create mode 100644 imgs/icons/22010@2x.png rename imgs/icons/{22011.png => 22011@1x.png} (100%) create mode 100644 imgs/icons/22011@2x.png rename imgs/icons/{22012.png => 22012@1x.png} (100%) create mode 100644 imgs/icons/22012@2x.png rename imgs/icons/{22013.png => 22013@1x.png} (100%) create mode 100644 imgs/icons/22013@2x.png rename imgs/icons/{22014.png => 22014@1x.png} (100%) create mode 100644 imgs/icons/22014@2x.png rename imgs/icons/{22016.png => 22016@1x.png} (100%) create mode 100644 imgs/icons/22016@2x.png rename imgs/icons/{22018.png => 22018@1x.png} (100%) create mode 100644 imgs/icons/22018@2x.png rename imgs/icons/{2201.png => 2201@1x.png} (100%) create mode 100644 imgs/icons/2201@2x.png rename imgs/icons/{22020.png => 22020@1x.png} (100%) create mode 100644 imgs/icons/22020@2x.png rename imgs/icons/{22029.png => 22029@1x.png} (100%) create mode 100644 imgs/icons/22029@2x.png rename imgs/icons/{2202.png => 2202@1x.png} (100%) create mode 100644 imgs/icons/2202@2x.png rename imgs/icons/{22030.png => 22030@1x.png} (100%) create mode 100644 imgs/icons/22030@2x.png rename imgs/icons/{22031.png => 22031@1x.png} (100%) create mode 100644 imgs/icons/22031@2x.png rename imgs/icons/{22034.png => 22034@1x.png} (100%) create mode 100644 imgs/icons/22034@2x.png rename imgs/icons/{22036.png => 22036@1x.png} (100%) create mode 100644 imgs/icons/22036@2x.png rename imgs/icons/{2203.png => 2203@1x.png} (100%) create mode 100644 imgs/icons/2203@2x.png rename imgs/icons/{22041.png => 22041@1x.png} (100%) create mode 100644 imgs/icons/22041@2x.png rename imgs/icons/{2204.png => 2204@1x.png} (100%) create mode 100644 imgs/icons/2204@2x.png rename imgs/icons/{2206.png => 2206@1x.png} (100%) create mode 100644 imgs/icons/2206@2x.png rename imgs/icons/{2209.png => 2209@1x.png} (100%) create mode 100644 imgs/icons/2209@2x.png rename imgs/icons/{2210.png => 2210@1x.png} (100%) create mode 100644 imgs/icons/2210@2x.png rename imgs/icons/{2211.png => 2211@1x.png} (100%) create mode 100644 imgs/icons/2211@2x.png rename imgs/icons/{2212.png => 2212@1x.png} (100%) create mode 100644 imgs/icons/2212@2x.png rename imgs/icons/{2213.png => 2213@1x.png} (100%) create mode 100644 imgs/icons/2213@2x.png rename imgs/icons/{2214.png => 2214@1x.png} (100%) create mode 100644 imgs/icons/2214@2x.png rename imgs/icons/{2215.png => 2215@1x.png} (100%) create mode 100644 imgs/icons/2215@2x.png rename imgs/icons/{2216.png => 2216@1x.png} (100%) create mode 100644 imgs/icons/2216@2x.png rename imgs/icons/{2217.png => 2217@1x.png} (100%) create mode 100644 imgs/icons/2217@2x.png rename imgs/icons/{2218.png => 2218@1x.png} (100%) create mode 100644 imgs/icons/2218@2x.png rename imgs/icons/{2219.png => 2219@1x.png} (100%) create mode 100644 imgs/icons/2219@2x.png rename imgs/icons/{2220.png => 2220@1x.png} (100%) create mode 100644 imgs/icons/2220@2x.png rename imgs/icons/{2221.png => 2221@1x.png} (100%) create mode 100644 imgs/icons/2221@2x.png rename imgs/icons/{2222.png => 2222@1x.png} (100%) create mode 100644 imgs/icons/2222@2x.png rename imgs/icons/{2224.png => 2224@1x.png} (100%) create mode 100644 imgs/icons/2224@2x.png rename imgs/icons/{2225.png => 2225@1x.png} (100%) create mode 100644 imgs/icons/2225@2x.png rename imgs/icons/{2226.png => 2226@1x.png} (100%) create mode 100644 imgs/icons/2226@2x.png rename imgs/icons/{2227.png => 2227@1x.png} (100%) create mode 100644 imgs/icons/2227@2x.png rename imgs/icons/{2228.png => 2228@1x.png} (100%) create mode 100644 imgs/icons/2228@2x.png rename imgs/icons/{2229.png => 2229@1x.png} (100%) create mode 100644 imgs/icons/2229@2x.png rename imgs/icons/{2230.png => 2230@1x.png} (100%) create mode 100644 imgs/icons/2230@2x.png rename imgs/icons/{2231.png => 2231@1x.png} (100%) create mode 100644 imgs/icons/2231@2x.png rename imgs/icons/{2232.png => 2232@1x.png} (100%) create mode 100644 imgs/icons/2232@2x.png rename imgs/icons/{2233.png => 2233@1x.png} (100%) create mode 100644 imgs/icons/2233@2x.png rename imgs/icons/{2234.png => 2234@1x.png} (100%) create mode 100644 imgs/icons/2234@2x.png rename imgs/icons/{2244.png => 2244@1x.png} (100%) create mode 100644 imgs/icons/2244@2x.png rename imgs/icons/{22.png => 22@1x.png} (100%) create mode 100644 imgs/icons/22@2x.png rename imgs/icons/{2302.png => 2302@1x.png} (100%) create mode 100644 imgs/icons/2302@2x.png rename imgs/icons/{2304.png => 2304@1x.png} (100%) create mode 100644 imgs/icons/2304@2x.png rename imgs/icons/{2309.png => 2309@1x.png} (100%) create mode 100644 imgs/icons/2309@2x.png rename imgs/icons/{230.png => 230@1x.png} (100%) create mode 100644 imgs/icons/230@2x.png rename imgs/icons/{2310.png => 2310@1x.png} (100%) create mode 100644 imgs/icons/2310@2x.png rename imgs/icons/{2311.png => 2311@1x.png} (100%) create mode 100644 imgs/icons/2311@2x.png rename imgs/icons/{2312.png => 2312@1x.png} (100%) create mode 100644 imgs/icons/2312@2x.png rename imgs/icons/{2313.png => 2313@1x.png} (100%) create mode 100644 imgs/icons/2313@2x.png rename imgs/icons/{2314.png => 2314@1x.png} (100%) create mode 100644 imgs/icons/2314@2x.png rename imgs/icons/{2315.png => 2315@1x.png} (100%) create mode 100644 imgs/icons/2315@2x.png rename imgs/icons/{2316.png => 2316@1x.png} (100%) create mode 100644 imgs/icons/2316@2x.png rename imgs/icons/{2317.png => 2317@1x.png} (100%) create mode 100644 imgs/icons/2317@2x.png rename imgs/icons/{2318.png => 2318@1x.png} (100%) create mode 100644 imgs/icons/2318@2x.png rename imgs/icons/{2319.png => 2319@1x.png} (100%) create mode 100644 imgs/icons/2319@2x.png rename imgs/icons/{231.png => 231@1x.png} (100%) create mode 100644 imgs/icons/231@2x.png rename imgs/icons/{2320.png => 2320@1x.png} (100%) create mode 100644 imgs/icons/2320@2x.png rename imgs/icons/{2321.png => 2321@1x.png} (100%) create mode 100644 imgs/icons/2321@2x.png rename imgs/icons/{2322.png => 2322@1x.png} (100%) create mode 100644 imgs/icons/2322@2x.png rename imgs/icons/{2323.png => 2323@1x.png} (100%) create mode 100644 imgs/icons/2323@2x.png rename imgs/icons/{2324.png => 2324@1x.png} (100%) create mode 100644 imgs/icons/2324@2x.png rename imgs/icons/{2325.png => 2325@1x.png} (100%) create mode 100644 imgs/icons/2325@2x.png rename imgs/icons/{2326.png => 2326@1x.png} (100%) create mode 100644 imgs/icons/2326@2x.png rename imgs/icons/{2327.png => 2327@1x.png} (100%) create mode 100644 imgs/icons/2327@2x.png rename imgs/icons/{2328.png => 2328@1x.png} (100%) create mode 100644 imgs/icons/2328@2x.png rename imgs/icons/{2329.png => 2329@1x.png} (100%) create mode 100644 imgs/icons/2329@2x.png rename imgs/icons/{232.png => 232@1x.png} (100%) create mode 100644 imgs/icons/232@2x.png rename imgs/icons/{2330.png => 2330@1x.png} (100%) create mode 100644 imgs/icons/2330@2x.png rename imgs/icons/{2331.png => 2331@1x.png} (100%) create mode 100644 imgs/icons/2331@2x.png rename imgs/icons/{2332.png => 2332@1x.png} (100%) create mode 100644 imgs/icons/2332@2x.png rename imgs/icons/{2333.png => 2333@1x.png} (100%) create mode 100644 imgs/icons/2333@2x.png rename imgs/icons/{2334.png => 2334@1x.png} (100%) create mode 100644 imgs/icons/2334@2x.png rename imgs/icons/{2338.png => 2338@1x.png} (100%) create mode 100644 imgs/icons/2338@2x.png rename imgs/icons/{2340.png => 2340@1x.png} (100%) create mode 100644 imgs/icons/2340@2x.png rename imgs/icons/{2355.png => 2355@1x.png} (100%) create mode 100644 imgs/icons/2355@2x.png rename imgs/icons/{2512.png => 2512@1x.png} (100%) create mode 100644 imgs/icons/2512@2x.png rename imgs/icons/{2526.png => 2526@1x.png} (100%) create mode 100644 imgs/icons/2526@2x.png rename imgs/icons/{2527.png => 2527@1x.png} (100%) create mode 100644 imgs/icons/2527@2x.png rename imgs/icons/{2528.png => 2528@1x.png} (100%) create mode 100644 imgs/icons/2528@2x.png rename imgs/icons/{2529.png => 2529@1x.png} (100%) create mode 100644 imgs/icons/2529@2x.png rename imgs/icons/{2530.png => 2530@1x.png} (100%) create mode 100644 imgs/icons/2530@2x.png rename imgs/icons/{2531.png => 2531@1x.png} (100%) create mode 100644 imgs/icons/2531@2x.png rename imgs/icons/{2532.png => 2532@1x.png} (100%) create mode 100644 imgs/icons/2532@2x.png rename imgs/icons/{2536.png => 2536@1x.png} (100%) create mode 100644 imgs/icons/2536@2x.png rename imgs/icons/{2537.png => 2537@1x.png} (100%) create mode 100644 imgs/icons/2537@2x.png rename imgs/icons/{2538.png => 2538@1x.png} (100%) create mode 100644 imgs/icons/2538@2x.png rename imgs/icons/{2539.png => 2539@1x.png} (100%) create mode 100644 imgs/icons/2539@2x.png rename imgs/icons/{2540.png => 2540@1x.png} (100%) create mode 100644 imgs/icons/2540@2x.png rename imgs/icons/{2541.png => 2541@1x.png} (100%) create mode 100644 imgs/icons/2541@2x.png rename imgs/icons/{2542.png => 2542@1x.png} (100%) create mode 100644 imgs/icons/2542@2x.png rename imgs/icons/{2543.png => 2543@1x.png} (100%) create mode 100644 imgs/icons/2543@2x.png rename imgs/icons/{2544.png => 2544@1x.png} (100%) create mode 100644 imgs/icons/2544@2x.png rename imgs/icons/{2545.png => 2545@1x.png} (100%) create mode 100644 imgs/icons/2545@2x.png rename imgs/icons/{2546.png => 2546@1x.png} (100%) create mode 100644 imgs/icons/2546@2x.png rename imgs/icons/{2547.png => 2547@1x.png} (100%) create mode 100644 imgs/icons/2547@2x.png rename imgs/icons/{2548.png => 2548@1x.png} (100%) create mode 100644 imgs/icons/2548@2x.png rename imgs/icons/{2549.png => 2549@1x.png} (100%) create mode 100644 imgs/icons/2549@2x.png rename imgs/icons/{2550.png => 2550@1x.png} (100%) create mode 100644 imgs/icons/2550@2x.png rename imgs/icons/{2551.png => 2551@1x.png} (100%) create mode 100644 imgs/icons/2551@2x.png rename imgs/icons/{2552.png => 2552@1x.png} (100%) create mode 100644 imgs/icons/2552@2x.png rename imgs/icons/{2553.png => 2553@1x.png} (100%) create mode 100644 imgs/icons/2553@2x.png rename imgs/icons/{2554.png => 2554@1x.png} (100%) create mode 100644 imgs/icons/2554@2x.png rename imgs/icons/{2555.png => 2555@1x.png} (100%) create mode 100644 imgs/icons/2555@2x.png rename imgs/icons/{2556.png => 2556@1x.png} (100%) create mode 100644 imgs/icons/2556@2x.png rename imgs/icons/{2557.png => 2557@1x.png} (100%) create mode 100644 imgs/icons/2557@2x.png rename imgs/icons/{2558.png => 2558@1x.png} (100%) create mode 100644 imgs/icons/2558@2x.png rename imgs/icons/{2559.png => 2559@1x.png} (100%) create mode 100644 imgs/icons/2559@2x.png rename imgs/icons/{2560.png => 2560@1x.png} (100%) create mode 100644 imgs/icons/2560@2x.png rename imgs/icons/{2561.png => 2561@1x.png} (100%) create mode 100644 imgs/icons/2561@2x.png rename imgs/icons/{2563.png => 2563@1x.png} (100%) create mode 100644 imgs/icons/2563@2x.png rename imgs/icons/{2567.png => 2567@1x.png} (100%) create mode 100644 imgs/icons/2567@2x.png rename imgs/icons/{2568.png => 2568@1x.png} (100%) create mode 100644 imgs/icons/2568@2x.png rename imgs/icons/{2569.png => 2569@1x.png} (100%) create mode 100644 imgs/icons/2569@2x.png rename imgs/icons/{2570.png => 2570@1x.png} (100%) create mode 100644 imgs/icons/2570@2x.png rename imgs/icons/{2571.png => 2571@1x.png} (100%) create mode 100644 imgs/icons/2571@2x.png rename imgs/icons/{2572.png => 2572@1x.png} (100%) create mode 100644 imgs/icons/2572@2x.png rename imgs/icons/{2573.png => 2573@1x.png} (100%) create mode 100644 imgs/icons/2573@2x.png rename imgs/icons/{2574.png => 2574@1x.png} (100%) create mode 100644 imgs/icons/2574@2x.png rename imgs/icons/{2575.png => 2575@1x.png} (100%) create mode 100644 imgs/icons/2575@2x.png rename imgs/icons/{2576.png => 2576@1x.png} (100%) create mode 100644 imgs/icons/2576@2x.png rename imgs/icons/{2577.png => 2577@1x.png} (100%) create mode 100644 imgs/icons/2577@2x.png rename imgs/icons/{2578.png => 2578@1x.png} (100%) create mode 100644 imgs/icons/2578@2x.png rename imgs/icons/{2579.png => 2579@1x.png} (100%) create mode 100644 imgs/icons/2579@2x.png rename imgs/icons/{2580.png => 2580@1x.png} (100%) create mode 100644 imgs/icons/2580@2x.png rename imgs/icons/{2581.png => 2581@1x.png} (100%) create mode 100644 imgs/icons/2581@2x.png rename imgs/icons/{2582.png => 2582@1x.png} (100%) create mode 100644 imgs/icons/2582@2x.png rename imgs/icons/{2645.png => 2645@1x.png} (100%) create mode 100644 imgs/icons/2645@2x.png rename imgs/icons/{2646.png => 2646@1x.png} (100%) create mode 100644 imgs/icons/2646@2x.png rename imgs/icons/{2647.png => 2647@1x.png} (100%) create mode 100644 imgs/icons/2647@2x.png rename imgs/icons/{2648.png => 2648@1x.png} (100%) create mode 100644 imgs/icons/2648@2x.png rename imgs/icons/{2649.png => 2649@1x.png} (100%) create mode 100644 imgs/icons/2649@2x.png rename imgs/icons/{2650.png => 2650@1x.png} (100%) create mode 100644 imgs/icons/2650@2x.png rename imgs/icons/{2651.png => 2651@1x.png} (100%) create mode 100644 imgs/icons/2651@2x.png rename imgs/icons/{2652.png => 2652@1x.png} (100%) create mode 100644 imgs/icons/2652@2x.png rename imgs/icons/{2653.png => 2653@1x.png} (100%) create mode 100644 imgs/icons/2653@2x.png rename imgs/icons/{2654.png => 2654@1x.png} (100%) create mode 100644 imgs/icons/2654@2x.png rename imgs/icons/{2655.png => 2655@1x.png} (100%) create mode 100644 imgs/icons/2655@2x.png rename imgs/icons/{2656.png => 2656@1x.png} (100%) create mode 100644 imgs/icons/2656@2x.png rename imgs/icons/{2657.png => 2657@1x.png} (100%) create mode 100644 imgs/icons/2657@2x.png rename imgs/icons/{2658.png => 2658@1x.png} (100%) create mode 100644 imgs/icons/2658@2x.png rename imgs/icons/{2659.png => 2659@1x.png} (100%) create mode 100644 imgs/icons/2659@2x.png rename imgs/icons/{2660.png => 2660@1x.png} (100%) create mode 100644 imgs/icons/2660@2x.png rename imgs/icons/{2661.png => 2661@1x.png} (100%) create mode 100644 imgs/icons/2661@2x.png rename imgs/icons/{2662.png => 2662@1x.png} (100%) create mode 100644 imgs/icons/2662@2x.png rename imgs/icons/{2663.png => 2663@1x.png} (100%) create mode 100644 imgs/icons/2663@2x.png rename imgs/icons/{2664.png => 2664@1x.png} (100%) create mode 100644 imgs/icons/2664@2x.png rename imgs/icons/{2665.png => 2665@1x.png} (100%) create mode 100644 imgs/icons/2665@2x.png rename imgs/icons/{2666.png => 2666@1x.png} (100%) create mode 100644 imgs/icons/2666@2x.png rename imgs/icons/{2667.png => 2667@1x.png} (100%) create mode 100644 imgs/icons/2667@2x.png rename imgs/icons/{2668.png => 2668@1x.png} (100%) create mode 100644 imgs/icons/2668@2x.png rename imgs/icons/{2669.png => 2669@1x.png} (100%) create mode 100644 imgs/icons/2669@2x.png rename imgs/icons/{2670.png => 2670@1x.png} (100%) create mode 100644 imgs/icons/2670@2x.png rename imgs/icons/{2674.png => 2674@1x.png} (100%) create mode 100644 imgs/icons/2674@2x.png rename imgs/icons/{2677.png => 2677@1x.png} (100%) create mode 100644 imgs/icons/2677@2x.png rename imgs/icons/{2678.png => 2678@1x.png} (100%) create mode 100644 imgs/icons/2678@2x.png rename imgs/icons/{2679.png => 2679@1x.png} (100%) create mode 100644 imgs/icons/2679@2x.png rename imgs/icons/{2680.png => 2680@1x.png} (100%) create mode 100644 imgs/icons/2680@2x.png rename imgs/icons/{2681.png => 2681@1x.png} (100%) create mode 100644 imgs/icons/2681@2x.png rename imgs/icons/{2682.png => 2682@1x.png} (100%) create mode 100644 imgs/icons/2682@2x.png rename imgs/icons/{2683.png => 2683@1x.png} (100%) create mode 100644 imgs/icons/2683@2x.png rename imgs/icons/{2684.png => 2684@1x.png} (100%) create mode 100644 imgs/icons/2684@2x.png rename imgs/icons/{2685.png => 2685@1x.png} (100%) create mode 100644 imgs/icons/2685@2x.png rename imgs/icons/{2686.png => 2686@1x.png} (100%) create mode 100644 imgs/icons/2686@2x.png rename imgs/icons/{2696.png => 2696@1x.png} (100%) create mode 100644 imgs/icons/2696@2x.png rename imgs/icons/{2697.png => 2697@1x.png} (100%) create mode 100644 imgs/icons/2697@2x.png rename imgs/icons/{2698.png => 2698@1x.png} (100%) create mode 100644 imgs/icons/2698@2x.png rename imgs/icons/{2699.png => 2699@1x.png} (100%) create mode 100644 imgs/icons/2699@2x.png rename imgs/icons/{26.png => 26@1x.png} (100%) create mode 100644 imgs/icons/26@2x.png rename imgs/icons/{2700.png => 2700@1x.png} (100%) create mode 100644 imgs/icons/2700@2x.png rename imgs/icons/{2701.png => 2701@1x.png} (100%) create mode 100644 imgs/icons/2701@2x.png rename imgs/icons/{2702.png => 2702@1x.png} (100%) create mode 100644 imgs/icons/2702@2x.png rename imgs/icons/{2703.png => 2703@1x.png} (100%) create mode 100644 imgs/icons/2703@2x.png rename imgs/icons/{2705.png => 2705@1x.png} (100%) create mode 100644 imgs/icons/2705@2x.png rename imgs/icons/{2732.png => 2732@1x.png} (100%) create mode 100644 imgs/icons/2732@2x.png rename imgs/icons/{2754.png => 2754@1x.png} (100%) create mode 100644 imgs/icons/2754@2x.png rename imgs/icons/{27.png => 27@1x.png} (100%) create mode 100644 imgs/icons/27@2x.png rename imgs/icons/{2827.png => 2827@1x.png} (100%) create mode 100644 imgs/icons/2827@2x.png rename imgs/icons/{2828.png => 2828@1x.png} (100%) create mode 100644 imgs/icons/2828@2x.png rename imgs/icons/{2829.png => 2829@1x.png} (100%) create mode 100644 imgs/icons/2829@2x.png rename imgs/icons/{2830.png => 2830@1x.png} (100%) create mode 100644 imgs/icons/2830@2x.png rename imgs/icons/{2831.png => 2831@1x.png} (100%) create mode 100644 imgs/icons/2831@2x.png rename imgs/icons/{2832.png => 2832@1x.png} (100%) create mode 100644 imgs/icons/2832@2x.png rename imgs/icons/{2833.png => 2833@1x.png} (100%) create mode 100644 imgs/icons/2833@2x.png rename imgs/icons/{2834.png => 2834@1x.png} (100%) create mode 100644 imgs/icons/2834@2x.png rename imgs/icons/{2836.png => 2836@1x.png} (100%) create mode 100644 imgs/icons/2836@2x.png rename imgs/icons/{2837.png => 2837@1x.png} (100%) create mode 100644 imgs/icons/2837@2x.png rename imgs/icons/{2838.png => 2838@1x.png} (100%) create mode 100644 imgs/icons/2838@2x.png rename imgs/icons/{2839.png => 2839@1x.png} (100%) create mode 100644 imgs/icons/2839@2x.png rename imgs/icons/{2840.png => 2840@1x.png} (100%) create mode 100644 imgs/icons/2840@2x.png rename imgs/icons/{2841.png => 2841@1x.png} (100%) create mode 100644 imgs/icons/2841@2x.png rename imgs/icons/{2842.png => 2842@1x.png} (100%) create mode 100644 imgs/icons/2842@2x.png rename imgs/icons/{2843.png => 2843@1x.png} (100%) create mode 100644 imgs/icons/2843@2x.png rename imgs/icons/{2844.png => 2844@1x.png} (100%) create mode 100644 imgs/icons/2844@2x.png rename imgs/icons/{2845.png => 2845@1x.png} (100%) create mode 100644 imgs/icons/2845@2x.png rename imgs/icons/{2846.png => 2846@1x.png} (100%) create mode 100644 imgs/icons/2846@2x.png rename imgs/icons/{2847.png => 2847@1x.png} (100%) create mode 100644 imgs/icons/2847@2x.png rename imgs/icons/{2848.png => 2848@1x.png} (100%) create mode 100644 imgs/icons/2848@2x.png rename imgs/icons/{2849.png => 2849@1x.png} (100%) create mode 100644 imgs/icons/2849@2x.png rename imgs/icons/{2850.png => 2850@1x.png} (100%) create mode 100644 imgs/icons/2850@2x.png rename imgs/icons/{2851.png => 2851@1x.png} (100%) create mode 100644 imgs/icons/2851@2x.png rename imgs/icons/{2852.png => 2852@1x.png} (100%) create mode 100644 imgs/icons/2852@2x.png rename imgs/icons/{2853.png => 2853@1x.png} (100%) create mode 100644 imgs/icons/2853@2x.png rename imgs/icons/{2854.png => 2854@1x.png} (100%) create mode 100644 imgs/icons/2854@2x.png rename imgs/icons/{2855.png => 2855@1x.png} (100%) create mode 100644 imgs/icons/2855@2x.png rename imgs/icons/{2856.png => 2856@1x.png} (100%) create mode 100644 imgs/icons/2856@2x.png rename imgs/icons/{2857.png => 2857@1x.png} (100%) create mode 100644 imgs/icons/2857@2x.png rename imgs/icons/{2858.png => 2858@1x.png} (100%) create mode 100644 imgs/icons/2858@2x.png rename imgs/icons/{2859.png => 2859@1x.png} (100%) create mode 100644 imgs/icons/2859@2x.png rename imgs/icons/{2860.png => 2860@1x.png} (100%) create mode 100644 imgs/icons/2860@2x.png rename imgs/icons/{2861.png => 2861@1x.png} (100%) create mode 100644 imgs/icons/2861@2x.png rename imgs/icons/{2862.png => 2862@1x.png} (100%) create mode 100644 imgs/icons/2862@2x.png rename imgs/icons/{2863.png => 2863@1x.png} (100%) create mode 100644 imgs/icons/2863@2x.png rename imgs/icons/{2864.png => 2864@1x.png} (100%) create mode 100644 imgs/icons/2864@2x.png rename imgs/icons/{2865.png => 2865@1x.png} (100%) create mode 100644 imgs/icons/2865@2x.png rename imgs/icons/{2866.png => 2866@1x.png} (100%) create mode 100644 imgs/icons/2866@2x.png rename imgs/icons/{2867.png => 2867@1x.png} (100%) create mode 100644 imgs/icons/2867@2x.png rename imgs/icons/{2868.png => 2868@1x.png} (100%) create mode 100644 imgs/icons/2868@2x.png rename imgs/icons/{2869.png => 2869@1x.png} (100%) create mode 100644 imgs/icons/2869@2x.png rename imgs/icons/{2870.png => 2870@1x.png} (100%) create mode 100644 imgs/icons/2870@2x.png rename imgs/icons/{2871.png => 2871@1x.png} (100%) create mode 100644 imgs/icons/2871@2x.png rename imgs/icons/{2872.png => 2872@1x.png} (100%) create mode 100644 imgs/icons/2872@2x.png rename imgs/icons/{2873.png => 2873@1x.png} (100%) create mode 100644 imgs/icons/2873@2x.png rename imgs/icons/{2874.png => 2874@1x.png} (100%) create mode 100644 imgs/icons/2874@2x.png rename imgs/icons/{2875.png => 2875@1x.png} (100%) create mode 100644 imgs/icons/2875@2x.png rename imgs/icons/{2876.png => 2876@1x.png} (100%) create mode 100644 imgs/icons/2876@2x.png rename imgs/icons/{2877.png => 2877@1x.png} (100%) create mode 100644 imgs/icons/2877@2x.png rename imgs/icons/{2878.png => 2878@1x.png} (100%) create mode 100644 imgs/icons/2878@2x.png rename imgs/icons/{2879.png => 2879@1x.png} (100%) create mode 100644 imgs/icons/2879@2x.png rename imgs/icons/{2880.png => 2880@1x.png} (100%) create mode 100644 imgs/icons/2880@2x.png rename imgs/icons/{2881.png => 2881@1x.png} (100%) create mode 100644 imgs/icons/2881@2x.png rename imgs/icons/{2882.png => 2882@1x.png} (100%) create mode 100644 imgs/icons/2882@2x.png rename imgs/icons/{2883.png => 2883@1x.png} (100%) create mode 100644 imgs/icons/2883@2x.png rename imgs/icons/{2884.png => 2884@1x.png} (100%) create mode 100644 imgs/icons/2884@2x.png rename imgs/icons/{2885.png => 2885@1x.png} (100%) create mode 100644 imgs/icons/2885@2x.png rename imgs/icons/{2886.png => 2886@1x.png} (100%) create mode 100644 imgs/icons/2886@2x.png rename imgs/icons/{2887.png => 2887@1x.png} (100%) create mode 100644 imgs/icons/2887@2x.png rename imgs/icons/{2888.png => 2888@1x.png} (100%) create mode 100644 imgs/icons/2888@2x.png rename imgs/icons/{2889.png => 2889@1x.png} (100%) create mode 100644 imgs/icons/2889@2x.png rename imgs/icons/{2890.png => 2890@1x.png} (100%) create mode 100644 imgs/icons/2890@2x.png rename imgs/icons/{2891.png => 2891@1x.png} (100%) create mode 100644 imgs/icons/2891@2x.png rename imgs/icons/{2893.png => 2893@1x.png} (100%) create mode 100644 imgs/icons/2893@2x.png rename imgs/icons/{28.png => 28@1x.png} (100%) create mode 100644 imgs/icons/28@2x.png rename imgs/icons/{2908.png => 2908@1x.png} (100%) create mode 100644 imgs/icons/2908@2x.png rename imgs/icons/{2934.png => 2934@1x.png} (100%) create mode 100644 imgs/icons/2934@2x.png rename imgs/icons/{293.png => 293@1x.png} (100%) create mode 100644 imgs/icons/293@2x.png rename imgs/icons/{2943.png => 2943@1x.png} (100%) create mode 100644 imgs/icons/2943@2x.png rename imgs/icons/{294.png => 294@1x.png} (100%) create mode 100644 imgs/icons/294@2x.png rename imgs/icons/{295.png => 295@1x.png} (100%) create mode 100644 imgs/icons/295@2x.png rename imgs/icons/{2983.png => 2983@1x.png} (100%) create mode 100644 imgs/icons/2983@2x.png rename imgs/icons/{2985.png => 2985@1x.png} (100%) create mode 100644 imgs/icons/2985@2x.png rename imgs/icons/{2986.png => 2986@1x.png} (100%) create mode 100644 imgs/icons/2986@2x.png rename imgs/icons/{2987.png => 2987@1x.png} (100%) create mode 100644 imgs/icons/2987@2x.png rename imgs/icons/{2988.png => 2988@1x.png} (100%) create mode 100644 imgs/icons/2988@2x.png rename imgs/icons/{2989.png => 2989@1x.png} (100%) create mode 100644 imgs/icons/2989@2x.png rename imgs/icons/{2990.png => 2990@1x.png} (100%) create mode 100644 imgs/icons/2990@2x.png rename imgs/icons/{2991.png => 2991@1x.png} (100%) create mode 100644 imgs/icons/2991@2x.png rename imgs/icons/{2992.png => 2992@1x.png} (100%) create mode 100644 imgs/icons/2992@2x.png rename imgs/icons/{2994.png => 2994@1x.png} (100%) create mode 100644 imgs/icons/2994@2x.png rename imgs/icons/{29.png => 29@1x.png} (100%) create mode 100644 imgs/icons/29@2x.png rename imgs/icons/{3000.png => 3000@1x.png} (100%) create mode 100644 imgs/icons/3000@2x.png rename imgs/icons/{3001.png => 3001@1x.png} (100%) create mode 100644 imgs/icons/3001@2x.png rename imgs/icons/{3006.png => 3006@1x.png} (100%) create mode 100644 imgs/icons/3006@2x.png rename imgs/icons/{3007.png => 3007@1x.png} (100%) create mode 100644 imgs/icons/3007@2x.png rename imgs/icons/{3010.png => 3010@1x.png} (100%) create mode 100644 imgs/icons/3010@2x.png rename imgs/icons/{3012.png => 3012@1x.png} (100%) create mode 100644 imgs/icons/3012@2x.png rename imgs/icons/{3013.png => 3013@1x.png} (100%) create mode 100644 imgs/icons/3013@2x.png rename imgs/icons/{3019.png => 3019@1x.png} (100%) create mode 100644 imgs/icons/3019@2x.png rename imgs/icons/{3025.png => 3025@1x.png} (100%) create mode 100644 imgs/icons/3025@2x.png rename imgs/icons/{3036.png => 3036@1x.png} (100%) create mode 100644 imgs/icons/3036@2x.png rename imgs/icons/{3074.png => 3074@1x.png} (100%) create mode 100644 imgs/icons/3074@2x.png rename imgs/icons/{30.png => 30@1x.png} (100%) create mode 100644 imgs/icons/30@2x.png rename imgs/icons/{3181.png => 3181@1x.png} (100%) create mode 100644 imgs/icons/3181@2x.png rename imgs/icons/{3182.png => 3182@1x.png} (100%) create mode 100644 imgs/icons/3182@2x.png rename imgs/icons/{3183.png => 3183@1x.png} (100%) create mode 100644 imgs/icons/3183@2x.png rename imgs/icons/{3184.png => 3184@1x.png} (100%) create mode 100644 imgs/icons/3184@2x.png rename imgs/icons/{3185.png => 3185@1x.png} (100%) create mode 100644 imgs/icons/3185@2x.png rename imgs/icons/{3186.png => 3186@1x.png} (100%) create mode 100644 imgs/icons/3186@2x.png rename imgs/icons/{3187.png => 3187@1x.png} (100%) create mode 100644 imgs/icons/3187@2x.png rename imgs/icons/{3188.png => 3188@1x.png} (100%) create mode 100644 imgs/icons/3188@2x.png rename imgs/icons/{3189.png => 3189@1x.png} (100%) create mode 100644 imgs/icons/3189@2x.png rename imgs/icons/{3190.png => 3190@1x.png} (100%) create mode 100644 imgs/icons/3190@2x.png rename imgs/icons/{3191.png => 3191@1x.png} (100%) create mode 100644 imgs/icons/3191@2x.png rename imgs/icons/{3192.png => 3192@1x.png} (100%) create mode 100644 imgs/icons/3192@2x.png rename imgs/icons/{3193.png => 3193@1x.png} (100%) create mode 100644 imgs/icons/3193@2x.png rename imgs/icons/{3194.png => 3194@1x.png} (100%) create mode 100644 imgs/icons/3194@2x.png rename imgs/icons/{3195.png => 3195@1x.png} (100%) create mode 100644 imgs/icons/3195@2x.png rename imgs/icons/{3196.png => 3196@1x.png} (100%) create mode 100644 imgs/icons/3196@2x.png rename imgs/icons/{3197.png => 3197@1x.png} (100%) create mode 100644 imgs/icons/3197@2x.png rename imgs/icons/{3198.png => 3198@1x.png} (100%) create mode 100644 imgs/icons/3198@2x.png rename imgs/icons/{3199.png => 3199@1x.png} (100%) create mode 100644 imgs/icons/3199@2x.png rename imgs/icons/{31.png => 31@1x.png} (100%) create mode 100644 imgs/icons/31@2x.png rename imgs/icons/{3200.png => 3200@1x.png} (100%) create mode 100644 imgs/icons/3200@2x.png rename imgs/icons/{3201.png => 3201@1x.png} (100%) create mode 100644 imgs/icons/3201@2x.png rename imgs/icons/{3202.png => 3202@1x.png} (100%) create mode 100644 imgs/icons/3202@2x.png rename imgs/icons/{3203.png => 3203@1x.png} (100%) create mode 100644 imgs/icons/3203@2x.png rename imgs/icons/{3210.png => 3210@1x.png} (100%) create mode 100644 imgs/icons/3210@2x.png rename imgs/icons/{3211.png => 3211@1x.png} (100%) create mode 100644 imgs/icons/3211@2x.png rename imgs/icons/{3212.png => 3212@1x.png} (100%) create mode 100644 imgs/icons/3212@2x.png rename imgs/icons/{3213.png => 3213@1x.png} (100%) create mode 100644 imgs/icons/3213@2x.png rename imgs/icons/{3214.png => 3214@1x.png} (100%) create mode 100644 imgs/icons/3214@2x.png rename imgs/icons/{3215.png => 3215@1x.png} (100%) create mode 100644 imgs/icons/3215@2x.png rename imgs/icons/{3216.png => 3216@1x.png} (100%) create mode 100644 imgs/icons/3216@2x.png rename imgs/icons/{3217.png => 3217@1x.png} (100%) create mode 100644 imgs/icons/3217@2x.png rename imgs/icons/{3218.png => 3218@1x.png} (100%) create mode 100644 imgs/icons/3218@2x.png rename imgs/icons/{3219.png => 3219@1x.png} (100%) create mode 100644 imgs/icons/3219@2x.png rename imgs/icons/{3220.png => 3220@1x.png} (100%) create mode 100644 imgs/icons/3220@2x.png rename imgs/icons/{3221.png => 3221@1x.png} (100%) create mode 100644 imgs/icons/3221@2x.png rename imgs/icons/{3222.png => 3222@1x.png} (100%) create mode 100644 imgs/icons/3222@2x.png rename imgs/icons/{3223.png => 3223@1x.png} (100%) create mode 100644 imgs/icons/3223@2x.png rename imgs/icons/{3224.png => 3224@1x.png} (100%) create mode 100644 imgs/icons/3224@2x.png rename imgs/icons/{3225.png => 3225@1x.png} (100%) create mode 100644 imgs/icons/3225@2x.png rename imgs/icons/{3226.png => 3226@1x.png} (100%) create mode 100644 imgs/icons/3226@2x.png rename imgs/icons/{3227.png => 3227@1x.png} (100%) create mode 100644 imgs/icons/3227@2x.png rename imgs/icons/{3228.png => 3228@1x.png} (100%) create mode 100644 imgs/icons/3228@2x.png rename imgs/icons/{3229.png => 3229@1x.png} (100%) create mode 100644 imgs/icons/3229@2x.png rename imgs/icons/{3230.png => 3230@1x.png} (100%) create mode 100644 imgs/icons/3230@2x.png rename imgs/icons/{3231.png => 3231@1x.png} (100%) create mode 100644 imgs/icons/3231@2x.png rename imgs/icons/{3232.png => 3232@1x.png} (100%) create mode 100644 imgs/icons/3232@2x.png rename imgs/icons/{3233.png => 3233@1x.png} (100%) create mode 100644 imgs/icons/3233@2x.png rename imgs/icons/{3234.png => 3234@1x.png} (100%) create mode 100644 imgs/icons/3234@2x.png rename imgs/icons/{3235.png => 3235@1x.png} (100%) create mode 100644 imgs/icons/3235@2x.png rename imgs/icons/{3236.png => 3236@1x.png} (100%) create mode 100644 imgs/icons/3236@2x.png rename imgs/icons/{3237.png => 3237@1x.png} (100%) create mode 100644 imgs/icons/3237@2x.png rename imgs/icons/{3240.png => 3240@1x.png} (100%) create mode 100644 imgs/icons/3240@2x.png rename imgs/icons/{3241.png => 3241@1x.png} (100%) create mode 100644 imgs/icons/3241@2x.png rename imgs/icons/{3246.png => 3246@1x.png} (100%) create mode 100644 imgs/icons/3246@2x.png rename imgs/icons/{3247.png => 3247@1x.png} (100%) create mode 100644 imgs/icons/3247@2x.png rename imgs/icons/{3248.png => 3248@1x.png} (100%) create mode 100644 imgs/icons/3248@2x.png rename imgs/icons/{3249.png => 3249@1x.png} (100%) create mode 100644 imgs/icons/3249@2x.png rename imgs/icons/{3250.png => 3250@1x.png} (100%) create mode 100644 imgs/icons/3250@2x.png rename imgs/icons/{3251.png => 3251@1x.png} (100%) create mode 100644 imgs/icons/3251@2x.png rename imgs/icons/{3252.png => 3252@1x.png} (100%) create mode 100644 imgs/icons/3252@2x.png rename imgs/icons/{3253.png => 3253@1x.png} (100%) create mode 100644 imgs/icons/3253@2x.png rename imgs/icons/{3254.png => 3254@1x.png} (100%) create mode 100644 imgs/icons/3254@2x.png rename imgs/icons/{3255.png => 3255@1x.png} (100%) create mode 100644 imgs/icons/3255@2x.png rename imgs/icons/{3256.png => 3256@1x.png} (100%) create mode 100644 imgs/icons/3256@2x.png rename imgs/icons/{3257.png => 3257@1x.png} (100%) create mode 100644 imgs/icons/3257@2x.png rename imgs/icons/{3258.png => 3258@1x.png} (100%) create mode 100644 imgs/icons/3258@2x.png rename imgs/icons/{3259.png => 3259@1x.png} (100%) create mode 100644 imgs/icons/3259@2x.png rename imgs/icons/{3260.png => 3260@1x.png} (100%) create mode 100644 imgs/icons/3260@2x.png rename imgs/icons/{3261.png => 3261@1x.png} (100%) create mode 100644 imgs/icons/3261@2x.png rename imgs/icons/{3262.png => 3262@1x.png} (100%) create mode 100644 imgs/icons/3262@2x.png rename imgs/icons/{3263.png => 3263@1x.png} (100%) create mode 100644 imgs/icons/3263@2x.png rename imgs/icons/{3264.png => 3264@1x.png} (100%) create mode 100644 imgs/icons/3264@2x.png rename imgs/icons/{3265.png => 3265@1x.png} (100%) create mode 100644 imgs/icons/3265@2x.png rename imgs/icons/{3266.png => 3266@1x.png} (100%) create mode 100644 imgs/icons/3266@2x.png rename imgs/icons/{3278.png => 3278@1x.png} (100%) create mode 100644 imgs/icons/3278@2x.png rename imgs/icons/{3279.png => 3279@1x.png} (100%) create mode 100644 imgs/icons/3279@2x.png rename imgs/icons/{3280.png => 3280@1x.png} (100%) create mode 100644 imgs/icons/3280@2x.png rename imgs/icons/{3281.png => 3281@1x.png} (100%) create mode 100644 imgs/icons/3281@2x.png rename imgs/icons/{3282.png => 3282@1x.png} (100%) create mode 100644 imgs/icons/3282@2x.png rename imgs/icons/{3283.png => 3283@1x.png} (100%) create mode 100644 imgs/icons/3283@2x.png rename imgs/icons/{3300.png => 3300@1x.png} (100%) create mode 100644 imgs/icons/3300@2x.png rename imgs/icons/{3302.png => 3302@1x.png} (100%) create mode 100644 imgs/icons/3302@2x.png rename imgs/icons/{3303.png => 3303@1x.png} (100%) create mode 100644 imgs/icons/3303@2x.png rename imgs/icons/{3304.png => 3304@1x.png} (100%) create mode 100644 imgs/icons/3304@2x.png rename imgs/icons/{3305.png => 3305@1x.png} (100%) create mode 100644 imgs/icons/3305@2x.png rename imgs/icons/{3306.png => 3306@1x.png} (100%) create mode 100644 imgs/icons/3306@2x.png rename imgs/icons/{3307.png => 3307@1x.png} (100%) create mode 100644 imgs/icons/3307@2x.png rename imgs/icons/{3308.png => 3308@1x.png} (100%) create mode 100644 imgs/icons/3308@2x.png rename imgs/icons/{3309.png => 3309@1x.png} (100%) create mode 100644 imgs/icons/3309@2x.png rename imgs/icons/{3310.png => 3310@1x.png} (100%) create mode 100644 imgs/icons/3310@2x.png rename imgs/icons/{3311.png => 3311@1x.png} (100%) create mode 100644 imgs/icons/3311@2x.png rename imgs/icons/{3312.png => 3312@1x.png} (100%) create mode 100644 imgs/icons/3312@2x.png rename imgs/icons/{3313.png => 3313@1x.png} (100%) create mode 100644 imgs/icons/3313@2x.png rename imgs/icons/{3314.png => 3314@1x.png} (100%) create mode 100644 imgs/icons/3314@2x.png rename imgs/icons/{3315.png => 3315@1x.png} (100%) create mode 100644 imgs/icons/3315@2x.png rename imgs/icons/{3316.png => 3316@1x.png} (100%) create mode 100644 imgs/icons/3316@2x.png rename imgs/icons/{3317.png => 3317@1x.png} (100%) create mode 100644 imgs/icons/3317@2x.png rename imgs/icons/{3318.png => 3318@1x.png} (100%) create mode 100644 imgs/icons/3318@2x.png rename imgs/icons/{3319.png => 3319@1x.png} (100%) create mode 100644 imgs/icons/3319@2x.png rename imgs/icons/{3320.png => 3320@1x.png} (100%) create mode 100644 imgs/icons/3320@2x.png rename imgs/icons/{3321.png => 3321@1x.png} (100%) create mode 100644 imgs/icons/3321@2x.png rename imgs/icons/{3322.png => 3322@1x.png} (100%) create mode 100644 imgs/icons/3322@2x.png rename imgs/icons/{3323.png => 3323@1x.png} (100%) create mode 100644 imgs/icons/3323@2x.png rename imgs/icons/{3324.png => 3324@1x.png} (100%) create mode 100644 imgs/icons/3324@2x.png rename imgs/icons/{3325.png => 3325@1x.png} (100%) create mode 100644 imgs/icons/3325@2x.png rename imgs/icons/{3326.png => 3326@1x.png} (100%) create mode 100644 imgs/icons/3326@2x.png rename imgs/icons/{3327.png => 3327@1x.png} (100%) create mode 100644 imgs/icons/3327@2x.png rename imgs/icons/{3328.png => 3328@1x.png} (100%) create mode 100644 imgs/icons/3328@2x.png rename imgs/icons/{3329.png => 3329@1x.png} (100%) create mode 100644 imgs/icons/3329@2x.png rename imgs/icons/{3330.png => 3330@1x.png} (100%) create mode 100644 imgs/icons/3330@2x.png rename imgs/icons/{3333.png => 3333@1x.png} (100%) create mode 100644 imgs/icons/3333@2x.png rename imgs/icons/{3334.png => 3334@1x.png} (100%) create mode 100644 imgs/icons/3334@2x.png rename imgs/icons/{3335.png => 3335@1x.png} (100%) create mode 100644 imgs/icons/3335@2x.png rename imgs/icons/{3336.png => 3336@1x.png} (100%) create mode 100644 imgs/icons/3336@2x.png rename imgs/icons/{3337.png => 3337@1x.png} (100%) create mode 100644 imgs/icons/3337@2x.png rename imgs/icons/{3338.png => 3338@1x.png} (100%) create mode 100644 imgs/icons/3338@2x.png rename imgs/icons/{3339.png => 3339@1x.png} (100%) create mode 100644 imgs/icons/3339@2x.png rename imgs/icons/{3340.png => 3340@1x.png} (100%) create mode 100644 imgs/icons/3340@2x.png rename imgs/icons/{3341.png => 3341@1x.png} (100%) create mode 100644 imgs/icons/3341@2x.png rename imgs/icons/{3342.png => 3342@1x.png} (100%) create mode 100644 imgs/icons/3342@2x.png rename imgs/icons/{3343.png => 3343@1x.png} (100%) create mode 100644 imgs/icons/3343@2x.png rename imgs/icons/{3344.png => 3344@1x.png} (100%) create mode 100644 imgs/icons/3344@2x.png rename imgs/icons/{3345.png => 3345@1x.png} (100%) create mode 100644 imgs/icons/3345@2x.png rename imgs/icons/{3346.png => 3346@1x.png} (100%) create mode 100644 imgs/icons/3346@2x.png rename imgs/icons/{3347.png => 3347@1x.png} (100%) create mode 100644 imgs/icons/3347@2x.png rename imgs/icons/{3348.png => 3348@1x.png} (100%) create mode 100644 imgs/icons/3348@2x.png rename imgs/icons/{33.png => 33@1x.png} (100%) create mode 100644 imgs/icons/33@2x.png rename imgs/icons/{3433.png => 3433@1x.png} (100%) create mode 100644 imgs/icons/3433@2x.png rename imgs/icons/{3435.png => 3435@1x.png} (100%) create mode 100644 imgs/icons/3435@2x.png rename imgs/icons/{3436.png => 3436@1x.png} (100%) create mode 100644 imgs/icons/3436@2x.png rename imgs/icons/{3437.png => 3437@1x.png} (100%) create mode 100644 imgs/icons/3437@2x.png rename imgs/icons/{3438.png => 3438@1x.png} (100%) create mode 100644 imgs/icons/3438@2x.png rename imgs/icons/{3439.png => 3439@1x.png} (100%) create mode 100644 imgs/icons/3439@2x.png rename imgs/icons/{3440.png => 3440@1x.png} (100%) create mode 100644 imgs/icons/3440@2x.png rename imgs/icons/{3441.png => 3441@1x.png} (100%) create mode 100644 imgs/icons/3441@2x.png rename imgs/icons/{3442.png => 3442@1x.png} (100%) create mode 100644 imgs/icons/3442@2x.png rename imgs/icons/{3443.png => 3443@1x.png} (100%) create mode 100644 imgs/icons/3443@2x.png rename imgs/icons/{3444.png => 3444@1x.png} (100%) create mode 100644 imgs/icons/3444@2x.png rename imgs/icons/{3445.png => 3445@1x.png} (100%) create mode 100644 imgs/icons/3445@2x.png rename imgs/icons/{3446.png => 3446@1x.png} (100%) create mode 100644 imgs/icons/3446@2x.png rename imgs/icons/{3447.png => 3447@1x.png} (100%) create mode 100644 imgs/icons/3447@2x.png rename imgs/icons/{3448.png => 3448@1x.png} (100%) create mode 100644 imgs/icons/3448@2x.png rename imgs/icons/{3449.png => 3449@1x.png} (100%) create mode 100644 imgs/icons/3449@2x.png rename imgs/icons/{3450.png => 3450@1x.png} (100%) create mode 100644 imgs/icons/3450@2x.png rename imgs/icons/{349.png => 349@1x.png} (100%) create mode 100644 imgs/icons/349@2x.png rename imgs/icons/{34.png => 34@1x.png} (100%) create mode 100644 imgs/icons/34@2x.png rename imgs/icons/{350.png => 350@1x.png} (100%) create mode 100644 imgs/icons/350@2x.png rename imgs/icons/{352.png => 352@1x.png} (100%) create mode 100644 imgs/icons/352@2x.png rename imgs/icons/{355.png => 355@1x.png} (100%) create mode 100644 imgs/icons/355@2x.png rename imgs/icons/{356.png => 356@1x.png} (100%) create mode 100644 imgs/icons/356@2x.png rename imgs/icons/{360.png => 360@1x.png} (100%) create mode 100644 imgs/icons/360@2x.png rename imgs/icons/{361.png => 361@1x.png} (100%) create mode 100644 imgs/icons/361@2x.png rename imgs/icons/{3631.png => 3631@1x.png} (100%) create mode 100644 imgs/icons/3631@2x.png rename imgs/icons/{3636.png => 3636@1x.png} (100%) create mode 100644 imgs/icons/3636@2x.png rename imgs/icons/{3641.png => 3641@1x.png} (100%) create mode 100644 imgs/icons/3641@2x.png rename imgs/icons/{3646.png => 3646@1x.png} (100%) create mode 100644 imgs/icons/3646@2x.png rename imgs/icons/{365.png => 365@1x.png} (100%) create mode 100644 imgs/icons/365@2x.png rename imgs/icons/{366.png => 366@1x.png} (100%) create mode 100644 imgs/icons/366@2x.png rename imgs/icons/{370.png => 370@1x.png} (100%) create mode 100644 imgs/icons/370@2x.png rename imgs/icons/{3716.png => 3716@1x.png} (100%) create mode 100644 imgs/icons/3716@2x.png rename imgs/icons/{3717.png => 3717@1x.png} (100%) create mode 100644 imgs/icons/3717@2x.png rename imgs/icons/{3718.png => 3718@1x.png} (100%) create mode 100644 imgs/icons/3718@2x.png rename imgs/icons/{3719.png => 3719@1x.png} (100%) create mode 100644 imgs/icons/3719@2x.png rename imgs/icons/{371.png => 371@1x.png} (100%) create mode 100644 imgs/icons/371@2x.png rename imgs/icons/{3720.png => 3720@1x.png} (100%) create mode 100644 imgs/icons/3720@2x.png rename imgs/icons/{3721.png => 3721@1x.png} (100%) create mode 100644 imgs/icons/3721@2x.png rename imgs/icons/{3722.png => 3722@1x.png} (100%) create mode 100644 imgs/icons/3722@2x.png rename imgs/icons/{3723.png => 3723@1x.png} (100%) create mode 100644 imgs/icons/3723@2x.png rename imgs/icons/{3724.png => 3724@1x.png} (100%) create mode 100644 imgs/icons/3724@2x.png rename imgs/icons/{3725.png => 3725@1x.png} (100%) create mode 100644 imgs/icons/3725@2x.png rename imgs/icons/{3726.png => 3726@1x.png} (100%) create mode 100644 imgs/icons/3726@2x.png rename imgs/icons/{3727.png => 3727@1x.png} (100%) create mode 100644 imgs/icons/3727@2x.png rename imgs/icons/{3729.png => 3729@1x.png} (100%) create mode 100644 imgs/icons/3729@2x.png rename imgs/icons/{3730.png => 3730@1x.png} (100%) create mode 100644 imgs/icons/3730@2x.png rename imgs/icons/{3733.png => 3733@1x.png} (100%) create mode 100644 imgs/icons/3733@2x.png rename imgs/icons/{3734.png => 3734@1x.png} (100%) create mode 100644 imgs/icons/3734@2x.png rename imgs/icons/{3736.png => 3736@1x.png} (100%) create mode 100644 imgs/icons/3736@2x.png rename imgs/icons/{3737.png => 3737@1x.png} (100%) create mode 100644 imgs/icons/3737@2x.png rename imgs/icons/{3738.png => 3738@1x.png} (100%) create mode 100644 imgs/icons/3738@2x.png rename imgs/icons/{3739.png => 3739@1x.png} (100%) create mode 100644 imgs/icons/3739@2x.png rename imgs/icons/{3740.png => 3740@1x.png} (100%) create mode 100644 imgs/icons/3740@2x.png rename imgs/icons/{3741.png => 3741@1x.png} (100%) create mode 100644 imgs/icons/3741@2x.png rename imgs/icons/{3744.png => 3744@1x.png} (100%) create mode 100644 imgs/icons/3744@2x.png rename imgs/icons/{3745.png => 3745@1x.png} (100%) create mode 100644 imgs/icons/3745@2x.png rename imgs/icons/{3746.png => 3746@1x.png} (100%) create mode 100644 imgs/icons/3746@2x.png rename imgs/icons/{3750.png => 3750@1x.png} (100%) create mode 100644 imgs/icons/3750@2x.png rename imgs/icons/{3751.png => 3751@1x.png} (100%) create mode 100644 imgs/icons/3751@2x.png rename imgs/icons/{3753.png => 3753@1x.png} (100%) create mode 100644 imgs/icons/3753@2x.png rename imgs/icons/{3754.png => 3754@1x.png} (100%) create mode 100644 imgs/icons/3754@2x.png rename imgs/icons/{3755.png => 3755@1x.png} (100%) create mode 100644 imgs/icons/3755@2x.png rename imgs/icons/{3756.png => 3756@1x.png} (100%) create mode 100644 imgs/icons/3756@2x.png rename imgs/icons/{3759.png => 3759@1x.png} (100%) create mode 100644 imgs/icons/3759@2x.png rename imgs/icons/{3762.png => 3762@1x.png} (100%) create mode 100644 imgs/icons/3762@2x.png rename imgs/icons/{3763.png => 3763@1x.png} (100%) create mode 100644 imgs/icons/3763@2x.png rename imgs/icons/{3764.png => 3764@1x.png} (100%) create mode 100644 imgs/icons/3764@2x.png rename imgs/icons/{3765.png => 3765@1x.png} (100%) create mode 100644 imgs/icons/3765@2x.png rename imgs/icons/{3766.png => 3766@1x.png} (100%) create mode 100644 imgs/icons/3766@2x.png rename imgs/icons/{376.png => 376@1x.png} (100%) create mode 100644 imgs/icons/376@2x.png rename imgs/icons/{379.png => 379@1x.png} (100%) create mode 100644 imgs/icons/379@2x.png rename imgs/icons/{381.png => 381@1x.png} (100%) create mode 100644 imgs/icons/381@2x.png rename imgs/icons/{384.png => 384@1x.png} (100%) create mode 100644 imgs/icons/384@2x.png rename imgs/icons/{386.png => 386@1x.png} (100%) create mode 100644 imgs/icons/386@2x.png rename imgs/icons/{387.png => 387@1x.png} (100%) create mode 100644 imgs/icons/387@2x.png rename imgs/icons/{389.png => 389@1x.png} (100%) create mode 100644 imgs/icons/389@2x.png rename imgs/icons/{3943.png => 3943@1x.png} (100%) create mode 100644 imgs/icons/3943@2x.png rename imgs/icons/{3945.png => 3945@1x.png} (100%) create mode 100644 imgs/icons/3945@2x.png rename imgs/icons/{3946.png => 3946@1x.png} (100%) create mode 100644 imgs/icons/3946@2x.png rename imgs/icons/{3947.png => 3947@1x.png} (100%) create mode 100644 imgs/icons/3947@2x.png rename imgs/icons/{3948.png => 3948@1x.png} (100%) create mode 100644 imgs/icons/3948@2x.png rename imgs/icons/{3950.png => 3950@1x.png} (100%) create mode 100644 imgs/icons/3950@2x.png rename imgs/icons/{3951.png => 3951@1x.png} (100%) create mode 100644 imgs/icons/3951@2x.png rename imgs/icons/{3952.png => 3952@1x.png} (100%) create mode 100644 imgs/icons/3952@2x.png rename imgs/icons/{3953.png => 3953@1x.png} (100%) create mode 100644 imgs/icons/3953@2x.png rename imgs/icons/{3955.png => 3955@1x.png} (100%) create mode 100644 imgs/icons/3955@2x.png rename imgs/icons/{398.png => 398@1x.png} (100%) create mode 100644 imgs/icons/398@2x.png rename imgs/icons/{400.png => 400@1x.png} (100%) create mode 100644 imgs/icons/400@2x.png rename imgs/icons/{401.png => 401@1x.png} (100%) create mode 100644 imgs/icons/401@2x.png rename imgs/icons/{402.png => 402@1x.png} (100%) create mode 100644 imgs/icons/402@2x.png rename imgs/icons/{404.png => 404@1x.png} (100%) create mode 100644 imgs/icons/404@2x.png rename imgs/icons/{405.png => 405@1x.png} (100%) create mode 100644 imgs/icons/405@2x.png rename imgs/icons/{413.png => 413@1x.png} (100%) create mode 100644 imgs/icons/413@2x.png rename imgs/icons/{67.png => 67@1x.png} (100%) create mode 100644 imgs/icons/67@2x.png rename imgs/icons/{68.png => 68@1x.png} (100%) create mode 100644 imgs/icons/68@2x.png rename imgs/icons/{69.png => 69@1x.png} (100%) create mode 100644 imgs/icons/69@2x.png rename imgs/icons/{70.png => 70@1x.png} (100%) create mode 100644 imgs/icons/70@2x.png rename imgs/icons/{71.png => 71@1x.png} (100%) create mode 100644 imgs/icons/71@2x.png rename imgs/icons/{72.png => 72@1x.png} (100%) create mode 100644 imgs/icons/72@2x.png rename imgs/icons/{73.png => 73@1x.png} (100%) create mode 100644 imgs/icons/73@2x.png rename imgs/icons/{74.png => 74@1x.png} (100%) create mode 100644 imgs/icons/74@2x.png rename imgs/icons/{76.png => 76@1x.png} (100%) create mode 100644 imgs/icons/76@2x.png rename imgs/icons/{77.png => 77@1x.png} (100%) create mode 100644 imgs/icons/77@2x.png rename imgs/icons/{79.png => 79@1x.png} (100%) create mode 100644 imgs/icons/79@2x.png rename imgs/icons/{80.png => 80@1x.png} (100%) create mode 100644 imgs/icons/80@2x.png rename imgs/icons/{81.png => 81@1x.png} (100%) create mode 100644 imgs/icons/81@2x.png rename imgs/icons/{82.png => 82@1x.png} (100%) create mode 100644 imgs/icons/82@2x.png rename imgs/icons/{83.png => 83@1x.png} (100%) create mode 100644 imgs/icons/83@2x.png rename imgs/icons/{84.png => 84@1x.png} (100%) create mode 100644 imgs/icons/84@2x.png rename imgs/icons/{86.png => 86@1x.png} (100%) create mode 100644 imgs/icons/86@2x.png rename imgs/icons/{89.png => 89@1x.png} (100%) create mode 100644 imgs/icons/89@2x.png rename imgs/icons/{90.png => 90@1x.png} (100%) create mode 100644 imgs/icons/90@2x.png rename imgs/icons/{92.png => 92@1x.png} (100%) create mode 100644 imgs/icons/92@2x.png rename imgs/icons/{94.png => 94@1x.png} (100%) create mode 100644 imgs/icons/94@2x.png rename imgs/icons/{96.png => 96@1x.png} (100%) create mode 100644 imgs/icons/96@2x.png rename imgs/icons/{97.png => 97@1x.png} (100%) create mode 100644 imgs/icons/97@2x.png rename imgs/icons/{98.png => 98@1x.png} (100%) create mode 100644 imgs/icons/98@2x.png rename imgs/renders/{10006.png => 10006@1x.png} (100%) create mode 100644 imgs/renders/10006@2x.png rename imgs/renders/{10013.png => 10013@1x.png} (100%) create mode 100644 imgs/renders/10013@2x.png rename imgs/renders/{10038.png => 10038@1x.png} (100%) create mode 100644 imgs/renders/10038@2x.png rename imgs/renders/{10040.png => 10040@1x.png} (100%) create mode 100644 imgs/renders/10040@2x.png delete mode 100644 imgs/renders/1053.png create mode 100644 imgs/renders/1053@1x.png create mode 100644 imgs/renders/1053@2x.png rename imgs/renders/{1064.png => 1064@1x.png} (100%) create mode 100644 imgs/renders/1064@2x.png rename imgs/renders/{1065.png => 1065@1x.png} (100%) create mode 100644 imgs/renders/1065@2x.png rename imgs/renders/{1066.png => 1066@1x.png} (100%) create mode 100644 imgs/renders/1066@2x.png rename imgs/renders/{1067.png => 1067@1x.png} (100%) create mode 100644 imgs/renders/1067@2x.png rename imgs/renders/{10782.png => 10782@1x.png} (100%) create mode 100644 imgs/renders/10782@2x.png rename imgs/renders/{10950.png => 10950@1x.png} (100%) create mode 100644 imgs/renders/10950@2x.png rename imgs/renders/{10951.png => 10951@1x.png} (100%) create mode 100644 imgs/renders/10951@2x.png rename imgs/renders/{11775.png => 11775@1x.png} (100%) create mode 100644 imgs/renders/11775@2x.png delete mode 100644 imgs/renders/11776.png create mode 100644 imgs/renders/11776@1x.png create mode 100644 imgs/renders/11776@2x.png rename imgs/renders/{11777.png => 11777@1x.png} (100%) create mode 100644 imgs/renders/11777@2x.png rename imgs/renders/{11778.png => 11778@1x.png} (100%) create mode 100644 imgs/renders/11778@2x.png rename imgs/renders/{11859.png => 11859@1x.png} (100%) create mode 100644 imgs/renders/11859@2x.png rename imgs/renders/{11863.png => 11863@1x.png} (100%) create mode 100644 imgs/renders/11863@2x.png delete mode 100644 imgs/renders/11865.png create mode 100644 imgs/renders/11865@1x.png create mode 100644 imgs/renders/11865@2x.png rename imgs/renders/{11869.png => 11869@1x.png} (100%) create mode 100644 imgs/renders/11869@2x.png rename imgs/renders/{11875.png => 11875@1x.png} (100%) create mode 100644 imgs/renders/11875@2x.png rename imgs/renders/{11876.png => 11876@1x.png} (100%) create mode 100644 imgs/renders/11876@2x.png rename imgs/renders/{11877.png => 11877@1x.png} (100%) create mode 100644 imgs/renders/11877@2x.png rename imgs/renders/{1231.png => 1231@1x.png} (100%) create mode 100644 imgs/renders/1231@2x.png delete mode 100644 imgs/renders/1232.png create mode 100644 imgs/renders/1232@1x.png create mode 100644 imgs/renders/1232@2x.png rename imgs/renders/{1233.png => 1233@1x.png} (100%) create mode 100644 imgs/renders/1233@2x.png rename imgs/renders/{1236.png => 1236@1x.png} (100%) create mode 100644 imgs/renders/1236@2x.png rename imgs/renders/{1237.png => 1237@1x.png} (100%) create mode 100644 imgs/renders/1237@2x.png rename imgs/renders/{1240.png => 1240@1x.png} (100%) create mode 100644 imgs/renders/1240@2x.png delete mode 100644 imgs/renders/1730.png create mode 100644 imgs/renders/1730@1x.png create mode 100644 imgs/renders/1730@2x.png rename imgs/renders/{1731.png => 1731@1x.png} (100%) create mode 100644 imgs/renders/1731@2x.png rename imgs/renders/{1733.png => 1733@1x.png} (100%) create mode 100644 imgs/renders/1733@2x.png rename imgs/renders/{1751.png => 1751@1x.png} (100%) create mode 100644 imgs/renders/1751@2x.png rename imgs/renders/{1762.png => 1762@1x.png} (100%) create mode 100644 imgs/renders/1762@2x.png rename imgs/renders/{1771.png => 1771@1x.png} (100%) create mode 100644 imgs/renders/1771@2x.png rename imgs/renders/{1773.png => 1773@1x.png} (100%) create mode 100644 imgs/renders/1773@2x.png rename imgs/renders/{1776.png => 1776@1x.png} (100%) create mode 100644 imgs/renders/1776@2x.png rename imgs/renders/{1777.png => 1777@1x.png} (100%) create mode 100644 imgs/renders/1777@2x.png delete mode 100644 imgs/renders/1778.png create mode 100644 imgs/renders/1778@1x.png create mode 100644 imgs/renders/1778@2x.png rename imgs/renders/{1779.png => 1779@1x.png} (100%) create mode 100644 imgs/renders/1779@2x.png delete mode 100644 imgs/renders/1784.png create mode 100644 imgs/renders/1784@1x.png create mode 100644 imgs/renders/1784@2x.png rename imgs/renders/{1786.png => 1786@1x.png} (100%) create mode 100644 imgs/renders/1786@2x.png rename imgs/renders/{1789.png => 1789@1x.png} (100%) create mode 100644 imgs/renders/1789@2x.png delete mode 100644 imgs/renders/1802.png create mode 100644 imgs/renders/1802@1x.png create mode 100644 imgs/renders/1802@2x.png delete mode 100644 imgs/renders/1803.png create mode 100644 imgs/renders/1803@1x.png create mode 100644 imgs/renders/1803@2x.png rename imgs/renders/{1811.png => 1811@1x.png} (100%) create mode 100644 imgs/renders/1811@2x.png delete mode 100644 imgs/renders/1814.png create mode 100644 imgs/renders/1814@1x.png create mode 100644 imgs/renders/1814@2x.png rename imgs/renders/{1815.png => 1815@1x.png} (100%) create mode 100644 imgs/renders/1815@2x.png rename imgs/renders/{1816.png => 1816@1x.png} (100%) create mode 100644 imgs/renders/1816@2x.png rename imgs/renders/{1824.png => 1824@1x.png} (100%) create mode 100644 imgs/renders/1824@2x.png rename imgs/renders/{1825.png => 1825@1x.png} (100%) create mode 100644 imgs/renders/1825@2x.png rename imgs/renders/{1829.png => 1829@1x.png} (100%) create mode 100644 imgs/renders/1829@2x.png delete mode 100644 imgs/renders/1831.png create mode 100644 imgs/renders/1831@1x.png create mode 100644 imgs/renders/1831@2x.png delete mode 100644 imgs/renders/1835.png create mode 100644 imgs/renders/1835@1x.png create mode 100644 imgs/renders/1835@2x.png rename imgs/renders/{1840.png => 1840@1x.png} (100%) create mode 100644 imgs/renders/1840@2x.png rename imgs/renders/{1841.png => 1841@1x.png} (100%) create mode 100644 imgs/renders/1841@2x.png delete mode 100644 imgs/renders/1847.png create mode 100644 imgs/renders/1847@1x.png create mode 100644 imgs/renders/1847@2x.png rename imgs/renders/{1848.png => 1848@1x.png} (100%) create mode 100644 imgs/renders/1848@2x.png rename imgs/renders/{1854.png => 1854@1x.png} (100%) create mode 100644 imgs/renders/1854@2x.png rename imgs/renders/{1855.png => 1855@1x.png} (100%) create mode 100644 imgs/renders/1855@2x.png rename imgs/renders/{1860.png => 1860@1x.png} (100%) create mode 100644 imgs/renders/1860@2x.png rename imgs/renders/{1861.png => 1861@1x.png} (100%) create mode 100644 imgs/renders/1861@2x.png rename imgs/renders/{1872.png => 1872@1x.png} (100%) create mode 100644 imgs/renders/1872@2x.png delete mode 100644 imgs/renders/1878.png create mode 100644 imgs/renders/1878@1x.png create mode 100644 imgs/renders/1878@2x.png rename imgs/renders/{1881.png => 1881@1x.png} (100%) create mode 100644 imgs/renders/1881@2x.png rename imgs/renders/{1882.png => 1882@1x.png} (100%) create mode 100644 imgs/renders/1882@2x.png rename imgs/renders/{1884.png => 1884@1x.png} (100%) create mode 100644 imgs/renders/1884@2x.png rename imgs/renders/{1887.png => 1887@1x.png} (100%) create mode 100644 imgs/renders/1887@2x.png rename imgs/renders/{1894.png => 1894@1x.png} (100%) create mode 100644 imgs/renders/1894@2x.png rename imgs/renders/{1901.png => 1901@1x.png} (100%) create mode 100644 imgs/renders/1901@2x.png rename imgs/renders/{1902.png => 1902@1x.png} (100%) create mode 100644 imgs/renders/1902@2x.png rename imgs/renders/{1903.png => 1903@1x.png} (100%) create mode 100644 imgs/renders/1903@2x.png delete mode 100644 imgs/renders/1909.png create mode 100644 imgs/renders/1909@1x.png create mode 100644 imgs/renders/1909@2x.png rename imgs/renders/{1912.png => 1912@1x.png} (100%) create mode 100644 imgs/renders/1912@2x.png rename imgs/renders/{1913.png => 1913@1x.png} (100%) create mode 100644 imgs/renders/1913@2x.png rename imgs/renders/{1914.png => 1914@1x.png} (100%) create mode 100644 imgs/renders/1914@2x.png delete mode 100644 imgs/renders/1916.png create mode 100644 imgs/renders/1916@1x.png create mode 100644 imgs/renders/1916@2x.png rename imgs/renders/{1920.png => 1920@1x.png} (100%) create mode 100644 imgs/renders/1920@2x.png rename imgs/renders/{1921.png => 1921@1x.png} (100%) create mode 100644 imgs/renders/1921@2x.png rename imgs/renders/{1925.png => 1925@1x.png} (100%) create mode 100644 imgs/renders/1925@2x.png rename imgs/renders/{1928.png => 1928@1x.png} (100%) create mode 100644 imgs/renders/1928@2x.png rename imgs/renders/{1931.png => 1931@1x.png} (100%) create mode 100644 imgs/renders/1931@2x.png rename imgs/renders/{1943.png => 1943@1x.png} (100%) create mode 100644 imgs/renders/1943@2x.png rename imgs/renders/{1945.png => 1945@1x.png} (100%) create mode 100644 imgs/renders/1945@2x.png rename imgs/renders/{1948.png => 1948@1x.png} (100%) create mode 100644 imgs/renders/1948@2x.png rename imgs/renders/{1950.png => 1950@1x.png} (100%) create mode 100644 imgs/renders/1950@2x.png rename imgs/renders/{1966.png => 1966@1x.png} (100%) create mode 100644 imgs/renders/1966@2x.png rename imgs/renders/{1973.png => 1973@1x.png} (100%) create mode 100644 imgs/renders/1973@2x.png rename imgs/renders/{1976.png => 1976@1x.png} (100%) create mode 100644 imgs/renders/1976@2x.png rename imgs/renders/{20136.png => 20136@1x.png} (100%) create mode 100644 imgs/renders/20136@2x.png rename imgs/renders/{20137.png => 20137@1x.png} (100%) create mode 100644 imgs/renders/20137@2x.png delete mode 100644 imgs/renders/20198.png create mode 100644 imgs/renders/20198@1x.png create mode 100644 imgs/renders/20198@2x.png rename imgs/renders/{20199.png => 20199@1x.png} (100%) create mode 100644 imgs/renders/20199@2x.png delete mode 100644 imgs/renders/20200.png create mode 100644 imgs/renders/20200@1x.png create mode 100644 imgs/renders/20200@2x.png rename imgs/renders/{20201.png => 20201@1x.png} (100%) create mode 100644 imgs/renders/20201@2x.png rename imgs/renders/{20202.png => 20202@1x.png} (100%) create mode 100644 imgs/renders/20202@2x.png delete mode 100644 imgs/renders/20215.png create mode 100644 imgs/renders/20215@1x.png create mode 100644 imgs/renders/20215@2x.png delete mode 100644 imgs/renders/20216.png create mode 100644 imgs/renders/20216@1x.png create mode 100644 imgs/renders/20216@2x.png delete mode 100644 imgs/renders/20217.png create mode 100644 imgs/renders/20217@1x.png create mode 100644 imgs/renders/20217@2x.png delete mode 100644 imgs/renders/20218.png create mode 100644 imgs/renders/20218@1x.png create mode 100644 imgs/renders/20218@2x.png delete mode 100644 imgs/renders/20227.png create mode 100644 imgs/renders/20227@1x.png create mode 100644 imgs/renders/20227@2x.png delete mode 100644 imgs/renders/20229.png create mode 100644 imgs/renders/20229@1x.png create mode 100644 imgs/renders/20229@2x.png delete mode 100644 imgs/renders/20230.png create mode 100644 imgs/renders/20230@1x.png create mode 100644 imgs/renders/20230@2x.png rename imgs/renders/{20231.png => 20231@1x.png} (100%) create mode 100644 imgs/renders/20231@2x.png rename imgs/renders/{20277.png => 20277@1x.png} (100%) create mode 100644 imgs/renders/20277@2x.png delete mode 100644 imgs/renders/20283.png create mode 100644 imgs/renders/20283@1x.png create mode 100644 imgs/renders/20283@2x.png rename imgs/renders/{20301.png => 20301@1x.png} (100%) create mode 100644 imgs/renders/20301@2x.png rename imgs/renders/{20344.png => 20344@1x.png} (100%) create mode 100644 imgs/renders/20344@2x.png rename imgs/renders/{20345.png => 20345@1x.png} (100%) create mode 100644 imgs/renders/20345@2x.png rename imgs/renders/{20384.png => 20384@1x.png} (100%) create mode 100644 imgs/renders/20384@2x.png rename imgs/renders/{20385.png => 20385@1x.png} (100%) create mode 100644 imgs/renders/20385@2x.png rename imgs/renders/{20386.png => 20386@1x.png} (100%) create mode 100644 imgs/renders/20386@2x.png rename imgs/renders/{20402.png => 20402@1x.png} (100%) create mode 100644 imgs/renders/20402@2x.png rename imgs/renders/{20403.png => 20403@1x.png} (100%) create mode 100644 imgs/renders/20403@2x.png rename imgs/renders/{2043.png => 2043@1x.png} (100%) create mode 100644 imgs/renders/2043@2x.png rename imgs/renders/{2044.png => 2044@1x.png} (100%) create mode 100644 imgs/renders/2044@2x.png rename imgs/renders/{2045.png => 2045@1x.png} (100%) create mode 100644 imgs/renders/2045@2x.png rename imgs/renders/{20600.png => 20600@1x.png} (100%) create mode 100644 imgs/renders/20600@2x.png rename imgs/renders/{20604.png => 20604@1x.png} (100%) create mode 100644 imgs/renders/20604@2x.png delete mode 100644 imgs/renders/20605.png create mode 100644 imgs/renders/20605@1x.png create mode 100644 imgs/renders/20605@2x.png rename imgs/renders/{20614.png => 20614@1x.png} (100%) create mode 100644 imgs/renders/20614@2x.png rename imgs/renders/{20615.png => 20615@1x.png} (100%) create mode 100644 imgs/renders/20615@2x.png rename imgs/renders/{20616.png => 20616@1x.png} (100%) create mode 100644 imgs/renders/20616@2x.png rename imgs/renders/{20977.png => 20977@1x.png} (100%) create mode 100644 imgs/renders/20977@2x.png delete mode 100644 imgs/renders/20980.png create mode 100644 imgs/renders/20980@1x.png create mode 100644 imgs/renders/20980@2x.png delete mode 100644 imgs/renders/21052.png create mode 100644 imgs/renders/21052@1x.png create mode 100644 imgs/renders/21052@2x.png rename imgs/renders/{21076.png => 21076@1x.png} (100%) create mode 100644 imgs/renders/21076@2x.png delete mode 100644 imgs/renders/21135.png create mode 100644 imgs/renders/21135@1x.png create mode 100644 imgs/renders/21135@2x.png delete mode 100644 imgs/renders/21137.png create mode 100644 imgs/renders/21137@1x.png create mode 100644 imgs/renders/21137@2x.png rename imgs/renders/{21138.png => 21138@1x.png} (100%) create mode 100644 imgs/renders/21138@2x.png delete mode 100644 imgs/renders/21139.png create mode 100644 imgs/renders/21139@1x.png create mode 100644 imgs/renders/21139@2x.png delete mode 100644 imgs/renders/21150.png create mode 100644 imgs/renders/21150@1x.png create mode 100644 imgs/renders/21150@2x.png rename imgs/renders/{21155.png => 21155@1x.png} (100%) create mode 100644 imgs/renders/21155@2x.png rename imgs/renders/{21156.png => 21156@1x.png} (100%) create mode 100644 imgs/renders/21156@2x.png rename imgs/renders/{21210.png => 21210@1x.png} (100%) create mode 100644 imgs/renders/21210@2x.png delete mode 100644 imgs/renders/21217.png create mode 100644 imgs/renders/21217@1x.png create mode 100644 imgs/renders/21217@2x.png rename imgs/renders/{21218.png => 21218@1x.png} (100%) create mode 100644 imgs/renders/21218@2x.png rename imgs/renders/{21219.png => 21219@1x.png} (100%) create mode 100644 imgs/renders/21219@2x.png rename imgs/renders/{21220.png => 21220@1x.png} (100%) create mode 100644 imgs/renders/21220@2x.png rename imgs/renders/{21221.png => 21221@1x.png} (100%) create mode 100644 imgs/renders/21221@2x.png rename imgs/renders/{21222.png => 21222@1x.png} (100%) create mode 100644 imgs/renders/21222@2x.png rename imgs/renders/{21223.png => 21223@1x.png} (100%) create mode 100644 imgs/renders/21223@2x.png rename imgs/renders/{21224.png => 21224@1x.png} (100%) create mode 100644 imgs/renders/21224@2x.png rename imgs/renders/{2122.png => 2122@1x.png} (100%) create mode 100644 imgs/renders/2122@2x.png delete mode 100644 imgs/renders/2123.png create mode 100644 imgs/renders/2123@1x.png create mode 100644 imgs/renders/2123@2x.png rename imgs/renders/{21252.png => 21252@1x.png} (100%) create mode 100644 imgs/renders/21252@2x.png rename imgs/renders/{21254.png => 21254@1x.png} (100%) create mode 100644 imgs/renders/21254@2x.png rename imgs/renders/{21255.png => 21255@1x.png} (100%) create mode 100644 imgs/renders/21255@2x.png rename imgs/renders/{21256.png => 21256@1x.png} (100%) create mode 100644 imgs/renders/21256@2x.png rename imgs/renders/{21277.png => 21277@1x.png} (100%) create mode 100644 imgs/renders/21277@2x.png rename imgs/renders/{21278.png => 21278@1x.png} (100%) create mode 100644 imgs/renders/21278@2x.png delete mode 100644 imgs/renders/21279.png create mode 100644 imgs/renders/21279@1x.png create mode 100644 imgs/renders/21279@2x.png rename imgs/renders/{21280.png => 21280@1x.png} (100%) create mode 100644 imgs/renders/21280@2x.png rename imgs/renders/{21282.png => 21282@1x.png} (100%) create mode 100644 imgs/renders/21282@2x.png rename imgs/renders/{21283.png => 21283@1x.png} (100%) create mode 100644 imgs/renders/21283@2x.png delete mode 100644 imgs/renders/21315.png create mode 100644 imgs/renders/21315@1x.png create mode 100644 imgs/renders/21315@2x.png rename imgs/renders/{21344.png => 21344@1x.png} (100%) create mode 100644 imgs/renders/21344@2x.png rename imgs/renders/{21354.png => 21354@1x.png} (100%) create mode 100644 imgs/renders/21354@2x.png rename imgs/renders/{21358.png => 21358@1x.png} (100%) create mode 100644 imgs/renders/21358@2x.png rename imgs/renders/{21360.png => 21360@1x.png} (100%) create mode 100644 imgs/renders/21360@2x.png rename imgs/renders/{21361.png => 21361@1x.png} (100%) create mode 100644 imgs/renders/21361@2x.png rename imgs/renders/{21362.png => 21362@1x.png} (100%) create mode 100644 imgs/renders/21362@2x.png rename imgs/renders/{2138.png => 2138@1x.png} (100%) create mode 100644 imgs/renders/2138@2x.png rename imgs/renders/{2139.png => 2139@1x.png} (100%) create mode 100644 imgs/renders/2139@2x.png rename imgs/renders/{21405.png => 21405@1x.png} (100%) create mode 100644 imgs/renders/21405@2x.png rename imgs/renders/{21406.png => 21406@1x.png} (100%) create mode 100644 imgs/renders/21406@2x.png rename imgs/renders/{2140.png => 2140@1x.png} (100%) create mode 100644 imgs/renders/2140@2x.png delete mode 100644 imgs/renders/2141.png create mode 100644 imgs/renders/2141@1x.png create mode 100644 imgs/renders/2141@2x.png rename imgs/renders/{21445.png => 21445@1x.png} (100%) create mode 100644 imgs/renders/21445@2x.png rename imgs/renders/{21451.png => 21451@1x.png} (100%) create mode 100644 imgs/renders/21451@2x.png delete mode 100644 imgs/renders/21489.png create mode 100644 imgs/renders/21489@1x.png create mode 100644 imgs/renders/21489@2x.png delete mode 100644 imgs/renders/21490.png create mode 100644 imgs/renders/21490@1x.png create mode 100644 imgs/renders/21490@2x.png rename imgs/renders/{21493.png => 21493@1x.png} (100%) create mode 100644 imgs/renders/21493@2x.png rename imgs/renders/{2157.png => 2157@1x.png} (100%) create mode 100644 imgs/renders/2157@2x.png rename imgs/renders/{2159.png => 2159@1x.png} (100%) create mode 100644 imgs/renders/2159@2x.png rename imgs/renders/{2160.png => 2160@1x.png} (100%) create mode 100644 imgs/renders/2160@2x.png rename imgs/renders/{21766.png => 21766@1x.png} (100%) create mode 100644 imgs/renders/21766@2x.png delete mode 100644 imgs/renders/21821.png create mode 100644 imgs/renders/21821@1x.png create mode 100644 imgs/renders/21821@2x.png rename imgs/renders/{21822.png => 21822@1x.png} (100%) create mode 100644 imgs/renders/21822@2x.png delete mode 100644 imgs/renders/21864.png create mode 100644 imgs/renders/21864@1x.png create mode 100644 imgs/renders/21864@2x.png delete mode 100644 imgs/renders/21976.png create mode 100644 imgs/renders/21976@1x.png create mode 100644 imgs/renders/21976@2x.png delete mode 100644 imgs/renders/21993.png create mode 100644 imgs/renders/21993@1x.png create mode 100644 imgs/renders/21993@2x.png delete mode 100644 imgs/renders/22001.png create mode 100644 imgs/renders/22001@1x.png create mode 100644 imgs/renders/22001@2x.png delete mode 100644 imgs/renders/22007.png create mode 100644 imgs/renders/22007@1x.png create mode 100644 imgs/renders/22007@2x.png rename imgs/renders/{22070.png => 22070@1x.png} (100%) create mode 100644 imgs/renders/22070@2x.png rename imgs/renders/{22142.png => 22142@1x.png} (100%) create mode 100644 imgs/renders/22142@2x.png rename imgs/renders/{22150.png => 22150@1x.png} (100%) create mode 100644 imgs/renders/22150@2x.png delete mode 100644 imgs/renders/22161.png create mode 100644 imgs/renders/22161@1x.png create mode 100644 imgs/renders/22161@2x.png rename imgs/renders/{22189.png => 22189@1x.png} (100%) create mode 100644 imgs/renders/22189@2x.png rename imgs/renders/{22195.png => 22195@1x.png} (100%) create mode 100644 imgs/renders/22195@2x.png rename imgs/renders/{2239.png => 2239@1x.png} (100%) create mode 100644 imgs/renders/2239@2x.png rename imgs/renders/{2240.png => 2240@1x.png} (100%) create mode 100644 imgs/renders/2240@2x.png rename imgs/renders/{2241.png => 2241@1x.png} (100%) create mode 100644 imgs/renders/2241@2x.png rename imgs/renders/{2242.png => 2242@1x.png} (100%) create mode 100644 imgs/renders/2242@2x.png rename imgs/renders/{2295.png => 2295@1x.png} (100%) create mode 100644 imgs/renders/2295@2x.png rename imgs/renders/{2382.png => 2382@1x.png} (100%) create mode 100644 imgs/renders/2382@2x.png delete mode 100644 imgs/renders/2383.png create mode 100644 imgs/renders/2383@1x.png create mode 100644 imgs/renders/2383@2x.png rename imgs/renders/{2384.png => 2384@1x.png} (100%) create mode 100644 imgs/renders/2384@2x.png rename imgs/renders/{2385.png => 2385@1x.png} (100%) create mode 100644 imgs/renders/2385@2x.png rename imgs/renders/{2387.png => 2387@1x.png} (100%) create mode 100644 imgs/renders/2387@2x.png delete mode 100644 imgs/renders/2388.png create mode 100644 imgs/renders/2388@1x.png create mode 100644 imgs/renders/2388@2x.png rename imgs/renders/{2389.png => 2389@1x.png} (100%) create mode 100644 imgs/renders/2389@2x.png rename imgs/renders/{2390.png => 2390@1x.png} (100%) create mode 100644 imgs/renders/2390@2x.png rename imgs/renders/{2522.png => 2522@1x.png} (100%) create mode 100644 imgs/renders/2522@2x.png rename imgs/renders/{2523.png => 2523@1x.png} (100%) create mode 100644 imgs/renders/2523@2x.png rename imgs/renders/{2524.png => 2524@1x.png} (100%) create mode 100644 imgs/renders/2524@2x.png rename imgs/renders/{2632.png => 2632@1x.png} (100%) create mode 100644 imgs/renders/2632@2x.png rename imgs/renders/{2633.png => 2633@1x.png} (100%) create mode 100644 imgs/renders/2633@2x.png rename imgs/renders/{2634.png => 2634@1x.png} (100%) create mode 100644 imgs/renders/2634@2x.png rename imgs/renders/{2635.png => 2635@1x.png} (100%) create mode 100644 imgs/renders/2635@2x.png rename imgs/renders/{2636.png => 2636@1x.png} (100%) create mode 100644 imgs/renders/2636@2x.png delete mode 100644 imgs/renders/2642.png create mode 100644 imgs/renders/2642@1x.png create mode 100644 imgs/renders/2642@2x.png delete mode 100644 imgs/renders/2709.png create mode 100644 imgs/renders/2709@1x.png create mode 100644 imgs/renders/2709@2x.png rename imgs/renders/{2710.png => 2710@1x.png} (100%) create mode 100644 imgs/renders/2710@2x.png rename imgs/renders/{2711.png => 2711@1x.png} (100%) create mode 100644 imgs/renders/2711@2x.png rename imgs/renders/{2712.png => 2712@1x.png} (100%) create mode 100644 imgs/renders/2712@2x.png rename imgs/renders/{2713.png => 2713@1x.png} (100%) create mode 100644 imgs/renders/2713@2x.png rename imgs/renders/{2714.png => 2714@1x.png} (100%) create mode 100644 imgs/renders/2714@2x.png rename imgs/renders/{2715.png => 2715@1x.png} (100%) create mode 100644 imgs/renders/2715@2x.png rename imgs/renders/{2716.png => 2716@1x.png} (100%) create mode 100644 imgs/renders/2716@2x.png rename imgs/renders/{2737.png => 2737@1x.png} (100%) create mode 100644 imgs/renders/2737@2x.png rename imgs/renders/{2738.png => 2738@1x.png} (100%) create mode 100644 imgs/renders/2738@2x.png rename imgs/renders/{2739.png => 2739@1x.png} (100%) create mode 100644 imgs/renders/2739@2x.png rename imgs/renders/{2740.png => 2740@1x.png} (100%) create mode 100644 imgs/renders/2740@2x.png rename imgs/renders/{2743.png => 2743@1x.png} (100%) create mode 100644 imgs/renders/2743@2x.png rename imgs/renders/{2744.png => 2744@1x.png} (100%) create mode 100644 imgs/renders/2744@2x.png rename imgs/renders/{2755.png => 2755@1x.png} (100%) create mode 100644 imgs/renders/2755@2x.png delete mode 100644 imgs/renders/2786.png create mode 100644 imgs/renders/2786@1x.png create mode 100644 imgs/renders/2786@2x.png rename imgs/renders/{2794.png => 2794@1x.png} (100%) create mode 100644 imgs/renders/2794@2x.png rename imgs/renders/{2798.png => 2798@1x.png} (100%) create mode 100644 imgs/renders/2798@2x.png rename imgs/renders/{2801.png => 2801@1x.png} (100%) create mode 100644 imgs/renders/2801@2x.png delete mode 100644 imgs/renders/2802.png create mode 100644 imgs/renders/2802@1x.png create mode 100644 imgs/renders/2802@2x.png rename imgs/renders/{2804.png => 2804@1x.png} (100%) create mode 100644 imgs/renders/2804@2x.png rename imgs/renders/{2805.png => 2805@1x.png} (100%) create mode 100644 imgs/renders/2805@2x.png rename imgs/renders/{2807.png => 2807@1x.png} (100%) create mode 100644 imgs/renders/2807@2x.png rename imgs/renders/{2811.png => 2811@1x.png} (100%) create mode 100644 imgs/renders/2811@2x.png rename imgs/renders/{2814.png => 2814@1x.png} (100%) create mode 100644 imgs/renders/2814@2x.png rename imgs/renders/{2894.png => 2894@1x.png} (100%) create mode 100644 imgs/renders/2894@2x.png rename imgs/renders/{2905.png => 2905@1x.png} (100%) create mode 100644 imgs/renders/2905@2x.png rename imgs/renders/{2906.png => 2906@1x.png} (100%) create mode 100644 imgs/renders/2906@2x.png rename imgs/renders/{2909.png => 2909@1x.png} (100%) create mode 100644 imgs/renders/2909@2x.png rename imgs/renders/{2910.png => 2910@1x.png} (100%) create mode 100644 imgs/renders/2910@2x.png rename imgs/renders/{2911.png => 2911@1x.png} (100%) create mode 100644 imgs/renders/2911@2x.png rename imgs/renders/{2912.png => 2912@1x.png} (100%) create mode 100644 imgs/renders/2912@2x.png rename imgs/renders/{2925.png => 2925@1x.png} (100%) create mode 100644 imgs/renders/2925@2x.png rename imgs/renders/{2926.png => 2926@1x.png} (100%) create mode 100644 imgs/renders/2926@2x.png rename imgs/renders/{2928.png => 2928@1x.png} (100%) create mode 100644 imgs/renders/2928@2x.png rename imgs/renders/{2929.png => 2929@1x.png} (100%) create mode 100644 imgs/renders/2929@2x.png rename imgs/renders/{2930.png => 2930@1x.png} (100%) create mode 100644 imgs/renders/2930@2x.png rename imgs/renders/{2931.png => 2931@1x.png} (100%) create mode 100644 imgs/renders/2931@2x.png rename imgs/renders/{2932.png => 2932@1x.png} (100%) create mode 100644 imgs/renders/2932@2x.png rename imgs/renders/{2938.png => 2938@1x.png} (100%) create mode 100644 imgs/renders/2938@2x.png rename imgs/renders/{2939.png => 2939@1x.png} (100%) create mode 100644 imgs/renders/2939@2x.png rename imgs/renders/{2940.png => 2940@1x.png} (100%) create mode 100644 imgs/renders/2940@2x.png rename imgs/renders/{2942.png => 2942@1x.png} (100%) create mode 100644 imgs/renders/2942@2x.png rename imgs/renders/{296.png => 296@1x.png} (100%) create mode 100644 imgs/renders/296@2x.png rename imgs/renders/{297.png => 297@1x.png} (100%) create mode 100644 imgs/renders/297@2x.png rename imgs/renders/{298.png => 298@1x.png} (100%) create mode 100644 imgs/renders/298@2x.png rename imgs/renders/{299.png => 299@1x.png} (100%) create mode 100644 imgs/renders/299@2x.png rename imgs/renders/{300.png => 300@1x.png} (100%) create mode 100644 imgs/renders/300@2x.png rename imgs/renders/{301.png => 301@1x.png} (100%) create mode 100644 imgs/renders/301@2x.png delete mode 100644 imgs/renders/3020.png create mode 100644 imgs/renders/3020@1x.png create mode 100644 imgs/renders/3020@2x.png rename imgs/renders/{302.png => 302@1x.png} (100%) create mode 100644 imgs/renders/302@2x.png rename imgs/renders/{303.png => 303@1x.png} (100%) create mode 100644 imgs/renders/303@2x.png rename imgs/renders/{304.png => 304@1x.png} (100%) create mode 100644 imgs/renders/304@2x.png rename imgs/renders/{305.png => 305@1x.png} (100%) create mode 100644 imgs/renders/305@2x.png rename imgs/renders/{306.png => 306@1x.png} (100%) create mode 100644 imgs/renders/306@2x.png rename imgs/renders/{308.png => 308@1x.png} (100%) create mode 100644 imgs/renders/308@2x.png rename imgs/renders/{309.png => 309@1x.png} (100%) create mode 100644 imgs/renders/309@2x.png rename imgs/renders/{310.png => 310@1x.png} (100%) create mode 100644 imgs/renders/310@2x.png rename imgs/renders/{311.png => 311@1x.png} (100%) create mode 100644 imgs/renders/311@2x.png rename imgs/renders/{312.png => 312@1x.png} (100%) create mode 100644 imgs/renders/312@2x.png rename imgs/renders/{3132.png => 3132@1x.png} (100%) create mode 100644 imgs/renders/3132@2x.png delete mode 100644 imgs/renders/3133.png create mode 100644 imgs/renders/3133@1x.png create mode 100644 imgs/renders/3133@2x.png rename imgs/renders/{3134.png => 3134@1x.png} (100%) create mode 100644 imgs/renders/3134@2x.png delete mode 100644 imgs/renders/3135.png create mode 100644 imgs/renders/3135@1x.png create mode 100644 imgs/renders/3135@2x.png rename imgs/renders/{313.png => 313@1x.png} (100%) create mode 100644 imgs/renders/313@2x.png delete mode 100644 imgs/renders/314.png create mode 100644 imgs/renders/314@1x.png create mode 100644 imgs/renders/314@2x.png rename imgs/renders/{3168.png => 3168@1x.png} (100%) create mode 100644 imgs/renders/3168@2x.png delete mode 100644 imgs/renders/3169.png create mode 100644 imgs/renders/3169@1x.png create mode 100644 imgs/renders/3169@2x.png rename imgs/renders/{316.png => 316@1x.png} (100%) create mode 100644 imgs/renders/316@2x.png delete mode 100644 imgs/renders/3170.png create mode 100644 imgs/renders/3170@1x.png create mode 100644 imgs/renders/3170@2x.png rename imgs/renders/{317.png => 317@1x.png} (100%) create mode 100644 imgs/renders/317@2x.png rename imgs/renders/{318.png => 318@1x.png} (100%) create mode 100644 imgs/renders/318@2x.png rename imgs/renders/{319.png => 319@1x.png} (100%) create mode 100644 imgs/renders/319@2x.png delete mode 100644 imgs/renders/320.png delete mode 100644 imgs/renders/3204.png create mode 100644 imgs/renders/3204@1x.png create mode 100644 imgs/renders/3204@2x.png delete mode 100644 imgs/renders/3205.png create mode 100644 imgs/renders/3205@1x.png create mode 100644 imgs/renders/3205@2x.png rename imgs/renders/{3207.png => 3207@1x.png} (100%) create mode 100644 imgs/renders/3207@2x.png create mode 100644 imgs/renders/320@1x.png create mode 100644 imgs/renders/320@2x.png rename imgs/renders/{321.png => 321@1x.png} (100%) create mode 100644 imgs/renders/321@2x.png rename imgs/renders/{322.png => 322@1x.png} (100%) create mode 100644 imgs/renders/322@2x.png rename imgs/renders/{323.png => 323@1x.png} (100%) create mode 100644 imgs/renders/323@2x.png rename imgs/renders/{324.png => 324@1x.png} (100%) create mode 100644 imgs/renders/324@2x.png rename imgs/renders/{325.png => 325@1x.png} (100%) create mode 100644 imgs/renders/325@2x.png rename imgs/renders/{326.png => 326@1x.png} (100%) create mode 100644 imgs/renders/326@2x.png rename imgs/renders/{327.png => 327@1x.png} (100%) create mode 100644 imgs/renders/327@2x.png rename imgs/renders/{328.png => 328@1x.png} (100%) create mode 100644 imgs/renders/328@2x.png rename imgs/renders/{330.png => 330@1x.png} (100%) create mode 100644 imgs/renders/330@2x.png delete mode 100644 imgs/renders/3331.png create mode 100644 imgs/renders/3331@1x.png create mode 100644 imgs/renders/3331@2x.png rename imgs/renders/{3349.png => 3349@1x.png} (100%) create mode 100644 imgs/renders/3349@2x.png rename imgs/renders/{3350.png => 3350@1x.png} (100%) create mode 100644 imgs/renders/3350@2x.png rename imgs/renders/{3351.png => 3351@1x.png} (100%) create mode 100644 imgs/renders/3351@2x.png delete mode 100644 imgs/renders/3352.png create mode 100644 imgs/renders/3352@1x.png create mode 100644 imgs/renders/3352@2x.png rename imgs/renders/{3353.png => 3353@1x.png} (100%) create mode 100644 imgs/renders/3353@2x.png rename imgs/renders/{3354.png => 3354@1x.png} (100%) create mode 100644 imgs/renders/3354@2x.png rename imgs/renders/{3355.png => 3355@1x.png} (100%) create mode 100644 imgs/renders/3355@2x.png rename imgs/renders/{3356.png => 3356@1x.png} (100%) create mode 100644 imgs/renders/3356@2x.png rename imgs/renders/{3357.png => 3357@1x.png} (100%) create mode 100644 imgs/renders/3357@2x.png rename imgs/renders/{3359.png => 3359@1x.png} (100%) create mode 100644 imgs/renders/3359@2x.png rename imgs/renders/{335.png => 335@1x.png} (100%) create mode 100644 imgs/renders/335@2x.png rename imgs/renders/{3360.png => 3360@1x.png} (100%) create mode 100644 imgs/renders/3360@2x.png rename imgs/renders/{3361.png => 3361@1x.png} (100%) create mode 100644 imgs/renders/3361@2x.png rename imgs/renders/{3362.png => 3362@1x.png} (100%) create mode 100644 imgs/renders/3362@2x.png rename imgs/renders/{3363.png => 3363@1x.png} (100%) create mode 100644 imgs/renders/3363@2x.png rename imgs/renders/{3364.png => 3364@1x.png} (100%) create mode 100644 imgs/renders/3364@2x.png rename imgs/renders/{3365.png => 3365@1x.png} (100%) create mode 100644 imgs/renders/3365@2x.png rename imgs/renders/{3367.png => 3367@1x.png} (100%) create mode 100644 imgs/renders/3367@2x.png rename imgs/renders/{337.png => 337@1x.png} (100%) create mode 100644 imgs/renders/337@2x.png rename imgs/renders/{338.png => 338@1x.png} (100%) create mode 100644 imgs/renders/338@2x.png rename imgs/renders/{341.png => 341@1x.png} (100%) create mode 100644 imgs/renders/341@2x.png rename imgs/renders/{3424.png => 3424@1x.png} (100%) create mode 100644 imgs/renders/3424@2x.png rename imgs/renders/{343.png => 343@1x.png} (100%) create mode 100644 imgs/renders/343@2x.png rename imgs/renders/{3466.png => 3466@1x.png} (100%) create mode 100644 imgs/renders/3466@2x.png rename imgs/renders/{3714.png => 3714@1x.png} (100%) create mode 100644 imgs/renders/3714@2x.png rename imgs/renders/{3799.png => 3799@1x.png} (100%) create mode 100644 imgs/renders/3799@2x.png rename imgs/renders/{3800.png => 3800@1x.png} (100%) create mode 100644 imgs/renders/3800@2x.png rename imgs/renders/{3814.png => 3814@1x.png} (100%) create mode 100644 imgs/renders/3814@2x.png rename imgs/renders/{3815.png => 3815@1x.png} (100%) create mode 100644 imgs/renders/3815@2x.png rename imgs/renders/{38.png => 38@1x.png} (100%) create mode 100644 imgs/renders/38@2x.png rename imgs/renders/{39.png => 39@1x.png} (100%) create mode 100644 imgs/renders/39@2x.png rename imgs/renders/{40.png => 40@1x.png} (100%) create mode 100644 imgs/renders/40@2x.png delete mode 100644 imgs/renders/41.png create mode 100644 imgs/renders/41@1x.png create mode 100644 imgs/renders/41@2x.png rename imgs/renders/{42.png => 42@1x.png} (100%) create mode 100644 imgs/renders/42@2x.png delete mode 100644 imgs/renders/43.png create mode 100644 imgs/renders/43@1x.png create mode 100644 imgs/renders/43@2x.png rename imgs/renders/{44.png => 44@1x.png} (100%) create mode 100644 imgs/renders/44@2x.png rename imgs/renders/{4515.png => 4515@1x.png} (100%) create mode 100644 imgs/renders/4515@2x.png delete mode 100644 imgs/renders/4517.png create mode 100644 imgs/renders/4517@1x.png create mode 100644 imgs/renders/4517@2x.png rename imgs/renders/{45.png => 45@1x.png} (100%) create mode 100644 imgs/renders/45@2x.png rename imgs/renders/{46.png => 46@1x.png} (100%) create mode 100644 imgs/renders/46@2x.png rename imgs/renders/{47.png => 47@1x.png} (100%) create mode 100644 imgs/renders/47@2x.png delete mode 100644 imgs/renders/48.png create mode 100644 imgs/renders/48@1x.png create mode 100644 imgs/renders/48@2x.png rename imgs/renders/{49.png => 49@1x.png} (100%) create mode 100644 imgs/renders/49@2x.png rename imgs/renders/{50.png => 50@1x.png} (100%) create mode 100644 imgs/renders/50@2x.png delete mode 100644 imgs/renders/51.png create mode 100644 imgs/renders/51@1x.png create mode 100644 imgs/renders/51@2x.png delete mode 100644 imgs/renders/52.png create mode 100644 imgs/renders/52@1x.png create mode 100644 imgs/renders/52@2x.png rename imgs/renders/{53.png => 53@1x.png} (100%) create mode 100644 imgs/renders/53@2x.png rename imgs/renders/{54.png => 54@1x.png} (100%) create mode 100644 imgs/renders/54@2x.png rename imgs/renders/{55.png => 55@1x.png} (100%) create mode 100644 imgs/renders/55@2x.png rename imgs/renders/{56.png => 56@1x.png} (100%) create mode 100644 imgs/renders/56@2x.png rename imgs/renders/{57.png => 57@1x.png} (100%) create mode 100644 imgs/renders/57@2x.png delete mode 100644 imgs/renders/58.png create mode 100644 imgs/renders/58@1x.png create mode 100644 imgs/renders/58@2x.png delete mode 100644 imgs/renders/59.png create mode 100644 imgs/renders/59@1x.png create mode 100644 imgs/renders/59@2x.png rename imgs/renders/{60.png => 60@1x.png} (100%) create mode 100644 imgs/renders/60@2x.png rename imgs/renders/{61.png => 61@1x.png} (100%) create mode 100644 imgs/renders/61@2x.png delete mode 100644 imgs/renders/62.png create mode 100644 imgs/renders/62@1x.png create mode 100644 imgs/renders/62@2x.png rename imgs/renders/{63.png => 63@1x.png} (100%) create mode 100644 imgs/renders/63@2x.png rename imgs/renders/{64.png => 64@1x.png} (100%) create mode 100644 imgs/renders/64@2x.png rename imgs/renders/{65.png => 65@1x.png} (100%) create mode 100644 imgs/renders/65@2x.png diff --git a/imgs/icons/0.png b/imgs/icons/0@1x.png similarity index 100% rename from imgs/icons/0.png rename to imgs/icons/0@1x.png diff --git a/imgs/icons/0@2x.png b/imgs/icons/0@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e02237472ab01d7aad595a9a0c248dfbee7cb784 GIT binary patch literal 1141 zcmV-*1d98KP)n35R73n8GO@kM>naA*t(FGP{( zgD4P_YBCL%P(et%P(P zYTfm&vkaU>Y}5io#HN&rnx?s0*Y)F8PbXK7?v7|t?2nfe5omXZ_w4yW4*%Mk+8+hy zK*MKS-fabpS$Dc zbzstg`ucEOfH@MbgoxL7hQr~Q0XUBwI<#3tu7~e+%GcYsNZHeqWz)(cIlkwko!H0E z(sjKQm;q!kf{GgnRB>@}I*?OceQ>>qm=|jg%UiEJW38B1AkWRrzq$2|)$isN7Eae; zF|Y)f2TbH)H78@BBc^q=HJ%T6nxh+5%?__$Hrp(nk-vS-vbp&{8ZaMN4ZHx909iu` z7?B6=lN*Lsp|n_O22*_At_508I|PFEg8b}Vd#`yvUtzf*Z;e5?WZ+i=^z2Z23(Q_JDs%aEh7K#DW-2*(p?YMw{#e*6nla!RHnC4s{ z6X*lFfv))49e)=cDnU}l7@P|tk{9ape|B*1r#~*9^_ZdST3(!_4fq3SitmGo$dkt4 zNNzmy{ZFJQymlaE1X4*Hv!c-^(?8)Rz$^&baQUKpoRu(;ft5tk$Eqx`^a>i-> zJvo(Uo15oMniQ<}c#>*3$(gVmsDf+mrpjN=oO{{p?M~mYX1Ud`(%e8nFcN8InCbUV zjK+ita1`ceZ8S~mCEuN(F9HofJ#Yr_CzCA6G6V+x(9!A*oC6|g+C&X}u~@8w1m*TH z1pxGpgIf_D!HT6=;A5cXL&+w3kUpRRDe=`L!N?uM7!u)6Ylq>bTxFDL00000NkvXX Hu0mjfLI^K! literal 0 HcmV?d00001 diff --git a/imgs/icons/10012.png b/imgs/icons/10012@1x.png similarity index 100% rename from imgs/icons/10012.png rename to imgs/icons/10012@1x.png diff --git a/imgs/icons/10012@2x.png b/imgs/icons/10012@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f87955112c5c3d2d34c039cb9ac4539f1f28d463 GIT binary patch literal 1848 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/10015.png b/imgs/icons/10015@1x.png similarity index 100% rename from imgs/icons/10015.png rename to imgs/icons/10015@1x.png diff --git a/imgs/icons/10015@2x.png b/imgs/icons/10015@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1e48b6ccefd9c9e89afab3d2550808d8a878fbe2 GIT binary patch literal 1857 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/10017.png b/imgs/icons/10017@1x.png similarity index 100% rename from imgs/icons/10017.png rename to imgs/icons/10017@1x.png diff --git a/imgs/icons/10017@2x.png b/imgs/icons/10017@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d88abfa3e703794feb3629678a468d7615e0ca9b GIT binary patch literal 2214 zcmV;X2wC@uP)458703VQE%WBho6X}HkL@@PG2pBqU^$8X(Z%;E>IG;+gS`XL+-{?ev4k#ehTX_AlK} z_r806_q=GpVbzRSH-n@D0e=$C90A?15 z$a!t=?mPc|s{hYNkDpkyq^VK9@4;_6tJbWs`}+3o&yS35dF;t2vjhSNJYRq-x%3LS z!uK^*TRu88qzw)ZDgy%_sz#;aEmo@cT`W$mBO>lj>{!sA(tH;6^z;w_96o;R$UE=9 ze{WH6c)Y698%K}e)r0#5+2wlouCH!94S*8;{qsKkg4EsJEds#Z-+Or1E#J7y`SEXm zIZ-u@(#vn|<=ejf^{oI9kH_bApxL^byJ*IEB9XASZrj>X$`?DL;m}wypUb%!fm!;*pF;_;)l=l_Vzk8i2n;<8Gx<2uKz@GNsoVc?%dxirV(9r zQ)i}X8M-350`0N3>gls*%(3KUXWflAi_HxUR(f)3+Y5UV->E^&D;flRoW*9SRRDJo z(e2C}j@@uwPuZ|mt!R%GnwuA8EZZnclH~UJeYPlyW@<9U9=D3y)~yl7CMNjQsWZQ4 z=BD1>UWb{l>WSHuGmCuy!pvN7d)(&Dw|2EjE{Sir{(AQN{mJ@h`*!ha0JFn}YY>tk2<$jcMf3XSwv&m zG-oQMXgC};{F--4b*n--U$se;hya+T1+A{ZX^uDCA^`l@YyUpks?$#yA}d4BXBH1N3 z>cfP5-htp35!OT~z5qZX6iJ@mcf$tY&>;XIW)=WAMD&STF*^!eH3%I*1we&}%C>E> z+wX^4Q`znHLzN9M>sTBSus9^KOCS&cO$7^r#in6EQe6KvQp*QSL^csI^A2$?00v+I zC;%we0LlWPN+h9LDu7^Vql^5X=&c;v|Zr@8Rgd*D+Nn!2~dRDG4KUo(KeXDFy&++Vm}Z z-^)9Hv3}#-UoMvl#^Kj@v?oVCc-}Xje5ALx7v0_6;_ORk0m#(6-~&(^y*TX36{aLB zucMl~#Hp-JUaud5lHzK)fRQ1Q23NNcb*|uG(95}Onv>opq>uLpnVE=)e*UXxLlP=> zxtJ4Wm&^L~(@%@JGCkxD2Ky3;#Mq}ZVF5r^k|fEt?ZU$kZCRTdd{1yqEj?pn1LUutcn#bOa{VhT%n6m1x%Re>sP zXq6!6FJW?YobFwF6FvLXV`7V9<7;(W+a(n)9i z?YFWPXcWv!&aq8H+_mE$DCresige=aSY|iioCfd_fFS_JoK57GEnBR&Vukj_2%JdU|?n0KxzfLCWhfM?m;C;KsA+yd^>_ruqmiJv zNl_J{SjdZq-+D_tH83!|=aqdsUfZ+No)|kvne;fv+Lux~ozJ;l$|(!z*L5TT7`03P z`ORZ3lo)|PU1#gH4;G91Mkd^-xD=1y=M^=N%E4fu>ht^G8y+4#aOlt*F9V>?_Q((J z`AXNL&5fbv-FuH-cj8?B+En~W7sI{TY%n=cmFR%Au zx~JUS8r7Zy@G}5+0%*iSUt+UF>({TB=GuUWz|1rA1b|vvT2w%72GAkPawmWY=J^Vn o7t9=EE{U;NOu=-Oz2dL_4*<8Hw>(udr2qf`07*qoM6N<$g40_!O#lD@ literal 0 HcmV?d00001 diff --git a/imgs/icons/10018.png b/imgs/icons/10018@1x.png similarity index 100% rename from imgs/icons/10018.png rename to imgs/icons/10018@1x.png diff --git a/imgs/icons/10018@2x.png b/imgs/icons/10018@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2c35881073c4a80350d9370b39e220890aa1a14d GIT binary patch literal 2370 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/10019.png b/imgs/icons/10019@1x.png similarity index 100% rename from imgs/icons/10019.png rename to imgs/icons/10019@1x.png diff --git a/imgs/icons/10019@2x.png b/imgs/icons/10019@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8288bda1fe8874a5e787955827fbd263c22e42fb GIT binary patch literal 2182 zcmV;12zmF3P)nXBN?WA1 zj;l&760}97l?oM=Kvlse)KD5|ATdrtAZ?x`e#Um4*k;$eeysQ5ecZ?N$F6B`UXIis zJ<|Dc&mGNtGxN=yIlxseW~T1$Zbx%-v!k`ORqE*Ikd7QVB6oCjNLQ=t|6Wvl8QXJ$pZR za`1HDW4fk2zIN@}A14>``@a9wQyYnh+uGWet=F-9>jkeS!jbyn;bF|D=X0lq2c@T< zeTKI-G$1xNC+l9l3;_E2`j#Epi{D#yYJ}d7( zcK8P^O}89uZEcl0J3FoaJ%GaEw_bbwBVR@3WaY{#YTCNRe(>I}@k8JI7PO$>*s)`W zIa*qJRXVREOaKUN1-a*TKd0XIz?WZ2Cg!)*)P-!xDWq&ZD{4b4xH44nlLwxByy55z zFBq+@t;;US%K;EY08Bq4o0;kFyLw(0it^~@EgNjNR~ND59L|KtXm!m>Zrr%3EF6iw z(e{VmtnBRUw6IJfUP@?@L?yB;uV?1+yB@p0-L&ZbO&hN_1EGNMcuV2&crg)+z_KjS zddFQ>psc*+gYFMseZJ#)HvoY7iey|`1ytMuz1Wr0$bb(M0K0hi{4*X>2AuN11PKnMa6!8A-N zUG3%S&2_>3?;N}p09x9bFH6YtIlur606749@oYiUU2;Be$~CnsDQ__h11Kx?Bj67} zcex-*4sfyYIwXn8f;C)GU%~OzY{F zAsZ`8s^D{LFxh|;0*X{nqt)7=(P6}+3Mo!?S>13E!1i0BH&FGbs#N=P<3BC{yZCZP&sFA1btRmIWc5 zPJzkzECpO>O3ciQ&Fz8+oS%jy3gt)ua$wGa7>Y-M!%1*gdl0-f1Zy&b8ecg=dI<{< z0SqkI1cR|)%)=x60Dzvidx(zq*Z?FVvH*a&P`OJZzyM~8JF~cj5P5P4xT-XGD%}tX z1}6-b(u8pIEIiQ2K{5cs?EEzBoCQfS;czGf0FINg@yB0(@803w?n5I3hkpdXT{KP? zOTj#V7=UyUzyfT_n%O*3XA%%&1oym~lc(ayo-^P|`>-&TLfT3qju}i&O)$j?LI5n0 z&Dj(mrLLA|A=MOu0nSj80hi{B|#h-<Vj)Hmp{OXaUeZ9;*LgpuW`xFZQZ+H<#alsBvT9Az3)RSkriLm zQsx(WdU{S=tXVh#)HoAV{&}lVNdtOXHqx+pe$l2g)~`K6a4*{PLgZA`=7H z+SK%=+1Lcm44mNIZ~u+;mj}0UQAk0bpHnY}&bV zrv-ra?%n%LCYSrjv~5+>G~v{Aa;loGD6*yLy6JMetrDNtc1T2#a8w*RbXe*?u}=(~ zI>hsH5v#7Q9wTG1sZ3tC0$@jDlhH`z#Qc1$7k~udmhGEXKDw$V z(6ncN@6l*H_YQ!A0RFw``PD93&ZsSfz?wB{R9)AD0JZ>V1#l05^(f347dX7^C)9cJ zgyv?^yyQnqON-s!-p(jgkqCuCS}K*&iPD@(A%VhxbHR1|AE@A>fD!azVgLXD07*qo IM6N<$f;(9jVgLXD literal 0 HcmV?d00001 diff --git a/imgs/icons/10020.png b/imgs/icons/10020@1x.png similarity index 100% rename from imgs/icons/10020.png rename to imgs/icons/10020@1x.png diff --git a/imgs/icons/10020@2x.png b/imgs/icons/10020@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b907401f1d152107661d78e5ec2fb699a11508d5 GIT binary patch literal 2823 zcmV+i3;6VjP)B8UWU-1O3Q-s~*@k@?m|+=az4z;nC?RRmV|z|}PM@Fe{qB99_x;}c ze$NN|KY~(9D5Wf=lmH-ly`BX?{wJhaS(F(YAIn-$P{2`28GI+~k?=1UQc6h!$B;Q!eX_-B7AW+u-803n1{H+6d6sW5bnpA;M7!GN1JBLVw%?S`Se6!Vs? zM)JHlC@;Q-W~l@bk>Qv+Jsb+D6p{y<*wNO3i-k9lo12UJ+8RX1Cn98g5cse#j0+7T zDy0wK)7^EUv!k;Y01O5l9c{t~4M+jt%lsP#0yd_-y;azM=r}Xj)rcWWAEwSoLSkYf zp5C?va)lg$UQ)PRZZtHv;OvzfxKUOKo0EsRvk3}?0+G=%Q2D7~A0FgQ9j&a}HnJz@ zvkzYx+i#;i0Dw?R0pO);cWa}zZhc-*`T8-zL0YIZaEF~pHXfJA~ z^{96N5V!}~3w3pMUQ(rc$K0tCMF&6rfFAw)6dIb_k(#;)LnCfTL;~C%Qb_t4iVFe@}Vt6T} z*!})NG_;wZ)oM|7rx?zWVT5Qy5g8E%e?KLL2h8Z~F~JE=;CUAl6BS`=t-ZT;@7}#l zp`oFjMx)X4<3U8Bj!`U3oLIYQU3$=#r#4Xl#58P2n`sz3-`aydQy((du0V8DI6lic z2TOMw>dJ1yVYfr3kYoMECt$c+j&E<5V$f;=(`FGA(BXtJUbbMm(QcMxd}e%KyV%s*oKDymJ=4Fr7>|~<8J)+#Vtn!N`_rL z|1Dgu8U_G%?%WB6A-Ga}XXlhj6C^Im2&Ye-CXYY10QalP@b2DSDE#|%tWD3rh0}V> zj2(|fzeqybilqn)2!w}3jO8m=!|mn~6BiGWL=L|IEtKj2c=@W4yl5GTjEJBvhM5?u z4GZO+c2AK=!~x(L0LaeHraUh&2M!#1t*fp5bbXVNJ@;iU{mnDK#G8M78{@RW$o=9d z;uB`#&wJj(`gQA(`^D$*mPwGQ(;*}x3Pf{cpE?e=yK03Oceypnrsyp%pW0s{ivL(7-5O)c%90>zEO z0yNZBVd3IbfT7s5Arnc7(=pWFf#;ri7D3uDOixaMh~pslQlQ<~h>m88-tI0;(RyI{ zs`aS9Z$M3DsbHw6^!FC?GusFes2~sy0CFBw;m)1gljqEyjrlVsb5MLS*KU?0G+0HBUH%#>O%P@;NCm?(XsoNo&;WD{t20E8IodRyBEgl#;}U;BY2BZL8^-&wg0o1aa~SevmuF(H0YXn-1SfWCY9 zr10_nzmm*V%P=Ko67#2BdttL#ArgxrmB^5mu@vrSrKY2o(PRE`)b&BWt?>yv&O)sRaN?)-(IVoXLNT5IR zZdKruBgc75Z!c@CuYyx>WA4Hw@RZA`xu;Fo^~S42qX}au?|^l%9mhV}g-;G0hQP?o zEhhJs?mlZdAd~~B0MPkk{?TISbUK!0+0nr2bz2vIbs_&^|L_PM;we3U^$vY*`|sVe z9$U%(;hp{N;%Xz^{Oea~-UU5%jCAs*4g+njE)>?LM$viG{LNl+$zcFb0GJLyjRz+& z^ON)d&B@8(d7j5ZA*W9qzO-uT!X>Z2xqHdAqU+yCWiqVESj$d|p3L~FRIGKtJR(>4 z=+B-$dAY%Gm8q#H76!~+d{|gG8k&2%ZBC}h1Goji0Kf#m4Seqheik`7IsC(|(d+dB zA>`7#Z{yO^jHebYUh>$hQ(~eg$i&>S-8)}9dEvs@d!ZU>lHll5C(n$Zrc`<}cDr4$ zIfWXQ6&md>bYRTog^7UFPF>Z8ifLC0OFq` Z{|Ds;|AhA4JL&)c002ovPDHLkV1h`5LXQ9d literal 0 HcmV?d00001 diff --git a/imgs/icons/10021.png b/imgs/icons/10021@1x.png similarity index 100% rename from imgs/icons/10021.png rename to imgs/icons/10021@1x.png diff --git a/imgs/icons/10021@2x.png b/imgs/icons/10021@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..70beb5013a425896ff26927a3f69a12e1edf0f6a GIT binary patch literal 2750 zcmV;v3PJUWP)>3;{d}i&#YF{9LUu|9w8u22`p>6u?`Q>r3`Y&F5?q?SW zA>20{i^al}m6dU~v%a@Xlv35%3k}6~FI((zbNBXLcSZZX!w7lY$jVISo15yWpOc}f zv5s_hTxOI?CA1nfHR^S>ZB2E1a*OWW|JK%$PL8{SeWw6QDItV_QYvq5ySC_RpL?0n zq+fjcY=c=8WrRkl0_*SNdpet_Kfp4RQc}pW!VDa$YQe8x*oe3|Juf6Y9~d1La#R4h zLIa;~#2=-Is>q&``OfQGOO8^?lbcuy0L<-z2tb=!dfs(7z2y_)VjuVUI5VXjKVHLe zVb?`^t?N1yK&+tis+~xr66m9~h>{VcrX)e9mNBEFUZFS4&=Ak?EYEN%b&O0di@M+A z30ADzwB=6#p%#l}%%o!iN=vDL5W?3t4K6x!zI|nTmy;VE@w1m|&QUo$jN8#8kQ>s8 zBCY_wU=SQ-5u;V2;c_!Nnj0`PYavF168HiUNXA7GgE5YYjg1$`Wm3wsliZC7x1S~9AFp-uBa|DMd?n=$GfuS5JC=4mm6QGAU*FySXQ@V` z2o4Q7ZtVl4w6v6|to$lx#++>1+^l)IGKEUe+}cKRXHNo8$Dy>e4prwq#d9xhgn$i0 zBvj%LTQ{KQLJbTtv9J&HfDH$coIC@$xeLLF#i(z*jB8grFf!E7vnWoap#V2FW z2iw6#g0K%>M&H`_I5!i5o`bLqOz7R%pB7#0A!l3}vS_7i>v4j$amqlsEPszxAUMLhAc%Eo^o>zFV2?-Me0>OH7BTaA~kzd=Q16@IaLIqGW;LajAGrBY!^dLg2< zu?Ph`NJ-C!$K!@l6N6CD54l_gh7p1hNukr3Nbj|7%2S%A(-{&Yk)RwRk!VbS&1Rzj z$iYMVUU52HpIxf0WiFgMM9X&Xz_zzuhsmVJt`9$kIW7rbe|ZY$&m2U1>p4Vg7054K z1+i2Hp+tu6E465;KMjRS59v4sB;%rxlBlIGJimf0Et=-q|H*shgANB33WYMlvVs5b zfYoYcY&ILe`tc3Fci4M2I|uC?2obnl4oIX@C>2pioIDfbC(TBCQ#I-?RA6>i0ptoZ zDh_>w(GeF2VIUBRU^FE_t~5X^alo=H6FQ?2hM4hOFv1Kzx@KLK-Q{gmDwQ9NH6n|} zBCy$P-1^O1Rw$I3%@dL)vwS2Xa5!!p+SOi%!GUX-lQR$fb{2(;*CHi(3eu-0;iiGV1o>3Pu#>ES!rN`4158cm6Wja(GC`HYgL)2i9(xe0fPE}RFXr6#@CH^73+y=WpcEyah!| zv*s_`Fe7u`!f=E~^_k=J{MneEStln=zkIE(E{lI{yCt z8~EV8UEmnmP_L6cKIrmY1o(>p8UXbFw@^wf77KH$knHUI;;h^y>rLYmiwI%R-f{_z zbzgE$my2liW@?O?D0p^FKIZ3U^Ip#|;~jC(jnDp^*qxr?y7rNM9$)Y{fMx)_0EPgt zcQriRsK}=r&)-P43l|nINzKSyr`8!4`#nQAce)ZWu?g^nn2{87VEBp07RL{d_^Cpv z;6C29OStEgW36_d^mioUKNkji0EBTflz#7E0*o0H7K=qtT3X5zLJn6}9ymNZyPz;> zV)7<~$&@S-OLuoRRPAjz-K-(uzHM1^W=z*;RKj2|$OpoFi$K6%2}aNdAapm(@2$u; zITC<$#frz{Z+Wc+P?R$(VfQ2V&FnO&C8Yq?0GNEY7yh4w5JJYDaU*4mBA&a=F|P6$L#2$#=p31yw=iDbGvFb^rhX07*qoM6N<$ Ef>gNrR{#J2 literal 0 HcmV?d00001 diff --git a/imgs/icons/10022.png b/imgs/icons/10022@1x.png similarity index 100% rename from imgs/icons/10022.png rename to imgs/icons/10022@1x.png diff --git a/imgs/icons/10022@2x.png b/imgs/icons/10022@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a9809aaee342aacc2d1835ed77df7a7e41dc467e GIT binary patch literal 2865 zcmV-13(oY3P)T4@^}71K@2l_k z>)%1}-y0czG62}y_5dIO5CPEP_5U(T3JVKaN+|(A3D85$`OOXWR2Ln!%gbBOnM@|n zt+P2fIb2aukw^&nMOWNcs$p3fv)PRN{Cx4&`^M77fRdK_yw0w!*|oJ-A4yJ#jqvyP z!`{z#!Q*iOjI1&}Bm00pHtO((4eP1};U_MP(P)IpWRf0;z+Gfir4`kWw6t|SVY9j( zwc3XwIk^J8T^;aKajKHitX6yWcX)PwhMF>#vW;adIE{s+910?38!fMTJbp#>U5! zqVFnETh|Pa%L=!>SMs>*l6BC+@oo1xP^Ip43LzR6ecn3+<8Y7R0|W5IC*s|(hmw{HOP`b5ZNGB_MIXo7+<(BF^t zwnm78m#`d%wDA)jE-9g^n3xzzCX-R_R@57fMv`wfi(A+IA-cb}?~hZbJ;c1ZWh?!B z&wjKtH6bf&61qBWLhUOLwNwzjtJ)Mzy7TZMxHU<`(Jil_u#u%)+qVP;nPYQr=0 zbUtbs`SxfDl9NZFrPYQ5g=SQhoxn2-UVtVb0Ga@QeDwa?7_e9opOAvSo(|Y-7R1Hr zF(GX{lu9|;ZZxC0$4XOhPm9T)ytq{0l88E-N+Q2JMkrUZ2v1#GbSN7cP4nAhbX#HQFYss`I;ZcasFgD4!i)6V>EIRod|T;EKv&# zbGM#3dp7s*p#xG-P$08>#d72?T8O4r7xwNsgyQpGq4P!!;^GtFa$3>e)`HN`2*_k| zh@t?i)dIDj7Lq8y<932&SsE1`OM-$lO;@kiY^bfSg+ifl-jNBX0r=u0)4-;UtD+r4 zgOgr+WgY!=-`6B8atuty&3Gt18(-~x4^tja!NMg4$ei>zf`THDl|2o?!QoJ;)bM%* zB&Vc9s||&9pc^ii9WuEb9LJH~o-Rq0NZiyZGuA5br{(DJ(2xcJDrrS+KU? z6`Ngr@-N0$sdccMJe|J~&n{k!7`+~IX3ar)$$5l^jX+NBEX;lCX%rO|;o^5i2nf`o zslEnwyA>L3Fv4}Q(1ptI+`^~mjSf56_1XTq%Bu2{l!{JK5N_U64UI-4V=|ef&2RkU ztt-`Kuhi9D7u{|T+uhj?m9H8Bfm-Mj$3UN)hHEuds3<*;?1`CB`1s*+$wgQP`#>p$ zQt5+)q*R3Z3&@)skI*n3)dq(Xkx^KmU0QJTX6Hb!Tqf(egMh(M$ePXh;?B>^^V9(W z2VG9yYqJfpO-(JtY?@wwF{kpP)qSyQ?KL0{~iEnv%zkOGR#O z4(D-us3dts-a}bU@CaB3d*Q2A(5G{zkZ%qhK}KdOxp4M4WO6wYM~?@?Fu2*?45!P9 zyy;W0aorMBeSaJ-mmPMyi<~-nUQ%mgbYoM;rBsxaZn{zqm!R`JvL{~;~#vy=S+EZJ(Vb>eM3}Q zx?-c~qtZw(EL$aQ+x{UP8Jk4o^`mL@$We6a)T#8s*~8RfYo~1u#k9WW1bzGU#Zs1D zNvDkup_$1cJ^pINZU9pN_}oVTz+f=24D)lE$jf{3vA_TGlXF#98|i?H(rxeUlhQJC z#nCC5RG&D8>J!J(Y11F2KV12qQc9`hbyNF56aChY}!uhMRCQg3HZs&3G#7SCq`2y|eY$vJXGw8jAojst`clC%($i-ftgN^G%jV!u1GoyH9l#&};Xx-Dl9Q9e?%1(|y{XrW zxkMMfbouuXdYfp+%+x#Rs{fn4i7G3 znNrCsl}d4t;kgi2#sm{0Ce51VvD@v`W^1-KHnz7q91h8D#}IDw`|b80WTqpYq;E?~ P00000NkvXXu0mjfJyve= literal 0 HcmV?d00001 diff --git a/imgs/icons/10023.png b/imgs/icons/10023@1x.png similarity index 100% rename from imgs/icons/10023.png rename to imgs/icons/10023@1x.png diff --git a/imgs/icons/10023@2x.png b/imgs/icons/10023@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7fea2c526461107ea28d7bc31516107e28a545cb GIT binary patch literal 2678 zcmV-+3W@cJP))e*_Rh5N4|8{PXHn-Fv>@{q8yM zzDsbU(1Ss00Sf@=Gx0Ehf&m4+;f&FOTzcMc7BjlIo&mI?0;Gs_@pDBm>j>897zmV% zI{wB%e@Xmm!mH;HJYFbLjg!g->yC@C6QPBF*iHbTy&*9o>8hc5c?KRZ0sxHKhG7AN zfevS5=uI?l2B2qh-mek2)>KEo`o!ytwTZcjtF=#WN6suPTfLO6YZC{P;BknAUFs{Jl%prawFDw|`$aUc33cb^DgbAA2BU@0+_x zyq}Xz${m#0Y_`$24*;k@07^z(-!B5_4P-t596n5?GI=7)vI?KqM-!Eib#Faeuu4@y$+KveIP06TA>f#|imYnN**9sX7WMuA} z0FdET3}{JaW+o7HheKR2M8JaMDf{oE+l895$I#h%C`+5tyS1Wr)nCk=D)nHqBR+j{ zx4hP)5EWSNVKEZqCUN~fPOy*}3278AF68CBJOxFDIv<+EOeV+*sm7)`<2b)rq62=0(BIsJYXM3O6e&$qsq7^<5q7%+zW$C-Gh*dx zx^%`v$k!HOdj2v=Y+Nn~OTunj_0n}qO&_dWo+jpY>*UnMt>vYWjY^~R=VH8- zEdT(W5%#_&7AbPEH|(ZTM$9Q>QkYv#3B@_{$U)N{viHcRr1@g4U!_Xr>e{NA%qdxP zXrP6qo`@zv8k?w8bgfM<-YAhqMa%SAC<3lY*l0vuT&JhChAbxNy#PhHwFjr&hfn6B1nF+NOPiT9tx8 z$c^T;Pe^m6rjt`ldBPKp3Mh+faCIE8ikb0y81b~4cPeUEH2|{w* zB2kN_-QxH9>bvSYajvmih>k)8yug)JmXbNe%b1XiL%ZW5LO~H@ce)w5M2_B}K4cf? z(%hm6OtdV9F;?w>)iXrn)p3kW9p$139|Az<&$nHvg-cx^5a`wrtx?PRq9K`-H%3`r zU&&W@ojwvTQx;aAJ5G1?bE5o=nN%W9!jg&i)7QV<7!JFF5+=x!{BqvYGSohbG z<*O%8SwH(vPfbh78}AQWR3~byB>w&Y9GsIjwbpZAez8M({{s(5qx@1|AS8tI7f+BB z&6y5UPYPf+tuK5>tz{%jSzJ~!N6KXdTFG2R_y z7DRa?6AvFgTsK^eloG62!%P_~m31a|tACxG`?$NO^^ZP>mk+rj%#6aBWa+(gFfFAB zXHTE;ep6=j@`S3QViLp=%Hzo13J9SH6p4v6B5)WtErYCHxkQ*haX~~OiI=oCo3P{a z&ro;fi~tbE++yqLaSD&|JYO|j1B9V4mI)KORs<#8HhXEuBE$HY!WWaH(^#2YO3yXa z@j?$=1j=_F9r7#cvfR_#pS!u!T`FQEkXR)I2K_=vl zNV>b5u=l%f>4A#<2m~XH-NRX(VfF_?c>m@8yDBJw-ara07S^$ATRn zZ$jzEpMfXQ;cjQ-oZaC+$#eV>0LKAXu04!EC`v$0lv16;!M^dt+gsK>w^A6Bn7#r2 zNVePJkUAJA-`Zsj_S-$ZW3;LM1AA%*`mHXi&Pq_I+?=enp)or(K2_mz*ooI=N9B)| zL@JMS*0nh+T%OP&0JQ+x05||dMgUyqAk+x(I-QQ)@wRcR^FrhwckAxRNJ>b{4tV&! zgmfX$)i@Zc`1;fUmLx|j3)M=mKO9y5UKO7&PI)OUR{Y?g)5R+kF*GwPOH^&Dw0eS) zJyPI!2Fa)4rbX3Rc>vfWh4Eg*GkK9$ebL(?--wpptvr_El~hOuh$c^*-W%rEiFL_Fnq=jUsf+?(Sd;xaR8>zF35Z&J1wEO z;z)yOz!};Hpb9`cfXM#>@ZW@3E|pa1{> literal 0 HcmV?d00001 diff --git a/imgs/icons/10024.png b/imgs/icons/10024@1x.png similarity index 100% rename from imgs/icons/10024.png rename to imgs/icons/10024@1x.png diff --git a/imgs/icons/10024@2x.png b/imgs/icons/10024@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..31dd84378d3a098e4a6e00f3bd0b21601faab271 GIT binary patch literal 2809 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 LNkvXXu0mjfZ30Uu literal 0 HcmV?d00001 diff --git a/imgs/icons/10025.png b/imgs/icons/10025@1x.png similarity index 100% rename from imgs/icons/10025.png rename to imgs/icons/10025@1x.png diff --git a/imgs/icons/10025@2x.png b/imgs/icons/10025@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cb6d4c1f69ef45f753c5d75b67cae79daf577e34 GIT binary patch literal 2902 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 AHvj+t literal 0 HcmV?d00001 diff --git a/imgs/icons/10026.png b/imgs/icons/10026@1x.png similarity index 100% rename from imgs/icons/10026.png rename to imgs/icons/10026@1x.png diff --git a/imgs/icons/10026@2x.png b/imgs/icons/10026@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7219c8dfa2e41d2540c9c4fb054e455b3b616b67 GIT binary patch literal 2804 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 FV1gl~@ksyx literal 0 HcmV?d00001 diff --git a/imgs/icons/10030.png b/imgs/icons/10030@1x.png similarity index 100% rename from imgs/icons/10030.png rename to imgs/icons/10030@1x.png diff --git a/imgs/icons/10030@2x.png b/imgs/icons/10030@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2ffa1b48df92233f24400476a3fd39631d3a4ac7 GIT binary patch literal 2572 zcmV+n3iI`eP)09>>J?B(?y7XaEyTN)(V#q;aICOAB^rcnSG1F*g`(H8e`*6VOqZgJZ7_|4gUm>&NqADrnh{JR+&8;r$8U~$pz z6qMeP49(Ba%Xt77S}pqQ?*&v}ElOvtBs$}sNVgMJ8!J$sLs5yno%4|x3IOCewcD}g z(#SB|DCFXi0~t_Kmm}Qp&>qXYzS|?(NS(0 zvRTtQm$X%(T9R>Rpemjg39N{XC2}%ym1N(zOj5Gcu%bT7QO58pie)tekVn4@Tc{LL zG_+~0Oqr3#CQ?3nG{e!O84Z@1!D1$Om zN~u_olw=Y>xy%-@ma+^?D5?^XSCAxy(3K*w@@ycZR8etI9E%4~xdBQ;F_xBMW`3K5 z>KmgPA#86q0JvIfFD|3)u};U-6txI4+LR<$`FkT=`~o1icPIs ztmUK;ER)m-VqvA?%#)f`&YF5fXRebb1#Q9-M66O9NxR+5=ju&I6mMiQQzAzy2m|Fn zGAen43l~^zt4vqCiDaSs{XfkY#21PMIh@x@nzDr79iZUkK?K}rZz5f1>>jV7OcLGg z2(_xl?x_)UoCI;y!9-&kLc8dhYbfgm2xV^h%b}3Ps|9!RwURgbgKDGEPulBokoVJK zxt!4h4?Hm8aXj3|`fIf+sF3qe%@?zoyX%&qMbNY4mKF7~2&?No6t#IF+&cKANt-*><_kZ$} zGrf(K{MyQmKU9u+IG@+k<)YNZyo=FB342Bwn5fo4HG!rG0T6uOK)V8!vI7bLmo-Lq zH&Cexc)2_Z6$i#2AVPxSu_1OzvENtZ$`S>BgkDcRJ9qGjKiRWqe2b1e_~2~a+Aw_U z=eWAM`Tiv1BQDXDQ^?Jbo6QW>oQbh&QSY9rVR)_%C$C^5pw~*!@gumI!0cTks7=(- z54SO{D{!g`a)?nIDIv=U+wnF$8pe=&FJEq6v~JFmNr%4ixv4Mx5gq>6v3)j*sew_bIQU?$tT9KNE3{QwT4okgGTddl|A$ib7GtloICBFue=f^{?uW`*}!QwdxO(o`ONRi zlKiu~MDmebLAhpNKp6v6KxP#(w-;j*Nt*QcbHLS_V30+Ao1P|9JbT!sS|<#GjacK{Ql$k&QU*+R(*SbDg0`y`^bT$~oL6X?bB%!M&l`qXq+;irSPyN2Hbg`J`yfysrrPk8L^YW2>Gj+F8@GxE< zVl9fuHR>$(YS?y6B$-7`BPU&yb0r{V&a6ds&s~@vn?afpx?vyp?D-Iaq;01U4OII4 z`5&BnW%KE~XC|UjWoTpH`=+lx{q$4o01N;q#X74_PhVU4+0VY=_cOV<(fs)IUB%H2 zzfZOC5{4T?D2oa*P4G8E(ng@=Jf$GBKU&<*Dl{cW{r6B;$?qq zY;tLF`J2VFOD~>#;)yT*Co?1T5w zyf0r;_vJmczg%(}`J&?}$AJ)%Im=9vm^ewyATxF=iqkEyjWdQ8O1hn5_03-kbKm)KuWPbYN?^L7>Z5;MUJC6D4i4(FrpvT-w z<@v?M#Tx)1JRwuJFu3JZZW#q)27y60Nr~H@TVuowapJ@Yaq845EG;eZrAz+;A_|Bo zynf}?uOFJb_o3C5t7va`?emz(4D2nhGUxyOpC1{S+V^=I1rG&&7nRzm_`ARUTg1^o=5j6)$a8=NkZAz1V(F%O2KYIDQFMs?K(IacCDB{;ONS z8~r{yH`Ox$h#sc0lUV$%O8~$;{mnCHzw_)FtX+RowKrFJcHbV_-0XF8j(gq!7y5m) zZYsY$-@L>fzi96f3c&8Uz4g;y{=&m6f4}et{HYJmTy`bC2H*$)_nju)x?=CS1h=En zXcRX#Hg*B{o$1lShp#vLR{;DJz<&T}y<49D3-xcWH90xy0p2bEhqTsn02_2XmXW%qfP8GFU=ijZcJ{{ zWnNurt<7qxCXLW6p@uZ67sX4Ico9$wL_m-?1H%lDVP=>)bI!hhAlBPp+q>7=Yn}6* zZ=L=7e!so;w>QHrje$t!rk|@hG@CetcM49GSuk<}gImc>@IFp2O9Tob=+qKKuY_o? z4Cp0PXUWKi41fTDF-EgTnZ=0c`g$1$m>6nR3M6ScXxvJ8bpirz0U;_Let|Yis3CNcL(5(Onvq55v5fM!XZ;$1X($7N`qQID}hKi{msFm;r zmEeK`6iNmWA|zP^FZrR>PJtf{Kyi)GrDU)|ynd)zS@;111Y#fnWn~;P!6RHPAQ-L! zY1H5XIsh6lrUh{-aFQ|zK;ZZQBnklJg;Mfh3O*S0K6nCtjH-jkYLS4AG#e8?WMC$E zax#aB0FP)+08dI#P>rCZgUs|`2n9zvi8!@D2!bOK0(=lj1ux^lGlqdtf>|X&=a2!@ zja>N063o~l00T+}Z$JPiD8b1ZQId6vP@NW}RKYW$14jlho`cN!LGol!3MvF%KtK#i zvKCTsY+MS_K|=Gmj4aS>AZ7=!5kPY%gDH~(^YZXBKEMKMWkfXZ>S(blG>Rpm=0p|m z7wvM;;WKS>Jtt?5SUKzn`O8)1IpVN5Wu8Q!6`7Q zR3$H&x?J&op$e`&6Qh&*J2vfwtQH11@5raJ*DZ1yjqmVV@7??XqfcMC zQIaJkLqo34)b_HR;_7CnrL9d! zOG~2}HfA*<;!dAFEu1SY)#!8@eEHEw;Y1X+eQoZMohvh_?9FFH^3)SeU8eEBd?6qG zx4WtB#G8}Djh_#Tp3brQs$*?y<|PgkW?Sjk`!-3nzu!l{dgbB6vsav17$`0-Mm~TQ z`}h0qj5id1-*&brZ*W=l#qaw}VJgtQzAo-sO*wS&+4!L3028NtG<5Vc-L5xY*9lrR z7UbR)TJXRs_sGa-8y}L`TYmDQI6UaIKd>x2Y5AhL`?5{#yGR6f1Hf1B z?^K=t)=qhHOF#&gM*sYdAAw!9@-MaX>~mi;vU;nkfE+?XxEQT_|kJet^lwd zz)gjS=%6A$e>Cqq|7K%_kDo<45lMfG}`1R)zJ3p67UVNGES(<|T zH>~H5owz{NUw_S37yby{on8H$AitWFv1m@5#d13D!L6rmNbu8w0$r2OvG!VL?|cZn ze{pJL^6-dz!@C`j5+MQ1x9Gz5C(YioGvA*Z<7!{pBxgS#9xpgK4dU z&Z;M$%FL=ccR8u9uDhnK;j7Fe)y>`U9bW&+k`npmIv@iG8emY5`^45uZT20#!%q7I zl=|}>uCa=5>g|g&6E-Z%VtIKF%)?v1aRx864H%lcoXAK|q^Eznhv}nISVn4V(OtKt z#>~x1%Y61<9yN8fb>#oCy7@$SYQAyZnz7XKiZ2K5$iG8c`Q)A(m5>1dH8m-b1u!;G z0>IX+SrZnmWvPeDPmIQ!P1c1;5$`>>{UPnihT$t3ciTO8=PkVYkW69P8+)Wxd)LkKO0BO&v;{Et=iQGc@PzZ=fk-Y&gXwCmqJvGGY-Nt&W_r@pXG zjduRlkf7XBQc?n&&BomTz|5J0%$zwmvshkzY`#RCS1mvdnNr6m1L$`JaHje@K0+%r zd~vqtpd}^q;(d9Gg^HT?iiE`YvjeWl_Xhh04sYB1Bi%c{dat7FRKv!#n~U0`%#q~t zOprpU48FeaHR|gd+N?4d5=u%+xWB1{V8C?W=5sWzY^-gN*KOR^qc$4CG*GPcP6a|# z3dUPw!>-j|u@4j$u2|I3Wp~y${>6Fh(|0G29I5QI>imD2n_^CB?RVE~d(qaEmYh&@ zvhs5p9PDSc-=33NuXOM|{S%`-W8%Y-gc<<;8+QR?py^h;U(2z$(_NQOgx?+y@7Gty zdjT|Qwc1FpN76dojupE$EiEs&D@pTxSJ>rAKOSE9=nJg?pa9+|+VbFAo3`$lqt^<{ z-IH#F8Kc<;2i}K&%EznKDg?mSPv^X(_&)$_HXB!r5&#xI0Z7bVGdhFK1nATnVp^u; zLpa`bwxOr3rNa@TRI4fu+kR}B7+q?pX`bwT_}QW*)|9L;g-Wj+8*W3x`6~Q;|C<eT0TCC~o3JT0SH|AFEeYWtAx6idE+IyQ^L_`7KXmF(O6770oIpt+X$a53JF9Mtm zz;qZ=YwOV&fOw5QermM4K z=(6X-vf4*hZ`rxWM}f(+XDUyP+Z%DUrG`d^dt{euf*cd#wc$y*Qm10y>U5|9&)ag7rK8Mz)Y}z1af8% z1Heoslg8n2hXYgL3WWlqDB1yxV!9KabvpWc0B+WPHorM91OSTbu8xX|nw}%4-)Hvz a!2TD&AS;ngYzS8X00003&289n#C*~j+S~_03#+U*?$-L9{ z_4SonES4&s*DK+0@HS&CuuuUnBzC!6{M>Vx$kN^2wf)wO8wW>5hCJbLSWx6N&BUfD zkq}~DukZH<4jeFKocPav$)m($V`F9Q=T86PFGr6IpFMqw?%f@rP$)#Rv$GTo21pR% zluo6Hi0H(LQ||ykdwcu5+}EMoWT_R86J? z8yOj5fk1$@v}}OMlqL7}-s1ZE2ebgt(a|xlg+8&FoK7dl7*nraz1i$`9qNq7XWDFw z7Te5O7Fnaws*Hijvc$(`W;l~6o2^~f41>{t&;NRoeRlX5S6W(~1QBa(ZJn2Ze{mqQ za@FJUtO!i{PwKS#JX=Ar%rnNP(`gN_;lVQwvaBGTmSD@bVLBMVzPeY^ zUAsD-$Ni)L#u&L=4*tlIzmNZHXU&fb3-Zp_uc~9Y)}`P%4T_4(5ttl9Vs;kMco04J zkHMcDLW;tuDsMtXSuHzr?i^cQQ@5Rnc4rb713=Fb@I(~s*x^>3PAB)#$G^NdH0Fa@?m@)zooXtqxh{62#MfFk>9e%ilySDqzevg#(9vhjD)dR;xuF z^^WRKUq0`wudn}JZf*rKF3hz#MJfR4x!KA;9{ALnU$CvXgx51wC0?gv3K0}iAkGl3 zk98w7slY!m3Uj^@1&l*DkYKVTV>&eT+Q7g-V=9#j0gwTtGd*R5C;%c)70}k!raBxB z{*zDkAK$+H^@9`R556A=v?zs(i+C}S#GSz&cy5lM+|~fQ-3Uve3L(ltP7}hR0DEP_ zDnug@Lw$X7ZEtVqmF(ou|)Ga{}yF$~`G#ig9CbJ$jQc?oh zxq39URv|tk!tFZ2d=G|^m1EtqapSA?`+xiKn=id&FQ1taucUc(&U3RKMw^3i;$uaZd{ncy{idWZALDcN`chGl5MS( zZPn#@JC7dum>lUuOUoKtIwjJzOUIT}mzh3Txzzgg zR4S!x+O!G4JcTaH|Gjt6u(}rEP=H0kVVpmE zj%oEqCW>jhniNWr$wBj}S_lAjwRibfy!)MLy}^(>J~2TJtBK{97QtTJfJ)7Fh%*GJ z95%Exz;3UEQL8|f(y&+yvG><|kV=Z2-l#{KxSIek1BwPf>V*yfAg9yG0Z02WwD~S`#gUB;RgtXqZASlzBL@Z zG#-}ztSHI^9!A2v3&*cg=+@V_++0~#Ti3XDt!mE7;UkeK1R;jd^b{Q5+75foT1d$_ zW`?z?scvPLUN(C64R3)PsKn{AdZV}~Z}G8{ zox>MmF%YyaznzexfB0000l+1N!yr> znpA2N(khjzq-|6MA`+V@q(Di400x73*q8t|#!qao@ndc8uGhPJ_wKzj{b3sjA!>ti zq|w!kbmyEo-^@4P5ZoGMq1BVRx_lv%(Bd6##mNi%)ltq3^^)m2Fhib zaGoLtNum;ClnbGQ*>Xx^UL~@s3R%vjhnVJcMtMg^IR~0K0PzL^uY%ogb;!+h`0{=Rgv%9 zv$NEaZ`qs4B}+3(HYWtriwn!R*O&if?Z(QVH8eEn&CSi9nN?`dlCpS;k% zE32nN9#5X;%`0R!ivyAIQ5-mY2>q9ah@#|db#;Zex zjVv4vYXH#xM!TWYc5?IJ$l!}MhuQ7-2lRZmj|ot8oIQifJ-vc+PHJjGf^hoFEx-Q# zYr$a99En6U06GA^H242H1*EaDkr5KsfUqWnAn)vc`+IG%Bfm(@%+^_KMtIyFUg!(5 zR9eBga~2duH0bs9_3WYV-v4+`P5(Tjrq`y@DL`;u zknckG$cM5iZ_PGxvSc_k{#tEkang4^N7z(^nV?mK{i zoa}@Aq@0gLGiK@gla2A<%$a8cDcYPjTnvQo})xId;vkolT z{=vScCv6Vv)~k~ddm=ukudZE7EG838&L`pb7Q$#S;zI8^?0kP0t_+Nzx~3YJ&i7(y zU>Fru6}aQh)mXQF6)2^G5GtH@C$-z`P%;WUPM6l*ck#I&)j$2p;lqa|ip8T?UtceW z!(qPr;QQYxD=+=~nT~e*sZ$;L)I^LOI@n6}EW=%^??!h{n2jb-ySf&G zm#?6|X8_fqm8hv*i8Xa0_`CtQogN}fGM$(l7bC;Nn%!p4DVie9rIS|y;0TUDS`34s zv$K-`Fxc#tUwzVYNJOWjIuT5oicVuiRRumi{2wq%F_(^G+q>H_dSwiSMTMA+&Z4KQ z7d5L_!C&aZs2vuCWA5xuIuo)+=wOPn9n5jd1a19M#qjfz4h;1i+fGSV*Eu*ON($g9G-vub4RV3 zQB?>))l^85gglQ6149EKj6sqqEG9F&-aPd848kBAP!ueL!(~TFxfc$n1G>fm5acu! zQ?W_pw2biD?Nm#v`i>p%zYIVDj$FF}=weoqiGi$DGwQnYXS?FX!62q5XFV^g5t^1mbS8>aViwa~XJJdH@W8rz z^gllTyYfw&HkrD+3&i5yBNPBJ8jU_xQCCZ{~(7gaReVH&Kj^^dXbU>aV~0 zXBy9t)`5id!)zik20$kO%qF{OE!F8m8rK4Z5RaLLhtWleW1NM^5|leIBPj;4_z$ z7K330TUJ$UC@w075P-|!f-K9JiBCh#si-I_!~^R$B4D>eQPObb`SF)m|AMTdFq6p$ z6|7_7Hr5RQ6bXQa6sD<_4geqmA|)VFgbp^g;aTrI#@~lMos)k4(ms9b+@<0f0}! z=hN`iQ;-1YDWno6+0=s^vbv@RsGyTva1Rm04FWS`EOOU<>+ZepoA(yvxGLqcIYG=a zl4_a^4h-S=@iW-AeH%V}XB*6RFH|J~J(tA?@4hFLOqR@K9+xV3ZNgr2&${I zH(rgZ5>uvZHd}^sKA|(+$vCr719fEPGp73={@M>7`ql&MC9;rY1O$|98eAKP#g-HW zUbmPSpC%uE*i4?V5ll>uL!uNjGclyO8548KQveQHEa*$85eJY%OAAL!i;!@=I?2t? z&&PuZrXq+;YF5o;*3A+CPC3mT+Iy^fYHX_9;;@x7#_|IJpUaVFx2{|nBDtJOdV2@a z*4YW4opZlG0E^u&Dl3=K*7gHwp|N8Cx)#Z?$SH1BkSt{=a#K?m$E^VT07?K<5rXPa zZD{$|zj1F_Am}TZn@ifq270kPV1>_Z#r~t`&~mE(SR$4BZD~>I>EYpF71zshzC?5@ zER73bp-$Mc1)%grPRR9NIOiq+`2f6(u|TM{dO0L^XMAR+%!Hh4B9@s-##1{yX5+ru zOlEwMl;DP<^vga>$W32P2mv7koL`&M0w4gO06^MmwT`D!sTct5#zoz(fG-lX&{=%< rz3{>d6zG=r>=_h`#pjLqjDY_F%tFi{U3nog00000NkvXXu0mjfeIo~@ literal 0 HcmV?d00001 diff --git a/imgs/icons/10034.png b/imgs/icons/10034@1x.png similarity index 100% rename from imgs/icons/10034.png rename to imgs/icons/10034@1x.png diff --git a/imgs/icons/10034@2x.png b/imgs/icons/10034@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d053cfc5b025771e62d0a8b191648acc74c80617 GIT binary patch literal 3316 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/10036.png b/imgs/icons/10036@1x.png similarity index 100% rename from imgs/icons/10036.png rename to imgs/icons/10036@1x.png diff --git a/imgs/icons/10036@2x.png b/imgs/icons/10036@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cd840257fe79382162bab7f4d053712cf6fb0964 GIT binary patch literal 3095 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 l5ivODBAh=TdS7h${{r2ORu!Th zTG6KNpD_wZ8=%!26c+kO=_8Cb4;so^l0Hb>)JYu2iS5{q{n_8+-u=;}w5+f)RXfs^ z?nC#U-}&8h?>PtH|0C#2FML@cgj_lcAw;fq-*o{nqZ|PM>g(&HW79E{!04Qz5n9id zwa(7Isc<-quRDO_$B(nJEK{ngl7$Nwl2fNnS+I!NvRXDWQyDv>V@@MVCcpN+WDo!Y z{3koi|Dre)3Q?`CtyDgr=K+AOtPH5BREjO==?b>MnPkqMGI#?Ft}uOrXK~gGKmh=m zX;;WK10aMTgb>+tZV%7qSd$JC;BtyD=mm2;)2-R)+7iKFLJZH9N!dXIZ6XFG#u72J z*XxY|fC>NxA>;}cs4rnS+Wr1+Nh(RAU>0y$Q7DeWBGwA-LSgczLO$V@Bqs%=WHWTb z$#4qJwYvpfs~0|4}_F_#1QuYNGQL9oolI;CrcvIU!|f*W+EhT#PZK@>lo zpRS{Tb5%O(i7d$yBM7V@$RhxPswi0-)B=Cz%u!QkXQ$~3tFBS`Y@>SPake-A#ID<;O2$mzKPU7jwsw5*;2 zxag3x2VeEwUPcww2S85%;MR+*RsH#IZ+Rq<->|f0(S2&UG@SKqL~Og25m`2;rT(_V}?{c=Y_) zzON&_?66oIl2f+wb#>LGx3>qaZe0)cjg2{sm~&QJ17qhB~mD#ISvv1=lW2ZG$K`pG!y`CxVE`^%h*Atk14Xe= z?RJCHCBe|(5G-C20EIT-zHbDf@8oHC@BI$KAwm$xQnzosHNAZ0suu;h=1&UArh21M z#XK>gZQ8U6BfsCz_4oJdp->3I;V=OJvh(#fZp%)kAN#PY^R|icDVR)*X#&f!$;mOG zC<2C|fvV~tS@4NwD`Eb; z`6Q7@La9`M$;>#i%2p_=8faJriUG_EJgi*496h~nD^yju@hxB5Kn+CCqXqu?sH7=` z0hZ!9fw-OCZ~yS2M}2)~{3zuW_jAC5PvmV6<+8a3tpw+tZpZf$qcOFr%3WJh zig;ptjBMPvk)BFVK~L`oB$v&ByUK%Xk`)(AMQoKNR9jO;`KlWbRg%exk9!FvXozNM zq?Ss+ns`!Q*NFW7Me1ZKrA7E|(OOEX(SRi@%~(IPK#8ciRz1^Qs_`tnuB@ai90$#d z7NgE%UF5`x55X);MzwD)Qz(`)PDcf@*&Qcr4l^$b;vbisUHB?m2f%ay=(C@X#}g3C zl61{;6%w>KhvC@VS0_;&``f@XXo1Y)+Yq4n@n(is~pYW?te2aRp(DKB61E zB+K)OLEHjwHs&`q!HHA-g9}=O^c{C^m|DGN#j9;?-6z|-juslL#pYuN-}~|UyEbZv z4<9yN@e>k4&{hDHjmK}Y5%KnVn{?-mX1YmCCQYM*LwkSm%$8#mLyxRnvGm@~W5=*b zlz(^X)IfqavyBEW*GVSXZD4(AQ^Pz*Dw~}zM|=ucw-AqWs6KU38e(<5VZC4;Y7R^$5SDvm6zq-bge=u;2e42$m?%9LQ?WKgpnKCtx=Xh)ZJQ{@owF|I+sD z+fM@kxLk8m6h-5no*v3aJj_WqNj8(^=D-T;%5|$^TefWZ zq{3sVW&%E7!;`Tqh9BX-U+u_yQb{zWtYwgEhOzXq1jB4qf zqk8w|w~vdL?U`-pvi_xUFc_pS5ASX_m^W|UY~B0!y`GtPk1l0IGc4doUVAMZPZzcf zjwVY+K977Yi%QK4mSt-^HKK;gJDylz+ZNoli;isCWLzzWxSGr+HdiZHE+wT~XYzo5 zzWj1m`oj4EXSF-0VWO7v)AHz}&Zl0KO31XUCpEKrqtjdAh2vXGIIA zQEW7Q_T)hTn1W!ChDhX^slRT55P}(px^BhnrL(_a{^HujQf7Akx=}wX{|0H(pJf$% RJFfr$002ovPDHLkV1j91;wk_D literal 0 HcmV?d00001 diff --git a/imgs/icons/10038.png b/imgs/icons/10038@1x.png similarity index 100% rename from imgs/icons/10038.png rename to imgs/icons/10038@1x.png diff --git a/imgs/icons/10038@2x.png b/imgs/icons/10038@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5fdf380b906fce649b8f2b32d5e2b2ca42931927 GIT binary patch literal 2070 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/10041.png b/imgs/icons/10041@1x.png similarity index 100% rename from imgs/icons/10041.png rename to imgs/icons/10041@1x.png diff --git a/imgs/icons/10041@2x.png b/imgs/icons/10041@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cb422d4dd026e1f524563df464a8e1c6e143de28 GIT binary patch literal 3317 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/10042.png b/imgs/icons/10042@1x.png similarity index 100% rename from imgs/icons/10042.png rename to imgs/icons/10042@1x.png diff --git a/imgs/icons/10042@2x.png b/imgs/icons/10042@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3703a9b1f458f7d1cba94cf7ceafdfc8529a56f6 GIT binary patch literal 2495 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 M07*qoM6N<$f;PLy0RR91 literal 0 HcmV?d00001 diff --git a/imgs/icons/10046.png b/imgs/icons/10046@1x.png similarity index 100% rename from imgs/icons/10046.png rename to imgs/icons/10046@1x.png diff --git a/imgs/icons/10046@2x.png b/imgs/icons/10046@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0ba8b58ece333ae5f7700fde03635497ea06d6f3 GIT binary patch literal 2616 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/10048.png b/imgs/icons/10048@1x.png similarity index 100% rename from imgs/icons/10048.png rename to imgs/icons/10048@1x.png diff --git a/imgs/icons/10048@2x.png b/imgs/icons/10048@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f59ad4dc313bb16e9d05726e04f385dd6db28231 GIT binary patch literal 2573 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 M07*qoM6N<$f^rgW`Tzg` literal 0 HcmV?d00001 diff --git a/imgs/icons/10050.png b/imgs/icons/10050@1x.png similarity index 100% rename from imgs/icons/10050.png rename to imgs/icons/10050@1x.png diff --git a/imgs/icons/10050@2x.png b/imgs/icons/10050@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e4614e18d9672fdb8d13cb985168025f52900651 GIT binary patch literal 2243 zcmV;!2t4kJ0FA$H z`PE}B&sW+k@7z?XJGuSNlJQDM@qr(0yk*y+-Ot=PH=X-t-L=edn%4)%C5v5ZveDq$u;r1e#5?iVfg zLYJ8@={_;I`NO|I^%tV3WeI_=iYrbrvG(?MB}hTT`GY-wI?^?$2};26y$ASNnE4A? zD=ZqBZm!jnZ#FJXd_Dfe#9+rmb30nfL6pC}`*{S~+gmvRlB+#?h1{njprE z{^7`d%bnTEqCyCQ!0uXIjHY5;CU9dPOG*FYxJKbp%m6TR6SKTV;tPTJYvWXP38F^mriHNnewedv6h-gVhwZI2>Ud4xJW^ndQ zKMFKjiiRSr#Ocyn><--6yarGRilTr(U_5_$oyX(h7-I@9o_1hq-tY|pTVEdofI^d= zGn!2pK0l6pHphaKKBQAglvdY3YqBCPGsvMi6~OF@5H+w8469WNjZ7zryqCi-1gwTPXXZC+S@oH;xAR&?^Ix>sfhp} zozGD;6b3KwWOuqyWH8g(^_yTUG_yn~0u)J*BoQ0~c!3cBoEHM?R?>lmc1PxHzd+|@$Bh-bw!z7u-R;Rtwmo5BbHH= zMrVV4+jhS6@=?ZGeYm22EJ#6-oE5AyV^mgIsTfO&8LtuKl8SOg(5N9w3OJ1g;b@Xg zo$f)huSd%`j-oUEOnFtc^yu~{Sh3wEC*nyYl1b&<$XN3ot5?17(r+I=IB@#pTaQ2S zv%{ZvA9(Cm_pKU_$HUE2pnc8=NM{(;&rGnX?lCTJb0{`@2{(B51hhI6mf1`w4D3P2 z2R+Q5m?D+UWF$q|P+GG_UDs?<9q4F>l!%~Er-R=g4CFxjOqI!X>o>IAGCMmhbslW1 zvzEC2S?HfG@V0wjce~yEw+{s)^02>d-TUsTp}+&3qqE6WURH=?E|VkSjwY>Y<4Pm@ zP)5hjQdq0?(7#a$ije31nrVCjaZ>7`eBWF(T-_0Z4GCX(| znQWH+{NgKoEW?fs$Aw3;(dgs?0s!DHgC?T2zZe&l$I^LOD@qD@2Dq#R2*zZ@vl1pk zQD5Wr&9UYio9mB$`q2ktWB&I6)hHmH2M`2+DPQmJi!J775AEBn`29Yv`&gGeI55nQ zPsXF;QE{s*xon2lXbO-g{tG|> zATN3+W#33MUnE|o!h1(LpZ-VNdzq%?b$W1PAW%k1N0PaZuD*zNM#^8z~d-3VHmw&hJp3N=K5BK)hbnJSg*5@D1 zTbETl_{U%Wa&u`_)m}r9`PJ8+eL7j~blspTFq52*ONy8mI@;brI+aB@$$Ew+!+QXw zAHX>PV*v7t5nuqQy1Lr_<0l`!yJ6)Gnni{=0T zvWj?n-xs}4H>_xER;!pYer`x+jG<3y-J1`OW>dk+@ zeJmF8Z*w@DDy?2G*Va{YAAj~$OrtLBO-uPcDTNTOC{$OwN-+SW)oO3CI;~q2QbLdr z%4W0iOfuukWHLhlB3CZ(cs!if>#exH#=8Cfjko^P<*>N+>_2|tXwQY+IT`N)=m+pW z{njl?kTC|1$a6sK@eEolkyzBll-wY3ER)VRt<{|kTN`K62v RSy})9002ovPDHLkV1gLyK|}xm literal 0 HcmV?d00001 diff --git a/imgs/icons/10051.png b/imgs/icons/10051@1x.png similarity index 100% rename from imgs/icons/10051.png rename to imgs/icons/10051@1x.png diff --git a/imgs/icons/10051@2x.png b/imgs/icons/10051@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..377ad189c25d44b20aa544e5f3c56d2ca123d0d8 GIT binary patch literal 2667 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/10055.png b/imgs/icons/10055@1x.png similarity index 100% rename from imgs/icons/10055.png rename to imgs/icons/10055@1x.png diff --git a/imgs/icons/10055@2x.png b/imgs/icons/10055@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c2de9a541d61aa591eec68a2b22e5206a175440b GIT binary patch literal 2128 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/10074.png b/imgs/icons/10074@1x.png similarity index 100% rename from imgs/icons/10074.png rename to imgs/icons/10074@1x.png diff --git a/imgs/icons/10074@2x.png b/imgs/icons/10074@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d8061ccc049bb510d3a5c231d05a3823f0cf8dca GIT binary patch literal 3083 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 AApigX literal 0 HcmV?d00001 diff --git a/imgs/icons/10076.png b/imgs/icons/10076@1x.png similarity index 100% rename from imgs/icons/10076.png rename to imgs/icons/10076@1x.png diff --git a/imgs/icons/10076@2x.png b/imgs/icons/10076@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fc0f8dd6e99da25326f30ec300e19ddd2b64ad8d GIT binary patch literal 2088 zcmV+@2-o+CP)mZ+s5{K*X#9OW_NaXW_IT1!AXH+oj85w zdzy1}=KSCP{W{+{Kk#5MXd2ggd-*cfqN}S*TF$!vZ2o}FdU|@?JL8c^r0!2|^nQ6h zo~UbWX=c@azubTRLWL~2(cac}x##52y~&H8P`+r||R)#o`Gmt!I%n3h?_Y*v!mK`s($e zcUROkzV_amuU{Y{#u%fe2$ZcC5di=tW%cKySiQ$9DfWgnt4Vmg?&_9iX-^_ z1YWW+IXr-C=lYR~Mc~>N!Z(N6>9gl#7jS&4N}cT;-yA?ramhsQLjVYcTmW!H z;IQ9cb<{MCU)88pbuEpp{5#+NhO=wi4pv_kM9IoS6@mgyYalmwmMW_}e$`c2-ewRS zlF8&a0PEoi0HkReALNsOe?;?`Q`N92tThp*n(-b(^o{2^k?z)9oEQ+aHQ_!<%*d+^G z;vl$i0ko}YPg+KCbZ2`2jRC=Gf(_BH@A~Xj0O%P>oCTICmU47r8|l~G=b2EN9D(!e_rl>>EP?+ zI=M5KuY9d!TevYYCYi+&yj~BSk^`9w;ta4X(~v;U@VtS9UV!TJ3f$)eEKNYuH~?%| z<$F%QaOH=Ge)O{gvB4|9+0?$~h%5_4W}~j2%fd8^kR%C`%mE@m;(AIi7C*nC2CX$7 zH=jwj9P8^_4Sejb_n_?Y&;W!0R;&89);G2t9Jn?R=R&lTL{$zP=(!wo%n~Fn!|PMQ zBneyyNWv==ud;q7RzNyO6ux!KGaOCT+)sgW1lZw4&z4p+H9hg{Gf(?7>6Aa2TIf1| z@xlUgB$#HA>$(oBWC295%_1{R8|hTKQI`1=W62y0^01QE!qK;me(nU(`Q41&a}O+4 z0=n(l?tC)!(UG^0(%`iLn+T=p*=R7CO2fz-$mI)QG6x{R<5PKCgNjy%aIzWwTzx|Wt8Z@QdRCXd@XQw>l8WL{ zuwnCN*1l#nR<^Bzl`r5^J{6S}Dq0$Yuskx}d;b(po;n9vmdSP;R&WJMB^QbiVE&5m zV~pi{dwcml;GQzvO+W&GP-t;rI(9ZOKTneIqI3OvY}>j8Max1wv4AUs!-(oh$cl<$ z(Spw-;JCyb$3;iA7q<*zbB=@gq@DqQ!NI|@K5#dIJMT9R0H$eLX3=DiZ~3%4G%^ZF z;%w8}4yb~|NA?CeGLG*y1L3b;r%Zo zB50b%XNIpINhecZ3WuluVi?A}U9yo(CMAD`$`wU$#p{uX0M4c9l5PFo%omRnIe%tc z-d)dF764nSNx5%lbQe(<0G`56 zWnwJZ7c3i^rtxLN+oT_=Ph1{|n5JnQ&^Q*4D~G1>#kr3aU9PhK2mTF=gy>3i Sxv;zd0000?}*0g8}Xp?WJ+QPl`&A&5#`Ado5) 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/10078.png b/imgs/icons/10078@1x.png similarity index 100% rename from imgs/icons/10078.png rename to imgs/icons/10078@1x.png diff --git a/imgs/icons/10078@2x.png b/imgs/icons/10078@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..80822300e2cbdb091df2634c1a59caced197d3c6 GIT binary patch literal 2844 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 TBv@me00000NkvXXu0mjfAFd+v literal 0 HcmV?d00001 diff --git a/imgs/icons/10132.png b/imgs/icons/10132@1x.png similarity index 100% rename from imgs/icons/10132.png rename to imgs/icons/10132@1x.png diff --git a/imgs/icons/10132@2x.png b/imgs/icons/10132@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..48c23f3a8994097a99c63225645481489b578c96 GIT binary patch literal 3158 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/10149.png b/imgs/icons/10149@1x.png similarity index 100% rename from imgs/icons/10149.png rename to imgs/icons/10149@1x.png diff --git a/imgs/icons/10149@2x.png b/imgs/icons/10149@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..01607d5b56b14bac296640e4ce8b88059f068165 GIT binary patch literal 1826 zcmV+-2i^FIP)a~@~f^$q=JasFvYBoL9nIA1_v;GBaqhUUgbp|KG{6TpeU z@W~%>N9KIdHV0ME18@PbUBAr$#uwNanwy)2JN3JPe%G!B?STWm5)rM6OpiZx{K#t$ zIgm)_S~ITp6MxI}^iKrhk;n&A(Yfx6Q}DZh;b~wFfO6LW&CSiijvYG`qUbs(#*+|q zb^w4p185RJGJ&ipVxXfHfiV%LVo$Pqxo12y9*ht9eQ$mJdq4gS5fK0|#{TVIVGE__ z{T;8ih;u1YvI&vIxJr~!WJOXHB9(|_B1xwCHH{7S(YdyF>HTA`(*E5~{Tu+A8=D0p z;!Q*xM2v{o?Q}W=KrSHXTifb~zWL-&95qE2m^E{ZS8oNl8Gr!<1_FahDx~xbO@}7P z=f9$Q&$jcC;8d{rR8MVibX3H6uK~FwR&a|J+36&v#B@`2wX~Npbt!;m;Yvhcj3G5N z7H;vLcx{*Cv2B#IX**Qn;3NWE3kEG@B?DQ|BW1F)5$ha_m)G)+p>dVPQl+2!>KDIr z5%|kKyXS#2qpnb^GGk0v6x(N#PVYsZ4@7A!f%v%N_w1RkLRP|yIz?2you`?%?G54@ z3zV!3fFYAfA)bt2LQJFkBOh{^4(pbG1~yMU&ghLWmy|sHN+j}wWH@X)m`YuKNs>NH zsSx&S4UG?G@2P~}uU+~(G#{__0t^iA^ajT(-LCl44}RHt^6;M-gAo<=8zC56mEw9VRj=tN5`|79g{l`+=U*;u_MQsVtf)iF$Pk6Yvqn3x43`IN@F$H8IX27hWNAoXRN!KE=dCL+4*>$0 zJC@!3PKWoil8Um1^(V3iX^92qvu!=+yv_ZmPh7)I9(TCDE@jnIArWwl8$_?>$^h zM%3u^7|JV4VU#4;O=h%VDF@zo3>z(0^kp(oOeU<(b*S6i?y9WSn)kxBYi|$4Vq>T*jax(|6C!o4nDGMG z6`iuE4{ibgfJ1Bjbam(#9=d24y$#+*bVZ4ZtN@60bPH8O6oR&R63Ja6O}{=wMjjB_%_yK-gv zl7>w^;4&9HYOrq$C6bAO$aL4iOZTLnm$hh|N~F+BBe7=uTL!YxMc+vL;*nbcs$`AuXlfsFWBkIv)!AWOB-TiVP*ZJs3yIR zSSl8a^!5bHc79`-!RZ{)BHNjt?{-aR61Z2DSNO##vl@$rRl`~fJQ%8QC(X&3#v1QxoV#N>!U7yx>5~mmd zwz;W^w?FYj&L39PYASNG1zGQ9D8x%(!+g>LjV8( literal 0 HcmV?d00001 diff --git a/imgs/icons/10151.png b/imgs/icons/10151@1x.png similarity index 100% rename from imgs/icons/10151.png rename to imgs/icons/10151@1x.png diff --git a/imgs/icons/10151@2x.png b/imgs/icons/10151@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..dccddee0c67681aa38a76867a261365e13487d8a GIT binary patch literal 2549 zcmV?TO8GgR+-nn;{%#z6@lY}fz7!uiKS4)iuR8$mMf>@Vg5e2DM>haWW=gyoWwzajU z9(Smx+IlQ0SV|=*s6iG1QI>=(B!q-yCi_fgU+(htM*D??Af(IL5vjFq0%Y;`~?c=P#X* zB+!}~(7k)1Fo1X@iFmzU#w3Xl;?;in=)Cf|cP?6@q`U2Um7|GdoDKA~r;TPCH}=NI zs!74bcRv1D;%~ait1vbcv8t*n4FLOEUXCykKx)WyMhGEnU7srg>LtOEpNU5`tw_xK9`o3-s7}ruUZ^7eONQc=iR-Mu3P6#M1vs$L4=9O zW`{AEym#&QS%#yea?`KYPbqSj7WMdp8#eE1c@IE*_&#sKs2=il zhluCJN|a2tBG~h3y6U-|Ux*N9*0+XfUg4lflk5ga-#%^O+Fy zceHbMzX#q9!%jnW-?q`s_$(P&?HU@Fy98 zo}ggNxKZp}XOsl}gSh8`6?pXLtB~m4ieSuzG_ydBoJLny6pg1l06D^XdQIewO&_ql z9O0<~3%7UnY}cvpy;L6^DaK3FkTAw@O)jZ<=)1SyaPI?d9N2g8zFSuv-ddJPHcob1 z9}gxJO-`h#oRqQtN9(X~@o4z`DddcDVW8~@6dvgBisIPeCKgRn($v_>Zn@nxW$D_F zPh24j`AaF_0H`N==#CcO;0>0%VoblLPvPj1L~fC#vOkkpY8>w;LY$vm27cySdVPIeY6UJsi5Ot)kt{a3mFeb-fB!JFfV*@>B zLWF=xlJ_FYEf%OFCpZ9VX@O+{&#~&UE{AHf8`5@5$K+Ul;lf`$_uzBp+>~6o@ooO4 zS8K`ri^ga<#SYrmHVBi6gRBABHUmt04!wamg24#-2N=rdPG!l2zd9!8J^YyWT^|?& zA>@2Dr044ZBxy*MPAz%swfSZ?XZ|-xV{=z*@^vd#b2`l1wyjnJyP8%kD<@ORM6~zB zNZle29BC8MjQqG`vseoct?1Y;5< zWT+%xh(J{pR0*IvPxkE!bH+FKY~90gaLHyJr;Z!Tm>~oB`?ea^e7v1-f;|z8X%C<5 zQ}@@jME53Cqpm31a-UuhSUACa;S_sD5V$>Onp(wkO|@z|5hvjD#P$Kr<90(Fp}Bto zxIhI!RlWU(v6RxeWAiqhqjaH`Gxd5lf58NHc_?m;}f+FJ@scAIx*nu;+zGgvE6&RuDa3f&OYz`WdOW@<^{0( zWNU9kXIr_yW?%32&F|`}xA>{1WfGamB%bJF`A(4!^+%p{<~u50u>W?hFRe6m1(I(k z((0*uR?NEny%)+C?ynEj`~Bg^>rMx_(JrDEJJbB)rIVlCw5!F(m_#vL2`{Y!yxZ;O zgiuJgtJeQvvDJ8Upz^gR`v&9rS+*?K>ecg#-+AXCnLRrnwG9LLijrQY(~&^4FWutG zHHiMMh;aCH0(n{5DyvmIr7y{9Jbbj{^K1tr#0uSdovD@ut zO0~(9YU2nYibfDlD<}kbms6j-mQ&T~n#P!pr=&fMcB&Kn9ARmm2b>1XQc|iuLu81` z)YlebyH$-elw|V`GmmSa7Y}}Rs^@6{GQR9zU@fv{>f+jBLNJ$5*a?UYV4SRi6lK!V zEJ4diq-2ewJTaIAIi5@>x+C;#Ag1VwtaJjC)2fc=h}k4Cvqcw4s_NOJ?d(HM)55Bv zw&``c+P=QQ`jH?mq9AlGl*n>g+rYE{G-3dO3Id*~tUDQ(or{-FvRpUQOLiQ9gl$#3!lI*G zINOujuP`lfvNiIz!}ZZIqo>T7*!}szw%4|{p=eZ2b5C#LkTplgsj6BGAcrzO3quXB zd>IAjwE#dgo6Uuy$Z`QLCd;9-;V^=X4VCNRJtO;naoD320AW~Q8USLoTFsP(STG31 z;V@d#X+9MWhlBW%HvLM*4M$3JI-RD9igAKeUe1@7m-EB@9XAYuFeXt-2qa0Oj17Im zYr++xeF6QK*?FasE9|`#{mAj9=P+VSFr0q>iH&?}eXVEL*Rg*98B2U42uk%H00000 LNkvXXu0mjfKMMJ_ literal 0 HcmV?d00001 diff --git a/imgs/icons/10153.png b/imgs/icons/10153@1x.png similarity index 100% rename from imgs/icons/10153.png rename to imgs/icons/10153@1x.png diff --git a/imgs/icons/10153@2x.png b/imgs/icons/10153@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..233b4a976ffdf31e400e0412c51102ea829e926f GIT binary patch literal 1572 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 Hu0mjfK490` literal 0 HcmV?d00001 diff --git a/imgs/icons/10159.png b/imgs/icons/10159@1x.png similarity index 100% rename from imgs/icons/10159.png rename to imgs/icons/10159@1x.png diff --git a/imgs/icons/10159@2x.png b/imgs/icons/10159@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..48bab70c37ff6d4909a71afc265e0da06bb24a53 GIT binary patch literal 1953 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 Hu0mjfdPGm> literal 0 HcmV?d00001 diff --git a/imgs/icons/10176.png b/imgs/icons/10176@1x.png similarity index 100% rename from imgs/icons/10176.png rename to imgs/icons/10176@1x.png diff --git a/imgs/icons/10176@2x.png b/imgs/icons/10176@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b22ab99e0b173ccde737feb21a00ca799fedfd4d GIT binary patch literal 2376 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/10234.png b/imgs/icons/10234@1x.png similarity index 100% rename from imgs/icons/10234.png rename to imgs/icons/10234@1x.png diff --git a/imgs/icons/10234@2x.png b/imgs/icons/10234@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5bc99efbbba253d50eeafce299d711d9efc8fe85 GIT binary patch literal 2091 zcmV+`2-Nq9P)yM8zR@cZBWJC&UQ;mJG#cOo2jh;RtU%!x3<9djql zy%1GZEi{QhN+6IFL=q$+NdiE~1XPkVbsevtKTS0}k|CZ*80G=0C{B=2gOH#|qKN7_xLg275E7d40is&yczl+qkwONzg1Hwp>a5bPM0SJmjKoYc33RFM^X~9W}Bm#07To3|@@lpQ{ zUT?e^9!OH*>|~$Xnkz?x{ZFff?*97Kt-dA|H-s=$5~hYkLTHHAPacYhQy_vUtpP89 zYeKVXBs0LRNh?d8dpEA%Ee{Wm`Si2T`ToUsEG{kT((=;H!^5MSkDq*daAoW6H&tiB z%n%7fLt588vBeXkxpU_ZySwlC;fL4!V_uO#aMV+Rn=iG5G1#&P7Bd)p9Z!Ga3%*cDwBEzUN;LAF{iuolb|9)m64{Zc|kyi;F$VvOpk`DsEo-`2y|xvkxvI z6tfvmklGNq2dXlUh!f(C`BJaD@cQ-Zg?cjP`i&bz(-0A{zP2XA@$_hAePdWv)pd(f zBWCJb2@x%u_Kq0=Z(~Bx2AlxgGrDS?P*IC#U)14G8HFKguq?e-jo=g4mx*l-Q@P|+pMpzanL{Dx4-$d zRGkhdCnsy;(NMSV+~?JszjQjwt1z=%1bDQ*y5P+SG-if#$1jD;iFPK!0b)8Hbybz; z&z_;8bUGDx?%dr^~~$Q{3ucZnVhiTOg0i9@BYlA_#MQ=9`FfA`w_L zQWUyS*Hcc8k7=5k>2%6hUwz4g2cNQW^(xcpRNn8rLCel$Zr$*#9xjb@DuTitME$%4 zhvB(J0_43LaChzXx(nmsh{<$9W6t5=ke4r>F&>ZE+j&P**Sz0(M^P@;?j~Uu4Huk$ zo{to~O^>&!$j@d8u&l!a(&pw?)igDu;ZUaI2@Bl?R#sQ(^?H<5i6-UfaDYWjv$fj1 zw`ug&2Y60-gl7+gM@zyWJU_I2L(o_gyKrc2%_;(VTGiV76qgh+K&gL6IjUC&L5O^KnE#B6kHv-0Dg9{m#1}XtuB4 zC|^E(#?$Zq!}YB#UcGwB{@xyvik*e3v+VBq*hS1!I=?)dIwHUw#V^!owCV6R6=4Km zVU$(JHn+B$-qOl+^Mh-E(p_9-G#vBn=~MRh_Unz!YkOBVHoA>9xwd`;9%i|sS|Sjr zwLqB7%^84s;2xMakyMKQ;HZB(o_sT|>-|YRrCeBuE9+}aCgYe)CM>P4?Jq8^)b(Us ztE$@N{Wz~5+1P~5qo5I%LlrUq(Z%K%c}nW0u7~5%o+JIi(Gka16t83c?(Vz#^aV<|JlKt0g3&RZyJv4-dyhN)pyY z|6pGnnJg}^9iE+@iaC8VpGbJZjIjKFz}rTbqhPIIC@hQwhzFs9lTfqve*xs(D3^o~ zLd3*E4_23#Z#0d?;b0(T)$ONLG!Em@)L#*vW)`4zJ8o?OwBh%*3L*j*LnGzpErzL{ zACAnJpYGZtV_BAESroi_`GV1C$nwUGJ=}0J0gAS<&$iX}TQJ*gatfS4D8d2{A=L6Y zJv2unpPk!Y+4h7W!Xi~gT5>bqy#23wKv9%5W|EuVd7(#JS{aOXznSfj08SC$?oJ9J zGzf`ILL{5OgwWXw8i7@vs+7~yljiK~ECSKGsZ$Xhb2DWwJ=&1_d@76?mG-&&{{T>Q VXtXNl8yx@u002ovPDHLkV1j$i3x@yz literal 0 HcmV?d00001 diff --git a/imgs/icons/10236.png b/imgs/icons/10236@1x.png similarity index 100% rename from imgs/icons/10236.png rename to imgs/icons/10236@1x.png diff --git a/imgs/icons/10236@2x.png b/imgs/icons/10236@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b5d0e8b532e587e2607c42f02cf8bb1404c24b6f GIT binary patch literal 2326 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/10254.png b/imgs/icons/10254@1x.png similarity index 100% rename from imgs/icons/10254.png rename to imgs/icons/10254@1x.png diff --git a/imgs/icons/10254@2x.png b/imgs/icons/10254@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..43c93751801b8a3aef5fac403b65cf089a6539a7 GIT binary patch literal 2450 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 QzyJUM07*qoM6N<$g7J)?C;$Ke literal 0 HcmV?d00001 diff --git a/imgs/icons/10256.png b/imgs/icons/10256@1x.png similarity index 100% rename from imgs/icons/10256.png rename to imgs/icons/10256@1x.png diff --git a/imgs/icons/10256@2x.png b/imgs/icons/10256@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2d5e97e54d122ee749b7ee07dfefb59f99c107ac GIT binary patch literal 3044 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1031.png b/imgs/icons/1031@1x.png similarity index 100% rename from imgs/icons/1031.png rename to imgs/icons/1031@1x.png diff --git a/imgs/icons/1031@2x.png b/imgs/icons/1031@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..11b72bc593ea9b9681d689a51ba4915909cb6d63 GIT binary patch literal 1740 zcmV;-1~d7IP)43q8HV3;&s}EmjK>}?wVlLqZO4vX2WMKRghnWp3TkLjSPB%X773+@A3&)9ArQq> zD1e9%pr|0BMxv;tg-{8hqN*;CIIf$-TOB)&*YPB_$Fq6%?atjkend#2^%Bz{@uTm* zD;?eUIp2A|qwfIk>phBy*k<2bXq}c3s!iYdf3f z3Aiel<{aaEh5<1ZNNiLI;a1H*L&PP(1)y5fv^_HChx3y|pNPNt+DEHA-u=qJ8|_|D zciZCZF{M~ICUAa`OtYPUY8i0!5{d5#paZbWfE&P0K^FJP!2OFSpKfbh4v0tG9`bNb z`?*MuHnqt2jhyf1$@qQXd=FFA8Ub);0O`L5_!AM=0hgrfb(XF-DG)xG9{fj3>}((H zYX1On!(boz*u(7l=v!=XppO#sQ?OonzLNuYF`KQDX_`$2x~O8_Eb!+=8oJeDNw zHaYKB0H6QF_xQep_v7xv53#q0&SPeB6o(#o2$iy(m3iw);#`(T-fG}Ll@49r=>O}U z%gy>aAlp$WXK>sBy>zEtQhI3cZ{?}UF*?zAiDi;;y!h--Fgke|9o_e$d!G*^0I9$n zJRLsS0Ax~4yHHFEth{{t0F{8#gjivk=1x(Pe4UosdgZwjce0Q@cyy^8U=( zzbLY4(iea58P;eY=!eS-zfHT8c+!=X1%xVqOgft%ZdJ?Un#~ zi9{K22)bTnn&vK9R_?96deIwt`FHfGCx6NS5#s}Wc=OyFSc`{IQ|W*tD)5K|-*=vd zeMi$$WNh?W_{!Bxa$z=~4X>pIRn5M${F_xk6aY6#QY{#3k$|SD-#?4Gp2MhX?n2l< ziJ`&Q5nNq`%ON9?(~wUVP<`-j?Ec)Nxy0neN@Ct0PcAKGvx&8!9axP-BI{no>xM7` zFiF#FoO5?M=Z)b%Kkr%T|0jO=$8#(dkK+96uV7|!80kb5oQp{0G)OW-^H-mOVHly% z$WScd_s7+6@_Kz$#d4WamI}?yt-I5ARe*??8&G(uM4WS*nTWeXr%s4Rj(q_;cC}*S z;@=UNpTKG;3@%CtL{*3d1G_)}2H4#>S(W zSZWbmy5g$y2G5*1qi6}7dgt;{zB zI0b0EKwc|JQKn!~E#!vK-X#f-9QRd3;?BbGAhNL(jJ%2VXMSc7kVwu<&zhQc${fFm5fADc6(9GA$Z%rdA^$ z&NE!F#l5YK;q98=5&!^zi2VwXXQNT6x~9g48`-gt1G1F0)M8OJmTOACy@zeua<@nC i9ILkZ5_(_%clsATT`9R+8hT{_0000C literal 0 HcmV?d00001 diff --git a/imgs/icons/1033.png b/imgs/icons/1033@1x.png similarity index 100% rename from imgs/icons/1033.png rename to imgs/icons/1033@1x.png diff --git a/imgs/icons/1033@2x.png b/imgs/icons/1033@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..394c5e2048e2d6bfd431e8c7922aeb078fa98e9f GIT binary patch literal 1803 zcmV+m2lV)fP)QAyC4dI9<{}Sko#=Q>LWts%=V>Zq3vwmG)&@t7$_> z`w~r?6it=7rAk^UODkx%l#=E~fsl|AG8m!U9WdC&0bj6KR-7MgfS3{Si=jfb<0* zhX>Y40OJ5lf+S4_MbUngG2b@^@FtO%2&^Mur`BPANpwu-ilSORW5^l~ipoy~;EEC$ ze`^&G@<%nVBjQ3XR}$0fjXtaS$L!Q!%3nSBGXx!W$ZlIx8i-OtS$TXU6yoaqehcE_ z0z-h*$XN8h0uc6i;svF$hy%XwZ9iX@pPU*~CnO>)h2XGTnbzmagCTPlRH`HbMkQdl z0GR$W(d#GsD*J;=Ptn*{Eq8+I1O7OG;oH=bT23 z*H;!*$GdK|C6Q~>*2 zS6bIjpKYS&i%MCgMvFDGGssR!fncmem=lnikwZy|Pf#*gG&DIPBn|$fN&y%&K>WR> zAD#das{_~~kRewn_HaN2nN93_ufIWG-RK18_ag>?I5}c-Zan?WE{HtOe*f+t)~~Msp-g6DNrPc zNaJPDaXd0NZ^6aZRs`)1X8g(1PG4u2Y_jRRcsEl31gv5NbwpfraWPvC)GWH4IoFTX zBPlHdQYegy+(KklJp+AJ4Tk%Bpi-z%QdohA6hu;z9-9gaS;?>JqhgxDH1^@CrHQMT z#Cz+n3~;CWKp>!x#g?8@0mhjV$5^&pq#gQXmao-fVZwy8U;t4DJX!rLVwpKObL}#$ z!60r84UzyrmzVD_U%Y5@etE??KRxZfTm9i9V2m1wWPOpydYrOu|ZS|a+HL8*uH%m zo-D|QYVRw|U%WLq)YNp_HEtP_-uU?>mRbGF129H)L>wpiQ`LfEbJ#p!5Eg>8`T2vm z*3kl)j6=cpYUm1!V7oPplJcjZ*XhB_WSI7Oq0;Iod;bsN80`1?CnkF4E%q_g*Tc zu!Wb9zIPu}snnA7YDa&9!_l#$Fn6MHxNq4X-~9>PiQnV#B#4j~x*Cq>h#U`1-X?bL z)SnOzhoGpa1}`e1^EpuS;sLyW?02}?KY`{?8Zk5Y6(wyd!+6X2xqxe~O{vjzH8wWh zUBCD3f%^d%BO+p)PNxdY&#f_kc1HbN?E(7yukWzl(J@Gd0vKv`!O+u!S9ZUMd5;rz ziy1n#9P*fetlu7GPEH<}y3*OZFyrcKK7HD|lKJug02pH=0E{m<-y|GSXLUj!w3=nEh7Ed5>jcfc@Ke#e2t! zdms=91bAIi?|`xDYP;J_<5RQTygY%eD>g#<`-j+Bdl&s{Tt>U z8=G+s4!3IFaY~8BKK?%lZ!6=l9&q#hUl2Y16YtyBzX0n|5Ome}5a<8^002ovPDHLkV1g$=XjlLM literal 0 HcmV?d00001 diff --git a/imgs/icons/1035.png b/imgs/icons/1035@1x.png similarity index 100% rename from imgs/icons/1035.png rename to imgs/icons/1035@1x.png diff --git a/imgs/icons/1035@2x.png b/imgs/icons/1035@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d09ad69ce1044f4daa10cc3754ecfb25ccb627b1 GIT binary patch literal 1485 zcmV;;1v2`HP)QzDDN?er7{l2$9u%=}|L35@Vpa0K!f9HM9InO!3E4|Y5 zi>cLWPOVmRM8sZtaj?JFBqAQb%K~8lAln+ZWZ?dcv=IR8{{;DuAvget7%cHVus5Yh z*Vx$fqc|~Q1{D|PQ~uE`gQ2zA-#cV{ zGGmOz#>O(dC_9M22w+5HI@;Z;YDM&9k%)xL1*fT`D4*K&59vz5Y4OCN3}N?{_068I z*}DONx{HOHbO%7AQE`#b2x&1#KqbaT zv${5D@|<-d!1Gu0vQb`o85P${(Mu{|&f8%uYTE12-fzftceeB0xMKPz$*~LGYHe*3 zq*AFKKy$YN)M_;s85t=Ok!|*Yy_-CJ$B@!(D74jOxO6TDw{O=%CY2y#{}E`8oW`W_ zfkH^Y5dAQ}v4<}f6gPwhkC>OLUNphhR$9+-tfkuk6%`c>jH86L^H<+*eAqkmoexD_ zLmhYS_(A+!R)mL54UkCWsMi^(wCWCtmX5mMV8224npzA+Wp{6i5?kI}#!u*PXU_?O z*zL=R0l?9W3}u9$qyDSSt3@Ib^RmCE_+`^+>TqkC9^gm=6%raZv>)YYQrmJ4eqHU< z$00p&I z)=qfPsE5S77gV#Na7WvuRn1&dG%mznK09ja=)@fvH{M&iZsooD#)2_p#V!lIN9=N8F5RxJ6|1YOAOfh-wh%yw-<(`pc>YrLwr!tzxw<;bT)ZZ( zeAN0l>rB=jkLB;H?9QG&Yb5Gf9xx(eM8tL{#iV?;YCcUH=}i7E<}}>3mk<#=m}Cr% zGgT3%sijoV*W~Gg1O1kLxix;nZ#CzukMG}>?(6C5{G|Oo4x~Q@D!c|duOHIa^oF;S zyxq-_BX4I*TDlB0h zQW(lBYcl|pn@ZRy3mNmOZ*HMUK|bE*Olx*i+jR9}$uAd@oGm}Nd!v}UR&}QcKrInH z>dgOcOQ}?v0#E|*0}uvq(Ewt0C9J%r(-zUmtexpRFl9^3q7wzDG{ptSG9!SF&D@!K z>WkD0FmIE~Eksc?7YqiEopFoSxw{P*QK5abF=6}eON(buS>iXuL#T)K+G(npSBZ$d zuul9{DiwGDP5^@Y+SyDF9UBq=z!`wo0HxAD?9H%#FTCi#AOId6(Q5%f;^qb!02w+$ ns3-5vp6Q=nzw}?q|5CpLmy2ydhvQ^z00000NkvXXu0mjfDJQ<3 literal 0 HcmV?d00001 diff --git a/imgs/icons/1041.png b/imgs/icons/1041@1x.png similarity index 100% rename from imgs/icons/1041.png rename to imgs/icons/1041@1x.png diff --git a/imgs/icons/1041@2x.png b/imgs/icons/1041@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7b10108a68d9b25ff01dcb9aac27d21323fe57de GIT binary patch literal 1505 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 Ef_YJBH~;_u literal 0 HcmV?d00001 diff --git a/imgs/icons/1044.png b/imgs/icons/1044@1x.png similarity index 100% rename from imgs/icons/1044.png rename to imgs/icons/1044@1x.png diff --git a/imgs/icons/1044@2x.png b/imgs/icons/1044@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d0bdf62ed2eea9075a11065e14cdfe28e09c0231 GIT binary patch literal 1597 zcmV-D2EzG?P)6qQEpLj-k# z@08mkRe&fB1~lkpU|@iO!-pAQ5P)9b+F)4i zI(=FJay4<67X_h|vM{_W^bnY)Nq^rSFDpoJxdQ@(I^MOp%716@r5*c!ng|5iC-M8H z(P|eye0M0(|FcKj!J&81DOelU1#0SQ)&#TCYIu7r(h^T5)-&l*ClFGI5nsjuM)o$d^@L z2|!n{9*>UZud2|&)sz&%Q{BXuZoPw4I?MQUgm@|kXjD}A$mDIM34{VMWy>oq)+i3< zRc$B>5UH=H%46VP+X(2OigA2_wN(47sPuZt=3S%`_19LDMvplt`t}G)+$?>;|9`$d$z1f3HGW0Dwf+ zVSXV6fVi@dgoWc4ld}vRM}nbi7GFDaNGj< zf{i0xq*NHXjsSd?hG`gh3lR z%XBgH)ubw$G@~0R6_Uy#O#CTsH+L0q4U(;m)db?owHBDu*IdD>-2LOrV zI!MhzDS_ik(wQ7P?|+Crd-sc}k#kIrzh`BWiS75?*}MJvj;6Z@Uq1WDks}v>R|>lX zQ68YlFMeg}+I%#HlS-i129S21bS96~bQ}c>u{itoA7Jmk@A2rt?{nf0&rwj8v<%`M zEsf^xdv`Y7a?_2+CubuI=P$>f10_HxSY`;9I{vL~_Lp0{*|DiP75Q*N380YA5sM|r zWb$NldHgj2z8$`gM}PDK9{=^9iP>H*y#JQg`;{%`;P9o$Q~giRtZ#3ty7lH8e+bm7 zkBrl&0tis2PK9+L9?aeLo$$%6n?m9rXNRP6v*a>q=H{d1as@K!3>&+;k+~RueEzS5 zf&oII5FS0tOf01}tZU)I_-uSWo^-l4Zs-P@HBDPWShfY>@F}Sj;*H3}le^ZxyW`Tu zk4ug*UscO?zmZmYCK|eY&0*WqkeSNEXi2=~n)nx%|fvvzj9oKC+`1sL7zyDfi@D%X$ zp?!B}o;iL<-LR=8;x+Y=8#Xn~`bHFZ`$&=3xzFD1Adh;SHv zZm!2SHa1p0IXUSE{6HO0)6raa`+YmM?cUhdVx1egTo|34OSLrw%suz-s-BsT^4QTQ z-gx<)shs3SbRInA*C!I)7_x>xy2;|DX0R%q*C&<4t@^00000NkvXXu0mjfMd}Q0 literal 0 HcmV?d00001 diff --git a/imgs/icons/1046.png b/imgs/icons/1046@1x.png similarity index 100% rename from imgs/icons/1046.png rename to imgs/icons/1046@1x.png diff --git a/imgs/icons/1046@2x.png b/imgs/icons/1046@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..54bb5e0a0f5b83f33238c2d50045d57e2d913461 GIT binary patch literal 2588 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 Z@ejc6+wg1J8?OKW002ovPDHLkV1mR+CZPZT literal 0 HcmV?d00001 diff --git a/imgs/icons/10570.png b/imgs/icons/10570@1x.png similarity index 100% rename from imgs/icons/10570.png rename to imgs/icons/10570@1x.png diff --git a/imgs/icons/10570@2x.png b/imgs/icons/10570@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4b04fd93314dc84613bdf90f30e9ad37a50464d8 GIT binary patch literal 1904 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 X*-g2PUW!s+00000NkvXXu0mjfR6_`) literal 0 HcmV?d00001 diff --git a/imgs/icons/1061.png b/imgs/icons/1061@1x.png similarity index 100% rename from imgs/icons/1061.png rename to imgs/icons/1061@1x.png diff --git a/imgs/icons/1061@2x.png b/imgs/icons/1061@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0df1fd5c357ed7802412353ecccb11741f51ca4b GIT binary patch literal 2120 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 DeYbVy literal 0 HcmV?d00001 diff --git a/imgs/icons/10684.png b/imgs/icons/10684@1x.png similarity index 100% rename from imgs/icons/10684.png rename to imgs/icons/10684@1x.png diff --git a/imgs/icons/10684@2x.png b/imgs/icons/10684@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..567befe3bd5e1d70071ab0e09615dc19c15847cd GIT binary patch literal 2122 zcmV-Q2(|Z#P)fto{%D>NKt|im`e<{ z5<-C3;NA6J&;2r0m4}&gb{9rE=gjo!?*FB#x_jj1*MIgGQB{#d5{0CQD5@Z$po)l~ zs!~;zUA}y!_sh5Mym`34n?CyBAF;lDQ!hXB?7{ud-@m6RC69>k0CyrBcZhHZ$IOW^ z!X0xb%w0uQRkLPQm7G*mG$m9usbtlhk|tG6stUw!j{)Lw^q~hh*?xfpq z{%X4{+buyPOFc%is%p}dP^o9ttg0$mMO0NqC5dK{go;2)AdplLO^DX*B7&eKRaBCc zIkiqsjyOI(4ACs@PLG2p-#PA)G(`kLI7t$g4Dm$5Fb_~gae{;zgakQ>BC2QLat<6p zNT>opQDzPg_T}Ao{>Q367E}-;!Z64hFK>GdTK`P1t5lMv5r4T?R)$=#c zh&1Br+{%a`N|S&!c-@vzsg(;t5TulJFdiQrA00ivxBEz@lPRA57e%MMpHiAZ}f-6tG&@GWHlDf{2n4T_pw$`7;VDCPY~5Y_7j(yFqD9Mwdwa8={P?A{*YEryin2vDoAS}S@33|A79T(OOh*0F zI6XOyMPA=Zxp?G$5xDW;0*U;6wJQ=)uT)DD6U5%$zFqIF;io5jcJC8D{p2G){?~oB zS}jf%GhV;_Cgb5ib`QUl_3cYk)x56B)s)Ust~Ctu*&m7T-`CH9X!7~6-`(hTpZe$S zE>HgSM>!Iqx_kx81z&yn1$4V0!hAMmF`wCT>=NHsU#p)L8SrIe-FszSKsXYJ&u7z4 z*F8VoYICg0NpGFGJN<)w7VZp(L%cFX6RF5?ro6d}Xy$J|&EFYc(g@BBUy=}13EZ_P z%E{j2Zx>OP#k8uJ4f>2k7)-__5h{0vqoL%S2@mmz2K1u+_2d^ExX7p;rv%`W>13)RShdJY6azd0Jes^ZR}&FvtgLqYf?ZDF zga;83isxc&tusW>l)1UF$(8L(bUNMe2y)7!lv{^&(MApsTZO27s<&6G52c z%S>2V=;Gn7Lc7=LboXa74slt`XRKFq*4$ZC6`l31KC0uCGeu6>-Ia)l@LE01$>>~u z;eom@jb0M5l@m)M;qH>Pvy-!2F^jP#TAEmx)$s>XtDL#JClNZGo`gH$zOtTGP|vcW z$pLTr_%iDuRsp~Piy(=#o(u+D7C|HUj|h(<*b65Ei}9%E;j+2CL&};L^F@*-w}NQS zhp|e+XwHlpKzKAH45DTp)_iafB5cu)qXWK8${a9Na?Wh!Lbl41@vy%ch+ez#94b*% zi+K{!x*QwuGxY{hi_6Q^FTCCyLa2{SH0=hcNX(|~-f%<`rEkV%Rpu(Bq9C=}9M0#h zgT2RVqtOtns*s3qw=?kbRo1LK5z!>!a)t6bOC#cJ6^lSo)ymrk^BFmub*mV<(+$|k z1?_g54#?w&-#m4Ca)?`0Ay|OedGH#fo>KFdEg$HdE_K{ z;Z|OM^))uGUZWL|rxW_)ArJa}CbKCCAtBXhJa$!CMBw2ry&0 zw1w3na16)EcwHi-U7_I94qzwzs!>ll~DA9#)z3$78Ntzrl?k-DG2JgZTU& zi$@PR><_{t7N}N)uPpbo^`vp3ZpT0^tXZLq2*V@lfnJ9tt8)BgfBozKeu;?2rJWsG zIkT9}$XYO)PFXBw;6}hgV;Dm2Pj1POpbo3&x{Sj7B4hvK-!g_W3lgs;bVj+67ilSiLA&;9>Pf92U5N zg*8MPH_Qlg%nXC^#@40jWHuWEv|24%?KV-(SVxhFrh#+(}BQHyV#cl%|p# z!!VlitLiGKOVh~#?(U=zLW7V%Lz`DI$Vue!8@=YKe%_7EQB{#?PV;tnbk&L@0#xa2OySZzRdyvrvLx|07*qoM6N<$g4b>m A{Qv*} literal 0 HcmV?d00001 diff --git a/imgs/icons/106.png b/imgs/icons/106@1x.png similarity index 100% rename from imgs/icons/106.png rename to imgs/icons/106@1x.png diff --git a/imgs/icons/106@2x.png b/imgs/icons/106@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..94a9c466e396e50039c3cdf34c5c65eaeb298ad5 GIT binary patch literal 1762 zcmV<81|9i{P)^1bF)BwJpn-Dh7F>VF^k=Ok(^|bvz8VDW3-;Y>qB$1Kut{%gz$nfFKnAMmrF6v zo=u~zE%P%tNA$^whF>!yiFi#92k?9{$&VgA>il~Ima7fJFd}dq6+#e%APs6g) zlaq;^lOwaIIL62Gi-!+yw|@Gg-&?;;mhIjDgz?>9{DCuX z$o0$TpQe%1Cyn0}`F1_>*6BZ@yJIH-40L}x+~0&Rz2w65bP=R9A%q4gmpjF|gb>0P z4*PPtUAZtiIYIC#(k zV0^d>Ydg@~EHF10gU92*+78s$d!VWkj5*LWz%*^dVnNup zDm+@H&<(B!V->qAVh1WT@8+wcV@_deLYQWO;^7ef-hE!a@!tDLgiE+LJqOWwaSQrW zyOoZPvp8}@0U$q$0LRv?Kqj+<;*L&gr^j zhRL#yL$N>zX%aCg8a$N=)-{x(OC8;axcwsH z^EkYar+i*l440?Jal5&uAqdNosIS-2-*4VYxq1wV7+P8w&;p=^YmYrvXU?aKqm@Eb zV#khMR&0CRFk-iXTlohN=+)5I55(%VP{C0b9TtC-+=o6Njs753$QLaUOkH)Mu$1AJ zlz^UNAByNgX+zD6#6n# zYQLtr`KV#!8r(uPh>>87h%ql=Oieg)D3zs5ma#-a zvrWTr5_R*CSi+`a8yi2DM{DaE6A}Ow$i}h-ssz`{US7)OpR}a;4NpLT9Jx%A09az+ z$_0Mr*&mZjRmk2@=?wnl=QBn;ZqveI$Sy9n5s!zksm^V2o?)6I;P=|7uH=AQzjqYx z5@3u#Q~(0QMrL|EQ4(?wYSvrX!R`r!?nHv(#S5y=x93!G7fMBKnm^cb9m*Ik35Rk61WEv zNe*hE7yRtq>w~F*$G`r~%`R`yE{PUV;l==)nO&r4B+MOfrkhS4oJ)tXK6pGS?B73+ z*I#$wIBcb`I})$KIxZv(0M&n~q4L`6w{G3q=4E(l@56Qbw>50t-1g6l6YV{>+Z=`=#<1Wx=)rRP zr`MZ&y#xS2l==PPi6yfHFcTWE&jfM+p9GvNfU5w80W1Kp{~H7V0JVT?((ey0Et$na z$TBHq0l)-+G*(Resh}Rv0Qdm7@Zek3|35zacl?jwUw_~Y^qh=}L;wH)07*qoM6N<$ Ef({Z@>i_@% literal 0 HcmV?d00001 diff --git a/imgs/icons/10756.png b/imgs/icons/10756@1x.png similarity index 100% rename from imgs/icons/10756.png rename to imgs/icons/10756@1x.png diff --git a/imgs/icons/10756@2x.png b/imgs/icons/10756@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..017903ea6bc44c359f47798cac643d4a1a205c5a GIT binary patch literal 2083 zcmV+;2;BFHP)8SgsuXr%7br>p9_R85ck__bgBNmNxNAcz7%AtDlE7|)Ks zz46Z5Z~vsKoAJ&^f4kGIpIkY6^yN=imsTEQ5D>^YgCO#lk+b3S^c3&B`<`6C`EvW0 z_uv0$K3~Ah06NSZq=D`*chKBbR8=)gh|ZU* z_W1aC-L6liscHr3?hX;q%#d@2yThG@2`5AZn@wv@5e-2_162hO0IEgzlmSI_0|uDuA5!Iav33%#3F*e@6om! zoSdAYZ8wVs3B}fZ*(`#p&r9F(oXQE8M&L86VvL8mrZz(w(A3UY%r?2_!Ti ziU5iLh!ko7h$uur2xZfr#lL@e2S?96&luw@2FI&6u3_vQUw!ig!!V#9M#LBa2uMfQ z^>X>jHFPE|Hyc$ELIcDMq5@iBPec$g=?@JE6Gcz~1rk)P+iu5455I;H>!7Sp)@}U! z-nZCnJE%B@VFXCT6yWB_dE{)?$hI5rZpOTgAq0>R00f`_Y-dP!!~md>UJij`cZi5A zpS$+SHxKWVSAqwb}G28g~^z?4iEObg)fbF!0 zfg%u5C`9+hfRr*6fBFUbOk9)@#W9FFMaP8_LLJVlCSlo>QFKA%5?Xb9X z`Qd7HFu3RG?gUHAId;$Jv@Sc)#IpzU*r(;e(b2}_T9ic%Jp1n`^9H=5^g#ST}mnP=x~W)Fo49S>oAUn7$Z`Oh(YA&aDk?o zZ?n06Cld781;mSZ&lN#{!r~4G6iPSAb(P>=hE@szRn@fFxAT;O9IR##h=;1#!d(C% z;pf6Tc5v-{N&j!t)9VW>bR$;F8S17&jDd@T!^f(MRny>LF+)sgkWh_)D|euP62s4( zPlxVS98Y(<6Xz}g1&oHeP7+m-QUpL`r_B~ePsTB0y&W)SM>b@LT8ZHk1OVg|aQbo= zdS4Fr`8XBfzP|tn2t7E6Cnqf~H4SFXtP9PoozE)97+|g#Eo?N15iTX^GtBPldW!90 zMdcx%E=v(4Kv#@omUX+uw$I%3#OcP@RjS97qRk5SK;$JzSW_k*0QJAQia5i+$as`_NK$wgBl=S7d{ zUK%*_V^@4xwjL*;36T|ux*zQzkM`|DRAsNgp}5)Y6gOGaA}T9%Nc?M4E+#F-2`mX zePY6Q#dwjNbVQ<1;VMuu2o)D(DuaoAzpa}pVa&#HbU~_G2|^$YBvFS127_rZ(DqO{ zp>pRr^ktHI@xZik=h6%MPu`%x-L&rqY_|iJs|HnF^){N;^F?a}jjku{21e-tz}+q; z-;V(9=MKrqgu4ml#ib;thfxA#A_Yae>CkUSBn?Pa)A=}rrkS^OGe0?7uR(}c&1`Tp z1pqgPInR#+zSfGkwYUQ@Rh`om0&EAsBw@Ka zQo0?vyKztd)7&%z$NQZ_ zXJV}Ef{RHYXK+eRbI=Hf!C*xKn!`vK3GQbv_PG$)HzZh%|qWpf0Lxk^<|DT0t~5Xq!V zX>zZ!W!AF=e{}2COYQnelRXa(h)-10cluBCJ9ZL0t%z2V8w<6Cl~N#?k*W%21_4YQ zr9c|Su@CLpnVcLymY=GbClMk5l$;}fW`@^O@&Nsn3aM^ zm^((xF@zAm|H==sSgv%)1L%Oehbqk;Z@TX6)6YI>|NO^4;P&fpF5dg~Z*G6@=1aH7 zz845!nA$IwE-0;8CZW4K0tHlpLMY4MCcps`NK~g8LR9|h-S_N+5B`de|M4%*=X0|$ zORVa%tJh!o5OjWZ|Nf2N|L(UpUU~Iaef;>5I*mplGpCXB^sR$*{~sjir~EvlDZ&5% N002ovPDHLkV1njR)D-{# literal 0 HcmV?d00001 diff --git a/imgs/icons/10785.png b/imgs/icons/10785@1x.png similarity index 100% rename from imgs/icons/10785.png rename to imgs/icons/10785@1x.png diff --git a/imgs/icons/10785@2x.png b/imgs/icons/10785@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e02fdef34f99767f4d7d52a7de8dd05a9097027e GIT binary patch literal 2240 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 Ef?a5!zW@LL literal 0 HcmV?d00001 diff --git a/imgs/icons/10829.png b/imgs/icons/10829@1x.png similarity index 100% rename from imgs/icons/10829.png rename to imgs/icons/10829@1x.png diff --git a/imgs/icons/10829@2x.png b/imgs/icons/10829@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0aefccf2d5ac04dc3b83d0ea64a5a28b134a596b GIT binary patch literal 1845 zcmV-52g>+~P)t75|+xbHAS7bE3qt&15EQX9h)owr2z9|904!b}V!?_9 z5<;p#LaIbXf`qCffgmC^iIPZ_QYdK(`Ksf@i4!}n{cJzqduQex7WX;0%`>$TjC2?G z-kCYSk8{opu!YfTwHN@t_ro8*eCEPs{mtudxX*q5i}K>Pzpuai?O(%BUwPv*>*sA| zY~F*o&|tYhY#!j0|1>kal!!L8~=Rg%)RN`2%>!Jy&J(q8F!WzPM<&f$JdXyS{CiL z{7(V2S}h9zECTTVR5#hml9S0AN{r<|0cfWP#+O@mAJs$(I5dZ?9Pk#KFF%`K)!~;YiB4Q?j zsDhwaURnSVgNb0G1Z)f>1O)HJd*`h+ao%0|(Sw;g-(4frk7b`RUVWGF1!K&hcR3_@ zc4dj8$dRvhk>@$$bO2GD!o(?v8NoZK2vmhdg6XcTNKv{MMn*n4&ryn^?Cy!f`kB7MF;`Qi}O$kCQ53msz(CN zKMP=DP1#KVsK)lex?SijlXC^Ei!gES0t_>H`GRRICe(b3Ub+8BBhz~S!lqKF8mSq%h+ zLf4WFL=2IDvMdn1Ls{f-&VisHf+Xnxr)m9CqaHnX{rdF+AIgJ`bD+_v}wpS&f zyR<;wIWQZjRA55z@ZQ6FhY+gr^R83{AR?0h9;gaI6{HezuC;z~`sM%tpvY5IH9-_2 zDgX)Tlme6v4BIG<0f3luYooiW zilWFBP(Z7ol|5Dc8yf+{P@qOcb3p_)PLz$+5Rh(CfpG!=^1hj*8Eh0of-lK%Fg5}k z10OsT08zD^2(VEMV+>J6a9aq$RtHmEy(`HY+P+BuRTuQ??OKM5NMVc#P=PfO3>y$v zHV_e*ErFG zhzL*+(I6mE6eZm#PB~69NGSWp>i1Crz!>f*9{Jp5W=BK-pv(q_xzc_erwSBR%qFC`|k%J6hCZ?#zm{bIn)ZF*3L&Q+RaB$9hS3;o(B7HBa8(L5}ne*N+ z+b9CFom0`B1nMPTwMdG>%g$3#W!mA`%8e zZ~&CnyjRs8W5W96CIUpn8XHX!F^sYEs`l@_-ycw-F90IK)vIq$JvnyZt>>P9p6Y{x z%xn^70|G%Mtd(1JFs*A!l|2L^vUy&_Y$A~1JV|QZO)H?PXf~Vip3&VS`}U6N(9n)s z&Xo&91O>FJ1whvlpclA0AyuhrM^j(=@(X^?$S$ODdj6%CUYx~NZbZ#y6La@xl88t|P#b8trw$!Dpsqj&*xzoq4FLCH5Pg%d z)oSs@ix*e(ZuixtrDYQFhmRdQHj-r-K*Xxj>yV+h0==^VU}F(Q5t!-FxrsmBou8jw joS&Q7*=&BcFWG+qGk4cM)^o4<00000NkvXXu0mjfy9rVN literal 0 HcmV?d00001 diff --git a/imgs/icons/10830.png b/imgs/icons/10830@1x.png similarity index 100% rename from imgs/icons/10830.png rename to imgs/icons/10830@1x.png diff --git a/imgs/icons/10830@2x.png b/imgs/icons/10830@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..127c508db225e44ebe59d437050b9e3fa39ae416 GIT binary patch literal 1428 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/10833.png b/imgs/icons/10833@1x.png similarity index 100% rename from imgs/icons/10833.png rename to imgs/icons/10833@1x.png diff --git a/imgs/icons/10833@2x.png b/imgs/icons/10833@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..823d028048bf8b9d59b82eb0100cd17e81f7c124 GIT binary patch literal 2666 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 Y1L2^^m@SeHQ~&?~07*qoM6N<$f*XQN$^ZZW literal 0 HcmV?d00001 diff --git a/imgs/icons/10834.png b/imgs/icons/10834@1x.png similarity index 100% rename from imgs/icons/10834.png rename to imgs/icons/10834@1x.png diff --git a/imgs/icons/10834@2x.png b/imgs/icons/10834@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..50f632abd26d6b085c7d194b68c745211a840e9f GIT binary patch literal 2658 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 QdH?_b07*qoM6N<$f^kVs8~^|S literal 0 HcmV?d00001 diff --git a/imgs/icons/10835.png b/imgs/icons/10835@1x.png similarity index 100% rename from imgs/icons/10835.png rename to imgs/icons/10835@1x.png diff --git a/imgs/icons/10835@2x.png b/imgs/icons/10835@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9b5597915059019450f7dd4ec3722d8a850b8c05 GIT binary patch literal 2744 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/10847.png b/imgs/icons/10847@1x.png similarity index 100% rename from imgs/icons/10847.png rename to imgs/icons/10847@1x.png diff --git a/imgs/icons/10847@2x.png b/imgs/icons/10847@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..dad6f06d09c90d528af19cd946ff4765c5e753ae GIT binary patch literal 1758 zcmV<41|j*0P)hho!#~R@9bv%mpHW(JH?ADJESzUl?V_OS_KOzZZW9JQ<0FU1fukXNQ-#r z69isBhzb?8p+!y%iEX7$>=GbpLQ*?1jvdEoZO5_KyW?Hk`#bwP_wwMiiJaJRj1VvV z-e%^W`+es-=gvLAC-?+gfDnQLfdB(Q04NX$Fd+o}&xr$p04ou1>HC(^(a|AcIa>h0 zdneBvdH(BP`y+r(0G+L^hu-cu)^X&n5b9`alQy&W18oyR5D^I?h7-U2$>T%UKK`Ml zqPqRc;7y$E?*{;U@xTG>YuSUW8hp3OUwiaBKl;Uh5PUUu%K`*I1c-C*{^roNk+GLA z4UIf!uCN-EI-lr0_76Ri$P?!RcEuvT)V5zrg<_PNNfeuQ*PM15_!~bs`gYHQM66pc zAp{X1hKGiZ4u{lk^X|&lgl;#Km6huitcKcOY&Y!N+ax{t#9rxJZ7&+CjJ0Hvy?R75 z7^?R-wI=M&?w+obKPMvb&6V48A;;_BKR&N6sSeD#@wFt<>kaA?Z#-NWA#{hdAh(z(9FB?tIgE&wpBeZe`W zl5M8ffBCcezGH8(xljm+bPA_VoyPvhp2A|5BN|;m@5y(d7mGOXEQj0WL{5vN>(psX zO#~5LjIy3%o$SePh=$hZzG)(&?EU)T9sxuo0s$}p`Pty@F_X($zul+sDK*Lx^KrcP z>W|T~w*_9sgo9sw36gBU;KkDj&L%KAavfYE#1ctt-=+wM&xM2*zX2e(y!E}Uuuc;O z7!e7V%X7(7T>-1zN-n1jeSf=vk7k3Agh1V{$53BejUDA~?5u8p*X_VWa1QVFpM%lJ zV6|I>XS)wxw{m$oselCFp3`uT0|4On-&kHKn{O)~7o08!O@~y`{OR5Fl`lU7yUmKX z-uylK&h$WV9l_~2G(Wx%2M>H6MyZIAn^VH=c1TV|L4iyo%X|9odlWbPZF(J5thQkn zj0T2SEJYT(0<&zyop2Zqs|}rh>BXNT;h8NP?Tpli)P1OLZUVi139RTFDO!qCp=;$Z`fEFRg<@19~*K=bwoB2)IBtIXE zsF<7y3YaBo`D_CSz(->fxHd2(oE7C{Fp@CY}HHTRmkhf*|0jB%A_03CJPFgBC=Wm0nmkxC|!$t8uJ z*TmrE(ZN(aHN`pa1uzN5QUJp1k!$>XPR+aO5-KK140eO!Nj1h9d z2INk@@2#F<)Yx!cr zXtZ2)dOQ>Ji;L^tep?YBN+OCDW*ISv;_-MgliKrilU(k0Fd+n~ibo88a5Zak$@WAv zYAMAq+{f~*2v`w;Jj-*7SysIsN6sosFuN@P09RUrQ*o2bn5Gwa;_jFSVbdeD5Q3VU z>txd9>8wN{qoXWDf`!P)Ld;kef`R79EKfh$Tql;GUpQ!yk46s@3e(^ zCZbZVpc)lYjaE{L3aT{|QDxZ{_IhpV%Do>51XyXLUl$veps{gO`2GIXCOm%p@7hXc zU0oL;N;$6184KeWA0J;`@Avy@baZr6PW<2SZ#N$!rBI<$hX4Qo07*qoM6N<$f)kiS A-v9sr literal 0 HcmV?d00001 diff --git a/imgs/icons/1084.png b/imgs/icons/1084@1x.png similarity index 100% rename from imgs/icons/1084.png rename to imgs/icons/1084@1x.png diff --git a/imgs/icons/1084@2x.png b/imgs/icons/1084@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..90139f23d31eacb7de1ef8b2b6783fccf5075260 GIT binary patch literal 2270 zcmV<42qE{0P)Vzp_%bM86sy!(Fl z_r34;d-r~i;QK**g9E^PLw-Qa{}lv)8UTIN1s*1lm`o;8US3XGT3U!bA%U24b436X z0sI3%tB(+SR5F8tF~%{*$N*ErISy+8D16Bu8V^*!WHNDt5E%f9ESC6Fr%#M5Eh*Ef z1TNviS7)Zw)itgIfd~d3fcL*9z!>8dM$ji&)0pR%A zvkQ0a+1He{WKqtrn3w~jM~!4N6XV@erq5u3fx1mbqmf5%+4@wtR|yUPZ!(!UqtVDS z#<;#~-`v0g03e%p?)0Diobej~lYRHqDxm%+K+n>bSCy<-{o)D$NKa3{lR*C>guu_w zFBE|Gd*1av5`BxwXAb4Z*HqV*064dD2}YqiaNQllJKYN?0;K=gWj z-;U_@Ey#t2hN^5fo7Qf(0|38$`=2sIrNBKsY0~Ti2lMSkMMd8x#3X#ZWy_WZUyOVw z0R{lf(|L<$ti@n3sB?33oy%6eu*Bnb=hxZ0E;m$Hue86xRHLV*AJ^>0k=Z10%5^^aTYZO!cl^Cb(auUErz<=Z-qPV+NIr^9kD2?7AA zsj2Fy_>rpsaNGZ~ef+%na}EPg&X_xQVRCYOCIA6I3V`JRma5h2l%Sv>!{Wupq^;Yw zZYU@`?=)sFW^?Axtq+fkJPjZXz-j<xdLDo^02TsB2cY_7_wFfw z+n0Ck_aFR@jY}QxrV6E7tx=0{aWS)%N+nDtlZG*-V2n{pDIy~yqX;4IMn^{vLH{Xx z-*-&>A|itAR%@al2v$)P|5<$Uq|P}c;P~Fp^1|9%tYvPQceJ&&1;4iX`KhsbKOEhE z%u`ZT&7J+)0?Fg%yl2RSuuztv1+W=_9e}5=3GW26TdnN? zoG~#m9hH@pXy?Q~T>SFX#8W3u?jTIkxV>_$;OLpKJLkHr?rN45T7gp}jg;)&cERIz zZ3WN(Ak%C%s{up+Xa=A`?^ja+;8_4S09*zj-rENNpwQ~|VF2*KM;|R%^X57RVACD* z$|$YsXc`CkB!RSE$$4K{Hk;*a__Z5A4##n80Ic(sDpse{4KWx3f&heuhlhs(hyt(x zKs+$;?j+fpn_I??9UF12vi!IEKiyN6YA|eOjPY8nR-c#0ys}FBkyD`Z(EtU1*(-D9 zrB&yHBcmA4^P^;0CO(O;Q%b9+O&jW{ukUIP3k!2JH8t4)^e7al24EYg1ig(w2wS^$ zExmZTILg{sKeL(RoP>}R07+R{q?RXG!3f76lWAEup*3=w+`{ zfq~A<%uFQ=seI0x6)!H%Ui7NR?L9Ikb?RYJL=Aw>!4zNsVD>j#ySsZX8io&VkY)LC z0I3RvqAV#X>FQI{W=!nTsEeva={*~8nsYn3w)Qqo6h#GqhQPqU;`iS-I=Z{NiK1-B z#^K@Go!74xC%d|uHk1?}|MQ%gPZ*3wBgYscgB=j${5ypbVRCz`)jA(QqDG^+Ac~@S z=i$Rax*-9vc6(2*l9CQcl4H#HF(azVD{WrUTg>ykcgd1XuH?W>T2N3x^--~7pPoJk z{yMFz^4cZ$r`tYEX{xDtAwR!`OrAWMAIuT;dAlB!lImR!9PR1pso*#cWyP1b+^V`+ z1E9j=@y29KpFV%T-A^t^k!Wx|=_EiM`QF<(Y1c|FSbDme zS!4ATcD=Mf+PqN@0lxugDu6Kb z`i4PG3V?r`4;Y_cyli}0T8T=fSWGERL$3|LOD;kP1VM-^I)AWQay5&s%{RnbmFFd6 z#&Bx5h(sIi=x$AbL7!?!CRn@lL=$5r#L<6?=-c3q^&ksDP1`Gg7u3Xs% zK#AVHd!RobmXYzc48XN#@3DQ(?vBwD$3K?b6A}!E(+#JGSp>bJyY_Z};)jCCWcvPE z^+Ny<1R!m4%JAJUWlgliM*6)4U<3xK`43~O`@sR=bvm84v$Hc8z4dMZ(1Bj{JpXF~ sec)%r#nFxs7gt|jkNSGJF^Kg40zWi*jUVyn8~^|S07*qoM6N<$f*;gLP5=M^ literal 0 HcmV?d00001 diff --git a/imgs/icons/10851.png b/imgs/icons/10851@1x.png similarity index 100% rename from imgs/icons/10851.png rename to imgs/icons/10851@1x.png diff --git a/imgs/icons/10851@2x.png b/imgs/icons/10851@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..505f1a05e5dfd9601406c649eb8cce634d9ebc39 GIT binary patch literal 1797 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/10933.png b/imgs/icons/10933@1x.png similarity index 100% rename from imgs/icons/10933.png rename to imgs/icons/10933@1x.png diff --git a/imgs/icons/10933@2x.png b/imgs/icons/10933@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c3556ab435a26f7dde8a85ef92f63eeacd190ae7 GIT binary patch literal 2019 zcmV<92ORi`P)c+SK&$ie|AYYa=5T02hfw%nZY@f*=%`S=MuBIkeH~Ecqo6;@i%?jf)pP zL^QT?W_(^g+S)cUUkh+o0rimy7{M6;JOGO<%OWAfEC_;2NhN9$k?9{TPTbgZ?)^Wd zKe~E@Sz3-V>pkljcWJS&qi5pqwc%)QVIjm&2oeCg76I-)q&NVAEX%np%NCeSCNZ5( zmz&I1_m%U%kBtu8q_@U{Tp9vn5;XLW2DG%IRJx0-A3NuyS3)7&0Mrg65&fYRxJ!C7 zfLs7h0L7Z76#}SWS$0=wZe+`>uWRG9uaBBokc*ctVQ|ck*PgrrKLq%QvpHG7^^6X!1KI~WmyLRho&m~3f-Fu3fJY) z?OUqIax95pa1p9XkZ;Rn{h=6D)Fi6C!YMPaJNyfQ695DN$^#WJ+-@^g0f2P?N&%Ds zdKthJ0ay=8H-S(}lZ%9yY)B{L=xw`zwzjMAjZeTPTJ_5veThg^Qe;JsE=Qza$tunP zm^5PjM>(C1_d_ESmzbtZQm9!*bA*A*w1V!kVohNJ6JTT#`URkk(mP zbHrG_!;u`Fm_MuNG7spyp+agk1sFqmoe+{DgscEq1TYI=0-81oU`T^D48n+%>X^LM zhK1<~umq5087V~t;Vc-RnukuzjFcj&u3NXo{5+dW)%8h+VYV5n@}DmGCj_#%%Y+%Z zOr|t|5YefZVVDg>OVZ-?TNzj7E{qKJ;@sIkB6uf);8F}ynn6P0Xr7~(f9dFt$@E;n z1%@fpbzK5r0gz{qxX1XbnNUZ@G)VxFbUMyZ${l2g%7#O8dUtm}>AK#Ap04Ytsj0!f zx`S|emoOEGVrni(_dj`{;O8$Mu>RxX2X`)A8>--WW>uqNc#Ow5yyyR996cngOQ z?5gU&9d5l73f)1*eCceS_bowIh0KQXtP0UsEat0kIC6{^Y#)}CmNH_FNF`Z?q7$T5 z3QZ@_G>VigX{UaBN*?GRM|11-Xc`MPL#kefHVaI>oi z9LHlrMFn<$aTjB;iUn`J`?qC|WBLGv%+E(0Hk+*;z|&)6W90yB4u`{njM-Q9z&&^s zz-vd3%K0|acgwu)m)qO_3I9TvT5@tp-N9$@+_T@p`|q8m)3Y<+SVDPg0elhGlIQdk z?)=h*{pqB%?dd}ed-gx^M9JIlywi5!gG%WSIuaqNv?KHI~XUX1b7rF-~$=qB*-%#!`FGn0dt*!AcJMCO~ zv1Jk5^d&UxaC|*i|MI#wf7dbqV4-O(0sufMMXp1%oqqQ{;r7(D?(uj@WmPo-;WYWl zi^u2=uRuC{iCDicc*EoMlopnhZSL;rgCLmm-Z}G^&cSj2)gukt>y&V~@IvQodxFIo zofU!r@ESnZ8l$q`tkdHz36*)hsM)a--)K05-o8Ez4Er!MIkY%5G}s~~X)n*PY;|=- zV@=K0y@Lb87M+qC-Ti&Xik;%dXhLD)kwiD3&H{)TB~aH?z(71#w7)LNsm-zIN_BgC zdr2@DwCiap*3r@Rv97DV4o6;SX=#}$DM09@?``AvfB$?dZ?O*x0P*{m{th5&w?mCa zp&-)}G+=ELW;<4DXk_Gd0Cl~+eLDd-TrO8pBobkDT@A1-8&cJ@KQAx$F-J+|CIu{4 zT3W>4>>cg|uxzzLN+b|Bf@eQ*JPd(PV7J?OS(bgeu7_1s&GGyFb^vw&GQ%)4(P$#N zeQV{07k2-p0UZ9^U=fO=7c)7ZCa&-pB4bhe)-07MgsL=c&4dmcc{U0t0P zMRBOLYwoYJsvr*s>7N0NSu98*ll=o{!~Ys?x7$)xRpqpB-0t1m%by3Z1(_0=AGGh0 z{$}n21{qKB__ujg{4cV<3j_dLTU*N+gw`zazW^&Ih{wUZ57htw002ovPDHLkV1gi~ Bz)S!D literal 0 HcmV?d00001 diff --git a/imgs/icons/10934.png b/imgs/icons/10934@1x.png similarity index 100% rename from imgs/icons/10934.png rename to imgs/icons/10934@1x.png diff --git a/imgs/icons/10934@2x.png b/imgs/icons/10934@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0bef34277d4a0bfcf199062aa85323130813412c GIT binary patch literal 2269 zcmV<32qO21P)h>^U7p0B$Etz%#a6(Nf?3%83X|(6bLS~zF@josS!l#b3rRsS=CZVwN=zr ze6~Ic5?BgmOa#HeiU>mzB$Oav2!TLelX>L9+mm*_p#5t zXMgA0XYaFt{}+^%nb@)H%zw)v1<3IIT$w?pZR{aqeK)4@-*QX`=OhHwT4supsGz#o z-Q%DC;L-m7C;>_-GyMOiO`9kHl$8820#E=z>;9rNsUk8?AFIAhjPLQ+nn&_eoNwH? zks*Xc#u{t;bY{9-ojo1l{tkgvHWK4|W3GG{KS}{gDItVVN-0AKp#Z2L&?zz*@}0fC zJv+AT@UWh0@wY2;SNeQ`Tl`$_ySjvhe<#LA1}Fs~WJs1VaFqg-Qerln8ME08gTX*7 z77I3Q+Jv&QG6ui^%d&Laj@W{^2CyKm{>= zGC*;C=T|8(ywYz6$>1=Wt81yGBIYe z`MT17tMYdQC;>nu5=q463S?Q19(}UCqvM{CNHw?4nJJq!<0i6mcLjav&o44M{RHSH zq{8p>qOGMFeSLg{4+a>mHsQ;YCyp-~3L|4OnTXkJzHS&s6JQ(;hdd=EWjM!gc6`!eISH|y|YaWg@XGg=T3g3v~=r{AtGa9|9`gnYO>IA%QH~fAd)Uld~(ANj2y`%c(8PnJ2=Hz@aK0(uyF)@pck59Vi;^mgZ zx6NNvSzP?+Vul&}*coZ10N`@D2mrxub7V^;682!#ml2Nh5Sd(#E~g#6-A?%Z9>^66 zWGcq=(r%tG4S+>ya>pgh;?RVV=3|7&r z2n@*&i^W148X7`UsYFOlOlogwv*GX&3!$JOj0A2s2dBLg0HD*SBQ-q}49kMjNW^3^ zB?G{X-UG8LKYL~N+pllj^3g{-ZoTV{#d-SV zoDLfBdC8QiMt$&eR9U-iYw5XJGiNNB zY?$=2<Mzs4B?}OR{ClmVU3R>u$A5VYFJU`wt%6*D461U0Q7-BvNUlzOI_M zu5^DzXk=MhdS>%9<1C_ziD}-qr@VsWIO&8q>5R`R%A-m@KmPSQFRq#Yz$%kLsY!?3 z!-{*%75#;JwTckts_HoMG^8~(HEqLt;?SW(K3i9pIU{4z{HDe;Nq#SP-tP~*#V|w> z7Z;y!rN=4Q+FN(7SW%p_bb0X4jiSgqzE;Kc=T3Psp zUS7}u2mlxuO=7enu>kY{X2-^Ao_+A)U)yy$y<4SHJqMtuXvHI2SFV17s$=6S7A=^w z!Q(s|rXd@pl+yK&Eq@b$(U^jTS_W&Bz=tJk?{=O${BC4!rusDiX``FdkvYi%FalTr zAQeEK$Lm%esoGcR_xnEJd0qsdWf?ZZ@AG#0Jnp*c+IoB4v6@{z=S7?>e;GGs>1Ru& z(*EDwncDdHt$3dYp6Tqcy>_Xs$8}4=+?9!%aSKhRvIwrx3^M?<0MtY8ivVl}@H~L0 z7=|eZuskgz^R>jp|J1`*BY=8Y3?v9yRwQKHQvKzou0MfJNFX@}=_N)Ss zS}-;BZyO%Hi_V>HXa$foG(Y+Fat-JJ{E}taHc=F70dxUa2w*`2x z9U5+aMz>_cgeU+nfO1h3tr*-mMgaLN%T`aGoKW-4H{HQc-`{3C_EmjQmmFVc$j(@l zlbuDHTie=0jKKf(4L|!CicQ zM9AWj#zjA%P%uWmKO_pFFpWe+=cMc`u6Wt)>v|p5#7awjBj@9r2Et;vkN4Z;683=I zD^?E?xVkcpp~zUB4FN#)dVQ45W*ZM61%MJj1dt2>VPVRoiL<9>>3;sjvD0U|xxiNd z+yFcP+J~OMC;5-XXhOtbfV8(4vQTKSrg*&&H5v`!I4*987$cX<9nsN(OT$693<&?C r&!2|;{CsInPEJfB5RJhQ{%_)+uaWOftJ87=00000NkvXXu0mjfBpXSt literal 0 HcmV?d00001 diff --git a/imgs/icons/10935.png b/imgs/icons/10935@1x.png similarity index 100% rename from imgs/icons/10935.png rename to imgs/icons/10935@1x.png diff --git a/imgs/icons/10935@2x.png b/imgs/icons/10935@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1f4d24bc3884336189e88071566019e14f6f1c97 GIT binary patch literal 2083 zcmV+;2;BFHP)z zTWp-w5yyY$yX|^+z3W}Cu{Taa91}ZnFbO0n4FPeH=mn{y5<=+%q7tGHRJ2vgL;FxE zh?h!LrBrIwR22^mqM{1rDj`$~A>64T3QnAWLsHu~jxVvjyWZP(J<|s}#R(3Vt-270)J|z+pk@&bsLPU}xlAKsrn?xiwDB`>>VjUDQ`HDckROz6IIRVxj*exZj z&K8UgFmqrwgCQVIAQjLqgeM`IhG-aM2BHHH0uf&ln#%&XSHz4#yave$*G;!-o!gX1 zm|dU>AhjT{VuWF(5$LidQPr1dDv=037BBi2PSl9Sd;=;IPyzhQfmj}Zi24yYCm=r= zMK`TA&Fkuria>G@Z2?_?%qq|U=m~HKz#RbzL2A%6>ATDu)}fSTeJ}xKlnRzJWi3lR z7*B#zhg{4p-*)@kPyJx~j=L&;bGz@Fwz|qN>{zXA%?uA2XD24L>$_2R!ixHmwiuO$ zadhyMBgJB(`p9E(w>f=w8`O`8L@1@N2w<;>(FUpw>?(BNBvuW)`kK9IWFYtL`+tG9 zS2Hm_zza|8)9)WSDIc9Vhwu4n&FX^Dd-XaTGtTg5lQcRCTxFTP<4~BZR;Nj&d_=eu z#In!uFj%eidLj?$tYNga=QENo6m+#|y_9ey*4oXQ&NW6)N5;%25@tG`F?3Ul)a{f6 z@ucW@N+%tMt%?>C3XyHMwn7tNT>3gL1|Xs~gPJH3i%c^OAEK8XdDy}tOGps@1mOA+VWcsY2`B>5Xap2knJhKOv0CEx`rfO%ZpgN_c3P=a5^z}Z{4Zs| z9)#9$$VH}^*N_)bRZlZt@$kctFbvUQNZ{9~H);zYbc9k05y3GPv2=!X-*rm8{SWm( zt(@K&dfV2tw{K~S#nP=aGZ!VHwZwZ9uuGsl(0&xTbEY|y6Cy7X!wZEV2nqcF(-Z=? zPQ!O`y%67yFaWIutt0X`-A1Obk9w`DJ{}#FSgoAsckFNUhe2{WpMSanhn|M&QU=sw zhQ=G<1yIybJO>kVBAy#)45DU zdU>f*Rj-vR>>e5F`l(;P@A{EXAIrk#3yxm^AdATn0R9w|3{wx6;PkvF+3M9h;T=T>2J$%^`_07Y|7}TpF1eC&;9k< z3|w<@4lFc^fQ9a*UGN97tEXY|oGG)GqnIug@v8HLQHWb_(5Siik;07@LsP4f+_Hn3 z8RM>G6HZ|@f0&wK@bnP(8;VW2oO-=nQODZW%+9{^9)O8q$mgYap;-ios500SQ1U~D z)0Tavr;zF!A3Sf&&d!iXw&4dJ#kmTV`39jfXt+M{gZtP0kS-R1r}tQRLz0o z<2CoypXto0v+K7-`E-l2t7UY3o>IL=vC<&k)kAJ_R5muZbMS8mNZ;`-zOy#Vw)Ne7 zZ_gh2`ET}d-f)&<7zj~#mh5rtAqlJN2%yc$efz8s#Jn)=Jb=O&N-N;%~>JG+7n zcith}uUSRL7L0YB($l?B4ZZb>93B~ywf$SUHQUCCPY0=;uhR3wAFKINW$?rO`=3Oq zh({k)i!3ickSqy92$aH9>=Q@pqJQ#}&)%q1ZhfP(uq9RKSasu_doo`CE@QN{%X>Gw z+8Bt8me}@N=`GFT<#O`WAAc`vclI0koi|qp4?MB2JUaT(qWAyl2Unh47pmmK2>$rv zspQe4g&>*i^S!8xmTVVFwW>3plvs&=lg6=AEpEA-3=G39mdkT5-Lk9p z6OlE?8|xoAv2N?VtH0l!FgrS*o%-jYU!#-@s7r^_m46~Go@hSbo2Eu&VW1Vs=U~U! zN5`|X@4xfT3lBXsvZ%Y_pVLZ2ae0USyT7F?iii>s#ooQf|K9it<=-^=1}jOUZ;t=~ N002ovPDHLkV1gcF{Q3X@ literal 0 HcmV?d00001 diff --git a/imgs/icons/10940.png b/imgs/icons/10940@1x.png similarity index 100% rename from imgs/icons/10940.png rename to imgs/icons/10940@1x.png diff --git a/imgs/icons/10940@2x.png b/imgs/icons/10940@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fc3137d3b044b41833da3c0cdce0d8808b57f8fe GIT binary patch literal 2024 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 M07*qoM6N<$g5PN`?EnA( literal 0 HcmV?d00001 diff --git a/imgs/icons/10942.png b/imgs/icons/10942@1x.png similarity index 100% rename from imgs/icons/10942.png rename to imgs/icons/10942@1x.png diff --git a/imgs/icons/10942@2x.png b/imgs/icons/10942@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1f8733a78a48ea0756c6ba84640af4378d08ca29 GIT binary patch literal 2408 zcmV-u377VXP)r1hj69S+?6h?%PE)83rHW2V zr>%CB8GLk16jAG_2_X^;5J)Ub0%SKY42gMe9-HiLcK6%w^bbNn8?F7z=}dqB-1+YP z=A7R>k9*Dm{*SK*`%aZ}#z5aO3Go}wSV>6@^A`aCTo7*jQ(Ed07`rK-bB@x|QsJwzh=>u9P*qhWx?HY*JD(Ca1U>zmUp)Jl zXP=}aFYZ4G08~{a0$@awiZuIntj%^6+Ux+7!1XH=Q3equ6Or=UUiwy3F~&F%$@Z82Hi=CBQcRaP4a}FW`5#g!FzrQ&*ca}?x(UL?w2 zciCuYESQ*-)IVqXj0S^A-{Ea(>pT8YMbnYPhbsU`H@MzVdaIuqkxY){_^kN2_?&B9 z{X%@4aqgx~YvLjiLqMe(Rxi$*xlgB2J+9H3SxTl2;jtjzdGBP7Jvr?_+0pW@;FxdZ z?v+J$_gTOF4^7>-Ic8+x(4j++!r{>)hYx26f-o41#lB<#evA1T0NiuWs@&{Z*$SU; zP_|mk$wsxMpscJcreccK&Fx?OtnPxBh)L4^eTU?Q%XfyWPJ0F}H(c&bGLkSdJf
gq*D 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 U#xt+OfB*mh07*qoM6N<$g2*oJSpWb4 literal 0 HcmV?d00001 diff --git a/imgs/icons/110.png b/imgs/icons/110@1x.png similarity index 100% rename from imgs/icons/110.png rename to imgs/icons/110@1x.png diff --git a/imgs/icons/110@2x.png b/imgs/icons/110@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9c90f91283d299ba34225e60705cb0cfdf8df44c GIT binary patch literal 2061 zcmV+o2=e!dP)nvG%<|^VyxTt*Qc+AK$vOVh@0@$yIrrRqzvXxD zyYB)2#}5D@geoW~;5}*`KM2%V1`|St$5Q}!*DsxktkztcuIcq0Ke%NJ1AwC_iW|$C z^jOF#iXy(oQ8djC_IEAf+)Tu0TesRNit+}JpdAtad) zveaeosk9Fm_qaWt)r62mgpj1+vHAJ=54AVGwFJYiwOXwxHaJ)cne4X!-U4GA2a%Ts z+XI+8VYfNa?*wcfK{3lXuS7(}9alys)E4CD^A;RE>iymVd?NTPixi6H_IVjw?4b5M zzxePThtBTSrOkS(qr0IxysfF_E1gr25fT*_lQc<kiLIdD~b*4ig*~#@)#~*)xrKjl1jRQM0?$zto6;Lx1Eh{^_yA3a_+O#)M9hysd zF-xvcEKEv_kJTHD7fqJF4+@JL&-r-BcbUDLoEmyEX@rnMr|wJFffu8S0Ynd{LI_db zD!;m->cXL&+qVJVJ}oBAXLD4u_jTTN)c72*fgLm~ zuipRXCZabMsaI|E^fzh@Y``?7DlU16z}hI)8?F3iZ9@@hx>b`A9V;lhe9F1GR417^ zT|KAQVu~-RZQdg3(QnoCV$heuh$Q$A2!Uo+4VYnQE&3ZR&$A_QI8eLBD<- zU0?1qAO8Ha&8Zm~sU>9<7PM(nm%sSZ8v_;{j#SiX>vYtc!FroGCQuQrln7>Z^28TG zTqU6HFU5%SI^>=LaFeD5NCOZq?9*3D1%m32p5A-my))NO-u`es6YeS_H^W2s_>V%02f&I4| zuz1bZa+80EAt78AqHP)QNFr0O(6*LYa;YR%NOK`K8oFqpi}9KM=2VPOL)NXMx9YCP zEc@HG*Obx8zhP}nGDFST3u2YJO&*ar*>3F#uPiIAE5CSp!t=?}=*Z=}X?OWi&tF!q zAXU7$)|`wZc447itJ9M>#=9^iT75ZEc?>hp3jQSqP&d%m;T>i9l^5mSN z==ikcsZS=W{TcHU=c?;3esH!{&PkP2W~d-grSyxA4G7@QH`m%U6>vopYS&EIC4KZ z{GVIJwXN5@ZtoQUtXM!xf4^v6zRkh3A1J(3?yIXLB>M5Fi^mQut}Fc_bi>B?O8Z#; zenY>50^kO43qTtH*QlHDn^FLT5RRfKs&YZ@)I&*0@xi~ynUR_j_n6XX>GunZeC%3D zz2Pf{2wOP9M5=;9%t=@tRt0JH)y0ATOo zdNBT=Rtt9DyeXZN7PlD65x3{+k z00^gnEV&3N3b|A%l!yYE!T#``L9d46(CYG{j|1)IIIb5!w~xFFfDNPEgbytM0FnTq zPA>On7)IuDxs(c(Dr|O2^wL3x)9*rA<7t4h0A3payU(rON6d~!Jd6ij$M>NDaARPA z1uz&90h5UHT6#?S%B}%c#|PKJ13H-@Vi$%k8}{2*9Kx9X3+|amVaR~Y*Js85YCN`2 ruvDJe+^fOnUmM}kL2{G;H%8P>SA7h6Ek00000NkvXXu0mjfayA1( literal 0 HcmV?d00001 diff --git a/imgs/icons/111.png b/imgs/icons/111@1x.png similarity index 100% rename from imgs/icons/111.png rename to imgs/icons/111@1x.png diff --git a/imgs/icons/111@2x.png b/imgs/icons/111@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..355b63507bd14a048383eccccc0fe19a8819bb00 GIT binary patch literal 2356 zcmV-43Cs40P)^OE7XEU9II7F@E5<`F#D5_DBkXljdN=39nYM+YaM184> zcqnQg2t}erfJj1E653QLO&mhV(n-Lv9mh+?>)5l8XP>*BKG*?oEzn9l^^<rbQp`CgPU8#DR!k7#xUL7m>K)xm6%6pJ0p;0ELLO7hd?8c>cM!xsi-6 z9Au1j9_i$;??vkfKp@HjAk4dqLmpl^ZvB?brcF8+qm4wB8-dDkATJSF3&46K z&s&(PHVi1r)n=1v7V{*&5T6k^3c&9NFNOzrhY9Mj>))1&o2vwGG%8QYvOHN|ZylDi zHAA!0yI(qgcB?%ZEvxo;7;D%V95EU*aY4#(9LH5N)@T880Fof$z}Qk1h}dG+EOvo* z-~j04NgxETSV-n2)#Vdk&*zKBolZ-csABT1iJ1`=#OI0-~N0KE<1w*h=Fp!ERiY6RG!Ltvc%i`32N(R8Gg8yL&I z`skz1_Iz@~R4%hW&I|3=NDq(8g$kV!yL;<5Y@#5DQ<^I9skq~uΞ>w}x%la1#L9 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 p%Dos>%Dkq=FFVKgJ%=hmt0iwg7~Df zvk!CT|2yAzzVCbo_`m&+8TqeI7#$szdKwMc+_p_xSy{O?zgDY>$;nBP&1M|{9DoBr z-0%0dv~)VHoH%j93qZQVYb2F|_Go{<4!{FI1wcQu_){Yz8UO_V&YeEpD}*>Mg#9dQ z=YCKtO#C=MH}%~cQV|dSmywbHBmd%{kj*4i}Ov1Q&!mf-q(v77i(g4(!3U)OIU#bMDml zUpV!AB9UOlV$pWBob?b}0*s7|Xk%kzMkcfHSWn#Z>ZzAr?E3wmE?CtZKDtxO$fBjn!3dCO$ek zssgYtU7F}hCIc`3?58hu{o(Zs*5Six*`xcVX4@ppwkRlInxfb2rZTLPrhY3bUvYwWonKG!ufGkfy4ul!kTA56)O6^p2;-gn^0)$yrRv0N3p9w4S^k={hNIJj>={DCm#;Mnod5bf#d6~S*1DguH~|2o*?PEC$`dXGlL(c3 znhd|!Lo1bvlX?(>f|5pk+0k?_iN&JCaX=`gLI?+qW?Ohv6_M^ZF{Dj zttVy&WCK7nY7ziww;Elh#ULPrrYUeZfg^;Nx;_O0IN@*@`FufeA!w|-SICMAg>YC7 zM5xt(?JyFJM2W?1go3^xfUvs(JC&4d1^}Q40I(X%)V3I?LFlIz#s zr`}LpH~{gh9v+KCoM=1_RZ$7ES|}CDq;1=DDmY6dYZ;Vt;tGm2@fVu|tm?yH+#nF( zmMs)T77_)(Eg~xcK?E0u%_t!RUM(p4`g>_2*)Peef>yoGxeZ>g*Bp&P?(ORp|DK+; zyybe{Isu{Zs~#SWMupcO zAd)PDP)a8uO(fThY#-+#X^ZM zQjJk7wr27YgNh%d)Ci z&Hs)UII#I?C}TBOiQn({H=E7G$ncTx9X+)FYstPIELEGVvC<}rsu3cqM3rQr>58C~ zU|?VX>GUB|&d*D~JacCG+QbKEKKgk2ZO(bow(T5%3T_|A=2if}YF7iSRxKZZ#NM4l zPw&|^^o;|1cP6%_`aubWLj*XLMLh92lIlyKvQ)!6m&e3g7cb7-oXfp3eIqljD70c2 zM&1=~uL-q%Cjjb-3jiKXL)0+f_4#~zQ~k-~1Kax2-QBTdJRT3}x<;334ZG23HZyaX zT(MG_$QLRT^?JSJI8GTr$rZ1!as92P<$jVqw9L0-EIdv9sv*s5Ol*O187sK zG&pAs08Icj080R>?#eqIvbk2|Zatym3UK$o&*Sj~Ip-e6SOB*h3=e>o`|gSh(0LlT zo%f&WhVBKR-?wotMY;^U0M^di>V|Yz(Y5v;xa)N%riQtl00000NkvXXu0mjfq3)U8 literal 0 HcmV?d00001 diff --git a/imgs/icons/1139.png b/imgs/icons/1139@1x.png similarity index 100% rename from imgs/icons/1139.png rename to imgs/icons/1139@1x.png diff --git a/imgs/icons/1139@2x.png b/imgs/icons/1139@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..890016224cdc3047d2779d0153a0770840854953 GIT binary patch literal 1955 zcmV;U2VD4xP))rKU?e#4#G0xSITQ?zTt*S{?wUPQzEkg9660In_eBaDB-vIx&|1l%~^$ziPT#S@TlHS%PmdoW^{R@Qx9~l|piA2HzzyMeP z_=AqWsrB{s$%hXgb^;LZ@*8PyhhuLnrU6g^C;)`7EdJuafCGRG0Dn4hqM37kh;#FZ zuFw6nkQ#nHIeq0vH?Dm8((itMtk)JMu^NQKZks~fD+I#8z<@G1I9NS(>QpcukH5T9 z%Dwpcx$|3>a!Ha&Enua%ghsCijUE>~{!osZ`q0qGwcoz>vtRr@8jVWHWRjs43I>2a z2tZw&&d<#354A+!{`8X%x4-wtlejiE&I-D2aVm0V0$ef)gGIW+0cr1^U1)7U$@$}N{_34qeLkO&&*!VQo?&~VHp`8~ zX>f4R+}9U;<;;hF z+4kP)f6(C0UDD8GfsChR5@_E`VtbxJyK!M=R!Ck@W0; z8s9qdUHsta_tE?0)9^I~!CX-gPcy3Ajfo@`B&`uGtt}Y7InI1uPq?ci_8b7Up`pRC zHuUQNWLcH~(A~TD^bcSBqJ45M#h9p&bdD3z6-H#w0laV^z`xl}dGu>L!5h24wE&2u zfI9=Aaua5YDv7jqBe7hDP7NMv@;we9P%4#HZ%OIaW3~G!4G;h*FRy$(olcUX#W{3` zpqm8nc#xUR;pBxXiA5D8=N3?wgMhmN!SVn~1D5q7s?;J5l|l1_uu!NFzt7taAPis$ zwS1!2LDm8I{W<{vy;KU84T=&N_sdQ~B^ee|FgAJ}e>P>vP7hL<1r$sPXzYMV1X!HF z?WJ&Qc`(T$iuw@pMhTsbE)M{&y#VW(lxze5APoR8R+a>67@#0rCn5x=AC@Sil27CM zbrD<(f=Lc=(Fx*jgX9UovH*{|0?8VKH&B6a{VGuu4Vp@cEy!2JpKlCM(?^xEszd;R z5yAmT+C_md z4oa!83TFKx%*iqbfZ0qY;dHs6K@b?La8)uuhzKqyfT)4XE-@TGGkG-R;chQjp0O(u$~6v+a``Jfu`N}9uB~xD-ma#%9wbtsb1uy|{Q4~3V($K|`6MEUupMR_qMrEG4#42{V zQfS8{BA7?BaTD9*Yy4r?DBth8foD4kyu~M4zj^Zh%jMh$pB#AgK>w~+3=8!1r3I0>L&BCVTj6d9KqMUANSL?! z+{7(fn3+#vdM?4AJGjq!w1Z2p|NO1eg^T}w`{wxMIZA1QQkq097jV>0MYa)ugxX#u zZnxXLyu2KKd|&^M_xJZcA885V^7M*%HCZJF+yWOI5X1(eD2%%`3H`e|tQQXTl1gSm zJpRtROGB5hzB@WPc8)QYHcfL5Ko+-;V|_CZ0JW+HsAVk|fbhE!M9~++;l4T)VtyYt^cx6?n&AR~z zwm1i%Ivnsy@uEHU9hK4DDk8~l41lU>T0^B$@zgy6AOOH)hf4xb5d^u!7%c%<22cQy z1CY08Uaye#)gt$*31wS=+21ZzRXvO`l~US(+XaRSV8#BoYy;HaRove9cT_|715o$G z>H|c!o3;kBJ~L{I*2U`C&s-~hzW~7PHE}D4<8}_IzxkS0AD`JU8`^{3j3m3y{aiNc pH>7p5{we^g`)zhZx~J%B`wuabIeX(&Of&!h002ovPDHLkV1fW9o7eyV literal 0 HcmV?d00001 diff --git a/imgs/icons/1140.png b/imgs/icons/1140@1x.png similarity index 100% rename from imgs/icons/1140.png rename to imgs/icons/1140@1x.png diff --git a/imgs/icons/1140@2x.png b/imgs/icons/1140@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7bc2026950c939f7b1c00f83e9da664dbc0bbf5d GIT binary patch literal 1976 zcmV;p2S@mcP)s@=jS;t=ILgK_Bag1{X5?3veN*ida%0h?-q!uZCs!-LJ^Z^wW zB+>_3l!~+vq#~iT1ZYr&K&UN|<)jsHVnR%y(<7IsgR#jvPMREQHu2 zg!?qBjz3qJJp01L=+G}O5B2}}l~;bZ*%u})a}c`UZwhfc7to%b9<{Hp&pLYaXsoxl z_o;Fz_vAnOPp&QGCrM^9jdHPo`uYfhK@;JIrkv|o0|RG<4*lxDZ$C&R67s~v1jn2! zH~@Ax05x%TZEWm;rsav3`;WiB;f+7OfzK{n;Fe``!G!0y4!BGS@iTGgPBdz7AAIS>*q`72s}pI6 zNv=dm$*Pc9&x1rMF{lIsgxjUEn95|luFiX(?v8)6;Y;odIJmD#C-yxzMOY zLYhWbG&N&YI6_aK9pYRNw|n!3pX~k4L!^`*{tpxEan@&2%x*WTRL;*4BNkde{5uQuh4Qz9B|BG*!5L?#4+5{Re?2mxDHP_Z1ys!l{S zLZ0dpC0Q(01QED!)Lg<$Xq37a5w2Bd(2fMSw*u8W8n5rHv@YK9D5m#Hr(=J{VN z4KSw<$964=5@?=FCGHA^6T%1uV-6Ts0ZjosPKc&LY7D~&1`t#=#9*LNGDIL)57jWm z+T}@7n4WeuO*1*?I%8};%;F%-DT)AqtC{JP8887&p{^%j>H%=>K~iK;Spww%Aq1q( zfNtv0R2gBRqQQvr*7`Va<`Q&bi0;l!upKXFnr1B#@%eg-0MhBS06;z-9K1wi*G--U76GJEDUnDdjN`}u_1SnjePY{&cA^u{6(tL8A_NEl-32s71vNCN4oAQt zNWc)SN|0}FOp4~ZFdw=&EFRmt2ZQI%i^<8%=Z@!;8Dri;y@dcS03k_|08l)2dhoDq zJN6HDZX=~ifk%{p=+qM;Of(Tu>qN|!MUn=@eQJd72rcK2w5=2Ep@?|xonz$j?>@rq zvZH*|cXDJRoj&C_PK7a6@HOD?#FCeh3V=kTQ7xCt)jjmB-OoI@ZSy|Yb=k3jPbDI0 zq;>5o5e$bQ1r#*Y2Sro3Q7lsfbb8{N`1JheadH4il zEX5d`z+5g6n7bAEQUEgM&MK*^tE(%OO7Y!0w?6ye_O2f`CE_?UGUie?mIU(UDsqg0362$sHQ3yK51eWR{r&yoZy){R(&*^; zTNf{n4JZoDT9!58i&y8l+PxJ3^~D7MP1g~%ESP~nU}Lf+zGqdkwYzy)JkiwD5H<{h zX7fdNX0}io86F*<%w`8CC$odIv$Gk`^QHh~eDPU-?XOfux2lL_zjFYZVHm+`wHm7J z2!KWaA>UmxfGVX*k#klAPy#RmAO|4tTVAV>?fD|Ns|giffcyUeP18c0bB!?;^cPhz z=d!Xtw&DZSz7}qr`>#|(cLGq`iTM|Z;&)>KWX&?>i`K+y+0R`ley0GyjhMKe!*L^r z)V^XtudUC0m?hiYzKmpl&Ye6qYA>WkR(~CU`SWh}Lb|Q!{PrK53s72DH^glK0000< KMNUMnLSTYhL8J!& literal 0 HcmV?d00001 diff --git a/imgs/icons/1141.png b/imgs/icons/1141@1x.png similarity index 100% rename from imgs/icons/1141.png rename to imgs/icons/1141@1x.png diff --git a/imgs/icons/1141@2x.png b/imgs/icons/1141@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8c595f0ba8abed62ea9db679e1d588716edff888 GIT binary patch literal 1972 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1144.png b/imgs/icons/1144@1x.png similarity index 100% rename from imgs/icons/1144.png rename to imgs/icons/1144@1x.png diff --git a/imgs/icons/1144@2x.png b/imgs/icons/1144@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..25526f64e531ce390f23b6266e50423c3cddcc82 GIT binary patch literal 1973 zcmV;m2TJ&fP)5(Eiq^cEDo_|T$3 zgCNPFY3m|^Qy0CYL1Wi&4ncw-X&j|)(%Q8u$Br96WXUomilj)9qLy6l?9TMSrL9Qv z3qdbM2N>)gX6FB!`M&wSZ-D=||FK5?>l22Dhoxk>EY~_Zq)Mf7eSWc66k}s!B9%%x z05|{#fVkWBZ`%6%`<1;~a2&=3w{7AO2vACsx-M^jUM`}t2Y&rh{OFNmR(m{5 zITysP7+}>31*q`&LW09VrEKy{sl;o)IVHk-BIefMuIx*mMxrRSfEAARF!t#4h2GM7uEd@Vy9+lEv%iEY{hsth?4 z5Ydiy($d-?kDWZ}Fq>QbJGboH`{*N+Z@vBgq2}ghp3mnk)E)CW#A?n#uUxqzkBp4i z_iv5w`{12p8;%}5X7zTr$*J*i)F!6sj%0{@?JI3$bE}R>*bh?U5ZMwbUz?;JW{QFB z8>Ojp=g3?($Gf}MJgw_`Pd=a5+zpGR8(#s?-`_8tK7E?)-@iXTF>&R|KmGAd-j$5f zxlE2=u0VEg?!gm3{-Jo{CqEK<9^N2Yqd~-i9)tv-861ljuB|&ykDl+CNvDKD1g*`aY0|He?dy~1e)tE7J-QF~ zZtEj!1AfG0jusz9oLKOhHSn1%0AQHL z`s{3)m}SEu9J0@0@DmA{xe8|gegsW^A1Qx&3Tmy0xWi$qfD8eEz_2aim52zclp48t z(iCax1dsqwLOq_;8XzkGqR|=wfU04{Yo-auSQON+5w9db%VkWBo`qVRBC!B)Emwl5 zmXHh(_$3R5CLUq3?tV$UnT@L|haviV{Ny%ye05Sjob8(*976YLKl1xDa z2M1u}3b*9JcMiCcw1ci|Lj& zQ3@yF?cX3oOBcU*aU6TT_br_H^fNv?JA2-8EQ2xTEZ18OU;_}6BnbfJlcS@DYNlBm zcx1Pf%U47#>VvhW9W#L#Cc1szP8W&z_lW3EVYtba3iKLjBE8^nV=XmfN-*wh*+Niwn+>7OZ{PWDqm&YegFve1h zu{7$jK%kx#`Dy?%>UWg{0)fEd;$mX({vFReFtF`At$G5P^Pk&=s~3o5+e9%LQ7M5O z4FW;G=p48)sSXk3ET9{v8 z3&oN#H90w*$rVP^+5G6j!a~+@oE(6xE56{a{e{ZtRuz%#b`C)GdcDDFwHj)i2!I%X zkZUd(K$TLZ%sDFqSOic6PyjIR?z~YU*OrRht|nAm0q*|$RaFgf&Q-=(&|TDny2%W8 zY{dm=d`;ZA_g|=n?gXH55=#?^;&$&c$i~i?E7}liL_d4E_?-d(H+sct~00000NkvXX Hu0mjfs8h6$ literal 0 HcmV?d00001 diff --git a/imgs/icons/1145.png b/imgs/icons/1145@1x.png similarity index 100% rename from imgs/icons/1145.png rename to imgs/icons/1145@1x.png diff --git a/imgs/icons/1145@2x.png b/imgs/icons/1145@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f4b1d236cbae46e1dff663aba181d1b92f8ce9a6 GIT binary patch literal 1928 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 Hu0mjfzwzYK literal 0 HcmV?d00001 diff --git a/imgs/icons/1171.png b/imgs/icons/1171@1x.png similarity index 100% rename from imgs/icons/1171.png rename to imgs/icons/1171@1x.png diff --git a/imgs/icons/1171@2x.png b/imgs/icons/1171@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9fe8d28eb0b96ab171b7e6523594b95e43b1e373 GIT binary patch literal 2855 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 v_lT{R literal 0 HcmV?d00001 diff --git a/imgs/icons/1173.png b/imgs/icons/1173@1x.png similarity index 100% rename from imgs/icons/1173.png rename to imgs/icons/1173@1x.png diff --git a/imgs/icons/1173@2x.png b/imgs/icons/1173@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fe14ab2554ce487fec68d9862fc2608be3d91d19 GIT binary patch literal 2071 zcmV+y2CmF^wQ`Oi-?=iE8K$NE?w>wheEsX-!Q{pjb>JyA9>F~P#&u(<8E+XMhw6hn(V zE_(0j>5(>W+{jn0nxQA27^nXJe)qqIVvM1$ua7T=BqGKb0}*i|V&}&{8oM~|UoLje zkna0dZ}-)o+jL93Ziy-}g$^DZ9)0-XAHM=XoSUNoFfZZ90f^q-p0C{6)4O(RD#iEg z{_7im-1V0|+qZ95o_gvj`?3J%$#>j&r*`{8-|Mfbi`{&1co^yFY0PD_aK@Mz_|r=dZoF~x&;1^Mb$-5t!M%HM{P=rHTYDQX z>vQ<+?_Wh?!wvY{XK%pck3R|56_8~GhG~K^2CHf!T306`bz%GD*ofG)X|oqvVE&aC zUVL=$oxlGwkw~~3Hf#{dWKsZt41m*z`zpTw-TT(bisuJM$Bv1n<_4)bTF-CZvK4_~ zh(-?&+g)AVc<9?(#cy8NEwwLODn58W1;H89WR)D^3?xt&simx*<#V~Bvbt*(y|H_j z9g3|8Djv^IKc7e({oCN+>#4 zMGy%`Ffi~M-~H#^%*dzNkrUIrqiYS1M8e2q3*>MCpHBrNftpYNlH$Ss{qKtAFynp& z{I%D1Su2+>Rj*pJ=2HOnq*5u-*VpGHlSz`xF4O>9eya5vEvuSU()B#~eL*a1TaI8bgy!}(NUF?&elM0bhGAL`Er~?n z_4*n@-cWdUcGiDrO}n7z3l?`~nK43JkMMSv|)%0}Rt;-K!dz zS#_9cRvF_Ak|aS07p-lrh}DE>)%ZTAEpvjrg*lPV=E$zv)Ecj4p-=$zEzQmGhIp`4 zD)Dmp8g>Cd2*ChU$+hzg0)}alp3k9FDquE~Cfl~*^9L|><`h(4h+_32q3b%NbH5kH z7#!P#S*>8o7Ce-nBU#Ug#+DY=zH%j-%N6<3mL_UxXpERuGorbgWEjSW0R8>_;#?(G z9LLQ#);vsO0gM34oM)*MDek(0ZrZY$zH{$A)Umu30e^sBweD&VaWKx{*bb_e14UJt zWjk!9V&mSs@4~HL?WKy^h$Ybmam&^(v7BBg&g!#LIO5eT%VOutkaq0Y!2#HFx}FXM zLm(1VQxjqflaFBibqTCp(@BR94N-erD+LEV!&2hC^9^LFDAC! zh{OAb#G{Y=gka{Fo>RnC-fQ_Y&pbOF^!N@oHZ@pf(=;_r!v%n3GD(RB= z^>~zf8k?HhI#zUG#qwoTDwf!u!M&K8p2iop-eDX%GFCB-vaddqwNqzK&lj>eZ?LAO z`rhcF?23-gcvttD$kN6b$sEut#G~=3d;bIXHSBwPZ&x}qH>}lb~sBdT=lCnx#u%^UC+oKU*IL_ReNe` zCa-#Y9!-(N#L1J>Z@u~Empi&YansXJKkcMv&dS?v-i+Ev%&DynhmTK;e{$sT=wlD` zJYXC-as(G0K^MAc1S8dOO?bh9ar_Uzdw%EZ0|V`fqQx!C)IFM3QJ7;)Oq}GZ;(?nl zR)i3a-|u%_*C9pLWKGkGm8wxZdUOo1RHalEfGQSCS-g{vuqQgfuuf==AjTP%4!w z7=~exN6yKP<2M9x)m1H_3Cpx?+i&=7tw|FZ0Py($0L^~C0-!K?DwS6ynO}eXb>1yo zZbB}X!@-eZ>HU)@F*$kK0bmhbxQ#E}{q*(q@$vC-mP(~~u~_5)psFfGqfs$9I4CX^ zbIwbwTlbl|W5*6W=DN-`oJ+!WT@OGN0xaQ*mjV0?i~50oN35r(N4gyBWmE@XJ%F|6 zo(=$Qkw_$XB@6$jx)RVUn|y`7AMKuTneYE|{R5>?>}wP+O`8A!002ovPDHLkV1gTk B{W|~v literal 0 HcmV?d00001 diff --git a/imgs/icons/1174.png b/imgs/icons/1174@1x.png similarity index 100% rename from imgs/icons/1174.png rename to imgs/icons/1174@1x.png diff --git a/imgs/icons/1174@2x.png b/imgs/icons/1174@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..dfeac172ffee50d1715675f1d5903daa774b28d3 GIT binary patch literal 2791 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1175.png b/imgs/icons/1175@1x.png similarity index 100% rename from imgs/icons/1175.png rename to imgs/icons/1175@1x.png diff --git a/imgs/icons/1175@2x.png b/imgs/icons/1175@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..211f69f3b6c91571acb228bd34a1f0dac08f93dd GIT binary patch literal 2455 zcmV;I3263-P)Xo+FG4dtp>HNVoIt(2o0Kqgz(w`3(IQ*`+{Y6@4oKt-qU}A69ZA>bb9`} z^Si(MJD=b8oO{k3hHq&^#1@|!V*o(k_N=Qihr_`U5r6sm;lqb{0Nnr0@u5QpG(=<} ziduHGKVMfXWYbAV zQYIz?Z++f%>eW-HPB|}vu$?=1a?Q=n*>4R%M2s;;0Py6a53Sqt&?665R#o4duQM7x zY5N!l_WuqX<3O1t^o9bcbA^afseV71jQ{1$H{a>J{EVvtSp4vThWl=Q;+Ic0RIRG| zah^`Eo%PRPY|JeMgFcp@pT{IA1JA?+db&@_eSlvmtH<{ z)e0;+|MfFZJa^|^Kizlprds&C7x2d0f0M%D5WjhI9kNmi6B83GDn=2FMi7pQOc1p4 z>5fmbQx|3wYuDSkA8f5ddwb_glM~ZVb$54XmQ!L$vMf43+}dT7xt!nlX1zFl=JV8J zkMB)){il-;&js0$BdyFchgV+X?|tB58W=b)sT90i zSy8(8%$YMAIF6&`{3$M9Xl!g`0I2OBht@I$%Q^V_7vz-{Wy%`+^|0Bh@c#QBVrFKP zl8G=Z7AqSab#*m6 zhcP)hhD0oms_HdZWBU$;K75hFvh|cd&n0QOBA>mBOE_|JY}_7!VB}Eq7~&; zY<@1lxt)V_T_s1l5*u8uQHq4-C`}xy%#2$9{wLhIses;YjVkWjy@zby{T}l2b^LrN znx1rzqyaElmX{QzB>;=2)9FNxXLIwx00O}|s;OCridB`|z`!7d$K6z3prX^h6tsdG zr~6#2bX65Mo3v76)BU6~7%@CLh6__CvF_T{S%o?$1Yp^cd_{of=4R=UhWn!{N=q>? zcpiiO1GKWD0yQ=3QCeEUK0VgPHr!YNjgU(@f(Ad?^$RGJ3JjkgKu^yZmd+5Fi;9`Y z8(Q#q{5}BL#b5kVKg)G3TI}^})~t;wl}e}-JS9^p<{BQs?92=qjC$w{MmaZEKyVNpy!Ps!;h&q&8cl_=Myp*`fn@=jo0|au3$gT!6b&L2n&)^8A4zflMX z0NRgt`RBdUq{&rt!9ai}#wWlrKyNT1Pp4-E784nC`NT1hPNRh&Xz@|Y5#~JaLeYv+ z#6wdU9_(Y0cqV1BbP!vn?tWzs=yXO&$Wf6Pn9dd$wa^(%@OlF*olYVnNr*<{6i=im zN6;`%!J)UmAMs=wMTQ*eJo-U)dTNG#c8 zIa#ga3iBbyLVmIq7g4|$q=khL=7K?PetwRdxiF1PI)h9m3psLu-hS&HTEF31Zug_l zFsSkt07zH3=<+$x)YL=(SbzVJJDE(qTfKVC&%Co<#$h3&kmh-Rl!HN^4};MJ10E;QPFDDw)Dj*fVG$3{LJcTc%=8oftMh&>x? zHqN@;ZqDg+E}MjxgrJ^xyWJcBXti3hbaarvww85tbjS{e11&8rIex$2nvNxFO3F*` z&4M-qAfDp@BBfrZ8Fag+TS4UFfT5Hu`wRv{SgBM>TCJ8kIyy4T0eqo=&1NIF+YJB^ zMUjbiJA){~X0s`po10-ao29VX?9n)#@#)FQpdbjxWgwU1IB*IB{CGTG$`c7J z%T#HZB#mB^O(YVN<7H)Yc2Q)D`vG9ps#WrpCZw+&&2VY0sIO;eZk8Pm2Wx3*;TN4G z5(#EDn`Hp7SS)0-*{G?h33j`kzbJne|KsVI)z{ba_4W1q;w5TpYZZ38U3s+!{THpL Vr*U={RR{n8002ovPDHLkV1hp?q_6-0 literal 0 HcmV?d00001 diff --git a/imgs/icons/1177.png b/imgs/icons/1177@1x.png similarity index 100% rename from imgs/icons/1177.png rename to imgs/icons/1177@1x.png diff --git a/imgs/icons/1177@2x.png b/imgs/icons/1177@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1478cfbc2fc4a3a3aa23fe86eb460566c36a45b0 GIT binary patch literal 2759 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1179.png b/imgs/icons/1179@1x.png similarity index 100% rename from imgs/icons/1179.png rename to imgs/icons/1179@1x.png diff --git a/imgs/icons/1179@2x.png b/imgs/icons/1179@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..aa0c466e0cb70399dadc1bb37ccd1330717e6697 GIT binary patch literal 2708 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 P00000NkvXXu0mjfiN0LC literal 0 HcmV?d00001 diff --git a/imgs/icons/1182.png b/imgs/icons/1182@1x.png similarity index 100% rename from imgs/icons/1182.png rename to imgs/icons/1182@1x.png diff --git a/imgs/icons/1182@2x.png b/imgs/icons/1182@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d2d76833ae067d4fb33ed0c961df47182187b583 GIT binary patch literal 2757 zcmV;$3Oed*1q;82rnd#t6hQW}b{Q*;>?me%)`$Jb9+dzh9 zvS!xo*=Il2x4*UaT4w{lzfe_IM7p8>sWj` z%T8y-IXpaRZR%dr^vy5dw`HQ_WRHC9pHBnOLLra6R5CQinCA2Obi*(z>2z8LU{>}2 zEhNMMyQXgkAV2c(=em~S$3{fv9Z`%PHmAl<4t{Om*+&3u1kej$9e@aca3m6`#WGt8 zmf85!3=pdRJ9OxfR9|1;_^pEnUH!ZIIv?EA@oX?G-C9~&F!ZTm3a;*!Q(8mr?UNVZ z{Fm>1zfc!+<-2=tH`GFU;-!Nxop8BaLRHlg01beFPlyfr80+k(M~?KDi;GXrOiwih zf`0z_y-`h&tl71#WnDOA$$BAc zTICt0r{m;tGM38dbmjDzdhzTjZEcNdJo|T#T9r&(`=66$z_~|NNeEx$Fpq zLcSF@ehlNw01h2G!~kIT&b4QK@taZU@M}M$brCQ1bazPEg@m@MIpSz;thoz-7l04Tx8q~uK?ZTiW$1a9gAMi~x&NL(IDU_4{W6+^Z{!FqD6+Qb$YX1FnvWbYn7CE9LTEA~C~ z#RreQb8<{o)yW$eplbnKM~OqO%MJc|sBC~SU6(}kx98vvtsz^WlN|nLMkFDdQ;`=6 za@m~aY`ldc+aE%5N#|q3BQ!EJga9k!?j2jqJ9qT8JoQ(9y#oOE`~52k>?3i&0HCX@ zix`v8x#8wJg8{F1WcWj)#N8-ribzJ|eE!O1YwpY`>+H#4{NjTcrc;)PtnNYIy?;XS z@e4e5!7sq2z`4Iilp8M){-T(RE@uNRqa5#cgsboI>7CiOTpS#uk%-;us{?Pd3RkM)K zVQqI0O8UNJ6wFzD&+UEc=4a5}H|{r@pQMB?ku{LLM9ckoZ$E{C;kTc0$2^(yY` zzZ;=Dx3Sd1G~RsURle@Fiy}Fnrm3qFA|8*6R7p@n>v|-TIdrtwLUQ`x^#m!F$iQxs zadzZ9e1RH!%c`4JJ7hUf>+@NRu}mtJx(YDxAvZLT z%VFcbT8jqX9~8-0LNJNobBD<7bwQFiTAEr!DsPb8Wf$i!jEm{$RpLfPl(LH`rsBwW z{f!mVj9iIED*%)iUU*bGaNr=n4nSVB4O2NY1FaajbU9%4ba$~(T?0AoE@U$)%BPm7 zV_h$`G)BzSLY_=bg=|w`^ViV&^=pyKrA2;eUJQ+lkki=;+HSJ4y?RVrQ2wU$rK#T!e!$;q}y`bNy#nxHd@H z)B>NIOOmeVNp`zLV@D@j)!M{zOOtr{`)|;X-aN`|R+dB|C7Qxsq{>Y4gqr!zJ33eO zuJJ#4bHw@d3(x=4tH+ML^?2X@{f>cw<%&xH(AO9C?B4#zr????o6OX#@&enswU0LL z*ux@`)nw{fabffv&Yd~OW79EV2?54rxa@>rfKfwDfJ()T&@@>beQ%h?C!>_i7K4sq z)8%wJEn08xqMJK=DO3}J9Xg8nw74`jCdMvaM(=HHv|-a$YKZtDFx0iHada?_E3b^=F=t0zPFfSl4EBZM-x5tD|r5^io=!IX%oI$&P%bbem!5YXBry zvXfnL2lsZh)$FhLv(0uJ^M-1@3MU)1VhM(BLCqIXEF0L}e~yN|2o0+U^Cx^nRX|Hji#i%O-UkZi;G$@F{ay!NbRS!Y&q zvt^Vrm(Gu6j>)n-6!JR4ZnvY^CUdV=F-gAJGY#* zOk125j0^bf22j75B0YPU!{wGNkr3yGer=Qx| zU?JpnH+=E_Ew>v+#c|~L=xBYNr`hXu+1i@|QXv{`E=o=@6;BF@gp}ro==NQo<+;T) zS8R;(nF3qP8gt`w>MtbVgw2WZav3QAIshS8PtU6#Bmk0OAP<;2mg~5bm`%=n_dgC_ z2nL+~h53BcFiNcbmbQ-Dd)GEO2yoL`EPyir&HiL*X~`v*7nAB{79VGCL|^%NeK-lF%>C+NJUjkf}p7iYK01_Dx^xZ>JN-* zfvPP9@hFv2iHa(1NT5K0goKcQ(-87l@-z^~*sJie@M}Iy%JBqer!U`}V0{b=H3^)5bwWU$ylAE;B6_&l&@` zaB~27`tgUa+O>Dj1AF)GxM$O*O#$FD;Qy<2dg8g~9_~7P_}rG4Ui#~b6)QA=ux;Bm zMF;_A)|gp2bh797%*?Ov+U4DO=e-M|>sBr;i^S7^ zJp1w42b-^K?&aF;cfN|}^n-(4tJkdkSumjY0Z0?kWsQH4 z3xsJR`$_-6y6VQ}>qrZDdCL(jZ8sFEGHzUZ(=#Xf2A4kZ>}L1*&40GWhK6ha97(0+ z=;S12;&JJD?$=J83@ZQ(#N(x>PoLJmEGRE|yJ0}=fAS%2Xh-oip$BdQDNn6 zswfY7#Z}cMKe=N=>CPg>Q?F^&0!1c<$HzFEcPKtSigeBr=LUyuQyNJCCAmPLrm3kZ zHZd_V2q04+`mzANzi5$+>Lf2b_t~a%|wl3)D=`p^Pft^o1<%V^04s{(0065hPefAZi;dzuX61!TT+rR!%>bZz9Fd+Q zEsul*!LvOC*oG1)g>GmlDk%ko0n!W>f`~zIJr6?KkWe_9$hjF8G#N`001TWPqF1;5 zqj>Aq&Bkn-mkc^PJDHhvv!sL|l$@$6A}s~O%|l9Nzovk|3?dMiNZLdosD??dWEKJ- z%{Q^-g}=oQzPpF=d4QoZ5ky%iXgaF;xvY561KOsv8^C!82zPPR+uk@D~9fNY4YL4Zr|j2q5-6PZSrG^1OvDXl!n#+PO8H zPELW)XP26komV?YPsY{7QW>$&F`5XWu;uR}a_}T{s{0H~!NZoSp zFBQWq0)b)MIoP%f!wA3tlPZ9cVv|>W<9gb-;WnzTZy;4sDUpc5VWp;KVaruzm6d&; zo;{sBW{H7C4bA49If?HcIdbaY`t|Fh9UTyzoshE`pl~>>j*X4^V#CAgwaL`zoQgRB zGfB^d=h#F(g3Vx$717pqHSYP*-J&W~MSbV`*!7qeG&b@b8*Z<8Ywz1_-KS1Od}i@^ zSjp@9k8c0fH7l=K-rUqWxNqO?U;pXd121%R!0qhplm!4Z9gyy1BH`G88c(OARYCwl zug98Jwv$eVAxNxOPs!^$Tg{muTW zx+X!BNAAA=fnO|7CZf5n9WOLg)y&^)@7>0o`#*lZqoYHp_^iQH0I;bRWo@KIG#2#) z7>eh>mCU)k4Zo(4uKS=XK-2tsFf)#Pcv8mV7KpOw`M4W5tZqkHMdjRy=!DVLbwJ<0 z_vK>KaOC*#lv*4pvL1WzK_i->O+H`Qp3ctBVKIXN1%S$&BLI{e9>{um3qDAY5D-=d z?79#P(sh$`!+&wBZur3r_FM}Df|N4H*W_{)|WIyoYQe!HTNE2D4B#9-WLZ5n69$1Zon(sU+3O4{kq}zk>k+`TqsQH?3N5R zkq3YiiG;UmUOf$uOp1(^6h5CyF0*GSLRi@pb$563$oRPY=IYgA$>K#qkb=tca>QdJ za&BE+T~kY2-PCxG41e&heEhe+qf|7(w$OWrrs5w(W7*vjm;m6;{!CDEa?$}%_RJH1 zIBxli4mLMkaSi!=nRt9^B1owBBvUjJLDxIGskF36uD|7GQ9rjfS6UJnJ9OkgdQPd{ z(%7<0x2?EzJqxeBxCQxST#01yQO`)^4FJah^Z*zHU>5-Jw0Zy}fE<9{zdZWTv!+=z z-<6Q-Zd|kAs&B2oOBX8HRvxELo@Sc`dV6|!$yJM|P8{!k^^MnF8Grn-pKsh)gymx+ zQP*T_ymelW`b6zZ#j0Wp}*!<|meAkH5I}rDH+ET^6dYR{eouxv;rW>^s=) z>bl;O&*eVMn#D*yY3P7K8}?mKzg=>?FUwsWy4 z6}r_zF3<|k5ua5`o*tV3nisY#*`Vr5O(q_-l8JaKnaUgk@Bx4+0Jf%SLC0~H09ZLU zs4X3dIlTbh2haszWSZ%V6>;{jx9}X5>A3<32|$$8)%lV`LneSiUC#rsN=r-aL?R&z z2mAg0;#@9Q4Irqhs^hwDA1*|_jW7AA6j&$#&}OJo0N38$t~NC_836QYAiima)LDCc jH8n7&*Ue0Lm&ktr(V-Ceu!IJ&00000NkvXXu0mjf+Vu%A literal 0 HcmV?d00001 diff --git a/imgs/icons/1184.png b/imgs/icons/1184@1x.png similarity index 100% rename from imgs/icons/1184.png rename to imgs/icons/1184@1x.png diff --git a/imgs/icons/1184@2x.png b/imgs/icons/1184@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..42e73209687475732cc09872235b3ba383ebff37 GIT binary patch literal 2496 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 Y0kWwasHlUfX#fBK07*qoM6N<$f^cZ!ApigX literal 0 HcmV?d00001 diff --git a/imgs/icons/1191.png b/imgs/icons/1191@1x.png similarity index 100% rename from imgs/icons/1191.png rename to imgs/icons/1191@1x.png diff --git a/imgs/icons/1191@2x.png b/imgs/icons/1191@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0dcc3b7b08eccde33e2e9db25092dbba22d9a2cd GIT binary patch literal 2713 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1198.png b/imgs/icons/1198@1x.png similarity index 100% rename from imgs/icons/1198.png rename to imgs/icons/1198@1x.png diff --git a/imgs/icons/1198@2x.png b/imgs/icons/1198@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..737c16126d39dbb392471487dc3c459591b9e1ea GIT binary patch literal 2260 zcmV;_2rKuAP)43q75>hB%j`4W$Kx$=9cQu0R?`J&8k<5PD+GUNgK$Ag`Be(E zLi=T1KWPkG7&;02)n$0wHK`$LVH_37#905b=f*<2d$ z>e^`>JoskE{{8z60QBGZ{>V+ttOE!F2+n6R0nLy_LmI6RYEv$ozS&h233!8Dm6eql z03ae>4gmck02)U}kFJf@#(E>6P#1w)g{HR)D3MCWF*Y)i8yY{^cK2O(A7t(q06snd zgM)*bX`0raM}Kqew{E(1m#z_9JC75i@9^l@xHC61t)wf1UKS7U{>ARE5bc^{W?D`b zE(l<7a8U2*>2Yto=iX>bZE$;bevDJexP3Z4tL3uuf~Bnqp=p}ea17>8HyPTVy?Y{rlrl;J_^_xYhXd#`P;%pJ*6mwY2mQb*4 zfSHLU*TrIbCU4*I^>5tu7&8kZQp?H!GZO$xr;E{8wecjv(G}^m*Qu+C>YAx@ARI(K zGe<#oF>e8aTtp%v)YaBdsIpE~R7df~tNXqW;BigU>~eq~nuYUmK>B=+cOgDg&&%=Sk`e?b7QYo+t~ zT+z0&o?Ld(b;-+-sygUKgql`vrdacO(u{xW5gf;26Asx%2qopq0&s{3%pc9ebL5hU zc<3LmJ4Gu?O1UVyOpDn9PEEd#x8Hn$=M&?s875dUSSbJuBAs-@K)|cP2d4-?5?!1y zo>#9kskdC$%CU4^*peV%Ly&~)N(iBqS1|wrGeH*unlP9hiA+%nEJK#h0&xHR_Y(jN zo{qLV{wl9jP{JvJWC<)wVCBG;E;9fk0TKivAek@l@YFn>KAOh6sX_$+&&8x4_y7l{ z8yYkKD(f@4pOP_8Q*>3S5|dgubqZc8Qn8RjJ~IbuT+R7X0f}M`M^2`tVF>7kf%;2o zQF+|dHf-2HLqkJLZcP9V0IeJ_m&aTHrLzDWegt9W0OnF6*FpqYv}h`MNHy*ZN&x7*wLsTwO*akLwgpnm zrfxu$^7P8+Aw6y7-0eNAri@KH^DJ94(IMvo4Qg;a*d-yhGqlp^SR2+>zZ!wT5Y^B zFfj1jzP>)~yd0>ju5c|!Ib;}UiPdPanh+(EIhvf!0r`Y#tj>t4_A2uGP1p`YvId_4 zWGzrUehOp9CsiU-k`t%r#FxKzGkF4jw=_3JKEKb|{iA+;A&VO#krhu43=Cw?tAtxV zvqt$nhEcE_mA6WqDU=YZ2+-!WQM#sUwfJP`O7eJgETnVDy!`hU*f71w73C(&nydvN&&dE0;idO-4ynRaFyLQf6>UL) zTP)d>b4uim#Nd&Dl2U0Jkf>6r_~8CKLe8 zX$z;1PmH#$s9mXPhRSBL)Y!6yK7Z|H!WXO*3$v4aaQ}<^v)vCMnM~`-@E=Si zt*0jv`M=_f7@eyF<+mJ7OiUg9`JO+1ClU#4y85as`!2t<^ZH0QP!kS&H7lRPYj3=L zVBc%+4U8NfKC+>+?a?)>FR8bRHkw+Rr7v7ZrD7JYTg0FL^aS#`yvR!P>EW@t2LX%& z$N;bb$O~4j{{DW^+1W`ucI*Iv2!Ksnuju%~x=*aHpPb9Q`1~`^4+2OxHNlNGY`n7j zQ=9G%2E(6iZ*7Qt?wW2jzmQah0Df}cz2cuk69ssaoZQ8^>v6;gzaaadCvUxV}IGF$J%a5 zjE$wr`(hAeUTx{^xHQ4cR37sKSiQbI`r~`Q-Fxbh-M90$t5zQ{HGCCS z2;)p4`kxsAFq)d0d;ppN+_0)K`~v`20jR;5=Jo$#V#SITUI1YLRXD>R10QF%d=W+f i^sQUBF16|xw0{9EA}vvscf-X10000g9KcN(E-N=+@cu~L1QbZEwsJ8J3qQ%Tyf5fnO}3ysZ(|8)v52hw{Cs6 z9`JwrH;stcE0!=K6ZflvGtXFPXsyZgnn~1w6Or%w6&ds1jE(B;1@X*#`-2Bf`jTU- z5?(6_B4Q?!i6bI;-gjHRiHd5o6F@UBsd@q?lZjijXryM(hL5w?Eg72%0A_Ov|KAfZ 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1201.png b/imgs/icons/1201@1x.png similarity index 100% rename from imgs/icons/1201.png rename to imgs/icons/1201@1x.png diff --git a/imgs/icons/1201@2x.png b/imgs/icons/1201@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ce42f49ab2034cb0ddf77311ce09ce2927cf10a8 GIT binary patch literal 1945 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1205.png b/imgs/icons/1205@1x.png similarity index 100% rename from imgs/icons/1205.png rename to imgs/icons/1205@1x.png diff --git a/imgs/icons/1205@2x.png b/imgs/icons/1205@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..21803902042e85f4c280c74e131788cf994f7336 GIT binary patch literal 2489 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 o|9y?+_Yq6)5Q1_gk+Czfn~ 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1274.png b/imgs/icons/1274@1x.png similarity index 100% rename from imgs/icons/1274.png rename to imgs/icons/1274@1x.png diff --git a/imgs/icons/1274@2x.png b/imgs/icons/1274@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fe5c4f3f56eca01f7368e2152070d3db2ddd8b5f GIT binary patch literal 2245 zcmV;$2s-zPP)0{}%uMWTX&B-!9F!4z_d$qmyTN9v^5<&<)@_xz35(zu2xv7b- zzE&H$6Yz4kt~QH1T&-8dv5JEu@`kT$Yih%l8}+{v%S73MKyWH6!JMbZ;Z$iUC;;I> z{<*IUZn0Q6LJ0rfu03X1T#QL2lk&Y@FE=Ttkn3=_3mS<$P;Ki=x#j6v-0$-6H?A~N zDidDRr|FrL#1vFkR2}>1LS!@$zKpxS<317(C2;cONzP<4@nvPlpE2qUC31y=?)_j7 zZr->}b?P|8E0dYH*tqE8g-ak;su(3F!R%kmqs{InIwUJS5+BkqGO;Y+^tzn{gw8e3 zWlBp+A0_x*n9XJu01C#AO+Wa-yDgnfH-yb^tmic&lPF?9wOJavX4yizXUof!4+d$! z+bz7keG6T>_*wcJ>k^tZ!9W2Bxf65v9Xod&0H7FD^uDCLF9+@#SrH5tDGYJ?l9@BU zGea618~Ogv%&bfu3x*?*iA8vA#VgRuq^P}a$Eqd21c{e|lSx3tBAl&A zWwr}&w%tTVN-8Eyo`yJ08eV_tw|MjK?;~T#5Y%3>K_U~u<@13kIf$hqaGVGQY2(5} zv_nL4x%Bj=O&g~XhT+NGSOC6Kr{(44tjT2JkL=sMFR!q0sd40JK0y;Jdh^}4U{Hu* zP^+=_rS;gn@n!sJ?Q-nc{SKx~7=snX#fT6Fx7%C@$pu6rJc<_ovu79 z5QK7PO`nwyO6BX;t@}Lg=SgU>SQwMZ#P8j{z3^0J+58K(3M6P#*uDF9q3V(ydR;8~ z_z---5W*)ug`8vH;d*fR^a(UxZ-m3y4Y^JZc|sJ_oEqLRM!Jc%3K@!uUmzPSui?q5(~uCa#vGFg-M3wE+1-%D z#=?bu6hBvtyu1C=&|(}3#_%I1FWyUWT- zc1;05Efx!RF9`_%s?}X0_4y{z5Rap`4EhTH1s$;@cH{OJjaN2Wl?VqoKJKcbr}Tz(8*Z$$BlAC^5<^&*2}(%K?DK z$)kxjF}5{E8GF&|>$g>2Zm42`3;+&70Rl=108#C!<2wZ*{KJas)AanstL(C(MX0-U z0dM?u2fAEtP|AXhWf>EW1%S7Ww4?{E; zjot5+LZMU=wL*r*t~*FbR70VZp_}Q4K0Ot-!=E9Bjl$^R+30lp5eW2QQeiHpPI&@{ zj~=H|nX>1t4-dTxpqpVJ5W;#Rk%$vO3xGRc+&)prkW`@6ollHc8C2>dI2|3hYHvZj zS|#-M`Vmlo5wk3!Se811UZRt$kfBIM-OXmG` zGGS#g073xhmu5l&Ko_U)ZEAD4WUr@YMaNm4Zt-3T>v@&^xgaNufx5Cf*tJNYe|wM$qI=^ zv;`a{aq-Njzyts}Mx#+N=;vF5eEER@fLd3eT@{ll zdmS?5ebJB*0zw}C{x=$Upq*v#ZUx2tQa;SrBPIWLL0|?uco_N5oR0pF$ANzW-CL8R TQh+Y=00000NkvXXu0mjfSFbS) literal 0 HcmV?d00001 diff --git a/imgs/icons/1275.png b/imgs/icons/1275@1x.png similarity index 100% rename from imgs/icons/1275.png rename to imgs/icons/1275@1x.png diff --git a/imgs/icons/1275@2x.png b/imgs/icons/1275@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..adcba881b2e183bf765cd315142d8e7a16eaac6e GIT binary patch literal 2732 zcmV;d3RCroP)9i%T?Qxq< zGLc=9wuwneddbvI9PH33jXJgowh0)FECE7*xCkUg61uKdD^{xu(q6RJ_w)lO#fh5_ zt~-4`oq6Y+_y7Da=Y5|?@X4V7ntN*%i2pC%_5TO)3C<{hv{)=FRn(noEGA5*q)TaO z)-%1my)o`qLjdwqWqJ=<1W<#nsMy|@mXRuTdY#P7%8;4a>0beq`uYNc5YXBAimtQs z6-+ZnM!=S)Cask6H=h4CX5wSk zpG{0O{@r3I1XAW3jmE^Jq(n__ZjQKl^Os>z-}%A8?@m0vYukpQ!NC*$V2I50-1eHf zEvKaV@iY2A5zuhoRM*$nYqxCKqJ91KpLm18MN=#mBQYs4K07lP)Mylw*=!cMxi%Dy zh8^1)`1;qrN+=vds*-bUXXzOj`XDdY-hSco&F>#PcyLxqDTEMmshl5&cuh@>&hMYH zrl;roT3cIvt*x!AY`NLmmDLW_YRyzrlFiz~hmV*ektkBCY}{DO#g2>dlkcCFj*2p+ zyu38-9CKnwH0gG3Z)m(dIor5p^ZK-d2if=Hi!c6aNPoQo0-&_Ca8EcAeL4vSFj=P)_PqcS*rrT^;1cQsLuCAh`^*lldq?8mD<`W4=a8xWO-=0fpNeMqb^ai#Z z8&CY+=c4(!Il>o`1KBzDx~*Hc-dU=`ulHF}U#~56jt-=zrWA!E;dpjdmd0#0(RIBW zr_+T&pFnUigwd!c9FC%@DgZ`+$jN2@N0?Lt)a=Q_*M? zjEO3dNCdrJ&&>2J7K;gcem3VW&EoNRNzf&*ZtWUO=43H3eoH>wP+R=vr#4mzAv&a# z3h)sELP{wI1_t6l+UV$*h{fX4?e+-0-k>!a4XCP0I2<84#Y{$eI+1XMlG0*=0Y5#x z1I#Wga`sX;wd)@s5b%?ho=#g^JNb5-KuUSJ^QtjxV*XGd5NH%axSN`q6s4)DNxA=i zj`Ur4VtHASc4}%yS}YbyN{Y$Lv+?l5jnvlG05Cam8>B>UFi=!rXJOvQ?MV;Q-Wl9( z52rt9W!bU<4j%Xp-+JjAOnYYt`hDW9x898p-MUf!%kFF6m-4>krId=nV8G)VINIHH zUe3+9y39yVmlb72>gtut{l2&*El1hE|8Iy!V~mZCqSeGX`qoj#Mw|e|Vll#@Fgl$MuXmcM+a8|Z zx10L9HHG?dR%^Za%wX8{d1miL9(Fv19voV$lfW`Z zX5Zd#ynXbTy7y1MO2@gA=nY1`^Y`CEs{|-2D&e~?AEfKX;N6czTqPb?(do2|j!xhY z__@^CM~Wp4n=PC63mqtmf>x{HAOGpcxW^~hT)&ww{r+RpIqp)tv%$dl_~b>n`)5N4 zA)oovr_F_h#md-lpBNdwh40P;fB9F>l9y{|>!#Ig*-}d+8YLs$f?l5hKr|Y|=l7GE zV#GD+WqQiZ-aWf$+`OJFYbtS7CCQ-U!i7#+T3RTwTh-4!x{YNe{igVotGe^w=>}O%j!kN`80OlZ?8&l$91E5#-pkOig*v zYgCLzBSwRPf`TlDN8GsFvpoHWU%=~ea=7_827LlWg*g=4b7*VtqN+;Za5#Da#b&di zg?jC^u4{i*QeG)FA|mJgK?Vi~@hvRUf8#2~RTa409%MX9D5S++U}wXI^_)0yf>>aN z4eP2|yKXf_g?4&xO))%li<4*0^GM@^eC>tjxpwt3C1oqvP`j4Cfg{Sf_6wwCC>lu+NPJcqy-lP&*xvl$R{yF6=Q0=yi`2B7 zk@t@OtP6;|`s%Bya^QzQ)ZQ9)AI;3p3%`4^T{AX*Tg=XQS+i!1*i^foBmaJgBX7P( z$Hj|ers(+muHPX)-^Rwe^*sEUM|kL=28PC5w0_vmn{U5EZ}&|`oFiy;TC%dTF`JAy zRxIa@pZ!|MoxpTTX64|G>~hAQTf3YfgcC zArKpHYdwpOh%_1u43D|^!p?_CNlB4Tr<*T+@iDr(2j!_#Exh(dGx4}eQIVaMm6hb? z72|ZeqN%AFp}9Nr%+B2rs?@}FI$cLF81(1n=EeajfGR~%R;j9*52Pd|C0T;OP;f;> ziS4O9ySK+fbBU`eD;aW*iq{VRoRZ>v`iER{d}3lT+TQklB>-R$5Bps=5a^IRb(3yFWj6>;=FHEG`kq0rE8(ja`w_5>-{T zxG>jTTx9=x?b;gawuTyc;0Lb=qe0Km$T&B8M_5r-Kxg;pba8QU&(_WBDhvsl%;q`xTMkzg>>PU6~fNSQ4wuiKh4L`8FHTc^M3= ziqkbkC@SQaKHn&Rai&8ZpO`)=rR)a$n>Rn0dGls>!Q9;3Dj|ejN;waF5BL|rl$4Yd z4g>-VK$yGU0qzBp+!dfpB2)lkVPUb$=L^1>m!GvSGs7B>M#C~IJA=#D`V`O9yyBUf zpOsSHQWRxK2;pgKJL?5JKuk(m1`OQmwFdA90)Zv__7TJKaiUZLA|6+j(n9;lhBejV zO6O(W;Mi?8Ke&;N8_aTG*mW};iJSsHP*rstm^GP9VZYzM2n6m0UP|T@`9=ZI($Zqs zwyp7TMPc7(8aMs(uAMu7lxDSl8CcHU;Z5f53~BGRZ>go9x*Pf^J0X5W^8XrQ_wL;q mK)ZYQZp}R*xs>Urg8u@Zc)Z%xDj^pD0000l&t~=7y({>P%p*Gjo(uk~eNrX78aRexE;TDG|J134b9D#iric^)EV3QK#y;{9AyozNKHr#G`roV);15K4D?NoVj-tk z@tK>-vZ4j+m%FaBf z{c!TwO68gRvnG4jK#!j2KCh~1bo0!-`DkVfe_y+T`B_~UI%Os?`IF`P-VgNEuNN9( zuU&4~f63Epom(1RC{@%MW6IvWMiGf>5J~xD`nWfa412iN`}}Z`PuEHFp<+qx5-))C z$Q~$9&s`utUAab{dNf-$&lw>it+I24ORONHAmBQ~DS#VV6+&ckoNqhmD- zV9<3xr!F+|%G`OhS?#FQT9SM9W&6h)DY;xrhFNiGPYEwBUkZT$tN*xJx%)h>0%lwK zwLPo)1Eqi+2mm+3{hbOFws(PK{PFK>-W2=xOY=2A3wf`w{ewR+di*3JQ@gX{d^NrD zpTO$0F?GgFvPVuJV2|X=iF3>tHv`w2jchyHpt9nfdZfi{b2yzp2U0MbV}K~`Do2L` zoIb6T(sX(6txSj2Vkum;R)%FJs|KHk9p{=^^7?32A1g;R6T0^nnHgC;^iT>FWuNkk z-Nlsqq+Q*0+sMfs${D|bin@CIx7=nR23=P`Bwz(vfg6DDa{}wv>nO#}leNbNCOMnO z+Eb!a_U)Ek)i;%8%w+bTsvt8v8(Ul#OcpzjBsg(uaPYuE#t+Qqcx4S%PYY3o5T`3D zNjF&uis18lEkHWKU|Tr*5O6hI3g7J#D5aEut!q)~$shlv%^WF_HZeUlLFFWx=^1i! z$tPSqd79BVgP8tgF11w^EP8q>$IFhAn3_&f_Xj!K+(xLyhd&S?J~2VNT2+YzeSLtw zKr|2+Rzbo<+C5NEP@ng($jKx$fg^v9>F^fr66{_LFRSoZ2tq753}Q~$uzdXvGSR)$!v6J@9&cj+Pq^vPt7 z*2vLA``A*vo!`tF!?YK^N50gcAKOoJYpXI_Ez07I>4&bTh25_MEw@j?=Nj3FJdsa0zTvsE;k5#Gt z`^oQ$cTw*N&~M^&9*{{iH~BBH8bnYLtIn}L|O!P0-kX2v*EMe z7M8m;{M>N+_}x*0yI=w=K%~K7c-&-*$_)kDT6CY!9)gy#sv?|6By7@f+pGa3A+Ii1?*Yy98hpVDL=70@>b0RR9107*qoM6N<$f=rLNyZ`_I literal 0 HcmV?d00001 diff --git a/imgs/icons/1279.png b/imgs/icons/1279@1x.png similarity index 100% rename from imgs/icons/1279.png rename to imgs/icons/1279@1x.png diff --git a/imgs/icons/1279@2x.png b/imgs/icons/1279@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..254ebc3a67349c83a582c239736f70fae64661c3 GIT binary patch literal 2326 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1283.png b/imgs/icons/1283@1x.png similarity index 100% rename from imgs/icons/1283.png rename to imgs/icons/1283@1x.png diff --git a/imgs/icons/1283@2x.png b/imgs/icons/1283@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..77b839b1fa067dd3c95b368c60e74a74e637914c GIT binary patch literal 1744 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1288.png b/imgs/icons/1288@1x.png similarity index 100% rename from imgs/icons/1288.png rename to imgs/icons/1288@1x.png diff --git a/imgs/icons/1288@2x.png b/imgs/icons/1288@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c461b50e328c254bc71b6a4d8a5d3e58c11ad878 GIT binary patch literal 2288 zcmVWADirVvI!)RFAy>z0TT%(h*TIs%HVXS(q^>njMN!N+HpFqMXjR_0Y+w8 zEp|Ghj@B}rT8hLetq)F%1VCoTvb(t#Mq7X zIp?UVs*-LdB_dv1TPxSr*2=e9=PTj$dQ)$D#E7b-ge|@I>qoO5-&EiMz>#1lq6{KR zBciWOcyrW@F~)p8-!o3P`_b{y(O0vwvJMaty1jja zmtw+wXvONy>)YDeHcv$+BiXsRBPAJf9b{j`#%F<-W-5DYgATN za>kf=aL0~Z&iOOF-QA94tMyqT`qQ30dxD2{@3y#dqfe@;)Dc1}%RzrJlt*|M|s$CvKw7}=1QzYGTtzJlPY!T^ALNs=Z^(_{c>mUk{y zMMXsn03O`Fz1ZP!B%P?KF&W@$Zf(uqyLYefN88u5UcBZ-|m;z-?0`K>l(p0lRlYhx7?}-=K`p!t78CQ2m!`9VzC%SV=*bk?OxdD z8)RFyZ4t|s<@5BEH0r&4MJEAv{KIM*3WlWJ&;5$M^zzFr6t&XO;4s?TT3F!fFpgb* zk1$i{e9AX<%g&e$fNk8kQ2>xQVP<0oa^UF<`p#-C!}~> zP*epJHNav5hG}3lFbZ#*mlF|!!6|mC{(|5VqwWz6N?hX(Zm8O{CW9d^gfKDF|4{&X zf|lejCIHx6s^Ecb(>QUs6)la6@JZ_=OG$AcZ|M?9I!8>4BNEdP3olA zGo~XNZ|~^C^4t^_nT$ZSsF2BIWC~r9)1NtGRwPPS^g%LD;8IT* zM?ac?HWi1WFbwq%qo=zYeZ76~jrd^b1{76=-DQJrm|y^!TCcK{6bD;bn2D=n8tnFD zmY?mI=CV8#(*Yp_DNqcL$HNl^`9&S@05COyx2q&v9+h$5y#gx0YFi9|0fsPOwIw4i z3~-qv;158UCWItF05Jyh!@729{pwuyaLz*N=^Cc8HAU``VDv`=!{grZiSW6L9mC^e zV`H62oC`MsAmDBf@XB9+zG*^^i*QdlL(2sMh(W-FV1TSD5X7J;GGs-DVVF=Y7C7A= zM4}OXwP%DDr#sF2HWrAx*RDpg%_`lWk!lB**Iw!zEcdo|Js1v#PY?LTYxSRMFkPTG)%||Vo8!grhp#TVN0?i&65T*ZZere40H{N zBS)Lqh4y}|EGeYhR+WmJqC54h%oKA?QEpmr)b{`)Lx*<#a_52@U65#lU;G$&;%R|s zB#zc|CeB|Zvf5>+stTJeS#U)rFi>3A5s7Fp4HI^^6TW~SEEb{Syc8)XT~+l+NUpAK zP#*iqe%3!67D-YX&&kc_?;k%EKl|B$DIkvrqHc3;3lcRb^X0O>}k# zq@VA69P8GVqU4ShhC;fUvB;xGt+_A0{n~HF=G6cLKuI}S->35OADV5SzCab_<*ey+ zz3-jlA2)v9*ydr3C8?^qJlSbYceM~8UHx`SzXu?R3OlnI9`-Y0sQ{DRQD|6P~UYK1}P_P_a zFr2JzYCUqS;TV9C4}7Bozy$ z7>aHa#B3IoMW!NCe+O_pEiKLO_xlL|#p5P(W@RSDhlcEKyR>|H-r~v7_|y=WP%u0+ z;(6!2nrfS(_#Gb0=+2$Hw0-;bie0;Y7X>grPk3pb0?#1{fDM2ZGrFwLjI%yG zG0Fhc#JkR=*%_X@$_iW~fxzU)r`vlW|0000< KMNUMnLSTYrYGH!_ literal 0 HcmV?d00001 diff --git a/imgs/icons/1289.png b/imgs/icons/1289@1x.png similarity index 100% rename from imgs/icons/1289.png rename to imgs/icons/1289@1x.png diff --git a/imgs/icons/1289@2x.png b/imgs/icons/1289@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4343dc59198636cd843c7a27261b60b0d9bbeaa3 GIT binary patch literal 2478 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 XdncelS_vPJn?8NWbmg5HraT04pwN;zaN(B*! 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 aUhtmHMMo$A0000m{wzDz)R( z7DsLEsH3$6w4%r;VrdX6qCpc$Fd;9JOWv=W`^>%PoZUZ2oC4K4Q#;ddX3hEMoV~vF zt-Zgqw&3%Hn2s69>G;$SK98g`PZdy#ii(73n&Oh08WwsyCScUo)>@xKu78_+CN#hS zxJpV&>@_tt&Y73$>gsH=u1=LwUQn>|Su^>3KBca%P6dRNQb;KkA;gTtGbHrF!a{rb zC6^>6tI4UawzmFsPjmA%89R1Z4VPYO=krzkEDjz#s8v^2Ykd_mMx3^ z_~NeH<5J4T!J)3*d-oPgDU+p?`uQsSM+K&(Q{Je1eC2^>esdj2=i!qllSjhwS)DOF!wUZsPTmzt7Sn3GcuDD?Jf=db^t2nexZgDHft zTsqrVuBm?h(9Z2GDXM;~-+#KkW^?z!rjD*3)EzjGcV|rvxw*+KEGbcPW*4Moxsn#d zK}nbiUD|Am0JGU{S3ffWpUjZ|(a^HL@7*KkeCfK`LxIrz%^TO- ze{t8Hmqi1ChtybN|HHd>sSOQnBe}WhMs{AF!&F3WARIy}Dp_;p)zsJ|$0x()_{4hkLmC+fQP;vhaQXHrg7Gu&T6*M{B=h+hqau$ZWk z$R6n)w`r}_TFvRnm3w#Zv0A&jb%!Q|t|-I}gScs==r*z} z>q0YBW-3Prx#ij=o>RwOIli{$nn&%rDn};-uAB;Pz4dmYBVE+Jx}RIN-oul>e}vsH zzJx2<#lFAnz~6fYm(xx~MTxj07~-Dz`a_F@V2_xGQ35;TBq zK&_No)sm`B*5t^-gbk@=6pE#*zruY#xr^bJde*GF0h>FWJ%4_Zz(5Q8UwDF9vWutz zf$<;>-EUyiU@AOG`uyvJX4h$MYZZm*S=Qq6MPgp2^9Nl?wC>!wvmXcpiH`~VHrAhi z>gX$bjaZ;C5e!%ZLl!I6e_7o3i~D))ug~+&Tl+}Oui%BKz6~1xpI(~J>D!#IKDK_U-L}D>a;Y3j+vEeQx zy~GCxIr3&3S0<;Ev80sLo+IePsY>`%FXIh+76S!SQ)W95VcHY42G*J{?tA^wibenaO#p&mn2D#5}23}zyeIu0W<+afY6}UYHO*8^>(ybqftXT(k@b; zefk;p?|*|EZ`{I;hkwn@YZtQan>R5Q3?dUDW~F9f6A=P^?I3%ZINil7hdc03NNgJ6 z2TFrZRX3F2Xg^kTOzNsz1SX@W0KcM;j72hMhZi(JzvA*$KPk%gDs`{_!{~{`2?m3B zTpA6>8(CE~k4@jYf{u?qK(!JWrom`i0}(?*_hjI9rBOQH&YYrbjvViy?!ZT}P#|PO z3dNEFRdY%sW?|P=6X;YGVV~~51f(XxxV`bjeM19DKd)R;T0Gh`V&>;~)%?s9+(~ZU ze&ZCocD~8ljho5KO=qCJfzFc=Cj0$#w4UH-%P?aRLAKXH>1;2RMb0#vu7S|7ECFaj zwJgl(ViA~tHRFbw0Lkt*p9A`5=Xf7k`PFr03rY&C+?-UOD~?y z^5tbLEuT$(l9SBbbaJxOIB>L+gH40hYwz|)+=BL-H;HmkHAU4?bSFZ$A*2D|mJ$UR zJI9E8)z#V)ZEZ)p`-ip`c6Z*N>YcNEG66-iQn)GaM!`V)p*m>*DY9Bwka(uT=_xEkQxbvxbm8>al_`T>H4Tq9zJx8_ulX1Q0E{c zaj+1vG?y@obDc@KNz4;MHNb_#;X<|B!J(pQ!VaWP8&L2ZC!B`d1(pz^cWh+jw?_`u zKYzNjqsl)xdda&j(Rt6k)?Bu@B(tDuS*dfyrOT*Vb`gQ0K~DFLaj>CLAn{-7r~W9hcLNBd4?WEadM7KqUo z4iPr=2oS;&ejxPmCgeiMX(mESi4Y<&JUP_?oGwmHeQVURyn#R65LD+$BE(?EU+lld%o;N{B)Mo_VR2bePI+@{E8ba2imte$2bx-saaO(m$sO_k4#Ma2 kDLznqKA+!{K0lU?2a7xDfS*haS>wx?_s{tJZ!id0Z|Rd)_#qlrmo??>w80 z1%N`fy=H8&t=_R@f&l<1K)#K?Zv;vy<8ry!%ijS&?+)ji@~-vt`K6O<0D!t`*vtRt zzSaRiwz+B;lkFpNS=po-^?8Y`adrNfNc zsQ|WJ&Hgt?0mY(4+hq6Fe@(l7O2rG6GbbF~v;B?6SVF9Gx3$%~y}rNJH#W|ol=6G_ zIJj-D8U~c&qdR|EB$*P)efth@ce@-&jMXwf!#v@LzSHU=;tO6IUk%hb~RA`k-Va9pCm)%F0P zlw$k#m(-5CZqBo$r7i0@c@&CDD;G__gWb4kGx>Da+hoU^8(=QK6^HhJ!aIJog1+_Y zp9;&yjo(;NHRZm>hT~5XtG<*91iCbxqRt!688S?TEXVD8$>w1JC|{}orIaCrP&ORB zXZfRRkB_;waH2waYAKw`zV_zZcx?59sIH!k@$())@0kub);@@9atx&I{a5Mcr+y=g zv0!m!#i-Yz)l?-}2KtP2V$RQpQJ*nNN+g)v+%cE<{GtMcQVK!{Ed@-74lN6Jx2Z%h za?a%WWcR*CJnLM8Uo2gKoboByyK6U|Tyrnpbv*~0kw+xlP5J{8+kC1;;l&`CQhkp~ zrBy*r*MiHkLYHA2*?}W^yM2^+RRZTDmk-pwvN|u<_Lvy->%C{YsiCNf{qOM(EWdLx zTrWS1%Ic-?c6H&#iIvC}261fXE9kJ~p}4dNHmd>o_8CmKyA4F4AOZ(Yqaje40ER1g z@5Sw=5?#a(APIn8BtQW|2vI6bru1-6_lkspGbI@)Bd0GSt-V8VuAGmXswzNC1yJHK zY*Otq!wE_w!_^-`d&IPOTMln2^X~;mvdK#6wGQ|Eje}5;Q*ik$8vl}XOFSFJ2)au zr3wP*0TAIBhEY~7nQaJkwXLvZjI|nuTNQIj6-jC=c;N1ZsGd9;Gv_UaNcH&buYZa8 z3ufZB>2|P;2(QNj?`O?mk%F8`z!ykBXUm0wFpwx9`v(yl@X?InX+(@Aq>lD*yE)se z3itx)0Kx#`9HkW3Ups!`q)8L4EhieKvk5(S!_AXnO;3a4@h4C?vH)u1FwB@W2fZhD zU4Z08ciiHq=0PMxc;NfFK;y!giZ%z}Ayam#{*kOc!Ce{?m} zyoB#) zJPZwbpiygJG#McV&mh=y1}Se34jyYl-BB-iy&+k1(=Kun=;!wUUH{5kX8^2V0pFbJxvNHw$YatKMoww8j2x9neRBW@e)cqSGdAGH z8z*2~nH}~KcIZudwU8JQu5(+2K$*{yG%QB*|I0(Zc92$hj>)}H~ zAzdPo7zB_4pj;q8YoD)8IDkH9>q%#O>&br?jvl=<&19~QC1}<=+mB%WEmN^-?Y&4w z{5aasK=;r0g5w}5rP~qSitg-WCg=AvsznvhYnt6vjuD2?u$Wv7Xp_zx8#y<=Tg^u z=mTM;4A#`tusWTN0YE6F%*6WUI9SFs?|nmXD;&2BN-0xQ zQ^VfiJGs&NdVH@s3Xp>}WeiXz61h$5tV5>bztZnETI}{*X-tfd5Yl%eazY4o*$mm1 z?tyqh$f;X#>V}@Y@Z{>!QNuCXadfZ$=tl?Ijb^K(skPN?9I?LH*wV6$QY!rFE1h66 z8eHb_zWsY%=MTOA?%lwZ6kc!trlFw#d0wX@`T0}i=CTi5vzit(yB;>$2U_bc4eHp{%5$gAP5gi@90Dz1T;+t@qPSV_{iV3A4AMe#l zwywS}H&!0?@X&=e*j>Iz-r@)G*{8Ln{mVnld#^u7YEPUdiP~hL{^^Y<{Yi25n#VT3 zTK~msCtumTtSnX~o56)cgbxRaMx#;ZxDqB%UgY}a=3hVAmNR?W0-lPg zcE(cnA0O6Y>&ErCvuHkwRy+l#)dKyt&CqJ3PWQgNGZOM$o}OPgyGBR@3qqj~ z7|J6#Su0VgR5<|fyiRvb+OJLlp_GCULQ?^C#N&C`G1Myx5;ihz(MrVgayEVOTa{dM85oB-`2F0gx`1_cE#9;g=%IkVOuT^V#C_icyrfI6y3iL_E9UA z7Ttk(p$lCnYG8^_9#g+i_+1T-mWL0kM zqD1L1_dS}V$xRd|C-6ygiV2m*;qix8Vd>mVls>oy9IL{!RgYu&@*ktLC=G-LFlrfv z)zl4!hQWtJusTCfXcFP}Qn+1SIPGIF8hg>!+DhCWf26T(pcfEGLZPq_fE$3H06_Kc zs~);<`J(+7yV^J_uNEx+=^Df+qtJHlYh-1lL$21M`0f&zyN=_v7dIg$DH$Bk!yn)v zkSY)ww;^!J47<$?(~u2K1}CP>nvdR|0T}zoa92?tKhWF94E7Jd-D|u2h7j!9A5+G$t5|+*qKoUHLhBMu`Bg=tjws(>ZcMkJX7773b1V{rQ z1V9B0!_ZVpZ42+2FKcW#P1yKsY92CU`}Q4ZI&%h;5;T4GE?$1A3KF#zZ0j5ujL2^>GG)?4}u3Q#C{bxbEUIz#j1nU>Gv2q#Nny#5IJ`0!!K0BAL0EL>E8nR(NYp;aK@9z)RUL38^6 zj-4~p&cSgCpm+UzvGk#hsVSAaJk-?dBS#J;BXHKr6<67xaRPlT;Ee!X07fPSkdl%T zQC(fVIwL1-%gns#8^CjFZAvO4o-vvl>i|b(XlgXT(A7iSULZC`h>VFpm0~5~CO&FH2c$w|n^=YeLNW?XlQYVU1KDas4g`m;l%SoC9FH=3&qQj2;jJ zn3p|$#@acBh4*q^cl==Iaok(F5Vzfa2SVOU=xA=H4W~QMKj^?EFW?FxA{8*ca_}^a^}JC5kh{{E2p7^^lvM7Xqikzy$!|n{`Bl5JD-v@_MHzl`*5?a3<&X z&jK(TK(0c{rq0Yv(nLowir6Tj&>P_B(Pr~=9v}D0Z!7YjPS3yn#X(Cr(%Wlg^XE*( zaA!kc*TL3(Ai$oH}I_8S>^$%cR z#A*j{K`s&v`Z+E*Y4e8+4djY2@PIK0;2UFB03Za`2pwQpnL{iR#R&vLfG|i*Na(&e z;yzQT)jH~o#&4YZAp)*%>&P{GS5h}}wzaz~>~}|7Y!-gd=49Dpp%LI`QUe0cjFBD7n0y^dAs^*LFY+T@(hzObT^^|$*`cZ9cafjAHbg$x1; z{4WwviWMvN$j!(0&YeDU%BwSPm{@nl(!uY^M)8W zpP7(M4>yrRg4sRdX4D3KN#Ciq3_iueqX8UXyDY=E5}*LF*=)?mAHQMvll`%|lg5l+ z*IHAp41^i=l*Q!}UU=?V%c`>F){l1Yy4PsXfA-XKFFs(OyIQbhB{38{r$k2zIGx0V zI7)dPmn;qsr)#uomBGmIWf=F}1VC-XZnrCgjZMpMUB2j0@wl9&d`cdZJ#`uW{PORW zH(!034h#;`SX`D`8_rR&t9rxEr&ew}`RrRModU0Da`JNgdIge+QFPg9+SpJqpHrKN z9HZPGr2JO`gi?@y{>7@~ zm6gkHfAm4zeCxuZyY652;xjjn-*?0AeXBWHlP^F4F%sx9Oo+xJ8EUXRBL>(~N0bFF z{0-kAKq+Mi0aaA~)erw_!@1ED3uemTY4(JL>^pz2z>|+}!jdJ6G5xlO;py&%ZS#6$ zrRm7A10T@WUwK|uq9gfJGfmrch?hi#2w0sAbE*nNC8danvZB$<7>jZ!aG^7DS65C! z2%$NEMGl4T_4Tx=q9AhNycOhNRSjNxYBTOxc`Nd!%)!6EIE<$se*o|P?Ri)eRq*-x zh%2D5=R5ip2is4`{LySkQ4nVZ!kZ+>Oe{Up+NRPb=;eln#>+{$t1Bn+p}ntf%FRmK z7V&wF?!JDS`jh$W@j3_Au3Cxr-q?W|%T{5q-;Mdpry)%h!1*H;=uFH+!RS#)PBvm% z`gF$K;ed;V!D`Krq9XvOhamaVdup3WVy=m5&qwK11SmiVA<9&XB_ZVQUn`nei^M`1 zTY4vP^aWwxa0lkyI0bxa5g19tOHXgc(@#Ex(N+y&;Q<69EIOK+5RONo*6PqC5u`4d z2Qlh}pm-TDlv2}hzW%`eMaK@dzNuq}H2~rOD0i`P<>)`&u_ary_r*rM>FtgVnm^+f zCJ^ILcJmT!+i(}wZ+rq0XTt31({Q@B4zr3m#FI;4Ny|Y(T!BEd5mQ9OydE%vy)YUC zG>mj$B<6ymjv%aZ5%+1AChBa@j;de;&<7yIF$|-uFE2Iu`r6lKq?Dwqt!YZeEfHPY<2-a1-M;q40N@Cp%P?CggYQZpO6MMm7s)L zA$r@P=^mo~fS;J-iqcx!-U5Jwf&>5o08x%oipk?A{9@)$uTO7oI2ZTOL~c&u0wkIY zc=Fda6pzY>&SJ&91wTW7<59fw%sM2d&p=#J5EbI!v_^6d_CkRP^2!Jw_QX&!E=Wp$PzmC&s*s2pX%F6O` z?0oGtq-GaG(IjE(mPerGQ1{HU`LR5JGcmR}R7>4Fh>Y2TGhOWB0ns6y4w6CWJ zTedublQlI^6yVhUU3lTy$DlD=5eyALqt+rJ!HC#MFGl)%Aje%eQ{RXa=iP|2s#sA$ z5xq~#YR+~#@Y;cWsAfbGI^U=WI!&u8*}_wQ#4L-V1_0qGrMT<9vhumJrjD*XTQApi z`WYc6A`RaT|saxhp`38 z7?o|-hLNBZ;tDi619-It0X76(vX%sSodz12frg_9;BqIVe|Y=-P5^7wz`(r4iyq0( z$z%*NWLc+Wh@gMzaCdtW;PMI&tuHAAS4NW(uHf z!7PJD%`(}9QVK~R!;%XU8&DK6PQ*aiNF$;EK>z@HsS}dY(o(6i^5~An)=p{CgmG*9 za+)P8*$REoL!a6>9|{aOS>1?(mB-26504`$k;kaf`A9VpSW}ExI3tgwn|n!9kAGN_ zxnVu8$`%3vxZMu)dTY_!?S#PDK zY>#Vr;;Gh;i<9-AmQ0&coHT860V(_Wd_;U6410%hu62+();KuQ>WUo#aO9R8^|)9# zIwM_ekjDr*_ICX=#C0v$6AY-8XjJ3@j|@bwl;Eq8c)>srLWo2ut@F70>at9xM7Jar z4uzu=_E(*sxWDRriBZeuj4#YcF&h|Tl1azkI4Lvh^BULAkRa|HT~xTv)!&6kFaTMR zX`8c&boX|M;b0^TU_b%}E=usNODUz40vFaYVz=9e0o3H?;>&1Mzi)V0ObJG%^y>QF zTmabs64h!xD9f}8K(zVP;r^ppddP8wbhkKYqk)pD&-ahWl)AMX*AtD${TF87cW=ei zZns|^on2iJfUp2yz-B|^$&-b=&*@V)I(_O;OhOtE834$s`mTZNW)CSUm4=CiBJ!}$ zhklQD2tbowrRt8x8!3 literal 0 HcmV?d00001 diff --git a/imgs/icons/1298.png b/imgs/icons/1298@1x.png similarity index 100% rename from imgs/icons/1298.png rename to imgs/icons/1298@1x.png diff --git a/imgs/icons/1298@2x.png b/imgs/icons/1298@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..19deb5ea3b08eb6914b55010038c35c18c34e3c5 GIT binary patch literal 2618 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1299.png b/imgs/icons/1299@1x.png similarity index 100% rename from imgs/icons/1299.png rename to imgs/icons/1299@1x.png diff --git a/imgs/icons/1299@2x.png b/imgs/icons/1299@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9fd27c6b7fd83229c385f36a4409f8f7fd060640 GIT binary patch literal 2444 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1306.png b/imgs/icons/1306@1x.png similarity index 100% rename from imgs/icons/1306.png rename to imgs/icons/1306@1x.png diff --git a/imgs/icons/1306@2x.png b/imgs/icons/1306@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..009bd8594f665a03942055b9caad3cfaba9e59dd GIT binary patch literal 2620 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 JPDHLkV1mfic98%8 literal 0 HcmV?d00001 diff --git a/imgs/icons/1310.png b/imgs/icons/1310@1x.png similarity index 100% rename from imgs/icons/1310.png rename to imgs/icons/1310@1x.png diff --git a/imgs/icons/1310@2x.png b/imgs/icons/1310@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1967871c05a047a4f43c3d02ac4092a6f6a639da GIT binary patch literal 2336 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
3oh9 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 P00000NkvXXu0mjfcINej literal 0 HcmV?d00001 diff --git a/imgs/icons/1641.png b/imgs/icons/1641@1x.png similarity index 100% rename from imgs/icons/1641.png rename to imgs/icons/1641@1x.png diff --git a/imgs/icons/1641@2x.png b/imgs/icons/1641@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..dae55e8cc05e4a992de02a5dea1e8266978afb8e GIT binary patch literal 1295 zcmV+q1@QWbP)vroBd^mDcu49vF6a znE5}?{B~wpU|#c@*BwMe?0+{WB2Gm7zcdyAVA#esQ<@t~`X6YJ(!w5g!34xfOUn1j zG}{z0(R zGnLJ`rel+Cm^X;%DKj1QCfI>Jj*Z@?8QDQLQPh3q+(WTUrIv zveMIenoMPBB0gRqqL%=mx3^cDJ-=wyBmM~m1^|X->?b0!Y-wAzbfk1-I+r((pE~Ux z{qlGrZ{%MCfT5wG=0r02HW4+=suLulmA0MlCTTwJIL?b1J@f93k<04jFl0M$Z72LN;yOug-9 zEcUd|$J=YF!;THD$}c!l$%HX-eWD8hB9RD{8s0{MF-Ep+zN47flQ*Qz88A9F$}SG{ zGI0ThbjaV9$D0k#ZAr9=L-r3!%e1=+T>LF z<@V+6$7br!MWFOm97;{6I+Ce$Bp#n~W3gLKHj{;I>a4zQG5r3JtYng9GYS94M?MMr zG(R@1f683*cn4OrHEYrh!gaE+rS1y|>#g?X9mhQMs?_VYBgGh_UAuNM#@KW^F}5w8 zOnwoYn9Rk;#{<=2(rp;V%F40`1piYx2R#LF5Ivu6bfC8Mx)#_rrBP13@}3?7z|b! zhEa3$=;tPYO8_o)bgXI!*Dl--AUGQP)g3t3cc}BR*2{}(tDBOOiSkq;H4+Z7!NpIm z9bk;P-a^z|K6euXPz7Lx5Mo^@RJNIO{(41a#h&l_`U>azFVNOkU%3Wg34jU!j{;}~ z5cK8;y1Kf`0hDOH zx#5{-*Opg=Y15|X)P?>&8on~z%sCH2DFTp@O4UFq4j|gw)ZVHi0PG&Cz7Pxw}^d1B$o6UVQ*F2w*?9<^+Vk?sYV^zMz>_3s&g zh(JV&G4}JmeFr{V*4n%;;BQ;ne|~@lfBLZ?rF%sP@dJu@xo46`5j_F0?^gew0f6F( z@OJay&h2lU8Xms3`rt>0f4h0(`UHTuQtGA`;J$TV|9*{)jSEIcM{5Ao0tjlF<~WWs z1|SB&MRCP5HE%of|B8r+_4f8^jg5_ExWkupUh}$N{SK2Hvzv$)rHudp002ovPDHLk FV1g2uZQcL? literal 0 HcmV?d00001 diff --git a/imgs/icons/1645.png b/imgs/icons/1645@1x.png similarity index 100% rename from imgs/icons/1645.png rename to imgs/icons/1645@1x.png diff --git a/imgs/icons/1645@2x.png b/imgs/icons/1645@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..30910a04b191529b7e227a33b402ba024d50075f GIT binary patch literal 2122 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 A_W%F@ literal 0 HcmV?d00001 diff --git a/imgs/icons/1656.png b/imgs/icons/1656@1x.png similarity index 100% rename from imgs/icons/1656.png rename to imgs/icons/1656@1x.png diff --git a/imgs/icons/1656@2x.png b/imgs/icons/1656@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c4e8accf762dd2cf296331e3414dec97c44b28d6 GIT binary patch literal 2080 zcmV+*2;cXKP)urt>__zInrvS5tNJbxJ8aIu1ALp1tzLHKjsLx5iD+xY=r{ec3+Pdy^2dmr|+) zAl$fdLrP9g=Gy!EH~_|mE2lREPKpJ9!{z0dtyXKD+F&pQDD_IYq?36}CPTDdtJx-F zanPVQu4-#(Q4&H9Qh*SEjujxa_4GV4QkUrS_HXF!AMCMp_WqJm+I8*P<+DLSVF4zS zj&nF{LV_uXuc$ba@Rg;!q+rty0BD+>72M5xmxM7gr7SqmAk%16u@HT0?mz4lgrSE8 z{eAq>`uf)WEXRQe0>M}Tgb+$8wf`{d2enh917A;#k81qw-uJQYl~)gC&dE9gU=RQm z1WC!e2X&!SVs2bK*4`tzx-?FAOo~w#yvq<_2n9sfz<@({?dsLAs5Uyhvr=%vyIZg|mO7jzkvo`)@`M=Q6_5k#wzm5Ka;U*+*%p54p)`abi%_h!C( zR#MDSN@=34txZ3c^RX4~U-3o&`mJl8`{%T1F-=sMgxn>I~ zcwa$50Y94au^KKeE+zmR@BR8`GYvW}{u6Wm$=&%O2^BFcUdCERXlA?C`9_|b~FbkXxa=0sJZe86^}Yi_vm=PkQF-rDE%-s^6^qz7Ql z&(HUbnz$T*0%O2XN|^<-W-dvKi_4>w5<8`Vi?U`sC|EkDdvRu3ef{M!-^1&re96WP z-=}|iOK7xI`}S;JD71ZkfZnP<);WJx{K3M!EO*7ReHSSmipVZ9D-Rz&tjW#IRrm=N z0JH$~0QB4#0TKuy)xbFbs0O&-FUfwM=jny=Gqt;-1GG!e{PoyJ5!0rERjH+z7_Af& z6T+zF>cIma{=I(o+};;cZ00gDQbGwKm^m{xB>%ZNw-#qkwE)<^EIoX%<^0>C*M3Rdxqg8YK*72f zm+k*x&pVrxN@WaycmN>)q5wn!i11%A{yqZ$?N|o@040Egni{EQ;X(kgg@%S|+-_+~ zQ|rCYZg=%u29#d4idp96**MQ2Cpo;tqf&7}hfkb3f)l3#0c6NomM4J2D~f~#SP}36 z5C9AT81OrRCkhyw7OT}ttyXjcIIC95Cu=lpKy!yfW$S7LXVgNj;aG_mqm^>GUV`Ki z1c~QG(e2MOBLZF)7!&~~hJ_3O5CM><2_OJif2(3yxO}|Okq{T|?jIOx-S+P1AaUAH9e_I+wq3xmh zR$aTXf{|>0>*%!IDl02f_=WqvE#7z>_!?%jnFFA@UG~$3D>8z>Q-YdP|DbkvFdGz; z!_3c$lGbhBrY-MW)oA&%W(1u5Co4I z3e_Kj^g&+`LagHnI-Y%CL?|uYw{OzFFPL96YM}w`#w4W(ouPqdsE$!xcsAz}!_$VG z`tS~k^Wwi-?sp=9mY0{a0EQm)dA_{fW}Bu~a7K-am9F1)X_GFUMs%#j78f_YHf;LR zmhMGK&hd~>L;yK-=nxki94tjmi89ONY+q+rPq@uKMA{{2TOJDD@Owe6iPn&sf=KRO zaCP;#Q#)=4dV71N-riof$763&s*DXvwVQSIJ0u@rV03%1L0)Ps`=eibvtf;7nDbLRz*|sMX^#8#~`O-1%gz+CR){sVt1%8tN0000< KMNUMnLSTXbrtO*l literal 0 HcmV?d00001 diff --git a/imgs/icons/1666.png b/imgs/icons/1666@1x.png similarity index 100% rename from imgs/icons/1666.png rename to imgs/icons/1666@1x.png diff --git a/imgs/icons/1666@2x.png b/imgs/icons/1666@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d36c8fd7694f43a47c3450e22f9153cb54256101 GIT binary patch literal 2441 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 Hu0mjfVmPx^ literal 0 HcmV?d00001 diff --git a/imgs/icons/1668.png b/imgs/icons/1668@1x.png similarity index 100% rename from imgs/icons/1668.png rename to imgs/icons/1668@1x.png diff --git a/imgs/icons/1668@2x.png b/imgs/icons/1668@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e4be30a61e1e0aa165744d73c1298752266cab63 GIT binary patch literal 1194 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 KMNUMnLSTXl5BZ7! literal 0 HcmV?d00001 diff --git a/imgs/icons/1722.png b/imgs/icons/1722@1x.png similarity index 100% rename from imgs/icons/1722.png rename to imgs/icons/1722@1x.png diff --git a/imgs/icons/1722@2x.png b/imgs/icons/1722@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cc8e84b1e869b50dea5f8aba8a075b85ed19865e GIT binary patch literal 2199 zcmV;I2x#|-P)fqI$qy6;5r=K*x^3)F-{9~6MxV5_GF1N>HOT?n)>8UA9O->#jIY08SBuQ~X z2mwI9uz-zc&gfEEv!Pta#A2!nm-7ay$7tk|9wj6bh5i1(+M>KqvxCBfda=xXZ# zVTwiwXkUN7E*uK)_j<*7Zp6ULBsyj^e_8v zf3Da-eqyycv8=QdU{HfoQ~bMsdlT(#C&=jeF%}AiC}E7MO8Pbcrva#o1>E?QGDh+v zBSu?>7g~Pxv-ww_|J}};cX{{xW7N+kp4@Ye<7jm0SKX#dlau=+iF}!y z%}%E?X=b-uTnYanQ6~_XNd#t-4UU3sn4gPaVsHd)N86YVjHFYkRA_qYC2(W_lpX^R zxx!fL+5n6ZTe;160uD{EImQPo)xSC+Q z%Lt`x8a$r^r3y@7NPo(?eg_yMwML`9yP+Xjm8ah?aoAVzV9)eT_&*ptH~8&}V%Luw zON%{qMuD9PCdlx-0=vx((PTkN=CE>25vr@5(Cc+%b$uQ5qL=_E2O`9gMq)8)NekvA zP1yLy9w9|YdPL%iJl>)YcD8TW&pp$_$`OjrR((Y7yzEjOS?;m<+i^bgV(DqGtEU&8g zMrD!BX%`3`mol72De7DnOvZBvW-`cSWH2J4YRz55)9A)6>o%hAWXFYw|58x2m{cXJ zWP#zUI7#`ptt0S`|sGfbtXDjv{oMdkroNr;+8z?)tua{Bw$sM9mZrDQdUJ? z)xbCrp5o>Bcsv{`wi*kX-#s|?@~@viXmC3Cd_0zcrX}#n75sNBf5w95=4Kuo$7%@w zn5m@n6^q`uZ&Ov}>hjVGo0`e8>EJjyd*KwMTn=Ng1bRaW1m!H^Nr{z}RpP?vXy9bK z@0b*m{PB2P&P@k%0%L@Li$M^gSd;l zBbk}@2Zx6T&w>!;(LHx=?>uqTosgu1D;l=7<_SqutXefc@WvatYd3tA058D#09s0= zy|-`MW-PK5sMX6>2>nC-Xm4*rO>G?p0+$g91yNO{1E8_-R4bw2r>6a}UOAgnzW2aA zUz@lz=Dr*b2mGVw|4`=hjqf~gKs)fzL(28e+Eo^uc;*=m0PiU@J(x|-!(_H_c`XmZ z^Qft*#o-U$L;tBxj0_H8{NgOqX_aW1oW^I;AwlHz-`urpv%z32i$tP5qkTQE2WMxN zyGGiD1^9Jie{ly0M+h^!mKD{M8tPrH5>!;WN&mnw0uvKBb?OYV@f0R6j>BrRA{KG5 zs!}`Q6_VbtZk;EY$vQ-q!NrTA&SOVf{}h^uxC&iG?eDMNn#2;r$W;QoUN7(S`P60A z<$J5jJo<*l26broyf7P@L3d{dy4pX6-e82$P=E*TyB9f*vO>E9DxniizkGJmK#4i8 zsu!b@6oAGY)^hiWSWi#)!tbvOUu*$c7#2u8GW+$zhYpjj?rt&}@Z(6!M>uxm2<9SD z=mj0NZd{9y{}OYEB5KOZN%-=N6dM={BqV7nK0hxRR7%ZmM{BaTr;}0oALot5XMg}; z@pv-Z(%MRY|I*7KgkWkifTWznx^?TZdCL|CO3`<^i|BZP3k8F*_uf7*Di%0G8CmYq zGRiQ|;h@}e?i@6_WZQ8Kbg><3S>^I?m6v<|T3z8*x9`}_^F$yozVHI8zj*^$f6H3L zQYkdQ-5g+fwRdV_@)C>&1w5aHD0E=crZ%*+5RXIQi z0U;!J;`l!wDRwzuOv~AQGt)8gwYT00k5Bjmv2bVtIcbdJSdMTUrCL4=PzgW)vV0lW z#OxRDz^6J0V~kk<;W5GC-byuQG8uGoE*TBxGsy@(8L8#~OaPb#kOJ_Tl>4#*0Dy2D z$BOHV&GFIrMnZ(TOfC&j8eIU6F9^uvOYHjd2)MGw0GI$c0f-Awc>#Rwdtcom*F68H Z^)JIY3~8bl#FYR5002ovPDHLkV1hcvE+GH_ literal 0 HcmV?d00001 diff --git a/imgs/icons/1723.png b/imgs/icons/1723@1x.png similarity index 100% rename from imgs/icons/1723.png rename to imgs/icons/1723@1x.png diff --git a/imgs/icons/1723@2x.png b/imgs/icons/1723@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..af0db3caaaeacb81c99637a07836648cd3156ba8 GIT binary patch literal 2432 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 T!6#gl00000NkvXXu0mjfMlGzt literal 0 HcmV?d00001 diff --git a/imgs/icons/183.png b/imgs/icons/183@1x.png similarity index 100% rename from imgs/icons/183.png rename to imgs/icons/183@1x.png diff --git a/imgs/icons/183@2x.png b/imgs/icons/183@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..721a165f169d94b37a6cc2d54fe40879e520a36f GIT binary patch literal 1517 zcmV6{4qs<9bC~Ja9Gib=%#KE7W;2@( zr>JvraWdB~Y79hhFD-71Z#YFQ3h0mtD&hJ20W zdtebUFh(YmDRjixv5uA&XSAo?bvZITLRhtG)loqZc&pXwebE39A^^rn6h*GIwDgWP zH1s>YR)?x{)qP!(+p>K5nh2}a>J>$i>te5N0st_Z&BPc(ct}WL@`&Mey$!v+$B!NF z*F(z{5D`CQ$Pk9kQ455KhylR<($X2lHX98cKHNQb{sP)qShyMhEEY>ZixL1JiXtaw zX9ri-)D{=**+YF}jP4JYuaLHUy)y#Y8sg`#+RMD zq$z8`Yr}|$iJ}--2qI!c#GRDVd3+)^hCwQ==*K?FqlsH`T<|)sdQrICP^hyJ{vjx_PyEVY zc&WP2;0RUC$p%kkMC?RYt71yRprAH~!=WIe=RF^aF0N5tULHGq_^@}Lu%zl@L)|AD zb?D~!h&DBUr>D29?BI&@jEw4}q@;s#XT0zs1tQ{zNO|K1g%Y)d9j&OC{ribOrB_l$ zd($S2Cu>PbTk(Md0?^Sp&vQnX4>87k0LbOKECE{S=DBmljw;95*$d_~o^g_z=YmFz z8nrDyKYyUvZ1x3WQi6z>&1O?HHZ}$m5!q%azd>SL!*TYo4nCWFD?F~%6BwFL!aUbik6=onHj9KbJ86giILkersL z-?n@A=|wp?qz?;gA3b)gZ}HOHQxz2zO2!xhJR3UR1%fbpJyrxjA%Da?H4@JqDx1xw zNKa4qY~H>-Po+|cmR-9%vGH-t*guv(UtK+Y$JVWTo@JlzaGX?Nvw9y>0(lPj{@?Y?oTsg>n+`vQGrWb1$d z35vfiTtHpzg_t&v>yN_1t=j-7}n#mTf@06uy7?MJ-u_k2-Nk?ufQ*{|x5km1*_UIk;!d#$mN z_jsl9d1F#1zxQRB#F*LF6#yp#1OZUVHs1-z3!q(IZU7#6d5MTI#t6WmDN{4&gz9zg zUTOGSUw@(28==>EM#UN?Z`%9Q5l3DYC7G@6Cjs~&{D-P!7!816*;e3TE} z55Uba*6JfdhRHOCG1}N%e@PeLJDgrm9eQL|QrJ>waCGe#$D5pH^TS9yDbN0@^}{Fu zr~&i<&=Ww245gIQ(hA@%fEKM*d)w)Bwq#GAGCI5`e{k-?cR~|mRGwQUMJs)wFYoMi z_e?Wev{mZt@#94D#!{!vZvtopPzRs}KrMg<`I-iR0YIeF=?oHtMAeobODg6LMsA$W zbr#ne8{n3F9Rd5Vr_UpXM{C9(5lIHUSF<5UIUph|{B~1aywBYl?^dXwZ!mN&O%1>pa(ONpY$kwxI?3C{ilU(0_O T&Cq(K00000NkvXXu0mjf?TOH0 literal 0 HcmV?d00001 diff --git a/imgs/icons/184.png b/imgs/icons/184@1x.png similarity index 100% rename from imgs/icons/184.png rename to imgs/icons/184@1x.png diff --git a/imgs/icons/184@2x.png b/imgs/icons/184@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2897858bbf06aec8d4e3f6002ec6ceb90017e4d7 GIT binary patch literal 1486 zcmV;<1u^=GP)s-q}S?%7OyKMphSglsM57ciWB4)GM2G`zcsa$O`QF2O( zcio21>hf2vOe7-4^Spl{h=>spcdFvl)XHl$ZEwz>?|x_8ING4s|8{5JzGNcmLxLdl zD}-dVqVm{rvyi=n1_7=tfOhJ2N2#Sjce1utMMNBW(U?7sRg>9FXlPJ44u8MLwX5LD z1VHfo12?MsIf8fP*&EW9|{ZIBU4kwv1w@}l$3N7mzElV&dKo? zgp4|C9sCPX@J@^6_f6Z(-n8^|*Wt2KYG`h5&B@70^cw^bF{{-oudlBUB!K0b%?nzb zPTKJK7vji~Bi*?L1yp?EgcX3Yw+-1N1QE%INUqcA0xB+CuzXuwOj@m0)aiBZ4Y|2w z+PHBU&^b9T9Ka`@=Q)n!Ff27yvt#ex3t8FOqzMaqFlzK@@1mv4{y2B;oPse1zupZ- zV`s-3jk8}_ziG?;HzpcLqgJ~!X3eG*Yu4-*I;X}z4e67w**;j5ZOB}_xFPNJbTKI@ z$-PIgQ2CjPA^>vfBj%}2JhxR=t5u$!o-S@HC|IjhDtV!>P>hX_W4eK{vddSlOy8ZK zzyDeG=}oPe)oPWgRH~ussHh`{4jzcyx_Psx(+`yCVqmEsi_U!xbSZWxGw9N;Ourg@jTBt zT3e6B#6*j+iHY7R)80muR!a{$I=JY#xG3q>r#c`5pa3A300@8wfLB_+_^~W}Ghb9x zq%J*jp|+ zmJ5I=Ee{bf#uxz@G`d}0Q0ssU7=nEiNf>KCjaRRsppfxl!^sd9+9fhdpiyLZ>G;9hR1ux=ZISZZM(W9TageE z7Jm13O}y9TjCaWc8Wo{YKlfV@c%R|vCHTMcjV|zLYCv1E`&^F+Q)v_dEcE(Kx23$v onc;{3%O1t^JV%02M%^U)4=k04jQF==;s5{u07*qoM6N<$g5bByc>n+a literal 0 HcmV?d00001 diff --git a/imgs/icons/185.png b/imgs/icons/185@1x.png similarity index 100% rename from imgs/icons/185.png rename to imgs/icons/185@1x.png diff --git a/imgs/icons/185@2x.png b/imgs/icons/185@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ff541bf0daaa10ff8f90ced068199cfd0392adff GIT binary patch literal 1490 zcmV;@1ugoCP)8X8xhkTskB1K{gTR zP==9gGHn+%iV-%q3ob@Q5}z=6D864+q*F?1Z+rF!w}Km>6MK?ha*})R`F+m!ob$`? z0v*NxK(E(_Ecxoog(-=NS^zK@3^I7pIFG~gJOco^N)?qbbXflQ88a%fc|O)`HoLqD z!Jc?T42+RpuMZqHdUSPjvo&07vt17j4l%4*v*x71V33*3X4lIGc%lFpBcA8E($dnu z)q#OOY1JCk{8c-^=5&}=tXLajHk(~M&vQM*>LmaGqtQr=F$4z$=@}W$_oo@iWZH3-h!S$^$cMZQA!RAQSYNv- zH~%{tmDI1z-h7-~Emajw*MCoHB=RMqUNvTqV`Z^e2mm{O=3c?Lq=&UDmyA`;crVRS zbNb-8lV>hZjraApS67?mMD(Kj_iRMOH41_+5vj!o$7VE~UfsHKNveCz>QBTCoAYkz z)6ymYfT?{%y#qi*%KP{00*R=PdC$gAi+2x|V zGAh!!E-#OaIXTM!FQ1e=&vP8dAu%OITd;fgxrLdTqzwvc8##Kkd(qNmXR4~I6pS%= z^=vR0+B@E0nDzSFZ*p74PtcQAqj9FsoJGr5t=efanN(6Kyl0+f`*=~Ne!=3!x88g^ zRg901cNUq5#5_}p7nVv81bJ#|s`!0jVU|*<|$;0 z^qt$c?|q&)y{Q!w1VN@!sb1BDg_RxHzb|ylrcGjG)IeEebo5oNzh-tu#8Q1=jKhB=yFzkIBLwqFE$4`88fhgPe#dBOBa zBZK?Mew{P_v%tYoO0nrs@hW%VYd`jVbl$=iZg+OhxGN(mu(MO}2LNsYXarCPpdP>t z>6r?E4nU~YYV|P~1}nGya;R!f0+z*SY!`6n<_$QU?smcco9T-f!_z(EQN$^MKCa8n zRK$e@1wXvo80&Vl#yaG_cNFTdKl{%2YhieH3I4BnMi=Oq8c=Sg&y|QEl~&=))K{)M s%@vl`bT9m0_GmoMb7V5esGDT}0k+_agEHla*8l(j07*qoM6N<$g4-0zEC2ui literal 0 HcmV?d00001 diff --git a/imgs/icons/186.png b/imgs/icons/186@1x.png similarity index 100% rename from imgs/icons/186.png rename to imgs/icons/186@1x.png diff --git a/imgs/icons/186@2x.png b/imgs/icons/186@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..588f904964a9c568fa874e6ae5aec01ecb98f579 GIT binary patch literal 1987 zcmV;!2R!(RP)aprEM(wgFpJw3ThGu05ej zdq^EpHIxV>paM3Vb%GA26)F;@QMx7&NE{yFF+zxm4R-u~-FtugBR6fD@@Q%JN=L`? zwa@o+e!qKu`W*&Uq9}5809Q~6uG?f|@py;|3ZOLAL2)y;f(M8I<^ouy6Rf}iR#yi! zH7x?rjJiq?d?2_%0KhOXtDgZPVy&&~HI~3~4z@eGn}N$hznm`_Vp48&sw?|JZ?Wul zKNx}mP}DVDBACnlxzTXrF8~}DMNP2MqD8XDcGI8K&Kz4tqbz!TT9KoNyCXUg_?AylC#q-&Zbq?QQeuWJ!sAx+Y>ZXe&EA9|-`6h%~>efTMe-wAV%4zYs-Z!bnVqkez|x4{qCXX z=b6bYAhqFpwTQ_=xZr^{;>T7Chj8IR{h>M6=OGASe08Z{%^X-ETYhs%>yhN{W zel2(Q`~?cd<8MZzQM=#oH#$8Y{*gcc3?6mywvLvkKkjJn|LMk`DH}FzlsYb7PDGN) zRYW8(HZnoD=PKm!@T|UGK5_c=OYvB2@Ag0ZkuR^9z%P8}8GqZUQ@|D`@B5eYD$qzz6jmy5B|~B<_9>7cX8c z5fT6Ff(1L`spMN@#*UTGo<5!HINL^{V4&>X?b}y-JRaejK-?Dq09-B?5fMAIW5@32 zmOihYSyQV$`p+ZEMPG*{5{bMsb?Q{>!x(=p007vub!(!d{oL=W=gtWgm6Y;--M?Qt zeddg&I~aTx0EwdbXpZKf2H*OBpE|W|_1d+{tm@e`Z^3+J?T>#FTe)VWoLoR4??uSqZ_gG%_So~#uWiqGL7m)lKW>WIFkm?(<8+wGQqy>)AC&-Lp^ zPaHcoYQn^cY>eIh^OBOHNr^`eorUD_dX+(l zhmOD^QPecM-O~C^o0i?Ue*G`LGi|yFlO|?o*VbzK{WtgQd~e^{E~m-H7ngJ0X`QSc z70=`X>6}?-m#>B^6sHRD&;SH5ml}zeSG~OYR$p+(rOxx*+<9~P$>Yn;7IE=|27}p< z>iW-#IXdY=jAIFlQ5#R$`m#W|)Z}hf+<-C^fDMVrS86~Pjvt>l|CLwX2=|AVWhJTl z%J~aOh69*AeHx6M45lcNa;bOQ6d~43ywJ<^Tu9)gq*>BuYKmKB<^~O|0~~-n044xN z00IDB{hr~AfJ_0{6uVu%)pNb;w!h~@#NYG&%2nTwOeig;+t)5B&&{xBUnosoC}Zg{ zDTyW`o3T(@)|rEPzWw5D-rMP91VD3_&E=`)03fL&r_QoEQ#}C3QWLq|@9on8`_6Bk zKmKrk;NYZjC9`JE9gihz-xN}pn`gA``V)nM$v%!_S0x2^ZdN$owzTb7 zLF`ELXi3l*v?TK>KF5`nX^~M)hetpLkXB7N09qA7uY%|SSO!xO2H3%KJ#u${IQK$T zMp44lIFTZS*FO4ajw#BL1_+$LHb^V5fHf_=6q)&8ld0lz)Ll>gYPJ{#CEoI=Jm^Oy1nrh|?!-hPC&lo_QQOPQL z#uLksCdZhZ67)hMlZ(dlfi%ho>cDS@)d3I@W8A>~j}&6;0e8W{8!;9w;#R(RlfM}f zw3>iT8_Mx|V)`rvM8sSG^C$zg!8K4O z>3#%*&t1*U%A`UkWgR|>J|@X@%Ode<3zHCnEu=*%t5=Z8$a&GRat*wLJtP6Z{{f8I VhLL)mz)%1H002ovPDHLkV1kOf$HV{t literal 0 HcmV?d00001 diff --git a/imgs/icons/187.png b/imgs/icons/187@1x.png similarity index 100% rename from imgs/icons/187.png rename to imgs/icons/187@1x.png diff --git a/imgs/icons/187@2x.png b/imgs/icons/187@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..497f90ab9c3d7f63d884b945962338493ad9d1ef GIT binary patch literal 2037 zcmVJBdR=oZyfG2@Ql!JhoDes*JUo)3vmqX$oWO&^Ap|tErRi zihrhQ>#9zzl)_3ugEgj|XjPC3h=hs)+7iMeAz(;I$lFOAzwPUL@7W)5ARxN58U0B| zSGu}7-_QB}&iUR$0Kn~LwAuqQ;`j4~8V$uDV6Y^W3quvMcLQV)!Z1&{0b1<>$^FH8 zlG_@f17?xn<`R^c2UyaoWuFeWGmjSv07ihj^ASRT4;9AUId?~>EidMzG}O1J#`r~g zAsGzzrX6*4;zmNG`2Yw21t4&P0D!L>#O1sv1n-P61IT>5n3E%Y zD9+AJriyZPkvNOyDlC?)v!)sek>`V0NKpW!e`r*-)nbW#bo%(NfX#MT_r03uxNuOP zpQFo~<`ah4?b|BG82MHJd_EsB<_s|addK4O3t#@{O2d)k9q*hS4Zm&R6UQ%j5TbFXi*=lpuphWd^RJrfDB z$`XInt)OpEs%XMtMG?|+Zv?URs~_KIuX56%?oP3HJXm=uLf^jF-d^_IDvP>ocv$_Y zU7(CH?5wMk^*LOsyZ08|{CLeVM_Jh^v&}AqI?kjtW!5EMD%o$czMh;)tJUE5`-Mje z000DFxy8k4l2nqH28QELIP9-G9FDQ<(n@vLXQxCvoz?((s};;?-xPDXvK*`Lr zAPD+UDneM}^F&@oNc!~Y)BIBn4ev!0@jv7j7t5DAI?`7!b+W0zc+ub9eRq3HOUvx3 zSkUo&C;))j^|02~R)sM}KH0nXgU!!uQ9V|-N_FD+G39#KRbwa=db6sk%Cr#S`2jNJ z@pu>j?B25{cJ<2TKdxL|KUHA0aUUK&EOlJG$PWYpPXS$%F2{3 zr;~ZS-urJv3(zKRx0~~Nz0&XZ>{&I~-+$uF$&-r~mzR@#i{)2VYe7XU7R@avu)SD~ z?rh=C<#Z8mkjK>_S!=e*?{w#}7N1X)md?&FhtZwtM&1JN^Ct?7G;gUR+Tw z)~;H`Pmc^8*mv+yliy`9bA_dJAgPvBi=wIYcru-(w#dD~GR2jFSTFzsh$rL33opH} zeRM3a_eS?Mx_ZrO&S5XQR6wIgb-FBF!hiNmy;|ytP!cohRndfbOaw}$R&Sf)1(dk} zWR4@sd;kQ%I=fxd@bb&A2B(8tMM+wD>sk-u!Ew|sTM9juK@=raDhBCkzuU zof4=N&yuvMy25suc){l800p1{U;v;8AOPSp?+NY)Bnm((Ef#rnu-`v1GI%C5GWhYf zmwp^tY%63FeK(ZNH5Tz%TcW3kB=ZvzD~FgevZSoe3TU}2*C#k%w~H_U{6iL}$%q4h zlo{#FQ_ehDBLL?!2Ilo1JfsE=UHff={j=%uqZK9A<&UklQucUJIg_hWr`x0;%YsYjK!5S z)o`+upbYwZf)8r}n==#uB7iu6FaUK1M3(`{4#uIqekU2bZVpX8?+}lLiFSE#EQKrk zo5yr{MnR!;j0(CwIUSo$Q;1nHMM_QSSYR-ZeHFliAjp8E0VDuK<~Wn3QNdtPa|+K$ zY*fxtYmw+-N<1<)NzB~%Brgbjgs6oP!l|cqF;&v2PD>ZmQF&)++k%7W?ul>$oUsVp z6HD{yimEIwFR0TfTuKK<^@^xy3CBo^@o7TjgrF5-sdPA+4J1)IlLK!&kOSYi7(hG# z!TR-d+jB$Q(3GI!$IYrKaay2hj#u-P$$Wy*xFCnrl9bHmQ_hG=tZQzUGf~X`R|~$5 z6^sG!w6!S}c`hb8yI6RMB(qVY#3hYH!W7I?DkMa$f>cV@gp1`m_-5~r3;_NM4VjGe T5>7&900000NkvXXu0mjfySC#- literal 0 HcmV?d00001 diff --git a/imgs/icons/188.png b/imgs/icons/188@1x.png similarity index 100% rename from imgs/icons/188.png rename to imgs/icons/188@1x.png diff --git a/imgs/icons/188@2x.png b/imgs/icons/188@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..97e08a1c46b9daea9a200c8b66f361dd0b0e161e GIT binary patch literal 1847 zcmV-72gvw|P)3&275?sh%e>iaY`nyH9k7u-E?cdT6cX8uXe0JE%}kwip@PyzgrtG0KL|9>qqZb% zLYB)I`k;s48{TR&C=!QJ^UbDc~6lVGE=zV}h5N@yuIKe|RP}4hV+0pLF%^ zdwTcY@0|19a}L8esH)22@i+@dA~pjE1%Lq71+dltSh*jpqXURW+X3uDM=J<15JF>n z-qPL#utEsrHUJ1R`S3v@iVG!&BY%S`UopKi^F1ns2WcolczT{jKtUC6O0N zeCyV!Kbq~oG*^VRLKcl@JMOZ#t^fWSB9i+0`aF{z4xXPdfC7NvfAYzXYkl=USXl4l z$92>0|L6OtcDZ++N~af1%Vq@t&dDUf$G=1XOI5)i|Kp$Em@%{Il?R&}gRvvt$w0#IVHm^4`=#EBoeLLjIruPGXNtVX}b)$D6}=*_)7rZTnM*Kp>F#blaNs}!pJd_5CxAd8AVea&t#ABz%bhi%wEwN19xf}gy?E&| zR8>~KZJXwUYuBzF%>7<4iJKB2BG$zi6E|NPwc$y}oD9yI1EyV2gC^dIdr?q9l06gUgM{L)Li+p4Nu9$B`d&(1fZu>=Evfp`VQ{1NK9 zPD4`g^~v`L!C=r@_rs0b6BjQ%apce;Yu4O3Lter>9rgk)NzJeQ?)A_c>)JhVoU%N} z6x*4pwgw)ppjgaLU7--=Nfew+g2A8_3FxlnBR;9GyC-Y2o_D zrp+F=tHlO5GQ-ZQY>86ZRO)c7&?J8>CLkK+$c5>)JdlS9aHv2}Pn+Otn(_PC;l8hk zlE4?-b1%4--u-y#xh;cIS#j#}$)v=jq{GWc*C>^3*007vZg#p4s%$qab_=Ggz>$q z_be8IJw5~+fDFI^K)8W-KJlClu;|&dVq);)pQba~Q?_YZfzGdU(o+0%-@jd@#z1}1 zrK2PDl2$RK(+rZVB2Esa^n6NKIGACP_}IFs6aknDUa044Wb$dP0K&;_tZ z=g&6|KKJ}1sUv^Cvm$l=tFvZK|6q>41+^Y#uU_40eQWvMMa9tl+_vjzR4=kDTc&Ke z_*aYwu|zuqt}Vwl00Uzs){#40z?fRC+%N%X0F2iFyZT=dwsAuMfuiJ<(@;+Ay>gkA zImmi=%}TrS-tS0e%i-GTXZuD^9XfH6%c6(rx|9_){sp53S_goA*Ak!{fh2%*&T0jK zGxt<-ge(C1Nx=N*Ls(bCJ=S|IQ+QiLvo}+A<)dor>M5Q$*NF7#2GKQ5_xM_5$Km4+ z!ywUB1dPZwbC>wFuAbFjM^stt4l5Fsl(}LSXGzxUwKxh-eaS`KYBY z_RcdAiP-$JB%(YC0??&`EuYpVB;_jt&bq~PqExbnGJ+{`@*)Y%Dzi<+Hj6FEKm*KZ zXrCR*^$yq60wQ8W#8g$~`T0!<5HQwB|LMXqtK)2gSq|u>ikXGCYE*PqW-`vkj9U^i ldU8k`7_Bfm#vKj-{{=as8D&UX5BdNA002ovPDHLkV1hO9j2r*} literal 0 HcmV?d00001 diff --git a/imgs/icons/189.png b/imgs/icons/189@1x.png similarity index 100% rename from imgs/icons/189.png rename to imgs/icons/189@1x.png diff --git a/imgs/icons/189@2x.png b/imgs/icons/189@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2b385052c0b88e923cd640899bc5ec20c351ff6b GIT binary patch literal 1796 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2028.png b/imgs/icons/2028@1x.png similarity index 100% rename from imgs/icons/2028.png rename to imgs/icons/2028@1x.png diff --git a/imgs/icons/2028@2x.png b/imgs/icons/2028@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9747428562e9886504daa36fc73ef494067de6f3 GIT binary patch literal 1823 zcmV+)2jKXLP)+=4kNU7CzQ5{}`{Pe7^#DAuM@?{E^Z!7M3ZUIvzkR0x@KUFn&Tdc?WwaCsk3Y3^ z7^t&`pf?JFaGMO6GA-S3vF5BNU;_p^d*$&~tLH?s!5Glj*JtbP?Hywi+y{(CqZ#-w z@D0$JX7aOWK4)cS8$PJ~$B^Ftr~o=~K@}fR6lF|bUtd;-;uhG@&|p4#;2`HteK^?I z*l0E?R-fp&1kbqCG|%`6@j_U9Y`?d+_r=9?9=fdg&0G6h!=94jVGzSopbNX8hTPEA z(?7nWdvL}1&zcv{czAXpPyl2D$v_bHy6^ykfuzjGvKJH;m%OlLXZaJNBztLMTJbv9 zjo>Ojf*`nIFSdcE_MRVI{rqa+V>8mm106sua9vRpH((6VEeOJ(lZ(iLH80LLdivhl zQT*%Ifj)g|_0b*%ki9V1aP;6_51>z!Y8iUuC?rcY1^TZ02~@oZJSv*dT_517!)Ph2Z-NS zT4Do+fa=zc?kBz6DQo%ao2YG@esjUQ2@!Q(=W$OO7aILXgaU$epx}?1{?s+eDuBmXoIMNx)sbjt2PKJfGT zxp_72KN#BsBmnsO2i^ki)%*qp1(|_yU@vq4MXf?706+b`o|yQ=K%MzUQrgUM>hJn_ zInVg4+x*gfq9o4)mi5Y=EvhZWX0x?(JC(sUn@!gFap=bm0FkB`{k@x$?oal@Uf}?B z(`G;7i9NKx_jmK``EkbF)fS6o&&_rzbi?}9y+A!My-qyW1$?Eh3vFt++7EQO0&vq` zm=Y2dsw$1x>!5Ygl;nq~ARK4`szM{87c41So113xdjiP9p7R7?JW#)N@1c`G*uK&d z1*lWq2AzNRpH|?8dOf7qbcjGgLV{IC*kp=~>7SLEJq;kuhY2_UGz0O6%lF)pt~U(dy$;(_FsoBn9LQggxk!xKlkRg=$>XA5&C#NHPl9v zdFI0xfHv$WAb>#Z-+eIP`NsZT=I!gBcf;O8u85L6;GBDx+p+#gwxnpSuZM?+Qoe0V zuVzn9ojxPj6!~CGQleK(e4;fpBDyamB&5fvSi9=$>#e6xRx2M>9u`^}n}@J}l8vGy z3wm+EE~02UE&()S!G0;7=-~Z;Fzl^00Pw+H%w1|kzE-2tBTBLXP@Di9 zG)4sgSXQvc5HTsvJ!9SiTbjww`Q+nrsKV&Q^>2Ph0D1_3!i|3rqN1Wme>6+~km8(M zSHqR~9RaukxziyyI&-+ literal 0 HcmV?d00001 diff --git a/imgs/icons/2029.png b/imgs/icons/2029@1x.png similarity index 100% rename from imgs/icons/2029.png rename to imgs/icons/2029@1x.png diff --git a/imgs/icons/2029@2x.png b/imgs/icons/2029@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5ac6d9bb9fb50efd27be52cdac94f2caaa8f2fe7 GIT binary patch literal 1831 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 h?s}kmQF4>)l8-{o|)h5{oVV! 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 Z@elWc#VS98(-Hsx002ovPDHLkV1iSdqp<)0 literal 0 HcmV?d00001 diff --git a/imgs/icons/2038.png b/imgs/icons/2038@1x.png similarity index 100% rename from imgs/icons/2038.png rename to imgs/icons/2038@1x.png diff --git a/imgs/icons/2038@2x.png b/imgs/icons/2038@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..293fc5625a97b273c4b4ef907beda2434a031fbd GIT binary patch literal 2052 zcmV+f2>bVmP)_BdTaoR*|f+Ei&28l(oWxGNWX7Jwo|!wInY)~Oc<_WKjhm*0N<8pMN4h$? z`oHi0&Uf$mf&b&fAe*IGA*c|75K2KPMOFxkY?gjhlq8$Y(o819D7^^|0dmuYZ{i&a zAiQR0xNms-fiG-}t?L*pN8>gRI9EJxy0KV1dgjq5POgd&1cZqHP(YRfBOw4~?}5xW z9M=sW{OX~^rVai3$0J&D34%{8m9%EfX%N?&lUjamXOsVJV(jRTUwG=N@}50=q_MHF z;KK>XW+_HS!p_Z`Q+w~*`%6WZ_oVLMjW0j=c}yRBqGU7 zW=!?n*7(5jxkrCDGSUDcfOu~sq&0ViAOaA#yzoNr*1PUL9E-)aRUF3;%gglbrOS<< zo<4r&=wk6?r=oG8s{$ZIAfzCKx>P8(VfJhtT>q7^fu6I@hD}Fs0~gjx6v-SsNC_br z{`ig`C3-e)Q)69zvUfl#7i;VpXYqIm@*CZ8iwc9uP;>>lE)&zF)G(=HMysOkTDg4n z@lBhC4`XcXUP1@}u$vN)$zzZAJ0Z+u7$Jmj-m&XWGZNots7z>@MD1h(({nST z@zAHqQg`2pT6z98E1I;q?+96Dg2^(M4V!S?WKt+-jOx_Wd=piN)IA>oQzVRzuG#%H z4*V*U0RU_oN*~fqLzWaJj3$zVF(#nv#O&%RyKeJXDxR_yyk(&ns*n^(rIOykh_=pd zp*LM88+@nM?|H33i80!&)er`}e(3Qh)7ZYj}Pw27^Z-sXxT^db+u{yJ=cBvJ&2|;;bULf>mS`U3H zH8?z+1|WfuwFL+v&~?i#J&|a9fO8JYD2XSNNcMEY=K<90+%aJsUx7(`-P=j6G~Ub7iapB|?Go{bOP zKGVn*h8pFXkJU>p0N`IMU}OXU(5yLuFZ>{+kStllT|)!t+0ciVUVQ~qa|N_qPmg+z zp1ON|Qq^?qq`<2VU%8m~XO*~J?0x&>?)c;d`Q^jE33F3ZRY{kgR?_LHJ2T6hljEZ8 zxYHJKO$G!2%$ysaAs}@Bri{G87Rzl&7M9LyfyY0YWH@1f8etR=KSS);?hem2EOl;cITzFLMVg~6hJdK zcj>it5etP%IsDmgkD!>JN8l{uj`Se9qY={bfuLF^jt~FTVr9M|S97t-#Ex4pjo((7 zIv4!uxlzf8CB}Mp-~VgZh^8(delGA!CDP`)44}D|031AckN`kyrSZdht;$_5Ao<0D z_{Ygpn4F!1s;Zcrz6c(M5J3>uS8zUXy;I;`U;j)lefjhm|M?$0B`KPEGJVgsZ#o`W z?#N-ekKIdLdfe1!e@3p@W3HI41)`E^DJLpB6H;uxBw)g zLtdDHQte*~YqikY*em`%{xrtF`=l%OF6HE0I^;eB<|1KYx0b zD9TE*ujh%0=l+18;dFt60dN7FZFj#W-hDX`tOn8muz%pTEr+)5y5~MSmM{hP5KSbp z;51Oo%>%;!MP<46{Q2dD1xpBmrcX)}6Banvu$uCPHhJy6$k!5Z1+pYbJAxoc0qC}4 ziF-}k><6&U3k45+zfh|;ezNmxUtdVwyDNU~*rCgU%*vAm3P&B-;w-g1Y8XjtB#5GY7#;ah9POseBy%;-z>-n i6#0?ke@e`M1^)uWU2v=NLSzpB0000*DQ0OadnReQlxzm|D_s)HJ{6MLtyeO_Q zG2x%wFDK`o|L=LubIy5yhkB_0N42!HNP+~ISwvb|r2m;QGZQn5yN$Qp1fd6A)A8>b z0}w=H0pORu|AS}i8|uGp+xAR<-<8*i=oA2p2sm-#q@$ss!6G7lP?)=kTA1fk9ND|K z@<3bL>+g0)Ii{JMu$kZPI?sRZh`!a<75yv#*8*s%v9VF$KgbFI5HB!(<}+U@{=<=@ zFTZ=bJ$`Orkgp|@_Kl2Yj;B>KIx@}|Z^St|ILv4I`uk3GocS)`EuUYA2y-BJH@e3d z&qd)nbnNsOgTaEP!lK|KvMj?}5VRZ)r^G}zes~37|m!F3n3hC zr)1;-VhcooC5S*Im6aAl%^7wwJ;NK<*Oqlhqx&4Pe?Ell2fQ!RRg!z1JkmRicce#RdKby553WI zsH<xsoNN zwnuV_YnS?k?Dk^A#yUK^mB48>dga2d~eIFMRFm zaQl4d?e0ci%~IZE(HHID&Xa%11Mum(9tPl^gHUg)flw^O1L-R&+qTfGyj{I&4O|`{ zdb+z%zH}MZZ+INFbsKQ*{j=!kIE$g-A!L*kW|cIy)NjR_b!#ymi=nUg0z6I^ib~5d z+TDrH<8RaCM9c@kW16N5famTtPy-X=6u)>OTAfX2Ih$0_@bos+RIkS9_$V$!yHHuZ z23xo9z_#rl$LW*DAcVjtKJ`3ilmz-O{~d|x8z>5wK*^|Rd-FHAbiRXpJ}F1Og#meP0$>Vq9$t@qn6HjhI!0$&qn?YH51s++p42k#@ z%)E{M%e|0YE+~lv++G*14_(8N*8NCMPazNpu;h>^k(&MamCNHtg%Cm8wmSg~0H8ar zVrCeIWg-v2UmOA(IlSL~3OyHlv1wBsR8}0B`}; z_}mr%0M7$NA`xnBZH1XrCxsjkn@bXAO+gaBzwU>YHz7#`zuyDRw$OZVKMY;RimDYD z9vDK|l0uA+jv^fNz~^(rv~8$)fvQ5MwXM=A{W6-0r4s6h5P)Uj>cW8M@93JE8U_HD zBwn?3ZEVO4IHz>Uc1o~wx&hNLp&2F|l7xbSAY3jdMn;B_NGh0^n17=~$p0WjOJnce#^n`ZezdAQS6b@-Z6M%W2>>^rebB!O@I!(4 ze7?25P~e;4(!$1I(EHfJdH-$W#S*x)cyAfsv-P@{J`CwX5PR->s0Y?R03Ym1x)zdu Q0RR9107*qoM6N<$f~4trCIA2c literal 0 HcmV?d00001 diff --git a/imgs/icons/2040.png b/imgs/icons/2040@1x.png similarity index 100% rename from imgs/icons/2040.png rename to imgs/icons/2040@1x.png diff --git a/imgs/icons/2040@2x.png b/imgs/icons/2040@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..eb532b2b19ae480e76169754de18981e4a5e3a85 GIT binary patch literal 2388 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2042.png b/imgs/icons/2042@1x.png similarity index 100% rename from imgs/icons/2042.png rename to imgs/icons/2042@1x.png diff --git a/imgs/icons/2042@2x.png b/imgs/icons/2042@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..95dfb3662a50a8dac7e6971a886e8c68c39889df GIT binary patch literal 1968 zcmV;h2T%BkP)4zBrE zsXVpnhE%C9ZG>I5X-WkIq8g$AF__@m9<$hZ!8TsT%Pe=sGxy%_^Z|$*JT?#-^+?~# z-Olg)&+>g2_&*yx>;Yz`wzf8^udgR`b^{0 z{Gg@9yRo*mk%S1&%`VXHrrmlf6(4`&jUQejA~5s+7J!+ltE)@7vvB9-P;Tg(s>S=0 z$z(}7lLiTbKahj6O`GNE_fNik=+KYam{~kYI@D}Xq|jSUyPDcTfZO4QloCY5wrwG^ zylk6hMxC6z{VV_|iYo5~^0}l~2|z@|M5Odw?m1A9SHN>~bLPy{v}W5Trl-b;nXxc4 zF8cbe^1zK-9tMb{{X{uf3BXcHK}6=Y>({y>k;tBpyDuuY$A(Bs8=7rnb43NbE`}nA z9GaF>UstCg9L_umz-Owwv$K-`U~+P@YjSFWhOP~Wk-=WfjNgLHB%oP~2#Ey*{2r9# zdN>>oOQMH%@}mPBJa|w7fMFO{7Ut&06h)`$*?GAbOTfr5Ofv%=CY8CDQB+t^`TBt! z)y(`vo$z20^1T+EJ^!cn?q~8hm)9mgX18vkJTQq`Z5*tWlW@D`?ctOoxnS-GFxcGO ztN^e+55QW3h87ZOM{RKc&y;$RNLzS1FNNxyB(BEXxEgcGhVAvp%gf&mfI^|reFB)(x$L-lbf~CG}3&Db*C~Qfk7r=)A#L3~EWQ5pj@`el zscZO_5s&L2#UmI_5PMik3CkJ=U}sCgDuDZaedNfInfdwoYYR(DFj+7O2UL#_EL1qa zP#~eH3XhJB{;}uE<#*;HGpUA#Z7&s-mVP;D87UHiBsjy6Jp;qTx3R{!&Q^qcZyRQZ z!|@3LFpQ*(#tfu0CgRByjAR;$5D+BD=ke)F@#uxok&*XwhXdQ{w!XkD^O(s7kV)Hg zGh5{A0idm|O#pzdDp$QeA5@n{k|ffpG?In^DJ7gP2mBr!txp7r<^0@S#j-7CW=LB?-W8G+Re?iOHxiMS zN+l4FE-mVs&WfO*B-V5V;qcwPVpZ|23((%)&H%9Q)qUYWZq7nMZZ60s80j>U@i-!} zB!uc@pVtegOZ5ZrIaFsb7zp}YZa*brNg)))la}(?hNmhIZmp@Q!5YJ8O=*Y-uk3my zrD*D4X?Yoh5Hgc7!OXC236LO%ra%bcuq+c^kJq=kqAGuCa?-XfdqPvS4)lwlal5<;;pi) zo1Z8vEBoE)Q^yCQOH1D{5(%GEbN>2oCr*5XEVE$UV>c1O;|a;Cr)r`<`~FK@QLvGB z*9OqkREUOjp+IfsozBBR7dw0yr4DbkT)6=yFGB+qvD_B&MP zVl0|C8w~ni+puv%-dSE zMq@F*-|t3ENiG`eDv=lPVR|-_gk-N!)PHU%FF!h;Nc2Qz=UzN{`^2lE4WZ&dAlSrG ze$dd+@MeF1{~uNa%@0*zg-X1yscHXoB=QT7OVm}D7UmQbr8cE|&U-;(HM^3?m5LH!Gey5Y`6^MeR zczk)uh)p*IiiS@P4aKs2j{%^fyyP`aSAP@m`2)+#>F@T2um5G`{l~HO3RYlsFrQv4 zE)H$0E-l^nxDK-!0T3-MP+IRg$mTd3+{*VqWB&yT32#lG{c5uS0000W> literal 0 HcmV?d00001 diff --git a/imgs/icons/2053.png b/imgs/icons/2053@1x.png similarity index 100% rename from imgs/icons/2053.png rename to imgs/icons/2053@1x.png diff --git a/imgs/icons/2053@2x.png b/imgs/icons/2053@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..36b788edfbb0e3dafaffa9ff061625c1c159186d GIT binary patch literal 2067 zcmV+u2<-QXP)k1gR)Ap(1h$Qlj!eL7_oSTXH3~zwje^r!H(mOTa2krG^;%O1XojmBbg`RhR?5C98G0&ZR zKzgSJ#GhCvB@}PeN;Mm6m(?^00ao;G7;|NLm0UzwQ#W64H!o~X=pdl~IRFZBf1yu0 zn|ZtWfV=nJuQWaM$g0|=P6EXBK_?=RVHL)kLr6M%Mg@-ShnyI-mM{TiO-=diIoOB}Y9cpQWfO)Gn93 z*?ihfr>+w*S$g^lC%6}nZvfvp(8u2$0Hq{0{EeEGbynS=b~XNK_WnIjE#LZR)zrO` zEYteB2vZY}Gm+J+NyC~p5?|TMw8Y~qFAAiRFS+7mx#xvr&XXfORbS6XKydRdu9)l> zijj~YQ8uK?TKm4}gS#VQ5ErivBGeKiZEM%T^9cM51I|>zF$9F#C@Kmm$TCXlB8yAz zmuvSmoxZWkC<9n96}LM;K>%6wQO{p+O{s-xT)B~NS)*$@WVJ#X>+8WXJQyYbmI(kp z0c<1+Fa!)CU_lt0Q22`GeVu!vY}ifdl6kAlB9)7!bho0`V9h)ytX`8&@olfO3BUmgg}Z!;PY`e zmnj7tw+;x>4SoH-B?9!ZG-49ZA)M`4VNOMJBatE=0NrzOIXjBb+7|rf(t9|U9R#4m z@v5*b6V$fAh&*h=LRl$dPN|?`SRtSqC~O;F5a5;~On9jD0yO|bsn1lZp|18-HJMx% zzaMx5*z-A@A36&`@*`AV3s4)>GB9&x7-!!yW-H3m23+#e|gRdUNP;vsVANw7CIdBr1Wn+4F4u)kxt!gYQ34mg5Ydv&k z>s-%gou0jW=j}Q3_5oV33CH^^SuVT#c0YlMsU&732hxrX7}*q@vVyj@X3XV_$jlbd zwxSK&y1QUIE>y!r_l9*abrY;g$aH$v0@@bJ!2AHjZ&AVaD=9fUwPW`)X5{oa;l&qT z!t(n%P%&oEx$9nhYEug&UPLe;;^UpGv3=uO#3B+ZriGF5DLObZPJ{q&SHgTAh-nj{`&_DO6{&04$f-9@TuxrS zPS|LWc5dlFy%a`nJc+T1B&IT1sJf1Pse;);373aPG5o<8Dw;~EZV|n#UDA3sCUNaK zc4;Xfpn6)jRo!H3L-A@=m1nO$%Kxf;$crp*ZS6XF>@@8P#Yxciqd1nsw_ZztS}wXf zJ5Z@sFqxS}GL!SNGcs|4BwK#A`@7Ykq~dkkUK#*^Y&L6$#3qrpn5H!5$)gWRgE8BF zt7Uc5Mnf~{_2L{Jh_6QCo6lnEi3}`NL9ry`y-Sx+kQEdwI@JuDVcH_cCcb*?;^xDT z(_-Sy1qYLPe-g2oz8b?e1tuuC;h93M?Q!k94&{C>#%kJ{1AvJA|*a&~=SsQj_WOK!Sq zO^-|wrK(YZV^JTHV44;(vw4UVhFD zo15z&+<)fiat2%L<8?GMnI=kAh3C4Ul%iZ!yn>=L)FYFnS3mg)d&{PLk{mD=jlYls zAHt&`2~W?IYzLirFTlMskxZ#mskFVWeI*WkuNPn2y9WWkh+IV@Rn0P)dhxQcC8{OK z0rR6a2Nq~Vw<>#~$-v|9IJ-adrqDW>Ofl25d1L7Mq*Jx*Qhi;d zSQC}bPa~u+CGL^|kVts6pV~*n6NAxM!<%YVe&Fi(gg!KSEudPq#`$oDw`uqFY=8le3G#Gvh@ntzBtX|<*E~=`k>oIK3tmD%j&yE-TBophO zTs*ZO(w$zV$o~EN0}{tYSx1X{9>OjhS75kuo_Cbdsib^i`)&n^1jP~^xU0KmUtb>= xEf!ge=eeq`6R4^)qG|T=ABCW~TrE002ovPDHLkV1l@<;YI)e literal 0 HcmV?d00001 diff --git a/imgs/icons/2054.png b/imgs/icons/2054@1x.png similarity index 100% rename from imgs/icons/2054.png rename to imgs/icons/2054@1x.png diff --git a/imgs/icons/2054@2x.png b/imgs/icons/2054@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..eeb4fa0d05e8ca640e789d1c0eebe8bdc37bcbd1 GIT binary patch literal 2240 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 A=Kufz literal 0 HcmV?d00001 diff --git a/imgs/icons/2061.png b/imgs/icons/2061@1x.png similarity index 100% rename from imgs/icons/2061.png rename to imgs/icons/2061@1x.png diff --git a/imgs/icons/2061@2x.png b/imgs/icons/2061@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f7bf8025553e18785e76396319dd5bd5dad27953 GIT binary patch literal 2717 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 XqsUxO0+|9w00000NkvXXu0mjfcV$u3 literal 0 HcmV?d00001 diff --git a/imgs/icons/2062.png b/imgs/icons/2062@1x.png similarity index 100% rename from imgs/icons/2062.png rename to imgs/icons/2062@1x.png diff --git a/imgs/icons/2062@2x.png b/imgs/icons/2062@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..74b76e2e95c4d244bbf68d97049009609ca7d8ec GIT binary patch literal 2455 zcmV;I3263-P)XRt8J`? z+qXo$o_%WZftX+IG8Dfhtx!5;8W4&qEG?2>_VoNa1u=fHh-+mJGtCiY#+JNm%}%8F z$`P{f3gFObRx)XXN;c#c+i6|4cwdp9Rd0Wp*rm#qMGh_dRt3Mz4sAk?8{46#*<~wanlJ!&Lm9eW;4xN zF-kS3xT+gi^+6pmh4KukA_-b<$Y=>jY>M*!ue6oqpXHLa0x8>{Mq`k<{?V-}efalQ z2ui~$No}l{Q=Y0nD$PIaPL6LV6w9tASXR^!pc+!uSFpKNND)rZ6w$EJQ2MNZ z49&Bnx61+P<`+)}RphADrFhBk>Oyy=(LlqoNFs(N3B;lbEZawJwN4TXs=EPKh0H6S zCXwABu9Zn?l=z|OYVg|Wi^|oS47pzI?Tgs$)76k#az91^0Kgg`$&efY6xM1%#qk;T z3L0w_)V%iyX0!pg{6)*5DK5rp%^|DYXLc)@{u~Ksy)pFGKSwL-|)^Mq;*STU7>4wYa&kfV~ z!~}c}=xfjP^SOm8UHa<<_~jh-?Aj?l_gIIR89B}Qye8e(x?|7gkd>LsI@$hh31tv) z*8`*hrxpll&2j2sv)+iB1r;JyELS)xm^{*0@dNm%@U&-8b#{^4GR^qK&wt4ym#-2B zGG{VL?&|J_rYUq~p@y*)rp5Q)oZ`UF zCr~IrpHRWHR`Y{ww!npzMJz5ZV`+LGv^>e1Hf@B|y<7Umb1zVCVV3)L?nOlJlG4eP z6iX%Pt+QwON8kG)kBm-osgToDzZP?hm~4t$Rlg2E#MSC`S$x@P7*#lx%zfv}rL|Sh zu4=Yj6XoS4acydn7Z+!Feqxlj-jm^{j_wZvBSNMbMW&;b;zn&Kwrr$$jI6!3L+Z{4wpQLh@cjKh9!36H6Yhx* zdWCfd!_X1(ANwPFNJZ_)%1pkfbVs*rJTOApYg?*To#(DzWyf>jxh_VhXK7b&A4j8| zw6ZYAR-=Y`bq&plIFXe@S9=pY*OIf2H2>CJCO;oddavX~_Ri{}vtGRH#rL=YTcxmxB-U?R4$i{F0p0*dd=EmXe0z204$p^0#ldvis+Ex^fR za6kVxv?)t>A3uzuIhs}H1F>o(lb%-BTVz!+NlvIv`GP;OWW!j=Q`|IRYBG#u6G&E3 zfW`CKq7*g4UWtw2HNe&F;<|=ax*Y(Bc;`V_wOW(-5+JQyo9YNW4C_kdPoa2hMAGyb znbdkjSAweTVkMu)?EI{ln4RV6$tzgPWuXEbH)JG}ak1~2ufAJ&6>uJW)cdHbJBHu{ zk&gkkP7N;!70OVAQ}qy3RZr*z*Wu1=Ew?q1h_$ubZn9Wus6ikSf+;A~8oXAoOZie! z4Qva2JCxiut5OJO(*D+MSl1=rISB#aX$rm$GzJC+em^#GM$7E#N$PSUSF4sbl**~R z97%PhlR?@DhkIQ;@k-YN51sQtVasEql%49n-0;onlKQ*1x;M@CU0Rk-P@DK<0KoOz z(BL3qo%tYb-&=_GwO3{@dvm&PT#dxcbgkiZb+mLzPo6sUYXFU5K#c=(CqTyl=O+NJ zzFySLW3BbuE&ne8UU>0E>UrV`9{cH54+rj%a=9EYuPx`J9nqpuiR+nGcR~Qf%*4zz(BCfu00Z>W zOV6t7RQquJ4~zx|2IPPD;C@!b;)(N_74Od V+}K>zl?4C*002ovPDHLkV1iNWyN&<= literal 0 HcmV?d00001 diff --git a/imgs/icons/2066.png b/imgs/icons/2066@1x.png similarity index 100% rename from imgs/icons/2066.png rename to imgs/icons/2066@1x.png diff --git a/imgs/icons/2066@2x.png b/imgs/icons/2066@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6bfa11e23ad8d6cd3b8c995969b9d071d4931182 GIT binary patch literal 2152 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 e_O8HS&KPP?-~C zg+gi?G)vR8F`!4+^*NvtJnIE&c){A60ulsL>OwQSLWs>n94V!3n#phg62Y&32G2{m zt~*kzt|xj@$u{Vf;HYi;;BEv22>Gj{N21mbpZ!bu)}J<#eGlb{nky*D^~P$}dH>2= z(T-;IrjmV`M32>%NbMU{R4qO;J#{iW|B>l?tL-Sr^r61-skr0B$~?-<%u~Owq@2PX&xvTIowA z={@iepn~)pInuWeGi2a&8q_>+U6;`V4`91c%rDYzHNBac>CUBh-WRj8)0%0TqFSvo zF)^|GF%&|OI`n*E-+{lXvCP9;@1Uq*3^R&rcWJe{w3-c8ODl98Sjc6Op3Av&e>Of? zSdNvJmb_N0RhyZa+0ztA&-237!u(Kb|8Y%NLjWj&fOSi&~*br(UC!UqsbS z)=Db~A;h(7?}lzI79)1E+0b>}!?)*M69BM8$Q;OwKCBpt!B5;!jSxc7Y1C`zp)j>- zfx>c@bY_HhyM^bt6zi^DF4S}>ZPD#^?=Yb|2yC(0O{;5}2_B zy@SK(MwE`*V(7p@+RX;dMhzom((0CJ+k`uvMkvVq?k^)LrH=3En=1u8pob$*4(vaq znO4$=4+yAQhzC!cLag!jg;!Zwm?M?3h+C2)$B&9~r5*{A zbao=}u>yh5cZ0R5%6hoA9GRQG?CP4z$k;*9W8k^0uNJv6Jx!xi;@G2)V)#X%Yt}%J(Z?aNak^->pHr0&{ z=58(W?xjici}Q>=c!IBe^XpK~$q#Rq2t}-NAnfLc$+odA0U?AG6BFJmue_it%2S17 z&ph^qsCPG-rl+5&JWVP;yLxX8i z-l%`@-P1q)qXKzV=b~+MJs`0=1-2>ya6B_s{L#-}I^B2p>A84Mui9zW6-CsSCJm+bjb1ju>|%uol=q^4!s>sj1Lcp8xXL_rCMhljnc;vhwn)Q**X$uL2vuhNfu?j^kv3^}B)Zi2%U) z^XEfLOG`ax&YV$lxm+Co6TAnInx<7$RV{ZqohnerALnfw?^6>1zcGanVtjmD0mAe1 w?`hd=#lg>X({OhD5&3V$o)h_h{LjR{0BTRmTc2PnJ^%m!07*qoM6N<$f(Ruo4gdfE literal 0 HcmV?d00001 diff --git a/imgs/icons/2093.png b/imgs/icons/2093@1x.png similarity index 100% rename from imgs/icons/2093.png rename to imgs/icons/2093@1x.png diff --git a/imgs/icons/2093@2x.png b/imgs/icons/2093@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..263fce8f1d3adeb11269f0eeff5fef46f9d43c7d GIT binary patch literal 1920 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/20941.png b/imgs/icons/20941@1x.png similarity index 100% rename from imgs/icons/20941.png rename to imgs/icons/20941@1x.png diff --git a/imgs/icons/20941@2x.png b/imgs/icons/20941@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7c2d570f548688c33c75824e12c0036594ebc894 GIT binary patch literal 1637 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 SYjoNG0000P?rj?tQ} zQ!;PNSa`W$P38-j^vmdhI#&^MbD#^%J)2u=atJ~=k!+gG6t=@P|0ysmFBIbg4yAMo zddr}Or8$_gVmMqatvuAH08e& zd-C_28<}*+)3)+~bmZR6Lf*#Jn4~PaAi)Ef?wg*W*@Q5UW2XSxyFi4Jo3$Ejd_0w3 z;Mu+Z>+a=Sv>%;5s{Z<|1N6^luHb}U?07fnc++I5T-K-)Ev%9@$4w4xFbEAcPIJt* zB~Nky9)PXRhdIb8gVyb8>+iedyz-l0&<{VpL54#j(epqo7FUZ!&%#^0w7n*7A<-JwRlYgqT)FX`53kdV zC=;X6fKVifP&@~Q0d1+RAe>a7YpvqNl}>s*z&8Y6%#K`)HbJ~G3At;A;hfb0is@aS z5?CF~4d%#jdaHKn`p%uNAH>$sFz#ME1&OoboxdDMFr37YFF=C#64Yfkk__eAdkapF zNoPK1G2(i@_9h2js01c!IVMK zI$Y_DcfEVrhK2h26@Ze0#>4~mr7-8BFdB`ZY6vE)9cnIt_Ieu}cDq{0=G2^65LPW< zdAM7+0k2mVWAAN3bn9*~41*!>Erdn`7#|BFl2zcWs036>nXE*v-5Le&ds`K{-`Y4oUT zT8LvO&SLwvub|GsVernNvZ+x?nif~)QhDgal47H(>S}UJ((*cIyge98?*oc63g`=i z72M5Jtd96K1eszYR!UtuqIF36)uUb?eEt-6ytD zvAGEW?Fz$bY1nH``5r;Gg~*}+6X zzC4zeKTU|##~OqQlVC_6i1y`i0m|od@Q4Ehp!86mj4tG&PN$OO1y*IXwp74-DJ>-3 z`5fcS(I$HR%131NS{oDr7{7BDFMjtebZmSczS~!6gJXf#>OY5xv=o-JQkaTNB9<?um z&5kJvoPThHR@ZUF?$BY|wl}bR^*4}72B?_!GnY>HkdSYHYK;O7kSepQrn7Uwr?=ltJi9cC8;z#5GwrGz@b6IlMOLZX&F*AOfpgw5(%(-XQrCb0D>+s zr~)_6fvL+w-g~H9>ECs5-PDw6vsK5w!86DWWnmy?*!3*zJOe!eV)Z(V_9l>=0^%%Ov*U{(*$o0O z2s|JI-s#otEr7c?22x5w?OKa+*L^>u*)UTw{*V514<}m&pz3tc1f7N8|9BGq1%?T; ULJo)TE&u=k07*qoM6N<$f>ibfz5oCK literal 0 HcmV?d00001 diff --git a/imgs/icons/20946.png b/imgs/icons/20946@1x.png similarity index 100% rename from imgs/icons/20946.png rename to imgs/icons/20946@1x.png diff --git a/imgs/icons/20946@2x.png b/imgs/icons/20946@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..eaaa7d1f2c68c457886dfb74199d66afb7e5e0d0 GIT binary patch literal 2114 zcmV-I2)*}-P)Bx-0wPzY(`EC@Sk%(#y2vB!z+8GH79?%d_@5CkE%leFp+;*-wf z(f@b<-*V3f{4WFr2nEQ;x%()W2mpGI06{MZ9AE$dzMT|f7byl|+;f3`q5u@Y5r7=& z19N9Az?Z!yUX;9SoygKuIZqvx#R>{@8hp^v5Bf<1fC2=4V51?AC^ZMn2F%uY{wvP%qyAzmwtX;#+)C0+kqZs|5VF?|~r z$x5E=ZbpquMp2>6`y=CYcrMdA5L8|QF%AwbY5NCU&3hbim?yp9276c5TGauHyS<)~ zSQD)E*2RhRUa@m~&;G-|#NPP{%nZK^U3B7i$KSxM@B)@nc@kcTQ;$<7S;}<`mE7&J z$$G(7h3f^yr?}fA`Xd8Sfc&)&tUJ~&I;`fZLaEXWxBHp4{V(zmY*b)!q+`bykSQA2 z(0K!SMFY=s(9|jtx)U?ris~-ED}$cuMgNbfu<^wWkqiD+K6GUV`ao)(pJy3lEV}6O zq_bn&eVcZyH`jFmdK!Yv1I|v!xkWgfF0lVftJ`LQiP+(Cxr|aSZ{&+5>G5?e4_^xx z9GlWQDD?YFan%|yX=#Q+w#M?wZbs&x_H29J0*0s4=Z=x!)e#s5KtbRQG{P6CgUE8w zR0ZG!W-6K?Uwx_zPj2sVzZtT$4O~r2x4kW7@W67t6#<6*-E1bQRmatQXQdL~Y_Hqc zz%}kbDYJmtsWEsOJHapv=7TqooDG3wvzVC-!z2i(^?0e%>L4RGgT)3ZI@%hLkusU8 zr=tS@vn3GR*N)2o2!P6XNscMmIz`E~=!9%=ZvUp85hZFiQPTa~cQLt;!uMWy4rgC~ z4NYq|V7=3Y-4+27$D!IPl4my8Q=dy_PYi`?7)GnDw(}cvMxnJu30T|P!T0t3M|W8b z7=2*=oGQCGFkVVaL<6rBV+-WM&@1%X<@1OP{{uH?=fPP3$Ft8OT`VGFb;7|iuvx9J zuJI!@F`+-vpeE%FHTh%#rlO)ds9|`Te5(4`8h5-S9832Dgvb33c->9}j0)6j3e+N_Vi8~kL7kIDlrQV&M$6ikW@$E8 z%1!5rbg69UNxlmCnIw~o4WhDY3c3fNiIHTAODDqR_}q+{lt0MEBc}s4Vf65qcNtAh z0TcxeQ;TsFbOW+dMlKwJ#}S=y(wJKm&HZ zdIHtiJGg!23?-6Rl*t@jNLM0SPL0qalZd4&#gTZfg1L_{ifaNf-BQe?>*r@~u~Ib` zW@_!%=HqlUna3K2K}~ECt@{t+;IH37`_^rS;i;!m%O;dq52>smibJpb6t(-lj>7Z^ zMLxn*W=5bEGDaq)gEBr_Z9}}nG%@!_uLL#F2z^^S407?m9at40xC@LU;v-Ug!M4=g zzVE}SsQ=9AQ@TYI*|vHoKKq^T!`-u&PM$qZXf{E{|9)jcSLQvf)mB?*C}fN&jPdDK zcbmn$P*-Czj|NZxI+p*ER|GiH2hs~bPetf$6C6f7oPP7{7%UbOyROlXue@}GHg)wF zvGc!YX+_ohe{}4(CvSw_+u7!Ad%m&iOT&}%ZP&6Y8!tI+-6r_M`GT~@i`+_DD?88+ zbbJF87Em2XIB4;bOA=cwHo19ScTb(e?KNNc%~7^imMbUT`OC4BH$s<1QLMT+5uLm^ zfgd^rrp_YZGx4I{I;9D0Y^f|I5@3(4AhqHvg#rYB0D~Y{guq7>Sn`5X*?mr{5vyFg zYHjS6^|iK+g-CY%?UBjz9LLC-X5?5FaYDG1rfEcA;qG)}EejM9MO<&QWAe~eWDg8N ze>4DqU?&)C1dA-lf%71Pb8rD@08j;fhM_FK(>U_y2#Wu8_T!>lrfxujC5T+(#D3QIK- zVprx+Mjy!F7%GwL$o~z9gv#KU64crRimPa?9?Q0&c97uM-P!S{J7BLD!6-=>z1vXf sy=OC8Ek4S^vMSKMhujbO|M(d3PpRLa`)f0+x&QzG07*qoM6N<$g7~E6U;qFB literal 0 HcmV?d00001 diff --git a/imgs/icons/20947.png b/imgs/icons/20947@1x.png similarity index 100% rename from imgs/icons/20947.png rename to imgs/icons/20947@1x.png diff --git a/imgs/icons/20947@2x.png b/imgs/icons/20947@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..47a0a5f0c1cbb4b20dd1b2b3787100dc7599e166 GIT binary patch literal 1972 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/20950.png b/imgs/icons/20950@1x.png similarity index 100% rename from imgs/icons/20950.png rename to imgs/icons/20950@1x.png diff --git a/imgs/icons/20950@2x.png b/imgs/icons/20950@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a8bbf3d1c21c55e9f67c2ee94bbfa35d9a20f7f6 GIT binary patch literal 1946 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 BAlLu^ literal 0 HcmV?d00001 diff --git a/imgs/icons/20955.png b/imgs/icons/20955@1x.png similarity index 100% rename from imgs/icons/20955.png rename to imgs/icons/20955@1x.png diff --git a/imgs/icons/20955@2x.png b/imgs/icons/20955@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a09459ab42dee695a0dc04f25689f31a34d14350 GIT binary patch literal 1797 zcmV+g2m1JlP)nVsF)m3E}n%d!;7ieyDrtXHcx!Sk1^SGx!c2`zp)v`_g zl=i?d%y8#?-}%0C&mG`@J=nvpAtC_a00d)C5laJ*OhgJ1Nkp`nhWwfEzX`zkM7IGLOM_SmuY6@6F&S#WJ(VL^|@Vnxwtw2+97#1|HJjQaZy z5m8ShFcd%k&g&zu9%_0OfD8c5fb=MMpOP&jBg-UH063G$q*Ib44FFeF^?BGS8B zH|f{g-~BDxFJ6Le*(mV&-Ve@2zw^h-y+cG`jDZMX40vF}%4-nfNLS$i;F2UMmvf$* zdCs4m7%98<-l?3f>sQ6)oBb>tO_DGd#Z#M7`}6a>?X{)yHyN{r-EI&|U}il9*7A&J zh&cdgoO4}Klzh&4F@Qozbt!1XUIq~PPYPs*OjddsfD1qYfK3243n3~w z=OqAgAjB4MUISsm3Xen1Da2U+zwpWJE)4nyF*6;2-#@r`cl@qm2uoHSj`RI@LO%(c z7yz*JKm`B@05$*%Kpem{0EKgI0Co(JbiuKW0|av(vUdX`NrUcDu@oGEm>DG{7Gd>X zmLT0djFl?G;KOo(*O*6p33$4UF^ItiK zWMUBvfaZ`OX&UC@F+@T$klYGQ#;m;R>T*x6$MvCY8x5+8%9VKc5m*(JxdgCeWe80Q zh*~1JgZ>-B24`BX55hrt|0FWS%i25;h@w~ti*}Y zp`qaEu{)7xG)>#CrU5+woU3fV_mHuHGN&E@m;e^T;Zf*%W$bp>l@C+V=>r$fpQB6v zd>?Wuf?W+Yu;O7zzCuJ)Mn%;X?1{Q90q>cc(G*GY?TNVysw7EC8!7-Tlh?wEez;Eo z#+X>4!lJHM+5kS--q`d)PxmLMLQ`WbPqt`#c`xG*eMbF$!2P6l{vgxoaE14o=Jxmk8h_P%QSW2~y#wPo@%mfnY(E3HUdn7&Ii7CVTKD$Pj~w=RJkI#y zqG4IqB7hjub6~l!^%Pj%nv5~KrKLx1YkOx&OQQM9yPtZkw{MvFc>zYI0@(9RJ(|CA z6r|=70LY4hUHkX$`RUP!-7&KCdn+*??da$Tc6N5AG74l#Jea_;7cDKEwYA!9-|aj2 z+_R0xPxNyk?Uzc;&BQXO-VDj4Zgl z+Jg1|Vi;qLh=~32$A_=^2YMQ>UhlF>@^Y1fdz*0N*qfM}8WTQinukI&(W_kpp|Y~_ zO4sCVTpynmoqc0hPF)`O#)b`82nLre_%y(J3Lrg1?5$;vw=Ki?c6mtwn)ZDTKWKYH z+`9S?GUmsn;NWm?>#t6pP%0a&7e2q^Yk}Ttb^W6Oy~v|tKAd{x##rcNH4q;HQmd1% zYe6>VLdIXJ%DnYOMTJ$*ec`JmH!uB(4|dFH^> zfIJJ(O&}NP1{?=4hjb%87J=-)qNZt@Cd;;F+rphlm=2`(`BdgER;*W$R)8Tr2aL6n nK5j_3ce+_vRoVaJzb5_-b8tDi!Zms000000NkvXXu0mjf{yAh- literal 0 HcmV?d00001 diff --git a/imgs/icons/20956.png b/imgs/icons/20956@1x.png similarity index 100% rename from imgs/icons/20956.png rename to imgs/icons/20956@1x.png diff --git a/imgs/icons/20956@2x.png b/imgs/icons/20956@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..67087edb42adb971b20a41d89e6d1ceba10cec8e GIT binary patch literal 1803 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2095.png b/imgs/icons/2095@1x.png similarity index 100% rename from imgs/icons/2095.png rename to imgs/icons/2095@1x.png diff --git a/imgs/icons/2095@2x.png b/imgs/icons/2095@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..08ffcf398d28da1109e3b9b832b2b90419f67985 GIT binary patch literal 1728 zcmV;x20!_UP)ncW&_byYBtQXWv$U&KX%aRemtI2GNvPe#NgTy?94EGqk9{sPJjAY?g4j^4 z_5t-LeLB{e`DXs}pPBC%_}?JKc+6w|4|zY2Hs_ph&L2!!`a$~p`-MOtK+7A;69Rz% zeJJNadq3|Nu3x_{_Vx8iQ&W8s=bVsYFG2v$L3(?8g+L%6mZcH`KpGnQA${$&Q93X% zkS`7{0$?pIEmYGqa`ECtw_(T<-&|FHeCbkte0nVGl{AJ%^Z;HC(G{NmL< zoH=vijLYqQvD)cNe&xdXU3az2x?N29A=MyO>jwTvHK zx|#;CR|FvccJOca8*80QMj^LvDZ1{HthP$i&^k@VV3pmtJADf`-WtQl&VR&AE9wUo zMM)}(g5~Acx0;%svOjyOySb{i>H}R}O>L>=$+lnp{P(W;V6aZfDzKPo)YVr5OhbAr zV>TT-YBI+2E9>kKX-2M+L)tmuP+pwTZ}uzwDWKsj?^{p?{PRiheGd6f>XwQdtAJx#)tYnGS-uu zNF-F^sjMV6hlLIezY{SGBPmG|6=SiOVY3032d97SaoZbSdamo)tfKPB@*1lBmDJ{T z0gR#fa6MUDi{mq2>^#UhJs7$lF~9KHkDG-8gn=t>^5fkFvAweciCCO_d_Gd)mLL*f zGa7*)P(1VDR@iJ7dUZUMc>8wbh9C%vuIm~BAONV4B&kN%^|qILp1Sb-iKd>cs)?Db z3MHq)VYeW%7|$QxUoTg+oF=Wu+VPEVep~Z;Txx~Y<%uU!ICc6I*R=wvlCqc&FF+zH z4(zRfWC0{uMk1Br16OBOr-RX}l+tm=SP(#{^m&y4REnaw&oGRJdY|K&w$_HDZkM&n zX%pSSd(ri=nP{-Rso~IbFP`gkx;?z_XTKybywJ_q1VuG2(R1E{F&e#@!O#oQ{1putPEV81Q%|Zb= zz}Ns_DZmr~Fpt$LFDz}Ojx^@3J%93vPyclyW7gMH3E4~uc^uHFQ0Ay8j;)ti@E&9=-eMDrGICP-372xwB9TmuM`iU*a<0nPm3x`bw97FP&89p>>rwV_4Yqz zCl2m!B(+{UfstQ%V|4BcrF4!lwhABxAXi*%DZk|K4$1|T)Ul#v?4iD9anKE)&la8! zM=$4cYErVu>d39|>y*-Y##jizBDVM0#4dQ)fpY#$ZE;0ONs?otC{C}%Bhz!?#W;Z5 zR#7Zntt0?-w*tg>@3I31z_409n})GvFq19RKH;qZ5OLVW)tsi4tS_CPhh5y2fd91e za?D61k^_LtS0*O*H`J{HSj`rA53?%}2aozsi~_I&s0H8z5X1J}&SLxg?3zav zKmf>Iuh**Ux}42sO>FOb0lTpMy$}Fw*Nak^W%0g3u)Q6n=OYd9UWh2?-45|%cJMEl Wcp*?+OlZ9T0000EW=5Yq!at9mn1iRz?1y}GY-b0weRvbqU z#__$3e2-!P1#Smm5hKBi;e0;Q9u7>S!a7`z^E0L~gJW3=CGOxn_G1e!VYbA!2x%1; zumgwj6DM&(s{Sdw4{(8A^i-LkgV*?gzK}OVH!gK1??8e6?l#tn|E5YBlHZZ%AhzRf z=q5vVO)7Rvs#P8FLW!?fl6rp;Z}BJ`Tn{dA3p>NUgO6CMqFB>m*eA`yLEON;i1ax= z;juJuE7F{-mS|%Zb5gZ;;T^{CEO;zr17Sah`)Jpb_yZGhKY~p-hqEDTL>et=m?i@A z*D@{RG)D0>!mRgUC1j&vvz&J!rxsq|W&D~`+dtO%59%vsNMOGee*gdg07*qoM6N<$ Eg7qKEuK)l5 literal 0 HcmV?d00001 diff --git a/imgs/icons/20967.png b/imgs/icons/20967@1x.png similarity index 100% rename from imgs/icons/20967.png rename to imgs/icons/20967@1x.png diff --git a/imgs/icons/20967@2x.png b/imgs/icons/20967@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4039ba05c6ae5ced476cf7b564a33a19278eaf17 GIT binary patch literal 730 zcmV<00ww*4P)IiGAJ39k+ zs^3q68G{CrGdN4HH*$D5yg-Z}N=m$Q=f=`BGdR1)G=P~?{eCJy^N${l`nvuZ=Z<4$ zNJGp#uR(wUsm82{Bx3xd_Ws@5Gc$iH&+|rk;=~t{J_0iS-*(OHtK`LtPh8n1FaARjo@J_c7jb za2=^YDjZz*G2W6io>tX*K0V#{o12gGJg>C>PQJVx%8iXHa_%$Wdn<}XLiiDYs(N3I z#w_rG#ki1kI(PGliHZX!kxxuiiFDs$TqvEp>YS6Lo}^w90;O|TEyjgJy1y?2{9ACa zBtL(?{&;CA9Bno)5@RPB8M&8FO_h1K>krERxv3{l{KA6=hu*~e1C0hflaO2Oi~s-t M07*qoM6N<$f=Fgla{vGU literal 0 HcmV?d00001 diff --git a/imgs/icons/20968.png b/imgs/icons/20968@1x.png similarity index 100% rename from imgs/icons/20968.png rename to imgs/icons/20968@1x.png diff --git a/imgs/icons/20968@2x.png b/imgs/icons/20968@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..dba4a27262cb917c64590c70e1ff5757cc2390b0 GIT binary patch literal 638 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 KMNUMnLSTYpHGK^L literal 0 HcmV?d00001 diff --git a/imgs/icons/20970.png b/imgs/icons/20970@1x.png similarity index 100% rename from imgs/icons/20970.png rename to imgs/icons/20970@1x.png diff --git a/imgs/icons/20970@2x.png b/imgs/icons/20970@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3342c01cc30373ec95740847554559d311501ada GIT binary patch literal 2099 zcmV-32+a41P)#268wpeWTQYV1U9m(;ciB~(ppG+HxuqE5DyB%Ma1 zaT2wdHdSkyBAGA~Ypjo?f{GBuw=0UUk(VF~`(odF@97^d#s@JvaoXujznMGt+%t3T z_nq&2=XcKq{#QXMC6rR;zeYaPHX4opQ4xev$^yV?vpJ%#uRA*=LIi-^cjR{hrNm&^ z%?>@9&1M;;bWh{aJ?_~vCM_81Hy8};BNq~SDFC3dvQl2XXU{ZB>AszRT2G%U8b@DR zWbmzc>8E8G83xI4W4;rH)_2E2leYBr$~A`HtiRaX*Gk{`?J5d@mnkBIqWmnnYT0~R zys+%ToRYFN)1Q4-8yfsT+4x4gj7G|omlI)iW%aDnSK2qYoP%R3mM_2;yEfwwZ*CH# zk#P(s4+HD%r=yc%X#BW5Mj#?w>+v-6LE+bp|Jb6g%?Yn!SbaGVJQ9uE?qU_=X3L+;3W90wha!a8)9_?)VfF>5+y4L z{8b|J=b8>2umVOhoQON@F_}yR03C1+Ea~m;Ob)o5L56^ph#7eOJ}g_d1TQaLh~foh zIN#igNUa8+H#WoR@gqMs6)II2q%t`KN?9Qo2vU$_Td!*g01AU?*u0Uu+BDCwf&;am ziIVtIzUsEopg2?I$$su7)mMOd3#QnOq7zFrUgU5xZGYmF(nI6 z&76*6!*gi4(uSn8(fDY`I;?uR1Zg9q;qv-Xf8q*m^x2@45>Nm>e~`&cib7nJIz^<6 z$)N%zFc|I$S}=yLW!k2SuYhxv_>g-Z8so=50_ioFnewZuC!f8%GeBS-@X|q zj~vBotJb3Eu~8VG7z2l&#ooHhID6qLKq)AtNKcLy7~cR9+>T^I2t{=@|BV8+Z25fz zr8GP`QXN+~buy9?^;93Ff<8tEo>2fIDPj^5@WK1=gu{w;run^X2nCV z*FvsPATu)!>WDDJ=)&>CqD(p}F&fjRO^BzIN-H<4jsl_W#kuCDH*)DCm^dr8UZ z`8oNya%)c;PMtVII=TmO=tu+1?HySE*6&bva6i_(wjQygQoyhh`29|##;Gx7LK03~ z=)#EPR1{6gL4IByQqr<$Yr!tuejjcEAtELJXm6$d(KF(XF<5;;nz>4{jnbS3)iZc;EYjgfEzoqYoXk#@VUCnVzQ3{Xl*WMrb{xo75*hzQlZe;xgj zgolTbAZ4KBq^N7Sh)sX4fkvYSr&586Whi_+0a0oW61g051qY>40hikgOTQgIn3fH5 zdl$W7b%EpLE`UTNjL^-o+kKrzqtSOy2&=2BncCXg;GDVNpYrC0ZK5;huGU6G=^0y) z6Rd7G1QDRpry?MY#6W<;D+ExOpA8xugxzj~j{;ss4Y@86v2hx>9TvQ^b3c`9qKVz% zJlxXSvjst+VCKw8TzPr9aC`j`0YGtau~1pLNWA^8HM$e0E*TlZ_BA035eFa4Q29728Ceo!ARN3*b5-!g4D3cSxj4ju*>#PAOtrI{Ki% zDP&L2gIueHDqMkspC5q5>OlV>fl{S_HNfzGUy$`X?ZJT0y9&Tw5s=Yy!`j;eYkz3= zx2oaorC0_)7fPrFKp=W#S}7}$Y>|X(WQF+pbE|2c}E?%t1SUA6cQEyuU6}3K_cCt&}hdD zI$bEtPNgLao}@o}ehn2#q$tc8O{@+tzUt)}!ZNU0dYb(n$4cJs|16ZT2R@L{+sF}e zg0WgH`+{!AWI+h5@0Vo7ezybOY@k9NnJnR`hDs*`PT*u92iv$o3pc}vd?)u(8YJ`QzZnu~Pz~SpH d{eL_Z{taH_dn9(}(lh`7002ovPDHLkV1l6w8HV38v-h>vYwyJy+p*o$cH-Dcpt(AY5)xVoL6bI!O>rp*ArX)&{=h$kSi7qF z1GN$=5|j$4DxpTnmK37YA*88uvC}lQo$T6PUsCUS?RC7~_1>?ubNTpT#|gm+jf4V1 zywYeiXJ&MsdB1PYyaW7ScZrDDf12UHMvu%1?%n|+Vos-%1Hg!gxm+#|E*A%YU%sAU zd7Owi7r8k6drHUPJaK|wIpXfHF~$J4GzZ6VtJ>pQf_!L@J2yC;Jlt;i$FIF+y?*&} zXVC9&sjjJs`vQSPDv?O=T5VWmGEE6S-y*83H7(CQ)4XR_hfQs+NFEcD-t>|0#~*g` z6@cE}Ue*5n`=zn5vE59g`Q6~~aI3{^mNNOg5Q#*DOraq6oIfvSve{h6jveXeoldFN zW_1{KdZW+p=l$V%|D}(wobp~e{f76VC;4-L>mnk?82u{%6#z^gJH`N%&4$B2gUQr- zV9y?@+-T%@#&kNZR$mlF+PQ02Nv~F~+0oX<7=TPVfx%%9eKs}8!r{o){LRU&NJ^WO zqg!8azcr|!s|)0EF?4qm1MUmLmN#10+S=TJ8@IjE>-EV*0AnCUW)E^=rPCy$ z?Bv+k#KPPhy?gpJWFnTyW+|J`i$y`us8uR$K@bp6CYa4)WqUjJvTr~847M4H*k{%9 zyUaTF1xKYW%c*{Nfs}gBCR(2%#eTbaA5;PYz-GqB7c318Zy#=HY0d~jL%+v^FFo-@ zF`Lh8*45Ri6(Wp|kHS(>0h`5&+(H1^$$nVaA~vuHG)jgoCUUHH=Z^2Szj(OCP*J5< zX*4qCf@kRH%fDv~@zn}(_d1}&lF6PkCr_SFhQrd3&xbdUALm6`h5}${bQm+UQ?OT7 zA{PllN`z3iuMqUAr*^-}NCV#WaE!--8hHfj3q_N%_F}-$uD{5$b#aY40?Q zI-Zs3bvgr&y3Pju=Gob(P`c7{76zRW02t%`p%AKj05|~YtRTEu%w(R9MRVu`08{IrxKNBt#yu;bCO^-+;8>hZt9(5S37pwUCKm zt*urJd`XuNT$3bTEN0d5r1If$4;F6~&O1`bBrwDk4#DXZDz6T~R;z(D3#3wd2nvJNW+kJstdt7f6sqkO(_yQnrM~W< zL2WPq+Hy78x2?g{!~)uUC5&#Qdz4j)670=5Fy^2q)du&}pnW|VP&w7%G1ftlmxdEXN z2d5M0>b^gK+wCSrQCK0HJ$K>k*}hSahc{JPlz1|$NCvZl#uf_mM#?h_Zl;L^wN+AF zRqkJ;irBC}>W}A(USpa0mKw?eaE)g?K8O-8%iu;P16+tSEL-2g#HtO5=&IuWaCBgNVmgo&HPOky+(&Xc-D5UYPVqu9 z$jO+K!E#XZ0@4dn?A@-xsGGkX1Xk;T6$k(&saPBs`t;MI<_hzRdcEe0I*!v_9=MUp z7=VKZ_HC8~>Bfhi`5SvTt|7a*sM)- zflui1qb5dG-x41LumWMRSiG@V>{rPYnmE9wRdK2tDTRy8&In(5?(6nT9}HegdgiBU zexNzH{z#`??EdXdJ{b?gzP25D^J5T-0W6FJVYBAJcnJlOVSTL{QQzmzavT61fO0Kh z)Mzy75@V&enk(x&UwyfYN=l&oGzEMZWHC_J?OTZ7l2j?hD{KlRP)m&wB^Q(AuU#G(3-A zydMJ~VjqBuke3&Gz=@@h>%V_c`CKAe$&_pXC?h~e08aoTfTN}4yy`Nklo2N>+m%-w$9{N6vp|1qSLESXH+U8hnhN~hBV0F_FGYPA|Q&TQKzP19s!9goKa z03;F#IXE~d0bujD07xRb`+NFdCsGmsN+y#S9UTP#20-cP=ulQ{TR~1RAg?s`{r?jH z2|xhw{HN=`H`a1wWJEM@lF1~9NB{ue44zCT$p=<8&RRK;Q&(12Q~)6WK>!*!*WtQ+ z6Nv`63%~|Y-!v@%_UPzngOq6C5s~DLTMrKp)7aP;`J^-e0U#G?YVGP79C~V>CzRH5 zdd6B`zExhEf4|@ZHweg0w{`*40GI$O{wxEi`h@J!(NWJQ0g_VE@bEAj8yiyqr~q_b zZ;EP~=sft;b0^~W>_4mp!=21>^=xJ#U(K&pipw|Bw=Vp0rdmu_7-I|&5`ZVfT}fEK zN1^~A@6WPN#5sNXG6(9&w~y5&0S z`MT*zSqI<%s1aZiP!$`hY5+H+Bqt{)1)rLlQhfqpa3nmZ-WBfHHNdlT5n8wd%U#hs z_XUgxk8e$&AeeF`XIz__a%Ztl4?c8oXWR?gZE-`@0-CU_x_$1g`OKT+3o8IB642#_ zO$mQGn~c-$>gsZNu~=*nXo6JQ>!ulYZL1k-s3W3Mpgp9C2Ok=U-gn}O7EhF<5go5* z7H7Pfk}I8n#pco_b@JAlyKhgs#sKXzpWGJR+8u5F(JSxIfuNEE1Cb;tJph&fntX#a z*VorAZre8Buy{1X^IC`~?z(7+I+aj6cf)(STa^CZE)D2l3TuN5|C(!>V6p1D?2ZIk zx@PbznN{bCkWe7Jn!}tgJhrR->$dF0=`1|R~Uw79rv@?x>b zef>uOgc;XjAQ@a-nKnD3b&A!SLs!q-Qu^IrIF?(btM4peK2v5^wv5Lg+0Enowz4O_ zw!jvb%fhuBC2VN?=dVsWj~pLpIdtz9;ihfx!JR#N#d31LzJ2GtRK9f8_k_^e+FFU5 zrm6WsCIZHqJjV(ILSe&e*%Q7r_m0e!7sSmOl3f??xJA=sxxB^FZWC1~NN3KiQ0$J1 z+eM2T5fWxi$Up#M?l!0K3mG}s6^<>It4`LeICaO5``PiY{u!P8_BW~Nz6U7K6emU1 zNlH>YxGZ(!HC%f4oSe&66pF?4k3R8aYrJcqZLM79s-lLZlraEd0D*=C0{(^pAS8+O z)#*#MQhL4;j`xIAJ){K#L0+)R)c3&0spCUOY4?#MaO@Ha#S+pbmz;7%7E2b|TY~i4 z|9Vv_!okDaw+E$D^nUf%Uo!1NksaH%qo-n;8Ar+np2qzEq56hs00=@#9U#>#Wnh*v z9ud4qbF0$1a~BqFT!&eM{PFT486h2aCf)+KS5YqJiFvMU>FA<^$N!WT=C5M;{ny3) zVU_m8uL|$F!a5O1YZ$J)n`ssgaJQ zzoGdgbRyEE6iP7G$&Y>Q8GUcxHrCv=mof!H-E!eN5@w|c;T5r%FC(**$J!cDUbX4= z559v$Op(12Ls?wSy6K8(HKHE@p4>>;767k7ppmB;0F8(=390HKLw)9@mxHql#D4O^ zcd`B0FicazF0R3|s>o+nQ7RQ+t=>i?;9~!d2tNJ!1hi@ZKRcVE53(i4lTw620cJa% z5T0iXA<6)Xel)Zj1R8~e01*LT3fJ^UpZRuR;&O()`NNlh+630F8mNc*v3%n)I1vU1 z`|;4$WqkIFJFq(ufK|3|X*z?+TX(QaaVZy3l)PoxZqc@cKtTY@05Slw4HAt+;cW_& zwv>`-x@NrlA8%se`c0@x71AxCSTf<2Zs765-FW)ZkKj;O77<8H-^}8|g;|`tx`^p? z1xB%s@ZKf_xAiKXod|X*2FXgjTwj{!)7P%vhN7&&^9le=?(5&iM&VF|locY1)GC$Q z%*EGuFsL(?bHxd^AmL{4{6{;{6SH8gTt@bTG`@584(69i_;eeGQ85wBnqVhdkp9#m zVESQ%O0L2*+vpjP109dF^~<0A)B4Q#f4>b)D|fWEn%oz^2_UB^l=VCrmr}-tzp&jq z@wr}gDOYA^e>sP1GZ}oTEsD>7`HOh#ufC5T{@@xucVIgnYYJl0wK1Qq;QCw<(XaPG z9&3g7^9l59Q4reR2H`4*hYZhNyQl=jwS$Uo{Hw;QEB*cbb-p2XUJr!>TZAWfknP0( z_-}Ui6mm{rur-9C_J}kJ7K#fwJpR-$iq}5CPuhxUXpu;!Zft3`Em#m^) zeEcu^KI}*tc;$sDIkPW~uRgei&QGr3*w$ULKOUu*M*aa8$`wr87ECGd%4LCfRx)UM z;Sd5xVz~0ni^xuuV31DbzJ9qBTb z^73-Ayl%g?{UfdOnQZN`S6`fl0zxiRul>vAmBO{F1@HOK9_@JJ`=^zcXK!Os0o6PY zTr%Wg;(Nb(4#h+T&wk@&xjJ2=T7ldMxl2Yh($0IgDe)-h-9pxOb;VZm^W}@z0eg7p z1f4v2Qt-aMK5Kb-SppFAsa$IQz1%6zS+k~7x8=G=-o9Qj9&OoHUrev}jGTWLRfW(> z3N)R|x=T{VnapKU${!4noEQ-F+}lzbs(f`hSDoeGJ7YIr?6Xrx+GRFM*}(bg`7>`E zo;Y`QkRLslbcjgO(9lp|e0;po3upjH(UrlLX6-XZ82d_P`%1eVS!wm$FMConhZG*H zd4f!MZq5}fZ&BaZHB*xL?`7U*IeI)%{n1SUxXK5{Xg#Zjh9c#>U3j@bGY> zbZ!JE6+lo2f&_?zEiDHk3O!5$ogqc}z;@l)HP`)3uG#u9W6C$~?G2>nR@~<&Ql(4X z-3avd4mpWLLY_W-TH<#NDM=}@xjDT{LQ2VohK3rdXr$&yY@>>8IuMBr9FIm1>p!^p@8_xnEh-@V%a|Na_&2E^vgWHL#qRElD=vkU;P z0I1b!l$xA$z?j67Pb&LoXIVHLmdT?>@riGJ%awBDLL(z1Y;<%~;QulH2PQt`HnFnG Qod5s;07*qoM6N<$f=eUJlmGw# literal 0 HcmV?d00001 diff --git a/imgs/icons/20974.png b/imgs/icons/20974@1x.png similarity index 100% rename from imgs/icons/20974.png rename to imgs/icons/20974@1x.png diff --git a/imgs/icons/20974@2x.png b/imgs/icons/20974@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..820f20506d5041ce20bee960b7eb957a7f8fe8b2 GIT binary patch literal 2561 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 b{{QeFsf4A>RQuoM00000NkvXXu0mjfC{BBH literal 0 HcmV?d00001 diff --git a/imgs/icons/2101.png b/imgs/icons/2101@1x.png similarity index 100% rename from imgs/icons/2101.png rename to imgs/icons/2101@1x.png diff --git a/imgs/icons/2101@2x.png b/imgs/icons/2101@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c09d3e35c2f116a79110fa8b928e5081de682180 GIT binary patch literal 2119 zcmV-N2)Or&P)# zhL}HMnrdy*sRPxj)6p8D(TERFdB{^(gk9dSu*<%8@7{a*hnEgXbp|_`{?W-dbLQT2 z?)jbX_nq^dJ3ruS{GWg@#<)92j|xRaMZDT4<>lp^$zagR#q z%L8f>|1tjGkxx=&v)Q5xnaBj1d3=fII-jjrDh)>Fn%UG&D32Z5tUu&5hfV-|w%PmzzD8=lNKjUJsYs9hd|ASTX;S?TFY zZ_f}N=pVEWj10~l9v=3nN6Egh111ybdE1d#cWkzPcr2Le3;2=+7MNwwiaAfu5{uic zwkVHn0D`E&@Yo3SNk&8o9BMzWW+{PY@~uJ+O?P{cIa7p4ohZl#JM^K%g32_E4EHP3 z^s(N=C~fkM`}bWFLjUc7wOhBwUTxLSZ8u~Vj`sxT8>VS8q9eq(;)U^v&(EC}k&~ta z&q>(&#u*lwkW4nNUyhF2CJc2ALJV&peO88f89dVU;m}6N=o=7Ww))wKU9cJqY(`>2 zJkL=QayuN#WYNTAGSP+yw%9Y$vNgOWa=U(dO75zK27NGbIw@NihIR@p6v6&t_Omt* zPr98>;tUcr)VSbiz5&)%1=@8PNur(YSRVy*PZSXa1=aWL(CG}wm_5(mZRxD3z1Q+U z)QHDy1GcIOdjSA%9z&GHPM4-;8GgB@aMqkvPsL+dmKF-Y?zzDfIYc&eNyOet$ep$! zIr2dRJmx+QLze-&6{4pZqBc%?YPJqFO@woKI3!IMNx`D!Feao)LCGyT-Q)jo+MU0B zl*#!kHskd0r1V9(GwGa_`O!*PvKIgJ0@p(!+SF(#qjmilvBSoI{!ZYd31bb-E1n^jQ&N3|aG5z-ITL`eqe+2YRT->x%(EGcq8U%?NxU z0iDM!eEYfF)n{rf`2F!Jnz(j7I{JL*uWiJ*b<8_6hK=XUhzs>M)d``|p18Hec_cF< zDU?9Rx%#Gd+SJ&>%x$ez-R90kp-|A3n>}A{Z0U?|Y^-N~pH~=jd9MV6(lG!qn;}iQ zZ4W&#bIrcpF1K&jn6V(Ji#N_;Vz}TP?XfKl*7{0TFQFoQhHKZZho3w9cd88!qs6O= ziO20hLtPVk`-iGL9{Z~m700rEvG=u7Yww^TEhRzrdOVSwpphBF+x>%sW$I5yP>Cr3 zKL8Ja5bt9`dGZWH6&DqmGGrMvMn|}ftj{*^((c0L0|SHG510Phtpo%9=$LS=$7Pp4 z`{d%an3$N$A;0GZk%i8=8H?DzZ}%SpULWHr;re>|@RL11Vo(^pc=57sWOOu9Q53B# z%K=q=NKL>7z(ELrcb-L9w{~-6$@jmxrO)B`bkmOg9j8tlJ$LY}cjwnNHgC(w$Qa=W z*+2=Y^#%fU7K??XrY0mD*t=&#M~8W@rQ6DNSuCQ%>BPn@o0t$5E*<{OyCe_@9s+P3 zKo|fSfTHe#0>BQSn}C6UfHB5|pTGFs(aKwQPuEvhw!ioO#|K}1{mlakXhkp>j8zxV z05AxG5YC73fdx5pOP4K}pMB$IwX$g05*iT}rubw9Z~yLn3g9D-<4(%5tW#qd0H502 z0EPh!@*rRUI6?^YI{izOva*-=y-{-W)}2HCV5o&sx&VMeDFj6Up_D4JEF+SN5kKAe zB0KT%N%p-LHXV=2}S@$j^m87 zEK_wtxcXfH07@yxaU8EGiu+jE>pwho_QI;=PcKy(>YGS=M>lD1y?@^qRQ|>oYg5f8 z0`LMD0Wbhy2*9X%1P^b)B!UP4S^&{Hoi5Dl^)gA4Gyq}%1U0GjRn(mo*CZrgX%MenQTjMc xc?CiU7-Mwv=FJ2EDk>@_O!bv3{TlyM{0k*6yZoo(Esg*H002ovPDHLkV1mBF?SlXS literal 0 HcmV?d00001 diff --git a/imgs/icons/21025.png b/imgs/icons/21025@1x.png similarity index 100% rename from imgs/icons/21025.png rename to imgs/icons/21025@1x.png diff --git a/imgs/icons/21025@2x.png b/imgs/icons/21025@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c032184e3862f4ebafa84074f3618ffe048af066 GIT binary patch literal 2424 zcmV-;35WKHP)jeagd`LUu^lIF;v=?qz3V+^$Gbb@-PzflH=^DS$vap%Wv7$bW?0V)XX*(ts|EFCo1& zA>@LLnXjJg^h5|D0|4MJvE7$prv4V1aW`|6!CEL26jcQZ29?FEaZpf8hY`9xb$YCy zLZ}=6+XVc6KZOv&003`C-?_`F3z4@Y zy?^kg=buFAp;T{gC*9T6XPj@1^U6dBK?otTFSgHyvGJ?Ptoops0f^-aa+Q_Q%bXRW z3D4Vj6UOc4sJV>`N3WST1itm{>{$#L!j>lpHN*G6ZyNWXotAvel9tTOiho>XIJG>UNxL ztg5c*e>d>PecM{PUh@+|b)QjlF{q_m2jl}EdX5aUw2ON>AkrP70!%RubKbC7WRbC@ z^JZ=VyPZOwDiz{#C@)v8DDpKoOGwB0l4_EsK7Ce;$6l7_f|?SVIP%ni=qnq$5yFJ{ zm#nwsLof7FU8u{jPab_JI2Hd6pDrbJb-`T9i8`YzxW+^nH?0C=s5Z8w({`CqdW^?v zY>1{1uujct!K@WIR^5sA?)&5Pz=ubr$-f7m+aG@21F(a9F*?p6;P?BfPSlAHM_;I) zpNrfx`tiw$l8sAd3?oe0tQp#F79-NaR8%a4bCfHR||^J%6` z@KoJMA3w$i-h1c$$S3{rEj0+NyavDSrc2PcQeD!ksj zxr`I1#=>)nh;T>0*jv`s)rA+UaE=ppLMJ{*4l;qUz~&*tF`cVs5*({Cx~AF2rg`4R zGGhHF_$W z67moY@t3uxa~lC*e_vl04FJYD1kT3%`}42XNTTd5*GR}kGp2HESW>yXgsu|diKM>@FB{x!lT+4zTVgD3?7?IM`Kx$ zk7hOi!2YqZOO{b!2LN;fl$Ue1Qi;zwni@{otqdc?`BGX#qP=CM?sXA%AvEWl9uKXW zk4SaRRnVx*h9#SuXR^t^Ro-;}Pb9j5yj5iB1&_yJ60%}!Rdby=FcMJscrJ@E*uUuX zOY(qOWlcpL7w1z+-Bsn}3Pn}KN(mf%oQ;hO4TdPKS>0NXaBK4?@$t|LDpJ^TFXywB zx86E5mp&34t8|WJtkcHx)QuMwCu8$Q5SdcAb!7}YC_i) zd&XXzsZ~E%mFt}k+;g}2XHPs?>U-sd^f$I_N$>C3^Mu`Q{~({w3(GnoLg;L+4o9QEizoPk z(@`+tSAY1+M^?Hm>&0vujt_nWp;ITYq7=dAbfdcFizqRhfn!4hx|6dZyMv={yxLct zGzicP1BuxHzVp^?j;2)?ANinX&w!#R!s0cT6eENXAcV*|U+Vy6k+a`gv-zTGyJ>w^ z${A)8ZCtx~3)Iv%Q$RF|vssZMYfw}aU}?e>^JzLhJAp2#vlF8r!>(t4OCqyDn~Evz zwckH~gyy&+#^+Y#rR5la5JJ$_vaOQWQ8DY0~HJk|gFqf{_BhfJ&vmtVdXTrM{- zG(bv7Ln)VqOkxfKW20b^BT!Rag)Ev3;@m8>UAh*9lYDA)bmZ9f?c39YoZGK{S>uQh z03o+*bPVr&{H0nsdE0w?U)FQj&8)1if@p9CoZi*&*$fZKk%Q2(!UZmy0UhmYA)%Py zcv6SEAKnSi?0%|fX4$;kSK=3bKZW)U!Cwy!9)A=eR5*JS7u36Vc6QRE zqobawsi_VC*jn#^t!|EK%N7i)N+=A3CtM~_d9lV!Jj6P-n0000h+) zI76k>N~v@i87iRB5edpQ5=tZ?HLG{rPV1 z^FH7Az3=-0|HuCr^nK?u=A!0iaJc#ANrOQISv~4iB4Ym)b{E6#cJrXC4#!$b{%iM1|{s8RjF z1Y9l`M?@+B>>7RdZpsN8gQEXNtC2^7H$c_`2@MY$WK8E70x&$`)Q5)LzMX%cDvi8K z^i;s@cJmDl4a${lTu~;*7!eWsfNeD@W0v2xMa3t?2*aQ>o-ENCWry7+>N9C$P_L-- z_<*k3;#J3lW%_YrNLy=OCPbj~WW^JYu68_r@ZXWRtO71J;rZ56zb#0O8g>N(>6<Y7&ROvvwSibVNhfxYUfpNqJ$;*1k)81W#mCowyN23Q}K+ZJ)U>gt|@Q$ ztBWzN@q(HcgPZI+s0KB(m2K5n^YY*9NX6%OslgtlD4viU$>fMR5sH{|u}nT6j0=gB zPwGp=i%ZhOWlN)~A|;YaHrmzlT5i<0Bk37PNduine%Ca-y{?f+burf@dy_icaB~gR zpy>LfU-b44t{M;L##kz=Q$n(=mw0uCQXmvDBTN~+(U{cm_K1;V-iXQudU-AMn!HSb z9=wGtRrizoqaD3RnomT}xA$$`?|sX$37gn=U&kc`TrL+^PYvqf;rGhM2m2pBeYB-B zYRim`@d1@j75@-1i2 z_wC!$G<0%*clS5pu8#8g4nB1ja@@}+8l$(+_^ zgCk;8GcM$WI438@{MjL9OG!d$PN%cd%xMdYOEhH4m%_%>jJc6xea#(tC4~u1p+@X# z?;G@a{SO=y-FXevpkA!PC6}-s_39z!5_-<1mmlSn-k6gcouv;5vZOWsbEw^K=Ipvy zBswmeVAtnmI%9dc@?h!o(QI0(4Tl)FjD{=9N~`kUb-O<~-rC|_SUJDCtF1c{7>{Cj z(7#|T6t4rYfA{VN9)NNQfv<1=`^i5}5fg!uqMXKKCx^B)L&eW4-WxEL4- zEC#T@qj1jU6#xLIvB3CM&J*XWsk_*aCyWgFGh-x*hFY`i)SEP>Zqe#F~x@VepzLZ~u=|Sm6qmQ~Jhr`arASD%1 z7R^?@%^(OFIjdv=pr)pVO(L)fn^+?n5mv(~jZu@bkLgIOQ*&HGl}&oRDkynn^J}jg zdiw4SZTQMT#j`8q zEb*Z$DnJ*~LbZW{r|d>wZd^_zc{!UgNDzOdRPcRhNcXhRqvG1gkZQS~}3*yH=Zv z&OLSN6gF;oXYc;K@1NoKv>M)guyI3QXBQ2P4TF+d6q9}WeN(OY?2F@fFopv!ywEs` zi9~p5So}HzzBl^k^5(BvR}AP$WE`J-xDTH0v#KPeVYJ%GIir$# z&z*(UVwIQFT~B9vM(FVkTezy4IVd%&@CQXmyb+`Rkh=c<E#q)D zs7?ApzH@=5w|~R+_Yaa*BV*yhxv<&n5O}~J2q6;}B@R5db_H}KL$A|9 zlG3>SM|1JZ)i;nTr=izrwMH#W0Kjozmn}$$z`#In(9Tiz$iRnn>tAfR`Ig((eBgdn zNvL*iT3HcT+z;ODK>vsz;jV6osWfogQj7RneQ-%pwak zQ7>T7G3V3*cDk)YoqtUQOTd7X%;Am3$MEo7H=y;L7t`jy<*xt`}3 zE`J2yps}%0WegM>4xZom%;qQWS@qD-ZCihjl<4QCmX*O@X3e?xv^KETyj-H;L z`2cP$v*1>{NvMvb6hoGg$}vc(923(r0<$ZoSXQlAG}B_WQ#6%<#i+-U1vNNvx?S0} zbI+b`U;JeNodBe(CU60Q&1SPiGZ_ogN&$G9DF{>qMd4LdO{pr0fD#5^vl#g6=T((m zTTxb;4-Tx);~Q^n_a0BHXaX<*AP(RM|DMR@0*8s?(*V$2Xj%Zmg=)tRpb|jsg;oim z(CLKXyH0=Kzv0y}BtTUety{NFh(sbZClF9KH6K=pCVTxaMrOe-q>Bje00000NkvXX Hu0mjfH{QYQ literal 0 HcmV?d00001 diff --git a/imgs/icons/21027.png b/imgs/icons/21027@1x.png similarity index 100% rename from imgs/icons/21027.png rename to imgs/icons/21027@1x.png diff --git a/imgs/icons/21027@2x.png b/imgs/icons/21027@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..12866c58ef24642c93394565d92f9a5455b32713 GIT binary patch literal 2536 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2102.png b/imgs/icons/2102@1x.png similarity index 100% rename from imgs/icons/2102.png rename to imgs/icons/2102@1x.png diff --git a/imgs/icons/2102@2x.png b/imgs/icons/2102@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..263ab408eae253558e68b3b8d07c1ce4ce5ad8f6 GIT binary patch literal 2327 zcmV+y3F!8TP)45875?shGjI0AvwCK1$95bCXK@y{iC9VuElVOo*bGIq&`1SAsRT%L5mIFWv{hA! zRstlDS}G`%%1|kRwopv*QfvrL;&>UScI-G_X2$k-_Ib0snR%x_Y^QM)2O`=lJ?Xrs z_ucc|bIv^ra2bn;7!k3{!Tiq_b#$oC$*ryY|F3ZQq|2ukmgRCHvRwl9)va^BiHV34 zk#@SbO;Rn7j4g4$90C^&CL&_UWXeQ{o4LWfTX4Ab1OGl@ z985$+@;H?f@kCj-EUP~lpV=EcHT3%vFa50h-6sxSM?`3C*(6>L0o5Ac8T9&sl8!gV z7a~>JNLUF50(@xv46^Aw2a!&aGPMcf(dvf!-6Mbd0H1$0`q-_%LFb`&PRRr?_9ZQ` ziU8xB+S*zK0LtilZ>)=i7w=(Kqg|y|QBTh&?Cewk1yUfFWVqCN29sd-H8qyz#?LZS zndbTrAHL(oAB+45a>b9Z2&{Gi5%affBE}fTd%B(r4iD5tqcLSZyvRxfSj;AX zaa6CbM(z3<*xh!Ry&l2l_3+I*H)-W~@{u$vwJ^p?t$WVx%>b+!t*Z#MwzjfE?2z)# z^FOVbrBZWy-!bykd0D@I5EH>L3dA560YR+=*XeM_!TaG`Uk9z-hTs0RTlo2hpUA}< zuDx}tzw5?lx>0OvYZI{KiZv~1AQ9ld`|g!ESTi2ZC%_(h<&`31 zjB=be`L;Ep`L=!R%~#(`NZA}BiwRgw7StB9&@qNrpZf*Uk_3Muj!ZrQ z&U9b`Lm`t#F_TqzydW+owo4M=0PyzPOQ!ObyQIFJo@BY(iH059vHv^YhEA`8rObkC zMuMD|5lc(x9T-CY@c|6^$8gi$8}QQ0FW|oW?t+@DnB8P3x@=~XNtEwmjL|Jk9^IF4 z!5#qsajUnve#d4*EEy{e4*LEYFVO|u_c>7+AC*wdO0hUf6 zGI<)KLw_ENqbRc&AP8zf)M}JuCVx}MWc&Y;Jc)8nP0B=f9-=V#)XCzlD7*0caA3Kl>2 zI|CCFK9yRHuU&l&qElzFFg^y(fCIN5fWu)!XfBL+G>+++0FE9TL`QEQ>aJ=;I2ggy z>>L7tIm}GYBA?Hr!DV6JSm)dZ#z2=!L{Be=>BgCWgAe?RIW1-!|F{#jNEF_rgsnBz z5Q}+?^baBv31d^W2bER>^lA>D*M~r&fTYKYDyIk6Hg3b-Yj(ruaB*460=e9_7i&#* zAY!d+v~e7*OG0B)9i(ua3tWY0cmb)o1vK4$0QHSqVKf?HG8zCyfz9Crh@jJo80sIy ziKG3HWEobg8IL~x1Nh3F*xj_1%}a7AnaVgbiOelrR4eH0yeI(`I`?p(OBo4E&5^|b z7e!ssY_qBI*%U}EptfQ?;!^>n5-}K!DoB|u;+Z@u)Ie}&72&O`#`M@347InT^N(*K zych;!4Dnb$;q^e0GH_kB3u>(v@mLxqBFYyD$%1?bDOBfjxeT~S z|G@yD72t;edUku&%bt5%9+DZAPQ2ePWYSr9B59O)95`duqxa+(n5c!z>p~$G$Nc0B z92IUTr4qajJM3;Ja)lzsM#hjWmB0l7Wgd5_Z*bzVY&JgtAO~OyKny_foCUlOH3;S3&=+Cbd9Ds7|cHjN=4O@RDr84D(d>*RUA~d3ig4L|d z&c%2lorOZBg+x64*>pJR2apFaciqm7cX@o}-#R@!3<6Ki=V&ULOixKtu6x<^MF7(P zh5=-jahVHC6$hY*zy_m9e1db;4ZI`^sdQ0xxNMrLs!Hu#a3L@e3>^i~t^;P(8ci%E z%M(Q80hD&bHF5M`@FnMi{{SZE6{UP300jU5002ovPDHLkV1h8}N6r8M literal 0 HcmV?d00001 diff --git a/imgs/icons/21030.png b/imgs/icons/21030@1x.png similarity index 100% rename from imgs/icons/21030.png rename to imgs/icons/21030@1x.png diff --git a/imgs/icons/21030@2x.png b/imgs/icons/21030@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..441c0af472887628168f30c69f1a739aac03d2d3 GIT binary patch literal 2369 zcmV-H3BLA;P)As9N-6V`0WSqYDJ9FS^Hu`q{15_!5UT0!-s7JOMg_vb z9zuw|uC9))tgH+z_E`Yr0tf*h0C2IT{XR*8gz4)aAh|hN^*6;{37Aq!2qCnuf3U=8 zG=$ufllHXC?9Fi!u{wYKdh_Biqoa;h-r%&*?R5Tfcx3GS+UzwlyL~b>KsldB5kh8s z?j61$sjqzCep4ha0Q{i5OisCCJwD$=RaMp1KwwsHF^?4VUK>_WO5+J3=+XDx-J|cU zFle=NU!TA5&&df(=cLmeXzNfnMe~@oGxOfGthL!rh7GO)fLC65<;KBROaUR+{WvUQ zxGXE6lrn@6-SOkcEtH`pF1s~Nqt$wbhK4M=cI-I0u+22?b{F<^cL$HX_+lpjG+()r zZZPzhjSUaGZ^F36;RyiR(A=CJ@cB2C-@m;TsiRAfxzXs$K5R}-PIigK;$*AUTB_G-KYwV?p0Bhzo%+pFr$XOcXxP}= z-0C%%jNY?n&r05T_uX*Sf&G8`@Wb~Fd3kxBdrM1q0|2G;7SIs}3$68$>eEBd{r06t zBkL_K?f2IH{tpkPq@=8p%jFpWWB}Nfjw^>gQhl~{!7T|3X_iPNu}Wn{$y2{RdZ?nJ zf{nzvWf7`WDh2@JVkM3lw|o8uF_uR0c&x{2wT?KQP9C4nkKMO#U$*h8LAbv{ImqYp z6#{`kDi(`HLZL9x>2xMalM{mlTMKhqTU+B6!jKgSP)eD~%F2+R(oIp(C>$Rj@FXRP zR|A0EHYwV)abwvFFFbuLD@zK$-)}74xpS4>HE97L3WvjDuh;8zyWQgX`T1x7lfQfZ z`2mflzh)M{juFc$*xo#6XG^`KHR&Ssp*_ylJ)7FvRzANbJ`X-#aeoM)* z+LtznL?UZUOw5Ezr3$H3D%ic=lyBQE<&9ZJc~4eVb@KWAOuygXkL%-lS(~%=j$L$kkC5{@@qXFk78nC!loM> z%;?Z+3pMSRcl7l4bw679@W(tJFURlq3js_=FqXW5TGWCNK;JhN9vHk9madw{#Hf>A z>(vpH$&9;ZCJ`$V!ag;DHJQ1PXCyLe^||oYqJqRwV6OVaAKwz_`+5?lXJ;<$S1SJj zfaP+zn*)J>2Y_}V$t%1CwE)8~2>N^$yUk@0iQ`}%Hqg|xbQEkYMvOp+tn?II8)!%F zmb<}?ih*Ukm*EQ7@SR%=lusW$DBE@a_P6&dm3@3ZU%}(?a)QC23Bce2!i_2PJpwh? z-)#aQ914X2z+vdswn^jUaCw|GH8U3ii3rkoDQ>@Q3*hs?tnWsWJPnd0Ifg7cY$+_H zCZle5baeEcF)=ag{C@vbAP_JDa7FUI*uF=gmXI(2%CamdrE!!}-niM-6!OhN9xr8h z91awj8z4_e!i0SYC3lx#aKM0dIUC`3dJ!*?5LQUYfhT`eHaj~j@p`>l01f~_Ec5Pg zB7JJN+eHCNv&Y6Jil--?QyrHz@!~|8zPO}JFwk%G=HFE;n45Cb;^HzgZXLpu$Bo<# zd6=3DVsKypTMD*8o{&L?&HbVBJ-gTm>v$0%FYQjXU!8AR#UV zCX=3AWwkhP=r;!)!!vK}-MiPmxae+5!NQ>6s$12?G=MmDgBlO+ z-M`*yu||tU=}2FbL--sn7%l;aPV`A(zA9)9LjYH7~zv3i-Xyz4_Nam+w1xkalU?NP21(M(v|W zN=`?2hsOQxiIYR8-g;w`b;d&j97i1<-WGBzG~^x>B}GCFqr2=QOnc}nVIL&1df0bHWYoa zxvlHuiC5*x8OgFS%P498w%MUKO#KO{`3|Th%YlE-6bc0&Kq7$E07L+yYHDgY*L5Lh zOWK+=qut}8|avBx6n5FYM$n00000NkvXXu0mjf6kegR literal 0 HcmV?d00001 diff --git a/imgs/icons/21032.png b/imgs/icons/21032@1x.png similarity index 100% rename from imgs/icons/21032.png rename to imgs/icons/21032@1x.png diff --git a/imgs/icons/21032@2x.png b/imgs/icons/21032@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..519e877544d7ec12a6b22a55caa39ff95dccb489 GIT binary patch literal 2603 zcmV+`3e@$9P)E97GWF|hgOPW zW{Ny?gK7yD1sjj-2p% zKW?;IBi|dqgpoIQ?_Mbh;Zz zDK0K9v}x0(^q?p%NlZ?ilaiY13Hdx1WmzViTKz=ZrAwba^w2}pizroi@?1(fSQ^b20&D&H-r^Xju1itAmH&B z{X8!SZuby?SsIN-E-Ncb4~E0>@4fqOmqw$>R}@8~*XzU4sE+gdJqDFl6)|OJ}OE;)fTlE$8{5uj@ijpNiARr4;|Dbn(&^%gPR~Sn-Q= zL3|)23I_lvEX$6`vOGj7B^xU%b-6~PIXOP@*XR11clmt2KuJjnXS3PlNl92yQNfrh zP1@9~>Df6sd3(6*+^6h9h+gUF%1z2hE77KBZs_do%^C3o(}sdUma0^%eaewG4Vf7Oiula%j4<&=Hg`+fJB?kMuABh5v7zA6%~sMqKnAHncu3C_rXV#oO*P<|LLp0Z1Fh3U3%%-Mh<#_!WE;%=Exj#xS z3xbf5kdWYPY;24?`|K8d`Lbn?>tl`UBuR=L7#zCbaP;W_bYr|{Fn3rdl>jL(FQ~(S*V*7g4yL-W#y@*~!^cjnu{Sd2#u(UXdgz=x{hj ztE#GImy}Nbtwy7J!s#6QqOZH_4-Iv-W1=YP0r)3OewPD;ppsJB0Iz_$E z=4$`&@Uei$!&e_Xm?q1zZ`^x=@gDOX0F+V?LQq{@%^&sDT(+ zmV0jVoKDzeZZl5CYo1yx7ODB_pdh>YI{R8%+oVt!G#msY1fZ}gC~_Dk^E9MqWl@L2 z3B@}A4hpr~om`B$aAq{gG#55opC5l@^$G9So zjX(VM{;+3c;B3h2fyfI)2nnE|&>7>w$|01lT*+_@jj}2hfw5u2a5}{+NX7-rm%YCJ zg%_qHLwMZ@hJ=bM+`c> zr~+k%`+K<7FKU%=*`rGO^z_8S`|g|d{JM1?PegfA006M_z4!FfGE6g8J^5tIp?&)r z0N})l6Pb2jaPijKKBF&LAHmiKbk2&^Z(( z0?&1P^)(&riUk?!PyoPUxi!$H1aR!oA=R3-C(A6wccM>_b)Giv&*0TP1xJnnxgP-p?LXY zy5vufQ!yezuhm6*uXnO(({hYsgT1Zx_6r7mQrfJj91SBH>S9^4bKUQ^cWnIN0|tP6 zF93o3{QR!&?(Uc`>+9P9xBx_#R8+{Pw{43oTC$||a?|;)^!(ZL(#?lYwnbI?}6pdDQF0Y{Q%Rp0?{DF1jl*WNcYLk##OO(>_{}kor z7FF*U|8oAk`A?(jT(tdf$9jKX>Ir_C(RNlr?LQi4l6H$G=0gwRd3wVFJ2e6l16$tp%A zNaC1Fj1&a^WSJvPnf!5?>^wj*$rY=^W*f;dXPq_`x=Jce5wclloI?ma|xxCR5moIW1Sk}PZ8zHva;v|!zb>A zw;ofo{!W?vSU!mYN-1h;Y6u$2B>z=WMp>CMVZ4G;rskHe$$;Ng{sYFI4|+?}oZkQd N002ovPDHLkV1f+W6}|uf literal 0 HcmV?d00001 diff --git a/imgs/icons/2103.png b/imgs/icons/2103@1x.png similarity index 100% rename from imgs/icons/2103.png rename to imgs/icons/2103@1x.png diff --git a/imgs/icons/2103@2x.png b/imgs/icons/2103@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a975ebe1b2a9c6b7e14889f24d215398b57c9d71 GIT binary patch literal 1669 zcmV;027394P)nVEn7?>pc5&wtJV{+Epbs ztHqoD(?7rGI8oBUp;sXc0Pxhj1Ak?F*Rjl_KgzW z1w|z<>P-V_2tGJSFgnVkw?zVE$tcRAZJI*#?mJiR{pkyjE!p`S;H(X7$tm6;s4n$%7>zcvHI?^W2a%b za{z4zoI^mVmV{8nWV1w)#1#xfRCn&ivoF1{*Rt$KzW?-7MAT=!iNBrqt}N?COB88q zIK*|ggtTx_RaR1qbc)eW&lU86yRE{jZ=o1U1H~zT=78cdpdSHfwe0K5a1(f;u+cXy z_x+`XfrKOwP|Ne$Kgy)eZs&8K`6TJ?h{G>)=EWP6*7eb=-hmz4xWnHZ^4(a;J$15J zOauWh3&<`Y5kQ>Z!1%x!dP=lrSH=$`(5RiByj+M1h|RYj7N zpvJo%b*8f!`M&%2a<5;!O50;CiR|j?qZz~gfda@G0B(b#SAP|#DvQp|(FICf-}dcU zTer^7i>yC=_8%+r7cbKQ$FY&gX@5W!Sy!}4Hg%IP@&aLc0hce05QS0J(xg3b&ajVn z$?^=fZH}vqnyaY=^;j{y{WimuE3_@0c5v;Qw2zbjm@^CSJ0QLbQ;WvcWqrmhmP+|m zGo#9~Hgx0(pQuRW=r4Y6k40CMt=&QCZdH|6D8vmd|bW;Tcc*J7jyr%i$ zQljvjd1L5b9({TylSSOG6im~URF1LEa5&hxEvAg;R;7aNu#Y4Y-n?!I@69hAomyNu z;R1>U=uJTSO~9xEW{n77oj|#XdLSTc2Jas32>e*LtS?;3Sg( z&!?%1rbWZzcsBRDbguBLZGbQdxDK$i8(91^;CMBaux?^tV^8-0P|Yw(z$*Q2$^KcU zXs2YKB#R)#pz!GeX(mA>*19bg2(?DV%aaQya(dx}0)$e4unM3AxPt)o>QusY0(CZu zbpim~Yk=G`yEL&(>5&M7tq}0C#Je6yNtFaX9t}yMrr_VFU3S_9?_U9YI-t1abzc~4 za30utH!PFn0q`S$w2QIaenP(X#V_A`{8Rm(z{JQ1o_%?k<*eeVDG#r<0@ML?2QV10 z(ge(Q0@*W_Dp)(vy33GMon|U3007$suykvye;D}f{kH3W?N6rC@?6fkxN zC&-rTT0S7(TuwNv3n-if+5+y3g#lva+nOI&`S-)!9oB+W5m{^e zFdz(9Ku>OfR<|v|w{%#Ou1+wr*=_SZq2h4c_k>%rYE^3A*X#e^{;TcZEa%lvZO@dB P00000NkvXXu0mjfNwz!o literal 0 HcmV?d00001 diff --git a/imgs/icons/21047.png b/imgs/icons/21047@1x.png similarity index 100% rename from imgs/icons/21047.png rename to imgs/icons/21047@1x.png diff --git a/imgs/icons/21047@2x.png b/imgs/icons/21047@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b63f4762574e3288f1c01b053be1b8046372017e GIT binary patch literal 2645 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 D4%qHa literal 0 HcmV?d00001 diff --git a/imgs/icons/21048.png b/imgs/icons/21048@1x.png similarity index 100% rename from imgs/icons/21048.png rename to imgs/icons/21048@1x.png diff --git a/imgs/icons/21048@2x.png b/imgs/icons/21048@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5378b211e4dda082c3c6d2fe6f20bf939ce0af25 GIT binary patch literal 2332 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 Hu0mjfQS_p| literal 0 HcmV?d00001 diff --git a/imgs/icons/2105.png b/imgs/icons/2105@1x.png similarity index 100% rename from imgs/icons/2105.png rename to imgs/icons/2105@1x.png diff --git a/imgs/icons/2105@2x.png b/imgs/icons/2105@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c7efd5230ebb621d92ce0a1efecbe7fc1790494d GIT binary patch literal 2901 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21060.png b/imgs/icons/21060@1x.png similarity index 100% rename from imgs/icons/21060.png rename to imgs/icons/21060@1x.png diff --git a/imgs/icons/21060@2x.png b/imgs/icons/21060@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..80caaa94a92923a4094395a695e03bbd02073255 GIT binary patch literal 2427 zcmV->3552EP)Nkl&f@7#O2xi>G8kOy!Pjer%Ipa@Y2D)?YJ9SJ%Wb!2SC2OS)B`kJCM?bJt0 zTc<5{#1?1NwzsVcN=0P~3TXrqkVgm!n`Vj_F(E6m z8B1lCOrKtR;8Lylk^*BA2BlyyC=o#r5ho(v+qQRJcl(~dSsD9%MUfY$(-|&HvS`|O zkUj9=6SQ;JUKAD;xOJJHZEkK>#&dlYfzJ+MFc_3pu3X7;5;_3T-QBI*>7Hwei*Ki$ z%sp;BPfw?_fPvSve5t6aJU1_CjHEGtfXM<>%&ReIyk+hCd| zic1PHIub#`Orh@jTIiYva^*3{wz)y%^%!|CZrHG48G!8A;U#fi0>NNVYG`P10IKm9 zcyAvX8U-{>NP>7c5~Yr=KH9r?zjW}>Q7l|A58iw)qVYI1RmJo`HLks84&45HSc2os z>u*9*WGY^{!g1-^4fn39f0&3i3UOg8C=du}mSs`-RprX>e)NMzzb}8*U??o!eRn52 z(0mxNL=q*%g{Zk=21?6HaQ5sVDl5uxUG3GVu9^Z9KL0DjFK@plsI0 z@Nftf<)!fXyr`W!2h##m0ZlxmW!qg%^x?lJ`;;kJ}^7A1K4OTn>tsoz6j~m9- zvyll@W8JzRqowH(o_TsbZn^me7>15a#^SoJGRNU(j-2SKyYtR9T|#VNM9=VX0uq2c z00lBIg%qXIvMleGm!DsIL*4w@R@N4tk|K(JauA2^T8rY_mcl)?68^bYLR6IFP)|SJ zeD7aqZ8?fX3u|%H(mKqWTZ2S04G0cNl8}fec=6;C7LLUB?%(<8t!tioDhWUkksyqX zV;O)Oz+_dGs%%>n&zw1R+AEu$eWI|yXULicnMpMI-Yyt{sThL5+q)WZ{8&4N2Zu1F zv>12XwiF8%%!49Hh{fYjRTb$>7W?*pibNub`o-5fWo4yO+sV#9)ZcvfL%FW_Y*tGE zGypyTWrkr?r&1~Rx<~F?_So9h4VKNhVd#vx-7r)Y+uwN~&pf>m-}>e)xZ~D(l$I7l zRb<2xNk9n5vW))z0US7Z1VRYRnKcuY6=g!#46bS_28V|4TezfQ?Cvn3Bb1yKg|aM9 zA)*S)vb?Wue*WP_3u|jqsjOfCNsoL&%|x$07wIf*tQ)aqEW_J;<;bE^!C7+ z0h1u$2rdMGY&Hu<45OoAWHK43ssdt!;m|1F+V%mWu{bUZR6{p3gdS%wPQ4y{XS?7I*_JJA%Yxt>i~v>BU|BYL z`_AI6Z6D&;@spTUa~UMYkVxbt3bpY!7bL;+cUi5!(9)qd-7*{0)c>b zzI`o^TLGY4*Okh2+VXGN{QTMl^XFcXNF;^haO&wfjaWQ^q2W=es)Dl8BBW9oIF19x z2oS)zp%AJn%6MRUC1Z@x+S)d_@i$wZJ$j<+eO=cR>2x}DJ_3|G4{iV@k|b3LAxdUn zIb-H;fAy1f#l^*WCp-Jla_|UwTy7K=`jF0KATb8N--mcSfn*{nd_J$xHI+sd_Wlh3ILS5T&}8AGUb2erJp{yXwm#R@wmy;nG9njanB?dIkrt^B7u~d#K5`1 z_~BzG+TQ)=?v`UGdU^n4Wm(P$VGlYEP6Id%AOyg=*qv>n6-AOHRWT+eSCp4k|LNuD z9{2lvUd}lbS%zsQapv?{v*T2E@BWsf9gU5LPMjSIg#b9REL)uOQO@}QfO9$EIDibs zZ@d=?hOu3d51`cTR;v?ouPh-oeuD*c~fD`~n z)0C8L^QhxE5db3qh5*Dc*6J1jF<#}xf-u$<27n>}<&3d%&UwMIrFFBq`}-s9?cE~) zvH-X&vn&zfob!m|AOawo15MFY-1JyC}oV5aLy$FlAqCHz1y7guwfXgWm(*^EOP?bc$N0WK)+bs trG}IvtmGcTn4C@y(8hn|y(s9!_zxu%dLY9j9q|AF002ovPDHLkV1iPOc2xiX literal 0 HcmV?d00001 diff --git a/imgs/icons/21061.png b/imgs/icons/21061@1x.png similarity index 100% rename from imgs/icons/21061.png rename to imgs/icons/21061@1x.png diff --git a/imgs/icons/21061@2x.png b/imgs/icons/21061@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c89a1b72aedb1c665d76cc161c1d6cdda1356c9f GIT binary patch literal 2388 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21064.png b/imgs/icons/21064@1x.png similarity index 100% rename from imgs/icons/21064.png rename to imgs/icons/21064@1x.png diff --git a/imgs/icons/21064@2x.png b/imgs/icons/21064@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c602834d06a6212edeb48656ea22e1d9958a4f0e GIT binary patch literal 2115 zcmV-J2)y@+P)6k1yfbXxkL&zZLKzH{%Kd!Bpyq34zXi>aUZ!b<+x`>gD< z*Z-V#&RYKspV-H2;zM(D9{>5)UWl0s@rm<{Gr@=E7eZua5dERKnX$&SHj}wi<`952 z3oHX7d*6p?1+RQ`bRo`dE~G>Yff*ks%L%l`)*2%KD-UetP^D7IZZsM*Nwr8^Xd3j4 zu@zJUX^wL~0oZ`b;dJ=EKi+KW<$cADf)hLSMq=p%X)L7j^JTV=jSWhH-MZZdl00sT z)LCY9mKB}E?0IK&YAT{xgmfCh8AMV6`1uZA)x)0%2_L3zme$IH~wVr zx1g34AP&xwh=8>9k`ym&T=V$d7d?2_qeBnWYQxh73xeQmnj~QR z;D#aY{Dsz>PCar@Iu#VHHldZPjq7UTd)m0JF}7!n?F*wkWrVGau^ppr-(<3AGzAlz zf=Q%jGUXZV`Ub}{UYldI6j`^O+6M_~CjR-#B6;1w+z4RqORE&<9} zM#9-NBnnXaESo}_rX_@szAMGnH*4nb(Hh-F!&D$Bg(-)}>i9*CbVGW2Vr*}UPc2=@ zKc0P?&aMu+I}4aNV(-9lmh^XV^yn}SF-sSCV2lh?0E$}E1RNl0eFHY&X^o$0q%=^Q zPH~iAsFreO60FIDAW5*DkV3&@*Sll%U)0U&HJ9N!7Oty!;qPxzEj#Q#FvR|YXNaSi zr59BY_+UV1#s-SUU~&RV0m|egw86Ecpc!j!yt;?+(~1*Ar502LmX!qBV_)zTSZT_2mnZ1N@)oxu@sh))J=hdr(^oM6ltc(Qp5OU#AGNa zmQ(7%B&AA)v9UVMDC3evv&ak>BhW^WW?)$^Zy%~LM`#?!a%@{F(B~?vVn%})ucu)U z2aT!0BVPLzD`_wHa(M75Dgu1pLhF?ES9MWpZ>QMaPPuC~mQ&z!>#JC$3c>gULMnvN zq;Z{Q*r4aql}t{*CF*0tL^3;>B)aapWO-bp0F6?aWzu-Vs>RjPl{YkcdOJGYzV)Kq zJiu*Vy`Exa0paLgYU5{MEWwBvXb@B3(1}5oE$^Z4;<-44q-lV0dhxoJH^knGxfYWz2ky>R-vb(b%?{jyCI%ZnJT zHQ2Ik2es43^s-)+_4VpB)lhFH^mSe0yt98m8Y_-VWk<);5lIlpJ^PRI+U^l&!{#rE z*_WsNdgz>u0Y2{PIn6s@CFKEoe;E zqT`!y+&H-Di#OX_o;$!;fVpPHLTkyQwgfopI85X*Q-CTkw^VYL09Snb&Kth|i@P>v z0)~~8FLsr!onKx**UXz;cnP=&jy<^Yve3L+~JP1kk9ayq#7cYl0mw}F3Z zI5<+z;+^{@ZY+Cp4#;WGvrdG5@7S8vD=zu&_wJtc-VoxtwR5x4=GflpFn%LRvazd| z_4dB_{I=>VyN8}pQtn8!9@xHja_i-bxpP*VS~ONmU(b8NIXz$lPFKZk^IWm!#7G!f z7L!>|PlRD||GMX{2c8-!cw+Lp6|)zQ)|2hq{yp+*%VKtaO_!J@8gy;qk4W+DoR+^qZJk;DV9c24lTZ(3+r}6-L2C^A} z|4S3LAkPEA2L-9&tR^nFE>RRQ3DDLCwHgX21Jn7_!TSnWe+2&TbAbTp=|P@4^#RS# tLg3i@m#y;tzs?1a%kq|eEGMH+>^~tExrJtA&u{<$002ovPDHLkV1jjh6qNt~ literal 0 HcmV?d00001 diff --git a/imgs/icons/21065.png b/imgs/icons/21065@1x.png similarity index 100% rename from imgs/icons/21065.png rename to imgs/icons/21065@1x.png diff --git a/imgs/icons/21065@2x.png b/imgs/icons/21065@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0145eb4b60035ffc4a037efc7e6dcbdb111eb416 GIT binary patch literal 2094 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21074.png b/imgs/icons/21074@1x.png similarity index 100% rename from imgs/icons/21074.png rename to imgs/icons/21074@1x.png diff --git a/imgs/icons/21074@2x.png b/imgs/icons/21074@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bd450c94aaa0cd8814b8ebb771c1f92353d23f73 GIT binary patch literal 2183 zcmV;22zd92P)W zjWnbA?woUvzH{dT{?|eN-9pa!m0Cgw|IP)>6Ou)Bo)bu+HCG z0)aqDE|;T{Bq^1Zl_3B!AtbSAoe04AHdn~ij~t4kl-q1Jw+<8-*{o$^!dLUoAK!W5 z!sv)?{rdH$ySLtJUDMbo0f4USX#f#s7*WwA^inGB2k_;>CR$rT+uHE$jx5;6Ilo6y z6#4x5a~V}t4bFLNZf-99{$KyXf9l;~EOl4$22VYI^x3Vy+kL-DK&z2P{8<;>Tz0u=Ie}DaLma?)k9#1BWp6c5DteB4u?oQ z9uss;gQn@mlwYLA-wu(D<&o`VR&!=qhsgc_sfXK6EGM@Hlqrc zXJ>WY&;?!REdV+j8XB&4!0YvL02uR)yHe?N-l-E`@y%QA1_Og6h&VTR29*^RIC`uL zx|W08o{tkJ`yuRX2$~${RFF4uE5Of9D?!`C?Pn}e+E{I8MDy{ z3@wY&l46)86Nr|@9aR>n@eG7~in~iKICL%svzEPhtrXCC2LM9QxO%nUX0y_YstO!G zew+`V8A4y*2@nb#K70snw;PRX*TU=dV%3V}NW|lCI2>Sx0fQOH<#H%yX>4_yQ0>Tr z$&!zdr3Ch>QrN2948V%=e;#JyLI6Ynq^qlofOD){ciZ0k?|X3bY&3j_k;xTs!dN=1 zll||#PwML2NF-IPyJa;#?l^)iKmHMBrl+B*Dw0YH90VLdiTh@J<*bEps{mULxCBPZ zEK!(ZlN%|ecZC?601yOl9zaqAz&CB$r1y^{T(7_WySpOcOa7adHTrhG@VsX_5^)6O z03rcDDyu5^-#+|=sHy_Vl!rs|M-W5-j2TF$(;%F|ZZAM{%S-4uydS=k1DKng!)zjr zXi@>V#zac(ImX-oQUDA95clodS0YK|g=2?ad$_y1??#duLU+g86R@or-nMZ<9Pweq=jS#@9weK< zoiLGjB0H1Q^{mNcN@|*R5kMLML`98n67{@ane_qUFuu^Enw`sulDhEN*}9%D`$Gjz zo8RkwWbF1I-d@}CY)k!xkrBa`?|`PigQYh&U`=Bq=4Sh#stGLdtl^GA7Z*%PUhm1$ z!a@d{-A3}P9`q07W`eVWx~63!3*=W$!lzqWb~J5hd^R}Qw{dLvGeMREYG5W`n2w2( zsw9zA6vb*5$M4y8@AS(ry;A6|tzPEy`K*-Aps()(%+8*Hmdn?cuX=`O)yrbXhrcE^ zo0-ItR;05|t|*)pI;=vmt8z-nbG^lM_WQki_ofLUoGcu}0BW9mdgt?N*LZ$rhFo%@ z_hXElpHKsH79p7uq+}wEteVnvj-l=M-1BoG+Tb7{_5hJSBWkob20lC1)gKB4WB}@X3Pu3T(!ku?+ z#6+k9BNqapa3FfpADHak|K5A20LTC?yIii+&Ye3myLa!_Ilqo!nsZJBLAa8dr&@lo zq2treKa7w2<-y^h@i*Vv_owX-J@hz$W!asc^@ z3n-{Z7cf1^;!z|KmHsKLEjsI9w)X#1a4i002ov JPDHLkV1fkvAt3+& literal 0 HcmV?d00001 diff --git a/imgs/icons/21075.png b/imgs/icons/21075@1x.png similarity index 100% rename from imgs/icons/21075.png rename to imgs/icons/21075@1x.png diff --git a/imgs/icons/21075@2x.png b/imgs/icons/21075@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fa2cb2535020768beed69c1801b9e18ed11b2396 GIT binary patch literal 2277 zcmVa8JY<6}wX>DyqR#q0Rsi{!`(65u+f5pCR1_%I} zpP!$!?)yJ@T%TYzE0Uxr(B#$&=MS7bd2)#B<8 zFZ_eiXn^1AM>rC}tXpzt19)Ql_U!~;rxXr{gQ1i%00^a&0ANp_J^#LI!lQIw>65N> z_ePtVE+_{M9Tirrc(5ey!`bb27GEI4H{0;p-%v_fLWp{y@xr1BueXH~MIV)ADhL9J zMx$Da&Bna<-l-S&?f=V`>m*fWS-{r%O1kSAY$`Q^f>tZX>(&RZwmudhGva5$KnnwlGuxDf$j zx7(Rbn>LXZD^^r4yW_Tf+qP~?sXcP2%4|;T^-T%)>P!{@V2kE2ge@%{^XBF-fMLXHK7iL5;AtHGqe6&2vMx)ZqAauKuU7N9WQjG}@( zBpS`gNKc1z#Hke(&es|}=Q)ebwm4BSFE*RazY#^T-sf|_!~x)wtd_@1OBbZttY$UA zpeH(xB>-5K%Lf^f3$$xbcmGLM$vPg3(~W`Ylf(IW-NVV`B(L6sXa3 zFoGM!*%tKl^ulVhF*d7(0YH^li~^u0Q(^)`m}-y5eT4%6IVuYtug_|;C6j1WhQ~8Z z1Azd}eeeMp80^!Y-}`5Ber$^PNBWSUV=*-8g3sB9oT5@hrh*vrU4?<6kbUFmbatbC zVhA}_BSxG~nwLM9}c%G*$%MwjfiK;3wy`Cplt5xFw#9A+148Qtn0+*4I38!-y zS6wcEQUnD*3_3mIo{C`Ynjg|P4!B96w+(uu5!d`)z-U2H$wD+8e;rmW1VyFbWDzAr z#mFmO4CPEcsjq(*OPAixq^6}op&G(r5t^*qTC0kK4FAu$qCt*rV zL|$j^lY*mUOPs(c_XNy}|)tqN3R7 z_j)(DuU$(LMUe+U3|6+;2<`l+ooQ`3d-%>}O9RFPW0@3-?)JHTmnN=Fr~ovc=VK<5 z$t6irl!+hw3_%cbL{YQ>NHX$#vLs34BTi@2gOybe^E@AM4i7%};`4h*?csw298X>2 zW0-U~5%PNAbdDe;Efb?d186z@4%60j`oxl37k;pN&z?sP9XaguxqVknCQ~xYvKatU zWm!%M1OjsaBu!t%YWz}SSeAuKNH{k)uWZelwWXDn-?0#udGVR2fBlkcd~Elrf4uuB zRpj(LmMx_nU6+aL^eHd|C@Wn+bumF18NBjlMMXvLv%B{EuH{0TiQ^KoGP1H(d)@9s zs;bKPv^jBcJi^8A<{$tU0G+{LV8h|Cu&}IbT}X`NzEgh^2M->!=I7-<_1MNuUC-{U zxwdL$RmP&lw^Fai3xB{5IU1#n4UOdDhaU=Cwr*K4I570xAN_cv;PZObk_DxSnVH$& z32x~E%c7j1KFz!^JnS54Yilp)>FZ`0Fp#3+DFB{eFv!mEBQyMOIH=xi zB)fi$QYtDcXl-q6e|uZoPS^NI_S9r3sMF~pRHvSb1J0a!ZaN)*)t8a(y5K54EzoJ5 zzpybk-*Q8X+3j{(US3WB5G-HL#z}lBZ~*uh69XF^kerWC00000NkvXXu0mjfl<`&d literal 0 HcmV?d00001 diff --git a/imgs/icons/21078.png b/imgs/icons/21078@1x.png similarity index 100% rename from imgs/icons/21078.png rename to imgs/icons/21078@1x.png diff --git a/imgs/icons/21078@2x.png b/imgs/icons/21078@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..17f5ec26c758bbb8edaee82f3f03e0d0a66dd8e6 GIT binary patch literal 2807 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 JPDHLkV1njWgG2xT literal 0 HcmV?d00001 diff --git a/imgs/icons/21084.png b/imgs/icons/21084@1x.png similarity index 100% rename from imgs/icons/21084.png rename to imgs/icons/21084@1x.png diff --git a/imgs/icons/21084@2x.png b/imgs/icons/21084@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..329934ae91a40ad2090b67fce8ceda9ff75ea1fc GIT binary patch literal 2415 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21095.png b/imgs/icons/21095@1x.png similarity index 100% rename from imgs/icons/21095.png rename to imgs/icons/21095@1x.png diff --git a/imgs/icons/21095@2x.png b/imgs/icons/21095@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7af1f7907b1d7a3614259125bf37b9414e97df53 GIT binary patch literal 2736 zcmV;h3QzTkP){%_PU-}khNdr6Xcd}zIr9_JkXh?DdQ zl>hEeI-?_63=_t% z>%H-v6d1t~^N%#VY!YA)N~%n}a!LTe6s9nOBF9vlz~G=jcI+IDc;^5@kkM?G3=IvD z^yDN-19Yet^ySrtq$VjRs5 zf*AV5?XmDx|CXwFX`T3zBs9YOl{F_i|J<7LB#hil8Hoh1c5%i=RrR7KaagXHh9J7Uzy1dA2={6<#Hv=pE`<2Gzu;ls?{2T zzyaY7He}-H>gn||$>dY<#rzL%E<84QP{|P44eH@c(iy^FK*z?;hvM}Bk3K5FvO-Jo zyn%|PpFHxCcGdTOac9Gq?)=ps4yb>5;Z+R2dw{u>MKXBhcG55{G>Y?}LV!?$x%r$} zI5RIAt4mUUZyUNdbgwB5@7`}zANkc^@~heHw_hh!>J>cq+!TDr#=@CJaC-&Ohzj4ekxCfI zbhhF2+!9_sHqCU6OPe>QSvsJ1f3yDVo~N}q?+eAN7d`l-PXPXUfKfpghwfLIrN-xf zd7u35y|dph7pu2^^PUHTD=yh4edY5XA&)%rIA+&m2+u@r@(?NuvoKoP!H5j*)&NyQ zB&xx697uW!rQ#~5!l(V+DQ9!7u=DF(^Dpf66P}jR>}$vN2LM3NQw&c~7D}mWKm3oN z{pW{1zG{nG@4Dme;9VCF$p8L@o5)Xo@^f&b6XE(vyz;~@xVcvmhl{RE9MQnlXX7UcIm6+l&9+ffW0*-E8lv=({B9S zb-9x#dL~~wE^hhE2sI1yICT6B%%xK}y!UrVY7|;BiHI6PEEPx7vLFR60zW`1Vj$Js z1ulh9t2$709TW^f5D3dBSmMgf$Tj7n=#<7sM(72A(JYZ?W=ZL`i2w>oe2?Z2R9iHS@s^#wLqJ0sv>F$O5suo??}c-Pz`tE1Q;bOT;XdNb5D1 zA)ZRYGKRfE(id|I9#8}wjU^a zCv7P^Jj^dB0HD`4xJkfj)oQ?k0NnR5`QkBjv?`E7GD4aP!fZUeYd6j;EW@r=(RWcF zZu;mo$QK*PEiNKN2)N(?7w`m7Dwg2-J`|mRLcsUjhQkQ|^O_xMOihv3D3BEsgK2uv z;&e5z8u`{_77Nhij{g&YDdGC1UVc+Vzm+O{2DyajG+230)@v*93M1hHfbR6T~4RD!SMR)`w7d&KH| z-e$z#yS;3k%ZBFxCU*{sQ?INtKe54greA!hZkqL;?slokDA)A}4m^Jt_uTsr&Has8y=)T^miS23=E8 zES1rcZigI_;RQfAtU{J3S0s?S)g*4iIhHo(zFV?QN0QZ74=>#{L&%uGdQoy-0Ro7L z;bGo6knuM34%E!)BhOc7Pu{<_vQlE6CF#0~5G7pGHBM+qB-?u+N76{7JE16HA;~I_ z7#i2Znh*kXwPF+7tUVnqP5yVmG6Tlt#UI}=Fqh4a;kEYqf@EEV;oG*558wa9)?%r$ zHPzP9hRnb%Ojh2fsv$L`hQPRhEXfF%01G^D!ND2e2Ml(@f$ug?%JtH3C3E&@l_{Vy zJ@xR-@0z?UbA(|G;%!SZ02mzw%}$MwnU1=A+piCAvl_K6h6JLw_H^@D%Vn~rZy_|) z5pW)(5(Vc1p6A=lXGOTpIW*ReiTd)48~Cmxsr43FIezeqmn;JNd3FpKTQ5Z3761Um zDCqbU$Vl=s`kvoS_tl%hHpvg78uf)Nt6^D>>Jkm901$8v&Vqn7ZO8W=%Lio$sdZJO zv)2tqW*_)t(b^+~Gy=S?7(Hk5o81F+4E(PwNdUk`qlWXGNH?a;waP~po q(9Vsomso!|hBeyX^T)OT00008HV3;=Cb$o?t0huuD!OCI&OSR>?Ab3q)lj1OF@VtXzB zMw%I&nfE#Gch1cB0sn8oISA(<93Y%?!Z{}ifS$Ym(J=BKUvg1=oPmUM00Rk<>`IZy z#1hG(jsn0!s7wGLn)C4q0I`J`{=jEev+YTsv$K=`XmF76PY%FIA~8U^y1Ga{{~C=~ z9aOP06b=YbAXFS~;$bQU04d~V=HfhuX4=k}kBL>wu5)JD#^7p({v8a2fB;uyxgtO! zk)Y><+vTW`tz<u2I7lvqo4J zELU!`{hL&ZCzDBrD?nTVKnTEon4kv%s)cfbV9267rpg-ex)vvo(ZjF4%vxKWQukdC z)_UXX{90CWh#nETs_E6GGv&&W$Cr5~W4PPe1Xb#>Et6>mYy+{F8GJ3z`jbg^xf7QF zBoYa_4WP5Fv!YnCWWT%Fr50!8gL|H5Uw+`>`1QAcZA;GbZatYPwH+NhS*I))Jj^oT zbP&}Sb}jk5p(&XQudk%`zTrv#Jk8vjs403hmm+JO?K$Jc^sqfR2zIfic=1J7Dn-V& zGzg)RB?oF+d}rQCLT>C1J@#VyZi{*D+V}SHmelcKd^kM^HNOaND2P&_08LXJoa;f4 zWL>?wt@ZQu(N#0*nkSwiAMSiUfHP3#HDovq4uErjU+ltp2RH{Ae(Fhav@qmsj>mn+ zcKwR1|ITkVY}<0@;Lz}~z8!mxpp-qsYik5n-_lB&*LIULsWHIPAd3=;9e~mP;m}AjuBwDN7o_pCO7rAf|K!PTJk#abqz5XN5JtExt z=u5Y3>c07j-#+!%z`g^c_I>x?L*>di8Jkr=;YCTQVCnRSaEdy>EP$J6Z*Ktv2_wTP zwwzt!ElmL-6!Z_pF!?}SPG`?Z{>nPI)NO-@>~k)hPr*}9EePI*tDMFC&*FxM{?NO= z`{rN&{?C8&?;o17fBK_u3!1uwy}OPfue)*cjjQ06BQW}+kYxe+Vh;23i#R$u4pXnd zwn3X3BRHBmWp!UoHz>VyAPm{&!Z+% zkE`PA@ZQk-@VjNG28W_ESls)K@dfXzg4?M?I=2$w5CDJzz{IyYi8B8pY5dvOLn3wE z`O07a!rQvL$xS!(;J}_eI5skb{jVR!wYS{?n{&*j#?Tz~qb}e;txv+*t5;!dPap32 z%00O6-a9dVbR1=!!|!#1fD46^2GtZcA2?Cp`?*NkIygIfKJ^p;y0Tp~pM1^iy6wJ> z#mNskre`w5UmK>6Kl(F_PD~-QQpAn7+yb8y=vmi}%)$cpzjg>NmyGqj>v7YTjks}3 z9|VD7$8$*>o1DX~pS~7^+fY>vnx->|GF`~gYwFfyIUHenF8v|^c)bhc>0#IjSD+)4 znIqYiJc}tsx^Ck}Or?&)G>VXAf|Z3diiJF`yQT++hbQsk?gOYO3RYGMs2V0LT|?ul zc0?N+F*!Mfe7*?VG~o4lxhP4{nHV4X00I!TE^%OSF-MvKmdlrexs_!Yy3L&~f(<=h zEX++K9F3z;EJIgHC=^Plz>m(gZLlqdbUKU1#wJ9YTF|p`Ga4Ejkx6H;QYfRWRKURj z#$Z_-md)hJ6Og9WQv@GvLka+;Qiy*BV7gi~$|Z%1l#}$Sd7PO#frfe?GN+dj4!AHe zIg4%AuSZ|+CNR;7)mO!F>u0wiQXht)8xUm)bF;G$sDNs<3bkqi00c>ZX;issS<1VU zaOkJ4^WPs40CKq;zhNWjSbBcWK^Sp5DNdhW!p!kmTpjmfYOV-#wg^cUuxt0L7$2Pg z2S;m53|sqJaf)!H13oM*Ekji_M4MvB=T<-^7n~j+s3g-|CPQS2PfukbOYuCr1fZ)c zWiRF0L}l*CsO4Q{!-Wx&d35em2vi#MaUa}5GQ1;6{# zKe1A=(GZQIS~XDL&;Vu|P?QSXHML-z@M@(3RjuYdW^O!JlI6Zw%mfxLtbzXiB%5fy zR=hj1b7mov+t(0l0D;XGGI<;sU%>L>BI02R!Qq0->A+oIxDEjiaPYlRz#T%QJ_bP$ z5vmPBS4)_ko&~2OO2s0)H8o6ERbrdkK2+uw72@YlJ~?b%;s6NH_4u--`CZgrnfY_Y zZ2eNK&Pxgf4JPME%`Cw!i@0&iCgjso`0XE)$d(KQye_yT0?FxwBvL5lGD>9)-asuF zC_=R%W>t#9O0KZ%C+Xyp>U6rD)j3Kp{0-?x`h4i`ntgcbI)R^fX*ipn-5IL!(VE(z zWmte9I9xzV45b}E(e3I(pwe*fhgrNLZKk3 zszv1UC0-kjz~OXqN+}TpkyI1~N=3^+&HUa{riUwr+iH%|ci$W-FAoqx27ya=!AHR- zI+HxIVXN8xif{Jq$y~iUw)c;bRhuTt&hQrnQEHJL5~&Z@pe_;wK%hEg1VUj#IAB_g z=(-72Efs8Cd4m_G_G(onZxOfISWn)6bELdHFmS2(~=9Cij0}y z7H1Z#>b71{3=0MqC6g056ZW&o(MPomCcp;mo9 zC(1dorD~zRYG_)KYcjyjE@4J(fr>g29A&{NWa4#n{>>33CkVtIm;fCdJX?%jN&Mpk zNhClC0Vn|y{hjjq^)-QYt37qy-JbgHRi64!t@YJz-5T-o9sL45H!cB+vv?o7NBplK wz}beBkh2ZU%qO<^Uw$$nL3>g)ivR!s07*qoM6N<$f<8DklmGw# literal 0 HcmV?d00001 diff --git a/imgs/icons/21097.png b/imgs/icons/21097@1x.png similarity index 100% rename from imgs/icons/21097.png rename to imgs/icons/21097@1x.png diff --git a/imgs/icons/21097@2x.png b/imgs/icons/21097@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ee863ef3302d6ec16b2283b0030bd85c2b15b35a GIT binary patch literal 2703 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 N002ovPDHLkV1jlt8883< literal 0 HcmV?d00001 diff --git a/imgs/icons/21186.png b/imgs/icons/21186@1x.png similarity index 100% rename from imgs/icons/21186.png rename to imgs/icons/21186@1x.png diff --git a/imgs/icons/21186@2x.png b/imgs/icons/21186@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2afca74823cfce0d65798997d8adf842eb5bab6f GIT binary patch literal 1398 zcmV-+1&R8JP)SWvmFU0!}>450){=$VOb;SHKu&$TG8%q1nZja50TNnk>%k z!kBF_X|}|$WHIQR?qZwHO=^^6Mkb1&ATpppp+JGtLQl`>IqxojY&V0VjaUA!pY!~G z@B2LGd0ya&o+wUoxm=9PPhWahrltN?a}%N65dv$Bv!I?(S$Upp=@s zy1I<9=HixWe);lcjt~+B5Cy;=KYqOOxdKOxImNuqJ3fQ24t*JIzSjI1fFpt+@GUJZ zYFq)z%gduH)~`2xec(XNs?|0pZ!m7?9iGH@m#)KeR3(`~&()b8;JsL||000w9kRS*EfGs5@%KrWPxtyG5 z7(z8zEUDnJG^fe+!-eTx7!T>ICt(Re17yOro&-a?KzN)8Gxe{Q_>i` zZMTq~x(p0>?0ThU?z`If0L)9*qks}d?v_$y7jHse`zWD+=XG;YSeyw5Cw&KkX04eJRbb~{YjY9(qQBh z008b5cYFXa*MwQCvhZ5{V<9Td3KVLrv*c$|a>x%W|8}@w`k3D9iIl6OzpkoUSA+vZ!L} zfy&BCLI^-uBT*8}@Q;jQ_(3P6!CoYCEX{MQ*Oyr`NK}m)`Gl0PV{3&!9GprPtiqzX z7byWHjg4R$E{QD5d!R4^u8F#H_GO`dB{^MLY@s z&@l?SE<>Zz=(N11C~NqKBc}@0@JwO))46vid|uUHGWj{9VKgblJf*48U|1Rtrsu6y zofXaq031F{7G2B#3qUC#ilDyCag9@hiVct_{R4ND>CjX{QtBYX8gv6|m}bmoImKv} zBT-QkD2lU0v*Y=p%^yYtOM+fpOL`B)s3k%E1B-Q2_W;iLHvj+t07*qoM6N<$ Ef=%#}$^ZZW literal 0 HcmV?d00001 diff --git a/imgs/icons/21204.png b/imgs/icons/21204@1x.png similarity index 100% rename from imgs/icons/21204.png rename to imgs/icons/21204@1x.png diff --git a/imgs/icons/21204@2x.png b/imgs/icons/21204@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4045fd8c16cae44b2dacc1e10a2a2612bec87976 GIT binary patch literal 2502 zcmV;%2|4zOP)jp=ne}S#ePwr(Y_f-CmRNgx!C`f&%XKMn++d~v0)en z4A>fuW)Y|YY%X;dT0z=Xr7}3r(!D`;e4fWq!~39u zn2L!+q6(NN7(^9RDx5PEA&7X~d*FgNkGT3=L;y$dPAo60?U{D_rw?!4zP>WE;xIWI zjX5tPd2j`w&GkeUfEB1MdGb-vU2>7PG*&}{gIm6hd5OZF<2=iMHUCIyKo zw@g@XBz9wUsaNUICvVU4M^1$31&JP^!lrssbBHLR24X6}_rV>2gDR`+{-1ojvo_yv zr0K+FdVP^BSeAx(hG|aApgTNgO^xL;r{{#{X-YgB z^1uapiEIrg^42iJ2@*k^V9{zU5dzcr<2)Wf>X0CH%27tGcGj1rnMm_&WE*R1s0!)H zDe2Jxrx-63VjfBIf*b8Nt`{X83v{6&hvG~FDR%gkKM zyRa}br)8wIFwb9n^doLuzl}AUBuRsIvq>kGBt=f!j6{T^yyP&(It8k-2bkcdEV~+O zx_3x@;ij>lh8+Yfs=3*2lD*#R?EU9g^s1)(ygN@j%^4pLPzz+c2aI0slRn?2sW3P^ z=6o>VMV>PnjqqYkLF~PU-PBzt1OT~k+UonuyFzWUSx=CaHNqHF`8hBz0E+@{?vNRfb(oQ3K&8;KF9hi*z#>O8m=nktSHGOjGRVqref$-B;Hlr z#l?GjtL@P$`g^^Z@WILoMV>>fuo$Ug#F>$p(K2JP+2(e)%l6z7-ZdzP1By|}srXqi z^d0A}(5N+lf_m^%5vUr@)tRAc73ah1<3{k;8!e6pM>Jx^t)@d3<~S!ZP-A^-hx_+` z#NhBP`liFTdzCe37bTxtU5SUUU(raW$adu&5YP)w44bB-)xbC>q9)}i%d-7%A2*$< zZES3cnR0k^NS00L_WGz+Jb(I_{=zC-H}9~qxWTJ*Lb~^y*`d6|L{c?2j$N z>R(vBm8g+UuU~EN+~LCqpR=@elVO(gdQ+bYR=M8I$Bv>XXnm`Y;W%nLWAwwAMlrd{WolE z-e75Inbq}cfbrz(FL`}-YGa9P-u?7hFZk1F=Ib{NwRaT&0W*-A0gHh4ZGRevIUfFn(NwIl5+pdORcTe`ml@9@n zQ@@l;H5#BsPz7;%Re~*|b%_MS1oM^I@bK_p)bI8Cole)z&xg`X5?(#~jw~B98lI7j zGkgicRJKv8ozQN%o^b!F6P^%N0NBTkCycx!&X|N7-~ zM(1ao79}gIYm`OK+1VK;jwET3j!p^1Xoxsxv6{-uz!X)xlH7D=bOxB#d1^#3tuN#B zqh=!FvN9eGhePswBG+%+rqO7SrX$XWL-M@9dry&%(HQB@EHz_Q*8IH#e&u}xvuOfe zgk);nr3mf9R1-l%QB-Gd-@Z9nT3+ENU;NCj-@L`){vPRQREJfB7%S=a=D4+UZw0Yn zR@o)EU6cT;>keRMQxR%ilvNF!*5inP!%3OvQO&G3Gv`9$_rLl2*9(o1FgQH{psK2A z=d93r+_ufFonAf}ZU688{M(aWf4*r}T{*9cnPFz2Nu7BEZm`gMx&vTkdll|Qn%@hmIZm9ljk}2KYPf7AAWA*aXPp6X7^z>DRxI$_I*{Ax%0k3 zgb*#_0a3%85b>z02^OldWORORRaHp{fuhI}aV#vZu(@@UY&>Q%8FT-$AM^EZzv6el zdBoAtA**W}{MFC@mY;m_GfYi(U%#-&zxzs_J^jN*C+{wf#*-(;po}#zx~yB!J?rin2YtSt^y{mD670I zD>E&m-R|I>;CzGGxp`)1=WrrSvWyS{Ns>?$Ig1NREHAHs!DN!rpP3=}0Ah4|J-WTV z%*@R4=$Bve`H#QYzJ2GO1Oru7yb0#&KMW4Bsw^jESx!RmNnMQ`?RJNS#brXH!Duuh zguvp`3XLS8+w0S6wx@HY;GCdQDYU?}R(x6H%r7ppy?u+*!685V{7*OjA9l8x%4PD| Q#sB~S07*qoM6N<$f=I6U3jhEB literal 0 HcmV?d00001 diff --git a/imgs/icons/21275.png b/imgs/icons/21275@1x.png similarity index 100% rename from imgs/icons/21275.png rename to imgs/icons/21275@1x.png diff --git a/imgs/icons/21275@2x.png b/imgs/icons/21275@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7b09149577084835e091fc192a172efcee933803 GIT binary patch literal 1861 zcmV-L2fFx)P)AttlsZ;0Hy=$L+{>2~7-OUQc9E#(mSl@5PU;py6&p&?l^np$0>b-+zpoadmaU&CLz%>coEg42~vWRh(rpM zNo1nPY|P!=8!u*13K$f}%o`Uf*H@RixcuSHG!Cn_ZP{+N{QJdoR$Yg?advjb_4N%y z-}`#CD&vGV#XKA=46`88K!rvSX{1fKi^OoVf**k!<^?Z}kaYF-dV6zyePV7%DWJZe zKW)=6j011qUfX)Lb^ybySbs2h8Vs2k1{5opACPdv+%Yq(7+(LD7ZsdRC|J#+6okFa zOe^l3uGdUcuFirH+#C8}M$AQzcv(wC!7jO(_P_wGA&to_zT9WxG1PSP9;5iauDcdGqQeZ(hB4 zSeoJhRLq)jMX$QLQ6E>lhPnQDq0AEi+SSV5y!wx~?W+0o>9dRbm#_Ks{G46a^4y9) zdh}@btJe74<3~LC@sdBidOZz8f7W@^rWAnT23f-!pvsF_44H|S>e|Y-&SJURwu{|% z6RUgY*R2)qd9kz7kW-e%O|3aoB%5)>+b){6n@ZaX)qr~`mc-03^Sv@=j$^(z#*%%V zlQiA>a=YEQpWeB-lE%$A7-opH$$Szpjw9P~WOe_+i}ddA<2a^n^Oh6OV{V=|^D!dS6avb>Z z+UI&pja%M}PdqWdX^NRn@BVPv_XwjT#mv&&=!c%2G^iZEjcXEzKCSnq8&R`1m-=O7{vLM8|4-ctIhL5Dmd!n(6N+l|<5 z`T@n%Xq>t+l1)D_nh(_)7@8AF)qHe7C=bbTKqhY)17zw*ktDtCR)eiiu7_ztN}tBQ z8&eG9$mC^kE17ff{d{s(0noxsi@Y;|1EYvr+)Pyy35cYaE4$UriJN66KXy)x&WnS5&`pMMg1VnCJM{88wT^;e9#DiCM7Cu4{4gc zRDqX_XZopw?5j_*dSDi0ap_V0Rmo%$k!J2Owe2+-$ZQg5h$Ne4w+B4{J_6sj0PXvZ zB%1o5Hswr#XWbwSOv^4lJ66)ztvAgy(5%`OJIgTzZMRjXv-f{3XZ6=RyF(_Dkm>*@ z57wyWa^zeJ#jPDPF^QoRZ9n>izG?4RgpH}BZAUUps`D~*+XD~46@gTJwRE{AloW); zd^De%MWpKH==E>|;2CahceRaRnx=L6@JTalH#SYtw2g*L+1}sr&ZZbk-8CmyRd6lK zPTCJTY>qXl`d*o4=Hq&`#!>e}gkO0X48{aoN_@Pl3Z@Co;MLqB34*94P$VG{737x0 zvalCIsdVS;z4z`hMZ7I$*)`4NrI{3IN9}x0ND=#XykAwsoG^GO=7teS^E!?|8IZ9L zW}tqzvyY!V`{Ze)IOjP z84!w@$gD<0B_t6U25570bN8>`e9d3J`FeYD=g#H%gGb{Rzxk50(~}3&I4QxZxuU9& zHD0auY`kgit^!CJL1rdJhFr*mtNz;r31P^P7i_!hzmI9SIe+~0O{7iFzx#Ic{^KX- zckbRlxw!f+J71+D_b#qIC-=)yal6sa8&&=fY+aeE)d8@E00000NkvXXu0mjf%Qdi< literal 0 HcmV?d00001 diff --git a/imgs/icons/21335.png b/imgs/icons/21335@1x.png similarity index 100% rename from imgs/icons/21335.png rename to imgs/icons/21335@1x.png diff --git a/imgs/icons/21335@2x.png b/imgs/icons/21335@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..64589d1ba90f0bfc88d6743cfd63a08fc4f4f168 GIT binary patch literal 2506 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 UWp(Xcn*aa+07*qoM6N<$g8MAsyZ`_I literal 0 HcmV?d00001 diff --git a/imgs/icons/21336.png b/imgs/icons/21336@1x.png similarity index 100% rename from imgs/icons/21336.png rename to imgs/icons/21336@1x.png diff --git a/imgs/icons/21336@2x.png b/imgs/icons/21336@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9de0dbaa76547aa697d9bdf16078f0df736e1a58 GIT binary patch literal 2711 zcmV;I3TX9-P)TBNE1foV${`T!XTN(vE=fPq32B~D3duM^ve9cTU8wY}cQ?Cd=5z5U@hfyRZl zQomm_SEIS-e&>AO{SNS72LS+d0<^QUlY%V16G9+_SX}$Rg%AXt*T~m&cFIJOAcT;k zt*u_Pwdnvn=RXq!{~-|a@p}pa0GD@n%S!RMeDHgZn%uIa+6|jyiTgV)*}U=Ms6#l* zOizo{bSnGCfkVk>pMG|TP>Nfgc}D8lwTpe!|K*Q7Z6ZN-p@*b@Ybe;UgC1P-^-{y; zO>K>h^|$6`XD`YYa*7nKm5kg1YFk$D`sPNqzNOjNw6>}5dk_8i$>(N5A=*XRt>epy6#(Y%`G-ESfas+iq z2_a2!!}X2!j?Y(Z)HQX}!+UzZ^{XvgQXK~mD&0c3i#h)=kbeb0AOzY08p>vA9*{#@ zx039@fZKofZF>m8ZlUQWG@VMSj}YHVnzon_E`h2^Fx;}BMB?6H*t}uq&TR$Te*B?d zX1;n|YwJ9^yXEeV4i`d@4}$oxP=r8xPY-PYNH!FbbFr8lwQc^^wyXCLLUt3cT9#B< zBZR7w9`sP}N_l|^#UMoCvZ6p%JO#^CIp+brGOT{~`s=U1uYKoFb`c_?9UY{-r{@A; zUa-&-iIDky`y>FKUvJ%7{N1%z@0KO98y=-xDA{V>w2`;VC=mrhsX&ndmY|>>4P~P@zPNomPb`X^T%ds@K+xC-I;T?r zl*uYl{XVQ|Y(n04VG#kMD3Em>M3Eo>IGm#lff8pZyDls)KxGAz;t_^rv0}+|h^iHW zA^+Ogx^>|Wz)kk_oYTNL00ck_K=P7AN_v(8fRWF60{#G+YU`kAUes3AAhIF?Stj6= zLJ)#77s%QUaxO!`cEALK#TY!QN`@yUh|3t&be;KvL4VDfHH}1)L^={VSBe)jA|st9 zYGoY(K$!s16a_&|C#N$Rl00z=d56QVDJXCSU;>5785m9(c8OvoEr4<$q$tEEt7Ks8 zq_VEI9;Rt>y}}!<_o~fDIPa^IY2>|H?$P_@L(I`?A69jmD^DoIf0?~4?$WNLph*em=B}v(u)yRbmWa9DO--5$>vm5Q)SKP zZ&e^Z`%cYs@JgxTyBv7gVK#k8wmOA26Dn!@WhtkLhxhn*B z@8129Ep=6!eti2*$Y3<6s;Kl=!U2I#uSBI@0m2w40Rp}X_z zRds$;u2_XLB_9}bA#sMf+A3VuP=VC&QG9yUdQ|HKds6|No=l_vc)th+SHjf;Zpk!@ z05DTsEtW+1!7>z4K)8NCpBNh>QvAAwS<_+T!=oZQpMh!FsE;;dL%1G_%TTsV008F} zvbijZ#T>3^tV4W#Gg1o@zVMmrAeRh`4xJLSlQTS6;WrAdwEzJAVsY8ai1Y%esHze( zsT8^9-rMr7tiMwe^pfH6Q8zO_2*))+C17%X7G6pa)KyTIAw4w(&Rp0o!_Z_FFYG@6 zvs}jE!$(9cQX@FyV*JdR=>=IG0i{SsB78XtL=_<1{(f#K3cn8!59uo&Po@_>Cwr*> zl%3~6$EGDM3`r17oSDW#zJSqF!zj(nfmtyOOibYL(bJgB%)&A9XuG5d$&-Z5q{g`> zDW{GO4<|brqX76@%VYp8fS7J*5Pr_x7hieB+wsRehxebE{YH9n#`1VnQY;yQTV<>c zg%MlT07sIsDpn27EMziSq^9ODHJ5_`L2a}~Y`%7zn9NK&Z5uBY5ae|vlQsqhT z{{aA$3M3K;mCM4nb}b9k)!BpZyyLy~rTtG&=W>7bc@$`x?%LoOn@Qu;&=_+0GJ?8_ znotE!o|(a1!9-@EfXgnv7}1Ci-A_HmE^l7%Xp=bWy_d6j3MJB^P*a^-95CUC^ zgm|L0mEq7Kj&hloOVg|!klxDJkMevZ-h6Xz*T8^`c${Nd0B5s603Z_K^XW7*KDo90 z!0WI3`TPHP`Q;-gpBp@JO7g&FYhnQeA{q+$B67uf=sHCqXJC9fi{0(*;=L0?WH8xp z-+9Zecya%05C8g!CtiDiF|}p=dbbO}M~-9w1mbaiOxIa7n{`dYu+M~d0X{U8UT7W&5nX_Y$KyPiOtK1($38MQtc32p<0PTd)bC$AMvnCli)vVa<3e&A zu(FLsBn#pgkEc9PCSLZG*o zg{{2%hw*y$@Kqbe%7(G}r>`6m2L|V`-Sp$Ydwt-xgJOCHPMJBm*}RtL?4`kjeLwnz z5b8i*AK%g1x;TO@;|>13ed_AsU1#YCAAOhMXLpp=)Yrdv`&FCHeD}srl}FEv@sSfp zg~pknobzI#XsLwE52vyReK+3o2LKq^w-3?Q)}@m#yUo9MMoXCx0-gFs1^^Y6!M|i| z+w+yJo7&(gs}H7AK@WEgzbxg5ATt%3bd>7exAo%86oepQ!09^A`LfRFW4$4;=nn}% zzWwyi^th3W>6Wvh+8126=WipCH{R~e`(!aKWQ-vc7^&WM?^H->v$`kuG9(fgaQ;65 zIE#WHkstslFea~B7}J^?n&|Pq6GE>IyR2@NJu?3#hD4kL5TH~nP1+w7{{(!%ChPD( Rghv1X002ovPDHLkV1h7(9TWfn literal 0 HcmV?d00001 diff --git a/imgs/icons/21378.png b/imgs/icons/21378@1x.png similarity index 100% rename from imgs/icons/21378.png rename to imgs/icons/21378@1x.png diff --git a/imgs/icons/21378@2x.png b/imgs/icons/21378@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b0f7295bdb95301bd97001c77873be8048170c6c GIT binary patch literal 1622 zcmV-c2C4apP)$|cpOVN#H737^k-a%f6mjPy&fth=segKl)4Ir-BrcL&r z+}tncp8x;+&$-WY;B)*RLr5vbf1NbP=~Vd$v6NEe#t*zzKGjF~9dJ*V=B81S(%gfb@ ziVD4`s7QYz0a8jKgy3l2j@9-}`z~+K-j%g~&mNKz6S#KsHWG!>%U5vK*M2bG)ACYR zYgg?@G~;wiWy==C@d9*&ke|%|NXtq}N>m9L6EX_p64zxN+P!0Tb4s#S*W{8d9bIx= ze5@90j|mx8nV&I6CA@31nX;smN=tX|$-kd_ds|VF(2pM%nh-*=$k3`Qs6H6|2d8CK ztEXUJcBY=1ywMoaLSk~-ha<*L%GyMOB_bT5h>*z^;|PRV&t51itL+|i=e%+8YT&oO zdjD49&b^nv`<1Xu2;pC;0|MaW$!zs}>FdV=u^awqwpgM!tV=>s6akWWyPb^nN!YDc zd_EsGn@tVP2DJ3dtSx<`o`TV)%DuOnX18VJ@7i``Z`iq4@AB$%^>QatevETb2c!fc zpt$&+eCN_TuYLL8v#YbSck7d0uhKs_NK}*!Ar!JUr6B>2cN(cnbRcu<7wGKl`qP=y zB|QS@*>vuEl|!6})Jb_-B{$H|P(aFoDhMHjT+{(k=oA2_fAiz?E4Mz3JoWq6^l`6G zY)DEbE;g1cl^+llX~kkP(LX$bCIu4{6Vha{84_2oo-Dt9;gZE-iM85n(Jx1f+GFQm z`RTv(>K6y~@tbQyvyoL56>?!97j@voz<{9ybZ>b4pkdpnveOs-a!bPiHL|Wo6nrl%1@n|vSws7 zMI1U5WXBE#DaDcw6c-n3fUri|QZu)1B`G;s>F@2~-S_{^jXQUFI53DoH836UbEl?` zkDOtJ&3uwAiHdb1?{#w|YW^Mn|JB=2zMcQpqVr{$w zAp|w9HawmQj=b+N}Dk_qIF!hZ!`K?snt*+hP($=Brnyy$PBSpATWldZhC<>KTHE6*gzVXp}x~}Ue ziV5fg+`u&R_rhX$)MX?9S#bDZVxMmQTR^CJ!C(lZ(TFY-e)sF2)7slF&%RkIx?K&v z-iG^sk(%b2ue=JV2fWJ(Sat~KKNN3XF7FG67abeZe-dVi`f5-Z9EbDs)r~31{PW^< z{N70hJ6ap1rcE=~_pbTJza05W1T2V9XJG1KYs*=nHYO$Q`4^5K{o1{{M%h0!Bqm3O zgJ{}=`S@PI1&jcpM71SR4l~#D z2B4oMe!EXA0H@Qbx3#so4;(&hKJul!{QFHVdiwh5Y^>L3eBOFRQHGi8c{?kx{;>rV z78XiCJi9-8AP@|eT`0ead!SE!*wWY!qDdE`l{xDtnVW;p6mdHb=KeB%Ls|v!SKymK z8W8@ti9XFLtvDPGliTf%1`+@>FbH(>7}h^2#OBSL!*Dn(fR(w*AA2SL9RCye518w! USGH_9MgRZ+07*qoM6N<$f^J45Q~&?~ literal 0 HcmV?d00001 diff --git a/imgs/icons/21379.png b/imgs/icons/21379@1x.png similarity index 100% rename from imgs/icons/21379.png rename to imgs/icons/21379@1x.png diff --git a/imgs/icons/21379@2x.png b/imgs/icons/21379@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fb780b7e8299884fadf50ba9033a1519aadb8701 GIT binary patch literal 2668 zcmV-y3X}DTP)+58APFS2uy|1o#Ku@)YCEJ};u_+{?h@*WNi*(@lWCi@w1V34 zGPrHxrk=RA$90-|Y(%|4V+K2H6`Miq$e@KhNj$W_eP8Z9{R3gkh&anke=}$9+%xz5 zzTflv{?70Ij^O{(wr*89<|)TsNU(WL3=n{v{)zHCx)xH(PX|(pDd$)0$~$zImg2B} z4O|bfabNQkxR~zfw<551?OIhzseq6|d^VUGTeogi+uPd}Hf_2>D3w=0$p}?6AX&(h zhiqIE0dak(&s%$YyRvE1CWH{i)Rg^^C!WymS+WFxj*bqwef#zdke}{Uw(r$Q>o=n+ zi_CWGtXwYBjUsljd1V5m03m-ZfvzrTTDnxrKe~LmwdKBtS5?;3->0aSRSsuyiOu3r zQ`sz&lR-Tm9UDm|Vte*n4D|1ddw28oZ}qWfXQSEWUVTfAchPLGwer30vBQ~g;uW^s zHH?%3A*A*N*g{IFX{wrkm# zp}A#Mb0doAN_Q|a~c7A*5 zZMQycwL3j;zVWtvf7^fSpPW0TjE!CvhMt54cmlDX2CNIh=i9zg!|y9Xui-EDI;XZNW=J4G(AFkjdG*J&4GV94 zHkr(r|L(88XAJo-D(Q3*2{_#z7A;vxIu&PPbe#HyOQ>yFM9=Ail+K>dW8Zp$*MIyh zoqKk0?)Wc++vB4moAO*3oDjmZxCK|44@g|C2%nFDl&T_xK5O1he_CEu-tfY6Khn>i zJFBG9NowjBaQl}ZMpzvjJFtrzZduMBJa8`qzwG6iEnB$zz6a^+?`LuAm-y>{cm^p! zFJw7$Y>zA$s>vGYGwBDmUA7(Dc11HGP+yr;`XpB^Hko2?g{mDn(>s z0EffD@xz^LSpO)u-Sc%GeB^PO8|(3UO92Q^j!0LLhvKq1vjDGQ7~ZS6pC(~AJXZnq zvda3RSUkmmzt50HUIhc2!^!0M2$%ZL^44oFl8BBIie|{<3!vv24O}D<86h-2$kBc8 zGdcPgKHpy=lq;t^pUcUzib{N?6=uMZ&*KFy0s5x|T3fF?olb{oG8iM3i16uuLrN?* z2RAMM3h_jo?o%g_GS4e7{38~-kH9ZaqbLeOHREuXA&dfM^|OMfsv4EEDk!h2RsoZt z8rB&RxN4bnx{%8iP&E_zd>VjQG(<&B6Z0Aua{t}(K;I{5iloTnK~YTrczh+o=k;K-s1h(~QYteD#N%-ZaQx$g(OGp1aeGUYOgaWY zV6d0+IgR*xyBX|TNL5uO5)&qinbPWdbX_NxOSA54k1^=)XTc3O(z*K=T)yPTYV%M% zXRdHLtmMFPQ| zQE@q?RrM6IX+jeLyd{-PhJutpt@(}SXDNFi{#y~LuE zoIHAjj#vMQ{X2g~Hk-xe_Tu%G$lF(~COk1bdge@5z+^Jz3x#y@YJyF#g!1jT-&TQw zzwh)<=Qg&8>Y8S07zQ9fPt)Ihf}XR730yowJTi`Ix}sokVw7YoLgaEE7fyGgC}v!4 zFREr@+3jsKwKQ|IbN9*d(eY%VP>2Izz_^wG-QC?1DaG*v+x~rcsCV%0hyGkOne7Hh za@h>E^X6kV+lWUdP&JL}+9p=q^;Q1nsUPz2BahN^_5czEo85)QVxz9UUatT46XKG; zXLQH5H&3W0i=N43Mu6xH2>>>4-fXPx=ur0WKR!8p?(hb?S=CqE{V~2gZGZj^{<&)oU7f!o1-|@!F9|VRkM|E8f z14BUOx�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 QWdHyG07*qoM6N<$g1)sV7ytkO literal 0 HcmV?d00001 diff --git a/imgs/icons/21408.png b/imgs/icons/21408@1x.png similarity index 100% rename from imgs/icons/21408.png rename to imgs/icons/21408@1x.png diff --git a/imgs/icons/21408@2x.png b/imgs/icons/21408@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..85989da4507563458d66e76eca7a338dfbcc9be4 GIT binary patch literal 2087 zcmV+?2-x?DP)NklnVp$^`L(fWq86i;N5Ehk+klOCZDV`AYxd!N&d%%hhaZWF4Nj%1 ze|n_R%)N8(x!?J|bI;rX{>Mf>=UB#`m^0U4|1|)NfrLnqAUN9|7#LWXsv;Bs(&-Y()u{wn1K=SX)fQG&FSGQe5~-?^S$dz(^!NK25Jorzwh|C@ zsm@?9NDu-Ni3EvMMQGaVBV(eQK7x~T@Gi=ir#Ze{!6ED9()R^EVJ*;fxu{rCgI(bp)ebv#Z{q~ zasn*@xYhu6CAM8ZSIN%qG_%uaEHM zX^vKiTrsUk1tvNahelH=_gXz~tM_fPv$4cOZuRuhKys$S{o^-(#D-pPJ@U@`KRKQe zZ>$0Wm8W_4DQ~;` zLwjM%8K#q#_1o5M%RinuJv4OxE2?H>zWI&g-|Oxgcz<726`l098vqavgJFq!vA_VE z+dTl_9-E=!bdiegGPMajUuIT8GjxelYaE;e$4n-Dz>;2bEuYWsj*g6!sG*;YKDzfx zHmmSkHnh0@_R-~EcXV`AoIGhz|~z$(no()FSfCB8bM0?Yr_l zJ$JIHObU`LS&x71*bgYBNca;gPeK6jrAwq(EE6OFNwN`L7l~j9gp+uZ&uJC;lzFsu z>rSDv#s*%XgfT|E-a13m6;+n34K+2@OcX`d+uQfu^XK2K>kM~(BEwSvuuwR(z>?J} zGEu5yilx9rbH>zkjTx$`a{^yXCJM!K7e0hm6o{snrlyuvrC7F1O~&1lB*8QcBFi#~ z#U`#DKmJ-V@cRI_at1npNR`Y+0EpQ%Q&WOz$ehUu7M&@EA`p^ROVFKUBP6bdjg3r_ zL_EzqYb+2%!MJkepGA%n5Q#*SoL4xSN~N-qOA+e#udomSfZc0nvU7rEtO8>mo55#g zU00!*kj;1@Ke%aUb;sGWzeCr@y@sypq?j*LZ-Wz}#F=)7gLU1$1)k$+X|(k1pZ)y% z-|A}b(g5JqR|89y{e?~fvhaCzOj%fs*KU@~yr}~kG)1N0%2Sg`H5+$Yh#_HmDg~{~ zz)=pV7-QLVff0afSoNGKScI7`wru+8wX1`_4SfCOV{g4h%;gwZlpKsP5(*O-DNb7YX%%sYkV}k=de<*ykX>;Qan_V>jeC}UV7G;!_5}b}oxLht!N_9_d zwZ`+*(%&~sB#Vfq=B6*5J9qBpT)>OKJVDDWp0>6&GZK>-#BqX z-@g}bj~mh92~(DAR1k&ULO$O%JUsl6vCl^T83{g-0_4=G?R@)e0*ObCeDzN?b=<)Z z{`hy@BG{?JVdEGxkjli_-o5)VcyGjP*}ayFO~yctN_2JIGAk>qNV!}(9gk1{Mv|m_ zJRVOxGY94^7!1;IIBdT0#_Kzi$>J|2V$nT=LxV=sb8Dz1^F_m8Vqae$zhg%W3OOYs z*?>wnU)gR$rbW{wb`uikB^UE1)x1sf=`1wc<|s$*ROY9?Ck8^ z^YM+F%JWTYIh$Q3(XoeozWA7}UB4Pu*{M!VO>qrP?#h2$yj@a?RC_cUBO@cDW=m^} z!{w?;jE|3Z&Mm%VuuB180C+(VJa_N*y%UW_fAxjU+sO02=Fwz&JR?ei(A>C&gT@;} zL-*B9TbmshFI>+(j_2>ClbP=L)bvn)|A09X9d)<1wgwL$KKwEO1OiLffhUh-0Dy2f ztO9rszv4tWc?GQWP^7TVYI5LO2dPhFM$;e*(CGMT;VaaAWY!x+>w zty|Mnsr$~IZHl72X|>t*1Nh5)jaicJrR?O%lR|rYJ3H~66K(hV?!7xYI%?UutCigA z8#GHwsVrFdyXnW-4&5{!*zMAUuIrQWc)ak08z%rAKykTsR%-Uv)&ouej=8I1nQ;WO zvT^`;LI}um1z@Gd7$fseDE*X-vt8WW6T#AKF4zBrn`hf{Bq RF--sf002ovPDHLkV1mJy@t6Pr literal 0 HcmV?d00001 diff --git a/imgs/icons/21409.png b/imgs/icons/21409@1x.png similarity index 100% rename from imgs/icons/21409.png rename to imgs/icons/21409@1x.png diff --git a/imgs/icons/21409@2x.png b/imgs/icons/21409@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..480cc16fd78258c37d0cc3d25272478404947d08 GIT binary patch literal 1395 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21418.png b/imgs/icons/21418@1x.png similarity index 100% rename from imgs/icons/21418.png rename to imgs/icons/21418@1x.png diff --git a/imgs/icons/21418@2x.png b/imgs/icons/21418@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8b3b9d678f9175c14ddaf1ca8db5108e376287d9 GIT binary patch literal 3233 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21421.png b/imgs/icons/21421@1x.png similarity index 100% rename from imgs/icons/21421.png rename to imgs/icons/21421@1x.png diff --git a/imgs/icons/21421@2x.png b/imgs/icons/21421@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cbc693694ad11820610d21f7bfd2b3e8522a3316 GIT binary patch literal 1333 zcmV-51lFZ?TD`OJ?5T;-qX!W89Y_3h zy6`A5PMF9 zLO18Hv0OB*dh^n536}z5Qg&UPMh|)=%d&F*85eR=EEbE5Wm&la42tZ!6`C`MX-hV4 z+V|19HrH2(r?y`G zG$y1N45^5yDBrf@{awet!IOxQ+QVN;`Af}c+Op+cNKn8!$C!!xy16E)vaDcUX6CHy z>}*Y%(U=U67I9LZY9R!a3PN8SB5t)UZbZM&Ra_cb>tTND1gc1NA0V?sp+nHVIJ{GL3O#fyrU!13J`k{0m@doQ^!dI)zcwd5xjGmKCMT*?Ac;Xb#xU`a81+dZaRP&dW2nm#8CAPv zvrWh|*aZSmRV(GrM2Vx?~XeOSLkxog1 z2(mZ@p+EqlVF@ISX5f|c-S-7$hQ}U?-WF(bJIuuU$DFP~xO8O#-dP(4^86z}03ezI z{g8X8uai<~%IM5FRM77O67r%rEAysq-ByxPTA@R&wzDsB_OO4#=?DgW4^RlY)OOdX z{(4_X=JwC?&0(*jQ8Tafm_+FIa8a>ccx{cAXi^GeZoh{9 zwIeWTFDT){gc46@~=Iu rp6B98T8U5AMgDf>w5pzAhL^%$&xkVwrIZx=00000NkvXXu0mjfx9Wc0 literal 0 HcmV?d00001 diff --git a/imgs/icons/21426.png b/imgs/icons/21426@1x.png similarity index 100% rename from imgs/icons/21426.png rename to imgs/icons/21426@1x.png diff --git a/imgs/icons/21426@2x.png b/imgs/icons/21426@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f3cbb2a8a450c98774516f8c30b1ff8345ea2c30 GIT binary patch literal 2031 zcmVh>!!R=p@0SSj3W$y`d=OEHV2Uv@#Hu*z!fLcpG)+@X)rGd`1&pc2XcS#( zsxC~_#*~R~snVd)iU>gj1&6mVfPy^aAuzzq+}$6*S|*6nCaZtiZ>{^|+_Trd-~RSK z`|Jz+AOGuM|E_(qTFp7CRO~7MtyW7KjYb4OKR>k}L9JHvgYRL`y%%Aq3NQfV;sQm~ z8#AXkS}OvS_QRz)nb$M+Unsf>pyw%HL_~}+HY8OfFEStkV+^!o&CJyfO4-Jde!jk= zgTm3#Pz`%a8LX5_ZDB?2)>ByzP6A+pAaIN^5dbd;0>#J2i$e@@Ak=C#PXJp#f84^q zt`8+cdOVTXP5PE{5y;uGW&+z_E5D8N0|xkfJ8{3g2S{Z|CX@nWdd5VJ4Hat>V2SA0vT?W~5*GM*G3i zFpV%Lz@Gr%Iq4XbKyotp5QIq1#Ds;pD?7({hAtvlkCH%q0xK(PIJ$bm*3B1E9-P9$ zl9OH310)t`ZLEb{E@#HN$70aS{=BKXy=Zl8;uZjy zow2TXYCmGhAA_iQBh1s!Jb1<1(ak#GSFxhlTF;5iIyAMl zLc+;m=RO98jy4#`4DI?Ja8fCAb@vu8U(fu+!^1=7Dr+}O4Gq<#UcH(w(d)fraydb- zcY<7A2O>j%S_Y&bE;N(}fX@@uvot9;EaEOE@#^5bh_cWRh^c0`S}Vz##)RD#qIXQ#3JP9cR-^t^+wv8 zjsXNhLqh=oBPP5O^tk!4B;`gUZQ64Yv74h&k#QUq)wM7)HwVaw``TRSbQN&*9Eruh z{v8z;6*xb7+&NAzmpd5sdKalw>Sprsagy8F*&sUFgz)fg)YeMyRR0-xJQ#zpbt^aA zSiH=~$^2c>(KX<1W*#F^WaIs(pro`6zxgl;Jxw|!CGJ3JMFni_oJEDgocltPQeIHm zyas@t=Xr(6WGVqr1Ay%9?UhYUO$Go45Q)z_8K6FSI;y{OtIRvuDb^QI$HQzf?dVQQ zJ`hVp1}eLGlGe?iOlhZ*=yrOlxOdB1`curBqI1V~eHk>-D-J+V{+--U8d~)qO_=`b zOaKrBVL;72^BBg(#j)gMHNSV)0lQ;~pP8kd{u1|YWy8ccjG7n-(eMQKa&s{JrBU!x z`Q!50ATtzg|!KnE}W@3zB4-9-CW`LlIv9!1t1$p12rX&~OB=8+K2|4Ni5N)h20f||mM8Y*`E9y#%4a2G@PVkkE z^RimLY}@G+Qo83l%OEo+<1!-ZPXhx6xr`VC0bqwO7L_at@%epGMfJxO)ep_uyG7B` z(uzsME*7?6CCc-&puKaO>8ff_T-}mwG>Yas<2S#(eBSgiJNF(g*|htcFHGIFr<+Rd z%!*AsQF7s0?$;`niero!F_fE_`iy2z8@+69pm$kBkS8q+@}PGYOsD#qGCHzrgSaBh zk9-^@RRFd{EuVWg?W^6U^-E@C0eGdnIOAwpdXh10lGil=GgK;-bU?5#BB27LTEK<_ ze&OMym}_Y!j{k7yZq>wqKpft^h3=OYu?ycdnGK9Ai2l?k5eeOb`U_;J!Tz zV^+<}nLW|P2;e5bMayK8U;wtO-wNE;aQ7rN z271nPG!$?E6ac1MSjg7_cn`o#08agmf4k(hLm6Lfr{qsJo&sS1$Ef+|(~fSZ3&}}m zgCiqt`|SR65^A+t3cv<{D*$f*4(RPCTwj67l``3kspEYjluD%|0GWk3LSLRd?w4|V z`{8|Vev%6P4*0%@d)gsmKlJ_M^|KuP++algAMfp`y=%fy{}ukL_!p(6T8FI_aIOFV N002ovPDHLkV1gm!-YNh9 literal 0 HcmV?d00001 diff --git a/imgs/icons/21428.png b/imgs/icons/21428@1x.png similarity index 100% rename from imgs/icons/21428.png rename to imgs/icons/21428@1x.png diff --git a/imgs/icons/21428@2x.png b/imgs/icons/21428@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..805a5635f8877f2c47a4dcd1aed001adf436a55f GIT binary patch literal 2039 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 IM6N<$f_9nl$^ZZW literal 0 HcmV?d00001 diff --git a/imgs/icons/21440.png b/imgs/icons/21440@1x.png similarity index 100% rename from imgs/icons/21440.png rename to imgs/icons/21440@1x.png diff --git a/imgs/icons/21440@2x.png b/imgs/icons/21440@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4f21cb68670841e0810532bc75dd10604910981b GIT binary patch literal 2538 zcmVeB68Gg>a-@fHb!k3*SNP<8RWU-315SKx4idHKwownNPSS$Xhqf^JW(*~&8(mFb7 zm+5q$q2qK=+~@#GC9y~>AOu1Zl8_Lxe*1R6yPu^$z6=r!sAJEc`{TanywCf*?{l65 z%)ST!8Gr+TbcvWx>}dle@)?6KO!S49*aR7+kgyWKA;=g3MFj+Qf)hYoZm(n30|6PE zHn~t*>WXJFtRlYHAn$LZGlMQTw+fD(UGAC_A3AHFUd4vn0jXBe^UZD0uoW}+eHs7( z5ZrM`&^FB`J~`A-B8U$Et7pXqZw5>wAduk&LmpN%0pmXuHp(K-e$8y|HOLyc8(dxcmPUihjj z*KkcIenK1pJLeql@8*XGhg2;!HRaHg<5z}xtiq{z8%C5e_o_%Xe6nwTtzWA~5>tO& z3pUaUYwK3<&jw&|k8t+FRC%&s2Ot3I)T0y5(40E>t0DjxLLNwNe<=7-moIqgtZ%`= z!7TDwW=fpce;NwRC6Q{UwcMA^TCdJQGp=ht`+s;VdWwIy_X-a zTeZ@wPaWg=bcWcf4!6fo%I3^LU*Dk6H519KDn2?fNQTE_B%aEmpc`-ypsLhu*Lmsq zeWjT{w8S%SoN-s4U9z*+`ZNXzKm_DEC9P$qygY75Qo`$(oWx&KN0ej&iD(kCOz`s; zc941X)!6cr&E%>j3lNQ^(A_tLp8m69WORz;vWC-Z`sNLWyx+O1%9nTdvE2a1agi)9 z22lKI>bB`%c~@%0uGI**ur1^`5L2ltc_BRx5(r6!^%6!M^y zK{F^anLLt73L+H=OXYG%oy);ADZCyh02$$uAR5ZTg2K=( zn$y2n9S4 zoWZsz)PfF8H{o>2$YcyCnhCet3AZF6nN?w=C+tulIe9#l(g4c~z=fi}@Jj;diLB+f z(TnHf1RH5Yw=j zty<^VzB~XS1Ob5S35j&=dFe+ZNjdzNXCI~aZ(e0;le*bE7;}uobMU#H@Hl{2I*Wkc z3(K})Pzo{KSI%WH%HZ|D)^wZcA19yDf=|vsd#g+c5kK3$Y4gND&tvP>w>}uWX5Bse z&+x`8moD|+dh7MLc3}++T|+9B#bh)FAvlO25JG_QV&#l6FwP;UW#tu%v5zNzhAGWp zpslSVjI@S$!8zJY3k)ITec7&_vE41|50_YH`$v~ zJL!!#EGvEL@kgZg&g0ng-eGaW%EiPf0kLEXE?EZjJWj{rD3}xw0$0?A&Fflf^#!#N z=AF{cy*XfMkfDRY0KhIR`g{urA%YNM6GFrXZ@s!<`wPEMx;(DY-T!>Pp}MwSDyv_H z!^ir>niY+>x}_26TmcW=b2Dlx!U)L%lrd1-2ImYX&cr-B_H~DT_r|f%@i8S->XQtK zK?PuZf&n1}A%uuihxV3vs+X!1&8?pt9`oGvrPA&rS!0*0Ca~hn@ndzB^$nia-`fQj zVQ2`ug&I$g@{k)j&4vU5i*kfZ{A6vtdtm7J;0ODL%u|yBeFnuCfGmnmIAaJ20RF&_ z|6WOXs$%ow&!n50nyf@RKbGZ4y|piM>{mOsG`6?z*L!yDpsuCYZ>p`X3Uv)k!MAE2 zdGX*BTn-{Q0||JYV)=qfc5Ri^Po^f`dF^E3XuplqwvAB~ZJ1unfFwy0Z){bXmyH-c+!+qO4Gmi8AS{mw$}^wlj5C=I#{Sx={1 zSIlFoZWEJoENqy=e$ZNZjEs-I{Z3!uKtjS1+s4qPlAj;K-Me?QK%u+$!^0!fv>kNG7H8QaORy%=@pufwm458703VgEi?0GAMZ1s*s&8Qu^q_bkOW9^ib$0%5zs0UB5DO~5?TuR(6s7@s+iEK zq9m#+foOr!^h1RxDJryS3nfjksj`rm#96!~w&Qr2eS0(W_V@1Xhm;DaYnsB9-lu!d zIY0gHJMW!8@aZkm2XN#@gFcPQY&&>Fz@Z1gaqyUejRr6r0wn-jC{~y^A;4q%b{8TM z7gW{8%o2kPJYj$M&|+!chqbct~(ihMCGjf5(P}ntE|eH9CfMatB=etIwq9XTDk+ zc(bEWnF4MQ0DXPL7&;y0UHmqF@rut;D_g2i`C>(=&zoMqR6;mREkkW|^0UoUnb~eu zQYb1;Q&?OaFi~qz66e6Tx+EGz5dr|?#sG%931<#OXl>mpvT?&Y($UJi(Z)Ndsu3R{ zg5Q$GnXwD>-76D{l20Z@EjPP7Ow$dbDz#2kYTWDUOX2e)OPYOZ6geah_QILk40GQ; z(Ekmf>k<=(VJI|LwfuwumZ+uX#9&=Bd`%4i90Wb!JicIH@SHbrY0|swALAvIi;lrj zV*P5uzlhYwM01T)kjvBlyDrS09zKo)0A)UadAfiR_T{xLv*F4v`q0zgiTCtKTJkI{ z7Yf9#YH&$DQd3utk&(+xQw?NGRrcQb2{JL0BH4TiRn36FF*HToR@`IH-WMr8*PSW8 zHtue`y7JJl`Ed#mfH3g!NA{!_+KblryIQ0S%u3LAPV2RU6pd9DO& zE4I4^T zgQgh}T>=V41+t<-;CYAul9>{$V#=06h16g!uLGt8zy*K<5kUIs;Z${HBcy4!N8!KCUo6`T&aMG zZZs@j3SV6ug1-hXUxc^=HE3$@v6+NF?Tk9X8t% zi*;|@bbCwBMjSkNFc%7i%Camw0GxRhU;r-pq5LVOkNW2lhgO=CuX>$g(lB+KXF#S< zg>E`<2^`{WOOcgT{NeT2aplSt*p>syD?ySZFfiDb;hY^DGM|0n1;1gM>z{h+sWq}J zhoaG_8vt2o9w57WAZ!I%n!6(Rs2lG2_RzG_FglU-P3J05sujfIi{SExFwj2$m)iwO z83+J>D1=aL9Y8pQeS!+hni-kSr3q%k53*raIUMXt32-&yf4IaUjj4E zy4+K%Z(9~ww{@|%Ekimwb2xS4Jsdq%f-exkkz)gJi98r%@CSp4wJe4|6anD{@H~&Y zx>|Q#Q&Y>$gfv_opC}zad6Ir>*RGYZSZpSn&FTvQ0K;8evNRl$ZvXn7{#ZMiD}lZE zyO+tCbED{7){a!RfOIBb|L&#*axH38dL)YO@hLDFVw|A~qw`{+!;nuHh ziZ~9HPMJ4?#5p&$4cfjaDz?Pq7`!+N zkJ|;m*Ns#vgZ#)CEL}$==(S_@0Vm}1P`!}L{rxX*OkbX!oqg$*L$`eM;fI@k_}#tj z-QC?00Ir1<0ALd6x3Gz!#tj?RZ0zV=%mo|5mnUa1p0d#quSdCVqQ2E?%7Md+af%y{&EiwaLj~G#d2);1>kwDMFa^2(@S2otq4_ zbmUDnP@O4o5A6B|66qrL{p4v(&1KQGdUi3BYUmnPcegULFo%%aNAB3rh4%UY9{v8~ zc>0-VpsFfB2poq(5O~rM^1wE%VAbMQ1;QcgdwU*@@7(#&TT^9iq*|4A0M5by2576u zX9mVDys5ea>slg0c+>4`gKAZVuFI5JAeYWxB1aCthIdY!K~+&e2nUzQBkUoS6BV;! zg4YN~jJmp7GaCF&+sU&RR@}4W{tGi#r!xTT1%1J>UI>d^sBuK0O{@Ek#1NTM|!TC}R#)hQVX9mwMPFIWN4;r027zj*f9 z@x6QZ9wvk&KGvALvK_pVfru%1+TDoMFGEMFvF$SjU+lJjHE|qbqauT6TK2OcOdIMGB}K$61t8${4dAdE^mzJpLmG4m^3TtE;PgL(YixflD2S z)Wl1XE70PZfPam;;r{JEf8+AzBX9SUdWkEAcs4dwW=WIdvW`O)#@PG5fZw@uC)TfD ze|-1u-6x{aXfc^gYX6@#V<2Z9>Jchu2WyFhPU(veZW)rrp1<~=6px=D&!;P@3_u0o z`2BveYSk*Tb?a6+6bhZ%vuDpxZEdZb&*xPD&L{GQtgnw7I{r)P@LTEN>b>{Jgj?=h zF+5vXl+Nb;j4?qJMYFcHw%pLrFf%YPF#P=U&nFuj8?|>pjj?PsyBuF#|sdi3Z~eQaz@1z>h{b=kwi!!|I#N%@2fjIh2w4ginqbB6f-)7#rC e^j+WkkM&Qy;o)!vrkn8q0000{+P)+ak}X?N45;35ED1tRB%910b5$6(9@RE(%19;{+#Fi<=zM8g0AA2Udi+6zOVcG z<$vARllu>RenENxhFojX=TVvVfJFcdx&WL2i)k3B0mT7W1fW;T5T)vK%O zaw|UB1WIJP`^+VJr?UW4A|PPlgo!e=WCqGR26R-1_;E>%#uTyK7HMF>Hrbq(4+U@l)N2EXbr4279G;gV^BpaThTqBfX>Uw1>UzL0(V^v025vZVH|F+ckqnMJ5qGDzBf@ssc5Q%68#U8 zo<%m|DuwhM?Q%(+9c#LvaBLo5b4nH1eu&mkxZ_LimZSmKwY(6Z*Um%_Xi3ubfgQfU9{I; zT6rL*eVPIUAQWtake3Pxr`@+$9iIa?-t&hM=}r4Ua@xo{GdN*ShMLR54V^8#|F0R{ji z1i3;9`C=K0ro-vr0m35S^P#c2inMih!6EUa(swaDC(GgSoazNo0-%4A0ssI-OPK-2 zCQhYuV!bHA&~-?Xib6?%D9d074+=n16bO<8Mb%+i7G%``r3Mr^i&82NVW9|ZA#N?R z68TYCCdo?PkIQ3eTvdUA46K{{n#7ojSP?~y2yJ2;7q1eD?j#S2v zMG}$D`>3tTPYn}_Zh&Jsup9$T(@+#d1jCIGbp~hq&mxhEL#&7}O%sH$@YyXo-x#j% zShwNkrEAw??~5;HtE#HXrBcZRU@ocv1u)`)crdAqc^2XaR%%nPx~xJ%)f9uJK)N76 z(M;Gl77fi&Bnu+uX3k*p(gf6!fRNLUMxPr|pB(|lwBA28tUvR+-#aBy{L<4;|6+Bi zRH_Px!*&2<@fHBs-3K#gN1jUNMOSfQbXj9a;q9zCwUEW&_yQPeU}akrGpQ{8`SuYw zeJjSV{>i}v8{VOPRRCu=xZr7i#fCX7 zjpj91_4Hhx`}PAn@z8_YkS$3l$p!@3MBk){XGbIqjpiZ7-T*`LV6|}+-aQ6ufyJTW zIb%vU2>@7EJOi$N2kc-jDtu(b^lurSOjR8^G0aG+LbY6+`gjYQZ(V~GwN4n6U`-?h zLDn#B4`TGx2u7d(F|vcF@ZQN;OYc}upZMj^YUj&}0l*A}LRO_xk?=|Xf&YXGtBGgR zrSWrbmF6zYF7;dG4L7eQl2jy>Y{F71D%HdaG)=+lrv|ZpLp$DhcK`?9xquHYi1g9N ze?!^pzD!;@czA)9OYztK{CpGu>FDUtQmIrLfPPhgV`=D|QknP`GrwntC;9lJ9maEk z-0-RR^t4tJa57)Hvzv?-09i92m=tgJ&qC7)ty|($&Sw-cWw2UKr%096ipTAm&lk$k zKvf{RVZ(;Gef##sL!prNsm5e~4_Gk`9@B7KXGb8^ifFvH<(8s5ynfYfcdYpNOGEYh z4*Ub1E88HHbLQ4fot1*ZR89<@PyghRAJqT$#g{5y|Jt2eC>U(}=0m&sAAb1ZKEL1p z)>BVCb+)~|y?jm1i1va>o`AECbp|FNH>ACuPU*(`d!9Kw)qS+@9a6=cg?hj5(pa)m zu(@5A91d3~o=hg1BVk7}lWW?(W5?-@8#kWZzJ2>ZI2_I=5()YLvt|_J^mn^B;mlx= zc+qCReaG#?Wv=VZ;{*J=Lu1*DtQ7z#02GhM!?(7spgleJ<(y9E@UC6EJ_rVbrCcs2 z0Wd$4H>AD2%-IvWov$B;Z|x)BsHbahT`@LaY)odeUeh!=yWOq@gTZoLUES=VLx;xp z?%lgkTU#rqQYi(134BiG6qFJW!T{j9y1KmG-Q8}F$HS-7Y3s<5Bg**rxCB6JZ*MnZ zv6ulYZc;uY10}S#mjS@y@;ih7@Y}R$6W4or?Z4t*HF6CYv^JcT00000NkvXXu0mjf D22;It literal 0 HcmV?d00001 diff --git a/imgs/icons/21481.png b/imgs/icons/21481@1x.png similarity index 100% rename from imgs/icons/21481.png rename to imgs/icons/21481@1x.png diff --git a/imgs/icons/21481@2x.png b/imgs/icons/21481@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2b06aa81d5fba4cbfd132fc4899ac4d958dcf85e GIT binary patch literal 2165 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 M07*qoM6N<$f`Yw6_W%F@ literal 0 HcmV?d00001 diff --git a/imgs/icons/21485.png b/imgs/icons/21485@1x.png similarity index 100% rename from imgs/icons/21485.png rename to imgs/icons/21485@1x.png diff --git a/imgs/icons/21485@2x.png b/imgs/icons/21485@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9ed4164838c20de00b17826ae4778651e8a7c6ef GIT binary patch literal 2663 zcmV-t3YhhYP)0>`&fWgd}@Bhv@|NotTfd9uQK^1^0fd0=2AMlQSB6wwwf64YtEh z-B^oGpGI_dyk!uCPzc05BxP{aAOR=qdIQ?aXAqY9N2xwi*V3di0Y$ps&uFEaeW}Vz>NEGbQl2pum&(x} zey;ktRe$s^drhab*62OVG-HG_4a7|_PGC$yhC(r>Zj2U^7Z$%3`>WKDzjb+QO`Iq~ z{NwuJxYZlvVTu$(%+Y;S&(0hje3k%KE|=-**?*tN6pp+#{^%1Ey-pKp)4;_Gm(Xr@ zVkFnjh3qgX~&MtoR>gyOv7co6Pu1sC2%d4xh z)$MBE{$}x|-_CXa{`Kpz0cKXBQVASqih9?Tl(I*I6DOY&pU8oaBLa{%*r~?y*%umZ zNArco-uuNl*p`inBU2bXP=di@==2)cs>i9{-Jz+GgLELHB!~2_xGZnMYfR3fUp|g# z5nBQk;IFIOioJa1Gjo6ekdu?y^h5dmX9euZ-CiW4Fkn$2;DtUo5u9Ehf+P+MkATTg zmiDLEQ`7D_CR#5MnVW_ouhoUx#=ouwRX~0`z=I%B0lR*^)lnjN%`gbVxr{3AFJku4 zEE4G?NMrB=55-&_*`$e%+at^HF_g8=lb|#Z75xC2T%;SHHp2&^a%yi(*z3O;c!SUj zT;A+7RNreMX6PUgG))JQ#LcbSl4+nvr&Cwk+Z$(G$0Y_bD5R7UU8{5gT&erL=hq3K zJ8nj*0+ySb<|j`a)sGanS5z2W(HTM4Ox1JS&^ZGsf~gZa-8TAOh-Z#HgamhfFgi8X zo&W0Z<~=VQ5L33|cE;Tvi+}GgU@Vov7529OJ^>YgEtSC*=fO`tSG2x=p_KLN{!nkb zz5h=hALR&pKM#}u=R}NYNW={&FmT3UYFr%}A7)cUvu{4~#V1PI(BZru)7znn z$S`?{OfjnJ6B*B(i`B}<835d^0xFlm#_chEIns?}i5Y$FW^|$Fbm8ez6Y5&u4389o zwRd)1ksli7=>!959G9-{Kqp|hkj0^c`+?5wbIIa_y}h=zv2x-1C4bOs*@;X-No8@J z=ZTnCH={6N*8%{0Wmu_zW>;qT6*ovGjGzFHj6r&C5Du*3)Kn6oHn{P@`>jW&vV7h3 zT9NYe8@o_XK31f6IPk)kW!Z1?MDKd3ivo4EOd7ggYTnw!kuN+nJ3Muu#6>tJdEm%q+hC)B$|w&liv#N~u@=YZcd;;UKR0yy*nGh**LYCm~cvM8TRa)VlAB*7|`* z2FGg<9|~Aptg0JsTpETE5|a@zog_$SOp6bkzP*0=l8;Cv-H?smcC5@+3y2~?!-Y7e zCimfQU;1w}wp!Tj3{bC2&9Y71N+hgw!Xgz(A#A7)3@7i$+7srSTdkh@@a)`M0Rm>R zBCy-+dWzo?T-*f7hJf_!q@B2Q{)!XzTil7Pai7O1V+i&0_jmA%_pabyUOk7Svm+2{ zfXQMSR;n=9ZMnwe!_&EE|LFPo>(_4YrdZ63sel(|R^;*8lH4n_J!p60tIAA8Eu1># zzK@OVFztB};ByX7D3;?fQ^hT@gF}rkF@1uZh9XYU4iEpo(c+l?H?{*eRsL*njI_7U8Zz5 zaD&EXT{dbf^#Slvv+{8tpfVu4zxSelbCB$KrnBCP#MN&vlz#b><@%r-rjRfbDhML@ zp#f(gz?p}noyFB#ZEVzgs@2{!B(sYH<6tJ49iEV(9O@6k_>L#^5Bh-)9KA2*{Z3c` z7AqC1E-tEnI`+rmcMj}2<1-6w`qML==|{dc_VklqK*#GSQ#TMvf@#JvJvjqkNI0GV zDPOH_N9csv&r5G0g1{w^o}>tt4CEcpIYW16f3Fb%0A^>)R9=RftsQ5_t2Idg5&fHI z0uyhY{@Ig<9y<(Df+BF(rj96(@SGkD-GhQLqF5mli~mL`r!Ov6 zKFmGZbHWM(YFc5XZm|4*z2^s!D=vi?pOHX8zEpjCqA)!C{q*qAmxuP{VObV*4z*Kn z;Np81lxf;TOe2s2BZU|zPvh#f!Jz-sv=zIRO`w&|aBp8C)=hvnet%)S|2x&w0>DQN zNo9UsD;-{scUmzkOc;Xe-Jq0oqF3L}u#MY0?BexSUI+U|ESdRwE|+_3`h#ZF(I)fKLB!)zvWzga9L-MJAXn6uPi^XOJktwI1$ALYQp zg7liNcsYMtifo#-09JZ^pkchIakW_wiCWJh@y?1&8??8_1!0}q*Wk7o58;@ zF{Fi~!<33b)z*}Lb&bh-rzdxq3K}H!!SYTc_~!Um{H*n6w7Hjr>OLP(O3~sX(dl6)3u(i@ioU@Z+4T7UJt+80Qm-g7(UCpgF%xxqC||P#)pm3v3;@eIEQL= z!t+<#{x7$;!&{zbcbaGh00dAGpsM_+20s0_jR4S6xlE4zuHKhcJapW&027;=&ED&m zwP?%tEkg(+lroXBtk{S}$%A9Dd^Vw3ene{3 literal 0 HcmV?d00001 diff --git a/imgs/icons/21486.png b/imgs/icons/21486@1x.png similarity index 100% rename from imgs/icons/21486.png rename to imgs/icons/21486@1x.png diff --git a/imgs/icons/21486@2x.png b/imgs/icons/21486@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..68105d19f667110c437777a44fa1d0221c2e2c36 GIT binary patch literal 2782 zcmV<43L*80P)|S2>ka_LVv*+ac~U48!ke@bfN%m1zI&e( z3I(#YwMFLU<~V==0FEC&&gL>1j&hmb1oL}9oRe>s%Su*~*oN!+@pRfNO-%)a5Pk;$ z&N-Q$o~E<2v%3I_pr=1~M!>nMc)C>b9%9VnK>z>{7{fE){EOVrzWa|Ggply}oDdYA zeO4%!%K-qKIe$j1Hb!D_J5d&h+?VAxRMnh${BfV%!RPK@2jpgO3;9_RS#HOkFO|sO z{Phc&2S0t-Zndq$zT-ULnD*HGPyXYX!5{zZ;?U^m>sl&$F%pel`pn7a8ppo)MW^S< zC;hW8yx;*q(y~HbW}+`}0j?WBRb6l%+yUTr%hqb_A6|ONIC|`nuPKzgw6=7;ui5OT zK?#5Wg2152a+V0f3FAf+HOF-t)y+3P@#xXNyl-M+4#ZL@z^ zI4CayY;s|NV}9PwKUHWW`L_PdsZ(AF;CBx}p+HbB!}Y!IuWVIMh9qFyjRrY)?ms~Z z#mK%9^!KNssVX)$>Tq3;b1Kl0(Gh**=+Rf==>f8OeK9eaPq$Eb(Vr=m03hU3B@h6d z5ZoQWXA7ZgM zR7HjF1<2$ExM{njwqDiu9r|QD-W&5h+vB1n$4%4JuJrUUe#`3~yDId@dj&X}#83SSpw80uan{9uh)6V1N{h zMN%vl>Fn$*EukXdb4L_7_4sH?imt!$M&$6HK5nq6_L^%uA*GaP5e;fIhQRZ|L=mDS z@%s-QB18H6->WSxFN_Zl#>Ym-4%O=GRY8^l=7;JIw78;akx9c4OQq5t2KcUQ=NHQC zH`h9{R)#35P`wZ;_I&&f{U+X|(Oge&`rtBw|->+b^NSZ_fc(mM21B5zrt`DUm%lYwxxhgPa~xM(-`ZGZ zil%NZFDJWeYjV5Qkl+4g1+ML3<>E!W`RdO>R27L-kJPQzg&r*#k%Ev0+~G`tpok*D znC(9TxYcu~gT0+|PZ>^yRCV>Dk42Ssld?hOAln9>&s+QJ8P|uZQHP6%2-y|LZQHCN*^9v zc0)i2p8>!*_ezyY*!1c_GA8&GL0sT|LRDn3+tQWB`!^oeBGKXI`Ucl}66iMSF!c^z z`Pc80o=k>Yk|fHEKDcuAcR#IfZFCuN6}{UH1fnt`H$|mVaq-w=!5pJx9 zOLr*mhYvW%t!7b}o(})&>8IU%WY8QW#GE{M|C71ldtjPoC`lqL%SJ2~!Pq?`=yp1w zgdhk5Sj`>iJI%*0EiLWWO_N3>A;lPpyS}1WYLp&7e*8n-fbDTkiU2{e2$V`7KnQ?N zPfxp2EOwysi(fsQPNf1uDG9s)$z&3?ZJ?{`=<7|QV^}bBo$Tl)Pu4a_*KrzZQ`Rq^tNhRFb6?4(vtLiA z`i>=%Nm*58)EiD%+uS1Yc$_$f2|;8bC8T-f-Gv1JZz+oEuG&U7nn`yfeK~Vrc-X`6 z@Gjxl?S3CHFwyPuitBPE#n9U}n4L@tEqg6Ekj>Kd%Y(6=v|U-carHv2wstI@NIW|{ zG(5#QkyS;8APBYe;LvvNzyaO&-Q|s?AeiR(xD$*ugM}lf zd0}r35CRT96`VPH*3p5WlNJT6>6AyaG%`Lem`nBsxSy3cIZ@y!;J2$Sp_ugxY zs_YkK)l2pdR6p_1;ep=4p`2})mgjjb-?CP>ZLb=JZd+(r*8Kcy_GgbB^Kh<;nIqsc zH^=_l<`Yhe#S&S}=SfeqNly+B)2rLt@}`DJtF{%XuB`C$KmTvy)awyhrn2XG-~x+F z5j8!0AfMiszi&{9sBWiTe`n?L(!#aH#jS3&Y5?%Do7A@?_}1)k_vN%$EYjYG9~Nu2 z9Zjet7KqFfm7w!4-~MN}{pzct6OT)>EK8CkvE04)XcI>s>eW(xvh7$~J6D!B{_EwJ zJGi;J{UQ6v?YLMh(#}&)$??YZh{QxPEF?_j#0mR3K?peKyBSP&<>cM)qIBV%b#bXF k1&j5%SDv1}t8)POKUT>$)imfqLjV8(07*qoM6N<$f*$~H6aWAK literal 0 HcmV?d00001 diff --git a/imgs/icons/21487.png b/imgs/icons/21487@1x.png similarity index 100% rename from imgs/icons/21487.png rename to imgs/icons/21487@1x.png diff --git a/imgs/icons/21487@2x.png b/imgs/icons/21487@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4d04e8513a2ce4124d0007d988b207511bf200a8 GIT binary patch literal 2647 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 FV1lycNY?-W literal 0 HcmV?d00001 diff --git a/imgs/icons/21489.png b/imgs/icons/21489@1x.png similarity index 100% rename from imgs/icons/21489.png rename to imgs/icons/21489@1x.png diff --git a/imgs/icons/21489@2x.png b/imgs/icons/21489@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c147ebb3e97efba421a9ca9987aa40df50c0eb13 GIT binary patch literal 2078 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 o_l#Tq4ZJQ;B0ssI207*qoM6N<$g3!6h!vFvP literal 0 HcmV?d00001 diff --git a/imgs/icons/21531.png b/imgs/icons/21531@1x.png similarity index 100% rename from imgs/icons/21531.png rename to imgs/icons/21531@1x.png diff --git a/imgs/icons/21531@2x.png b/imgs/icons/21531@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8084bd72ef2278b596d2f6456e12f1c4ef2b2017 GIT binary patch literal 2079 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 DP0VBo literal 0 HcmV?d00001 diff --git a/imgs/icons/21561.png b/imgs/icons/21561@1x.png similarity index 100% rename from imgs/icons/21561.png rename to imgs/icons/21561@1x.png diff --git a/imgs/icons/21561@2x.png b/imgs/icons/21561@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8261c50c320fcef700d5bc3d7e3bc8efa8674f78 GIT binary patch literal 3296 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 U0;2gRRR91007*qoM6N<$g8Sf*YXATM literal 0 HcmV?d00001 diff --git a/imgs/icons/21565.png b/imgs/icons/21565@1x.png similarity index 100% rename from imgs/icons/21565.png rename to imgs/icons/21565@1x.png diff --git a/imgs/icons/21565@2x.png b/imgs/icons/21565@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0c6e981d10536706a2bb4f711288a21b93797eed GIT binary patch literal 2866 zcmV-23(fS2P)mxX4R(zg8+#nbAw+?Ql5vtYQl%t?xCupVTBSE> zj>SWjC_-(T;7H-2h^VC^1SJS4H3Zuja7vAhX9f=*d&YA=bME)O_t|@|)dvi65|gHV z?q6CjpS0HZ`@Xfb)_(#2um79K^+5s9oew-94Np$W*JJYZ6S$?D*j#h`)GTS&I zftG3YSF%fqmg5cjg7JPPF`ZKCs$!fT;9n02VZh%sj4*Q?Ltr$>h!>(n z3=<-R9H%KMdMFu8_79ae<}QP|UR(dpK(kujulWt?c z;^R)U{LT#p^N#{hwMZoD+ICp*Xpo6KP8f?4s>B?-?$-m+_DJ__pVf@^xaZi_;_}X2SrtaBnbd>UFKLn*t2c>-<>-3bn`}t8v!U_ z1myrr2(BCQh!`dC+6YyWj#)JV@y|BP!1q7?DD$ zUrr!VCEmW}jy+x5ChpM{BD-dZ69}YdWIM>N zgRpEDwpoWDs_+E@P$Um6 zvt&V16qE`Zh;X3QtRU6D10DU_VKr;WE?>d&+<8=2FL-b*OHbYUWmepH#j-NXA8di( z^Ce;qX+~Q0x-oL#OMgZs<%sT6xa-)^G(YL=-v-z5kXyTgN`4*DjvjE&!P=Esv|2Wb z%QM&(38Il0fGy|8yL{s#b30D)jj zA)%pzU;K7u^V&pQ__2=mPc1Gk{uco_0VagekN4c?GvePM1p7b; z$t+$VqCgRdCQ;Z}L3eK-tVRu$S`*RsZsam+=;-c4$1VNv1*0fuH?TB+0gMsEx&|Tp zqPTqaIV{e+0lQuT|zL~m_VtlKT=slWN^r~V?fJ#15ea3H~_fAP=HoO|K1f}kiw zQB>YDwjc5CK}e#6JMaD+WG#SVu?j{+Tzc~bsBQ&~S{WD5oF90NPM-r{2EaL zA+D$@+Iq*3=-Yv%g)6AnYlx+~L0KJ#dsFz$(u#1Kowk?I|R*>aIzS-|Y+ zXR$W_4iwo%FyMLBhFWo%(3C__Mbef42)f=*v)Pg$0>A_&*c)Y8yLb^flPw-nyqPE8 zy*6`)+^GuT|x2k1~?m2`V`|pCwDU47Q;YbvT?jda1xfhjk0W+_^fXw17Qf&ePKEPha5$LM_zq(N(=;2WO`Z_ z^7$Eou>@URol`TJynlH3?{g>r;}iESUCaES^VZJ?#tz=^RZDqcc-LNRuB{?y=uor( z{{5*Z@XMb)hG>|$wx^io3T3f~@72#V*Oia*=7k?@gixENBbs>>x3RM=7vI|#&d-qP* zCrwOor^idD8%weCz#rrmTpjdVKA3FrJnQ*z|U5js3POj4;7nVFfPU0t%+ z*48C#Zf1>v(XFDYb|d}GBad9VwE2hS1`zTC;i$3NKe+cN4}Rsow}!U%lrAqUi}ku` ztEx~WL@F|dS~hE%xm>Q5PQwM#?|VT)IOm-FiYX-o;QUuy5;<_-0G*ha5CZ}DJ389@ zU--h;%scmvel53g^{=DJz8^mL&|ki|e|N7vJ$+TKnGIVNXqk(0jWN_LOKO^D&a~Fs z+r4AQj&T6*Cne+~UGYc8r>3Szu~?LbhEn>`qkm;TeDrAVKOR56apuf(zL}X>Y8aXs z3PsIJm$FW^T6J&?>==&S^f&aoiri#;&=nB?CMSpG$;nCKde_KJ=KhcRZ<}HsOx*JL QzyJUM07*qoM6N<$g8HC>5&!@I literal 0 HcmV?d00001 diff --git a/imgs/icons/21566.png b/imgs/icons/21566@1x.png similarity index 100% rename from imgs/icons/21566.png rename to imgs/icons/21566@1x.png diff --git a/imgs/icons/21566@2x.png b/imgs/icons/21566@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b7fd4a445fa20ec8fb1f6df1e9ae19329d34f132 GIT binary patch literal 2923 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 VGmHXv>+Apk002ovPDHLkV1m1Ws09E3 literal 0 HcmV?d00001 diff --git a/imgs/icons/21567.png b/imgs/icons/21567@1x.png similarity index 100% rename from imgs/icons/21567.png rename to imgs/icons/21567@1x.png diff --git a/imgs/icons/21567@2x.png b/imgs/icons/21567@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..22ec6906817e76069085954a80a825f26bf95e6a GIT binary patch literal 1501 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 X=Nb+)y{|n)00000NkvXXu0mjf3q`HE literal 0 HcmV?d00001 diff --git a/imgs/icons/21569.png b/imgs/icons/21569@1x.png similarity index 100% rename from imgs/icons/21569.png rename to imgs/icons/21569@1x.png diff --git a/imgs/icons/21569@2x.png b/imgs/icons/21569@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9655d3a212dc15ca75e96f8583f580a8ef3f448a GIT binary patch literal 2530 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 e!^lmU2<&gMtut06J`r000000GRdRiM=&B$dv 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21594.png b/imgs/icons/21594@1x.png similarity index 100% rename from imgs/icons/21594.png rename to imgs/icons/21594@1x.png diff --git a/imgs/icons/21594@2x.png b/imgs/icons/21594@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5d31ef653cf8f10d54f2178ec1834ea6c0d3d504 GIT binary patch literal 2516 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21597.png b/imgs/icons/21597@1x.png similarity index 100% rename from imgs/icons/21597.png rename to imgs/icons/21597@1x.png diff --git a/imgs/icons/21597@2x.png b/imgs/icons/21597@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..34b4f0d60035e978eccc7ce1f97ed2063a03ac50 GIT binary patch literal 2105 zcmV-92*&q`P);8UDI^X7;6(w9>9tE6I{CVAYN;tx@A(wo& z>FWN!@BjaPd;@$DjE}P;M~*1#pA!=k%EZJ3{X#K652Tba#@NOo27uhk+FP3RS!-MF zyz_82)j75;nRs?!aA0BQuAx`c9UU*9dg`ee0zh7mFaOs92mrZzbaXJ%-TSd*ie{CH zs4pyFFqg%NhrV|8<=_5l;_B@Dc>v3|66|vcIC$hpIx)QG;{#v1tM$ae1LQl;eUDVl zrcXH6LZd>HJ-sGl$`4lFzwk3$Z%MdWFlDpBTS3#drKW1K#sek4yexAAgXE6(_UPTi zL%4G3vOjt5T+*vn_H7mCR(C7`K*q1{dIo?-Ij2gaE)t9&5s$(KK;tbqHg*^Tz1_@l zY#9nNxncdL*s=oSYrZ+I9KTzwqj{8SFSPf(!!^ z3PVJKs!~c3hKm3g_Uxe(Q&SWGo(IIO2q02Q5JKdmC%^tJ5s81JnMjO)l7uG!Eu9fl zvkOuqgf;XcIx`v4bX`Q4f;nB61*1kR&O_mO%K$=5O@+_jMg<4}5JKe1#~*zmnoK@z zCtK05T{uF5h)@bGLK{p&qEbTdwr#kU&trJ^Fp^;a5(ZGi01vb!c`dPhC~uhibKTwQ zSGH~YXjIDZ*|TS-$%eb(Mge4EVuGAIcaG9@$B*Li_|rs)pz+Dagr~DK+S&&0`9yGE zMuPx@1N~$rpGW9(Se}nS)nJ)TQe0fZU}rkko{0Y;x3WT+qTs!im0-%U-uW(Y_`kB< z017~4GMT%N9y@wbN-37-=19->9YjlKVASgnL4X(msOw^BX&FM;}LD zcNTA)IgLcN8!_L*@v#Sl&$)Q<=f6-YmC9uRM*!5;_~ebpPy#@?T&}E^D}|cv(!CEo zjLyDZw8#+m?c0Ns4~`+1>&8sEf+a4{wsRNEatVGIqCP(dt8UXdGTw7iMe+ z|CpV}v|)mFrlG|&Gz!b`nl_~8!Lpi|yE2V@qk%Ik%ji4wWzxB82un2sCZS}uZpu98 zCIFO5C9+uyh?Ejfe)Gvu+cbaeQ)SnMtFuy-gffMoJDWv&TN|p?D)fR5k9+V#iN@jr z2ukneE6<`2lPgmCo z?s<~{8RD*swvH5S@9KoAY6!v*P1k`W1T+={p$v_=S;!!O8qv@+O&HZ0maff0r3|4E zXqpYw>IN8Ph%@Gfl}ZKI?*e&a3j_cZYBlSl4=>x45D|JFxaYy~Jb11P+jbzNgkTJ+ zZ6VZk>_4y{8e?#pHW*_7A@EESoClDM!fw=IS{6|$5mvn(b%b~^olfW0E51>H1VCEj z@u0USCl(f$2qOe>NVKa8Qt=p=6sT2JF*h}ZuFe!5dEzm2Wir^aZx7D#Wk?QEc zjyraMh8)5);d(BNh6NgM>e{wwX=&LP1i^_lK6c|h5cPduwVU>Qdt2+?rfrLd?;C~h z`ee1biocwF9ZXTcf&lrMYsh7Dn0)gsq&hpWbJtGTRuidI3fE?4(3#1gmjaFaJi<~@ z`j#b>NQ8k9r|CFL03rbV8#iGD!0u=?df@Qk`+ltJdQQ_cJb3&;`Pv`PlHogtv8}%k zimIY+)N%fe^N1y4ARuTqn*abx6~y8(l!`hiqiBgIgzGre<34y8UUsbJPi@&5` z4HK4Wfhmeq6-5duDd*e?IsaX?TKzqM0)R4r)y??nsrox-vAM&kI#kNpD{d^kNyF z=b=z2BBE)?bY+C+dem_paF4%h7{+fr&%3x*@?`+-W+XQ?B!m!|&1NIza&;-Ww6fHl z%l6G)n-vESjt~(Bq*5*;o6SnjeK@v5ecxYg+RZaY)%Y`jc>oJ*W&ccUX~`(1vRbX` zG7Nti(bVVCnRM%Ge>#h{_Ey>3+k*be%Ah@_jyaa%66@NOUD(*UN=f7YOz%fEd zzou#E@9#Th+xASMpq~~(e6&V>-Gbc)ZbtwEupK}L00p3X0bv2S3}6m`bvwkLN5IDU j>Y5M%VEuLb|HQum&@kgY)10%-00000NkvXXu0mjf02%7u literal 0 HcmV?d00001 diff --git a/imgs/icons/21598.png b/imgs/icons/21598@1x.png similarity index 100% rename from imgs/icons/21598.png rename to imgs/icons/21598@1x.png diff --git a/imgs/icons/21598@2x.png b/imgs/icons/21598@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c369921d53d506c9c2e5cdbe85b31778905945c0 GIT binary patch literal 2180 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21602.png b/imgs/icons/21602@1x.png similarity index 100% rename from imgs/icons/21602.png rename to imgs/icons/21602@1x.png diff --git a/imgs/icons/21602@2x.png b/imgs/icons/21602@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e8d897700c7979bcd5a44a7c779520bbd40a0b31 GIT binary patch literal 2367 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21603.png b/imgs/icons/21603@1x.png similarity index 100% rename from imgs/icons/21603.png rename to imgs/icons/21603@1x.png diff --git a/imgs/icons/21603@2x.png b/imgs/icons/21603@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b1612f9eb8b1c44d94fa43f36ae2b0247525dacb GIT binary patch literal 1726 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21605.png b/imgs/icons/21605@1x.png similarity index 100% rename from imgs/icons/21605.png rename to imgs/icons/21605@1x.png diff --git a/imgs/icons/21605@2x.png b/imgs/icons/21605@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c9a98118c87a9fd3a2e76a3719c379e0a55ee249 GIT binary patch literal 2489 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 D{5ro# literal 0 HcmV?d00001 diff --git a/imgs/icons/21607.png b/imgs/icons/21607@1x.png similarity index 100% rename from imgs/icons/21607.png rename to imgs/icons/21607@1x.png diff --git a/imgs/icons/21607@2x.png b/imgs/icons/21607@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cc9401071a3c098aa71eb02d9694223d6ccd1f9b GIT binary patch literal 2383 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21610.png b/imgs/icons/21610@1x.png similarity index 100% rename from imgs/icons/21610.png rename to imgs/icons/21610@1x.png diff --git a/imgs/icons/21610@2x.png b/imgs/icons/21610@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2d1c2bd9a5d5066f40f0bf28ff2c534b6e7d9af4 GIT binary patch literal 2584 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21618.png b/imgs/icons/21618@1x.png similarity index 100% rename from imgs/icons/21618.png rename to imgs/icons/21618@1x.png diff --git a/imgs/icons/21618@2x.png b/imgs/icons/21618@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bde9d90b15313fffb60b3c6f7c7d71b94142d739 GIT binary patch literal 1992 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21621.png b/imgs/icons/21621@1x.png similarity index 100% rename from imgs/icons/21621.png rename to imgs/icons/21621@1x.png diff --git a/imgs/icons/21621@2x.png b/imgs/icons/21621@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..eda2a57aa40bb9857fd56f8e8d46cf8eb5ac1381 GIT binary patch literal 2454 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21684.png b/imgs/icons/21684@1x.png similarity index 100% rename from imgs/icons/21684.png rename to imgs/icons/21684@1x.png diff --git a/imgs/icons/21684@2x.png b/imgs/icons/21684@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..65f7f6c7059d1975a1d7d470656b2f12dc7e2c10 GIT binary patch literal 2565 zcmV+g3i|blP)5g8|M60E?9Rmh(Ru2yc@BHq0|9b|2 z|7Sygl5YqA!yy6~0_@#Gn*eYR0AOP?oVg4EwzoY5K!70pc>qE{XF+e{4H)4(1Cr%H zG#p{CB!VdbmQmm^_rM!57pCR8iX6jnjQk+>{!M1>YL>>Cu{Kn-&P(GCbtIq64L(dl zQ&0!R0@#c}Q$qJbv%k8uu(|19g?JSJ!QH#~)^5QbNv^OB8EstGvpABWTu+Mp7Ao^E znq{6?qao{d5haugr6^`HEUIQg+TGm=7XLjrZeMz`C}27fs=dG}srOfx7T$l~{eFP0 zfZyu=gqg_;g(z!b>sEkAt@d*Eb$t5#>&xS3EFYib#u<&d@ZN=xb$g}{{Dg4|MgEFaYk70%GK}n zR5u&PogWKR_{I>=*@=fcg8(5|Kxb$F6yV-H42M(ZK}pu|_L9)#D%ihmo$l?Sg6jwOIBzv zQhn>t+xx?zJI??<{}nfQ1tr{fqCZ3GGHGcN!xG_3-j49<2qHzLPO29lq z4l}g6x++^~N}ruf=3G*}To%?E4OO|+^Jh=SbbR<-;p%rBs7N;uA4iS>+&+){JAkb% zG(KD>Bq7`e8VMmg?O?vMc=60=ts6=OAxr>J20Tq6xwwj>RvXK#<=?(~S$uMESlTiV zR%-_+cxxRPZDBGxnlFzJaJ(3Q(@B~T2QhMtZ@>scIMd(nNQO|th)O4AUTfCxBpXmJ z-^x!%c?dudEO~Kp6Y~~5!h^h$lD5g{> zR?bdmw9GeTRlNyZ@X#0W>Duisd^bTLli7?!}IPd?r|;Yv=NcTN|DuP3LDLyA#w;OkPUYVn1< zyZQ^%EJT(Oa#RihVEbHzH$lC?#0pE9k`W93nyo9(RYZcZUS_S3tn?9;ap-g}Wb12} z-~P+D*07QS5=r4g=S#_;-%EbJ`w^|Qe)4p07kLP-t{bE{g{GJrTraKwS`kDL+60FI zh8O@m1pwGM>>%5dD9k1(ilhW*JI)wHncxA_;GB0D5wf~^iLUkg{Wn)H;z7c~`lS>J z4A4_LMB*x%PEX}8f4LV$Qiap;NmJ#yE5W-oYx(%1Z6idObDG2-Lm3HZl%TBskNJwg*p-EN0wXzuX6H zS}A5sRD)xQ@bS0AMf;Vv@Mv zgFBuTrS;)O)M~%WXH!wm3kV*8h*K(5f|jM7fAr)=7(qSFf)GjL7ic-)GRO2@|f8jIK#+0w)6jh9Msr{k-`#sQ@!fUlO??na1w%^5>E z=SVw@O=ApV+9O($GH+DnFi{`e&njoX^Wz*9CXhhbX%c@~ZZTaxT&~ zgS7Q4;%nobHpRgu2a|8S1hBgq3b?WK4jcfgWpe1w z`{0=fw^4|@R~*4r&82Lfot!=@5dP2hU@c+7Ebwe5Bynp?j%%`oNl+K<=p=$?D_XgU*Hu#rsLAX3o4ri*7&MvyK zXnuWs^v|@_`Bi)MjW$IA368mvLNyj7V?ivnWud8Qz08T#4M9F&S2x%-4JB4{#xNdS zyEfqM&d;6}&3|N^>7sGV9%%ib)A6re!~3w~i&0^xP?wzGMOmA}ho{qj%m!=Yi`UoN zLPZ3-z`3oMEpj$G8Uv|wj7?2BSWbf#)HNcafk}?YRE6d@2;o^x?d0vo7x!<(20nP-ozKdjEes)` zn|JQegTszUxQ(TQUgJV1Q_&aJufFkjD{1l`MNZD=3n&*$sFzFIG?m2&Bgz;TNs5S2 z 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21687.png b/imgs/icons/21687@1x.png similarity index 100% rename from imgs/icons/21687.png rename to imgs/icons/21687@1x.png diff --git a/imgs/icons/21687@2x.png b/imgs/icons/21687@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3f1d2be1beae72003144a79dc57ac9456753107d GIT binary patch literal 2624 zcmV-G3cvM^p;8OQ(cGJ7U7nI$vHWM3f>!A1xiAz`r=3ps*xQma*u^%N*#?T1#nc_t~MMQyby zS_MU*?1RUp5vd^>K!OlM*aDfrWFZNYnPg@%Gw(agJMYpDz$qYs+G9_jkM}v}-rsrd zbMOEE0ON$i;UEDJ*DMiN*8cagd-rY%00}_T+S+PsZEdvy&;TH>uvFJYqispcx&c=Zl|11C)L!{G}-4HeRk)Lzfbt-(q*Qani?yTF^KUobe}uRy}5Do zzz2;@p_kXL9m^isp4}bE*VmIf zckV0~1mSn9R;|kEb-SlAY=nR7tv3eV+w;D^v@j=SNzHuAqWfnV>Rxzt=;hb9hIYOF zyjt0JXgD#@;mOw!Em|@0nWW7OXw(rV5I~}M_yP|nL;{c`fFQ}zLbO^F5k28pUS2;BKtw&HaRC6(4u_+N=eSqay!fJ4 zrBaE`UE9kR)GSI5jb4&AzPo9lEZ?H9ylY}=f3G{a_RoKdUJNF6QI?e!FT4+3#}7)Q zJ}>$G8Fz@&)A)6j3eTo7e>6xiLYSon)~2j^u@EX_~*V*AHZj0qDx7t7&tUnBxvzxav7 zll}RbD^8OUn~G!F8HPW+tO_U44j>Z}91yNTTnA88R75m3HZpZ}br-XgV{0jrqdb47M*nD{={%k3m~;PE?>vB0Hn=k6I?D=xV5$Q!@9b9Z+3Q; zdiVA%ciDfiIAhb6tpk&%&pGzguU4ODSq7_r{g~z6xs_DGq)+mZDVE>_05SlySqW>^w28T<{5#19fAlDf;xJM(i{U-rfzSTgh_fy?1c8Tl zbW9o=jXBfiZZaG`akVpTi~}grv+x&csU4i7`+l1)3%yNhFFgbg&t< zQo24>^m&FzB~7Ypic;w#`%SdnKFGm|>wfU7>L$8eF1EC^G}zG4(B|`bcQiD-7A!0* zR7BXgoMR(~yn@1%7hZi6X+#+9A8&)nlnI4g0gYCV+@eyXrs}|P3CQF$G2oAp27?Aq zJv2`dN-ZpWx;bFWEwd2o_k+B#3$GQUs}NYTX3epue)2f={BNFlxaY$82?`;io?3Mu zr8k<;cd!vTg=I+3E=Fw3i&Mwjz=ncwx%&`fSxn5o135`GhW#uR9605glA{{rShHcT zE1_-mAhZk+uC2h0YACu~F80akWwQR}&HbuN%?IR^pDG~8?d9^6!*`6A87ZC=bx~0;YUE^Qb%8*d)ViQFI}|4BA>PCf zfK;dGlA3sCKPd_c!fNx$gKl2q`oJ#t4(WWJi?HhDfL;x=(TLIEK^VXo0(kMX+VO5-9`g|dV*nC;6zGkuN>mjx>i(@uEHbg~+ z+^U4PTS~@0=Yrn7_NqzY+IuUZPt_tGk72|g07X&g?d?T08~~q8qWx?yO0sn1k1LH) zf)~d|!bH#$p)Pp>%HdJkGIE5rvGoW3t(4>Hwgiw^3aUp)H*h*_AsdZPqtq!iN5ZLd z_Z+!^P?&*2sY04g3zi9^_R(dSR`p$MX!s+FwMpEUoeZ5k>2B(;&a z*>7KviVLzu`;tZQAx&x-Bz4vlp)i9V6SL%8#HI!Z}wDd`REJe6%mW)uQNx=@If&vz0Aw89K~i^mQcD)>eP^R^;^Y}3&#EP+R?fgL z>Rv;C_en7@&_y0U(K+_+)?Gd!K2|az&x$}y5)%cMwD0NC%BUglzL_Qro68e-))oO9b(fCQ+XC=>SRh(m(3R`A+l|{vU$7nPfwtaGJmqJFe5JZ9( z;U|C*9*AiuXeSs^s#TIYe^_*p5>8glfTv*}IN}yx@%0Qrh@E91%KMP$`v^z``^jJ! zexKie7{FJ6TVqm_DRPKBC)5KIY+dJ#yP)kr4xecdVFssfjD z4iNBwf&%0_?T{ZIf@WB*PzU3pD#l5g2*=AvAZ$>=^QTONDi%UOJx~h}zFf#K24w&s z40^;``jNQN6W(@!xDMnjh)#eiF9TZoKsI)Oii|)Crh(sm7RlS~HJ&rRZCp!vb@I95 i^{>tScO%*VJN^Z!Wx(rcd{FrS0000 literal 0 HcmV?d00001 diff --git a/imgs/icons/21688.png b/imgs/icons/21688@1x.png similarity index 100% rename from imgs/icons/21688.png rename to imgs/icons/21688@1x.png diff --git a/imgs/icons/21688@2x.png b/imgs/icons/21688@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f59a720ba4a1757c58a286c1176b15c1603d2535 GIT binary patch literal 2612 zcmV-43d{A0P)e2589n#Cr+v31OP0K^!3LAWA;be-NYa*>Y-EDnG-;P{NvkU|~fSn+O7r;S|ciBjmEy=B8eiO0%u1s;c*d%|;eAG^7Xs;rm2mv)LE`qN7KT-nVDZ zp2mWLf-?Y4063AAmG#x`-MjZSA3Qh@fOODSBfU@uvG78LNT>lL0F(d_;l^wG?!%j# zo9FG_yLZ3IWNHI&yt=CD?9!!6yD~GgPMOT+_D>HUJaA~wrYbXF?0sjk(Z9MvBP=s2 zg_V#9b#?T21wjCyuC9)5Y;2^Po15o`!{OB{R;;j0OiZu<=%r6BO*fm25}igZo|+0I z9p@aeRWH9hlo{^b^Y!Mp#~xZVCoJX}pCC{XCKipkQa$mCP2dQ?|3?69HXGH@&_I3k z(MM$fe!qPAa*NOB3)j}v7?&+yo;iE=Y^`f#B(nMM8$AY{R(kI2S=QwmlWctV4YA7A z=83yH+<6MpqT=J93o46WArG^DKjKB6z7!h46F?9ELS~Q)si~=9Boc{w*|KGCu3Wit zfy?CzJ^bLJwD;ayJ3G^A6@|lL7>()Jwso85rB`3=Ge}69O0CSEb?*bpw;SHXrIVi^ z-hX;>VTN>PUU+ExKomhnt_bt)P&7ApI0b-51B96XP_3=4sI06^x7+PSE|+UsE|)Ro z<#W^*&Ub~nI?qMfP(bjwU4lfyh&Ya?v|5!ucUHM_WOzvUm~~!k?FAQA2>xKQuI5xu9A* zs~}6u^BleIgUzCin|I>*XC8+F(-1wl5MSEu@P%UJvez%f5*(CzvF1XQu8&AfFpDN$ zfgdhoF8H?qzTq|+;4(5YVjDMZyx85*vGcF%-kXZYQ=Hw=88)XI)B-OsD^~q(;M5nN zht8g9$Jz~>gx6nx85RwN?9zKtQCWpqCB;ZnD=;fBgUCe$?E^t(M-ON1>+4r^_IWBA zd8w|<0->?zRtBy$sFIQrh12QOty=Zk{qyGC^NV->_y^PQh$|r%(@Z=Xl`X6&$;m3Y zTfO8b&kNbgNkXJLlY!~!;3nXF*6e=xp3QM3?Ymi99Ardph<%?2jX$mZV`XNbBT~M&{xZj#n zY9gDCfx20R*PGEb5Lmx{z5S(M|BCt3o3A`O*xz3wNd@KeYZud6Yc>X3w;;Qq6zSPT zh)#{8`riUy8u9TvMXTl36DI=6IgMtb2rg25m|)+0YAY=Xj$_t)b1fe%st^fR#J z6o3)S5D&7DNf?x7>oGr9#vQjiG?Wl9)Z}xNL9Pi1wZRZ+0Dqf207|aZBo#5sFvW9m zVzzq4f&P@jd7w@_KBn=yM_|^90j(THy&jXEQRt0kC}eU3MKt&nk9j#1_m3vOz|e*u z;l;iFP-2u#3X_E5Lb4cPhrB_S?6_i9w?wRl2Jmg{lTm9bI!1@b`epI)ULhGhkqC@8 z*HzC6)jvERTD1zXSQHaJKWLi9;NT#pLw=-^NjQ22QJkrvemY-2O;Y^SM2H03VfwP$ zFZE0^ripgO8fj?#w^PpO+X6u01<(UrdRjuGDu_(S?x*F-$J#^c2lu!4AsAvIk;!gZ`3q3HfCZyF2AZMt3O0A><$RiDPYVKf>@@+-*z?Qw{NTwit@Agx~G=F z3!Tt1N@>hWt{@{d#b=5WVXGn#DS|)la5!$*f^SW^-&_C%jggOx#Kd1pOCOQVU0mc3 zM+KfIB+4f7Q0+YIJa`JZ`9(tCS4T<57tPeAjx&6&)hLWZi;ya>xHz3;7K+)_d^xzE zYrqRP+4AkS;7XN&6rBVhN-!N1UG7#FKhnHqE7#d|f#jN1WZwKrta@ubhI_kszv~ip zuJhv5wq1L@Tx_cNu3R(xQGt)=n{+?Y=t}9a@xu!Z@EFoT;J9(ji~w3Lg4Cu#Xt4*S z*%pe~dgxR4d2b@U(5gpu?INtSZQwiGjtK$J5Zz|)zWC=&`?mrJXXr#v3|#gv7@de| zLu?dGCTGrJU_3F6!Mb~{l7F4@W&}{%bA>8BLEI|kFCvxrFg;B(oo-6cU-0k}ll}NV zss0Og^m*9sziit70YyNRV&&72k*<0RCbrNZAnLLkEF)V3-Po;Pd)?rvaP=`V|H_ zr4)ltL5xv7gFzL8iEn%m!W?w{ECR|9ujPTHQI2H%@U2Pt+ZecVW&?p6G$f$5I3PYZ z28Bl~kq2VDESeA$;Y3PA0iiT0-0Lg|Ry+z04M06Wyg3kI3Q|8n(zJ-S3?qJXIKATo z;szi+AQu6;tQ2S&0@c(3Iy?a(phIe350ZEK)=bIxj&(iCYw7lC*1!Jjzk8DXzw2M% W*{>OG6hIIF0000*FN= literal 0 HcmV?d00001 diff --git a/imgs/icons/21689.png b/imgs/icons/21689@1x.png similarity index 100% rename from imgs/icons/21689.png rename to imgs/icons/21689@1x.png diff --git a/imgs/icons/21689@2x.png b/imgs/icons/21689@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0764240fb90487e677e9e876c73399f2c72c4ef8 GIT binary patch literal 2625 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21690.png b/imgs/icons/21690@1x.png similarity index 100% rename from imgs/icons/21690.png rename to imgs/icons/21690@1x.png diff --git a/imgs/icons/21690@2x.png b/imgs/icons/21690@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ce17647a80ead27fd3b15ddb53659c059261ac72 GIT binary patch literal 2585 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21691.png b/imgs/icons/21691@1x.png similarity index 100% rename from imgs/icons/21691.png rename to imgs/icons/21691@1x.png diff --git a/imgs/icons/21691@2x.png b/imgs/icons/21691@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ab65c6da959d95057b919026eea34537d812b594 GIT binary patch literal 2308 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21693.png b/imgs/icons/21693@1x.png similarity index 100% rename from imgs/icons/21693.png rename to imgs/icons/21693@1x.png diff --git a/imgs/icons/21693@2x.png b/imgs/icons/21693@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..22731abf069c29c8afd952ea4d25f6b97b1b794e GIT binary patch literal 2280 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 Xc`lv*o-3?100000NkvXXu0mjfs4oB* literal 0 HcmV?d00001 diff --git a/imgs/icons/21696.png b/imgs/icons/21696@1x.png similarity index 100% rename from imgs/icons/21696.png rename to imgs/icons/21696@1x.png diff --git a/imgs/icons/21696@2x.png b/imgs/icons/21696@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fbd62f9f94f9ff93618243959976a8960e823755 GIT binary patch literal 2599 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21705.png b/imgs/icons/21705@1x.png similarity index 100% rename from imgs/icons/21705.png rename to imgs/icons/21705@1x.png diff --git a/imgs/icons/21705@2x.png b/imgs/icons/21705@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..13e8e114b4ed605b3a94c4fdc58c384454124e33 GIT binary patch literal 2437 zcmV;033~R4P)x!xz?mTdulHYO4m!KH8?QyZa=QnM`K# z`ObGfGvDtQ_zrN+2>^1-6d9ZQ@1v}&OaedxKz-uOnTeG(HIsk|8UR93QIQk?1uS&5 z2f3yFXxz2QVzCHTt5tHMu5Q|})49H(p&^5FPI7Z|Z5oZHBtJjDy{M>&Z{NN>I<|%X zq*HzyEEbCZK>9^x<-$FsrTfiha|3{{0DNUOn;Z7**|YD+kt6c~NXORxa=1xeQBkp= zw6t`;!C+otSb8Y zYp>xSpL|mMQ0mm~*hnC*Llk=)k(g^@ly{2FjkZtI(%5g8E%Pno9G?N==H})A<2*_T zVc?vA5Doyerltmq7cWk%udkoh)6)}>$wW~XuM=8ZTm3^WS4<)iBm;v3;a6UMxyRPp zD${DzT&+?H*X?#~OJm~#om^aNh{hgMMZ?cJS*&2#=}D7oC(QN4C(Zs#)8$Q%6+QD& zS5wo{`?Ip9AM^PVp5)xHt_!kp4*;M(pHC1)kpO@wNQpn-;|`ZQY#+2oJ3HG07tdet zhN7{g$y3wfhum%`RBDVwW5%GISa$Q>klSAaKezMS1q77X-7}Ov=m4eVaFL?oLTbnbX(T7l?*NxX%~leZ4*Y zA+J|0iekE2qfKC(gL4Mw;0?^4J)5LYO~>WR!-(}eNH7%UdYw)u5yd4+x$Is|oLX}E zwzl@Oci(+?P^Z&Ln_Jrh z3Xw{^J}(T3#wq$lW0GF4lW5fn^z`C>mHY&Ki` ztFOMAo0F5Xc0+NoCK8Dx8IzM{M8Xl+?RIF@8oct_Mx3lWh4#))EV*w9o?7!1q-quZ z^!8hL@1uXA^J*9Nd|U$ifE^}NDvlqi#PSsdY)@ zz10Kb{g@|o&lMNXU9@2SBbP3>%$F;b(=swLRDw*-v$HZu{l!Z-b?$4lU2H^C{aFNp zKIl@67#a3qW`-HRd*(Uh-hV&TS}o4h*5S+Y&vDPad6CZc7U}Ww&z|k>XxpBbmnYQJ z)I`7S-=+%}E>t%(G_VI(6+W3WXYSVdbLYrYl9DmmY{rqVYO!n2UW^38I9GifTD1c6 z^B(|_0H>>tflw)rjs#eCP7d-{6=M0yRj4|AnC#oRgL<5j1=!BIx(~3FDm;jfv?hg&bN#0{XA_;6Q097B9}l!B0wHjE~2a zjy7EFXs3zECU4L)v^ya_Zqj`#3p0loG+qZ1#o?y`LCji;Gt1NckcJ6cy(^xo&u=@ra12-I0D(UjMhim|C z289=lT>;PtppQ}t#@J1Tk1PHA@E;9q<{VanU@(B>6q7h_-aO*|)J?oYL!sU)?R|c? z>m)#10T!f`Mj2xw7-9fy0QvwB#u#oP{Xy9>xns;%u34kCclDh2d)=nN8;%Z-z5fir zzoC>4GsZ-W)(ZeIGDhA2VEBg;exCv3MgYhFund5bQW|572^bY@1f%!r0MH7c3!``Y zlWT)-%k7Cmp$LRR(I{gP!WffcRLR`{`T>LiILF%0E=uk+fCE4<7`*vzT>yqKdQv-p z(9b2j6W>)tNB}6t#v>SY`_1*gTq*V=@V}{w{~!1_?)E>?sHj(o00000NkvXXu0mjf Dp?I)) literal 0 HcmV?d00001 diff --git a/imgs/icons/21706.png b/imgs/icons/21706@1x.png similarity index 100% rename from imgs/icons/21706.png rename to imgs/icons/21706@1x.png diff --git a/imgs/icons/21706@2x.png b/imgs/icons/21706@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3c41f499c85f05f4bad95190dfd436b1f54c8aa9 GIT binary patch literal 2438 zcmV;133>L3P)=&_ z?Q7$fO-7?pTwGi%GPSg%xNWv4+S}VxIp-uNC&#Q(sY+L`Ufow%Sjczp-W{6R!oSfe zZwI5%C&ifH1T6yTdGbZEfwcii(PA zjYiV~pg|A>lT0Qv0ccRG)h(5kmDRPiwaWkqm7I$J0OUGHeiNM(6cmU6Nb2kBvnwhp zs?}FK94olfUV zZ<|bcpXx>odpOUi=X^m2=Zc3Mj@Tn!Z#)Nx$z&22Op6(ub8D8Ch)6_;R3ar)0Y6;!QSNj&;q&{5 zRHlGfkS6$THu%i_WZ{xbo*_|6v|w3Qg-l?<$!6Mp_Lp*x>%PF46A>}$kOR0lOa=Q= zpYLJs@BAHSd(2SEWo$|M688KHFYqAa$XT@t39%|fE2X6UL@Pge<|I#^KTp)x z-GfsdZS?BIm>{xPqUQj~Di%&kR;dI4l4~LaK$4P@*=B;=^{gFDil%~WO6xr&Arg*=3>GhgwHX7 z$A0!OH1YA!r>64+wT9$x+UV0~-MwcD;{7g{>-d_eC>t>Smh<7^;mNeLG-pXkNqc8! zXW6b@yXyEam zfkL5z-{r=Kd-h;y?n>mYT7z?)odjYryK?TL{J>w{*Smv3Yf@yS`|W$*5*)7y1U!YHHXE@InxH!9g(djo)AZAq1Rr6u!7^vreZguCM(x zCN@IByb#j|*W8bw&kx(^FsMYpgFjdc&IoD`e8NlLeuI3!U_HjK459y2hs7809|wq% za|W;59R^2lY;4S{o9%W_@ig(Z9OBxKWi%Qo=N!+y^2(yFuI@KYrlT>0h}n_mb~-qC z0i&a%Ae18*4&kxKpG2fghL?W*E7o$Pkr2vla*4Qmz9EI@<^Om@A_&bMr(>VjD2QZ7TJCJw__E@59q1#)w9u>XTnBt%E! ze19)4^!L&DB%RCeoY)%|9hLmOwfTz=*X++!C{=Ct@o@{KRKgeoV^d@%?(7!9%?^r- zi& z3*gjw%f*Pg1N&L&o3EE%zIdSrfQT^`0N?`94d4_2-^~Wxko6jkMgjmWz5QiJY8p4j zYZF6DSFI2Y_4a}WCy63P4VTLSzsDQ8eDPvuz&%k%!L1B%3Q85GyzUTyE{Meu2!#M3 z1i%hp6oBVu@*52>f}$Agp8NvcTy26`Cdd>6mOgH?yJK<9sfB&|-ebm>y!_?LsYCME)x&-Yoq z4*OAn_5jRJDGf2kBwz>wFaxjxAdE3wNBWhrWpdM)uidyYa>R1!q}S!pja?n@ca99V z0(_8C>Sl~dFq2{dn4BSR2jKpygkNUBH6s9|0=N%=f>Ii0jEONV*eOiMbsRts01KvL z`;BXZ+vWB|E|>cPfl!FCDZ&^NFsGvi52yM1>3cUOvi4g7Da;{ON!4J8*xRdL(bGynhq07*qoM6N<$ Ef@cn*?f?J) literal 0 HcmV?d00001 diff --git a/imgs/icons/21707.png b/imgs/icons/21707@1x.png similarity index 100% rename from imgs/icons/21707.png rename to imgs/icons/21707@1x.png diff --git a/imgs/icons/21707@2x.png b/imgs/icons/21707@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5b799b3c00a286e0037c3a619e418dc126a588c0 GIT binary patch literal 2463 zcmV;Q31Ie#P)|&& zv!CyGcfViY8^Ady0LXn)WOnYqkBW*45daYYMO|ZKR84(-G!X0$KwMZ@C;>nLEuHB> z?rYx}4{XwEwc^s!Qqh$wR}xJo(~jom=0wgp$;!&oD-^2ob?a8@3kwVR!Gi~d*)9Bg zo$_JOYPDhjl22-CR+Jw;Tp1l5-3Xu_Kz(#{bYppW`H9-v+T{Qwvupozm@{5oU7dO2 z#EB0xGc#K?8qFn@N>#5^D(ls1^~KE06|EH&6(3etS7!o{RB$c=0Fe8H{El%#0HC0t zKvY>-DXOlnUTU#e{;+G;u81vLwggd1q0{MH0Fa!VEaRNxqmNFS4jp=L$S)w^&8Kp6 z+uwb+McBD>`82^-zR+?`OJ|6&e@B37wOU$PSxJr`KfcIrxBtGVs3=?{5;3E3*wa7I z?-?5#n;sh*o4z|R;2s_x64a5J*yo;qeu>Ryd-*_JUCyT(WBd`$(`q?i*uuGNli94g z;BbU-fYjC1i3?_e8Ju(SFlk6mPL9~e$0uO-?%jVbDk@qzI5=qCoVzjf;>8Bb>Q$=( zL=wr&QM>}{=;~5z%FRtE|KNxap$_XiaO_y`aD-++77-fgkV@~2PkT)UyQ^2K@6>Nx zxN!8R;o)`wI1NZ|baXgNQc?s$2m|K?gm3_$_4W10&dv^NYHCUt92}f_GA}oD+U>#8 zv{Z#_%E^m%?Rw;e-8*A#RtqxHmqkuF?0iGcYVnZK7|_|)mZ|iWZVwT>Ps;_*&I#t- zWSg)o^bH73w*-YReY5@M-lq$nJ7j2YU%NUbCFz{q9=etDkR1m2%qbuSK<#$BSSpng z0PvGaMeusLM-X$bAaKjrT}~+xKuMrn;V*Z(Ts$~91Y#dwwR2(uPJItaPF=#&q;hE_ zSo)C6SHe6~4Yc#iU;Eju>)fLjD3rm18R#FT5>tlLdBq+pyEdnSI6gj}R8>{kOG-)x zqN1Xfojmi2aedC}(B^Bcw)C_V+5UI_ZWO#;g;Et9qwDEISa1NTIa`aAMT<%NBXPJ{ za~9s=apH1&xJs#1ilovtGGCvS{(%b7%}ZBVP+*uhAVm2i8JIDMuuhB3HIOHhb(8`Q z0H7L;#;e!stqlzgr}ypKH>y&pd|F!DY}uLV{)7^dhtn8|%s)ydmy0xN748fUv4o@~ z_VV68aS!9jTDul%l|O>yKBW1JM&8=i%A;drMBSZTxZcu4$0kQ5B7-3)3W)Y+-iT;_ ze+dBT{nwC0L`3)v4-c#M?Aeo*mX@}oxcE0g8EJ`u>WHZL!O?LU7-JFYVCr_eacjUh zy>;s|ba85`C@wJpG9O>~`uRbp*C9l+0Fy2coaRYv|JfFVgoPn4F@>vxLrDJ4ZO*v# zM~_THe9CIIUfUQLIC1YC06>$HlH_{5KIo;FUdl>MOWXeXt0iiO)1{&kpLmbk4Z-7v zS{;V1&u&MGn9{ewbz^nzp_5+1{&V&eIGM^Ex0r)zbSFxYy4rp)4*gPS48Be5&o{&E>u_c|u}h zqFmzR$5T@lk)|78;!4XG(A{W5d($;IU3MrV)tIu`u_!SfKYwmFvR1E#A|L>b4VUq0 z)yH^rWzKYOccC1d0 z!y~XDJ|49f8*t>Vqk}9Ycmb=sMc4K5sK_clV;P?(?Gn zF9d-D9QVGCuMr@GfOC$*Kb910G@8=d>Q9v_g^W2MrW-as0guy#iIHJYsRSFI+zieL zs?U7F%MSdFx-9v`vSXs;T$29 zPxwj2ow4x=JSYFhMyW*7V7Hi0I;_?+;QV7s#a$+geN8DK$GimQfuzFaa5xC#y;170 zIJuuM0zyJDJa`8uPng0R;wida9P)L_(IjWZDEn&LdM#aq5+)_)H6k7%3xTnX1MGQ;ckC_ zyW2KdL&1j_V3ElEG3~Gk06HKRDMIn1U@0PO;pi&82u#-w2I0?-2(0zepJxXlVB#22LKEM z@Bo;YZ9ljunNNTNfXn5YySF9)lbAWF5rF%L8k~=BDk4Mx{AR~fn2~*M{eP|$`wsZu dRK@=f{1dIdN-_N!#PpHe literal 0 HcmV?d00001 diff --git a/imgs/icons/21725.png b/imgs/icons/21725@1x.png similarity index 100% rename from imgs/icons/21725.png rename to imgs/icons/21725@1x.png diff --git a/imgs/icons/21725@2x.png b/imgs/icons/21725@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..561d624bdd0033bd4f370f9f497285b8a33fc650 GIT binary patch literal 2335 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21731.png b/imgs/icons/21731@1x.png similarity index 100% rename from imgs/icons/21731.png rename to imgs/icons/21731@1x.png diff --git a/imgs/icons/21731@2x.png b/imgs/icons/21731@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..52412dff780042d3bedddcf339b56efcddf7ac3f GIT binary patch literal 2066 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21784.png b/imgs/icons/21784@1x.png similarity index 100% rename from imgs/icons/21784.png rename to imgs/icons/21784@1x.png diff --git a/imgs/icons/21784@2x.png b/imgs/icons/21784@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ac8ac72a65bd65d0bc270798b1ff347098a01333 GIT binary patch literal 2841 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 r&yv0}rOrk9e-5V~HWBz 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21789.png b/imgs/icons/21789@1x.png similarity index 100% rename from imgs/icons/21789.png rename to imgs/icons/21789@1x.png diff --git a/imgs/icons/21789@2x.png b/imgs/icons/21789@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..53add03e1ceb566b94ef9841d6de8de8a1a49672 GIT binary patch literal 2289 zcmVV&EQiuW-#7J|h5fwt>gE@(bQFtJYmqvXsn0TR_gqRo} zG$5J~>I)Hr`liNff+wO>!9t<67fR2y``q_^&+NIZwS4F)w9p!EiC;3AN!HB&|Ns8$ zTi>iDco#7~KJHw6-m_{tZgxg` zzW?iIpFQ$9A%uRb30+CR)h$$tuYcD8m_X(8Z zWE7cpWkFo0l*lCsRnMc<=@17YVNV$~FrbaKvXsw>UDxix#WFX4p2d}wlTSVM)U5*p z1IoxGt?{@;wU%bB#`$iSqunm4NpXZj#`me!YIHjtd&}lcqU8D2)c3#f#M4hdF+M)-C;+Jx zXHTE{ny#+xQ+@qOsa$sLy1K|(5-dBi8G4N252w#iHyW?p%Z3fZY|$w@x*c8r^J?xGqXbY!LANLP2DsNKc)w^tr>s9>DVQvQU6yQk^!s(eagL>*FJ?Cw3{t ziiMWeY)ev#`2w*q9BsET*(@7240FxEAfyQ|oIg)nIi!waRXJ1_7P&Q><(i%z>e?`i zC08o37Fb;N z_QMaaedm!!5P+JToU{OEr>Ex}Axyd3l{zbJ)lnkQF&nKx&rIVMi%8eS&t_@VYqVM| z(j+12hIE3EVyQ$k>hhb}S*Dhka1azcAFRO_7G0xM3WNdn-&B|oFvKYyT_b=`_cQz9vC%Yuj_(r$>zTiz zz~hGxC(`xiv@v8n*M@0|HI`+~xfB$}SQGgvEA9sw_blUAXM+#%LvA!dbjsz)D zNyCJH4I6uML7~r2&521ShE(#^_gSG zrT``;CMGn{(8i!VkI-=_bONMOgqaNSS`{M%MbASh2Ny6} z6B~=>LL2iDbd3QibwTd$vJgyHc-Yu9Lv5CUTi)>>L| zOg)L|H-_FM!I6@@pCRk{C}T+Dgs!y+-$OYLRtgeFqFm49q*PIw{ws*nuWkWl$l`qDUYm87XNw4q>Xv08*!DEr^XqW_(;JNu!94 zF(4!bFhy6%rB?fACu+6(fdt3`^^3K4>6R=2l!X5OEG<8FVs+)Gu2KRiMXZfA7p%mU zl6Dv(gdjDBP^Wl>0-oog!;nsr(s5lYl}cTZtF6}A6Sdk8UFZV_)|0hY5)cC&0~rY; zYqiG9m1^zhJ;TH8Og19~7-KD3YlM_oYe}ueQ7&;9(rz>mLXv{D0^xu%z+yN036L`v z$N|zz1*l5|q(BX58^{4em3I62oH3^d`}@C~bKQ-pwc1rmTC4!pg&5G9LMBVsXlu0) z7}IHW<3BDX$;ss~JOvDDXso*&U&8sOJz)XZ0&E2~OW0_@mK|qPskir*o#oPpic=XP8d~YYV{u(Xi6vwsOi`7E+f90 z18Y{)kOtd+rCR-6RyuuQYF=IG2ESLZn!*auT+ceX z8o?VKcw>a?*NTDDE^LZ}V0xkIQ0yrms0P8Av-SF8u`#E(P(xKJ1u9WfHb>K?x z=YY+_+3f90VfYg8Y8gTargovg!ncX}j^g5}N%79km+wiuC&d2+l0A-LRIZ9W00000 LNkvXXu0mjf7iMFo literal 0 HcmV?d00001 diff --git a/imgs/icons/2178.png b/imgs/icons/2178@1x.png similarity index 100% rename from imgs/icons/2178.png rename to imgs/icons/2178@1x.png diff --git a/imgs/icons/2178@2x.png b/imgs/icons/2178@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..462ca711eca224cb1c9ddf5269ea3f1da39426c8 GIT binary patch literal 2049 zcmV+c2>$npP)xksuWya9n}o!PlhTBgM0N#84FpwORHp@n0xuL0l!_LFiW;wr zs`ddP6``t56X*jM(Ik{OC^W>mK(0-krm^E|VrR2n+v~Nx>%DvToSEUlYsU?y&{jyAV2_M%a$#w;q$RMO*7EYz{>z~>eMMz z4h<2H$0J%=S_C0P{#S?=CjX$(DkW`|CzX~r-eC9uV<>kf2qE%&FTZR){+o7BAzQGO zI_ly-`F;C?wo2c9(~*b`p0b)`~Qj&yaMZzCiLKmhZy?v|1Q0kn}e z@qPe{q*6*s2oaG`X#H$1{oCIDKEJQb4_}pEWi>T!N(q>*!>?L#WqJzsTpBgr62zxx zFdPg=&KL9(Av11`3V1|2-&%FXW?G}v{FLaO^t`x$?Q&*x_z z*JZJCRs3TX+c(UTn=`q*;q`hmk3RO8W!>5}ipy!^$y5qG)+Mk;`a%A}O<;!%_rcL^?0Q22>Bfs?0Pq)5xwDTBKs9IG~mA`uF(y-NA zS{skYz>R`7H>X2Lo_XPg7iCjZvnQ39<aqU*enJ%!b@4nh(I~nSd73p_=$v6Nqfj88Ogj6u#`|mQ8rD25gkY3X z33>a+7XhS{S~@u$2)y|GkJoS7T*)XM=6WG%wOF)Azw+hu!#h5g-L`E@p|*B~WoU3v zOixCf!^0zvaCnr@#^YpkVv-~y5d?b&$U6lAX*K~;LQ-lP%O#Sb#H{mYZ=d|E5Q4O# z^`8L%@HY>2{Nd7tuI;PVu7B#4_SdrY_4P9Y{eAhKo?gd0SKf70SFf;q;Y*KXw>C8w z)-`T$XcledTrSIAe|@hw)NvT8OhyJr21GQI7Ewh5B~%)U!ghBYia!1MFGkLG{_XqY zfTg%K39zIN1OfrRfB&B@pTBtVmv0{U-K*2Fg-!J6c`jm!z}`|wY7vYH8oks$H#t@%jW#Cc#N-USSNPvdYt;pef;3T zgS4-|pN)@CAeBhCrl+Fvq3xd`1<%>h(+JnvnCC7v)@OlCLdy38bJudiLRIv>0lti0OOZRDrG@I3&oSuP0QS=gjIV*6^0RSy6 z#&Q5A042#xuGZnO?HCJ(EgrXXsMPE22Iti-htm;{MU6`rE@+f7vk(IDnHW=56_in$ z(o8bXAyaxmKu8kI9=}Mupw!qc%&pXu8GfvrvHu05gCJ0F8u@ZK_$l z-|cd*vRX7JQ&p4IYL#4{n~lX1(r&kD*<22g(n%@hf^$X~m8xb%*zJ&@AVg95hUR9) z?RMRm866#2)!f`TbN0-(&R^^aEzC;*SOH{<2?c-+z&!x!0aODh1yG@?YL(q#uXedy zRjK5xDE0Y_*;vfZ6xE_xY=UzGln`i|MsKN92+jo@jL0&=Fsdrj>v1t(O^u@1tlr-6%}DpT)6alFm%DdU6i>(HE)Em`1E3b4 ztf-2gG3Mu7)&Rl@ps~zbvf1M;sdjtas>9|)!O$tClsfGWGE5|7{XKcF-7y}SiT(A) zul7EV9LDdQ?EP*owD_GCmqr2L1mFiyO(`uGLev5HRE6JH=5V^Qet)^Oyt2|AjYM+e z6BAP-k%?}eNM8Za10V#KD~d#777M4|zX7-tlonMn18@QGF~+=7${HcW>SA6hCX>}D z6aYX6kO7dSsyZQrJ_3#b0F$`A?Ef*qQdL+{4HM=KY*SU$BBit#hG8$}?37YP2qB6P z2>>$yCIG}xyt;iDfTbV{yGAL#n~FKD*k6!Y0>~Fz7V{=wj1LR29Lz#nFz!Na;l(Df fMEbk&e-r-zPI|LK(sZdV00000NkvXXu0mjf9C_ec literal 0 HcmV?d00001 diff --git a/imgs/icons/21790.png b/imgs/icons/21790@1x.png similarity index 100% rename from imgs/icons/21790.png rename to imgs/icons/21790@1x.png diff --git a/imgs/icons/21790@2x.png b/imgs/icons/21790@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..22d8eec87178c5fbe69dc77dfd3ba131a4a47de9 GIT binary patch literal 1753 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 FV1hr5yKVpg literal 0 HcmV?d00001 diff --git a/imgs/icons/21792.png b/imgs/icons/21792@1x.png similarity index 100% rename from imgs/icons/21792.png rename to imgs/icons/21792@1x.png diff --git a/imgs/icons/21792@2x.png b/imgs/icons/21792@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..67e983ea58047c09e7a092400173656b9018e3fd GIT binary patch literal 2232 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21795.png b/imgs/icons/21795@1x.png similarity index 100% rename from imgs/icons/21795.png rename to imgs/icons/21795@1x.png diff --git a/imgs/icons/21795@2x.png b/imgs/icons/21795@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5bfa12b698d86d9a09886263a4b099b83c81b656 GIT binary patch literal 2304 zcmV+b3IFzqP)4-y6~=#eW;ny)CUPiJizQN4Y*~@z*bZYSPSVKTvbYJ725^D4C{UpPL7$2|RLOgv z^3b4p3)-hRMO&aRMYC9q8^n$kr)j*%j%_X0LJoI|9CAp`?Smypj@LY-2N(?I;@z73EY*3(05a&mGUh;5Ed zO-*Tca`H`0$z(F>>C>k>LI}AzI6OSO`|wjwJ=1WU$#5|AUDGrMD%EN=o6Y_0y$?S4 zHBbXozyofq`=$hx4F_yE>pgPh*%t!h5D5jks;Z6qbl+Qh_wGG4GxMM2tv{mN5Aue7UNpIF&yQYu@zl#d ze(9C*@$rM9P$*FjEp=9 zkjZ3jB)05OtEJspq7<1M%4X4lrddZQt`9an9+t|EjGwQ7yabLUYNLDz$3 z%S90ym2!zz(~-I=5&)y4qc^0#mjnX9G))P}Xvo-8EEHrY6i{5ZrPNy;8frhjZVl7) zlh4~+yl|Fg%VG3^F?_m4xmcjtY|2O^A{tJ!4=p(eVACa?jG@DK8^#(V`uqD7Pai^pHTKbw2$$0 zh=I7lYSt!Ss<2+Gk?c#NXeuW@`Zs6JoMC8qh=IW&nysc&Rjf)|ZO6)V<5VQmTNIwWHefmX@wDGLq)N z!GlDj7P*}5C>l)$1R?F<{2WP5GyOI{P&BqvQk^ell&EMjvhU#vgIVa zB?+gdrj(hPnah^e-AJ*F(J3&eVu@E{P^*%X_~1WslnF=lF8ue z+FIx0@Zh`b z^~CWLCr(_HQVJo2cN5^&k4z?`3L)g!jvYTs4-Z?RaHvzQmNm2>^|}j+g5L~KDV3?! z>iGR8aVy49B1kwA!9#Fud6~s)*I3DB8R+j5!vp=I+iso!IDGi^A*|ES1aXy1`JNpzhYFdOcWO51$zzXXhxF%1C*UV!6zEvrVxo=(y|jL_%yENP3ZQ zM4dhJ+22o|JoyG-%*@P4uJ5qhRzm^ER4O&FYi#WE@v$Af)!Mpjb`%jbbt;tt=dV_X z_a^ZP2hZ~`)GlqeN!5|K(j;bCgo7qZr-ErH-opHX^4Zz*ziigZZvhFw0a`%&wi0YK z7EN9E)dmKKXt}Ojua@bxdaz<~9@{rUyHTK6s!^)7xw2H`%Y_22n#3G@6t^3szFq~- zWo<1d>Wy`|XV;G34Gs<-;(GN9aJ`J*J_lZX^;LCoaj~Q+;$5%Xrc^3=(MSM0m!ndt z@Wi3V`03GSdHIFIJT#VIdn$pUE394lgq3suq(z8!BTq2kXXgWHk=eiBd-Cx^y}KVA z{|%r70s$4i>IH7efn󟨫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 KMNUMnLSTYjXqk%u literal 0 HcmV?d00001 diff --git a/imgs/icons/21797.png b/imgs/icons/21797@1x.png similarity index 100% rename from imgs/icons/21797.png rename to imgs/icons/21797@1x.png diff --git a/imgs/icons/21797@2x.png b/imgs/icons/21797@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c2e9de34b7c5b25b1ddf4ec29b02af4eb2338a64 GIT binary patch literal 2270 zcmV<42qE{0P)89n#T?Cit)9`E|GUfbEVTi0#UB%6jteQZFXp%hxRsnx1#5eN!D5PxZrkWj@B zMEeU>0#Tt#AVgIw6#5cEEf15@HcqxNNxXJqJAUkXz3<07_Axs%mmgU-scR<@1+H{8 zqdPy&`ObH~GnW9M`2Q^efL(pS{||v^EEYo~5-~4bxO$rME)iA18^Iq&Q3?LE}j7rci9H(V$di-UuqZcWqsXHK1a ztcBJ}hYb6V2*l%Ydid~R^SS4qGq-$-9N4$-*+#4Wh+q-Kp`l?|1p%hsgrlnqYQ2T? zb93LFpTGF?@$qpXnM~?8>H#t_F@f3HSuUAO8dFnK`qb1EqJx96zHsPUwMwnaBJg@& zZ{Pi*DE2NaE+87&#T;EuL)UepHyN{9cqSQjgP6Dg0Cu~b0Ufhk1DM8QF_K6mbaaeE zDZ$=7yMIIpjk{c~I|adF7rO)Sc|FkE8Wt9pj4r2(iry|_u?Vm`9H5k%)v8PjrP7(V z|MchmSK+c96^O-RTq2QZClUz&;9mIglY`5vQfz6p`naLv7zl+VNpN%pb-&*ayIsK2 z#T3^Y3~(N=2cyw2((4<@=F1SQHq+&H(PF8R1VCc37@tTa3}BlvjK@I>g>jllB(!L> zKRmi??0em!_wx(OY)n&ir&`*8PHm>5Y7B(Xa5%(=Lj6$W3Tm>9mZqarDMOYe)M^SU z)iOKyxkJ=$x0|c0Ctk;v5!~7W3P1;diHDCqFgh~!i&Ci^W&l`A#;85dyh6)-?_!lZ zmodmTST3vmSF-DZBDS|B(BOZ^_ z$;nCc;K9A)(b4EzKA-p7*<23!Le6ZpG~VlSQNiIR$NxHyq8>nAHu30@ad_+mOUujX zvI~%_WeA*!`|cRRfQ!Qy58cde2|H5<(b-@KmKz z31oA*rmCuBZten2t)d!L?PSp7aa!L!wKn;zf*w0ncWCj$ZTHyovAI6T1B>vh!Y z4fKZw;1C#Yi`uX+wj0XaNwh5v^pEVquaD2b;S1rwO@7Rsp2D%H$wm)9fOqCq^5B>E z{m?S_#EXOwbvy7+O#w5E8VDg)o1O9&0lJ}LWMl+2NrK#zF*9ApdnZ1^Q;*(@fWI4W zOuhqEwIEYzLsn{VX*Qg=l*4-OBB7-FxMi^St>>TrCff=8;}*nXF#v$q<8e8=oGjQA zWP}ie1_n?nmypY@V{K^xUVj&!Iu?h)+!#AB2F0`hj7Lu}h;p@oT!Wf#&eX|okDp0B z{GG49lz8{l$}`WrT;B=&V**a6lL3Is?_O6_l~6)Sv5;r^Y!(ii04o}}|Hwg%i$LO^ z(+J&kJ1(A0WADCOF?92-D3>eXc?+7R71STXz)gFWfd2D8eJRnnR`pkVVDsIuSh%0; z*}do4V4#~(3LF>L35|dMp;RY^L6h3T#>c0N-vKKR7#c=85ykxi(r7sa`nEax%eKG>W(X zRYJqt1OMP{2#xH zyb=idUMpoXdT(z(`^Wp!m|sj||6NBgU2x*v(lfj6d*HANC|7G#(==pqIjsX~17O{Wz|~_&0EmjB1g%zUPj_JGS01;| z(`>XEGjwup_9AR{8{94@B$peqEMsG11B6fr77NmuELzPLR7GY0V{W(Gsj5u@R|3cY zu=N7-2?dA%c-!rE!0+|n9}ETu*Eh0eTi1vv`avlW40NNfFN7|K4fT4RNwQ*Qvm0hQ zlQ9apyjiVDrqyO8qoX6#%3JLKT0K2IDuCv8;9ChW2!aWKvsh>dgfPD-!ZaDGk_=G{ zK#~<-FPaE75%RaL3o(Pgf$XMewu&%X`;xm>P=E2FsSwQXC# ztX6AD)3mm38ns+5NA~aEXM&l?=W;Mj6Pb-H41+PN)k+N0Sg+J-Z%&^&?GgPxztPrL z2v4P@m9=F_l0E>SbPC)q2RWzmIRVT96erS16TV<2de;VHoorpv_7*$4m#Hb)MH<+bIBC z4vz?c2qCz)ClI*L>2kK#QtPj3n)V@pg%0>m8Gl{ruSWp5><>2p9{{lfR_yG?jRJfY s0zl{AFfsxPj9_tbaZ~0SuJC&6-$;=J@YVu9!2kdN07*qoM6N<$f_cq982|tP literal 0 HcmV?d00001 diff --git a/imgs/icons/21798.png b/imgs/icons/21798@1x.png similarity index 100% rename from imgs/icons/21798.png rename to imgs/icons/21798@1x.png diff --git a/imgs/icons/21798@2x.png b/imgs/icons/21798@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..010a8d427afd80d9ada18f3641dece82ab21a56f GIT binary patch literal 2165 zcmV-*2#WWKP)4C%D4+ zPIDf`2@0Q`C}0MIVb6iqRu6A9?w$>WE_e6zyh{i{b91xY>-92hr17(uv<-mU?dH54 z9isdE`NoF&x{p*!rIt4uu@sHswr}`P1J`f71|W(JdSpJIj{#tx7Qwx{CmkIf5>B0B zmNL^TwKX-`ypYe$hC)Izl@co}Do-9d(Dq?{ef?nooX_XW0T4U@^>{p=O3Yg`KmdpU zNWIH-u+`;ye>IiV$P`M{R96v70hwGO&dttotE(wY`2$0Y^9c_NfC7MXc$fnqrB_yt8%jzJNOCzD_fJXALx=FS zlP4jH0+!=(WHK3)*(|h3uP19lp0z!GKz#CvFYEM0$`@?B;qM0z9&GUWe7Q%VsxW|8c zdP-f&znx8|NjNacZeHofa%c{@{2CI=aWJ_YBMXa=ggo3&A4jdd6gqVtJ=glN${1Jf zs1l2{8X1+zJOGH(>D*S#cA`K6Ku!_DvRdDdf5MLX_naOK59rg}KIom{JQ- zU4qD34vP2^!efKTFOI=#kYg^Lg)cZKF#<_zFxKKBi_}&PFt^(+|Id4GhZRQS_tS|4 zC}XhdOOO$PKynp&z8shO$MCny{W$mTJGg#*3gLxy96s?PUjN0fAP|m*mzIfAPCLrl z+cl;QYCn;NyF^$hud?eseZS6e@;~RZc`B^u#SCOvUI;;xnns~S^F6>uV7qWi*EsvY0#?d=unjvf2N3-8|JB6W6lN-UQnHC9V$ZFQCO z;lH}2#mFLDEv+b4so}re3&ngGRkhXVcz~HJH2V3@$Xf8{Zl1Wojjs2Xbv$M|Y_2ze~4ci92UN7@_JhE#8 z18+tn(chGo^3;EOm{~dCdyFVVQ$jHh0H2@?}HFtw6GM$*7u zsv#4R1yN_vm+!S%&pD4AF__I}>3$%#T}A-V+uJLvs;W|5?eG6N2$Io-2n|p9r6zM3 zhWf7J^)o-ke4~HJ=dwwyR!fDPAPMm}zG&pp)UXf1#RxR|A{ebT2oL&^feg{fN%(FK z;j0}du*=ng@u_L9qOx47v{_#T!1wj_-BqUV1+Wfa4S*7WmN8~aq*CEvDD-=ULQWVH z*-|Vng(fCZu2x}Ji4l>RS%~>O^6>;tzwrjnc6VcF;A2!6c~si$h(}`ZPfZhbkxHT0 z>+O;xVJiTFyL-P)8f*Zn0F-bX$3#)g9zXuf4^6zWMWfY%H}EVxHw#Cd16h$_cw~ey z5V91UfYx9}o|9uGD`GXWh`sd=sde8za`ECnGw)ychYNte@K5P}05(kppbkJi03D@N zWQ=7WbGe>#IBK3T^1Mc?)j|{n?B2ZxYIPC30|U}+-w1Iv?g4M)L1l7C5(`l_%tL-tZMr%{ZWJP9+MVHI2 zYiDL=$`wi_Oh%sBY&KeEE&~X#wwA@%_?Togn#jy_@cFCPuAVJ4E#iX!pr8c@fJOjz zN@)>eY#l(RumcH&HoLOIe%NNSKc&~}RSoqGES*l1stP+I(Wn%hog=AaYI$sUxGfxu zO>Cv$L7ht$z$Acw0~lnCg#ctJrCLg938hp|Db>nkGF31%cX4!N^h_eYJROTgX+EDL zw}*XXDZb3?Ham&LA{WB3*n->bmSM|H`Jk5(0OSG80*C?70VrXNX#gk+JE4p*C8e}9 zkxZ^#8yGl~Os_s|H1K;;t0|+!Vo|NFuM45j+!X*t*f?c(>_HT4wN2EU#cOL3;|hx# zuu;f#0Q8hn-elq}*=#nFNF@6JOnnvr4+D+>kn40hwJ3`6bUM9Bv49QTtlw`k_c{2T r_oc_M_@%z5cVG#$MY1+=TeA3aC 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 aB>w@#AHr0y#vIT90000y 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21801.png b/imgs/icons/21801@1x.png similarity index 100% rename from imgs/icons/21801.png rename to imgs/icons/21801@1x.png diff --git a/imgs/icons/21801@2x.png b/imgs/icons/21801@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..72fb5d8886a0acfcafc85281310679b07f644e7c GIT binary patch literal 2240 zcmV;x2tW6UP)S)|M#~F zK;l!hPxa>j%CS3{jFbUtwVD9XG|kCovvy}!q|<4s*=&lrxj74P{u>DC9!owJcyiK( zH#YV>ZqKFONZ_ZxoO$()JBl1}*M03?K`2^{icfXBt%1Qo zGw5=ewfXC2sBpVW&u@IgRFoISrluY{H8p8hDiv!eHQYTkocgjMls`Q8?6bd!Kp>mV zn(1`}I1Ox??e^)oi|Z^V<7gyL9zxE}c%Rv$M0-Csjb2p2j&Djdm&F&`a^&s7n?&JH>qw zo0wqib5968J|MR&TTUgDvZ^S^l7u7>k#IlnhB->(XDMwcz$RiIwj427CkucRt8BGh&)^+;&`Vj(TNkZ$=SeRe5LgBES z%jMpF{dd3rlH)jgLI{a_WQPO@aY>kf$LsZcFMaNulSmARwY4=d5DsHk>-4o6q-tft zlE5WP_`N<(O--UIGRydV2Z; zrH_jNzsKwL=5Oakv3MZ5y8^7`a%`@w&{AELO_RON4ZJQ70QFjp%0US%i_MKq3WZ(j zjRuiO6tB-mI1-l2<+71ZpMU&|&ph*^nVA_YlgWGxKmmkvs7yp40*-A_u2g9hiIFW0S89lgE zLf**&2k_KtwGq=aUGKho<%fI4VkOYiL(}7N$}Ts-(J{j3(ggblv4lj(1T>a~1W8CD9nlRsqX^LQ5BA+p$E`pS?&XNmlhWO zsK}CZa(vuMj*T)lF+nIXL~wW*Z#2rydW(FyfnnHGb(56O3)M1}y*>IOQ526Cp(q5q z{Dgu5Ih9H}p-}kgbUJ-Lo6VYcs^ig8YyhTZS#F@OuwQ)R(pzuc+}_?%LctKtwr;QQ z7LXzlx`q-oeSRvc3$MpT)TLlJg8p!rSfzq!wrSLx?C%$;)$3HNHDMZt<@0%65_}z? zP$(Q0!6PvsfG98pBs*@QtIPlN=*Y+yy1Qday-!jzXQz< zh^Jbuzk2<~+&_AIdcHb2F+OHm7Avc3BvT2LxWb0ZZTE+QqICPVsBNx_q}N4$Z;y&1 zv!2hB-^`Or3=-;ci(;k9L8;W=Y?fj`6%h9t$11>eAlFILgk@Q~+dDfySzF(DO_r6M zZt7c0OS$US&W_y|@0Dat6K%g{mILA1wj|x0+sy05Qi+9y1uB&ailU&ZlG7KD69@)( z*4KCU?;QGGy;^h>xYoIz1o~~;cIB3r-_9*Bzuf^-RaFfP#CyhCZKG7JR`bFUwXK#B zIn`77j?!%6QeAjFZnkUvFCcDwNVeKv>X7`We9eyGGOummK4laeGQ0l#hA0FGf8 zrPYo6<<9#O(6k)O4u-<6cyBM|O4&9HQ*?JnF-_Y^CStZCs|KJrjw1;n?hA0IW|uoI zS+;FE21GbaSr4E|lB5YC49l`AilQ`{?Y2C>ur#W=)al{GfaLdj@n``;p|IR+=@d)F zD?sDo#fuW)9L<7%1!8yB(dTkUMVrG8XLriu&u#Bsd%f$+I*F5zU>g(#({dG;f`S^vt(C1J)Q1WQDkRj0v@cav$7%^u zTd8Wfs0}fbGcmI`b&7+`Y<-=zFF6B-X~MA`Fe@S=zTh8w|JkcITzUI1=cmpM z<)+_X@r2Iv3z?E@yCo^ye7@u^SuMf2{{BJdi`LaX?_lPOpooZ>*_@u6_|d+{9#8!1 z;GvU5^acPNNj-7j?85Q`ue~$AD=~g3G�--~7y3R4P^E*Rqh3R)dxytDcs(Df&|Y zhx_{aWICPpE;R$%z`y{clwJS$XX?q3;Ztu(Nzto&x{aszJ+$%Dv57kl9yx(ypDfs> zp()#S$nsfKEmzG@I1EjSS)XYPyRNg}^Ki5mSVM0w_V3^Cejxy6raI#Y00!U^QDxu0 z-##++$?*q_hK_shxwhqo`E!d0jvgDvTPG&4l6UM)9qpzEC{5EuEEaP;#u3Y~o_pxQ z2M_Juz1#lk!mb05O7+S9{56=ntzeO81F7O!r6^^r!c>xWltySDP1KOQd6OpP~oZr-ZEo~uc^ z-!Oq#vI8x#W`6DUqw1QQcIlm+tpUH!xLfEZF5kWlx9z?ULvOyphYr798y^0cH7Pw3 z68W-|zf7xAUEt@1w!R!vYTl!dK0Nv6;g@F{n;P4)YehJobOq1BEv&-SO{r}$A*oujE}LDIu)um)=FhwDcPtx63dGVNWXjtBO|AHVse_x zl`8v#K`cz10W_jr_y2@CFW*L{4%*q%DH6@$@}G|cs{nAzEqlGslpvK#iT?h69v(S! zozF*Cg@R^fIalHwUJ0G@j4DFWafKKSC;!rXko zs|hqT#Z+rsOcVSeY_8 zoA>_y0LNkt+(gRDEM&|Aba!hS0E~`~5&$8kSv3QJAJ47kyCa5M`}ordF*Y%& zx;hggXqsTSaB2!RH1gaks;)->xLT>gQ)Rf-3RP_fHM=S&r&lmGy9_YHb8HIxA}}-^ zmZ1w~KCiigNJ+4(HUWg1w+h43xmYYv#je3H4K^)p&`}I&TU^YiXMmQPZn(K&6zQVRJMa!lQ><{=MNC-o+GIc?l z6A?@;tl&g(jiX_MAmXxE^iyjzw08Zi-wkcrvgz1kPyBuA!iVp|Ysdgr0n7mK2sBai zRLgv}6h*ew1Z0{4=sv?RL*YQHCRq}dmMe{c(55C$G)Ega*&H;J$%OLzEhHxcAa=#b z_?#Oxq}tftTJF6vS>DpsarTvekM2ElW)%-V+#hDJVoO~dd3K*?4lNXhYqd?laDEh)w0j_WNI zip5a?ANc+L71J~`xm<1mfV&=mUJo9sAAxoAQ2km=62;@uKxeWw*45DwZ;J*j6iTj> z$*qZ+>uMkmr2AkPma|%N&W@d(oLOBh)QD(;h~865ovCMg1%Unej)>|&EC5EmL{{DB zml82%B$Yx8Kw~IqZrs`)-*H`U*XA8Nwulc;PR!4r%Z^VkEziy^=BKjRYyp5P1cXws z0b~J80T>6c41m9^B_jZ`t`AWM005e4nlU0Tsga14?OI4F6$TIt7+R&|)aC)q*M-ga zU&BN7^J1O(Du5F3_5KS)A^~4M?~7=f7cxy#5s}K|^N2^{#bD5_X0wXc*49*=gshWL z0BQg#b%5SiW#E#4)LE@3!s~pf2fx7n!g$GD@uk@M=lM(T`U?9m--i}c*d$JF00000 LNkvXXu0mjf-8(U>-B5jv%9nNy8YpGWb+CoQGew~ zqq&+p_kL&2x!*S*aPMF~!`jab@_*fkQcBv}+Zh08Zf@2A(D~brT_szFJ0=an2M#h%uG*L1_G1S@mSc#F-)|g`b&S^vuoE`N-6GD3GQ|iIe8I_ zO;x}A_x2MfPQFze@Q*WMQdFanh+;CEqCfrFGt&V6LkPL&GjUrPTU%QR0Q%yKho0){ zx={P>=~GEj6jLszLn~iaCQeOGi6g@!O})Lnm2-R-Th-Fi!nC!uvA44Du8B1^HWq&M zu`TcK`u=ydhWl2l>o=@dmR6K08#b*|c>_20P-A20*vWrz}3~)87LSM zk4CdIGqa}e?cQ_xcl-B$3qS(ECu#eM0)!AyO6haY?JcROsPUKzY+3iRYO(KJr@g(s zJsXb3lIzy5b3U^9C(=r&j^`D0Fp&C++J$JTSHC(mRu=@Wra)v(vcb$4C#*zC59!(lh_g1{?^0y&!{ z0?$d0KKi(_ZTmL<{Dt=-$6q~SA!P1j7ZGS`X<|F}b*LLQeEA8#e|*z}4>ks5mD+oI zE`wt^Jsgg(M!~RrS>>`fqS5F|Lda5gNr^^ShS5}2lQNPy7z|o#JT-%=BAZgFWKl!I zns8IoW<`=R)`JHQy8Po~9~R_WPEfko>P3f85b{}7)%1zbMBxj6_E_rBNk7vR-07^(TSK!QQlx6&O#^2s)~{?7+p_2{dC$Nn3&Zy&2i%7o91XF z3_$C$n~g0UA9PRVg6oSE*o@732Rb0=vlnHqkQp54XALaN{`f~fLC4vDlW-)gr_vG_ zhGB*V2Vl25kZ;aMbas~Tf`E7|sjJy6Q&L_&m=e>aE~m@YckL>812Z7S!iW33<3|A~ z0Neng0OWZE=FK22Eg+%LS~ine{*uk^*rjS(X5+?9JfLTyk%%D@OR$M#3M^Dy`RF{)l+QE^ZoLfy>E~C{Q*G` zBH3(q3V;M)QHdk~=uLbyDxn}Lz6*W5CrfXryDq)5Qd>sp&29-anvkd zjz_j`VSL_U8jD3~JRURHEH<5C8Evq?pNx);bKltUP5k;-zreHme$#gR_?s^ojYe6L zBrkv&0Q$l+KyyWcEh{PdW7)FG{8TzwY!dPqjS`ct!J>icQZ`9cRR+Vbm<`YBy_b7w z&2kSmZQRH(ETiU`EZ`WH;W>iB!UDxNY|t+!9b8&EoSg}d6Z=hu$WCKS>nd3)%Rih<6Ft=$BxtU z=R1)|r8SqsVVs-@{H3d_`_D$BF)m5cyahLvVv@UfLWqM>suPx_iXvx6M*L!fQ7~F9 zHuJi54=A;@NpkModjP`_p4Ukx12z~8A>j9`A6@Ciwd;M1(U`~DZ4N^`7V}MqCQktf zmX(!>KA$hUC<_+a0AL!xWlAXzpg>hs#_Ju+*423m2m1$zn97uwmX*3SO;r^|C90By zs;Y82ogQ|(-A<>|;YuVDtU2E-DvBcd2K)O528Pb)x~>2)_~{fFknaYf7 zn&zLk4|9300+1Po3G2E(4qyPlWNz+L2`mJgQ^LVD?Il$TIb0ct^ofE@Znq#~q1TOoMkg_8*q zDuSoB2nm&ns6s+N#i5%(?Hgd9WQCCpg3nLM&;X zM(6*(wbousdjtRDApd18c@Op13%On*>n3?GD*(EUtKnS^|CH!NUlfl73n#<*a zqtE{EA*Pbg7b{g5Mgv??pehQu8bz&At*;m>00OKz7aImx5e?3sJ^P7)fq{%+7-D92 zHf)+E0{})y;0wV5-=il^oai`md^z`&#XYVdp zEepC{huJXUxjqY_tym}}cctL^KJk4IuIpmKNCCVZ@kBco3mosyG|_5RQE4zTH&=%~x!^AY{EOg@ z0GgCEM~Ey*+5PI97vB(pvhV)gyD@m>dSSmSVCYNKvK<7zj}NCD6m=Io(gfpeP?ZpE z@fdn~y70}%Qm797gS_?{plJ`tT<$*r(4?ft0Q{6u`R>^4Z-p1`GnT6UrmhULNMh@$ z!C}OM3T(?jqCJC$chrEL5h#j+-FqHHCY?kwt|HT}!f|Z8bl!|%&G!Abhfqq%a)gA0 zknru|(o4SOKR!7+6~x=(iUq zuv{i9m5K^LT^B&pG`hU+iI7r8&o!MF7N;xU$&b$n%W}A5xo{m1P17a}5}B?JWO^Tl zLo!IDH=}EF7CUy{hgdR=Fa&(hLqlJZS1zB&fAkb%#NW`JW;!rr3 zN+d$^Q~B0gfBEy%zVE*dpuXzK*P8$O+{k@fJ5#^nf&azkQWKNo)1l+IObCHi!$L$= z;JN`4$v8wHASIU9E(ZdxK*@dztw;uXZ4zx>UACt;k$Smej0_LI?fZTJfPFM+zIxbl zgoHnO;l%wh$iY-1xn=C~glsh(naU)o=LVPq@UK==00EKTCwcV7S7)v=KwDMbZ<4#2(%KrUY><)1$L)%XLS-u+5XcXo?jtNE2; zotKJBG@VIeHeY~ayHFI4hS5T{rvtILih9jND#L&P@Vx+Bq0+X3uv941?Y%oGNpw}G z^0RM9DXufdDnf`c0M5-7kYI$6;KX~EezJGpL;Lf?liv7foU7`h3{DJTe%?J+5YBx)?d%7sOYUHtpS(Fa(<~e_2I(g2j>8kf!Ms`*hK)hy&kVl0RxZ*(A#(T+h0EL=o3#BrpsGD zv;RRQe{F%3OFCTJhYWofdJBDz9YC#OpjNIU39)KH<$L&-q zWh^c(+F0j-a$^kp`%f~{e3_pU|59;bUNm&0R4vS$(JOQ3z{D7dsK4aoqZF{!}@VlXx~_->5lizG|3WlNU!^7jEHU<`z`)9FLc z%+Aj4*?-Ts-#O>o{{a8*M()E;0)YSl0H4oCTUuJw|2`}L&CSisJwV;f_qFYw42+G9 z35|_ADl5wT-l8HGU6NA+Z@>A@MS8={08nv*AqD_Kp%8I69JIByRRuu*Jpj#M&;qsY zm(BHwj;`Mo%4uh*f1PeBI0aQzQ;~4!Lwj!C&kr6vI1&g1*w)roUBEIFC>_=XF52O(KxYXOU+Y<4qXUzFLGUglq;(NeV)^jCM3BKi}5VOFa$s} z5~j)IVro7GVv9fauaWHuI6H^_9Qs>b-h_Qc4IR zcLj0BVlqf_PFYz6mFzi$<1|E)WK7S@AQp>~x`yq%r^F-8MMB;MIdddB7p~QdI(cAd zOjcAiGZ$OndV2Z-!SLKi-ip#a+2D6A+EtD~Ai$=1ma)2BqiqSFWWXq+o1#bZ#LUWq6JO0hriaL`|iV>6zJxGntY0Kj8B{m`%eSLEL(i zbmiwOt*xyJSzc}%>bneg-8OD~@|vpGXoy~~Bd6O>V`6fGI`axhMOhhj*lpUhq-c0S zhm0hVn=Cc39#8S|($b=xa^%%4fIFt)RsgiQzMk0~*uC2{INBUO(RO{JuZJO(>q&e2 z=?t&oRjr`KQX+|TdKnohty-;Cq0;Xq!$ZRfi`hiO9o>KOc-zjw zkr8Vwm26DRh7{ZQB=P1skxFOI9{cFyL^L|b7Znzf>Z)p78y(JccAk~J8>{$^GaYe` zWwC-KIYX^E7Fyr%L@@yD+qZ938deEWb8|EIoBjKr&#Bw`Yd=eLWd%j*bRL7bGt6eA-1MD2LU?xK z_uC(TaxbNnA%v_Drxlb`z3>9x($XTYfAy7^m{~UX+=a@O@o`A9ijmP#)8N1mpKG^k zB^k>l73-8IckR+f<57NmWOzQuEXv_%EcNlxqjD?~CN7s7RU4}ioV|(ACz~ zYVXAW0U#ytK+J>NUm(HYww6#~E9phpLi7 zYihQV#l;2W*etL+?a=9U=sy2BnVy*i$8ul^Xe1m$DwQH*BV!CzDH95ZE+-e0S^$>p z7pnkL0D@UI)GryJlu`i1>s$Nm0x19B55BLA&4yqVc<2p!oNjObQiMu9B`7KO5VP4L zQ--0kd_$_^@fhkF8cT3S>zHL?8z!|!v+)Uy}<`WJOmW1}k8??CUVHnO$02HPHe zgsfY?9$vp6KYZ>-WYeZ9a;~G3F&IQDu8?XMDJ>~g-ENn`=_>F7SYQ}t5Wpt@E&*6x z4FCXITb00}L+s?Irw<4JcJ#oJx8BnDo4%_qRQlADNB@q*^dxoV<)eDTMojnhDucZj z!R5KxQ^${k<5_5R0+tdC55R?6gWst9+sx^7ijhd9 z!DcqSVk&g46?Z&lGnRQ&(l^LP`ma(Y9!HMZpcZU@oG2y>Gd9q#OrPt5ZEA|y{8$6k z3IfrIB6T|R)MuW4TJyo54_g3)Yipz7$qDMtFF=*w zr%qn&p(l=g7zCg>aNq!YdvM?mZ3rL(NLMmRWm}x8!%Iuc6Z7G48P1%Y2c-(D)#mbm z!^ShRZ`-5mhUTNGm>_8KcQmlMz71;6Cnsp{JHMs=Et>?{kxSdpUF-&s-qY82$KUbY zcEyDNz71fBVHi;bj8Ih$fChj7Kyem03pv7WnhH*h>vM7(#)=YivEQF37UT&k$IBLz zIXTeTd94572X8x_x#wqRXP5350EZjG!2ytQb9XD_Mn9Xg{vrSj7)B3OwE!@)fR*8S z1{{-=Qt4p;p8*)bZH4z$#sJ`P@8N^D1BNwg)(8OfFc|C*gf#$)0jvSwKp>zY%vaAZ x_cNN^Zud2C+_L_j&wmww|8(uw0sFtPe*wkkx%#@Kk0k&A002ovPDHLkV1lcaGY9|x literal 0 HcmV?d00001 diff --git a/imgs/icons/21832.png b/imgs/icons/21832@1x.png similarity index 100% rename from imgs/icons/21832.png rename to imgs/icons/21832@1x.png diff --git a/imgs/icons/21832@2x.png b/imgs/icons/21832@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..274d5e94af06cd3ce77bfe9be7659fb0dbc8b18b GIT binary patch literal 2334 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 Eg6hkO%>V!Z literal 0 HcmV?d00001 diff --git a/imgs/icons/21833.png b/imgs/icons/21833@1x.png similarity index 100% rename from imgs/icons/21833.png rename to imgs/icons/21833@1x.png diff --git a/imgs/icons/21833@2x.png b/imgs/icons/21833@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b81ac8bdbd1cfe23b35fa3ecb72919c7981457c3 GIT binary patch literal 2300 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 JPDHLkV1g+#$>9J1 literal 0 HcmV?d00001 diff --git a/imgs/icons/2183.png b/imgs/icons/2183@1x.png similarity index 100% rename from imgs/icons/2183.png rename to imgs/icons/2183@1x.png diff --git a/imgs/icons/2183@2x.png b/imgs/icons/2183@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6bf03743917f25103a3b29b22199e18851391b0b GIT binary patch literal 1660 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 Eg0Gb1kpKVy literal 0 HcmV?d00001 diff --git a/imgs/icons/21844.png b/imgs/icons/21844@1x.png similarity index 100% rename from imgs/icons/21844.png rename to imgs/icons/21844@1x.png diff --git a/imgs/icons/21844@2x.png b/imgs/icons/21844@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..23c983409827b33ddaa9ac76210dab4bb12e5beb GIT binary patch literal 1974 zcmV;n2TAyeP)5ebD1}IJ zTS{A+H@}pYLJJ94PSTV%lt5kEY3-!7-Po2dwXI8J2}#y%ccs0~oH>1vocbcU2{fb+ z{a_wuIL!Yy-x+4k0lwIxmE-^QzgwSme%K2ybn+hG4%O)aP6Zb$sFTnZ%r%FZpb5B2<3|IIwK2LxgaDdctT@RlQ zY-*d1O?FycFLqh0-9yS=2K33b5Dx^%-d;xi{my|st-pHmYh4Fs7UrR8E|di;k+X^@ z<}w9KusPi@GCo)Np9Hgpgr;y)HQ(1fHDgLxqeSAs5|*dOSq#iN1GsSEBUa27nFPniO>GEy-H6u2!BIrX(ejL`S(iUxBFo;b$Ki@LUJ*$ z=2S&Nm8MZ&U*CNlUlou{f=TJn6FX`+BSdi#yLat|!36#`xCBQifWu+wAxO;+!_c5<27LZ7QmHgejb3l=dG`5=Lx&EP z$6~QE06qZP?JQ-r_A@%(DtzJQe_C7H7|Wf--vnTfWkX_U%u?DwNXc%#vML%KJG-VI?>Z zK&%BIV%+JD=yl;pG&wvzkJ+hPELKy6M>aO#(e74Asbi_<2~13<;fQ&hIWvfKNk?w# zG732X;frBmIwcGF66K5b)WZA{2ZT=ur~noL*mnlr1&~LQjCuydQwP5FOvkpZfj}T2 zJ~(!gUmqSptHv-rm4>c)k;=@WG8BZO2k~t3o6t=+EGS54EEH`E0l!C%j}5_gFu9mp zl&Y$_EX%T2+Miz&faDQ5ch>TWuSZ=~0GhiTPz@S9e-4`AN&!$9V;X=0fSEhne-|K`OmYCun@4~1 z)fW$br`cobvQ#KC;tZzS0|p7Zln1km&^W;~U1(})gmeHw3M3g|P$9ukDCSwNP?WRt z3$p+WA%p-h4j^^!JNGHz)mQg0A}0R&*3Y&!wAB-Y%YxK6G=+h4z$zd=bO|0-M8KZ| zX#!H$p%^9)zs~(c$3=P+>D0$S~S$vk}DFGn%_^biU6sA<^=#a!h+-qI5Ut*r@$FsEZL59 zyWLUi|t;LD$SodZlU=d#(X3OiZl0UicJ{NF>mI;sh$I z>xRDf@>5I0bB)?!Ky|K$=p{oy4L*&-6Ip!FLz@lZur z27+Z$v9rh(i*vK{saz};n~2Bba{~hdtL5Ln9*|P9AAR@vCNHxO8iu>ol31sko>0LO zdQmXgOb00j43`%!uTQ$%UdPZ>V&ss<0XUX4xxm=X>Gxjw!Rv27wr$G?-$*7$dU|@q zD*5++35m!7Fbd!`0Fh`kT-_M2E!+H1ZEI7!rrE9PA%$mK$;!u&UQkMTlXGtnp0WzW z;&n);Q*v=~$hmRj+L&$GBW+z>)BE=ATQz*u4lE-8$B~4A0Y*JN49kBn4!{85t*xl2 z=;&Bq-QH5$7K>IkXqp*Q6}C}#`GUgED>adF{P^c@AAJAxN59Q4EQ}M;=L6g~fCxl@ z5YEae$rTV^!TCB{8!MaF)kn9quj}%7ypiu8e&dasH*fx(h>B9Ky<-17%ktY}<-bt` zMg%D(gyY;fRsq0>sPv%l|5n}JfD$cZNJ{yoZ%Ds%z-O+10qXzx-?(VC8UO$Q07*qo IM6N<$f`#6z)c^nh literal 0 HcmV?d00001 diff --git a/imgs/icons/2184.png b/imgs/icons/2184@1x.png similarity index 100% rename from imgs/icons/2184.png rename to imgs/icons/2184@1x.png diff --git a/imgs/icons/2184@2x.png b/imgs/icons/2184@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fadbfd9d28ab59f010fa0d6463172bfe74237a98 GIT binary patch literal 1916 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 O0000z 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 Te!xs500000NkvXXu0mjf6WFbx literal 0 HcmV?d00001 diff --git a/imgs/icons/2188.png b/imgs/icons/2188@1x.png similarity index 100% rename from imgs/icons/2188.png rename to imgs/icons/2188@1x.png diff --git a/imgs/icons/2188@2x.png b/imgs/icons/2188@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..70eb7aed57d85f6e5c90f2ee1b04d35a3735c4d9 GIT binary patch literal 1692 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21898.png b/imgs/icons/21898@1x.png similarity index 100% rename from imgs/icons/21898.png rename to imgs/icons/21898@1x.png diff --git a/imgs/icons/21898@2x.png b/imgs/icons/21898@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..faaa3fdd0d6cf9c6d809e95f7f36e69e46164ff4 GIT binary patch literal 2181 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21903.png b/imgs/icons/21903@1x.png similarity index 100% rename from imgs/icons/21903.png rename to imgs/icons/21903@1x.png diff --git a/imgs/icons/21903@2x.png b/imgs/icons/21903@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4cc4b7bb28e23db6e3b0af880ddb6cf917944820 GIT binary patch literal 2412 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 Hu0mjfzvBqK literal 0 HcmV?d00001 diff --git a/imgs/icons/21905.png b/imgs/icons/21905@1x.png similarity index 100% rename from imgs/icons/21905.png rename to imgs/icons/21905@1x.png diff --git a/imgs/icons/21905@2x.png b/imgs/icons/21905@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..00b67efd2d179c5019525c7503ae402fe3c7a46e GIT binary patch literal 2851 zcmV+;3*7XHP)DD@FCG4&>%M}qV-z^KmgF6 z>a%Ch`0g$k0DAMi{qOB@8boVN@c$AG0%-Ey;T(Vkz`jvuWd-i`_O=he>2x}Fr_-?k z7yyi&ogD)JeGm8t<$u~BySuw|Fc^^2(^H;hXDrKVCg+7Sj#IYKGHuVRu!V|`)m>Q1AsO_M9bC<@E!mizmV0JPR1gh2mq0LaeH4o}mR#PK1Wp=K{| zS}6)t!Hw1Wg0r@`QeUgqE4(PwoRoI3qG5UFqs7(c-!vEe?S;ig z&9uz~0%;Pa*4f$M#BVAdOrB}~x#5Y~zf#vWOW`emDMoSSP6EWeOSz(y-g;uk6adkZ+ z(4v2Rom!r~<{4%l$AMJv$|s)B9Mmv1r$rn4*^3vTFM)TZ@wRN%VQ$%XR=J1!rfEEK zeCvVbnjdqnE0wy_sx@mH^`_5kpXek^<={MurlXjA^swV_W)|~V-22b3zyFP$T*Dv(@6aZb&U@^d*#rBrtJAW;;-mq=+ zW5+jKZt#*(MnMGPS*d5&c^(Yo^3OiM?;56&W^_Jr%NSzxJJYlWHYO~pF7hnGKH(%Y`T-C@Bkpo~Pb zs%C33aq*!C08_5Q*%tj>HC zdnd;|(!&+dTP<&UJO}}P`OCjuUcK9R{{8EV&t_rpsqNVhWvMJefO^&AD{BpBxzjLh z&mxvlNB?@DzWM6AQfo?VhcTyO3fty|mL$ruY@UY7NCN@ScP+!<@oWe>Nx;G{yo0=A1GB~etOS6@`t$SX@myYA} z>)rtW@zwXFNQvP$84R0J!z9FZO*-j^ni+;!sWTLDqSCbV;xHA#By<#qW96Fkzv*jq zq3LZySXuG)VefSoPDWS3ApO2~G5&HkiT(*1N0gv@_g-6DmX%wkBPYYLI)BsER9VDv zO(sgkI5&t_@mLxc+^_hKUva!F$?Y^NYU5$ZgCN%2q7Z2jC5gn0md0(dnKt#$?D zL5PKRgJx-F4z6cay}VEQz3#BXHdXRCxixhwf9Qn6|l7FIZDBA z)GHrVYTo0GjrAvY)>mqdXU9PhPOrOtNf=*V=~PLYCB&|3fDl|9jj*)dz-$)c;`I>0 zxFn20Rhy1)Yt$LQ5b zNXOS1sWc2c{B&7+6-xYa&PuH9MULdFod^`go_qvZU1KC)Zk(T9v6P$HVYEiL+Cy%2Tj;@#f7N`I89@^mZ!q zeP07Wo=YKe9cn-X(*#%DnMjjT5lRYCsx*$WD9_8V*6@?rIO#Lc{L$k(EDqE1==G&! zglPl32&dUqG|LWUnO~Ku3Y=1A0R9L72Y{C^Uurx9YNV#pOyo+cA&5Q|h16OohuD-U zrDjo-4=5#t@7Xem@_A7t(~YflZ#wS;~_n6GPXFBmW>M zZft4*&{`8hh~|X69haX!2lj(NZfq?pspY81#Sx*%Er)u9>PePnQ)pHC6}u{=&eJ5G zwpXhDbQDIxI8sv3f*T|m55p{plHX@Z_O;Zi>o7AqpO4dX{Fr+}h<+CV0NCG$#QM5W z1c55#sWi&AQo5@Mig*@};y4c%+VwiO_ zt0d|At~0&pB{8Od=zJff;O0goJ4;JqIz5g?Q}fI%Wx}eRHTvZ=B;NG%X4-6UT8J)1|eAZDz2gG|9h>lk(X0%q-8!q34;Y zX|74&%?FJGAATAA=;67tvqD8Gs1rFxX-}9|AO>p~d6COxn8-*){K+SGA8^KN-HXw= zp;_iQjuaM)ifJ+L^?LdLH3IJr*Q&br<1t>=GI{u`<#Z&m_-;_Ltb002ovPDHLkV1k2r Bo>c$< literal 0 HcmV?d00001 diff --git a/imgs/icons/21906.png b/imgs/icons/21906@1x.png similarity index 100% rename from imgs/icons/21906.png rename to imgs/icons/21906@1x.png diff --git a/imgs/icons/21906@2x.png b/imgs/icons/21906@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..763ec8d4d1dc5be21eb934cb7df62d823e7aec6a GIT binary patch literal 2196 zcmV;F2y6F=P)jYwf+y?mpdiH+JGch9qcY?1bBdc|r5wK_eujFb^R4??Lmo3~!crLOhTM zWW*f-f*Bc&u^~>lWpKBBeERI$TC0kOeNM-T7|bl`?1#1Ysru@xuU6F({*HC?=FRZV zJMYvFA3n5u_wFU20^;%UaVQ5xQ$hb^mhV}yyQcPs<#PGBs;bTY{=VJ0b0^Jazbfz_{wx3j1Xv!u^x}s;TZj5{ z62d>J$V(#nToB#QCD+-CxLFyeF$K$InVZ zb#!!eMjS`caKT0of6G#f%;m$dD}te_!~(nKzWMO`yY1N|@{s$?tkN#;hL3Yclh`Jm+d zy1U;1eh2(9zINxe^5(@ibIut-$^fL2sA5Ga1t}n+gct}KXT_VNAs`63WXx=Px(H($ zFf(#VxXruSGEoBHL4$nMvwUH>T>k3t@bJ6w7PsIrG*z_-v8sG>R1;$f(50NL@8Dyd^m*gkA3eyk3dC?A3^mx?#G5H zMM+Gk>P$JHS^&Yf8@@YH9Yhs@nH`_?A}Vw1!EuABj1(&lxT>64vXhIK>nQ?DHT#6a z)gmlKL|kUUsmL6p$kwGG?+blf`*XD-PXY6C{uRXyvoeFjhn)TQX!zs7fqDe?f#=Ox zinyx3*DcKbyaL|qpmSs*+wYunaPPU?fd<*WoBM^~c=F;;B$V}^|J%hb?Q*aXkflPk)-FH(2&OG^ld98QF zc?qQ!Q7REcgb)I%x{c-i&)Ge&D^&rvIa0%snR6VU#aoQx7TimlDHVA>33DdD9gQC= z`kElipi+q_aa(%$Y(QkzfQumKf&+>p+x93bD3J(gP(;EkN)fDNQkqC9RSs>=StIk1 zuu|2#D*BedN6h?!s*7qsML}i*bNS85x2;x0wryFMBNid*%$f$BQ>4nGZsv0BH`?`^ zJ`cI)sb(}B?j5d*+sdp=f_RKk>Uu#?C6_$YuG<609n)C}DvGKS!j36JP(n~d!%UIr zHkF~Y?P6W5yxor{4}g3=53Kw3J9~@eZ8T7;YnP17JiKaEhlq+H$|(|CK#W1J|8qRO}zkwl%|-%L1lUH5A<`_Hy%$4bK&Qcf?07~2>tLfp0!cLbkXZLFx9nv#v8isMu< z;y~YT$fcNB-jtm0q?Eor48u>aT)FaOv)P4LURRMzF~t2CtELK3VpU;Q zD7h5Jr+(=BT=FAD?v5qhp8DYjCr?i90vnzh$DajY_fD8Eq8E=3j$f&&>a`H#)uyUH zsxcl1(N;7>QAwC}Q<_ftarlFm@|$5C?o4OXuRFR&%!;@F%gM9W?v5CMy{2i7nx^^C ze%wEjD6OMG#B$EL8~gFm&<&>}K_}8&U|G1%F%b0 zg+i*CI-;IgWb8y1D~<}waIbQkyT`{{L)ZtZ7n$9k9Dlpf=ys#((u~koYtp@ZWaV;d zkmvH0uT2E8_V65cUB3bpiC(4O|27+l&57ZCSnE zQ0`Uj%%%Ox@B31A&S>hVJ$z4VtvVf1TUCOJ~ zo$&Cz4_n3YWG<;}KQ4>q(%6N?Mpz$AvyXw~&jMTn?`Bu8&V=soyPmr-7jk)CsQCmL zPNbHz!r^<0vDDP9B_ECX^us%JRGm@OV#8S7kHU6hU9_FJ#!j5nq)=Wv4CN@x?f}`J z0ua}_{!8t^zUc|BcYJ?!PO4s0E5C3WmqL?@o|cqeKrTYY(xVcZV0VYTG$jE%A;f9n z!m$)RC8g8`w08N7=S{|Cd6#F-#2)~>-Jq+b`__^3UauK>C98s7&|ma(PmxRv-C~bP zB~VUrCXkG^ha<#mwwM$pGeN|eW|P<$4w3{dl@};AYvE#O-82e<{ifE#tu%f5#{kqR zFTCsdvQs3zv5yp*omckNXn4^trtRal8WDN&=I(+V<}%MvGd!FW-t_zpWlB- z-svNRV33uJt>b9{>y<|yHqo_^gYlRz2HUJZctE?`;cTnUWd-LVpR<9-vaiCrl07Tz zMeDfQkD}hQE8qYs?JcE(^A&n_EM+twHAI?Mw0b=jx^0Rl5BQri9k!y|2L1f21E)fCoxq{dnROebHMh_kl0Dak;0ql z@OW>Z#hoF&i&xnA^=-zLLs`QGjh@2HQ!7r7ggy;KK%xOU5N;aT+b-4YoEDACTFQ&B zy}|i&=lI2c{)BWi#1DKn501z!R7%nLVwd%?s<<*S#u_1=H+&fQOFw7bMv zPH82+_9*Zx4QKXOaJZ!Z>Kl20e+tPC3H^1fX<~D1S443ZVdp`AA#6qjXPqzm28&m%E z<%{$?UG}C^KAWcOuW!(f_ORA*?%;@PuY8O5KV4%d7qk|dJl@`t2W9COl?$xF`wAci zF|n5AAdofRm-lyf`6n;nhu{4dhoo0&)*cgv!gb_1Q zozHd#%(vUrqljr`ILdRZbHr68(#ld=Bm9%YCjs(QRvPlbXq-M7jmw=l;Xi)$E=ij5 zgPS)QjYmwgl%@75q?9CO#Zj8lYBV^%xCjV5srk<8D*yJ~xB20lZ}R;cH+cWvJ?=f- zVv?pD#xbU$<>ZW!1ViCAsaT$LvL`;ULj2Wxlv!S(CBadw4C zJf+A|E;nkNuh;ls?Jf(=I)g zlThnpb)pFp;0UtN6GP$LFtaX>eBZT#fWso=*8O{wY0BSTzQm1-7YL^lT2aKAW`i=% zh>c;cJB#moyz|i=);Bg7O{a{Kgiu2043Q~OMeZV{GbPp7m*SuX@mByqVbFs~Wj6M! z;$T#n(wT}^o#lEMGX32HHt&6kH#sJdf~mDUnoRL)HH4Hr8V(7fh>h)Swhs?jTv%Y7 zBos(03x$vj43(AQxT(a@b8>rlBF*}w6uUY+?FZhVFI9HQlXgXEnmERJMyw?JgKeH9 zDeJ~iIEd4PmBl5V?(LDJ36T&;9KT*$L-`&XJ3Dw~fiZ^M7-y_WeaAkQjRZDN6j6Lt zidT|kzZNvty4L-jD@1=+l>TF-)U+r#wwBmIDJ5D+9MG=SI903h=;#ntm9&(ilcmVb zCrBZf%@U@@vTqD|WlH7Tk+N>1P^^_{K6qXY#k)|wo>gl-hrI)NwUT*E#K+tkRDk&UV2z()MQqm55vcp3j9UXDX8gyY8SC&ods0k1b z5@(HP?Kl9gjH{g4|k+fL$dq*16c4%EygLCmtdAAM4z^axz)txmNxEv}6NFT50jl zyzfhd%u*|+v2$lMrfa1Qo$&NICB>_@WYbjaDn(XRWCAiFT;-g}oy}q=4szT>0Ut^1 zFSd`9507BV^8ufK@nu$AgPIJ(*95!;?iGYs2?V{SlFg>}{ADF{E)?t5xY*$e=c>}V ztgv=sal55;4~?}SmzG;;mfaoxk>Fnk@T{q;1S|ON6{*Bu`*0yZ_G?0%(t-$q5+DzS zNMgqn!C~R-wn03?xKAh6uI=Ud#`DYmO#r^M;A{{q*5Ks;R(vIvoTZH<@T7E=5R)

XH(S_I%=Kx3?nX5Ka*TfnlZIhn8Wu+j1*TuFlDu(>!Ay!vHHf2t(DM)oVOkbZ z7_qce&z>i^b8kusgi!nT-SQJNZQs{wHbof6V&d2_k+p5UrXsHD%=4;gAD2fSR3}Z1nEv$IfIK8$F5!EX5Je zN`Vv-OX`G87tap?ux%UHb&0|VyUivHLPk?*gyWDBiW4VK(%H3v9RmYmp*pQ5-a6R= z7#SIPuLhob?l}qY&eGD{;lCYJn>TM(?YRPFrfB6BC>`HolbKuwi~})6aEa)!ZOB%#`k=}AV5e-v(doweSF6ym&CL?*t=t}A!b zXf&CAdy>bQB7_v$TXChM~c@BYXVAUgXzZ_od@>^xW@1VVgZ4Ik>x@sY1)>-c^m d*RfCB{skc>kS+7uShxTH002ovPDHLkV1n-W;KBd^ literal 0 HcmV?d00001 diff --git a/imgs/icons/21921.png b/imgs/icons/21921@1x.png similarity index 100% rename from imgs/icons/21921.png rename to imgs/icons/21921@1x.png diff --git a/imgs/icons/21921@2x.png b/imgs/icons/21921@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2300b0e427eeb87dd9884b9a7ac5b02a61ec8c29 GIT binary patch literal 1947 zcmV;M2W0q(P)esgMW|C?Y8>#fX3x+lw(^@Y=h!+5er{o!ObWeW;O;3)qQK zdtUFo=bZa}-~H~rz{)^YxPC>#i^c!PW(dKR!$F=N4)TQg^4ec?B?3s9UnLY?NJ&a`#UPV##C~1M@#kdTb}RV6!2Bq5zhcp z0Wh18G8E(D=i}kC$Irj(taJa>cYgNv4nSXum|Kqeue-a=HzzKx>sjBl>zgk={j_a- zp5#70WyCXiBB?q=n*}uiFWJ(&zEku%e|qA*6H@t>)(>$il6WKr#%6B%R#!L%wmjG0 zYrCE#Q-2$#5mja4N(q^g21pVb^Agr2^2YjSpJ<3}ocZ46Ps79X@L-zk2t70k%u?dP zV2~lnMD1hERb3v+l%+o#rK56@gflXRQW7qtWL(M?FqD-LzLOy8=aY1O@7fJzqG|1k zKU_60&^$2JOGcm_quiXL`TR{jKTvFi@N``!#&p++*#F^Kz06`J2cO-@{NgXC;~zvKM_EaJeR6vG@?x&Vcu)!m z0Q!xd96qVW?4&CK+ZqDU$&7n|8-?wkye{J}_HL!d4?rpbk-TE!Z3pEW5jZ7+; zB3tXcxH5hXqly8a*8|R4j_qz19;+E|O-dj{hpd+1$|mtlTL4FACFp{Mj*VQQ0ER5q zvOPzR92vQ<0ZJ($gy5w;dm3e33#y8`Qi!N!vL)J8KAnz}Q6_8yOn~H(^2`P;0o|PGU7%2n8UR%@|TW zs5C^>)H=cQ0&=+=B9RCUhc6k|u3lwDTN$aWs9=Y~!(bVc zKo~+9LMSy1#_e`N-~|*FB_YYujH+svIF8d;mi>BBmJdW@u|F^9()-mw4FEp?8Grzw z)*=W`R903D*vsu}IF_?i`us*FlV%(a2MTflZjaX}7G)+Ln+C`6nOr`5HZ~pqB$>&K z0Ehy(1HdGTqL|C&5&%+IcrPwCzyM$YU~q8I2!%obAOdg!aN2CP$4aHr&)QpCH+5~; zV5o}1RQRflx%oNf^vUCDHZT7sl}a7cbv=szJVYb_^5Ebgotq1hGiPx37%uzSes8gI z08AXm^_T_Wqm3K7>8=-E)b{S(OPd?&M=U)5?S;8)Utb@0pUpiI5WC&(0uZRG^d0Y5 z-9}fpx8zh9?)zyn*xwDnT1`{paVs*X&A2{ta}LB9X8Wm;V3&002ovPDHLkV1f-jr}Y2; literal 0 HcmV?d00001 diff --git a/imgs/icons/21922.png b/imgs/icons/21922@1x.png similarity index 100% rename from imgs/icons/21922.png rename to imgs/icons/21922@1x.png diff --git a/imgs/icons/21922@2x.png b/imgs/icons/21922@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..84007e3df9978ab0e64f6175a50d762770c0507c GIT binary patch literal 1649 zcmV-%29EiOP)*hzee9otDAknQ4R(=-k(xsX=2)FPxxkb;1|5&O`JH5T!$pKyS{C_>$Sbt+1;6)nZrXiD7bO6X#xm| zPa2Ih`se$<|9TGafBcVvvv7@6kQvZtqjR5rDBH(mSoAkj{poIrL(Av?ow{_>{9a)p6XRZb2 zX0CpGDH&JZ*|Wc4y!($6aRQi+Rls|`8gcMuxTDhRJa+J_Pam%JmN_xM1{gWODIsiR zbC*XaE?gg-{Q1#+JBJ$na4As;FIT9_(Xg_q#_Q=l`tqUP(lu3_|Lw3DNTx|Tr=!AQ zM@!3Q{+UC2_U5u`>g2%qBK7;PlKy`EQ3VhHboeEoIQaJa?fYLkaG*3x#mRxo=GkP5 zna^lYO%v|4iq))2eLRP*BYXA+XP1XhzWb*e0Frk(9w`I!*QX>;k+Y?`#JwpyF-ON@ zNiv~i5J+XA8YaA=09oY8wwrUb;&XL&Z$nkv%;^su07*WmADKb~ECgbL-Rp2UU9uQY zW=H~*tZ6!y(kkXt87yZtETuJsG8&9vgys^84R(vQkYOk&1B}3GdPYr}3~Sm1p0Tkk zgs7%R_0eHr)Cxx<(3*Wh!)gJBDOlL zXmClWm2IdKINH#*mE2A%smM&|`sSy1B_D?X3IKb5b5^yM6-m9@NYsumw2?2n zWcsCI7xuel9QHWq(Ztg}X?q9#1 z?7yv?sjF@HkO)OsPAW0>g&t~qVIK`=lPf6OgtDSdqd!cTZyb1QY}N1glS23(l!3c5 zY&&-Bn=dvsw|?=(3a-aA8P~}8bnfVrwLA#$=6g4^u9hu=nT{=gZ+POwY_8I ztlrLTb+51v=@kL=1ksHj{O!t>8K2L`ojZ5#zFYBAGvM?2UUkUwYn~D>^n_x(y1NO9 zRGRsHSR<0vikF)z5MNos??MJLDFxr!;-o26Gk!U-z{OHAB%;wpcTw@Pr%s*vXd@r% zYeWE`y}iBDw|n=W9S-Mfl3k{WRLab(hFOwaWk)A&5Ubq=t5t+aDKx@CvRPrZ+i+q0 z8mX2T&Wx`?H>qA(QCXGKvZtSV%J==|=4MYm`eft0I&emjRa5tWMLtA+*@3HJDbh?bY&$%JG;8k?b}CkITcDG3N5FDPp2V3gU$&k zF0!J?nV*l;+s+`k%)egwb;VC54jUynQ2EsBzolJ8nY z%TIK})XU4uNp)2rW`kEdV-z0D$-d1?0g3C@J!IUU$2l2LV9W4Vb2BYMRDy91AsP!eZfJXc_=e!D69K zhs=ngh)gz{34A=;pGv34IgV3xU7rFF$qOk+008g+DrH&zy3^@+P85Xgl3jw!K zpLk+NcYS>$TH9L9;9`&@5-~C~JQRt>xm1oCCEp^1G~U8TX}|$rB!t>Z}X{Z_i=&X vPJ{jv`G^aSdOg`^#ohA)0E|cA`S0Q%4U?t1?WA9L00000NkvXXu0mjf_&y}N literal 0 HcmV?d00001 diff --git a/imgs/icons/21923.png b/imgs/icons/21923@1x.png similarity index 100% rename from imgs/icons/21923.png rename to imgs/icons/21923@1x.png diff --git a/imgs/icons/21923@2x.png b/imgs/icons/21923@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..681147642e4c8eba5358ae181b39aceada531ab0 GIT binary patch literal 1521 zcmViqGVLGk8=u>Jy>G$r#Q9WOr6bMZ z(3yu;+0NnZff51Oe*zHSu+aX&cSFr~yLA8JJ8xXwI4^WvHmBtV`$k6kd-|g!pa1-k zmbpg*9Vc?I2w@q3MVh2ne;8U`Q&+v^?#J(5S0mah(4PQw9jJC=f@#{mJzZZXM-p4_ zxphg;oE@FTe+_^D*w*B!S2*RF2cL~>@yB!W*sdP>tC}TAO-I09!ERgD$dwwZ=%*ik z@vfJVtq=T?7$$`LZ5B8y0F*H@J~$Pgzh=She#*(Que#~?DV5uk&XL{e9N9TB$$h^6 z78c0&*X7@DvSP99)~kI zGSD}IkkcJ<*ZCWh??k1t@r+rv25|Tkp#U#9+#DzfBS48V6ikYYZXjzIm@4VWXgXj} zFhSrh=+shqtpP0AWEceTVkVb{-wB^0Gq1=aXp=F=Re_*gL9I#?xIW%*k()bAJ0nL`&8Ta zVy&=mID@+S;F|gV%3Z}-xAm-Ey?RqQ_>7sjTn0$_p{=d0JFEPG^#MV|3oF8O&tQ^7 z(;9KeB1Bn+q3h6e9cEs`(@g;yD-rV1ne!xZz^4jqPYOW2#Tj>TNJWP{U4cpynKIKm;5QZaGiJPsW?0FT>U z^82c#(b2K(KOQ{zqM|7FVzD>@V0uVhat?3+Ow%yl&~^QmYr|n~bZp%0J#vUR98Mxj zG8|4P@%gHeN~sV84o;^Fxm+Hpbed60Sv)?DmYZ5&w<*%l;6Qr#?AiSQe8pn%Jb*v+ z!c0xb7A;z|As7s9RaMo$bm>yq6dRJ~lE`LMWV1OYNfHdx1kdvb1Og-w3}SYDJ-WIM zAr_CprYM64ySv_ukHvogFaaQG6<|6O)a&)Gak*Ug%$qx}*RIkhBQdL!*!X;+HjDx7Ht&MAMZ>Inh z05t$YE|)9h@px(#MRH4$q5z~#xceSW6bilbtU&$ndp+27_+<#Uon6c+bfTLRRDei X&(nSqK~Um700000NkvXXu0mjfQnlL) literal 0 HcmV?d00001 diff --git a/imgs/icons/21924.png b/imgs/icons/21924@1x.png similarity index 100% rename from imgs/icons/21924.png rename to imgs/icons/21924@1x.png diff --git a/imgs/icons/21924@2x.png b/imgs/icons/21924@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2af14f3a69e640d62b3a7f9798ccf7a0756d6f1c GIT binary patch literal 2412 zcmV-y36u7TP)?^B2n2;9kSGOJzysw0VFyq} zr6QHw>58*!bwE!0IY*iy~H*lGVC2OUq6M0JY_1N((`|l1WpE$7x~mD|$cno68D( zsSm~hj-eq7p2v|)T8)xL-OFV&iaGVrhw~r6F#Q8X(df(wbOQa&rYiUJ=>3NeYXJ0r z1B{Q3T5a?5Vm4^!jw7Al&rCKRY8^;T_2oKE%-WiF%{5F){k~+ABEa;>iog8h)q?+v z?KdV8!MsE=X;3Jr{lJE9YzQzu3JbHFEhM*CSeoY(Whc1jw(k4XJ?AC0GZQGeQyLWFgJ&w(FAloe_Zd9{$?Z!*{o>hWvBO zRoy6AcK7hGpbZv#0l+xGhmH@4veRSVa_ZIS^^xA~b3?gj+)VP1w&9G2k)}{nUpz)g zC%BVvd3!2O2&JJ&>!h3L3?2TLSFYqw{Ciub>wC*ePA)T6^r+Br6n4k7;%W*yQ2d; zxT>v{8WEjZg?e`ZVJ+})ZBKYV+11T%>S|~CWRfG2QUKeRZT(wsv&X}*CNO#-z{#==x8M4pn~eXGYf@pQYJI^4?&@z-Z=IZ!PlHv zqr6gFylSww|H_^HR~{-g#f!7^C^nnQ2x0kN^JhOlefrPOcMZFbE>8ORL~5Q-v^vDM z9kZkRcaQXFn}46QAr*u??)w<+%&3EJ%^Z7UrZnZo94n!trcNXpotx5>(1G$44_|!e z+~m=tQ?HF~O6$ICh6LjbWIz_b_fPR$XGNXkV;DP6^Wz5s7`!~c7n8Em({{Tp?7UGL zzSrb^4o6{nY5K%Mb&d%hYX%W*-?Jrl*ZsG(jqKfOcXVW&Y~0ReQi;UzQ;R2Nrxyxa zT3eVa1cx@@LTn3j@sVSztE@hF)LIu{0$?>AG6sO#Y*27U01O#|3}rA^_U00<6Wf|k z<*wbFN$lLWClUMlk2>sceKS40cOaIHaYsoN=P_5T&XrCGV`L&8V?;1Sh8frGTLLV< zTD3PkgesObPYw+^M6@ZAk{PK$hEVeSwML+ttw}f5*Pcpl-rke4ZX8YU7HmfiUc?{2#(YWoH1~4 zkk(lOc+nWPE&u~C?s@#WLLvCZzJ1R`(6%oGk{KLr3h? z8&<<>Mw&+~b#k^+nJopC3^$1N=B{lJ@=_Zj&PC`42*dEK1tjW1cvUHuvu+(?&b(|plYRt@{diI?MO=92&8IHC$$%uMw;ocqpzcPI-9<} zRIMSBk_g0%F{MhSGVQ?O$#P3nMtS`+P$=xuul3&GJSJ|QVcPtS1cxRNYzsP+1Xis@YbruRKR=7$j!8H7;;CDlJ0VYp_+ zcytfWMxWHY;0N)@;2mz))IoLVrdxIt9dpEH+_H#}v~Aw3*5OElLBWgJYV~N%H+2G0 zPis6~@9DW_$#L3CK@;;UMIzfGUrSc=nrqW%-ur>(G?SMtGgBznHp~J5czNoeIzBw? zKK9BBCmhBeGz>gYiUO^usU*rO!l_WT)yX)aHXam8EFO!_5!x#%gs&9VnjSnE@<1t8 zU8_Fc)KM{IS;Z-o>;J2F0l)!3cLQ=_csRE6o#TIqeE$*6AtV^{ji!h+`dVya4BXSE zE)9y{+-q%ds2+syl%h~;*6@8#0#7Rt47SA)L{fShyrhAusn=^eVysGx;HwCsQMJ-i@sX9e#V1>x)Y;)& z4Kj0Wbkj)Y7d`t3~-8U9M$Yt_EN^HW=rI6Y3V2 zZ#bmjoZwjCHiseu;w)|np<3gqrKjfR!i_X83IG7%)T-HwLg2ZsC6#jhAVLsHzeA5Pi}=mulLa3+WYL zgvCEM1?VvxxTN);8UO$r1Naa|*&-UOYshCPeE4Q)7f@I+z+nI| em$UMZ+J6DRIPkDz28?5$ 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 RZVCVZ002ovPDHLkV1kuyz8wGn literal 0 HcmV?d00001 diff --git a/imgs/icons/21927.png b/imgs/icons/21927@1x.png similarity index 100% rename from imgs/icons/21927.png rename to imgs/icons/21927@1x.png diff --git a/imgs/icons/21927@2x.png b/imgs/icons/21927@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b5405a677618acb76d3a7a0d5e6ade09c06f2432 GIT binary patch literal 2459 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2196.png b/imgs/icons/2196@1x.png similarity index 100% rename from imgs/icons/2196.png rename to imgs/icons/2196@1x.png diff --git a/imgs/icons/2196@2x.png b/imgs/icons/2196@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f24ebae3d02723fc95850413738b3888483c49a4 GIT binary patch literal 2467 zcmV;U30(GxP)$L`ENyLQo5|L2cBiQ6Fm4^jD*_m7!Ae zBaI@WK9w{o>Qg{yAVF%L6sJuH35GzxCN{RQ*K4os-JN~R?#|Ba+|wVBHVx*b&fj}= z&NtsV=R5afxb}~AcXzYS&Q4|+2EX&p8m5|)Ua8K@LZN1gM%SAFBmmgFd9&EFXRlxk zbk(5OnjHAwVC(K_xp96h_L|?XiH%#nt`;)ct?M^`_s#40q3Z&GXP)_}?uny^@b143+aC?YH+WQaLndRO zHqwrJ*L}6`x!~XKdieSA3=uKL*sSH?R|0VO@P+gK{^9$LVrhk4D!Jq5&N$=oVaq6_ zDkB5ODV3RlAckB8WvIF-NiZu_UPVo7hp=7$|HVL04+H=xy6^R){mG3X4{x(7j-v!$ zmd4}#yua_XNRExsz)*@gOqYB?eA<2hy3U28)M4Sr8i;utzQr;SKiK|jZM71&WCx85vr|;&;y%pmgl#%{Y8nb z-ZDreUrc}5X}BT-MC3^%68@t{4{MJ-_LH%or}%5jGIj?20oSMd5eSCikrmQ?8VmSc zCQIOp7c`WXtXlo2TR*c|JDEILA|gNMyg)QNhRXsVA_hPUhr?dA3mG zkTj6v`h6kt>0TD9iBi48;nh`1_4o=J-C*aZrotgBq|X$KIm0mIa5$XBEKFR90Udzq z^ZC4{X{rEJMNwLq9`dSMP(V_c>`^$FL}9;%Y%vUpb1K~2%&C{MehqtV|&%dB?$%cmjh;q5?(KM|( zn-fyI+)LqnadatAhz&URui3r zNIEGBnLJBOOj{o&%C8UadS&@HHph1~En4%G7F?PDOo@n8#+d!dT$hX?5plyXJOJ!h z5AJ&)kr=-((6Dgl)~yddH?OVhZN(RbM^VTX0=lN7xp^*&G%aHFja_2FqMIpDH;;Bc z^~5f%CU)S3{YN%U4Zrn600j6Y0P3gnT>@Y`w!`c73ILKo)n9R#P-V>nAmCLbZy@9c zF76OP0y2{+=ntYMq_c2Ct*q-F0U+EmuW9V=VBDp$SC!bs9CY#WC6YL+5(-Tt091vi zM8bvZ6aj#Q5Sd~&N8(~21_l9vTt17ukt1>(Q8J5gU4Tn6z=#QwQvk>;6siEKj4?3A zKGvB_n~*U^Lqo?b07BLxg-XS#a#^1M-~h6jm`R~nDsbK7qq1FQxm=p2l1a)I$_V;( zGV*!2u4`xWIloo52!c<%cOF$MeS%Bp0?O{)yFJH;hWOJ@KW%k)cUNYe0^7C(0G^5W zPeakWYby0{S@4tUq`^_&Ne=-4`rcLEp8DNZwnVFf&Ew?PSZu!GYKiIi*=U-2M zcw}2XBQLW`sj$bZNs-z{Fxi8%eea-D$Wt*_Kx!sKg+fd|d1kQk?um&bwN17A#}fUe zvN0vwreT*IM+jG#s8o;}9aR97FT0MT(Wu$m+gm}Q;6D23qsM>u{O%tIbv{_g}BIp01)+)tuhm-tyi(dz~F@2VL4^X{k0ALKo$#}%7mXV%H7fDpr8bzXo9e1!`O)X7N zoT91ZkW{oR*O(j^Ln8@HW~%_>d~&8h0iU1GUA)9RHgxE`zj0ak2A@+xU*9z|AUIapZCp)_}uAfgF*MRzEl5XCypJ(=+Kyx&g3yMX<#5xAR!2jW5MEJZyxUF zeJ3XhDex|5^ki`_Fnm2Ffa|Hu0ta{jAW*!!b}^XtUic@4O2%|_O_>`o#fsA8I| zQZ%V(*(AW24;}(D^0M7LQAOJ|G(_H2}xngnsu&k(| zl8^)Ehx)jt1z0v)ARz<{(-M|VAXEEH0rb-t;OVWjh9st-j07y_JKvN}D$~Lor39lD%%R&}F9+&Y3*J@5V{_Bvh hYPo^`2-#Kd{Tq)_y2%ltz~2A>002ovPDHLkV1k+(w~7D& literal 0 HcmV?d00001 diff --git a/imgs/icons/2197.png b/imgs/icons/2197@1x.png similarity index 100% rename from imgs/icons/2197.png rename to imgs/icons/2197@1x.png diff --git a/imgs/icons/2197@2x.png b/imgs/icons/2197@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..759c195774eceecc36988fbb48f0496d2da3e705 GIT binary patch literal 1977 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 IM6N<$f}6Wlm;e9( literal 0 HcmV?d00001 diff --git a/imgs/icons/21982.png b/imgs/icons/21982@1x.png similarity index 100% rename from imgs/icons/21982.png rename to imgs/icons/21982@1x.png diff --git a/imgs/icons/21982@2x.png b/imgs/icons/21982@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..23b3401359e79a1da94ad2e6e93c96f5a8ebebb8 GIT binary patch literal 1854 zcmV-E2f_G>P)@CoH=v9w58fwpoKJ`HS(k=fj~$k6+BH$eA1*Qnuyj1f*NNIfoOcd z7mSfNuMacogNX#94-hpW!9v^6R>4q$z0FK#&YU^t>~r?sYpu_R=``Hs@<2%Zzpj<_ z|E>RCdwt)6|La38`9Ky>ka>_Mgt@sn1DNYiozlj_LJ*P5Q{I`PcWb`Tz{(;XP*sgZ zBnJWjo8~MmEZCDLPYMv`=jZk9px$u;b6}X8quFeRM&r(z{a5X}f2dx+H7>-*hwI}< zdmF9iYXy7a%SXPyBwIkQ27eV)v)R-wpmzcw4KRz~0lqX_KR7v5{h_H=_jcnVc6@@- z>1pDj8l`%@T_2lxAu7hloO93lw0}I-^z_&7|558L7k@kF1+a%M8#ks#_wO1mJ-BaV z=&sfNfKHnEp+YQK2zstRpj@fi@u^9sKeCJR%nZ@QB$Ie(s) zH@YDaqvyO~X4|&tnuA|Bwz!CIG#d5_zyes=jN3o3dul(CeW+sX=VNOK8hm8L)C;jS zBJ_KGN|8l_GFFHgD;HTyGg_G=@t!1rQ|P%|oUtTv(Jl=#jr%>V#|6J0mzTDDuK*kZ z|L5Ji>&N5%kzC~4+iRs-Bogw>FYu$Rg^CCc_(I5ik@a$~)Dx>$DE~NL*R!jS=5sHW(8?IW( zbJE6R<2 zg`IoO0-QW~QX@b=_o=ZPO)B@5Q{5Nk-dDVup~%>RdWNbcTu{~r89nC-VmP+k;$r4` zsWYIjfllt}`#`Rc1w{lR5%LgN&pp?d3X~D;h%q_HE9YMx0McwWRRB>{dE%DqzGjMr z9}m|nRqH*a)JxJCFvxO@H3VZwLZFp7Rt7oinIj2G;ynKH-|SID!K>nYpydO53Ne$` zXy$#$Rqa1#cHXz}^wFOlfb1yb5uiMLs8pXCzN*toI{!JlHniltmP#>Gl_ItnvAWUc zQa7QOdj=YCC~1Jc_kbX(sDKYjYz!d;`l{?KM9f%AKRAtz*pT`^Jo)s|-&J7vC@ce* zIWY2_#r{gK|CrB17#S|>bgjgopYhBqD?D?dMb`-9lQo7$DkLIYOmbF}j1V9~P*q|v zlp;gP8oV(K8(~*uNka%$#02Nh{BdRdk!7eEa9qBwqj^x~=FG>IpDeAt+t|u5mrClq)Jg@0s|C_LaH-R0 z-~zRB%tXBcs;u-<&aWr5202EAj~8QdReaD8qvk>{{q4g`?VnYko4^^Mb0vW-65M!i z|Bdn7KmK*@E9094o!lq&_fKDKcIzkULLz zEn(nXup;KfTJKlCZgn4>f)|%JPyHL3k~gh}s>u9jZ??^+o{E7gm3YVDeLFsRT`9V~ zn7Pk{JWQz(ip7Z7h;JpCxzx`D5sFSjO@lex&7OVaV(WV~IDQG1c#|gOEdgFV80O}T zG@BN%K<(2Xo!ED9$LOsifjg6ac0j!nMTSZt3R&htw==Na)NTC!Li=0C^ZbbhEN?Y4 z?;7CssemGz4PG=lTAKdu-W@lM3wOJ|yKUgyL>9p2j^|c75B;*$d*m>zJ_`B&+T^>E z06|qmWb1ntzk1E~Yi}Pb-y+T*T3+j&{>Dqo_Z>b!`_ZFsZ~nfeifkscsh>l9^LyyD s-#-Y5ZoUt;^u8Y~?^W_antwR;Uqk7pRd|`zxBvhE07*qoM6N<$f`)CHasU7T literal 0 HcmV?d00001 diff --git a/imgs/icons/21983.png b/imgs/icons/21983@1x.png similarity index 100% rename from imgs/icons/21983.png rename to imgs/icons/21983@1x.png diff --git a/imgs/icons/21983@2x.png b/imgs/icons/21983@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..611df3a458c3410daf4d8645db8096ef899854d8 GIT binary patch literal 2274 zcmV<82p#u{P)O9jQaIF73WM5yOS*cW{s3TvgRQ~t=LshL*DpG5GnPkuBdYoOmc4YwPO2Gfm z`1MM8iFkj1zXI5~bK91NhT`r*K7XT5Rd*1D9ggj|K;&ke@ib8*K@_~0rs<)7{QX}i z!Z^P8z2-gac`pD7sC&P9*Up8>xgTV6**i_sbeETwDVK{FmdUA;Z(>>oQb$qG@(8`mz);pGbp3vF$WZYf&d|J5T;FKUet;&O<3 z01{Bw_HO=8*QTzAJKEP0__f3jJVPKv7zB)toF|DB3dKBe6rCIYQmL$n@3?VCSH=>Rk>e-y3j>E!!#2#0 z?yE#&TQh~mGMhGcv#xV3hK4XzO!*Ok7jUx)^R~-V$}rv<9MVIB!;$UUxBcv)-+i~g zAN63Ra#_OW>YGD{`Xmgf_Hy~l-PiY)3@=V6Mn;UKp)>e}Ja!?6?*)v9F<}&=ZHv6; z^OZE~lC33?i5lk~<8|)j6AIrO8lY(B_!fmQ6P6Vp*05(Mc=HIgKusj1A?t()2L(d~GiCnv@yg=0H!t=K$p?!J@pi3vPEVA&6uuld+<%-@_0`-H{$R3Q*_b$79K`&Mqb{TBAz zxrf=AS@r5Gr$pd~FW++89sdNxYX2{5!ri-ftAT+5Hm>hHm8OY4_x8Aa?2*Uy_8r^A zb=PmFR4P!Nsxmb_jbqys3wdUug!W^{$W2c(-PphSQ$yqsS-~^K^AzMQ3L_DorVr3P>Sv zOC@HG9Va_J&LJm5Z+91GM@E^Rs_K^37Mk1F)Qb81Z3hng^~mbI<%$50J+{}l=bi)U zFYdnem(QG=`queaCGp~txmc?aMKMAMTxTWwY&HWz5C;K;g+=BX8Yt#mEXyJYBIV?> za(i>btI->;@BZz{Q4df+df|F`4*=}l+p7V0eRHw>-jYkn_k_-7C=~LvuW4aTOCyFM zNz;@d45`&>1W`;im!+YQ#k5Syt&K=ia&vQrZ+`k}=MTf<8*pg@T7X6%4;Xa;;6V)( z-kSHDbfUODjl>OsM=_r#HViz|B2zA57jk5a1>9T?;X2?t%myKz9}t}$;Ui0n+_kZT z+JYY}c(I!|?Ho|N0MHENE^9&nDTM}1jm#{i3QxfeuF3s7wlFa~#1o@c2DLyIvLsq# z0a@Qi_#s_chu-!kn5luA!7>fzmTEpAO=a2;Dc)IzWnBQJ5JKRmB#Rlx1VienFyh#A z&*P+uk15SoArT8Pjd_d3v|e+VoA zwYnA<5)FvuFf12x4wjUnA!B1@GYp3b(}qEzsemsfi$P2jCtTCfOnWIuEI`>dp68R( zsVFz(8Jw(c0oKGT#S*|APzB<86}Y%liOIPoH``pm6fo~c%m)F*j7`RnsG3h)^O&%0 zq!1)WPBO0)Dr2*$Ax{{_be9V_w!!H1d=AJbL1F;&z~n{ox)o3w=(@6 z0q6=y#>V`qAUgA>(_>7|%&AR|i6d72Wl{wj)--a{bv>*rxa1_1U5lP|ovbhBX|)Zy ziy7KV8GYjD8+t5AmoY3Z2uJTu__8KE1p=*ELO=47GVVQVIC77UxW)w0(TrOzkqn;Y zjROanO*KU+Xv{kFeqsj;$6vR(32D~r8MQik~o!h=0N8$d3n$IRfsrxO>r(8>8nbHEJlt`^shH*?)O%+Fi z*myLSybz0%lOtpO%gg@1feFB`C-h$D0s-hv-Rti2lW1Q9Y3tP)lNJdZCA3RPP6`49 z^T2uFML*$f(_RwA(jP}&`_HfEJ#QGexCdNOJTNdzX}=+t501 z2qCo)DuG2Iz>%07*qoM6N<$f|fE|;{X5v literal 0 HcmV?d00001 diff --git a/imgs/icons/21984.png b/imgs/icons/21984@1x.png similarity index 100% rename from imgs/icons/21984.png rename to imgs/icons/21984@1x.png diff --git a/imgs/icons/21984@2x.png b/imgs/icons/21984@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4bb9b90c9e7d773830ac798d42a2858d35826933 GIT binary patch literal 1978 zcmV;r2SxaaP)703Vg&UgIp@v*pWq<#*Np>avss$$>f!-#H-yLllI`l^SvE@--s3qAPj%nlh!4rc zM@mr^po87rq_?*>xFo}dq(49R@~T%4_is8sm0Ruk-im;M+rDx0Jx{#wf;Z1%|C7K% zaGR<&-F@fnU);EE`E8Y&b=w>79A6rMaiYLOH%*X`p<1(lV}$(99XoayJv}|)M;6Ee zvkE_T=5pY<0%^x*1kLG_!fI+`C{vV2+O(6K@M{jGxmqZ9(q z5y$n2+slEWNFNc)Sk)#dT$XF#U(=?;7?J7P)boKR}qFG6j4NDTtiBgK^+S> zm-C_FhV*zO{ZfYF`|o}*VU&O>0KXo^FJx!4S=vJg+nfDP%im5OKd^FDXB(pwzc|>B zk{D&1TvK>N3y`bWIPU_oz$2<@NGKxWlp$&s@M*8cJ_rdtD#rG<*UHcLKJl8!~@oAu_3YUnftZF%Z z$Ip#EmjzgTCtNncve~(*b*wE#I}AO&ZG41yBO?T^15M-+un-;1ixEjCv0sX#Dyy(; z8`HW0T{kgeI2eIQl!yjfkhUAM z?~gv+V%LN(ZCSx~uFN3A6R4_;h$=&tB#ckb07ey#7a#-$4+6bfgX0BA$79gl0K6cC z@u(WujuRT?iszZtNP9Z@?adcCrJi|7pu4-91Hitw{qy&f0c$#%$TH@` z^aAjd;^goJ5JC`-MxZG&B%X&NOK8d@(Yz=P2EcJW#1w_rEQ@2VOR4A53|P2zc6#XN zeMhYBI_{-KZ*MPS-QCC zFhUGDO8XGO(cvPZ%}tO>Rm_wt0HJUk7mn+ppc`n-q|lI#BcjT%Z5OgEf`DLfXab8> z39(cnY%S!tQQIFH4(J~P$4LU1zG@q;C{55+mRr7~E!z0PR0Z!zF)|}7IGr!UvK$yy z8zRp`RU|M3!xf(`|G7_m267d+!nuQBvlej6aA)bha?fFSM>v;NEs{YC<7Oh}z z5V;El7z4;gKUI{-)V^xSefQq9>K_=)ks^@@6-9UfL))SZG))0x3_fGX6$Es8CRpg= z-CQ0clhXhJmNzvZt%~82i7|T73&X>ZU(}1mF#r~T900Gr?=P*h0C5|UUKYvh7I}K# z>#~N|rz%+4+RT!%2+<7_(?tVQB^@_qQm8QozieQ;;^R<2F(znO6w|=-To^TUirIpD zgx7wj=L@gdz$}0h^Xb3pBxF4Rki$%8XX4R&)AG-3PWr-9CMv4P3kgMpUUE^@iy$FG zu2jaFj#eD2+Bj0Rv0md*5P67_z+Bs*V?HgO^ZDP_iiQ4g4n8mszxHWZcVtFHMZ7N~ zE9<*fFL_`?O0w}2*{H{c$Ex-pN`=yH0LK8l4d4vsUcCPrSDc0mMeh0s0uXCF z(D)yieWyCs#g)#OATWXQ%(h)ZDWMcN^H1IWsju4?0^lO%F8f3F25|k~gam+?QpATg zHzuD^GnsXzAS6z}yy=p0dSYhw*S_War308Atn2arr@((+&J;NA_Kro#u9kE%Sukqj zr!Pz###P$uV~e$b24E3@MgXaHK>paF3xfclgn*D6`s;Uv!zUyD4HgS`yRi_;dH?_b M07*qoM6N<$g24@&;s5{u literal 0 HcmV?d00001 diff --git a/imgs/icons/21985.png b/imgs/icons/21985@1x.png similarity index 100% rename from imgs/icons/21985.png rename to imgs/icons/21985@1x.png diff --git a/imgs/icons/21985@2x.png b/imgs/icons/21985@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f5d7e0b582a8843ba2dfc48fc9159e75802adade GIT binary patch literal 2303 zcmVMfwXK<QT`QY5?Cr&rS#*=3I6+1> z`GGe#$Ct|g1LVssYrcels9CyC^CaDWFue?B3-x-l?Pil$mFa)hBjv zi24hl@8wn=>XF&+Nm2k&0)??A;n6!>#c>n-B<2D>}2?dtxp zoi?7{n?{^8iObE0RehkxYwN$Flj1>}f}(W_k2tYc5gAbA#NBRyW5* zd-;K{Oe&4f<<1d&VCuq?uM(dBjl=uD^wYO5Zrw`aCV^K#oji#<_G|S&SxDW?kXn0B|Ggu}~Go_bi+6Hmi`{3Pxhovc1O$sYf((mL8|&MXf` z(^y&`J>Z;mQS{M%9{v>g_71MQ)r9g2_#@CjC(k?QLutLvjaOSX$k2KESrKEczNg6D zeo{d#v_)D8j5dgNB9&T7>E%(X)#WTNVhmAy49YmCtdH9H5UQ2ri!nw4{EhZ2fDJKO6xO4nkR}!Wc74dj$@?67`yv1zObcGkEt1yAtj9zU1py)V-~%Y7 z2q6w%yL{H)HHJHCgwH+o$V>H@{EjOMr(#T=sw?(sVYQ58){!bjU4wC!szf4!Q5vmN zrY?~CfI|o&u<1NK>nL6Dl}f7H?Z&^HdS~@(x0o>Alw)OOMFF_rPdNe}0a5(771lj8 zV!#Out>ao@aY|FDghCQ>FI+1ulK@6(d<^8k7(ql4LZsQK(djhK0_@(syK-alH)FWC zcyikqQNJ=ZCf0PSOKS*0cuzD7#v#TLl;Bmu)Cx+#$A}Fuv6eK6q)M2EKwkvo0zO8R zC^a|NibZBl12fLKc!R+0%d@Pktmw<<&zq*5C zW8zJTjgf8=Ifh{#PZnyNT*Zfu-K>|H5{C!{1^9iviu>q8b^AeNcWcuyR!T4|3 z{uW#Za=_pIH4K1yW@he(qUH6>nj|ZY8;PcsME=N4h|ck5wZ+@bE@`8|NZ0t!*y81~ z!60{>=;kaXp3ta+60cH~Sm)o`9E@KEnn1Z@z;L$~+(-kD9N6>NLaXtQUE%Ro$o=s+ z(Wi2(Y$utx11GC+kINxo@!DuSu@kI9RS!8V7fBo#uxBjZIVavlcwvXWs zk(-Or9b2-Uia;?7n*$H;oICfO&m26EY)y)1+l^WhoR?S{8mWY&UZEjMsVLH{S8>kU zabEo7)S36bKeeG(flUvaY`fmv3VuHYZj_#bW*_E&eapKSp46Hr_wAZ}ZeLYBc)*S8 z&PO(yv)TEH`RLN-;HT5VoY@?V-e=qC*V&HTCye*25V)aI4d?)EpjC&ZV@oqf|6o_` zOTocQ!{W#Px;B2pZyPM%Ic{X#>?nHI|AJ3L0Jf8n0M%BjRn>OV>IP;DMaQT3cFER2 zGqg!7n@lDpV0UJG(`@&uPfOs|=LOJv_ma*!RHBIelyLd-O+dKMjQ_6$?)Uzu0{nkh Z{{xAK%-dljfja;I002ovPDHLkV1k5Rl1~5t literal 0 HcmV?d00001 diff --git a/imgs/icons/21986.png b/imgs/icons/21986@1x.png similarity index 100% rename from imgs/icons/21986.png rename to imgs/icons/21986@1x.png diff --git a/imgs/icons/21986@2x.png b/imgs/icons/21986@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a17a8a1a37155a45f5f2b2c2d8b391c642d52691 GIT binary patch literal 1944 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 WJs)0E=nicF0000U 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/21990.png b/imgs/icons/21990@1x.png similarity index 100% rename from imgs/icons/21990.png rename to imgs/icons/21990@1x.png diff --git a/imgs/icons/21990@2x.png b/imgs/icons/21990@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a5b931bf37528638a353479107d2e37f8a8e35bb GIT binary patch literal 2278 zcmV76AgO1(jAf zR*{e>DlLMNmX=Z>sBkD1{XyD_UP7cem&Q$PsYL$I>QAV607I0OhRwkr}{ZcqSZ7@#`=Bo`ql0Qx~c1rV{+ zt`uOo3CJ)&PxONz2bwTDsOhiB-f)x@jRkHfR76W@R%iiB?u8ftIIh5n%K!$KB0bRo zB^>VX2E5dBZtR?#t%CH%z)A`nO^Y~HugqZjTue>57#!ruWQq(7?Ecs=mjWzC-wR38 zB3kK4(VGKWx81SnrdUgBWc=j#M4hFN)m8NAfiW}7mL~Z36?g2|A?@D1oBdY+A4Ffg zqt7#$npCd7@y0D1w_W#Wqn+ODb!vFy;Dr09@tIjhmDAo}Fr})>d#5JP?tkI8PtL!# zZ|wTt{q)y+_viEFWw=(9eCa>~K+@Tg9Gfhna@nDWiS0zYj>VkZ6UT<$| zYHW8XZZ<3jk>)n@xflOZbh&8VaqpK>*Un_0dEyU${Urzi`41pI0+0mA={}Iz`8;{B zr=EU)6%2spUD;doo!8gWb9P$*s1eR zZT`g%Um5^%_W{bYfV(vPvM?X{1p*+?_CeOCp(eXm`JS(Z_k=x4UsW%&s$Q15)^sA# z(T>BXFCb%@s0-DB%8F=02Bw0Paqbl zgGZ6M5S&sj-t7+XdtUaW&pw>13pB(_wSWV6_6XR};?@OlNg*PDh_<&AvU@kvWwpPp zt%X&54?ZqEx)QJ7-PI<+q7!h*#6bK z@%GzqV&w2BBw0bCEso|yGdjE5(Gp*cA3QjOVxa&Z0fHWh`3aYT5-~!;e&Qy%_DV?! z6lNGLcAd)CX0hnRhYk!64@;B~arB+PZLnEoUt>6$a5)izQ)-kgG{xh{>Um_cbMSb* z5JDi<*no;&LUuZf@e>mWY91t-V(_RG-7=)_t&Z?VHg^WLwKo1}R0=+XsuAuImdCiR z^@HRmA9e-?1{eT5zw7Crd~WNtEku&sg>prnp39+F(sA_66zaQsP$*YnIyO36nvgG) z00@j7JA{KrQwV4ZLW&HZm!gqbxOHncm6IJ})481Z^ntT??K(4$FNE25XU{T%eo(O& zOcnsy36QSAZwLQzJoQxbs`^`Be`mk@_X9^|S&>i|@}qNY8>ph-gkUnNtDVaBB2207fR4g0}TN`G{Pa*s_+XJ9h!u&Eb+1h$rTx1IiXs(Zo06$zXRF>!I0gaX>Rg`)mwx~R`cKtPfp7=z0I3&13RX#nD~E7@!n zWZDIhk8FCCb58xsIW7$%?6Ceei zT!0G*v6wKjEQz^%5ugNB%Mywrk+z1|#B8=WD@l^ZIllnl6o7F6XR!#eu#|+C-v=ge z1^|$&RBAW)HF$kqf`uxInG(({m;fViWe6rXktB&&6$^gNi>|gfmnao;`J!~@!fX~m zg;F}n7&{A~iWQFIOC1nF6~aRx@`k1PR26QfD(sQdc=N=J$WxUQj|z(m!d-4L#;04G zVi}J|!RX1ebaG}6g>sqK96Jx-Vl?VZ0;sIC_+<_dK-`yt-~haVU|q^)c>m~mjGCr+ z%i)A68Zm6<7?s+QOhF$pY-i4|=}y3}H5+E-^Qx+T)~|U{t2s3QbNAnm>d??iOD_We z0L=j71n|gm{h_iYj@cG0N=Q)iSMn8Saw?nKpDEW4b6^HQresztC9_H-NqTKnr0!PR zar$-B7z1Do4gKrfUrEb8Ec*JOsBZVW#O3R1jtz{8T|dpa5wPkoEy{=|y`X z7Au+;Kx8onm;laUam#%?ExmTgwoS=z-mr0vwXVC}j`+L}0qE(Apss%z*DeW2T54A; zwIv$e9*;%u1rQrt;TiY86j`DFi9`I~7XL)_Po<$HLp8&`8UO$Q07*qoM6N<$g4_f# AK>z>% literal 0 HcmV?d00001 diff --git a/imgs/icons/21991.png b/imgs/icons/21991@1x.png similarity index 100% rename from imgs/icons/21991.png rename to imgs/icons/21991@1x.png diff --git a/imgs/icons/21991@2x.png b/imgs/icons/21991@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..15b9534e32da981f9c2b5ea6a86ac0995bd33bd7 GIT binary patch literal 2182 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 IM6N<$f@S?5T>t<8 literal 0 HcmV?d00001 diff --git a/imgs/icons/21992.png b/imgs/icons/21992@1x.png similarity index 100% rename from imgs/icons/21992.png rename to imgs/icons/21992@1x.png diff --git a/imgs/icons/21992@2x.png b/imgs/icons/21992@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..624b12787c82a09b22405f37cad9d0b95961a693 GIT binary patch literal 2325 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 Ar2qf` literal 0 HcmV?d00001 diff --git a/imgs/icons/21994.png b/imgs/icons/21994@1x.png similarity index 100% rename from imgs/icons/21994.png rename to imgs/icons/21994@1x.png diff --git a/imgs/icons/21994@2x.png b/imgs/icons/21994@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6630a8336f9e751aa47989819a6f45283e3e8af6 GIT binary patch literal 2307 zcmV+e3HgmHDrh1uAwbeXVkhL{#7P`uuh+ZY-S7U*Odo7QAdrMh=VdgS z(VX9$Ip@rOfRENFmjeet04NWzd_K?S$N#^U%jI|;U}sx1I5?<%7?6)d{H2ZSyH8G+ zZUQB*rpwIB!Z0wAxuV%_)Zp8pW%gfNIeQYu5^6owIk zBta|`Y{!BdM6fJlZ+Gj$E1%rHy@GRiLOT~gVXjl9+3HoAlF&^pY)>0T7$@X;zO)UU zI0HB%s)mu^O2Kvg6%*m1G=SN2?SIyQnx7Y&Rt;QkGF&?wM2PCX8GAlyu8VHYSXM-o zNg^_&fF%+hgb{R3Dv|L`095WAHqJIl0PtY$a$DHuZxBV{SDR2@YDtVwl<);x$D`lA z5x4a(zzw#Jc)AQrMA+P^v4u=<$*sFD>ug^B1R&35=L08lIWPe7$-^^ugc7S7C#N3y z!R4J|&9Zj%rX00qK^wH{TexIx57zc|Vs%Rcz%_N-=a*V&fLyExrkE`|iQ&)2T>3S{EwID%1A(f`v;IP1A zfO8$SSilzozuPv7S0=p~?t2diCC4-!zZw{TiMdQTBkRrp$mPHa1&H-)FT4eWjcyp+ z@zU|);cBKiUC>%u4l4)3wrH$aLvhD(Ol%*;v8gKdcp;ioDg0A9_-$gcu;f?ko`1Jx znu~3|C=Wp9&jpar=UJfunY(UdFA@F1_52t2960uH9?&`@xsIhPW|(MbYsE8?@TcK% z{PFd1Y@H2Zc6A_YTi}e~Fd5W^uU^r&W(bh^{JU+wYcMi0LIBj{ z5dg%B)k4;MYnST$ z?9wzQt3HLLGSZ$4J&qt;4}KWIMy!6gBE#3~SY4Ie>CxaYDQZ&5kP%&V(S^O=C=?)0 zx63dW9aI3sbsN|9%2@p}iKSEu6f0^30O(D!xgNAM5411QvKB@srm16m9CvQK6xZ51 zE-cSrY@&!nMCy_&mcY=oHkrUl17zCZuM2O}@ z2!c`|C|d!TaclB`Z41BXMPWHW)-mzv3%bzNtZ?IJ2C!*hA^OrO2;xv)1gR*Qfe?xi zI)+V*NE1RpBV`suA6} zzpDOLmt`%17zW%#z#t+J5u!MGWoE`_ZEX)bn13Np0SwLevnAK&M2d(&P;CHueI>ex zDc$O7ZJlmu#Uycz6lYN%E}{C`1SV<$hAUO*wu5p<8#5gzezJI%}YfLHG2cTDj^qU+bT;A@qZ|XHrs#Hn& z0Wwk|!wDkvQLa>BBbHy;&`*m~R+kPW1gKaj-7qxrf?#a)#MHg6>%Og?)q4R>LA%tB#{bu!;NF5Z7>Vsffz-3}%I-P}5LJ zq-zG4ynWM}HeF-ita<*4(c@G1dS0*(K#0>M+WSc|1%SW)=FxjDUfCb@E^NQI(bA^& z9-G{mHLS;9J3PIi!O-==?iO{?rJcl}Veigk*cr{JB#dd#wu9leiPCe6x-;yRnfTvP zEUY~Tk8X(~aR9&=-XqgK2ted=;Dy5IeQTF5QmySR_pRov__gQ9W*aRQ+M2GLx&dl$ z1~d(ZJq@T5-kSB1F9$T0$!0q`+y3GPQRcPbgSQBQ{Q#x_1n)KWfr_Y5fXwIfZ1=vS z_fM5(w`3X{e&RdMgU4gayjczCXvHNfBrv7m`2mj9T&gRsW^7yQ>TJ8K=0(we4;;B! z2>b`Y$@eo3oQEvW=ksi6Xb8)DJGV47q<_|^Yua?pll>&r9m^Jw#fY}m=H=ma89~%Gw4nyB@0(K2(=-1KE-soth zX|KqD*=vAc9+*fu!GGRx{T`ob>CwLuQIuVByCA{s6pk{jnv deqP1_;D75KFXIHZH*Np`002ovPDHLkV1mHSRt5k7 literal 0 HcmV?d00001 diff --git a/imgs/icons/21995.png b/imgs/icons/21995@1x.png similarity index 100% rename from imgs/icons/21995.png rename to imgs/icons/21995@1x.png diff --git a/imgs/icons/21995@2x.png b/imgs/icons/21995@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7741b6f5b80deab845fc336d08567942df7b98fa GIT binary patch literal 2039 zcmV-CfCLClFkwR$vbpUh+3R;Z#~;QK5=uI#{P3MQf6jN_ z_j%6yKJPi_1OAVVOpf~p7z%}GeSN(MK)7$9_4V~)C={YoKL~<=RjcX?FheHpHAOTS z43d_X7VBRV-Mm}bx9!#1^QSwOMh6Dw8wRTZn6Q3r@ZqMWCUX*t|EC0Q16EbF@Drb0 z_T`!d)yq=p?6USV=PMW>h?0aAMS)e(NTvAlvS$+K2dvAq8piND< zjf6M@E~%@l6PufxIa#sN1U~h^Lo3D2RrAWeQaN|7qqD68r&>=~RG<(Akr<{yl386K zl*8|Lam5}W-wfJQMAJZTp3qk>1 zH^G^SR7wXRqM{;zv3L@uVZz~dLb1s(nVB3J99uW5wDeS4TbqeVf!}t7at|v5^sEQ^U|T4d4Wn5F`_6P%sn}xR6Tg5Ji!x z&KyfO43^EN4K1rX3XAi;qZAk0rtTO35DW$dLckj~uK8?XndilX;TJR647^?s`SfxX zsgwypqzL!+0ffTobiuCLAxa_?MS;)fh0pJU#Rv>thh4SPY$hX6V$pQQq{|l)&Pm7RvBq4#hoAUcoSi&%o+x|(b4wUhRRs|!>^XK2&cPW& zjw1&yw*#tbha}4|3st^PViSZ-|2Mk?@rWr^jQ}6}?a5(I+t2Stw z9kL>WfM75j1{DOjbBoyzo|-QlY&qT8elc=L6pViQIt4>qTvC72DIin701;18e)vOS|oI z=BBPg2M`5dOw#~Bz&Xfo-%K~Z`}W&!jfa0P&aVlO;n6JIxh_7Zx(YtO7p7rgFggTD z;OM`p;TL;j_}o&0b*pBvxBcme=pcB9lZnbvAF@`<>R{`__$V|hTu7TV0(9!}ckwA>|P-j=ae7LtK{!U{2I$cq=CH?MB6t*yP049IiJ>9_r>n}kLUl){sANl VfuMRm z;6C?llQ%D@uWLFjoba9lj=_oSX^)Oh4dQlITR&o^?xx%5R_33S>CT$eUd4pbW# zGIjgjou5wX`nJib@?5!|lwzS`AuZR+CL)0lk_eS3CAHR+f~C{sdOy}l=Leb|kGb&& zFd%`6b(`^00OE5{H;6nVo#usFjg5YA+X2xqqo>Z6W=nNZ;zCDSQZA*5>s7=?L%Ph< z%(zO5L~x23WSAc%sY6v>EDm^CWelv(vZk z=uEC$D%V6g7CO?BG~$HDftz(kuHU}Z7^{!J@z!jWm*bEzX(1#}xULuZS#9jT&AA;X zpZw12GeUq6fL^*R$=auTJ`eZy2SA_s{q`&0c**(7HG`XOIxv*pGBG(nccD<2((pKs z3E#cFzkBrhp22K8Yd0prLLn(W^FsO9Yh%-=A(BR=Qm%3l>~j5Zs8n*|YLz_Q(jR>P zmBSNDE1LFl2Ob374A@71u)QTW8U7{}xO=-heQ@Cb=-f#iht#Y2S9`PD(w`je80zS- zu6DAP0l3mX*KzxB(@3GPsXRS9H|O}hw-JdU!4pubku>z4+;K6o`-a^&kG(inUJF6j zxIqscf|@)|zu*vWueC~Knye`lYPPsk2Qir)f^YuFH9NBdZ7tR%={=^Y;}+7?@fpIx z{idUnd3y#ru1-|;uE5U>X{~I+mC;HYsiZL4Tw7VJd}&3PT@<}ofJ4xm_aQ~BbCXia z2q9S`mbBgwB#tGjrG~XCyuzhy2bc>l=%&`T!GgjGLQ1IvM(BVw{x%+SYpo^5fNE)| z)nHmH<1%-|T1x=v)$+d$0N9@NzV{KZ9ZD$5xu)lGF@#VMiGdWB#8GU|&c?7xAc@a| zkVOzoB97)^wZ_aj0VNZwttCbqz#140SPNpbp_t0ruv} zR4_(iYLcRJlLVm>ggVfIAvViD*V;k~g@g^tAPyIQ`a{F&YND35b?PGgaY;$_hMgqhQ4p<9gtntH;BwU_3^~U%q0L{f>v9ewd0LvSM?%vYJL{Z~g zwNm9*01SWvfEa+j6o3FA0|Nt2B;x0_Qv0=1sun3H+aBWapWcC~IgaOEo&%3KW*6%4 z0vFlV5Ec~s2Q#?k#x1z_fulG%mP6Wyc72aYAzsTbUbr7X1RxKf1Rw!m*ETiGj6YTJx$MM*&PoS%-1;$teK7%nDS`&ns6mq#LM)s%hwfhg? z;hCr+NBg?x3qQmj6h&oAWwlmVOvP`_*ytO+wbJWO-bxjE?gi?@EP@AdoczK;F) zu~+oZe(|F1XmQ{W4Ppd%6oCK;0tZGU=xV3@7d^BP5`6kMF*9i+CZfiru_x-uTxw-E_Coj}%4ec^U z2rRWq62n|W!i;elBh*?N1U_-RKw2%IE1sWu#BrRw=V2be{7T*5A^vU-tOi@-#Fg#Y z>>y(pZ0~Fz>g{dcI&|F?DUnE=_(!oZJDq>CSSi&U`8zb=Y->06MoR~a;Wve-s>s-Zh*NYWL z*S#0~CkIx8uE6@pWc)y>&^RV7>LLVSd>;{|A&*(iQAYwmu4H_%**1#z3b1xO0l@nD zz;^H6OtAor6&B3Q%sVXJFysFf;N9lGC&B-__&1a?FU5o~rq}=g002ovPDHLkV1mdZ Bc02$8 literal 0 HcmV?d00001 diff --git a/imgs/icons/21997.png b/imgs/icons/21997@1x.png similarity index 100% rename from imgs/icons/21997.png rename to imgs/icons/21997@1x.png diff --git a/imgs/icons/21997@2x.png b/imgs/icons/21997@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f5909109d92df8ffff908a615d0f73dd53c204db GIT binary patch literal 2003 zcmV;^2Q2uBP)|r2Q7B!40j(X6R(r{8?J6kiU=^#TZi7i(*V$Ps zI;zo42vGuRQLBR1ZQTZ=W6*Z8VU&`!Wnm-`LV!Go9Vd1i+p&Fp?>%RK1Ug`Z@#?hi z&wHfb_nq(eyXW^2+#_%faYCY>0HmO^LR(JJhRP zxFZ1$hePywz3R-lH5-(a`jSCMQ)M&D1dG*1zP=zvi>Ij&bXibS93w%g{m_Z{bLM=l zLl+ifvDkp@c6&8K!NCD~M-E(u(X79yOA|F!RYYUDUP#7O3WLbgGG}S#oX=|+`Sq-P zhS21wq0gQ@pJufb8%1A1CAs?McO+opLN60Uiit=>$g^j1bB2))UKrx{RRvL)n@P;( zrGm}+MZs!qA_^^H7Gt=jF)ul{BOq$_Az5&{UF6CT+`a&(Q+WP)!tx5HZ&>BLe@}U7 z4z=0yF*x8OT#;dv;)u)r(0CXeNy53x35%0pApGzT`@byi zduz_prCU-SkLOcf@pc3p5ABu=h6}PGue7nY!e$6Z$9Y1QNpEK_Dr+lIR9c9axA$P! zpTzP-A^c;Y1ZU2xBrv4Yh5~UtPo`FjqHwIax#iQEx9ot+1$tmhk6JUY=_gML zRj<^Y@;4*|U<}0Vc9H%2_X{6=^pI9OYwx!nSys67QD-B*{lmSyxMUjH^1`Ede9cC@ z?>U2#Vmm~G0fYeYi3BJ#NTS3zhn7+_sxj7AR#aAV_^>y5d3W$B9blJ-q^qWjtX!Ex z^@fcs5gmVG*@Lyr^I=RK2~3bvC%dt6iw8TlJ`LyBn&BUbVLTXuA}e4FkTsDj8l$qJ zN}NETly-PL9+`98+6=5%;iS#Y`C`auF|{mibd3bUv-^h>V#~CMN=gM$Q+WG#2M`?b z;n`=_W62jzV8^a~7#teL?3!tOPPLJ|`sT^M8cg~KG!{0Sj4u*GfXV%F^Ow-&a#5ep zC$zP-vHJU(e!l6)E$iDm{QRKzB6)M$6Ii_L1q4GuAeOkY!1 zKVSRRu3e<(+yHs&kH@fk*VFjYH(o|yB!=<|D^kfgHf{MeGE4@Zo1IR4zCgUEdvt52 zP3Id=A&XLBf-wUH;@5E9Xa)$S;9jp+rS!KNCrKrdQgwTwXj6Avy9PRtJNC3k`1PEfB@iY z)-*^R=Q3<#p}``XsGoajIEkL#PPTY{HhJ%01hqLC*!r3m$Eq{1YDE=h%qT-l7I;oZ zl5E=iXN1NQe=`{p7l%WMNQN=v!suu)=5~X)-RC%^*9sullULPMf1hb=wZ@bJFp`yS zF+yVuON)IdG<-@DMVlxJ;G9n+6N#N^f*Rmy>1!W+pk?~^R@Jdr zU)xLn^lm=_BT*E7E}gGjQHtGr2S@$Gk+&%y|4>cvkITwx&s=$M7z3Fq6JFDTcswqp zn@v5EAd*lp)IT~j+!2Yy`UF9U7EQNp{-FKD4}#%H$yXLt@#RZO;14kr*cb+UQNo$h zj^xPu!I(BskYnugc)S`gNjw$#^(_DZU~F8*@e{tkCnBTUlM|66xw)ynt}djeBK&V401N<1^m=_UfQ*I) zNQ3}wZEGdF9ma;H*}tf3tl>p7icad%t-JMR>o&7dS}jS^Y^M`CaxZfB_23-D-O02rZ*M4gUnDpOQV^#h1_y-*36449vl0OIv}H2_c*r9lt` z0)VQT8oo2iYjLZIhy$RZ(U3tPB#}rYyOgNnzZU{-r*qV3G}g(oJVVnoKY-H!M*o)r l2qs%b0WbjC-ID)b;9tc|dGKKo{^0-s002ovPDHLkV1lxG%98*9 literal 0 HcmV?d00001 diff --git a/imgs/icons/21998.png b/imgs/icons/21998@1x.png similarity index 100% rename from imgs/icons/21998.png rename to imgs/icons/21998@1x.png diff --git a/imgs/icons/21998@2x.png b/imgs/icons/21998@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c65e6834c4ebab9c5f4c1e4d79e9f87a10d5c703 GIT binary patch literal 2160 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2199.png b/imgs/icons/2199@1x.png similarity index 100% rename from imgs/icons/2199.png rename to imgs/icons/2199@1x.png diff --git a/imgs/icons/2199@2x.png b/imgs/icons/2199@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b9afd8efc3cc45055acea09bfec44b43cae36ef2 GIT binary patch literal 1912 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 M07*qoM6N<$g17wi5&!@I literal 0 HcmV?d00001 diff --git a/imgs/icons/22000.png b/imgs/icons/22000@1x.png similarity index 100% rename from imgs/icons/22000.png rename to imgs/icons/22000@1x.png diff --git a/imgs/icons/22000@2x.png b/imgs/icons/22000@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9d593fca79f1a3fba19a44d4e7d6f8588b403dbd GIT binary patch literal 1912 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 bvB*CFtK}!(xODZ600000NkvXXu0mjfKlDZ@ literal 0 HcmV?d00001 diff --git a/imgs/icons/22002.png b/imgs/icons/22002@1x.png similarity index 100% rename from imgs/icons/22002.png rename to imgs/icons/22002@1x.png diff --git a/imgs/icons/22002@2x.png b/imgs/icons/22002@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a034ee452265cc6821dc788e9ea5b0837cb7521e GIT binary patch literal 2305 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/22004.png b/imgs/icons/22004@1x.png similarity index 100% rename from imgs/icons/22004.png rename to imgs/icons/22004@1x.png diff --git a/imgs/icons/22004@2x.png b/imgs/icons/22004@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6b778a200c6b86cd8bf37174d6651b2175c3cffa GIT binary patch literal 2006 zcmV;{2Pyc8P)&DitrQ^0Cvdt-%Nr(!kf)N!YY9DG>3PfySN^qliv9{<=tWj*b-#BcImlK08) z`+a`T_xJpsS8(AFGrY?)cL_qsi->vNP(EZ9Wk!Ti{~yF+?b@{lKyzF3EulrVw*bD4 z*REf`uC1+Qe#88_n{NNyC0n;|`_@OqmXrCPz!##T^@`T!e6I9pFrZysUt1mT?irmI z3>qRmm6|pT!}3=8GLCfbIr7et7tecUbB@@&S-YvSGB`Fl@_oy3zN@L4p3miZ@cx@Q z*c)T#Q+qHg3>@2~ShO%JbW~N@TUAx{y@Z`O-hZG!eU@iNZ_Fk@05Z@R2nMv^K||9U z6H^K5m(;ttd_mZj!2&O%qj8QO%W!HaClm#@kS}~~=;Y87fCktz zk!W)zAT^lEZ@6)TJ3KV(nx-LL*HNc)1#bP!)igFVVwL)MbKfY6Cdg%{u`EYU=Zm&g zENKWP&xR>m8FLB4J3e zcuh=?i4Y*A>!_+CJf?BOMGNTY=#T)N5C49u<+4qMK&6LgAATIyaj5WmSh8duhM`j` zS=hFXs%yB8jiLxVhAINVAQirv(*T<{Z!YV#vI00`LLrKpXYkNJ86VG+NER_YCc2@M zO=S@h3|+@G4XOfFgz7>FMML+8Xlw}4y3+CiY}qn9$&Bdi46E(!QRkk!KlZ?9ud#o; zx6kjK94V+hhbGA69agVtBA?G;TNak(GM&qlOeDGd(ppw5uW_$!DJfG^*5DJbEZnsB z@4Lp%?wseCu}lUc%5Aqr9enFr{FR=&suu_4SMFFR?%T1PRjWdzlW8>7B^dBi6|5w* zAb=ulN|xk`wkqzut3g@Q+9c~57dCpl$s2?~hQl*+m8pVWfdq8B!BOaC-qdLyPQWksx8SXL}pwr`ZrK-6)5 z8c|5b-iRgbXf~6@neKC@;)4v2q*%7tPh&%n`ehqvZrRTK+GVt^58(4Ej7{dqrH7?1 zhm{ipiQ(e|6FnhM*yVt5weD-I*neyozsv7=+0KGx;-WDNDW-IIGK-# z#z#6|4cafih8B;FOO28^JuDd=OHdu^CX*gQEu5g|NRsJ%k-@<@JAN`DEKv<^afmdo z)TPcD!@K950nRv9*4C=&tJ?CVBd7e@#DIYyN6FIYd})L`jSRYGbF9C}t6fPv6$*u- zOLa{ZcWkfY=#f$5*bz*xj%HaO#{3`5vJ;*u(NM#3d+U|{(l39sj&FZ`9k#8Y3Ws<5 zH6DD@<)NpF{N^tfLi1slB#ReS@u$bO^Nl+{PJKhQAMm=atN=`A@IYAsy}e-p@Y?JB ztH-j7g7r(cvu(>|VnMBsTqe)vR>_h@2A<$NHf``zA9P6PEUwwOm{m<1WFn)|eK=VI z7-!R8yr3nBu8m4X5ey8aPQL!;SbWolJ@bl*6RvcmA{3oZUgfZ|WetXZErs!y`1KU)YSTu8VVO#1cpsN9w%sc9ue_4?F!jy+_CB>36BB)R`ahbKTZ?-1|kJD3z2- zAsic+F2^yufG_|uU8L?ypKs!?Pu(cjtO+5I>_3#}w@>%+=iTq|ShR?Xfs~Sa@41o4 z13P4>etr$$Y8oRz?xF-l&pzK9pL`o{tG#U1^`bK1m#QkceR~a;u3tq>T^r$>7PGVt z9HHR#1#t_Cc=uRg5Zw2-waz<5ne@XPC!+TDs3T=W5#q%IO{;o4^HYbv;8zQFh0mk4 zHHWxl-Etg!Sg8s2@AGqXz>AE2N8{3IioYg|dy8r+H07*qoM6N<$f^SXV9smFU literal 0 HcmV?d00001 diff --git a/imgs/icons/22005.png b/imgs/icons/22005@1x.png similarity index 100% rename from imgs/icons/22005.png rename to imgs/icons/22005@1x.png diff --git a/imgs/icons/22005@2x.png b/imgs/icons/22005@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5774f6441255836ceea90018f16f43d9c3dfe06d GIT binary patch literal 2246 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 T;ImHs00000NkvXXu0mjfx{%Bl literal 0 HcmV?d00001 diff --git a/imgs/icons/22009.png b/imgs/icons/22009@1x.png similarity index 100% rename from imgs/icons/22009.png rename to imgs/icons/22009@1x.png diff --git a/imgs/icons/22009@2x.png b/imgs/icons/22009@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..74b922c9259e20062c488e443d2ffb4208e3b73d GIT binary patch literal 2255 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/22013.png b/imgs/icons/22013@1x.png similarity index 100% rename from imgs/icons/22013.png rename to imgs/icons/22013@1x.png diff --git a/imgs/icons/22013@2x.png b/imgs/icons/22013@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..40401ea548435709f52b249dc76b5047cbc6afb5 GIT binary patch literal 2324 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 Hu0mjf>~Dj< literal 0 HcmV?d00001 diff --git a/imgs/icons/22016.png b/imgs/icons/22016@1x.png similarity index 100% rename from imgs/icons/22016.png rename to imgs/icons/22016@1x.png diff --git a/imgs/icons/22016@2x.png b/imgs/icons/22016@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..115bbfdb409da43422be4858946b4579f7143ea5 GIT binary patch literal 2022 zcmV*PTWQ&CQ?wUa5VwU=(Gm#C7Oj$+5d24K6fhK?5*9-HEtrH$@PHZL@f#Um>NJkwj`_8Ofg1IDLw9L;L< z|1_Ow9K@b2i8h}CfuW(?iu>+#`_B)#zJMWZ$5o4_#ob?6L``Ek=6n4dND4Gzlgh6>eCs>k5RO?SUV!cc zNybOgIIat}O~B_N;P-%(xUO_mMG*nr_~IqFl0#jRK(sq50Um$+x#?9mt~0BGWjyoC zXK@_|BT&YYhA=*#MzLsO*%q3v;n+5sfS|63+S)3D_2HNRIy*ZTt^nd9>zTp#D?T`O zn0PuzJe46(X5ce)(y1A6T@0^=-|$jXT~2djEvhc?R#&jRF2EXhA}qnPeOacY0wp~l zWdtFjY+kkGfk)QGgL`^}+gj@=|BPEq#i!V?x}8iag=tz8Y{_&wPi#ES=GFk8TP(!Z z`UF#^|Gv}X^?Mq<$4@Uzfk;Hrl&EVoG~8U>RJol{PTsQtesY_iHPt#36LGXcnli(s z%wtm*RB*F1WC{gt4?Eny(NOAFhGlKNe^E`?fBRBEmhi#s3YqPUh+ido^v(efi7qU{2U zSr((&71+Jov85CMqGK!2*p@>(A)?Ufkq%~agE5$}>9o7+Q# z6iF;=qGj?@33-%LW0?f#1G9?d&!+^+I1-dQ?rE8=WCBm7_X*0XZ^=V$Se-f0m2|z3~DYo=f8m z1Ez9*ILVCE(YfdW_v(h=zad%;F|)O$Q1ojq6SjupN~G@NsXzBocL&Pf{o_Kf@W33?5QIQ!GRpL=HwW#z+D6!D=dlx{5LM=*~gC6071o-7U1Qg2mVKek_vQpBLMqf zW3g+8X$vX$Y-i)9R?%9nGc}#%jyj80t$;xA0j)A#aQ1Je(-EiPB{8P^p;(Y#)EtoI_S{FtFSJY#)4o^kp8 zNsFMaz?nYfPp?hO181gA1y!_yV^0GK{?CAO5{QD^v3r{ui%p$4^!CWlopp$=`5{ux^c*T&I3?0qAKINOVN;1nYRSzaHtsH^nRVn}&+qeXPBM`j(x zUvwNB$d$@5_j#aWw*X{Or}f?)i@A5TEr0OGqA!;zje_LDt?G>d~ViEj8IH_i9I zejPV#yN;u~-mX?bHN3>kTxkMxPs5%b2`KL#J3d%gvR-n>W`XKRVHJ5`jh}1UDzQV= zZ13>W<|$xWCRSq|G`8{fg><~=x}zIbg!?HW|GWx_Xw;2F+C9%kPaayi`Q$&AH@ml0 zl?NQ3BGlELpTYQSD~zXMw3nmrPjWmdWZh(39Qeh)%wzldUn}?P12=prnR)qG=^XPO z$)Lu4b2YKQy&8)?F>S4n$IM`PsLb8}&bau>s%9axIV{JJZ;oa_didra#>99sy>B>K z+`p`<>OwS{xMJ#E9`mh)M571o$Q{U^{pO{&a;EcLZ&^iJuc%OV?K>y>_Vb7mWS-W=SeJ#zkPdK@Z;?q^1 zrb9YwXR`%|3&Zif=P!)>kUEk~ki8n*1$9PJN+E~?$QUCw| literal 0 HcmV?d00001 diff --git a/imgs/icons/22018.png b/imgs/icons/22018@1x.png similarity index 100% rename from imgs/icons/22018.png rename to imgs/icons/22018@1x.png diff --git a/imgs/icons/22018@2x.png b/imgs/icons/22018@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..51f73a70bdb9265b4f14fd6ccbd0099643d91e36 GIT binary patch literal 2292 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 JPDHLkV1ksZPNx6> literal 0 HcmV?d00001 diff --git a/imgs/icons/22029.png b/imgs/icons/22029@1x.png similarity index 100% rename from imgs/icons/22029.png rename to imgs/icons/22029@1x.png diff --git a/imgs/icons/22029@2x.png b/imgs/icons/22029@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e7657762014d04dd8f1d35ff3793e1b9a585fce1 GIT binary patch literal 2761 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 P00000NkvXXu0mjfC%G(4 literal 0 HcmV?d00001 diff --git a/imgs/icons/2202.png b/imgs/icons/2202@1x.png similarity index 100% rename from imgs/icons/2202.png rename to imgs/icons/2202@1x.png diff --git a/imgs/icons/2202@2x.png b/imgs/icons/2202@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e9ce2adde7f21d19abb5764e925d9a329c39c967 GIT binary patch literal 2454 zcmV;H32F9;P)5b=bU}czOBpeL#I$n>m_LXlAY|m^6&M1 z`M$N+`Zw@@2Kzwo5}ljk+${88QFJ-f>vg_!&mKWUmlsW7^?IHE)0&I$uL@b6i0xv` zUNp|@NA}3}*fvp`JV}!PCVvh6r(HYrr9^>U-kr+|AR@*XBLLWmouc=p2RHha+$hhN zuCg$zxD-7s=jWhRO6~5liFKP37P+(&x}i^O7#N;>c=P7;BChudxs-r+3%~L7(>Z@A z_c2i^)ldqqHq5wO3J6F7V98n{0*O{M9Favm{nIP&Z2dwq8u zfEl$2X+u;?tG@m6?^o^Ivqzlgl;>|AJ^rjW8KRFd?i$#b8Q#^2jttX|giM-Zac(!^ z00?NH+4iEeNl6wH!KP89ZDtxW!!kEW3=ndU$XJt-ppe-tW=3)d!vnt*tlOOV0J`r+ zP$%Ni>n{vu#uR-w$f>R~pq1){PzB{vzZ-b{AhIUs1j6?M7AB#|G6gQU)jFkA&FgL) zLM!Du{mWj!+dM$iP}U)1EF(ziaTYJ?(08&{F5e?y!fe;p&qfjeI)|PQ3T-z^i%ce2 z4DL}222K`tgiY;S62&d%yA>X*2qNYN#H=xjjP6oqx;9HffGIM%1v?i}vA7s;KSF98 z>v1775i!YGv0Nb4wMa}%Nod^qUdmXVh+}+T0cTlF$};0DjM}T2=8`*n0Ni>I zj$qtMxNeSvgOVh)gpA0#oM9QUS~Mx z%}IwPLNXqEsl{gmisM zvl$`WqK1u#SzGkHIYUM#vrQq&qMfOHRP|!p^a7c8N^Un@h;!0m0N@)-T61UAV)~W&kHST5NQb)n(+}8OOY(#>P&s9Ul+kEK{0u_0C`ZvgjoVU#?{G%I#YXRNywdF$VxS zpQ(54_{M<)P6f+30PwYtf zyG4hj91VH&4|&x0{>n#ry`LCOzE*^rKa`DOz530=4{f;jmfLo(?yHU-JaVk*d+vO+ z{;CgGVMM-KhFk8@Sro}!njl+RYU+{Um!d}F#Pr0;U%c5^8hrW(yNvE6+;NUY;}+Pv{=`;VQt(JkaNGk106|;sb)lmc|D~@^l877V63&K29^OaJI0P;tV z9)0^h#+CtGqI0R&`J?yW?>xMDb8ye+KJ(qNvC(@6ht^!}a+b_QS{~Gj_l~TkYc_2W z8>&S+R4$R@NX)gnY;tCv%`7a^+{9V4b*PGK1}buLZjQ}OpI(}soz0&5-IGs@kB`6N zIL<+()Hs0bvi-nA4?Xz3lc%Qdy7`uE*Ijq*hx?XVZ8frL6&vsC6^BW&8;b)px~hUz z`I7RuqZ?`H&x9QunQ!v5Q4?#%Pw9o%UNz+TPT)E7V_UYAPfbnF|M>eqe1sVLvr_6P zfb8N37yzo(YO-AIyXTgn;o8j1>66Rr)+QS^Y+QBZ&>=hd+$maj_0?>7%oQh8f=;n5 zr5}hijxo8^=B=eAr1S6CgMa)plh(4;YgV_89D2RIckhcmLVA5gKOZc0TI#)h;1YOa z;*DZ$$F1_?x8K@*`IQ5MyMFu=b^UeMhhO~C7fZKpyV+K&eUOEci5<=|oiWS6a)EEJ zC}qiP?22xohc9jan0n*T;qfZME&$+eZ$yjvb$T48UIj90$<2^dek|p|4P=CDzumINGso`)$Kl zZ5j2WPCIwz?5uakC+_mBHrRLIHD)cLuUgStKXMcAw3|HYL^yrstbOzFq2+R=YMIUQ z(-TweQ>UhOLx?{ZW8MTX2S8oQflJ{A0QVLP#k)6MwR!N0^&|1xk##+3oCs~Sj=SB| z5LLGCsCk`cE1f=b#=xlgXP$k*Mq%hT8jZtB>*pcmVQ4+ILVno@E(8bQ0APheq0s4c zMgi0StgBRdMtvd6oUsJfWRax}LqmhBlQc!x4w0tGJMDJoNdSidOuDXnI?J*KfEECa z3)=I4#{rIWiVFG=2Q}du UC<2GfyZ`_I07*qoM6N<$g3a&F%m4rY literal 0 HcmV?d00001 diff --git a/imgs/icons/22030.png b/imgs/icons/22030@1x.png similarity index 100% rename from imgs/icons/22030.png rename to imgs/icons/22030@1x.png diff --git a/imgs/icons/22030@2x.png b/imgs/icons/22030@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..524af532aac54108129ceffc3376b529e34f4d74 GIT binary patch literal 2041 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/22034.png b/imgs/icons/22034@1x.png similarity index 100% rename from imgs/icons/22034.png rename to imgs/icons/22034@1x.png diff --git a/imgs/icons/22034@2x.png b/imgs/icons/22034@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d16a766e739c1944482c923ad95ee26b134c3567 GIT binary patch literal 1517 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2204.png b/imgs/icons/2204@1x.png similarity index 100% rename from imgs/icons/2204.png rename to imgs/icons/2204@1x.png diff --git a/imgs/icons/2204@2x.png b/imgs/icons/2204@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d7d89a5f45295fb8bc39e032711cd532dfe796f6 GIT binary patch literal 2458 zcmV;L31#+)P)fNCi%mG;vy>AV(5YDY71XT#=W$ypMCwJ&(Qj%0P-> z3zS{J1(JVsfP=mExBj)(K4$}eV9`fe%Y5(QZWR9LI3J*DwJMmaf|(x*%?x5@s#dGw z{~Gth93bW@5zX5NU!1L0-D9Up61#y*mu}cFyshWv7R)yBKhT+n0#vJ2F+YEINfENpdj zLtC2)7LnFwi-8p-q;HtljYddeDPZzPT-gqcwZ1w?j_=$5YWo) z-!V}6(@#_?r#`7vd4~}9mNFADvn0iu4S}dfLP^7DgT+;x z^VOi>4<1!6JtCDzB?%88rH#%UAsmurUx6+S)dIV=*(;| zTL}P??7FLhPUP9)S6=zS(6%Kwd$#J1?7#sCQ6Yhn)_Sk&i7_I$l7wF@PTcCcn#2~w?RIttfR43o#@+0e=c%3$a>E+i6#@cQ)>Z0sjjN>;%1|!QzMpO#J^I(( z`wmpARZ%FUeZ+{F1*eJahGDPWYDWK?rg}|VMD31UUtPZO_WIh*x3f6zw!7I@66>yI z>S&`HWVw}PnI;le3PeIE;YfEQ?NJ!}vC1+{jw0LFm$yJZfA;KIdEWu%^XiqCUmS`e zKzd$rtJN8n3OORtFC=n~qdcW#;5cqkN^$~E4y74~Bou3tr4IQ~YNK1ttxy+>#SQ^Y z3A3IhX*bOrr&v-l%_I$!gE$dI4WQNOOr$e27p!0gEiPW6M%|=BI^?ivNFlbelrpxw z%2srHQPzv1w9#sHR-!1`FqyZNrnX@XM?@m>@@@}IS&+-s@Fy?Piv;^*vvQ z86tMvo-BBg@2}mNnwm(9#VfS1FiGO~V_6(6hFJo-F59UW$C-Z6?KA0SqjP4bv(DEd_UK>W5=M!kgk$WKIawsRLk-pPQRA z3k#R!<;xcY08C9y@YK`<-%Y$?)$eIucwx;v`|PL$*3$m^llr&a3!YL^4Ga|E`_1?- zzVgFD?PmP=`G5b{zG9&}AZ`AcIO5y+vOv&B?Uh?>`umOy_uBQ}gz@!X>>Vvt;5gm4 zF8=u7f4qLJxv=m?SgGuh@4WM08UP-D{3%nf*ZDrc{QSI~oSda2M~=ukDptn1&d|^Z zo_GTI?q9t+nr0V&F)*_4FvZk~BXkA}#XZA&M#g2a0MFN&hkHWEqR=*(^vWN5mkcRL4G{pX(h>1wTp{Alqq|MHgskB^VrQ>XTs`T1|y_cg@Xv$Jyl{%3^muhHb> zr1{(LF7A5${C|F8;_$)KqdWV*R4n($Nw=*IkC)ZVXFnE)Ee)U~2S+NLMKxYt4n;tj z6v`9VHpoVq?5y8u{`{Z*;qPBM_tLozfCRt>fE56}_Z`LWJ)W7Fh^X+TKmYRI969pn zmq$iMA5(5F;kYg-zRFKOc^HSEI+}qiiqt*IPL)2h5<@QY9F+%vseTe;TS8jB|$Jv98*;+y=!t(u)V zb_mD&Lzyf7w=r_3Anvl&8@9bsleL?h>bI*M`|`zGLJDaH1_xS8Z@<+!_iyL>l;aQP z{d}p>>D+gITL+ewmh#glPpHpKpXk2&`r=4+{`=X~$Diz+KK+-a>64$K%HS~PO92Hr z%YXrpBc1G$N&g`&q7@t1hMJiki{E;4FpziFzF~}c2S5YBw!hc}fCmfy)0vn5 zRJUDNuXelcefA5dT+&*+wz$Z#W*RB?>Ellyr$(b8I$?)amRHTv z(o(b3SGL49zkKa#=j!$4pGzsv8DlO3r~$|xHU$rA48UBmn1A-*#G{XlkMB*!_Kg?f zZX~p|9CgFkF!z7{bI-W-&4ylGT~1Aw)&J#JFWaco=FP3tO;DWxuHt=9p3Ub5iv7A2H=YT_Lj?i2Lea+5eP6@95Edj9vL1@k_2HVM3Tfe+wJfSfb#&B zbGclz*X#8Fv~jm--e2<%5#jF0(CqB2U07I900sdJ00{0`IqpgNw6-9_yawP609R2e z#b~$Fdl_r|KV07=05Ll|D`#gRXJ;V+c)-p8fD6C{0jNUYArrP;b{|#rKpesYHvduU Ycc?wP0`8to9RL6T07*qoM6N<$f*@beRsaA1 literal 0 HcmV?d00001 diff --git a/imgs/icons/2206.png b/imgs/icons/2206@1x.png similarity index 100% rename from imgs/icons/2206.png rename to imgs/icons/2206@1x.png diff --git a/imgs/icons/2206@2x.png b/imgs/icons/2206@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc8a55277c4abc6e9f56bd84fc0b6d33e19adcdd GIT binary patch literal 2065 zcmV+s2=4cZP)?CUqv0F?O^~Y}&M$wwY+AnvBLa zHjSN$PTJIHET~zmCP6|m6)l3e5P=~3zP<$>Z@JsAe>~`@1tGOF{mq=2JNKOPo$q|V z@1FC!4EGR3#DXc4;eX#$OK>_03U!}03P6fs00x)A`*vXCL%o%1q?M^ z)%EMMWyM$G>aMufQCE?D%bY+W634raZnO@@7!eTw#1N4HzywG}Ndgl^(a`Hr7EN|{ z&8aN@2%YkTNkpV~IuWSTb&D2@q7sq97}LfgFlGvfXab--psHFtV?0GwDVYoU1c7^^ z`kRY`zREwzy-eSjzHn_z%#>NJfTaMyDaM$M=rs=Ppu45zKL`*Jzon0E+$b_9CCy(6 zF8oX<;9<@HMYf~1@*=7#E2yj2rVI`Y=#!_!U~bw>1X$zy^#L&#nHc((p0R>EFmb0U z<5A#QX!7ge12LXKA8+llp|QEX31q3#!JDFo;&LOfuB!T*$+ZZF*Z0F{%sz}&CL~7=j5d60V4p(Ep=v9mmd9PM{Nn~?DL?ZKcs5albfqE z7GxU*4xQKQF_ETOOlC{t!u0w1Z|u=p4u1G{rp`CGV$jwe6gX+d&ZLKy&L*Nm03-lT z042AoFzj$PWID4t*i>WdsEp~g+ojTTXAM=wMQTmAmx}6z-{$6ieq{0dlsITgj-)8d zxuB0=jFF;9E*;|qf?oVv!QU@*@7?v24e1Z*zo!h^EK{b<66R&Bk*uLnLUVJSlp+y(<24Q%jF{wf^>O z=!T3z0PsjsxUaSr+X3hSXn_{fb1M_6gZr=83uzP zI5;G%l{4O{XVl>KDUU=1saf6#*?hLHS-8>YtL#Di@4DLCP2`Jk=H#q&=jG)A0F7!w z&i$`bQ)eVPowir!q$TBKtypN9mYj^J=tx)0q{%0skFNue3c#ZRlT<~U0F5F=Q44i< zU%*?t_u$B>%SYQ>=9dP$8@d<+IOkB++mD8k2yg&MPfzDXMMdVGp7z9JpPb&*P+hS+ zNUDz4+}&b)!bCPTZJBI|N_NCr0|vrl;-ev&3_vjTw3gC=w}0Pzys%+c<+ZXukfwnA zN)N9*zR!?|^me-^Iy6)W2gJVj5A9j@=rqe8pWXCpcbmiGeIjdV@VuE}I>qN7#nJJRD->IEGU$ZCgYuBY005?Sr!&SFoh|&faGKA6Wsv}^073zn0f@LG?c=Qn^Z?Z96N2_- zER5UwgQuSqV^cEm<)_EghAZch`TcC+($!X6x>}`ND*g6CU5kC|`t|GkjYgx8pPz5+ z=;)A#aC`t<@YfCs0BtM+M)-@4iGl#Gs_>aa%fosj+hEoy<{xcLNsh3Fi-+?Y$}g5S z7KfMv%LZjnlgXrSu-om9{rmSz<>lq3yu3W4+wHav;Yk1n;Xjt8u?ScIL;?sf8jS(6 zEC;@`=hdg4-uhx@Uq`X6<FIS&}3N00Dqm zr_)6%iXsdxYzNRkM8rMrl8kc>P1Eqg57)mpds@Wi)|Ofgs-j)^`WuarAV$RooJ30ek?kT>vrxJSYIGIp;5P;2HR>d2w^-h`_CaaO zs{85XO{u++A?DJc0MkAJSO~x4|2=oK7?%P>1jZPHx9!8jX9}0AYy!!$(_Mc4q|W8= zVp4)tT9O(SA`M8hPnWhu*19~GtyYLO8@yv-kBb0f3}B#Rr%Fm*{kGIS_4=U>N3qSM2c+7#c?aOaPWA#s#K5K6iRrV?(F4 z;%2K)k~J@5@bnMLHvn7(P!6CO{%?Iu;Bkjv2?o+Mz^|SG{`*}3ATb7M?ECNDf&t(} v#01X48M|`_e5j3kWB>Kf=_qr*^Zx$@T9%+H`te!x00000NkvXXu0mjf_wx7= literal 0 HcmV?d00001 diff --git a/imgs/icons/2209.png b/imgs/icons/2209@1x.png similarity index 100% rename from imgs/icons/2209.png rename to imgs/icons/2209@1x.png diff --git a/imgs/icons/2209@2x.png b/imgs/icons/2209@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a985047a6d9e96e86471e4280182c3381ec19b9e GIT binary patch literal 2738 zcmV;j3QhHiP)RN;TFaRQA09c9s(p%T{rD1+PK?g;JbBid7HKm5U$8D{-gBY)LK7V}Q<-ni- z-TA`Wz6uG}-hn4Ag0 zmQH+b$Y?;V{Co1Gz;*AAo%{xZ#cp9?VSL)|E!MKKs*M}hZM>14eNF)Y zS!d2D40jqUuI5+c+dW4nfdL+eoU*aOpKTDOV*}7vq0rwynH_U(#9Q`I_@SXpSEla0R}eQ(^D!dJF5r^D$h*+ zd@l?2^BJ~c>*-5tr$3#e=9u^L<;x`i62L$tiD>!EBXeIq?-}A3(AF%uUoX(>LqokV zGI8@w#+aoW0P9A?80gj5(17@{k59R9t>X0O2aa3^e83pj!f`wZfMl~U#_^Q8X{Nui zSRelW+N@JVx1Ek}UKk_uKxa#d$x>jnIXB2;%+Hmnn+&(Fk!zr1wyqA23f4NbzlW=j zheQ7`cQJF+%)JK2*j-n2gE+SRvlp-BoHRK4Il7kLu?D>uA8stnDQO=*EV8z=yg^dA zsT=}BtkqZc=S(r&=+q4z8KBB8s0cl$vs_&8_K0eOw!qO)Z*#0_3N8KMZP@_5&U8KL z?bI4x5IZFsVd{`DkD$T6@26$zHtY4K8@~ZaO-GZlCJpomb!3Uk6 z7_JJpm^)pb8W!N)P*qb+PHujuFO*#HL#HPkL~+aK%dUR0eP?*6+OxK_wI#l~`c`gT zo0~Mmr@1Ws%AJ7D08Hq~7>I~b{+ggYn)q4U)+ENPocrX==)S&D0NelwxL?G)V;{tC zTl?m^UO|6RB@rnKa@K_9 z{5bE06>}2b`{c`ggZG{&HS!j#YiXsqQCn2`D-ktlG>{@9B4n|E5E~02DI!9~7_%Hs zOE0-z(m1lra(z5He8<5e7I7SRe_k>M4E9xda86EM@k#xL)YMrZm-CRzM8Ve7WHuO^ z8-Dny-~xb_uio+SE+|rZms*srbuIGjTCJ8hc2z{`u{jD34(5zTWBbuvtCtAwAtSAA zwy&c{JbB62*Vps_Z$SXS+wWZfxC3yttJp^;`pHEz-yLR?GS?UXk=;iO$uUGqr`Uj}h zYNdT0hkH~GKxtRm!vHwM#Kb57xIaB*cCU&X+V_gi{j2h`1#$FK+Bzb#ULc|nB9oHL zMF+C>ucAXKf2Fp%Q%xO2D;LgRI1qq3BqYS82YqgKdR*d6!P_8waP=9{mVperbC_Nya+PCGT-*WXKYba$Xp*lpdBqd$Cq=^L?DVt6l{LcUTv&K%@xY5+%(k}Q`$xRHgI=>xnEjGq$g6O7eS#wSUA>e|4IkI3l8XvU zXJ`{2CYqA zxJ^@EU)ZVDYB@U{9JWJjyT z$rIz*?Bsd%=@)gEJ)ND*-bxytaX8Jl$XMO{OKGwE*G#PtIKbN$-PZ?!wq~2FyIfv) zo8N!({LQyQLmOMPT5!1g4@vh1Ap=0e28B-?*N=TQdU(Ger$GtUbbT?U?%lzfO=k4> zR%6r3FND64LvTZP8T${WW7pAiOMY!tdtk7aVr*nzc-X3}o^4F#u6E&0UAdEz`k%Z- zNlD<+(jefTAK3e{VAiZ?@tbe7mQkZd`Hl{*{(k6yKI5at&9EFUF|i$~yAcuj7<)Q; zytO*-swMm99LIprFq_pw$=zW!%*#o`MgxXQ3tFhp2 zVd5SN008gp?JYN%Ol|--V(bv_MYH1qq9?@7kg8mV+EfnZ9I8rr&HBvp(`SEfU-a7G z(5Po$vl?ouDL3^y);mBhXiG`=?f$}#fc6Zf5;n6LWVh9huJr33KNtYI(k7AT+4D9V z$wLAaZZqN@i+<+$F{)eTMbe)ArPX5-rr8D#j5KLhEN4DkZRF6%P>$!?=y**O6a-tl)!K-z>SqQ}4xp_k4G#k#psRTd6nXZP#YVvpM4zbMiiql3Yx~q!<2<5z zle4>`~2#?3}52 zo*yAewpb$g3W6Xd#P%BJ>u&S*c2=UQMN#|1>EazVrg{Sa2m+_DS|uBR3IIg_ZUJbu z+q%E~KLSAadn>w1X|O1Au~w_pj|ePwSg*e{wsfek=2z|pP$m~STc=GDB?%?~#dgDO z_O%{*nEhV>dd{)hpSy{GzXcc!pr0UcCaYDt1mG&VT-+UKBJjJM|HA-!&XoXI0Eq4i sg;$fM&EIN86@W_nyY3YGzYnbc1-E3zLXe?t&j0`b07*qoM6N<$g4X*{egFUf literal 0 HcmV?d00001 diff --git a/imgs/icons/2210.png b/imgs/icons/2210@1x.png similarity index 100% rename from imgs/icons/2210.png rename to imgs/icons/2210@1x.png diff --git a/imgs/icons/2210@2x.png b/imgs/icons/2210@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7641e4eeadaeafbf6ac621ca2f585ddb8a34bcb2 GIT binary patch literal 1737 zcmV;)1~&PLP)%DmI-|o!tU!Q(B0i_I&!2n_460qM{16>zMHRdNIV$&i^c-4QttHB1xXoRIGq6c!67YH0o&CtrH?s;8wz z_HGj5KbAlUVT@(7m9Sd%$;q3i{Y6(Zlhk5uKCH_de2-;K{K8lfjU)h@La-F12!(yqPgKOyOzrI-lERa-C?kt} zc3F==GLC8*qQQ6($s%Rj%%;?4qTd)`Rne)Ro`25ENYz_l)| zn7!~C(%}^nPo_{vrQweiS&^8PX(2ZO7=znQ(b>5n0L7{h|6Pne9|xfGkBvXo+xuS4 z-ML{|EyhtS-pB15UE;%QH}K(Df&}O0QI<-8C6O+2qzV9|1R1qRv}OuZxn1O(kMo_b157Hno^5PutVL%hhbWze zQe*@@J*?wuySABxU)(o!n;dlMNbBKdGPe{)u&+-P)Eti#DYBUy8tsDEB}SfdZ4*yo zLCmZ$Oa@dse`l~5pPSvD)*DX(5YAesu2d;x0IURrC>x2%5hgXnsR6@LO3Ay|g)}_^ zwX#MG1m>Z#0y*HMh%!YiCIkkiqGULbA!>dW%w*>NfVXQIcE?VsLPr7|IQ3 zayrO&ztn`Ux4Y#V@BekF)AOfcy;i%ENTi-~?pSj;z7{?3(6wK$5dmIs9Dv5(A3VR3 z%Dkb-G9@;nY>^9G1CE@*1f3voq%){)tP_V$Ju6T5f5gw9esglKv)X8}8M$C$0>Cu@ zZvnUkAdP>~+=jylx52OjQgn9Z7trQss;ruC+pBH0LKurQw9K-VWs+(%37g#@4fX}t z+0$pZn3GNZq$-=)gafN(ZpUiVVH*3rV%S{c5)t;}h zjrF-=w|n~zYxVA}&z_mVJXZX-1c=uQfy_$Gn;+2A=jy*-7PzzSc_}M9>?DKrt4hIa z&Ie~y2F$LzeFO-h+~*@I2f^OGyIs2P9F>Vl|Kq~pP%Twy&ivt8Ox_0W=+YhfVdoINJZh2y2rsA{rQ|PSd3Iq_( zVM43Z@tc7IfVdO_&CSiieqXz|apTID*OuP1^;BCM^l6T%WO~g|Dy}ZCbaO#U(I+3- z#?%Tow_7#E*=&{)fZeR-q7`UuZIuAO-SOxBJHGtrV_&Fw=<%Gnwmw@~U8gFlnj4MF zd~#I-Z9dw@-?|uN)rK5#2}8XEU|uhTTOmMBpFS-%6ecQD?;Lejk?gnh*=bT*Qi3~H zy2WHR2U*ThVa;cFPh8=?w>y|BPf72;emo>(*+BsCcy6r;xf=t(EyPGm4`c9F_T7rA=&EVtCa zOm9%1+EO8@iR4M*ly;(TB(uX8O#%=;f-|!u1)7^c2*4X3xZ5*gDgLU)pk=}KlVm6~ zO7FA_?p66^&@7PxR-cjCku z1wau1JAfpBApjYCBp2qhfB@jzw>MgY!{L9_YLd0Vgrf9>6GELs2Xo;vo{o%=477ab zV-JyCPyUks;n2^-lkc?$oi4{Cub%3U#X=z$0CT=x3_uTnX#ly!SU>@QkB{9eXR>uN zC2Ie8Qm8Zvs4KEzDiX$WK_&N;8qt2Xhg))Eq+z{NF`D$Qj(_=g#X_O=0IKq`3jlNg z6aeaCEFb`wx3yIm{pq(47%fHc$5M;{!b+>iw|N|7&z{GLBNgKBoO_q_UXJ3G-~Aea z@D#B+O8MlKF*|@-N|9s?B7ii20A`!;V}He*1iS$C0Ze=3sn02#eafWG&SVruHjef`4|5kiQSF|GqJ2%sB4Z(jP3<-(i< zJOBrwyfdNuUX4QnRWq#6B?%i0B08fvSPSjg|HEIf8Bu_#Y7NeHgt*CQ5tkL)((hl0 z^m0H$W-SZ=I0;}R54`Yi==DNq0oXS;mDcFk^tMTAW|7IX(DZ}*X?0x%Sy}GD;T{=@ zBqK%ELJ}B>@L)7aOf@w)-#yrsO368aQiXHg2H^F)0_t4ga}odm&N=ZFtm4^Bn`+H66pHip90b8<}*2&4-H1Js@h76L`AvW z6}YMqDb;DUR1k?3fD3>Y3qy7ZyG((@vNzz#i zw>FId{|Iqcm|-qnj(=W_bZxA4WY*P|8q10;(*hO#0^kh*<4YwlySSx=jV9SM8Aj6u zBGCetGou_8fLqG z$%hfaY;cq~tcItJRB0%yU%p~8EK8fqIs6Gd?TyI6hgY!j@hLVrnGxH~k{ItBOLSZx znD~=C8@DtMJnvCFmjX9bV1gsdk!l10KD0!ae>5JCN7`BpLw*iTw{XK+@b=mW wh-d_gio6`~!RPyMmz;A#2muyowEyezZw^&Z=8>H4ZvX%Q07*qoM6N<$g5_qe}v4)Fghx7*Ft*H`oZYmWcE+-^4q0Gl?hU9s)qdp7}KL}1^wT{g=&d+4DJ zC3|-M@q;&BdV+qrW&I;W#N2LhU$pLH+dRdFegTH&bFZD4G z$mMb=E-^~q1^@t1U0o=;3SBw?aJ#_~5d*-E9C~wCFfc?7+i#=#=e9g@`AUZ4$4R*G z@eRZQU@0l7%Dhs|OKaA+@;x5N4Ug3bjDfZzS~RLy_GmJz!T012{ulN|Bg`IGx^%?3c2sh_VC4X(PrK?ZH+`=tGTi=zth73Rw95JFEj3lj zPY>@QF*OG%`ZSq1O=2P-r>3g7jd2z(SzmJ%3y1vc!Fc>-UuV3mtV}>*p$I^l0r^r0 zj?GN3ee%gjOKbO|)y*$8#N7n3JimyrrsackT6s+xvPtcN>Pi&2y~A-`kAFIbQ{FVSzlg7 zY>Os%#w$nL`@I>0z!(xz&F^gKy6biK}5e{>sfgm)Zz-6f9~psOkbx^Uv5O+WjgOCO&1Q47_1KQOf~Bt8_y6^YMAgPe6`vkFOd~yqm?@)# zQZT`WJG#&rS73N7K&9CnM*1gks&@*0IVGu0(M*>+)74vd?DeIlXGH@OKF%;1S=ihPkR% z!?nDWSsnSz=TBmeUck}3l~W-Qvj^BriQKCv?(nV8GEtU>t9{>;>**y89YB3I86(d7IV$JcGBXq z0u~R4XryP96vUV{L(NXM56E*x6_;zvluveb!JJ!!5EGc7OCh5z9me627=T>8ULOtw z0zLq70Lk+(>^uM%qt)wf&Ph|NTUDYUww^prRYhrBV_OXQg-%$s2@<>8Szex%9XU5j z7H2V?>KcGEMP^P%9z>%Zif}Xgs9T`7n$MAts>AKIwOrg63~l@A13%{lp-YO#c>ret zjLd+{q<}H1uCC_yzP7u!$uwgNri;AGo8KKNBW&3)9bg*rdv^FO# zyvBva%U575Z2`T0+)E#vYRAVz9QAa!U~p^#^X)n8^yxEFNky6Ap3V2vO7XZT2!av7 z0sz8!=P%SiVPPQw#2f{drw%k8>Y}o;QC1%xMNxEUBdH*WZP{$tn8mTpvuv zJS<&)En8c&o@zGSiAjYL2Rfr@8)vZPWTC9I0=__y<>zE$MX`M)r{GFuS(azKk6zXX z0KnyPDVmy^lBLTk?p11pX9blyZcr%{DuJikdp08}$?U+P{pjoLhqHJg@g%_?O0XQq z0$9_{G&teo_PzTK<;}~bb$4uF=h{2iXM6XYZaL91e(d<^Pe_uE05||3azy|D%1iHv5~5xYvni9LL<}hznNX-ibhNf1De_F_)KD@aV^$_o zOlBxmYPQ@l9}nGqcf*i(w2kqMBZ*D{Xao>E|4S+^0U(dZ!vPrAs<^GXtU1q3O-rij zNGz$-X?T)|GQ}}A;EPgBWGpNLp~N(sibN^m>m`8$3q~V|^$n1QWAf^ve4(PEyzu?V zhvCp6p(Sl83#6a&K!pRXI%DK=YgNrjJgHW@X#ji0Emn)%ps6QOs&c zUwl?qSMz9SFzQnE8|N*sZ_(=Yreq=xg(S(moMirBh*@*9VN@ofM?O4#=7#T=myQJ@ zQZNt^@7i#aR6bY2BY)oG{j4XpceuazZ_%mbCtzRF2`^Jag9O5OI1v0pYxBvqo$Z}} zAMELWR|cZdcx*B<85;DD483C$qMgNdU0A8s@BZ0_tHema*CHSs2~34~YnowX$8Tz1 zh(?niu2n2JwM_5+x6>y68uZOJh%v^#)%BgtY;y4+V>my=b2Gur$x&Uwi7)l=Yk|yKLzj#bx!sI; qJo5Rc9RPSdp34rP?^<8Wseb_jDgfX9fX4;^0000&t7sqy-7zf9O#IZ^2Hl*RvrV=rTrX{p$K~$=Q5NZ{v zkkE!dZD}P`MFIgq2-*T|K@CZOsN_W;&e~un#@NQMtmAmskA3fYcV}n5{>Vm{;6P|- zk2KPi=HBm|x!?J|xfl4FAR_j4*L)fH*B};%NFE&>wH`Tg#6(0_z4n?xM4X81iA17= zh!i3!42Q$^Z$iXX1&BlW#bP539^uzlOSFT(4QviJ9Mu-4d{`pE= z(S&_{eFnGN&F-H>F9x3VS|35Qs8a*8LTvo_dPTPJ5PY)Ymg2>{Qw z9o>cF{BZ&pwrwNfwb!5npeylQNhKp9aqCZhw8mCh_ok`9TBJq-m>wU{R^8By4?5qY zp3W|8Zd<2W1mo1no?dq%m6{9oeR>;!aX>Z$si{i@baAH_P1BVGa1QA8Z7n;B+!Zg} z^U$y7KkhvxhDLhXK-WnoJ4<0JUykXCF{VWQd|)z>OQ@R2Gs$>kQ)3j7fGH82`Y@O= zJUcu%_Bw#vXIegw%TsV^lGwKOj_+`jq5b^encR_Ao;Cy$3Dn=%Lf2`WNg}AymN8XQFhxZvcV$9AdFF(=u5Ii7DRI z<;(T?y0SUZNG7W@<23PXmB)FjyHtJ%0H;NEon1Dj`x_f2A0zgDlv?JP{FjZr*AZfD9LA z0>Q{5y@OMKUCakxsDfv@yQ!|OLM(ArF>l2(US3_#+)JwvO@ygw$dA@dn^0L)Oa#DV zx`p;W@ffLTjV0$I^sSp)*pNSNKlSbjeSNh{&sr5}Hm3LX4o>|oA703(KwnG%0bqJV%zro@kIw>_0}#!VWiJ;%M1(?FG^q1oqi-md$so%w_=C8< zrk0f`S(p{49-oQv-uKSv7A|0I(|Y#!bNeW?PeifFjN0;ITPfMl}O414seL0H0L>0{~}DO~Hot=0g>ww(qa5Ez2z{bBRXASmWCD@Kh`(6GF7I z;U+daK28(eKBVGdgwB18^MM$W!3Yiaf1=l~tVeleB^y3Bfxt`{BV$AQ%G$~TE-02f zPZ&V@@+#l}^tBDEYITvT#3W0`(o|GjgWfZ*vJVgM*XMO355;F_KAB|*3kb!h zDW*&MJ@?;7ZaF4C{)g9D-%wCwk|gV@s^m>Le<=l*JU|RUeEZfp*Jf>!|AA$6Oy!oc`AFMC*0I+Kpr`@}$xxM)ZS|a>XncbL6%x5)Gl=!Nq zMlJ~wy}SP)x!i?0T1)vweX#m<61$+ixQsLR-S)x3$)GA8JOcrv9H(lgf!lEA^H=Ok+ zb4F*W^z+--;N|^C(Lb%~x7~HOzSJg*e|he?3B^<4oDGM~nPBh}r^H_wz7RSNU?^Yv zIxaS#+~rlU5K`VKtv1DU`^ptd?`qo6>R6`CqwB-I@dGEu-b_h`VwbbXEeXOhyFo7$ z3Z0gbf#LpWaQ2yo_EsKBft~Zce*wDQ3BbP~_7@H(iwR(PZx8?@fSUS-x(-Fqir1|y z?oG`_-+uZ)&p804vMf1tU9dX59+y=#j?7%RFf=zer{-hm8v*Uu#W>m`JYR}SXS#)* zl0Uuc4mm#-7P*ixT>RMpyLNr9!CfnOM@NUSAlSm79013~_y51k>Nko104q<(t$I`Q QP5=M^07*qoM6N<$g0D<4>i_@% literal 0 HcmV?d00001 diff --git a/imgs/icons/2214.png b/imgs/icons/2214@1x.png similarity index 100% rename from imgs/icons/2214.png rename to imgs/icons/2214@1x.png diff --git a/imgs/icons/2214@2x.png b/imgs/icons/2214@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..438595b7e89a1c3f78ec0a4912e19cd984ccb216 GIT binary patch literal 2041 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 b=PCXJoukWc!$!JE00000NkvXXu0mjf5PJ9Q literal 0 HcmV?d00001 diff --git a/imgs/icons/2216.png b/imgs/icons/2216@1x.png similarity index 100% rename from imgs/icons/2216.png rename to imgs/icons/2216@1x.png diff --git a/imgs/icons/2216@2x.png b/imgs/icons/2216@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3f3e9821590c44b10f4028ca85ac098454f8b62f GIT binary patch literal 1973 zcmV;m2TJ&fP)E869id{?pb@rjt%*R^m)D zO--j`CYjczK1NOBZmlt60%}GuzKfy}6jWqcp3Aa47UZ#ydr$vhX^En=+O*T(%$fU| zbH4BQ-QVLJ;D2o7zqmgC#!zfF8?CFWQv#qCi$$>6Yy#(;67o&^2Y_=eVKF6eP6@w{BFU#py(I zL&M<WT-oKWL;(T+QS&{+X-RqT)oh}bmoI0uG zgftmKgNyg?|HKE3srB$W^l8BDb~~e#j+VUk{ZeC6{CuM!Zqy$L@anpo{Lrya$m#M= z6>%{JqKh{D=)i&F{X4LOOa=}-MGT0d$gEbYlsYe~Xhv$ro8Nk|M3MyvuI3ipymyB- zyY5Ja*hFQdTL0@kJ9nP3+wIIstkUDw`?m;)B3O2IHZLwN)(=Op4@);}q$9(D(9qy8 ztNPm&-rnYtdOO;c)66rk+XouTM7y0?t=32W`_mGj4hNHfGGr{AyK777Yw70rBtM8O z969k9w0Cs!##^_UJ~lDX(Kq;mw%v{qw1HuY0`xD%KxO4VHRqg{ZJ7S;;-b_)XD?j* z>dVC?p%K5IRh&MB)0LI{{@q3%2!+_lkoOJ8?%mgHHk;sZIAn~a-uR#x3w#oOp4!5N zCgRrls*0Eoltpxd{sTNIl}KkS6bxMb~?(fR4gXl`l7q5bTksRUu^o;`aglt=@R1|SuHIecFLU;%)rFggBM0(KEp6hZe^zw%D; zLUy{xSrLD+!5x~NnJv`T*OS8z2U?v@j0S>WjAHBNS0$gvtBZ&;y~}{*kT3_pya{72 zfCvCi06hQ#0OZFK5ba!cI3VR%G7C$rD-=E5p5UUTd1SQaBXV@#d!)AJ1_TAeP@fO4 z|7<&=^agsnu_>rC7?v875;j8m$G?`t-Z}wX1mFe`43Ei!P!z!^rQDipcyaBrl&s;l zR_VC~S%O$#CTSTNxaVx;L!*9lb$WQ|rdRl)9k%bf% z74mo9`V~2UvYfw^rjqjoF5Fi7>zuMY$Qb%03Dp2RVPFXlrR5_Eh$1K<;Q86QpBEL) znKh`L8+h+z7m13Ufd>N~RNor_LjcoEahR4k0~LR?5!ZzZo}yzsKQ~TMSUk6@!PWPL zLP3LqfUf{_hCO}+d{P3xD9)oG1aE9x#tK&z^56X7xHPCq!#p#m*W3bP6Jns%Xkai; zN4&cn$_GwRm4;hiNE8gwCi$1|Uq9~Y4KPW9+3$xk49X`12OjN)gmVr;2-|F3^tn6No z7!|pAy<1*cFq?dK*+YK+nRBGKeaKB1G0FfVgbZ=cTk+58H>Cmu0Jm83OvYL1ceOfQ zbY6a;Bs85RtL8K6s8h%+CxJgq0HP>@5W@9onG2UJ zT`AOFy~Hox@Q`j<%@-sDgq?eDu-*{~Iq5S{RdJG6d|m-TmSl-bLYvdo>}l(4rj)uQ zNEZQ&gn^&fj=!D-q6h$p(P-M*+Zy@Nfn|Kmn6<`tPR#=)p4isRd?|6lt%4nrwnrTn>w00000NkvXX Hu0mjfIhem# literal 0 HcmV?d00001 diff --git a/imgs/icons/2217.png b/imgs/icons/2217@1x.png similarity index 100% rename from imgs/icons/2217.png rename to imgs/icons/2217@1x.png diff --git a/imgs/icons/2217@2x.png b/imgs/icons/2217@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..129d830cafe67b2992476ec34cf48a941ae15cca GIT binary patch literal 2228 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2219.png b/imgs/icons/2219@1x.png similarity index 100% rename from imgs/icons/2219.png rename to imgs/icons/2219@1x.png diff --git a/imgs/icons/2219@2x.png b/imgs/icons/2219@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cff111ec49e8fc29337b4e592099686412c6be99 GIT binary patch literal 2139 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 Hu0mjf$#=*= literal 0 HcmV?d00001 diff --git a/imgs/icons/2221.png b/imgs/icons/2221@1x.png similarity index 100% rename from imgs/icons/2221.png rename to imgs/icons/2221@1x.png diff --git a/imgs/icons/2221@2x.png b/imgs/icons/2221@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1cfe40c8e2e69ff862ae7c847cf80a48aba76354 GIT binary patch literal 2447 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2224.png b/imgs/icons/2224@1x.png similarity index 100% rename from imgs/icons/2224.png rename to imgs/icons/2224@1x.png diff --git a/imgs/icons/2224@2x.png b/imgs/icons/2224@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc61aa2f3afd848cfab9cb75f42fc486537f3e63 GIT binary patch literal 2230 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 Ef_XkNNB{r; literal 0 HcmV?d00001 diff --git a/imgs/icons/2225.png b/imgs/icons/2225@1x.png similarity index 100% rename from imgs/icons/2225.png rename to imgs/icons/2225@1x.png diff --git a/imgs/icons/2225@2x.png b/imgs/icons/2225@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4ca8a895d2bf615981f11a20e1976b6a56147bec GIT binary patch literal 3568 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 P00000NkvXXu0mjfy?~Um literal 0 HcmV?d00001 diff --git a/imgs/icons/2227.png b/imgs/icons/2227@1x.png similarity index 100% rename from imgs/icons/2227.png rename to imgs/icons/2227@1x.png diff --git a/imgs/icons/2227@2x.png b/imgs/icons/2227@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f14629ca9c521f41659b2a4275d2d7c23b0b8ba5 GIT binary patch literal 2116 zcmV-K2)p-*P)0T6rp|Cn9$u~GWC`>R3_03d{bF@{e*_(W~Cncwa0?JcgT z`Znm1xu^WXPh6oB+=0ML<@=j7x}TD4)-HNCe!NrLooP*~`0k8xh_hlGb1?BaCv zseUFvdU`sOB#DUP0J(j)u5sSG8Dgp5$`T1BO#QaCJHHhGJ#zSvdCx~5vAViC=}OrZ z=IiGxMMh0wZ~X4Hy0FmDxg+2&OZ)L^7-NJG!c4~wuI%jWJ|Kvkd__VcIdQ^7b{cm| z!9l^)P3KloQB|?B`A&1aeJuN>08f&g5N0x&xWwP590wtpj7julem+~gXbD@FvW`~Y zsFC`5`y>7QgE9a(8;!=7e^4>T2xE){1O%wFa}S+L+p&}Vbyud?YUyGt*RGZHe*WU3 zrHh5w*x0SWie6C5JK4DtSpz7^VJUD z7Jjucz(2VAZ1H*4W9eZZXJt`v3f9tQQG5A#Wcm1ng&_|j08ap80Js5g1mFZfWd|BH zOy2=uY#4M|^6S+2kBnUKGH$ScaARO_5SM%Cu+-Vzjg$E%+SS=Bwms;a6fr&MeLyju z=lMVYI=iTYUD(0i=Uy0q5W*N^RHO0lnjSZA|LXM{j_ug7weHbi?|z-92iMSePYj(D z4rBVew6CvMvJTjm#?6o0X0zEe9LG5UP}`f!Q}2ow2Czd&j4`TKtB$z1y6k-~^Y8iF zH*e0J88_=cmd-9NbJs3u_N(#aw@Hbl=EhB?P$}1p4+&W!ilUlQss*40;BJ3<*gf&$ z03)6-nM_>V%&7M!h8apyHmuJ~+p=xTIA6aeZy#^^`KgmqOzbq`Khc2N+S@XH;P?c! zizbRnaHXJn4DShdN~xEVlar1y#+8(m@XyqG9vNed06D=65?y>mYs;L>rsg!K%<}IY@zYnl^(us&J%$+dOwY*3 zkm{JE80T&nT)J>^Q;=bN{JEl{A-O_!OY5#9nIGrn^i63Go~|cA;n; zj1&Z`w!Xd|gbJ^#!}O-)sqOr{sV))`}bK|z6{sJM7{<@HLI@@9%v!-hUmxm-45#*plRA>FWJv_S(u-OsQ70$unn3DvetY<&~8HPH8H$ir&15Z~nYe#EqJ+ax+;o`Xd;Mubdj4^KvA6Rk#>ggU}1%(CJmz_;C zt{T?UX;Fqogii$_3POnIqeqX%pu2lHfIk9A0x%VTD**b;)Bu3lvu85^Xt;AvZ)xvf zSFe@jUgIme{QUfsGNp2Nz{K#}vTrWL+9+?HGk<|+b>&rN6>TJG-Fouro-7CheKt

q#y^>I+Y(TV$Xl!g+cDuHAdWX5KIBwBg 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 Q&;S4c07*qoM6N<$g8ZHNzW@LL literal 0 HcmV?d00001 diff --git a/imgs/icons/2229.png b/imgs/icons/2229@1x.png similarity index 100% rename from imgs/icons/2229.png rename to imgs/icons/2229@1x.png diff --git a/imgs/icons/2229@2x.png b/imgs/icons/2229@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..145d6874986d07da67e90aa06bae256630f8a97f GIT binary patch literal 2463 zcmV;Q31Ie#P)NHt+Z5Np?dLNJgvzMgtMi=~x+4iWbGzh7s!wqvBLYXGxiM>}VMn zi;CEhqD3b(iHH^nm|#FaAq0X63FNhTZ?e00H`zz_aqsCL*)X73#Bucd^WJmL@ArM* z@B6-UfNvTD`PR3e(kvDWwOB0t&x6hw0YIuO7Wt#^yraDF^4ax27CM2&Ld$2pCsn(4 z8LIxi%Mkf_4M=S*<09Z7gn%(ds;a8EAA(A%EEc&L2yfoJnQcCLlyla%a|VN+bQWqt zn*RQ5l_c2Tc>ZMp0I995rK?x378zpzfY{hrox|Y>0tf)J5g~-In1^+L7+O-lw1f(RO3~WoKkc2`IZw|vY>SOt(qF&+@>Qfr+$?fty!<&6-B2`opOwf zj`Ym0vqk|59Qc|{WxAw_Hdkh3q=EsMoSZ~`Lp`WS0v?a&;b)$Erp{uq(3+YW>H83%HXGob z3UU&q=?jYs@-<4OpYsIOS^$lod^TlFP79S}=bB5RVw+PlviE1ErB}LLF7}TdZ-_fy zf0KDU9;vJAV(7$|ClxZe?6vCZ>bRPk8p&d@(CA1#r~3SUKAPiJ-d`sLSh?bt$jZ${Z+{D2Xx%&WMe9oZteU< z=Qw3F{DH8{9~4)W%%8VG!}IHGuBohmM5M}!W!#cqEJmrR1V@gvK&#Z@&O4W3e0Ts; zf|F(C=R>Aa^}$j*vu^ipMOpPuzO1ZF27m)V@g4nw?yIQ@3RAj5pfdPnNk#IcEqLLDG z?$cXKJ5LWp_k6im)7sjq0uTj24?qV%_DuqFos6yBwk<;nimQTRu)Q!lcPrJY=PQ*e zvaIwLI^lMMIBdvC&&11rdLE)EqGUlacJJN|-%J?#sA$ZH0jcc4)zmfRztHx<`x_FB zX{zD=ez&dvat{C%0EXFq;Q}CDi2wj*u~_K48#fLzo_qwJJgT64tVX4#q9hWV;DVZ$ zp)kJy^|kNAIxv8{SKN!z(o$4C_#i}4WTT@akZZL8F&GR8T^EZK`lubt7cYJ9$?Em* zmzI|10|+V<3i%w~H7NjqnwlDE=gyt7y-z>gSDBkPAc`|-eO;YmNk#_AQYvAJG2n1r zJ^u5~9z67$hhfgog>7^kM~@wa6q;divC$A5!eA#u(&iVTP{_HXO-C^@JR$(lPft%z z1DN@y26zCdt*zwzSVDj+A0Ifa3td zJOB_v*rrW?Q?FfPE^>PX03eT7KaTS9ay7$^a)g-(B3I(|H(y6VjtND@Md0-sVs{Bxv|FmEji(49(Ew5;NfH3G0_XtXzea=+AqF>Y-00}M(5Y|u zumLIQDWs{X8P?%p+*Pq0Lj!}Dn4E+#Y@G(Bqe_J`1(K*!DP*uudx+q4226Q5R1!rp zXdUDwNn|o`X#mzo!afxd-xY8m(g`EOL)!E1o;_ZlZ|y&Ky&aYqxUAef_$fyKf&eFj zb8Kv~_u_>M9+%)vh)+;&{_~b1Q4ARxKHM*u^X4hE8nvqNlaDbuW|Mh?z8<^X-V#y0 z7!lnE0IayG8O?Pj#u%dqK05H6+vRF};>ivCJd=rN^?DMV2?QXQhfMdZL~>z~TCG&8 z6mpqtT5x-f=_#_xiVE`7h9@*;vq^FM*cal&*o2HyIw3fOGXON0odZ(<{u{~vHFjk} zT{S`#k39C+Huu!@-Iuz%rw5(hshovnhTNJwkAFa@o6~|4o^_G=7Ia_v!azz4*Mi&XsCm=f8e#G zq@)m~wA5;~PD_&H24Dv;1fT`8iVu7jIB-=JTxE<9!U!Rk2yn?gG(b3B#tK$FAWut6 zKB;Aa`x@#`gdGk?S0E6OtX69?fUd|{Rsfd(i~tDCy&1j>{6;o+S0GhYwHzS?0Pb1! zz^XQr$@D3JXJs;3A!Ce~&1N}f)qcJGHw3vEGRXi+00@}vX0HEp-VgHnh8C%o>jD0x d_M<&Y{|DhDH(DrYEo=Y)002ovPDHLkV1jh=nY{o2 literal 0 HcmV?d00001 diff --git a/imgs/icons/2230.png b/imgs/icons/2230@1x.png similarity index 100% rename from imgs/icons/2230.png rename to imgs/icons/2230@1x.png diff --git a/imgs/icons/2230@2x.png b/imgs/icons/2230@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9cdf9057ab525fc47ddbadd69d7dcdb34ba52032 GIT binary patch literal 2453 zcmV;G32OFDLyVW${_Q(+=A84* z_r34)KHv9VKH&fIMZ!QgF^d>u1l-iz8%->=ky3Q^hZtj2b+}5rYG~;~o6W{C#`vp) zM1=bKdj2{cHz76~xa$Den2obB#@SBW1jZQm!bdNt_Z>Wtz7!N=j9;Qd1wi{5y*CAd z0aRa!MJE^oHK3mJVHF2J)XsUxG3Hifm1WYvv5p*R)*b%K%YV3Xb#ZNN?TVc{cONhq z4ZECfx6smZc3!X6G}hJCySVp-j+g~e z&@Kd{ngXL)-O=1u0)OD#U8NgcS~=~2B`c?@V*UDz6mzh5cB22ndFZv;rqsYfw=63{=c#t&WM?BYGZTXs1`rAciQ_o# zeE<33uL1xYV4MZjQL7ZVMeWi zmRnbFcdor1?w||yb7ydOMFmJETj%dHAnZrnH#VOemBNBHT|dBNC2JuVGKrkHCai=Q&+#OZh)<`7zyO?TItfJv zD(<`+4#za69aB)iSS%icAPA+4ha8$SXU=c{i~vljxAxUVAW(%s3*kios75u*FI_X? zn|3V^&$vZF6kGHIF(ZUFT*P)fSlsx=iGLn$v z-q2Pa0>A?UF$WaJusXdEp>P;~{?j3Bs<;E?8#iEbVgl{;WGXs@-e}LdZ04GnK#FWFq6oml{p;^c5Yn!)hJCU88 zV{$p2o0E#dLgDDM+1c5vqtU1UAPOM5rvYpTfT9Mw7OU0O)r(m%8Td|V={ilC!6cjY zCMs835obxfRP!o=o&cWM_ar#tF)=!Uk>L@D8a30K(-01aTRa}m_>m)je`oK${o#in ztCV{>I{3cMuF069#8L+_3_t;(SmvRGlaK}AS|L(wHk**CXsZehxm?k`KU9or4MrVP zc;nzfNKpyT|LmtQ>vXs>Hj2hmO^{>>Y1tVhs6}Pl&+C0N;C34Tr~$YD!~oEn*qX)r2qK+6dk%H))*&x1 z58wOo)5yro#N~;LIR39jIGs+UXJ#OwVkBr(O7WJBtJ88a56rfXoXoT4BP-J~CnsV} zb?>}$h3ENPS(aHUJd*(U_7fPX|2YB#0QHRVdx+$g7W+fQm!9{5MqfqKR$j*1tQO$Jr7L)C|4AP0E`0Y z0x)+Okgow~4uu#13=Z{s^g2BWJVztL!|3hn!^dYnh9pT$r_)g^7RRRp1DF^Y9b3PB zQ#9AQti+#;a+Yo7u)p_jHr+dxEGf7}9O&wnW045Q^ZcA32#+U|NgWmqngIk;-vody z0%&el0O0+)f3!PY0l4O!!thYP?D2Xy;zbff9VO!t=5)@*2L}gxB9X}4)Z3S33do5U zfBQ<=*}CR@0xYHE~J z7t@`;qVVawyu3Fm?!MPFJL|x}zz`c7{&d0T^B7$7Eai$6!?7JPDzry0Mb%MdjXtGB_mwTh&MEwH8nNLmMvR${FJsn*xzu)iQe&6=;cr2dpa5!MKTIar7`Is!r$;q+}>o$&$k0qNvY|>9ojB~P* zSa3OAo$h(}3>Nc$7{Dn2M^h|ZCpR>Zj4^?TWB}g>uoHlmh-3(GKlhX8@9FODD%a|C zcw+yP)YsEJY%m(!KCkDliHXa}E0dFx;}he(@mP$d*u9kUx@C#y*NO1i0U}B=#%SHT zbxotAqnD!5s8OTQ1SLrtpPq8Oxc7;@8yI8J#^c8{ZT7aP*W>+g<;sj0bmC(yTsWWdc+$5q(CqLJ^*b15R1hC0696i9Y&)mWN<^!4@m+-~0{{bn5dhOjC6v$6`L#X1DIp>dUBmrf-3hPL_dl-rpS}DKg8Oze T+~()p00000NkvXXu0mjfl?#w@ literal 0 HcmV?d00001 diff --git a/imgs/icons/2231.png b/imgs/icons/2231@1x.png similarity index 100% rename from imgs/icons/2231.png rename to imgs/icons/2231@1x.png diff --git a/imgs/icons/2231@2x.png b/imgs/icons/2231@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e9db31b669eb142b3d5f45b4300ca907714e81c9 GIT binary patch literal 2730 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2232.png b/imgs/icons/2232@1x.png similarity index 100% rename from imgs/icons/2232.png rename to imgs/icons/2232@1x.png diff --git a/imgs/icons/2232@2x.png b/imgs/icons/2232@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..478c602d9344b973f9be19d385c8553156314d98 GIT binary patch literal 2600 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 KMNUMnLSTY*7S00z literal 0 HcmV?d00001 diff --git a/imgs/icons/2233.png b/imgs/icons/2233@1x.png similarity index 100% rename from imgs/icons/2233.png rename to imgs/icons/2233@1x.png diff --git a/imgs/icons/2233@2x.png b/imgs/icons/2233@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3899b4a74ab686ec8c9bbbfbbc084120c74e462e GIT binary patch literal 2134 zcmV-c2&wmpP)>iP(0`#9Gs&6FZs7AM3=)N>h9L zRfo!iNm~=55*Hjzi5C(@s8mpvh}A_d0hF8ES(d%;Ip^ySmUttLI`&`QnQzYd&X4bT zp7(vf?|TmLU3?b{1f`TvN(lg1tyY#&%33TI#$vHBlv0LLN-P!&Q(j&!0l++0a6-sK zM4s#73*jyFacXKPF(Se+P6+Yt+O_NLf**X}q*3b|ladnL0|R4XS65fhmM!aHv)OhW zJb3U}XJ=<8rIZjt=ra?blrn@6vAn$eEsaL=2bbIVABNz#F=_E3g;I$Vm6gGqtXxs0 z*2rWs>D2i6NRSu#nEjUh_KoW{W?8M)U?_V}MdHEwQA#P3ot<5v)oK+(_l8%W`TX-k zvolWq;`#G@S7*0md~#ZL>{taDP+iZRp74G9_jwcw#YwBxDijwNGfxW+0NmH9AcRm# z*~;U`r^m-9M1c{&aU5|>PjlB=n(*?=KcjZLU3566iNRnX27|$^(P$=WPSqTeN~J;| z5MT%)Oem}3yr@UA{TRXd3=le3M8w9$d(7!(adF~e^2+udNKQ$?Yp=hFxVR`XIx<9y zii)r(*+e`pj|`OR-+1$l{KCRQJt0I7AQnIz09|Nk0jNSxJpkE)1gusoLkOY0oxML_ zy5xnOk&%(mMd;vkI*C8v$H3qKQd3i5Hk+B8+#JG-0-czckgL_|2$f3nu{mR9|E`_8 zYLrT4hD0I>50TIVh|Agh zM}0v*F{LaaU-kA2y*<6GQmXRz^z?L`_~h6`-(cTrqsh1@7z}b8$7w>!Zd}Sw=r7c5rR1Dug&`*zibOb5M$wa5u)6=I;Vr+C& zBrK8T=Dj%kRae(7b`fX-Q<(Xqkf56O;%(qmv3IT9$U9=rM2}Jg_HmMlz81UL>i_hiE&9pr3tGo zJ^06}_;}-cNr}d=wi|7G{C@waAP6J`9t@2;0PZc+gviUwa}ZFy%RP&#>MH)je|*5N zUbB|{Q_1fn@BgI~oAWo*i**a%gDa@1vum zN|VX-3qcUnEXzs&Okr*ZBmyu1U?0i=Fn8nU&& zZomCkm&?@x;2HoQfDHg<0Mr3+KURXWva;yjJH6Ez85!AHtyVreJu9}gwZYbA6NW~H zB(X8E;>f*w!nkvc=H+dX$EGDCAuY{Q_fe(O=W@qHMaGcKRauY(;JtCsz9R}xs2y^4`a6imnMcG}n9 z>jNMtlOPY!O9W}dp(fJW!YM- zw%zG;Isv#s&8P{Hn3&H1S5{U=0idFyVt8hDMofJn^^9JxKTbq;Wp?(eZR#*}OjGlf z3)*mPkwQF-(&*UVNu{sy$Do=nH1V+LFkXpXt z5kfow5-@iA&;hrVX23Eh{anK76?JofVmxZhg3p^|^iR zo$VbpixQI1*?f&lG$ckW$xP?#>g$MFqJ$|n0cn{T=(Km>R(l7sR_2mqVE}C4m4h>gFzDol|+uh z9~MCy5shYB3w)GPp6C4`P!7N#fYAjBghB*B2_fRPZQI!0ukWr>NENT9FEtm)WlR~% zvZ}2G1qzmB++Lp#Lw5%um&-74w;z`q8eoVsVEgtRuzlGgbai)$5~Wrs@xj_FC6FW{f?xIOih(!LP*B`n|* zp2Tz#+&3AEj7DRT$z=Mo2vPD<;Y&OZLZ&7s(SG{|xpwt3@p?oeh~kXT=Q~9yZ3J)` zKsUa@Ej_X8rIa!(%Zj2XB0oR>t*EHz-#Z*r%AT%H#KgqHF*}X1u@THTysd#?@M8cM z0Q6$+DrO!~|7-+8!B{L7l$4Z+Sy@>dOeWK|*0xrK%jxp^ef|l*-_sWiijA1-_TU2; zPwf@|chGO|9Xz49Xa4c9SS*a$Y$kTQotBi8%&$dpU+r^N{eO!80(Rn-KRX@#6951J M07*qoM6N<$g1Bl4vH$=8 literal 0 HcmV?d00001 diff --git a/imgs/icons/2234.png b/imgs/icons/2234@1x.png similarity index 100% rename from imgs/icons/2234.png rename to imgs/icons/2234@1x.png diff --git a/imgs/icons/2234@2x.png b/imgs/icons/2234@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..54d9b125cb6bef22d7fb694114a7460700fcf444 GIT binary patch literal 2489 zcmV;q2}bsbP)^b=UbGLK8=Xaj> zz4tyJz#S??AP7M2)O!D)FxseZuaUCZzPo_{^2E-k9!e+Bkh)4hco>>{I zY^mA3q@{f4BmUu{azs0#+<}OVc=+>IJ2TSLR{;PJa)-tOv49>wciQV#kM^AS+BIA> zG}iN#3*~A=>6(bxCKl}4B&=Vz1QQeHN&xU`cJ?e4+!)SjNp5S=EyG0+ks>5t`p4_P zPY^|W0j;9M{WU z-cDy)07M&g?b@T*7ehrIi9RBn&2ho1y6h;EDne^4qQHQ6_ zqZ`jus8i_Fp>w{5l&nPy_7|5on0I}0fFvi+*9I9QrSLFIbH-gW^eFO{iqdlS&3}F_ zF8NU+{hJMIn2dX$?19&% z%9A@$62=0pm+G*!xupsb_e;EVS@KC+MX&e(O85yPZbQV>kKbCqp!&o+eZO3L&z1QJ z(HL&lSA?2^pS~#(QdIP5_l76e<^TZX<>k@LtpGVWAOiqUZmwa}$#wTShG$%9zfRIK zt=QewL0zn^0*VRgoSQIjKhmh9S^6*l&~C4HhTt0U(TwIkhEZudI~`#)b(e!gQO3SO z?lk~71OQNc@<8~p<0mv{PgZ)zzYh}t2zf;=C@7$_^79Y>ZPS__Lx|~wD6=M`IUFjh zD&c%d8SfnN=W-l(`tc_oXD)ZPtQqX>3q}x9Ee5^L>-LJV)~JPAU9i_;)GBK(IeaV) zOzx8OxH)s@-M4kyj;BwaEiU$W#2Nq~g@uLE1ONbl(9lZ+5lQofU9tA-z4{ma@D?YL zC@Lm7DQI?liZV(N23D_o@a|pv_R{Ze`BTr`nTzKy&rJ{SZ5KThMa*&G+F3_VlyF)N ztD-5IOH7OoO1&%Y*txRCu+FQUA9y_C%K#va_kRk2)7gxK5d7lPmvcF8gpmpD76egK zQC7KqP5v6a*X^^OJbJ+T>4)!)*spid?2-&ttzu#=;g*12uQl|vH%ooaL8-Ft8a3(; zbXkl+e?0b8v9qzou>b(Ln=%x@jdo84Ao=-)5&!^$a!gB0H}r6lJ|Kx|7Jc+*?{BvU z>kOvG#*4zz?A#bjh^hYGtkjSggUY}LNf4WC!2w4LWZs=>)Ef*?*VG<-rK5}K>>k}2 z7pD(#JGmevpcQFgX$bvf4dFCS%Dig$Cq z1fZb@L>MLv2olgKte;}0v;Y7gHFXACezDQg)Y47^21t*id35En#fqpIVOpZr63*@N zCnhEH^Wu`s!@-)GA!iq>Ku5&EBc-TPYlvFKLTTkCs;Im^;PS$9UXa~J1O5CUfnk~t zRuPnvw%Q3?1gA~0Kp;U+%834g>6F`Pr^1;Nv;f*oC*4C}cx)OV>y=N%F6dEQ`grZw7 zH^NU=+yjJ0xb7GdW=5L%tvmn2NCK+PSGAMgLHFq5wAq3ria}SeIZkWTDqfakS^{(v zgs;bZ{6Vi525yRf12Az2;YJeLy?dB|+t(f$W=s$QUi|X-dGvY&XzlDJ1N|e=H{_x{ zE|+Ft#7B!V1)?Oi##xOV%TS9td-{tMjNBKH_y8h^h}1bcn-|2Z@v(Yu+??3#lJdG*g+jVO zQ_zYsoFWJwfr62tA#lMhA>=y&#!IP$m;evI2nkXDOvRG)fgxT6fW2lTo|hz~L1xDU zQ5M(zJZGlg&#ydm{6f8g5%+>Zyh;e1>FWdMWOKil1LI}0*{HpH-wAO#g;bwU{;4cU zIa(!CuhU2ce1Hr_&yLDjy*hW}mAW=dSy_G281Fiy*3k_Phg1##{z+@!Hk5u>eX~G# zxGpqqraFC=kxc*q1pq)&LfD3sr0`mnhV8*hSYb4(BjMYSd&l;Ox6AVs02lxuGAqjz zbUW}nSp=qmxnzKJ` literal 0 HcmV?d00001 diff --git a/imgs/icons/2244.png b/imgs/icons/2244@1x.png similarity index 100% rename from imgs/icons/2244.png rename to imgs/icons/2244@1x.png diff --git a/imgs/icons/2244@2x.png b/imgs/icons/2244@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bca49745a18cb7af45f9bb8ca182e439c1faf2b7 GIT binary patch literal 2364 zcmV-C3B&e@P)v zYn_h6*l~2G10BLxu{!t&1SAulNqvw&$fF@Ive{(szV6+<&(l8$omfPIo&IL-oPW;a z^Lw1{{T*P6R##WYhQnbl3@{WR7sjcszm#!PnG_C(nfzFcLo9|EU;`i}4?f7Qk!2eV z4c7kxz+Cq5n{MJHRduN@mjnRyfK33J6-6c#3W>Yw>e&A)K>pIDk|nWzPBi%DksD0_ z*uH%`mv+0oKuT&K9VNi|6yaN>BW)&@O;lkT81fT?>bj!9)%P_&SEF(IdrrYDTi;DcJuIm!D^$r5^_>b!DX$gnJOnrU*H$q&bgyC?Q zA%xgHr+dER_PYPt_IaCce^aA_vn&lDoT3}BESnK{hS3d^>Y6F!<$AT@{y`@%^4zo{ zUu|{u{9S#0eJjh$%iAVLa!LRjH*TZ=n1X_W7Y`gdz&`uj=Ior%)xKOw(sf-o$K;r$ z>$*({&yGc-+1Ah6QCwU=mn>dHLscPBPNWS*)x7y8UZ#}ZiV5k)C2Ha;MR+0fH8nLZ z05jfw?_D9Q>7}EivDmmA2LX7ez)Jvib1ZRsJnlTN*X2s56mL&Yw|jrnzO-fA8K)=_ z3L5&T;iH_1eJ`1UuhhT=fIuMNY(CuFdGh2*&#F6C^}5~eISb~7M338n@wkkPn#HtY zAF^2unwo*zEuo}j8jXxZNqa|U_wKzP^Dd7kQx&Yb1;7{p5r73ipBTSB0)!AsDP;x+ z2QvI?CvDQ0KDED zL?Y+l^?KoSOVBh8nY4n0EMs7J2u=GM5gC`U_Wrf@mnT}!4h;0``O}K8DzB*6z5e0# zF9HbUxm;&tMd`pqQC_5k6KNoO_wF6eX0vTP&y!$T&|(}cM#j%UPR4P%`wZGUI?&nG zg~P}HiN>Zwc<=r9F)%bjXH?8YDx+tgdvV)myWiQRfT2&8BGJ#b*M@bN-_z7rKGsfhneMN?%H|tg86wlu6-Z8Ev)|W zU4p5~cFTb;0*h-a*B)!B>}hCdAa!+h?AJzskTn(nkHg_|DciCl2c+0!>|m^pwy;R*A1#^2IUxz+LmQ= zJZ}dA0lTHS*}i_sV(ZN}UL`-dZ?!v{&9X)Q>DaMjH|;*t#kwTk;s}ld76HKi_ci>F zX0yQe9S+wtC9CY*`pkxh=3KkrHNU@P)(21Y(^y?yuTMVr8JhdPV^2X|AF%&)D55yfH4_>FbqR)xM5zQoYZy+yih8~ zGx)rtEvK@qbmyY0XB^zIW9Q!ilmG|_0xPksfJ`P61rPxc2ax&f#DSd)7gVo`MpG7S ziy1yQN=BnvZ+}F42f$I63+;*m8Gs3ZUKD}y@etP$cPsSqARi(u_oWtR;W>y54LoHvV zoPy(I$~3=F6vQx3?6cTV=#3p|P=XE7m z>Gy2$ySp1 z{eB5RIe?#41PWgV@Falc0Ez)j`58whd3B}61OfpkfB=BGJkMVXpkU(gZ}plc6S{q+ iKx{A=6anzxwC>*oVoR-iv7Ctj0000M z3PGB&&^w4?1VPaK!Mt(R;l10_iHIvHDNz#<4>mc&KUqZpBOM+lmB?+qYEeX08TjS&ulJSQz!$_0f=(l`6RuyzVgEvGiR2DhMaqa!GkyRV*QVw%)ib5&6hb z`^POr6h%Y}y>7>wL6<-s4cF;f(UGIPN`rmB%Fn2|u)|11JP}RU7ms{o01<&_j75?c z<=)76c4H*$wuO2>c|STJ)GmE~eIfVFZ-1Aa`R#f*`UYiV)|x#+W4Wnc=t|`{_JSrp zNj4uh$JcGl&SNSOp;R~BBGF+ z&b{_S`u&Dna@%|4fM>v4``7nd#Bd-Y%S4vS656{xpZ0Hkk=n1HAR==4oW4wx$;1=U z6iYE`S)3Gf-;A_glZVb0MEotKG_H`xMi&okp?7!YQ-`&hhFyI`L?n&`$z>O)xAQ*z zY2Oyn)7vN$(MV0j$2mr$F}k3jK=Y3-OuSyp3mIeFP`KvcS-!8Fwb&$BOOK(i_6z_S z>X=wO_tPCnOr4LvT|P+?F&O|N;Sf|xC6edN!~EGKlOcMR!>e^ezKp+q+2!c8@ zGgArRffEzfglKf(G@N=PE+JK2ub(|9#oJ+%`#U>0AJoWN{Sx$A24`;{+B@5@B22kH-@M-~-?VAWi51W1z$9 zmnjzKzv?b2Dt+70)QE(yua)P2>-#V!%tlr5F%0$zh@D|T+Puf0i8g>DBalf3$0;ym z@1~aKyR6U0!XH#Oedz3Ii4BY5j8G_)0w4uIJOIVyB>?dA!?h9-*s5)NE7a4ohdZyI zStE55T9)>~DucUoacOhiw8DcTxu0!#rg4h?1J;BwfRB!)$mHb&ca@2=MF zbjB!^%4qE)c2E2EyuU72_M*pXF_rKQgG`~3tcf&lygq{(sv0E$c| z9$?t$zNFpNn;=#>yYI_c~m%m5e{uYWvL>lUCrfbLFp#Ii6Ij$o<}j60j8oN8H^!9&R=#`UDS%A z6uD=;r?^{Ng(sg~2f-Nx?{EN2jrV@H4G~@qIpoH|r7JL}t_8u~+cL8|M$4zstC?R-etpf43XruRMQUxT zq)BOJ`|O_6iKThjHbja@Oeum>34nICR;Z9;YYR2FC4{B&isH za%_C@^8o+=96j|F_12Wxvo=5d;@WhM$w*2_0I$+gcSkezwluP;TlLHktA$b@heja) zr)$XL^9H&+!@)LRKx`(U3_v*m@ge6UllQ<_DFDE1-pTFWz58HP+kMM0E^S)zwUs#@ zUnohXKKGnK%yd1*72B*p17BO%|kUb`nS=!?{;qT>aZXV@o;;eG&uR*S)45FP-5@r09D zJY{jYxpPz%6XwFl;brHKG^{`Ft1#5Ps<22?739ak;sMK_j%3uHh002ovPDHLkV1i^>lJfun literal 0 HcmV?d00001 diff --git a/imgs/icons/2302.png b/imgs/icons/2302@1x.png similarity index 100% rename from imgs/icons/2302.png rename to imgs/icons/2302@1x.png diff --git a/imgs/icons/2302@2x.png b/imgs/icons/2302@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b2cf13ea1844ae915ace1b2facc70190d7c1134a GIT binary patch literal 3008 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 Wz{s&++D6L&0000Rnx(x7~ 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 XURFxS0qhsv00000NkvXXu0mjfNii5C literal 0 HcmV?d00001 diff --git a/imgs/icons/230.png b/imgs/icons/230@1x.png similarity index 100% rename from imgs/icons/230.png rename to imgs/icons/230@1x.png diff --git a/imgs/icons/230@2x.png b/imgs/icons/230@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..95a3ee52aace51dc61419221ffa4a1cd8077f500 GIT binary patch literal 2319 zcmV+q3GnubP)R3CKcB2a&rENkXjPh7%0bw2u2?Pib>;O*e_;LNdkF!4#I!ar$l~zrf z_DM&&I?_46-}%1Z_ucOU{%`*a*4y39F~-P${9+aeP{tU?7$b}^`n7<3E;wTxr4#^g z`t)gSZ*Q+AFiq%V5`;{Du3!87EgLs(G|Zg)N+kKu+U)J^!zlLtzr z!s5|$=ajA$T{IfI#A2}&WtkjVeNQ(AFNQPGNW|DU_lB)ox4eF4DkVO0B_4mOb7?Dv zhEDycTyHrp77G1+J9oT92vKLeOM7~H5DW&{Rh;WJKz8rm%^f|u-?4Q|zg;8nWNt$p zr`2f5u7RCsncIX)k54&#;v>SS#&}|Q7{kLKeW%J_dI9{895V~h|&)I-}28B{~*z1wc>nl*IdB-{RvJtP)S zpn6t4M5%;@bsnxzP;oSLgh_-EhsDeqT3Si{+oi!dmkDa8nF7_`!LYI4PrWurR_JvH`~DmLx=F@n_G#( zRG3XR5YC7?e=Sz7x&xs@N6_E@Hfm22Hr&?Ey7Y!0h6&D!>3L`OlPq0#+%Uh?%QxVY>=fKEaq~| z^*4cW8dg*7A$#6GkZWvdest5O-j@g=(pACJKp;Q?km2Fsc|ZKY_c!}zSMBvy)nv|% zUE)U0jIx%NX4vf(4D9{@f7u`muFJ%Vs#95vo5G|aAsNnZwcr5#qY z2@7sofR4@;XrALmEHVvC(KM zc)VW0<*eeIE;qCSk9Yd}ac1-^G#U=^WEQzX5gY}0L4ey~hfV;ZmnUGe+u(HAVYljF zclls*)gTd%VB7WqH7({Sg)(K*DL0IS^Opcn04fcILQ?;0uicQ(s4pj0ZM+U-VjV;x+sDx}jXT#8(P)8&LltAo$&LesofY<~0an2e62 ztFr^gj>yoJ8Nn4r3c?|iDJHLGJ^=7;r`tRhjx9)w8Jxd(0eU?}KBpock0~4}(nvT= z2vwmGco=jVSS%(S8$5~fu`oO?2fV%-2zo1cqQEt44txKfdzq1?Xqm@_EpNSn@heFP zIz6lPdbomA%H(p1*RQERDh;j;Zck;htFnc{<4f8WAN07YE*A>LONuOUvcgC*m12sj zf~Npa7%q&Bp}wvW9qpYs5IT-4lX37o2dCSM(TfpeV_~vj@lxFVz579ga&THBY&M5# zG@Bs^+CAsai7L_3RzzEk3A38pF_A8ycWWQ?Wja)tO)Ou^lFQMlN5bP1 zhj^anWm%2@2vY#0yStksgn$rIdhg&t6fzl!5xOQkKJgoKxvn_NYom!|jO8;K5T1ix zr^TE)ADk{11j3-oDhyf;I_A~E>#K%MPcS$Yrj*ohI0PsET;rB%Xf zsHNNlMOB%YP1Ah7P{W~%-jPSZ#Y$}m6mhpCn)l8;RBE-C;s*0?NnG8oLcUa8iHULNi_y9oo zD%h84AcYyle$!#m|I})=Xp04@luV0LxneO2M#mM#qN=LqjYgf%>!|3m*(w^7=`2#I z1SDBTDl7f2P$=#Ma0Ec~+RHzW!1awK2fzoQ1%MgTn#lslV_GXE0Lo10oIa0pfmyHX zN~V*fSd@-WCUcu+z%yUs!JliSwG~1WplND?W(Mq252&9GT{!?RfGPk6OxOLd&B!%t pdgCih24B~tbN#(vI3N7i>|dxp-GQZV@y-AM002ovPDHLkV1iAfOe6pR literal 0 HcmV?d00001 diff --git a/imgs/icons/2310.png b/imgs/icons/2310@1x.png similarity index 100% rename from imgs/icons/2310.png rename to imgs/icons/2310@1x.png diff --git a/imgs/icons/2310@2x.png b/imgs/icons/2310@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..76e17d6892c246648e9beff3852a9c32a9eecb86 GIT binary patch literal 2789 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 V7sWDnsS^MI002ovPDHLkV1lB7R8;@~ literal 0 HcmV?d00001 diff --git a/imgs/icons/2312.png b/imgs/icons/2312@1x.png similarity index 100% rename from imgs/icons/2312.png rename to imgs/icons/2312@1x.png diff --git a/imgs/icons/2312@2x.png b/imgs/icons/2312@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4c6e68af668f825a57f333e04f43debff890a0b0 GIT binary patch literal 2789 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2313.png b/imgs/icons/2313@1x.png similarity index 100% rename from imgs/icons/2313.png rename to imgs/icons/2313@1x.png diff --git a/imgs/icons/2313@2x.png b/imgs/icons/2313@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6c91961f440d4bfbd911a2de5023ed700942b6e1 GIT binary patch literal 2786 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2314.png b/imgs/icons/2314@1x.png similarity index 100% rename from imgs/icons/2314.png rename to imgs/icons/2314@1x.png diff --git a/imgs/icons/2314@2x.png b/imgs/icons/2314@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e71c229b451260404c15622cee767162165c0fcf GIT binary patch literal 2833 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2315.png b/imgs/icons/2315@1x.png similarity index 100% rename from imgs/icons/2315.png rename to imgs/icons/2315@1x.png diff --git a/imgs/icons/2315@2x.png b/imgs/icons/2315@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7df852adf70ed9a36e5816d6cb905719ed48557f GIT binary patch literal 2040 zcmVmMutXGKkV!r0AN2#L(T>8 zIl!)+IPpSuKHBDSxlE6yvQbTE;4-3|Q-ND!D=rO0z->*117Os0Agd}pQC=qZjg3q< zH#d(C3=E|1I7^QO@YXA@kUJU$41<~J43+@|6^RtiF%O1$0rDsc6j?@?+YpRn!U9s9 z)78~_N@UWKfdhDE_X`lhK-1PX{OM;uM@4ltrl%$#bASmB zKwx2EA&+x;EPH1NNVqXPhOBKO7%E3mK@kkoL?&ayR~$ffZ54*bNAXcl4{XH?u1HXL z?rZ*K0E8?_!gd@G03igp%+Wj8&(54YP7Dx4M28L@#PPFTY$7@*hSFJ#TUn&Yflb7L z#m5I&FQMPPcA|XG-W}WOHdT8jtgKVAp&YGk?HGRHLuMMffW@Fvgm$QpYW_)5Q%NbX0bYH0$x_Gg&>&$sQ zkys9!4)a{=I=@&JE(x2qBXI&TMtPI`;R_BNAOP_0Y@G|&RBcjB+o=iqWIeN@vAM;$ z@v8&TPtRU3`fm-e+1rb^kDa-k?(Z9nDQRoTaJvf@CGIu_6S@$2Z$Yj)z*_2`Gya-L zE@vFaD3WCtCnuXRZOLSksxzj)|KX9P<%ML*HZ5PBu371<#j{yUD2k#uKqjB~qX8HL z7^jPee*fe8`jV!Ax7~27s=cALuCZ!*GV#UH>sP8m0llYpAi4oki5@Jm7Gp8qxT&U~ zSeD|6l_ksYT8eG+ym|NlKqM03tg};eAO1sU*S|k`)>r1sw(s4(=Vs6FO;vN5U;BE? zld0q?9~)WeYkjgQ+qAI?UR__BU5vYn3w_?vzTVq4)j?%wJ}Cra5P7>DR)2Y*+(ct*?nv!rqxcgEMDeg>tWmVAD-MSPARi+h>uS8c}!MW+# zSbsEOYJN9doGep-qo^on1nvi*NF>4;^=fW8l*y#a6H74`C@oTk2XCoUlhX*5 zm8zjo>8@b0-)Cl0;rXd)Wvp*-Cbhh5c-=1lx$$VmG)>|hi0AnPcLDBHKi1jV$pC_+ z`%fh@4rQzbyQQrewT&$ppP4~*eH}9#8x@rsmtF+8hSzMef zbjfB$2xf}>ui@Plj4@i{AWlT;M9jFHNT#9cx?EA+L=BBwp{g1rNk&m|DFuRsXlM%8 zo*5i*f6_PPo0ysuqm$#ylM8W+9Kpajkr09(=LBWEW6ezJa;DIℑsxO@!7#_SnGN5ZN)pQ6D z0$h@$jONlj+d%NWg#n(p`eNe|Yu z_s)G#9CMt2ZrgJ!j*3oD;3)vB0Io8IUZS<;B>Djf zpZsK^X4j}_6gP2qDS_2QjUk01@)9V81=>R2TWCAe&P!)Hb7$_{d(Yzsii^8T3uvMz zd6IjQlmGL(&)dBR_ifIoO9fDzGs`}qDL1Hk^*{7bG!5i$UD7-twZ3CZLP+Eq@%mZ%p_Sm3ys*HK6&$y`>! z49i|jerbSUYbz36T_~9b1US6XK))&g033u+wung%xIA8LQ3))cK^RU{X0kNxa{!Dj zs()W+kySQL=tM99=p0A_FeGp-U%*JIh@9#~rdWm&4#Csh0^92aQw02~3J>RiwPXMm zj{pFuf&oO}RY5RtaEFR^EsC$b_6>Y-=a+D&s|&+dE+e6OpnH8NoI8&(S!N~?bMo?% zIao9T4-Pm17>0@ZRSl3F*zxjCeEWNEVr^?1_IzhQp53toPy(NG1i?`Xp$QUKFS(-I%B+5DrDWNQ#;YR}y z5#P4?`Da&e+EnNDx+zCeuHCYQai>%M<tf_W>Q);*?O zwiu|a>qeQ#?R2}@Gjie@`uVm^~9yH&+QQgQ(Rigg(9>+{IKsc zC*Obf>+5#zaM;NiZ#dRay>ZW;b*KOIK@Zusg+i%Z1ylIFnp@$lm`J76XI3^iM*I6` zVB4OeQ6OPIVFVs@fSyj*{q_&M$_&tK^; zQF0bC>{~Ji9|r&cWHZ?Ty{wz6LtS%sWRw)aF_+1>rYCji`2vOOW3B1o;Y@3FwQ+A~ zgr(RvQpLztlY5`MhZ|)8^n(KK|G6 z@ZrN!Q4}H~t-HIMY-xA9oGuoPMrEuvhPBOWVOl1l)hn3a=ck7D4OPtT3m?CB-F;>J zu4{N`P@hiD&gXTVh23uA3W&tN{y85xk`(|TB60EJ#SND)UamWM@SweH*|IUCWDJBt zAvCXP=8;GQs!PSH*;NPx{HUx9!4^WP{p=T>JN4FEC%g^^m59g*Fk*t00Y_Y_<}xXY z3w|E?aaI7Jr>Cdk#EBCXM~@yoH#wYmp4sKPa#wpf}$u!UeBw(fR}GvzEQ@f?unUXaz$3t zdW)uMnvlI|XD4-@iYVOeXE!FYk`6U%y_Rn4Cx+J9g|efZK|y zkl*jOJRT1grqv4jlM_Q8b8%C^40wH{W<84&Ymw<~*keb{)V;C&Y^Y9`5(2 zzLE(5zLu622R`bK?OR{iI`sNCUr)8KZ=VG4qgX5!1n?4oS2Rsq@iE8$we>*E58$f+ zz6&^BX=`f>0svzSjD6zl!~6S23${p97NcfhAkH~#%Vu2RL|-A%(%T|5O{1&03V1;{ v3yHl8Ix}Ec^N{8p5VkFJz+n(Rr5*nXJm$(uIgaWb00000NkvXXu0mjf=uq2? literal 0 HcmV?d00001 diff --git a/imgs/icons/2317.png b/imgs/icons/2317@1x.png similarity index 100% rename from imgs/icons/2317.png rename to imgs/icons/2317@1x.png diff --git a/imgs/icons/2317@2x.png b/imgs/icons/2317@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..05637990f9a42d5b159557028d7908e6897a0467 GIT binary patch literal 2077 zcmV+&2;%pNP)703Vg&dkp2j@Rq8cWuXOd%c^)d6P7uB|t(=NSj22sG?1IDlI}nh^G)BL6Pbh z3HU<4fIulohyYd6x)g{+i`(X*xK4=Uv}s~*{C+$3KJ1O{-PxU;nS1zP2eoNqCjkkL zbfp>1=zo6mKj%IM_Xu%6b`Kl`Vp5D=0M;EI2-_1EuzZWYS>mzzA_j) z4q&PgU`_V|&^6pgk-0R<0G7l{_+swlS!D44K9EpVd9!10RT7%f!Q1;IH2i8*r5;XhG9`)77m4TButcf#ATyd-vh%-~TSwZQO)MzV#j4w`V_$d;x(_6*AcjWS4rI zmb*&;05AzKBnh*rSxk(@;R}?b#9xMjDIf#~Y=P2f1WK_7FPuDuK06P_IB{^;O!?1x zz^!S*f)Ew}!GL@|2ZsdO+RkBOWKeKfrrxejarDTutaosjQgdlaS`Oj`1Evs=m#*;A z07S$e+yCHwA8yzh_NWSFNQiYib}+80;^o&~qhr7SgLk~=iuU}`-{=#ggTa;cwYB$e zT&q|FQkeop;>g&v>{9$5L?U90F-jyxqZdxTDl(&!v-O)-)=XcEj}P?p*z49rOZFdr zO0QqLL5p4O&hOZ{y+l>mv@@4+WilCmKw?u0IOoLg;QN=D1#g~h(Nu+4e{5umM+>g) z>%-NY%kuQdpmQlX72oq&5tz~0C94pxPux~3@J)KDTfJw7$hz(jf`Z7MPk#M)b<-R)=not>Ql&Eu)=>+H!0 zB1I`LFGs<2Okpz9Sy%{~?gjt=8XLhG59icCiK}!)AQa+?QBlPG^WCvIb6{+$_2e6g z(;Xe!_+0u%YkO?A{le9mrxzx9b~|ZaO>WTnVL2Hj#JlSDJaXOwggsjV|Ba?&q^lU-ZR6Ui_$n&YlbC z#ba9<>b3fn(b?YKe#0LOROgJG>6%IBhNkDVk$m2SvTXiadZ4+P1HkDMM|Q|8y?yJ> z4{qrn8*sn=&zB_%*qh_m<4)pwe^GReH&9hsV-~n9+~pNq_xox^!Qxl0#wI5np%#}G z=gG*DaPehp@Gb|M(F_2{&nA0qW?3HHy=I`Vn>?BahLP89+!#hKpQrHp%8l_3CmpF= zVNOnrQDS6#W@bJ+FUyKAoiS-@dL}Qa++*FrZuoBp8XFt=r_RAo9XgZak zieM@2Y}gIKI0}vp&F_U?>UULb^lg0g)aj%@IXzygxeNYC*r%2FgsvCOXH1J(f`fB* z=euE3Q%m|z!o2$!|A|-gN{j%rc z=%_Z(-)BswlJgnEU_pYkyyS6dlqZK&1}4Cm!?`P^z~Tur zw@}*KZ_Y9RoIl?ZdFj{-CC$f=w~izY7l65Metys8oo=^NUJ;cD5|vfh?E1(UL0GJ~ zq?ApJ_fm9iB)I#bP4#WB$F6!knr1qVG%Z9fYhzrJ=%RPtY+uYHmIR28TrN*e40>1B z*SS8nt4@#B)UBVGn)Iojx}jo!*{YfJG(w?zye+!Txzv!db~WRk$Tl&PNJ?Xq>8h-o zcg++mE9Z!=abce;1FlWj$c`@805<`iK73@_tx4rS`O%ZL$ys&om6LCz{&@UE=M#rM zcTm;Tl^#!}t$AE>c-1QBmp^ar^_7%-Ad@BO`RD#d?VaOsmGdh}AueQr9sp*1L7QX2 z`a3!sc>&Y`SOXvgpe7uK_TwLX`G@4p5K*2o$w7MhdtaRb@HL;Vwz@bj1Ne(BVK;zx z&i8x%C6g9GT#b$3ixQvs^!|PQ-}uUt(;wPYKcN6W^VRzN03HHx0B(2HEs6hYaZ{`q zz-It_8*m+{t=;4Y0LB)^V(@n*Cos^W3k0_KVm-w*!+A#=qLa|pzU00000NkvXX Hu0mjfY(e(| literal 0 HcmV?d00001 diff --git a/imgs/icons/2318.png b/imgs/icons/2318@1x.png similarity index 100% rename from imgs/icons/2318.png rename to imgs/icons/2318@1x.png diff --git a/imgs/icons/2318@2x.png b/imgs/icons/2318@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..84d4347969756933346a7ab57ac09a0cb8699fb0 GIT binary patch literal 2079 zcmV+)2;ldLP)1hd8GgQRj=jBJdv^`2FN}d=gD6)U5-X(U3MEPisUc}gXiAHsR857NR_dWzsFk8h zjrt=ckkU#Gp-pQL5ulbp1WLl866|0OV`Gf*`dE7p?|Rqc-8sLnKQJ_quq$Y#_LW{~ zMl*VzXP)<+XEeb7dvSnpfHVX2)-eYN=lo{heg3HiK>pYI3)a095&(SnYp<0k=P%DR zO#>O2fapMZFd#TYz#9rN34j-%fQTDTN(=x&QG_4}d_pzZ@zbaK-gxV+kz075MKvaR^+p+0ZN7iAe2e^LjV?-qvvThG1PM$^|(}}@3 zu~EI?4DvdlPu^eyplJrGXHEyBz^cdB;Cny%A?D1ThjlM+!-7>$Agk)|heA*$6o|6z z9xHdB0%QON2eN{IbRvzRfhfGeAc}pZ&@>Y!qkzfapD_bckrOS)kK>xDf)L6nC`=;# zXFHIyET-x@GZ+I1psG1o7Q^Y&XAlX8nJ9|9r?Zp&VdoCg)!WAtnKX|Z7NU9<8e9;sSj=BlQC{BB z)~;}H$zNR^G*sQnSq9Opn?bPsejR9TZl;8g+?1*cxvZ)tR4Pf?>WXq-;*$%RzB8>O zCyu-y`|!ef`^Dk@u|vmBrT>2LShB0Feb@%e(u&(!0EGJ&z&R&` z5KGath3Ag$`{t&fzbwbjce!USTRQc*pMJmocdx$wi8`*Bayq4px*^mRxt)~KTr!c6 z7R{L>x1Vi`Ic4Hf^&E$FpAJltbIy5HxckzM_;5JF(~{?39@^%5_cCYKn?-VZh#}sv4w%{GZtY3IIwf+~9U< z4?WcQ=okA3dL73wSNHnoEKLKT(FH0eK2el$E{ z7`CD!x5~2YaA1F2?CczLS*Bhbs`N@8A9J|e&4Eg_6?zGUUH z(u05cOW>XJ7e?(4J7ogRnv5HkX3$cnlPQ#NQxI-N@jWA11b~*77NKd~+C`TxUZ^_s z?taVVaQEq2s(bO01@HySsUWyfJ$)8ns&M;)@cBw0imJG7>$6L?t$Xo+Tb8*B&Ls{) z2nb_bPPk-4X5QQ+&pkiR6aZE&TQ>dh!9&Hr{PnL+KDEB7b;X)Bz2R`U-Q_N_MA1zF zaHq$IlE73hiXvpYgTzPTe8D4M3T%Gy8?$s>*FBP5Ac80-z>Emk^=vxZGIllm@gxt+ z>wuQY1V1`?!qd^wC2!fZ$b%XABZ%?4c|8g&>F6-64Vp39h} z3q8ZhX;F|4w_z9)ChHiaN{+@8&usYC zi9|HkMF`=R#Y_O)QRKD${KvODhWZD{K>why?WI@v{)0!NE}P@xkgoo|kLhokrrA14 zPV>$F?(zVrmSuT1fDnKR0QQzWyMMwzRl9b)K4PPIsir1$(qHOp2k@>- za0OR@02m$v!<9*#7zmU_1i2i6!@=Qh;|PMI4jkLT@j0*KzX0>R(-+002ov JPDHLkV1k*_`q%&f literal 0 HcmV?d00001 diff --git a/imgs/icons/2319.png b/imgs/icons/2319@1x.png similarity index 100% rename from imgs/icons/2319.png rename to imgs/icons/2319@1x.png diff --git a/imgs/icons/2319@2x.png b/imgs/icons/2319@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..60ddfc7c6789566aaa8cef13a3497b1f14ab2cf6 GIT binary patch literal 2149 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 bzX<;?#|vSz#cw4}00000NkvXXu0mjfu$*Y6 literal 0 HcmV?d00001 diff --git a/imgs/icons/2322.png b/imgs/icons/2322@1x.png similarity index 100% rename from imgs/icons/2322.png rename to imgs/icons/2322@1x.png diff --git a/imgs/icons/2322@2x.png b/imgs/icons/2322@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2f3caddfb08ef6a746970e01837b524c130db430 GIT binary patch literal 2776 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2325.png b/imgs/icons/2325@1x.png similarity index 100% rename from imgs/icons/2325.png rename to imgs/icons/2325@1x.png diff --git a/imgs/icons/2325@2x.png b/imgs/icons/2325@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f7f3df55ade02b267c9de226b0ddea86d8178081 GIT binary patch literal 2661 zcmV-r3YztaP)zZk!+IPkdO`J2?|LB1VIx((DE7-o6?64opzjQXSCI}w$qMIz@qKc z5gh8XIu#U)8fl?|j{zz%D39<;0-KQc=C#?)X0z|Td+*+R`bT0KQ0#;0`S09w&;5RW zk8^&%3*5k)mbPE% zDCZbPh$Uh}{(xVuuC89`bUF{=9QKffM4^-tLI}N4073z5t*ay3p4_HwT)lB-USaN* zUQe$n7z_n6Gc$z^8#dSq3JZ3p5~)S&*RH=;FbNM4LWaH$;6DDAAerop{uk-u%y}2wD2_?eeFa?0ETen^pfVyU_5727uuBaRz|)9|P0@%xQp&0L-$@n@f9}o9{c>-0Wy=YYUp7jffTt zF^Lw-((2{nO=WZL*s^syyW=;%3}pgpl4Vt$PN!2+1smItg)AE?f&h z>Hy*fI6INdD}JVA&1`#U~vYPw|Oc`Y+H*BsZh45F&G%N-r;gZFQ-m(<)*k!2Ix z$3rohi^mm~*Emmax7^Y2IVluHG41il4+Hd%fbw+!1e4++fENM1sM8rg+rK{r;L;Mn z0!1;Z{r$2H2)6>M)>Eg-Kh4W$=9HFa=Q?LZWvM@|H=EQ%G)f7Orjn{hEG8y^gdb3A z0JUKPfKC^^)_NTPLmDvp022#Xtt@M&P(?+UXGuw+qTT2=KdWkkX-CZfTROlvw>(+o3IRcb!*c_a~!XUr%on>jc%L+{Oy6eX~cH|h1Mx6k#{t2U}bf-K}3$Rgua{vZ6pucC+h9ZVx zmLL@}`v!(%=Pz~!89)^Eg1Mly#B9rT=J^JPlVXv}YI8Vrir#4Ubocm)-5!46yIYu5 zD^{`$%Pr6tEt8?li}jB@{LTx{KR-UdxHvh|)s_Cj3(Rzo5WvWy$oT;nEynzAw>#4C zK|`}%uXon0Syf)KY_X%Xa-K_)QWW#*9R{jk0y0sh9#U-UQ zAxSI%1Et6Ti)BTXmG)79i6{!0t~mwZ2S^q`5Q`xT5JvkwiM*M)hOi3Sbmp>W*fYf2 zv$M)Hq|Ka3kY*Im(hADwT1yr!jqp~xkcf`!%tnC|bvk|HM~4+wV5yXrWR_*Zk>Ggp zz@bCD72s4!`XUTh2M6JYyV+J>ElxtV6OsW7Z*nw(0~?$$P6XLEZWk|`a- zks?n=yRo~cCwpLU&=QL!h8)?MltBI|j%oG!>X{UPGdIhsNHWnI^m6suyE83T ztM1^wcR5c_554n&@5?{h^|DoOGzl;L?x{2pIP=n_i!3h1a(8`+fc_7FrDW8q1g%x?B_Evj%G~C;A z{$irjeVJEMN-(9Q*uq;X^~rEJa`A8P`58c=qNv)hsft(C=}&5ExEFJB=*9v*-(X2y zU>K6o-QGqW&RjAUm#DyVB$bR&hr>bK7si`Ld||gq<&uxT{f5HZvc=bS?J^De12I;o zQ#|fVX(-BQA=NrP=g)SW5tG32Mq4)H4~JwSl^o+(gf$f*9tZ%4N?rjn2YfbOGv%XYuA$N%n$b8Z0Q=5MSJ45G#8n3*5Uau#HULm_I*$|44%MP{II znkF+WBdD_qOAWb>3ya%(eXodAGe!K~ln6)^NJ2$~03j8KX+Y8jC`$qL+*jQL``$UI zB&6g`e}C=?Il*SAUhj}&-(TNzuitcUC$D1`GX_Cp4QAGulP_I5(VAYDH{0&aD`5_N z+=%)!o$;H2pr&b2j)S75ArT-BAVq+v1|-aYG+F(=)E9C9uw(zRky#eYrFY&x3eV7Z zED#99+5>?=a6Hn?WfU&X$zUkJ(D_?zNaX-BCdAci#isyj0e^iYBK00SX#|j%osppd2=997wNDc)|AUf}V(wH! zBVK&<&&}>&>^b+5(<1eZsVEUaYge3*i9)tT4J~70YFtS=*L8t!BWS3T*$oN4>!0`%)F{+|XRQ=HSg8S)kL|9bor+A76| TfSMHo00000NkvXXu0mjfUUCDF literal 0 HcmV?d00001 diff --git a/imgs/icons/2326.png b/imgs/icons/2326@1x.png similarity index 100% rename from imgs/icons/2326.png rename to imgs/icons/2326@1x.png diff --git a/imgs/icons/2326@2x.png b/imgs/icons/2326@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a0bac727b2c49e289d2e663c1732601cb451e7cf GIT binary patch literal 2644 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2328.png b/imgs/icons/2328@1x.png similarity index 100% rename from imgs/icons/2328.png rename to imgs/icons/2328@1x.png diff --git a/imgs/icons/2328@2x.png b/imgs/icons/2328@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5026a07d57f6c66eab154dd1584f8c988fb2f9fc GIT binary patch literal 2704 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/232.png b/imgs/icons/232@1x.png similarity index 100% rename from imgs/icons/232.png rename to imgs/icons/232@1x.png diff --git a/imgs/icons/232@2x.png b/imgs/icons/232@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..35ae3985ec9724801418890c9703f5b298bd0567 GIT binary patch literal 2121 zcmV-P2)6f$P)Jqg- z(nz#HsS-ijs7*p4n2^x4P0}=lTv{3k=3;Dci~--)_S$pNALTc^Uj$ApW}0URuBjTlzsd5sS?Ehh0yQ!tA4*<4Fm#;l>5}{#Q;J|L?E!n zGVe$P0s-YpjuiZ_Vx?S|c;f7#hPPjRcJ21Z9&^lbeJVZ>SYr`4pqmqWQ!GgF`~7Nn zcenAgA8cBm)3wc=U3a(&ZEAFIaBxd~eO-AXWsFQu#eVe2A7^}!3Q5)Y7+@#Raa}`kw<@#1j2JX@>T>WfVuO@t#!k}*#X5=?JGK#kV~W)8y=y# zr4ED*sd_2$EgFC0z>A8esg;J2e<_#A4`zh(K0~o}G&eWO&W^_1pWgguO4w}Q+p*)f zuLJ@C<%uVrFmEbAN`#^a`O7CCxou)Jv|HDWPG5mH=kdDK+3B!!Ijm|;Rgv(PR>_vG zjT}4tmN<8+hjcn_w6->?zREiK1_l_O2+`Ekh}|L(nnrjw7Y#=HYqxKICwZevTcmujf3e5jnNFmPSS+dusjGRzuvnc|kpXC+Bv)P9(pb}NcR0R&@5a0I&Xu=W3PhCBLMMun=lG%HY}@q~uOEDdSDx>tqOF1T z>+itsXuz#rCY8}SeQc1o-#@}{e)k4mn}Wq+ktUGM=1iMSYoAQy`mcU%^G!&9f4=}| zYiZiyaad8vDVf+LiA0io-ar)|zWmSw?0Mzqq$WZ%lz4GlO=_F#X=qu)=%~TK=`-xw z^H=sBc$b#yQc4Ou*fpy_C`O6Lp*m&$TT&uA=e6OQfbQ;Y0}!vj_1=di#f68HiHOp3 zs?WS|;S$fk@Mn6@58?JWscEXDadjiLi;HP*tHCfz&~uk*=~%+RScd7)1a^m;Y(9@+ zm{j`8X{sq#yjB&NmG=ul$8o3xte+Bab!2{j>$;Y%&gG75USl$x=UCr3v3QE%iy`uH zfuaj67ANJUrMNXO4tot#!BKX?M`W<16)Ib2%`8L?TH%I;+g4vU2&V)~0*z zx_vW1ef^ax%o{{f2qEMTAKtL1*jM|FoS_&?mo8J!esY1+CqAOQz(JuyW$ng0(G?F3 z)r*)II>(+jd-%skCkcf@#1c8Y4uQ+z!mfa3WHB>2s+$_9Yi*X; z^yh%owLjUmZQBGOBQr50GMg}4mv`XMOl)SFrpCn_J^C>{y@UMz;D;pBCflESl+pq( zCyxG$GiQUewKn5&%~D@ejb;^GxD;e`GD>NIgEM0hhN7p%==ij(^4K)1kZphu7`Z0k zstHf^ja<5K^H&v*+hx3a_z2n93@h6ksoiiVL!;Bg6A3DO<>niIIiloqIzI;^M+3WhE}9%2$z(ghJMt;1o7JkJIg< zqOy!LgQJ7qLgz)@UO0a4li`yJrrm@r&2yDC076PJHbAgfvxi>}KyDdlZIudmdzI2=p6gszV`G~x1ioZ478c?^hi zW%#H-5I6-40s4)0HVs%&S6%*1MJV?Jm6^y4ja3!IW0CyDaQfE?$!ktHp8`AJ(=@e2 z*QL`m%@kmp8#3v+Iisp7VMVdV^7(uWm;f?2;JpTQu1B?+sy@(AS$1eyU2(G1WxeFm z)MtU!fMjDPTTyl^F}HH#&kp_#o`7?mSJu)I00000NkvXXu0mjf?i3E# literal 0 HcmV?d00001 diff --git a/imgs/icons/2330.png b/imgs/icons/2330@1x.png similarity index 100% rename from imgs/icons/2330.png rename to imgs/icons/2330@1x.png diff --git a/imgs/icons/2330@2x.png b/imgs/icons/2330@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..54110d33c3e3f4a24c996810e398686ad743be60 GIT binary patch literal 2221 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2332.png b/imgs/icons/2332@1x.png similarity index 100% rename from imgs/icons/2332.png rename to imgs/icons/2332@1x.png diff --git a/imgs/icons/2332@2x.png b/imgs/icons/2332@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..aef3a094f4e0fd10595072824ca482e9a9ab3a94 GIT binary patch literal 2239 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2334.png b/imgs/icons/2334@1x.png similarity index 100% rename from imgs/icons/2334.png rename to imgs/icons/2334@1x.png diff --git a/imgs/icons/2334@2x.png b/imgs/icons/2334@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b48d025f8ed95ef5cd5b0f9005658963f8f355ca GIT binary patch literal 2301 zcmVUtj3joUWxZ4tN&1T)65B|LRqHDCpG3Y=8XG~XD))bD`3oIc-M7&y@22;B6pd;V= zuYB&2jceCv%rrUzflnLDr3@mfbGbmx_7VU{=T&mt{dV{K%Wm(o!9fQm5-H3GyaEU^ z$7cut!ju4Gpas&bQerP4Ez25lK}`c~ zu~@CLEQM(b3m$A=xwwCDu>8Q0Beq$sp7D&f#djOqzH!%fU4fxAoQPp2m0>_72s8_l zB%|J7)EJGN~Jqq>bko z&9|R^;g=^*9t%%#0nE~bycpN}0~1zxLSgct=4o1+HyBJ5#Zo{t1gwQ-Fqw45mwvi; z!OPD-MgV|CL@Fu7Ei6l;A}M@Yh)CXv7!EkcNIaU-==FL)UR7d3nw!b@6#*7gvBn?I zvL*x4+wNOmVJPI7^MfNEL89{pGe_$wN{+>1=6RK6-#UB#Ox{vp)J}%|hUzk=sH$f1 zgiJxszFd@Lmyi+Ipx03`*#$x<6n(GZYy$KNj;AcPlPIkkFHnCy84pMv&CNjBzOi7XDcA;*|%Bm&nnkq`N zA$R2P(Vo*97Fln=J22#mL`2%8JAKi^eSXEOc!FW@jD;ZRk3yl{jO#YuN2->ujl|=D z$Soa!769j4L-}_yW8o*audU4`h$)@r#o`6?6B>%K4m*eWs`BcxXC9kx6-CirXr@V# zS!H@YJ(C0i=BOB{2t|^iXdG#Zp&>Bt!;sHM$HP$$0O(r@AkVixFV}B;$X~s1VO3fZ z4SLKoJ2pS=9y#A%!6Y;W5GsX=>%270n~ANqZhi zNMbD@C-Y!0vr%Kj`dE(6ZK}E?gh(uyfGBoYxW$E-}IJ!NrfR54PhskKx6&@QtnvIV2esAYfY)+Px zEHCf~L_=$6lm&rFjyv7?sQ&_7-4(xrnGR3@kU!pkb`5JZo(wvN-p#C7+M*!r?Tdvg z%>|Zh#2qO}q}0+whXzyty^M(3{{EvazkdH8Mt5MsLor%CqhW1`SKMj;@Mi!J zn~fZ1&Ick=gb?-Jz1`1Q`|0AeRKwPP6&uT+{1 zuRO4I>lG`Raq)!*g%{{&!p7JNRW3065lYEg0?( z_X4ApLC%kZ93KII>!+f*9Jt;CgmkHd5JW`XL+$Munxc*0-Sy&%KrCSnr&5X5I~K*v z2L0M~tLyb9FTh9s4s!hRH1eB*0suI0-~f#% zt?WD9+p+tN*Ej9^&7Q?^?_jpNs{ARPj;)wyHrv;=w&IGGJNPv#SAVp;u4XVMk^LLC zKCw#>gvn$w=>-_c;Z>{EnNxd9AY#4KdFB31n>LjKKqUYa?0(~=M;xO=&IHfDiiih! z348w3)2n=Z=G=#=RB90bl>h3ZL&v)I?R#;mh}$Ba?tmanmK;B_*Axt%)Ba%RX2WlH zKhrAavPFcC`wBR%MNyO*P6PXuRO&(~9NcI!nd%UcwO9@FKk4pX4FJ&5(J|*d-wX@@ zK>LRFXk)$E{??x7Dq;~K`-gWv)^s2F^3vu9x7`CkJtE7w1j8_fin20c?;rOCIZn4f z5DN&yWy|h-r^IISTFcAruC=EoEOs5^G- zu=e$x+1a{k<+i%TOD@*cHNN@imQ8)Lq8r^k18c2d{6ey(Hv*T%mA Xdp2{6J`N+d00000NkvXXu0mjfP;XZQ literal 0 HcmV?d00001 diff --git a/imgs/icons/2338.png b/imgs/icons/2338@1x.png similarity index 100% rename from imgs/icons/2338.png rename to imgs/icons/2338@1x.png diff --git a/imgs/icons/2338@2x.png b/imgs/icons/2338@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ba5b5170d10939a54a4b886bdd73706fd383dee6 GIT binary patch literal 2883 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2512.png b/imgs/icons/2512@1x.png similarity index 100% rename from imgs/icons/2512.png rename to imgs/icons/2512@1x.png diff --git a/imgs/icons/2512@2x.png b/imgs/icons/2512@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c26c451bb60de39be6df1b0752d23ee09a611c45 GIT binary patch literal 2593 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 DA!qCO literal 0 HcmV?d00001 diff --git a/imgs/icons/2526.png b/imgs/icons/2526@1x.png similarity index 100% rename from imgs/icons/2526.png rename to imgs/icons/2526@1x.png diff --git a/imgs/icons/2526@2x.png b/imgs/icons/2526@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8a463fd147228d6c3842924ba795747e921682e9 GIT binary patch literal 2127 zcmV-V2(b5wP)P^d&QizhC zNFU90_WtfOcijD_9QQmx?6j1CAF5KQ8je|2e8+k1z1NR@ zHM=H%yxpiZLQkpmnWjBDI(lI`B!G4a|6=u_M;^KVJNb^>?R`D#163GmG7(p$1Vc6G z>$!pj(-(diknGKiuD*Wi#ZqXNi<_$T+QWgSe_sj3oLx8PUc#SGmCMy_Jv|-}N-4uj z0*sH3D?*5H@7_Ch>M`T9$+#AQRD;kJs!SlIMCv+i+%vLjXmM?o(8Oswi^4IIC!y zMt5!lLV_21R2mgDEymWh8^|xG4I!W-rYoRJVr(=)He@utxKNhOrn$5f>nMJ3>!5Sw z$Ps^Zbo7l8Sap8aU8A~@7`{i<^;=r5FFn^%Po6wZGL}F$6l~99q0*pPt)peu64NA+ z1m%K~Duphl)n>6$(Ox@yrts%KJUv~QJkxB}OgS<*=sf=TaAIOYdGNspqc42r z)7zZ3`

UH)k?g+0oZ4*7SE%Yu4%R?qPV_2!0sQZ29=1q!H_5Wb0P0?(andyht+F zv^cjk#Y|yF&P`1+bLP~{-wz)C(b4A){R8wW_>(~6LI4Gb?!SM}m98)UxUg_;olq3n z)tM0;U7hHO1ihWz#0-N}HVr7W14$$WBHe>f4K{AsPJe$dg>ws(D@Dq4XQ&mI_~-M_ zV_9uB^mo;sdG`6QO`n;6IUbKsJC0KTB5egC8Xq4wd_VYgDxF$at2ctd!L^!D6awGJ zaa>}mPAnF~h{vc@O&lo+qllCjkjVD1xL86eDxU9QnN{lL3a=bGj1e;^%of62OzFJg z`fDGUpDy0#I8Je80r<+;#Fz@OW-vLvW!uou=E0#rs%Wu964i*~g#youFdI$Er7DH_ zMM~uoty+avwaQXq4##TIY8Po)4bIKaa{R?Z%$%KKbLT2|AYUD3dnE&2C< z_?j^wJ}@w#0cgYdVR3*1sD?f)6d^w_daZor)ngRPC5DH0pbDQ>+h%F8LSJ7GwQ3dH zaX^toktA@d)XQZYA<>N($y^t?t{!ro-P9{(4*%s@y88RreAU&`Zd7D8n_Lfcrcx;l zKp9;rf^0k!n6)~wM1sBd?j@7!dddM)ub9@}jp;jy5ISsmU z9b9?kRSa(0#Nx~(e|_>dJoCgasaJ}8Xy+~}i)9vO3!)>F(E-D891W1?mthcuhGA%8 zW@eIGc8>F{hri2DfBs_*K6j9Exk`U`2h-C9EZ4$!ZM+an)5NhHR9$EBK z9QA6M(AVi57@#-5g_mA9Na)&h_4LTa*`+!V*tYEhXiq&=ivZ@%7Jn;M@nuy})kH2W zhc=CfPuzAJ+qZ4x=+Rd=e&QsH#S&)Q#I`MLKf-lfG$Tgk^b|6ZB+?eKWEx>wyl-@b zQn^C2QD<)Ql+16~q`IyXO-;`p2I`ecrG0)GN{J8xdFP#VMzNSKdI#2u z`MGmXOdgy1Svt+%S}jWF&jKONZ$yvXe&@&Yd7*qs6H2UHH>sOuWIGNb3PsE?2z*~S zwu9w|_(6c@2e@_%+x4()O9rlw<9XPYClkrIh-FiX-L#{Hx%nq2kInpqILCJF8n5o( zzyI}9@6B8B=kMF|kzBUpo=hrrQ>cXLX0u77Qo}S&thSBSZp)S*NlnY{1&>tz_~LdR-0tffZFF170| zKN6ztJAMNw0tKK7*l*?Mk^rl76B82x;Gu^eiljUrF|h(=T<|p#2wCoSmhXayxBYu^ zc?m!Wv3wCipeSOsXI!4R^m~^z{7!)`rFZeW|F8do{sr8SK(w)=z2E=<002ovPDHLk FV1oVj4w(P| literal 0 HcmV?d00001 diff --git a/imgs/icons/2527.png b/imgs/icons/2527@1x.png similarity index 100% rename from imgs/icons/2527.png rename to imgs/icons/2527@1x.png diff --git a/imgs/icons/2527@2x.png b/imgs/icons/2527@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5f0f58074f6ffcd8d74177278859f78ec03338e1 GIT binary patch literal 2132 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 KMNUMnLSTXsAQyxH literal 0 HcmV?d00001 diff --git a/imgs/icons/2528.png b/imgs/icons/2528@1x.png similarity index 100% rename from imgs/icons/2528.png rename to imgs/icons/2528@1x.png diff --git a/imgs/icons/2528@2x.png b/imgs/icons/2528@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..436fc5990188ed8a5e15c6b044090ce22f21bfef GIT binary patch literal 2301 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2530.png b/imgs/icons/2530@1x.png similarity index 100% rename from imgs/icons/2530.png rename to imgs/icons/2530@1x.png diff --git a/imgs/icons/2530@2x.png b/imgs/icons/2530@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b136984fc19ca06fdafcbf7f3f93f304f09b8d2e GIT binary patch literal 2871 zcmV-73&`||P)e3k8a?+dy{DIiPSV*3&7uh?K@t#QAQ_Pn91(%Qpe2lD)i??|mdngwDIo(YSZ)Q1 z;!xs(-~>gKMUW){gd~sQc9Wcg#DJNsHk8mrOdT!{r&x> zj*bq~b@yLK2^l2_Z7@ZDvYJO5|U{_2VciD!z-Nrlw{FrSxM;sgEj@Qkl|dG)jYk01fndsn_kH zjc4jEv>D!Z5N?cF&AP!dnCV0rSmc3lxW|lU5x%$h5aP$@s$Y7?C#u_ThH0U=fYRU`#e5 z8V=J~AWB(=fzx%7>FVmj#*G_RRG&J#8sCzWE6?i-pp>$Nki_0yUo06ruHfyKbIsbF zpM5SjH#M;f@4JtTFPebttQ_>Xx>0kg78l#wkzq?iVbKJ1_c$>a7a@j1Xl`l*tI{M! z-jIjUH{ZsH>~v3kwUS58r=pnaAy3-{ElK(WQ?n z4X5jv58rzaXV0`EJ{ZT?TMF>dpO>I;@~ud>rDI1$1tdvAJQ74Akw9j87KWr)K_P=> zSsD-Z%bkt&eEYE@Z@pc6VHqvWS0TStCfAF6)26rYpD^*ZkJi8b8vXZsA7FHTJ~R2Y z32-`GnE$6mxH11m?D%9mcJA5*Te=OCe>WNbTD1xs%c9%uLg$56xH`IU$>l`%g+>Iu z9>o2<3IjrPys9T>O!nB9KK>@yvLK)5t|2FckVI)|>FhbP@7}m=>sFj?X$0X3)9$zk z!T_n(A^3XVZn%4#_~SjZ(caOCw)1WH^0Qs&=;*-e7gu5Px>s?z#|4^@Ac=#>fCQad z1zV1lVFBt6O4;t3ra6RQ^TzSoZ;MJ0yoJ__=i&GJv2E)o$jZ(^cwhilvl$~Y zZAdX1kY+I8ky4%6f?4wxl(oHEmi2Iby~JI;h?G)1_T)3qT=rZx=H-t`Or2W7 zo~W+HgmHyvIDQg?u`pa+F8I75s5J(Vgoq)@1}tB(91EN3VKy1jaJm7rN=hIM5`9wjet+7e&){x*MQb%O(hfLpn8B`Gg22Y{jrE$6i! zpBsk`9V5NHUTC#Cbah`MYu3DkzCI7O@Aw=uXWfm0aiejrxd|qt35t|}TCD-EQ6nKM z&>8el>s4T=toDcr#%Ugh6YXxiyJdHb4rw!FmeRez41Eo^75#^KY;A4Y`na74eY~)f#+55 zUcL-lW;V1sJvfeIIgTScckRLFyLKZZEk(&2W;5jv&oQfbmgqYNH2}aB7Z+0i;CVi- zH6)SQcg<6#P5C`ufBh9$Oh#P1=t3kI!Qq34k(rqa`|wdPTP$QqS|&c*xd)?f97!Vs z{dCtCXBe~D3{$cN2J;Y5F@{Ju0w%#=#85korX+(}qmdO#*;srq*b;L12_fJBC|7#- zr_-n3@x;b=-YmH6cE`J2PL0uE!0g#G(cR;w{y>nJ%_d}JWMK8$wcw$GR;$6DJ$vZl z#SchlTF$HYeYFq0J}-27J!F!AAt?zaiwS}dLm)6f6+uV{;-I2XWdMK-030ENUMWCP zO6l^u=gj^5(18P*+Y^eX*XK1(DK62E89R=wUR?$i&(g-GCK3)tVAL7V>-Ayyh>?sC z7u1Uu%!OXVLXrll*_ebFWFpHlj7d7A46&ea@>HtRYUvBBUtt~H-C>)}rt^3_A_oA3 zkVIu=B}WL^M=8x4S5){afimq>^$F>-ZU1rmd_Hw3IAD|$3I2CervV^1eBcOf89x@o zhGk>zD{mkx%Zf=8CyKHxDc009ZNDNRD=P#<_JhN2y+8xj5?&x9k4#-1FH^r%S2Wvf20b{=J&MzJU3i zx7M>St$hj2=bC9S7$5-XU;?E5LVNUvQ7&y!VIiR6@XfJGG&MCK8jGVp7-Cso&1iM> zKp-T#uN*;)13=2k%J`w#mgT2T?pxY=zR}w4=!9CEgE!W1>PxfPVk=gZ$$we)g!PU) zXGuqn9gqC|pU<*h-zBvm2>iYC=7M2466g=m_O^Cb6ysW#%Lz+HDnwbN9H$U_u0ktwA%y)9cN6@Sz9O z?kk;}IC-j0Ubbv0UR<-5E1ps;L_^U)b?wo?M;?86P@&R*C=2`@cg|3%kL`ghIAFB_ z1vf<$qp6n(3A|!7+oZg_Q5H#3!h#?~01$G`aKNnJ@W#DK8uwp&FLh4u>1;u#voGG_ zYQ9`JY101O?3||-E?j)!yLNn~8&UuhA9`r<;)#>S z&x?lqX&0J~<8)oM2u{m7-C)AO5F?0^G(0Es(u^51FlAavPDW-1qA`J~uRD&d+ulci zR0Sm#QdlCAk#@7fu|$bW2`)Q#6v?}30x~i)(RQKd@z-8??cHnV0a998%5UGkJqdtW zr%M{O+2p&9^PKQ)pugb)>gloXSG z?to zQKjLsPjGtO-R;M!YU;b3&hr3z0f-#OMP*sOzJTu^OEC)^u}mp0y7_@cb7mXZ_WO$p zN2Pr9$!=uWdg5v+&P*yWklocc@|=o=R+kBLa!UV!qrQeyC+kk1ZD=?Szylzp(^-Q> zMfs7cs;U?vL?PeWxt|50l!9d$swflym}!&j`OhqW;c;t- zAG;sGPym`Mo53&)2>Bkz)j#gnp{%UzCygh|FjxKKRkGjSp#DGzLn&pi*th?S@V}VQ VVL9G&_@Dp)002ovPDHLkV1jq!aEJf^ literal 0 HcmV?d00001 diff --git a/imgs/icons/2531.png b/imgs/icons/2531@1x.png similarity index 100% rename from imgs/icons/2531.png rename to imgs/icons/2531@1x.png diff --git a/imgs/icons/2531@2x.png b/imgs/icons/2531@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c399c279cb9c6b8936eee8d4ec3ef505819438 GIT binary patch literal 2125 zcmV-T2(tHyP)?)MG*;6oI@2^}9BVo{Ri|~P$#jw+u~XAY zn`*1M*fN@Q8rwz1OHuI(DjJlFqFm&@AmReMTz1*(_kE{70P84L8>fFdd1k&J-;Z;i z%X!avU*H>jgXaXLlswOR=D#Hy{}@UyaFkN6tgMWslyX&7RXnAXvsf(b^NN~`n4y%i zlv18js_5$KQc+5U@&8Fpj0<|I!DmrQ0MJJS@c^QRhiw8!nGolQZ3k_+#^MZQ1AI6D7C^Ye)~|l&)6{s_ly0thn!6_u=QD&9$Za>vvMVdjoTP+NnCHLD#m1*VsS1Mqz7-y) z10$|psI`&MYU3o^y*6}N+nFJIF9G$yF*qp2Mknq#bl7s_%aWQK0HjBGI0_K*NW=h8 zwhasbxud3Z_L1VF8X45*9lpzU+_Te|*f?fp*2^?{iV-ooXpD>upuV=0?P#rsijk<( z>5@mhkR=&h^|h<-^!1Hy)hd;XTt45G@w#|$9Nd!<$oX~y1%R(^HX33L23p^KkNx}c z3KFX2NT@Cp=l{8n1O){lC?pC?Ui~Rz;-{gm_ByJX+DP}ke&Tj}7{A|7U89nuR47y$ z6_@7p`K~;gIyaen06?CJ0zmhDTZmevCdK>fjpn zqouhC71wSSV-W&DFqU)l8M{vr4l1g$0XPDsn;YlM6I;hhtM}Pf~5;*Vdb*9 zU|9x(!ycT!cpJ^_Jx~ZdR7wE~l@=P60zA*c7#D%GEA#69Y*#+X_8;S~OZ zfNj)bv9Ly?Ngo}q$F-V9A_xL5UaH3OMH!fxHXW;1%t!x_6GH>N@Or#s`^yrj1MKPYMqs zG1dT&$A?gTFk%hi$bB&#L&HuuhP~ie1_4n-WSABK2>@XbZ_rcQpqo_R>idC4;6&%p zP!FZF89*<9zQ+VmN(muE0-*WB2k$OON{V80mn@~Zy^Ty{L^S$(?&DBNIn3r1951Vd zMx#b%ssV0~6C5kT=W*f}TYrn59xHb3+y%c#VZA>nyWOH7D3nuuvR4CHjs|e)F#(iP zQdCsL@BIC*muIG#HfGJs%C+^|aO=hmNyU4y?q_SDvO8Fx*AG{~4V^|nbGHqGf(OH} zkOCs+&0BzkglY2o+Y2B`GNVxNa*$dP@OaTSIOG}xXn^M#M<5_u2_f>s0tmwpx?#f` z`d5}N+Md10l)C@Z-FWN0J>rj6=dq4q7mACE#VxD9OV+-c%h)_3WfdxN=;(3qLI^^% z0(dUWziHz}`dQ&;Oux;>1qW-zmL3PARtrLUYUo^sWujU-?Pojh4zvPrQc4MV*gXJZ zHk*?#UpR33dgVFa$9uk1y|#99Y+PIdMm;`y>0%iv-1Q+A&zpg78DpfBbhAG)JcRpj z=O{2A92cbvgz17*#`wsg1#?pOhnsTpmo0mJ zZph>bC{)m;l6u=U8ZGo~~9_UuF6n%Bs_ zLQCLAr_CcMITnOvSdIz!ydFhpNRWbI1R4kg5EZ7N9LLJRIvtl7ABkCMNzkZNcWb-k zAMV<<_a-+^&H#`qFP>O9Ej4+)-{WzeEIqlKxAg7B{R`6!Naxn z*1BV-YFf@+zSSfGVE`f~YJleCF=20kQ254Bq9bq%|l zYU(?#o%!?e8-pXB765iZ5PWKm8+5zf0~`PlLg<@s&Ln&HmN#@a*PSze{Pv13_Wz~R zV2Hl>qB$+oH8SX8L>E6J!yIws(1{aj0l_Uztqb(QYGQgJMKSDjAz|t?P8S@6_KqeW zs9ZHLGQHAKS0jFYu;N(l)ylhPkACo*Pj`Rr@C4YSn}7A5dB7!_ z?)MJ1c3Q2cijN$rEIC(k8-N`EC4`K%TS`Ic1I`DfM*ye+xB(z9FOMxMDhdhKD3`vo ze%T*0QWD(%XTOO32rr!k=X&`;br(lgxGhb4*n7|0Vtf)|tDR+Ya?m00000NkvXXu0mjf DYHI%6 literal 0 HcmV?d00001 diff --git a/imgs/icons/2532.png b/imgs/icons/2532@1x.png similarity index 100% rename from imgs/icons/2532.png rename to imgs/icons/2532@1x.png diff --git a/imgs/icons/2532@2x.png b/imgs/icons/2532@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..538dc7cdcfc4e24443620cdc57bac81b14f81466 GIT binary patch literal 1603 zcmV-J2E6%+P)0b*5kSEyJZQB)NoI#3A^?W&bU=)`##KgXW&c<#)7e2>E-DPn;<1BnD@br0~qrqNqYj zDN3`nP$&f0-rXbzcs8>;U%Ytk7dKvcB?G|Y?5lAKtE;P$1%HpEyeeV2R;xx+Q*~i< zj%uX>Aq70&L;tu3`}ba3U%v^U^AO;~a)@yN@#bczb6U{Wm9;jJ1~Ca?a>FLg ztszo&G|KI9oEdh)DbG{G{r&R`3l}TP%gbW}9IKFrp%Cc^qs+3_hK1S|R%d`LAj@-X z?d0&3!Z1k~>_ndQr4VA;v;Ep|NXerB5CE=9sXED!oG@gprQ@Lh0q~_ok_dnqhBb&S zj5RQZ0ifo9lC^ehkBu#XDHbh&guoC0=%Gm>fSExcl*16Ef)6Dn{9*`Z9&7hQIVl4S z00##LM)^TXQUHQDDwYXgD5X%Z)&S{20FXieU^tUmB4Q%qIcw?fj{pEXC_`qQ?G$_; z5a4np;$pE#VGyBEC?L%=@;pbD=Kvg%_-Mk|AIP{=(d~9SgEen^g}?<-Sxi-?5fn=B z3JTihFry({mLRhUvOMQpYeUYN9N;}E$L@h~0Q?z15%I4a)1RXt5J9QL03k_J3r5QqDR7{x;*S%zVf zGU-e?oxC6V>Mg;-_{>?O(XitH#*PU9nwgmiYo*dG`@yyOkDdKSn&&}LftVRdnvl-4 z>+bLT#aF83th*0#>rROEJ9q9J0x*w~0RZ66>T1HiKS++dKOY?)yev${ffDSqh0YVL zljGk==9^&NBH$jZ-5iZZF~+RnNizTd)ND5W2&int>0-n4UOM~4+$E=T_ukI_TjYDc ztvDW8qT5#DZ?Z3U+uimMz}OOuUBw>)wA*b1RP3i_)HR!=!IP(_?$#UC*;DlaltO#Kg{l33~tl`{nZ43qj$>ewGHY@?I`F_mvQa3E3*7l? z3*ak&oY3xA011FE%*~^IezNdh~J39;7s7Fr@#3`;fKCJ^1D=iHvqpd zKR>@5udL9d!JVkIwzdWm0!C+z1nTCcdbNK$8Qs4NDn9e6~I6Wllo*g zKI*b(Hh`enYZS7vbF8d(WZ{I4;eP_W`ccP^zZ?#${?tyVlC;_+&_4*42?sJJ3ygqBv=X1xO zjTE?AuVTA368xZu!)!)5%fquiM)_JjyTGm4_1m=FJ(-u98Gt z77$b9s9vwx<@0B`S@iH+&7W=vH+vd(Q7gY2S{*u$CfYG40<-|L2FUJg=});(Z=BBJ z?>i-DZmH6ZcV*^OOycp3;WEG&V6^4=KgfwT zi_Xb9*^)N4lgEQTThrJzJiF(xJ_P*%j8uC%$;zD^6YPSC(sXHlzO?V#nKY%PC7XO* zTh~ndVrNQlKZle@_Osbl~E002ovPDHLkV1j_j B2Gsxn literal 0 HcmV?d00001 diff --git a/imgs/icons/2536.png b/imgs/icons/2536@1x.png similarity index 100% rename from imgs/icons/2536.png rename to imgs/icons/2536@1x.png diff --git a/imgs/icons/2536@2x.png b/imgs/icons/2536@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f93da8cd6f0a8aaae679a27d97594cab992760e0 GIT binary patch literal 1538 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2538.png b/imgs/icons/2538@1x.png similarity index 100% rename from imgs/icons/2538.png rename to imgs/icons/2538@1x.png diff --git a/imgs/icons/2538@2x.png b/imgs/icons/2538@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8838454fe4dbf106e0edc8b5468a2635cb66959d GIT binary patch literal 1356 zcmV-S1+)5zP)^Ihiq zph64{4as$%qEeoXLOXI~$iEQ+d1sSbvG(%U2KGPs!8`G(m{LCrFSke#uZt<;z}bZ7@~ zp#n3GHPt-j99Qz7@}Sh5K0ZF)AOs(6zi;d8y?tHT-Tk`{ zD5YvW9?vZz-N2Rc&=B&y_psyfm%`c1;&-9O#^!V9FI5|ce?dwS?zv}+mCdEh%fC;5 zHa7b6Tc&9WK)K;|6|&J$Bw(NaVd9zVOE)`%K|h@x9qQ#*o{JW98BUxy$?(W1x~{+3 z9Bn=}cV+Gjs~ut8iQ82h?%DGQ0BzCDk=~xDvI=(LD@x#w!VD;JK{TBal1-^Qc4IRR8yq+>u8hl_$yC8W*t8};Y}@PmTi=^oJu#$Ur(lD z?X6l+*GI<3Er-U}0(D0K_4*qJO9$V4)%5wR6&~IPG{9F5vD;ao z*4b7SOZh#U!kaidK32RkJ*~pw2wIKSACJc^Aw+?@G#w>?rfCm0hnrRRwr-{S^`a3l zO0n*!(*4?xjg5@~$GK|(<@`D&VEbx(JxJ8t)j8XzS66wZv{uq-G@qVGBob-I*0q3g z#<2j9UKuPD3c~C4iek~s*tTVdLP3nD*}MkeL$fs9CkyCA$ZBV2#{yZUPIApe10% z;Z$qtTnTVeur*Lu7geZ&L|z^o9Fz!5;F{q#tUz5L2J}cNqpa3L8!!os0q1~=tft{F zxR1apS_8F#Y%Z4wMg~(^y(SS z@LdA70WSc@5sc`ydKxdYz%XzEc;Y`Ea9d(ms1Mc09^Cs-YoNYX0dEK)20R|m=P2Ip z?dx6cf4D#5^?Jin%5mTne-EbHMxd-c-q4JFLI~;e`3&HqrfDDM^Z9w8J(tUsgb-ND zno_p<6v*Gnc_jz}yIF0gHLSH+7qA`Bo%8>HClErgZrI#1_y6P075)TEMC7!+b0cK{ O0000i>QBeQ(!D!I_q(`bc%T`z63B1OVcH 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 mf1lA;a29-w1HR-F@!tW5abA?dJ|Qyz0000%x| z^MC%&|9Q@Ho)_kbL?R)jlxUg;;GQebTp$1q=mhQr_5f|AciMRmo=7AlP}AGi^y=1l zzq;$z>s3pAa0fs<9zX8_q!5BCk0;u;I6Cm$V>^r&cHM7WwXXYhKvPOdiVj&Pv?)L- zr9@XGGA1-_ayofRI&jOe89g5k;|7#XKKqEro1LY{Ef4P4lD~8N);tga=eK!EG0hwe4OKky z@I&l<_bah#-Q}TOyAmj+EPoD`1S}jVHkI4$3K^!L((jV>u{uKGYAPyx2q{G-o2R+C z$(=bp+X--QB4Nn^D~E&-QYmH1%lnocFm5P7K@K|zb z)8gpylPCW2pOfiFd!cL}=)Xs9aS$m0r_1S%&gOJ8oioI#(bG&$rqt+o+MJlmYMAob zMHeheZQ6XT51^@|Gf$;-l^LJOi`hJ4G;RF(>P?q; zckcYF2C!}0HcP45nOv@s6F(ZC96VCcq;j}jPT}`^eKi3$BR@h5(psxv`92sv7)^tlP`#DSJxkDX>QD~>giN|Upd|ix9^rMn+xk!bsq*Gk+4E- z^(zocDOJ99ZTFk$(PW*T&o#`C#hkis94vF_v6)nM-uU>`@z&<0C&wo;*S)vzi{S*w z`)vFZtUv-zCv3QJ)7q)Fr41=y8}Rn(?k07`B^^V+{GXluMG~APSv&iHkeZgy!_?ID z>|}deQ&JQ3)C9c?Bem5Gd^0$xlu8z>g$V?Kg}_o^5#anSQd=>PN&uw ztqso1q;n&oU?t(&+OQBptFMo_0WU>2!hj2y;VgegTLOfT3XtA_2h4(56LNi(E$IIg zMwVDzr~%lROeTAPE}$Cl0TsZ4l9*q?&KwY+s4RE*jvX5jM~-I1_aoEaNlDq>j}KAq z^W~)^Rwxual=cT8LvdT02LAC|q?R3spP9!F*L0OXpqx(cFp@gA%hTW0+=yo6Od+U} z#cZRcjKe?xI9w9*t46de;I)zo6Vs{54VSJnuI#(;I3{%hd^c?9ptGf+%rK}Bny4*h z?JEV`3k>p;E5Cr95|~1Oq1b=$&^P<_>~sT=PiM3FzwdsBLc#nD$mqJ+4txZ>0h|C* zXA2JY*K$JT<<-lUFI$qz8VcwIRO{kMa{bDdi-C(|(e7t~Bfl5imViBb;!-I^Yu5$$ z+`M)D{0gtD5f}mP)b6;CISWm0s>xME{KwPHEM}v&e5eU8)X)oTeE4Ky0oEYOU%kz zZN+k~wS1+Po1)?yluIHq!xxx}2J)sDNJ_li%YFKT%W|f~1+?$>?Dxm>Jm-AR`JLbQ zoF5Dy!nytzD0dNgs2FhQ1^7J_kGpqURVk&Wva(Vur4&H2R-;w}&49^yOu4^>(S@Q> z#L-VTtdx7VZIM2no|_N?3uuOAY_Lrs1ZJ~Y`@zOFIkM}(Pu!;q~WF6i6xcfWuj! zqecKgN-4?D&sV-aT=`x}N$E^g$f+~T3I6q08|BF#%RNeu9!u+Ntuwmnc&G#bC@o#5 zSglsIPxf>NM@Bk&H12ZAn)RYv>)%^c^qsz<{K$g-b8FS%5*ZYhurR$4g7ird6K9$x zw3@EG%?M zkcL7)0Kz9G#*q+Yu-I)~xl zm#lcsBD0c0d*`N`g=a761pmW*wOdei}PLrv>7omUi?!7qdO^C zt*8J|!QLNP%rQ-XqSI-1mF@jZ9@_QsQXvGYde4Lkz?1&z$!#PYR6vCIYNn3!R(_ik z6{Q1Gr^iP%Y+1W>8=x4C`td*@;Nx5&KrD~~L~)NAaYZ^EfPAIRUg4$J8mg{06abZ# z=Pn)W>-@vIas85*_V(^TR3-zH=^xc50zve*>MMY4Bm@9h2hwhL*rbE`SW&x$XblSq z@Lc(3-eW+WyPI1AUU2a3A$9_5XQ##PfnVgnX4Y)bga8w7Bfk?*d-Q1RIVX*-s?%3A=Z>d`K zeZc*$I}a2iax$FDg8tVbaf;I&djmu1kpB_>202N!TJB>}WB>pF07*qoM6N<$f_1Qq AzW@LL literal 0 HcmV?d00001 diff --git a/imgs/icons/2544.png b/imgs/icons/2544@1x.png similarity index 100% rename from imgs/icons/2544.png rename to imgs/icons/2544@1x.png diff --git a/imgs/icons/2544@2x.png b/imgs/icons/2544@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..92e51dc76a5ecb9c61615086b72f396cf78e7ddc GIT binary patch literal 1664 zcmV-`27md9P)zP;JCwY6H*xu~uEsx}{3ToEWKDY0L=bjdhy;DGJW zp;xb%rnSQ5)N#7p+pE4)^^fs8<2k}E6u^dp7aRR{BRDWQsSf#kz6rnIALgE@#1(<& z=H`eHLN+!w8ee)$l#njX4k^8z9*=3kL_$qX zjq_eiH5SK02&9zmO&d1uudA@y_qxqVG4mH+2D}<0jQA{aiOhSyAsT;$U=GJ8IKyQVmSZQe~ zKFn}fba!Wudn)-nI=_l8|xuv`y)oxjj2q9!FBw`{Ur4&L+ai#e}Br7X(chRbq zZjW2HM#d&4>~_0tWzh=vi4z}QcXcw;60aUo9I9zJ9ky|wTg`rW)uSg~Kk`n6>Ts4Rx?5Yn@rfhH zjvrgn)YN3nSDY3k;P?AOQp)7dJG-Cy+r`Tl&Yb=DuOlNPBqn;LDzGOf``jg^j|8e; z-1TcsW77Y|Z-4Xt$q!%u_h+9awEVO66{b(aV%q++`uFVFv#qMC>Z9fP`E`JByWN|2 z?0Cj{Zd;j^lH?gqPfsy^yuUj1?dP}V-Lt;IX0v^Lp^eU02PDA2z`(^*r%qJ@LyDqc zbJ^M_1A$0JW};(gB=EV%W33z;9k+Mi?(+atR$^;v!UEA~n&!+#ti?p&?hryyUS6(7 zRqa?-u=MPvvNaO;nGj;s?bHpY>RbzGfCqR8SPd+X{*db;f2UmzGdDrs>*? zQxl>0bcbWJX_!s$m#6gb+)j4vTNqbtuK>0Kn_;?q-xmQPgcEqM zt*x#9&wn`+866$#OwY)$J+`iNgOt*#D2fUs10BFmfe(N};053%ro{-e(h<|8bk^_y zn%C+5RChW@9lCzT>(*Zw9~%L<4y*?*0>1!;fNtQAKw{K+B#N`ByCFoMVRp^_Qc-b{ zX}7D_R8?({I(Zk^4?GaHor&(eCoQfNG&D3wK*`C?uK33Gt=7(++fog~xTq*fI@4G0 zUjqG6+!@i`74KY_@w|+L5JFa0S9`Cv{;PlavRutFEj~DLdS56MnutUqElevuuF4mW z2Bc+K0+`rXzH!g3+x@HB+S{#2By!p?jLzA1abSL7Lt&9G?f(L?S6B85%nsxL0000< KMNUMnLSTXp4>qg- literal 0 HcmV?d00001 diff --git a/imgs/icons/2545.png b/imgs/icons/2545@1x.png similarity index 100% rename from imgs/icons/2545.png rename to imgs/icons/2545@1x.png diff --git a/imgs/icons/2545@2x.png b/imgs/icons/2545@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e9c6b41ca474b436a3f15981225b9fb972e14526 GIT binary patch literal 1449 zcmV;a1y=frP)^OCjrunC4NokkTj4o-`ty;&#&?=D$gj9)23<(h8WeCu! zZZCk~2_a1aF~L+JD3SJnI#g}z)NJWsU16!Z{>hRybGs#WmO619U&sH>;UOtPXw=tP z#rN%8-Sa!2-`{%=Y)(>2fni9blmKFrc0Q8^fFA(|HrAVhsCJVCl-JAPW5at+x3tEB zAH`GiFTeKYZXsn-D3P@OngQ zVPO%UJ7VRPUQMQKYg4CJ3otS=BBYdh#V((ooxOhH(v|m_yma}`>1_6lQc3_-hhZ~? zV;$`F9u2m3f6eFd4u7(|Jdw?2PQ_E^FXQp}+J;TXAPysNTmtgz2ls#ZS3f>7?)SQ1 z2zadF?;L%K(Zf#+)ouy??0b*(o;uu0baZr7R^ylx0HO7B8Zg5CwdW4hFAg5+Z7ejX ztWs+qQ=U1ejy_PA?;G6tNTj{#;Mmw$c?05}0U)K+fXmM2>VJCjqB?(l)g0K>At%pG zGSFTlGwF=^@`*pGVnNpd^e&9u(+J#2s5SHPTH{;OX)%5!DXvUTvMZS9?7Or4;5Qe` zzG$a>^678X0yOsw+*<$uH-s&pPr6L0cE-G7XLA6LDpBv1qc zOGDo2hKi~jfsqjag2CFD-|uHFUnFk3)WnAweP((|jn8KByG1^;l7ZkIq2bHJVilaba%FG89#F_`@27!Gy#NgR)-Y< zqR}Z05KnxV_HJ?0wJj`yp>#_cnw>fSPC0SwCdouX*mF0SdG9>KySn85y?qlvTCIPU9T8LnSX$by z0Ip3Xk}tk^a^~v$Qzc6mjM=1}OKZ=y+37e-OLqB%6R#}(^^FT30b*>-`5>xB0tg(~ z=KIUH2OEoCcojHO>q33^!LV|}u?>g*JFSAdw4~EPBm`(FWoB-rlsMEM&bCFYI@2^B z-Pa!A=Iu2lEbDEBRNMs8-{rc5Z0Hu6Dt6ulI4A{U{APrpn zUv{fVfdJ6ahWe#qO(TV(GK3J{+!_hhgtv84#Bc*`K#X;dBR~+ix&ia4g;;G0%H2Kf z_P_(X$t#i2TGz!|B6k0dHeKVE9-v7JnpqFO08RndxXW*vQviMJ*fA3jdi&?!nvv~1 z`1qmTFMZ|l`_s|>+OzqV@S%!0&T*ZUHcG=(*D_xML{)kMsY0sjj}><#M@xQY;p4o2G00?3)wb52mN5 zfE!9H!TR;=9)!KJ{_nS90m$RW*Y61%&+e>^%^3U_4}J-J>&H~I00000NkvXXu0mjf DWyI7v literal 0 HcmV?d00001 diff --git a/imgs/icons/2546.png b/imgs/icons/2546@1x.png similarity index 100% rename from imgs/icons/2546.png rename to imgs/icons/2546@1x.png diff --git a/imgs/icons/2546@2x.png b/imgs/icons/2546@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0e3ae64959979e464612a7d12ba5d14dcebd6123 GIT binary patch literal 1659 zcmV->288*EP)703VQ&g^^k;n>-=*ImD2C&p>gkVi{W8yk|8QiTerj3NP{Kolubp@o*Ov8@V$ zP$&YWf=C6Lhzdx7Sc=;Ul@_~zimR?-oYava*!BCde(cM;J3BM?@WC!cO>M6ene%0& z(ab%+`QQIJ_Y80cK}29?x|20-JNL@f^MB9W+S;lB!12R}zIFDAQ?m~rY&`zI_cuEP z00cdr(1{0|r^jD=k-u~D>oEXsA_Cr5W@8H$8qLek6RF0dnN%`#_^aQPbE!q`f&Kf7 zSG=&P0Mr6VAq4w1?fx616FfLNWe#4y=16819uh)u1E6ju06G9ErSwH2HDx&~Pd|9_ z1i3UPxqVuxl+tqpl;0eHwl)C(`*!bm^3?H1M$@U(-G>kE$H>@>El}h~C>VU|v6EjM zKCrv`lfcFdS%_prPd_agaC@DO_HD&(t#f1)q$pU7$1%IGh`LCrdq;UlTZku)0C;_9 zXh;CC3IQlY0l~}w(2~=0&S?LDRT~cS-}?t}b954UT}Qy_Frxj}&HBp7PG+XF$BuC! z$$o5=1PSaj32;y1Op2_tiK1VqTYXYvX+%<(K~YHV#w=sqdfT6RJmhr6izz z<({TPf6Hd|3qQYj>3Jz75z(4zthEIM0Fs%G9&P;gWO8ZOE4|k*E-j^goXVt-O)hXe zp5SCQg@m5X4NOeGl~UEbugKS8b1L6>=9x2rLOya$03zaWxTLPB@!$`?^o1j~yYH#3 zee|i*PJggOzd1cG%EBR`*zH_d74d)ea}Vv9n_nFH?)T1Js;H>E($sXsM?~D#*0v_V zS{`6##)B;n=)>=hJ>U6aXR0{3WguygcTZ!Z9T3?Dr>Z*KHk)sH)>l)x{n^gTFJCy& z^s)Pb;hL{SuU^~D%qIY3IyyQCz=v+dx+WZp4QG?d+?B<2?hlLUNsJFq|9*0Kf;68- zg9C#~U45mg>$8vtHJ?3`st=O&YwT;-e{iH$cTve%$YL*OXz>J zskU6tpWpcP>woI`S#y15+UK-;3|Kro9jEHMLJ$Hds&7dA>ca1~Qaf2~XcOJt-RSA* zv9OBt@5QQHz|83C>f({fkr(Es=3WKh0AMGQ((BXM;dY^ad=Y! z6gtq=&h5Nj`K<@Q01%Bv69CRBiXtt`LVeg<9PoOmB3w#S@dPI`IhZDcNYHOz_@%e^ z&A;pd&{baU+v0M;$qbRpVH$w38bBefSX!2)01&bH%pQfM!|nDixP4nlN(O{tI$a*s zXWw%9H=VEjsKjgE9*?D}$V92I5WH(0qZfL93jjvOuy*B2q$O4mjV9+qo4LIid0AglIL|RL8^C_Fl?z%a6v%+l`S5#rYlr{B#dzjh}ed7MZ zCb2r$H~1V88O$uO;+;DNSUJ(^=4108FDWZw0KJ*K{63IhE>B(OR5HyB_F;Jx+muiM zGyvF#WrG3lo7f9rKY*Ie1b`3%LVS4PD2jrW|HBQ%e*k@FsCN#VkHG){002ovPDHLk FV1j_ADhB`n literal 0 HcmV?d00001 diff --git a/imgs/icons/2547.png b/imgs/icons/2547@1x.png similarity index 100% rename from imgs/icons/2547.png rename to imgs/icons/2547@1x.png diff --git a/imgs/icons/2547@2x.png b/imgs/icons/2547@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..080f7120455cc960ea57d0018c92f2828aa5c343 GIT binary patch literal 1766 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 s{9j+hF!lCRn9BO|$i=iVmd}{~0AC(@G_h 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2551.png b/imgs/icons/2551@1x.png similarity index 100% rename from imgs/icons/2551.png rename to imgs/icons/2551@1x.png diff --git a/imgs/icons/2551@2x.png b/imgs/icons/2551@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..28dac8195a22db40fae8e73f7219f4990f25bcb8 GIT binary patch literal 2407 zcmV-t37GbYP)#=vA2Q+0J81x z+jsyVfJp4MHts+1khzM1nr^o7;<6P|*y*Oh43G&LbPPK{)2BgwnI1(DslJXrIx{|w zY8jto+v`74tD=(9?Uw{uQi}iaO*;c3^iyZO4!C1yKmiE-&^Oc#jhz=D91M9=<{7EBrY>1wp;f#x>Shi%b-bsxW$n>tCk+Ho zj|$ayRR@6pGP43!*;Zluu?CCFAG%AYQ!3-MYNb}Ml4iVqjVhMYShE(v*rW#{?l5E* z>lpjofhe*E@XaJgrEG9S$!c)woy>Kh(auttSja>FtO&zUNbD@UD zi{62e@!WyFiJG=OXI}nw>+ToJ%N@cs0n_ItUKOXNCtQB%3p&zHbpJB4aNDS0+4C%f)W!z2qcXjhu`)FA-~|IojSaW$T?bU zZW$y$zAZECbp_-^LTOQM3drRg?Hrv%wMqd)qfpaKw&>6~K0_ua zXCQ(oSrTH<7nGRJA)Ksr1h73>U$UTeRCO12}UM6CmH^7@Ep%^teBo*1b%b|n%ernnq(knTL$T_ z%N`H}5$0!@aOvW7B3JV>7tRf7foB}~TNgjIdFR$smA~2@oS2vph7_ zsA6vg`x?FwXDNt(BPNEM)~cAuvI4WPVNDKN=jqX;<}lf;#_T*JZoI=9T4>cp(i1gO z?tDX3&QnpAhG@*E7w8o)c z#i3S7BSQghT)hBG@=XXVHS*x0&3Es{-KOFl#d1I(Hk<8QU__)4@ml}6_EE9-PK9+- zUh=+@n)k}qE-Y|f7z#Bv_se;U_T-+9swc-`FwlOaJLQu-O=~;@Q)%EA^Jx`(CBDG& zh2Iy{Wl8jUx67~X2l2yCTHo8gz3hOiq2b*SA_4%w#Kh&INF*3%HZM4FUF?4~qSn@r zB0sCx;yR$<>gtbNC}b!J{6R6QQE+3uFc>(n^6lyQ4`j4Ick;0wSIEPh-ha+$&W#rq zmS#mht!c~){I%nDnT*qtVAS(|=TSv{>pOy0qm^Z3n3&Dw_iaA@VfC)UC1u*d!OlN2 z4Es`2l66>;By#=Fh}i0E$|WV)sjn5ialr5J=VMd?d4lp-{yjNW|9I()UnC$g$gqr@ zp&1nrF$lCVL&MQp`3fBJZ8aK|#!$TC_ujE!qvNb2L|7u}6tax%kKX^*x;x9Dss2=U;heOG!ydFLRv$Z2rT+sMNnsDbvZ%2ggI1ssybEQL+qv;Vb}_k{~Qa zL`fv#j3|O1Xpn%o#~4rvXdwZCIEN!qQM@3?OP%M#RBG*17NkR9*{ambJXU|<{o z!T_KJ2@(h)@nKguo~D=qQOWg;jr%E2*W{8|qdF7_1Wvy4>eB;n?t9}gnw4>cqDfOj z9k{MI0BIIlTEEJsXj;1d2Ecw0a0NcwwPoSMQ&bpv0+fS|k)4;R*$>c<;l;bX6S<1CFUp0tIaDR1$0+Shmbk8ne{S|ob@?b zsVkEozopbV+4$9oD58X7WC{m5K8yZl+d5o4kHzJ=F%wy7`X-fv-3YD+^_%<8315fFMd{uC}1e$6NIokdi-D&u3sLH zi?j6OdJVG=05$``2eSYuQL#+=nS2Lb7Mgaicu!qXZN&o=y z=<#ERDPDX|73FC_AfCx9IPCO_9x3*Od)oajMaXIC+ulHK#&ctq-w9WriP^sMzPgh~ zs_^q;uSY(teg;=ANHXi zAAMiJuU7#8keV1D`(jLt`~U!yYc!yrJ^tPW005yV0`RTJQcFwcdhLG&LI{EDs`jRt Z{}TvEKrO4F+E@Sp002ovPDHLkV1j!4js5@t literal 0 HcmV?d00001 diff --git a/imgs/icons/2552.png b/imgs/icons/2552@1x.png similarity index 100% rename from imgs/icons/2552.png rename to imgs/icons/2552@1x.png diff --git a/imgs/icons/2552@2x.png b/imgs/icons/2552@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6243292dfa9c64e0dea5ee2798c949b9d69dbcc5 GIT binary patch literal 1766 zcmVz z?Nb}q6~=$}?&^J!1QG~gB#=mJV#nb4EyiuZcATV>Nyjs^xNbYsKcM~4Z|PfR+?jmo zf048^iKiv)#2wddV-wfS_^pnyjo<3DF&GQ5KnQFkgrwcQ{lMZ9Cm7=7ThGjyo!!-a z&U2r0&fO#Ue>d?Zu3LI$KOyF#_4V~>fClJ}yPT^ANTrmJQX-{9h$rR$Kl>sGO9XYp zFua9AAq-f+@RJY_fa=-MV?^2`-A9fbaa)!Z078x%K*;UZ!_TxQjaaN9qLfvW$z+Uc z|C*=;TtW!9QtAe<-60|XwU%8xv~sZQmO>tOxm-cZvOa;3PS(?s46$?PHr6GRDEl@p zcN@8>X%4@Af$O(s5khq8y1vmg%^{`Kng~eestz4GB+s2Ym!Hf|9&c=HR6s=tVF6|; z5v_(pUb9#zn^H z{B-^w_0f6(NLwkbu`#NLYXdH&bp3k=59k3Sq@6f+OuIQWDh0K&W7B?-ZrLt=_Ug-G z&(3B{(|pN+G(Q)Cix)3i074fhbJMvh0^Q}(Xltp%vTS;LUu1OjF7NdJo=qJc2np}L z^A;xuj?>hXrnN0CU;Sk-u~?)_DHW4KsO9*p5&&!=1Xr(Ky&kEH40-%sBGDSlZ@5S# z>lnQ=%pczU3st4jxjxR89UW}$+QNL<<~MH~=EHO2qBy7Qg9mnnBkIPqXkxn(!)L2I}Y|yb`7cI?S<=O397#+#*_M2}aU0!?F z*V?HId-p0^(buVS)V&~u`@M!(P;K4REN1crX788i*!VO*=-tM~_5{aH z4D#NI4=I%IvuSf9rDB!Vuf*+^7Qg(}p`*9oKb6@ar6}9>PNJ!J+G<5`J86$zT6=n#rjddR}VB?G<=DZpx*Sbh``{tnsFSZNOpfrrnk)yhDnY~t~1Vxd|fl}NCA*G}T`5MyIm3?o2h zBFp5|EbHP?ve_b2xdOLtPKeTc72tUXZ^hlOM8F1cyQ2fc!`Vu8!PbH`Zk5a3<=}S@ zu(fL+M#vzUj!_>Ea^cLM>FG-Gt^Ge{c(ls+SW%9T&jV~rBpOm;m3CZ-fXHT_8(mna z3{Gcfi9~Dde_l9EfBzeprp1;W-R#@@3g6uK3WgEj^mu{>qVL!>53$RA>LP&gFig-#~};0>zg|h2W|^Na z)0&#)($F=#P$+1?KHv&a+u?-u~mxtSA6>L|@6)-`ogTh~Lp>FYe# zwV&@C_z~f7Gp9c|&-lG*YU<+Tre=6>zeqBXlmJr7E?^6=5vT&QEE`rM!QsLT_%S=s8F?wf&OeP}$lu}K=R^TJx z<41$6HWLa!#pCf4_wL<$zAfEmeY>|;D_1Ja&dhS=+!+$h35vxcgO>&|O;ahQP)aRT zJ1l-*t^hv~LY!Lbq_ku@Kq{5`d3}Ao0!)wFqokC!rfIgL(vm-HGa-a>4xlCf0Ps1T zAwCu0F{S{j)#`xH=d+}glq=<>0zyjp5X`o1Sgh`xQtB>ni$%$=0+)c&qA;J_{hCq$ zxDw5Y|70h#$x5ZN^lk>207ifeaE--0j{ze>hys8U^sxcfViNeN5Mr}Z>I!hv36uqL zKyigNOSZfwo|wRjAfG4TlM-0^?Na`iuUm7lFT=k0pTS4$zb;3$PNe4Z;Q#;t07*qo IM6N<$g4&{JssI20 literal 0 HcmV?d00001 diff --git a/imgs/icons/2553.png b/imgs/icons/2553@1x.png similarity index 100% rename from imgs/icons/2553.png rename to imgs/icons/2553@1x.png diff --git a/imgs/icons/2553@2x.png b/imgs/icons/2553@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3b76ae376b7bea9ced76be871c00214af9377231 GIT binary patch literal 2663 zcmV-t3YhhYP)75>gVclKfLtat5QKV!$So484umNtPBD1kzup=lLd2_%Y8r4%G2Bvc8BiaM6~ zf#44k1@S1LB7vw?ij)=sQ9}}vmXuIRlh~;fC&Y2R-uLe8dw1sE!w-^>#4!=)*VWA2 zx!?KD`OZBDSZy>jGov!Ia*KEWx6RDVs8dr@YyOLFvtN7WnP(CsBO|?qOrd*p!)TXf zS;4MISD@ak>$zNxa=Dxbpjofit7qrW*4D3Izv6jb`sJ5jUViJXx18Gnq?^_}_1siY zCgmpv2L~VP>FL>gX7CVH^2E9y_-0K)GB-awUm;K96?04I;wQ(h@S+42Fh= zP%IX`a=BcXn3y;N#?gQo_|4Pbc>3HeJ-m)8xQ?2#3RDnkE$s1;r_swf_G8?ocqain;of*0ny%y2 zsngWm-Gj#-eFS^=?#*n9-Z?@EsxdQNVd6#x_V3>>0pN`jZyeWkc`Ragy{}pmil(|| zDZfnT7n0}xF(P3 z>1jDRIjQd1v*$!8AfMa2yW81%hgU2+`I4&B%Fw#*0+=0@l!l?}o}p{3>l$=Tle(rg zO+zbp*;bm^TMl<>j7M!12i);Blqv$uauS# zJbA~&Nc_I-cj3(G74Q7J^VUkuCAXEQL@cbdU0qS(kphC{w+PIJs?{|^XY(UFx_Hao z8l&4j=jxe)0SdQ7b!Gcyku#kDf#|pXORM3tdwU0KfycWdJyW zOIp*VK+W?Y6v?U}YP*DZP(vzJ$Kl2b6jBiBGLZ=TAYC0h@7@AmbOLX@c?#i}ABjzU zDAyY7f>0^Fi%3s()j4Z2007MYdERt%RB8mv6c`z{p{j&@t_np}VdyGUg^({-F~7J3 z&-1YDt__I9!|(+yt~oUpu4GaGD5S0hU^TM2fUI!c1pvc@)O4*~T5Op|PFyCt)4*sV zf^xcoe6oylx{AI&KNQ`=3orf?IuS<3EcgNe)E$p4UxW?I52tFY0C4WyH~~j*&wyn9 zPqJvj4F(k%?J^)3@cA@^qaoC*EqFr0=hv}uq!;&Y8O8YeUPSBwD&+wu|!i3;=-FQZ%VR01b`MIXq}lXUK#Q44{qP;ZD?>Krmq8-3!YYUq1+P zYuLQ83nOEF5K?eU$ac9^Q$e~(B-gz5ZwY_^Vz5+z5(9e4;ZUNBxKby|X3B^s!WiyP zz-QT(j!6MAOo0 zumb)X0Qs$N{kDDO;A`dh)+!*~8*=bu+G7h{tcMpJ1>$>^`fcpS+{Lc_b1xmT*)xw>o zQ?1E<7vi{~$f)bm1}S7B7PA;RCczStOpFZ2kx4r^aeSE{>4_0TZDz97x~2t!W=Kc9 z(fBxkA70sH~L=~V!Fd#g124r_L&S%b%m+ct(-cx?T1Hg^gJz2`Ws&uO{> z(^Qa5RdD#vOE63gcEG~GKme_Vi{x^tqG?n&eQFb=c0|H~6oBJIl&fa<_-YC zn*b1=dg?8??}>?4z1emu)$)q)lxn-}DWQ-*Ut$Woyw1R}yGcaLFWOAns= z{$ZbBZ|sBjKH4Aa-Vn=X&mx|P%mO&}!Y{wFGB!S;-g);^^F#z@z99$r*=L_srl+UH z=k{*daxl;n#!yJd=%9^iUC_6`a}<9* z_RjFeO{2q~3iKlyv*k;_KI%RF^%pAtI{e{qSEQ0SGQYGagrF>W+GqeV`G)iNrzCaSeOjvhYFo=dRpUexL}Rsvyf^X7Y- zr2Mo45NG@Q`>XH0_ue(;uK}2xoCE+wA`xwTeB65F)mN}|aS1!NZ^!q(|1&6Hc7QsENyK|;C7Fe;&A~7X(hc2MSy^T4WZ zo0KfyxOo2Juj{S)AFpKo4U^H@!zlqfw(qbO7Z+pQc6Yp3EyjcpkwT%+!OVenyKP+A z?*V9pLZJ$PQam2do2HpNb?Q_VKn_6lW+&G?^Xf;FlangexF`M}BO+Xx1=j3{{tZrJ V%Md!g6h{C6002ovPDHLkV1js%6(#@x literal 0 HcmV?d00001 diff --git a/imgs/icons/2554.png b/imgs/icons/2554@1x.png similarity index 100% rename from imgs/icons/2554.png rename to imgs/icons/2554@1x.png diff --git a/imgs/icons/2554@2x.png b/imgs/icons/2554@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a963b53c18a55398b2a9c060fcde14d2be5f36a6 GIT binary patch literal 2829 zcmV+o3-a`dP)@7>wi*`1y1^$$B~FiBhbNuzJ(&3o_r zzTfvfz28T$O2XkV)7{-o$;vkcKvwkSLRKbF3UqXIu;>6f&|&P`2ZY1R|1RxA$m->n zgjqe%-Q7(=$iFRI!T4%9+Hur4I&$=i)95>P`Y%E$C6ulNPbrB|%63K~?8WiRA5cod z;V=^phnXvlQ%V_1DMJXse{$d*2oORjS%E8j%FlL=jEs<;o>gBIkw zRet;%nR_37!FJKX)z6jEa4C)dgRDk?A%y6$w6G1pp>xrMp30`Y$B&=*^oh|?XIFQ( z>GGY)N_hnWA7Pi%M9|&+-ZI5qW}K{Ow<_z8B}A!i_jT*eCo{XW&RsYD{Mx4aFFbhb zt+z)24FKt0hL-}sefM3j0>Fk15f%Wwa@k)*w94kV?NS<&qi3rnZ| zId(x>NMz`rUp{6G43BB|?|;(ZZ~Id2{{08rsU!t{@zkMeG~QxaS#!^!z9D+;y+4?^ zFgLemwb7MVf~y=Nj#5g<@^P`1RqbohM6RNxrjkGM_7L@YtW@VXoEjb`>l$2knI-=? zIujS~@7!z1hJM0s{r1E}EcNY~_>vBXrR9;Aj=UgA!sp_GWGUqHaYD%0O5_y(uD5rj zfCE54h>;b=&&4vi?S$x-nPi&vd7X4iYmj;Qt+Uk3F^0|MFiNG8<<$6`DP1V>lk>69 z_&hGmCep_C^)1HQTA%ULzy5vwp`)js=(^+f>OY=5rQdn)mp)DiIo5c~Etc6rK}U15 zfu5d=wL<}bVF)q8k%&2wO5Z&`7gf@d-z)i;rJI!`Pn-qcW8X>P0a z*_Kin_So2zerRAsKRq!;s+>HR&4~npqDT6tTa}W)&+BGy)LHwz{SQ3Aiwg^8SIOkW z*|RpF+6usYF?faoxUH_v6HTOARh>4)vIXF05G-~Z(qBvwW88wq8meX$Vz2nWFbp71Z&9mpLh`;+PNL~?AQbg zZ-z?k7+Xr?lONuNH-|33(297a{|tsFr||H-U8KTSL4MhL9z#=0jLT$F#9VQ2%Z|O0 z)63ILGA{9Ktx#f$d0DsQq{Otu06?|Vu_;*VhXJZOZC3Ke@Dy9+cIZ7P&l(IvaQ7|O zq3^;BzWd}0`0cBG=sh=qK$RD=qJafL-}p4lCJuEqRY-_MWJL)V7E&cKmyh4N>!v-w z{?$(pRQRgzF3DP*#lkn)c;3(WEG}mtz;ghwcFkIg*I9{5SBV)InTA>{6kNPjiKP;r zhwj=*Jr9S! zhh;+x+dmm)qKj#Z-C}RaD^bHJmt?BQCZ#A-y+DTR@ntWbYl$mm&kOQC+02mlO+a5Xi z{FdMU>Gzwc;g{k9)p`Ed@?4+uyDM1h<0P6B3 zq>3GTY~}1Xf$f7sq(v>oY{Q*Sg&hnblmjz zn{S$_JD|Ag8kEo9vEB6Yb1$i*3xe5O6M(Iup{U4Gv8tvrnMtQgjkR@hQ@|BnTNiY8 zT(dDv+k(mK2~pq02LK@X)?2E>5ft5xZmzM)PfDt0W9=SRP!xJYOOr|1wl%k4ueR2@ z8gxTe+vLqj!m@J3t8p|Vd!?LJ1tI6T#je*A=)viWHFR@}m2nB@}2Gs)t zP-dfJGI49t+Mt`8TPm6woHkR9lVfs%l^vXoVqM6G8=C8}m?=`~;50>&l!4JD#cyY{ z4b6V_$UxHQ*q1c+;Zb^3CXB0gTa-`=ke(iFJ4Yh{+0#`*yH zV0(zVJs!%tT>7hheLDPp105Yk_a$one{@Dya&pB>rn9q??d*)O;V@-7BM~;T+_*9; f6#PB5j?3~dON!X>No-mg00000NkvXXu0mjfGyt1| literal 0 HcmV?d00001 diff --git a/imgs/icons/2555.png b/imgs/icons/2555@1x.png similarity index 100% rename from imgs/icons/2555.png rename to imgs/icons/2555@1x.png diff --git a/imgs/icons/2555@2x.png b/imgs/icons/2555@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5770f322517dd6b57762371b8972a9f12f2f7e1b GIT binary patch literal 2509 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 Uh|dD!{Qv*}07*qoM6N<$f-jCHssI20 literal 0 HcmV?d00001 diff --git a/imgs/icons/2560.png b/imgs/icons/2560@1x.png similarity index 100% rename from imgs/icons/2560.png rename to imgs/icons/2560@1x.png diff --git a/imgs/icons/2560@2x.png b/imgs/icons/2560@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..47a151d62257e99473ae8d4c2b02f6d5128b18fd GIT binary patch literal 2755 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 FV1n?svAqBQ literal 0 HcmV?d00001 diff --git a/imgs/icons/2567.png b/imgs/icons/2567@1x.png similarity index 100% rename from imgs/icons/2567.png rename to imgs/icons/2567@1x.png diff --git a/imgs/icons/2567@2x.png b/imgs/icons/2567@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..81531168dbc05ea40b411e4350541adf94e41460 GIT binary patch literal 1541 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2569.png b/imgs/icons/2569@1x.png similarity index 100% rename from imgs/icons/2569.png rename to imgs/icons/2569@1x.png diff --git a/imgs/icons/2569@2x.png b/imgs/icons/2569@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ef6ae669b7fdc2521e588afd4d4d8162b720b67d GIT binary patch literal 1495 zcmV;|1t|K7P)A9P5yyXX&b{yXIgTBZm|z>JMG%zI77B<(k)T}wk=m#TRiULzc1SGC1_?qI?AX8t z38bnU5K+%Cr;SEdCY%a-on7KW5?pj zlPC3&hab7W+h4zL`Qk+rEMQPn1rT;TD3CCq=oQ$el4QZ==H|le{QT)tr%o*leGE;q zt%pocPX|C(udP0K1V$UESx!WrUmpz0+^khb%52CmF|b`xvT!vk%#IxFQ3g@t$d4B*?g>O09XsOfY@sE z5s-$dqO6#ny*K@IEX%(C#FGH+vMl3(dEW+rg@xv;n%8Tu=WENq<=W4`kxz6o%x%jy zBkaGc$=}KnzW*?Kx=wsuC5Y zmAEUW6=n&oD=gKxIe3Q8d<0E3^j3&XBZ5VUVK6&fP(py#Q)PwUp|FiR1w^L3F%#84$wE-AHRcow*N_ec%feFMXHv<^|A-^w(!7o_`$KGfNP_60T6x zP3w*zU^D~nj=O<373?9$*Djz-KP2Ay7-OIR3A82}TP=|gAhwX0Lq3T+xF^giw#@L| z8F-7N3e<3~!3>i~|AlW7uf9xt*T+C>(uL>H*M3c$oTK>tcd*sJAb@F!iQ#4tWpnIo z@4}k^0B{JF5Ce6=B~YLJ9xhLSf|wG=r?Bn{z0+SsvJSDm58Q~Z1XsYDxiCO*Lk6}3 zkU_%~Rg<@*inMvQUdXTNwl zTkDotCtV|irj;B}(G3RxK3tFh*p|L`%%JZt#^-kEwe;VSe*)9^__rRmynz4!002ovPDHLkV1mTC*Wv&G literal 0 HcmV?d00001 diff --git a/imgs/icons/2570.png b/imgs/icons/2570@1x.png similarity index 100% rename from imgs/icons/2570.png rename to imgs/icons/2570@1x.png diff --git a/imgs/icons/2570@2x.png b/imgs/icons/2570@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0f78f470f7067fe13b170860383933185ed7b050 GIT binary patch literal 1535 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 V164(T5)J?W002ovPDHLkV1nWT+Gqd( literal 0 HcmV?d00001 diff --git a/imgs/icons/2572.png b/imgs/icons/2572@1x.png similarity index 100% rename from imgs/icons/2572.png rename to imgs/icons/2572@1x.png diff --git a/imgs/icons/2572@2x.png b/imgs/icons/2572@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..369e95430b66218f8024cd90274e03cc6ead2dec GIT binary patch literal 1508 zcmVA996~}*P=HC0>^G94)v5XUmNHjo&kOHWHNQIgOP@qvaRa6NH*4>o_yB3A8fd!i` zSRo-cNJt?p_$o!9+7Tk6V4$h0N{GlMQJuO@ZO8BHe$1T1;=X4)_Is`=AU6Cr_r1Au zXa4g)|2gNt|M5SDj2gUn@uItZ`?hC!d1q{S)Wm-Q=g*&ymo8n>e{-4tJnm88!i5X| z^5x6%$tRvX*X_3-SzBFIK^+QtnFDU@LXLm}c`rwI2MOx*#EBDb;pEAsD_5>84)+*N zN%k%>J3H%uxUseI*rT64_qEgSe~?T!5HZY#vnl{g24sQ(f{+77HJBIyRj8Qf)$1?w zv*%xU4p_W)?OF!(M-o_ASTKN%J9oNgKJww}Gmk!A-F@?~X_lpXW|e?JECx>p7Qtur zYYz;_?fwnQfVl)S#p7@xAN0NTG%gfazJ(&FR#+^t7>F9M$^g%?`;I|T4ENhH|7ZmU zY8zk{F%z6cD0?;MWP^{E0{VkBa{V2zktTE z-P0Wwg1rhjH6%vFrDP9(o%G>np=@L6B-z<#Nk9HHR5|{EFOYuntGM@`gJcrXi0s*H zWXj#Iz~bO(P6;8_cickFBo`wM6+PO`*^BT#*L&Wwf7E8ngr*>fN{kSIt zOG`^Q?|Jpc3f;UwQU@Bb7$`%5nL;e+z4#3MYu^S9NOOj`d4uX7OQ3=BP7UAP#BXPjΜqSk~H;zNvz-bpZNZ)3= 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2576.png b/imgs/icons/2576@1x.png similarity index 100% rename from imgs/icons/2576.png rename to imgs/icons/2576@1x.png diff --git a/imgs/icons/2576@2x.png b/imgs/icons/2576@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..429ce8fb546b9a643746452e2a335af3e19db6ea GIT binary patch literal 1531 zcmVA996~})wb3fj5>;%V6f@8H65^ZTx5m+D!60{4T5)G9Qih=-%bvGh>{vYfg~N|_`<+LYE?yLaSOkiy0PILdmVf|7uRv~062!{hy?gEK+}y(Pize9fJ~M#Mo}H?@&Kr@fI=8VQUZ!^Hby`MJbQTK z^)vkZg%i&L^CwT9%z*w-0JF2R3b1_jYWKj09`c`h>K*>p`lTz-T}P zYzhcCz|>3?WySRD$HLEAN%H+4{16~7%hEN>>lOga&(~v&sb9O0t}UHn^_S12lkEi2 zP5RM@o!O5Gedu@4safLEs~BrREEt0tPp4O5p7^#2>u)EyGdqA?RaJFI1K4E7K$@mZ zwiBju2*%ZsN<>|YmK- zBLM^|N-0r|NURWX2nJL!3Lwb(5+_qYYDv5+$Hs0mt_DZ0E|#bxWG^ z&lzagRzOwI=rO)%7HuuacU}VHAXaesRP9X_i=b-2D5|yCqX^xi0P-zIjQ}9vBL=X( zOR{@EI5fr5NE_(hIP(@sZMqi^g7NTH)XcdhCR0&l{*)JjAej~c^05&a`>$rO! z!S4GC6sxGqF=-or>Rb3f{fNjEgdQYq)UV-e3$+Q>_pqDl#?X>`D}ecCR4arK(I5~@ z@I6q$|MADD6l5QL3T7U}edO!pGY_IF*onK4b0@L02T)Pux8KB_dmR#siV}f52W0&w z07FZg1VL2+gQ7LH#**y+VtqJJz4J0|*F(6uhp{fj?!2Gmz*ix9+@NQNNB! z+SqJ668c!1lUc!)B^nGdj3i)8gKxlC1sfIhJ(9aWiQ97kJ2gjg-{&EnB;EIAOlt;I zX+7{cvbl#*@x(z{Hj0e7f~^1sdJzC6r64f{Y3P!6&yl!<{GN|9vGaX6e;v2-CanCK zq&-dSuV503GlG=@s~%%3qK1({j?{pNQkE6VYn~WEBA5$jk@PaMcAj+CTSyP|>>?U> zK&QZ7yM}ho5m(m8l8lv(C#g!JNJGGF^n!)}vD@~9>3csB!cEP#q}$8-TRrCv`^QZ-cA;X2+q05Up)Upveqq=c38z)0}5&kk$|F@ zL6w9i&CHGKYg)1h^z~Ku@=GTG+MP~k%d7a-3Sj|t&V4q<_&Bfwm|#=?z5{E}u?YMW zxB{%usBBn?vVfbIn7Auxx94IgcA(h$u?G-w8{dtMttJU&w<~2?mcT0Tcc8>>u6;)X|XW-(dg%002ovPDHLkV1kJ@-pl|1 literal 0 HcmV?d00001 diff --git a/imgs/icons/2577.png b/imgs/icons/2577@1x.png similarity index 100% rename from imgs/icons/2577.png rename to imgs/icons/2577@1x.png diff --git a/imgs/icons/2577@2x.png b/imgs/icons/2577@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bb029e1a0be7c9ead2c885e9355d921ddf605b7c GIT binary patch literal 1523 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2580.png b/imgs/icons/2580@1x.png similarity index 100% rename from imgs/icons/2580.png rename to imgs/icons/2580@1x.png diff --git a/imgs/icons/2580@2x.png b/imgs/icons/2580@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..abb502b871de69adc24d316aea876d31f0ed2cd1 GIT binary patch literal 1503 zcmV<51t9u~P)O6PuoL^jA3|zam(RXds#D4*&PoI|a=g;fExy*ka?@{2)nKR+S zg$r`_*|R5mgYFlW?%Yv_dKB_92mIKDJP`%*evUruB&yfLhY$O?BS$V@ym)bbxW{lx zvU!o&*;x-rXQgxM=`Wr9)<+*XL8cv?Gt7pwDgewiWTF8MM-CWOGf@Cls5r#+KfS>( zUb^%>VE*dWs~IpDNnmbn&Hy^g%e_xM{#f z{U>nF!}6Qh2TmaO{){sL^WYrjD!Tm=_sn-)T)&mHg4+iiEX%Stp1>wJ2WgtJx1BK6 zg6Kl6DPU5Nv{PJY;buOM9e51sUI#VIC72ljkB9d3k9`&GEn&B>;Ez9r^KIhImq`wO62Jcu;^J#)xrSC9R4OndmIcM2fY$WG z)9qFPFW?N+6bB@ae*>hXy!1`7Ctm;;(7}C@6VDQkewONIUq=Va_+X7{TQuK-_jq8w zY0WD!N*&`?fkkj&`3idHRoujW!lP$5mJJ_%0zY#c?YxaVcni}4jS*Fa0H%fjtro!g zcmf*&L}i$H%mmX4RY9sAdjCyuj^rb!uwoVK-X5Y2K6yGRk0(oT^ zjRn_tATWfPVWxG$Q^m|c74r$Ye53x&1*+S>qrCZIeHA`II&XtdF^!lAswJCp_(+UR zM8pzAF^iyzGmn{)7kANDzJs4UK=tl#u|bFYweMqU#DzbQ`UI5%#V}O}?qS;59)&v) z05I?xahB9dprDcbk3Rsd@DsCuV{ql$n1Iiwkf7ik!6M!Suv)=}!Im4?PQW$J&dd7V zq6nf6Q6MDXJ-#)A&-S9lDlSYzmf>6uK0~zti8!aAf<=eKu>$N+;2SdDz?;KjL2~pY z;n1fEAN&jxkDeu&K2G}auR*p4Gsr&iJjsVXhp8ZDbpdmR4iy-|U^{_f#?bl>QgRY< zQt6TQ-XY0SypNdoAU#@fm5Dtw1TDxUCz(2mr^0KFw+iP=#NyaPj`e`5Q4}SewF(iC zX!wP{qS;-{c|sSoThd>AhwAPkrc?CaeT&##K-LCiA>~20A}I@`siLjj)PhC;^?MG* z*<(*ieC{WHVxk4OIwJg_uGK1a(J^7dIdGv4IS2R@hYP))7?aYsuDuj z`^y(!O4fQs(vB;5Ux$)8hY&FghoiP>^R^g%LKFLjDh%w^@S9&>0%&);-EFVptu?{} z7DD)nh@1lU0h4Tc!MqO)sr?@KDR2*XK;yDeMalzVa&q!O(rzD-nD4{z^J%ub-}O4|-)YgUV;dIR#im2gjPlO=_0oR_{{ZV#53`oc@}~d*002ovPDHLk FV1jTB%*6lz literal 0 HcmV?d00001 diff --git a/imgs/icons/2581.png b/imgs/icons/2581@1x.png similarity index 100% rename from imgs/icons/2581.png rename to imgs/icons/2581@1x.png diff --git a/imgs/icons/2581@2x.png b/imgs/icons/2581@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..919d962f286d8e301f48429340eba4e27cc96f3e GIT binary patch literal 1463 zcmV;o1xWgdP)pr{C>{tXNmFbf$XwFAbL zDh3RYqA=i9RSLx(g#ZyR1;L=ityCvYg5%h}_nyaIYcV+Y*lv8CngU|Nn(TA;-FrR0 z^{urR{9pdZBI7nMUc4A?-@YBWabs)m#<+w3f}B5pUN2p`WdEj`|Gc~lfeRNd#LJg2 z>kD6d;hFw$%d(ABlo=gxicnQwpSsZ(@p6%oh1JyiqX5&(zPMp6P!Jvyj>8Pv>h^G|=|r?0*K zePH3*wQC(m0?lji_D^%;aWVjoVKu8&RClgIID=YUpbh{l@En4HS2dfelrIolV zrWIxhtt%|mxGH$SkDtYgbu4tTY8_X_)UZ_GTH=~eOL*--}?-CEr(>?ulvLjDIJw)7_=rw^msVXUlC3N@gz%~LwLCl+| z5L^rLQ(qzf%tgWn&fs;Q>=WN2|KxYT5^jzf1XqNuav$GvA9Y}1w0ba7Qb-P7gD0@m zsHxXTf4kgVp7}U(;3VPLX>9pAcJI$v47iu5CQJlLQ+w5rs5$l-df!bHq!cI}$3? z)1E=@$pJH`EGt&mYcxSq(nGSlcOcy&r3yLnLA0-kZ?O6I-;>tf#0C+Oni!l18#P%~ zqGlric0;hsfe`=}re@Og$jpx94{`;;N@51`t) zISv7#K_Le^Y=^$rlm1@Prp{U#9;@1^w7|JvXC;X=!qaol;oT>9_GKLJM32^O{V RwjKZg002ovPDHLkV1j>CuA1rl;y#-~Lv0 zJ@~(U!X}G;*xcMKH#aw7Gy-7s9D+<%`elgkI-8~PCJ12_) zq?EiG<>AgpW&Gv$E!6uW;=2C`p!n(ne(eR)-W@o585wV*2k)akCuiy~3-kx8*1Y^< z>GcOa?^#cY`#^gfYc2plOp(HS`jsb{L!5v)5}ER{Z1KwjQd)z7$5od|)4Qa832ON) zlhPk}X3p{9)|N|&3h42enC7eM=!mARF$~idO@SB#F$GKo+Lko<6k+8umKyw-4dR1; z5J_l?XllAoi-s2Ggo_t09>;q^cZ(Rn%)r1bVU`dam_Zt2n&4l5z;^x!W`zB}qXyO< zB1xcFdU#Y|m>T2pcy64z0FHpRZ2?0yq82I4gDWVnyn?wBiFFQ8E}=);xPShR^4d4B zdLP}oO~B9;X`%qebT&Ob008aE&Z*(lFflNtxb_-ycH@b?>4RU<-uo^7+PAU2zmh)q zHG<(RGXUVde>MPZ(_m(ZCC~`oAVr#YUx#Xq>g69{(~p?G`(3ozM@{Lq6H+s#X~&2k zU>YfCz#xSAU3jquH21Ttfrx2l!0o?}^mcM1(m>ez6BcV^=>q=ZOW+C+LCg>X=-69e z3wvu5S};Q_f<`PUWG>5(H$Wl~YtR-9JOO6`QUhi*O>SUSRhW0hAw8RrBIv{^nTpy0@vh#JI( zdh`}n?}5$`BBVp=(Oc+b8)A)$!!$z5)f8jCBdDGPu@FE`!zi@Dv?bvH!;445jOO;6 zhzP#F3gRHuOmDxDb<$r&u*_6f1u>?%Ax;L6`za7H%Z(_+L!^Hezw&wT9%~<9VG6}6 zZe;^$cMwfDQOpv=2C&@N=Gfv3o(w)|Afb&WK4&Ga&2KX`-Tpao5c=EOvD%^%MNU_6qSfIXtx z3|hC!;lVzW$z+*1Q~2DOa5x;UP9~G@HBGY)tSkchjMe}@0sai!@4hd5FDQWC`Sa&L z*QB&=8v1a2nWA9veAhy}#Rcsy>&E$BmFhi)u83BWmE2rL05u=qwfoh9G^*dvb| z@gxA!f#`Ru>i{f#lR71UM9w_YO~oJQP@dZJtSksTrq=(?$N$#;4ZOAVHFO;>hyVZp M07*qoM6N<$f~ugS`Tzg` literal 0 HcmV?d00001 diff --git a/imgs/icons/2645.png b/imgs/icons/2645@1x.png similarity index 100% rename from imgs/icons/2645.png rename to imgs/icons/2645@1x.png diff --git a/imgs/icons/2645@2x.png b/imgs/icons/2645@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ee0afea5a8cb3d69a08ba1ba63d212de4caae92a GIT binary patch literal 2253 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 b$L+rXb399VixRWt00000NkvXXu0mjfYcyx? literal 0 HcmV?d00001 diff --git a/imgs/icons/2646.png b/imgs/icons/2646@1x.png similarity index 100% rename from imgs/icons/2646.png rename to imgs/icons/2646@1x.png diff --git a/imgs/icons/2646@2x.png b/imgs/icons/2646@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..446e13fae63f6e15093be64511211486dca8977c GIT binary patch literal 2251 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

Ck* z0mLwkPuB)6Nh>qHtDnV7{ zT0pw*g7;gdmEv_PunrI+ogXox;pS2@MR!UcZTR$s-EzE~zal+jXMM>Xj7<$TLs|wDav#h}t zXlc89*}V-f{NgD#c;YZAs)@!%&)Vau)cja1KJe9LUrv`*d5nm7baqbL`I;dhBG!j` zzC5an%iA9GW@6D>3{`11Wr|BoR)1>_zK5n{vt{jLn~m0m3z&f^mXtGOw?S`cxq0?K z{<-VE1MlxG0pL1ia3PORtr@CZ_z7rEtRBOV-pcr-PLZ3!@IOxN_h&| z1lg@-xV?T1oE}EC*Ui$Y6o3BgusR+J`AJ|i0BG&)-P16x8G=Q)8K;I%a)YOau;%_{5XE~alql_abH}ccDyMDX%}oJG z5CrP#dJe#W8zIoa7NH(NiA0IXj8n7*Z;ih-5}qu0ZM?UTZLn1bJUGy`m-Y4samS)I znm2bgn@VSfZeOx;ryz)t!w2@%)wrtjM1=PC)@gm<+GQB@u$h>JDqpk1;hwWbE^<|# z+F5mxT+Ui^b2XCT5$t$(7kq9jty-~?rBiawW~bauDmm>l?Z#)S* zDC7d~=9RK&sak6i*gZRTyk=~F>vg^;Ypm~R58m4KE?Syfu<@bC48i4u&F(w}O&d%n z^VKJVrytH23fURWfs|qBTrfEA`a2Wuko+_?^n0o(Y881Infr0!~}=k_V~hu8?)Wr-Td>< zKR@kMyzC|6k~yOEv8q?LZ~rxKwrwhv%ch>*9xT6mIr{p0AqoOQqah@caoAn8h{mT> zyQq`HZZ+LBb4Fi%!2e9gOFIvCcfTgIw{MiM>nyl=DmC0 zOZWB+(1u4IGN&^|I(z0k60tN(Ml%$c>5+c?gGbe#;~!aLu?T07@s}k_?|4x$3g^Dn z-r&dpWxxMB902`#LcjnJfL}Vj-Y4cSnD2Y_mDly)(6}d)DagZT&Xfh7vxLVJh(&X7 zInAYFPUrR?{fSLi?xhb79F(GyVf)bWLUBBsK zp+IEw@nSx&lx$XUs;)-#`0Jb0$wfZxS0U$L0}bNCRe zudh4QdpvY3J0+PlO)~&kDg+DwSpdb#_!IVVAE?}9DIN{io*C{ZMOI+3n%VYuw&Ce# zHbYey5fMpc(q)C|WyxU6mfa4SwG63?rYAkGbk?_|jHP z9UUEvF{XEQpXzcsTr@LK%@HqBQIgrqr<KZZ-&qH24IXa0C*G}K5Uuoj@;7flATW8uvj=^jA?UPJoMbp z*V0{gwbJ6ni-s%~@eu&#D>!vS3Vi%+-MV#LXJ_XU04uC^VY$c68a0hvs>+1g8fU4> z<4ul^rA88o>{eaZyFRnG*Id8=BGd!$3Id#No1o=$T0sF)01~)NZGVx*U5#WVRG;gC Z`(K(VJIwE%lAizo002ovPDHLkV1ge$87cq( literal 0 HcmV?d00001 diff --git a/imgs/icons/2649.png b/imgs/icons/2649@1x.png similarity index 100% rename from imgs/icons/2649.png rename to imgs/icons/2649@1x.png diff --git a/imgs/icons/2649@2x.png b/imgs/icons/2649@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5f3bea144573a8cdec5a957781a2d46a4e6d1991 GIT binary patch literal 2187 zcmV;62z2*}P)B1KX2P^oPcrK<8!6+3;Y z)Kp1RrI*lBHC56!n3NP6f<@Jsqyz`sV2lTBV|-!8gD+#xedf%Z%j!eM!~&a`Ue?Rm zI!kB&-(G9&wf6!32gb}2GfVj~-Qgo<7MA*UNymMf2B46c%|yiW5PXYm04xCb{|3O! zL_`e02o?3rTm(R1<{}is4M5KO7d7cWlO+&gp(yVrh!=uB+9@!;Cg z)eQH0>Q)BZuUv}fo6%h$%PB%(jjKcghT-;>KRi7XEK@b57HQ+!71q`J%}7=iRh8+D z&pZv)n4*}HK-QAu?G-C?o|O9aPk(a6^U=X~lovjF!9a_Y+&ux9nGWNykjNR0cDvhT zGZ$=2Oh;S-lVf%1hBa9wTbtBU?9#1xq^X zu^ZilMYjDtBEV>FZpQk!E=Gdc+>ZM1?a&p&_VR)fPXQGajmT5DAdKOd|9uLd?Zc|4 zDj}DfXf+CY-632sK%-L0R+FKd>3{;GmWZVkr&BUpEGBhLdD+kE>T6%mY%YnoMqK)V0|&Ha0nCdt zbK$q1-S@Ej0q^mu>TT{rEr((?bv2I19@`~cxzx+uJr@v*$dr|#?D^V`%)X|_#rF0y zRxvA&7rLEql&xO>-oU`HGCF!QbLLE67GGRi?%IlXUY`Ua(wVseNdM*7pO0)jb^1f| zmAiGq&dlHGztsMwPNMRscaI2%-+E631Vj=V+pI)36Ox+Fy+t0ogGe&h?X0s*-U?eX z@i~7q8h$k}k(iM+WKt=}01^Old5IhVIiHH#Hh+_y4}HT_pzDVdp;7Mm?3|cmMnQo~ z4~6E)_W%)rp{it;bJQ>$&QRTsDl!@+J)MbU9R;qBJI;@$%o2>U3JqWOm>7U~9$=}% zsBJzH#;XJU-toXVV(|nu)YsAn$KS=eb>&E7 zbp>fKYf6?gS%nk!!ou{}_(Uq5Q52BC8UPid0YDnS5P*q%$ayL8+bIBm=4J>)q`mZm zXIly4aY>NuPG=z>dHZdWWtmD#-J09uU`Y}!Vm3|-`zsY&6}v)y$5U;P}K2us1x ztkG;SnA{$x`NrUwa`nns2*B*iFRP#5A^w%Nuodg9>%`1)k?1Ii`!}vywbCkQ;?m^g zv=)mhx~3~q=jS&v8`k?IMN@=pLjz)w*LADAH#7?1>MO56zaQ~C0RVuANQce#&XM1r zc*yJZ>?tiJPb$R@CP6fsh!veJjXNKv!1y?FX+|_k?Xs*M2QYcR;=tl(0TB_`)zy`D zc6ROpu%pOpZZJxkTUFSp3pRO6<%99D8=+t{n)zgIF8Ny`Off?M7C-Us7vMGo05G!! zKsf-L*(_NE!I(;?(@_9n0LcaO+}FyN3zy%fchSwiTX@S^_D{}2`!}1YE6{@Zlm!3) N002ovPDHLkV1ljnL{b0% literal 0 HcmV?d00001 diff --git a/imgs/icons/2650.png b/imgs/icons/2650@1x.png similarity index 100% rename from imgs/icons/2650.png rename to imgs/icons/2650@1x.png diff --git a/imgs/icons/2650@2x.png b/imgs/icons/2650@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d63f0891cf33cddf63bd33f9c6a0995b0df5ef5a GIT binary patch literal 2191 zcmV;A2ypj_P)F~EV)6*kYEt1AZ?`7Qk_bvgBA+f>2x|yoz|hHqovcN!}ls`+!`uY5L$NsrdujYN>7CoDWI6x)yV}r?qdbCw1BcR zej~<)#dJzt9nPc!6X8Vv>b2|Ym$xixb)-gWpXzvmyb}{_7QyNFP8Au0BR4$%i=n~Q zUtOP#BpnmXOj}*9g72Sm4lpw{G(fPY-!$C5Zf#j2tF#7lhWd1I`RZlW`tmvtj~8kNMV)IITb}Vi*`q=t=46XEdc^uA zjgDBF3MtJF! zlibkQjGDFE^>MHNt>gQj88%rKu3X;Ong)QDmX?CUXbub7skhfn<<^){j>JgI>E*2} zH#PXj0yW;r;0Bdd>-MHf@(#P{z#9jl*fQCnpXyk7C2Kv zf%Ja@0YGsuE2NQCE1Pa|)HSZUHx`>IZ>=tJ8p5NN&CXgN1-#XD4w0nF8#c5FvPDWp ztvKB69|J+-x4V1xXvKg^@p&7^TQv2{=<8n8ry6`6?(-_bQS*-&2<1=^{zv$J3oX3aoX zSC_bc{ie)4?Y~*F{A<%c92;}9FAzj^O(WK}eG&h3{SE0%7J;cS4j(xx96fVV>ppR! zeCg7ryHknqn#A;&ZZk^X-PpD<-qCeVcDg0rxOkTUR0A59btF)~qJoTwU96)@Gz#yMF%D?tT0EdFRfZ zGIQYr@go(u=FpH1A9gvnJ+kYeZ)~~e!LDOn;eQ=JZoT)u?WR~b#)B6xA{>s=&`5wK zGtwLHxLq4~@1n);4@f3WeQin2!pDQYDbE8BJXkb3s-*aX6H)sl77!8X%-p`XuI_tF z8=J~^KmDBUotP|-CF8Pt$Sq5N$v@?T+Y^P&YD$+oN`-ShXN}2Z)G)uI!WEzNJ$9`7 z9XWM{ZI>>OCSo7W83Fi6DLxdy+%6E2-qUmNc0Ct*IG&g`NoG+Cgrb6HERG^8nfAYS zSS~BEP6TH%l*tmZ*{uD(Z{H^Qr>04fvu=-j==m|vgcu2@#Xv;SGk~7oIRP*MQ2)CU z($&)EckYNykNmE;=eWsIWY6u}w@;k%g<+5gsSLBVh)m&FI$dHnN1T=R^3qa!E))ov z+?Pj0U5>h9p=damB`K51$%+C2fC0eO@@ER!Amz!KnZ-;h@GI|?;T0#&oa5DoYJT?Fr-WTU z*~O3i><4;^FojhUco-h zw;fZyO$|GKba!Xv!ufX@MY9%|@`;{Nk8ZUU=^33FU{1zT1QxWmb!*YNw^L|dwj_P( z^zh^3V93CC_dcDDH5zv<>|M+X({|W$HE*Fy^U~q8k$UpY(KNSki zpCu_m;)%#=O2e_2a(RY zPDC_%zVE%KM@GFn>T0VSRC&fBYh)l%B2`wU6*nvr9Tmkm`gRY@X47EzSoJqrBc>USL(42CvURd2T1q}%3|85iqnu0+=~$!aT0IBP0HeHY#zk0#_j&~TK9 zFx#xZUI8CM5I$Jab*=_b2EcB&OL`)q#sGu?%wUf8`Ya&KCXk4({mrMszX2E-ZXP6- RbwL0C002ovPDHLkV1i#*G1&kB literal 0 HcmV?d00001 diff --git a/imgs/icons/2651.png b/imgs/icons/2651@1x.png similarity index 100% rename from imgs/icons/2651.png rename to imgs/icons/2651@1x.png diff --git a/imgs/icons/2651@2x.png b/imgs/icons/2651@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9b9307b2166ca1963f6b13420d73ad490ee76b79 GIT binary patch literal 2192 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2653.png b/imgs/icons/2653@1x.png similarity index 100% rename from imgs/icons/2653.png rename to imgs/icons/2653@1x.png diff --git a/imgs/icons/2653@2x.png b/imgs/icons/2653@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..786395c79e3677f3974369f783479401acd0cf69 GIT binary patch literal 2204 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2655.png b/imgs/icons/2655@1x.png similarity index 100% rename from imgs/icons/2655.png rename to imgs/icons/2655@1x.png diff --git a/imgs/icons/2655@2x.png b/imgs/icons/2655@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..01697cce4668f942475689a67e8a0c0b2b0d4e6b GIT binary patch literal 2180 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2657.png b/imgs/icons/2657@1x.png similarity index 100% rename from imgs/icons/2657.png rename to imgs/icons/2657@1x.png diff --git a/imgs/icons/2657@2x.png b/imgs/icons/2657@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..401eff7040430c572f7a8edf746d506d976b963c GIT binary patch literal 2173 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2659.png b/imgs/icons/2659@1x.png similarity index 100% rename from imgs/icons/2659.png rename to imgs/icons/2659@1x.png diff --git a/imgs/icons/2659@2x.png b/imgs/icons/2659@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..920bdd4f3a7f1a8894e548e14d3b8dfef43d7bd7 GIT binary patch literal 2270 zcmV<42qE{0P)45875>hBZ#LWGv1dHq|+o31J-5~B1+RTZlw9+03# zU7#&Up`xX1UE+#TQIZq^;*g}}{JBqWx!-rs zci#E#1+FgWQV*C}VrHpuO&5;LEEfB2(VHI;e3@tE%xokgW@b?sO8}TI_3hOXSR9#| zh)4rq0B}9W*iJ-REXEZ8$^c}DXi)<4#{e$6ySvHlb{hZ~kw+_x*vyJD0SU30nVEwP z4Gml%`B53XDpX=-X>gGB0H~mGQ(EC~bDmFejw8(3;bbP%$L!m+Kya*pcpUtTb&!sOb&oHjg9GUTd^XWQ`zi$a7gKL5jcTIEgtg_4^ii~p2-La%6cgyE)O_mgw82bnMrKwO_-CEbE zEpJ*=a>O~}D-Bs(H+^rpzW<;*jSH&aBO6f{KrJl}a>kreC=?d;^-cEh{M`Cb#Aj=& zscmkoss400?ln(%Pe~+5+Say3jJPH!8jFcgB%+&}56hm(>0-~=n0XnHJ)2NIukJ1@ z!GUXjD|W`WN(NgT$OGC^6#3>7vWu!K%w%{j&|sfmlH9+Naa&?U*7rEwkQ7d zifc||2g8h4 z-#m$t={VKct+;)AHQTF-iHN2w-lIomy{>Za)aWjq-k|6-EoDCl^2FOO@`6iBKtgcs zzJ2nJ-McfZR#h*(^Siq{2Zo&d{O|vOfH#P?))qK(rLbCMc)ecqQj%QNX6>JcPKs4+ zjklf&+BeSmQfz4`-o3G-WA3HyBRX_!&e8?F@3NhcnMkMFYDMM}LuvJ@zJ_IOU7J6(>)pVVTTLz7nneqg z2SJQ;I^jhG3Wfn@)*n3hx;?9=ceSlq|I;5ky3|lGAbfs5ebC#_f&?TTsJ5;QvLy0b zw%>?sHbZ*7SyeTyr>155&t;uuWOBxT0X;^uDL% zAKl-X8|WXHVF^}Np$7}pH8&ZO@g$d)n8(wJ*mH-SPEJM=T09&);@CMWZ29R#lOvg7!`iHST9##*eF2}gb;~C4LEmw_f9Mbyjiy$BRGq;fwtn&knskj*ZDno$ z`#r~wM-y>b0rF5_1b}QdsQ`!qNB}s`2^aJ}PX({fQ{{4vayFNNEbD0hGta|fE)!2Z z^|X4T@1#2Jn#m^;X*C{6$`zG%DG`fNJdsGBaZSH97l|jCB|Q|B;B4>r0Pq5c6~Hg* z0|Eeuh`Z4(h$z=wd(CsvNQA<{5Lel3{MZwZi+k_Bi`QP;O5?6k3j4zuEvKb4)}pnQ zRoOrw7}Lu-4uwJr09jR48NdvHVF2?5&3Q5K^J)NRH7>YMiKG>yqr zB5M|_MXX!jj^js9fFO^CL*c!Zw#t`XF4w{@_Wuz8fR2t1(cRs>3BY!f$*|2*VQgZJ zOY=%zXRWMAm04_|$td#!q&i@?$1|J)S8+8;njsO4v07*qoM6N<$g5}d(&Hw-a literal 0 HcmV?d00001 diff --git a/imgs/icons/2660.png b/imgs/icons/2660@1x.png similarity index 100% rename from imgs/icons/2660.png rename to imgs/icons/2660@1x.png diff --git a/imgs/icons/2660@2x.png b/imgs/icons/2660@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f4831166e4d2a5f93bb4f3c230e6ab54feb67ddc GIT binary patch literal 2186 zcmV;52zB>~P)nSJki*Uw}fCys5B#!kq?ar2@mCW)YeBvdU{A8JJv393S+LIf&MSX-qp zp;m37R220=p#{8cEgl6zVlYnXKw>*_62G5ouh-u7dcE2A&g{(TkF043w%a5eX*736 zGxz(>cg{WcT;Mv5h!_zG^W)3kFEqZ=#OoyhFaV?@B9$>F&x0|>h=}IrR~P%6UoSl8 zi~wjzqk@R+mw^`oumeyTWAvF5n3rBVeOdx0ID||QWZVv54H1o)^b4*ps{yBa!t(N8DorfWl3n)On``(+wJC9 zu|jteUWDavjgk0QbUM?1)NHT#@I=cngme)X^eI3-r6T!fiG0P9&9H5}t#JUTPZJSa zC>;Mg2MEmVc5_2nnf~NSH-5Th&;1t8k0_bUS6fe?aP;@~Z~?To`OUvr`nyk@%Y+76 zY4&_oCUUV-0ZD>xj=9}E?9ytv1_fLoX4&+%*#Gb2x*vV}JF8-$p__(1-MyQ3)9cL> zf$5i8o8A93qp>j#+=GQwSTY1IfF%c$LTG48zhleJf>nt<`46xmsUezhDfOBv1vgU_ubX;V8E` z9Cprx^{GTW*J01MI|^5QVb;^l^<32|$||_sYC&gb8**|i0-&OIXfP@0benBPLpg}h z)6;YH1OQ-7N)=2di=d=wSu&Oq{Q-X}Fyq^#M8+!S0;6QK*g0olT}OU_QvC?I9=R*N zZ*S@IC)$qx9+dQK+*lCuZ5JJ6!2 zDKQ;0+z^fO@)bqq#8L_`xe9g}s@aCyYT|*BbKjCA;r2hh@EoVaDg9;^KAerkf7H>y2Z4ViJ9mAvE>td1&gq)^T>Y{Ej_euNxQ|-Qn?hWBK{T zcmMFohvP2S6P&Sz1?#}#y959tGQRPTKe~c}=?4`}kzRTE6&yHl5PttOR5^u7-xNI4 zV<;_KPNc*XRaJQ^ViujtogbO4xrd+n^4%Y`w6vhMp&_#v2D<`q{#oqkIJSIxY~-6e zYrpv9Lk}GeAA947vG&%R^{Hfx#>YKS6peYk)2dES;h#NO&(57aZyEJWFuhKC^Tst* z4IlRRjg5?qprd0X2_OUD|Eh$HF{TmG#kJyroE0mxT|fL{h~NGC2n<@Jtj`QT)$_GZ)H#p1$Z8XNP_=IV`z%Tc(SUS&En z-^4`iW`j{$bIYFE<CkQnF0ZNQC|R*=Jc^em;Bpm%mdxJI<=TeM3q#p=p7T%4%x1k=blzQ`4d3L#u)A1y_++}l)~lC7eb+nY_NBLN>;6+XP$nB-*?}4 zY3I%zY^Z0HCFYWHIz@4tO&`rIu*&Cp&O|JB8wF;fNdS6PRi!L&KY&P<2(n>Vd@rc2 zt<7YY;IZ>v=Uyu-FFPm*f*OrRg+q5AVmUch+EBetWnj8UEF}qCpuD_1G{4_$+E7&$ z56(uFnQ%ff8qt+ZVsbHW7YzXb)Ya8-##s8D=2LI!^;YEP>9om&&Mf$n#qCPF{A12J*ECIAy=}{ezi!{T zspj3IM}>?WXNg!!QR0fAC{W@G=$?D)#CSZy`}%rVG^#aS==VNDL@n9&`?}5nEIY|J z0GzSegqiXZW4bU`qCA^KW#lG(_IXLd3B6fBQ8a;!7wyN5@^;l%SQ(99SE(X~0gDC5f} zT>-!$im)0bQHv%sVE`cjvshwzeHO;E*C$xcAG5MI4qQ5ZT`S0c05XywEw3Zf9{>OV M07*qoM6N<$f_cj%H2?qr literal 0 HcmV?d00001 diff --git a/imgs/icons/2661.png b/imgs/icons/2661@1x.png similarity index 100% rename from imgs/icons/2661.png rename to imgs/icons/2661@1x.png diff --git a/imgs/icons/2661@2x.png b/imgs/icons/2661@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2d1a4a32148b1f0a4a69898be0a61f8a6182fe36 GIT binary patch literal 2044 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 Hu0mjftWrxL literal 0 HcmV?d00001 diff --git a/imgs/icons/2663.png b/imgs/icons/2663@1x.png similarity index 100% rename from imgs/icons/2663.png rename to imgs/icons/2663@1x.png diff --git a/imgs/icons/2663@2x.png b/imgs/icons/2663@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4270c36686f3b258a0fce3765d3f5a0f3bf8f5a0 GIT binary patch literal 2762 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 z zmdZ3ZC2>|3Dk}?JSd-ddDT@lz#!qKil9hSPY(s7hv#OGqD(Q^hOF6Q6Qs#Tz0|l@P zObyrrkV!R9y>)}kh_P(BGV>_PZA+xnK z&Z)dE6)mkhRg)Y7P)bRvloAmMN+~bXX>M0m@;zYBMJngD@c}O=)oM|iIv5{f<87#& z2`0ptH+9TRt&o^nXOki?T6Kymne}Q`kHHqs z#lkd{&WiC?YFlBPO>8i#aYohN=^`{qWlhI=+u56rxqRWm<q|;7m zCuzIaX{EhZ%PZ2_=laPIJhF`qe<#nmx3|9$)7F8tjSGTU=lkt`H&#t4?9 z`9!rxlL>p1seXTa5PxQAWt~%QNYQL=-M$@YECes$p{Nxn*M-nN1fU)QIFe3fH_yUq zS6@uD-FQ&BIGU9TwhTx&=?!#V6f3{~!Y^FD`QDxQ7vKEa z=={Zx-rY|9O`PpeP8HtQs8k`+!di#-hiA?+7yzcu`;~SXHo4d9uAUjP?AOxvrvCZ$ z)y{Lha{1Z=clyRonY~~6y~;cHQzth*@zUi>OE0dS zXI%Wx%8BRB3}X6;{qfG!CHX%g^`p9_wrsGam)F-VD7Pqj!^cUb}Pr*FX8$lUJ@h zzw%dK{xVzJBO}Iq?I`K`3I9?>FV+-_!6{{1OXPzKvP~xd3f)cu{UpjUb*#7CKfQcx zX(j1O;ZZ?rwe?_&-+1v?hm&hr@?YP(Q6#Gy=HA}U%GPK6Zqe+k|+y`e%!h{*ltfA;dZPrdwW=OeAtw{Bg(8k~JhdyfJ5 z5@mPf4u%6z${g#PIs^9t7!lW2ZVvT+rR84x@+m+7Eu9O{d$m&TVd; z7<7)^c(DEM=+;Ce!Gb7G3@WwU@)(O4A4n3UZqPqH>>mWS_V;&|>7>H)@pmO*%5dna z;ZpN@w)-Ea)=u@iNw@8cc^HDvz51$t48U37zsu6?92}Txv}bE$Cy62k;{zIzoskpk z1PPJGM*2OWtW+#&QQiI?uFj|nPj{G8xe_N1i%LQo>%zL$#wneqqWvNS-+KFPc?`gP zpfFXOm6fXxrj9JrR8^#Dgnmyr7=%(|875hjk9)1xZxY zNeIT--idWZOdg5wl~?2m5#FaTl{9q;jfqrsoI7xkDxqpX1cKK%7x7Nv0$Ar!z5*1{ zd$d+)Jr`Rm(L~V+N~bzeB=Rr^Jf(rH`%un`C}kO`OQEiWyabIV5CsO$NSaNreH711an z5F}!p!qs4XBvFbef}n9$W2_JpNR39fwX|C)rU~L)@`2kBwvcXW>9suT>w$JBP?unx z(CdKOl*PY7h(f;$&6425Jd=hXfUvw27%E6wie4|qr6r`@57Hla{3CC_^4;$y>Tv*Q zKK#DYKCsUh zzR)}g0Os|;apq-OXF=DKW!Yh!C`Vd(#`v&*^n1(v0-OW(SpW`8wKh*5*N65&b>frn spY>f}ehc?Nd=>yWqS6n+jHq)$07*qoM6N<$f=&62&Hw-a literal 0 HcmV?d00001 diff --git a/imgs/icons/2666.png b/imgs/icons/2666@1x.png similarity index 100% rename from imgs/icons/2666.png rename to imgs/icons/2666@1x.png diff --git a/imgs/icons/2666@2x.png b/imgs/icons/2666@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3d0a6e3eec9538bf12688760468845e78fa62049 GIT binary patch literal 2322 zcmV+t3GMcYP)3I9(PA9@Y+fIg5M26sRUSP?mbd6%hs27fqcEFuw* z0?WV&V0Z|S0}CKmO1VGu!@oBG2a*qg4dBDT`+y918`uH%MWmceCN6{^03ig~*w~Pr zogMtn(AsvMdEn#yDH;M=Z8$m+&6-n-iRPy`!FQ$ied!(ZO`x9?oKWR5Fv zGy!|S;Lv*x(h?jpx0>BNak?7_0^MfmeV}AKq*nv@@^`cnjJP=+Kw|wTF(N^19P`+vwcX z(Y$V=%#^VoCX#1`&g(KRU90k@@{6{WF;;keJ3jnz&#{vRxDEW`5G1wW=U{UP29yVB zyq3lV>4KKJHCQDft4cL5OIRLjqB%R$lQvGfU z!l42)4wm5Dz+ieX6C)dlT0y)J%Er6ad)Ihp8)JMU&SzB-O4Im7Q!#H!7ELA2C1lw` z&C6Wn#wcU0Dw;~s(>kq9bPs@1Du{>$EHJl_O~CK_5E~~07tpPjNHn%+jq8GQP1l9S zw!ZNp6s8WjsiiQLl%|!usubcW8l#KG=*G2}&Y%fm+eW*>A1`|7Ll99)1@`vZ1);eU zu#?Kjq%7P@kBy6?_+w>LKT>zCYg`wM??UaJG@%WZZ>hyABVL)%YO5uxz0pQF9TFna zUX%>dC{E(oX%#iD(D$d{uD!Cg6?&&mwY!yJy0;fh+u0Ga^V%pdcq_x&& zZS7m}elN?~yqdK;i>kGull`V@2CJ)jws!}+$Q9zi+laP{SU+j;$q|6M3vh(fb)7h{ zjj2}4+PrT**-LJ3-)hcZc<=QjReR#_Qer$E4ww(R`lt8J?MEN$Ta}pMC5@ zqvzk$-1_x3_p#G!Z>=qfLW)1MuG;n99tJ-gF}6t4!o zm}$gV*YhP~-eUi_cx=U0EZG~M4rob?wsH*S9Tk=3)~ zv`ok8t!0=163(1S6(py@(bg69Vn6!oU%zMh?0;c9HA51c$@%D4M*Zz@_<3h%V&9w^0N z(5JV4o{iYZH^2ET|M30m>cpr1il|y+b!CawWXR4WujS6f(jWAWFT*1R1fb%)l=jUo zULD>XXA(a57f*cV)t6t`eCCDcM*qAbciwvbzehiR^%b8l7PT`bj+0)t9U& z=JTH%eC;bwt1o}+4Ng6J2DbNPZF!T?>I!`kTv^U&TIt2Hw(p3p?n%LH>qS-C#8p)( z60Cam2mjUFxUs#uTZ~t~clqV^?9i&$Zf;B6#`Dvs&#dQp)@5%kZe>M&{(JxWpMx)b z60V_=|oyY$9Nw-NP)YSRb`kg=3zd|7EAi{jmIusdOW#) z?T=sn)tg&Cc;m&}(uQX9!lU|$PyYGv%9Sf=e)D$zPyhJb&CKLYG}QBI+Il5ZJzH8D z;X;=g6xol6PHK81Kfb!~V(5v#P#wrI&YJWM%WG z%FX)w<+T6$udhX=3Z<-%cb|XhjoT|HSEjxW5fCKUa_{=}#dF0%{boKp@rh6T*?Y?@ zYog&&ihZXDy$j%H+drcXeMOq;;fa&+URmt@{l9$YRM8k*9Nl1fWF*#|wSM|`HQi-x zE#<=5Qf;1=EUzsWq5%Xrv1Um7olnyCaLsM{$bG+Q# z2z%3+v$KVS;L9?!|LeNaqC?5;i6wYX02N9n#yF;VD|Ic1IGVOaL|6`qZ3OUy z;PDdZtip5JC2YeE361!6(BpwK8$L|TZWND=8+Yn`YFVtM!+*xH6FD}yvupsoXTYWHvjpqR~ImMP{_#XMIu4R{Yr zPEpqZjUoVE0Un&34)2%nULSru5Jd;U4_Yv}8}R5*2&jNZh!LV#4)v0V7(#Gk literal 0 HcmV?d00001 diff --git a/imgs/icons/2667.png b/imgs/icons/2667@1x.png similarity index 100% rename from imgs/icons/2667.png rename to imgs/icons/2667@1x.png diff --git a/imgs/icons/2667@2x.png b/imgs/icons/2667@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ead868c5cab6fbe81be682a14af0c63c9d108eeb GIT binary patch literal 1572 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 T1N;Ve00000NkvXXu0mjfcr61} literal 0 HcmV?d00001 diff --git a/imgs/icons/2669.png b/imgs/icons/2669@1x.png similarity index 100% rename from imgs/icons/2669.png rename to imgs/icons/2669@1x.png diff --git a/imgs/icons/2669@2x.png b/imgs/icons/2669@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..afe62249207a2831dc05ebb5a62a1b91fd98588a GIT binary patch literal 1551 zcmV+q2JrcbP)UaxIzCm7oyaR^FCB$ibm2^J*6aKQ-@@*##3LPX#b2L#-5uUHvH+PF;x7+N0u;+iLO?kU~`kA@4YinGawR)|(NV7-A$7Z+Xkqma z+u2<-59G)1eV}`F<>k$Bv=aa@by|uGB5bs_^5=i@(~s6`MdrQ3G|6BZsYjz-Q?MwG znZ;|3{m-BGWInS`JbC&>F|5pryL4}Cx7m{&-z-e zhN|M+v>cTP6HKH5HN!ba=6zm>6}ALaml7nD|Z2CB?gjv5&~w1s3E2h<8O!NihA3Lfl3%Pi&)eUje)Aw-eYY# z24t8v0M+<_s3KyxEE-c&u*im}j;M#p*id4+R&g^6fZshJK>5LJHh(qDM*!9~g-96fvhQRR^b?Cipk|yndWhA(zn#kV>>!*WK{)~< zp$bAHbB?utwaC2Z%TJx;8(;hkryjna5CWO^{OE;?{PyB&H0uSWD5p<8#M7UC7*j(f zCa%noV7d^6=(U(3BA7u)`d|9%6;zd_4<6^wZ(QYfe|nupz2MSoS9oWu%P=SxF0Zn0 zPm>cz57Vd>9NNE!%}yT}%Yp{bzn%mZbvG2#GD)BWQ*!6|(PNEF^~W|2W1dSkys6H0KfoR ztyYg-?^_#d!(+g`$L{&SqeW5ph50!XHJ7K?aYea~Q9gMpv(bGJVPSsG@}fXRroIn$ z$AB;#Zq#bEOk_A$4u-zh-F9Dn>SJ!=L^R_pdc7|XGsQdadfRQvvdnGZkPkPcRTm;CAZuMgUy;WsIHSZnMR2y9mSp`!|&r_J3x_z#jkr002ovPDHLkV1j#o B?D7Br literal 0 HcmV?d00001 diff --git a/imgs/icons/2670.png b/imgs/icons/2670@1x.png similarity index 100% rename from imgs/icons/2670.png rename to imgs/icons/2670@1x.png diff --git a/imgs/icons/2670@2x.png b/imgs/icons/2670@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..625e98621f2696e27b588ef5225d107877a0dc1c GIT binary patch literal 1582 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 BYe)b9 literal 0 HcmV?d00001 diff --git a/imgs/icons/2677.png b/imgs/icons/2677@1x.png similarity index 100% rename from imgs/icons/2677.png rename to imgs/icons/2677@1x.png diff --git a/imgs/icons/2677@2x.png b/imgs/icons/2677@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..de42f4b6d2a306f41a9e4bfff382da2b997bccda GIT binary patch literal 2174 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2680.png b/imgs/icons/2680@1x.png similarity index 100% rename from imgs/icons/2680.png rename to imgs/icons/2680@1x.png diff --git a/imgs/icons/2680@2x.png b/imgs/icons/2680@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..95978d6ec1ffe5e099a9d42cea171b2a65e0d722 GIT binary patch literal 1918 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 Ef`ZSz6#xJL literal 0 HcmV?d00001 diff --git a/imgs/icons/2681.png b/imgs/icons/2681@1x.png similarity index 100% rename from imgs/icons/2681.png rename to imgs/icons/2681@1x.png diff --git a/imgs/icons/2681@2x.png b/imgs/icons/2681@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8ccd0fb4d082509636e04390583107cdda4a728a GIT binary patch literal 2109 zcmV-D2*US?P))$F^Fe2I5#C*Co`&r1+sU52-{0rQkf+FNNl%4}ECI z`%pEM(wNeaioO&I4#@8cWb|Mov@gfT|?`}_F|7cPjJrU{HOqG=lURGU0T00405(k0T< z(?h1Gr%B`8BZRPn7Ba@jqrM*mKp10Wbaa#(9Ub-4>9qf-g+oI_L7wONsoC|uP$bgp zQ@=?Rgy#sy{UZI-*FVxUO-QHH^l1Pdu*;W!-?~{XOGnyTgIS|=0)(_hWHG7hg&vM0 zFN7m%$k?tl1p+b-ceKHFUDV2@YI&!0?w3DL-*^&;J%D?R$?i(#`C85X#&&VL3qCt! z*-lrrx}79ooK1bXuvvs65jeIBjsqOWMK~PBS|&>qEzM9A#iu@#T-#pJw~A-qNdIK{ zaS+__@GuVm%cK8(ywsO zGT*E-J(q#NY=PO9;MD!LYs+9@@PqfiT8W$_Z@uzK!58k0ssrMcRrq;z75whh1J!0-n6T{8df<$6p3k? z#Hv)_nl(7pBGgzIQc!`YD2O+y5I6=x7y%D?R|JZx+qCg12=OF|D?AWnmf$@Ki zhiRSr`YWB!Lh>4v0{cI3!sHr5;3%LoS;~W+MkR8int;a2yx5 z?Lw9n1jA7r4n+jQJPN{n`xSV<`_;(E#j97ZG5|gR1^^rYEG{lW5QOH*iSfy?@msmo zwNN&&RB zwjruUAxn~AS*GVw`r7;NUb`?bFyLvLws#+P%ce&Nv3%dJ-kYEQaARZLIehq81cNbn z4iFGz$fAfyI0V=8;Q?q#wIZHK;!xXRB%2dpjKF6MJYfhcK@^JyRx@i@%jB@RY49S) zd9CfK%fET^w?A%V2KSjd03gBh{EMFFwY<{*>W{RarMqQW_Ki)Q+cF9e1rhOh42q&4 zyJ>&`kVFCHVi|HMgiS-gf2JG1d-)42oB1DwIfjj^GAH4d9 z;o)I^FF((nJ69R|*Vu|tHbQHe>||cgcAq`-B1t7;$ZUiVYfgXwC|9;{s6C0*wLD_c z5JXXiY1xRYVQlLLDz!2MNkB|i5N=PQQmMda40^>vxm^yv(pVIA4r`o#3i^h;ms>y1aEVRnS?B$av{v3L}UBBG${2nT~OirZ*SCSchP zSR*3AL;{McFzWg!8r%N+*FR)ALl-g|o5UyWmYLbf=}#PL))!~jjXM)#n|pPD5W?<5j3b*pNzR}DUj5TgKCaF$ z&+D^ucR&4Vch@OZjj)`kgx?zyJ^YfUToU{q`nHq_1EiNtG38|618jQ>o zH`Z_Q)U9VXHp(lGQwJae5F3uBWLcIi%gO<8cO$@nlW1>Hop}C4F`LiU$8X-e)saf} zDgi~9nwqN4&CV4zbe*>x=bmjlnflJoWFenj3oA-yX=$kpz-pwnTr3tj03ksTB7_j% zbzQ$vfT(3zyS)b67XdJ|!w2A=Jaw}8!N>=hxtW>JKceb8gb^|`J2O|Rl#EibWX;Ua zluXks0jL463ut7eD9Vg6LMdg9O2;UrE&$pXb_253c>l~LWB~kpKJWGP^i;Zzb*&kO z5x@5CwVTXmzQ=jgaU5DIl^lteI6vU?p679tQmNsY@47Ap;57zqh&hd6?*rNEwjKaT zrBWUMoOWr~!BaHQZUOBr?93*xiz%B#; z#u&r#iDW6#DM08V#zH+x+3`qai4BaI=9jEo3l zV`Jjb(2zJXG9oa>c*Yo~X&U#i=HiRkftx%;V1KXw#3BB#w=W#Vr#XU0{UtroCZ7{) nRL)1Oy|jP6C%#+s_5=L~d7M-uv|SOc00000NkvXXu0mjf{VVM{ literal 0 HcmV?d00001 diff --git a/imgs/icons/2682.png b/imgs/icons/2682@1x.png similarity index 100% rename from imgs/icons/2682.png rename to imgs/icons/2682@1x.png diff --git a/imgs/icons/2682@2x.png b/imgs/icons/2682@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7c882479f97102b5c5ebf868ecb24b8235bf9fe2 GIT binary patch literal 1950 zcmV;P2VwY$P)-f8hV)zdYza{jD*;u|wbhfOF6QFpSpxVE~XZt;LZeU;~xb{g*eu zluA(l3SsUQd)1A50vH1-l?E9~z+kDQ={^C54#Ha4(36Y(a81s3o*+UG85$r?Ge7xF z{kzA8K*Pf@?*(z+44nA(e$OP~dfQ^A;@7r?=b8(}et7D)wI8%0)cpVmAoK8seD4>Z-1V28+q$=< zB1W1>D5W7p3S~6>KtOA)v`&mx8mT6xjUfVo0Fo+&Rt8FIL&P-aF4tPWc=Fft$Dey_ zn|t!?Sh`v!*wUg{$T}y+$2Uo7bSjOM8cHf?5I2lj#>-oVamMoGbrwAG za-3Y3!F6r8o`YPjlNir2si7EmUVi?oTV6PMc1)alcCWQs23U*A;E~TCo}CT78#6N% zD&`B!u`TZ99Oij8IkrU|9eHv*2b{a;EEGYO2eNXooE}(q4>GF{DeFaQ_ak#Q6Dtld zUL4R}>-U`a{?m^>^R1u1nVmZIti5UvEY<1ILz}+0eM95;-cN4RZq8whX&9}cwT4m* zsZDuZmFTHZ%wKIc*{79*! z?g9Wn>(-&*-@$`l{#?(m_U-BIU$<_P(Z*&H967HOfCCVLdtI{`K|LqLkF$l;d2rImg-`pge8GyBcWFp ztMQ9{n|jRVZTsNli?AIJ%xYCD6A`jhAqeUS{VLLE9!Xe1l0=YM3fJMtxdphCf|CIh zky1vHQAKF{;`H--9yvOEu0AvbHarZy{5{|R*yec7j>qzZoyTB4v!eAw}YVh z_zOR}I%f=Md1uOe9@RKb=dVsKo_>3DAOyf12gN)CV_oR%Rv;Ne zOMxVcVR1qfH;oXAE{#WN`F6B-eCEpGBj3TRcL7XKKP}ew{kXPJsnx=U_(QQ+_}T+o zccS4}K_&rUzzl^x-RG2R^MrZ+~h5qy8I?h&MshXt}LQNs#J@KNYJ!O zczLR3jaGd#8K){uQ`B3w#drWXfHfTGQa}?x_)h?$))RT-#u&Cg@DZ_ddtZIzt;-V^ zM=y>tQlGj0&S@%7T*B;ZD6=&4rx&6tcl_*H`HmW&ui;L$?kuEf+5}_@z-@~;oTC>2 zl!62x0SE;|0Ft{hV2r`Qz<{Y%FPjOwLt2hEpGd3k_itQ0A4S3Xo7b+^YhiM0rjkw0 zl2#r2z#XQ3}nrSO_3SOT5wkPQU9PYHn_gSy(uqNk3P! zEV_OE?^81)qm#dsP@;T0iZjvBO##gq@(j$=(3#fA00^y-=vH9AEx07yY}Z_2g*X+~B9 zAONhtA9fI|akDIQqA1!9V4%Gpw67X~JMFpI7LhAY*B<|tC!{3^05)1ZQUK7~7O10D zKheIHOy|lt8Xv?JF9Sdug16_TU>dE{uI6^%(*eI9fR!M$?DKMgmGcK4_p{}+%KnEY k{C)sdyXQj_{+}8D0Gib2CX>-!rSxv4G!apu zP)M&O-}e;&_`c7%@o_7i4l}bI8ykyaaGNF~B1EZ6MF3Q-R#TNqMb&DxOr=suJYsA= z4h~CQxJeyfknue5SAH{1%w%F380ovPnlE{PE9!I&=TmAE-Y1jc*kJ*xsnl=krBbl~IJtz%(N6T_PoADRbm-Vj5Cnx%X>=+Q`;~)} z2a5O1pZHSW>r6Kq4FQ3IFhXdF2!KNt)*3L2fCVfhED$y!1yP`sA{b+E?fv&5*8K93 z$Dev`VPYaV0(O!-zw+-Z?)?1xDu8QAN;VpeKdyW2U(X+$E`Cz=Ny0D;f*RH9l zsVRE-)G4>qY5n%z6JIjh46_vS`Rv&2

gs9W*u?@PhCI5h!C!i7iXy z`?OwPHv;*yn{i(~Huu@Hk3ahD6=RJ~k=WLZ()B#4@v8DrMWWup{C&rdXGaSKb!=`f zv$DKA7f5vP11ImRW}s$!l4a27!JZ)aaEh{E;zPo8`eK;LV% zUOapL+>x(-?F-L7^WA4!k39BRu@D4~F(zDCSO^F3;3SU>BHC&Y_^^8=?Kx??vbMHn z+peoee1F&U^mLfbW>Vd*k|z8~-!#C-Q$I{{<|Bigvm2wtfHr002ovPDHLkV1nEC B7`Xrd literal 0 HcmV?d00001 diff --git a/imgs/icons/2684.png b/imgs/icons/2684@1x.png similarity index 100% rename from imgs/icons/2684.png rename to imgs/icons/2684@1x.png diff --git a/imgs/icons/2684@2x.png b/imgs/icons/2684@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..dcc8a090963bf3eb8cece49b32935a8d2a4df726 GIT binary patch literal 2800 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2686.png b/imgs/icons/2686@1x.png similarity index 100% rename from imgs/icons/2686.png rename to imgs/icons/2686@1x.png diff --git a/imgs/icons/2686@2x.png b/imgs/icons/2686@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e705d3dd6a9b812d6bcc0ecbd84425280f0013f8 GIT binary patch literal 1629 zcmV-j2BP_iP)pZ( z7PY{S2`0^20AW3F%{;BUm!RziTzp!H8vqi9>J#q=NSHR-b#4hELLo$8TnizznQPTr zH)yTDRDoBsV7dAHwv)ZRZKeZ>f2B$bh+_6m9r2>B>Zg!&p;@NNFam|ou~3nh@Q+n^ zCJV!7;qB=B!~?07O2iP@Sm>VZH{fxTV*@RQNR}!uAb0`IB!cTir~uERktN^%L!(j? zW3F3SE0uP{=jNJc#>b-56Ulsy0DOc5M&Fo;@51BTNFG2ljb;Y;GVnf{^8{pYSi>U$ z%$Afpb_JEYI6OR{998uLqM7Al@wachk*yKXA60!_)s1+(j$k{QexMQf8j_u8%1EZM z836)p@&QyzG!TxBsR*==^#5)C=SN?g-MsKU%^W2g5L9VK&;ndWlK}Rk5kLTRqj`dW z4m2&uaGxb*s$4F2%=+$Vd3kwm=F-*cXe|(eTG1QF@E#m$03HEbu}Pt60}cVpz&KFG zCI>k9d=JeUQvMD&U&`eQi<8sMRUy(nZ@pF0Cr$`aho^>yhIAs4_|TcHJJ%X$!sk0E z_Mq7UJPZ^N%mR~Uycq;ROax+^l%za@9veH;8ja>w^ZE8lC943A962Iu5P(*RL?UF< zMP!~gZY}NV?;>~-K_3Aw7GFnE0W!c6FoNs4mJrY4L>wS02pccY%uK#}=8RrR&8UK_ z6(CRb_eTtP0EFt)sZ$(2eE1H{g%Dc1`Y|LsP|V`73qc<+h#(1knvjQ(B=OuN#Wg=v z&e1|P`$%$OUPq!a)w*-X=ZdSV;)Cl~=BtHV)1{%&EZ{IVXR&@$`n5fPxwXUwxYkb* z@IyidsnUXE0YyJB1r&oI_`4;oMCexH<&}j7DI?GOgNB>G`QE-uQ`1+kuGTBOA;Gn4*K{2T`-ax>z~hUSU=*8Q8U3FR;0qSyMn^|==y^+f z9^0#>6MZh)-1>PD_|f!@l#@&?waqOoo;h*yoP16T~9TU+r<@kZ4hc&<#Pl6_54)oNK* zE6R>#bIXH2dh^Y*Z7nVBgM)*S(eY8YTrLZsrn_&vMgVpE_;G#c&>=J&lpsR*qYG^% z-`~=q)QbZ4OUciA2L=XntE=0y>2!SmzJ0k;B{p^X?RWbBdgd=Hj^jArdikZj@y2-O z&@%_NRw`b5#q&zTL&GEGa=8q6rgB{m4xlpK-J12;H3=62NLRs2r_(cj^MlcNgVTR? zbn^1cue{>#?b=1mvUs@Tq3W$T5;{2Tc$?s3k=8A67RG8<^cZ{yDwWEl)9IX2sw$<-RjbwPdR=(NgS&O$Hi3f&73a=HSU;LkpviF@?Yb^N1K^md ziY9Mcd`rAl1R`)<*Y$nh1IoZEkTc-5UGHzM{B9kH8KBx#sQ?RTwrxA&K?Tn%v970W z+jf)ZdAksBOnX`$0P=Iq?*j{ycvawiyH8n=C!rzkJ&xJH+R4` z71xrq=|aTB`P|mfGIPG^h_3U^I^Q>e`ft4YB*|@AY5;Om>}J1j`*;43Y|j1IpY;E? bPt^ViQgv$P)rjE6v?aZ~)hUj#p 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 B@+1HN literal 0 HcmV?d00001 diff --git a/imgs/icons/2697.png b/imgs/icons/2697@1x.png similarity index 100% rename from imgs/icons/2697.png rename to imgs/icons/2697@1x.png diff --git a/imgs/icons/2697@2x.png b/imgs/icons/2697@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..134845e12bb75ef01349a0be2fde2b4dd63e20b5 GIT binary patch literal 2733 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 N002ovPDHLkV1g6)Yd-)0 literal 0 HcmV?d00001 diff --git a/imgs/icons/26.png b/imgs/icons/26@1x.png similarity index 100% rename from imgs/icons/26.png rename to imgs/icons/26@1x.png diff --git a/imgs/icons/26@2x.png b/imgs/icons/26@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d06ca57481e17e4716d151789dedeb02ab1056b2 GIT binary patch literal 1653 zcmV-*28#KKP)2NF4G}G9b`nJj$EwTS}9Xa1bPu=oRJ3~I@61lhnQ(c z+lP);+FAx}Yw5_epe-t3FH`IYp{0dRG006q2zcP+axVLvefD*&)rS)>S_tV(e5(Ja zJ^S*l-}in0wZ09X=o9_FOH4$N&dyHb$<|i!){!G(u(egUw|6KZ&=V2+lC;*BVD$*N z)>>%YX?%cG3o4$ zE7t!>2;nuJKOY5x|0U7?0?=9;AGv3UNbKUZnaP}9^8H8e95}w~M>_TPX8qE4AJUIM zc;~iJ$&FcsF&}EJjgc%lx#xw)%A;agtmc|V*UDH^+a5RvV*b#nJ)c>A+ZW7vpPs3v zG}P%ClWUDP_Z}9_)28jeZd%i(Z#=Vo%f%R%(`Ea2iB1TmwXWRu!-t=K@7O!fHQn5? zGGRJ5d3`;19DMnywNSpGGG>_fEnBFiS1{5;gXZj6)5X%Z1?sl8#fuXaWxwoLJoSqJ z?d_PCTjR1G(E7Kg5FOIb_S^)8EejUiGH1*UVYUe}A~&ou7txLxmfcB`J>{)7>4 zm?6IY=o*o>6{pXoIMsiFblx@ow&QhoD3dNr7wj8>-}Uxl0CHRa&~5_)OZe({ZYD~Gq4y4O^h7TQ|JlRQ-m|2JGUS~ArHzO}3#o_z zBAFx#gz(|*Ip!`fjJOXdBQaUr``FI`8v+aGWH-7v$Qw^TMbEouIG=H_1C0}a8Ho~) zn|Ogj1|eRcYk^!C56B=1gYLL9O~&OD=Tp$ zwMYz#o}}mmI9`AkD*RC42a+&UNG))E8O!JMQP&Nxsj7V-6s5LhTo|?$ z1;-~>aLL*Mc_+kjd>mil`Vu#g_)-%pjpMo`s;etEZ+d>ktm#u*@_E;xamrF{I#zy67wAhYBgRP*NL3PleSL zap!>t*H^}?s`TKyd+MjwnorKEkFVY}r=G(*N?LQ}a(WmL3ayOLomATB~YFVy}A zW)ofzilQ4zHzZXI^oesr&e7+8@!ay-M11x;hr0E-^8<3@#-Eruk5%z_d}miz*ZY9F z5`Y{TM863#{kKPDdMSw(op-g)+McM6OX2%c_<^M0_+h~flUdvEvpjljSH2H8Teke_ zbIa~tG3Ur%x9MZYP8fT;|E?ot6~fD9t`7otHgEw5FAFeo1PdX=G2lzDZ2rMB_jG*f zD`hbqv5FEIbDgy1B(rvKHeCq%+>k8b0{;3(*3MhK`pY-mx_IFXr9yloF1G*v4T3N< zW3i}qr9KEIAR~Zx)nQaqQ&VeMR_p!u-f@4Tj76{R_;cRVX1^cG0^k9dLIlDT_KTZ- z`q{5N{Kyh8P+ndi-n&bD>)VerY!y-3>>J41hmu3qAAxS*#8m-CRMt>a)0oQTt^;NQ z^_0Bh8U}eFt&};KNJMn+@#9^bCewfgL@900kkXm1_wCz<5JJEF!p1+WUUhzD znHh-;q%GOp++^%}>p(6NkN5b+Vozw3<|D&sLVij|CDSyoWzxF4mfo_izHUat3GXFRLXlQ6iq*AFy;MV4As}`Lb%=ZHS0uBR%lv?+(N;Ee&mzS59 zHv#ja(dazjTE^e%36n8*?%Wt9zf5SACtUvlf%jApvm98p00000NkvXXu0mjf^b;}8 literal 0 HcmV?d00001 diff --git a/imgs/icons/2700.png b/imgs/icons/2700@1x.png similarity index 100% rename from imgs/icons/2700.png rename to imgs/icons/2700@1x.png diff --git a/imgs/icons/2700@2x.png b/imgs/icons/2700@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8fd053d11cccc4c27304337e1e1b29627cfd2d23 GIT binary patch literal 2310 zcmV+h3HkPkP)UW} z0Jw8&LG-(K??xcPGcP~yWM*b59G;+rE|PO#1T+UpH$nn%F%4ggON5U;`ltIMMtQgH9SclK?6>u>Et8#gpPIXW7io{FY>TvvMGi6@@@W<^EC z?;d#I0e8;kt3X^MBEpuI7Kw=1u2*(-i0c9{0DwRs0I$FL`t;L3e|qo!j{Q5Idh#iH={GM?V?!f7 z`^>XlM6{#*@9p~=8`mGW%>0J3aLva=gosF?Q0P0GHf*{-JQ3bzS(fjwZ-sy{=Hvtd z{N$;VRJW>*4SX^Hj^#i!8XeenUvp<5FZ<;kJ9eCFZf@pnZEa#909T|e6bf-f6h{sp z`5qALeSiP^P_^`yWH>zO-c-5N9T_{rbw}Xw6NA{@(@hhR2{+r91#4H=r{eL%Ps5SP zY5>@B$sL1>wZ3qGQ>RW50Kmw|$oCD?fa3$le^gvl`q)fjcJ28KVU#>7PDW=)%?^kx zpMsXKjpa4VvubNscAOeIIV^;8HvsUqwl)VAP~z7B%<0{Zce^;}bsINr{5MLXH6Dxn zWpLW~+!4~P!HU)P^1JK96K4lL*T+u|daep9{*soD{AQG9)1ca?Y(p zGF_5kUMkO#E2~P2%Y%L+u_#;3-M-!petNp@j>4is%~ScqOy9t9{|nE*@CZui7UmWr zlP?|vSGd490}w#K09QxPY%paN;Ag|a*!;>-caUW@#>A5hYeOoT@Q1#8rYbq91 zQmYBj-nCQ!~@)l<&jN4;wum50@kfZO3*qdd8MyiF3|D^{NsP zVJ4HYH{G$R*ef@C$&buI)u^<6i)KnljokUJ9p6L5DUB7-~j0>@NHa<%yKN-ZxR0{HnieZUg zMb4${smUqOG()PduXmPKRe4KFO6maMv?VN~C|H!Q=^EzbBj zInZ^T^7HczRaKd3n);es*OWj0lgICwj7{pvWOA0vT<-1b?dF^#5)xg!ZVBM3%OVsC zxc~sdW*c*J%WitD{k6K8*tC;~$6;#p988a#1>^h~NDL2w9*@BA&;UBR1~TVzS5LQf z@ZdpHQ4|VC!m*=WM~{@3mFL&5uD?U#l2ln)xkOb}nTUun284vyQ~~0}*6`}CT_03e zRn;QF?{8akTkfjDRS=8E@W_!PAj>j1wgU_i7()O8*t2JkEGzP2WNhdUd;YjDolIJ` zu;amCQ0~~*u?GNfA~FG{X`8@YN!NA3fH|@(UsHwz0NB~t`C&Spo~@~>dd4)(Y6Ju= ztwAcC0?V?%5d!?#eyFWo0sic4A|l75dK{n62gOAND;bm_aFzyOh9sjP1YEkToH!!m zD07A=a{PXOI2;!9w$8bZ2mtEdH}@VBj#z%+-~pPLm|&)9LNpo$M>rsH2~<^uhK7dT zg2I9ere&gQ+erY3jg1daA+iZXCrX@YlEe%dK`2Tf<@I_g9FAdITU&VEdjJukrKLrB z?z!hO%mG#VuYL|KtEiMyGpsSCLo({O~9aa`BVv+X1^ zGlp=5X}D;{bUk??etIlA7=`rZvA$@6aft}u{^#4T)Kt~{ATKYkEEbQsnx?TpAONvg z3>?P+1eQKNa5C3%G=&I&NE8A<23#XU$SROnfeRp+!XwmMZZS6dGEULDb#`rSEw#3` z(tKMWT{;V5^XARcp+kq9HLKQa%E`~^a9!7D+cxMK9g>M8*p5x9REiYE<1!MCq%h

yjBq zGnowNy8Z>OzZ`((sGFLa^#1<-4+aMZY0;uZKGQZkt)xYUWgq}REEaPe$4M0w6wGZM gBOjm`3nP$7`_FslBbVssJ07D)9^L)| z06<%Jo4EYy<;DK{6aeV&2O`4A>x3+V+^6crJXrlzKRjg5^i0HE(2fQT3(5)pmx*s+7}&Ce}78Yo_Y>ss2d z`-$%E!GRBcfAZwX#GXBSzP4%q7XZAPTt0m8@FNHQ);D@{ebdg#OIH#uR&d71n$PXr z`Rn^@YHId$c6Qp=)_fa?>qJBt3WWqBVz0dT%Ar6};5PsO%A)eCJgnm>p-@Qpt^gPSfZy+jy)W%eJoEH3uOB^hbob7uchU>bzd(21 zaVPD1cGn;gJ^s#H?;O4R&byC&Y56y*!gZ602oaIq?0NG?>({T}K07nJ%`gp5Pj3$( zqUA3vvN=WuLn6i=T%MYEBJ7F-rimdZt#rB+cbTL`UW}YEgc&={y{|H zL^Sd0)aAtq6R{bqZqGD)|E?>UPX{LgGZ&^St17!BpJc{nVnZ1$tT*PpG3{?#XO$&6;_Qc6m(!{M-%FXjzZ;F?_AMGP6) zwvCK2Bb`($ii2h3=TgmWYgVi>3=2vMY6~~CIR(+FE%&(H5>wMDrMjxt|J-k%dyFwg zMa4zP83zW8Y_NeLW5kHS2C!_4$sSn`CWCL}1*i&EQF10poO8-#RVlI%|A8vIwA$Lb zTUM?rDs_nr&c8kAotPMJBVd6*VZp@Zu~F4_EbqX{fsKqa;+%tNnvN)lC@=xFoMv*y z5jmonGug%s8%u^S4-YK?=<4bs000IohlHdi61HXAt20@(>BNVJ!0ju7*uoYlE-HlC zxhTXIVwI0R{1DvQP#-)!c*_5mefyMPF!-6TN+tF5YC zGZ&qUAA9fEaA85=>QQBsEv>-rFFp(E0-{5B;rL|c?k!f_&Sk5!sVRy@KEs2VC{$Kd zKvglrvOtk{P3=nfc;F+eHhKD4V%Vloey7l(knr^#i{NnhC+wJzXx3zbg zrfF+g4LIi>!!qP(GP<-0d(Zdc)gE9DkhANtU1?s;9U#EzXcRc-5LXOz%q)N-gIo4E zh>X2|;sd39T|3E=9C)bfp^Xe#s;{qa*e$#LF3}|+A_4%YnmV&;)v8KamIbnju4}@s zo-PLvAgLxhe8Ga+s4v>$j(RLLm4-}m7Bo#mJ(Gj1C_rt|S{OQYl5OeefTw=(%bU|m z+CDvWI+M{dW1Mkwette{`8SwJnm!YD(!kt)5FvBn+oN?TiD?t;hS1)AaN-%jI$qkH-NK zfpZR`C_?MH*5l>np7ilJ?k^c%5pQ2u}phbOIiz;r!Ox?AfkOa*K!WVAtJo*zWZLTEU)}&adC0E z$L(>{jLQ6eKg8p4Ff9}GoIW@B&%qMG5j=<}i-O2Fa*Y!+kl`XY6kq~~mJghjx2)8? zme+1=ZM7O38z~$P=Y835_`;}I*NjDTbMuChK*?K{X$4Hn1YOrb)l?7#(T>f>OhB*^ zFy+{eDT{Ij5fc)Z;sO^wC#278#~w8W^OEB@$?5579lmr^e%;gR-)15d3Sl@LhUVtx zeO`~Z(=ZJ|;DSq06hYH8$Ypc7uIaici8+UyA=|Lea~EHbnLH~o=@JMq1v;dvTdLI) z{U>a|rPuUw{_UF8cG}z9*Vfh5J(5u}LS!yd?{>RarIIO@R?f$gAag;2J5eUAxvBEDoNTxHyrms;Y_xiUQ-)v(u)_?LtYE zY}qZ3afv4d5YSuVO-9Be>E)8%C;$Ke5fSd*z59G55*djn<3cbPJeyN;6pcm^06s_zc>kD>#X)tRrH#-JGa0w`RD7H{43agYPjT$M+L)E7=X`)uG z<1|uRqP#>^QlYjlm2z3j4J0X8jY;BIYf z;o*CU|J?wHNC+XE5Q47aGN7s*W7py&mB|Ak1k20QG#LEfmw|joa7qY~i1@&fBYpeM zo;$mxZ9|Kr_x*p6&08LtZES4(`^Js!zd}St2oV5)cMI@s86boZL_|m5Kl^@i;De9H zRyD49Y3%%D5{T_2H}JI=o_~2qU0vN9g#33N-#Vc?79x_at}cd%^sP7FI_&rQehUDQ zPNsjc@AvyMm6es38XKE}08q1Y=gxtSj*h>ELLns-3fD<9~?Ne`N7Toi-zA-7QWW`#-_vGcX}Ud zf4F_md?d2RG>xKnL+=A)%ql4~ zPXvQOrKhJy+z9|%{1Xa=6heqNcI?>WAmF|J{(cBF-JhMiHe=P-*DuV>OlziT;)RPB zGAD*k%*;k+$34ZKwzk%`WICJvSv($J4gj4u>?i=py8<|W{yYKzOioVzSkLPaJ`;Yn zs=DmyR5Ep6CY`xxahaQ%nl4osv-`Y0jdNZIGzQi+H#hg43!jVXhQ1R3l%Ad*4tIFR zu%#LgeR$}EVpGS6!@)z#G`5D0uD#P;pmkq{!5 z%s@JqE=pxHPP?5r1SpP#&K;Jm3_OhuO{HGP%0eMOT`1^PqdnsjRohkDvW9wNZuAS8 z)il}N-OZQsyrT@-$FTiQ0QU%kvzh5^!iy#F)bxv{Y=7S}xKa^KwidUUMEl zdVDLP1P~E9=fZBYGgVc=vMjJHi#r?+W|dCw*T6fDG;lZb5-?;G+WrF1Jf0b4leEfLC7m>YGTXi7D-5@Mu!&?7&1r zZLM=CJcfsQ-yu`u;4JyiI8B$J6j5!wmydVwH9BANh3SY1U`h0qN>xA*bAj{<@Cp}s?>old7mRaLd2 zw!zc7zV-WBK}(i;OUr9(YD+9(2~|~Zy(~hZpacLg3c2rBc|`r($lunb6KTE>nS;dS zIVj9u0wZz(7ADSv&@@QJqa+@Q!{Lt(YuQW|QJ@?-H4?sZ`O4(A=rzqS4O2=frI2D` zVq!oq=nII*DW#H7LM+SrS}h;|fLph2eYi2O_U8m>-E+@8x!mq>_&*=`42~W@3TD9o zg9~VDX@Q~PA@G-#gJBq!*Xvb<6c>D@zFt*T(Pp!8#u!yq6?I)V-6d|b*ja3g#bUNp zDwXT(=nNeE_~6^Op8^B`GB`N+g{GOQ70Vl5HcYb-2mvjdgKS0v)3ksK4#jRaG_P6> zUauD@rDzDlsHv$@{l1D#2*^Q_9D>Xt1ql=srr3#)i2kZ-$|#d=x4SqJiHIdj=go=; z07dV;^WI6p#i}Ep9l^-l9Mug2VzC%-!9h_Ja5-JD<)JN~R906`TY?vxhRhMdQkN&j zW15zYFo&9yh&e@73kovnQEgd=!-4U5g!J_EM3%e<2qDnb)x}RfE(}B(sty9#6vMC6}gzB$T59AdOgk<8Pb#>6PEX?a)1xTmUD1^wAm6b^;B>@16h`7k-|6Bh79&E2>ljn^k P00000NkvXXu0mjf#&Jw* literal 0 HcmV?d00001 diff --git a/imgs/icons/2703.png b/imgs/icons/2703@1x.png similarity index 100% rename from imgs/icons/2703.png rename to imgs/icons/2703@1x.png diff --git a/imgs/icons/2703@2x.png b/imgs/icons/2703@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..779466c39f2e8922e6172b53cb7bd2d25405db03 GIT binary patch literal 2129 zcmV-X2(I^uP)${tZybSCq_D3#y9yjBGNJ|22>~=Oh=6KEkdI#i5r_yBfiOsw z@Bx~L0JH!GDhKKi5L+^t2kJwmjHGi;dInvHazpc#lz$^nFQ5}CpD3jwI-?>7U;JSVlv0oeD}O zD3C8ic_r09lBchf=?i843uS&K&nHrvDANTIK}tOshy%eiR@{uXt%MD>@=Dw9X#Q{5 z&maYBiEvQ=7b62W85BezogrUH(;K96d?8O?ndZMz>R0mVZ`9K(^XZj3 z&zvr=l$x1qA{Rl*AwUW6fPJsH1#R8gYh_@nT+YnP%ygcqr_8Csv?w|YK_DhX1Z{`bf_6{rbKyNFLvyiKkWrhewuhiZd`<3WdQoE4znQj>|BcIM!NHa_? z=sc6pHM50Y&_BZ741Kep{Og_PiIoTkmi|mNu=vcdQHr)%KS%I z{_I@-`bGdSbGPVuR8X#VV=KM4PDN1=9A( zfFPw%PB-ecGF>O8TVc9nPPfEzO`KBZloD4Jswy==0g+6Ppds8bki=es{i^JnQtz4R zlF5%s-cRJmnLJ+@YXZ$=tyjorI8FFT(HEuMCgLL0Hz>EnqHs=wvj*psS%lvi2%sY< zV3II%=H$!;rWcs*LE1C=G)51&Cvq!Te4bvhg4P8siF%$m-4ds(kW^3&k_a=2 z3RHob4gl_urB( z7bqIYN9^PTDM8`56JQC{4>x=QB_PBQ4NMYVI^zKR~8dm}V#ysuC0Q412(CFc2)j zMQOkgFa`SzLZAx_2LqlW7>O3fHag9MJsPbFQ760ztrj9z2qS+;`KU9Fiv4%=!gBER5Hv2l?})SG9WehJ_e~3=4!lK zV)BHVkklEbREG)Z1V*rRePQln*ToES%jEPdDxsyqoas&a(%58?*PN1v_a|$+3^&#l6WFKlTjrj1duS4=jf~s-&^pr55A4T_hH<70cOtVgE5?SGqf0*1l2)zr!(i%skA-8R*2Tgz44=UMu*-KJt>xi9oWQ4DwO2EG!?L$ z(9C&`!Fw~Fd*{&x_vUQ-VBb5v1vG(uLM)JB2Llm;xZoC8bH;Ai!_X{P7F?i(ajlu3 zc4R?Lfkzy39l>tGaA)6*XE*kBu!CC75w$3b!1!F#~I)9-=b2lfoc zdqUn7e>h_c*xtc5G9ixp@aDsslkP`l7DjX!eWJ|JozgeV-18dp8RWm{_Z7t>l14irNr`PovJhJ%K2s8K znNj_S%R|t|@!XGRY#Sb+D};lr8{q-19lh^AA6OiJoJ-B znwj&>`F`jBo%5YD1WQ;iz|91Me0p$@0>EK_lFLnOkt^v1$V?D?5WqusK_`0&z3jEv z^;@vsE(pB<2LL?)U(TloFzy2!3xM-iS^HW;FTnKy^ufBiph4HS=$dw>pzC=;$jGaS zL;`?5@5(RSZwJ~o*W2!BHdBXzC(Zsft8b7crTXnL`Q>LPV~;KLSq?y0iYwrC?4|kQ z_eDzK6$B7KdZNO8F)oVlhhx*PehQ4-X|dd6w_2a5bvSM`+fBwfqQZa@vi9pB$WhpV4B)@pv3j#h|fLi7Beaty>M!aLb)cJUzzq1@Y%Ndh`VA?$${e2=1#7 zJv}`f08D0Q8}vY9h2pLhB(IM|1QQ!cXW4irL*;_3X^d7nE!O)=f`E(hIGxO77_AKm z1x+(ZvdBxB6gL|lhm;pV1Yw11_wE|9#EiU3fgS*_15oXr@2$Fi1M(%R=OvMs6$Kfk zh*?c1UuMBEBC;$PjZ7&VWsD1M*npKjKgPph5O5edF$kyG!c{u$Na?g>&dNRj6W0c4 zZDjyJOvaW%UW6h^EOsdjNt8etgMkq6pvX}W)nw+jRe4BJ&SNebg_emUU^T#E@uJ?W zqqA)V%eVZHJonaz!T>Gi%T9pBDZrjRmjM*T6#e2f%TG?iP*j~4lg-Wo zPA9WbO56s5O;vW(n|ai;5;i$>taoY51BoTR9L5v{U5V1>ZY5pA0Q8nwb;2S50)W+8 z1vME>k(LUp;H$F1$W(aw5}9HiWOYC;l|VTzdTc7`X{~fyl7*6XR?{J%q-P2xQ&MBV z)G(AA&$mjbw=#OT?x5e{UE&8x-pJak=0XfX8qX0Pve{_q9eX;!(53Xhem zTA3tCICJXM*_E|*H&lw^+y9=PI7tWrW9*8uTHtGKH_E0DxV)cKO$=S>q>! z=>7fu8USHnU?6(@)XDwcn>WK==|@{rBXp;eeg5gO&-}is$lT=InZDQiN{t?m^O46N zzxURyTURfrS}sP}6fnjJA%y+-r}sbiWZ&NI(Xr8&4)5RpCqhUV0J_@StrnXd=fxbc zTCIc=477D^bKQ{-KNx#-_io)=SNEtuxCcwJ+@?zdj{w-;)z!t%58^5-OSJ&-`aj-! z)9I|ZyP(K0dn*$Y(U}(-JWeH_&HeV}g9qU#6j&;kBPL%ZToo?lbGaicY6B|^(a9D8 z43_#e?8y7?{V^4Z?1`jO(+k~SQ-KAORZTzt?!OrR_KI57((Gfc!QV)?ZNs1c`WM!- za|aoD?GT}I0o8#TOh%?zI+?n?B6JLE(=$}td?zI}wSrnGRWU*E0*ICy@Uj4TF;6IC z#BBER%5;(?F1|^Vf`!v^BI)1vEOY>(s$=-zVFYgLB7)PVHx%ZG;C69JWet1|2Pk7Y zA*AeKoCniP< zVC@_Sr^61i%yI0R00l*28W=M*G_Z}EZX%k+g0V!B`D?0)+v7$yIt`P-fNeeZpxR%B zXZG#W8+ZJOx5VRUY-^*u%|yiqt>NaI(9*OPCSJgce|VwT|ItTprGr7T`nslD*15gaj$#RRX9YhqHN}=HMP&i@ z%FE1_wjgRO*7)*)LAh@u49urD|$u;P@Mj4Xe-0 zjE|3<8yb3N=+n=(HMgznkYy=jwOWO=B$XZHQu$fn^|~C6?QWN=#%#6D>Z&?29Us5& zz+=BYq`vp}+pA*Z`Ve(+^*isy;Q4ch$A-_n5@=j?!sT)mMuvy$(wR)V+vBS>Sh=I4 zqZ22~ts#gsZN@9i8ZXX{U985m-RPUCYBzCh%nB|RTUdYN+$Yr>-ZEc;O z9qWHOb|SH`@tp7K>Y9pOidCvqO)u*AngCan7``}s5dg@gO8_94?Usj&s=_RtchK7E z0JjD}AP$+b^x3`z;>+56v{rw^Uak&7??gb0PJv}`9)x75?shzcb_c!}g4S@E>5~2J;t_QsPjEFiL5mG^DN~kwq76rKUwH%BIbtuxNLc z+Er9_m9(fo?xKxSffCeu06XB=7;KC&#u#G;+ju-Po*BOxzj^Q7(}l;_#v}^6R^pS6 z-hJo2d(L;hbFU8Y9MADT2_m-EPVvH8T4fy_GCDeB5Xl7}FWBNtR%qKRJmM{M2iFf&QbX0 z0g)R-MW7Ll00ttdjY!(JsEUH#UZtQAf077WlYF(03QrwKX+Of~{2$O<#c%ZO^QLCz zQ$fGd47GY)UypxgA*b~J@Z?1Rp8z)nu!X>w^*B;{yM(qjR){IU7(I=Ev`mdTAku-1 z7m!pJKsj4&*gi4v+KK7$x3>$EC%DHdE3fi1xG-|=Z~OyC?&xbf{s~IMcXi~sOx#I3 zu%FcvdUv19nQtFYjPCY@H~BreB$VQEHq>!W zgsU5=@7hJo^j~E=UTvYC>q7~rNOQ%a)8_f>BhJ08%>%h#{POpXH}DYv=drqs3Hd4Q zARrwC6gNP&dnQIksJ8MOJ^%XgTLJYo{e@Pf960ImJ~7%AVd>d8H#Lb3O+@MCy)TLG zuFEvZib~Ab6x|rU;|VD;oBqomTNTbJ`>WqvGZ`BLkz6R6J$VZVfC|ViKv>#>?XpAb z{Gs{u*Bg2}Uyc`*ia5BPHYQlc3T{Ah2JR^;RIS^^m_z#YKSbq;?Deoy6i_Y1Ax{k}^n+lbVi522Or zBwO<{t!fi_jWle|sjgu&qOll0?dfH>>L1;c7&u-rGX#U`lPWkj{8L3nw&Ytxl5>Wx*aW57*xD)_T zO+%M7x9ZI04!v%fM{0~@Q@)~(Y+{ZGZ)axwE?D&*$TCOgKiO6kpvLL{{4?uD!_oC1b}<fSKUp8F>~n2E7h4jzJD8m0^9&%^EWqi$oZv%f0D?!{-=)W$=% zQBiT1M;5XA|z*rx&G}~c8uSZlL zdkdQCL*J!;BW5~qmsiuBn}bN27OQV;BA2Srj?EiT91OBQnOc%cLQ(ljSDYkShfO)V zB=k^}md4Q3G>M}}&1C|MXFvc+%g(c~q#_*E{jL^|u(nNhlE{|h{-cK&{qz!zB@Fg8 zuZ~x1Yr!B;)v%3vFJFLOr1Py?8tA3HNA13kKTyxuj+m~j49LcoJf+ilQByT5-0lRz zfl0I+%rE8xTQi~7x3{~ZZEaHdkpm4s@Md~m^vsIyoH#-6z2CvkocV}?>&y7DZ?)3R z(ffRGXoPBO>o7ML$Gbm&hw5M4D?Yn)0YCl8&(z_x=%BA`?IhcdLs9xrUq6mFzB-HV zy^~ud`I7{eoCKiOk6*X7?tHiHaEoaF_?i=}sADdLV^dQz+W-1z%p}ritn~439(YB- zU(Mh9?eBP3|GoU2gf(bAkb{lT6I9TTwG@0)sA19?#oO+!17g@kvNhCoJn00P|T0EI|Vh2Jj{a z4*PZZB?dWT!cY{fkPqAUT-5^RohWE_VU0L%kO0vH1@3}6F4+!}0`tW&$gf2mmMn;90THz@oI7!n;`E tv%gH>FH2wv3RaD60E<;W$8-Gu;=jQ{IDr2xXXpR`002ovPDHLkV1h-iNZSAa literal 0 HcmV?d00001 diff --git a/imgs/icons/2754.png b/imgs/icons/2754@1x.png similarity index 100% rename from imgs/icons/2754.png rename to imgs/icons/2754@1x.png diff --git a/imgs/icons/2754@2x.png b/imgs/icons/2754@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f0ca4678fc32cb1d84c7d794ca69019527cafbb7 GIT binary patch literal 2278 zcmV4588HS&8?!7af@r=h~$9ss4?bwL}WHE#-Z32XrMJW_DQGXOF^#|oorHTsCqQW>* zrBni%(n=setx#zMty?G{pe-~pYC&m9QbHON5~2jhcE)v-U)DR-+*LDsGZX+1PyhoAz`*<(Teoi2oX4u?2oQkM zS_}*g8Lfxo;_kcqgF%Q+{^g_gvAu8IHZywkw!+l$HOhBQtngeo932V8>L;t>$s>uT z#e1q77N2bG>^YuT-7>ieW`z*`1z8}KO36(F14cjaVvd?aFAZHWcjEmmxy-Q*b5mm% zYrjCe+QPCd4G7;4a6OF@CJ0jt8JSBoG>=-LSVkG<-rD-M-I?_G{-6Bd{v#DW{b>S( z*4lVsiiSPE`PKU3*x|1hrY1Hzg>$Lr5tFdVX83Qzkc?*Ij+9b=Qgw?Av!h?Rn?- zX1uno3@|)Ae2&G>6d(=LRNs5#$!@Qd`}~p27)yJ4RmbwxA`&v>Y&K1C_5^`jL@SqQ zxQ2K5A*IcbVeI7DanGL~L?Es1I{L_jH*#>-ED^iWFB-FrF9FImUC2RK;Kx6Gf~Ow;5z;Ty(%M9!Si*H|KpFt4zCOM6JOadg2z8;r+Yyp?~ZV)$v+7dsooey@Dl6+G%Q8Od=j5ogU%6_YcyvXc1rBxQ_e2 z`v8N#c$(Ih1`MMbKkx{LBnat*W3en^;gWOO0`vJXsAke#wVj=v;ni!_@aAhTGjikr zhn+GX9o!4jq-}8*UCURnvVSeN-uwj~d3ZaCh6ddHah6=vOjRU|=ll4!#E=q0%DKA6 z#{A+duZ-;2u|si2u{u+Lt{g!6p>5ml-}w3Km&FbBxmax?XlZFN>gtnto`)X<%uIgF z{@HO3y!#gEFWpI^zJbw^5r&74VOb`I6!>UNL!vDMX-NCz_;@`3!3RyVL8Qoh#dLuH z&OQw_AQB)NTH8k_CdP?a3Nr*j;8L4R5Q~OsZd^oHR~PYUg!K3*uIu7C4pos5rX>lK z0yL(n3587%!keBLPdG}oxNf!{NB~hF1c-Bj5b%30xilTs1zJ0MMfcJkUVGtrGMQ;E zTeTJ`6`9F##>U5K>j|)3pK_^0-~|MMMxa3m3~69m5^YF#c6z$i5F&~UodDOUSUwNv zPxb>E2qLkX>GZ@bPd>I?zWU;Cx$l7i@?}WY*O6@QVq!8w`;sHUE>S9Z6zv3l5a0(2B!n%2WlBO;NIOPIl#0cgKnG#J z>_mWa#SI=%{G7E)3Rt>l;q&>L0m7OV{t9Di5iN<0;O`9LcYx0 z%rsu$;|Cg{K?;FkO2T0)FfCKK_CWQkSg7aXnnmr(7&y+j+9n(@ww2iR|znuLU2psm8RWURy$wI`QT{x+?|XQzgXcKp3wiuN5%>xr!4JSL7Kzq1`X@$DP6ng&GobU|=A+YTXS#TvTn{gI2yJY%>%N2^ILDHA)Ly*Cvu^Wj5!6 z_9$dWP=QS(8pU(+Y`o=mHF6?9{@kE6y9QzWj%9G`!s@Iqz49OO?n!3+L;Kh1MD&gs#8l z8}TbUtm~_!_qFP%d83n?NjRk$Jg2N|6{cVdF_TFP;mxV0w#8D(Sn&3)H-8z4L>?DH zoG6t_`3kvOkmx)DPQlPxDPR?3+%G zkF6}03N;-a9S7bX+WB)}2lEkbGw<(D#f8puVsm9I8yp-2h;=W!WUa4)=HrJy*a@VW zKVj!9(ti`FRO-|i2Fw>R=F9B=91<>U9y}BO1i45tgBZ--%>V!Z07*qoM6N<$f`<-M A@c;k- literal 0 HcmV?d00001 diff --git a/imgs/icons/27.png b/imgs/icons/27@1x.png similarity index 100% rename from imgs/icons/27.png rename to imgs/icons/27@1x.png diff --git a/imgs/icons/27@2x.png b/imgs/icons/27@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..96265daf81ea9ce09e9c3eb4417e4283aa8b5f64 GIT binary patch literal 1783 zcmVW`wa^$A8r&GDQK%k7PDCtEkKFeUyy7}p^_miA6x3K9t0hqsFhR0w zq90SqR)+%|aPXJ+?2#E`*tjISLdTVq6aPG+JQmA2*J$>!_YNxvyH}=S?g8ZE#&o;4 zZxFAXJtFOTZmpbU1{G%*k4N%?A3n~a$vp%g^m~2?fs~7|J5PaP3mboMe{SX zN=}O2w|HjU{K)d?5oiGDBG1$l(&2D$Fou{05gDi05Jfx(fuAuNz{27k^Pw;ZmKHV{9-&eB?bYgZ@;<|jpv$~3;{`I z699n1IcM(smI#!1>8ow&b+3&g0LPQi&nJCQshLSyT2Ywd)dM*Z z(hLCEk#{1(M=*{_N5J6#FMsc_@{}D#rQhB7LPBP-3dlmxH;nUVPNHvE#=s~c%a(-4 z(sN=0K%v26Nd%ApKo1}Uzz;y4k^sN~fH0>xf6t#G%g-;dgKzu^CZhp!9#4fo z02Dnjivp4)17J*&tdS@HfDb?rfI4~32t*MAz_2D?SbOwu6+}b|1$}h1@>QCfDo~sb zlpHJ2<1=*1FP~XNnMt}@0Hpv{3j)5Kn3y=rYPH7PZ|})OfK^wM3XraN;ewYJuPO%s zC?IH!W@Kk)L9b;9$qLQRv$3|0E~#fI_#q&e1wn{Y6zJVQ0C+Zhtm|vGRMW;e-MRVAa*tsudJ7Z}EzX$R%P5x0x}-BiyzF1MimWDPu{5>z=zCM{zPpY?aReRNQ-*XlXfc>I3`2mah zb0o)rY&IKjZs=@fOc+uW#rsml4*Rp4w`|Bxw=Gju89{Dfhd=lSLb5FAbXt-Wx)|xs z8UTTba&UZ>Te-l#{1@e=-6gXuWY$B~YPg~Ul;1zMPW{fJZ+HN_$vJl%I(Xn1kwQd7 zisV&WPgc>&C$nf?{tTL%XS<%79Crl3&j1u5TpcF`2EZr)>#cFD(V%6jhJ%(DB+<5~ z7m`8CYQXs}lV1Ci{@(5ZMNvs63dzz4?fCIpTJnUAa#Jnm0aO6k7$G-D_MKEAqRh-p zQVfO`r|t1^^uZzCtAD{(BC54Lvp@3K4wH||RIhaHbN!e?hjxX0@N3!z*2jP z`J1-}zPb*e6~H9`1DHxDd{|+2yWMCs8q)w2X|>uS04bQ{QBNm$K|z5I;SubS`~XiI Z{sY;v*7fS5x#0i+002ovPDHLkV1l&POJV>3 literal 0 HcmV?d00001 diff --git a/imgs/icons/2827.png b/imgs/icons/2827@1x.png similarity index 100% rename from imgs/icons/2827.png rename to imgs/icons/2827@1x.png diff --git a/imgs/icons/2827@2x.png b/imgs/icons/2827@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cf74dc86c420c106cd59b8443883b6f99509b04e GIT binary patch literal 1833 zcmV+^2iEwBP)3&275?tqX2&z0#U3-5I+&QafN{(gLx}@PMXLa5$RKEFTD59JDkZKeezu*aSt_+6 zDS;%Vs`4W!Ld7BlS{cgX5|uAT~!($c~+hde|f9`!( z@1FDBbI$$VJHP`V6bf;SvAdqZJ&2tL0s)hrxe7NNx7Uf-G+SoGoS26~A&vp`#?N2b zbos*Je{OyD=^IrK7hU*9UDZ0q7|qq*oDd8KdBzwjO1!m4K6pDxMmPQ9l^`uGbJOy2 ze`3?)>z~ZM%Ku*oOosT#AAfs_j4Y8dpuF_$jmBcHplqmKKtFqV*C#|I;!cY4LS7-u zou0NmRlDNR)sJlilV~I!7gSYaJkN^&k*~l^l08u$cw;_D=QfQ)U8{y zrmU<&0$_~AqD)O^A(};yN(QNEVN8x!1Ay1-%{vNt5pZlNVF0lD@vnPDy9WRa#u$hQ z9OGcO$CH@T zhD<7XTLy-s!!Qg3nyP__(BE?%7n{xj0GgYd^R}5+1Zrw(2moS3x5UXcSAi2Yw-cfy zLF5HE91fVRb^zdN@^(K*;V3FD$wf@VNPHBTi~=$YNRkLn5Fm;o&locXMn=Be8fb2A zW&j|Fd}d-LfstqwnyNxcC%_Sd&ht=6j}g)QUj~DEPB&&HGB@cowA`pbP9-M{a6B|k z<=x&AEPkYF`^)w9f3ExeyD#OWc~;~{AXik$FS;h4Nr1D!0v-&8&cPs{z2)EdYs1IX zboxwp#iEM(Yu7rSK^~$sr(0lX%EUw;gCN}DZ?%~8uPj{11pNg@Q12V)H5<1!)xQ7kH7L_gfK zgERE3zpc651;96u8Sn#;0gxnt^Z5d?NF)-Uv_D-67|%}>?}2v?G&P=X{OOJzJ9Noj zC=s&Icpgj?VUf(>1qmQx#YJA&EmFbQNMhM%|M*Ok6SCcAvlSDO1wa8rI28dl%)8go zv^Ah<8Ur9T{HbBdu_FzEci;NW-a~)*U@It#Y+{s;$3~G#DKME$u-mP0*sVxsvQksi z`Oy{2t68C^P?BX?F$}{Fpb!KrI7A{>@0@-{0)imW{{8!z#b)VUUAyK7r_Nq@(`=dd zFQ%j*nVl3F*6>9_L3AXA$Z!gmJ8xoG=8bJzzNv)&6XrX^owRrF-tB(B-v)p@PS4=l zrE6tOQOD^Bkgn@OeSLj)<*JpPCr|z*7Wq8#y3^@;;>}+l#IN2s$jNC11O_4olf{H0 zUoqSsUv?mJ%i7l7K5W3qTCLVSCX-1NMKP+Xs@l@hvJil2CIXBxhRvHdn-0By=wnjp z?UbAratykJ!S9R^gvEzRO@ebV;sDQ;=0<+5pyT=d7>OgDT74zkmOWcclUM#R# zY}S4I_9epMa6(m8d2DRVqbN!OQ*OaM1VW(@Pekw*mHcS^`mb#{d-lvvBA@qH`@G)j zS6>bFt4em;3%hq=*Ymr0P1TW-Wu#MCjK;^&*>MF!gEuo}Wo6ORr%tKQJr`Va>Cz>3 z;>3y9p5M8%20(-{c5`Z|@6HD!A~44IjZbcDty)%9*4Wq>Gf5`zSC=fd9BDYVb@PU$ z&px$o)ptZmGA=f^3Y}N4BQY*R;5q%Fhf0~p>pp(5{bsbk??&m8N0zxZZFsED=`Ma+ zP9)F%?wz-`6A{aGRJYafZXF=T7!N>eYim2--P4`y@9BRJz%yOfZ)|sZoTCAM@e>Za znNMf3yh&hi&a)voo(32bZrvJ2&8iiTUg;gVYO&hR567adfB)p-;jW&(?$W^g3}Ewd z9E;8rfxBS=5O6x3N;aF-(&=;|MDQC{uU)YFTeaUyXHwO%fg$Jhz9G}K-htFeA{EmZ zdWs6&r#rg(J_Rt4;!-M-Z~&9-n=rF}@#q)k&*ZDMGx z@@HTD(Q4BOTatFGaMFZTP1Lm8$QQ`0s2dHXU@!p^J`A=o*Y>rs?|t_JP)Ib0$=dhN zx%cXv=REK8KIc6bc(`Ch#I1Sf0I-L|`oF?bTwE*z0AmafLxOwol)FJhjEEQj>l+<^ zez~pf)zNHw&QL}9XI>&Ad1czCr^L$UINp5pjL$bh?_Rz@wV$t{;=&@@v-@-BT3T8* zU5b>vP86!W(oWjg@q2rmY?#8RA-O%n7(jOOm#KF)C*I$SOTDJqdF0mgB>0YG$Yb39J4 z0*JD)!JA+l2SJutD55eGMXPjOml!}qsR5@%fQUe3U{4w3f=3*=jN_3^Bv>>Y1}{he z1JiW_lE7yIFs-cmjx#`p4v`nJsA|05EH?p67W60K6b#DXF8UyBD*wv#8noIFxi72OtT+a5cGj0Q!Rf zH&udNyBu+_Wl$YD7D7S9;u@l{2x3|c;1ND{>{y<|;izaj+oY$`4>m<0Gt&v4U&dTi z7vc8@004|JrYH*RHoK*IS9SZoz57myBv!go=m(o35C{Z7#&T&DvjWAUAgL!oM0mgV zeVlANDfj-%J<{LbZ)ou!av8AQYyzR`eZpLp z0k8ltuZ;I3{XhjODk`Lbf$L_#9=>$x5;%?lAP9nhbVY$|mO(^t_qw6$Iy>~GIw~tK zktXN=Eu8wpTibBg0|@{uKVMF4*-|;x*VmWWP=VDmytO$0D{Zg8I?Nc;;c>>bc#zi- zMG_Gt^f(|a0UV%ML>xF+D?*@cBcl^pLm!6qjEn+@AP81L5Uc=f0Bpe^-IMgX1bjXp z1Awtx)6PG=(wX^6=QGW}yZo)wvok(HPbLwGgqRi!LzFn!vP>x0k_VG4vhEvK5D5CU z9XrYekH-^BCX+l7*#X$o($cheJbr66`wa=?=Kg?)h)vC?3w2Lb@iSiOjBh@e5$5mA zaY6{AzIVy(c@wZMBGVyZF7YAy#@gBbBfF4QXw|xJT#Ft$e0Xm|L&E{a*pi|s(W0WF z8Qj+s*7bnP)x;PB0dNQA!^YLW_g~mnSs1_8b*12XSC>&)RlrqOZO1_W01g~_6j~&T ztvhV`)JNRX@aV90Y<$dLf8?u2OeWLZ#ful;wpy*a*XzwPo6ROo)27x{V72x~k2W`t zj(W~r=zR0LfjJg_>rfL4Q``zCn8RHm{LDsgDC;JcV|6*zT z=~MVF7o!;K`t*oR;=A&yc6|Y=>*oJ9bMd-|o!2 zdft1!+x@{GzyF;tpLf$$V{BpuUBMaVA6`O`F-n(t*u+OzT6V@iuXOd+{mu7}$-$eR z1xLwNF)uf}zP5Jn%Wn6Lk6T(=xYpKIV?6@PT}Ichoq6qaud1rgsH&PZJ~H}K(IUF* z>-X)<&&e_&L6CV7p+FQ%Q9>k=Wb;dlsIAGB^YXKIFNWgLm==336bk+L%wJw_ltgJx zG)db5yw}?L3j$i#Ey3E@B1w|PYPD*CK)@u5qAig~;Q1dmJ^7fkW@W}GqNo8nXJ~g`+7YdMS)*cAp@`jkO4#icmc#V^1vE1Fc6W5wdm=qn1R_``lLxz%SzM2utqoA;W} m?7lIjO*Ru7txGvW0QfKVPZu9d*+{Yg000043q89n!Hvo9Vmf|MePiV)L65keG2 zhE^=9AQVLjP9UOGge11psP2|v$MrJCTVlHtuVc@6);Djv{D_?z6Wik`oL~3e_wIMk zcfRxPeHXY3csw445VE8X=5FHL6)3Q{GEuNu}@GAR%A+RX%sXzYqoTh1%N^{cJ9^0p7I}Fmc`-|zfzVYN`N-2+zN|Y3mlFaRP zvxE>@_u%~xl$5!45khD%801t{Av!_FYnnz)24i)1$CZx*piNCpNvn_)fg>�f2}0 z?%7^kQYHY47L)=2c%pzI3fK^mcXei(_VMD$J=V zFbD<+oB*@g0;AEKbj)=TScJuHyRBFt7(gPP000Pr0G8vx@;nPb3j_l9*n}1f0f7A6 z0`WG1nMufsgm_ehs%lVF32`wR0FR2MrY2?KtXPxCx)cxu;Z{QlAsP$cn$7?$!?FcM zWhg4!@};K^KXr1)&K=*Q3ue711Qty-?Hjr^KmnWG3Wfrbl7Otqc<`|F^+_+f*}A)Stzo?&&MMuudMh{!=Zz}fKKoHw`!1* ziMcibO3C>6_(B#O6jg$6s1H+EXUEt#ztbd8AoetwjK0! zyz_#+ywWS_1nBZg5U>`)7bOV6fPiMilzjti)w{9p;r*d*Z;#~d>o$Mq*=HMab2Ci< zXqr83vTAcx6w7wUl}bQWRn;FodQ|-W^FQ=9U-)O{$oS0h9E!(J{N)Ykc#dqXs|OME z=$V*9_JNNW6-{v=MDrJB6lOHGg`@OO(%dz?S`7}wA!dUhd{1<^bkB6m{LJr0cr>3TT zuJ!GSb!Q|T+SzdED|q6oUt~h_QFQls5t_USD#d7LOAD@EycpsI zUGUFm&ak`p?5S#QxhS7Jb@JsGfBNF50E{vWb91@WOY1=>r67c`Rr@}FZA)QpVOvYH zpEp_4%gf7*r_R0EuxnTC{@Mq(JeuNgXdeuYaUYJ2Vb(tlRaI4ks*r-b?AD&)v3Os% zcVlUelc}z%?#;-^_<|^kt;ZUVeTGs>7f#9Bo6}McP(la`K=E~6ZSfBcMurCZe*;GM z$jHd(ft(G66SfrVHl4t;Q{z5%er5`CEP{}K4p22tWL4A^)@I4#up-=U zH@oN&5A`q$eE_g!*X}K;bsuzX-2K_j<=eM!sy=X_sLJhj0MNPI9${&m%F0UK<#GwD zBzs4Y71|8LkUK}Z^W}8SMepWDyV4xG@GQAsp#}U0Mnv{KnAkW200000NkvXXu0mjf D+^TS0 literal 0 HcmV?d00001 diff --git a/imgs/icons/2830.png b/imgs/icons/2830@1x.png similarity index 100% rename from imgs/icons/2830.png rename to imgs/icons/2830@1x.png diff --git a/imgs/icons/2830@2x.png b/imgs/icons/2830@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..58c4ede4ec444ea51d2c1ad1d7b72170de238591 GIT binary patch literal 1828 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 LNkvXXu0mjf%qm+T literal 0 HcmV?d00001 diff --git a/imgs/icons/2836.png b/imgs/icons/2836@1x.png similarity index 100% rename from imgs/icons/2836.png rename to imgs/icons/2836@1x.png diff --git a/imgs/icons/2836@2x.png b/imgs/icons/2836@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a735749be7106d609aea740dffb5aaed8b526a2d GIT binary patch literal 2339 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 LNkvXXu0mjfetEOP literal 0 HcmV?d00001 diff --git a/imgs/icons/2838.png b/imgs/icons/2838@1x.png similarity index 100% rename from imgs/icons/2838.png rename to imgs/icons/2838@1x.png diff --git a/imgs/icons/2838@2x.png b/imgs/icons/2838@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..72cdc2582cff22dde9d20b1e59e477f094ced3c0 GIT binary patch literal 2323 zcmV+u3GDWXP)PDyV>3Q`1(hJMnR0z_K!|~Gk5OH zJ!kIuo!>d%_ni;;9|oC&kK)Vxn6Da@=Xs{8s){3oPynQ+riQ(O4+j9dpL*o3Km6>+ zRsf)s&V}$-!ff&c05|hSef>0nqi?O6BI6bw9(?QoPPr>3p^^Xq%|YDMvoiq5+yRiA2}mOqJk1CW$zy=ju_7Xy$nx1RaJ z%&}w3mK*!KyP~6gO|)itX{>O*MOx&TFK$}9N_uAdX1cUEkJ`;~o=bspQWMwg`Q3AY zNAF%Qq$!Q7>gwv)xhDLX%1W7mcAgOpMl7(OoEP~o5z1qxQ{Jbn2VqP;$aMQe~e|NOYrCece7fpjF3{SWfkyYGE`Z_P@GqJ(ADRS5XT(b?G{wzag95l?_!Ri2O2J#Gy9{GiG#nr+WH zAMu$t{`JI5#{ize=g532{in)oxT(U{aZ9C5F1BSz-z+PlkKMbPZn$k3Ew>qI)8SuJ zI(3|`{ze|Huo>v7=65KiWAs$xoAlcJG`c8LL%&mkZ(cdmh2b zlkIr&`R7nvejQ|y!s^I@H9Y}@p}6Q1(CZ14p3WZT{rBqSpnv=<03;ntqL-C`=XqxP z_U-buIXR`;q$K`)zSn=OkTJoGNNYtLI);K;+~%@05u7l)SC4v3V+sud*=C4#s(J!B~ejV29y zU-%^&kGuy%yb&A=WSG=2n{={PtARwNx1BfEd1vImOaX@Hd2a8^yXtdu7c7|!#RQkD zTalEKgdg1bef0J8Y4?#c))~jd&+t^Y|yfJ8J<xHwZ2uh_Izk2ES0F{w$)`Bn`WSL^p=fiJy?m_oJ5S{%IoF51vIY9$K zlHr?(aEljaBhQwy`lb~tx9tAyuIfuAX8@4e+FFTHs{8od*`2lw3r#fWnSjrSrlw}> zd;L$aXJsMa_u{Ps2hh{ogPXs#9KNs!nPFj!k4O7}grV^mLb4v+<6(3S`JvY-FeOAF zLk&k}1{j7=m5O1{oNj%r{_xQR0Celtt&{@*N-6v3gPZSd{Kxz8?tT{yheO0}&qkIk zqol-%{RiGbG!n+r$}%XFO1ypW2(nU)aOT_4(LIQ?BrW2&82SdIFzJ;@j#DBe2#7>w zSQ1RoXjNETV8g-s6A1gllNZ`My8(a@!Vmx`FDkM)Y*}rh5KBDS)<%o+vWd&%!^r4G zghD}-l@uW_&w=A7+tA+LflyS!qP%o0tIS6v7(sK33q5@!AcTTba?onkATmX^H5F#P z28)Yx@#c|cwD%0kDq>^^;qLH+J%0qiky(2|d9Ee#$g;|E&6$oaw4Co@mR?f^Yla1` z9yd;(J_Ubp3dxCj%rhAQ2w490MR50y;%~=VV9=|<5(0^1VTw1Pq#zr~W)nI)x-sY( z!&%p`tX8p%DCv49#DE>sC*&uqfMHlxh9v!HY? zC=iW`sH$+HysQ|zcJITyd1mzY4gwU&&9P$P;!@0?p9KZSz&k#U*0!@aRNsu;v_#qC zi_kzQ#>Sx791}yk00aTZr0C4w?eJu+{0s36e!i}G|Z4^7}ZO! zfh-6}Nl8Jv)e3k20K`}nsVPa2Kw!mEXHcemW>z6b^^t5hh_>y_aR2Hnmai+W_-_xQlY zz#xE+01VG208CG?c?yLhPY{H_+T~?y3hWtc>)Tq}jd2M%+16ynW=+SKFN$GzKg>x+ zFf0R62t%h)VPL?6! z!X#0rjTz%~*XKJ@bDCN%?1)BV8c~p^LNdHF9WDV7W~BDb{L?pM`(!}95`jzKbap^+ z0a3dhs>rB8HxLM@0H|krMgU*|kPhIVGbIe^bchlHDJ6(W7ZANlg8x2v9!yo0RsAJy tWY%*<<6LniUpfcde;xnvE7$)Q{sqP0;|{~2jamQz002ovPDHLkV1iL9f2RNd literal 0 HcmV?d00001 diff --git a/imgs/icons/2839.png b/imgs/icons/2839@1x.png similarity index 100% rename from imgs/icons/2839.png rename to imgs/icons/2839@1x.png diff --git a/imgs/icons/2839@2x.png b/imgs/icons/2839@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..686028ca25159fa64223400d985212ec064fd81d GIT binary patch literal 2160 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 O0000 literal 0 HcmV?d00001 diff --git a/imgs/icons/2843.png b/imgs/icons/2843@1x.png similarity index 100% rename from imgs/icons/2843.png rename to imgs/icons/2843@1x.png diff --git a/imgs/icons/2843@2x.png b/imgs/icons/2843@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..333ffe46b60e0295c2541702b386f7789fb24b66 GIT binary patch literal 1827 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 M07*qoM6N<$g3%jhZvX%Q literal 0 HcmV?d00001 diff --git a/imgs/icons/2847.png b/imgs/icons/2847@1x.png similarity index 100% rename from imgs/icons/2847.png rename to imgs/icons/2847@1x.png diff --git a/imgs/icons/2847@2x.png b/imgs/icons/2847@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..99b940616f151b8e959da3132d7ed21f6ec61029 GIT binary patch literal 1884 zcmV-i2c!6jP)(;IIbUKOoY&O^Cb-lT9 zYmy?-h)zT*5h<#wDVc0W*?(X^9X@g>pH9cN0ss-+GqX~&O(J59 zF`bB{ix)3`wO*^J-K%<}NIWb>BXMY|idDV6kj#>C?!syJr?#wnk%&GGK)LNp{}%w@ z1qOh2@BaLAUkZMuKN^XcYHAICIr=udE4(n9EqMRz8HB@8c5VDaiX=bt@HPFNC$Hy z@Y8SM{MiqXoy&oBWY7|ju&MJ4tgXdsTsU#FJ(I}4OEkKH^I_%oAr}R4SH*7I*7z%{ov!t_j(+#W}voL3;2nMh~2btQ{Oe9vO%z)vtfD&vC# zWxVs(lg2`!%r-yv=*jt9Hlgdx(Jb*DyK4!?$Hxf(WQ%+Yf>jkl96WfC z0N{yMW2KNdNIH^dcl5o15h{vPcY?k$&uCC9u^s*wi zN)rGuI5>D;3>W}-B6(wCE>r#N)TK;K(aIo$$YQa=9|)jWEW$7h2q7T20Ox>U5^G&4 z%bG#M`(FI>Y$yaiGBVP1HZ&^%kpWicnd3u`uQ}=KmKd?Bp&NB5L}>MRQBe%&%mi7s zLbjT8>k7{6y!L+J7Y9#`jt0fZ2$md7O#!@s5c}SQ$K_j3s>Nl7X4Jtrp<1oN@9%)u z>xGa6%oa0CBNQT+VgI%6jKC;@VZrS4*g? zc^o@_7Vb;}%;gZs|UAXxt1NN~k~pr~)Y9F0Hv418kT<@qI#2 zDJr*TQ}f6!M7XLc;Jo2!vM~sW!6eM!Z3U*w1>|Op^;b?tE#WH*ZYbyi;0MqHp!;t5 z76ov-i($?7nUX!f$|b`6sPGx2GSjem%h>iE584L=h%?mH0=VLYOCnPN7O5g(6@KhT-0V{Mxho-5xc`l25w1#vn zTPzpqE&xsMk?z2rn> zY5{6Rg~_ns+`HF}V%#Un#q8VTS0|^;X3<)&YdRX8P(!2siRCar!@*(B81#i1Hc>2< zVYf?Ukp=SkA||iSA~KbN5FEOu!)lk%+uMpjXPX890+NBoB-8;E0n7lHzh?#jAe~M# z0BCzqu2k#S;4vJSx;_tPRFE$#fFz(RWq{IHv&xDa*C&z5Ne%#9*E9y84B!TU3>KLQ zO*OD>TVw4QaFh))@b@z}saC7P*X~A(%Yk}bf!%IFsZ>R!s^PtV%;M6A6J`LY>$(6C z1CU-U`H}zq->|u?)@Znuk5Exio@se!EWMk$qXKk52cDgB4fq#KYHGH`sp1i z0CGB=a{#hvlwr|<)D*yu9XkvFXlwVM4s`aiuD}D*GhYnq9i3gYY4hXc^LNqoOoS?x znxUzR;c~a~2M5=M0c7^<*>eev+EX(ImbyMO#uyQiW&g`BAKvxU&Rze!a2Bs09!0TK z!qqDu!R2-!;P1rHrbm%VXDqk?1NJcA>1UJ zChht5>ec!G|L6Za=XuV71x9;&yDauE6be}uiYFGj0N}Z2p4+OAee&h-wKJtTvz)bC zb|zePwQuj)^VqObN(v#&`C@4c5vr7uFa7%2XB}0wPYJJ`^0G3N)kb~GD$bog{^X9W z8=eqCybDNRULuOx`Pm4CLQ*Lu-+%X=pQc9t`BZv3VLJUw^yOO~&M#Wqmd~5yQ>j!_ zT_Etrk-xlo?=1Pe+?~?_rIe6T8h|CEr}vyc@mKw;KU`;tMf$bK-~hIACoZoKTX}^U zzIn^xtFQlsQffPp2ZRtp{Z|42p_Eb&J+$kw@9o|lSiSYz+IS+tg;U4Lq^5AYoRn9% z`1EE}WYTHVS?*lb-*@HSC3mgqR7zO@<3ARlloCP+^X%EbH-(2H&yOW02tE3wI(_=2 zczbw=TrS7;kqEKzF)Cet5e(L2T5TSW$Mbq`Z||3c5W}+=MO`Rb1GCkvPMzvnT~*~j zF+Ls_ZkHP=5cLfWJpHqu)4XOKfx5*kU*1evX&LuyxJT6b{bu)>vo*avy~mVNB~nVo z9qOT|fUd4C36M-?cfRn#i`J_jU%eFc2Zh_^Hsj-QUVY^?makaH+BK~VTpy;)W~Xs+ zqq=zar z7!BxFiD|WpiPSWet_r5INsb)-favHLO-oktt#5pXC5=lt+IckX^g44nkxKwHH#aZ5 z20G{fAeBmKsdUO&;dXgVWr7gc9S+9hao+mVTm0bryP3)52nOq!nwl1aH;0&f z)>f@wzrGTnrKP244HQj5M@NSO_}$CDy`D*BO8krJWPg8HwYGjm2&r-K&4V;FHsSWT zNF>G?9Exz)io7g!*bJA;vun$y)l>Sk-UD#;>eYoiK%tw-a5&PFotkpGgn zqD*B{Q{!VS7DbsRR;>htKw2y)(-bS3*Of?B^2pww>_<7EGjpO^5Ei0|Asq!Whqu9`hCzIrrNtxY&0A_TBVHlL!N-)rIxytWu zY6|-D`F!4Lwcg&b26zDXf&~C7o6U&ybc%uDn^c-=2g9Fa_KI;-BT1^Fq?x+$;b#f9;#;e;j@p z6%1nYEv6(Dqe3{zI5hOs2=Nz_ZAI!fv+<-88jIx7S#*vROU6`@3pva#}?blM0K~92<+9Gc#GaZ0XWL zAhu)Iu8S0MuZlS^pR2PFLMWwF>1(h2;m;4=zinstx%0gG#_K3$a`Do~XqrY{ZGcT1 zH5*H*w+^2@cj@;H4Gn$aa5y^;>;*l|1W-od3&26~}+~y*D$S8IKoik9Ql)VsL686#-fZBuz=6K$J$BwyN4nRn#J+M(P%tDvE4W zQYlfYq){s6LqJ4IONB+*LPP=q;gW{7K`aFuyS9NC8*k$o+q1vr^n>lT3iZa9p0DrR z|NXuHIq#nPV2;ty(4bBAEEEdqbJbIGT>#K@`0!(5+AB6}Snu!c?W3ckBeG)c>ch2F zRXrl2DW#nI(VZ4lL{vjVgYm~hhkg?t8J4klOu~_2iN%sKHkOnF2M%>^-n?x)Oz+Y? z!m~*_c<`VOu?$cl2zDGnh z0Var2YI=wn9hj`?@`pA)+xX)1uiotFaM#z@@u#LE6crT_@Mn=sCb@L2MLIe@5`Cyv+C&a_eds_cn!tq z=qNdPxoY8(B_c|nS5i^>`%9PFzNnPynb4Thg(;h*p`k%jO3A)=->tXZ=DDt$UCJ~~ zx^8u;{QP`gd+ilguUSQ~G)UbS>M#tQg^L!d%F1%*_~E0$<})9i5fQhhX)>MD({-x` zkc!2=_LCn!=e~IP%9SM#)T{E!3TbO^=hrX4LSmOcE=dDhni73Ispqx9~teTqs z(Dt)kKdq^%saqo=)9y3l=MsrVM|*nuq_S%Mh-sPR<>$$k%}?;)iWM}z@B(lC?oE6? zAG)sd@rCnFds~~@_T7XlZE?fSVoNU71u$b=~f%^0;*jkEVvB z5f&|6O5b3Fix)4GNorJAE@j8gpHo^~z@9z36K*3rZCRPfgxuVFU@~IKm|?i|oYInD zkz+e36#4migu{dE-M5cW=-XHso0{syM25qvwY7yvbgZVLvb^9ckAF26AQTGCy$70_ zngrmzqlY>N20wET_xJhRTG|C$Dce>YId+IoE}X}b4DncuuJ#UwBg5KQB4&HN+1oZe zvdLMw>Y*C|b#-<3<$wcdu~_WJ*x2aSe_U@(*|v?Y>!KSv1@j6?r;?y71VJfH=hjvjg5^8(3H{!mC^ttWtw#N_EKJ4Lcm{u z+i;`l8i)*|uYpRaDuVHgAz1?EH}w z1xqAtr=_pI&q=1zPH{=8wrcH~&w#;gyLMe-y!JAc1G5RG#y^Lwx8B}+VqhpH$4{J= z?N5c|iLFmbu((R9tCz`!^^eOhpZ}FS^TTH^179vKF7{8ZpH_S}0Du%17YFg#K>eSyt;_wQZXed~5sUZ6^ij literal 0 HcmV?d00001 diff --git a/imgs/icons/2850.png b/imgs/icons/2850@1x.png similarity index 100% rename from imgs/icons/2850.png rename to imgs/icons/2850@1x.png diff --git a/imgs/icons/2850@2x.png b/imgs/icons/2850@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9e7dcb949b23d596df1cd307e8df2bfde3c38eef GIT binary patch literal 1883 zcmV-h2c-CkP)OTUD4y5sm;fu-IvUksf;(tRuZ+upnJgBCMCrsOgg z_wU``$k<_hE=pgw1rca%Z4!VcRBrA(=#zH8@#lBm)pBAtty{eu0xyTIi4=M0HUw*Z z$yHlojq55x*NBKQ#^_rMAOho@k*;47uXf$MW5k+e@x++uS$UO}Ss6?QH;Q=!I$9)s zJT}39@%pZ-)&7QU02Bb2Ps9RHg%}ZG$M&Q96LGDstE<~!Hk(*STN<5bV)&qC9H;&o zL(iRF_VLG`P%4#ObGNts`_qBj=JhYmeS2bzG5y2Nw`&IyOevzFWOn}dh3e*FeG9A&7h4MGq(s;jG+-xtvTeWBBHs`b<*A~JH$33H^n zG@^zE4girSmY08jw8i-Oy@x%^mM>>3R;;9v;UOG7`a1-x>hPV78!Mj@Ak%jKZ! z*RQiv|2p;H$Qws$H*MaunTY0$Q(C~4D*%9@;Yg}~V34Y+DwBnL0Tb~Ut=q5(FTC&r z?D^>)96R<0m`o-Jf{5FB*E^mV|aK7@4fdA?0tPN6jec0br8wP6zlJMh}2ZF)>q+kHay>8 z1AwNcrjj*KvJ2YU+6Vwnx1N4vwwsL}ubcPv573Xmm_R^#M?36xJ2KeXz6^Nopf+!$R5kNkd zN3mE0KwzAMa{-bhv0!DDkr*`}IB?)`C=}v{50~BzbIt((`b;06f92W6&bqolqefgK zCJ3@@hSg?;t`@*KgGrJh8qAv8WfStbsmmvhpS;xC+A1_RH*0eRn70NF;SdABxgd;l z&cPTXUDFVcPr&W*z~l8m5CjOEg9s#Wj;e~l1;!S(Xy+5a4&e|1plm)@BZ(5YR%Du* z!(=jn3+FGuAQ@mPGl3g9ve_)l<#dFHMlD1n@7uS}55NbY0>Bag|Mgy&mjGvs&Ye4F zbi16@s-{8JR3050MJ7Fk#KZ&&#R53z00UG_<=I>wZkKzT&*xj2$z(hL0y83l04l#8 zb4~$71Ol*Q#|~+!+v&>YGGHbd@reoKbD8OL9e@hxI>B6KhQSEP<&7HE^ifqUmF!Z__-paH+OWNC9liFW-q7#NCOxIFtK0)0HDc!)q$R*#j+t` zbC08@b}8=Oet?QV3aX-Gsox2~sDKM`yx8PHxnlyO;k>M>8Y@hJ1IPmC12B$n*a`Cz z__SrSW)mW@blf~T9`?d!x9YwMJN6uOV#Rs`e)1~`KYmTX)6d$mtlmu5+OudqF`kHz z<};I%8Uru_VCY5Q#=WH;k~^Z5Zy;ar1H% zJ9qwE&nGSy-)}peGMmkXTrL;Gmk*M~6L9>{p#y-)mcM9{!SY#MG#X^hVhB=wZ3ErB zmZA%1MrfdKR4?QUB+F*LdhMDg07kZM-P(ic+*2t63z?UUF-AmWdgm|4-+yJ-?w7l} zyV3IZzoA%Aal5ArMuQoFstSDf`7MY>#(LiV(~13FulG(g8l9SnQF0qDNB{uxdcB@# zG+OiKn{Pc=UT%5m-PYFU!r{jzkKfAzl@)q2ksKWxkDc%S?AA#D4*}#C;CoTOW(@yyi1NpZWFwb`j4*Y*({{d|o V56Xn;Qo#TK002ovPDHLkV1hCtdi4MR literal 0 HcmV?d00001 diff --git a/imgs/icons/2851.png b/imgs/icons/2851@1x.png similarity index 100% rename from imgs/icons/2851.png rename to imgs/icons/2851@1x.png diff --git a/imgs/icons/2851@2x.png b/imgs/icons/2851@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6279fc7467d9749d5cf271d371f38697b8e542 GIT binary patch literal 2215 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2852.png b/imgs/icons/2852@1x.png similarity index 100% rename from imgs/icons/2852.png rename to imgs/icons/2852@1x.png diff --git a/imgs/icons/2852@2x.png b/imgs/icons/2852@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e0e4c518dcafde15a61ab3b9f7748472a1188f67 GIT binary patch literal 1635 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 Hu0mjfshsqQ literal 0 HcmV?d00001 diff --git a/imgs/icons/2855.png b/imgs/icons/2855@1x.png similarity index 100% rename from imgs/icons/2855.png rename to imgs/icons/2855@1x.png diff --git a/imgs/icons/2855@2x.png b/imgs/icons/2855@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..83fce2feb47b095e807b819a63ca44911364d75c GIT binary patch literal 1997 zcmV;;2Qv7HP)T${PE*yE!n$hEk*;M!g+Uua2!c=u!N3B!K;p!9j1$L~IJRHEm$MIXP(W;@W7~(R zf9dG`aL)NZzjL1FyypO4=>J__ua{}_dN}~(VZ9#O;NSHi9*>9pyaqFKT7K?re1A{# zZaUbe0{}|tT^`H>c+r-Y7G=M8lMVoVPyn~vO#mPPZ3zsP?cd(;LI)t&^4)hJ?gb!} z(&;umh`g|2Lt*pgXLtPRn6KOIaz2wE$Ktc40zgG=tuK}pr-sL)ONxs0O@t6Sd;T2& zN+|_dTUU2iq3ztclL8=(Yu5%s z{##NyHm(+M>UZ;TdLtkJ)GSS)ckwW3J3DGwymv= z0|1s~v1R=_pIy+Z^Gb`=x}}dc0e~mJ3mm1C5JG71?CF&Z&+QtGO)R@I6jb)T_R70u zRnBRmS+jswkP zAT6^OR`JJQ{W5#3<1Dcj7hx)udY%G%*LyrbOAFx$A#`-0=aI<3%~K~&b#OiY5tQ1j zs4OYka`^S%4p!<@Z#e9>tRM*b;Mho$*X#Y+u3fuiw6_BQ_H1qXK{7GUq1xFpvk1OIClIr!)k%~F4tV&%^)t_=$BWmSj??hx$0`i zxz+{yfAQLZ_l|v1tkZC~dA<{>N@<}{&+0zRA;7_=bq&oQcD{ba?|&1(CE^8`U4Xjg@yECOgMr=BR7SN~t&GF~Sy7~kSW2~+ zO>Al^4WmH_yxja!_?-g>mz-$tkjhF*I3=5-3?YnGm0@?3!)_};aBLjosVp32HYied zK+Exm>_j;sX0zXlPNsiyJvy~-I2_yzfF%?l1faC9)7;qf<3P`~8z!60Mzg9y^g6AY zoe~+7#q{A5^>rNw-h2PoD^@O5%ggQLt+)3RXXPAJIUJB>iCRo1!Vr4vb|kn@1)(OB z*%Y5leT9X(dNdk0#=>F9ih`ud-L&&q;!h;v02uDh`5TxJHCkhU7tGa3QKUw_R+VxR zn-kNA&v*5%>%4fu*yZ!ReEe@888&@yGp%rx;dbyA>;)!-Mn{RIzyhMEThIA?AI(@2 zLZAjN7@pd=ZDFs5`+h2w{*D}rZ}Z3FaZDdWg#$o69uG^Nd{S&!-OxcPt)5C{)Jkg+ zQ(9bzVvE_bI$OK(vFhqizq)++r&lj`)wh0fTrDmsW7Fv=h+>wSEM_9*a`K8t9~;bZ z96vXcA(4_2wY|MvA&w=OgeVq zm*w(RHbtS!^wZ)oMdB8bNu*9B6nxHxZA=y1Kfg zu6uq?dcD3dlgT&(fdB`f2EbJSnLEcYuY$@-tG;Hg`{RaXi)xHIojNo;$_QFkwL2V; z89hS?!KsTE@WEe?U}5beFq;dI8V^$q&l5{QVe;hp3w7yq+7BR`_cQ?D0SEwW089W< z00sa=?(6^nEzk3=;o)({qzPSQ*=03H&RtLgqhUtJ@=PMphRIlrN;wI3yPXsY0%%Tw zh7jn?7UXg{gePJKBd`Bj8tJZ??Zxz6BLYYQ@MHRd;s9s?*a1Xm0CJKfjR2S%i%*^& z3We7j41%8LHA*5m$xLRl#AYugW{VjG1`7%c3SlcL!N8Co6R9L|+DnniWH?1tEx7xl zQS%Ti089RB%tHkM&=~*NnqlMWNL6ESf5BFy7AA&&PosN2LJ$0 z7Ho|IMF1cRf?#$!obEDP=_0LOSCvR7GE`P%J;S;rNh&Z~%p{pgp?`4j&{!n86~OJh z?*qM_?gzkOI#1;s#}&%5Y{Yb48J_2hR8>_0P@d-nj$m%E@HvV^vk#0gOIK z;C}@$TUr2Gy;YH@8bdFFkNVAOc$2)c>o?(I=kI&Z~}V#XP)i%)xE~# fzZvWc{m=Ce1(sRLgHDR<00000NkvXXu0mjf*nheQ literal 0 HcmV?d00001 diff --git a/imgs/icons/2856.png b/imgs/icons/2856@1x.png similarity index 100% rename from imgs/icons/2856.png rename to imgs/icons/2856@1x.png diff --git a/imgs/icons/2856@2x.png b/imgs/icons/2856@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..56e6606a9e8be70f24ad58a9e1fdc276948c0a23 GIT binary patch literal 1331 zcmV-31h9^8T;}FnVxneEHoGAiO;A)69}E&uK|#cz4{q|1XCHUW%i`0* zvaoDI5D^hfM2HGr5ECV8j5d=vI!VTf$z&#(%%tbi)7?|uT~*)bL(j4c%gpo)-aro& z1y$$N`PKh_zM?+(t%t0%@W>`yfX4?21kBF{U_d@-!3$!zfnWlKSsPKgf0*)54sdWg zPIHc=r*PvTs$vkwLRTWH!=n`b0^xGis2kv`?KszOkg_6@mQ6|^jzL+PDiL`*&D>y` z{N60Vj}CAUoSV8xr5#d%rpZ)U6)93^LJhuBp{LqLHBZj-2DXa@% zZG>2v=BPScc5~bQ^yF+y%e`rf&c+zGc3E^pf9T%za##1hbOpNNtHKwSp}>+eAi$A3 zH_c5S9Z0PI$BX-;;S0N*cV8QAO{)oGNqeY8nbm9C&x_M>qNO2mqObqCo&POeQjA3b zj4>jXWj;JQVD_Hr|66YS+M|P?ACKDBv}Mks8$2(O_|_?U-mEWEzKP0)C-&`npu&5{ z_h3w25Q|wLFMu2|Mm=)+tG_4PJD(Z({$e!MdW*Wcac6qSX>7P2DQBoqX&9?U=}2qk zIBqnx`HrWbeQfu?kAn@p!V-2Y2+-Txs}6{0`PV=9saSIVXQxgEQ}L84x2>ak_ruIS z^ptr$vym&^Tg`>GO}LE>Z0WgEm2$ZtH|OvDbW__tIG}s)yH70!u%HF)yLSr*4q!j{ zSZg#oWX48E7@e5p`nzvnDTgaFdGQ=YYIa)ku0!&V+o_g)Mh4H(k!jFkt5$%qVsTLg zmL9@Y>3~8~DnY=U?b1AWhCLpArOTIi|H8Nd*IVQgw#7%ivN-;HlgM97==lc3gpmig)B^a#; z;7~TJ0p97m@TE#5^qP-8w72;s)3d!t2G0#J(BDtR_Zb_%L1%Y2UC9h%)05_#FHR{d z2tosZ-X*4IA09bBB~mvvhUe%+RHa7=&W6 zU{1Vs45?HtfwvUz{O7(WB7be`Xn+3pEnD^F!SgznNQfANKb@y> zZ41Mrmnh_>l;b$ZN-B6Re3|wc4 pH~!VdN_IvI)vS1T^n3iG@dJEH2;aZ$4pjgE002ovPDHLkV1ffEgJS>y literal 0 HcmV?d00001 diff --git a/imgs/icons/2857.png b/imgs/icons/2857@1x.png similarity index 100% rename from imgs/icons/2857.png rename to imgs/icons/2857@1x.png diff --git a/imgs/icons/2857@2x.png b/imgs/icons/2857@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9b603ba88d6b1bd5ab979086c83c9b29ce58c572 GIT binary patch literal 1858 zcmV-I2fg@-P)H#z~P*f~!MR)1`g+6M(EAU^iZz(1n9VBOHmR+C-s)YZcl+nt3Ewzt2GZ_7k*k zw642e=Ri~n(XBc?Lg1s2Qj#~C(6Ka>MCU9?CWw_syX9inv-S-E#z8JA@*+d}g1pc; z7_4vzgdmTD1+;ZhwvBNFIjb!xWqwBiA!e1Q3M99;I~7X*bGNQ5GH%8Y^8= ztuaXVQs(3rWEwB)5Y_!Iv7j@E?DWxsC}em5UYjVLShm55Moxf-1I7>;L8KKKo}*<$ zMWy4hb}WGik&F@CD8P;Y0<2I7(?T~N*f%IA-~8#tR}XxczcWUAp(3-@l~i-a8h5*I5oQ^y07?@GQ?E}xk;uh4IXL7Nh924*bNIBj`MV}i z|2Du&JH}Oc|NeCAQ$M@;$izGMOr4!}qI{|Nvb=NehK+8?u{MwEhzzGR-D>rxL7~)4 z5t;P&{`IbrzI)y%$cr_oc%#m$#O2g?3zSIrk=hn$V}~WXf{z z0z9xqu(D#Q-*zX{Q6H^FleTsU9P!@X;ldk!re1mc#Xlch>rlET1=d;taOB8~d7ads zt0#@e&eZDL(n>{i7Yam$E=u_vH|H#ITe8%G+scCZIt**Lv+N?RWpS~_QuPWM=F_iL z+u!=bOzpY*@4GKrE9f;fuxr;Ha;aL)PMtih+L_i;NCx}52^>kqD=95cKq@CGED3O-y#po}VW4Jr-+q(xd^x5V;|TYIz#j2)2^q zocw_7<+l-zi?RYRXf&0XOR}ebKx%7Zt#!&8qQ3?}2w?#!glL9g_+XMG4{zSI`BA0K zh{;k^I}?8BgLG(A7g&z#NFhN8TtA0V7BEN&uIt)bZSl(ai?atD*L_wgb+tviCKYRm z&;T|`lDDLkKUiK_{_o~}Zd1wtSIazJs_x%pQoor;kINMp=7 zurD}LK6>`-8MD$zNYWOmfvlbJ;f0GdlY~|)K{^g|v-3px(6+Po(^~80)gW6y0$hP> zJLOKbK&;Z2fbu}O_eTT$Da!R&Hy_==`lXZutmZKY0(-T7Xsyv&3u8=WHQIS#0f;*-{7LSHd7!-d w?9^%}t4>$=*mnP?09P&7VcylW{r}iM0NE;A3hrkM)Bpeg07*qoM6N<$f=*zm=>Px# literal 0 HcmV?d00001 diff --git a/imgs/icons/2858.png b/imgs/icons/2858@1x.png similarity index 100% rename from imgs/icons/2858.png rename to imgs/icons/2858@1x.png diff --git a/imgs/icons/2858@2x.png b/imgs/icons/2858@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3342c01cc30373ec95740847554559d311501ada GIT binary patch literal 2099 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 Hu0mjflfBS? literal 0 HcmV?d00001 diff --git a/imgs/icons/2862.png b/imgs/icons/2862@1x.png similarity index 100% rename from imgs/icons/2862.png rename to imgs/icons/2862@1x.png diff --git a/imgs/icons/2862@2x.png b/imgs/icons/2862@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d45b4f9cf489a4d42b3d1cdf744951d47e91af28 GIT binary patch literal 2258 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2866.png b/imgs/icons/2866@1x.png similarity index 100% rename from imgs/icons/2866.png rename to imgs/icons/2866@1x.png diff --git a/imgs/icons/2866@2x.png b/imgs/icons/2866@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6d5684728080de0ede8ea8752767e8c67ec26336 GIT binary patch literal 1746 zcmV;@1}*uCP)6g-8BzyK>K2q}1vahI>M1Q18sf*+P0F&a zKNwTTw5(FCjjjTfE-39b(T$R<$p{H1Yn6nCFcJz$OyW2t{+0%Qi^altJRS`I&B+@Z8@ZyQA_4$zw_78G z(7X3lR#uXxrY8N)eP5Iup_GyZNay6Fv9Xc4EhP8!Z(bt+07@w#gwTTr4?YP7)vx^O zm0tr$b7_;eN9Bg}vCldH0h?jvRTdW+AK;8vzc0&PiOu&adtK-Ahd`rO&)~ zMjRR%Qr1_m$IXce)48sHLf4=Z$`F^Ul!}6s^!X==&9;b&oG96Bi}ObW)>*HVeIa{YK{}5v3Jr z?E(PR;c(pW`~A0j%A6GB+V3Aco@rGDwODnUNF*Ui63Nfc2QTvA1)fr9$Z8rADUIk^ zN_dVUn*#K-j*aUoap}r+xK=D@zV-F(Q(fMRGlMs7+Uy0UKu33f@}4zt>eML;Km%b1 z&9Z5i$!OGNv&`BZ_M~HpgUUvkpPHKDuYEj>WJZJ2wNfo|I5g-PLbF=h#3<&+)|4?q z>IQc1s6lD@BYVnA7Z)qx8CFqZ?8#$CU%$}P(elk_n!*$ycN3tqALm$Ne|OWCP0zbl zxlH|i{qK3b-ZyxjXUodUic5-1UZj+8;johFI)DC`CZlPLWU|@n>Z-3iRAF_Gj!%-u zx9lJlRaF@M_$n+G%jUMTXJNB00ufB4dfkq{0Zn00I&UjRVPT=@_xlw+qaV%c*;NAr z18+}HPX_@A6B82&r_;F~0Et8*$#^^-4`i;1~mkO)b zRN`kxPmDjcrBcmgp}hXr{@(*2Mx(to9-j`(Iz#78!Tq4Vo-hFPTfz8vJe~$8Ny1t0 zW$o>bzL7vkJ=WECGpG|f!*Sd#Q6%Abd^(il4lGau_k)%eWC;OQuPSzpj0O^a?!03;-;Wr40aH2JmeFwLH(S1;92of|*^j&~xs81_{8! o0Bm2Tk^8}y>g__vh5B>jKVdH0DXIfBrvLx|07*qoM6N<$f`#T&JOBUy literal 0 HcmV?d00001 diff --git a/imgs/icons/2867.png b/imgs/icons/2867@1x.png similarity index 100% rename from imgs/icons/2867.png rename to imgs/icons/2867@1x.png diff --git a/imgs/icons/2867@2x.png b/imgs/icons/2867@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ab30aab952970d4b8007c89b4423bf03c9dbcc50 GIT binary patch literal 2319 zcmV+q3GnubP)3&26~}+~Z8L9X>{+~wjcpvjHpbWlNJ2=J-~uU5r9>nJ6IF^T^+VH0NtF+g+O$ez zf*PqGS}AE&B~(fxwaSJ~7D9j+2ywz@!eSt7wt*P%c*WSBH=gm#d++vx?KCV+sMO>` zk976E+q9{ly)eRdqs8Y)B7Dh^`+{B!lhSB~T z;l{>BA%u`p${%)~>wL5~)*B8-!gj(+`15k|&JOesG|#G-^^p)_bZT8gLxZ+5G%ox4K_G4@USez z2xrn6s^?a7*W$Z4(sqQMAMHfdR9hNSu^oF)Wm)C2mX;Q0O7g2LXlQ6qgb?oIPd;9k z98bQs@tuu@sZ`2cvt|vk?wES|)g`PQg3!v_TLU4Ib7Jh zb$dELKhFr~hM7}2hZXm(0O0KTv-A%1($m|+f&~k>&~*Wi?%~cwcQUtnF8lWEWAFaG zD6T?DaS4`XfdC-{Q^)>w(=9)#Cl>_SSUh4Ra6Y!KuQTYHvpKjzF40;eCV)9ji-o4^6_Q+ zDJm&uw$G2p^l+)Cn|M6VruQ~cP*6Z#G>_-kJ{q{}Y-Sm;o^FDEFOe)i?WaytURK87z#!Y3n+b)(?EH8q=ey3caKS=!RNnZ< zdbWMM4OKBIonDUN@wkp_s~sJkdRtpt6i5Q&*8w0vN{O!P)YjHgQ(Z$K5Fi?jl86uS z#+z^PUemi&R#oB(m3YF!^!qq-`V7auIL2q6eTr%)IB=kiMT@6VKGVb5OCfS|BkF|< zT|%T%UpmF>BJVKEo zSynz@loaK+4h{CcTv0JSqbo#!BsyuXDMS_5W6HQa_86j5I;bzl8j0Gx3@^C8CjVC30npH;pJ zfe=Ch;`oW~9rpr(`NGg>Q zo#%RvJbeG{qHg7H=N;UCK>X(EKVW!}?`LlnKVAKh`ov?8s9TypEkG%t0{&nyIJ0nC;T_R}=xsTn-06{USk=8cKA(?62M;?QT~h;oofD_px7;?v zG-j8TEdSApd&LKvw#uBm2yLg%i;QI@TMo6iM{>d$|&q)uOyy zxo}~%a^U1ywtjNt;L|@_R{8h$+g|GG8Hxd42qAWS{aSWyb=D?D&BJ>g!SYcQ5=-Uro0Fvza)Z pDf@okjMoT%@8W`Md&^DOzW`gV+uF08lzjjI002ovPDHLkV1ivQcCY{d literal 0 HcmV?d00001 diff --git a/imgs/icons/2868.png b/imgs/icons/2868@1x.png similarity index 100% rename from imgs/icons/2868.png rename to imgs/icons/2868@1x.png diff --git a/imgs/icons/2868@2x.png b/imgs/icons/2868@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cbb8802c9cc8297f41210fa874000805b47b519a GIT binary patch literal 2369 zcmV-H3BLA;P)458703VgzBh07eX$)cGjS5z6UR<$6Dv)kEQH2wX(>fXXbG(72=bm%!I~VxBzMcqUj55XuV~kKr!5AZ*ot=Dhb29}%uA4Js?3zBl3g#!|wQCa(wbcQ&ZF6l`wnu>`@6J>}vtEvR3X8 zIixOwd}m~2B-B69f5TF02}_A3gr~z$6a`MF6NC|Y`;P71rT)?rRTWjQP)bJ``@)w1 zxD4Ve0T^S15JCWGL*XHJfw|x}UGH}tdGT*AlCh~VRnQ6G2#3T{0y>=zxlE2RFy3r6 zqjEzff>pt+!{K<>WHKGww{KrtNlD4#l@MPF(An9^@7=ps0RS;4em6WG{?pN;M=M)f zTNx!(v)Qej*FQ?fU85!rY@TJpV%RnKNfJyWI|#(?vB^Lt0G3Us?hwmqA8W!EqFYzCw&o zOro^31m%HpSgaOUZC13jv|wy}3?83Hl|+f7I{N*osi_kHH~=cWB66x}n&qJfANohf z>mAR%+xcE`ZLn57^0OnfuC|V9iiX9=BACpO&&$Z&8cBdWwfFGM{w&1`IZ$lyxhu!W%QDG5ACr9!8^UokY(ubRGs>7#KGHfOpHj4p? zWClFX0~)~8<%6vEb7LL=nwy&mAw+9xYO1+3I#w5p#ZX&Q%b2DiwirV)nS_`Ykxr%2 z*WZV!sVP_tdN8J8*PZ|_3|+tzPdYrwe-Ah&WBlb_^n5gn;*v5f#s|UkJU;K} z%f$mgC=>z!Br{3=!|rZvDiWp+haG048E%&wfwckX4SLK*W+A3TL}zCaPo&ULUyoz| zJcgq$AH%ITl|xocc=V6$xbu!f7@f*sejx(NDKMMONK0uj!mt!ux*A|bQbJNW0|%?s z0;A3dQ4|qdh{0;Lq9Ry-LxNf?br_RVkIP9l+sNG`K< zzJKtuT8q^&cy4g~oxisoYj--m7w6~a#mgra20f*evsf(5>+`DVOqwOdC6pBxp)61e zUdKaGfJ8ivL?Q_(pNAmmp%?U+ip*k7ffrdZ1%V^jzH>j(lnj_E6{U01{=tt23WFP~ zZo2iB{c98jX}jGnUzGxJUQ`Pl1&e{=fLkLPuL&BM)y@ohJ+lx-JPn(PtT1pq52M+P zbXLLni-V}#uz{)RIg*&4#Y}vXRa8}xS3BN-sxfTdw3#{VUM-gswUP55aFQm(0E`_z zd{_>JLSF!A05BVy9Y~x@94IR*`?ka5sB=1;+njc%RWAsHauk$MO_F6$juHk&EM^Nz zi%T?s(WO*MY^*KM-}cCZ&U4*o$uA%I9RvaFxa}1A(SaXu_uqRb*M9mP3{50sAS639 zG{mj0ft6=BfC>N(0F+Yd^OyR!xZUo}g}%aihuvW@T8$8N0u)u%1_t`EwrmZZoC-&M zCNZ_8raZ8J-(KCx6Yb3Hb)o;_7?DLW`*!c}u*dB}I+J~UbSCv{Fh;OEA6|JlTL2XC zJnvYytuDD>6@)|EH9-R>=Jx7#={&<|CX+H={=TMbqA=J52Kq1a_* z^>v$Q&(I~DdaLi;uYPi4)zioO|2h$g%>WoAguJ** nSHrK;b&vMTO#ka$@Jjs~i)0$zS%u%S00000NkvXXu0mjfAbC}o literal 0 HcmV?d00001 diff --git a/imgs/icons/2869.png b/imgs/icons/2869@1x.png similarity index 100% rename from imgs/icons/2869.png rename to imgs/icons/2869@1x.png diff --git a/imgs/icons/2869@2x.png b/imgs/icons/2869@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9299e268c74d754ee22a33ce5e1d0e7997570419 GIT binary patch literal 1884 zcmV-i2c!6jP)BwqV}PwRH;&%x2DCkA%apaX%*vu1H=Z5y%=MBfyHaEy%*2!+~=G=5E7sU45`|e ze$qUQ&VOdU@BhE^{|ER#{>LD54P>9L^q@GvBbVVJnH+)v7e{mltqB_d2m!kv0^FQ_ z-d8W8tjvR|j~s-WTm%Cyt~w%?v|KGX znTNz?AUY!;ZVE<9hpEW$suUI|ta1yhlg3;#a(4oKts-W6Vi2;g!eudVUJ<5~gJ5_- zkb#IlgV|kxror~h2yqUyr~}Kg$eN^nx9{Jv1lLkp4+z;XD3?GevaTxx~}Xo`6@XMlMNw)w@{!Q8gkj&net8heJGcFz}qr{6Y|f4L}fT zkj647Mf#nD&bq)D2+#BEwO3wTf8j#!8>t}0gs7tRm$ zb@iNYIo{KgU$)RIy!}GSiQ{%sVRo_%si74+?Hu8Ls zhn9LDm((%R2J2ojzyok2k>YoKe&4e}MKKK(foNnXL+T?U7Td3 zFD3HL)ixqQFOHluQR3ye{R19QS7)}xki6oqok-gc!4S8ceVz1ve~YH}o`L@JW(cGM z&RjD6CiRHJ{;gMHhvi*XS13G0X9>h zsiAYDPY@BRWg!m$iUO;mqFzlT60??JRuh(&mwPFtZ!re3pqX`)I_rufVNzdPLjoQf zBhvr}6U?PpUX(^(%EGaP%AS6_&RM&z<^7kp|LUDJtCrBx(sHML_kqj0t{0+FIFpmt zNZqXjNG6j8fS&*;2hbL;t8bpsRdjTIOe;!Dx#|ZNqcLV7rx9GuF2LdkWN`8nXn_ujx~i!0vy1baWp8o&oemKisYlFaUl4GJx*M^wds8QJnf^ zan7(9>+I}ee>}oLvv@#|5by`kymB#8lPVh;9-{TNHQu^KRU?}oeWdr{riMHRx?{^z z-+CG#?yY8=%lr-ks22obVE6LdHnx1@cf{lFYWVsyM;HSk1Z*xBk{JccdB<^fPNXKb zo$2fQrR~_mRTbrgP>WNxqE-ZiNbU8bHqH^JO(nn@A)QA4`(=tKo2HZF2n5*D|>@PM$h>Wy4o$ zCN6S%V|8t<@YlWjcuIlBh9(w?mQk1Kth@U#8=IP<0MORf#sP5WMBp@yWF<+; znx;NlCpI45du0bC5$uC~`^fjc`xO7KzpeOSW!k`6k=DXFrOg^KdFLLhM3b z@8}*JoL3wsx@P=scwGG%zz9GXFvk+y0tG-Z0P6L^k>xOpm6TTHb#v>XjuUSG* zsewCodJy~ndGeE&pW6`c>Yq5+KQuWGppOs&#>nR<;a&-l&(vE0CN&)n(KAel#x9MX zS7!uoQE)hwL+9zexwLBTw{33kp2KJ58C4sQWq}HUd_JGQxfk6l0R~{|`pfp_W&s@? zPFNP#mOZ#IxbxsZ|M2Ch6JRU}U8>+6o>3;x#2NDT@C9fad{h z=7Eg?AaX+tx#779_iMtN5cYfGnS#v$FaV4JpU?m6!|lJ0S=HVy@IQg;9hKo875@v9 W`aCp}Qf*QI0000vg2 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2875.png b/imgs/icons/2875@1x.png similarity index 100% rename from imgs/icons/2875.png rename to imgs/icons/2875@1x.png diff --git a/imgs/icons/2875@2x.png b/imgs/icons/2875@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ba8d882ed3d4679a4603bec8b5c573f62c7ae33e GIT binary patch literal 2043 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 JPDHLkV1gn3tyY zJhT!*s1e!P5DM-R8p)=i;9?RmDTV-E@jf$N#`f&Xox7es)B%zceth`w(yo8@yjWgYbvu<2 z6{=~3Qi*6_kYzQfDiDJS8dylO3{@6YO-^XM-jdZv7o^awYo(huZ?`Q>2fP3B#%o<5 zB>BY!T3Q&iwrT+Ii^Fd_PW=Apx090mR4^XpZ4PIL>MUS2!cxK*RaMiFt78eH0X97k zUZ)4k$SenB(*|=gHat+g)a@xMso!87N&Jk+#3p6 zzW370I|D<*J0r3h;fqTDBz|RMq-2(=jD_b}gDFqa zPu|Mj4oteeshedvvTf_^^^qX^=ZoF>W{Yt;_TIa4cURXhx&J1ol(OGEaG>!= z`wwhRq$O8wp|?WsD{1%Eub;hq_OFEwJ!fO26jLhL3?|de!0;$EmET-b zx$DJmePi9@b#({I*^xCYEGq?JbpntMFn@GN0v2kO_RatH7IensL?B)&CyX)(nJkRG!i*JBw zZEe-+SFd(|*xmi>#^?7Omucg%V;*IQqLCM9`0T6&91PI zDC&X)Q0~;JQ>3}M8D(2`)Yd-pbpL2*&dKX^rijr@$GScu86iWaL!ppQh^583sja@E zrKaJ*0iveTU^$L%Tw4d88VL< zd~Q$9)Zk!oHX1nuK;e!YIYI#7#?_0(NuDo#qM>P~yl$0P$TJ2eFd~hf@0@6^sWDg> zrr19?K)fZ7AhHmq@njM#AtaW~Ad^WW7LTH;vK&;CFfu$yo@{J@Fnt><3w4@r*>b!& zHHsKj$Z-3a=#7sr9RqL*0Ju~tMF3!Gpf`sz=dP^Z`P}$$&nFli>Ww5OCX)NUyRV?g z=d+GZ1|es&w9w}v03jx`4KqPM{8K@MqY*glxkw2jL@|q^;u47Sex%0xAulf@p{W2~ zXxfG+N=tBPeDdTCgW-tXXpBdr(Zrpvz@Rh0WU(1KPam%wIRAm6>1%tGJ)Z6J6PCW-9E!Gj7%vdcM5Pi0}+x*X+?GY(A-dOUGopVZnObpJ$4^MzVePZfQC)zx~*2e~6BZ2mevK zW|e2%n$>(Z8u9|T2DIJ1h$8bLsp9b})5;Z9CQVhLV;OJ^P{=WGvcQxgLsewB3tY&} z%|$pKM*l4ejsgabgVkzBa|!IcLZF20Dy+RB%BHGQbIwifwTiz;L?=)QK79UPy+R75zJ5~O!cCbVZV zn7y|EX=rF*0pJ3FhWij*zy&nib261mk)Ea|6|JqT+hN-Oh{v&iWm&0L5JdIEt9^m- znP>+E-dj|Nzypp~_rWp%Rg1DQ06_rB#XSOmerW~%J@DO)r<8tX3jn?M;md+qbbM;3 d_pAW`{{m0ZfRW@m3L*di002ovPDHLkV1h9qq6h#0 literal 0 HcmV?d00001 diff --git a/imgs/icons/2879.png b/imgs/icons/2879@1x.png similarity index 100% rename from imgs/icons/2879.png rename to imgs/icons/2879@1x.png diff --git a/imgs/icons/2879@2x.png b/imgs/icons/2879@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7f22855d0b43b95cddfb94eabaf4f930ecbf2e5d GIT binary patch literal 2151 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 Vtn1y$-^2g_002ovPDHLkV1hJbGtmG5 literal 0 HcmV?d00001 diff --git a/imgs/icons/2881.png b/imgs/icons/2881@1x.png similarity index 100% rename from imgs/icons/2881.png rename to imgs/icons/2881@1x.png diff --git a/imgs/icons/2881@2x.png b/imgs/icons/2881@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fd36694f7a7683315bc9a49c07c5273edd795d17 GIT binary patch literal 2014 zcmV<42O;>0P)By=PsBmr6_1e%y|GqDMAV&WurV*A)W=Y0E-%Tm^Ml?c4j ztE2Cn@BQ9K&-=ZX13X$Gv-)Vo>2xxb(ns$Y02VqnTdnB@1qGVfB>@20!*uR+IvGNU zw5qy#4F&g{e|#*Pfp4OQD5Xo@Kk}jL2e0i3FRNO8 zMQb$vk&t;($fCu?>2xwBB_*V`wpLvDe*b&*ze-lCescOui>mExCs-o!R1yv=lU0WX z`v%S}`o%C66d0+ z+EITXIWRd{JU$t?B4fES`Pi5QfC3%V-4gOK9$`RJVegNA@O91fYSqN1w)FNfZ|KIoQ3!_h#hHbuA0 znxEQpu>%0uLaS969UBcLrzG2gkzhC+raAxt0Eq`-fB>K+OG=W?o$YvU|2yw)?d`rS z`G$w}lT$(F$dRL))-GSG10WlVP9^N+Wr@rTqg)ch(+tB)00iK{LO=n4q>_n4M;f15 zRZ;#zd0A=nj@SG5NI3cy!*FMJ?b$UAAjU_dI*-SjedF4-TQUVFkHunf0MgeV|5aWo zy&p6I0F_Dw$BrFuL9I65x0mbp-2H{)dprMHP+WA9Q6?QVo6YHSw%?S2`9XpZA^~7P zDVc4xgb;#gG>XQzP`8wiYF=2(uMn)>g-{|^9hI2-Kms9jwh&2_QZ)dpQmM>C3~8}g%&O67GH1YndOf#=vC%QXm|-p##e^~? z=W5id!YosuN0*xF^?JswrKQHSrAtRHG&V;6rx`h&PG;Y}ebVm_9Qa{w zZr)GDgqSX4*+?Kb(P_@ij3*~)><2&iAhWO_FDXrzhL(%QRiJ zvT`yjiP%gglOo-c31jAC;KS3>KTfwZe>>5{gAgv7NW9v0>Qux13=jY^XKSluW0=7u z7R&W)i^czGPcH)D;5tsJ$hhMlMNvsH+B&-Md4E5|M1*R!IuK6IrKGC$h50#pulri| zdG`Rc+B9*)Q|qanlM|CUo7u9iQkn`)4S&*h!Kq@ij$`3Onf zoR^;U_yZdG^#L)Kh$pBhVj>t~y1LGZp-2epR<9&Qwj!FIrY8(Ts8MIYilRcaH2#^1 z^Kr&%D@N_k@6+bfE&YeyZ{RO>e^$P0`wLL2QnYrveX^&gho^M59oN;>aa*@P_a>3a z-bhN;>SY`UQ3RsVC^(LliGl!85TR13u=n*n5G4unWDO`GNLF%S2?J4(ph{B1m|?`o z-62}L^Cc9Q+NJt;>wRPQM(z@ly5ii$PZ?dR@osl_cgp6?o5iN4rkD%>B9Vyh&frjv zCMmgjO!P+x6(xa+EGWy&q&%UqgdmdyNls&lg#X?>Hpowt;8ci)gHuGoDTK0$(uB!m zU>L$w8;n^wRcqEuy%)}~_ipxmt2FO11bI<%yN86~iE9%8syjP7{|z9v=tF6N#j-@N zQ#Vx<8%nH8ix3(MO2KfHX+7VI@nCr5wtwNx0K))o&psFK wd1!yCWPV`9Oh@_>fb)xoC1iop1^NZ~4_LTkk3DAm*Z=?k07*qoM6N<$f|n7^cK`qY literal 0 HcmV?d00001 diff --git a/imgs/icons/2882.png b/imgs/icons/2882@1x.png similarity index 100% rename from imgs/icons/2882.png rename to imgs/icons/2882@1x.png diff --git a/imgs/icons/2882@2x.png b/imgs/icons/2882@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..84f0f8a0f552cce0ed3981a4312575f12c101beb GIT binary patch literal 2049 zcmV+c2>$npP)nj*{i&9=MYoh4wx(%uRm^H~<1b3zxM&#~6FfW!yV9l6)i6 zKlBoS5CDW~YeRv$+E)V={)Z$37-L}4fN~X?QcM!rPaOLEz|LqiDiVo=`_lwOqf?Oq zXuW0G+aAuIQH~22+%1>O`BHu|#W+(s*M#9U>%4)0$q2R-3;;BT1Zt|Q$zy7Yh}_gf z=CK1^T^~*drG8vM2PF2xS+HtVg~9n>q^3PWcF`e_5L_@_*C9<4U<@D*R}qv_N^s64 zTqxzxk|j66YnrTopuZ%9G_twL+>ygaZokymcLK2(|DmK|u~>{_Kb!?imn;!ZX`gQB zkC5v+nr=vsw}MHjK}t!C2?cP)7+0olkk{kkmQ{dZ=(zKayV&fO7IrzCg>IOJRVb=U zqp1p?FR&Z{V)&k{jYgw_F-BXr##L+klBaduyU#Ga?XXL(A-Uv20~b0x-U{fZpH-L! z512X+`Ai-Pcv#qLpkviaibmHX7zn~Cl`yNi8hOh`a%hN^?7RZX{0g`HFY?Y#kyyXp z1yCDqYJAh0wANec3`mg+A|a#%ml8w-U7BD75EK|=@EH-= zYG_b{$q_X?I3TTjfn0JpxnKZfcXzkTW=5V!BwT1(`;)(W?!7rpEpyAovI}K%5V6Zv z2>>8C0RTMS3UJP0dNoKX5Dru#5{alqix$`~zpz=)mTlIyrlb7X?p>75WHoXfa%@MW zhAxe}j(RGS8tMYzFks3c;_Y{P%CZd6z#B{P@%T|29sZIFakUa6wdtLUwJWNd~LKj%K-{P_&Bm z&8;X-OiI^sBoU$TjSa>HD*fZwac)T7+YodvPUPItV#yu7H16|;!bG;sCq~k}CqjSVaXDhGK0FBhG%!}+R2mW``n5^AXqi4s@&Yvf^c1foXk(kbb373*1l4A2}UuS zg|Hoza+45H5SorcrT{B5j(?snV{~|!4-O2Nx~416!3j7xKGy#{faB9w%`jzbknwn2 z5fOW9`*xmBjcXo5h;TTF>RI)gZI@Z^H(wJmHra9igT~mvMLnIFfaWog8MqAPDoA~* zko;BkATShA<|D%cFg-f%S$-p5y|hg=HO+Bnx3t`&c>?3%#@2qu0GdiAZ~%;PPK-#A za(R7IlWJ~lh2QUIeHSk%!{aHoue{Y5>^ZBC4qSj^I~ci`L?M?$$tob1$wCT&QZ@@` z@-hNGp9%yk>Dk}>3Ts!ltLEl8YVQ0+YbpYvKPt!hY$Dlv8xcT6>}nYjVQgYTYnj{1 z1+j85n?>)peQfcP#m<78+w|VEXL%uSDW5NZzKa(@M1T|^5SkhyFmwY}F;6!%Hj-u) zQjto3@ar#+YUfU$=5yyQ0EdVei^XDm>(;I6;isN_ z;DLwMZL6pZHFoXz2#%7t`~G{;)7yiQfk8lM7#bRaUA7@L3C-t4T~!sr;V|-r0v0Y> zfJj3Gd;j`p_p5!Ma#hMR*LB`)oijgamGT>(c9>RH_Yi@*Hp-uoVXdTmQX^}K4o{@L>Ow#L=BE@MKlhacbg%8t&? zsQAu^X7=eoBog)q>wLc2fbyG_vaFQ6`OXgM(R@;xoC%k+v2+>*t4KcRNLk53-zT5s zdU|>;-Lq!ty8fQt#Dfp6bza-HO@4Fw^y#O5`}{kZk--gBq2SVv+gBEMe{uBDBd5-N z0U-CC702Uo6^q6AmMvQVAPpeD2QcMy%gz8OTn2Lmw0ydt`NLji_)rP~ZZlAv_xkHL z0RGl1FOI#P9JE)gx=phR(#ig5#VspQ z9rU?YzJNnto)l*<3V~vfz4RE`YXavhx520pw0@g%j>%_U9rBaLDS5^^#aG$ fYq>&7Gbj89wr-SNCITRq00000NkvXXu0mjfSYzAc literal 0 HcmV?d00001 diff --git a/imgs/icons/2883.png b/imgs/icons/2883@1x.png similarity index 100% rename from imgs/icons/2883.png rename to imgs/icons/2883@1x.png diff --git a/imgs/icons/2883@2x.png b/imgs/icons/2883@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7032fe7351c82b27b933eceb179c01946a9a64c9 GIT binary patch literal 1913 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 R-gf{1002ovPDHLkV1gDk!CU|U literal 0 HcmV?d00001 diff --git a/imgs/icons/2885.png b/imgs/icons/2885@1x.png similarity index 100% rename from imgs/icons/2885.png rename to imgs/icons/2885@1x.png diff --git a/imgs/icons/2885@2x.png b/imgs/icons/2885@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5a99cdd01b6e1cea6d63e42550f05159f6ea3f1a GIT binary patch literal 2108 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 IM6N<$f*rg&bpQYW literal 0 HcmV?d00001 diff --git a/imgs/icons/2887.png b/imgs/icons/2887@1x.png similarity index 100% rename from imgs/icons/2887.png rename to imgs/icons/2887@1x.png diff --git a/imgs/icons/2887@2x.png b/imgs/icons/2887@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..832fea9c904448ae99ff77d2bea3d0cf5f1b627f GIT binary patch literal 1709 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 Eg3VWAx&QzG literal 0 HcmV?d00001 diff --git a/imgs/icons/2889.png b/imgs/icons/2889@1x.png similarity index 100% rename from imgs/icons/2889.png rename to imgs/icons/2889@1x.png diff --git a/imgs/icons/2889@2x.png b/imgs/icons/2889@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0125f28431bc597ee95e8a04efbbf8d4d90cd244 GIT binary patch literal 2022 zcmVi`^t5dLo!z&R(t&twc%L{LWtl?eg> zaup80ha>OUFeroUbIAI=_P)B59c9>3-)^3E-R)j2{f3%tW}Z20>6E5EUX(Y=I;-yu?C7<3n)zvQ|cwZw+@Q1Vj<(SOToYr z$ewze%QXC0W#lY}`(QGfo!kjztB0*lLx7zdF>y zAsoM3^L9+0Vg6n9{=d*t(xJ9+?J_C{+;jsAp09a7LVDY z8HmT@l&s%tm)ywqhR&YQ+Rtyb*RS8mJaVx4xPaRk9Ypf*#H`MfX;TuJ#pb4_ zHmz!3wc9WZMUtcl0QIpP;QUT-Ug_WWIhV8VrBgW$a9S*yNK(Km+YmfO(!8_@n$M57 zPo744z7w0)br6SfD6$BzSH?mn&sTMJek&5GyEr|UHZ)BO8irv$(t&t9P66=Q@!?$= z-BNTWxPmMb04OjS(5fJ5UKnKu0iPc}RmJtO2^|09c?{jS4c#pD2 zwd!eEQAt1%gc~Q0U}|I(W~qQoF$>3aAxkpA0LOJuwkq%{DmWM_whiJEIF?OVCPxO} zeczK#B*U)D8!aGwx6u0qkkhA6QvlrS^Zrots%=`R+FkvnXJD7h(7YOwqrm64uJgAk5Tl@AS(dIXnv5U$d=Q3g>}W$wtaGp~ZuH!RDV0zmFMK;!Ya z`@*wNud513zbIOiq*7_>@%l*Fvf&GO@t3pjq2jve-LVtF+FIDAg$wVV!Jp5Z#pR2a zFq4=DXADhEHR$Q-z{>6}sH%#Qi3Lp07s&X;G&2pWuDhf4Im@!T?|yCq0PFVbk@8or zsD6$9G*Vyvjk-u{IZ{_E>4hR48X7`Xbv5!O1A;*D!QkKU(zo{@916oImGHY?{u;B1 zDYUL=M#->{Em{D8Ouh)eS4BEgfFg@%X$tY$+AvfR#rUy5{e(Gq6+npsz@>(3yoOR6 z9OsjB^X9do0p-%b6)FfKU(?gWn9I1wqaZPr#IojQIF$fF@)0_C6t1gNX2M`vdjKDa!HqlXW{TNQ%iIG|L3*Q@btHqSkZ z!h?R5UcWg(?6Lu$roy((+j_w`m@DY712FFwKmc$6@HaMAKe@8wIYFl1lmxOl7z~j> zFo;M)6H{cFBSkgy(YwE{P&f&838FHVext!!j*MvUEcc*(tMZ zo+=ee0|2H0SPygn0FA|B=>KSpQg%GMVWY`}mqbZ=M)g;FBhAfN-rm8&HDP}A&QaWdgpHN zF-Z44Qvd=!#ii$QK%&v8aL>3U;G=5)qagnc(*G^|9TUTw+o^lYo&W#<07*qoM6N<$ Eg1B_ivj6}9 literal 0 HcmV?d00001 diff --git a/imgs/icons/2890.png b/imgs/icons/2890@1x.png similarity index 100% rename from imgs/icons/2890.png rename to imgs/icons/2890@1x.png diff --git a/imgs/icons/2890@2x.png b/imgs/icons/2890@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..52b8fcdba2acda5a662a74ad8d850e976ba5f506 GIT binary patch literal 1643 zcmV-x29)`UP)-t2w%?70mOUMJZ25-0Ei zpENq>%$b@0`{%#S0RLm470(U9?ortCwriIFfRF^+42iqJM#LHC{Ei6RHOrO&0sx|0 z%Wxv%obx+gXEOwr#`2zc|3OidUTzvqCd)GOsXj7nKz7MiSTgdGD18!-_rHDg=t!zH zZ%szxCI|okfBDeCpSax0&%K%#vP*{E)DaGczzH~i_B>RVgwgZoo`WO}UAy+dv$5Ed z&GkrZh5!eEdR@O{TIP@DX6Byg=xF!nO1bdZ#jzf*TNTDHUbgqY^rGwP#8n|ZJGb+- z*WL^Qn8Sb3A$@Eh#_!1>w)HXVk;!^13@ zObSELx&F98?ColAHb0#N1WE{ZLJas5u>9v zIQItwLGoxSOsC3wdhRy?fYvdaFbpupR;KH_BESF$tBfT8luRat-@X1i z2f$;!efmEpQb?uJs2di7LDR;fnH;Q<2R5=1YfWCYpNO!Ob`yz2=Z(zF&Y`ED`TfPQ zi>x~uG*!2>JE(PDcDpTl@4YkD)YMcJfVFa=_259nW8Q%8r{PHC$>HH)QD6ijIEh53 zhjShq+&TE%{_ni-=dS*q&j;cI$G69~QSX*cK0iMvsWKlaHS(WT8qLe!-1F#}j*j4t zm5Q$n!=)cl0AGo8cb7TQ7PC>C^ti=+zdCm8ThT~+tz0v<}Gg0@dK) zlB~MDiXuO2=|&(J3WoL$eGP5xUZnCInu~0QIZP25x>O>GSvc|0IBL4-XkHbia)sQg zQsAcZ$jOuEt^x@O7-az1${p|kh=B748jZ$-qO80V47XPeqxm3{pq7dyB^30B?vL-V zzW?1F%;GkE{Lwr*gOb1<2~YL=@Yd-x6bZ0w4uKKNE#&#a%@U%KHutLs_T)~UJO`jb z0Gj{09>h!Su`vWU;vzC zGP%v8d48?=H2-uaD}i7KLqVY}(jkiuh0Eo#e|l~fvM55aMGyll)KRP&sFw~807kH`M-FMky{aqQi<$DYk(*@d$gm_Ojh58wEn?N(*hw1_DVP0pq>$0~)= zL`!(Hwe7Pl0>*j-EEvdGuok>tFPWxk#|F0Ya9fy|APU^JuP8omRdg$ZvP*_(Tc=!Z zSHz{b26SDAWtnFuu1vgDuh;XfEx!R^5fv&! z_;~u-S z3s&}X03iTcOA8Bt3xEWmfyH{^!eY_V0o=s$oWJhL_>RCiC&q4<4#wE+`vB4M@7qE* pJdkYmw0i4qu+H3j)Aaui{{+vPdPn7MUPk}`002ovPDHLkV1fZeCglJC literal 0 HcmV?d00001 diff --git a/imgs/icons/2891.png b/imgs/icons/2891@1x.png similarity index 100% rename from imgs/icons/2891.png rename to imgs/icons/2891@1x.png diff --git a/imgs/icons/2891@2x.png b/imgs/icons/2891@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7cf2ec22b41ac3d42cb9cf003e72bd90addffeec GIT binary patch literal 1560 zcmV+z2Iu*SP)azzJ0{zbHy9Hw)o*^zxg~M zLZMK}ex(i&;c(aj$fUDJTl~K2_U5`Or>X`4IW#mRC~-Qp5&E2pjN-7Ag3qF z86Fz)0*-JvyedR#?ND;bjvs$XQ-p%1i1@a;D)Gg@W8`v$GvRPJ-_z5htU>PF%NyHZz@i_4e@XgVohO zho{0W=2EF;-_~sxes$)zFHYW^OqJqS6hJT-RQvk+%;&#*=<6>YdFfn7$3a)@#vnI_ zV%)lQlU;juvuD>X;-lm5%q=Xw-qF#~ZQo*#BXK0g5^uJ*w_lS|DnbbBzrBlU!r7Kt z0U)LN#PsxpEBwak!q(ab?U`r3A%6FJlk`Gbj^DX!y?^=g{^pjp-KJ^Oe>iXzTbXUf z;c&jbp6I5%QB)H)Ph|ywowAxs7q7^3=iZifr%QbJuNz1-P;KJWsZ;8}l>tv6;IDt{ z?3va0?VE*z&?Ccx~g+i(j;^6^eF}D;#pi0G=Or=C3kK$Vx~YuA`w$nRm$w1z2#DofgRfx z?@r$J9_TzEr$2HxnqzQqaQDj63Yw~kuCA|``Bg(a9taGa|8xJh9&c`Y`Y#uwzXa&*?S0^; zR1|=elFG_Tt+lmHnVFrTwx+7m>2xrgoDAP)pb=bqFF_x4PG?Bx@-&CWclLCO3v;q6Yec` zJ{r7g`TdVkQ(KE}v#ZADe)m11ivqALi>|J&r9Zv%j;S97H7n0Q7;W+3lbR6ltJq+Nh%IQ|@vvs?aGIMibDW>-v*`4{)vr zmVjq7&!VqnUjqIK>8@g-T%SWYu4?NcoooUSe6a=HSpesfcLx+l_CYeWq0+o ze4*L&cs=vLAAleGe7=e8+qX*~0vzT)rG8+AOP+#4u5c)~npg7qdfvPX-t)0`k{OP0000< KMNUMnLSTZ33M0?} literal 0 HcmV?d00001 diff --git a/imgs/icons/2893.png b/imgs/icons/2893@1x.png similarity index 100% rename from imgs/icons/2893.png rename to imgs/icons/2893@1x.png diff --git a/imgs/icons/2893@2x.png b/imgs/icons/2893@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ccd422d572e0a906bdab927cfc960e8ced1f61a3 GIT binary patch literal 1956 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/2908.png b/imgs/icons/2908@1x.png similarity index 100% rename from imgs/icons/2908.png rename to imgs/icons/2908@1x.png diff --git a/imgs/icons/2908@2x.png b/imgs/icons/2908@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4309c2e2deee659fdd89bf38dd84fbf34f608d2c GIT binary patch literal 2273 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/293.png b/imgs/icons/293@1x.png similarity index 100% rename from imgs/icons/293.png rename to imgs/icons/293@1x.png diff --git a/imgs/icons/293@2x.png b/imgs/icons/293@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..83da1e521961f2333593db31eb894a175269bf18 GIT binary patch literal 1036 zcmV+n1oQieP)Mz^Q54ePGcBNIo)vL?Yn?G)>bMftZ~gzN z$ji&ao$GcPhM@p*x8*tkG)+s8@<5VJGNCpyGNNL!SfZ<|YiN9I+-I7mqr0d3rlx7= zy1oD`k>z2Oks^_ZURPI_1}*?9faifXfcJn#pt`iQ)ZN(F=-9Bt!C+7ihr{WBp5ETG zjkB|}1I^9N&$PC-x+^LwdAtL?~bfnqOkqZ($cc;%H>NZ zmY0{3A|hronGg}Vee;GC7Z%)f|o&_9syo{@% z0H@dME$Z*@e?JzB&7=~WNf9wclJeEbFBfW_e)2n|RI_0i`|A!o_u;8X=MB3E$)qGr z5s|t1x%o4vzxmkZq8!M{1VRH;ZEbDo-MjO{A|jSpA|eS9k#lE%`1|ER{UzWy&;-iHAEI}HsD-RFNiw`hYru-D41TfhBWUS3`eIDv;gUbMz=*s){B4u4nI_r2-9j$ixL zdaLQp-+@lxNKQ`9fqb{S#NL%rSy|~SD=T{p2mqhFeWd03wXsnvU6Ibtlanr&D^Oow zzs+vR>aw3#JNNG0(>iu_G#>u!)7!q{!qdP9hGEqCdu1f0000hhnVo&v#xI1;;tr&=4cx$WqMKP^X2HxhW#;!Y`Iq8x)|ir|FM4hrZ19K$r-+9$KUb&J{{L?KqlFqS#nl`%@y~Zf4AvjGtKPOrQ~)zmW3y z*>k4*%$k+0djjBJ8m8%aEV;@b=nn<_kFAe1o@eGjCy_@)+||`3@Ci!0=HX28gvHxy z6}c~ z+<2MWERS={%%0~t%pe0TQ`x3#Ta9k~DDuMyXTdBn)^KZeI(TV-C_*x(3F+n-BM{AMCK zbm|gCTt3N-vhCKjcP{fOirL?L!bqei{}ql#hgU?~PV4FPiY0Ar-)_5Obv1+% z7>vK4JO1Wd{ejv=WA%~6uXJwN)%&e4wVI5%YM@y*<8efg#~O{b(c|6re+DvV1L0t# zX7KMv?{Z3JdpTFQ=+@Q6m;Zck@aB7tWT?LN zmUo}u_VA>=tL(=ISPu=;Sd2dGhjnQIA9J7!gx!EBiuID^(@xgedbiM=J%2pnm+F}I z{Y@JWodpiRefXsIosJEeox1jv6$EzKLx2mOQXeZ#+6UItaiV83zjV97E| zgx#>{LHa8BsGT$XAOH)OD1k2f`YmV@5U+57gPh{Wu?|Bx3&I;Hs}HI7M3<}^diLHU z*=`*qE?Dx}E2RTaz6DT|lA_`UeaouSS87mKiLypCRMK{Xf(Ch#QH)6?Xm zAIO*Fz6$r`Tn@BB7fs?ZT1t;fDeKwc7aJ!%C*x;d>B>S6PHZ1EA)<4#yO0UsU}nrKD|WAdErLO)JjorGNw*bN`uPkX73 zo?wp+ws{ab?h&d;kdJ~&NUe2-ly2oc-n&kyUk@&io_VX>SF5(G&xsn+-6`)JD|{0d zIYA0#q2hLul#=hrZMcY|U@+)oHqKT7fxw8M9e%8Zfs10LxJ7AJI%Gx;Q5DtGGz~k4 zoc#bs0n`96>j05kAvP&%lqcPsJFZr#5hyU7W6m$&!y;&K;NnjhhJjf(;gw`a02BZ| z05)3Cf^jqgNC0R6FaaP1fCT_10)qjDAHXUAB>)0VXg~`81Tb?0n!puwcvaA4mZ+?0 zR>|~{=iH|<%VWWqJDw}=U&(*A{ptNP+`vNdKQ+e{LD-Q~w*UYD07*qoM6N<$f&>f; As{jB1 literal 0 HcmV?d00001 diff --git a/imgs/icons/294.png b/imgs/icons/294@1x.png similarity index 100% rename from imgs/icons/294.png rename to imgs/icons/294@1x.png diff --git a/imgs/icons/294@2x.png b/imgs/icons/294@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..510f1e4a88a2a5ab969250a716ba8c7c0c987178 GIT binary patch literal 474 zcmV<00VV#4P)cGIjoX?c6;ISQ@s+pX+LWQAXDA0(J zIwVn0iy-!0hd9E7sBw|H-6Q>U^644gdwmBEhr{7;%pnK@Wv$iL+UZ&xWv$gg5U7Xx zi_rg&RX@PLgD8GjYn2d!D30E)SJ$^wlNu?dEIP&*qotPT7w4b+m;MJpL~-<{r2oFz zY^p}1kpX62A_<^`+Vwnd=Wj>po^_uA`@oG!&7S9Z?@IVz;yAtpZh$dhf9fsjkCe6!x4Yb>BfGli_YPF>j{_lJ%WpW4ZH84eU`wtf(@+s>}CNIF0a2*bZ!}0(512NL_{(-&4 Qi~s-t07*qoM6N<$f&{SMy#N3J literal 0 HcmV?d00001 diff --git a/imgs/icons/295.png b/imgs/icons/295@1x.png similarity index 100% rename from imgs/icons/295.png rename to imgs/icons/295@1x.png diff --git a/imgs/icons/295@2x.png b/imgs/icons/295@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..142568c04e03f5261b303422b81e843f9a096d62 GIT binary patch literal 427 zcmV;c0aX5pP)1wRou;8u2R9ds;Ns>FaPKOP{wnwWg8YLn?I1?nM362*I)oGl2PMWfjrTd& zir`=_XhFyWw;X)$_ul*69W*pFH2hb>Fw`PqM8t$)sMp=!RNVU! zJdWe@=sG$9WHcHXSIs)E6@XUytlRCL0;JP)54h;}`vp({<#JUMb3}ml^V9R2wYId@ zmXpb38#o>ghX+8*MXc7`0Kr2kr3^rpWjnxOp63E2z*AMBIthHk^E?Y|Xst8g#YOj5 z42XyVa$`)!$B67&4Sb3zwYq%r_XY%8mZe=R7GkXxAnSBGk9?fot146X65_Y~z!;+d z+FNY{yaYi|EDcmnppF3n>|ijs8Q+cfXS3JNKXvhyvhf=ZDbzKvs#VKo9*)nip`oE+#XF^| Vk3kOdE5HB%002ovPDHLkV1l{=z`y_i literal 0 HcmV?d00001 diff --git a/imgs/icons/2983.png b/imgs/icons/2983@1x.png similarity index 100% rename from imgs/icons/2983.png rename to imgs/icons/2983@1x.png diff --git a/imgs/icons/2983@2x.png b/imgs/icons/2983@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..62de63038b87a42620154859328e0d7ac9b12b20 GIT binary patch literal 1483 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 T)C^B~00000NkvXXu0mjfAOjF< literal 0 HcmV?d00001 diff --git a/imgs/icons/2989.png b/imgs/icons/2989@1x.png similarity index 100% rename from imgs/icons/2989.png rename to imgs/icons/2989@1x.png diff --git a/imgs/icons/2989@2x.png b/imgs/icons/2989@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..121fdbf21787fb69c46978d1c01d2880ce822f6d GIT binary patch literal 2175 zcmV-_2!QvAP)~*^G(4oVeaKp! zVQA@e2u<2foM~D}lW9>(TTGgeKx`L6%nW9@8XIhEOO}N#+cJ_Yt@d{MU`ZHbm%u~& z&+P2k-E;o$`!DC;^AkLp5P&e?MGgSq1w4a;q&X6y5JiU8Rs#SXp9coOm~bZ<9c+@q zN0!NJC;$eJM3+^C30i^H)_Oeyl$|>*fky$&UQ>O`T1{(f-x3yXJY<$6iB4KGrLp|O zu~}vzVF2Kf8hP}9PZvZ;x!tY%eT!7&ER;}Rzf1Lck8(3pFcDcka4zUGw?s*u?Juz`zIrVIHZ`V%L-s zHKq@L{KlqOmc-`T<9T9KPW#8b^MK@XK$2dgKHt4KxxGhCTE$%lf9st=zzg5eI_8a? zbf)=F=JN!FhQXM|^k|LsWS0bKw5>X#!jFJ4*D-(Po}+5ZL6QQ1c!^D!T>>+J1H_v_D z%K#vclEFD9S8>Kaq}jJti$-jeF*fBcpa392q7v$IFE{@1UuK`7%N0Q|4cPKnL>1*L380DSM#a^{XXS49b>{x%*|r^Jy;Y1QkNmu}y&vEpT&2~|~o#yb2YvrmF>Z-XRK9 z(C>CXWgfWp{2z}LRFzut%xPzPXx2+Fz1@EH&A*f`+LqhkJTiubhq23!SZEE-Cq5d&bpi4$lHG@~e z6@;(@HY3XE@4cnXOzipaB4l88K31Dg^+}a%_q7ZqX}Z z+-e(mr?bzTR!p|?&6R7G7CS2!tT2xK?E_;tZjh?^MXcq_WhkoB@2Y+=&=u@ab11PG z2Ro)LL<9gBV`R&&2JuAw)?~JVZQJ|NTod9^-1aL@XHm6SQ05&TO@43T+>)8!+P($; z5B#hzJVeqO2PnfJYTRh==pbV$_44c;7uTKs85st=oCG&(+r1|5=x^7I5kemDLM}0C zYmeu3l-QJJ-&zd-R_-|`7V?R*69?9J0uTTQ2?g8FetzN2+r9mE#z2`a<4WsUT)fbN z^0G1v4GqCrJWsKS72cJpl zvNo`@u4%!=_Mw^KaQJzv3BRsh;Bv6B0ErK@q3ik=_~L9MG*v-TP8*!1Aj%_c8jD4D z%5wUe$K!c#^EY>{m=63t4*-C7&p8oxyYBZbQnI1g|K1g6usb~G$KP4HZ%*mVO~;P? zT?fE5G&G?3-)A7F6>NXOYnUxIcKY7yIigx z)YsQ*m~<|7T^8-Ynv_w`@*45n_Ae-?tZ4gf;%Hg z2zgFC``kKg+^_+OXowpMcgn$V`0R}v*M4*9(v_N2+1e-W423+ANaT}fG-^x+f4~C( z0Etmgq$#gTv!(0nm#Y9!TwMH(ZQHg;GiErK508vu{razy{lD1HW)&A>>*h_YqobYv z^LRr`AQ0FM05+S`lJ6*0b=hc-MB1ixKQPsi%twqOuQ!!;9}t#3y?&`c<3H~U1fgl# zmCnx2<*K502S;H{#g&;f94WZ-6(q9_Rf#N+XB&CSi( zgX(=kA0Pn0@AtFAzIn2)r);uD8v8z$E}J0LC(l6Pc?o^DJUK zZFB5`nn*{*t04&8gSb$RcHN!B<0bB-f8bE5&{E7M>t0S6Bv<$%f%y=TD`{-3g8I<#s4e7i84hq^Z$|Qn$<^={{U7}zp}gGPi6oB002ovPDHLkV1m1} B8|(l8 literal 0 HcmV?d00001 diff --git a/imgs/icons/2990.png b/imgs/icons/2990@1x.png similarity index 100% rename from imgs/icons/2990.png rename to imgs/icons/2990@1x.png diff --git a/imgs/icons/2990@2x.png b/imgs/icons/2990@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8f7c272a4c63be4654da5a4828864da7580fe099 GIT binary patch literal 2031 zcmVu(&@8ODESu6yk zFQb`xp7T8KdCv=<;{ODqtE(&0)6=8=*B^dV;(>tyWps2@f8~`|IDY)NJvcb1C6h_n z)6?rK0_k7Ip@5Vh1F1SVIH+CrTnwTa<4Q&;f=Gr|om^{rv2TxL1G z%*^>&R~15u7@CNNf|{`Ml$U2%UYb@?vr}a4l5EN(y!P5!^>x4LzO8EEr=f@~4A1q> zox%V9I>&n)kWvaEKuWZyp8mrhhfWS1=-PKHnxU|?u;d!Lp_lnu4(y*W%)@KZ4Q_TzUNVma#JdGZSkGO1`q}SvpLp$r zZw5`Q<%D|lsUrw8$iy3`>Av}TO63xEW*O_uICqg|wWb{rsAiXI^XsWR6N$XkrS1zu z6}u{=Vw8=JA1$};+g<5BIo1&N0p&doNF-uC{%!5s)`m_EHRp;&KOiO1Kmf`%XHUM) z{HfQe468i&-EWdH1z~%RMz6@>@w{yEEm5nhG}mn)s@rPDtW_sPjXaxGL|UYF9vK=p zRHf1dJb?ErLZw(Nnt3aaKu|(ba2#B(Ohl?^Dx|U=&pz`!9Xqb&SLf2S83i^Nu&pVI zs%dylo5grp;mJLx&EDzP>&M2u)5*1yZRr`9eXIJ&&^MqG~F(rVv&Iz60|`o%${9R7E1BE3V)* zznSIc9ZZxXVs!X4H<%WNVTixyLk!O*&W*l#X3E9g1Y8AF0_Hmc`uh5m{{DWyzrWuX zLag|ncVcV%)wm_cFZw>VZV;}lAQB8x#$eHgX*Ylx3{$clR$rMi6L)SIDUm+nY8t-eQ`eRw;cM3Wh|v zTqYKaQOxHlX$HEgle0>MrHXAkShh_~I6^~XBgxfOPM>;%iBypqOd`Rcj0SaKYC>6E zSWT>^Q>hE*4GmC)lv4Ee_9`7aJ34n<*Zx={9>3o6Ji`o{3=h4DuIV&1G+-49jE#&D zo1G<*NMhwIZoKIxs;VQ53=iX?5e|pZbsf#nXsnD<6%JrIuCz*JF*hHd8XI~0&%ih^ zx4sq?Aucq-V&2+l<#Jb9S<5(i;`CfyU1R$8&v*MR8=GV*og$Z61SJE^ z1IvK*u2vij23y*;Zhqj*Tcb;zot@`@{K%o_e9wy_}&}H5#hw1ij zjuVbn(0b(+M0COI{F1Dwt`eKBY$cUhlc`L$ToVl`ExM!SlF9UoBhyFDPREY`XMqIZ zyd&UZ5dun2PmdOhjaMIh;K85c`}b~aZBgs$>gDXrtXPW2Wjd8+Y-C(iR#($lTTOXo zNjinROq5k+W`5DHs;XMu(zZE3A*WVZOX_TFVeExBXO5;z-tc+^F`&eMxQ;Kqf(4*= z@85gy&O5*OZPzQ`plL=t6f!rQ{O1rtC^Bkl!e3qTb5>sQ17Tu`wZz!j$rs~`@pFoz zm3CacvA$qs-HCM)?d|n|mZqkLFC`MIE8Y9|*4@^1 z^P|^n?+6_`^0cg=q^@N0?px>QpC2Ecc&_aGF<=cS0tLVchr@0@pU(mg7dqgF$A#-z zT(k!u{ENqa_R>qQz94_{NWVOA*B4&hz5Ch&KphZmY-|hzA;9eH?9|sM<&Qf2a0EElY!uZOP?qyAbJLR)Q`*FPw_v+zW~lVtQ&>tE*k&< N002ovPDHLkV1j*n>WKgV literal 0 HcmV?d00001 diff --git a/imgs/icons/2991.png b/imgs/icons/2991@1x.png similarity index 100% rename from imgs/icons/2991.png rename to imgs/icons/2991@1x.png diff --git a/imgs/icons/2991@2x.png b/imgs/icons/2991@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fd6402846a32c9fc7f2cd8a91a1f32e32a42be6f GIT binary patch literal 1593 zcmV-92FCe`P)neli$p!TM z3c1Z(W_f0(woy`4H7;}cg=q5OL49|<{_L|)c^2muu(X){`T2Kee=;>SC1z%3>`rxf zr-ft3jsXCY$pfsn*RNP)wIo@z8ue|<9|$KKyOkfhJ=(9#R_oAMn`pC2OtNFDmZ;?mL*HFkB^p~DB2;@X<_P$Frn?jCFDlj~NGLe`-p zk2xE;tP<~!xi{7~S4j%^5#ZMT{x z`($C^dql+M=H>`p{UImS)(g!Sz|hDrHj2w&+)eqF z6*7$`x6Ha>nPe+HiW-eY*3+j?4hzJl1M9CWLT72rhaQ zH#DCYnpYtZ$Y>c5l8Z$m5grHz;q49cU?>2;*9X5h6nST*{7CyCofYUrfB;~7v$aMJ z>6Y2Tu3jg7XBXAVHVgx-w7!bkR+${jAkJK9H7(etBbhBr0dc7Ap0cK>W;@-PPW8LC zVg`T)hf{CGV)17l8aZGM4-HG9a4*ik`yO`n3LLUXRWvZJu%lmj0-Q0B!z@{5(&ED0 zFaPk`t3STeQ9rK&pRQT0&ELiP;!Zps_vdcqetI2BB8n`5bYzMOB zf@N9w=*Cre-6~bf+tN<8(s*RBf0{8y>2%u0zm>krhv&AmI!Tjfz5P6}N8AGcGvFr5sBPjUttL5_P@l3?>J-*=(HGbzuhr zfnc>-bpY%FFz!{P>sv5>`|EbQSYKigk^TWh6GPB^KIB)HP%7lHRVhMoDd0juC=$U} zpLhme`r_l8l}bfc6t5S6hPL$g>;rqg1pu(MRic|Wu26p2M;~7L8yWQ-SQepPZxUk+ z*FU_>%B3Qr(LQoai}IOUZUFvTZNmq^0)1{YYqq$o5NC=zhLMN+ zVA}>fS}%cdrYb6e;Zbq$(I;6plW_y+B@!+G%K*0aMIaiD5&$Tw_qyO>mBIEiCOM8{ zal3&275?shZ+6d{@iL3;F@ra3W3zN@(juA~6EFxRB|yihEJ~Y1hNw;v5hPWGG_tBx zm0CqWlc1(aRgowOc0wSOrLk0F7TLxz2F4q<#~XOxm)YmN+aKemG>owoC6(GE-5>8R z=ljlg&OPrv;QzrG17T%$j#WB%R%YiM4$%J|c$uAxG+$;12Y@Vep8v+c00AqbgcONC z2DHbnA1ScNhs`%G-8Hth&(s!u&`~kBm4vr{i{@~Ef`nCO_YZ7fSN7czoo_HU`g=Bg z>jp>tG#I`jJC7|WQRGt;7uQLK^>6&@Hv_J&{S#g_G#Nh<_hi=W%>MKqBE=YheMv97xL{eHRJu^_u z5ki?UHDixqxh?sFV`oOvZBG)GmO}$-3-b0KMO@Ze2zmo)at$&+Q}Na$Whww<+anWr zY!Nyf4oV1-hA+OA-`Ln5%6s+LjTDo{Xe(GAclmrJ#@i-U`(A#M{Lq#UpQ{1Q^|h#Q z4#ON2q1DBZAmb+jvr;zzG%b%@h!F{dE1ZE4!kByPw?6miq4-(vsb6Mo)NLzx`j5^1 zH&XucY4hl_**QJKS9PX`~ky2R?rdSd1{Vvm&* zGS~{i63;lEB5_HaC+sReBEX_>RNHLDfgC70$3uk$cj?qqcASx+dXxh0odDGIJpACcseKZY=Xha0o9VO=goO2}a zTBZ`%QKM3`_VD(fr*H{Th~8aD%T)^f`IQuM z<_UG-TL6iCSzIimgrKzRbldC44nDujy2fXE{#iO{Qjx32--lVIhHgSso8$@V+#lr0 z`}#!Arpd+>%`=c^&Ican|FH_#0gezV;vE(QAnda|@sk5TJG!GVBQGcWMm@V%cat<# z*C5xH3t7(?^ZER& tTXtbgMVgiw2}~#FoBSx+{J8s&}GoIfrLkJKv95RX73wgpftHVuu3&urevNWT`Pev;WIh zuVrU}l$p7Vt~R7_f>xkPnT+rZsF@l-2MI8Bt__BQ4S%{!$g~-%3*zWd3&tk@po-RS z4Fi`)#G0oFO9249T3zbu?wUw9TUGu$E)kLjgEUA3UM~S9@Pq=y)!z*f;DiLrtYBT{ zAONf{zSgfX7>h+o>SG*6!#?d1J7GiurKOM@0Da}!UvC+-hV7q!T0X%ZOjB3Goq+3h zgBTkh&*YqpQ9_}Tz+`R@z;U=Y-J@WDQV@g~_1YbG-hTJ=#x+mxsRf`Rgz$)v^7-G> zga8b1xktYL(zZS4^1Om+wP1!?E1;&MQHl|Cw6V*Dk)TI(>$IF{%a%arU{_(yM}KZp zC=@CH%n~**=(?9v)7nkz8Znu1V z@yz)_Z~xFqxk}6Q@z$)GrkcxrBfX~7y=Jl3IH1b%5mHb01ab| z0x;%eXCGd_X|r{3db+vn)O$w}5QB5_QUKimTmV!6asdPZ+yXEY3FL8|u#*td$ry_h zMR7fVXaHjX;_f<~R)fjR+It^N(-4cHl*&P=EEEdW%tZ@?i|#rAB>>NSAoCH>09ef! zOGH?uApo}l3_+#3NqoMot-TM{C`^`Ksja1raB{5}3Qz$3__wNTj)dKCSG|GK$9qL?94X^JpM8N=QpuB~8+Z@+<-g)mB0)3P>=?fJzJ)AmL{~2<-9~fg~;X483G*AT74_ZXb$IS2g#KxG&&0gK3^e>@uUFmi0!yUmBRCVveVO2C>ElV z(*+G^+ta`J?a5bvFfcF>4i1`?@+>vsqIP-P-s05dLUU3@OY;@lTAI~#E>G3+(1DNR z_=I6dwOSLwPvBUCJ1~i%R+|%p6lVd z9$JUgYIS1qC>+y z0~{S(I;3tSpa8ruyjLldi0Dv@BpTwlu8Z&ac&>}_*hNn-T2H?!Ok;cuR+DPElO(tKaG&@5)-hk`6 z1b%?$d(eGkjNT58vIX-XzgqOj_9f*?Q}O{G@l;Qoi$c-LJ#vj0K) zzwssZ?%pXti^x(RUPqu{O3p|xd|0A^xhq6Q?F``2Z=U}z}cJXT0w+P3wcF0?k6$0pQd zCW9XYhyllOaa@~9rHauZ27~9gxSmT>V-wX{mCiM5%z=FmNe8E=AL>_%)k6GKX zn)TgX7&Mk+69fUa?GX4r$z%ehz_x8J3=h-ObC21yd9#Wtyvrj)uSFseiN#`-TOuGL z+886hI`-3lpE>>7@vl6*M>^YAn}O=o}C-uguSO2J#TBWtl0^=*>`RFTIcXxMZE|>cp(DTKweRE&WmTmhJ$)=4eqR@e+ zS}pU`ksli0b0%Lub?VJuK7IU+*f42{EQTIx;i?%mWFfR6=V#3%mmqZnpPr++f>V5(%ryDuG4w2+$de#WrZI*Kl>Z#Q;AHsY5smOan8p^x*kl2wY2I v5o#g%;=0e(s;m_Mv0>5ixBKoBEQ|jD2cNK=@SKf?00000NkvXXu0mjfWPM}S literal 0 HcmV?d00001 diff --git a/imgs/icons/29.png b/imgs/icons/29@1x.png similarity index 100% rename from imgs/icons/29.png rename to imgs/icons/29@1x.png diff --git a/imgs/icons/29@2x.png b/imgs/icons/29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..47ea3ded856942bf29b1c4d9edb161e9f28e1278 GIT binary patch literal 1957 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3006.png b/imgs/icons/3006@1x.png similarity index 100% rename from imgs/icons/3006.png rename to imgs/icons/3006@1x.png diff --git a/imgs/icons/3006@2x.png b/imgs/icons/3006@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..47682bcc94478731008e875efeec3283a2fb06e6 GIT binary patch literal 2317 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3013.png b/imgs/icons/3013@1x.png similarity index 100% rename from imgs/icons/3013.png rename to imgs/icons/3013@1x.png diff --git a/imgs/icons/3013@2x.png b/imgs/icons/3013@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e3239262e8551ded7d612951264f78aeb6a8caef GIT binary patch literal 1992 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3025.png b/imgs/icons/3025@1x.png similarity index 100% rename from imgs/icons/3025.png rename to imgs/icons/3025@1x.png diff --git a/imgs/icons/3025@2x.png b/imgs/icons/3025@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..828166088ffee59bec4d2376f1ca5578eec53b4f GIT binary patch literal 2083 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 b!`SyPZd=o3C3Gai00000NkvXXu0mjfMIc|1 literal 0 HcmV?d00001 diff --git a/imgs/icons/3181.png b/imgs/icons/3181@1x.png similarity index 100% rename from imgs/icons/3181.png rename to imgs/icons/3181@1x.png diff --git a/imgs/icons/3181@2x.png b/imgs/icons/3181@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8e0f60ba63fa367daf2564c74c529af9d951d9ca GIT binary patch literal 2399 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 Rb4maJ002ovPDHLkV1j7{s9gX6 literal 0 HcmV?d00001 diff --git a/imgs/icons/3182.png b/imgs/icons/3182@1x.png similarity index 100% rename from imgs/icons/3182.png rename to imgs/icons/3182@1x.png diff --git a/imgs/icons/3182@2x.png b/imgs/icons/3182@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0b5443ca8311bc7b0c5d74b1913ef1a45f5a2f6a GIT binary patch literal 2629 zcmV-L3cB@)P)jSmyppU^N$ z@we6GXVxyg^}WvC-XTK?3?)WtL#UK0Gd5};nx6feg$Eyb7688g%NPD)b!FwR({_*o zgeobGmWmhyZTtSZZr0Cr?yPK6rAhPH;bEDiKTFdT-Sy3{=T_HlmX+Gz8j2E_I8Ia~xzlx=88tI| zl9fvTv3=oK!0Yb10WaBWLnPAo)H$+2fD3MZVt@2TvO533@oR6r zMO3Xia{u9}k?S{a94VDXFWR2BF16O0a~4ODNuo$cJQ0b8ZFPd0pi0ehTzJ z0RX@;fM;@kTl+bd^m>vfiIzer#f1oZQF@|S%su^uFC3pM`iEZl*XQZAx33`Xbxfs{ zAL8Ne*RH(wtKVLK@4bpKiVGniI5$QpqvKS$`9hX(5s7-8?r#vVyD1<9=gys@l#oPP z^iq?Mp}k&5bVVWq$;Bp*#mTA3(TB$-%WkQdaUF)QeDx{#egUiN8-!6}X2vU)pRwn! z?QHzvYIWy+Vp)#f_(#ungrCTonh&|6^NgU(eBE*fwCk+5tTEDLtgIg#} z>Owwa^0~tC%J9f~njp&)T>kYhNt`R8Mk$I@a~QerDAtU@(#mZdpPHn0&^3|ky6tB3 zfuYGMKVKOt`h~)X6w;2`tttQ{X)60?f%#w?V(}~hz){wn?dC4OU4MD0oGt7G)1xDo zMu#hpKYW^WFJA_Y-WZ;OE;h$oj?4*{IThiC(GqtIJ@%lWu%=}6Mz9@ z0|o997#xYg)JTvdiIPT9W;y)5*Dt!++6c+ejQR4@UnkeEUdAu3T|wokr*NmWi(Bh! zXuf_K$3gJjKm87V`d=?#Vr&#Es~h^lKRthY_P4%BirGvUMd2~Tq65Gn2-HUi49wQb z@HjDPoX8*uL>PwomtNb%Z?4=l%=L&!A_N!Tz_ol1p=BYseiQPYB^;fZ#T#$DiB~UN zfDjzT@{rxG*RAcJ{O4+;n776Fq5D9T9^`%y_eTgM*WN3LC}Am2`QBdBP)c(3dIODG zojm`~&tZQ4I1q-|`pHkxDijgjUd3DzBPa&A^3HWshK5kBR-u%phSEZs8n_yU7!bJG z9I&VF5&Uiuo;iD#E&?jts86amW=fh=a4v(OD<6C8QH+m`nXRpD!qXJRN(GO0dvLQ^ z)QbhMVjf&dIF5~@_Z`Rl1M|3c{ifNew^G+;w$WNrtqJx05e+C*D!}e8J~jodM&p%q%pjnoPtlyo}b zPRi3g&nsF)Dh^7FQ!Gp*fV%hf^Z|i8nsSj9LEbC$KLb(lJc@1%P7gDMLTY;c!C3Y7}Fcn!3Wnd78dkBUbpN~Ls!NSTz9NGXX@LK8x`ZQEVR<680X zbmze*PO}G|d?J&dndP=?2h6f0KnWqlvTfUPy^M!6waLWvxb1o^G#Y6S@cJnrci#hN z&aj1r1(^!<<6S3vJTh`ZM}e27aaM@b<7w)$_frM zlp2+#MrNVY47AJ`#dD(7^!##R#60x*BdzVN|Av%Z6pQwt2JU?o6P!Cou&}_gr=R$@ z(PI9a<+ytTyuVC9DglGb20!R+_1*Bgb8UK;Te^45({87fWrwAbg zgc`#bp%&A|%{be)ZvCkDn^&F#pxvi`=TC;`AN+xzak!?G63aGVlrYAO0-Ck8^`8aL z{rEh96hIF^9Y7a=__%I`0&x1@GXO>a^d)2arK6Mv5ZJbD1R)7H=O~VpKxGDo*|0$R zhYi8*ZUUeKzy%Ovzh?;mBmh3K_hT3t$)M42GJvP|3EkVOk#v9L03rag2oMfr?!gk% zSCsocL9aK6KI|)@4%WcIR1oZMQ>Q;3>=iWt(I=t%{sERAz$yT;k5z-kKaIdaA_pfN n*r3BP_uxKh&VyGm0N{TBU}0bzU2*AW00000NkvXXu0mjf?+6(@ literal 0 HcmV?d00001 diff --git a/imgs/icons/3183.png b/imgs/icons/3183@1x.png similarity index 100% rename from imgs/icons/3183.png rename to imgs/icons/3183@1x.png diff --git a/imgs/icons/3183@2x.png b/imgs/icons/3183@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..685e27b5b8ab017211457bf6c5b1c68c50ade878 GIT binary patch literal 2402 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 UvljQTUH||907*qoM6N<$f^S=elK=n! literal 0 HcmV?d00001 diff --git a/imgs/icons/3184.png b/imgs/icons/3184@1x.png similarity index 100% rename from imgs/icons/3184.png rename to imgs/icons/3184@1x.png diff --git a/imgs/icons/3184@2x.png b/imgs/icons/3184@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7bf2563518e93d427cb58d1e4d1b1bbbee8d906c GIT binary patch literal 2338 zcmV+-3ElRIP)&f`#%_|PG)W!TiEI1XzVCa^+0VtmPGUPrp%M~na&-1%?QgHO*SGfv z{GW~P*TKy9?fZ(Z00Ic$|H{qQ!e4Rm|7+s@W^eH{Z; z2F5KBscn94&$;cCXJ!N)KhDe_PhC2D>X-8iUwqqHBL#sx1MHYtSg;cS5j(5EOzfD6 ztz+XHoON)Hy|os`IymRObIuEabfB33s|;x7$3K52`AQCt+g>) zYa0+zs#0gP@y6;%Wxb(q9IE|vYHuY3@RL)gP6+^a000a+PM%+VwXjlOf4-BI*Pedn zxs_6}007=vkI9Mo{K#m4>+{IkZI?Xym~*|Z$)b30xzR}at#->Rou+ADDItja{X{28 z;*3f~yX)iYOG=E^_-L(G7<=cPcQyb70NnN*1Aw$v$$^1tl8YlpB>Yx0WokIhl76$- zE2o}os@3SPeQ>swy!F<*(-$v(v_}TgcnfHq1;$utt;ra}%4inwtc~wynTe#dLjZEO z&X?S|ev`ao5Rp+zTWh@l7|wyTE|^peWbF>8Nzw`DW;;Xg{o`_>S{=lV8_RxWrCynu znwkv)kt(IaBuS7Y35-!*YwfKLU6$&=rkn>50nh;K?g+qW3#GJ9)65v7j4{?)3!P;> ztuly*9(v?Jp)hpl{Oq;D$&)A0YPDDhA+juc{OsAY-#vZ$?~inPJ+jt1r4)=YY>Z>$ zm@}nFYZGjRpMafZ2A~P03~QZQV^XU%jCINw)6!|`gVE6=V-HU6uT}<1a%^lAPd)V% zmX?-CDTQLOz?I72$okqBFI}2_|2y7uOeER+kfJCOG61Ei*1m9Q@4?*MEC50jMHIz(9v#ke80h^=OP?Hh z`3Fy5NYZXJJX{`4`|;N8kDFt9}m%rFa2TdrYP#vufjgFSbN`-c=I$}!$sONQ_}b0ofsM!78?`J=9^W%kE0u=EaN)uQyz-?TcLNQvd(mDt@YT(g!f2+ z!If*lQlk?u3s|1NKFI6qb)7u0hDQd*dHTRKeR}xRrC?x^*ei4{QnkfJg1ZfZgzI?gaJ%9c~ zaqwUtK^S3j-xPlP+V61mxd$;ZK8*P*=P<9XXU#N? zF7BJ)^)QSRW6XGJ?T%Y<2Y_Z1NHc>>!S#Eo1z_s+dSQ8arF8xJ0=nHUy?EpWbb1zV zymuXqR6ZW+G`1sNVEG{mhR4Rc;md>5~EctLYx-l{wm-mnGILwYi zM>``h--JptsLZ=wuVVqBTCLUy09mis@%Gy%(CM^ct;gze16i_xb|=Hll`eASJ(!z4 zk8Zb%QmF)`6bgkx(Hb4gfFXpuRr1>pATE^@Qkq}7!bm9k2u zOhSk#pO1o2Sg?eEg}}Y2xY5{vQ5sp6v2lS{O1U&u&U^2Q#o}tEQfZ`Vy3p_UC$o$n z$QSa%gM&dNg21GiUJQa@UdnJiiXsQV0O%{FNJn{U6SMB!uWOb5BZXy!YN1Ltz+1 z5P~2$2qj2j2Z)^jl3a(iw$2zGS%<)B?X=c{*?EA3wbm1n5dv1qFg1p=V$s%uKs6!a zwK(=Ez*Yz$0R%)Ogpg7S5k^4}g<;^a%XR=L)W2?=UDZaZN?+Mn8x^QDGeqQxEE%IV zIn;ah5bp5dTH%Q&9vt4kzZsl7wI&x9Hzbh{t+mp_lN3T&Z*nSixiBgZM3J;T3%{-K z?f{qp#PQc(&%XEk)ZfOdxgTYIK%`mL_r9pT1CtQ2w!lOr0Kv|J%f(V{W4%1p?{Knj zVz3j3Q6h*q3}xUw10af`FfNz!gNGg{9jY%a{KZ6q!b{4gdh?D5fNBWpqs7Mhi{&|`s>wo zeIu7cGt00BAiI|^A#6SxrvX#|gxD#oZs$<~B;_U+Yrz2c);~6RUKj=`2M?gT)t+Hf zxwHV7djXJRV~AH*kpoZw;t;r}D%!GJf+yZJL~YS+M1U4i6a`vqy#=JZHPPKqngv@s z4>vdZWdQDLyEP_b^C6(I$q^2?+wpeWP8k0yvC6oULI!|;1624d^`!OiHUIzs07*qo IM6N<$g2!fMGynhq literal 0 HcmV?d00001 diff --git a/imgs/icons/3185.png b/imgs/icons/3185@1x.png similarity index 100% rename from imgs/icons/3185.png rename to imgs/icons/3185@1x.png diff --git a/imgs/icons/3185@2x.png b/imgs/icons/3185@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..96bf68d8244457bc9fb854205eafdf83aa378cab GIT binary patch literal 2495 zcmV;w2|)IVP)o6|-~E<%IsL&5onaB{pPuAP-Y@T)^E~IA z=e%zY@P9UTr2|BC#WSDkj4}FO2we#LnZZBB7;yO@F1bNOj4?)x0ZLK%l@Kxj%lvl@ z01yBHz;ed&lYL&101;`7F-1ht^;?hq`Q)k2I~6f0rPQP(XpBgaLKq6BKy=QhMv4fE z2nq^H5u}t-GcB{MBDsAIJMrL}HEV*^t5@rrH*c1gB{0E~h{`waIQf^3-T%JZ;luq- ztc>SToroqYDvARmXI1EXPIJR78A_h+>^yAi*}NZ09{2$dLe8NxcmrpcDiF1EXTWmAPC-%NO!hRoCA1bt7KUc6#Uf2R?3V z%VX_YhSpXE0NMoj+O=yL5oznU9skqbJ-hB{EK`T)w#+IRrmZ4To#J}vx}$z3rn{bF zg^Cxvj7W|2IcAXuq12@0;8K8dj(`gUB2ILd;Dnf;g(y!IKQlE_C2oa8;T4TstEJB zt%W?)gHm7vuz|dOQ3kRA{E#y(F=Iw9(o)Ri{Y*5GEH_NcN{_mJLqx-Z+40%a>T0U| z?z6_DcQ3>AnR6;{xVoh>Ss87fzhM6Lx8A&bakA-@^h}gqcI;yb9O~_T`cN0 z9~nBsI4K=~4sh+f2G}G9oC{PW;}uR-MVU{IRbE?@te;m`t6Q2e(z~MOVH*r*emZ{f>p$RkZ~P5!ZOo$Q@II_r z^9Y`O@*$QE2ruvGz>mJRESju}uh@B9WSbg{+6`}YmxPZgHbsQU0$d6RrL$1#;0h`% z^yd$KxP4#D?Q+YIN-kc!kXmN9VAHk_u=~Uihzr!tU4l)oyoQyx+=Qop{tS5|{dDKD zxwQ7hE!fxouKw<8f9=`%&;2Kr5+vYHc@HiSVHTkf#6w@WC4&AHR}XKrI+*v($s zw!f$=QWOdeZ*AR%?n52;-cKJwU*}PDsx+?q(pT{M?lbJ;gOB5hr=CFD8ykaN+qWEz zmsjM*&g{*WFJDm$F+pJX(i#Z34-o{)WlVTs7%sS~Wqy5QfR@$e%*fD{rB{BR2v-n|;SV{6AVro2um&CpG9;*~vS#7QtIw5bxDATX&h{4f9yLZy^RhDl1X zs&N15Au`9h@U3ru6YKuC0rBz}{dTAa9eek(%9cec-{03Ci5N4>V-c0{4Hc`X>{B9O zQVLjhq-dHk0%02D`SPDfoFc+(Hj7YjNGaj_o}4*jMy27W>f1NH$Wo&j438Bk)NJ&e zKE_g^$viFYRoZq|VIvzGQ-U4c4WXXok88SJjTe>bqyc_aJ~fW5*o-t z2o6&>45bLQ)053BZ(CZ{+%%JfUB%wmvK2#J`=Mz@zPsyG+D)ZWZc#Qz%d2thlimN) zLe&s;Ds0n;n!2G`a5Td(EW^^7Y1?s&6E3X4#aD3<1|&R}6XkN3E zxuq-atsWg7Qib%eh&yJV5F9G>Ed@zTNgak^N*=y4xVY_Z` zQgaqQppLZX+dp{!V98Anm5S+P$dw?Hh&p9CW>`ap!E#(OySIC=uK)DOtYMG_(wU|c zG*j1@Al)zwOC#8^csw!f+8dV)4vp=C%;hHsJ|RK^fY#Pl3f}zv!-3$N*}NN8nNGA` z1|eg*<(8KxMxAI`muW}(Ox^S)=XOoQochM*+8I|}cg@_g#H<8~z$Qr%#YKck6_tMI zI8MB_Y3YiUL!+toPqwam7J!=cO(_8ZUucPOQNVwz3d zPbv`8mL2*ClQ$Ms$UATKwuSO81_4xH*nkg`EEDO;Q%Ch}*TE29t! zVseiO20#Zy!8AdfgO3B}0C?jW_|&=21YiS*0EmtMv++`W7Go9wSe71!p#V?>;Escz zXL_aC&lm@`&PDUNW<|oeXea8gFe!*DIh@#^@`8O%lek3o{sUEbQ3PCZ7pwpP002ov JPDHLkV1lOuu}S~{ literal 0 HcmV?d00001 diff --git a/imgs/icons/3186.png b/imgs/icons/3186@1x.png similarity index 100% rename from imgs/icons/3186.png rename to imgs/icons/3186@1x.png diff --git a/imgs/icons/3186@2x.png b/imgs/icons/3186@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2cf3d5a1ae1d700d209a4523e1a383b8ca4f3e42 GIT binary patch literal 2707 zcmV;E3T*X>P)RLrnBEWcm3}Dmb3X|?v!a+qQ89qoG;&ba^B}W@B5x} zUf}<1&V8D7E2aGp@K4>yw(f52lQ19osgxq5##+si2=`rv z$pP3*NC`?2%!1`xN=3&3ny+E<0D^$J7buet)grh|jY|p4E~qq0@r#MRyN8Y(|86Ol zYgd#&QKGn1gmNx|jSWV7OUuJuYc}lyfO}uxvtzKY@8@2j=mCTZ&XweXC~bO0*VeJY0@>jc7 zZ`)?}_VoAwK6VnL??_%Fvj3{46etN!-Vjt0V?E->gziN&b}3HY;5T5>AC1z zugMP(f<7SRR4T1$P0#s?NN@?kJPIjAq~f>;1a#eDzHV2&VyT#+qtoV0-VRwB5uWEM z$8kipT7|Cba9meatFClim-&(!dZ{?YeZI-p^@RW`wGhaQApn47fFBG;3NjMbT-)Y~ zXu3|Rf)L8*oO3RvCWL_JyX~I9t8boZvv|Hg6)@PuWQK9(GfJs)t5wb!Q-U$21XJ9p z2&-vf$n#m1O;6L=0s#lWXG1^;cJACsDIqS`>5(iUbve7lD!$7L+-F(tv#Rei0VRef zCOlKh(CN2Mrq1;ZqOPHJW5?E;K6`6t=i2p~H#e1~Bx|p^ZfU%}eXHa9M1;d8i$@I+ zO{DEoxett05Dc2N0w8k=C_Hq%rnv|_;B>dH>miD%6EXqRhI?FT-BVV=MG}X}7 zuy9FzvLWdX3>$ZT=?1j4ElRGtaz!!`54SB}xkhcecI))}?+>IV#YndCE4Q?0u~b`K zz(^k5f1o*Y`s{uHP9PA_T*txuBt&n|^$GxVDMy8-AsCA_@lYsaq>`~nV`IVqAyfMg zrAwm|3&+Pst>W}3TACZNsbh^Q=5wll;JnfZA@#9n<1^1Zrzb2k8LWy8vHDarkx0}t z#?5M>H~|2z=keNEpgzojo=yOODfGed?2JD!ec*J=3Ql^fS1vG{TN*Gnma!;}{o~+? zRDP@(w42`ixDb*YHe+#Ff6WTm`u{TkA+ zAc=HS6CT?2D1Q5geR%dS&*Q|I^Vq)q9z1y8_esH%cx~Tn`1+S`2__Doy87VwfY(os zz{}^e02DNBPJs_YFn1&to9m0N>k6q95gH^L9V_;~^zyM_|421luu~ly*Qg~+7U9KL zUdQ{rgHTMMaoK0k-TgP*xaC?r@Ze8Xb$VP~x2Z!t`ovQ>y#F=v)=PgMt5h8Z-!B7D zC>G@$flJB|01PRV@3_i!9bPHhtm=5);>Amnr3;f+9-5lbl;X{?=A=~amQV|am}^Y zWAxl{Cu(Y=cF868|L|ThGCZ71#-hGpJP9EPLeVgCIXU0oMFQJ8J82IfDkIZP!gVyx zeUH+J=o=cnB2^{98*cuBI{5BM!e|I*`UddrJ8#3e6Gw6X!@oxR@++zz^d8g4hlUB9 z?4;z}<5E#V2-S66#lxWso@Fhj!C<`v1X3x2nVFAQAfL%B6XgnpP>$Df)DGBz^VqTCEAw5N-rbt96bi^6=oJBW5=Cx=6LVn14ETU*-y8&(d9R6%_@!L zh*C3}Ve~4cN{-_Y$MK}=y3&)9=yo}yM)iVOZ@f8f!>p@a0~g&_(;Bx%fku;R3H$lNS$T_OBd1U@$qRVlam2W8{xhW&+|+v zr2;siI>4!+MZvv7A|62~6pj>&x(#Rm*oT)9fZMB8=P{*5^9s$T>kS<_xc^ispPQ(Z z%MFZi$t6@c5-A&&kr9qlT)1&Xgt}d+Vroe#9o4rYO}Y0HSG{W(9%)I2D7W zTNWBtAdgJOvw;8r8vwbOgxI!C>+0&_9urUG&Ctq<;%Vwtf{gi^B3d;Xjb@`^Ysj+n z2`V^CFJHDa)zExPabRS%oX$2Ff`up%Ax-fBq;Em;pb~zV<+FiEGFGqFZ(NceAKL@Y z%ZSH~xg41PDkj*ulc1|h3vJo@=Z1LnYe}cv3%fk7BzGy*r0;t~aX}+3?M-9jM$pom386$03TPUru1RGD&G8RDc-;Q?fhPe->!#1&wP5v{ z?UA7AOG+ux4F!!7P1BSBvQtCDdy7v#(G9?>Nk0vs41j%Hw?YA!weMB{^#E#;X|t&# zgalAD3_~$OT=>3^czptt2ca|rI!NuXA()wQ0h9n(036KrEJXk=fKTlGG}PAzk;#}r zARuQ6&2QC+H#_Ws=JiPbj#(4gY{@4!+yJ+xN-(+%5-XG8V zyzleQ%sasU*~mY}=lxz3VQVIYG0!A`O9)VG zx^lp7%O~Utd68TJ03SYex4q`tu4rjwoS+0`6Rz2^f5d$A!B^`zha3T>vm*q?m{*c7 z|Kg2*Y1EW!GNH*oOJwlUlKj2Z{SKVvo zniczpkM?ibK6biU1vNv05+bfG`><8)+1Yb_mQc`bf?ZrbBkG?-ft+RGVQjd!*c{gUQ^u(|YE z;0GR$FeqMYaL@CM4jMWP1PKCYDXFT-AO^q%AZ9n=CjrSOtrj7sWUZR6&;)};wE@vk z*-Q`?7FJ{;DMG~+X(GuO22_xX-fINgb)D{K|m;B$)488^6`nu&0YY%8P}Yxz;pwG z5b`U&W7q;~);i@?*s_}+!u-CT?5gGSv(a=*@1kX^ zRq=nln&oDyS~a7?2TTltwq|1OTQ>cc znMfv4r({)*1nD$Y=}<^;t|S27B%lD8SruqaP$h&kgR#X!m5$CrqkN=mPHCjQ(9@fb zGb{Dcf3~(9IOXH=RV&E9|1pS7o1Z0%S6q&J?_UpUIe78OhfMdXo6y(WMVnm#0Gvy3>4)`N7;0V( z7Ohy-FQZLJ{&o61YGRFy0zC~{KJ>Y!}smN_t*az zuWZ?({{GgEL+x`q)rt;dS%3i=^hO;HVpaep2XoOk@TCt=KP8=V^e!q%a z*L@q$ZGH;GZNo?Tjb_jLyU0Li4o7`npjN7#+ZjVq4cju#$v{#fjV7)ek?~lh-57bn zfo2w?a(>*BA|#>UVbA=fsUo+!UfT8+j!$VEnqo#93%iC&u>2{Kh0lG?OLk>Egd06k ztT%Qw8h$lmky_j~qj8&!J2q)(GabjWU}44-Hmd?Z`SVcW_G=d!$I&v?*4O)ufvb{p z`j!|;Q{?rnn=v+Y3J$fsjWC&&k9sH|7wF#hF70vx&uQ zD*{5aHsuhN&#C|cfJbj#?%Z)r&*POkw;Q!ey>D@UOS*RnthOa&^3&JQqVkn&OLkwi zT>jwoU4uiFI_Ett4*kl!#3Wd}s0<1&BL|cr)rzM{$=A9jpzA#Jy?TvZzm%;{r4Yk8 z=fSxZFi`~2dJwJ;OlC*U(zRD#-C8*<-#I;ea8Hm8Co99Jilx&NB^`@VlZeu~<3#iQ zF`JBeEI;lE<1#wRwT36PEkkOIh9MT9HT4?NIY)Y&!grjLS$+|WogLOa^xMrhJ- zElX)avP#oj!-}_z+F?g2O5$#u&P~DLFh<8*puq+Ah47#$qnbLl2wh`qMlD1T!Uf<1 z5a$s%ElWhJl&x&HOEb$B%nj%D<#MfVW0{sgs0n4ngwy~aAQ15N%f~dFg37@V^eXC4mp zl6JI><&l#>Rs#_Lh68>G+XJKo+_P8d=a`AxJmwlCbO_e~wgea$&`>A=C;-S~=EZ=s z-I+=OA_-_`+9wRA2M8a4ya)nK+&BYN6wvN8t{_dE3Yz!cg^ouHfYV&;Oh%aQTG{+w z%)5^Ou$$|w=1l?u)9-@tLImiH?-@HYNPdx5GHK$>#8OQh^ItdkGbH*eW>EkD002ov JPDHLkV1lafv{V29 literal 0 HcmV?d00001 diff --git a/imgs/icons/3188.png b/imgs/icons/3188@1x.png similarity index 100% rename from imgs/icons/3188.png rename to imgs/icons/3188@1x.png diff --git a/imgs/icons/3188@2x.png b/imgs/icons/3188@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f7d069d458d465d6139173cdaa7a58af4e228e37 GIT binary patch literal 2455 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 VHD_#)h2H=G002ovPDHLkV1lKNvcv!Y literal 0 HcmV?d00001 diff --git a/imgs/icons/3189.png b/imgs/icons/3189@1x.png similarity index 100% rename from imgs/icons/3189.png rename to imgs/icons/3189@1x.png diff --git a/imgs/icons/3189@2x.png b/imgs/icons/3189@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..99946eb01f9b31f9e0a64937075f316fd72473d2 GIT binary patch literal 2563 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 Z@82`3^j2@{xLE)I002ovPDHLkV1k5G_~HNn literal 0 HcmV?d00001 diff --git a/imgs/icons/3190.png b/imgs/icons/3190@1x.png similarity index 100% rename from imgs/icons/3190.png rename to imgs/icons/3190@1x.png diff --git a/imgs/icons/3190@2x.png b/imgs/icons/3190@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f8207ec598b6462a04ee3b303bf6ee5bc7635ed8 GIT binary patch literal 2746 zcmV;r3PtsaP)^3LIB=69MJqKyA)u%WxGs>SAN?p= zAd1kZQJ`OqTLeY}xF1O+r2Vi|wMAUZN#s~2sfVSIRw&xy`!VFqotgVQuiXz06#b5u;3lAPUmY6wnM%+z+9cN4vk^Qy*dgb}t+J^hcfrBnfrYvST z$ZL(J=ex=N3V%42CvSf--#>nT@{zrxtC@0r#?o4PN>xc4)rq6<=Im@Uj3r{Jb<7>k zwb`b*xwkR)vER!M419Oy%o!H|2Vm@8_yNW+2V_Fu-&?orrXXgxG6-eFwbt^9d|$3} zdnGq?@L)z*oViM}+|Y2{tyJo66q4|L5`MszXKsp4D)C0V(wX+-*a_oUM&OR!X>TZ@ z9uu}b2*B^9z}!gz0E`17oz1x>o3$d(Qv`04*6NcJkL*j=2m4=r>n+gjc`E{u8%J)0BVN-V>o&8 zB_K(yj*H>xs#&x!Sb*5b?mm}U+%8Hij>rN*C zky1iP-}6;a%$2*%%5bC8`Fuu37%b*zV;v>ze5vkrx^s}yM>?HA7%~8CHv)ujJ!$>( zLl3e4l=_A)DB8uJ1XN8MXU2v-(!adpFDcPnLPi)J*}JbuMZ3iNFjvX3PYe*2p}Rh zG@WP1k000XZf#z3r2;b9ek$ZGmCI;Y9MP8RkB*J|(hn%=cB#9*DY{LUb$vhM1wlHB zMUogx6-wpw-k}jW&{t8UHMhA{%T;ToM!VyzUA{8Av9Zx;wOYa9!-qKlvUf7T2!OnB z;lh_v^?~2GICH}!o9%e<;%Sxp^)E56Tm*3*dYvv3wqr-JgzvUZAZ6^7idGzjDr&ky zYh|K1CLPC2)v{O@0iv^KF*<+# z{1E_Oy>#i4=A6?TlaqF1Ym1;2KGE(nf3rdD)wMu%1#!*|0h$O}!XVY(pO1q;2Af-f zF@|CpL&Xu7*?JaQS=-%!rmw$^<;Etvy|kpmDAum)jso}-0OxD~xOnlRoS2xv`1rUr zGc#k#eSIkRl@J6WyiNzA<3aj?4veExsifALG#PC)1E^3?I*yg}gP2G|g)tNS; z6*8F&>h(JM`}+~cF$cghnG7ynx?})UZ2&lT?%b8>>FF1b9zFV0Dw!Pjx?Rl9&N5;Q zL!bE+HkOyM-D?)#7Aa9s@#RDU`${;|t*t1CKeY(q<-!_YTU3X)Qjk`kJM zJDF_CPA3zJ47Apyq%e_)8Bz(xH6f8qE@jh+X?u8BbPL6wbi3WZPxbX(CZd}F+IKFZ zKl^mEx@LfhUH9RF zjN5i5%hH-+v$*o()i8LP*D8JXKuxJer|sCVz(Aao9f%0Akz6GmTa!le$dP&wc5;n3 z-UNiy`E=SV z7#d^QUU$D|KmeckYHUwt(d3sJU|SZW7k2SF@^P|3k^Wy)-CIeDR; z^rkP{Tb(v++lG-6I*I{+S&0PaoMT^Y5Vj`Gl=@MrQn_K<+%iP@JXGwKia9rv$>!Q^ z+XE~B@)ykrz*mAG{5zuMF8FXNjBdwDLyE{~O{rS3G`Y61v8|LW<^UtwZC(EO{e?rn z`pg4ew}bQ7`C?~0385H03miXOB+B0;6t^ag=#g8MkA31Qf7zH-BOLkJEH&) z08mAM2_StJmQgRFB9~+EyxraVy-4VLYvA5gFznnDiQagxRx|))kA&&@cd`5)tj5kG zRP?^}-3xt`?Gm|n!d=@{ICK~8!{*$@y-yqdHyiZ~@87ITpa1{>07*qoM6N<$f*i6) AOaK4? literal 0 HcmV?d00001 diff --git a/imgs/icons/3191.png b/imgs/icons/3191@1x.png similarity index 100% rename from imgs/icons/3191.png rename to imgs/icons/3191@1x.png diff --git a/imgs/icons/3191@2x.png b/imgs/icons/3191@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7bda23b9f9b925fefefb719292b356ec66beb30b GIT binary patch literal 2576 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 N002ovPDHLkV1nhb)+hh~ literal 0 HcmV?d00001 diff --git a/imgs/icons/3193.png b/imgs/icons/3193@1x.png similarity index 100% rename from imgs/icons/3193.png rename to imgs/icons/3193@1x.png diff --git a/imgs/icons/3193@2x.png b/imgs/icons/3193@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d990a9818cfa399df46f2ca0c7f96f9014819dc9 GIT binary patch literal 2186 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3195.png b/imgs/icons/3195@1x.png similarity index 100% rename from imgs/icons/3195.png rename to imgs/icons/3195@1x.png diff --git a/imgs/icons/3195@2x.png b/imgs/icons/3195@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9bf6c173fc7415f9f4af6c87bafbd97cd0743acf GIT binary patch literal 2368 zcmV-G3BUG${2z%3QB2MYoL_|fuNK^I-SMT)XcLR zH{O1ufOloGL!h@?aq z1Q1d{h=n0#3>ifjy?7Bqh%i>-+mAi=*uIY+RV!3 zGK&|%q=bkB;#jg+DH34>Wi*S0B%=)`r>AT#pLZRHt8%&W;FC}OW#5h+JKTYR0ewRP zM8p|mmWVb3*f%*jQxIWjs;ixx$~`{a2>I z!VO>AJd(|1V{Hw$NGq+Qu#X@;QSi!!Gi}EJra+OUZ9bYAq*ToglZH98#itmNhMM$j-?ld zp%Vpx8%f23xv|`_*ZT{hkg(QL=i1xpVE33iM zXCdP==d1TUL`sHi!Gc}H&R`sBx1an;5vLeSX3=bm=Lk13p1qKcPyNrM_h6y1MMG>@)nUK=0 z*CUWMoUo9LGTA(_T*>g( z+l*Gi;mu9Vaa<5+apN-pJ^;NeO)8~W5QYfD5V2BB3h9JV;6y^OSPBG@R&BhrBA7ax z{@tIRB`}VC&;1!Qv$OD$E-Hb-)O-zx-WtSs)tiUotDshM7-vLeVHcdA0FZ9XY#D(# z)`-FgVHiLw4Jjp)k${u}wR+vOx8_-N>Cmdp+wVi~9oyK&_m1N~hhM>!s)CF)GU*g; zx#J5+WOK66y`~feRYz&XL>R$n4QmNR7$OKls8|7(Ga-d_7$af0 zYPFMvVtLlT>-$fEtikNqIrzyONGrH5M>!DK|N1ekD6B797%Su0F-EgEmP~8CaEA~a z0Lexe_%aU!LCAtIL=;7^M2K|^r8Hfw)K&Y6L~{J}tLCbne316lH4mITc@h9HU!2F_;91B>!Ws*$HR-VGUpRXz{k@<420^XH z-Z{JrIY{GFC?k zBAAlS);!;j{X|M+GTF%Wd}*vr^xV|BE}zNyM~@yRDJ2=Bc@Wf#0DcRgAHX~Sb$wCl z0?>}*d?TC5KJR%6#~8!9y1QASv(s|!KuSqr6hX%k*T#Z~D4j~PTrN+p=YlMeB{(9A zFgSPyS}RM|@_JA!645RI#{pafP+l5>rRD%Iob!h>ne0>f+zOsZ_y$BwX${5zYYEyI zqJ{FDIgSIzaR2~B1kPPzj9|2(a;5AAVSSE>`T)EMV7j5+E-Jp>3;=GeeWq5cCYzg^ z|JdHXDs^t?EToiRi~|eTDn2+-v@nRll7-_q*l@=N6pKaFgIcNK_E!MR0SK4;^s#N% z;-1(E;9e{wj>T$rY0I{lT9nQCt+V3K420000muf%& literal 0 HcmV?d00001 diff --git a/imgs/icons/3196.png b/imgs/icons/3196@1x.png similarity index 100% rename from imgs/icons/3196.png rename to imgs/icons/3196@1x.png diff --git a/imgs/icons/3196@2x.png b/imgs/icons/3196@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..12733776db764fcc2d60508a4c308edaba21cf95 GIT binary patch literal 2377 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3199.png b/imgs/icons/3199@1x.png similarity index 100% rename from imgs/icons/3199.png rename to imgs/icons/3199@1x.png diff --git a/imgs/icons/3199@2x.png b/imgs/icons/3199@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..56ab5f3be2cdf7fc5c984cf2ff187069bdd80d29 GIT binary patch literal 2408 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�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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3202.png b/imgs/icons/3202@1x.png similarity index 100% rename from imgs/icons/3202.png rename to imgs/icons/3202@1x.png diff --git a/imgs/icons/3202@2x.png b/imgs/icons/3202@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8ee56e1fd8f8d11ac00b8d7c8d51f3b177d449d2 GIT binary patch literal 2788 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 KoKu7uuP_ddu&S$rVO#l(+ z7RWSkpKZv%i!Z+D06Fp3cYpuQr;of66ieUrCS-hamYuO zQD0bNXt7GurZVy6bvbkX^YOD6$F2dj*tu!49&n#+bu7PoB>%zpzw>6O{`l<7><%N) zv8_Y56#^}Up?DJ-ABOtmQ%7B2Uq9C;CKoSU9=~|z+=a2F#l;)m`!m4B%^27!1qz7j ziQrEs-~aWlodbV=?$}eNP%Qej)f$!6NU9BMfC?wURW+?85A%8cKV*O?)4i9^p8x;=07*qoM6N<$f|f|i Ap#T5? literal 0 HcmV?d00001 diff --git a/imgs/icons/3211.png b/imgs/icons/3211@1x.png similarity index 100% rename from imgs/icons/3211.png rename to imgs/icons/3211@1x.png diff --git a/imgs/icons/3211@2x.png b/imgs/icons/3211@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8712477fdcc82a1bf4ce4f89c9b4a491d299f1a8 GIT binary patch literal 1933 zcmV;82Xgp{P)=5gMuzh@wV-kO~D-RR}C0@rDF%2qdIZA%Rtu zmp+2}LZzw_Y9C1Rz(Z5SLurs&9wGs0XziBbHf|C-PQp6b|9AJ!3=g}GoHS0HiccEN z?$w?1efP|FW^~~0A?w3?FLQHq%6qT9_vWUdz4!77;@=wHd-eM3uNx6zl{Lhrp25w~GYu>Sk#(WCm2M;>Q79BXu-3lW z@Av-@$8ima06+MK8$M!d0)~t1^78VJMn^}VRZ0Z_-EJ4H^&o&Tlu9MiGzHiPd=vOi ztJV5pnx>0G4m%VfBI36s;MlQaT14#APe1)tW6ba3IOgQZll|kzk89@~)6>(G%Vm-z zp<1o7Z{I#9CntRvhE8k!P`BItt+n>?QmJIQ%~q>Tp3Cg)tOulCuRmd}rO{~QOG`_^ z>guYh*XznTr$j_4r4+FKUo-HBjpO*?`T6;;0Bu0utpJAmm9|=~gRNGJcDt=Roi^Q0 zhjyz;mUVH~lIMN$ejl6nu{Oth2RLuE@_F8SNJQMZbLV6j)8EWg=c>K z%U}Gwl!UVM;i9i(D9clAwJ$Gs&BV+fMJdjn zJ)2KYPv26+?K0q3R#y57g%&8MG21Fd{Ivwz@3Sq{R0={ELYx{ZX~1|nWo%-cZe6(6 zj>IRW96#W_Rr+ryKmcDX7R#d(6F>X$6HgKZp?~Sc7vq$p;|8M5paB2*&+L6z_nLpbXQHU~Ove5T z+k4XPcGx){Q5hFZtO?U??i&r}(yzlFQ7NSs>2g2f~SM)!P?Oz&Vva0;oNq-8WV@5x8! zFBE`rJ19fP;E28qG#L17^D>+p&c!%3#Uvyy6bO?T9VwI%RIE`&4MhVMLQ~;1 zV7!Re5!l!dc<#Ci07wETiXxOAf$E_nM;It{qtT?4dn$?Gl*Vad z27A9QpaWzZ#oSTAcwiU}6p`zqrHN5FkpUA45_(hwnQIdjLjnwGTX5cEy-4m=%%CF7 zaP9%!jRH3Hz&gqVR78kf3wqZO=@A$~89;*-&q%4u%x=rtwFdQ$LmQ2?4sUJDzytA+ zt2NBXb=)xnMPp=KL)>rU+8`z;Fask>Fo=-*2A!s+GAfjFjmnBz5abvMjxOu{vJt`5-pu4 zNiG$8?XG8FysHfM{|0P&6hHM84k$0|nEw6OfAA9t!q7kW+;j5kpI)U@Dskk<5oTs) z2*Z%=+qd(%0}t}>*Qx*l+Raqoi@yEtGhce)g%?f)QPj_}Y>j~twcF*|(+`_hfuEh7)j)q? zVd40D@4hQqDI3QTVHgrc0bv+mv_fl55E#NRBnS*jiFeM)!u&h=sZ*!U0%51qxy--= zAH${@c=_d*J-{1pyzv|F{dW%^K79X`D_5LzPO_{gS(ef6bjYpc(xpo*EG+nDv+3hF zR*Q>^y!g^fe_vi+UQyj4@12 zO_8Q4Gcz;n-o2Ybp+K!x>z_V-`mNVqd+l$HM&qMiulFW!X0r@zr7=-J!5DL}R4P4M zE|(vinwolab#;|yqu~!7I>gb(9+QQIg^RDe^2$G&&E`_AR$KDkpKG;R{{lW3l7F(h zfWbA|$@BbltyWvC)oS~zlhwobO;3;f=YvHxQZ75^oLgI4duM)r{@Ia{k!!tPZ>`ts ztpas!;rzSJz{YoF&z?QS<>lqw`^I-Zd2e;+_o_kK`t$pL|5el5x4PZ#+pSjXzYH6Z zyNG>P5I}Z^+xG4)Og{cVxa}K26$s{-yIxhpruF~V9p6I4b*z&OhZ?r*TN3a;=-ES1 Tlzc!-00000NkvXXu0mjfmA<+5 literal 0 HcmV?d00001 diff --git a/imgs/icons/3212.png b/imgs/icons/3212@1x.png similarity index 100% rename from imgs/icons/3212.png rename to imgs/icons/3212@1x.png diff --git a/imgs/icons/3212@2x.png b/imgs/icons/3212@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..eb3a32f8649389cc66ccda00296028ae5b05e35d GIT binary patch literal 1860 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3215.png b/imgs/icons/3215@1x.png similarity index 100% rename from imgs/icons/3215.png rename to imgs/icons/3215@1x.png diff --git a/imgs/icons/3215@2x.png b/imgs/icons/3215@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2310737e44372f1365e5e501ee0f4b1ca88c527f GIT binary patch literal 1884 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 bm$v@`y77LMaz|u}00000NkvXXu0mjfml-T` literal 0 HcmV?d00001 diff --git a/imgs/icons/3217.png b/imgs/icons/3217@1x.png similarity index 100% rename from imgs/icons/3217.png rename to imgs/icons/3217@1x.png diff --git a/imgs/icons/3217@2x.png b/imgs/icons/3217@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7ffab845dcbcff37fdbba12ada9478ebbd8a8b28 GIT binary patch literal 1722 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 M07*qoM6N<$f@i|GBme*a literal 0 HcmV?d00001 diff --git a/imgs/icons/3220.png b/imgs/icons/3220@1x.png similarity index 100% rename from imgs/icons/3220.png rename to imgs/icons/3220@1x.png diff --git a/imgs/icons/3220@2x.png b/imgs/icons/3220@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f209636b01af1222959535b612774fae62aada22 GIT binary patch literal 2605 zcmV+|3exq7P)}PISFw6`gIKeSZSFP>t9T6 z+%TfmGRzqBserAG4fg%F-V*J$`J%)>SAGZRZ`#Hg&E6Hydn((7PnQwv<-ff~-`w1) zn&BvOzRU=p){3wE-P5!GT)$1%U;9b{d_?w(TY5tH=?3+$!Rh_WsF&Xj%u_xz`bHI>ms~|f; zLr|I6p2_C&xUic6x5KTFz47L+cUYb#>h(nG{X2SXjhGw%{L@NldC9wd`!&_+0Klsh zXn(|@-8S@FfAJ%$-EPwpSma5se>C~48^$}>zm1ok_0EVTTq$O8j{T(3yy$bS)ui9c z_6?7sD4`>Z`ibKe3#w4byInTu{Ok1$AZVdQHvwF}yvT9+FY(f!E%9+AjeO&Eb@S#w z7C?&tn+AaXL8wdS z;STbRZ@&|`-mFyiMYD*bc~RvrQ?2V3H{&!@-6+iOxWer*hT)Ve77asd_ufuFN`x*x zn38kXo^p}p&EcbQ_n8;3dD^#iP8_bnXfc$S^dBC?j5MmPTjAS}XN4ij5R$=$bRd<&Y zvTrB~+hPtiStZx3?linPzs#!_E}l6XDeaGnPz;JgZ3&N5P6rJ?U_oHhxk^<$5M5d5h9h`Aqi>(n`s< z%B6~^onI`|pzORiIB4|t?)DC}Q+TJ&RxcPs>>NaKN=u&0>u#niR9Mt=9Os97aN2E? ztgR9KF#!N8cNX9dC_uEUc)4b~V3ZY!%1Shs zsPqE62Euhvw@hRN%eE6;uGabdX;5q(m*R;kFyvd`yK7ms63=(`SpA&W^hYp z+Sz_5z3Drp2mMQx>1OMgz=PFkfjGT#t$vySv}|*$2y}vg__b4rfsZ0rH#Ph9gGUM+IOc7%adUX}X=;KF>1Hdb7;~XT1 zl~N9^R{kU$-+Q|%lgzzz);_g-w)9+m(XJb5tdh&Uq>z#uKxjr(A<4t>Ob*A1GKKcC zw9sK(q=SL%t3*FMdnE|QFx$J2W85>=9oYU`}9bu=`X)?CH>~V z?94UhoQut>^R?yk)=PecomN>PX1P?zi0qD&v`8fgAxMkD#EBwDhe<*SoH$lg5pG$& z<0OgI-+PzdA%WN>7B}OO%9iWReEt?F0KK+){3?Ewgx~z9gZWTpZ1Ehv{?$LW|6T}r z*-RNPn!LE*uQbmX? z#uH*s$9a)UlL%s>X5gGl6fDiGLP`3F!wnd>Bi9lSdCf+q9i$1PuFV&GM)GU~VhcnF zkhNDq)>c3K&9pWQ!{#Rb`@O5qH~yjW9mi2m4-b2l@7%|%|biB1D$ASHCSoBv8lwJ#M>nWiF-#8v|9 zbaT6S@!-&kbU_ zpTyc6j<8j+T+5&k$y6VNL{e}J9M702mEq!9yG8<1#yjZ_0JVk_Aqam4-?bu#H&hu} zWoQ+#O`T%V4$Qgc9IBF! zGZIdXwM(S){-a60Gn<=_;(>jCFP8h_Za4qUbK|KWZx6M+dH>+`*FLx}!=Yw0V_qo@ zsNYLUZYUj_xdqEaT?msY^`pJ{qkA>b>({|Pt^z_#2SynK5P}pS=Fi(Ed;0?NixEsL zqw;WIyY#_+^dDFn0q@~pbWdY_&1?e&fE+Lc!7Wo{i;wIkR7kr-CG&?lafZ|nWMy$u z;E3j}6)fqd$p{*|`joi!o>Ltg&&yMgFAMQ3+cqH{|FtLEc=cOf zFq<3Dtye);R*c!+h5?Y(YA`qeMo)pi{riDFPacQsbF|E7=^65AJ>~xb=+IOpKU_oC P00000NkvXXu0mjfh*cGV literal 0 HcmV?d00001 diff --git a/imgs/icons/3221.png b/imgs/icons/3221@1x.png similarity index 100% rename from imgs/icons/3221.png rename to imgs/icons/3221@1x.png diff --git a/imgs/icons/3221@2x.png b/imgs/icons/3221@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3c4191750ce4e189e97ba91d9979d90ffe609510 GIT binary patch literal 2570 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3222.png b/imgs/icons/3222@1x.png similarity index 100% rename from imgs/icons/3222.png rename to imgs/icons/3222@1x.png diff --git a/imgs/icons/3222@2x.png b/imgs/icons/3222@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f7636130ba576aa1226c438db069e11d22e17206 GIT binary patch literal 2960 zcmV;B3vcv^P)_Nr>AzO-sF00a2jg>WgS31UERqAHWsLw|j|F zE)Z8V66j^oX)*Iw`GJAd!_ednDSE^IG$0z!GD8O@9y zJ@cF2{GOQy;PV+G;zJ9aPDg8BzDxlW-t+i;0gnO!ko)81qiCQW^tm^Oix z(dhv0@BcPi9sNTFYarfu;|<%gteNr7*3542u(I0^NSK6LQ4~yousQJ5)U}-G3JJ)} zG}s|8Mz?xjf!^8+uZes3|91cYfR`>^()=4Yj4%k)N^3R!WATU7zExV^0{uHMKnxwBwH1?{GQb5wsKW){`mQ{ zz1~)^j0*8#6xxIIUcdem%`|_R!Qvvcx7+%uvnS_czw5pA?pyGqf8JoXw_f#@zWNNw zd1gg%SQ$;mGlf+10#y?!F@-Glv!wV}=^X$0&E(wSpZr>r-?-u7$q|s%*;Tj*N&w*h z2>_yh*(#pA_*<1pI#`IkN?0MD9s5Id^}`SBJWq}F{k_t!mnt=vL{mx(rhPw{PDRnu zbvmVhG$=KimSt{O79Y&pw{ZQPW={;e{NGLiv|3+NYisZsg+2tJb?%%VXS=gHaavD3 z_LMk%`tdYOM%g2i2@yGU4hNIw$PecB?s`a0H;!xuDf*XS8=e_{E{+mi1r#%K2kql9-!2 zy^PQ@TbR?U^;$H4^Y-rX(~Do2Yc!|pmS=leBCJ9P!(gDBI;DOb)*Y+-bp^83tU0~2 zPdrNfaQwrKYa6fCp6HJ5=}vtb00O*d*!ClqV%wHwD@UO6avBpbGDT9ujWWNQr4fD4}c*rH>x!T8#_ox@F6cig>10Ald^L zaBE6qJEnc?YTarTcMrXs1Kbs)wz9meE?rrLFht9l%(?Yhot^(W^8g!K*yH^)5B($= z84fe6d6b;2mR+w=uN#hAAq9qnQ5!UkffNbIf>TgAk|HBIW{#yvix>t!Irr%8nG;qR zOeF1gyV}&$yGKv6rT}1_UBsP*2pBm`OEsmLW?XU&&pk2Y>PbTSl!!aKI~G6OJ#5&H zn^($~mZU=gLNTW01W`vJauviAh{F)lC={yTxyOXCE1*dpS8w0UbBom@S{T}uDaNQynNP;SAUd$Cj2Xpa`6gFbR85q!H#>2$4TB z<1nbFk~bY`51;?0AK!ch4_O&-PzeqvUn5@hg~rq-%?O?5%~mb zjs>N%1%_#Y=XihwfH502&`BKo7-b>wB*n-dAypB0CIQ#fA&El>CmCwoI5qLZIS+@t z=~66;9ZHbge~6YL`*=xRPp?M;(@ZZ)gi$4Rny9GPLsH71FcU1422mn_OAQn-ND~2~ zh#*YIptJ-s9zqn4A&Vj)Lc(zD!$H3f#B^Z$&R)(1iiE|_568)%9DecdU+%n2R#sLd z0stzd;4fc&b;`2kH%y-VCi3V^t)$Os7}reGGJ&}mrUG=+0>^e$nxv>x0Eb!NkGc?y zdyp3a1d}n0Cu5*Q!T!Mry5j)QbRY*qqULQr`^-{RNFi?T9sbcPFTe77r_&)vYP|G= zA2g~uK5Izw{9$+hNlJqSgHFnpL3O)Y$4Q*PxYq~Mw1E%_hE>LDxdK_-hu*<1WYUKy z%3(YXf%6RfAb~IwkO76H&?Ol5WMTGX24FP&Abiuxr+)u?fBi~$_b*U@qg9=wFuP^D z_K%)N_1)h4l{gueWD%-GDV3p_3i43(dwU@Cl+4T?$B-qE_&!PE5aP@SMFFS=5JVDk z(4YWRnV?E2iXaHvIp|h3VgN`i8>CACL1_R0?H3eD?00at!VY$Y95)t?k*-bu%&Vxc zdJMn0b?4R;l{~4NQZ-zJ!yuy?WIBkP?)Ud_(x0Fd8N`_nLMaGy6UMPrX`ztn3=4^S z49&kYs2S&(@CcEA`~APUJbvgm3`LczZV@uCmu-DycIW5IH)kGk2PMat3nTQlcmC5) z#(sQassc4;7@&>pfv+q)G|6{MomDYSR(H~G#>poq`ujJH&0C*{ zLKL>{kV>gqY80GSqFCBIO5gr4Ue;7beZD`B&_L_jw9F5H_YN4Aljf3#R>+$Z@_bR8Re}z{Up4JCZI2`uf zd?*+ClPIf}nPgU-`$3MOV5C(wUVHY`{N{jb|5QzfAN^vIm;vtzEj4-Bb;W!8`+W4= zHQ8w?va*8m=n4=3EIGG1@)^*MK50V#tMP-_xRB2uXNm0mZ7>Z2*@!aS+39tt3Wl$?C4;7`T z-dRy%t+P%>r?&9yu_?rKFN+hJZ%4IaoQBuZR2$vw3wdH{&NQs)gJJk_Ls1He6eB@%=QbNy|w5# z+=pTObaN?AeBT&Z37$Q1Sls#3GyD%=St6oZffaa=`G+y6qy972>9h^o{!-)W?yi^| zZj{qJwV1}H;zTV;z$!8I?>$<7`TbVwO|=9|aAVfPV`-Nxv_f^J-7W|rQYrPR4L^q| zrSPSfUea2v7H)2C>f57jL*$n3y2g}L=z*yX=Gl|C7Z)L4Szf-k)iT1`GC~^^0I2)b z@aHsz_fqy@z)Bs>5dbcpyQp_AT+r|VH>DKbZ=gPV;Qt0yVJ{Ba6td3%0000bV8?fPrK|I~ z=X~!u2jJ%w0@>QyV2DT%fB*t{ats6k2;!I`A_aJIzJ*(CjAMFnZ)VfRH?s?&RebT|H>> zv)m^fL#Y?Jx9BwsMBvipNYMGBRF#%_KPc!pG-Cp0D)iBb234A_x6N9 zwg&&EOZs{$BPnlC-@cl$Zg-^>Z~<|IysY_BCvFq|($M2ekuH((q%$+ToaOAp<#w`C z46>!y!X!=iKf8Y)y*c7ckgAGAr{l3NXKXn7G6EpNg+a#SFoT7jncJ$KEs&^VDpV_s=x=yu|7q`& z{eNa5Eo+=%g;VYjByY&a0&v|px2Ci^;OG;YU>39@Eav)v6X@Eytcy}My-u$`lc$;WMIwB3 z#<{mi;^=JyFqsgt`6u8x0+2hf0Uuua0*-h$NW0xD0(z@al3+r6>jdCeQlKdTa1>}p zJ;WZdO_7pb7-J5KD_e$1*a{h`Go!(-bhG)R1Aa?s|LRiEElJhb(wxqS_V?YQRqpk{ zj7A#<{WjqM0AIb)qdh&O*9IbZJQuHsjD7y*V6`0re~ke202r0lMg(1~(FsbB0BBPi zmRO^%a7J-HKcyljiD$9i|7_YV=C19GlfcPI9Cj8Or8lTET!EAqvt~Z;x$W&O;A9MB zt9UcKF*MQNerR70*y0y|^H;B~v>>}iz+chE#kDa}NH_yRAY{as>Y-OMZ+Ot}RJv|0 zWkJzOGhfRB4HApUABPcm2zjn_lUD_KC`j+KnAmCA%x$VDz116%(e5tt@$E6ak%{Qw zBzUE$%&lK~HA=$}mP=E#C=rAM0}(*Oi4%>j=&U^EvGAmpRVa`O&MB1nqGi0ns;n(z zw&J{@g;@kup(4t87-qb^IBiyxbwD&@PNXFNVq1~jKeBujwneua(|6UQq9f8q}@E)T=E~+NQ3Bl7>2CQ0tO7rvxFyNhx(0X;bTxOK)2)fJ#-K zw})W>bLys-0{JwS5h}b*jg%kT$cJ@5aE-RYspz-^uyVM#e-fP&8lk8?(JRI zo0Clh^0XDd^Um*uKEBcuAXa%uexcRj!?l-t{O~C60l-Qt7Rv;9OVFrgRfy+#-D;}l zviB|pL>I-}SgEa2Ua^=NDVwS&iyxrSJGSOO1T=e$+S!92+%HC>4Y#qe;Rzx5tPvd_ z=OkNJp$w3R5iPyJ#s0&3$zUr8Lf0y5B`D}ZD><)nodM7l@Kz8&r7hy(sPU@ybL$`% zp@29O5N3EuHHKT~?;+UP{!&zJPPQGw7F+~>2C%nxUAL3j39qAi0P(r@{Ypqq8LOE! zhK2!@s%f}ZycZ?xRZdCf3Nv@0G!1D$G|x<<9@kCtBd;nNdAt%P&{#c z*zfm6AXd|(|2U9;{a1hY$?lIodvJI(-8-4j9@Vy~tu;qVn)m06`S%(M3lGpU+EZnW zM^Gac;BSF2uUCznFV3q+r~3+v!bE_si{1_g`O4rg-uYVa+{2%aU-c8A_ODfdb-F$#k4%^P75W>r45aJDd6^0m$qh|Hi!k{`6>PXUD<@&?{kJx{Mz9 z8Y|hDP*v3uqDc|NE7tp7lHr0dtroMzvD8iBENzq|1{p|dnPTl?2sQ#QOrq%7c_7`P z-j5Je#u2~}0DK_>Z@>Nb>S8 zj9aTp$gKCZ)%FmbD8K|Ygt~TyS?i3f_v3q~=F?f3e?NzVU(+Wy2juHNr3CnN9VC+p zz;x}ZZ^Mqh7v3OH^{I#y^BmEjH%5gIwe%13g+A97YtO{cVf4_UKLLwA3cLqysRPg+ znIycSi-(E)%ew~(VB0_M{ueR;06@qE%w78p07Tp&lgXH|wVA3~tT097s0^yqcOcke({`8OEuK>XRcLCs{ zJb$+Rhmk%#jvAILXmxlJ&Rby`@~Y&Kl97&^_&n{+-TtSC#GhP>(<|9(kO=T0DXK%U z_@Mc?`0nO+?au}9d`89yr2WB0*jFcb+MBb$ueI`ds};&dEl-yhAAIg3H+=8c<8D$7 zO^1X;$@AcB>G2=@{@eOVKL2L`F9;FI-JM_NGa0ACGL~go{hbG~I@!HRZeL%dLd$r) zH$1!e`!BrYe*@q`TOZvFcBjjJG+n`M0NB2>?ct{w@Bd6=eAe3kUq7?{6Jp-l%uKaz Q2LJ#707*qoM6N<$g4}og+W-In literal 0 HcmV?d00001 diff --git a/imgs/icons/3224.png b/imgs/icons/3224@1x.png similarity index 100% rename from imgs/icons/3224.png rename to imgs/icons/3224@1x.png diff --git a/imgs/icons/3224@2x.png b/imgs/icons/3224@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8a327948fb7a642d407c3dab75b25ba12b37056e GIT binary patch literal 2647 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 N002ovPDHLkV1j&PB7gt@ literal 0 HcmV?d00001 diff --git a/imgs/icons/3226.png b/imgs/icons/3226@1x.png similarity index 100% rename from imgs/icons/3226.png rename to imgs/icons/3226@1x.png diff --git a/imgs/icons/3226@2x.png b/imgs/icons/3226@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..30ed0b9e577ecebb82868be61ff9454ff10c7958 GIT binary patch literal 2086 zcmV+>2-)|EP)};{7itsfW4gI9| zJ+^&>5Q?HGLQxa}Kxm5cmmMwL$oQS4`OF!2^BD>Nkdsr)l&JcGC@A0_=U(bb)aDor z%+)4w*wGD1iBS=Ptfs5oJFfRw8(Xe-wlfs3&pzU*Ih^})HvnMWIv%vz;D1EGv17-0 zMkZUbU^=x;B^AD{5QRx>EU5OL5qSMR5b!|<12Fe=*XSEAo*niMXit5ZXIivK!>_3+ z2z)C6IR*oh<%~n&}QqC9r1#XPQu7vCTj$rh-T6B2_g z3ter^k=i!hrz15L|9q4a51j!*2&ILV9&QRO9{k(y3wIk% zyu%GZ^{ar*I+*{~s|TZIy|5&8{Pz|nBqXg(nv}NDVzbChvw~zqt34Gelsu}~`^W*H z*w8WcdjH5NLW17UDorhrH@naqV5p+^sNdu(h%y3dM%Gb0aG)R_jL}e^UBP%gIBZ-|D_v8esjGQni7@_4)qmu+b0 z=FOYK%;uXHy4wZk6H=!q#VE%ubhg)2L8GZfLBTx~4{;zrKc8xBY~)RlL{6p|B)VDl z3d{BD{#x`)p4aPtO|RGc3JVK&H8eET1L%v7kGJgJy<4+?|9*|z?G_3If|Z?}ojh3- zQ#<1Eb|~b^B-+nRo1@iA=ggTS{H6FSS%WpE6x!TY>EgIOL+p( zIQ_M2lwPm*0^r@tcb^(UH1zAQ4^H~+Z{GY_AZFqwj}ubX*?Wp%JzZ**YSxg&BJb?% zyd)NjU23(O@_0Ni)YaALT`rd+A|iqag~D0Ay}eX@{a3Z~=g*A@L{DB>-_kB@)s>!E zJ}=8Ak&QDI7Uq8lzPsx%xcxLZvbL(>^5R>Ky0dFmukP;Y z>5=R8`biAK)T`C%i1_$;LswVVT$9OkmStHkE-tRAwY7DIWoT#?j}Ba(Fhg8-+h$+l z_6FvCRj;q&hsQLB=8gss95aOL*RS^j_(S=La-3PS?Tw@`W;ri>!il1N``!-|3X_*E zUCPPj@-K69b4z71SzJ+3(Kd-hqAM#aI{<)}mzTG(x3|~UeX*%z?hlsxgvz*l;mu)Z zpPT!@Y-~Omq7eab1MmUh?oRKnx2vJ^ukq@mDL@SC#SPY zrSj#htSo;^OG}%@Vv%~iUJ;+qpR#4kmIRSV^rF>j?X}yjVSWd-XzJn_Q%uG#C+G5o zGYpf$vFu0?2ms&!*Z_F$A3};E#Vd+~mTC*`C zeE$AmFh~c#wx2w(1pt72kj43nxz?*~SE3_SbuwAh^!eGVraOlEZs>F;|7bKC2ePxD z`-xmG&u};#6Zw2T-P+nZuU@Y&zh*Rk;`jUQdG8-uHh=DvXa02P3%2Ewp@HYK^aeRD z9DoJDtx)xB$ceGI`zijorX%aL(SGiDlY?x3@3Sil)@}ba04acI0MD)d;o9=G>(}oC zuo}P;X>9DY-yJ%#rQ1b1{`|#NZ_LcKHMAn}6&lzIU;}_O0AcrXJ@98lQ4|R+AQ!j3 z{n4k%sZ-?1sZUK8iNmEz)x_~)3F_Ob%8b$Bbi2zv5+5}_)}$Vn5TW^?G-uXRi7QT= zzQiwh=iLr#r{Ngw=;v{x+3y2j4ORX%*8?pGAtxt?DJdxtX1%!eRfQ^XvqBZ0sZhj# z0^1uzpi$`V&A8+6+=)z^Doc=$kL_%`$v2vesIIJR^YvdjNc(Io7YMKbIsx1Wwczmu z0Kl9%>qL6JR?H|Tzcev1ZIxI)K3yOVPmxGuplJ#YhYeo$2<*1oWMI(j^$quw!)Crn zBS3K+Hw54&fDQn+0rODELi{!d}F}=+n`cXQiK2mc+h6`9Uc?^0!^=)3$oX( QK>z>%07*qoM6N<$g4oap!2kdN literal 0 HcmV?d00001 diff --git a/imgs/icons/3227.png b/imgs/icons/3227@1x.png similarity index 100% rename from imgs/icons/3227.png rename to imgs/icons/3227@1x.png diff --git a/imgs/icons/3227@2x.png b/imgs/icons/3227@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6a688bfc000c69da1810a838d44744b285441044 GIT binary patch literal 2050 zcmV+d2>thoP)`?6TkPclraEXvC^bFMsmPe80YP z&hxy_`@ZMA!1wqLAcRnQy`KGl>-gV-5JC|`XhMjvsG=hJqmT19hc90)U0PDYLa(Qv z^}MIIj}QtJMJS3Q00>J_-anr`w=rbYLu|#xE?aT&_`2iA1+ZHE$j#-S=2+@k)F#!{ z2}ZiQ#6`=NMKLm2N`0H@z4Cs0{k6_}W}1i9;dPf;-gxUC03b7yfx+Paj|eCrg!w~b zY2Zf9thZw&(qGC0q=7dXmbx`)g_HO&BoKq~@i2FHl~vW&UKw@T4cNKYgr!Sal$H6u zlYrxOb%IuT!0eSFp{ExpRJsJ3x zT`vBdTrE4}zgqU?lbm>b4G=;V0CY=Bqi&;m`tjs|z_`7puSO0Oe|d~M`kQ=``8xmi zq%|M3IXt#&+jkwqk|oQK7?-A+6_X)*iAMmaRq38EfNysj}!4o3J8FG043!#iD4>L zT7$~{}^~{3@qXB%}P*#kEvQfE?HZ5pYnDuG^Kj@;ZyipM*!Z{I#@b$vafkp(~B&xoR2K7W(0_in}I zg9jOp*Sp+xv<>l1W)KmemYPH(l{QP|Vkt0X+E|*IbAQY}1wOW}_p`cvg7;a-D z)H7KgbK?vKd1`8^=-VzlA|N+6mrqVk=BCR7X)&O5`P?nJzx#EKeRx=N`}S@5$&)85 zii(OF&YwSTrD@v9ahwYPTUc0V?CI(G0yG^gkV+*30rIQF?`tGML2_S!c-pO7wgg@EpNQCeqGkRjt+~`Xf(zO z1cEA!MkCW|wRIMYWueJry25cB9}yAJ*xK4U&(_yBznu5o6iZSnhXx0i3BBB+YNN4) zl_;7g>W&8RuW!jSKJWV%2yt$$zV>?ny4`#BWR#Yc7UbvWzX^a*C=}WgCr<1?aNxjh z0CE7zy?gh*w|4E?qrs|RUC!>Dxb%zX3#5BK7{sg?J%E&n?*{-Rlj(oB1_+^&cI*)7 zGc$#*vC%OO7#6XDc|obkYsyMX#obmb7akt|MoLObmdE1>>+S88yWQ?kmSy9&Zr!>{ zB9Xjmx7%5#-6_6Ds1=EEv*Y7wGK?WdfLI`iVE_$)Pyiv5A|7r-iXyKO;?GS_r}qy# z+JXWCJ2-Vjg8#Yal5dTHG8QaYuroV5yCpI*QerlnnVg)QmttdMHy0EX z^q9=%ixJV$qNuD5NmP(xR=>&AM7zg&yna8;e`7zHOu-}fKrTR#p3Z;Ob+<{Z45?Je zf)lhE>k@43<~vnoWrvzfru(m^rM;~`3%ZXf9<&;RjM zlj5B%znC$e?+^elulr#};rgts-vW3Yz_JLreD1E(r+@rcLfU@PRP7O^FD|21s%xzW1^{>;ar;RE08mIulAyjm2!Mu` zO4E3$L?;mmm7!umIPV`~4!nimg zhK6M5>IxPB@=%p3V$QsITV2CWX+>4_Ul_pVA187F=m%f}FpP1_A3KaZ(@;9Go<(@L zP)<=QZJ6puPN$>eUUyd~7<6I`gBXvLdlK=#E8xL>Gynm{+mZt?gl`qte;ZUxOpFMC g5K~Q7-{UFqPx-NRX2i+ceE-P)Fxx3u;!aR@2`r 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 UbQmw2F#rGn07*qoM6N<$f~e%PkpKVy literal 0 HcmV?d00001 diff --git a/imgs/icons/3232.png b/imgs/icons/3232@1x.png similarity index 100% rename from imgs/icons/3232.png rename to imgs/icons/3232@1x.png diff --git a/imgs/icons/3232@2x.png b/imgs/icons/3232@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9a604a1906765168cea09f5761d16ee3adac28ed GIT binary patch literal 3469 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3236.png b/imgs/icons/3236@1x.png similarity index 100% rename from imgs/icons/3236.png rename to imgs/icons/3236@1x.png diff --git a/imgs/icons/3236@2x.png b/imgs/icons/3236@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..da998da6f8f8b89bea598c10d960125208223710 GIT binary patch literal 1473 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3240.png b/imgs/icons/3240@1x.png similarity index 100% rename from imgs/icons/3240.png rename to imgs/icons/3240@1x.png diff --git a/imgs/icons/3240@2x.png b/imgs/icons/3240@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7dc8605362796a7972610831d069c555cc08486d GIT binary patch literal 2767 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 V0I5a!)K~xj002ovPDHLkV1fx9LQeny literal 0 HcmV?d00001 diff --git a/imgs/icons/3241.png b/imgs/icons/3241@1x.png similarity index 100% rename from imgs/icons/3241.png rename to imgs/icons/3241@1x.png diff --git a/imgs/icons/3241@2x.png b/imgs/icons/3241@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..abc973ec8095f5278b739d37b28110866ebaabe6 GIT binary patch literal 2068 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 Eg75Mm4gdfE literal 0 HcmV?d00001 diff --git a/imgs/icons/3247.png b/imgs/icons/3247@1x.png similarity index 100% rename from imgs/icons/3247.png rename to imgs/icons/3247@1x.png diff --git a/imgs/icons/3247@2x.png b/imgs/icons/3247@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..089a9b6ba30dd6ec833138272dbb195c9d20102f GIT binary patch literal 3254 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3248.png b/imgs/icons/3248@1x.png similarity index 100% rename from imgs/icons/3248.png rename to imgs/icons/3248@1x.png diff --git a/imgs/icons/3248@2x.png b/imgs/icons/3248@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6342b8702a0ac6cead6e1dc32eb7d62c3fb0021 GIT binary patch literal 3350 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3249.png b/imgs/icons/3249@1x.png similarity index 100% rename from imgs/icons/3249.png rename to imgs/icons/3249@1x.png diff --git a/imgs/icons/3249@2x.png b/imgs/icons/3249@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4d7323c27cdf5a64254270a363373176ed90131a GIT binary patch literal 3415 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3250.png b/imgs/icons/3250@1x.png similarity index 100% rename from imgs/icons/3250.png rename to imgs/icons/3250@1x.png diff --git a/imgs/icons/3250@2x.png b/imgs/icons/3250@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d4cbe0a69b679f4e78469d9e827f120a52677d59 GIT binary patch literal 3277 zcmV;;3^MbHP)Nkl0f1-sw7WW84PWIlZ2tb&wTy!?sEqZG7y4f zGD(5t`<(p!7+W?)l36O9Nv&nG zlW!k?d+%cp-Ten&`;&*aKe&H5{e_|1;s&%(Gc}_jnRKLW*Sh7%bxmdEy4+asGcT_- zJa)OIrBN^pLA9)U$1`qy1S9r`0th99%Zjq=kw1R;FCEjm_ucVv$yCdH{P5qAv$IuD zSprBMr^nyJnRhQ^@8&k=f%|U%;q2UUhKa0OW|k*L>ftJ3+?2c)aTJS)t{JUVt1iwJ zN-NpwTHUsdhDq0m&ej+IyQ+<1)FA*UA;jUFZ-4T;kDqwxf&2ZxIQ%LK*%a3bd2(R* zcbvUnxPza1Zw@N=L$B8%>S@v_)oGj0m8-7iRydsFb%Y)1W#tVB{o6a+_N zlF4alHB(qxn6FIMG~s$hv)2>NZnY5pNAt!Ss9d~w(NxO?bLTA`bmSYK7eqftSuN9o z%~EIM6h=7%;Bd}GO6kJUV{bk4y+8ZrkM<7sSYp@bR{b3exa_h;?ioNFu#)XhFL=Kn_DWiYQV{fi~?W)tdWrse(~az`aj1{ zf3vr{`H#N!*jInWT5cxi&mJRl^K;1MbtHOsVdCt01cE_Ko_Y&wsb#!*K0w}B+)awH zySW@sP;OL(h^V1AZixZ6Ce}?8Wy@qWvmPxjF9*$HG1%G}4f-7Ba6zXGfc?S3(@zhv zFW&Z*SX;X*!M#nslc#2I_39;Ft6AiZJGR3c+=8>?ui*CGx5Kn;{PNgQ9DDP1Y}>sL zTW^1oR8udaE1uzsWzy88Jl)W3p-$ixMCP>{LWydVlCSrKjOk*l`bL!xrO$pG+VGD&(d z%lh{A-Ru}zpCWpDug>MC3CB={YD4s&Jn}Y{Q~!pD-;3VnD7+Fu@4#kofx+Sg=g&TJNULy6p29b+t@PE{d`w0br0Nif??i-Tvk2jBtHr2EJSfw$0Js-2o;kppt@e zO~bYMB^ag&i7|8~y0DSUp*bE$JQl!BJ*|uJK<}BtrR!I_>};*U%Nyrcxz{ck8(q^c zI4pd0)>I#{jJn}4gE2vn7;M{uqPU18xt!eMvbDdb1}+j@$Y^9fEm6gZpr^eJ;b;WY zb1CF~ZkQa1H^)({RIrj-;%zN$q@$Io+jb`M`BgPVDvdYJ&zfyo%}ysg<=m9t7Dk7M zZHA#C>B3~%*}S*MXbSkEa>gJ%o0@n_JZx6VMW)qEQ@u2=Rvd>V+S-IzJdCLgRk<>& z3gSWl&G8ua3~Ywm=SQV(;Kb>1I1Wd^FXHY!!6mCux-$RHT88IT)hFQBSIZh3d1t8v z05~%W1}vhy=+eygkQUjUaEmTY@86OzBSFc&e7QozQe$IrW>s6Wh!mYw4Ic25-kx^J zbm`(kwGf|~D@(1hIAq39Sj{0G3c)cOq<^!Bn-g8J^|uatwF@buMiRBR&6djOJMTEj zB&iEN!L{Cy2~Rqd|tPsxLi(1kyVeTXI3iMa2n!r!}2ZVE3`3l zuC%~28X54K!qzU%Ar>()H4fV>qd7vcqnDs1)a3mA!O7T#viFuQ|Hk@^t!rQEbBh4@ zhvWc22U{RIb*G$OEo4uhxO&ZP8RzcV+c_QZxyzj`;Zg~5k^179SgctO^|kd&kv78> zh-Vs7fUG$_VPhff#G@YWi2!A76+v+WqS%VX)5p;pS>}_4_=#=LUBBWFOAR9{+wV7~ zH+03B!HK$NYUYM&7}qW?t*lL6Ipw6&qniWd&3(7FPif(%inO^emX5XWby`~513jD8 zng)AJ774x65Pj#)tvkYNN3W1WFQ0N=J-TQw7bE=Y`O6r4`vmut7s)}a8$o3 zCO=#dIs)a@Q?FHkS)E zH(2CuGCO@nhu5HlD7spnAFNbPo=DC7Ol>%~c64{%cmCSkgOB|9b>VNm{~g@6yW4^s zaEbX-_i~&$Mu_0NPx~=Q5}@bXs}k7EQtJDOz$SG`ej z=W0&B4CXD>Zjs+#xg+}ZE?{-X~g>@5By zocP=moO6K?Vt+ya06Gki=6iZsqEx2=sg)X+-{LMD>c30 zlN2fiDPOJDD$gICwE&Rb-dnrDmI^w}w+uigR|Ni1LCx?fJ zh0)Q`-x7c%KrsZ`-_%Eo^F?+o>=36aI{u(0#&p41T6KsJYh^)2a`a-xL<@kbdOhP{_st=J&CdugNG&4G@q)pfDv9U1=pMsAB3EWu~Hej&q7>q2h{6MRRZCP)vq?NSV_uczC{X@p3Jo^1} z&V2XW`~A-O?svZ55BLgWjFIl{Zu%8Z31f_W)w^Hvv9Daqe~FKT!(omPVgN8YJ3F~Z zB!Xx(N}>oO3?Leff{+7dcQ>Q)I9Moz+X3QnFaU@|R!2ez10jq6tB%hH`@G}e!Gpr& zd2*X|5NQN;+2qCwzaGwpnd-rah=XuM?lP618`uqRv+|_~K z#1z#1>vPX(gME3v&Qo%neC3}D`<{4m-I3F0-e8P54;&!O={#>aKXqP2GRcMFaXyYV zdcJx}M9;V=isKYer##Cjv0EGdZ2E3b+SKk^jjfmTmBO2Hur_H}9kZNaO=*;0RF`u}KrBgtl8)IR za>^9r2=+esFxJ*=VZ%AitXjLaJvTMEPD#y=^J?yWQr2)x*Uf@p5jRMY6NT086(d%M7qJ9KD45Wd{>3LfI} zTjPKjN1P6ZKtdsqPcH>-aCDS5H|`+4y)hd8hl9&s+y9fF-MRjOzuVM)_gl5W8eLrK zC6{9FvZyNhs`cr-=y&>2~KDgnuyDVy*(2$kuYD{l_*c|GA7n8GT zNFs3HFa8GapBsiG^4M|rPGnY6`2Byrj6e09#-6QPto9(O8dD0?-{8~I3l^fLwb7Ew z%$&~o1XIit%88H^=6Aqk3?KxQ^LKP8J;D7VDb!POJ~5ZJ_)ODk^VQnDzDh4k&^M0v;L1=I zi%SX?^F=WJIBZr6WV;OS6!-7i;VVe_wi}``%nRmV zP*4|2CF;ne=JSnhs(~m7IY3MR;9ebh!*XrpBq{TW4vRA&mbb05Q;AmfoqgX^f&;#a zX0ma^Mr>Nwid=dH7K?~7rxV+@Zb7M3gd_^sw5c6-tBAAjoItGiEa^FRgf+=@jXFE{ zR85O_W0A9KDML=H{>E%L6w=~xFmkI7d24YErxvUtPb_kovqsLYBsP%5rJYYc{2)zi z+06R;dWp;f6I0W$NlrK&GHR=na$xK27r7fg;?w&tda#5L4YU-u*)(8iwL*JjmgPr^qo7) zeR8pvxhjIS`yO}xWNP}tGl|5c-Db7E>}*-{_vAp71Hiag>@f1k>sjb_lyn>Ad8M~6 zX1;a&1cru(F}PS%bU`#d7DDc<52B&m$JBfl7M?=3SwT4tWwMNHCW}(B0H4Q=j*eZ> zOL@3lWh9@==2nWOk1k!l#IB88OC;tqe~27BSUl)Xah(9iSISQ^)B_qNgtLH|TFD{` zl($J%z%)sq{q9WpUE9)^Prh1}$C%9yjRc%_R_^mcl&nN&1e1w*%qQkxwOPRo9X81V z!c4QN@eZz{p>f&0Vb6ca$Bug2+FD%&jo_~i{j{Mh6qt?xD%aK1Vbs@mK;)?gUJ!Ue zET@#h&^5?qF6hOg5~!=c7<~BI_ZAxOzc9?)i!13g@mdJEv!MnJRRK695q@_W{2n)a zZWpc%4MLz4t*tF++PZ5*DPT6~{_bnTBU2wtjLoFv$_@F6E7KwY7{>sp4j5`_xx_S0 zr93T)f?%|4+m)9bPLqIUvq{Y6XV?|V+I-x%>$`6(l(+X^T2!-VKkhXbCdbgWrV6{a zY(&TQyO2$%FqfER4h!YDKy^~CYCo5ZjVLX3R)P23J3s{AioZU*^3c|ADz_QYq0P`` zCK*bxpfj*3*-@r6Z`+yUC7UMM981MKR&u$OrIqQ0xy*QK%+tL0SgHM6(W&6}x%gb# z9KALITFN80I1gGXpw{O?(dNdw`<~!4i*wfTk;^J0MzMm*n%@>oEoV-!Q|`?s0|-xU z5k?%F^)Z+pj#$R1Xj!(~?bL3!Ym(Eqq^bbN^I4|lC{+vgk>0W4a<{Uh#1VgR*EgA2 zT*j%`S$L@ir^kz;Fc*hOF+UVis%;NHlTA0h}(dZ$wv$K>8A4fELzy!e1)rGFEE_1aV+@fSV z|9Ynfx!P&|D2 zF6~n;zyQLn0tjO{x13f>4Jkb*<@%3ZW`!l5TAXc{XNE6la_ZFJ?BCLUXIJEieV zekos59mq|TntxW%5D5f4GZN3Zi|2djsdwHcU+>suYz#QK#JRVyXH)YxlH;%3J35!s zQk6%^XNfQY7y)CXGqOq&;)qfw+GHl$>vUrErRT1x$>{;fUF{4^^<8LKQ(d)>Rqgm& zPVx%bd4(&KayftfJyWA+e_lB;cy7C?tNT?o|7ftX98W*1DEw`|r1o{rcPg z_~Re4>(|v=J>Y+J!Rl<4Bl*!Ln&8V!Vj4_KkGewl^h-i;m;TYc<@Y;#Pv=o)Rs?4Y*r(0zc*W=F04G*YhCM`-13%{IG zIYV_9@+$?+psI;v5)%uvLT)8NWnwele)Yb>N0W{ABd@&P`bq5AMwi37PIkGEy!_(7 zoH}&q5P$gaVeN|mu&P!f02z#egb_vDA10pSb*j50PG89LUidJ^#$5SAN#K_9qNAdE zI+0S$LS~7SX47U?PnbqZ<^7JJn9QaHlQbHqes^Drkk!85-Q7*Y;jsBxS@wSbeBL@c z8HWyVo~zfXUMX>?UiFU;jmspPtE55Kb!VH?Kr(6eL?SrTamK`8H`!Z};2oYy0m%ha zTS~^z(75Sv%<0i+)cCSE|F6VmjFCtLBovC0R703U3>Z*OaQ9R`sHajfZgw`y5a}@y oi2#V8tEOV literal 0 HcmV?d00001 diff --git a/imgs/icons/3252.png b/imgs/icons/3252@1x.png similarity index 100% rename from imgs/icons/3252.png rename to imgs/icons/3252@1x.png diff --git a/imgs/icons/3252@2x.png b/imgs/icons/3252@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0110c3b6c5f210f34776c2ea74c82485929d3927 GIT binary patch literal 3278 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3254.png b/imgs/icons/3254@1x.png similarity index 100% rename from imgs/icons/3254.png rename to imgs/icons/3254@1x.png diff --git a/imgs/icons/3254@2x.png b/imgs/icons/3254@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1cc0d45f9a3104550b40888587ac8883c1669df8 GIT binary patch literal 3310 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3255.png b/imgs/icons/3255@1x.png similarity index 100% rename from imgs/icons/3255.png rename to imgs/icons/3255@1x.png diff --git a/imgs/icons/3255@2x.png b/imgs/icons/3255@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5d55f72f59935e10b6ee4b5d5cce86b6d732ed9f GIT binary patch literal 3359 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3256.png b/imgs/icons/3256@1x.png similarity index 100% rename from imgs/icons/3256.png rename to imgs/icons/3256@1x.png diff --git a/imgs/icons/3256@2x.png b/imgs/icons/3256@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6f489695cf295a941c2304cf570d3de92168b7e8 GIT binary patch literal 3288 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 n_V_pdm+D0S`1foI{;z*FD0+dn- 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 Z{{YS(UL7Y9ho}Gm002ovPDHLkV1io2aKQio literal 0 HcmV?d00001 diff --git a/imgs/icons/3259.png b/imgs/icons/3259@1x.png similarity index 100% rename from imgs/icons/3259.png rename to imgs/icons/3259@1x.png diff --git a/imgs/icons/3259@2x.png b/imgs/icons/3259@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..73fa8c7d5b19febe24ee2a7780f1464c076c1245 GIT binary patch literal 3329 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 LNkvXXu0mjfud99l literal 0 HcmV?d00001 diff --git a/imgs/icons/3260.png b/imgs/icons/3260@1x.png similarity index 100% rename from imgs/icons/3260.png rename to imgs/icons/3260@1x.png diff --git a/imgs/icons/3260@2x.png b/imgs/icons/3260@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d140d37a0fba8d60218578c26832b09a52ff945b GIT binary patch literal 3301 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3261.png b/imgs/icons/3261@1x.png similarity index 100% rename from imgs/icons/3261.png rename to imgs/icons/3261@1x.png diff --git a/imgs/icons/3261@2x.png b/imgs/icons/3261@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8531f716a30a642d4487fdd534d246a07abb391a GIT binary patch literal 3372 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 JPDHLkV1jMdjaL8w literal 0 HcmV?d00001 diff --git a/imgs/icons/3263.png b/imgs/icons/3263@1x.png similarity index 100% rename from imgs/icons/3263.png rename to imgs/icons/3263@1x.png diff --git a/imgs/icons/3263@2x.png b/imgs/icons/3263@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c50eaf87b208bb535f504e9d6360b6e2d937b083 GIT binary patch literal 3365 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 LNkvXXu0mjf4VA4; literal 0 HcmV?d00001 diff --git a/imgs/icons/3280.png b/imgs/icons/3280@1x.png similarity index 100% rename from imgs/icons/3280.png rename to imgs/icons/3280@1x.png diff --git a/imgs/icons/3280@2x.png b/imgs/icons/3280@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6f097a9a12a2673b16d9f083b6dd5ffdf36d95e0 GIT binary patch literal 1989 zcmV;$2RitPP)cNz*iGnp#z~gT_>?2n-Tf2@wH82-FUCAkN*1li0D3bK?8)IqyCsp@AlZOF!(9 z9@&!5dH%oW_MT(lTQo{3p_G!QrY2_T`&##`dBNj|17McLrAtl-p{w1;toFm>2vbU# zj*bo%022rV)WKj-9Y8?s_xn`<*p`+ScC~6eRRxv>WfxsFKOfW*Vqz$zR8eAbBEhBw zLCCpWE~UA-S;j(D?iu$q0E+S6&+qZAe`n!5J+??wBhoV+qoN$L=wiw~hda4E^cV6AK{(GdXdBck8G;e0PTU=5H~bkY8MA56@BD6JCi45z%3X!( zl$Ck)`9^lCM`YUnavkv*370}H#ASgoPnT06nkX#%2~!0C4J{4#bRP*|=~QcJX<-Q= z)a7!?Ki#+g=%ou6o07?-a_PVAN@aB!nH9q5`RWF&>m0xc4{lBebxi~&jailhDzb4$ zbr}FOG<+R<%^6r4HkZrA?%%&ZODR>o_qRX4XSAB%*s`?_8w*RQ>-ZPsKj+S(-`fXg z?N&_B%p#qPff*@)DnANaEny(pW21e6J^=6@sabmq7KI4_HW&=58X6iTueaO&^Fs%Y zS$OmABCaUc=S#BVVK3nv5-K*8A(N7E`?ec8O&%<^d?XVo*fZ;unjaUlO24E1&F9|s zHqj=gnKUa81)!8NOX878MC))kWB|Oqxb~y!ExUGatKFKj^E`L!t6MmC?i}t;co9>k zK{RHR7FT0*Y!F6s4nNzsk9z%=nXZoO)1upa9N!1$YxF(xLBtAzkY}^m*!IiqRegQ^ z?^^OryDOcAa!Do6i8CpL!n0shESR_s=@~WBmHcI2@v&3^R8(d9w3t z@2!G@0&4s>&+m0((9qMCWk2^$f1xaAPcf2g$e$n$;uEm+vXkQ zT2Gg+^U}p*iXu;mq8JB|18^V2eQUVvK|uh>|NPenhhnk014LF7y+OwafIsjk>z!JcHb|1j9$FdCVbK6n(%ri8TkjUBg z*7*zP+dpAhwufce2>?+5=?Am_1^@uKTrLnoXec`KijqkfScZ`^sSNS^{cwBS7#bPH z;NUQZ1_x2Rp$L^FHCSgZL}8^B@wpV86QlU_C;e@VmKn)rv$Ft_D`mf83%p)0 z1wf{zf=;u2J)<^SiNdmA2!TFNhg2et`S?7df&e*}!}C9^r$zZ?2nj(NbNA3XW4jQDkha zECWk9j7<2mpSONG=)FGhaXg@0kR)j;0f+!3Jn$B@+`h2|&5Hn5-m06P4AQac8l-hv z+@4E7-G2u!Y}y2;(}|w$8?czoNTt(qE+=tkPoEmR*6KM1;3|Ls7R0j;6JN0cP4)E* zfDFs2Zr5+!LTU>O6rI(AY{>@rjaCS<470^T%@#AtE6V9?c$T;ad*Z!UJ!d$M>(*Me zV*msI8LTjLYXUgKVG4llxpL*yCZ12fQL{;PpfEr8teR1(2&JWtBAQAhP+C?l7Z;V1 zo9^z|l?zu-D6?!E$8n=+Ast!Fd`)p+mAB%ZJ9p+?yLK(_5AVPKi@kgHzHPPHY*eK} zI+cQyPUGVbKR}VA6dsQ!aN^&`TEw_`UZc_YGnq^n3lpzkjnY39008H3ILyId(6r~} zm!I9cd(R72p5F#ghsWbqd_G@dE;jG$>gwzS;8Cm9L)mP01`k=c#|0n&G(6ASqS2@c zfB`@;06P}imIM$2AOM;$kcnVn-K576e;5E3g*1A--l)^*OtDx@BS{jg*XtokQckPY zW<*g;EDEQwkohB({ZRpyAUFW31vhXDM>=wgE-ik_t44TAfTe4eJFx7JC!Qed|10|+ XKAe;wG2x?F00000NkvXXu0mjf(5klN literal 0 HcmV?d00001 diff --git a/imgs/icons/3281.png b/imgs/icons/3281@1x.png similarity index 100% rename from imgs/icons/3281.png rename to imgs/icons/3281@1x.png diff --git a/imgs/icons/3281@2x.png b/imgs/icons/3281@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..55bf517d7ed4dc2f6f1ce2f8b59c198da24c16dc GIT binary patch literal 1984 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3283.png b/imgs/icons/3283@1x.png similarity index 100% rename from imgs/icons/3283.png rename to imgs/icons/3283@1x.png diff --git a/imgs/icons/3283@2x.png b/imgs/icons/3283@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..48a3965e3335ffcac78cc17d6c5f92876e9fa1b8 GIT binary patch literal 1781 zcmVg0?&2njlw?Jcwb+ieq)}ogQH`Q%fTDfyLjyPw(tpsWw0Y=5QM8uPhoXQJ zplFLAHXI18QzT-VpaD`Bfs@#cE!(o_XrW13BDHZ9wNPBdedhGRlpD*mEEy>Z^aBPn zz?_-yyXTyH?m572!A!fh1;7B|{;Mj)u1Se_5B&GOW8TYW{{`?KJ@+^SVuV>5VU|vw zJSnh)yT55-df4iiS*r4`YA!sMT4okRqyWJ5>S~uzsEq{6tD*S9cl)|$@0zftVqT)V z`Lo4!Us9;{Nt2S%8sK_Yp2W~OsAzxl4wXnLW%wuV}b9vh(;mKVb~e5exx$DW5tul)kR zZveOeY!Z=N?Vr2$z!v#ifxz=u9Jar*uB9`YOv-V!5ax7>>dhMN=;_3B-Q9{wuVtC> z;)KT|8m*QSqobo>W}+%vc~=4|F_%9Yzy6Xzqd!|F$!^XSWv#^~E!i6oD&?SSFOzCG%AJU-d)_YeGS#{2Sbhlbv+?2rcp>==SdCKC}USEuj1YP6Zo+O0NYA(>Qy zp|F^ZEu;78UL0<1MiM}p8L?mh6j{aX+a4uw$45(nJHDmGn@3%)Xtu(4pNNN6LT09+ z3i(7N_LKT28iyS=yD^hWD&bg61j7-i@_Cfj6VS;rT3NvXBA9CH;GOdz;PFs!-cKvh zP?y=z)&~G5t1P%`2)-6CzUG_x6_-kx;R z0Fs6pgyS(pLJNpTg0Nc5uvlyD0N{D$6@t^bvjAqMp`jsSX6dsj?;GjO!fT23H0v}f z)~Y0-(`sR8(4lo-BW$%+s8te@`2u2!f}BB*xM1XkKy+yVwKglvW}`CWo>~C_r_=e! zB&0#7Q#enZl8?UlgVPI(3$I0&7Rw|gsm|`8o}M1`^&Ez!Mh`F`2v8J8c4Gtn^)+M< z9Yj&iBa_ZRuT?2c`x>Q*TQ1j4cfgG!N7Qh+9@vUs&jA`37?7NUgYxLut?$oFj=%o- zCm+glfmtapgA}zM@%0oU@iiz4L#t5(M9Ad}NM$mJ2LecLtfRQO35`a}9UUFy^?J%v z)4q2A04|qiJNW|wE?>GNGqc*`bN_O7egT$R2iguiNotJ_(Qpu(=``xhM(DK~6ia0= z08$CWmX{HaM34vvkxRr;BLpI$B{4DKzLG0TK>#)YI~F1_GBQGgL<%_H5sXHkku*BA z?`sm*u8zXz@!`qdZ($`IMx)IL!wW}Yv04!fg&|aGloZDNtPhe&1;@b-j(glRHvW}A zm6hKIlp+8HKzSzt_b@r>J0zFN=9cCbcG&A^dg70O&_E%A$ySGOB7;Ajc?W$@bwhw5 zGf=m$1?f~0Cb_`L=_$JM>E|2EiR`<86b7&YV7=mjM^{3HR9cI*mTYzhOCXfXGGsY} zbUF=I>u_Uq6l;+n=4O59?de9TT*R|RE1EkFa50z1rN6va4us+#K$0dQ%c}qu0pzQZ z-zVVW#ft)f%xV#CXlPJOCX3MN4cvCPm)2rov^O`xJ$4n*rFpPiLP)DYQ&S@Z5mr~0 zVKSTWj}P9X@$2K4NQf^aqO~$G2OwPuK~-!eAtw?E1prK4UAG){j69ynPT`{qpPn5k7wV_!|8 z#%M-sa}&zNEOf+5dq<}@dv3V!hc{2ZEhOphDwS%!P$)zIly-9cLs2;gaQyi3+7Cbe z_>)Y&z|72LW?o!NDmVR0^1nQDvNy7-r1E+G{aa_UW~=RtBuPKiYPIbE^mtUezZ(&i zN9(VD@$)w>T(}VQ%`eJxD;qq%5aZk7WxjmFA)gkWZ_0dVv?$Bqry>+Ab8I<2FS%SktG+;GQY%NGH-jYeZUlgT7;x7a+^B=WHF ziI|xx-HZW1BY;Byx&b))`}_3+0|R?*Y_}8d&X5R1|1oFgZ)EJ+OIKXY_J2J1{XgK} XX>?I$1IR3*00000NkvXXu0mjfQa(}R literal 0 HcmV?d00001 diff --git a/imgs/icons/3300.png b/imgs/icons/3300@1x.png similarity index 100% rename from imgs/icons/3300.png rename to imgs/icons/3300@1x.png diff --git a/imgs/icons/3300@2x.png b/imgs/icons/3300@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..908c64708e4e84bfe28fd3e046af641e49f04a65 GIT binary patch literal 2207 zcmV;Q2w?Y#P)1hd8GgPwc6Qfhy}oyCFvWm545bNYFkvwY#GufoQL!j$r8c1`D4{JyjZmW2K@gCj z36W?*2|W}pHA^53;Rq10Oi8GrrUXoE!+Pzt*Ipm%UGFiwbASE8m^v*bHR`|i{Wqg| z-{*M0;~n6CJ;=i()zs85p->Tf_o)GHw_D%5d9(4~BsTJ(^r6IXBg3GC5JK0jTVGjH zT3VSF(=x*_T<<{W^F4(833nZ(BdN)Z;9J5l46UlF624YCVb`?s>A#p%R<_mUa=n_B zk^Szh#~zyoP}J1ajHKpQgVxm4FqBf_^?F$fkhkCd-BT^M+f-j$yWG;!sxe;AF1M-xJ7D5XU^cf7Ie(0hmB9y5*+ z6$4g|Fj^|EhkHZ0?QLyOavayVXYby1O-*-l2qCZCPs~>lAhor%?CRC4ouZh2>sMP| ztIn|5aPZ*%S+|;+Cu*!EZ{Fieke{DNc%DOhTL5l%5fe>_RJdHXmN%3qTm`PG<|ZGW zd8T?)GfRJI^ZRK-LxT?BU$*MK7OY&klJ$DMlx11NFbn|5aXOv#+qZ8Uzi^?)&?#X% zyFv&AL*RKHrQ^oJE?Ds1vEwM8It{(OeF(?X7+vVVUuw^2?SW3x5$w3w*ArR_KpWN) z#w0?A2oQ#0s0j)H!t&)Sszw(TPrp!m{zrxG!Z9zsw25B7(TKE|z|7fm8LJ})QYwia z%EBr*!Ny}SlsI^fprqr!e+Q1NY-91#Z$i^mCOldH%$VZQjAl^e=42z&ZpZuu z9!Sw{%%570_r*eh7?^Uk9f zb~>Ha1^KSV*kJ5fSEzF<$AR&TpHRAF!uavJ-DZVVun-H+F#uSWVPQ}T0t1?=B03mF zdC3@bBnI$^-4Ff`uY*|Zpz$t@t*C$=?17w?VYAs`wPljJx{D}w7qAXTCY5BxAQY5k zIO25XOiQQJB>;AEEKB5gBB6=N6m@20vHku1@cCMej*bB7=m;P)%Sj!MOa|0IdHG~~ zaP%my-)w@`{a{Ug4V> zZ$VNNV$Tp@Pzqg9p=vr9h5^g*2>14Yu{vpMYb!bXk@wE>C5w2D<4gW{_|PR+afv}e zEIiL;4upGyeZ74<0Mu~+Qi>#P>uqoUeNvVM0D`7z`ixbpo_D$2RiA$P+0K(69+Nqi zt9oI>MlHjd!G&W{sG0^{(*dd@m6l=4%0+kFFs{^HVA`4*2780;yQfYq-{kZ8K1qnF zEs5LBX#gq!*le~4fB^tJ0pJ8M5x^(_ta&;r0E%9Jeb;YmYiqqHP8>hX^Zc#}Ws@gW zEUcsjt|B4`0_^rtAS^+!s~f?tZrXh71_`yd4h)2Qws^hXx$$K3yKA0(b_ak{ELb~O zXu7T|03-lm06m;}Dj6`ZWRaD$^`u(lHZn|~zX+n+4 zIdkVA9*>hiX9&7(px9kVrRYvm!^IFk#Dv7@3brF z^le?&8B^fU6+k!uGJrk+X#hl)Wj!M!!0D~-1zfRfsO!; zi%CTKBM1ciq0N)2d{22D?cro;3XaR_5&aGpEE@Y#V?9 zp659L49l`k6S&iKSi?WAW(s_HB%{OG#p7|sVzCUEcFBSuKoEp(e{=Ik0|R|Ao6XK} zEU2QZNT*Xoj3v%nt=6C*2)e4ONmW%9Ns{^jBu!9#7{UGgg}g1JP)+uImk^%|l9u+6vrf5P1-R;Y5bB*6Zr(C;+YH zrvGSKlG4d|Tue)xYEYvEK*R(${;9?T<6(X#7~I_@hM7MEIMnA67aM690CbPXLjb_z h@h}ey{{H}gzXKw=6|x^yJf#2t002ovPDHLkV1fmcDs}(> literal 0 HcmV?d00001 diff --git a/imgs/icons/3302.png b/imgs/icons/3302@1x.png similarity index 100% rename from imgs/icons/3302.png rename to imgs/icons/3302@1x.png diff --git a/imgs/icons/3302@2x.png b/imgs/icons/3302@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..943730678b774d8823985709a15887bffb6254f2 GIT binary patch literal 2902 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3304.png b/imgs/icons/3304@1x.png similarity index 100% rename from imgs/icons/3304.png rename to imgs/icons/3304@1x.png diff --git a/imgs/icons/3304@2x.png b/imgs/icons/3304@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0e65107d69daec28795938a7328155b0a66f406a GIT binary patch literal 3478 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 Ef|N6}V*mgE literal 0 HcmV?d00001 diff --git a/imgs/icons/3305.png b/imgs/icons/3305@1x.png similarity index 100% rename from imgs/icons/3305.png rename to imgs/icons/3305@1x.png diff --git a/imgs/icons/3305@2x.png b/imgs/icons/3305@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..499be17de13ec566aa6badc79ad75d1b80797e6c GIT binary patch literal 3419 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3306.png b/imgs/icons/3306@1x.png similarity index 100% rename from imgs/icons/3306.png rename to imgs/icons/3306@1x.png diff --git a/imgs/icons/3306@2x.png b/imgs/icons/3306@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9234b9be93767a024a8d91c8c6d630aa90b7888d GIT binary patch literal 3376 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 Qk^lez07*qoM6N<$f>``2L;wH) literal 0 HcmV?d00001 diff --git a/imgs/icons/3310.png b/imgs/icons/3310@1x.png similarity index 100% rename from imgs/icons/3310.png rename to imgs/icons/3310@1x.png diff --git a/imgs/icons/3310@2x.png b/imgs/icons/3310@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0a57e88e1f6170f99a413465b5a2231d73505fba GIT binary patch literal 2149 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 be>?sKZn}v&Pei`b00000NkvXXu0mjf@EIkH literal 0 HcmV?d00001 diff --git a/imgs/icons/3311.png b/imgs/icons/3311@1x.png similarity index 100% rename from imgs/icons/3311.png rename to imgs/icons/3311@1x.png diff --git a/imgs/icons/3311@2x.png b/imgs/icons/3311@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9f29b8f38bbe9f1a507a0a60ddff9639ef4e45ee GIT binary patch literal 2105 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3313.png b/imgs/icons/3313@1x.png similarity index 100% rename from imgs/icons/3313.png rename to imgs/icons/3313@1x.png diff --git a/imgs/icons/3313@2x.png b/imgs/icons/3313@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e12f9ed08fc64a79e31b03a43bdcc3c310787d50 GIT binary patch literal 2163 zcmV-(2#oiMP)3&289n#DH{%(57>~yuGd5l@<7F6QHajcW6XHLHscx3c%ALNuRpK}*dPU!{;1R=J?Xyt z?z`vQ?>pb8_kjQ7e-tb?H&=Ke8$Is}`9#7j#v}m9&CL}o77Mf4Y-F)mXv2mL@{17l zR9LN6PDC64^78UD*%K!%=_4-x`J?i4BEWKUb9q5Qfdl|VG-chNHg7CExGz0DEoSAI zk(sStUwenvU@Tv;;@x{ztCibqHrBKLKZ4b26??`+l(A~{>Vn~;$J4|&UZL5!Il=Vw zRC;alM4CJA4cfNtJ@b*|JRlx=e#DWKJI{Yqc6FA#ng{bdge6 zxL(p3jB>`XG+MIo*ED6~gaWh4l-YBDZXwT%^fMn=t>9zE?Vq>hlbsu~MomakiXxQZ zI>}yLB^)a%hAAN)l@-^~Ppieyp&4j#)l*WkUQ&r9`a0l_)C`*a;g&5YdZO{OQbI(G z2#kotqT_!(vS7hX0ziq$DS;h(_seM+BPlj6p0<3lnd%)*`ZVuznmKnq4Sy+%Ov$kn z5~d>jF;(`lSa_W<%_;7Dk>TUfDzGC56gNBV2shOQ@d0n^=TCfMZbi*cWdP9 zwhHm}dv)f^ejKaC|=V7~f175EelCOha%F2*3h71*N z+J4;e&7q@9^YinCS+i#Ki9#O%oOAmA`@5=3m$zPyH6{=71(b4#Qo*lWy^hk7OSp8Y z6ax|lA|ciQg+h(g)KnM^I!u~86$=+Ff@x4ZvVSoFg~z@P+HPE9YL)71d!1_z01lu} zpAdUb0Kk%sD`?I1Y%x4ajiX18z|$<@op;t^_Vnr4nwN*jxMU<6ytq|Si`1kTTr4R; zNJuEgj?RKPbs&x&J&bc_udu=9SRpbhGSpt@0s*~qzyLgKERV2$JtHDi78c5xBgT>` zAp@_!Iu$NQBR0Hm#ih$7*u7^DCX5?}7LOCnElwOiS%|?FGXz0Eb@d&*|G|eSy;ugd zNWku6ciK` zFvb|lzW4%r_Z`IY-!4XzqaIF2J32aB5RiR1ba+3aqGACs3^JLq{qyapth$A`xENS0 zDTs?30JoJSC4m0yLuu9Y*!K-3ceJYmE>9v}jc31nE3`9J>tE&P5NDs>nV2PPmc zegLLSo(zp999&QWOh8cbLR5sJ@j*MdPz#f3FnnE2D7#b%yS)*E(}&=|fiK1E?Ccj!`}v=0e}mD{Dgp0ryyqMupo$(+ds;1ju<^jvvG4Z6&0Oe zuT2~cMl#NvzXEfb32(1jfpCKkA8*=$D&WBIx&`wIc{6{1}$hMUIwEW{mPn zZSBG1RdqN~Rf9X7e)zhD)IL#$+1UtM|0r{B!|X|14v42umtf^G50> zL(O~%0JR`M4M!!pw0aJit@`4O$K!{-g4{I(xsh6x}RAVauJ?l$nMI!-sMaJ<WZ05!OQ9|5>l1j?VjF$^fKH%z54LRL1yIU{eH z@;(B3%|BYWW~KT~PosBDO;c#%yy+2wLF?;pj16NIw|wkENrUWgGr`>oG`di6r5z@VR4+a8A@42!5 p7m53T2<%~Q7_3(CUc#OW{|5Qep6S;z+z9{x002ovPDHLkV1h~i^_Bnt literal 0 HcmV?d00001 diff --git a/imgs/icons/3314.png b/imgs/icons/3314@1x.png similarity index 100% rename from imgs/icons/3314.png rename to imgs/icons/3314@1x.png diff --git a/imgs/icons/3314@2x.png b/imgs/icons/3314@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..67d4762671f35d435a9ada6bcebd9ec6b3c25f8b GIT binary patch literal 2157 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3316.png b/imgs/icons/3316@1x.png similarity index 100% rename from imgs/icons/3316.png rename to imgs/icons/3316@1x.png diff --git a/imgs/icons/3316@2x.png b/imgs/icons/3316@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5c78fdfe3ea6bb6a7995d3ce0979129db193ff0f GIT binary patch literal 2148 zcmV-q2%GnbP)?TO8GgR+PG+*Ngk(bYg~eck1WZT*VMHiU5DpMjs9L2U7K`mc%2AL>pooIhmR2~$ z9s(3u5;#RFLI{foFvONf*s_p?kbRhBGLxCidhdPvBSaITz_HT)>HFty@A;nRect7} zAMk(s&y4-=fU_Zh0nmc~SCNT`^)TRI-(oX7YBh+oT&vY`0Qk+8Egl$+wTdj9PME76 z4*;BTAsXKg-ppG@tM)9T5!vy&I88(%lt}3H$;!%7F!pdf?(0SQ z`2w=D8DmVeb~Huk^=%)zabarF8_@E;pzK`JJ5c)bvH(4)1k;e1H4a z&dyHL-6c2x`3J<@-)t7k6e2oDBvW_eHEO+9OvR`EM(a2Jnr6-!V+>0jT)q6QS2_Zs z{mEmjqJGT6$KMDD2mk|nU|R00fZ_vYhI9ef}QmHO)F^Mi9btY z=M8rOpwyWuorew`$N+%e0)C(Zy=`{A?CaG*LBXrk>QHwm1YzEbQ<*Z#A1;3pN`nHM zm%fj%2tSmZxQI7@{xXJTjD&ljKlCO8&YZf0a4fpJ{DT$fjedS&qT7qw)n&19!$veU*U0BDmhhiW zor%#Y$yo8rm+@F!EJnq}V#S87m@sV$ezoK^e0Jsw=nZ-_8Fe^*^cWI`Cy1gfE3RF= zdfd=xoQ{DV!2t9`+iN*FIV?9fSJrB^;-yQ)hKkB^94|bEimH0#7vv)%CKhR#6H(W$ zLviIHn8GcnFy2JTKTA+s--Pp}=TTOE3BC$HaD^M{$|_;8*gAUSyL;`ODe?dX?iLEq z&CL}vQ$}vG*sUv{96Q#f*X!Mi%dQ|KMh%76r>^l|6&d!(D zzVi+Tn0VnvRrR*KoiLfYh?5A5&5X>6S(uQPgtKQ(q2lT_j0%szU{7BpC&t4mJK-|h z5El`K$?4;env}$5%$^OiN$1ZPOAHP5j|vKc&pq{UZx?{|e4FpS;VskUPYRlbxv5;T zC^`A$@#*mK@G9<6tmW z*jt-wc2?A@4gz)wfEhq500RKIAAz%Hq0nd`0#I&!Z+M5Bd#HC|kuOzNRxmG5j&_3) z2D25<&(DTk*Mh;}5%~LwLe$=B00R&l-~(SjUq~W@>@p!d*i3FpHx@aBq%N~qSlfh? zwGF7TI^noWq_JNLG#ZFnEpdC(vr{}cR~QX8{7$PxT6zGQTg?C|5H=(b=e|6RV1jvg0L+h)M% z#29onbfc}U8k*56$OK%fupup(gW#lKKO&uJ`T+Nv0Rsr!^ZpyhmCHPy zF}2xOHt0N~7S0I}f_)t!pH<3e literal 0 HcmV?d00001 diff --git a/imgs/icons/3317.png b/imgs/icons/3317@1x.png similarity index 100% rename from imgs/icons/3317.png rename to imgs/icons/3317@1x.png diff --git a/imgs/icons/3317@2x.png b/imgs/icons/3317@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..718d316fe3eb72d0358c080c5b65af9b75b1a825 GIT binary patch literal 2105 zcmV-92*&q`P)s7bgt$fwQij-3M?0dvI+J0i^ z@%k6@t`s+$l`j=S*4JN(Iv$$b5)K60C(pObv2&-Ux=tQ!d2RonfB)1s?kxLUNWHr7 zQU4*_Znr@QF?*=2XgcuvzS9kVkwd3HkmD`yr)6+RPV}|PvyE@czSd(CL+z)&)z~QQ z0CjbB#%rTtX_Y7hxww`b8X(8t7##-`jX zTt*2PNVr@aY-qufj_Ke1(N5tR^NV;WPRIGKr+@mxXI_v}DnbbTNSq$rBqy?Zw! zN!B(8Kzsnks5*YY01X2%SIA zgLiJ@==(=$K6Heog$5?E|2jBTwyTg^a@Yo?!G`<%ZCgN4WJv0*cGWM235T{9%$(7 zJa@O0m$>J8gbv6B@9CaBdkFZvvaO??;(|r2Eh?nIWF^z?WaPpiGqE_!YwuxY^#)wU z<#hIVXnOA*KI!d6H<<{9<3yq}O(hkX)A&ELOY$AK_?>shJs;q2E?K`|5!Tey7!#4{_DrXFRas%KUYKoBA~PD8 zGBB!wNGw4-9;dWyDT#OjO#@#r#CRymWFm=@h%-4ksizVtB_0m9Pe&5pc9~N_)rQ~a zBm8eNAkcMPoPH-|s$4A`sf57O-!CEw4XZPY+O<`zT(JfuxLmoIEq2JT5lo~>s|Hel zQP*%}n20BmLNnUr4a*!W)|94p1mhI@d{h7xK<*s(JONEjs6q%S3eTkOxXqFI_;xF! zQ!zeh>7={2hgdpEFcBwnQ9iL`oD8d#_U;Q@80f<{HjH8bhr^E9WWj7mi?1yYl4A{9 zs@E8H-nW_ODwc7R)kHB+1>6KIo+se8+eo|JQi%^gd{;UaHBALl{O-kKYHo57jimYT zcr#~vddZM!3Y}I=1_j^vFoswdAvOHo5b=1DC0RahuT0T(&L>nw$7vVp^-I`tbCvk* z+Lg))5#%0A85%BvN=(dS_?{%;!$IQ!riqp~N z!Lg|dRe~uzjVc5dM>ZHUaOk6~&b!E&t}q6Zq-vFlAf|f;gfJNt;SC61_eI?UjAaiNYP5ZFF|Qp~ei-<}6m^ zJ2~`TGo=M4%1fhorviN1lVp9RiWDiC=hS5|g3>pv$g_PMnF{KE1X_S8Absf;2mw;U zwrwS@^~-!uz4~_St|zuHRqM8w)rNc{hJ%Mkm6T={Mr$S~J5xOUL^gkY+knZk9#8ul zcLXe#8#`E5UEBXL}eJJWT(KJnpU;Nlsm1T*$AK!W7Hd{tE;c+iB5ihU& zEku^fDs!z#@%p>j!@ItTS3t!0W);%ZQaPi})%b%8HV3~W_H)RYwxb@b>em7m>f(_P067lA*Uv^st`z|O0Xb}3OB^%q5=Ve3l3dN zTmmXLa6=Fws!Eh_NNLlO&|rsN zpIsn?CnEN^*=!-WREq3V%EdR!vZN3ZDW$ww%*IYjQheP4A;M!J_xAP*z+6L8CexWq z&HO+XQzcCmEu~yi)QYSdwW>u#RMpB-Dn9jU?;n5d0|3St{v&?`gL6CW?F|aa$Vg8` z&WYJXl*D|hrm9jzmJ4Om&`DEd(v(t7t(1r?jjCEXQjz6v%%9WM)x~4Jiw|4#drT)n zhoyY5f_^oJ))|rV5{@+ zL^U_h7&DD3=W6hw&gFrai$hn6(3K);H66ub0ae{VlfRj1YFW5`?P_&s_!cH-BK!W` zv=_N`L4ft;t&?|foKXT9Co09h1akqJ$;AlTjTwm1148??EvUh11;xMJZu297SL6B?Q{r;q`b}CX;i|_xIqi0W8fc<2V9Y<{Ll% zdRx73x!dJ!0?&JpP7NV1hVk(Y`{8R|2D2uiQYnC$93a$TXy6ux2HuCw;YNE$2V(IU zN`(TNS^^H9=V6-Wyny*=TEJ2dFc5(Vd`TjAwX9ccb_WOs+Sly?S#~6o5$IL}sv3tz z|5}s{HwFfVaq&-QP_C4q=@JB~x_|zCI4u!y_Uu_U=L2Rox3*hS zMRkce5s9e*D0&8sZL5%(_$MNv0VGlpsEUd!eSbm!jXsEC4vaY<Xt7@Xxas zg|oL8!og2714Q z?Of$zk|d+APiKLScd&EET8vK+`fr9%)>KGE2_}Fa z+9H5RweCb1vkM%{7Fj+tV@&`^nkJ?J z3r)?^FE!12b0ZKP1M~$^eB}GB9)NH1%J%n{`}q~uu20bR?d{gP?`1fr(@oi;$=!)o zaqKy-(f$1?enkLmMXLp|WLV8!uw<68=>!vFN%os`(L4!Yj4|kUFGRL5hKmFcf#EDT z{!1`Tlh}{G?cUPp)Pi66+S7;JjwZ;dEGp$JPW@g&lg~{p?izdJd=aW{(E1LLR0cPl zV2C8yg>cOJDS*E*hUx+^@W4-L(M7}<2y<5@V~i1iK>#mA#gWfTDeXJaw5#LT;YNPz z2K(~XHai;+5dwb0%8HC1odio2FdmMv*UF0ZTLzTD?l$!h@Q12k5FB@ZM)d$X0etGx z>njzaFVLk^E9uy0Kzl#I3QZm^2q18`k@=1v%M+auf#W!U=K+Cdc;%S=d+(fF6Z!FX zJxWI_P6K#q0hoJS;3Yz^`0D-`fKBrs!H*EUq=>-gcEb=1g2O}JmLInM1qd7}kW67_ Q!~g&Q07*qoM6N<$f{4J!k^lez literal 0 HcmV?d00001 diff --git a/imgs/icons/3319.png b/imgs/icons/3319@1x.png similarity index 100% rename from imgs/icons/3319.png rename to imgs/icons/3319@1x.png diff --git a/imgs/icons/3319@2x.png b/imgs/icons/3319@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..facbcfb16540af607f57f1594ddb9e5786beda5c GIT binary patch literal 2151 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 o;44f@#M#^k&K=3V(y4j!-Kk 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3326.png b/imgs/icons/3326@1x.png similarity index 100% rename from imgs/icons/3326.png rename to imgs/icons/3326@1x.png diff --git a/imgs/icons/3326@2x.png b/imgs/icons/3326@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f42228789cf0b0a37bd0b2a22161bbcfbbf459ee GIT binary patch literal 2058 zcmV+l2=(`gP)3&2703VQzGXJgcx-G28;or*TUi?eDGI8xR1w{viPAPT(5fn_DuG(HO)7;C8Ap}+ zC8=5^Z7MZHN}{AmO0zW;U;-4vW+0@j24frV9@}G&XFS`RH}Brl4>pOxb{nMRL!}<+ z=`DIXzyJH6bC2!={vZEK!OS$_(8doD4zn1)rq2y}JMZ64{@Y0`9{1lcC$;=>Js+@Usg|*Y7-WsqGI- z=gs+1z+*15^L9F!b;RZN&ZS4Z zCNHItNL#Wb;6uaNYv$F~c8hDJm*ktUa+V^PgK9!Xi~kB!0* znqE0O6e|q)W141AES{j|>wUo$^D8{xxo_=~H}@VXBO(rm!;>7J)B{Asoy>6Z&KkeZ zLjur-M^mbQI3Wr=ZcQ<;Xl@9nuJ-5-G$c}4E)M!>G@bSP+@@`LjC?Ac@qJ_M0%Lff zmtJ_Q(cd18l>>-ORe~vdAOko##iOH|hLolmg?^t=Rve(>fX^Wkm_4JA2#S3Le(0vb zLNhpJ*>0Dqxt3Ozik0R5;Mvnhwb%dt5AGcp7!^Ku7XUn2Uq7h?Q?7#k!9gww6luC* zSc+khpt6cG1c;2Gqy>U<3|-e}&n#j)o6b25!_4@iS6#85+HGxb{LJ*Vbk`rq$CjxJ6 zLIwb(6z63g48V~JPzo9YPz;>`0VdJ}UAx|jj@D)X1OdRx<-kfIm&?J<+e89jFnU`$ z%`uv|A>`xvbCU!0_4NS8)=P*@maM=4Sn*g%0Du|NQLybi6a$870%->j3`a2>Cx>KC z!7y|pa?sV@?LK$ry@kad0G^`JSS&V*2_sqDB7m8h1`j=;=i)~V#R7TBU}8uH1PG3u z2RjZT!y`yrIoMJHMB{D&EKIn)ZWx+IfwK8r;!6c*=FUGH%c3e4i!B4N96-qp_Duo~ zAHG`?Lh#qNp0*nIhm8Vl4-C@{sa#O3AeBPik;r5%B;pAOBDhQw3Ie*Wfe2uwAlyL& zDymWKX+rAi`?Pu){czLW*txt0YrH1r0$2rL4S@2S1l)7a5$A~~l&~V-y+558F(3c= zqp*h`MS-USpaP^UM%K2WSiv-0(1d`l>kvY~AV4?0D4jDGODY@`_r8HQpMQsxlSN^G z^qLBM^{!R)`xT4DBLF;_hGGCN9RN5Cf%-6pF1}nxGW1ASlXv~XDla7yHePt?l?;iQGS zx+SPywgr9h_2?MLA{lMPtNV__(6d;8)97lthz~C$ao1WGKn|DqCC5_`Z9Rf7x1nJu zu66-94qym?^YL;Z0+@kKn<|4}su|w#$~)Qnw{4xL{djA2ZDP1re{WwzDCH&AT{v_m ziCxd$3){CHA6+J#IsQEIJxB4}OV@GdDicM83dyXJrG-k1#spe=sQG#?KW|y;-7f%L zO@KXNDNehAEC3K}J6d}(RHDr}(b&SZwH0dL!Km@q@S zg@*X3qlyDektk7nAH};P^wPkHd=Wqs5p3p9z*EivW)OBmXb&SLC8vM=OW(#Kj}`vG zPgZa8xr()~-)A75ic)iH4wc2=E0>#TezlH_?XXMBv)h2U+(zh(P(y3C`YnJDh>&9* z&pnQr$ehlBn^Zow-Lo;#Z#~vE;H}*JV3AfD$c4(vebjW#rV}UoR5VUnd=%)9;Yw>a z{VtVJuMv;}O%MK55e`F$Pb3xqSO8$%!B^&Hm>=SUFVE%88^G&VQmi;2!T`#Ev7Q?L zh|lClg_t3P05lEIHNuX~=FUAY&hLEcSAk6BEW8e2#RRbUtiY3m;O5C$1z_oooABod oo)pZWvDy&AVF*mKwfi*jZ++$FU=hqfQ2+n{07*qoM6N<$g5XWWkpKVy literal 0 HcmV?d00001 diff --git a/imgs/icons/3327.png b/imgs/icons/3327@1x.png similarity index 100% rename from imgs/icons/3327.png rename to imgs/icons/3327@1x.png diff --git a/imgs/icons/3327@2x.png b/imgs/icons/3327@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..229e5456cd31582b5808e02b6dba199f7f874d43 GIT binary patch literal 2230 zcmV;n2ub&eP)iezI}f$%XlP^5S1(zhyenGkc7OKg^RIRP8dH|%7Q~*HlcAonFGw-xI zhzRH0_!4np*1f&n@<2FzbSNC&z|3^reH*X-!^{78?$(EY6R2N#`;W#1Gc#Spt&2i@ z8tJevxVEQ%;0b0H9*@US>M}ok_-tUox?lZq=z!q#CHM9&+(Z#vr$@cRqDUULI~r(q_)wD*Gt^IGkGgHFHU zybGT#fSGC8vSl(e+m|-XUz0BsQ0cJZw8zJgG@?|e6@f^UY<7osrmNIo)ai^zPn~9; zKTLmlb3e*VI(4p4kP3+$pX?pBbq)Dl7QL=vPfJTV5h)jQK{Yu*M0_k7MTtf;tIk!5 zTsB8L-amp_(`ylx2^ugp)>T3!3Ap_siqzKKi$W39e&iV4vvR4DkNWXk zd&}(C+PbO$1U7BjL;xn#!~{jmOhm*7PX*0Y({w#{v&j`prWLKiV&9?T`1701*l^QT zm{H*b7#NO>qR;EY{)7KPh*g+h?LeK?3cFDUITus*ws(k>Fb$N~*MDv6PwotYnJ}p+ zr#JurHiyDityUC@GNPFr61hCjo>fOL%(?@KcnnYO_$Ra)Ep$c`>{cC|)2fj3hR|5$ z#IfTi(BkQXMz1AB0m8|&s{CRk=aT2iMMwZpQeMu2ne(X>%qpoEjwY0zU>N!mE2?Uy z;fLQ_fkct;`oWLz@3x~bsU_TV?d9m{K8}}nzk#m40ra_tkx8dvRLjz#zJ$2IZ|VH= z$qu*x_%m6Si!$_DO;HV|xs@&{5{u!O+lxwT2_9L0Bl<@Is4KIfx2Fr+cJ4qZ5W)1S z3U~*Hkx8WB@di;-KUhu~B;)g@ zG95>{3h{6Rc_GNSc5@RE6YEHZbB<~LeMD0$c{q^hsR z^-CM+cME2Vy8-AW2@U|-a|=Wh1U5AxbbR|-l2dm_B8DqR!Ui1f%u$gQx@2CBeEkjA zW)5~N%pdNG$ey8IMO{q6VbtrMdiu$XPH$G*Tou~sbq?L43ZK;0(n~5e!&xQ(6qR_2 zNTUJ;M=5-IK-n5i@~Z&O0tk<9FngbN8NRi)qS@QyUUH}-jT>)T2=_n~?VSu~DPix2 z1+4wS%wlEzs>Fe|%23xpBBUw?Tw8a%nx1osy{typ>xc&es*V$JT(MXSrUI9l6^7Mn|7stZGs@-pU zh0J<_N{{9vNj$%0X+E#LGyLYkY`$&J6S``B*!idJ{aDhVhRw=IW)!*1sz||zz?mUB z-9OBK&1RK<%>_Isf&7K7_(|)M34pEdgT-ymQmLx7{R}T&T&=vbFDUc|6AzCh#b89O z+`h8Bu>OHgZKaD*GmQ{U6qOPS$QvX&J3`SxFKzRW$}a*qNrXJ}#2GN|z{f2J!Y&AD z4P;qn+We5Q(XP)n-FEMiRYt7?311MYWDtLUEzVZ64rPWsz4CSfnS7CF*D}YF5NAgS zZZGZW9aNqH@IDc87Z6XF0aFA_ijRM|@yGfbV!rG~kKa(c?k2lbX304#DvfmVbdFlv zy-F}jQZx?uA~@AMNL!L=!bA`Xja0#E^r-&W{T68u6SW(XkwNdi<7;r?}+N8WmIhWn|XThg^IyaHgs1;paZ zBAy}y6DMaKfO%stO2?C#R!TCJ+FUgJztDDBNz5oCK07*qoM6N<$ Ef@Z}up8x;= literal 0 HcmV?d00001 diff --git a/imgs/icons/3328.png b/imgs/icons/3328@1x.png similarity index 100% rename from imgs/icons/3328.png rename to imgs/icons/3328@1x.png diff --git a/imgs/icons/3328@2x.png b/imgs/icons/3328@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..94a1f6554fba26daea1edc941311c5e9053e2117 GIT binary patch literal 2343 zcmV+?3E1|DP)jN(G?3z1=3Iv;bmw{BME3KJS*&A*IZdQYsfetF5h7zD;h^ zRlcW4DIF&|JKegjmllIb2(b?^0KxwK=Gxv~dr;T)NV_R3rOb?cD1?y1stF-P_L9U` zNx%RGOa1;|P8dCUdsAD>($7BM{FhEmdo?NL%1uJN*dLEi%&}NTO`ka?M+hND#+o%! z?da&p9nSIX6p&JiW#^e2z)*c-kb|?g267MFB%egE>CM^Wwod2Y%o>d)*bfSa%^)ajDLRixN+Y<*4z8y3kw#+ zq?8D8saLO90tw=?{re}qv3706>=`p2Fgu(-?TtjTtN-zlGP!1o>d!A!a$H_T%}TX= z(lwgH=9VRnoH0+`bi=LtJ32C0t-jvSxp7)NUbN!O8PD*~T%7_^N?}n|xz6eQgUMvN zF%eHBHXl8l-B-6)HQOEd{YCutiAR~Yc(Jg1eH4uH&79~`A6;BEJKumnOp{{HZ| zbz8T{=B{r4V^2L-`SiyhcXb#>*GG#MWxtVtlu`^k*RuP>$qC*Zmw#+gk>8?7vbv6N zxu|P8jwKZ#HV_qy=g#52yBDg>M-R_C*4RLLNM=imihsCv(^@?o4VxnUu^EZ(({Gj+ z7rRW!WDXF!B7u=LEv57VpPW3>SQRx4{kYYv9zNP2atr+ks}qGGCRb18?t2!{8%`p`ltPDN z`rMmup|0teYF8C8@AiAxv~xSz!6f-^7cQ#}i@S)v*eT}SJd4~>ZY5As$|LtLD~r=>*_11TJgBEXZs+ zr6wX_GG;T8KoU+knG&VM% zC<CXl9CeXapj(C?+cCBVlm49zt4@a6%)I9;CZJhRJLrttAmAGxBWMG7L9j!Y|!$ zF#!Xhq5>n8&MGdqhf(=OG8E~f;ot#W4kzxC0J>o?kQqctYIxl)B3VgFOJX&tBs7hT zu#y=_GMG%D+U%BXE8m^qvs3ExdEI;^#pM-{Qi{gEPqFB+?M2R(4)LDCyt>w+}=krssa~43_w_Tvw@*NU5Ce4P&*L@%sEsyk;s^M-EQA6;oEn zSCEgz<;CVN;Ro|;xZc;yrcZYXj0_&PFpV!`-VN2_jmeXg#{s*l;sdPbdw(qo%WCO6 zvV4iiCLfPP95;6NImCg+jL;38KxG+sEnGl-%k>OoJnXI80c5eJlYFxNUnF&j7L8F} zn#-&}gk9TPP=roVp&8JPcv1+92@&cS;g-|JyHQQ92HJt}$mSz9zFO$GX-Uzx;E6NS z>kkgF;JzBpoQ|@$K~j(>SigIaMfZ=z8@QX@N5&8mZeq>#tlqepvE_LLG6zZY_Hf{E zj9JsIAat4M%F3vQ($=NOV{L5ciyD6eb^(2W{^fEI0;Gib^8=ol)0AFx%L=Kf#-?%p$HXW!bsJt|d`^VFuIglZwHZ&YL`xZ2 zf3Bg1A_^zFM9Zme`F1*O{Ie1|nqcI>Dgb$<^L!5AY1=t%PeGnqx_j?QIc-{*v3^Uh z;&8ZRS5On3VY66rM*)vLb%>H8C@Y3&LN`Xa5y6lU?Po=_GbrBg>Ce6gGzmdQ%CCS& zfG#=@AovJHeGo01mC4^f?Y!4(PuDK}$@KY7t53aaj+vwu5-qJM%KcKdHn)kfqXh$* zA!#!q?Pio?ZGtmFv7xoocn#Pg1cOoz=f0>1d|86a#04y$`I-IR*tzsG9X*b~L-%=A zzk9HtsMsl*S~6ny-m^w1D%5Bk&P8Z$?G&$T1IC8}G{lvGuPSP5QIxMJ<^UDItSujm z9*}aO+_HSMeCQ73jZ;L#=T>TgA~^3UzQZew?b literal 0 HcmV?d00001 diff --git a/imgs/icons/3329.png b/imgs/icons/3329@1x.png similarity index 100% rename from imgs/icons/3329.png rename to imgs/icons/3329@1x.png diff --git a/imgs/icons/3329@2x.png b/imgs/icons/3329@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..33ef76488db588f7412042d85df53f6d03cd5d5e GIT binary patch literal 2538 zcmVFemjm6;y5;0@&Hl@gr-2DDF`=|h*oL=(Kc$;Rz0-loru_1E`Tvcfk1!)fdB)5j*bpK z5{VdQ35-LD0RC~U0ym^S5>*UtGEBXa44eNYz{2*pUj}`tOP*AY$imr34OT*j4@+2oAvNK zZ<8d6C387bBpx^R^^e*aPp-Q*-SD{0A~tJ)nwiPypLTWeQ?Vr9dAbi3)k``GiVB~N zMq)!Nm(*v%`S8^6v17SFAV70gXmeFwRGCEr_Uzfi`x+Z9ONxuDj67eS&nxDvBpGBy z_DTwBR@7BJEO0O-QVF*A?SD#nNy`I*u&@1y$zAMYEq8r$!0WQ_?dk77kjkpT4Ogwu ztX5s%lEj zWHp1qDBQMbv!TN0Gh`KwGKztYpE#*>96rA4YuEXUy(M0~*;z0)5ej$5qPd{c=@jjD zFWGF!%-b>#ZjPM-9Ua`1IxdJNK`eC^lv&JT4GE^JMbUh>XcAWMdFxF_I1*7D7Ar4s zyjtP&2>=9DQ~Ab~^_;A#rjc_&7LF!MiQ%WBLD*zA8_U+#*4L|~mQ3WQa{zJ|HzqgN zB=DWFQ#2OC;P6OZ09aLd=_7WFX|t5g;>^gfJ~bW1==hjnaOAAoarCI1Os8>nbd<$o zaV7|0H{ZApGuatB*?EeAH+V9#dfnQ_tDY$LdVW8X1ub{GGnZ>Zj_5)guxX$6arcQC zLA1y-VC6c%WLd#`@3(WSS2fZ#O-)3^3Af*Ji)GiIzq9u{4x_BJn7+QInKs|J9_!XL zLDN+Fd|;3j+O2h+r@PiZ_v-8Qk3PRkBqBE7ke5sWV~h|8(8)XR4^!x)a`=D~=I6jvD+NqbHj({=3MHXBTa3N;i05($MIx9^ zW>DmE!)dZ2JRQZ<)D#~7`A^W@+k+jizlMB152k65WeM(L4>FkyNOIlgTVk*kr9~;V=@xMWH^kW;SmfCoy9$O+<|MGS7Q64PoTT|G)ha0F?Mzo znyLZ>Fd{e{HcU-L$Zaw&^nKADxNHRgU?LbKm)iwrkrU~h0$ZUIE_THPyf zh$J##AlOW16gmpvbrxVckw7#OMkpA9B;`?E(+HbQ#Niz6xG}c` zIbGMkP|(q_k>@y$J@D(O)Up3@(Z=sZNwF6Og9DsE&~z2qyo`88W#lTYegesb&PTrzHa>aizK#GXR)3Sgc826&3gaO7W~;QUks%a^Y}O?4HTnpPs0 z&0#VWMlzkpx^LW$+cwq0o7|6A{<52xnnQtugt`jcc6~GbdDU|6K>#Ap!wJA7007gU z_F}IUdf^a(GILk)8^ozi$BJ z6Jfw)MqRB7D~w05f6oaB28Q*1BN&tQGov7*z)>Vl(ScEY5Wu9SVFW-_Xz1%BpiO`8 znG(wl_j!Ldc_wj9*QrU|b@$aMFHYdZDINv-B!2PZr?K@rb=Z3AR`dr~>z@q-881)s zqoD+BX24$=M11TxcD|FrhIJ-@6y~o3MmMv9<>+7Q1U;9UH^8@$S@(yMLvp%m`ABunY zDcC0;ykheMidq3Nau9TQ=s#a7>B_L8aNwdFXr?5TPuLEK0sbLinIQ+ zORj4+0ENRJ`Hz>l`SN2Y2ASVqp&w|EaH7S=f|D~`Fvd&YyVa%KxBawO>Erl{azY}l z=`IJO$q3O%h!W$I^h!9c?F7(A1bL3;iybf@EEqu$+Q9MmLen%xPyN!`TqNdOzyI(x zTdXE0(&r`{@y*K&C0?JI`UZ$fU9uKQkkC6! zbUud9hsNnonXLW>0U6L-QkNmVBDA)G<1W<524E?GYujI|%rbTlYu{DLw%rQ0p^0Kn z2iFR~JD13O##jF9_az|4z;PVF^MJq;wr?{&wtwf6bAR}iBU@F9-2hfCAm+X*;!A{J z{t`QjY5)!MLF@mJ_!2M%n)Qaz+6wL>VgD8W4Sc401YT5VbN~PV07*qoM6N<$f(mQ1 AGXMYp literal 0 HcmV?d00001 diff --git a/imgs/icons/3330.png b/imgs/icons/3330@1x.png similarity index 100% rename from imgs/icons/3330.png rename to imgs/icons/3330@1x.png diff --git a/imgs/icons/3330@2x.png b/imgs/icons/3330@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..104a2719af548012f36d900c5c4bb243c5e0e4b1 GIT binary patch literal 2451 zcmV;E32gR>P)Hd;N)JMtqKFnO3V|viKn|SCDLG6+5`3?{_O89h?CkFB&apG|`bX>%=RicXzklA$ zljeQC@B90`V}LIhj4{F(BVTl!YXVNT9AiwpwEtRzUL%|*gs@4N7eH%wcfzBptmUHq zYYP5zKnWp)0YEyP78zsn2_apYrp<6Vovn)&MSK9*(9ndUs;U5Bgwu3u25WInr17S^i1nyjL~Q`Drgp6&=3iQh7u|L{LuK!4PRdQ25dY53MDG3 z9|#T_sr5OxmQ*#7NJ_5yx|)EKr@IItPXfT&?$ zDru!SKR%I54p15y~=5@KA85kJZSXEPXBIxm)V2p8u5bI**m5MMB403|1+999I zu`L+zud_JEMhoa{te`0#m?Ia}GRJWPIYpJip}_KjW~`rEAC{XL-a2IVk5>f5*X3O4 zx6~$Sy=<=T86JLJlB56tjhwQ1#?<_)D{X)kf`ou`Ik z1M6>F(R(THvLYmeltZBqs|$x8bvwDGijwnH_`Nr4M)}0=-Z;=LDQc)}v89=U;@R=e z(RD+yD4Jr^a95yDMMRgpW@3j^hf2c*T9- zlQb|RXsz-)g=*35k^nqg(2UuzE%Dg-;hyM3e7w@*U$X7J4+r=B>U)E|vGJMDKfdYI z2d8_-K8$CYR?PO!lryQj2Q%a4SKmMCJU*D2II``R`8KJaZUv?l;$=lh2w}a9`Gcl) zlH<90V%xf#(h(;R2ap0_rE@v!(8tl`xujc z2gZ&a?@9;iT7y|<^TxNfJ`@LI1edIYD>{%ytQ@8dF=iuB06kj*ynfqWrR9r7zgrx3 zyWF|2-FyR!r3;atZQqp*I8kbU;I56sqr;1O`+Kk7f4H-Fr0dv#sur^K247LzQo~&V zLjbU80@^1#_n<*v3^)M0WZ2AIwwS9sC6Ctzy*4wPH~%-Wd;SITvBx_lUIzQYCtY(q@}u zP8We`==qG&)6-wHeYGS~i8(X$)Avd$nj}eD0N@4yRa5L~0uCIwouibpuRoO0J9lqw z@^ZW9>Kd!cIaqsG)oaTP=gCBxd z9(T=Zlpx`#zoSe@&qXPrwv6KYfE^|avKy4ipV=+A^$wsK5#kqK%=$WbS6FdI0 zixAsD&`gG)`9$0-4buXj%}EeFZYJktCEJ}URYq!@%WtjoFRf3D2i`vf z&cU$kCI`SYyEjURz*CaSl1xw3?gNmpEDQn2Oxf_IJ@_}0C%%(}Vjm5=%tDnldLf>j!?dg|%tlCzsDDi+sDVJQ*kj-Sq9 z)lw%w%B;#~Gg$#07^Up&0QRJ1dmDhm0MY==|E_yN0LFl|Yny^ATQZOBcvD^d(EYQx zNA91wB$pZE-`<^|7842KMeI9Xz@MJGrL6N0$_G!{`u>0Yg0B{mkw5N;V%Y)*DuN6J z)wZewHkXnp`bJ65;23*R)9jts10&}q@0U|c@oLv-FM!~{!6iq-Rb2g%u0FP8NrSz6 zZ<2c4J{F5BG$A{!2kxF>ZF=maP#*yr>HxW5+95wkB1OnhoXD{R`P)R++793xAut%5 zz6V^k4=@IT4p43*6w6}8r+(zQr$W@)zWwOZwH{|B_tiTcC@Lw^)32g2#OT>G{oL$E zf|5~YE*?yDfSw&77*3Eq{W1I306GbQ&e-JGlbDN{S94&R%FW*w@5zm8n@1+xO`FzN zaMgZ2TvO{I=X!KiWWvjNU|hoa{up^qDcOG~fC6%L@aKxQHcz7uY=oZ{%d0}lz(ciFc^d1->-e`vo8?Qys6pCr|prh z?w9kN|L;7{bIy4V@PGSXH}W8ZDW$|>u`m-869fRvW;3-|EC7Jk)>Z(ZgpkyKl#o(N zD5a9Nwl?XvbRm>>NIE(?B&{7ClD4)s=6-|kIqACN+KQ3@aQyg@JSkB%1pLA3y1K2J zZ8bH{G=*Bay6R4B*}7#Kz&IgfmXO2A+ZRCy0RZ}~0M;B*05Cr_ud}V#cg#(WS1VO% z-&d;CrKz}pXgCJv;yeOAAMDFcxIGT4$<#O;^Y*?3QlEDB_OFbN4l31|nUjQ&;d_Sb z9^!Ov&S7*p?61$vP90)WN!{cm4{fFzI(-r5=DrRL3=D}vBF54bWuq}cYBUr})ago6 zR8#~hCr90*+aoTo&o(kTT0&{+&!fY`uXc2FByNv{^fqyZ5R#&l>aX`-J9p}%j;eG8 zhhQiyAQ=x9JXET^)ZIHaJU0HJ$L&6tp2qEnM5AC?HWiO2kVpu0Xmm7HY%mZ}j4QOc z`38^6ozfTSUt$=>O9**mLplHe-zX5X*$ej*W(Ds%teO zBmFv^Q@zyN-*;l`BlS;JRaL%PQevL5V*cY5&dJ zzZ=-Sd$+W`y*&WnkH0;3tTW*Ep5VWle9rF+GEY6e56)E=CTC_zI2-|yu_QySri%3R zWMyUT<1;h1;Z~j}mOCO~HWL7d$7xA07|iqfe9VmXCY`p>s34CT3yX&Uklfr{ zuB@y~Uf0s1c>T>cZTiYB?>9B?`YJCsC-~*?2;`g`51Te46p4DvD>lc{(m3Jf)Ra@H zREhv#GMR4Gz%2mt+W)P$PH3#NR(UWKqM>jk*tl&gi3@SozOqbARi!`7&MvIASS)#o zaJVGG^Ev=3uiLvPO{0BCot?cPWo7aH!4c|kxmNc*wLi4IsfnCCdD1p8@TFvNap494 z9KG8vSg-!$$B*YU*KO@Rd+uEM@YoIS8$W-I8yp942%ey088 z>6>ziB*k%@xXENHeeUq#xAi(b7Yc!}i#?>Qq?kO~u+0|{6IXxz`#HX7Z)ZLo z=<4cP^@oG`+N`YorDbKCnznC`ml#WyXRWg%ogbh1#OVzTs5x%V;c!GYYTj`W9XN16 ze*XM__jYK~dl8Iw|-Q72uo15vo@4lP39{{6LsWdFhmdC>3%7`EstEy_XKY8Wl ziv4@{JhHSnuRhn=iK*!sXfzr;`@KV$w=ZF2e4OfwiU^UikVvGEN+low1W`o5>%rWN zH7vyAr_~wiW9{wjQ}+WPdVupN6d5eb=F3^O((m_I#}f(luASdeKKsnm4{xupD-Zj9 z%ClXcQB7_xF&azY@%bPKaWJ4%LO?^I0C6tZNNmv#+loshN|lsTsuxumSueJ?f6%pF zjCZ{a?LY#Nh!;RarBa0zN@Yp~?C!pDIhRNnN1jfX!7z++=VSYj5Jj+3DYCP*2>QLa z$@9dwG)K|{%cu&w@uQc@ap7W!d8a>=q6#$<(NJuo*4+T;+Lr=L7q%H?t*lgZ#(UB-C-0Gv~!Xw-xtEUaMfvj$oq%f&#i1B^0*sno@A z!|P?176PFS(Z72Hu-1S8pl~{qTwb126vb=taM&%1$)=v3?kxMl0v@T`My_1^3`+Y1 zcIW}C-GS#0Y@%o=A%8lzOfqyD49+GovbqvZ(%AJ_EO{X_BgeNkcj{gdxE%scr!!Jl zR~H`~9L$b}gET{}VtAexXTKU}*su!+=?dMo_hDM9S24eAcanm_jFby<@$8V#C6&ax zH1gQ>o6CW#qti>{t*zA*8xErfYDxj9jm5>U==4SAf`S4C$1*7~;3k_TQPQH3AgJK* zg-;B2&-;heO#E!ERuNXEN$joriznRSWmna!-J#njd=P+J)CE~tPw0%L$Fp;^^~rKkv2>Mk>nFUu8?*8>;Zo;_X@;Hs@bF74gB_ts;_j(z*S2OhZVkw+gl zZoB=CX8_y`pdA3xZEZh%^4HI>r+)jp#{htHP5|KEd+&`Od80oJO(_qVpK+BN*aNxbsXiy!r$K6P>1wr%W+E6_Au*L470@n}R8 zg(%koYB8XNg!7|k>j1b!6oCp9A{8wFh_|$~{%>f69r^PMKOPzy`aJ;t_m}?$U|vjD zY>|-W2f)9?O9S1q_kj=$8_aY3&F7RllyCxvxeNd%G9Nip6B!!R^*jK6@ZiBqiC+}} zh#&z#x;9gYOEAN_?hry;G+Rp)xgd#v=K%mDfmA)m0io0eK!%5hFSWy!0+53T4^q|d zR{R`seXz&R(Jb3Fa@(>=*#atpxT0MJ_-9h{gelmsHeT(@?uqwBg~Qq}7fMLC+A z&5n(IbbenTnjEf_jc<+g_l-Jo{U`t&fBki@>3i`;bh*Qc1Hhek-nm;<)q-o8?~6V) zCz}z&m9jEpW1D(=d*AQr>G=j@>_>hzu+p{d6S-3UiNSXVvj7Mh z-Eld9<^TY`b?a6_2yq{J=%LlARBAhb*El1205uR!e3ZCveV8eKt$TebolX~o-cu{W z;kL->)2H7CaCf81Y=QqJ+mJNo6o3ps0pJH9CzDAE0K0bW`f4y3RV^>y1%U3}y;}gl8XZIz2VV%l8*`}T2{sbmtJ z9qlDhno?CYxm3nW0W1`r(5Qj}AmliX4xnwvjvcqivRopP?~JBtY;I=SRIM7z z4X?)Py{{4Oi{hz4g;DZgi}%drfWmKO#<;cK1~G83N#5_ z09IoNjIofbuyp=hpXM4STeKBHhHJ>j@Wld)*x?Ing zv6r>17Lv@R1jMb_T%0JIe#IOYNambD7$0xHwrAsqqoap%xm@*f5DPWXTn0NDjaDZo zC$l|0J>6$V&S~$g@BE`WKHF^$z1tx;6S|oR}EPyX_1)uZqe5oO?Pb71a-yq)cN-e!w59u*h^Jl@!>-jTs2V? zuj}aO_?7E=Ux-F@6phM+<+AaTQL_9##ULQMEDNO$%GJ10jSnW5wdj#Zd@PfJZCOUW zUVn0KZtg_@;{cXy$E8lc<~<5PRTO1IGMW5AOH0cghGA%v6B8(x%g}Wli9{UZ(~~%m z)UY$5;GQuDT0H5M^10!uZ1zvKZ65`29zYS7(ZDDD8#bRw0JPTD)*jooH+PhHsZfdl{v1OkH3=i}$jowJt3?Q7PosY&MPc8{leOILTdYwOOwcuk#mdQIp0 zPY&(aG5v5I&H+OBze0cjSUy2=cszdCEBCE#@OQgijyKCV58fCbkFDct$5Cg%tgQ~3tjCS#Fmy8ViImqO^Z>g4S(|S%{Tvc zPCIT=bzcOgTD!epvJHUA`~7fr@0 zJ)X^VzEy*J4!n$-+FElu97cFzQXqmznp&EO1p(8M7?_;HIzh*wDhmgEHvHM%h(G3R zNNN`L?ds#(Hg_QwkMqg!v_Lft6>c|7&VTH7Ic_*?o}ssY^j3Vi0s;Wmwr*YE@Zs0q z>)E-T{PLY&BQ_Hyz1z2AV@C&MIfu!+lgK2~XtSx1XbEWw7$9(hV`nw6y0r;(+a6pG zg)uuDfxofQ>h9@g1~bKYJONcvO-}HkqFQhK_GdqxDd*?Hz`y_ipufMLpFHscv^F(j zdip+&9{&pV?%$2cyJNWV-uuXAa#-Eo4q@X9m~H4pwssX(dhBR&5_p*bU;IACFPukB zbP`9mb>Y~nUlb+I?W4B_h1;XIh4AEk``k=4Ff}>xi(oJ)JXC-`um^wf#T~7Oj~^df z)zns%O(bwEcog3|c@ozyT}AJXU0Bz?7O7+svy)*ciUyZcLYv2dnY0R1r|>cjZKi^k zoJB~DEqK>jfm^Bw(e8k$>pYc;TMLn>pcIQ2=VvCqwCDvJDI4P2wGZXW8n5E>H?wbj z{kYv_mnsU06yMa_O%A-W7uPOd#l6s7R8+aq(cOin=4KSA2HV&;nrR%hCdVwTz}bp= zI8r)NdL9myA(l%ZQjkfBQX&eXKnQv4K(j6J0?TGHrTBd6_RqC~_rOd2o$J@Pkneuy zEewv0V`OL;UT*{XUp)xU41DzQEo9SqNKO}uzIG@MCrYU}GNExyEi9nZn#Gq}D{wVJ zcv5nK5<4VG0<&0g>E9p#z`(!&0bp^?bxl|Gkxz$`fB4<+`RLf~a3nH==K2QikVO8q zH;%!xq5_vMU4}>;*xL6wtXv-u0zTz+M>r>dfm%PBWQq3dtE9BbRVwvd

TWLo@Q{iC73*8A)I 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 fJ+*k2WYPYUJBP+j100000NkvXXu0mjf!J_sQ literal 0 HcmV?d00001 diff --git a/imgs/icons/3339.png b/imgs/icons/3339@1x.png similarity index 100% rename from imgs/icons/3339.png rename to imgs/icons/3339@1x.png diff --git a/imgs/icons/3339@2x.png b/imgs/icons/3339@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..394ccb9542144c3ff64bbfd49554d503d88a3345 GIT binary patch literal 2101 zcmV-52+H?~P)?o&fI>^VQX<+8)Cx^nH&acTrrlbkb<;LhHEN|2 zCxuLO(^xlXyS6Lpwv@FF1SmscjM0#-&t?_59xdb9tW^_`m&+jos=(BI5pKy~!A(&j)F4&OZe{1N50qxE1G&F(RT> z09FAQot&IJ!5B*s5yu!aZv|w|&S&0_t8yr%CZ{MJ3lWiimNaeS%s2kO?Yt!JKRw#{ zdNWOj$2768+l-8SO!0^$6VYRzKoG#1fSZQpv&8L_f9oeN_AVUm?SSTDd zj`)6Ok4fXN5YhJ-V}`G($#P*1N&cC00MM-lDI}++psNZ~6&aD>C_i!ain+h-75300 z-*}mbQjD>^GdaNk%vvFHR=~Gu69C}A?$&ha9e1&4JjKF+3lxqX>huSQMW;|zw*pJ=ychCx+!*XX$1|QEKeT_}UB}OjjDs<->xAN_3NXgN7&C^4 z`-+KZ`!9Dr{^G##Hom&L9z&OhaPr6zScEJ*{IzeR{>}!Re(yaTJ#v8M<`>YT-~Gv0 zU^^aV{!lI)7nwq+Q3=9k$-m_;%7L-@ORk8pCj{45@gby7& z)K|J-f%N2)PxhZVbH?}DYp;!ZJf4it=QCzgfC&OmKYVoUj?TYzt*a<5d8Te@-GfVR zzikV%I)vZs-VIeHw)~#^5DG;R92ZesUV)OTS~#8aQCYJT%U7(#BKIPYN%YRXc5%xO zp7@}$vU0kyv9V{{wrvMEj*E(-n3**Rb=|5^}hvwQ^JwBBxL7?VzKF9 zQdXr%JSCGQTc1iPu*}QF*)u(Oeb+9%sIXuv842qSr!!lUBx7u3#I<_$>ReG2uM2Rk zS$MrfL|prxUq9CN@(#0R`F&&0zxc)7=zdAWuEW+X#4Fe z);vAm&fS(wYLeBE**$l!vT2&GGl1g+iy~y%<2tzDbUHIOcyZ7l3`gRf?d|69;NWOT zl7bTx6KP_UF$`V(WP_Tf@c`J3PD27<0*L>#=~vUoe7i=IN$u?UkB9GBdGGpwU^$bp zT6n9HO34oAd^H}ADU9Q%l|-Ctdtqlxou1CsH9aAUR~Zqdvv@vDx~>B-Z8lrl@AqrK zO^#!)*GtXK&8+Xwd(7TTSKC7wI(OjcsZcPMxxK8S!jhL?P$7jSS+H76)ijeCSvIv~ zk_=6Y0I)K~vStREbm77>=Y$y0id`-$Dk_Tg_V%U<3JS~{o&__LE`95%?Za=px&KuF z;gRvl6K!uFe1qeJ_t&mn8zRGqE6F4|9NAfhEGvel$p91pNg|2>2-PfKZZ~yZ&{Z}5 z@Wzc43%S(+-|ojief<1G(9gb&wB9S!Ej4Ui@m3(r_S&9OM)O2E~>4q zU?${PM2a!P(2Gk;v-1iIi=<%CK6b@FR8>_)%a$!0^?JSj+}zx>D2m#g=K)a^GXN3* zTMRTfKVq{oUQ&)tyIBuQxi2JjzT&HhaZ3jiyC zoHc9KTk3RY+1t0}LcDvnaQ502NEAP+OJRT2^YqHM+kP9Gh=E-rp f-8KN%y|DZfBKSEp)-S3l00000NkvXXu0mjf^auip literal 0 HcmV?d00001 diff --git a/imgs/icons/3340.png b/imgs/icons/3340@1x.png similarity index 100% rename from imgs/icons/3340.png rename to imgs/icons/3340@1x.png diff --git a/imgs/icons/3340@2x.png b/imgs/icons/3340@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8802fcd93f1fc4b5c31e7f7bc9fb784e83e26514 GIT binary patch literal 2070 zcmV+x2h>zK-oAc3yVVq@7h*(v;GcqVgCkcmdXo4Ncm>MO&vyqc72Eh%sr>5StTJ zqQNFaCn$_=i?&fAa2lnwRDG;VT}oRLph=s=P4mD`otNKE?CZz%y=Q+U-I!=f=$Q7; zKIx~ct9ySspT2X>cYZ(M|M(w+u6H9d3!m7p5fOhelol5JQ^e;8eQxNkCpZx?Gp_@% z4nSaXaq794!;xh*FLQ@Lb})A1lP=g+aCJUI7F{BH-ZOpKfj9R5=i z&xFSm|M_>d$mIb}L_#t%Z@of-0dfJKnU>F!w=4gyp7i!q5BK)6-eeT5i)<7ON7X~_ zKN{nq@z z%$y>kH|A=B0LnUq6SV5sZ!ufmstG6Jvbr?Kj0( zWb*eT7v66WMM1-Cd(NxGf(ck}x`~)sIMsJ%S`#WY6*>e4dl3rwAtz(V<nv&mEfu*7Gy-sEE16l0Ji|ny(j+qMpxe@AvV}YE7q>V znX{dUM`Ng2xfZK#`zqv_gnF^JTO?5&f4gnp?Z>+>kAnzwl~jDD0z?ENQiq4nFJk6r zUwCQT?!M!D#oF4{7#teJ$wP-A=?d`8hku0Cw>fb3^l2P9)K2Eoa(-mt z1n68Y*Qesms{k{ovC&0MO-*3V{}2$L>htWYiOMNZycaOo;qSeGfO@ur8{GAc}0QT%0r*E$+bh_`YYJdFFgH8jU!e&Yaur)-b2WH3+;V5^YqO`Jw61 z<<>pF`6VVVol(hR7w%iPoZ63`z|Nh|Q1dGEMiUB)%vnJ) zj+c~{ov&N5;oORAT^-P(#|A_lX?f?{(C3JeB_k_1U_;!GaFk9scj7h5cmC!cuY z+y@sfwEp4cmjh0xGwXJ{)p>k?Ns@H@lSl3m4*%UVu%^25sg>Wj?f#Y*nx3?n%XF$B zA)jXo1}AZ$w-1@r49tZFAfExNSrisqQB+a}Q?Z#u$z;|Q7FYFjcjsT-vuDj?Ted{r zUB3K4XJ=;=fHq$W{%IcE(P5zado%5?@7}t7>tipjUu!oZpFvtGWv!rG>Fn&pvL%(e z!U9pSRW3%wl4TGIOkhERsmP3y3Y#XGj7lUNj-NW=nfQ{m;RL zfT2qR81DTDVc#Hvqa*Nkf24-S#`&JR?^(3z(MMNKgu`oysK#hCnteW>?vsa#e}~IO z_4Q3EGuIq%f9vOxfav{q)oIIDuVO>l;zTBgOgI(~=}m>foJLdq-ofC--oBZ1BB2x- zj9gk?hVlw4>qQ~g{^lE_r%rmpn>T%5x_Rxbbsu(hRn^zm7yJEw-PIJBHH*eZW@e$a z<#${6zWSWD;+DI|p5OiYIY+~H25gI}vT->>B0*49PWe6#_$Gp(!DL1mN#xY2XeyhG zC6d`lIGUZD3Z{}XGx96Dc6oR1+!^V5@03wxwWzYP(f~l5Zx}HVk;~7aznN-g84Ge!} z?fMNqo&LjVV}V|`x8=39nY3&@di-x*NhgUpMUga3(}M(wH5Q2o%v!ng;fE>;^7-j+ zZQ9(fHyGqVU_|*W0%&Y(FG(AmzU4mhF60b zz%ogapeTy8ZS%HO;aK=uhdr z?zG$Okp+)qyWO4x;8PT3$YQY!??1S|qoJYU{hFE@Jp&_>C`v?RA)+E8G7(V$5$T9X zlqAu_%yL~_U0_vRU1<02-NRcyDl@BsAZUUhXjk49Ma|dN)*2pv{P9HlfdifKcsyKMS}Frjulr)+bUH=1 z+pXWeefyF-?zrP#kH=Gc?AS5g`1rVn+2RENs;a6I8X6kZHEY%c+S=MaIC=7<-)gl+ zL!pq2YgqAu;BYu}9*;+FG#X2G?b=nx%yna9V^&#~jR0UY8Z$PVEglYsea+3yBZ{Jg ztyb%FC=^NqP=Wv8YIX&4N=N|o0E*YIUvH_ZsxqjmDvXYf=DWJOWB@4uvfXY^`~ChL z{-w|t2dC310x$q5!feM_=2o%YZZ}}IBR++H0QdX*<<90q$N&HU07*qoM6N<$g1IdZ AkpKVy literal 0 HcmV?d00001 diff --git a/imgs/icons/3341.png b/imgs/icons/3341@1x.png similarity index 100% rename from imgs/icons/3341.png rename to imgs/icons/3341@1x.png diff --git a/imgs/icons/3341@2x.png b/imgs/icons/3341@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4fe2d853f7fe77efdf61d44325d1bbd13242486f GIT binary patch literal 2123 zcmV-R2(`Vw`^B+yTjydsiEEo+NFqqJ6auM2RH3Td3Mz_PBwUapT8k!a+F~L_ zh=*2r;DHiF?L$>5imO^dKx&j;9FRbcosfi(gc!$*6WhDz?9F@5o;{bD=|ciSB`y?b zpZKKFc^J+7fAfvzJAdFSeWlN#!9fT|vRN?$NC2d47UJL_g#Sa~L4k8F0OY3ggaBDU z{9n{2oDY6pphq=>sQU`Mv(TUp~zJvcLiGNI>NGY+UI)cyI5~u2ymT$CiJwYvKH(Qz&m9d~9Iu z^vfky*SR_OF8|RtyS?_5-|KCQczzia0RP^7xAMmx*y3&dTFapb5WBJV^EtseC!BL~ z_FfHDG?0(!*+h#$Xr@=+MI3i%*k5tlY6DdF^ymLR?ZfMJo>aZ`Zoks}O%ATM1$ zkX(0L7y#pDtWJHpsCo-9g z3V?qmfWbisgb==?UG9OJ+<{;x|G0&$s$q6UgDesd0IDy5mP8bxa0rHBV%hSQ*nIo# z2q#;`STw>p<6A~YNACh4_x1J3p9;{`l_dbMv7^0r)%q^UDNb{*VGwW*r(uC|j+JZE zhzC^!0)7~Vg>aLMNURw|4xqST!;zzq!Y%09bT_{KjeC>_?%%#cQIzz=#6&og$w(is zC;dCX@#9kh0Q%mXzN~4*Iw*-1ltUB<0B7MEv@7RPYuJcIqp%hzAjuFy%W(R_6-?(o zK%>!s?bxUkHPjZWMDjJ+o!uKVPYpa}PMn^2X=G&Nd?u5rkB*LdHwD1N^^Yqx@e3#a ziS>8h3UgXV$tED&h3iq2>cEw2d8}Nu4(;8y@&~**R zjvf_XIrf@(?)=4`{{DVRRaNWg(W95M*(@I#8ls;7xD*U>0MLsiTM5JgFGd)B50}Qy zqGFgR=>^zk6#&7K6>WIq&9_ins9@>p4kX*wARLKe>6*3ZTE79S)2s0KPk%1|@zBA< zbNlzt96WfiZP%_{+s4Po^|7%r9ROQ22VCZnhU37l&w?ot2>u8Ze-N@ijA%HBO`Er{ z>DhvL_S`#0FxlexlS_ERYJfTp7Rn_|Ub={PE?z_;l|)k@kR*bT$mMeG#Kc6$o;`ck z<#IVClgWsS0@$vATFrnjKwuS%s8q@*^O~YjS<^K4>g;TC)22<4TrMXq>Hre}%QVR3TjNa2=eg@T5EU5x(lVd{xu#dKL-uT-zjYeh|oB`iST&+q#c+zoqu<_ zQm$72{?f2eyf$OUViA*Z-XP$Vc^<{}SO%q306;$Z46%;^z{p$YPF;Ba@&i*J%nhW| z%lk?-XBn-V2>AqwL(m*5%oBjrYcY#cZemWY6;w+qT`i@$lip4cjoHP05s6FX<)f zx(oodJz54}0T4R6d*X(bwcC=?0+iU5=tAiKe! zOes}HMn>fQ`}bpPY^-Z)YN{woQmSpkhBRTQmy23O@I0DoZ55*NM6<4I%IwtiWP5u% z?d|Qo`ph%WOohW?E0@c;pQUHx06YNoGEg-PL*Ko7_x$|){QQLr7e)pL2d6taI;66u z6)wMh)+iS8&Cyt_Z$&zN2Y}AgC&$>uGiNS!c6K@g0|WZ-@bJk>rJ~1Tu{r?yxjWZv zHY*Md4JrNo{mVCR-hB7#ufN{$*H>R9bNRdgzz;wLV5U+jYv<0L=;`UXHat9h^2CV~ zxl}4u(lo6OfPJCXIg`mqqobpW-|vqeIB;M+fOT_oa|zqFeS{FMs;U!<#cIW3@yfH$ zK0D>QuAWMz7Bo$>08rpd=-qEPAp=kVgtl(o8fk59^?RNt%*@Pq=0T3?Oo2gwpA>ibZ@$5{XX002ovPDHLkV1g3U B3_Jh; literal 0 HcmV?d00001 diff --git a/imgs/icons/3342.png b/imgs/icons/3342@1x.png similarity index 100% rename from imgs/icons/3342.png rename to imgs/icons/3342@1x.png diff --git a/imgs/icons/3342@2x.png b/imgs/icons/3342@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..31db01b99d4e7cbe886db7e202ca282cce62eddf GIT binary patch literal 2119 zcmV-N2)Or&P)1>zH6`V$tE~94vAxkK|v68Nw~O$2t~9DA}x&|h!jL2ifF2~2scuc zzO-t?OQEH_RIM7jLPgNfTo7!OD#S@_2nohGacnnE9PjLUZ?m(zGjqN^IMAqxfkN9S z{?ce3j?R3)^FQCG`2%0+D}4d=_Ja2%5>gzH0mz92q~2ce|3l$kPDC7FS6yceNC49R zqBbMy{p5sgE?l$a{#(A^xhVWY&awIS6_M|5yk}+i$LmDIFdyZADk3n(=DzjfW8Ix^ zy!6~JkN)*#{e_=AM4G}000lh~-G0Nu>VtQ7y}GPX>bY$Dm%A3CPfnp8{>@`sFATk& z5hb0B3m?!UU+=WrqMF^cC}?X6902sdT`TFa^*7tAmp8l=1j3j0elaJAh!GL%d*V9Z z$e*71wQ=!;LvwP@4DJ*6ULT}8J0rBIXDL10vy2)-ZUMmg@#gzz!yTP;ZJqM^bpb>! z0n7{WsTMKDsOy&aw${78{XI|ZVpx_XgjMFFgNN9~*%C4)a4v1a<*&gH9^b&)7S!`U zzj25<+FR|G`p`YXtNr4$T(~MgUm_tf#^?_ZE{R93z4d7+d_5p!1`^z<6fv8gfkPaQ zV6YrO&l&*J@S~?Up;*YW$%|R3sjk*xnkSAjx15s8|++Lnsz9;EIaJH$8-+VKATH54R+ktjJHq<8e0t`dk3L zz2J;7y1PwT0e9`)@LfxnTPSiVoc~7(ip0PGxLqDJ)P&#<_)#nxXl_}ERX5#)Ky9NG z4h4w>-JDD&Zv&uocXunF39xKgf&st{?QLC)moAg5>2b2lMFt{N%O)HmEL;*p#OH>` zqoG(d5%4MqhU>s&4SKGOiWCI*M$yq7$LibGs_WPF+^wo=?D+BHfp|PFUtUlCcYp&2 z#y9}yqYHYocR>f#ngtF);tW7FKZVrUQz(=x2!}#2^9~>@;QnR|4WGrtvUtgL@n^O^V;mbi_S(LE`%cE=@lrCGw66+)<8v=d_R{dtx3Torl`zJ2 zWGW1dELgUKObIwUbrA~}cc88FCLBI8fZ1#ofnX3GuODu=1gl~oqnnt?Z*jx67@Wy^^tpL{YOkH_tK0V))7&f+kW0_7*=!mv zU&M)jV;$Xl-#2Sp+uMS>Uw%2qfp$&PJ{%t(ugY_#T{)wnNCbJKOb`+rVIh^$k-nHh z)v-_!3YDr;E0W>}5|(X| zB+J(L_@u7L9A2MKE0roik4FtFup8Vim&fY^tU}d!Vb`xl63C$gNi>sPWmRYMvGC1deB%xrGac(*{qt!CKY>8q}g>n7zrP8}6hexv6 zyqeACy^Nu;B^p$Pu$`h|npK;!t!@?54m9MJ{l}e?WVzC?sY(D@u0A=IGjWwoOUfI{T zJIjC;0ww{NnEUH-04@Mt04jhoV@xHYz{8t1jW^cUAKAHc=RhnLOV8Vc0B{#KeU4c`_RTumO~2fn2dz)VFQhHa$H(Jv}@;y!Y8>pB-y&Zx2|G zLquc~k;6F`oO6eWDnwMaET`Ju-mX6N)Kl5Ny!P5aHk;MM;cy9n^M#XZB9V~#`}@_+ zn>V+tTD59zGMQ}Ozkk1c{``4?xc~wHtf{Gq_w@8QU0q%0UU}t}V+Ri&oQOuFnN%uO z0w6xlYgY{mpQU&_E+>;oRnxT4u3fu2h^S*~YARYPl{5g*G_71$SC`dweSGK6onw|| z>CtF3pGu`n%v}$@6u@OpD41(D|LWDNgH26MZpU%>0D$17#~+Ku+?Xd5{u4G4!o}|27rX!f002ovPDHLkV1jP}{XqZ# literal 0 HcmV?d00001 diff --git a/imgs/icons/3343.png b/imgs/icons/3343@1x.png similarity index 100% rename from imgs/icons/3343.png rename to imgs/icons/3343@1x.png diff --git a/imgs/icons/3343@2x.png b/imgs/icons/3343@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..27097f8e2f57e05b24caa22472ee2a9d7e690f43 GIT binary patch literal 2534 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3344.png b/imgs/icons/3344@1x.png similarity index 100% rename from imgs/icons/3344.png rename to imgs/icons/3344@1x.png diff --git a/imgs/icons/3344@2x.png b/imgs/icons/3344@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1fe845338f7b20f0616bb19a6c7cefd8769dc4e7 GIT binary patch literal 2491 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/3346.png b/imgs/icons/3346@1x.png similarity index 100% rename from imgs/icons/3346.png rename to imgs/icons/3346@1x.png diff --git a/imgs/icons/3346@2x.png b/imgs/icons/3346@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..df0828e8bef13aa80aa7e17f1e5f3f134fdd9e8f GIT binary patch literal 2178 zcmV-|2z~d7P)DdQwRgR1JC0)qVkgEV4i^I@kdU;{VhSP=MO8tnRH?jGttyj; zK2)L)2&Aeh6{so-jj5WDq9W?laY#Z5vEw9;gT3)3zOC)O&faEsZl@0+5rhz8kv{bQ zbflR%`kn9lpYQvI;MPO{&{e#9y>9i}o9jRiOtcrwZQ1N|eTkL=WatI30Ij4kefGRlSssaJpy_6$Oa^iS3(9LKHocAPY5~}*i{4%^FSi22|KLieYg+tZ~JB)Zqj>RkAd_7cKAH-n!PYe%l@}a-xtqHbCa)7l^g4 z6>R-|*!twpNp58kRz;#73&UMZrNZ`_&d|_j!y7vzn}$MR^+bAVSSm@S3@>0oBxY%B zPdT^l&qxvS)wEno!NkvC&Ze;A%}ML8q7v$xnp@ouJ+>1qO%V+Cy@3b5{~Snp65haO z2xbwv`4Ob!^Eh*CkUIQfvJ{U&bO#MTTN-m$)ku|2`)K;;8)r(XbkyWv^9I%CH~tB+ z>mjZI9O!}AUV$1n;Wx|?-=;b0YdA4Fea}n|)ldCk8yXvG$^PHIiihrRfmj)U>ZnFT zLo)=yjLB1jC=fe66J5kRAD$)+p=$he_v5AYk?P^hz#oTl(Tk%HO;JFf;AF(t_d&Uq zf~$*qH?*RHQc6`OO{K-$uCAK7gud>Mpy&&1*u2Gff8Xo0V@nIdosW<=Uwf4_1?(7p z|6TBoDztQTK-EB`q6%425uKi=2{|t8ADr*H_s(bTvU^TmD4zb{l)>VJV#UX_2UDaE z`j;XA04IAO+H9yUmN|Eo-`6~l_wO1_a}P?XG{SOaJDrBhrDrW60kS;B!No+IUzs7r5L4FfW78nm{WQ zxI;d0UI$o@+v&(MPM^-1>sHF*+Lu3E*gZ0v7g@%j77j#KDHI*3udP5aC(%?vCC_(O zjI~=cZ}0oG_{QI-u<|7neo;?dF-Z0go4^6Ui$gHb+e@)`@6zu!Lu|CbVXKmoHbctW z0WRSTH$=j9{JDiOw6!!5Vkq#}gz3Ng`^nrw4C@-hbVty-l9(PFIiS*cn+aY3aRBs& z09PaP;?Nf=*xtRM0Kvz!)ZN{!=En!g3-$GxC)D}u#YpR}+=^uCXsy>(TxPU{{0Tcz@=_)}OLXn*IzOhi z_%Zd;X5>!xTpRHSi`C70XsZG{l!2e9O1IPI*xtXWwHLGQ>ZN><2xJkdvR5v)D!zgfNqFPM^=)nD8l_hW*h1+GOwHMN;;5IxG z@V0g_)KN`>eiz(!5h6#BNM~{K+_dS;Leae(dU)$V%KI$Ci4kf-LF3>UejXL81weN< z!1G`%Ca_MnoR3Ou-JKnsq^;Snb#}DTjdyRQHi0wz9;Xorcnpz);q!Wpwe9!fVwUr8 z0w*&JWZgiS=-?@?g#VUP&HW0->8enuy0IaIbTWbY*;&Z4 zf=nh0MKMs<*o@55-1H-!<-=XB^o2yeeBMMcX>mhpdJW}O0RX_j{a_m!;aDsQttxMM zEK7y<(IgZ8EK#=P!Et$o=Ik~HBk;_M)1+Qr<0P@Iwv}_WtTb^s55-EcqB2Od{RIW! zYbxQ*L;(T{ocOWVHd!z|80K=p7Drjv1qYufn~h>V9~T9N57!1}ZG3V;noKxjGEgwE zP*a6$aux)Das_$ec$AAp2-7Jj{~Sc2_0dMA+I~s|2 z5&8`WxWV&pec+qI(CdD5Zp+5_A5sIWtONho`nr_-7uce!5jQBUh5!Hn07*qoM6N<$ Ef-VLyXaE2J literal 0 HcmV?d00001 diff --git a/imgs/icons/3347.png b/imgs/icons/3347@1x.png similarity index 100% rename from imgs/icons/3347.png rename to imgs/icons/3347@1x.png diff --git a/imgs/icons/3347@2x.png b/imgs/icons/3347@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8c0eeb54a202627499c47ad1619e96745a2b007f GIT binary patch literal 2547 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 JPDHLkV1lxg%nkqm literal 0 HcmV?d00001 diff --git a/imgs/icons/3348.png b/imgs/icons/3348@1x.png similarity index 100% rename from imgs/icons/3348.png rename to imgs/icons/3348@1x.png diff --git a/imgs/icons/3348@2x.png b/imgs/icons/3348@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..258e7a905d683a93d4ad65d5bf752d93d5c46318 GIT binary patch literal 2502 zcmV;%2|4zOP)!SKd)L|Z-a9ipvoo)MBt$?0#FVe} zr1!_0(dWJ2_r3Rh1UDuEfX-p;mvy7xe!W`#VChaU-^tIe=nJ$IAbs1w0l*SNHFG2v z&a=x2lGA|`6%(<^OfIfZQ6wQYwL$z&0VqHSfQwsU({#9LA`EA>0im4BNOD=lDo0h( z$U~G=2#OAhkw-KQ2mqAEJy8B{008j&!M;(5CBHdFb{IT0tEx@nCxtWP-P8bc!HVzC z&&XQZ9XoZ#CeNG<$B|PFh_V_|Mh;Y;gW!7;$+-e>pLKTb1hcCSIPou?)EmZ{1!V=! zb(`+KtIVyxy|?2KF%&oIeU+s+(iRSS@(Mf44540&zxA4)TyUJTDLNLl%#g|4MXz3#*ZLTKnh zI-}-fK{T8V!uIj~h;t^0U*{1{yKFvcwSgOz@_g?OW$)ZnS7WWe{XsBdBopuMAd`V9 zV)E93t6GCqn}11Cm!@Ho6V#E%=*~r>6_%1^<$dQ*EM8W*q_4a}>4}Y=NJt4Ot~X+e zCx*n}gW1%=eTWirZCS3C;KE}tB%`?F^%2ukLkU#*7S!1{{NPU1`YO@YwioMuycHxn z0;gvMj0PU5z)8fy0rYowQLDRxgu+4a_A<@QNrU#Hl0>1+G7#(B+b>09L#&lcYcv;F z{2GE^hPVpQ>IZ*|3ng}%Q9ZAe?0@b>Y-p|pU+95i zEylcg3t%)FFmkL58DgRRL(_QczrAE$c`+V&;D=IuW$}r4$E$s*p>qS^*&#r^pc4_U zZ-acb1fO-P?8pf+q^Kf~u+ntuuBMX7h`R8mGQPmmuwte5-kz6fNbc+W`c}hUrIL?ZoM+LNybbE+2cRT~e}dEE>ZR z(uLeL001!fAe;<^H7%piQ(||743!llGw}sM*;p|U61;*SmJvyhs;v1~qX(lZ4Wj;Wm0Iuun)E`+68Q5J6+n26Zq98A{YN>hf-XEe&d zY&IjC%_1ua;Po7qH~8r3lP8En7#n@aC+&XyaP;k#L8QOnfzP>;wgTxzDrn9QDK&-Z z^FdXgWRuh-pSG75Kv!=C*Hr543?>-o=7!q3GhF?h`@06~dr$Nm(&-dY6d9^Uq1Wr- zbU1J+8b^t{K+7{(v+d`CWv4Y*0Av8rYXAUX%VmQk|FQ%+0NCCK4Lf&Iw6uhNzXE(i zg~>X0W_Gr2*%BHvEv4U4wW-Ti%(K=JfCNR zIp0B@PN&8)pezGT5d|qS6G|G4=19}p+dg=4@BV#Oo*fPbgW{Y30Dw|T2qE`}VV}Dj{P4iQ`hnvgR+PG!JiFcE;PO3eJWFxrWIs~z zm}b#KG#fe9Vs~NjhE0a`cl^j!T2*5{xbLqqhe=<}^ZejJaV zx4d$Ec(6gv#EbLYMU@P1FPfeX8b$}t;8I{5vY288NivF}#3wFIvhDl+6hGDTLF#As z-_O(*HVfdF^I`K}G1v=uB|(DSweM<$al)L6X*e7-d)$_AZY&*s}K zu$XypoQ_dc7}7cLn$c#nI^6~D@82u_VRwu0Nl%Y~QpLWs2t@#H8~}iZvmm?$EDMQa z7y?0(!Ezibt11XUsb0@fP?b_ura4)rVn)y;Nmk<-S##K(+&^A=X0Y$$kKcC{x^q%G z&I4fPWnEck z=Z7hSQLibgMhS=pFe(6&F^Q&9IVLSoMi3R66%;C^B{l2w`E-vx@kH$4!9&O5@p!~;w+jH~b`*bJ ze!rh>Yilz+zWwo%#mg71@966CwYRr()6>%$a5W7RkH^Do+_+I~XlMu=IB=l1ySsbb z<#I*C;jjQe`_=%!9T!J9*0KoIS|)f4vWBb64AF513(8r55T&5^=g~P<1wnL%1lg5V!Z07*qoM6N<$g5bl#%K!iX literal 0 HcmV?d00001 diff --git a/imgs/icons/33.png b/imgs/icons/33@1x.png similarity index 100% rename from imgs/icons/33.png rename to imgs/icons/33@1x.png diff --git a/imgs/icons/33@2x.png b/imgs/icons/33@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2093f5222e2c16350592bd8ff79da1a43b71dc72 GIT binary patch literal 1868 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

t?6PwQsw%AJl+>gKM|q*j&ECQ^Bs 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 WWSX_9*a=Ml00004O9{F~r2f@M5CT zC~7n@@kIsV)OZO&*1ei_>?M!FpoSDw-b3gmOmk%A9b~+#eCYt!Y?3JCp z*7y6?_wDun7X07-*Q{79%0i)_0isYSXzODMoPYnH^8LOSE*6XOBVDvuEXt{=sYD3D zfddDwUaQsa(KR_i9RAU^ZPqIFU8Z5|G*bFwW7q6CGWEa%^+KVbO;1n99~xlq-o5&v zLx&=u*iJ`lh= zkr#{K96EaJ`0s?2w**0;+Kq;C9fypjiB!sB#i?R-cO}`L9+}N%MUo_*Wu^8_Kk>w$ zFYvJ`#CriqAlbiv{~e1<3qJ$KSI(|Q701z35{scEX5VO@?cE(rzjmCXNLo=uDxFTo z#>b_d$sncp!MDHl&_k1xli|9rOCUA{C=?3X!Gj0mefQn>rFzBrb+cY)ettf-EK3_6 z9wuwsbO#;}_L*GQpX0kH*7%3rft$c`xy;<$oEq6SlH|9JXqu2u-hJ0yg{Pi+D%`9l zHUoHvRKNPFoo@{c4R1R=Hy`!(^yvKq{X|g$0y3>85B6J34&*4#tT3DHC6)qR*Kylz zW@nD8e115#?Tr5Bo39t<=NAuNP)`?a^Cea+7R?)Pocw%OXJ`KG%2}1MGkUJ0lXlw! zDafQ#=%zs&$A};#ks6kvW0)qc>!E;cW81~z;u5-PCZpTOKexY7=(+XQTa%4JUj(ps z?_M2HZyZ1V*<5GWZxtHVT1}+w6hYu4HAzYc!fKVA<1pN1U~SEi_nNpX%V@q&+OkLz zg%lFQF!a*mqUs$O{6g7vfAz>Ck0cv|y$E2P5VzI3H%X9T94kZ9Fm(e>2=pkzEtj~# zS>-z^!BEO(B{JEcHM!5Lqb)5ER2?i$ASL9o8QfM&CUGSFF#OEEefzeor&n$UAf~3K z5~Y;%d~c^|n#zbG*(Jb^W3o|1ZgrWj#vb43u~`@#;1{b2zkIvJGkwE+y04R>kuZ98 z8NF5~m&9}mK_-rnNun&%$i%UKB|xE2IG+Z6 z?Mk!5ws}k%JntveM2saZ-gJFlktx31YcQ2{dA!+TX|=+jAMzqfDAQ10%f)dj9UJ|L z4P$lpop*fCOsBsdxNVVcx5Pbb%c5}87^>Hzx#02hGYwwG!0I2w%4U(ej^At%Rvm`h zb?zU|an(eQKocy!w8;18t9ZM2Q*E}DWf&)xmP%haeE9GSP?Rv0oKJyL=gtT{mEPIW z+poEvuLkm4#GF!uLs{&RUXCo+cs&HIs|Tg&w3;nE*CmQ$WJedP9o;;=RKv}t$XvUP z*=CE(_E8X$SV6A4`(p$_{#+W~5ErH3;fEgFMc{j8iDN*Z zN$`D-4!6bPt8+Y^Xf&_6hK$psJHJ&e&Yu=b^K(vDUr)KbT4DWfxbz?jg5Ym{;ES5$ zXnkAroUYVqk6*^`%}!?OKDx8UnzKf;*}xBdT(^zeZc%kA)Rsyll{&xiHRdL+pp1sq z-Gxe$B=kL^BtGW4(HmT#3+DmWWs|rd{!>dN?&x8EsG%*=?FjvQfR+X&r#{cPQuCyFD^EG%If21rRR zn?cuf%1eusOC>Z-WAdg?u)Hvr9C_jIGEO*LDwV(JdENqW{zTkNj5Ht~8yowv=eNH$ zF*Y7rwryy-Nfbsjnhm--bM*A|62=LZWl^tJX*OH5@+uMp>~ds?`TEA z<4SRT7zS|^C%OQnl-L>k6=uaHs>A%rk=9m_J&HI4Q;8E(W;G+V3HUktrFOeL8^>`8XalQ&^Dowa zUv2ruUQTkZP~W+bunrlmKQGbzkIMet8_)at{=;0OHqL$5-v7Va{s~8SrTTcOp}znC N002ovPDHLkV1hXm<}CmK literal 0 HcmV?d00001 diff --git a/imgs/icons/21919.png b/imgs/icons/21919@1x.png similarity index 100% rename from imgs/icons/21919.png rename to imgs/icons/21919@1x.png diff --git a/imgs/icons/21919@2x.png b/imgs/icons/21919@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3b1e8bec769ceeeed4c8a91cc2cea92b0be8831e GIT binary patch literal 2034 zcmVpLYM6I{;_-W=F>lT=9ywV9v70yr2DA>dV71t zlP6C)0D@b$K7Ob=TK^Txwk1iR;EaO^0xZ*jqIe)kGMHmco`3JmcT=hBZ!OMs0q{=* zaC_&8M56wKix-bjf-hQ@#VeY|=jXFfWQF+sD(0qV5U8$V;YgUO{s7^O8GhCG)WL%X z-&~@xEX4f)C;;}oJ$tsLCq`doE{iSX@@}b6pdw?W-!CB&@FUMDR&xt)FO>1FX2Rp~ zvgTMT^{QUTqWH7JhYtUk5MnQC-377iVTm6(A`n8@cbJX`tWIXxRNAS(QPISr~yY}^Cb7w2MAMQk5b%b6VJkO`oY1eVxA3eS6TdyBDaKICf z$CuSwZjdB*?sPfl;)VCmy<}G^7$2K(B9XAr*ti0YQGvo8EB@?O;_71520EVw#L4`3`oFPR-ym9aX{xYj0uLhyI4CPV@4hT%g zf#Ub!gULz!_O;6pMG<4J1C0YCBO|Db)+4rRHJM9~^U?7e8UQ4d$&ZKN#EBCW09#mC zm_GBjlf0|@^W3rwZ0uNt?CcC)zi4-fawSiXjgraH>$z}EbY^BgcRT2~>t?bn>+eRT^21^-Cp0!TAu~CN zRb5^1syTr`Z}y#zY)1?7NJlGlyhdA z6@fALe5Fzu!jinO^j0DOcr4ZvVr=eGM_X*=hA;K8vuDpyx1yta?K5mX67lwFs865z8t`Z5N+*kzpUu`3vI0} zwm%q@1o_s#TrQOn4hKnly0mxxVT3!x-0Kl3xO%ck_=cZ%K%6KRsskBs8tj(CW=b4s;UaW2+2g6d~9I36+ zmsW}@sy1p$dP&JjG-{=)Qqq7`l9cE$Wv$N)zxt#gxORpS13d30dDW$S+ z-#!tG#q7@tAOP9ei2jAt9^AuIZ%>>sO-+94Vz4UR0*2 zimIg2Q%)clVtqq{URP1c_0fs!)q$IDzH_qY@Xrpter$fMW6`L#qqFl*_U%9tyDn-FH6eHoXGxtqJKQjp+mo=zIvJX z>b_^#(z=O7<>eSYuanQ^3q)CHK78` zS~j!kw3Iedm4dxrY!#<2^l{|KTe5HDmVEw&?=gHUss8<~BkJXg-3(1mSd+<|m`vw% z=}4=gy8J-EFpk7x`Qv~JcOd2+PynZ?y1FhL$ad!}+prxRN7}-&L2(=celK%5O9s6j z;nfT=5>LqO8&)$lmy!)@*NIC#*KZ`_W52Le|Hh9-roV0%@)(+8rSp#M(>0@|Zt11^ zjZe29K7818YeCKn)8SsR)8FxE_)_V7K9S6bcp{5*q|Dh8MN?2!TTz6k8zQ1-|W-gumJ|3E5#VJs31KwV^mZuLq$>0=kY6l6XGDM0QT?9+*h<4&BO~J$rWT zug($%JV?n{BK7CGZ$Hsq67n6e1pQglEZtCD@#BR>xNsA305v%?^MTi6JY`ujmd#oo zD{IoWeyOv(Y7x0Yf&Q_CsHzAsmP}DsUG6;F(JDe-&!Ci+4y*@SfLb5`XkDFM)?_mC z>yYN(ToMc)EDd;fE?Hc%cV6#ad%^80-PBz5!*WACSmF(MODl|mDI766G$Z_el~X;V zeCdfMJCiBsmj}m>p6;9ci=rrg$8qw&EHD8K0AqkPKW5{qs+w8LQ3nSnZUEw5+o%or zbe%P)yT{I-{V4v%T!BPD20h-KSJW*l6NS7jJ(?oRO2eux9eX^T9|y|82?2|M3ZMaK z2U^|Vo+v1n`^N@daR7O@0|v0lwXsDA9+MKGsY2{%Ub(fkzPj3DD0a@y$^L;UaVt5a zrgBcIcO?D?vtZ|e0+0prZq}xo&@|8oTmw?>JqiE083lo-fG-2f0E9qDi3Jqa*H$*} z+0@V!4*4hx1+8oS1Ns~9eb_sZ$h{AEB(ea^xd5gM;Q+cTIslvpdfexC{t4Zf1I_?m zpaWPgB|4x9A=I9m6IVu)>GU%j9(%lD~QDMUvxt#Qc4r>HP@7FC@%?wPxp<#H=8wc6jzkwPQevi5E~eA zv+f0kC>E*nX#h}M4NHM-z;?GSg+NHKkSMOT`32&_?N@L`27pVzMPL}n+%57TXTqTC z!cL%(qJ2^bkn*JJP)ojhiH+^Co!EFho|$t$XZIm-FeJFpg8I_+a*mF) z*80|3|2}(f_`m&+O?*^`a=9!=M@PlT$Vf6gJS+i51_u?u@Y(Nx`j|O^j{sXPm*vMA zv|KLBN~MwrA-Lz>dv-M&&aJv;?2uvjJJYtPH=Bb}8aoXspXlxFJzS|&R)&X%wULpL z_`e1i8XD3M9y}NU*_&><@rlyLO*aQ&XlR;7631w|M&SFHRtm#3iG6SS<-0T;r-uC#f9{>HC92bOG4?qIR_xA7q!rav4F9Xl-tJPN`l|-5@G!b|XH+JUf6);k7 z(n2B(6VLaPLa`|Gg#wmg{`85*9{aHnB0QVxJctX5W%$4WO$d?PdH3DlIz3zcW39H_ zH$5{G$6=sLA%&)ET%F5uN0-g*gI(;)v{AIv7=}(ZlaUMa^J;2xG7dujN8k9)x1W6U z(MMCOE9S#=V3kzA;#0d$luD(Z>FR8>dCL~P*=&-@WY8^>ef4GT?a#y30|^#%6p4%f|1V+#-hdKOOeeRq+&!Ww+dv7OC?H4T{j5BkjQfx@IAhALoWk&>}GE+MOz#r zG>yxXn89m$xayl%a4JO{tkLO1m@k(E-0X|y>`d?~>2@UXZL000j?^pFuJQ6Y&V zA

a3pAA*S-UDZX#@s791|0X31xC>LMgv6s4w1n`s5BQV{$r$ zRX#s7w}&)U0|3af0!>ws%jIC(rad;6fN&gjx-?XtED6}PHB~|bi4%SA+SS3}=!S3; z_eBR*oj88RXXkQ~IYanf@m}f02mz|;fkst9J|0)J`Vt3 z761`cRYyK=VJbO>1!I;cOC}0+wX11%c2+4W(u=EVYWblD9&A3|brgpVA7V|@g_XBN zE}x^Oa1-CZeLJ6g=Y%p8Khp#t+1}osJ#gRv6aduF(BMR)QCt`q@vmFo%)+vusEf&w z6$L~LO_d?bD*SF0!O~L9&!?q$|7mvlyj-)Y(GiY97cXA4#wR9Gu!U?{8Qj_0in_*n z$E$m&q_l(*V|9G2=V&E>mV*ZmW&jK;OD~o~M3|kK4mxm1ND>iAAR>r@fDjIBVS`9O za+N}J`{4DsA(!Q8K0A-Zg*eSkj-lACNN3`4Tsrq5hw4^i=TqOJ@?en1M?OY(?=kM{ z>m$KZ34r=Sp&$Sx6af6_qmRl&5JdrRr^NJ-X=HrDu>~_jR%FsN4a^d!GX|_&j%>@K z(z0?6_`L9iLhy$yNO=Pz!)GBINz|2j>HNqjcf9Zdo_S_By|({%hz-WsfpOu<7v~a^M)wFi)TFhtWP~jsbP#l1O!->fR_YXud z7$1UR%mHp6T)}$Wwe4OGHnzYdFMEAn#NtEz(n~Mn{Lm0w-XciEYR+0<0Q~@t14v(~ z)_G?jxdq0>}bbv{ZxPFh>A-`N*KR zsioEZ{pWT&p z-A6?%7AvGvGs^mwwbh1^`2(|hUw*;doz56t^SK4#^|)O!K{eB9CuO9C$K`i?0l%c_ zZdC}&aU8pl7q(}5>T+~?a^^1pq-ZpHr6?^uL>&acE-4LNYTejsRaVq_jGTjHVj6~- z#e-jc1RldY3833FGg-&s_wsr3w+p%4W(oWa&86+oRJGRS_JUa;Ii9qV$?>$VX{JUr zHa<4qKRY}3LjdN=YIwzvELA7`@)s{X9B#Q|_u#p+)rSxL%}!3vT&%1J9)9c1w|)b_ z0kCXJuP&`2e;{ygb4&Q^Q&Ur};g5!&2Ot2f0WbvMgR3%rohkW54PDXW0Z{kYV>?0s z)D>e_ip4%W+p|s)>+@k72iONyqv`)Vax4PiElQzGJc(z{2ZU- b|Al`8IC1a9jVUdl00000NkvXXu0mjfxmyz= literal 0 HcmV?d00001 diff --git a/imgs/icons/1312.png b/imgs/icons/1312@1x.png similarity index 100% rename from imgs/icons/1312.png rename to imgs/icons/1312@1x.png diff --git a/imgs/icons/1312@2x.png b/imgs/icons/1312@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..82e42be470071d26112b5012587e60a4d9124d3d GIT binary patch literal 2174 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 A$p8QV literal 0 HcmV?d00001 diff --git a/imgs/icons/1313.png b/imgs/icons/1313@1x.png similarity index 100% rename from imgs/icons/1313.png rename to imgs/icons/1313@1x.png diff --git a/imgs/icons/1313@2x.png b/imgs/icons/1313@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..64a4a9caaf64458dd3907ce9e441cb427eb8a7b8 GIT binary patch literal 2337 zcmV++3EuXJP)45875?s9X5O3eY@YEp6WfWGB#w!*xDF6-9T2E3Et{$Vp#~)_QlTxSQh#)TRudyt zs*0*MqD7^xDriNZNr9LWng)_!oH&l-iI>F29y500eVOO+>@)Apd#68eXdIxZi~5UC zx7L@W>pa2GH7O()0qIM0*6hzP=!qlx@{V7{f`Ao=Bh3~rzl>9JjeypSQfE=hDZFCcyujEYod~S{&?d3oKcpXG(En8e zEI`EaKlr~?^=Cn1?ME9AZ&j^YH~@?R)XJD3n$6F~ zW6||%%6;~xrW*=PcDwV|HFs*R`E7b>xf6Fjv{`Guvx>Q0W;GUyX7VGB{J`Ir?wJVT z`I(;O4qFfRq&1iS#(8{inK{wdFE*(Fa*x(CYz6#BL~Kp!S33j_k(ldY}BS9b5d zep_S1@ozr-h;{e z+Uge4(pHnGXJ0z-g7EUIZ6xuG-Mnk3@!iKB)6Rz4%r3E1pBaxL6Xy+YNhN2Ji`bE4 zXGCvVDRp%Qb>D_cUYxS2%6!Vf6~rE>akyZA4;i_PA33KSI8xBR_%rPOP68kXFaiJ} z7z_dcI#0dBx9t23D6bkzmxqvEoMP2GHZrRu89#1qO=^a+aKp~6g*R=#!(9JZqd6FU zE58uyHvaZpCxhT*PNx+PX`Qj@vun89?_Wpr{gT=<`g&Gvp!jC7vPO-Yp9s%ue`E}C zA~3eXKB2L(5y8G7s%pKCL@taAmkzRZO-|HlPO7c7lUqyD&ib|O@lU7>h zNY!|21vOhqvh0glY%Z(CS(5JW7*f1Gui$n%in!t`>wL)MQ9_C_J-0yf3j^ZCK~V&N zef#!(P#Xjw2tDWLpKVhtB}FoJHQdFN@(4H85X6)|YPh6A#1bLoxi~4a^VFN+#F9yu z%Qx*bd=kON0VIGg0jn6I^%CW9e z0GkgVKAZ$F3Lqntl?C;^d-w1&Gu2J_kAMWn8Eb@}iepTFkNq zB~E8M1}HjjKyY~Ja(b=N)YOEIE={N`iF5aU-oqNIRVE20jE_&?@h6@@-#{;W`st_f z;(-^CilvxI5ZwS=0Aj%Vy+Ppk9M_G6?EQ&8(RH9FZ4b+q@X#fk@9c%_GBI5=>$$wa z^AJIL$_V%MvXBAht?)9Zdn;9M-37@Uqlrin3Va)2^)5k+En_qkrl0@v7lvBbMgp|lMv!}Ywo-5$oOe#nlo@$W^g<0BhkDYVYnG8+UMPA@U zyR*=6d)&IRpwQ_zkJ8fo0<$^SLl+%}l6Dv#w~a9d$dZM*3ha;skwAc|=8h$k$=@@^ zIsv4wd_(RF(OUCwFt#-RY${Tbsm$fuPAPh{kEEuYWjHA`Aq>d9qtuL0nK!QiU4EclCm zo!*CM0E>O$=54pBE!*y}jQ8_6b@F%6Tn_WyU%Uy4#qP5JP8hjdI&T=~a%t`POg6iN z&vrR00000NkvXX Hu0mjfnMjGT literal 0 HcmV?d00001 diff --git a/imgs/icons/1314.png b/imgs/icons/1314@1x.png similarity index 100% rename from imgs/icons/1314.png rename to imgs/icons/1314@1x.png diff --git a/imgs/icons/1314@2x.png b/imgs/icons/1314@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f307579bb7cd30282611e90132120cb8a02fa7b2 GIT binary patch literal 2208 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 i_X6P)X=L zJmLO-#s3SKnV8+8+wB&anJzQY3|9gm{0~W)+-|q{6J~O|-C|{B<#crhZBpab+dFC}K-29^dZw z`yJL~i?(6ohS(SX`rJ@ewTp;EIX5?#e7>HsNH}awO-)Udm*3L8wsiTSRcp$=vL-t| z1rQ}7W$MhMM~{l7rKKtX01;nF00CeCx>u`q4A(a_8W%5KjEuSI+!yGhoUClzzWEN- zm6xYwWz7`}uUisr^Ry*uYifjOBobe+V7|@na7IdQTzY0>dHJ_D+_1zW%Fd5uovv3& zBz_2xStKHLlIsTn6%`d?b#=A6ZQElj7A{(HWXnU3=r6Q-Fc1iEip?gpdoIME`Q5YO zMb}(oe{%a%n$4UdesSy=-rTi|v$L{jTv4O3XiV#9YZb!baH6nqVQ6{rvdEe>YnoP< ztUY2jr+g`iqDR%VA6Ve^qs?kT!gJ_OmyEsn#*WYLy63@$o$vqct!E#9Jjl#ML@WV7U0vNo@f@hd#tj<*0QL1v+~40% z2BQJKUcYpGQBh(f775*0Qer%P`n1s7+bgUrEzyi7Bb_)}$Ie*}>_2coC@i{8E68_I zz~65k4Ua0e6f0`}dB|RN^DTGA74=TN7W-lFi3(30Bp5dh=>3X z$6|3j|H2FURjXHW;kAXz+OqY+%Hm>bY&0- zfJkr9Ya^ji@#yDuP*qLZkeaTA!XunL?`rNF3}VaHt$fqEwL*Jad$h~f-RGR;pccA$ zNz%NXoz&RWgr44BRS@WjwA9(-J6_rOTV@uf326T28!bCC0{}P?PY?izf&fvHNs=Wf zs)&w`4!Y#`BR%yh&dqg^ulEwp)Yl_3Yp#0d?Gh7Y`4Gqvq66Y^mKuKmZqT>;zFA!jzNYw3Zr~E|=>Fx*b=6P8;aL%4h zBSZbFx3klvjf_PUMac#*C;`B}efyY*5RFD>v#Lxr4KOnV5@54fC>o9Otl3VK-BiM& zq=Vh=;NoH#-Cf;iX=z4RR}XB?S#+qTh7KP51Zioh{M>Wf$(8FOueU?1{_rC@T35%a zro=T3b^rwc&PV{bqM|~muC9j7mg1HT`rF2#nDX*+x$)};DlJ`wTvt94i39{mCdpuC zr^5!vYz^_~IMPz*;M&E7+}}S$9iCRST=cNZ<-&!Q7W(}&+p+D5C;7d-dvNAVgAfV^ zmC?|c5g;9a5CB!0?1XT;-L(1MN6z+k^~5{d+LMb*S1TQz9h~FJ!^u-$!ela%@4H^! z_rYGIXJpg$%a(FM{(M+dER;|Zyl!14f8ErCtn3`>ztqcuDB#qoQ~c6+9NpjbK-TFs zFj<&!RuqLQRaNT&B&HSNvZ7pzQ8L6mt?d}@8{*unUDVd%p^~+06syImhQkqq!DQCD zy1WSVU7~NB8rYSWkDJ!51&PF;eQ{DC5&$AF14g}(Q|w9551GXASV91}2EfyrrnOCR z3X?Se0QmdvxAZyL8OckRE!7-zoaC5ghs|LpSwKQjltxJ}3n^w3WzLzUSj{Fa5a`Dz z2S4Ty+|{^vp_M|zqog+($z(J!0jj~E6XP*O9v&JD_4au82mJo+0NR*YoF>5Sb~6$2 z>J_Uubar+b=hz*I=JV&ZU9aup+M3$3y}R-H9$(1aCS0;kXakK?=mkNG5x-EDM&o@p;DzvIH{md zrHHnKrX`RfRi$=`5J{R8LY$B|2?-9lu)f7H@hx6^Z(e)%zyEXk5GOb$rBr>ZIMTe# zoNvyj`OcX+1NDqcLS~&oDE@sD$9SRZM zl;{^@&wvgA8S$t`t~QmK$($nv;5aj|YfMmgBb;ll*)H(#AVf>cr*i;!Yildtwr!g| ze`|UE#I=w_bUk|eiE58MIO>WuCXoh;{2m0%EHpXf)3chY*Q7rUwloIEj=>~?U;r2c z5rFRQZn{~Z&q&bP+A0Ge#uzci=rAB{`syexC@!z+IM(t^&-tdG7}Mc8xg4cZRE@Aw zLtS z8+v5K9RDE`xU+sqksa~56WmCgpg`ebsK$tU!$Y4q04E!gET9s()23$RxdOek1m<)X zL@Wlu*bTDWNPvhKwr*uxlF1)=6n)$JZ1Vg%NB=pb(jK)S-jNyip zxRwKqF-8ECKfV6yOQ$;D^7Q3;ZQDaUFUr_=njbg&Mo%+;P*O@4xg`<;3)B*mu^HhD zmlREAG8@7*!42u*Wn*g3#9+9%`q08vsrM_Y(g`4;nIh z@(QWC!b9~-`b@dlBNdces*b#!sxlYXtxX+@4ZGkvTUM3r^p<5lx~p={2aG*$%$Gn0 zfQE(!1^|oe7p}L2?U%W1T{xZOz1=;C-34%P3Wt`9Lcij!3OCvLLdI@bmSN`1D(;%` z)6pXp&VmXzjbEC`hXb{er1|7P<*~YaDpns9_ixxqLp_fAF-uW9PmhIbCNgi8Qmu zyUXQ8%jz6WgsJy*l4pC;maP@oxN6DX;wTm_f50w{EVPduK9(Qo%}JHf72nL~?HA7V zrAh!`>(;I8GiB)YDx5$x#ALYOaLv$^+7+>AdItHzmBoqvJ>MAFxAQdH z`NHc`)4E1Hv{|q_*J}Q+-`%Wq{3EXXwB=2_wd>j%0-}1jr~b%M@aGWE8dpWwbO}T3J?URaP%l zigcyO8Sz>RO3R0ROG8B~rHFDx&)0I zy12cg!FB&56TYS;L*T_%q+(r%QI>NDsUM3Zfsc=QxI8{BDrzcdMZ*dlKXMcqw-sAhypmve5)S*a%KW%(TF;9m?!0brUYW@cufxIFmQgZGI8dk*lE zCr%=nNmDQ!;b+gBqQt}m^Ljnv=`EXCC=_MGBbTxN-FNAD=SlAKcowLtUI)MdFvbBO zUjusb$#>LSZ*%s7n}%1oCEeuQC|E+92FY#^lR-idY|~;gcgQBeMlKIC%NCFonW}56 zsk|~mYuB%)l89Ff4t&C%+VT|6ojJpvd-hk@`SKrGK{eojq5whwasV6-0MTSE@9L`H zUwM!pFBl6G5`_)>6XLnf=-SsT`gM1;NqM|qZO3Ms2EF3 zF~ub#9`D67zuZRgcpOE3AB1Blwqa@j&H*?IAkP7yzrVzZ#qKf2Pio=Y>mFxQ$vd2m zeQ7bBDsfT+w>!q@eY#+-lq#6Z)J^65Nt|=o0+`NbxIR-rkw3^>UYR^z zKLVjJbGtmkaUAHH_O9d5F2-0V0PXrkbnxIU0%#K-9MHIt^YZ&vZl=|dr%>VELPlZ* zcs8Wuoud7gjrLr2${y_Q^SIqE7ZbKc#2f|=HJ_*K)D+2F;amcdAd)2xTQy)=ro}mv zygvUa0R1&JH6F~q#C-NK0%J@nuG_f$%-M`Qk}yj}rfisLxK7N%vHnm?ILbtSGO z_5hHFhK8>91u_7{<8cPSE-j5t-}AL~PHlaY_l>tZaq!St=(@m$hif35iIV`17>2D1 zLAxEt`E!47-=mDNGD+qSB~z(|1w)5JHj)#Q&{bn9`#N!i_scus@e=%EnGH^9@ z<{IC$X_Ewi{r<(@JkojM#O~)`{Pl(Adz*WgE?d0&-h0>oc=ogy02cuFJp3{MZGm9m zvdith0AMqKI{Zd`A!wmt`4qH)(Bc{ZIb~ewE{Oj5LSr=eGX;ZgKwnO*`7p!F^Hx dFYQaizX0T|aI(`2;#vRz002ovPDHLkV1gQ{dtm?o literal 0 HcmV?d00001 diff --git a/imgs/icons/1317.png b/imgs/icons/1317@1x.png similarity index 100% rename from imgs/icons/1317.png rename to imgs/icons/1317@1x.png diff --git a/imgs/icons/1317@2x.png b/imgs/icons/1317@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bccab5976a2c36077362d9dcc68a98d39db3c204 GIT binary patch literal 2424 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1318.png b/imgs/icons/1318@1x.png similarity index 100% rename from imgs/icons/1318.png rename to imgs/icons/1318@1x.png diff --git a/imgs/icons/1318@2x.png b/imgs/icons/1318@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9c0bdd1a1d870c7f659d9d6b084799cbf028f481 GIT binary patch literal 2616 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 W(VgrjIVhF@00000e`yywn6{qTS+%dYa#pQ_!` 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1321.png b/imgs/icons/1321@1x.png similarity index 100% rename from imgs/icons/1321.png rename to imgs/icons/1321@1x.png diff --git a/imgs/icons/1321@2x.png b/imgs/icons/1321@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a9c68783de3b889530c949773db118c9e43ec543 GIT binary patch literal 2729 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1322.png b/imgs/icons/1322@1x.png similarity index 100% rename from imgs/icons/1322.png rename to imgs/icons/1322@1x.png diff --git a/imgs/icons/1322@2x.png b/imgs/icons/1322@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e96e1d965716648ea1c5986f573bfcb99f129aba GIT binary patch literal 2542 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1329.png b/imgs/icons/1329@1x.png similarity index 100% rename from imgs/icons/1329.png rename to imgs/icons/1329@1x.png diff --git a/imgs/icons/1329@2x.png b/imgs/icons/1329@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..304caaae707d903c5ad4d7e766bad6af49ff2b25 GIT binary patch literal 2715 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 Vvdgo|(t-d0002ovPDHLkV1fpqM412p literal 0 HcmV?d00001 diff --git a/imgs/icons/1330.png b/imgs/icons/1330@1x.png similarity index 100% rename from imgs/icons/1330.png rename to imgs/icons/1330@1x.png diff --git a/imgs/icons/1330@2x.png b/imgs/icons/1330@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..faff09e6dbdb015010e49a32ee0379c265a8116e GIT binary patch literal 2552 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 JPDHLkV1fhFObY-2 literal 0 HcmV?d00001 diff --git a/imgs/icons/1335.png b/imgs/icons/1335@1x.png similarity index 100% rename from imgs/icons/1335.png rename to imgs/icons/1335@1x.png diff --git a/imgs/icons/1335@2x.png b/imgs/icons/1335@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8169c41212085abc6299f09c8c0d0bcaf0cb5521 GIT binary patch literal 1759 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 YF969;KYG%M=>Px#07*qoM6N<$g0z^*Gynhq literal 0 HcmV?d00001 diff --git a/imgs/icons/1339.png b/imgs/icons/1339@1x.png similarity index 100% rename from imgs/icons/1339.png rename to imgs/icons/1339@1x.png diff --git a/imgs/icons/1339@2x.png b/imgs/icons/1339@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..363f925f0cc4b2d82a78eed9f48adfae8a056473 GIT binary patch literal 1950 zcmV;P2VwY$P)$G&FQYqJJy{6_H_+c*>xQizdF9EV4M7PqEKP$8rxRDG(CNK{Q&Td9<) z&96vJDJn9G6bE)8sY-(iA<8;#AqjB{4R(SZ@GEir!fWr-J3BL{KXwfmqTpg5>1wX7 zM(2F@oAdaFA!Q7}0U{27PoI?m)B#WvV+QVG1h7Vcl{J86mV(vP0DgZpfL7F$fzSa$ z6DSpnZjB27Xdn`P2(T^;%7H+(#Pl)4>~g6cfRP30vjM>X7%88P9f&D;tF6L4TlAbqJ)Y8wFb}`V|O^1tBD|D{v_>^oR-H%|K01BY_{Fw ziK!1)mFJ%MGzziHiohrk2cXY408Rk>00seGo(AzkoBy|0hXeZp8vW_?+n4s{X|TBf zWnf@Hreu!HFMu1n?(6(fAf_nx?hnqKF+MnV0b`Qw*}t8B=jTfRTVZal)dz_44uAn@ z1PsT0(ZnHuZ~4~NgINolfxs6-JUBL@WmK*Df%oriPi+UJ96))8XkI~ZBom8*$V~*U z1+dd8Uny}HJ-@WX&BOgYbou;6!(lQ1s%v1NrUH=50SghayLz5A005jZD)ad$R+Jw5 zJs@t}yta9XQ~7H~UV+r-e_PKOA2gd~(+fj=eWfly?f|6u0x`o05wVv5*$fC1{ryh; zxFrFW7{iB zzFSee^kh}-!_upV{}O-q?Af)S2ZPW4r>)Jx7z1N-C*eyy5D_~Bh=YLcdgG1s^8CUR zr(Qo%-G2U@zOJ@buv%>XMOj%NJ^A=|e&O+WjHae0!k2WpIh)t(6#$^Qxq0!C6R-cb zZsR7ZtgK8lzjl=NKlfbpp~}j?<3~jvYI6uh%Q=*|TTp__3qkTU}L^5JZt5 ze)*4@mPnXtHf=sO8i`~BAdkm0?@bCoa!zF}d%jKcn@JJfc^vTc?+l zETb)3wjHxrEC3*24ouw57!gUbEEhMow6t%luP1j&iMDLnGA%bJmp0UGct#Ke01zk% zf?<|uW=k8Pu~Ao5wQEyd-Sbn?STr0AvCPGbnLW*6bbj3VyZZY2$3#)ocO-oh031lp z8aBP|<>oW2y1H5ffL*(G?J6#I8~J(p+Uf@%)ZA`26%-T()<3lVej*YM9z3{pkqrxp zi2eELO3B**!Q;6J=3W>80JOHYYF@8bXlZGAya=c2T)KW{^7c-q|6OJsg!ImML>qOzSKw z(;Ig93xm-|tX;#0hlh=;ogK#V(vqr^6Pa&bkd~e_3Rmrm zOb#s?AGSLCrHJJkEMnm7H4e|6mBNt}91MU4z`&jD_15>P#!c$;$xfHk#G zq?U%H7Mxba1^{>fUgmbU0jSS5!}P?qTKCr<_}byAp}stGXwdln-kn6f7oF|@I9*}r zdVr$pux=J7DUm6jMz0nesWuwWI-?4VTLN+b3IG>?MX9wAKt}4^{3;;ruFf~pW$(oC z6&U-&iwAH;ti!f4NaJp!X+e=P`{0pNdO}*8%$-HCbq0JlejIz6xSm?64xgZ8tmgCol7A# z1~Ut4vK%zUd7Mx7=z;9`jq3V;CHA!PF#zZuK<(U&a0Bv%qSAmEny{(bL^Qz|ihTGK#_q%?ZkmOD_cfL{)lePt`tJ@n1EiJ7#YcsjER__ ziJa^RA+Ea&&1`6Cx|BcxG=Ed8(UdCZIgiNc!P4mQutxZK2S#}?=n%#tt{cAX@sKeZ k9W{V5y}{=rcC)A8f9RGhX6kXwfB*mh07*qoM6N<$f)S{rDF6Tf literal 0 HcmV?d00001 diff --git a/imgs/icons/1340.png b/imgs/icons/1340@1x.png similarity index 100% rename from imgs/icons/1340.png rename to imgs/icons/1340@1x.png diff --git a/imgs/icons/1340@2x.png b/imgs/icons/1340@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a66950fbb84d4c4760590ad4e93e9b49f12a1758 GIT binary patch literal 1772 zcmVFGLloB9g5GAY)kQSmQ%xI-r=sF71UOH*4Q>F}V z*g9=fD@{!OKv6p=v;l1BBB4e@ASI^j3R=U+mYA247dn>Zg~qWR+wt|i_t}RyA<%wc zfmC~>N9Vps=lst9JkN8^0saq-$+9fUvdq8ok)2MbF!Q~wtxf#O1}7p0fE_z_Eb*;V zZ~f$S>*-Yh(As*y82>jXHa)|prY6QY*WKseeGNpra&z*0`(AC_UHk0M+<$7xGXjXt z1;F$=d%a#pIw5_2THm$qt7vI)Cv{%``^lZ(-}$||+PY|4TbpSv0A?Bkz=+7a{l#xx z&CXk>EiOz`YhT!+?`hn#gNO`WU0v2ky&N+mon%>NjIl_`6Dwa{vAPUn17W@M(iKWc zNqu9~?|-tmI8zuL988$Yn3&E4`FHX!>%P5}3LK8;n}2+pJ{uV5y?OKIS|UpB>gtjn z6~vcy!kjJ_FY4}QnR(fVY}TajoH^lAwrt%hRaHOzkueh9X|vmJ1Bfujv_}E)MI&Nh z3`AtO+|%>^p?8i_^@a@-u9g^7lkERWau#CZ@{q8;1|4zjONie^hO%rqa^V*x}SS#Z$<00ssImmrDSE&D*xEYJBzA%IdN*ZC!bJ?57P4TH`PFemoKiWzK|s zWsi(Ac<>gvIK_PA4TyxTFHUofwIaGoXkwKEA{KL)7 z9W`}zsGx7!t~&6f1>rH?kYo^7q}>F;kC3RwxC{z1wB4A$T#v9i5_yIoG+ zB+K_e%tjUlfD3}4EiGAo#6RZSVU#3rfs@r@`D;z>vsQ0s=dg6rRrAb-!~}dE(3X9} zq5IO4)xWQ}}25&7k1qbwp66O+dZvxux|# z{|dX_iO_%M7q7P3LQ?Yh?Q_D&zX}lQ%@z|f73-1$$=G?#7>kjZkO%}MomuR6PyhFy z`zfx#R2)R(Fj5>OA?`K+rU}4&vFjGkP8LJW@{c-n;y=t!60`a)bto+I^N6%yi5MF5 z4H#_Z;gCN%ZYC+l$ITinD%#tDN<3H^viOor1*sHQBN0Hd0NApvVzhFhdE}cV$pW|9 zb2UZD=en99j1Y8+KUbR!ZBT_b~OIBHB8SAq+p&LX#p{h$ZA`4A?9P`ghRKY(Go z1;*l3BP%RQC2mPEMzv6%foo$i6}Hi!#tlIw0uu|Uk`ypTd6fJ6G+$M6!aEvh)GMTvn5TGzo6T^B;wK8QQBNmhXY0-B1a&;W) zAPzkA$(9j-CK+r?W~mUA?g;3&h@s&WgFY4!RFRVnK}0pXu9|dpo@R(42WtC%kG?;i z&JVpsPHikrvdo&$&bu+f1A#>0PRKspw=EjfN5UgIP^>xKZen+93jPat*Y6C(R$6!f O0000n+{sT2XAyu7?gPxL+I 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1343.png b/imgs/icons/1343@1x.png similarity index 100% rename from imgs/icons/1343.png rename to imgs/icons/1343@1x.png diff --git a/imgs/icons/1343@2x.png b/imgs/icons/1343@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fa769840088ae86557ca2551fe94ffd80f92bba7 GIT binary patch literal 1487 zcmV;=1u*)FP)!!6=gi_`#%LxQT|^et4!0N=Ba;mu zi+_+!7ftKT;#+)FG8K8+ZoUWjF4$HaWreo4y=Q-LJF(NcA?zey?sva??stCYch2{_ z7YMLdbUMyICn6U3yt|DHxMzJem*|Ui>#}*DrypZ%2Z$ILqn-jF@lSL*odf`>E7Zdq zt+pc#b@e~w!+|~KH2E%lpUa$X$ zZ?~Js0(S1+S+IWNMjDcl;h8;euJfDiTgL)`R;!ivGzLaQY{P~Py-H7>IJ6-G5a;ws}o+Kk{@>*OG`_W5s~EoI30|L zSnUOq?%3IKN*=- zSFH85g+)uVJ?3Bb(N}9$aHgvbIc>h)eL0S!XKl)$8Fb39|IOot#pY|*rtUpf=|~%^ z4R5$KM!LxvqU`e&_b3maG#JNR|w?p=F4N=4Yb{Rj5%oi%Gx z#IrPIPyk|ZFvi-)4|(zO>5H~)gESgR!hj@+)oOKT3?G)gXz}U-#+cBfN=ZbFh$Jc? z;!Jt@`Exau^yb@dxF%0|$9<^u5MNZd;eFtthWr=%SEw0dWH1<5GvK&-`SJn=NqeYF zEp zwCU3*O_S!C^4`0`k&`EUg)VTTAQY%JQ>r zp7(OKHPx)u+2W|bS|7!j#B5PpMxq8@JVB_sR3ovz1fYH2!NU<{Cy%$fcn@bbndsK_ z28xdCqwK9x`Fw()iED}*Ec!k+*0VN=tfs0eWlQlExZJKb5AT-R?e~Qy%NA_-20_GBQl*M0~U=qt1V=lAF^s8JR8eV4xk{34zBA7@35#k)3SZM}u8$et9nE0>>34=>UWv0)V_0e?j)klrj z&)>?AA353_TVrvtPAmj=CW%832ak>)4kv&n0Cxb?0k{gF9>6`(PX!HNh2)4=fN3xnssJKijE#pqN8a;05||VAfryGxC2F) z<(`^aZONpJRx?gsmig)C-#aAap(u67XVbrjUu*~fT`S6w*8%7|KqWH0P(DM#s6XHR`Z^?IJR#)Ipp<|R`mhKv z6N=O6WB|~uKiRq>5(*x<+3Wq&)~%ZlfDr0%xHSMCiZ___iMzo-&^jxpe;^Q41_s01 zcKl-3j@sH66t~;`Uuz#YQeME}za4h%-M^nczIbtR!}ni~9{S^;r|Dr zl#+e>_6hZ8PM_bo^QUTQ=>p|vE>~dh!GlGUNj@~VQ&n*6*au&4zSyj+d3H^Fb>(XM z>wRy0=ypKkrc`qe2};R5@_;}nrKGLPZJ zEiIhW>13RgGV}`)nQ9@Sl%lDr$-)c5UoKu~TKoGq4@gzpwxfK(g71B;qT*D2eZBM# z<%-OXS{VQ^NAoCzpbCdWb^+sMJA?9_k}0K>5JKq3r%#s`mXw@$>(E<8{XU=i(&jAz zO1O=s`MI4(Iy&gk@bD-w8^&0IMl5k^4(kXOn3ArF3S}lFrb{TYdd-^4L!rhW`5#D+B?2IZVy%TTV?YpAQe{IWSg^?~5nk=1$l@aF@HEV3h?~hqS zA(jFvp){ixrY$L}&&L5^>OcH= `XI58M^1rG*k;q!P>iLb|e&(;I!eeEkPH!5E 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1348.png b/imgs/icons/1348@1x.png similarity index 100% rename from imgs/icons/1348.png rename to imgs/icons/1348@1x.png diff --git a/imgs/icons/1348@2x.png b/imgs/icons/1348@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c6f2e5c1f35e1bebf6397cf6238226ba8ee30e06 GIT binary patch literal 1772 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 N002ovPDHLkV1h_$PWk`< literal 0 HcmV?d00001 diff --git a/imgs/icons/1351.png b/imgs/icons/1351@1x.png similarity index 100% rename from imgs/icons/1351.png rename to imgs/icons/1351@1x.png diff --git a/imgs/icons/1351@2x.png b/imgs/icons/1351@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ef0f91fcc0b24051fa23a714044f6eff3a6cba9e GIT binary patch literal 1255 zcmV!`3uvfS72S;DdoEMw2c2WQaTv z0?}y1n3%XFQLt*cmTC|q7;Wr=g<1nr_SW5Yud}neGoKHPk&w2OSU?m0$vn)=nR9;U zf4=WKbAWsLpNQ@@0B~0!n2ChAqYwlJ0Wj^~yvBEA_tpu;B!2s$D*k9~-ChU+d%fbe z4sM755c^)SEh#HKQ)?2uqj4E~-+KLN0PuM{(rqX30s;VDT~fVhZgElKInR^a*>&Rg z_V)G}%q+ZKuguJZ+ZmhlzdLm*&&+FFE?3otXEuDcbLY-V05IH`c=0uhrJkN1r`z3dynfY6{-yip@ao3K z=)o^P&oFb90dUKf$m3~5*E-jU2pcy&?UzAfQI1AqO3Rj(hncyrwY3!> z0yEQi({$XHF?&UAZM(E>+m>fp*!EqzeA%k!vsda@x%Zi6vm$qQ@0qip*aA$&G`Cv? zP#~h4LX67+03g~yM3irC-duR8rG-M_@S#{NT9;O`KfSPNW7RjBy0ymr=|L>Zd56>HL`9M9bl-tP{dvcv zd>q5)g=!A@{eGR93u8fCzXZa#*D;Ru^8n^g)pYCk#}98;65)K^(s{Yul|TB@Nz)lc z5}g)R?PZ(2Z@@M?6NyB)si{f3nF9HdMC$1HYMvE2 zs(a*qt+;%ZRhxcsiR0HFCWk@_C)8Bl9E&E3hl2s6QYr%@2Bx@SfWK#70$>(^nE=WF zI1O0Q)YQa?oI|2~+4Mv>@LNTZ=q;X6E$8wAy7NBWT2|>2N@5lu%FX72OP-vvjOFBw zd8-+-jseI5m=0hLfJy_%4nR)ePc0NpXti@nF4$A?i)z51B}pT&#QLNXtFRE|VuO~! z(10Cs+U#C*PPBPEBi4wK9u@#(00aPB0-zc$R0CKFp!l%Am-3lZA(f1#2UBV=?Z41R zS5K#eJ}6OMC6Nf`m3Uksohd&Y$)5Dvg{Q4;#6TP?3pB%t41frL3d4oO{{8RAAA4>15qB92_+ZMgw5uA_E`;AcSkN zpjT8h6n1wWO253aF<6ul-SJ#dN$PsJuBzm;NTw9ij6o%xd%$H&4a9@GYi2)>RvB+r z2d@990ALsZy1KeVLqmf;98=Slc~ko2z)(udnfeQo%vp&zIFu|OQgWHRgOo^Do3gqM z+GtsDtGm}fKOtT)!z(T>n{uQC>+SRG zdoP--#buNo3UD}kSv+B#tDn5u%kFd2nA+M#EIt!1W4i_e#Q%{)%sq`;e*uvP7VOqa RK7RlJ002ovPDHLkV1lTNR)qin literal 0 HcmV?d00001 diff --git a/imgs/icons/1352.png b/imgs/icons/1352@1x.png similarity index 100% rename from imgs/icons/1352.png rename to imgs/icons/1352@1x.png diff --git a/imgs/icons/1352@2x.png b/imgs/icons/1352@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..94f6496bf773c2ce56b7e61f765530c7a27d6aa9 GIT binary patch literal 1361 zcmV-X1+MyuP)EiiFgCKwSY#Dp(&+O_S$yuv$MN1pAX#z0^34koAAItnTI)Z=A7U8 zpYJ>00Uqh$7BQQ{A%KX3h|k6h;-pg(F+0F*uwfpcyVTXC77;NgW9qB}w6_zt155&h zOJ}YW%J~JR~?a@kjP?u)Pg_!I5Ksgv&A`*xQSk=|jm2{i7+jJR=+ z+KKpzvu902#MZp=*4r!UYEuUf9-weI{3QTzJ}XDVZ4nV`A`+ME*kKTKI=r%R<7ZV> zi|O>~Gf5(P!D6vgty{nDyY1VzS5EYw6%ZSd0Du#bq50Y7qYaG>^mor+-sYB;ksp3M z7$c&pG{Ceid7vMhjHyIKj4^##*+NT0<7)i!+fmDNEiE}CBcrLd&23K;5$ova02l*J zBPJfWBT+lAtNTgVvSstD#7%o{3=J8zWc=ppM(ZBEsF%f_o?WGn?6h)OSZPYo_e>fjd{G@L!+Z3^-(!~@y*vZRsE_e@7G#a?d(7DM}h9x zu~1MH6(UNo`yAU33;;kQBDSfu^}?>s&b4||)`@NHAAbJK%9V%BCNnB>Oy~L!92!Vw z&q)RmxXcy3N0KCsh*DEQ+_?oj{jOpBD4tR_K>v*r?Kpe<$W}SzP1Y}4lt|pX-X9I? z&dUNnX;73tGG+A-n-<1=J|Efb_Ka2ZP6r5p03aJcDh(sw^_?6JhfqDY+EnBFS~z_8 z=S4;&SpAB})x7dXqgs6JsqBA#&-Hj@3MrAKesm<17jU}}i6{gxmSJK1t_dbqUjSeM zfcXGQ0GQLT+-|oMe7y*jFE0*xT~{h{cwgSUrD7tE%wFEn~`OYD@u$0dN7h0YFK+uoS>D0C`8GK9-C{QjzdT)E`mY zQR!+wyLB$YHNU`;3gaPnQVs@XrV&d9eDN+Ri`$&ejDa{+7N}__VgP&qD$*{5_V3>t zT=T)!P>zr_kTBr9OEv3Lr;Y~==I%nCZ8mFhQbZ(%xu$rt3v)GHz&&XeOa?&dhou2x z06Z9v1+Ai@DYf(Dq3C-JE$*Bc?+GT{a#+*KHAP`&gP@BLo9CCKi6<_K= zrU1O30}~(WLOZ{#< z-{ted7w_ndc_l19<|1!=h`(qo)4Fc;k+rvonA16P@XnqKhd%(yh?(iXs0RW-%opt&*1X*H z>4r6&OLlQ@`=NCJ!0a9|b&sP*EyOMt1fqF^ld6sDemQqs+4b!SMX(fa*|_@E8G`Vc z?sh*th)2rha)|)&@%xK+EO*Z2mM=Hy2M+A<0if2_RuKS=HwZO0HX69gZCtWs_V>-r zO?>%s2L}Ry6#&rD(P01pqVX*W0RUF5+BczjQS+76tKa5GG}_C|Rsg84uV08!+WB8= z>C&YV0IdIH{j%!n>9Nfo4>R+Dx`w)Myq|k>fk5B|0LZ6heDts$R=D0evT)G?-m`D7 z{@&WP{L`u9x4zo$o&?~D+HG*<-EYE_j zRaoMF%Nb8MF$(`v{JjP=07LnC5rA0$X6At=0+5JEC^28xgK12tEh#!Wl?U6kbW&sn zbS`3)&6IRfB|&3*BJqbgrQI_*oq)&f9uoiqkO4#h+y#)!gFFvlPTmz$XQ&hE{UO|o3aq!9=NBu}B}DBOm69xMqUlXqk?fXciZ zm-e5$67arMmDQ|<{y`FY=vKs5p&nHv$FxdaR#}fkQmUec?PgOltE95hU0Eluchn** z1fc@B4IrEcZ~#!cyW6#&=Qbpo>?QqVR4)ujHZ>c**)PiHt(Fq2EvJcqmX52c8ZE6X zh3p7}QMd@6hW{mbWA=GuxYlw`6>HJKd>OPUF+52Wuu7s+ORUozeP>kWjG zuf>ijuGto(^F1jsuK0~+O^^lIU^kiiVGtDUPBi=a z*T-axu(v#}12pU%W-xlUZZjHeF$%?cNLPy_`vfzK=_~=jcN=%7y(s+UPYUo4F@xZ9 r3F!7Q;C^t?>tz~cM}4MedZ<4Ehi@~RR73mt00000NkvXXu0mjf1_WHN literal 0 HcmV?d00001 diff --git a/imgs/icons/1356.png b/imgs/icons/1356@1x.png similarity index 100% rename from imgs/icons/1356.png rename to imgs/icons/1356@1x.png diff --git a/imgs/icons/1356@2x.png b/imgs/icons/1356@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ec6f5a426c42aeb6f212256b03c782fb9e07d022 GIT binary patch literal 2299 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1358.png b/imgs/icons/1358@1x.png similarity index 100% rename from imgs/icons/1358.png rename to imgs/icons/1358@1x.png diff --git a/imgs/icons/1358@2x.png b/imgs/icons/1358@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1c08d659a9018872467763d9e6dbe15f825484a2 GIT binary patch literal 1797 zcmV+g2m1JlP)!edPk;xzu{SUYMAhOXEW!zQAk@0!gvaQJZxB(uco(@;gsF z>lefLpyMM1ftyTBc#8^H!HMZ(EQp77Mk%`?hra_pLNIZZ)*Dw8-mK z4*-gd$eWs)6cy#=(dS-xscgsYZ=Kv*UA6VSj*l@qF=4)W`O@SIM~^<8oR%5mq!?dp z%IAg#`e;j@5%&CiW}CLMp=9;eXMXata>m#YfY^OG(9qDpx3sjx_SM&K=d{{)xFpTi z#i$(Z>mQIWe$=t2@%uk`IxSrsw`qpZ+u=EF-tFqL}0#IuvN zwY8Z5u-2|v&jHrf)+U*E?ldRqv;XW31hy}QBQb|UpPB)nh z8FHQ>gDc6&LifNB_8n@V1*c0^tJQq2E~TreveI5zS;@7mu@2S}zyMHwN!eD7Hnm+8 z#cc&9Q_N|1DE@Zk5-KaJkZ&qt8QLUfTM9wYYMICwbUaT^pPya4c9Vw3#zIRNth z{ohL-Ul{Dl&f8ML7?TV0^SCH+sMzrh7_zdFV#vb6%rxr1T}3Hs4ZZrC*I4J(%Mh2B zQMY$5c2|_KKfLqq`A}GVeyYEJ#^G=ffGAdvYr2>03lT5?o!u7>_(=#)$yS%t_^9ITuEJJc~3j6u7-?G2FcZN-lkF%QUYM8P!CoF_VKue;DCBjsMf*ZfEeLkMKd6-?Ndq7itG8wVzytsf z09sD~0l)*f#!Q|_<~hd1zF>d;N!g8>%%8kuA;7P zpA`1{{&d%3=_)NP)p|T0HZ?UB^ZWf%0PX;=VfDrI4{UT9aYQ5qg2B@(k>$rGx^MG- z_adG-@?AbNBLnU2?UxzRXThbQx%2upM^;*@DeUw2cip+&S6p1Ivs$goHk)le8jX%( zHFI&zDmM@S0C?_=HxkYtZ#}0`tM~4ytcr!j&~$KV$?A12Ug^GlJKzljM5U7BS5{;N z0G5!Dz#@^z41iIrW**&W{>{AE7=V((V)G-B$a2cu%*<3tVd0WerScCB4o<5LhNY0h zp#(rGm5L9C!$GX({jVIGekp$eH8nK~07(FnGcqzXh@WDc5dPok1OSY!b|oS(#@784 n#POB<3-0av@7wt`{@?I-p{*w*oeS++00000NkvXXu0mjfBT9c{ literal 0 HcmV?d00001 diff --git a/imgs/icons/1359.png b/imgs/icons/1359@1x.png similarity index 100% rename from imgs/icons/1359.png rename to imgs/icons/1359@1x.png diff --git a/imgs/icons/1359@2x.png b/imgs/icons/1359@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..72c6ba1aabde1683bcce199d4a4253eb4444419f GIT binary patch literal 2284 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 M07*qoM6N<$g071b4*&oF literal 0 HcmV?d00001 diff --git a/imgs/icons/1361.png b/imgs/icons/1361@1x.png similarity index 100% rename from imgs/icons/1361.png rename to imgs/icons/1361@1x.png diff --git a/imgs/icons/1361@2x.png b/imgs/icons/1361@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0c7d711cd849339238c74b8c2caa20add50deeca GIT binary patch literal 2341 zcmV+=3EK9FP)jr(;#5 zRHsTUIx=NZTQLGwtB4GOlr2GmCJ?f`JhHr(m*wsE-qSzgSYm=u$1`*0&OPVcb3VW2 zeD68%C5i+gt5Ltqw--10g=#hG3uDNs0p()Gf8~%0@X#1azlynr(a9Q=$ln-uB8}bB zMt8AIAoEnTBYl+HG#X1C7*RRWN;8e+0AWgcuIQvo0CJT1v|(?xsLu^jzHNZO!8HAV zF$$<$V8`Lpajy^4>jEP-(#^6E^dGwLxnKtHCSZkX1_E0Vv#8568Aeu(VYw@oAgxj`+IM@&+ zXbyQoYC|rOH)r84uu=F-7hxB~<3nj70a0MbeS?o&x8z<6?$N7ZXpr1wOb~Pv9j(o1$-_MeB+glTGR{_nAp^#h@fO4S$s)Fu@0y!PqRM4k_zP$q5 z8zGjuA%E&r^y-olXH`{|qy27Iks?sUIXmwB7LM!}#1RUJz9fnOkup#eV3HfjM645s zumCyZ5CA(BMWLZVazeI4dpq1hSa}l)9VjY@3{a#*nF^xeB0L}+4Wwd%ROV!2F-dab zI0j-CR$Y`Xu?>@REUT%i(k#nDO6i+5_tv>HRz9})funaX7_@|PC{YxPLb4yCNrlu2 zNR1{!@TpdJOvf4O#$IkGYjc=y&dMY9agv1-yflRb%VL7<=>&UjImz=9Z6 z*UwijzH$D7RSq**9{%e?5NO2K+GMsF)|N60tKU*LssmcR9QLg;ioqatlzf7+PwRNbnjqPN-3qZ47uvEA~|p2J?T5A zf#QKYS%p?rgCc~G8M))DTe^EZ z;m)&Gb=7Rm=XTK(OEGXZh*MLTc1gLK>G3Eom*?>(I=M=SJ%)U@Mw3#GP{rW@Sx8|Z zOYK+^WQL9@fbnh=CL?}xV3R84K4+P|uUtP+EA=cdkyMg1kqA*EiZfHg>98^PrW-|0 zexa3-muC;>XWlENEEHG!4IzY-QVv^lxN8o9bxx+c?1;F9bv#O^cvc0Pc%nsH;l12l z?bx)_cy3>YZO6&Yq)mgAVo_!#DGIj{tFJ{@?TV0wrFeYhnOfF{cV7N;?W)zkJ1B%W z$~i(cA~wpW0J?(mdNbB+FTP!sZ1mZzSlU3e|K#SGiD1B1;S`qp@If>)4yuN!>6ExM z>IO~f4t`vJ6a{e__=EeJh^VU7}Sli*FAFaP{&6FJ{iqtfrrfizwQ4AAL z)D*{C&r(`Ek=|qvEnO)>NB5J~;wTO~!Hxv0*Q}y?$s*o<?kzT!7Cd zNF_|XUI(T56`bm-XU3fG@V%KgaqXN61_%1^=;)=s*mvK{R1x3eWslxz- zAM1KJ9M;Kux(`=cqM}1fTRc^+$CXtZ{xYNc!yOf;dIKofgoTGx0^-7p-I+~8;0$-% za6A6hk09JR^mcv1;Sc}KA0K&yP`IC@We){Ikw9l8RR^+>K?Xk`0Tz?OXndqqw9v(RLa$VF{@VGTlBLnK=YP9gLlF84DIKL%4HD#v)kh6#v+| zg;+EpJNsxmb2i)nvITetH~_>y6NOJzYDfbt3oHw1nn)?NSN~P})0In?XNEgF3r?Rr z8OqGeN@wI37}+^lrfDTiMA~!+&20MkBlGze)|&%o>#W9)-k05-EixSLlbw-NZ%bFA zP9XPd8ZQ8^10euSN-2a8vN6=?edVp%IRm|YIa4N279O8BP@G?^z4q3Qq7_S)fB3+o zHTltCe`M?K7t@(z$6RCDBr+1jvMiiVH*p3DC(g2UXDyXu3n<7h#Nl#V<>eEUx8AD@ z={9F=GHL8G3|fZmIw6Dv*z~7OgZ1_G$4|Gm7GL@8EAnT~o;7Fpz`NP)f#88)d;8ff z+h3mLHf@g%MiO1YlgBiYXboNY-n zz8~lqDL12(UHjg>{`9G)tAgzvMp;>zQaSlj`Rs-bJD*;+Zm&Qf0f{AMFypfv8agB$ z5*gs>hl#+^L#TQfnbqECg3t;&#Z5k3z1dI4Y00000 LNkvXXu0mjfOSWTx literal 0 HcmV?d00001 diff --git a/imgs/icons/1362.png b/imgs/icons/1362@1x.png similarity index 100% rename from imgs/icons/1362.png rename to imgs/icons/1362@1x.png diff --git a/imgs/icons/1362@2x.png b/imgs/icons/1362@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3516b8e88ebd65f437d2b5c977c30c48cc4463c4 GIT binary patch literal 2326 zcmV+x3F-EUP)Vd_j_jNb^C`+L<5vS#UGXW zNk=ofn$h>0Gc)I$3;bXI1EL6r8G3pI02Bb3kI!5mXGD8?dIW^S?7xBf*qhe$T-Tb* zq&xLWMG+)uReDl%Oh~&wD&B zPbZPY&gj%s8o;4gEG7W>qyPlbb!i5PnMDs1qJ^{|xt-Gb>(-O2d#+|3?H$M`lg=~8 z2AxOy5A%_UDD7Fdws_N~P0~B>9@j=A6E4FtYycP@9_Als{sDj<{;*Ko>ri%8Ogy~x z^MRJND{;%MTbQpt1X-3)Qh=CVgdFnn_O&a?o3HG1zxL+e6@l4gaA;7O7#|mW!8&#+ z#vcUWoJR3Fb6&~hZ(>-y^|sAzjUGQ}mk(2;#8c z#-B42P+ba2)J80yMkHyRL@B{G9gAw3;-#|0Qv7f@mal;+- z)Hp3fY#ljJO93SkC~SZkuw@H$Ni|Xp4m89n2>AW5IYIxyBc!RJ4#i@T=(=95>$(Gg z37`VNm_O(9$HaW_3mF(6Z#G-)UGiIM?DbY};PC46f-Z~~p%e@VS`nsQL`6_h@dB#D z!V+7-@}_1q*3}^yPa>Jj(2P2nd!pZ(aINpB* zMxg|c+lLyT7uRgukaZ}MdulRr^yyzd`EyYeCBrZb07U@Brly*+lar|#%onMD>jhVB z`oa~_c$79>|DRx%5%R7N(LMshj^YEt-XgHU9J$0x>d z;J^V=D3|%@@Gx&*-p)F^uIN^v6*pgd`IozvFIalhAD+G;k;?Ae_SBD_-`KoS@9pii z$!&Mv-4>rozBDmC(dhPi5`LG*5v&Q;l!_{%Gt(?KGs_C)5)8}a+_C}KaJf8iJDpGz zClpCWxl}|x8OO@bm1ILtHzv2 zD&YjMO%qyK!-9r-v@Ki8kM#H3S6{V`RrCtt$s`soS>oDy`*#`yk=bgwz(h$hfB4Wt zET@t?6rb;nzP`Sw&=Fpf9y;2eh9ey+)mcjVgoVkG(=siKa7$h+SlDbXTGR}u+es+r zR!j3jZW)%4FXk3+UeQ#lC^B@;2IhVOOAyNVy=r^ugEUk1rNYbhTCrNGHY=iF%T;Jz-T+aM zxXYnfndB^qOwSNi(~wFgAW%j{Md3_5OH@^35JeD5jo$6|74N$JcCWLlnq=eWaO}ul z{B-9|q|$j}LW#^~b8kn}`riP17JxA~Oj7Xn-+5{hyRlxMP}WjIXfX<;Ro8f%D2iT} z+kx}kGL60L^15RnvxD2j{|r_P{IC{WQ>{}dTK*j*i37Sh!WFJvZ3@Ai9f z^4%d!rHp~GXz3NeJ_%qHz&L=S0Dxlygfq_ZWz5xKYNeI& z8MV{x_H;0Tc{Qyf42_P#@AYD7TMGon;1=labS(AEUtV~wZp)UNLetYxixNUJ=^RPq zjq!7{l@|oqhh!JdluF3VmuEiL3--eVVCH}dI0&|eDf;?mO1T^ba);&%R*mlS1>9Bs zRSv~@nM3wnMj2bJY89VTpwFI6p=07CePnc!1{Tof198yg!PfTIDx wN>LP70SMqjCh*T%thKdO#@s~okvp(|0V4q*)Z?AWumAu607*qoM6N<$f(QX#v;Y7A literal 0 HcmV?d00001 diff --git a/imgs/icons/1363.png b/imgs/icons/1363@1x.png similarity index 100% rename from imgs/icons/1363.png rename to imgs/icons/1363@1x.png diff --git a/imgs/icons/1363@2x.png b/imgs/icons/1363@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1a13cab32afd608e13122a32fc354c3c915f6166 GIT binary patch literal 2364 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 IM6N<$g2&rm{r~^~ literal 0 HcmV?d00001 diff --git a/imgs/icons/1365.png b/imgs/icons/1365@1x.png similarity index 100% rename from imgs/icons/1365.png rename to imgs/icons/1365@1x.png diff --git a/imgs/icons/1365@2x.png b/imgs/icons/1365@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fd34582bab5af4957d027cf5aa25c4bf945efb02 GIT binary patch literal 2490 zcmV;r2}SmaP)pB!_5o)8x zcj;JdOd?ku5J;LpNJ8G5O?Ee%ec#9FAA}Z35bQY9@64S$_uO;l_xb(K z@BGd=!2em~Mmt)nEnHtoAE`s#x7xFi1(V4{tyZh_gVTLa5quAat{il||CCayD%xB0 zR9$18;0yV{FbqOc2yU;NCYlmSf+?YUOTm^803a_fk1a1Rm;VO`t_@g5%fe>dJA)ci zj5PA*NNSpAq7#-(xb)neM6*}Vp#`rL`~{g1E<@a?0q#aRH4Zh>UR&>wyT@%5AW&At z5>XTpl0<|X^l1939(LQngSpFdlZ66db$MZVS6*2jTb_UYNHEvyKq+Nz;&0-08XeCY zc|IX6fu}*rYqeTl78TwU8_7?dk;-2&!35zmf*ycw3#8{|A0=FcBmswfXDs1AU1mA?Tq=)yu zytj1J2L0Xulv0imB2h}S0sQ3IBFlP*ZAk6)`zWhoiLKp+u-Hf(tg3)k&4SVCpb8hz zexXB_MHHXyk5$VXj=`Mr< zK|&Y?F<}vS<&{nFI6a6=j>U*S0E0%2NR5$|IFYv3o|mG+Bdit06)pfpIXO98O-;?1 zS}_KIQpy5Qs3_h8V0Wi|5C*m2Pnw#cVFeW^&w``ChIPNhkuUxUL!1^63Bm*pIs)h; z%}}WY!U`OP%qcyMwip1Y@zjhP?J)r50P+c;4u?Z_QM$2e|NbTCTbgfojf}{lkjPSo zL36`tw46JK>GNly=}5g}QDL8B#vP-eJ`qxPmgWFZSzSJ80+ z@(Gbgr(h4Iv}@4ee4@0pjEOay7<>O9BBLVE+ISZC6g-ILGp8X#MldLX5Q4O+Nw7PH zaQw(|s0D!p`~eL2^n?R2*45Ps0Gt5i?*yo>uI2#9Ua$Aw?g9JGtn6&OHYEdUwH8A| z4j9AqaJk*6to$6!t*1a30)`<_0u+P+Kq*AmFa(_rG#CVx6ahd4cs>lG$d5t#bUF%s9w=FMHqtlUzladjc5e35(Js2YgMJFN7JQ3^G zJ&nhI^%!o?x)W!}bU4PsDr_!axOQ~6e(l zbg|Oi)FKm)TVA(ey=?Dmr{y2KE{pyk-S~WA#d~iT|Kk0(x6YU}(VXu0hui@AFDD`c z09jdC5&)7IZ!S7od9XS;B{?*2;rz0#Pj4(DAn??ASV1jBs`YCA_PLAMCtrM)THgEv z=4Q`CSkXYunTj#PX*4)n?KYxU6KifdE=gcFX5f2lsm7}*7t}dLM9QjPe?!Q`! zw*PKHY)WjuVN^#rLi4m{LjkI$#^LLo2@^)&Jpdx^T>jIp_Lin)7h76-Syq*B z%iMWSWKPSB?d$HAJ1=%>UVQ1L3|~mnjSP0s*)ym5C&cKqhOlrnpRL2o&p(G?zz>dB z;cTm;s()DABFplzF#wkjl?!v1uF)FwIeW@V9|6E_-nRYI%$ZrsPSv0GRhE~8T3T9L zZ<{y2oyq}u$Zn6)M?`U=&%Lntk6TE3YBKcUvBYJ+fcj$x@#^Ny7;?BF5p}!G8LaQN zdA|UZ!vM~YDa8YsnFIi4-8P$B|M=RplDn5IIC_BY_|3!_E4j-$|uVknAoih0hy+!$WG%_c-i4D@r~t z0hA5^J^<}1l}c`EIR0*uIebxXZ;#9n!Z;nn#O{_lF4%&*IVeX|Iy8H|Z~_o^|;*tSW2nFu&nZ8VIgO=TIHQP zckPk`jz#hDCQhT%$!X~+%$GF{!)n2B#wUduCGVvQ_}`2lUjzWXBWK~V7<2rr1C@I# ze8a=_EXRQ=3KT`T#xQUI5~rs|J-l>r_9N!_Nb{ckhuglcZTloB<5K`l0D@N=8dsE3 za=AcV@ja&7)eSK*F?ze*ZU!(nDNdK&Y4f%LI0fJ|E^Witq#q-T#lqy|lmd;kCd07*qoM6N<$ Ef>*n!761SM literal 0 HcmV?d00001 diff --git a/imgs/icons/1366.png b/imgs/icons/1366@1x.png similarity index 100% rename from imgs/icons/1366.png rename to imgs/icons/1366@1x.png diff --git a/imgs/icons/1366@2x.png b/imgs/icons/1366@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0952269654c6e94ea97beeb5e97be3e8e7e9d912 GIT binary patch literal 2061 zcmV+o2=e!dP)wWARs~nK_Ur7PW;A{ebzSYUa$fbtZV=PtXj%ieqX2a?ewMvbxkr{Bz-IdjgL z^ZVxao!|F67x+KE1fJ)aqM{-e0Qq0Uzb7cAl=-hkrj!x@SiW{`+>z4K<#)}qlWR{5 zJkK)#@N{bGt8eW;;BvVIDhPtUr>`%0a*tlG=blu20sv=BCf~)YR*wGqt+(kVWBs_X z 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 Hu0mjf4ZXyN literal 0 HcmV?d00001 diff --git a/imgs/icons/1368.png b/imgs/icons/1368@1x.png similarity index 100% rename from imgs/icons/1368.png rename to imgs/icons/1368@1x.png diff --git a/imgs/icons/1368@2x.png b/imgs/icons/1368@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9968ee00e4b02778f5cf174e58137e8e3b6e9e54 GIT binary patch literal 2862 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 M07*qoM6N<$g2Sn&6#xJL literal 0 HcmV?d00001 diff --git a/imgs/icons/1369.png b/imgs/icons/1369@1x.png similarity index 100% rename from imgs/icons/1369.png rename to imgs/icons/1369@1x.png diff --git a/imgs/icons/1369@2x.png b/imgs/icons/1369@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d493ed617c6730fe198cf45552520d01f35c2874 GIT binary patch literal 2369 zcmV-H3BLA;P)N7uGDHrGBNr4&L4c`-Va%K=bT zRV4tBEn1M=#-2<0;_uBvnbW1tg1Wyi42FsqIlX=>GyipN29?5{r#bX42M|15PKx&$% z05O}@+&FgZSgonKSyszxrLC=PC^+CVJ-+6N>{niWZTu6DE&o%muQzey-(Hm&V>8w9 zx!JN{a)B*9GwUTF36T7sP<(A6QWOPOTbrz_JEYpJ_61KXPw$aZil)YfuCCyKZ1~Js zv}M~iONYB#X6HB*lRX|aF&Dn;%Myv)%_tgTbg+%_fmsG{f-Dj<;o+f2&AzZ6u?+2K%Sa$U6j)lWW^=nDj1sXKD?y6#^0v<;g!;c(cMWd$K2 z2K)rVChopxHUZZW>i5-?rtc63+tnyQX45AZOvzCmsIIP7gb;dF)#6#DrPH5iX?N*G zrNu&+gnaPfWpdGys%3?RQ%m;j+QaN?6BRYdfv%~PU!6|Y%oSXD_kXy4j+MG&8ZKvK z2;je?J!=J000&_F3V=0h)=0pRUr_M7O`A8Xr%s=e>6sa#;nNdhU}#9JTKOwoRTSy( z^e|0ieM!FTMa!Sy`zHA>^V( zi>CYhftg;vN0yb9DOX=J1CwfIN?rlk=^4uL#s(1+2GCWE@o~(4=yCc(KD5v_qR~2P z-tvf)L_t=f76L?hHTp=XlNqiZy+DBB4EZVtnwpw2D{h-F@~2FYbFM8HsxT883}Lg` z062K~FlZWzVq(DGi=w78{l*vRb3H{|ZaqRq84O8!hvWbtH#~*S0x9OiL`NtT8jM6D zq4RQ}wzgJ+;PmN}XA%+;^lrCD960)cbal7j>O8~l4|X#c45FhlXh@=`ua}rXq47i= zT3jL)>$MD?J;;DJqSWiz_*1VEKvJK)Jdy-x9%6b96CTDsJ&1OlTH4aBxJB8O@MgO3b9UWa3 zP_1P%r{;MiB};v$4XwwWDH{`;qEsRYOH6{WSxX~3!e6mL|KkLw)JGl zaqlCK#apZv-5u%|Mw2PFcJ*pC5EA!Tl9Jx3t*z}C#eweb7X*N-{Y=C5JqJZ*YJ#E7 z6V($PNuuR5T`bJgXwjpTFUZG`dlfytD1B{S+-@JGc{*qN4f5EL1Hygk%!#f;G(Y;n zpKqEo|Bk%fJN_ZPKA+gX?;~k6Tg6~+UvacQm=Cx|0oa?iR{{(TMxDN}B^vJ0scY^u z7APh11Dl|G(X`$7Ynt|ENYyd1 zD8r%|!x3a>cT^0;z@#WLr0d%46Qm(KSy%miv~At7>osW>zt70XRIPTqmOn99d3W#e zfW;JFKNyQN#DaLv&AbZ%hyk&`fQgWH@}G@tdbEh8@dk8N0SQ`yQ8%O*Fq{q%E=iUR z%Wt67@yEKin_AkFZvM`7OUGt7vOYXe-{KFkBdqmz0R870zgSVy?4$#8Z%pRhecwY? zWFfDKLr$^a&o=Txo}IY^KP6L2L~3ek98dr(%}KYv2&@F=0~uV#BBa=CWKN3b`VI5g z_sCQ{Ic9zXTmhhr&LuH!+&C*(vw$L_(O3+ma+!-T0CFQ4k(J!A|6ZmF0YX6K@cggH nuTH;eety20;Thm-=feL1N6PwK%V!Qy00000NkvXXu0mjfvqXW% literal 0 HcmV?d00001 diff --git a/imgs/icons/1370.png b/imgs/icons/1370@1x.png similarity index 100% rename from imgs/icons/1370.png rename to imgs/icons/1370@1x.png diff --git a/imgs/icons/1370@2x.png b/imgs/icons/1370@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..900aff1c6beab97dfbcd99fb55b3174afce767f6 GIT binary patch literal 2621 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1377.png b/imgs/icons/1377@1x.png similarity index 100% rename from imgs/icons/1377.png rename to imgs/icons/1377@1x.png diff --git a/imgs/icons/1377@2x.png b/imgs/icons/1377@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..00f5db624dc9a47b51c0485b0cc1890e701a45dd GIT binary patch literal 2251 zcmV;+2sHPJP)^p;8Gi1!Oy-+?Cdp(Efh24pCJ-tdzyw4<5(Pyk1r?}>7MEf@pxxAg)>f$tRC-R~ z2c8zKV1jalpeR`kBq0lvCXuitB$AM2vQ9F4=38!m5Zb6z+n)NP=lGm+&;4<~@4nA@ z-{*br`vTuB$oTpm|HrV~?Tp=S=RoN{<4Hka1B)DR0GRL6`qwYF*;tG-Q87FOwE#+K z7^Ma5|Je3*8VnbJsmvY#S-1@sv_SLBVwr zc8nnIXO98d3m{%otKv@Sh%Ab@B5LeqO`;{=pL!JvZjvrRHZTEYRk&hb_*sC zMPN!)!uu~jy5nb+m6iRcPMz}Y+__Vka6kRe2-ximcJ5R*Y}=IW8uFjaOive#yh#>V zfjw6GF*;i=BHE}A(B)S5Xq0Sz`>{9qy3=*C&o#2>xwX&K_=A4jVY@4_xUi@ffM~bd znF)lxl>iGsHpg4j=Pp`M6cKJoT(amkIm#5phU;T!Q|me9OmPK0_Tdq3)%sj~(r|Wc zS$=L<@6{gfx_PVD)SRwO=o;+Lj!lfYdw$xy>L(s~cr5_WH+kYqBFoCkVhU_FmSxFv zV<9n-1CcsA``C>1>9}^Snb=k?W_Rz|#R*mmWkU>o`Ipug6?XBR#? zc?SFcvL8=v-V6jOoK7d^r_bcb-4S^7&)evI3CqdFx@MM9iR9@mk1$nL^-5|+OuRxt z91aJ)NyxzfAPmD$#K#K(gx<-|U;FN~nX?`W1Ba7)4znM9@ByMCjksmjEL2vW#hO)l z`0R2Ot`2pgw)!k|77i$L;kB1uB?sNd;qUTdOb(&xauX{U!Q7j-I5R23Xapb;LcXR0 zE+;34EiW&ZGE(B#1Oma7`E%z;cP(AP9{uPTIp6BQz!#TrV9!1zCQU_rass>zQ0)C2 zy%)O>^ah~{ve2wB!L61sdb$;o%Zk%=Rj6;MM_%p{SPgoWrzNBXK-6lr5C{Yq0B!(Y z019WdS}6dKFy1RGGCgwq7{iGSR;|7h?!Yi&Ora1zCE1xM zX)FUd5rD9}53{Fc;?nsG*se5JY1FHa!10dTTmRb)p=C zfu|kqtt8x_heu**M6{W-Uu^r(GweShiXsnS2tYM}&M$cY0Svia?g5VHaK8B(?dtO) zB0Lf)NeL*esY1@;T-ffjp}6`i1_npa+U>`M%K;1|Qe1U)<8-eBL$M(Y_4g2;S4MMd zH*Q@xPsv=oKpE~E6-7}DjaQu(0M{^H87J0(px5o~^SV4VIwp>K{5*ULj~-_~&dIG% zr-Y-aq7kj0Zg`h*P$iqO`I$$N{A?E9K6(h9jcvGgxdZNDad7&I%#b!KT&b_G4aS)* zWAm0SoHBEES{~2yK>+@V1&|qM!T`Wfzw0nVDM_0#m6jHlDHUZkw6>}ly|NF5XO5!r z^5@_=7HgAj*!%O{*tU5)V)g`}uJzLO^YdtGKt&0WeZfIdTADsjUU$!3e57EY8-DoU ztlMtSv8}v+}QlCR4SBpOnAyPIh);8r(y}+?A`BPNr(1cMYCQeI>PPVrsrA@U&O^(*JRMkpGosnc_-O6ZqsMf5tIbW+hqV7N4 zBE(zcv?ZUG?Dcey{vj(XtJC3dh};AM^tv7(5#o9nzzjZIV{;FWZZ&9i+$X1sQ9&d` z$LKKh#V|y{1wr7YhO3ezWlo0Xr5At8y|RB7_xvwj2&m~9+(IY0I!2i7c|KEd>D7XTBSCI0zQjc#kvDyk~O5rR#~L` z)N1_&eS&6}*=o>ebSCMI?XQrkx-#Y9!MDaboP)YxzYm<6mrO~KoGgY0gWbNz1KvOh z0M|DWm#qYfgLw;W503s{gC=E Z@pm3{$L}sw_&)#u002ovPDHLkV1l7kJLv!b literal 0 HcmV?d00001 diff --git a/imgs/icons/1378.png b/imgs/icons/1378@1x.png similarity index 100% rename from imgs/icons/1378.png rename to imgs/icons/1378@1x.png diff --git a/imgs/icons/1378@2x.png b/imgs/icons/1378@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4426717e73eda9d9695302dfedea4d756e74ad01 GIT binary patch literal 1858 zcmV-I2fg@-P)63o8OML~?%Lk#iTKi}R7w>oO0A@= zsz`~VDhZ7cXzh)?jbYp-uFdtcsn`e7Gv!x|-|5>nNX=F2P1 zJimFK|MQ=Dg_M%JIh4B^{r>>}696Nlow~8n4&9xu7hk6f`UiSNV`H5uJ3BKzH913r zA`69Jvl{Y?{(kF+nez(!+S^;l9{uSrTmbSbY_9z(flr*M)TN{*eXsH2<+Y>ZgQcaL zevswygbe%Mc_(>MZbsbMh6@xHE`Oq=WZPJ#DWkr*x#@39mo7gega}1AW(B!z34{>h zjW>V4(lU7E%@Ze&e0cECdoRmSXuZLZnb&aPv`G`AiL=}7I2~S|+4(D@5W!q2-A^Vb z>-Jy0(zW}A7oJZAG(re*eal;dNGYREK=k&uZ+Wr&=_`-?WS#uw)7xd=z(uL5e)(?2 z>$3di=VaH_v$DG8ed+af%VBGiJb2(GSypzR-2U+WvaPjNj*nYD`1P|pbAVVti54en z280k|c*MNs<4-Eywpz#YR4)Svn^{lsV0zkO@ZzN{Tj zJw@rJ5-O`|`25T%DvwkW@VoGbT+~#3#E@l(-riyU{_dYxzi}gdSHECEP66{5uH%7C z>nL9Rt!>*Me&~2rRrUUJ=gzr>5TTixxFrKZ2yyi2k+rY<`41(li@(px70cMWcOTbm z6BHH|aOzY8rKM{z#>eq#%}IP-*tKg1`2~ekRP0A6I<%Tpt~tgjE89p&3e1-F-xL-W z%&o4jj{S1XXeAJD@7=Rxa&kPOAUBW3#%6-*H22u-z`3Ewscq496P=(`FsLKqY+gN5wACp zU$_XPag?mAxvXDbOlD>-cDt9c$zi%XFQcI0+}V>14__gDZXyeF7jX30aWXR&>48MR z26%4=AP*fpJeiekdQDZ)CnY7WpPITBV|Tigg1j6hGjlF_y$)3kak93a{QQ0f`ucD> z9V}nEisj$=HU|zKW_ZX-Ny%DFnHh|akI{Q&A_g!3ae(G_8c` z)*I<**%i82V`bCD0e9oY7P9806R*?baRl% zeC{|bLt|(RAqe|{mKlb0%Uuu=h!&UwqyZ)%6)Dn^4+ix^#jUp)}1-JC0 zpA(PH7$Q#Z#biomjv)@O&(5R+ToXD>v4yS_P0HazbrlDIZeT=8>5d8zflz=LARb7F z%sG0!KG~F+z9J{9Xju@~h9O%+QbCcPv@|1{m=O9HiQgZ@#tuQ^UqSv}eFvQZ;H9_jaw7`hv@~}oLJ^nzz0r;;Aa5fFxfFRs1Uce4a z0waLM#?Giz%elxEh92=zxx2y;|`c7N9|3f`Gsp9 zdaNjSsDA{XZ*+R;@*JDpJ~ir`3J#pD>+a}kadr87eUqW!$gv&ItXjS0hmYobe(7NE<<^P5tL?pZtJyo;{e`FBVN)kmRgOnWca3oU z)tQ%3Q~;HmozZ-HztYos9Mq5$ia-?_0GVC1c=~Eb$Jj?7)bH!+v~@O}Z}W|fxczEK zYc(2syiTzxie}2;@;ZSa@E>jWwcdm`7KOb+0rZ4DA_GV!>~KE9-QyzM zJ#NCn3w-(XcMLECLd#9B&=YpJKqR0)GJ}LwAN6f`#{dxsh486kx#{mAZr*k(k(AH& wF#SdV5ePx}^y=~C{D!?}#cm3Dw-(Xmd4uUFYkN^Mx07*qoM6N<$f)*}~EC2ui literal 0 HcmV?d00001 diff --git a/imgs/icons/1379.png b/imgs/icons/1379@1x.png similarity index 100% rename from imgs/icons/1379.png rename to imgs/icons/1379@1x.png diff --git a/imgs/icons/1379@2x.png b/imgs/icons/1379@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a1a42fa99962d1703f36b3e05de7ab3abf74643c GIT binary patch literal 1782 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1381.png b/imgs/icons/1381@1x.png similarity index 100% rename from imgs/icons/1381.png rename to imgs/icons/1381@1x.png diff --git a/imgs/icons/1381@2x.png b/imgs/icons/1381@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b8b21bdd5579e4b26c4a4051e65679542f94ac44 GIT binary patch literal 1809 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1383.png b/imgs/icons/1383@1x.png similarity index 100% rename from imgs/icons/1383.png rename to imgs/icons/1383@1x.png diff --git a/imgs/icons/1383@2x.png b/imgs/icons/1383@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2ff8fe33deb1ea41b3148b02250029aa07ab94a0 GIT binary patch literal 1599 zcmV-F2Eh4=P)6>ODm*SliH%Gs!&@s3>cx^05QS_iAjJEN`}D4=@sPho2q9X}92GD8YPWb~ z%i5*+l^;cIo z9#+01GXrI(^Fd)Y>L|2ZdHc;*;+|XA>FFJyw?BYRC*vI$LLf@!Rn0m$;t&3EG#EcG zNp$3BRpD4XHDzI@oPtNUY#^Ny%vrFO$Da5_ylzQ7ix#@r`PgQbFPV=iFBgw*gqyc~ zdRKMvKBGZfF9eBiu3GdxXQ{*dwG@zL6-CA6?A-lRe*cG;9#YBj^R){WbEB;Zjlsr8 zA0EV#Z^M-D;N-~@j7KLZEzEsfmMv@Y&AB;hSu`<)XWUZ(gHB@q{x^w6!l-2V2Y@CL z=w(*Ld`jokQB&)}Y%*f8TKU=2&#-Fsnz2wgUOEnhrhjo zA8%VP0r-apON2z1t8k(!7RjYX($*n&t+ z;BGmMukQx^{kQZ$in?&&H&C=dZs(;^T_q*%7Jjy+Q#A2~?&RM4IwN=hY!?)J|Fc=InI5>bt zqardM#$qib*O0@=&~2`C_Cx?5Fc;7Rqd-EDf6`{mO2FOL!Tg%p2my&?GTzaBdslIZ zzplV$T^x@m2#2Et`~j|Y^`KG7ghC;Ph6B~W37}I+9#&3Lkv_#2JmH>3R6MH)kH;f< zJU)?53vKI#c5j`lcJcUl1dpemj?Sx;msjwc-@Z(7Ng4ZJ{at*x@BVt}<0eZc`u;v>p-?`b-we@OuKl&UU!C-*Lf3l08?|B}BUWfNq z7cJ+Sx!8Vz_ufBp@P=pjIl!+Z{;c`Flx)g{WW*oQZ`r)@wfdFIw|WO|6Apz5hXOpi zXAi%A;blUBAuhI_=ENsQXmg(@N2le%hLzjQM%{Yl=5aFhpY*0vDo|clv}pTxH@J^~ zd|VZeCvezpZ2!>{Y}&kyPdnTMM(^<9M~8ck9{ZcxX4aKgIEyK86w}++-}0{u-8+O3 zy=2NTIi}bLFdDSE{U@X#1rXiyj4E?pbRJ> zV=zWC{w{!C;2JPQrrC6WNr~r@nFKEo`#J< literal 0 HcmV?d00001 diff --git a/imgs/icons/1384.png b/imgs/icons/1384@1x.png similarity index 100% rename from imgs/icons/1384.png rename to imgs/icons/1384@1x.png diff --git a/imgs/icons/1384@2x.png b/imgs/icons/1384@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f41b263d750bffed68e4930d13d2abd13c37e432 GIT binary patch literal 1160 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1387.png b/imgs/icons/1387@1x.png similarity index 100% rename from imgs/icons/1387.png rename to imgs/icons/1387@1x.png diff --git a/imgs/icons/1387@2x.png b/imgs/icons/1387@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..97d3a0d062e827c4b984cbf67e1fa98bdae3549a GIT binary patch literal 2527 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1388.png b/imgs/icons/1388@1x.png similarity index 100% rename from imgs/icons/1388.png rename to imgs/icons/1388@1x.png diff --git a/imgs/icons/1388@2x.png b/imgs/icons/1388@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b0601dfa3d0d0fb8b6f8620630c00f2a7bc215a4 GIT binary patch literal 1888 zcmV-m2cP(fP)~5LJ1o3sx;FkO-nISmh63!w!M)h80Lz zAdnE^A=E_$l!}THDGjtxN~0#R8{^oD(3o1|Nz*1>AFhApjph4M5=LQbGyw0zt!u*WwDsjn@mMFAv)3yZ!C74L|`f`;oXyfeN?;5IN8$fC&K8047HyIA@_3il!flY2oqa z=Ra}ez#z#s3#HkxpRr*-^PLk0Kt6MR;Vu&Ug@8Ee12?(lfDb!60AQR6TK6N-3~F-R z4@CX>b5D$Y{OGj&?$7@Eej4X8>1RP%m%n<1oiYtaVAk0@fX65!j|rb23hHvo4@KjXPagI^dvcB!rNK*=t`|k7YdSBdtg&-W zxu#Rob9l76x7-eadr7d9@sYCw01i3n4-rbHgvZB&nhgC&@W*E-$P4FAP(le7Z*{Fw z1uwF)R+eUpQql(@LqefUX;W+L(BT<}WA{^lIrE(Y6Hdk{Ldhf-Y}}7T=tn|4JwHXi z`GwO|FbY_Um#-{YYauBkHRVA|1V*th| zBTX(@!;ggTM}i-pn;>6*_7pi7gvhK#KUY}Z>JcyCj4~3M$R41S1cZ{hF;?WMZUb0P z2YDMnQ3b3Lpp|zFKu8E`l+$tP^JY+!kqm@5duoP$?U|G0psZnvhq$gfxP0xuV1f}Q zDCHiLuwbo5==GD#OOjk!V-Mzv29y$Jj2&&~cM-4^a7hU9xui8O6ca&RHvCX{PtCX3 zSD!gareuU^5hBqVgaFT-n#Xe=I|^ehiA_OZEwzBSd~Kcm{FQg8DXlf787aIg?A#^b zh}G>)f=ep>NKS+eZ`=!c7zBcT@8GTN4ZPRi#->gHSSV9sJ&*DF(k=V_UtS&#x@vRS&6d+R z-zf63))#i03fplNvUmHXZlu7ap;e4EU{Pq_I{mG;!{Q#Wt37%@U1VNA*~|; zGFu`s8m}#`*q^-oR@(2WZraaQvQ)2>+Oz>Aa0k-J*^vT!lTZWD*4kL-dNYmfjUq22 zN=ZREJwJg=kr8a8-wy^U} zkYlF=cbx@$6|ev@09mPR#~6LH$Vy2l(Ug*uGICgWe8R7x_WWl~gtJ})+d9Rio2&Mx zul`H*daA49d@Wac(UfKtz$Sp$S>_xxm7Kei15T1rj8bduwkhp;sm)EDmpAfEU(1zV zG{$aFMv_mToMUaB;_dZK`{UpLW7z4W+bYhNbEU7Bg;}%~%K+9KiKIecSKC#Sj#=Rb zCjfeGk(;ns5*}akBN0DwWD-8(SZsIA!b?}$y`EZC!~ANN=zr_Nyko6hbo1J7jnsue zSMp%r5WuOR-6ZOa2+2rLmy@-ISG@S8Gp(Ld=7+z#vO4Ii)ilnRR9q~VMY(B>T?g<1 zfR2lQ;=p&6-@Xb|2JBT~!>`MBSeMDu^HY*DYJc$CD{uD)>dkamyr$y(FGXJd-5C2W zfF%GM73pt#Uyc3!6u|1m3wGxGf_5ZIFA&C$WRFYM``qb|w7&Q2%fD*((sh*-@1=u$ zC0Dv@EtDHS#7@a2&XJMq5C2g*YHo`bwQ*n8#{ENHAm(RU_2cW?gKiS%8*xXi4|~}V zcS=~{POL|vH2Zn}Py`$aQlAV&H0Ia5fH$qRUaoW=cT^mAR8jG66gpG22VK`5>TWpL zPK)vBsBf)J%EIt;kn6akMqf6>c{?J3J-_eU9;g7Y?}c>lvqj}JeUwY;LlJlY89XXz awfzsnUz9@)`gNoL0000 literal 0 HcmV?d00001 diff --git a/imgs/icons/1389.png b/imgs/icons/1389@1x.png similarity index 100% rename from imgs/icons/1389.png rename to imgs/icons/1389@1x.png diff --git a/imgs/icons/1389@2x.png b/imgs/icons/1389@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..af2a9fe6c89f6e8b78b5e2ac64f1b46ebbcaaeb0 GIT binary patch literal 954 zcmV;r14aCaP)P9VRumN7yy!sI^-7pm z;>(4?V0uxMU2G0f&^0%%teYcg!)(=-zDT#E=}ThcY#ZD3@#X}>sI|t6-sHgH`JLyv z_n7rWR+DI(!b@J{=EM5&T zHIw~iB$?V*5&-ZQA?_(cY;zE5$nSsl+*e;G02{bJ5{sL_-9Td`77vZ5GnVO5I*y-c zd$$z8iU?rq*u*5ep59sY+szx_03Kj7U^t+cN0Lb;Ixxub*4Ea;ue|zNDF6UJU=|QS z0rW)okA1v%_AFZ-2?w*|i7x>Kr~p*Jn8;+5NGvLS-`mT{_LCnq?rGXl3IM=z{tO`C zAcUc5q|#|Vzt~AQ{BXtOuOsIiL=aF6T^B-<=ouQ~`tT@i?d{*b)ZAQK3IIUo?@0sz zTlILbEiZpAE^_`-7dy9a3y${p9R@VO=Qqu~rD>>cH}R2Sgv%v2?P-d=@Z#RPN&yrm zp*Y!Z=sJeSgQaV@Wf#$bK@RL~vU@IfJr7ulTao=<8_lC)n-)LaNN{h>ecHbL`+Frx zGX5(-29|(D=R2<{3VzFrp&L|(?qD%57`d6?%qJfQPMvr=thilj(C5SN^|Im4Dnfw( zm#$ouTAB~4Ku0MPm@%6NCLVL0?RPaRh7w9iZ_}MFgH7U>w`0&ovx|f zG$YHhsPOstV}71%-Ir;9>nOQg?mJ+&5Mpk%6UY~p=bZ99a7$A?R0S)r+%AqDI!I=E zI`z)`AD*hI-82IX>8g_6ur5UOO82tms{!Pl!a{k>*~q8-IO{MXfT}(|*WHnuX z{DHbH7K9K>%bu4nCS^bw cu-1UT02-B?8lu|!_W%F@07*qoM6N<$f^DqK%K!iX literal 0 HcmV?d00001 diff --git a/imgs/icons/138.png b/imgs/icons/138@1x.png similarity index 100% rename from imgs/icons/138.png rename to imgs/icons/138@1x.png diff --git a/imgs/icons/138@2x.png b/imgs/icons/138@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c2b6ec2e3ad997b734dd6972ee5f9e53e4292e45 GIT binary patch literal 2144 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 Eg5rBCqyPW_ literal 0 HcmV?d00001 diff --git a/imgs/icons/1391.png b/imgs/icons/1391@1x.png similarity index 100% rename from imgs/icons/1391.png rename to imgs/icons/1391@1x.png diff --git a/imgs/icons/1391@2x.png b/imgs/icons/1391@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6586141345b32b6c27426d27ff86041571866cc6 GIT binary patch literal 1542 zcmV+h2Ko7kP)hh|5@+OdUqYiae|#cI|QdtQp5v41tEopwiH?_p$efQ^#!R^s)Sl0+Dd)k zp;G(MKBPr0Rf~{mg-mc`egbYlby_)bNGzJ9_Aa(Jaj=O!`(t}{c7AsE^dW0!oe-#N zO9-h)x|%s>&b{Av&pEp14ly%6OA((b`sbFwp`l~ap`l~{)!aiv$MjG7PHU}!Lqo?1 zfRa9UPERD0QmVDp0Z@79t~hdhha`lKANF)@lu|7UN7L#R}3b|a`FpQ3TF4sPpPM`SmAD(yC6#*im z0|)L`_wTg0 z51(V^l}N~I0YCfPpf>og({aVu+Lzo?r|0{fUf{I)<#KZv1V-qFxr(Kv!&d;oBxI z7^&&=QymwxQ;9S0jYy|XkIv6dPF)Pj;k;kF>Yex&&TL_iLN|_UO^!zlp#0_BqGj8*u@I04@RW!!WE65%E>| zTh{B(fQa&&TUy^yG^IG7&-cbnbLSm5e}RH9R1{UY=VNQ&-3$MaMb2pIf8{SY_={ib zp64-uC1!T7TP&XAiQ~ow_hHi*MX_uU&TCmQ@4>hmT94O6H5d z{9V}F`+FUL55T*6r~ivQ^7!Lj_T1c8+*0Y=qa!2x%dWe~%<*d?KtvJ%6F`}nE9(Wm zYV9O|%>Y^eoMdKarJ;{!~{`{fhaS_05pSP0f-1eO*Lkt zR;wA3B&pSERk?jnm$X#&s`Vm%dWAsA^J-zWhVkrqVrHQzidZO~MRPI| zxge@f6#y8QQz-z@WgWzq-v9y#5S2;=f`p_fiUQzC09ObUoD!aV>`|V|WCVcPm8l5p zk)oBwfoj9|Wg@8C7+3BY)rL6?0PWju2!8da7xX&Ds%FFsnMna)Ht_sw`u0Z2=h`fFMdAJ%W3_`~3tn7nXgl=>>n+a07*qoM6N<$g4llj^#A|> literal 0 HcmV?d00001 diff --git a/imgs/icons/1392.png b/imgs/icons/1392@1x.png similarity index 100% rename from imgs/icons/1392.png rename to imgs/icons/1392@1x.png diff --git a/imgs/icons/1392@2x.png b/imgs/icons/1392@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7e541febbabe1d42f811c378ed85e3e8f7b25d0c GIT binary patch literal 1254 zcmV)h7{~wTK6>wMZ)ZA>mQFhiW1MjigdmSWP$Y)Lq*B?afvCid3qvL@AcO=Lh7Adj zNDSSuP%u6aLo`C65d{+C=)$1QILsKBXK81k@7}hzz0c!pxZN+}*?FpqTg#{vMjMkXCTxaZ2s)z3cH*3nsO>+rd}OM<-Qlu@s%w4xMgHa%~b z^4VHGm$C26r=0n0md&KoRz6=$osA9mJ+Odj8k=(2v}9S9lTu2{r2;tKfqG3PgZ)2*%ZhT15b~$f>H2m5 z&ev0sXzVEf9{|`p6b|JUVm6e5|HOvPE0%W;1Otx0lSv~!F_onhn{`b~u^hYf#QBSN z2*b1j=mDTL0&J=ZTAUKUVrjP^@;q7H+w1Via+|>OCZ*IzZQ2Teg=qyTAshhxp$jN# z?RV3%?tMrIBtf7IL7Y;%2%rD}tuCok6oedrhH~3%AGm%aaoeJlB3CX`-7qrcYBdi+ z^cJUceor{`(zcC*AG!s8awr@!8UZ%@51bfFBwtIUvug}pQ$|K_)DlyZFU`$NpIg)S zqJWtT*6@y7zF?3TCXUX|&K4G3fKp0(y8N`&<0a!;psdw+L8>g)3JZc$`;o)@}$de(wcyIppD`s(2Nr=RHUJ$d@$k6Iq8 zKqML?EW;e=_O`clxMd=89ADQBQc)B#abq-W==!Q^y`FD(%kky?{q7xa>}seJHPZ=M zwE2~MVE`8wf;N)^SKTm! z@#z^lJU&kT82Jlx$t1G#^Qe>*Vp$fkEQ`B*>C)QCTa(kG=-ku@w3!_+>$*NOIe({1 zEi2-!(NU(D&64z7$}VKmG@r?ks!}SsJ)Tc2(`c`jm3kx4hHgZM_P={Ymff4SYzygL zf43xx63cQNOkGE{TBbF%f>I%87IGO=QHqYa&Q%Wf@bd6ZH1;a34TNZb3ZV_s=0>dy_+qV4+u^SRNfAJcpX$B|( zSVF)M!Wgzq0l>CwFwDJ@XBdVWrbP$ literal 0 HcmV?d00001 diff --git a/imgs/icons/1393.png b/imgs/icons/1393@1x.png similarity index 100% rename from imgs/icons/1393.png rename to imgs/icons/1393@1x.png diff --git a/imgs/icons/1393@2x.png b/imgs/icons/1393@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..80e1956647dae13049d2d09bfe1da33e6061d017 GIT binary patch literal 1618 zcmV-Y2CeytP)=8CxBI}c38D){DA>Dj`REzyI)|6#gX+H?o^AH z!_>B|{l)L}_wOTtBuQtTf}e3~-ouXPcLLA=h>7vbPXY)72(1NRX~!-p1^{6ghG=VR z(*cNlK5ta3RrA`lYyNxZ&)@Ct{r1li4Y9wy{pY{@$qzgWf(&Lf5s@K;AkT4<01^O_ zM3ezgVPC{P7F_ykgnbdxJyIy^v|jw7+%y z*qe@R+fL01GqWXxi1Fe(v$kz-0gz(mJM|nO0KCF>Ln)=_^LfLvEL|xT$>nm7{N$Ba zp3rqYIX*UKd7gjsneXq}VHlyVUDt&W0<4r^=BQH22M{MB;#E4{k^|zN zdJTYa4@#6uB^*C~ya-?-m&^H`ot-;&_4I7p)YgU#EiL{_Fa4;)(6r`X{q{FAhHgZ3 zT?Z3u0IER{cmT}R)Gs@bPN!*LU_js6zBOI3tnDPkAb^~%Yq5AkJdsEwL^vE4k#JbF zw6w&t*=)mx*7aJ*H1UHMUl@ArcZZIEpiIL60Kv@qLb)6Q;H{>9*#RjfS1J{+I6psE zsFbe+N=RcoBSIaNtFJd`3$ zxIh2JFHZ-7xr;_WMnvNd*ee~?eNP`e!7GQQ=PZ5Iw#6qEv1YoTNfLElvM@^eIZ;o_#cW2V+ zbYr1Vs2w+Aa7v(M(VQH|97gzt=1+!IF9afa|(EJUm?VeSdjbIyyRx{(%8Ha^%QgKY0I= zuavqPkXM3IvC@2To|y#^iRNtcG=S?jZru0`fVWnFB?tw8rIakCBmgiBBk1YrNj%-# zYn&M!ow#`6LPaT61;GF>x@OyU`QBva3EG(!@CL{Lj*&{~JoUuknM;Dmc0muZC7C~6CiJI>z3qZikYTdf#nr++X zfBNdHEdc&e7a$&A{EcH~Bb7>_tE-Dm)1-VpPsL)9Hg4P~&z(D0{_yf;!OS%P0?=d% zag9J~{id9MdE%1#*W@SUd0wehp0Dig>yyP|(PHLGT>z!j^0nuAxOnlR&&*N?0mpH0 z`}S=%P17|^lQm6)lu{BTSE(Af?4dMKQUKt(?zQQencE+K^pUtSK0XED{d$uF|G5Wh zE2}0mFQ=wyAo{$hF__&ibl7Av`S!;jUP;d1x#KZ&UF(+tCMPG?I(B9JSA8EnefsL1 zxw(w%xL?})|5wo0bv7iTEdXo)v&>w#1b-6%8UQeJ-B0fu0l43I;Ag{s1Kn8Qmw10P Qg8%>k07*qoM6N<$g0xTv;s5{u literal 0 HcmV?d00001 diff --git a/imgs/icons/1394.png b/imgs/icons/1394@1x.png similarity index 100% rename from imgs/icons/1394.png rename to imgs/icons/1394@1x.png diff --git a/imgs/icons/1394@2x.png b/imgs/icons/1394@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ca0edaee1f07e1e48f5406dde071ac562072cd4f GIT binary patch literal 1679 zcmV;A25|X_P)ymMBt^ir&~$#Kz%bz~CGBf^X*>pUXaH?>#fC54Kg*0>`aL`5tG@ zp6{obz1FNDX2ySri10GxNbv{(z>(AlqZy1d8&Mnq-CgezN^9y&%vb=x4KQBD);tEl zc;w>$X7$85LH<#uzj=t9^n5V@l4&HCP1m;_mwJs>X`vltJTxLKXc~T z@EfnIX9du=y0$hPkHzAV)^fYwsrf_gPl|8-@eBY)N$eTB4>&-`E{W$Y*+s#w4jB{k zhX8bS?B4w@fLNsUnxmAh3Gg^$0!R`BKwA_BUhIfJQ0EBT^b%ci9gbKP`p*%i0_$G3$)P z_+Tuy*s3z-wl4IQ0z34rqb)-dv+MU(s>KTcBmi-3WONWf41in9901f8CzcQ+i0>z3 z852{blgXGn8R(9MYV>-az;}l0+h+% z?OY`gLMR~wMM01OkOq(;qGkXEW)2<;;9G`6r1~w6oGXWkU;0tluf$h7iB7JA_z#uf z{FhW+*N^sQPM<4=$8wtM-x%Cg-#XBa)qt>)3%JTQ08kV{qx1{Jav*4#l1C_DONXGU8XQ8FhrZzANrbPX@Z9tr-4rc+Zag$(98CWE^v|1)dt6 ztIp2lCjrbmj?*uM*gQ zF_x?RW+Xd5u&X})Vkt6du0&qX?s_MtMA|i!QBu_@rGSmp^^GwB0Iw#%H=0t&FmT+F zoj=PKbKT0GJ&=-V*QZnatv&4t-kEk~OHrv$Zx$+ZqsyhngcRN1{Bq}x=ZAXL+MloO z`P0}!iNWkS&epmzm(6+r!kPewmy39pNFo(W{W$Kt^?qdj?vzaLekEVc3OQLJ{%ec2 zN8j9;db_QuE^p#)qOm#Qv~;&2A25soa>hge3<KCr62BN1 zGY_QxjV*FdTfywRwt@cGi&z>79X?a zAtK_{# zp;yp}fM72M`pN+zI!>g$!$ojD$5dGKLveVZJ@wp62UTHW`9*pDW>FjCmHqNohZLn! zDGMM|6CiO3d}G&=na#%ZQOTzcFw&BwKWFjls^NTJ+)3V#%rRLCPxq$1Ojlzf6Eq}1 zJ!rFx zP!~F}W??h;gJ|v}KMXII!!I22bx(W1aS2G&qS{P6i8Lm7?_@*CzXW1=EM=V?~1?NYye(yiB<(-P4 zb^sHu5I3g$s@XJ)^$!fp16UXx9nAtT+X8R^fPp$N)Cd58J^1k88~%*SUPCfSd9n4@ zbp4%*6MR@GS}!4pVxFp8tmf_PTIeyeVP@OX(po8(%NKw0&O7Y@E^P~7OONUvsK7`T zirR{@whgH6b}L2IW(X2gz2(}s+N%6^sQGRfQW%D7Yq@OUm6IpU>gsBVnG3Z69%{?K z{)CAFK;zaMU{lG5;=%1(w-*){=f|&K7gw)bxd-5rTIL%7Pf3|f=DqRHu4b|;DY2X{ Z{|QC&A`Fx)65s#;002ovPDHLkV1msLBW(Zx literal 0 HcmV?d00001 diff --git a/imgs/icons/1395.png b/imgs/icons/1395@1x.png similarity index 100% rename from imgs/icons/1395.png rename to imgs/icons/1395@1x.png diff --git a/imgs/icons/1395@2x.png b/imgs/icons/1395@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4cf928a31d9b018f0174a72acf4d96a6cd78f22c GIT binary patch literal 1550 zcmV+p2J!icP)b?cs!fu-aB{yc*vqOs;Y4sDKGq` z^Kj0+-#I`1&-u>6hzO5T{E?3Se}IPtptsCXy=6up8GvP3-+1$_w{{$~&E$^p8$;n*PD*tlDS>4|m%L>g(!STElh-BCE zq5z%)a0)=-fdHm|{`}TbK~J2%R9-!CemVC0H)gbvc;eMnS8@-B4R6k}{c{bsoK8gh z=LM}h;srNCqUeFK=#9n20Kgsq#Rmp(9rm?MSLBr!l4@bu@jrUwFPC>e-k<6(gd+Ok z0|RvVZ0c-&fXN;u*Y!H#%7Jw{p zc5G)R^4oXjW~8p{pT9Vo`e9#RDmCVEcD>l7!LW=&{bJ}yYI{DEHsY8b{200|;0x8;B)F#KpZ6V10gDHpi$tZHZ9{;*;0?bo~xQ4sfas%%?- z3S$R%frUiS!W!^lQ9!y9;u|(3NwPWT0EhulgCKALw6!sD0C;`8n|-q{vDNnc_#emO zUx`V6v`|{t<(5IVur;8)S}LJl0`w(L{S88Wsd3l zz70Tb8{h{Q@_72}-2Bmj;0F#pM+B-`DWWSxBp zK-lr|$V49!vch7j3;;gk93T(?#Sa4Gwj1p^a9hFGyJNBKkx+cuLn9sd{=!PlZM7_D zq647z@yO-|9LvMx7Ku|pEyfsufdNoNQB(nVn*~6ZBI*})_ag_qHknX(G903M-3Z+E z2B5!v59)O^FHGTDp%z>yG%TV3w(SJBzlLR5_5kSZ0NlF|(8-&%4OLYXtz~KrJL)|Z z6@z-C>0imM@I8@f7HkJBLqxN94L2^`3~uVCefoO2^t|t@hG{SW1i+0(qXB^UW&!Z; zs;TVjULZ|$4hvQ{c7hV8WezG~&a zor!nm*xFJ?@W;mmFRMbFF%;#j?KsCB$Ej3m)s4f44*Bcr>pBr_v;)A12uA)lcN@ZS z4PArBP%JfokPJ9?4>KN#X`!RN9b!let1~?8+mgJI*#4OJtK+YJ@aq#N3RCCLAHOs; zodz&PL~ZQ@AfnG)@~g#{pW46w^`340eVdKl^ey(2^w%?Ia^$;s5{u07*qoM6N<$g3@gI AVE_OC literal 0 HcmV?d00001 diff --git a/imgs/icons/1396.png b/imgs/icons/1396@1x.png similarity index 100% rename from imgs/icons/1396.png rename to imgs/icons/1396@1x.png diff --git a/imgs/icons/1396@2x.png b/imgs/icons/1396@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b43ac152a09805fdc6aac95c8f8c12fd0a8eeed1 GIT binary patch literal 1466 zcmV;r1x5OaP)^aqWEN)!o1_>~j~$B9YeICdKUSbOcY*Y@n}%-nkq54#JIaLKy0loyV4 zU*^ut`RM%k-gA|Ra6iqtuipO;uvY-vLG$Q#&@8;4Z#{s@H-CzkaCh2QJ3RZZs-5`R z3n$-r>#g&rUwiEjzkB0Ny=#E?Ft-EHT>!QNVDE-$wOU74*VeL`boxT9bu;04rdNQS zQlL6u9*_d^N~t2y2lN94Ak*3Jf;|d+;lRj92^fgA?m4v{fYE~Mfl??S3FLvCmvBni zzSOWNl?}JUji_ZB!1i6M1w?|{he#^cx&S;2oBV zy_w%!3vwp5BUp}z$f)Z%pMCL}$41_MXYSF-e=Z#p8&2rh-UM!#V6$PiRtwr%PXuRj z{L&LZx)a5o%mau+J>;dFC-+qf2bH5})Ppiw9=2Kzg^?+h`?KoX&wZl&OZQTK{PIFc z`MRP*lW|hn+itFuj*NIXj*7#uNV`^wN~toiDI(!L0ir-_aaG~r;ejtcJ^G$VTt&M4SOK&L%gV?E8w^#DT)QvOer|$$Uo%_a# zN0Lt*9%8i-kWIGbLR-s$e1TVO0MiaBX^~-ulVuzuI%Nw@G>~I5YFYgxs+9~NqBIG|)k=(V<{ufVaU?q$q6-Ck7+IoHS=@Tc+>gwvYh-~%@u<)yw z?)9Fq!z|dftJkkxUtC&Rn7VSsxqRu;yTHX>oc|l(gIcjzd~<5za3JOAQ-BX*_x*18F9e~& U4t%2qg#Z8m07*qoM6N<$f=-j+L;wH) literal 0 HcmV?d00001 diff --git a/imgs/icons/1397.png b/imgs/icons/1397@1x.png similarity index 100% rename from imgs/icons/1397.png rename to imgs/icons/1397@1x.png diff --git a/imgs/icons/1397@2x.png b/imgs/icons/1397@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..52073cc56f76cd4f67726c11cde21b26d7c4567d GIT binary patch literal 844 zcmV-S1GD^zP)Y}T7{`AzvtD~`ubtF!le8rcp=uMQFF^=nkU*T^;C>7~LO%u&9A;LHLSF2sQaEI!m3PLg`Typ5{?D_kM1<=c`dZa*0B!*O4*=dg z4|lpfb#mTrHRbgGr`IkU>Y_g21brX}7@+Lt3Mc}%fOTLASOd0!(L%ZO)M#DoNAW-3 zfBxClMF3|;zzKU!tO%rTUQCjtrnRmCbp;Kjbs2a7JOLJfpkA%|elDkuCzD&3Mc}d& zB>lIC!(U&$3ZlUvXN;kLc$h5KYH59Wg`ik8Nir$NQ8Zazy>qOM9s%A_zb}41@Bgv? zI{9|z>7IyepC@o`3Y1dkMWKQXeGRAs4In%n1#H?hAR=oGkq`*61=&sa> z4S_z82dY5H0ak#Q7j1r_2|x7cbbBF?v|G(#wl-H8p4jMQb$~r_347uOHXR0d1ndB- zz@*^&W;7n}17BYmpwsOcpx^*JU=g_MM5@?w`~+AAHXT_0{@pvq&w1?q`DRNg6^O`i zW`It&r=4ha;xrl@$?to6URbG?!b-&)ACJs1j;C=H9Yljcu~x6I-CJv@BuS=)AW-{% zy-~#=V7K=&1YTrOnAroJZcn#c%@jZ>b)_iq-pGd{QlASzDfOQyV9U&4%W(-?p4vf$ zz*oRG?)lpeL;){Exdal6$_X5K8@^E7}nS=NNIMijWK3OvNR zdjt3m2*V)I!|^yxrqiF=t>*K20M6=A#;s=^FcV(Gme?|I51a2XpdN30tT$FyJm80U z#Nmu8Xt$bUrIfk9xjEc={DkeDol-drD}Fv-N2tYdluITPjPVK|t*_@rgr5%%0QhZp zxAN@EFMbq}nWJ!~2b5C2yDjkEcvWBp+v^*^r|$P*ISiN5G*xjFX`nA63s;T+fQXD8 z$OITUQNemcfWNU-Z~#;WM@Mh5T@c`xS;gT4z6+F6i@;Pw-dzj8RmZh|l->Z`0Q?K7 W4-0c3EkG&&0000F9cryDPA@8L#}8FHRr{q? zw6$ZY*0G(|L8J&$h{OnlOCVRtg4&N%Tw(;L&&>1To%em8 z|L^?I`@ZuKilX4NX#Ce(h(*H?MGxS9LrfyaoxWa*hhmXVW3t~&ddQc<*HO;_i z&O|&Gfp6LkMIo$ENK#711V*chrbPLs0p>Zdq_h}kI(zZv+xy^lO(Dg_!Ev)-^(HW^ z5hMw9cW*a3&t2d`;ixn>H+S8_Z~f_4#Fqy6!Q(%~9qZP>d#^cu|C^^&*Ijfa!0mUe$D`kW4EJrm z7qTScAMYN<;ihAdMFH{Iplxc>NzF#W!Tg-e*t#{ zaP~p~^XO6nkBZ7FSS%J;tyVNPHlpd{Gw^!DG@TbmnXnOjc3X`TGii&cTb+^@C zRq)WBKiey6R@a{C=v}&JZzK8!o#|NM%FY9Djt(NP&<MFdVNaASizzoKOsG2=Q3*^SvJ(e4A7x!pQ0kt9rUR%Nq|KL|c1T3!_b&T(ko| z?<6>G4*7+pu%u^V<2{>fdcEFww7D@YG8=~^rV_l6Qd>+q-eE7oMfd-n0f9@br_)$_ zPk&!t%c=Hc%Zc`(NG#csXET#msa_WIChInAL2@pFvEd##M+ehbgUMD^S)O*w>Sg%m z{ddD=vuSxgRl3ApfM=iEp)W4TMQvq~_VGs=GJ`%}-9Ud&_J>W!rkoQ~M`q((D*(8? z;RWyNJO@mcbkuKt2yLgDkrI+Bz0o3dwSGhrq5zjC3Q`3!!)oxq^6DQ78HTC3_10Tc zdv@=c>mM2|QmZJcqjxCg@%WEN9^sx&g#3g@>xa5n#;|mZ4CFQoKfA(a(o@EL~`p$w7<7l|24$G<> za;DYz2~E?Ju>^Ph*XfHKkYyQpg=Gi@XVjERt@QVuBVw@xQM;@R**TjsHq?LZZnKf) zTAJP$+t0QN8jXfBSuGR@Ql9bz*J#wL6JI3w&o^GIO9{N;(Vx7~coje-90IF1AU!MJ z(0!(va8HdWS+;D0EhnF@uisQ8WGo@f$VTTe-YBNG(I3shmA4Q{V*ilL~U313jU zrs%F0muKe|J(FLu^ub%!-K%ap(Krnt2LOo684 z@-Hv{ve0bJXlGe#rdq2egrtDZ?sokB-G5`o8#tQa#QLio7#L_Ht+t#rolb{%Gy;n? z(_UU#T^fsV^u%~iC_Lj;LXo(EA_;Q)&wp{(?mITF)MzwBDwTqJ@`B>`yJeQ44;1BE zOxw0TKqL|g1S99s-8YKnW9@O4Q6DlI^si-SSw^pU2KXdTrTDmda%>2frp7Ew%d3_r zA|bl%bPFv>T<+E%J^9eHMN73BjRvA9VsdOq8SHP9UE|Ir{~en@%q zokQ{^Z^)Bw);;F-hCjOAnV1KlD2g&MGN|g^k4iwkq^Z+P%29Zl2l zxF(e2&HEAb`{c0+7cm=2NP-|}Dwh<=8ChDH03ZlL?&$7v zMWabWd@df0#RS=EW$&pdcQ7qY2N3YPlyE30D~cp_bPZA|Q6kJ1J=uJ+lNcBo$JaNn zS5CC{Dq|CuRxU>TDgXd7$8lkXQ3n8)7#&c)WcJm~uy}x-&u`1(`Bbf1LqE+j?3y%Ir+V}4-J1TvaWa}nNq4TT_HMcN zwzB{}0MNXB$F7;L1Yqa$+l-__zQpL+&83cInH4oFiL9IgqV4n%?BDl+($>*UIPCd~ zEQw(CX)x$mWZ5$0REmENz$@E#?BZ`2VCVDOmQ#d!pDib^u&#a!ky}_vC?cl>{T^k~ zIVwkH{RsI(Xz%D$&BnrTyL{j{4o^Js1RM?rdOtbk3I%6YZQrrWe?5%_+a&;7GqY{x zth@p#C)ZB$i4X!l7c_Jlk)DxB6&Ej6l`e5mE0$M-p&0-m7=}@rn+^$rAf(D1H6{Sx zx?u+lI{FxZvd`9jnpbX6F3Zo_FA{*}(|jhH;Qx9<0RNBp4*b%7 literal 0 HcmV?d00001 diff --git a/imgs/icons/1399.png b/imgs/icons/1399@1x.png similarity index 100% rename from imgs/icons/1399.png rename to imgs/icons/1399@1x.png diff --git a/imgs/icons/1399@2x.png b/imgs/icons/1399@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2e7c3acf0ace0fa9f7a7385edaf40e88468bdf06 GIT binary patch literal 1941 zcmV;G2Wt3$$6Tr(75)F7fK9OvvMKg%|4R(A404yeByMwihfK9On z0kJ?h;8dwpZ&X!Oh{E&dvr~=6n?M=hu$YW@+8VP>C9o-WUz=j@3k(JPfp1r5Ejb#b z_bWPm{CLf~ix)X>)zw{e-n|Q_{zj0q)MRu|*43tcZ?|iH));_QMvF(b-!3R!d-0>>6MMaL#Hrl>>1} z$;t7v7cI&R3y+A43=JJzee0I$#w&;2vtA7tnUNv%{{DL{ zCSy}e7*8ufDsa_mHdO(Am#$qmYQ@G)o1>yTC;DnM?{^3cym9^N)r;ry^G^ts$};b* zWe0L{6+Mu@<^4@JzS^~`Pk>cN!ZLHm+JZ!fG}Z?6Kt>^>{p=vB4C zY>GX+{Kk#%?ld-*-7GCjYbM<`oq!(DtXjNC0@|@Jyf6dEwVF+7zy#ofnwlDGRbBnG z4R5cw256;}>!g%p^Nt+Zbgj5p7CRi-0Kp-lb|FN>@25_QY!3lkPN(yDZmt2SRH;-+ z+p@EF1Ji(&Qp!&OEGA=i;ra6h;6W$5U9P{JJ$-7U+E;BBLL|NO`ogRJ0ReX#8ycd8 z5Rc(KBtx5G*8u_;>UO)+maSP+Gaxm!SgrSuij9q#wRH6wzahhhZTZ(XM{asN9+Smn zbOQ_G6B0@eq^dg+Ib9N8lzEbKB+*&OqM z481in0Lj2}ckkRuxm8o+>e;iW%SWY}SY2M$5E>Tl3^o}2%c`qIMQv@U#bmtg^-T*2 z3_KWO2=Y|b)-^SGJQcobpHBHF^GcIbQa0B&G$dViIGny3&E}5L(O*AwWlJd^`T$+u z)YPcqW5&D;EC7D_`GJGi0s;dIfyKZ|AeVdhzpj~I6fh518XXfm_k(TQD}f^5=YL$j ze3GADKNaW)1UJWfs3zVT>6+Z`p1~bL`fIe>7@<=2tFEk6rH`Kw1@r+10v&~-%A%miMtOq!HcSzfLILi_^)COa+^4EA_DsX!VK-@F$d>H#UG2dJ?r_S~}T z*Zs;%OB-?z>_2Q%>{Y)=Pk;AH(f13!IdrJ#zWvDy7fMwsRjt=|KagNk>>*2-R@QCcF7VjH)aqk2G9zPX%7B3>1I*?PRh;>8<0p16S+(kPm$LrbaXGn4ED#M005ng;XpMlEMD(yxqsDF7xhpd#SLvHRZhWLrson&3&Y3^IaDdTR z3KR(;4h94T?S5|5^K1XUcb_FESBU_E03#65Qv5cJWI~8;LBYY%%hs>g#>98k0d-&P z+I9P90|(AMb?jK@Lwom}8TBj6f8x4#zuh@D_9BpPHJd_#MBu8Fvbd$#Po0RoWpW51 z+<%xlwM%Gtc-gey&2|q-OOtxN{+L?h`_nFQ@p;DK!w()ge7JJX)6^ab!k@w&2{k(ZvqO72s>`UFE(&4NxehY;_!KH-SfpbkOWz~+A@tf*pOLpoXNJyGZ bPXPY~WruZ9dAJKy#FJ-_#Pf4}GbfdBFL zKoJ7!KVjDCbaY48|0)O}^iRpje8+8%l=#b;J7!B|CVuL-BVkc)eM|MvX^Ct70Fa(2 z(Ie?7iXtbDr*F;fImOv~X5{Z$nD)b$a}JIU8K4pio%Ol7xok=b ztl(LyL=t!3F@YWjtE-L2Of8m~wY3J9@{(f0H0w8Rj+s0Y0MRDfm#|9(9FP$9eqBIV z)az{zqLt`9^s$lAl+7|x=_85>3E<1EKudhwvdC5Iw)jhXd0)_9uaD82mXxFZW83-i zU+`Ys%Km4Iwg&=$G^>mTV0{SZA4@<8p{%XOOU;Igr2tS_S;+?|xB~-&`{LwlPX?}^ zHnKNS$@xU?irr;b^OCc^-8vos!owf)0sxDJj60Qi;L04W(oLr$v=(?kfldmTumRMF5;+GMOiUUI4rtXXkDyk)NOM1ORy_ zGZgx=LQ+$3q<*}Do8T|N-V0}sPb0)ivQst^fq?ho)l28ryg&P?7Dne4`s_D@B!e8u4=(i12iF( zZcAQJXNM|8NdSZZycb7>uUj7zXG`Mvr}RLTSnMwfBt;hF$Ad90o8HK(O46 zv*i&vuQWi$9|=It1^fYs|4iOt8^*@QQZ$FLWv8TXE7u!ZPu(!hjCoZn-ji_=@w>9m z1bJZM3opMEn)hSsY?0W*c=Bk{9iM)KZtvTd^u0_bGlDe_u4%F+iUc-K9?h-=@H`K= zYX+LoRU5YLXoQe{2_L+Y*DgsB0I!AfUY~pX(4M;`Mft@CzFBi_(nz1Iw`PPE6`VR+ z`_i-F9|0HwKm*`W06w7#;fdk>Tt5K7S1KPYzD|wkMp2Qgx3`yTWzm@zO|)3hps!YN zxz7F^3ZA*g4mrmyjY&UURFeY$3zTYg>GgtnzI{BV9!lC4diS2Oa^T=$S4XKeWv7qs zmBz1(?OjlQPgYeWG6F^e+F5dE{YU{IyH~xj%na^iGcBT>Ikwt6x2un=UcKXpGY9({ ztVnlqaVcS&n}yS+PZtIGN}_e~n>IyG8XGb~H7p=xgqkasx^W86ohgi7uq=^b7!k{| z)c|e*V7p47J^I65K=lCb0%#2jl5HrhX)x=Xs8pJe>eT(aA}Veaj(YRM&pv^@-Kqc> z9Yig#cYzc@g(HF1w%`xltF>CCvzwcnnI{sNghHX%#f9e!K-h19BG+3cRoE<+do0UV z3>i9PM1#I6A3&X}K+q_W2u(tXgyOrpid=X+Z`h5e7C=M$*>?w&W3Uu<2lD_RO3TTS z%#R#*Ilxo;>9MSzo<4ar`AQ$Di<)7WFaU#KHy$AXH^&%v$9<1~Ua7XDtxHzCJ4d^1 z_2N5eJHNOSp;pcZFpS4AqaCDF2V*-8+|z`(K?C~_zjd=zX0qZ}02Tn1u-A&EhjF_P zjYh-3ZmWJ=E_VRzGCTd_#OeyY literal 0 HcmV?d00001 diff --git a/imgs/icons/1401.png b/imgs/icons/1401@1x.png similarity index 100% rename from imgs/icons/1401.png rename to imgs/icons/1401@1x.png diff --git a/imgs/icons/1401@2x.png b/imgs/icons/1401@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..93fd0784d63c1d1d752d20b28eafcfd9f9256820 GIT binary patch literal 1981 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/1436.png b/imgs/icons/1436@1x.png similarity index 100% rename from imgs/icons/1436.png rename to imgs/icons/1436@1x.png diff --git a/imgs/icons/1436@2x.png b/imgs/icons/1436@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..57d99c0aef6586813faed76dba8da0fb317ef03b GIT binary patch literal 2402 zcmV-o37z(dP)+`SJbnOb@akZUK$u2pyFrO(l75?^y!+_ z57$kfId#FU7{4xvz!(Fq@Oa{n)}Q)#{>-erycttNR=bm>xH3s+FbcMqIJC5OsAh{< zsy}@Kg+)u>8Rv+putZ1Ie^uL9jjK^mZ^ZFqN5FD&rinm}T6XNq*>e{ZokHAsnZa^z!~S9s|+d;h@xm9Qiu!~3Io@Vy9lyeNrkWPH>PS%NPu)=AWS62f(=f_-=A3l~mJPfX5!-<6)09b=6{iff{3jWVlF zM}pw>KCjy19qiD-!&G&wiiLwC7zqSb0GO4Z!?LDKVR9%8Sq?+gXrMw3SCm(17{|J= z&z%3`7{_%T@OV5zcSbkUpU}UUJ~{I_gV7M=TCHd@7~x7vgx&6Bj&bp1v)R~POYbHM zhnXmev~SNoQo;&Ejex~Pi?~jwha3)rF(5wPuKN9bRC@Tx`U@==J~x}qUH$$2LjdG! z9bf=x>53H=WuWh1Y;4?Z8c|dwgI*8?38IFR#5tKQQEbl4S&&0AHCRL0hEvCTO)whQEmdps(`?DA3i+N+v^)p z8S#)3R>Q*qmDDhaf)>O?*4gF5dmny?vn|cc6lsFVWMWUQdy-F^k;6rabH+JjISkIP zwu!!hL9#pSVM!7q0GJ^NCP5HVj7Fn%l$?EA1q^VzCqxVm`IX?{kP4CWu%yMs?#tA3 zsS{Dw7?zag0tayP%QD1HOu>fVy?`lG($Uu0g>7$dp{j~RMW{_rMoeRJfQ{JyVRvvtJ_=3b2qI;=Mgr6j7_~h>)aa z$z+s*p-_z7IbP12HOn@8;k>&yzyJQ*07|`HFCQyI=Jk5n=FOXvQzxf>Y>2dE%AsH= z!5%B>jgdHBS&62m7BwSl8got<50g&Aj4{!S>n+sQP>=bAh1Ajd4SVk|TZ7Jo1XrS82{_24Tx+dl3e|WmH{i71kvNkZ#*hNGQ4GrAq^PSf= z>o+B*Xx|jLASht!@1J{~_xAbm?zU|#Mn3|C6|{Db(7lU)K|NP`S$nh*F)>lB?qnaI zoj#iE_e5+mDM$*hC;08VkaM#)mK0HvV3FS%$dXOm6Z_yhHvP=C^!IBuh$gW z$B!>|IO7-0$Vyd>TBg>XY2s#+4!37dRkLQyV8^SD!{=Ao(@(CYXNuRtk?4d*qr>pf z5b|@UNm^g=M3Tec@4g8&k6u`Lp?Bd901IgXwxHiFPXn~Qc^;)WQhx< zPD~OSPF1TN7k$i@kc4jE08dFx!>cdW&LH0RJru;;{)iY@iEwGCX7pvrO^03U!h00H3JD!36;B4Td0TPQ6pt&|M$ z3!2|~Z==gqH80W7@-xDJgTzW^?i#MMV!y&z(`DGw8`2WgJOO z8~?6Or&*hxp7z|+&#pW4)<+-EeUB_}dtilU+M4QW34jjY(IG!sN0*e8s9vvI^j+xJ zNP2B!MrP)f{{H^HdlxJ@l#-UB=H|~*l3ghkoN3EdRriT=+Ptl&PSkAeZfUK#-?Q8q z3XAX7J@r%+u7+M2v-?wJIRK!cA(mboZys2`e_!|HsoBd4|N3^h6dl`>GVB_#k53SG z@7f(Ka2J^Fd)S`cuL!LPdASG6%Jw$K#KycFZM6n={`~{pwKi{Mnqgb2J9N8V-%w}* z%~6y9udY5BFqosdY__;6S6*Igpr^-qskOEB;HRHnA|mmQM;|r3x@HY>a&r1_f$xX- zj7UpFnsrAn=<-&sj3y$Tq}4)@BoNWfk4HZfIDV)xzq`I}wEu&FlGruB-_jWNPohc! U4*c=$fB*mh07*qoM6N<$f}+=?LI3~& literal 0 HcmV?d00001 diff --git a/imgs/icons/1443.png b/imgs/icons/1443@1x.png similarity index 100% rename from imgs/icons/1443.png rename to imgs/icons/1443@1x.png diff --git a/imgs/icons/1443@2x.png b/imgs/icons/1443@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2727ec3ca119548fe34c4c74b06e30f940788c6d GIT binary patch literal 2037 zcmV$`|@$oWw|MeREi=&qlkzoOlii{rlB!~s#wRG8e5EMJ5!tJBwd)snWko9 z(xh=rowQ>!X2NQxiB^sA0y-u}xd;jLj+z;2&=qda zZ{F3@6XG`*L^?o`0A>N+WX3#ML|S!sx8mdI=;46v`{u^<-b^Ov`T6;(hnFwj-`d}C zC46b>wj_gL=EC9ORem7P4&>ef(w`X|PSZKv@kyhjs*5cxS|Z{^#Pdo@6f|KpOXv*XLbu|%i`e1zw+wd5!kR{gP$=bRLY=d+q-Rgo89i8 zJwGA&(#cbMdaA0{N}MO8aaD36Q>N;MM<0?x^a(+dw4l4KYk$M}^XIBRJn>=#kfl&6 zGm1vME9T5Z&_wckMSz)1CWX1QR4YOK9jz3+say7m5x18MuL$M!4NC_s7T9e4G$Szy z2||R;Rwy1DbomnHt|qr8BqT*{Y{xfK)0cDsTAx;9i*UKh7x^95BSdV%%9>UH13<;a zZ)uaWm)tQ%Ma5_}YMecP8jgW}6ciMA=g#{E>#?>fT|M8t}UidbD+Tll&s3l8gaK{4TB zI{)puTRb~+)u<$e4ERPI(XnBA78{-d*T^tdXQrdMu?fw6LzthCK({L^>AiOj@sQw9 zgjH0NH8oii^H4GiQY(6cI9D`Jo_01#Kz@EcH=E7=-KLjfFP!`6@eAiZf_Ko)0kD*Z z(=?X0*6=V%&-Uzo4$CuE!Zi*t$E(7!@OKT)&#b7~9Jj z6B9W7<4N~9OeT{O019_Mzj5DzH`>mYUiLS&b_gP(*Z%TX%Kh;UTCp~l)cO$8=tC$a zGmGXXrw{<*YCYxtaI-k_!5L9neTUvS@;=;IewH*;*!AM=51-H+GrrH`9B4>kh z1?+7ta1F~?os)y~)oXCzrG22|!-A6Ga)QA&*Gvn&zGUR;k`>yE8$cYo?VNz??Kz>3BTe>?@Z)g<7HX=55-@mBBO7aI*?GZ`Q!t){KhlSD_QYo}GnM z{^?~lA`f}xKHIzTadGnI!d*Of^VTe-TFp6Ex;f__&N+kModQ{&JstV@Du4-NMV7s<`?+9^8R$n17I6NLVr&i40%C8;HLUVO-{ zs%xmc`pF&P^Faux0YL%Mj=(i7#&Up&fie2?#fxEY{dRwc<@OytNi!(>+Zl|F3{&Hs zMk0lhc}8RwJty9Ot?XQrJUH+Vklzv%8mgF^kepv%b*+^A-fI9t1H>)>odB8u*r(3@ zr_Bzd%JVc z)>92oBY;kDZU=}#pdUb~$Adn`7>Ee6EIaQ-_JsnF4WJD0dA*+M8x@Lnt3~1L?dxo7 zYN+>&I4ikQX%RvILMS1GD&SQIfFS^k=nE^a`<7(m`v3|7g&aQ~Ig1k=@Ni#d=6&b2}a4FC^-J^&*CWB?5Sx&rUNGNu+JIsh>O z&_Re%j76XkKpV!A$_K#xAc)5?H3CWi(E!2%ggqGBzaP-i>&xS7J)Zp^|5N-Ee|dvD TCOK`@00000NkvXXu0mjfd$Q(| literal 0 HcmV?d00001 diff --git a/imgs/icons/1444.png b/imgs/icons/1444@1x.png similarity index 100% rename from imgs/icons/1444.png rename to imgs/icons/1444@1x.png diff --git a/imgs/icons/1444@2x.png b/imgs/icons/1444@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..98be32ea055c9dbf0b62d09c8ac0b3e5835b4330 GIT binary patch literal 2324 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 literal 0 HcmV?d00001 diff --git a/imgs/icons/15.png b/imgs/icons/15@1x.png similarity index 100% rename from imgs/icons/15.png rename to imgs/icons/15@1x.png diff --git a/imgs/icons/15@2x.png b/imgs/icons/15@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..041ae66b07a523fc6a17088b4b5f4ebfeebd816e GIT binary patch literal 2720 zcmV;R3Sae!P)fMl+>4N8XW{gQG}2h6NDfHd6wak1V&=LBs2o;Js?0z z!930Jo(de`at{PTR%_M+QXzywCM6zHf%qh7;ki7^4wd5U$OY&JnEqbQ4l$z+TU3`$BuV=BO^ z6nO7JUX~kqS$<7cIJ}SuWk4wqg0ysap%7A{v;i3)yrV2jvyGELBrV9aIXDvLaIlr1O+!q==FxY3T@zMhc}cVSouVN=k$fSm&|U z;=RXc!$QBowUsVkeR-FqrA2=6^&{@zyUpSL5sM35{_*#}RGPdfKvv-1gH#IZJe_u($#}wty-zqV7@iIJ z@#&8UrRgv9Nooz6?JnOuxwURlq}W-N(V>@vGFV~Eij&CSm&tM>ttDhEKA31 zp5eTpC_UXyy8^csB?R4ejiR(w6AHol`ZcmNB`XWo*Vnju?JC33IrTVXd3lM_dX$vp zSw?9~6glI;5k9-%?&c~_zI%)bBbHZJc=(HlXy+V42#TV_InQ`9tFrKrWf_yn9Pd3F z>uUr?ad2?J@#z_l9^5CYHPBi!I6dLb+a3C?fbpy#Fq+I7hNorAqYPEXG; zQNq#58RPMkdMx?s;eFOOH)*w+Jo)Zx+Py_GG^6pDa`FkCk67+C@j@_7Gy2^IGw8?$LnpWQHvZK72f2vELyHBx{QuvZAc49t6&VF$O6l z0!zCQF`Z^aaZC^zw2&MeoiZ3rNej=N`;TaKmp~W>!*jN`-*EfJ3N2HRra8rY3Q8h` z=ImgPY;umBj(Ps#DRyB|M-cf?7J`E1VTw>J<{pw%fKb~S(ak3UmubqK?VRra2;%GE2> zl7w%+`z2u#(yArw?;oOkL9JVB(~}e4z57Tc3pQ7q`0Si3 zi%p_X6GjnI8p=Gw6*)?HY*``$6Ci{@NeSLzt)<(lk z2}v!X-)+zZ-tN#dCGjZGG2GsfdFS(@?vpI%KEpjXZ@!<2j-WbCy zopWP-1*J9TqjNf)4qtw8hl|mW!b^I+F4lSuj*fWub_b~QzK!P zdy3K`m0_{lWcO%LT`_cs(Hf&G^;>JvN>x1&nvkEj-jPHht#*s`^{c$w`G_l0R+f5< zM?<``9PaIt&gOKNI*cb1Bv2GtWn2!hC=7AVVZFtBfpgWZM@fm~ z(gnjXq}}Qfgdup##l<;GOFf?dw9WIETMS1d3a_|+{VI3wY~md39UQZ_`yOmcyB=_U zdWd#2d^w}n4B5Qarxt4RY!3KJg094tIo3L|Y>w1MVT?j4Nv)O;MKy}T@#5tc+goqB zck?P%B?SE