From ce5cd2f852399ab5f788812d1ea934bda0fbb121 Mon Sep 17 00:00:00 2001 From: Kristin Date: Tue, 3 Mar 2020 09:59:02 -0700 Subject: [PATCH 01/61] Adds initial directory structure for appdata in source and update from dev (#3724) * Update meta.yaml to rename conda package to isis from isis3 * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * Add directory structure for appdata in source Co-authored-by: Jesse Mapel Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette --- isis/CMakeLists.txt | 2 +- isis/appdata/autoreg/DELETEME.txt | 0 isis/appdata/images/icons/DELETEME.txt | 0 isis/appdata/images/targets/DELETEME.txt | 0 isis/appdata/labels/DELETEME.txt | 0 isis/appdata/maps/DELETEME.txt | 0 isis/appdata/serialnumbers/DELETEME.txt | 0 isis/src/base/apps/ddd2isis/ddd2isis.xml | 4 + isis/src/base/apps/ddd2isis/main.cpp | 7 + .../apps/ddd2isis/tsts/badBandBit/Makefile | 24 ++ isis/src/base/apps/spiceinit/spiceinit.cpp | 48 +-- isis/src/base/apps/spiceinit/spiceinit.xml | 17 +- isis/src/base/objs/Stretch/Stretch.cpp | 106 ++++++- isis/src/base/objs/Stretch/Stretch.h | 17 +- .../apps/kaguyatc2isis/kaguyatc2isis.cpp | 292 ++++++++++++++++++ .../kaguya/apps/kaguyatc2isis/kaguyatc2isis.h | 11 + isis/src/kaguya/apps/kaguyatc2isis/main.cpp | 283 +---------------- .../objs/StretchTool/AdvancedStretch.cpp | 61 +++- .../qisis/objs/StretchTool/AdvancedStretch.h | 8 +- .../StretchTool/AdvancedStretchDialog.cpp | 21 +- .../objs/StretchTool/AdvancedStretchDialog.h | 4 + .../objs/StretchTool/BinaryStretchType.cpp | 2 + .../objs/StretchTool/LinearStretchType.cpp | 3 +- .../objs/StretchTool/LinearStretchType.h | 1 - .../objs/StretchTool/ManualStretchType.cpp | 2 + .../objs/StretchTool/SawtoothStretchType.cpp | 2 + .../objs/StretchTool/SawtoothStretchType.h | 1 - .../qisis/objs/StretchTool/StretchTool.cpp | 181 +++++++++++ isis/src/qisis/objs/StretchTool/StretchTool.h | 3 + .../qisis/objs/StretchTool/StretchType.cpp | 17 +- isis/src/qisis/objs/StretchTool/StretchType.h | 6 +- isis/tests/FunctionalTestsKaguyatc2isis.cpp | 88 ++++++ .../TC1S2B0_01_05186N225E0040_mini.img | Bin 0 -> 19248 bytes .../TC1S2B0_01_05186N225E0040_mini.lbl | 131 ++++++++ recipe/meta.yaml | 2 +- 35 files changed, 1021 insertions(+), 323 deletions(-) create mode 100644 isis/appdata/autoreg/DELETEME.txt create mode 100644 isis/appdata/images/icons/DELETEME.txt create mode 100644 isis/appdata/images/targets/DELETEME.txt create mode 100644 isis/appdata/labels/DELETEME.txt create mode 100644 isis/appdata/maps/DELETEME.txt create mode 100644 isis/appdata/serialnumbers/DELETEME.txt create mode 100644 isis/src/base/apps/ddd2isis/tsts/badBandBit/Makefile create mode 100644 isis/src/kaguya/apps/kaguyatc2isis/kaguyatc2isis.cpp create mode 100644 isis/src/kaguya/apps/kaguyatc2isis/kaguyatc2isis.h create mode 100644 isis/tests/FunctionalTestsKaguyatc2isis.cpp create mode 100644 isis/tests/data/kaguyatc2isis/TC1S2B0_01_05186N225E0040_mini.img create mode 100644 isis/tests/data/kaguyatc2isis/TC1S2B0_01_05186N225E0040_mini.lbl diff --git a/isis/CMakeLists.txt b/isis/CMakeLists.txt index 24f7a2a986..75749b7452 100644 --- a/isis/CMakeLists.txt +++ b/isis/CMakeLists.txt @@ -33,7 +33,7 @@ set(PACKAGE "ISIS") set(PACKAGE_NAME "USGS ISIS") # Version number -set(VERSION "4.0.0") +set(VERSION "4.1.0") set(PACKAGE_VERSION ${VERSION}) # Full name and version number diff --git a/isis/appdata/autoreg/DELETEME.txt b/isis/appdata/autoreg/DELETEME.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/isis/appdata/images/icons/DELETEME.txt b/isis/appdata/images/icons/DELETEME.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/isis/appdata/images/targets/DELETEME.txt b/isis/appdata/images/targets/DELETEME.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/isis/appdata/labels/DELETEME.txt b/isis/appdata/labels/DELETEME.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/isis/appdata/maps/DELETEME.txt b/isis/appdata/maps/DELETEME.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/isis/appdata/serialnumbers/DELETEME.txt b/isis/appdata/serialnumbers/DELETEME.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/isis/src/base/apps/ddd2isis/ddd2isis.xml b/isis/src/base/apps/ddd2isis/ddd2isis.xml index 19548a0aff..bd072e3cc0 100644 --- a/isis/src/base/apps/ddd2isis/ddd2isis.xml +++ b/isis/src/base/apps/ddd2isis/ddd2isis.xml @@ -41,6 +41,10 @@ bands. Removed the internal default of the output parameter set to None so that an output file is now requried. Fixes #703. + + Updated the dataTypes QMap with a new mapping (32, 4) to handle ingesting + the updated uvflat files from malin. Fixes #3715. + diff --git a/isis/src/base/apps/ddd2isis/main.cpp b/isis/src/base/apps/ddd2isis/main.cpp index efae0dc7aa..ec6121a2e4 100644 --- a/isis/src/base/apps/ddd2isis/main.cpp +++ b/isis/src/base/apps/ddd2isis/main.cpp @@ -100,6 +100,7 @@ void IsisMain() { dataTypes.insert(1450903360, 8); dataTypes.insert(8, 1); dataTypes.insert(16, 2); + dataTypes.insert(32, 4); dataTypes.insert(48, 2); // Read bytes 16-19 to get the bit type @@ -130,6 +131,12 @@ void IsisMain() { nOffset = 1024; } + if (dataTypeBytes == 0) { + string msg = "The value totalBandBits [" + to_string(totalBandBits) + "] does not map " + + "to any byte size in the dataTypes table."; + throw IException(IException::Programmer, msg, _FILEINFO_); + } + fin.close(); PvlGroup results("FileInfo"); diff --git a/isis/src/base/apps/ddd2isis/tsts/badBandBit/Makefile b/isis/src/base/apps/ddd2isis/tsts/badBandBit/Makefile new file mode 100644 index 0000000000..5dea576ab3 --- /dev/null +++ b/isis/src/base/apps/ddd2isis/tsts/badBandBit/Makefile @@ -0,0 +1,24 @@ +APPNAME = ddd2isis + +include $(ISISROOT)/make/isismake.tsts + +commands: + # TEST: Throws an error when trying to open the file + if [ `$(APPNAME) \ + FROM=$(INPUT)/bad_flat.ddd \ + TO=$(OUTPUT)/bad_flat.cub \ + 2> $(OUTPUT)/temp.txt > /dev/null` ]; \ + then true; \ + fi; + + # TEST: Throws an error when trying to read from a cub instead of ddd + if [ `$(APPNAME) \ + FROM=$(INPUT)/bad_flat.cub \ + TO=$(OUTPUT)/bad_flat.cub \ + 2>> $(OUTPUT)/temp.txt > /dev/null` ]; \ + then true; \ + fi; + + # Removes input file path up until input + $(SED) 's+\[.*/input+[input+' $(OUTPUT)/temp.txt > $(OUTPUT)/errorTruth.txt; + $(RM) $(OUTPUT)/temp.txt diff --git a/isis/src/base/apps/spiceinit/spiceinit.cpp b/isis/src/base/apps/spiceinit/spiceinit.cpp index 97c7ea9347..9302fadd5e 100644 --- a/isis/src/base/apps/spiceinit/spiceinit.cpp +++ b/isis/src/base/apps/spiceinit/spiceinit.cpp @@ -23,7 +23,7 @@ using namespace std; -namespace Isis { +namespace Isis { void getUserEnteredKernel(UserInterface &ui, const QString ¶m, Kernel &kernel); bool tryKernels(Cube *icube, Process &p, UserInterface &ui, Pvl *log, @@ -42,16 +42,16 @@ namespace Isis { * @param ui The Application UI * @param(out) log The Pvl that attempted kernel sets will be logged to */ - void spiceinit(UserInterface &ui, Pvl *log) { + void spiceinit(UserInterface &ui, Pvl *log) { // Open the input cube Process p; - + CubeAttributeInput cai; Cube *icube = p.SetInputCube(ui.GetFileName("FROM"), cai, ReadWrite); spiceinit(icube, ui, log); p.EndProcess(); } - + /** * Spiceinit a Cube @@ -76,7 +76,7 @@ namespace Isis { QString msg = "At least one SPK quality must be selected"; throw IException(IException::User, msg, _FILEINFO_); } - + // Make sure it is not projected Projection *proj = NULL; try { @@ -92,7 +92,7 @@ namespace Isis { } Pvl lab = *icube->label(); - + // if cube has existing polygon delete it if (icube->label()->hasObject("Polygon")) { icube->label()->deleteObject("Polygon"); @@ -144,7 +144,7 @@ namespace Isis { Kernel lk, pck, targetSpk, fk, ik, sclk, spk, iak, dem, exk; QList< priority_queue > ck; lk = baseKernels.leapSecond(lab); - pck = baseKernels.targetAttitudeShape(lab); + pck = ckKernels.targetAttitudeShape(lab); targetSpk = baseKernels.targetPosition(lab); ik = baseKernels.instrument(lab); sclk = baseKernels.spacecraftClock(lab); @@ -152,7 +152,7 @@ namespace Isis { fk = ckKernels.frame(lab); ck = ckKernels.spacecraftPointing(lab); spk = spkKernels.spacecraftPosition(lab); - + if (ui.GetBoolean("CKNADIR")) { // Only add nadir if no spacecraft pointing found, so we will set (priority) type to 0. QStringList nadirCk; @@ -198,7 +198,7 @@ namespace Isis { _FILEINFO_); } else if (ui.WasEntered("CK")) { - // if user entered ck + // if user entered ck // empty ck queue list found in system while (ck.size()) { ck.pop_back(); @@ -209,10 +209,10 @@ namespace Isis { emptyKernelQueue.push(Kernel()); ck.push_back(emptyKernelQueue); } - + // while the first queue is not empty, loop through it until tryKernels() succeeds while (ck.at(0).size() != 0 && !kernelSuccess) { - // create an empty kernel + // create an empty kernel Kernel realCkKernel; QStringList ckKernelList; @@ -236,13 +236,13 @@ namespace Isis { Kernel topPriority = ck.at(i).top(); ckKernelList.append(topPriority.kernels()); // set the type to equal the type of the to priority of the first - //queue - realCkKernel.setType(topPriority.type()); + //queue + realCkKernel.setType(topPriority.type()); } } } - // pop the top priority ck off only the first queue so that the next + // pop the top priority ck off only the first queue so that the next // iteration will test the next highest priority of the first queue with // the top priority of each of the other queues. ck[0].pop(); @@ -267,14 +267,14 @@ namespace Isis { } /** - * If the user entered the parameter param, then kernel is replaced by the + * If the user entered the parameter param, then kernel is replaced by the * user's values and quality is reset to 0. Otherwise, the kernels loaded by the * KernelDb class will be kept. * * @param param Name of the kernel input parameter - * - * @param kernel Kernel object to be overwritten if the specified user parameter - * was entered. + * + * @param kernel Kernel object to be overwritten if the specified user parameter + * was entered. */ void getUserEnteredKernel(UserInterface &ui, const QString ¶m, Kernel &kernel) { if (ui.WasEntered(param)) { @@ -395,7 +395,7 @@ namespace Isis { // Get rid of old keywords from previously inited cubes if (currentKernels.hasKeyword("Source")) currentKernels.deleteKeyword("Source"); - + if (currentKernels.hasKeyword("SpacecraftPointing")) currentKernels.deleteKeyword("SpacecraftPointing"); @@ -450,7 +450,7 @@ namespace Isis { try { cam = icube->camera(); currentKernels = icube->group("Kernels"); - + PvlKeyword source("Source"); if (cam->isUsingAle()) { @@ -461,11 +461,11 @@ namespace Isis { } currentKernels += source; - icube->putGroup(currentKernels); + icube->putGroup(currentKernels); if (log){ log->addGroup(currentKernels); - } - + } + } catch(IException &e) { Pvl errPvl = e.toPvl(); @@ -665,7 +665,7 @@ namespace Isis { continue; } } - + if (log) { log->addGroup(logGrp); } diff --git a/isis/src/base/apps/spiceinit/spiceinit.xml b/isis/src/base/apps/spiceinit/spiceinit.xml index 6ec49807cf..391fe2a9c4 100644 --- a/isis/src/base/apps/spiceinit/spiceinit.xml +++ b/isis/src/base/apps/spiceinit/spiceinit.xml @@ -90,9 +90,9 @@ not have their paths expanded. This is to allow variables like $msg/ to work correctly.

- The spiceinit program will also add the RayTraceEngine, OnError, and Tolerance keywords to the Kernels - group if specified in the IsisPreferences file. If included, these keywords specify the ray-tracing engine to use and how to use it for shapemodels. - Please see the IsisPreferences file for more details. + The spiceinit program will also add the RayTraceEngine, OnError, and Tolerance keywords to the Kernels + group if specified in the IsisPreferences file. If included, these keywords specify the ray-tracing engine to use and how to use it for shapemodels. + Please see the IsisPreferences file for more details.

Troubleshooting: If spiceinit is failing with the error @@ -279,17 +279,22 @@ Updated spiceinit to retain ShapeModel-related keywords set by the ShapeModelFactory and add them to the kernel - group. Like other keywords in the kernels group, if they are present at the beginning of a spiceinit run (if we are re-spiceiniting) - they are removed. + group. Like other keywords in the kernels group, if they are present at the beginning of a spiceinit run (if we are re-spiceiniting) + they are removed. - Updated spiceinit to remove code dealing with the CubeSupported Pvl Keyword, from the ShapeModel group in the IsisPreferences file, + Updated spiceinit to remove code dealing with the CubeSupported Pvl Keyword, from the ShapeModel group in the IsisPreferences file, which has been removed. Made change to camera construction error throw for better reporting on uninstantiated cameras. Fixes #5163. + + Changed PCK selection to use the same qualities as CK so that target body parameters + derived from bundle adjustment can be used alongside CKs derived from bundle adjustment. + Fixes #3669. + diff --git a/isis/src/base/objs/Stretch/Stretch.cpp b/isis/src/base/objs/Stretch/Stretch.cpp index 24458fd21e..a16f37379b 100644 --- a/isis/src/base/objs/Stretch/Stretch.cpp +++ b/isis/src/base/objs/Stretch/Stretch.cpp @@ -38,7 +38,7 @@ namespace Isis { * Constructs a Stretch object with default mapping of special pixel values to * themselves. */ - Stretch::Stretch() { + Stretch::Stretch() : Blob("ImageStretch", "Stretch") { p_null = Isis::NULL8; p_lis = Isis::LOW_INSTR_SAT8; p_lrs = Isis::LOW_REPR_SAT8; @@ -47,8 +47,29 @@ namespace Isis { p_minimum = p_lrs; p_maximum = p_hrs; p_pairs = 0; + p_type = "None"; } + + /** + * Constructs a Stretch object with default mapping of special pixel values to + * themselves and a provided name. + * + * @param name Name to use for Stretch + */ + Stretch::Stretch(QString name) : Blob(name, "Stretch") { + p_null = Isis::NULL8; + p_lis = Isis::LOW_INSTR_SAT8; + p_lrs = Isis::LOW_REPR_SAT8; + p_his = Isis::HIGH_INSTR_SAT8; + p_hrs = Isis::HIGH_REPR_SAT8; + p_minimum = p_lrs; + p_maximum = p_hrs; + p_pairs = 0; + p_type = "None"; + } + + /** * Adds a stretch pair to the list of pairs. Note that all input pairs must be * in ascending order. @@ -410,6 +431,89 @@ namespace Isis { this->p_output = other.p_output; } + + /** + * Read saved Stretch data from a Cube into this object. + * + * This is called by Blob::Read() and is the actual data reading function + * ultimately called when running something like cube->read(stretch); + * + * @param is input stream containing the saved Stretch information + */ + void Stretch::ReadData(std::istream &is) { + // Set the Stretch Type + p_type = p_blobPvl["StretchType"][0]; + + // Read in the Stretch Pairs + streampos sbyte = p_startByte - 1; + is.seekg(sbyte, std::ios::beg); + if (!is.good()) { + QString msg = "Error preparing to read data from " + p_type + + " [" + p_blobName + "]"; + throw IException(IException::Io, msg, _FILEINFO_); + } + + char *buf = new char[p_nbytes+1]; + memset(buf, 0, p_nbytes + 1); + + is.read(buf, p_nbytes); + + // Read buffer data into a QString so we can call Parse() + std::string stringFromBuffer(buf); + QString qStringFromBuffer = QString::fromStdString(stringFromBuffer); + Parse(qStringFromBuffer); + + delete [] buf; + + if (!is.good()) { + QString msg = "Error reading data from " + p_type + " [" + + p_blobName + "]"; + throw IException(IException::Io, msg, _FILEINFO_); + } + } + + + /** + * Get the Type of Stretch. This is only used by the AdvancedStretchTool. + * + * @return QString Type of Stretch. + */ + QString Stretch::getType(){ + return p_type; + } + + + /** + * Set the Type of Stretch. This is only used by the AdvancedStretchTool. + * + * @param stretchType The type of stretch. + */ + void Stretch::setType(QString stretchType){ + // check to see if valid input + p_type = stretchType; + } + + + /** + * Initializes for writing stretch to cube blob + */ + void Stretch::WriteInit() { + p_nbytes = Text().toStdString().size(); + } + + + /** + * Writes the stretch information to a cube. + * + * This is called by Blob::write() and is ultimately the function + * called when running something like cube->write(stretch); + * + * @param os output stream to write the stretch data to. + */ + void Stretch::WriteData(std::fstream &os) { + os.write(Text().toStdString().c_str(), p_nbytes); + } + } // end namespace isis diff --git a/isis/src/base/objs/Stretch/Stretch.h b/isis/src/base/objs/Stretch/Stretch.h index 144bb41251..5da48bbe74 100644 --- a/isis/src/base/objs/Stretch/Stretch.h +++ b/isis/src/base/objs/Stretch/Stretch.h @@ -26,6 +26,7 @@ #include #include "Pvl.h" #include "Histogram.h" +#include "Blob.h" namespace Isis { /** @@ -67,9 +68,10 @@ namespace Isis { * Created second Parse method for handling pairs where the * input side is a perentage. Fixed Input and Output getters * to check both sides of boundry condition for valid data - * + * @history 2020-02-27 Kristin Berry - Updated to inherit from Blob so Stretches can be + * saved and restored from cubes. */ - class Stretch { + class Stretch : public Isis::Blob { private: std::vector p_input; //!< Array for input side of stretch pairs std::vector p_output; //!< Array for output side of stretch pairs @@ -88,10 +90,13 @@ namespace Isis { double p_minimum; //! NextPair(QString &pairs); public: Stretch(); + Stretch(QString name); //! Destroys the Stretch object ~Stretch() {}; @@ -177,6 +182,9 @@ namespace Isis { return p_pairs; }; + QString getType(); + void setType(QString type); + double Input(const int index) const; double Output(const int index) const; @@ -188,6 +196,11 @@ namespace Isis { }; void CopyPairs(const Stretch &other); + + protected: + void WriteInit(); + void ReadData(std::istream &is); + void WriteData(std::fstream &os); }; }; diff --git a/isis/src/kaguya/apps/kaguyatc2isis/kaguyatc2isis.cpp b/isis/src/kaguya/apps/kaguyatc2isis/kaguyatc2isis.cpp new file mode 100644 index 0000000000..f80d772d56 --- /dev/null +++ b/isis/src/kaguya/apps/kaguyatc2isis/kaguyatc2isis.cpp @@ -0,0 +1,292 @@ +#include "kaguyatc2isis.h" + +#include +#include + +#include "FileName.h" +#include "ProcessImportPds.h" +#include "UserInterface.h" +#include "Pvl.h" + +using namespace std; + +namespace Isis { + void kaguyatc2isis(UserInterface &ui, Pvl *log) { + ProcessImportPds importPds; + FileName inFile = ui.GetFileName("FROM"); + QString labelFile = inFile.expanded(); + Pvl label(labelFile); + + QString dataFile = ""; + if ( inFile.extension().toLower() == "lbl" ) { + dataFile = inFile.path() + "/" + (QString) label.findKeyword("FILE_NAME"); + } + else { + dataFile = labelFile; + } + + QString id = ""; + try { + id = (QString) label.findKeyword("DATA_SET_ID"); + } + catch(IException &e) { + QString msg = "Unable to read [DATA_SET_ID] from label file [" + + labelFile + "]"; + throw IException(e, IException::Unknown, msg, _FILEINFO_); + } + + id = id.simplified().trimmed(); + if (id != "TC_MAP" + && id != "TCO_MAP" + && id != "TC1_Level2B" + && id != "TC2_Level2B" + && id != "SLN-L-TC-3-S-LEVEL2B0-V1.0" + && id != "SLN-L-TC-5-MORNING-MAP-V4.0") { + QString msg = "Input file [" + labelFile + "] does not appear to be " + + "a supported Kaguya Terrain Camera format. " + + "DATA_SET_ID is [" + id + "]" + + "Valid formats include [TC_MAP, TCO_MAP, TC1_Level2B, " + + "SLN-L-TC-3-S-LEVEL2B0-V1.0, SLN-L-TC-5-MORNING-MAP-V4.0]"; + throw IException(IException::Unknown, msg, _FILEINFO_); + } + + if (!label.hasKeyword("TARGET_NAME")) { + label.addKeyword(PvlKeyword("TARGET_NAME", "MOON"), Pvl::Replace); + } + + importPds.SetPdsFile(label, dataFile); + + CubeAttributeOutput &att = ui.GetOutputAttribute("TO"); + Cube *outcube = importPds.SetOutputCube(ui.GetFileName("TO"), att); + + // Get user entered special pixel ranges + if (ui.GetBoolean("SETNULLRANGE")) { + importPds.SetNull(ui.GetDouble("NULLMIN"), ui.GetDouble("NULLMAX")); + } + if (ui.GetBoolean("SETHRSRANGE")) { + importPds.SetHRS(ui.GetDouble("HRSMIN"), ui.GetDouble("HRSMAX")); + } + if (ui.GetBoolean("SETHISRANGE")) { + importPds.SetHIS(ui.GetDouble("HISMIN"), ui.GetDouble("HISMAX")); + } + if (ui.GetBoolean("SETLRSRANGE")) { + importPds.SetLRS(ui.GetDouble("LRSMIN"), ui.GetDouble("LRSMAX")); + } + if (ui.GetBoolean("SETLISRANGE")) { + importPds.SetLIS(ui.GetDouble("LISMIN"), ui.GetDouble("LISMAX")); + } + + importPds.SetOrganization(Isis::ProcessImport::BSQ); + + importPds.StartProcess(); + + // Get the mapping labels + Pvl otherLabels; + importPds.TranslatePdsProjection(otherLabels); + + // Translate the remaining MI MAP labels + PvlGroup dataDir(Preference::Preferences().findGroup("DataDirectory")); + QString transDir = (QString) dataDir["Kaguya"] + "/translations/"; + + FileName transFile(transDir + "kaguyaTcBandBin.trn"); + PvlToPvlTranslationManager bandBinXlater(label, transFile.expanded()); + bandBinXlater.Auto(otherLabels); + + transFile = transDir + "kaguyaTcInstrument.trn"; + PvlToPvlTranslationManager instXlater(label, transFile.expanded()); + instXlater.Auto(otherLabels); + + transFile = transDir + "kaguyaTcArchive.trn"; + PvlToPvlTranslationManager archiveXlater(label, transFile.expanded()); + archiveXlater.Auto(otherLabels); + + transFile = transDir + "kaguyaTcKernels.trn"; + PvlToPvlTranslationManager kernelsXlater(label, transFile.expanded()); + kernelsXlater.Auto(otherLabels); + + if ( otherLabels.hasGroup("Mapping") + && otherLabels.findGroup("Mapping").keywords() > 0 ) { + outcube->putGroup(otherLabels.findGroup("Mapping")); + } + if ( otherLabels.hasGroup("Instrument") + && otherLabels.findGroup("Instrument").keywords() > 0 ) { + PvlGroup &inst = otherLabels.findGroup("Instrument", Pvl::Traverse); + if (inst.hasKeyword("StartTime")) { + // Remove trailing "Z" from keyword + PvlKeyword &startTime = inst["StartTime"]; + QString startTimeString = startTime[0]; + if (QString::compare(startTimeString.at(startTimeString.size() - 1), "Z", Qt::CaseInsensitive) == 0){ + startTimeString = startTimeString.left(startTimeString.length() - 1); + startTime.setValue(startTimeString); + } + } + if (inst.hasKeyword("StopTime")) { + // Remove trailing "Z" from keyword + PvlKeyword &stopTime = inst["StopTime"]; + QString stopTimeString = stopTime[0]; + if (QString::compare(stopTimeString.at(stopTimeString.size() - 1), "Z", Qt::CaseInsensitive) == 0){ + stopTimeString = stopTimeString.left(stopTimeString.length() - 1); + stopTime.setValue(stopTimeString); + } + } + outcube->putGroup(otherLabels.findGroup("Instrument")); + /* + // This code is not needed now, but is included here commented-out in case it becomes necessary + // to support the swath modes by setting their NaifFrameCodes in the future. The swath mode + // setting is currently handled entirely via the camera model. + + // add kernels group + QString instId = inst["InstrumentId"]; + QString encoding = inst["EncodingType"]; + QString swath = inst["SwathModeId"]; + PvlGroup kern("Kernels"); + if (instId == "TC1") { + if (swath == "Full") { + if (productSetId == "TC_w_Level2B0") { + if (encoding == "DCT") { + kern += PvlKeyword("NaifFrameCode", toString(-131352)); + } + else { // encoding == "N/A" so no compression + kern += PvlKeyword("NaifFrameCode", toString(-131353)); + } + } + else if (productSetId == "TC_s_Level2B0") { + if (encoding == "DCT") { + kern += PvlKeyword("NaifFrameCode", toString(-131354)); + } + else { // encoding == "N/A" so no compression + kern += PvlKeyword("NaifFrameCode", toString(-131355)); + } + } + } + else if (swath == "Nominal") { + if (productSetId == "TC_w_Level2B0") { + if (encoding == "DCT") { + kern += PvlKeyword("NaifFrameCode", toString(-131356)); + } + else { // encoding == "N/A" so no compression + kern += PvlKeyword("NaifFrameCode", toString(-131357)); + } + } + else if (productSetId == "TC_s_Level2B0") { + if (encoding == "DCT") { + kern += PvlKeyword("NaifFrameCode", toString(-131358)); + } + else { // encoding == "N/A" so no compression + kern += PvlKeyword("NaifFrameCode", toString(-131359)); + } + } + } + else { // swath == "Half" + if (productSetId == "TC_w_Level2B0") { + if (encoding == "DCT") { + kern += PvlKeyword("NaifFrameCode", toString(-131360)); + } + else { // encoding == "N/A" so no compression + kern += PvlKeyword("NaifFrameCode", toString(-131361)); + } + } + else if (productSetId == "TC_s_Level2B0") { + if (encoding == "DCT") { + kern += PvlKeyword("NaifFrameCode", toString(-131362)); + } + else { // encoding == "N/A" so no compression + kern += PvlKeyword("NaifFrameCode", toString(-131363)); + } + } + } + } + if (instId == "TC2") { + if (swath == "Full") { + if (productSetId == "TC_w_Level2B0") { + if (encoding == "DCT") { + kern += PvlKeyword("NaifFrameCode", toString(-131372)); + } + else { // encoding == "N/A" so no compression + kern += PvlKeyword("NaifFrameCode", toString(-131373)); + } + } + else if (productSetId == "TC_s_Level2B0") { + if (encoding == "DCT") { + kern += PvlKeyword("NaifFrameCode", toString(-131374)); + } + else { // encoding == "N/A" so no compression + kern += PvlKeyword("NaifFrameCode", toString(-131375)); + } + } + } + else if (swath == "Nominal") { + if (productSetId == "TC_w_Level2B0") { + if (encoding == "DCT") { + kern += PvlKeyword("NaifFrameCode", toString(-131376)); + } + else { // encoding == "N/A" so no compression + kern += PvlKeyword("NaifFrameCode", toString(-131377)); + } + } + else if (productSetId == "TC_s_Level2B0") { + if (encoding == "DCT") { + kern += PvlKeyword("NaifFrameCode", toString(-131378)); + } + else { // encoding == "N/A" so no compression + kern += PvlKeyword("NaifFrameCode", toString(-131379)); + } + } + } + else { // swath == "Half" + if (productSetId == "TC_w_Level2B0") { + if (encoding == "DCT") { + kern += PvlKeyword("NaifFrameCode", toString(-131380)); + } + else { // encoding == "N/A" so no compression + kern += PvlKeyword("NaifFrameCode", toString(-131381)); + } + } + else if (productSetId == "TC_s_Level2B0") { + if (encoding == "DCT") { + kern += PvlKeyword("NaifFrameCode", toString(-131382)); + } + else { // encoding == "N/A" so no compression + kern += PvlKeyword("NaifFrameCode", toString(-131383)); + } + } + } + } + */ + } + if ( otherLabels.hasGroup("BandBin") + && otherLabels.findGroup("BandBin").keywords() > 0 ) { + + PvlGroup &bandBinGroup = otherLabels.findGroup("BandBin"); + if (!bandBinGroup.hasKeyword("FilterName")) { + bandBinGroup += PvlKeyword("FilterName", "BroadBand"); + } + if (!bandBinGroup.hasKeyword("Center")) { + bandBinGroup += PvlKeyword("Center", "640", "nanometers"); + } + if (!bandBinGroup.hasKeyword("Width")) { + bandBinGroup += PvlKeyword("Width", "420", "nanometers"); + } + outcube->putGroup(bandBinGroup); + } + else { + // Add the BandBin group + PvlGroup bandBinGroup("BandBin"); + bandBinGroup += PvlKeyword("FilterName", "BroadBand"); + bandBinGroup += PvlKeyword("Center", "640nm"); + bandBinGroup += PvlKeyword("Width", "420nm"); + outcube->putGroup(bandBinGroup); + } + + if ( otherLabels.hasGroup("Archive") + && otherLabels.findGroup("Archive").keywords() > 0 ) { + outcube->putGroup(otherLabels.findGroup("Archive")); + } + if ( otherLabels.hasGroup("Kernels") + && otherLabels.findGroup("Kernels").keywords() > 0 ) { + outcube->putGroup(otherLabels.findGroup("Kernels", Pvl::Traverse)); + } + + importPds.EndProcess(); + } +} diff --git a/isis/src/kaguya/apps/kaguyatc2isis/kaguyatc2isis.h b/isis/src/kaguya/apps/kaguyatc2isis/kaguyatc2isis.h new file mode 100644 index 0000000000..9c2db22777 --- /dev/null +++ b/isis/src/kaguya/apps/kaguyatc2isis/kaguyatc2isis.h @@ -0,0 +1,11 @@ +#ifndef kaguyatc2isis_h +#define kaguyatc2isis_h + +#include "UserInterface.h" +#include "Pvl.h" + +namespace Isis { + extern void kaguyatc2isis(UserInterface &ui, Pvl *log); +} + +#endif diff --git a/isis/src/kaguya/apps/kaguyatc2isis/main.cpp b/isis/src/kaguya/apps/kaguyatc2isis/main.cpp index 86e995041b..c92d257f8f 100644 --- a/isis/src/kaguya/apps/kaguyatc2isis/main.cpp +++ b/isis/src/kaguya/apps/kaguyatc2isis/main.cpp @@ -1,288 +1,27 @@ #include "Isis.h" -#include -#include +#include "kaguyatc2isis.h" -#include "FileName.h" -#include "ProcessImportPds.h" -#include "UserInterface.h" +#include "Application.h" +#include "Pvl.h" using namespace std; using namespace Isis; void IsisMain() { - ProcessImportPds importPds; UserInterface &ui = Application::GetUserInterface(); - - FileName inFile = ui.GetFileName("FROM"); - QString labelFile = inFile.expanded(); - Pvl label(labelFile); - - QString dataFile = ""; - if ( inFile.extension().toLower() == "lbl" ) { - dataFile = inFile.path() + (QString) label.findKeyword("FILE_NAME"); - } - else { - dataFile = labelFile; - } - - QString id = ""; + Pvl appLog; try { - id = (QString) label.findKeyword("DATA_SET_ID"); - } - catch(IException &e) { - QString msg = "Unable to read [DATA_SET_ID] from label file [" - + labelFile + "]"; - throw IException(e, IException::Unknown, msg, _FILEINFO_); - } - - id = id.simplified().trimmed(); - if (id != "TC_MAP" - && id != "TCO_MAP" - && id != "TC1_Level2B" - && id != "TC2_Level2B") { - QString msg = "Input file [" + labelFile + "] does not appear to be " + - "a supported Kaguya Terrain Camera format. " + - "DATA_SET_ID is [" + id + "]" + - "Valid formats include [TC_MAP, TCO_MAP, TC1_Level2B]"; - throw IException(IException::Unknown, msg, _FILEINFO_); - } - - if (!label.hasKeyword("TARGET_NAME")) { - label.addKeyword(PvlKeyword("TARGET_NAME", "MOON"), Pvl::Replace); - } - - importPds.SetPdsFile(label, dataFile); - - Cube *outcube = importPds.SetOutputCube("TO"); - - // Get user entered special pixel ranges - if (ui.GetBoolean("SETNULLRANGE")) { - importPds.SetNull(ui.GetDouble("NULLMIN"), ui.GetDouble("NULLMAX")); - } - if (ui.GetBoolean("SETHRSRANGE")) { - importPds.SetHRS(ui.GetDouble("HRSMIN"), ui.GetDouble("HRSMAX")); - } - if (ui.GetBoolean("SETHISRANGE")) { - importPds.SetHIS(ui.GetDouble("HISMIN"), ui.GetDouble("HISMAX")); - } - if (ui.GetBoolean("SETLRSRANGE")) { - importPds.SetLRS(ui.GetDouble("LRSMIN"), ui.GetDouble("LRSMAX")); - } - if (ui.GetBoolean("SETLISRANGE")) { - importPds.SetLIS(ui.GetDouble("LISMIN"), ui.GetDouble("LISMAX")); + kaguyatc2isis(ui, &appLog); } - - importPds.SetOrganization(Isis::ProcessImport::BSQ); - - importPds.StartProcess(); - - // Get the mapping labels - Pvl otherLabels; - importPds.TranslatePdsProjection(otherLabels); - - // Translate the remaining MI MAP labels - PvlGroup dataDir(Preference::Preferences().findGroup("DataDirectory")); - QString transDir = (QString) dataDir["Kaguya"] + "/translations/"; - - FileName transFile(transDir + "kaguyaTcBandBin.trn"); - PvlToPvlTranslationManager bandBinXlater(label, transFile.expanded()); - bandBinXlater.Auto(otherLabels); - - transFile = transDir + "kaguyaTcInstrument.trn"; - PvlToPvlTranslationManager instXlater(label, transFile.expanded()); - instXlater.Auto(otherLabels); - - transFile = transDir + "kaguyaTcArchive.trn"; - PvlToPvlTranslationManager archiveXlater(label, transFile.expanded()); - archiveXlater.Auto(otherLabels); - - transFile = transDir + "kaguyaTcKernels.trn"; - PvlToPvlTranslationManager kernelsXlater(label, transFile.expanded()); - kernelsXlater.Auto(otherLabels); - - if ( otherLabels.hasGroup("Mapping") - && otherLabels.findGroup("Mapping").keywords() > 0 ) { - outcube->putGroup(otherLabels.findGroup("Mapping")); - } - if ( otherLabels.hasGroup("Instrument") - && otherLabels.findGroup("Instrument").keywords() > 0 ) { - PvlGroup &inst = otherLabels.findGroup("Instrument", Pvl::Traverse); - if (inst.hasKeyword("StartTime")) { - // Remove trailing "Z" from keyword - PvlKeyword &startTime = inst["StartTime"]; - QString startTimeString = startTime[0]; - if (QString::compare(startTimeString.at(startTimeString.size() - 1), "Z", Qt::CaseInsensitive) == 0){ - startTimeString = startTimeString.left(startTimeString.length() - 1); - startTime.setValue(startTimeString); - } - } - if (inst.hasKeyword("StopTime")) { - // Remove trailing "Z" from keyword - PvlKeyword &stopTime = inst["StopTime"]; - QString stopTimeString = stopTime[0]; - if (QString::compare(stopTimeString.at(stopTimeString.size() - 1), "Z", Qt::CaseInsensitive) == 0){ - stopTimeString = stopTimeString.left(stopTimeString.length() - 1); - stopTime.setValue(stopTimeString); - } - } - outcube->putGroup(otherLabels.findGroup("Instrument")); -/* - // This code is not needed now, but is included here commented-out in case it becomes necessary - // to support the swath modes by setting their NaifFrameCodes in the future. The swath mode - // setting is currently handled entirely via the camera model. - - // add kernels group - QString instId = inst["InstrumentId"]; - QString encoding = inst["EncodingType"]; - QString swath = inst["SwathModeId"]; - PvlGroup kern("Kernels"); - if (instId == "TC1") { - if (swath == "Full") { - if (productSetId == "TC_w_Level2B0") { - if (encoding == "DCT") { - kern += PvlKeyword("NaifFrameCode", toString(-131352)); - } - else { // encoding == "N/A" so no compression - kern += PvlKeyword("NaifFrameCode", toString(-131353)); - } - } - else if (productSetId == "TC_s_Level2B0") { - if (encoding == "DCT") { - kern += PvlKeyword("NaifFrameCode", toString(-131354)); - } - else { // encoding == "N/A" so no compression - kern += PvlKeyword("NaifFrameCode", toString(-131355)); - } - } - } - else if (swath == "Nominal") { - if (productSetId == "TC_w_Level2B0") { - if (encoding == "DCT") { - kern += PvlKeyword("NaifFrameCode", toString(-131356)); - } - else { // encoding == "N/A" so no compression - kern += PvlKeyword("NaifFrameCode", toString(-131357)); - } - } - else if (productSetId == "TC_s_Level2B0") { - if (encoding == "DCT") { - kern += PvlKeyword("NaifFrameCode", toString(-131358)); - } - else { // encoding == "N/A" so no compression - kern += PvlKeyword("NaifFrameCode", toString(-131359)); - } - } - } - else { // swath == "Half" - if (productSetId == "TC_w_Level2B0") { - if (encoding == "DCT") { - kern += PvlKeyword("NaifFrameCode", toString(-131360)); - } - else { // encoding == "N/A" so no compression - kern += PvlKeyword("NaifFrameCode", toString(-131361)); - } - } - else if (productSetId == "TC_s_Level2B0") { - if (encoding == "DCT") { - kern += PvlKeyword("NaifFrameCode", toString(-131362)); - } - else { // encoding == "N/A" so no compression - kern += PvlKeyword("NaifFrameCode", toString(-131363)); - } - } - } - } - if (instId == "TC2") { - if (swath == "Full") { - if (productSetId == "TC_w_Level2B0") { - if (encoding == "DCT") { - kern += PvlKeyword("NaifFrameCode", toString(-131372)); - } - else { // encoding == "N/A" so no compression - kern += PvlKeyword("NaifFrameCode", toString(-131373)); - } - } - else if (productSetId == "TC_s_Level2B0") { - if (encoding == "DCT") { - kern += PvlKeyword("NaifFrameCode", toString(-131374)); - } - else { // encoding == "N/A" so no compression - kern += PvlKeyword("NaifFrameCode", toString(-131375)); - } - } - } - else if (swath == "Nominal") { - if (productSetId == "TC_w_Level2B0") { - if (encoding == "DCT") { - kern += PvlKeyword("NaifFrameCode", toString(-131376)); - } - else { // encoding == "N/A" so no compression - kern += PvlKeyword("NaifFrameCode", toString(-131377)); - } - } - else if (productSetId == "TC_s_Level2B0") { - if (encoding == "DCT") { - kern += PvlKeyword("NaifFrameCode", toString(-131378)); - } - else { // encoding == "N/A" so no compression - kern += PvlKeyword("NaifFrameCode", toString(-131379)); - } - } - } - else { // swath == "Half" - if (productSetId == "TC_w_Level2B0") { - if (encoding == "DCT") { - kern += PvlKeyword("NaifFrameCode", toString(-131380)); - } - else { // encoding == "N/A" so no compression - kern += PvlKeyword("NaifFrameCode", toString(-131381)); - } - } - else if (productSetId == "TC_s_Level2B0") { - if (encoding == "DCT") { - kern += PvlKeyword("NaifFrameCode", toString(-131382)); - } - else { // encoding == "N/A" so no compression - kern += PvlKeyword("NaifFrameCode", toString(-131383)); - } - } - } + catch (...) { + for (auto grpIt = appLog.beginGroup(); grpIt != appLog.endGroup(); grpIt++) { + Application::Log(*grpIt); } - */ + throw; } - if ( otherLabels.hasGroup("BandBin") - && otherLabels.findGroup("BandBin").keywords() > 0 ) { - PvlGroup &bandBinGroup = otherLabels.findGroup("BandBin"); - if (!bandBinGroup.hasKeyword("FilterName")) { - bandBinGroup += PvlKeyword("FilterName", "BroadBand"); - } - if (!bandBinGroup.hasKeyword("Center")) { - bandBinGroup += PvlKeyword("Center", "640", "nanometers"); - } - if (!bandBinGroup.hasKeyword("Width")) { - bandBinGroup += PvlKeyword("Width", "420", "nanometers"); - } - outcube->putGroup(bandBinGroup); - } - else { - // Add the BandBin group - PvlGroup bandBinGroup("BandBin"); - bandBinGroup += PvlKeyword("FilterName", "BroadBand"); - bandBinGroup += PvlKeyword("Center", "640nm"); - bandBinGroup += PvlKeyword("Width", "420nm"); - outcube->putGroup(bandBinGroup); + for (auto grpIt = appLog.beginGroup(); grpIt != appLog.endGroup(); grpIt++){ + Application::Log(*grpIt); } - - if ( otherLabels.hasGroup("Archive") - && otherLabels.findGroup("Archive").keywords() > 0 ) { - outcube->putGroup(otherLabels.findGroup("Archive")); - } - if ( otherLabels.hasGroup("Kernels") - && otherLabels.findGroup("Kernels").keywords() > 0 ) { - outcube->putGroup(otherLabels.findGroup("Kernels", Pvl::Traverse)); - } - - importPds.EndProcess(); } diff --git a/isis/src/qisis/objs/StretchTool/AdvancedStretch.cpp b/isis/src/qisis/objs/StretchTool/AdvancedStretch.cpp index ae237ddd05..6b41d0b892 100644 --- a/isis/src/qisis/objs/StretchTool/AdvancedStretch.cpp +++ b/isis/src/qisis/objs/StretchTool/AdvancedStretch.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include "Stretch.h" #include "IString.h" @@ -35,40 +36,52 @@ namespace Isis { typeSelectionArea->setLayout(new QHBoxLayout()); typeSelectionArea->layout()->addWidget(new QLabel("Stretch Type")); - QComboBox *stretchTypeSelection = new QComboBox(); - stretchTypeSelection->addItem("Linear", 0); - stretchTypeSelection->addItem("Sawtooth", 1); - stretchTypeSelection->addItem("Binary", 2); - stretchTypeSelection->addItem("Manual", 3); + p_stretchTypeSelection = new QComboBox(); + p_stretchTypeSelection->addItem("Linear", 0); + p_stretchTypeSelection->addItem("Sawtooth", 1); + p_stretchTypeSelection->addItem("Binary", 2); + p_stretchTypeSelection->addItem("Manual", 3); - typeSelectionArea->layout()->addWidget(stretchTypeSelection); + typeSelectionArea->layout()->addWidget(p_stretchTypeSelection); layout()->addWidget(typeSelectionArea); p_stretchTypeStack = new QStackedWidget(); LinearStretchType *linear = new LinearStretchType(hist, curStretch, name, color); connect(linear, SIGNAL(stretchChanged()), this, SIGNAL(stretchChanged())); + connect(linear, SIGNAL(saveToCube()), this, SIGNAL(saveToCube())); + connect(linear, SIGNAL(deleteFromCube()), this, SIGNAL(deleteFromCube())); + connect(linear, SIGNAL(loadStretch()), this, SIGNAL(loadStretch())); p_stretchTypeStack->addWidget(linear); SawtoothStretchType *sawtooth = new SawtoothStretchType(hist, curStretch, name, color); connect(sawtooth, SIGNAL(stretchChanged()), this, SIGNAL(stretchChanged())); + connect(sawtooth, SIGNAL(saveToCube()), this, SIGNAL(saveToCube())); + connect(sawtooth, SIGNAL(deleteFromCube()), this, SIGNAL(deleteFromCube())); + connect(sawtooth, SIGNAL(loadStretch()), this, SIGNAL(loadStretch())); p_stretchTypeStack->addWidget(sawtooth); BinaryStretchType *binary = new BinaryStretchType(hist, curStretch, name, color); connect(binary, SIGNAL(stretchChanged()), this, SIGNAL(stretchChanged())); + connect(binary, SIGNAL(saveToCube()), this, SIGNAL(saveToCube())); + connect(binary, SIGNAL(deleteFromCube()), this, SIGNAL(deleteFromCube())); + connect(binary, SIGNAL(loadStretch()), this, SIGNAL(loadStretch())); p_stretchTypeStack->addWidget(binary); ManualStretchType *manual = new ManualStretchType(hist, curStretch, name, color); connect(manual, SIGNAL(stretchChanged()), this, SIGNAL(stretchChanged())); + connect(manual, SIGNAL(saveToCube()), this, SIGNAL(saveToCube())); + connect(manual, SIGNAL(deleteFromCube()), this, SIGNAL(deleteFromCube())); + connect(manual, SIGNAL(loadStretch()), this, SIGNAL(loadStretch())); p_stretchTypeStack->addWidget(manual); layout()->addWidget(p_stretchTypeStack); - connect(stretchTypeSelection, SIGNAL(currentIndexChanged(int)), + connect(p_stretchTypeSelection, SIGNAL(currentIndexChanged(int)), p_stretchTypeStack, SLOT(setCurrentIndex(int))); - connect(stretchTypeSelection, SIGNAL(currentIndexChanged(int)), + connect(p_stretchTypeSelection, SIGNAL(currentIndexChanged(int)), this, SIGNAL(stretchChanged())); } @@ -105,6 +118,38 @@ namespace Isis { } + /** + * Used to restore a saved Stretch from a cube. This function is + * distinct from setStretch in that setStretch deliberately _does not_ + * change the stretch type, and this function does change the stretch type. + * + * @param newStretch saved stretch to restore + */ + void AdvancedStretch::restoreSavedStretch(Stretch newStretch) { + QString stretchTypeName = newStretch.getType(); + + int index = 0; + if (stretchTypeName.compare("LinearStretch") == 0 ) { + index = 0; + } + else if (stretchTypeName.compare("SawtoothStretch") == 0 ) { + index = 1; + } + else if (stretchTypeName.compare("BinaryStretch") == 0) { + index = 2; + } + else if (stretchTypeName.compare("ManualStretch") == 0) { + index = 3; + } + // Fail by defaulting to Linear + + p_stretchTypeSelection->setCurrentIndex(index); + StretchType *stretchType = (StretchType *) + p_stretchTypeStack->currentWidget(); + stretchType->setStretch(newStretch); + } + + /** * This is called when the visible area changes, so that the * histogram can be updated. It is essential that the stretch diff --git a/isis/src/qisis/objs/StretchTool/AdvancedStretch.h b/isis/src/qisis/objs/StretchTool/AdvancedStretch.h index acd80e8f32..3f49826e3c 100644 --- a/isis/src/qisis/objs/StretchTool/AdvancedStretch.h +++ b/isis/src/qisis/objs/StretchTool/AdvancedStretch.h @@ -4,6 +4,7 @@ #include class QStackedWidget; +class QComboBox; class QLayout; class QString; class QColor; @@ -36,16 +37,19 @@ namespace Isis { ~AdvancedStretch(); Stretch getStretch(); void setStretch(Stretch newStretch); + void restoreSavedStretch(Stretch newStretch); void setHistogram(const Histogram &newHist); signals: //! Emitted when a new stretch is available void stretchChanged(); - - protected: + void saveToCube(); + void deleteFromCube(); + void loadStretch(); private: QStackedWidget *p_stretchTypeStack; //!< StretchType's + QComboBox *p_stretchTypeSelection; //!< ComboBox of StretchTypes }; }; diff --git a/isis/src/qisis/objs/StretchTool/AdvancedStretchDialog.cpp b/isis/src/qisis/objs/StretchTool/AdvancedStretchDialog.cpp index 7055a49a2c..63a05e2fa2 100644 --- a/isis/src/qisis/objs/StretchTool/AdvancedStretchDialog.cpp +++ b/isis/src/qisis/objs/StretchTool/AdvancedStretchDialog.cpp @@ -21,7 +21,10 @@ namespace Isis { p_bluStretch = NULL; p_enabled = false; + setWindowTitle("Advanced Stretch Tool"); + QHBoxLayout *layout = new QHBoxLayout(); + setLayout(layout); } @@ -124,6 +127,22 @@ namespace Isis { connect(p_grayStretch, SIGNAL(stretchChanged()), this, SIGNAL(stretchChanged())); + connect(p_grayStretch, SIGNAL(saveToCube()), + this, SIGNAL(saveToCube())); + connect(p_grayStretch, SIGNAL(deleteFromCube()), + this, SIGNAL(deleteFromCube())); + connect(p_grayStretch, SIGNAL(loadStretch()), + this, SIGNAL(loadStretch())); + } + + + /** + * Restores a saved stretch from the cube + * + * @param stretch + */ + void AdvancedStretchDialog::restoreSavedStretch(Stretch stretch){ + p_grayStretch->restoreSavedStretch(stretch); } @@ -213,7 +232,7 @@ namespace Isis { /** - * This calls setHistogram on the gray advanced stretche. This + * This calls setHistogram on the gray advanced stretches. This * should be called every time the visible area changes. * * @param grayHist Histogram of visible area on gray band diff --git a/isis/src/qisis/objs/StretchTool/AdvancedStretchDialog.h b/isis/src/qisis/objs/StretchTool/AdvancedStretchDialog.h index 2799f5a15f..24a41f331e 100644 --- a/isis/src/qisis/objs/StretchTool/AdvancedStretchDialog.h +++ b/isis/src/qisis/objs/StretchTool/AdvancedStretchDialog.h @@ -48,6 +48,7 @@ namespace Isis { Histogram &grayHist); void updateHistogram(const Histogram &grayHist); bool isRgbMode() const; + void restoreSavedStretch(Stretch stretch); Stretch getGrayStretch(); Stretch getRedStretch(); @@ -77,6 +78,9 @@ namespace Isis { void stretchChanged(); //! Emitted when this dialog is shown or hidden void visibilityChanged(); + void saveToCube(); + void deleteFromCube(); + void loadStretch(); public slots: void updateStretch(CubeViewport *); diff --git a/isis/src/qisis/objs/StretchTool/BinaryStretchType.cpp b/isis/src/qisis/objs/StretchTool/BinaryStretchType.cpp index d3c7b7e3f5..2e67c7011e 100644 --- a/isis/src/qisis/objs/StretchTool/BinaryStretchType.cpp +++ b/isis/src/qisis/objs/StretchTool/BinaryStretchType.cpp @@ -73,6 +73,8 @@ namespace Isis { sliderWidget->setLayout(sliderLayout); p_mainLayout->addWidget(sliderWidget, 1, 0); + p_stretch->setType("BinaryStretch"); + setLayout(p_mainLayout); setStretch(calculateNewStretch()); } diff --git a/isis/src/qisis/objs/StretchTool/LinearStretchType.cpp b/isis/src/qisis/objs/StretchTool/LinearStretchType.cpp index a1211598ed..66953c5320 100644 --- a/isis/src/qisis/objs/StretchTool/LinearStretchType.cpp +++ b/isis/src/qisis/objs/StretchTool/LinearStretchType.cpp @@ -71,6 +71,7 @@ namespace Isis { sliderWidget->setLayout(sliderLayout); p_mainLayout->addWidget(sliderWidget, 1, 0); + p_stretch->setType("LinearStretch"); setLayout(p_mainLayout); setStretch(stretch); @@ -254,8 +255,8 @@ namespace Isis { } } - Stretch LinearStretchType::getStretch() { return *p_stretch; } + } diff --git a/isis/src/qisis/objs/StretchTool/LinearStretchType.h b/isis/src/qisis/objs/StretchTool/LinearStretchType.h index 1ca66618ec..b41d46b8ef 100644 --- a/isis/src/qisis/objs/StretchTool/LinearStretchType.h +++ b/isis/src/qisis/objs/StretchTool/LinearStretchType.h @@ -36,7 +36,6 @@ namespace Isis { virtual Stretch getStretch(); virtual void setStretch(Stretch); - private slots: void startSliderMoved(int); void startEditChanged(const QString &); diff --git a/isis/src/qisis/objs/StretchTool/ManualStretchType.cpp b/isis/src/qisis/objs/StretchTool/ManualStretchType.cpp index 4ae247c0c5..2c8d20f697 100644 --- a/isis/src/qisis/objs/StretchTool/ManualStretchType.cpp +++ b/isis/src/qisis/objs/StretchTool/ManualStretchType.cpp @@ -55,6 +55,8 @@ namespace Isis { this, SLOT(readTable())); disconnect(this, SIGNAL(stretchChanged()), this, SLOT(updateTable())); + p_stretch->setType("ManualStretch"); + setLayout(p_mainLayout); setStretch(stretch); } diff --git a/isis/src/qisis/objs/StretchTool/SawtoothStretchType.cpp b/isis/src/qisis/objs/StretchTool/SawtoothStretchType.cpp index 5b1e46589c..2e97c93ed1 100644 --- a/isis/src/qisis/objs/StretchTool/SawtoothStretchType.cpp +++ b/isis/src/qisis/objs/StretchTool/SawtoothStretchType.cpp @@ -71,6 +71,8 @@ namespace Isis { sliderWidget->setLayout(sliderLayout); p_mainLayout->addWidget(sliderWidget, 1, 0); + p_stretch->setType("SawtoothStretch"); + setLayout(p_mainLayout); p_widthEdit->setText(QString::number( diff --git a/isis/src/qisis/objs/StretchTool/SawtoothStretchType.h b/isis/src/qisis/objs/StretchTool/SawtoothStretchType.h index 1da8bda35b..7801f8b114 100644 --- a/isis/src/qisis/objs/StretchTool/SawtoothStretchType.h +++ b/isis/src/qisis/objs/StretchTool/SawtoothStretchType.h @@ -39,7 +39,6 @@ namespace Isis { virtual void setStretch(Stretch); - private slots: void offsetSliderMoved(int); void offsetEditChanged(const QString &); diff --git a/isis/src/qisis/objs/StretchTool/StretchTool.cpp b/isis/src/qisis/objs/StretchTool/StretchTool.cpp index 09660aecdb..466ade83fc 100644 --- a/isis/src/qisis/objs/StretchTool/StretchTool.cpp +++ b/isis/src/qisis/objs/StretchTool/StretchTool.cpp @@ -1,5 +1,7 @@ #include "StretchTool.h" +#include + #include #include #include @@ -13,9 +15,11 @@ #include #include #include +#include #include "AdvancedStretchDialog.h" #include "Brick.h" +#include "Blob.h" #include "CubeViewport.h" #include "Histogram.h" #include "IException.h" @@ -51,6 +55,12 @@ namespace Isis { this, SLOT(advancedStretchChanged())); connect(m_advancedStretch, SIGNAL(visibilityChanged()), this, SLOT(updateTool())); + connect(m_advancedStretch, SIGNAL(saveToCube()), + this, SLOT(saveStretchToCube())); + connect(m_advancedStretch, SIGNAL(deleteFromCube()), + this, SLOT(deleteFromCube())); + connect(m_advancedStretch, SIGNAL(loadStretch()), + this, SLOT(loadStretchFromCube())); QPushButton *hiddenButton = new QPushButton(); hiddenButton->setVisible(false); @@ -370,6 +380,177 @@ namespace Isis { } } + + /** + * Restores a saved stretch from the cube + */ + void StretchTool::loadStretchFromCube(){ + MdiCubeViewport *cvp = cubeViewport(); + Cube* icube = cvp->cube(); + Pvl* lab = icube->label(); + + // Create a list of existing Stretch names + QStringList namelist; + PvlObject::PvlObjectIterator objIter; + for (objIter=lab->beginObject(); objIterendObject(); objIter++) { + if (objIter->name() == "Stretch") { + PvlKeyword tempKeyword = objIter->findKeyword("Name"); + QString tempName = tempKeyword[0]; + namelist.append(tempName); + } + } + + bool ok; + QString stretchName = QInputDialog::getItem(m_advancedStretch, tr("Load Stretch"), + tr("Name of Stretch to Load:"), namelist, 0, + false, &ok); + + if (ok) { + Stretch stretch(stretchName); + icube->read(stretch); + m_advancedStretch->restoreSavedStretch(stretch); + } + } + + + /** + * Deletes a saved stretch from the cube + */ + void StretchTool::deleteFromCube() { + MdiCubeViewport *cvp = cubeViewport(); + Cube* icube = cvp->cube(); + Pvl* lab = icube->label(); + + // Create a list of existing Stretch names + QStringList namelist; + PvlObject::PvlObjectIterator objIter; + for (objIter=lab->beginObject(); objIterendObject(); objIter++) { + if (objIter->name() == "Stretch") { + PvlKeyword tempKeyword = objIter->findKeyword("Name"); + QString tempName = tempKeyword[0]; + namelist.append(tempName); + } + } + + bool ok; + QString toDelete = QInputDialog::getItem(m_advancedStretch, tr("Delete Stretch"), + tr("Name of Stretch to Delete:"), namelist, 0, + false, &ok); + if (ok) { + if (icube->isReadOnly()) { + try { + cvp->cube()->reopen("rw"); + } + catch(IException &) { + cvp->cube()->reopen("r"); + QMessageBox::information((QWidget *)parent(), "Error", + "Cannot open cube read/write to delete stretch"); + return; + } + } + + bool cubeDeleted = icube->deleteBlob("Stretch", toDelete); + + if (!cubeDeleted) { + QMessageBox msgBox; + msgBox.setText("Stretch Could Not Be Deleted!"); + msgBox.setInformativeText("A stretch with name: \"" + toDelete + + "\" Could not be found, so there was nothing to delete from the Cube."); + msgBox.setStandardButtons(QMessageBox::Ok); + msgBox.setIcon(QMessageBox::Critical); + msgBox.exec(); + } + + // Don't leave open rw -- not optimal. + cvp->cube()->reopen("r"); + } + } + + + /** + * Saves a strech to the cube. + */ + void StretchTool::saveStretchToCube() { + MdiCubeViewport *cvp = cubeViewport(); + Cube* icube = cvp->cube(); + Pvl* lab = icube->label(); + + // Create a list of existing Stretch names + QStringList namelist; + PvlObject::PvlObjectIterator objIter; + for (objIter=lab->beginObject(); objIterendObject(); objIter++) { + if (objIter->name() == "Stretch") { + PvlKeyword tempKeyword = objIter->findKeyword("Name"); + QString tempName = tempKeyword[0]; + namelist.append(tempName); + } + } + + bool ok; + QString name; + + // "Get the name for the stretch" dialog + QString text = QInputDialog::getText(m_advancedStretch, tr("Save Stretch"), + tr("Enter a name to save the stretch as:"), QLineEdit::Normal, + "stretch", &ok); + + if (ok) { + // Stretch Name Already Exists Dialog! + if (namelist.contains(text)) { + QMessageBox msgBox; + msgBox.setText(tr("Stretch Name Already Exists!")); + msgBox.setInformativeText("A stretch pair with name: \"" + text + "\" already exists and " + "the existing saved data will be overwritten. Are you sure you " + "wish to proceed?"); + msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Cancel); + msgBox.setIcon(QMessageBox::Warning); + msgBox.setDefaultButton(QMessageBox::Cancel); + int ret = msgBox.exec(); + + switch (ret) { + case QMessageBox::Save: + break; + case QMessageBox::Cancel: + // Cancel was clicked, exit this function + return; + break; + default: + // should never be reached + return; + break; + } + } + + if (icube->isReadOnly()) { + // ReOpen cube as read/write + // If cube readonly print error + try { + cvp->cube()->reopen("rw"); + } + catch(IException &) { + cvp->cube()->reopen("r"); + QMessageBox::information((QWidget *)parent(), "Error", "Cannot open cube read/write to save stretch"); + return; + } + } + + Stretch stretch = m_advancedStretch->getGrayStretch(); + + // consider moving into Stretch::WriteInit() + stretch.Label()["Name"] = text; + stretch.Label() += PvlKeyword("StretchType", stretch.getType()); + + // Greyscale is only available option for now + stretch.Label() += PvlKeyword("Color", "Greyscale"); + + icube->write(stretch); + + // Don't leave open rw -- not optimal. + cvp->cube()->reopen("r"); + } + } + + /** * This is called when the visible area changes. */ diff --git a/isis/src/qisis/objs/StretchTool/StretchTool.h b/isis/src/qisis/objs/StretchTool/StretchTool.h index cfa9cb0f40..13a5e938ec 100644 --- a/isis/src/qisis/objs/StretchTool/StretchTool.h +++ b/isis/src/qisis/objs/StretchTool/StretchTool.h @@ -171,6 +171,9 @@ namespace Isis { protected slots: void mouseButtonRelease(QPoint p, Qt::MouseButton s); + void saveStretchToCube(); + void deleteFromCube(); + void loadStretchFromCube(); void enableRubberBandTool(); void screenPixelsChanged(); void updateHistograms(); diff --git a/isis/src/qisis/objs/StretchTool/StretchType.cpp b/isis/src/qisis/objs/StretchTool/StretchType.cpp index 87a93dba2e..2e69622a04 100644 --- a/isis/src/qisis/objs/StretchTool/StretchType.cpp +++ b/isis/src/qisis/objs/StretchTool/StretchType.cpp @@ -55,10 +55,25 @@ namespace Isis { connect(this, SIGNAL(stretchChanged()), this, SLOT(updateTable())); p_mainLayout->addWidget(p_table, 2, 0); - QPushButton *saveAsButton = new QPushButton("Save Stretch Pairs..."); + QPushButton *saveAsButton = new QPushButton("Save Stretch Pairs to File..."); connect(saveAsButton, SIGNAL(clicked(bool)), this, SLOT(savePairs())); p_mainLayout->addWidget(saveAsButton, 3, 0); + // Save/Restore strech only supported for Grayscale images. Hide buttons if in RGB. + if (name.compare("Gray") == 0) { + QPushButton *saveToCubeButton = new QPushButton("Save Stretch Pairs to Cube..."); + connect(saveToCubeButton, SIGNAL(clicked(bool)), this, SIGNAL(saveToCube())); + p_mainLayout->addWidget(saveToCubeButton, 4, 0); + + QPushButton *deleteFromCubeButton = new QPushButton("Delete Stretch Pairs from Cube..."); + connect(deleteFromCubeButton, SIGNAL(clicked(bool)), this, SIGNAL(deleteFromCube())); + p_mainLayout->addWidget(deleteFromCubeButton, 5, 0); + + QPushButton *loadStretchButton = new QPushButton("Load Saved Stretch from Cube..."); + connect(loadStretchButton, SIGNAL(clicked(bool)), this, SIGNAL(loadStretch())); + p_mainLayout->addWidget(loadStretchButton, 6, 0); + } + QSizePolicy sizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); sizePolicy.setHeightForWidth(true); p_graph->setSizePolicy(sizePolicy); diff --git a/isis/src/qisis/objs/StretchTool/StretchType.h b/isis/src/qisis/objs/StretchTool/StretchType.h index 00808f2677..d54979dfa5 100644 --- a/isis/src/qisis/objs/StretchTool/StretchType.h +++ b/isis/src/qisis/objs/StretchTool/StretchType.h @@ -45,6 +45,7 @@ namespace Isis { virtual ~StretchType(); virtual Stretch getStretch(); + /** * Children must re-implement this to update their stretch pairs and GUI * elements appropriately. This could be called with a @@ -72,11 +73,14 @@ namespace Isis { signals: //! Emitted when a new Stretch object is available + void saveToCube(); + void deleteFromCube(); void stretchChanged(); - + void loadStretch(); private slots: void savePairs(); + }; }; diff --git a/isis/tests/FunctionalTestsKaguyatc2isis.cpp b/isis/tests/FunctionalTestsKaguyatc2isis.cpp new file mode 100644 index 0000000000..a6927ebbc3 --- /dev/null +++ b/isis/tests/FunctionalTestsKaguyatc2isis.cpp @@ -0,0 +1,88 @@ +#include + +#include "kaguyatc2isis.h" +#include "Fixtures.h" +#include "Pvl.h" +#include "PvlGroup.h" +#include "TestUtilities.h" +#include "Endian.h" +#include "PixelType.h" + +#include "gtest/gtest.h" + +using namespace Isis; + +static QString APP_XML = FileName("$ISISROOT/bin/xml/kaguyatc2isis.xml").expanded(); + +TEST(kaguyatc2isisTest, kaguyatc2isisTestDefault) { + Pvl appLog; + QTemporaryDir prefix; + QString cubeFileName = prefix.path() + "/kaguyatc2isisTEMP.cub"; + QVector args = {"from=data/kaguyatc2isis/TC1S2B0_01_05186N225E0040_mini.lbl", "to="+cubeFileName}; + + UserInterface options(APP_XML, args); + try { + kaguyatc2isis(options, &appLog); + } + catch (IException &e) { + FAIL() << "Unable to ingest Kaguya TC image: " <findGroup("Instrument", Pvl::Traverse); + ASSERT_EQ(inst["MissionName"][0].toStdString(), "SELENE"); + ASSERT_EQ(inst["SpacecraftName"][0].toStdString(), "KAGUYA"); + ASSERT_EQ(inst["InstrumentName"][0].toStdString(), "TERRAIN CAMERA 1"); + ASSERT_EQ(inst["InstrumentId"][0].toStdString(), "TC1"); + ASSERT_EQ(inst["TargetName"][0].toStdString(), "MOON"); + ASSERT_EQ(inst["StartTime"][0].toStdString(), "2008-12-07T05:04:34.458542"); + ASSERT_EQ(inst["StopTime"][0].toStdString(), "2008-12-07T05:05:04.715727"); + ASSERT_EQ(inst["SpacecraftClockStartCount"][0].toStdString(), "912661463.551562"); + ASSERT_EQ(inst["SpacecraftClockStopCount"][0].toStdString(), "912661493.808747"); + ASSERT_DOUBLE_EQ(inst["ExposureDuration"], 3.25); + ASSERT_EQ(inst["ExposureDuration"].unit(), "ms"); + ASSERT_DOUBLE_EQ(inst["LineSamplingInterval"], 6.499932); + ASSERT_EQ(inst["LineSamplingInterval"].unit(), "ms"); + ASSERT_EQ(inst["IlluminationCondition"][0].toStdString(), "MORNING"); + + // Archive Group + PvlGroup &arch = isisLabel->findGroup("Archive", Pvl::Traverse); + + ASSERT_EQ(arch["DataSetId"][0].toStdString(), "SLN-L-TC-3-S-LEVEL2B0-V1.0"); + ASSERT_EQ(arch["ImageValueType"][0].toStdString(), "RADIANCE"); + ASSERT_EQ(int(arch["SceneMaximumDn"]), 3913); + ASSERT_EQ(int(arch["SceneMinimumDn"]), 30); + ASSERT_DOUBLE_EQ(double(arch["SceneAverageDn"]), 868.1); + ASSERT_DOUBLE_EQ(double(arch["UpperLeftLatitude"]), 21.694101); + ASSERT_DOUBLE_EQ(double(arch["UpperLeftLongitude"]), 3.476042); + ASSERT_DOUBLE_EQ(double(arch["UpperRightLatitude"]), 21.711476); + ASSERT_DOUBLE_EQ(double(arch["UpperRightLongitude"]), 4.636101); + ASSERT_DOUBLE_EQ(double(arch["LowerLeftLatitude"]), 23.230896); + ASSERT_DOUBLE_EQ(double(arch["LowerLeftLongitude"]), 3.440187); + ASSERT_DOUBLE_EQ(double(arch["LowerRightLatitude"]), 23.248459); + ASSERT_DOUBLE_EQ(double(arch["LowerRightLongitude"]), 4.613281); + + // Bandbin Group + PvlGroup &bandbin = isisLabel->findGroup("BandBin", Pvl::Traverse); + ASSERT_EQ(bandbin["Center"][0], "640nm"); + ASSERT_EQ(bandbin["Width"][0], "420nm"); + + // Kernels Group + PvlGroup &kern = isisLabel->findGroup("Kernels", Pvl::Traverse); + ASSERT_EQ(int(kern["NaifCkCode"]), -131350); + ASSERT_EQ(int(kern["NaifFrameCode"]), -131351); +} diff --git a/isis/tests/data/kaguyatc2isis/TC1S2B0_01_05186N225E0040_mini.img b/isis/tests/data/kaguyatc2isis/TC1S2B0_01_05186N225E0040_mini.img new file mode 100644 index 0000000000000000000000000000000000000000..eaad94a387ea4c9ddfe89ffc4125d0d3da6b96b0 GIT binary patch literal 19248 zcmYM61yojFu=d$;umigr1F;KiY{l+wQ4|HSz`{Zi^N#^`wHum z_uKEicYW(!ym4Zmy=R`8d1mGu)H9W=9;hhwP$g@7ZLc1yhg#|Cy0Ff#%W5|*)L-qO z?bJKa+Tz^XYopUvJg-^#y%GZ_^>VlP;ltbHr(NOr25Z zRfJlt7O4x2{)4L&)RlBeMo3mEjCEg~Q`^)kwT@$Ub7Wi9ORZ2F)fRO?T~bL}bKOUr zdtTjQ?-g}QT~voTH(Je8hd6JeTCYNRja3uW9JNHvR?E}|ey?SIADQ2AbwcgqjQwg4 z>yOl()OY4sQ)g0NR1))jt25~`x~VRt9oh3!rLp}x`juL-|Eo$s zGA9@*iR&bw;a#jNTK&@*bx!qLXJdq?>N%SFql@YWdVrp-H|v9ZjzQC_^*lXZ57(2m zk8Z5n>Vd2|8!OJiIA7IYB>Ik-FH`|)4dY%%>O1+|$0|=CyIaW0LAOU^F|0Ncoj&Ef zSmYVbSr6EHj^j3f%+HMTg;yN9d4(RnF_!{5i_QZQAF=fV5-6peSW|jkjCrT2PaOSQ z=h9i3`8%D5ZHZj1fOga^bzf##K&MylRU+EYgl03MJ-(?wNa!8&Jf=>9u`|pd4N0W~ zd2LleRUi2eQiIWxpX#bcsbE!?@5A^!%36-tP`F41vEKe_G`b$gF$>guwH&M*1k0D zDu0nk><@b$W0l6%K41%1!E1ur3f6sC>l9>HPx*5Fx?HO#EAOQGg5{ZP8?L-rX&<(9 zDI$nBs^X1;AyGmdScnlMr`&KZe>=VIrZuyi6$UUymhYAk-G8i7{`=a@^8!zsq9JMY-NraKDdH6S?LwP@eTf8E$NMsyG@**`%n67FK8*vY4-s3FRTiQ>7;EEkD; zqPvI`4`maPD9(rvB2gBUEo49GDLs@W$4L)4O5O(DrTBG8-jth^ke}pJaDG<_{VSiym-t&Pldum*c~XYU>ugJqDe{-HS9U6w ze8ZlqyvkrRO_i(7!}bKZPDCPSuvb!Lkz3>i?5Y9S%Ol@lyWiwz8E=!A8SR(K%zGNw z%*-*BKNZhb@Ai%8mx#s~K2IH~fu-H5`_w<)i;y`3cr_m67+d z)Vdc3kT*7Qc>jg5*+WauBca8gF2S z%;te{H{r=y8<|gcR<}<2%WATctS%?WG9pSu$+B2~R*@>=vFaUSvREM2i6gvx#eX7L z9F`fyQT7}bd&OB1C&Glc=qg5wm14aZ&#!Q?3BNF3#ENLnJSEdfAwG*I;)=K`B4u9I z(iQndBmK9kFjiGam6Bgn2IYjce*+U0iN(i=@ipoacnEG z;WlickS-15%)qan*mw=1pqE-qj1K@!0%X~Pn5*(RTF-*6KZ7$@;!JIoP5zPRkn8kA`N*?WBk=%DIUxFhxbuL=D&Evamph8KEZ!xz*8 zh@wHPb|dlU z;y=oGmY#F$8jur1^Te_hWbv&a_(o^Ak?z$A&hZ~t^4&6|9J036CEsd77N_932gvxck%`sUWnk-Rnn!ZHF?D8HQ%pRt$@h8WKsVDJ?<7EeMk_k($4~7=v#RdAR zfhTgoGY&wTZHSk>LA~ZU&2gph2mtyk8II z;KH%fQ^%L>?7KRfc;=R*+(%Ie(Wb2i=M>AWUkQ& zdsrr#*!{Iju#2`{B{z@?8)}h+xU_jJWCK6zoP9SWK9QjJ1R5_^kImVfD78|?CKcE7(fkS z63p?C-lSWRQ?~$_J-}mnvXTnm(EKgXGr(do-AC6apKlDyeL~*%MLUD?(Ym>IgHK*2 zBhL+*maFN+TtB$*EzmlL?EfZl_Y62*OK!D`8O>9h;mE__%iVcRXNxy^V>|v_;UNFu zBMSCk7whkAi`zcL?&bK#Ih-{cJT4^HJAp5VAOku@cKt{@sh3-pAHnNwpFp%ct!A+23D^-Ctx{=wofZNnlV^kIP^|7(tu4KC%u)&t_5`QE&lzem) z``U4AGmaVvS8hjU(v71A@!5~FL*YeU*zrWp=|M(Pg4#h%-t!SrvLjVV&Xf&_xNyz@ z)t>BnEE-t_lk%c^;lmXM+p_94tat_WxgfIkU^0Y2_^}7$2b0+L`%EAdAsxZ**yJq5qC7d?b9yFDObF^HOj?<~qSKZEo0TrHaX z`7Bu5juzkXdQNR88s9b;T?R4Ad}K8i`Rs;CE(fJv{2l@Rh9PqgFgBSgz*OEB@;Tb( z1Dlc^_C{X~ZFRg>NWKUai@wOL4ti)pmR(HcgrO$NR9oJXiM%ocwzv&H6Aza^41at? z_PG%s7K*<(N*?tWj8aTRwyhn|$LvsOhJAgW3b+yku>#?X2>#${}BnHTfZ(L7-s) z{ChAs>kE!okxLFHV|>E?KB_FfrzG-n0f%$Z*hKK~25;~Jzi|ZFU*OEU_=G3a9CPq( z4;nkhp6OWk4s>oRwoB2%81%aq%|9aINzU5JR#P8-Mm6OeHhTd?Tt>%_`E4quA>eW< z*E2Q8WB7)fAS{p(=i+N7a&9=+2*sLqP{Y{>isv$y7o4}7*LLRfADB4FjFLdjUJ#T3 zdpNJ&P)&5gcXr1=79*a%$Isj)dcLD3lSrQpgm}Ua6;3 zP3lUuJq$m5LSNN8^&_JF9vzPNouZ%U`&N4WiC?wh6kafa5Lm!b>IIvr%Wr~#EQJjW zg=-9@GO(2y9YlT%uSw-%<5B9y8b2gG!?gaanU@iyXE{AQeZ7}vT=3l>C3)mGs&?7HV5<7Z%It_6igW&f#Cu?csyec0f}XY z5?(Q!7+XQ;UzqTCSqctHjnQG@MNrVb-be z)ABkGM;>N9GnjD{Grp@HVxt|wWJ$&<&3h9t?nY$(fdq3Ut~ly@TbIHOOY(^G|gix#EM3syfO!!yX|1jkfH zes5UuU?g;t{zqokn$3oc1iZ{gVpLV#MsK5jw+&qlrScYmJBKv}jeF-TaK|{Bh&tsb}JBtPq@tJqg z7*%*)aa4alfSjkCLtYVg^TG29!~5*mW9jV7_#gJWA9){URx#9}GipJ#doB^OuPr|M;AQ=6 zadaOXVi-}=2dwR9T_*0YCeF?wmUbg*_J*VQg84-@HnEEyT?j|d2BD*gsCmhLpHPu{ zX6uLSqn7uJDDw^8^a!rv0Fy06q|Hv9&_vW!K8wL;%2Tl|1#Sw0oLr!$7cAEuUS;|r zHK^>ShvvNDy)bdQDBGQ>|G2<28**kBt~!FqRF+pJ&aO%HF3%np&T|G+;mCRi2po$x zVz|yi@}xazD~vdE35~^IHJ8xVGqjR|ZXWA&{G!{0)E;x@el%)4LKxcKf)siog=zRe zf8^v3S184`+Ti;d(rcNDy>{laK1X>nt5HbQNV6lHupB+YoN%^0suq^g7Or+(SClW{ zaUL+@e(>w|yf@^G7OcsKxV4E0wvH&g2$nRT-&63l&-is5Ulz~ILToH{37DGL99_!c%{_nGzi};uS>4)qj68m%H0(51V*BR`qAG1BdD;B(&*B{VT9V=PF`KS4O zj_j`CJxpBusTJ3~hm_*gUE@jVKRW5kx;!X+M>ZijCXLRBJyz=omg{1ztw5zCTk>=C z53E#TdkRbaVYB{=#w!`DgVhGQ8eVZV`%>_|pFnFoXnlz-N3zu)S=NU;eJ6r!fG6Eh z4q&GcRbyw+QV0H4h(27De2)He!Oymn&BlSk$HbW%)U3boz8UVemcNC>jdWID^zgGMpM)hF3$!wh&`5yh2J5;k?lC!Rdy&Wg2?UfpVEj3&Z<@ObcPb zx3J$t;%PMJ=R?v}u$v;tdMa_g9l6~cuoej-y}$kQJ^mhH)%0!i>snt}!*0abJj=+r$azs&jAN#1b zB*KvbdF_R%9Dx_@h6x1`i5HuG2py9J^g~jq$!y`=UBv3KR7{o<-*e%0e}Vrc*zG*B zpaG!b2fdycRfJB#Wn{NfPN7Sd24CIO(-mS zDY;=1Qj+B4*^pu@`YP+;A}^6p4&=XrGk)T$9)Y~S9A$^p3L^I!@)P$8yhM8im`Q)6 z)&Rd@`XLT%`JaAB3APVMFDB<}2C^;m{|f#Ti~MuTD~#j-K5n9yduaJK9@X?iVtHL8 zo4C)h5zP8H^MAv(^WfqKnd(30;E2!3uX5n2dx5x&R3|?(ZlsMntp%&A`F7Ga@=j{x z3s}E5d}{=m#YFOkm8^cQt;RB!+KMmPNE>RwBROI?M|PruGl;6_FpeHdC2<~g^I+b0 z(7{+_V|Z)GgeJ3X88#QrXj_r#Y~+0yiLU0l*U?1;vL3`0XClEZYz=?`uHhO1*r=%- zO=gcT{I5Opn28qFu*HK}cBL{tjBT@+=V4Z`fm-_pf*k zs-7}VY-a_lS$B7`t_951RhDDRMmd7Y&U0JcwK{d4OH_HzW7oT>`yQd{>WgLXWy?LW zgxcl}zTKxjdJQiSB&JZs9ZUUoKA*GrwvL*R>4&VPdi#rd=qhU9S4DNIOl_H0AdK}I zv;2z%CZmlv@+)X5L;P|eK6Jp#KhmXO6`P0|^KWuL$jO#uepe^3D zxGsbb?@uhOL=5R*w6~0E+61)Xfvy8Mb3ORK0vdPmZ5tkT8Hn-2 ztGZHQs|kZ|i9hXwc6=G59A5A}b>xERs2nI7#h9HrDmV2qdszw}{0aZt3Ln{2cBlST zmA#GSJ-m|X#w?^ZSe~9iakk~ehxQ@&9YOcR9o+S_9kGNCUMs40IjDmRSx6S;I)$iA zx`LaPtYbbi4B*qB@yi>p&rFK*y$V-sN&V6ELq;-s3r6b;vZj!K7o?i~fa>;1wE3Pc zNImI_cenWF!kmWNJ^f`9Z)i}c0Z`pH{ z^RCi;>jcsc+3NO7LFrlg0zK)o><6iTng2Pin!;5ciT8A2(x|W&rfcz?Rr}yKs$pSW zz-4Y$K9rj7AL{klu)aRvbhXXOYB7H|)=`{{Ex-7JjQg>g7L2)@h}ID~g`t7&*k!P6 zNVE%OYd$(C!`QN19wEw=Cx)2*aaMSbxl^hIQ6;Y`4*H*v$@yaWdAWWmSrv;K&srX0 zhhNc9ajsSZNjE{Vt~L#|27Lv@8;+mH6$>G~El6}PpWCR<25|OJq;p-ol}pi6L85yV z(2|XcaT8|U2HYM}`5D=ZD)UXToVmUN2jyfA*6RoA-isIf@&ONcDe;@`$5*->M~LHP zs0L@H|5HUw!~XY+Z?Xoxjz`pQlf)nHd5EQd8iQ8uh|Sc5w}F`ly!LR+PxQNtJ1WM& z4I+?Dd1f*S2~DE5y;sH|n`A7eI@WiSjHy42uLi8Lg=!;TBe~l|+l%n9tky*9zN$dv zH+8VR_=I>eE7L!pPB!uaULQ^7kXyYZ^0|{SO(hQIf>$-AGO?06Fj3XYVA*r;!B8u! zeoVZ)X_d2_iNT%qJF6pI5I<{*b&PJwIP0hN$v&rjLHkPfO|2B`gjLV#%D#nGkdX_-H<5WB_bVh*xmdv!i{OoN!1e~{!Z5r%+@aNpy7O4FHxFGEcJRz}Z>d3B zoa!qvHcb`4H{T_mN8sHiU?s{Mejd_)&cx8`=sDka(LVHco zXI1)&Md)~y!mAYqySc!BdhB2jejx-MH>9?alcU@~V}JZnKgODl*XoE3Gy$D6KzTEK z&>*hT2)q}@(^y=g5f*5wAs)ov%|y)OjJpJ@^Jk0chqS^Lnlnl(e3v_O?FWKQA0&(s z``}f=@!d0ttH+4Slfa(AUmfP1m-$!4rxn6dT={e)I!$G!%kc`G7@-q$^5n`bco}cp zm!sNnM1XY1(pHMg$e<9oKZAz~v)SJ+Y-$y(c?Vu;vFJ@_b{uZ}^dc%q$`a+3*UpTE&*KN#tHa*{S+@jR^41(Xk@2A6@{cmP$LAX`6VhvxoC zGUeqU$HkV@|Dv*y3#7H9&R3l8-E@2E5Bb1JJo(HQP}PEZUUT{(FQ_DyA+!HO#xx0* zHj4~+D>>E~BJOWcYf!wC-0BE1`afRgzBY3&Tz7K8ab$PyyiPNh1pf$n+qNzBP{Gz&+!X1FZ9aswLl%b(Da) zRJ5(TF+QvSUaC2q*3H%*X$hyPjV#)-=B`Mk0XA5V3_3(RV}F5U%UxMPBUa}2zx|Mg zWY-<2KzC#e4;auC{)Qsm9_YUjQmF9%`ytHdqx{bOC3%sGJI7376m#d{4D#xJi@Ba)bAliCdWI*VD!WVS43wF8iD1H52kK3#3ns)bDR!62KW zi8^%M$`iAtsa=q5rrK&OwW#SNgMx!HQVo?;Vbnq7Jg@K^lflduQ1gK5?-{UBA7&U! z96$TTJfg=VH`8;8CrdtusD4W^0gxoa{-!cw9*B(C699uWJ!XP}RGk&uvS%4$n z)e*MR6A$Jge~S;qcjJ=^;jcR2ZL7lxXTr)ncwb6xw390wC!anA+l|4G&oEgx+kWB? zBjCdhpsqKwJf<>m|6ep5JS*t=AzxrkerRG4*#A@6=s4W(_%U+xz0}Z zo2sFtnme7}+t6_W8b1f>E`ZHL;41@L?xOuLjtJ(gFh2JYoqprpiq%bZONh&&}=ruGYHm3t$SD1AIbALx} ze}m6dDm&@O?7QJh2hmCJrbjWG=-wJUmuKGpSYrxkuf!f-n86UTlU6W*5IpZl?t>^# zq|Zy0CxANoG5ABQ{XpxXm5%zrQN2oEfujr~_P2*otR;(Ig9i_xig1+L^AoxqQ?Qxa zmW$;?@1r8D!i$_gOkcG!T9xUiT;lv)bZAC#rGE57x^u_mWF2l*usTzLcwyzURS14s zWr+z-xGy9Fot29mYx*H~i4+;RZ!>_kOyl=F-o1$hMd&A+N~{~qSJAn4*gPcj&To>wj8Q~Nu@&kEzMto)hHuQ~qd!u+= zAR=Gjb&~$!Y|y`-d}|wg!3(6$Cu)x%()JsC_lr!aHb!!8GG9+O%3x04Cn!xd`>MnH%u)%u`Lh1pISt}+TiOi zu`&d{4!{dCya3Hl-T(T|5N4N`aEVQQ0GW}?ba03SaH z9Bv{CntPf#3pAPMLri7wF){iKNW6*k9)iO);MR16kAvbH*v)O5$2x(hi-W->a?EY! z`wy#_Nqjm(yq!*bU59_%jQ`z3+j0`d{-(MiMlrF@1^U>rU+nn#>*-bxW9(Utb zhFLgqPenaqY!z@~>HIcK?BU8Q@D~-SxoB!X_EdTD<4-FSj|$>l8xy^|;9Zt7vrAkr z3He=z6Boql-l8A#+{Ajkj0dP1!s@!fSpQ=^*Rjvs=)(!C>dCzw!@%M%Dy(&|vs$+3 za*h~Zl4BfoBefCEBN^{C^L3y%@`u{)CB_X$^V7kxBb~j*MAPl~oMObKJnWBV=G&3c zN9=R}6}g?3R+Ho)wVg^{2o^X2e&mDAkB3zaM+$XyZACwXDE5!5=HY7V(Ml+u?JPdS zRL%DieGY(*Yji5!^B04ZBhcD@G_{j8U1m!hT1Y|1$#|O2_!+}*%(FXb)S?~n8(m;u zwP0OESV=Z)vOD}f5AvdaL_eet()ohUitD1F`!~{j1*Uu91!{6+ak?qF(e?+ho)5G; zf%6<-xC!-TQ-Qw3oNl7E7_1^0`QK%B3(@y#Fu545PbD)LiwE@~o(2&qLwJRPg{>gh z^h5lK(KTQohQZAy#!kc2?gCGyC-Q&&ke14sC}=GH12xrCSp60F(l>mQP9kH`g1@Tx&9;EUZ5xej^XBdN7u^@UbzB(wZ^a!VTSs(1Z9kkn?8YQ;ssX zJse|X9D%pp3Qo>~+7+NTj`(^Dot_3oL7clxU4`Ms;C~F#HnZ*+{MtSCN88>bY#JPo z&iongFe^UJ_RDyj7_gh9-h!Cw+_g6vT(rWMtmB%7X_;P0l6pt3S^_J2PLxa~15f2w zc2MesANWgm%~@CBGbi85lT%bdb|v{MuLT`DJAP}dMu7Tc>^c|c)#LjM{N6S75PY`* zsT;A|Lv;LpVMVu*_%}K*nrppgje$s`J{ZYJJh?=qxC(1|LZzi9a&L~*`Xjeeu$dH& z=>YrLP6T>NO*)#aHVr2Kg(!4^dhA5_)=KK%@l=CD$PMcgW2#cC{6KD~#8+~}4%CpI zlJ|C$&8YV*qK46#`)~VD^K_#c(Rox3C9*mv2 zV)sMw(Ca{+;pc()g)3<2CHS}u-VPA${!y{01EbiZpW;VfaCgRWon&R;*^QFiOZrFu zwhF;dK3ZAmVMK7$GC0pGt1$Pjx^S}*5Whoq<5Yfqh<`{m%!c4+DW`tZZ{M&e0Luh+qrT@-~& zlqB;oS(d*oo_18F7&99hxCS1+@huG<6z0yo6c|nvE4fVd{}Pyvl~IiDjo$CTh|aV9 zDQGvj$tU?)2mmDFA-!pzA&*qtS=0XR+0LysYp+t%H4*0v$|1*8O6~9`11wd!5p;%c`k?H#WAmW z%x^Sf%q9m4XWMoxa657h{75RaOSoPm_KmRJ)8$P~ zWH@VG&aCI5wXN7uUH0{WL+)e+8@R?RZzVH{JZs?M*`)P)Li&H8L9M^*Y1Rpv|7TkleJK24o7Oq`&1`j|dx2)}M%^M|M~ zM~fGtBNfmERD2@v6aB;hv5VSi5>?Yv;u%%&T69f+@}yV*H662-dDz_+|_wW>{&w$DM|&R z0@hm%n=~xSoqH}_R7rFf$=csjD|toqF8OYM(}MmXOD-wSD@~mne`T@ zo;CzjG(t~~;vfBxvShUmR160oY13(GjR!6&c|HXHSdyAvYckx1)W@AUqbOJNVOuY< zY6oi3ks_J;pt)brg=75i)1^7yjU0I><8?xFb*MC(CsE$=oWM|-k?VA%_Gs?KKTO~7 zDxII6%*_#>|BPn=axqSMMrzE6?qIGbm}^VD+*AoG+A8wz>4n5n*-jPLxz=)YamyXIqm`;6ooITO50NlqOU)KnaSQCV10Am+GUmwOP&h=enW$q4NDXwBY$@GN2 zp`q&3LyV4!p`mWnea$N;_1RiTwvPBD8`GB=Bi_-s+)o{KBa!%&P5W8VX&FXsk1lhw zLT5ZxNnShD9A@{A^RC(YA%{gIHD^2KV4i=fE7Q~Ws>bM(m|F*Q@WR#)xxg5GdFJE? zI*Y{{92K{yc)vyim&JXU!+UXt_ZT`O|B&)!yueB@bCTNd5&Xmh^caL!7)Hf61}5M~ zx2-MSYBo~f-XAWabbVy9EKiJ#wA%Arh&xYkj^!RpFYByT zg*z|fh{9`#&hK?H4@KPMNew$HubFv`(f!FkGEgfSLOkwbdp@KzEG~fzB?H-)16gDt z>JO8dqc@!Mf1VFXA>VPJI zs=Y{ehm*c$)SMjAhKf#6a;y8u>4bx&#&{(UMw*PTXp1$uU@cAf8$i7A#Q%=QZamoTfi*S+vo+Y;45XH2 z#wyB=7QoUl08wky1`9U0Iqaw+~#2nZ}owvzz_eWGsUr$>_AFNCT2k%x_g zuiY|SlRCy3Y8>YIkW=JX|G|#U(*@Irw!=Bfo1Cht&FdAXn^6j{SY2%(0?(pyIf7O6 zCC)GBsDadQ_K~q&WV9GEFjI?s#)vn`{BH9!LMrv2PQ-a97=I!D%>9D(VUKxW?O$Pa zDKN?^WSr)I03=dJD1&u9rV3I-^JJDSpS%QDkAs7n|5_2xDm__+$@0$eXR5C|RZrq% z7jQKg?>`M3oP{Ibg2!FKDpFy~tEjOhz-IrF9c17$0dDmGOn!uUMU$iFBr_|?`Z|!4 zwp00F%azE|+F)Px@oSBFuSf(Kz-Mnfn>%;vRAxo}@pbDsYaq5b5ot)y>Wy?-z*!n_ zR0mj34>+_3Mr!>MmaQYo|3rO?rFDhB2b!Zh_BOlgpjMvX@6s-`1LM%)K{`rr|JY6ogExm6;S zi3O~DHP_h2oMuu5+sOB6%yK;Y)_|coTp^63&V$B8YE9<9S|m~RTg1`k4%;JS%cdVP zn6=CRAJdqvIh9P`BaBz)9bJdZctus7Q};k|-5w=2=U zG`^<-fBE4qj`)C{c)0%f&n);$XZF^>^ETlK6QdV#zVU_8@Py6e7RRYZy~bm{gp0Vt z)I#JMl?A`{S@J{^xmio4$ggr^J%7oP(zCuCSgb+sB&<0A8G0eF5#-`skzrf(-v?VO z1$LWrc6Ma35E*&0r!jTLtkm?9vC+-g)O_qXlIUZe958o4KOmBuJET{DoKUp4AHA7p zLFV&*iU?-9C#Q%{6NydXwhD;pbiBqQ&Hb%ksE3%^%N{(;9P}2#=l}IXOm%Swqjq7> zXGU9#&e~FaGEYDSqw95Ci+lmR&IA!*)Kd1sAGWb4m@`jvUHZOMX7b|aOvNxA{_PG~ zy{TWDJ5t~C`Gi_+8uiFN^h5d(xrb39y+JlU3)WGEb^oJo^9DcDi>%xi4>|-E&=n@) z&yoG<7n}TipH2;|b zESkF1Ypf@p{_<{mA*aZ*Zh^}H;`9z`I19LcY$3d3I`P*Fdoce|pevlwJOO3;A>%=> qKas-|8<) +MISSION_NAME = SELENE +DATA_SET_ID = SLN-L-TC-3-S-LEVEL2B0-V1.0 +DATA_SET_NAME = "SELENE MOON TC 3 MONO LEVEL2B0 V1.0" +L2DB_ORIGINAL_ID = TC_s_Level2B0 +PRODUCT_ID = TC1S2B0_01_05186N225E0040 +INSTRUMENT_TYPE = IMAGER +INSTRUMENT_ID = TC1 +INSTRUMENT_NAME = "TERRAIN CAMERA 1" +INSTRUMENT_HOST_NAME = "SELENE MAIN ORBITER" +TARGET_TYPE = SATELLITE +TARGET_NAME = MOON +START_TIME = 2008-12-07T05:04:34.460480 +STOP_TIME = 2008-12-07T05:05:04.717980 +SOFTWARE_NAME = RGC_TC_s_Level2B0 +SOFTWARE_VERSION = 1.0.0 +PROCESS_VERSION_ID = L2B +PRODUCT_CREATION_TIME = 2013-06-08T12:58:16 +PROGRAM_START_TIME = 2013-06-08T12:58:01 +PRODUCER_ID = LISM +PRODUCT_SET_ID = TC_s_Level2B0 +PRODUCT_VERSION_ID = "01" +REGISTERED_PRODUCT = Y +ILLUMINATION_CONDITION = MORNING +LEVEL2A_FILE_NAME = TC1S2A0_02TMF05186_004_0002.img +SPICE_METAKERNEL_FILE_NAME = RGC_INF_TCv401IK_MIv200IK_SPv105IK_RISE100i_05_LongCK_D_V02_de421_110706.mk +MISSION_PHASE_NAME = Extended +REVOLUTION_NUMBER = 5186 +STRIP_SEQUENCE_NUMBER = 4 +SCENE_SEQUENCE_NUMBER = 2 +UPPER_LEFT_DAYTIME_FLAG = Day +UPPER_RIGHT_DAYTIME_FLAG = Day +LOWER_LEFT_DAYTIME_FLAG = Day +LOWER_RIGHT_DAYTIME_FLAG = Day +OBSERVATION_MODE_ID = NORMAL +SENSOR_DESCRIPTION = "Imagery type:Pushbroom. ImageryMode:Mono,Stereo. ExposureTimeMode:Long,Middle,Short. CompressionMode:NonComp,DCT. Q-table:32 patterns. H-table:4 patterns. SwathMode:F(Full),N(Nominal),H(Half). First pixel number:1(F),297(N),1172(H)." +SENSOR_DESCRIPTION2 = "Pixel size:7x7[micron^2](TC1/TC2). Wavelength range:430-850[nm](TC1/TC2). A/D rate:10[bit](TC1/TC2). Slant angle:+/-15[degree] (from nadir to +x of S/C)(TC1/TC2). Focal length:72.45/72.63[mm](TC1/TC2). F number:3.97/3.98(TC1/TC2)." +DETECTOR_STATUS = (TC1:ON, TC2:OFF, MV:OFF, MN:OFF, SP:ON) +EXPOSURE_MODE_ID = MIDDLE +LINE_EXPOSURE_DURATION = (3.25 ) +SPACECRAFT_CLOCK_START_COUNT = "912661463.5535 " +SPACECRAFT_CLOCK_STOP_COUNT = "912661493.8110 " +CORRECTED_SC_CLOCK_START_COUNT = 912661463.551562 +CORRECTED_SC_CLOCK_STOP_COUNT = 912661493.808747 +CORRECTED_START_TIME = 2008-12-07T05:04:34.458542 +CORRECTED_STOP_TIME = 2008-12-07T05:05:04.715727 +LINE_SAMPLING_INTERVAL = 6.5 +CORRECTED_SAMPLING_INTERVAL = (6.499932 ) +UPPER_LEFT_LATITUDE = 21.694101 +UPPER_LEFT_LONGITUDE = 3.476042 +UPPER_RIGHT_LATITUDE = 21.711476 +UPPER_RIGHT_LONGITUDE = 4.636101 +LOWER_LEFT_LATITUDE = 23.230896 +LOWER_LEFT_LONGITUDE = 3.440187 +LOWER_RIGHT_LATITUDE = 23.248459 +LOWER_RIGHT_LONGITUDE = 4.613281 +LOCATION_FLAG = A +ROLL_CANT = NO +SCENE_CENTER_LATITUDE = 22.472717 +SCENE_CENTER_LONGITUDE = 4.042497 +INCIDENCE_ANGLE = 65.012 +EMISSION_ANGLE = 15.912 +PHASE_ANGLE = 67.161 +SOLAR_AZIMUTH_ANGLE = 102.71 +FOCAL_PLANE_TEMPERATURE = (18.08 ) +TELESCOPE_TEMPERATURE = (17.82 ) +SATELLITE_MOVING_DIRECTION = -1 +FIRST_SAMPLED_LINE_POSITION = UPPERMOST +FIRST_DETECTOR_ELEM_POSITION = LEFT +A_AXIS_RADIUS = 1737.4 +B_AXIS_RADIUS = 1737.4 +C_AXIS_RADIUS = 1737.4 +DEFECT_PIXEL_POSITION = N/A +SWATH_MODE_ID = FULL +FIRST_PIXEL_NUMBER = 1 +LAST_PIXEL_NUMBER = 3208 +SPACECRAFT_ALTITUDE = 101.768 +SPACECRAFT_GROUND_SPEED = 1.54 +TC1_TELESCOPE_TEMPERATURE = 18.01 +TC2_TELESCOPE_TEMPERATURE = 18.01 +DPU_TEMPERATURE = 13.3 +TM_TEMPERATURE = 16.99 +TM_RADIATOR_TEMPERATURE = 14.6 +Q_TABLE_ID = N/A +HUFFMAN_TABLE_ID = N/A +DATA_COMPRESSION_PERCENT_MEAN = 100.0 +DATA_COMPRESSION_PERCENT_MAX = 100.0 +DATA_COMPRESSION_PERCENT_MIN = 100.0 +Object = IMAGE + COMPRESSION_TYPE = N/A + COMPRESSION_PERCENT = 100.0 + NOMINAL_LINE_NUMBER = 4088 + NOMINAL_OVERLAP_LINE_NUMBER = 568 + OVERLAP_LINE_NUMBER = 568 + LINES = 3 + LINE_SAMPLES = 3208 + SAMPLE_TYPE = MSB_INTEGER + SAMPLE_BITS = 16 + IMAGE_VALUE_TYPE = RADIANCE + UNIT = W/m**2/micron/sr + SCALING_FACTOR = 0.013 + OFFSET = 0.0 + MIN_FOR_STATISTICAL_EVALUATION = 0 + MAX_FOR_STATISTICAL_EVALUATION = 32767 + SCENE_MAXIMUM_DN = 3913 + SCENE_MINIMUM_DN = 30 + SCENE_AVERAGE_DN = 868.1 + SCENE_STDEV_DN = 236.6 + SCENE_MODE_DN = 833 + SHADOWED_AREA_MINIMUM = 0 + SHADOWED_AREA_MAXIMUM = 0 + SHADOWED_AREA_PERCENTAGE = 0 + INVALID_TYPE = (SATURATION, MINUS, DUMMY_DEFECT, OTHER) + INVALID_VALUE = (-20000, -21000, -22000, -23000) + INVALID_PIXELS = (0, 0, 0, 0) +End_Object +Object = PROCESSING_PARAMETERS + DARK_FILE_NAME = TC1_DRK_04740_07463_M_N_b05.csv + FLAT_FILE_NAME = TC1_FLT_04740_07536_N_N_b05.csv + EFFIC_FILE_NAME = TC1_EFF_PRFLT_N_N_v01.csv + NONLIN_FILE_NAME = TC1_NLT_PRFLT_N_N_v01.csv + RAD_CNV_COEF = (3.790009 ) + L2A_DEAD_PIXEL_THRESHOLD = 30 + L2A_SATURATION_THRESHOLD = 1023 + DARK_VALID_MINIMUM = -5 + RADIANCE_SATURATION_THRESHOLD = 425.971 +End_Object +End \ No newline at end of file diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 7836c1dbb5..f35759f302 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -18,7 +18,7 @@ # A Public Release for ISIS3.6.1: {% set version = "3.6.1" %} # A Release Candidate for ISIS3.6.1: {% set version = "3.6.1_RC" %} # A custom build of ISIS3.6.1 for the CaSSIS mission: {% set version = "3.6.1_cassis" %} -{% set version = "4.0.0_RC1" %} +{% set version = "4.1.0_RC1" %} # This is the build number for the current version you are building. If this is the first build of # this version, the build number will be 0. It is incremented by 1 with every consecutive build of From ce480e89b3a741761912ac10183a4caca74ab422 Mon Sep 17 00:00:00 2001 From: Kristin Date: Wed, 4 Mar 2020 13:31:29 -0700 Subject: [PATCH 02/61] Update CMakeLists process translation files in the ISIS source code. (#3726) * Update meta.yaml to rename conda package to isis from isis3 * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * Add directory structure for appdata in source * Update cmakelists to copy translation files over into the appdata/translations area in the build directory. * Update to install appdata * Add appdata/templates directory needed for apollo work. Co-authored-by: Jesse Mapel Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette --- isis/CMakeLists.txt | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/isis/CMakeLists.txt b/isis/CMakeLists.txt index 75749b7452..c53dca1085 100644 --- a/isis/CMakeLists.txt +++ b/isis/CMakeLists.txt @@ -446,9 +446,13 @@ endif() file(WRITE "${CMAKE_BINARY_DIR}/qt.conf" "[Paths]\nPlugins=../3rdParty/plugins/\n") install(FILES "${CMAKE_BINARY_DIR}/qt.conf" DESTINATION ${CMAKE_INSTALL_PREFIX}/bin/xml) -#Create the inc directory +# Create the inc directory execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/inc) +# Create the appdata directory and translations directory +execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/appdata/translations) +execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/appdata/templates) + # Create an xml folder in the source directory that we will need later set(sourceXmlFolder ${CMAKE_BINARY_DIR}/bin/xml) execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/bin/xml) @@ -462,6 +466,9 @@ install(DIRECTORY ${CMAKE_SOURCE_DIR}/templates DESTINATION .) # Set up install of the make folder. install(DIRECTORY ${CMAKE_SOURCE_DIR}/make DESTINATION ${CMAKE_INSTALL_PREFIX}) +# Set up install of appdata folder +install(DIRECTORY ${CMAKE_BINARY_DIR}/appdata DESTINATION ${CMAKE_INSTALL_PREFIX}) + # Have CMake process all of the source code and tests. add_subdirectory(src objects) @@ -490,6 +497,19 @@ add_custom_target(incs ALL COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/src/*/apps/*/*.h ${CMAKE_BINARY_DIR}/inc) add_dependencies(isis3 incs) +# Add custom build target to copy modified translation files to the build/appdata/translations +# directory. (As above - may need to be updated) +add_custom_target(appdata ALL COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_SOURCE_DIR}/appdata/serialnumbers/*.trn ${CMAKE_SOURCE_DIR}/src/*/apps/*/*.trn + ${CMAKE_BINARY_DIR}/appdata/translations) +add_dependencies(isis3 appdata) + +# Add custom build target to copy modified template files to the build/appdata/templates +# directory. (As above - may need to be updated) +add_custom_target(templates ALL COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_SOURCE_DIR}/appdata/templates/*.pvl ${CMAKE_BINARY_DIR}/appdata/templates) +add_dependencies(isis3 templates) + # Add a custom build target to clean out everything that gets added to the source # directory during the build process. # - Only a few things are added in order to make the tests work properly so From de8cd58a595e5b6c87e61a7ce4d57100dae3c830 Mon Sep 17 00:00:00 2001 From: Kristin Date: Wed, 4 Mar 2020 15:00:25 -0700 Subject: [PATCH 03/61] Change ISIS3DATA to ISISDATA (#3728) * Changeing env variable ISIS3DATA to ISISDATA * Changed ISIS3DATA to ISISDATA and pointed to new data area * Updating PR with new location of ISISDATA --- Jenkinsfile | 2 +- isis/CMakeLists.txt | 16 +++---- isis/IsisPreferences | 72 ++++++++++++++++---------------- isis/TestPreferences | 72 ++++++++++++++++---------------- isis/cmake/RunMakeFileTest.cmake | 2 +- isis/cmake/RunUnitTest.cmake | 6 +-- isis/cmake/TestSetup.cmake | 4 +- isis/scripts/isis3Startup.csh | 6 +-- isis/scripts/isis3Startup.py | 6 +-- isis/scripts/isis3Startup.sh | 6 +-- isis/scripts/isis3VarInit.py | 14 +++---- 11 files changed, 103 insertions(+), 103 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0747ebcb53..5c90fdccfe 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -54,7 +54,7 @@ pipeline { def build_ok = true def condaPath = "" def isisEnv = [ - "ISIS3DATA=/isisData/data", + "ISISDATA=/isisData/isis_data", "ISIS3TESTDATA=/isisData/testData", "ISIS3MGRSCRIPTS=/isisData/data/isis3mgr_scripts", "MALLOC_CHECK_=1" diff --git a/isis/CMakeLists.txt b/isis/CMakeLists.txt index c53dca1085..0bad16f054 100644 --- a/isis/CMakeLists.txt +++ b/isis/CMakeLists.txt @@ -65,7 +65,7 @@ set(BUILD_SHARED_LIBS ON) set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) # Specify user options that can be passed in with the initial CMake command. -option(isis3Data "Directory containing Isis3Data" OFF ) +option(isisData "Directory containing IsisData" OFF ) option(isis3TestData "Directory containing Isis3TestData" OFF ) option(testOutputDir "Directory to store app test output folders" OFF ) option(buildCore "Build the core ISIS modules" ON ) @@ -82,18 +82,18 @@ if(DEFINED ENV{CONDA_PREFIX} AND CMAKE_INSTALL_PREFIX STREQUAL "/usr/local") endif() # Prioritize passed in variables over env vars, probably a better way to do this -if(DEFINED ENV{ISIS3DATA} AND NOT isis3Data) - set(isis3Data $ENV{ISIS3DATA}) +if(DEFINED ENV{ISISDATA} AND NOT isisData) + set(isisData $ENV{ISISDATA}) endif() if(DEFINED ENV{ISIS3TESTDATA} AND NOT isis3TestData) set(isis3TestData $ENV{ISIS3TESTDATA}) endif() -if(EXISTS ${isis3Data}) - set(ENV{ISIS3DATA} "${isis3Data}") +if(EXISTS ${isisData}) + set(ENV{ISISDATA} "${isisData}") else() - message(WARNING "Isis3Data directory ${isis3Data} not found, unit tests will fail.") - set(isis3Data OFF) + message(WARNING "Isis Data directory ${isisData} not found, unit tests will fail.") + set(isisData OFF) endif() if(EXISTS ${isis3TestData}) @@ -124,7 +124,7 @@ message("\tBUILD CORE: ${buildCore}") message("\tBUILD MISSIONS: ${buildMissions}") message("\tJP2K SUPPORT: ${JP2KFLAG}") message("\tPYTHON BINDINGS: ${pybindings}") -message("\tISIS3DATA: ${isis3Data}") +message("\tISISDATA: ${isisData}") message("\tISISTESTDATA: ${isis3TestData}") message("\tTEST OUTPUT DIR: ${testOutputDir}") message("\tINSTALL PREFIX: ${CMAKE_INSTALL_PREFIX}") diff --git a/isis/IsisPreferences b/isis/IsisPreferences index c98e6a5901..d9b70fb2b9 100644 --- a/isis/IsisPreferences +++ b/isis/IsisPreferences @@ -175,42 +175,42 @@ EndGroup ######################################################## Group = DataDirectory - Apollo15 = $ISIS3DATA/apollo15 - Apollo16 = $ISIS3DATA/apollo16 - Apollo17 = $ISIS3DATA/apollo17 - Base = $ISIS3DATA/base - Cassini = $ISIS3DATA/cassini - Chan1 = $ISIS3DATA/chan1 - Chandrayaan1 = $ISIS3DATA/chandrayaan1 - Clementine1 = $ISIS3DATA/clementine1 - Clipper = $ISIS3DATA/../datalocal/clipper - Control = $ISIS3DATA/control - Dawn = $ISIS3DATA/dawn - Galileo = $ISIS3DATA/galileo - Hayabusa = $ISIS3DATA/hayabusa - Hayabusa2 = $ISIS3DATA/hayabusa2 - Juno = $ISIS3DATA/juno - Kaguya = $ISIS3DATA/kaguya - Lo = $ISIS3DATA/lo - Lro = $ISIS3DATA/lro - Mariner10 = $ISIS3DATA/mariner10 - Mer = $ISIS3DATA/mer - Mex = $ISIS3DATA/mex - Messenger = $ISIS3DATA/messenger - Mgs = $ISIS3DATA/mgs - Mro = $ISIS3DATA/mro - Near = $ISIS3DATA/near - NewHorizons = $ISIS3DATA/newhorizons - Odyssey = $ISIS3DATA/odyssey - OsirisRex = $ISIS3DATA/../datalocal/osirisrex - Rolo = $ISIS3DATA/rolo - Rosetta = $ISIS3DATA/rosetta - Smart1 = $ISIS3DATA/smart1 - Tgo = $ISIS3DATA/tgo - Viking1 = $ISIS3DATA/viking1 - Viking2 = $ISIS3DATA/viking2 - Voyager1 = $ISIS3DATA/voyager1 - Voyager2 = $ISIS3DATA/voyager2 + Apollo15 = $ISISDATA/apollo15 + Apollo16 = $ISISDATA/apollo16 + Apollo17 = $ISISDATA/apollo17 + Base = $ISISDATA/base + Cassini = $ISISDATA/cassini + Chan1 = $ISISDATA/chan1 + Chandrayaan1 = $ISISDATA/chandrayaan1 + Clementine1 = $ISISDATA/clementine1 + Clipper = $ISISDATA/../datalocal/clipper + Control = $ISISDATA/control + Dawn = $ISISDATA/dawn + Galileo = $ISISDATA/galileo + Hayabusa = $ISISDATA/hayabusa + Hayabusa2 = $ISISDATA/hayabusa2 + Juno = $ISISDATA/juno + Kaguya = $ISISDATA/kaguya + Lo = $ISISDATA/lo + Lro = $ISISDATA/lro + Mariner10 = $ISISDATA/mariner10 + Mer = $ISISDATA/mer + Mex = $ISISDATA/mex + Messenger = $ISISDATA/messenger + Mgs = $ISISDATA/mgs + Mro = $ISISDATA/mro + Near = $ISISDATA/near + NewHorizons = $ISISDATA/newhorizons + Odyssey = $ISISDATA/odyssey + OsirisRex = $ISISDATA/../datalocal/osirisrex + Rolo = $ISISDATA/rolo + Rosetta = $ISISDATA/rosetta + Smart1 = $ISISDATA/smart1 + Tgo = $ISISDATA/tgo + Viking1 = $ISISDATA/viking1 + Viking2 = $ISISDATA/viking2 + Voyager1 = $ISISDATA/voyager1 + Voyager2 = $ISISDATA/voyager2 Temporary = . EndGroup diff --git a/isis/TestPreferences b/isis/TestPreferences index 5c5fbfe6a9..663d4de2f0 100644 --- a/isis/TestPreferences +++ b/isis/TestPreferences @@ -175,42 +175,42 @@ EndGroup ######################################################## Group = DataDirectory - Apollo15 = $ISIS3DATA/apollo15 - Apollo16 = $ISIS3DATA/apollo16 - Apollo17 = $ISIS3DATA/apollo17 - Base = $ISIS3DATA/base - Cassini = $ISIS3DATA/cassini - Chan1 = $ISIS3DATA/chan1 - Chandrayaan1 = $ISIS3DATA/chandrayaan1 - Clementine1 = $ISIS3DATA/clementine1 - Clipper = $ISIS3DATA/../datalocal/clipper - Control = $ISIS3DATA/control - Dawn = $ISIS3DATA/dawn - Galileo = $ISIS3DATA/galileo - Hayabusa = $ISIS3DATA/hayabusa - Hayabusa2 = $ISIS3DATA/hayabusa2 - Juno = $ISIS3DATA/juno - Kaguya = $ISIS3DATA/kaguya - Lo = $ISIS3DATA/lo - Lro = $ISIS3DATA/lro - Mariner10 = $ISIS3DATA/mariner10 - Mer = $ISIS3DATA/mer - Mex = $ISIS3DATA/mex - Messenger = $ISIS3DATA/messenger - Mgs = $ISIS3DATA/mgs - Mro = $ISIS3DATA/mro - Near = $ISIS3DATA/near - NewHorizons = $ISIS3DATA/newhorizons - Odyssey = $ISIS3DATA/odyssey - OsirisRex = $ISIS3DATA/../datalocal/osirisrex - Rolo = $ISIS3DATA/rolo - Rosetta = $ISIS3DATA/rosetta - Smart1 = $ISIS3DATA/smart1 - Tgo = $ISIS3DATA/tgo - Viking1 = $ISIS3DATA/viking1 - Viking2 = $ISIS3DATA/viking2 - Voyager1 = $ISIS3DATA/voyager1 - Voyager2 = $ISIS3DATA/voyager2 + Apollo15 = $ISISDATA/apollo15 + Apollo16 = $ISISDATA/apollo16 + Apollo17 = $ISISDATA/apollo17 + Base = $ISISDATA/base + Cassini = $ISISDATA/cassini + Chan1 = $ISISDATA/chan1 + Chandrayaan1 = $ISISDATA/chandrayaan1 + Clementine1 = $ISISDATA/clementine1 + Clipper = $ISISDATA/../datalocal/clipper + Control = $ISISDATA/control + Dawn = $ISISDATA/dawn + Galileo = $ISISDATA/galileo + Hayabusa = $ISISDATA/hayabusa + Hayabusa2 = $ISISDATA/hayabusa2 + Juno = $ISISDATA/juno + Kaguya = $ISISDATA/kaguya + Lo = $ISISDATA/lo + Lro = $ISISDATA/lro + Mariner10 = $ISISDATA/mariner10 + Mer = $ISISDATA/mer + Mex = $ISISDATA/mex + Messenger = $ISISDATA/messenger + Mgs = $ISISDATA/mgs + Mro = $ISISDATA/mro + Near = $ISISDATA/near + NewHorizons = $ISISDATA/newhorizons + Odyssey = $ISISDATA/odyssey + OsirisRex = $ISISDATA/../datalocal/osirisrex + Rolo = $ISISDATA/rolo + Rosetta = $ISISDATA/rosetta + Smart1 = $ISISDATA/smart1 + Tgo = $ISISDATA/tgo + Viking1 = $ISISDATA/viking1 + Viking2 = $ISISDATA/viking2 + Voyager1 = $ISISDATA/voyager1 + Voyager2 = $ISISDATA/voyager2 Temporary = . EndGroup diff --git a/isis/cmake/RunMakeFileTest.cmake b/isis/cmake/RunMakeFileTest.cmake index 242a9dc1ca..d099e8e3e0 100644 --- a/isis/cmake/RunMakeFileTest.cmake +++ b/isis/cmake/RunMakeFileTest.cmake @@ -75,6 +75,6 @@ endfunction() # - Just redirect to the main function call. # Needed for IsisPreferences and other test data to be found -set(ENV{ISIS3DATA} "${DATA_ROOT}") +set(ENV{ISISDATA} "${DATA_ROOT}") run_app_makefile_test(${MAKEFILE} ${INPUT_DIR} ${OUTPUT_DIR} ${TRUTH_DIR} ${BIN_DIR}) diff --git a/isis/cmake/RunUnitTest.cmake b/isis/cmake/RunUnitTest.cmake index c64d105844..5df277b51d 100644 --- a/isis/cmake/RunUnitTest.cmake +++ b/isis/cmake/RunUnitTest.cmake @@ -4,11 +4,11 @@ #========================================================================= # Multiple ISIS files need to find things relative to ISISROOT -# and ISIS3DATA so make sure those are set. -set(ENV{ISIS3DATA} "${DATA_ROOT}") +# and ISISDATA so make sure those are set. +set(ENV{ISISDATA} "${DATA_ROOT}") message(STATUS "ISISROOT = $ENV{ISISROOT}") -message(STATUS "ISIS3DATA = $ENV{ISIS3DATA}") +message(STATUS "ISISDATA = $ENV{ISISDATA}") # Set up a file for program output set(outputFile "${TEST_PROG}.output") diff --git a/isis/cmake/TestSetup.cmake b/isis/cmake/TestSetup.cmake index c3c3e202b1..bdf2e963be 100644 --- a/isis/cmake/TestSetup.cmake +++ b/isis/cmake/TestSetup.cmake @@ -52,7 +52,7 @@ macro(add_makefile_test_target testName makeFile inputDir outputDir truthDir) -DMAKEFILE=${makeFile} -DCMAKE_BINARY_DIR=${CMAKE_BINARY_DIR} -DCODE_ROOT=${PROJECT_SOURCE_DIR} - -DDATA_ROOT=$ENV{ISIS3DATA} + -DDATA_ROOT=$ENV{ISISDATA} -DINPUT_DIR=${inputDir} -DOUTPUT_DIR=${outputDir} -DTRUTH_DIR=${truthDir} @@ -76,7 +76,7 @@ macro(add_unit_test_target testFile truthFile labels) COMMAND ${CMAKE_COMMAND} -DTEST_PROG=${fullTestPath} -DTRUTH_FILE=${truthFile} - -DDATA_ROOT=$ENV{ISIS3DATA} + -DDATA_ROOT=$ENV{ISISDATA} -DCODE_ROOT=${PROJECT_SOURCE_DIR} -P ${thisFolder}/RunUnitTest.cmake) set_tests_properties(${testName} PROPERTIES LABELS "unit;${labels}") diff --git a/isis/scripts/isis3Startup.csh b/isis/scripts/isis3Startup.csh index 1d76bec235..483788bbb3 100755 --- a/isis/scripts/isis3Startup.csh +++ b/isis/scripts/isis3Startup.csh @@ -39,11 +39,11 @@ if ($?ISISROOT == 0) then setenv ISISROOT /usgs/pkgs/isis3/install endif -# Initialize the ISIS3DATA environment variable +# Initialize the ISISDATA environment variable if (-d $ISISROOT/../data) then - setenv ISIS3DATA $ISISROOT/../data + setenv ISISDATA $ISISROOT/../isis_data else - setenv ISIS3DATA /usgs/cpkgs/isis3/data + setenv ISISDATA /usgs/cpkgs/isis3/isis_data endif # Initialize the ISIS3TESTDATA environment variable diff --git a/isis/scripts/isis3Startup.py b/isis/scripts/isis3Startup.py index e9d436e1c9..48f87c3af3 100755 --- a/isis/scripts/isis3Startup.py +++ b/isis/scripts/isis3Startup.py @@ -15,11 +15,11 @@ def setisis(): ISISROOT = "/usgs/pkgs/isis3/install" os.environ['ISISROOT'] = ISISROOT - #Check for the ISIS3DATA directory. If it does not exist use a default + #Check for the ISISDATA directory. If it does not exist use a default if os.path.exists("%s/../data" % (ISISROOT)): - os.environ['ISIS3DATA'] = "%s/../data" % (ISISROOT) + os.environ['ISISDATA'] = "%s/../isis_data" % (ISISROOT) else: - os.environ['ISIS3DATA'] = "/usgs/cpkgs/isis3/data" + os.environ['ISISDATA'] = "/usgs/cpkgs/isis3/isis_data" #Check for the ISIS3TESTDATA directory. If it does not exist use a default if os.path.exists("%s/../testData" % (ISISROOT)): diff --git a/isis/scripts/isis3Startup.sh b/isis/scripts/isis3Startup.sh index e87d03a13e..4435f1f033 100755 --- a/isis/scripts/isis3Startup.sh +++ b/isis/scripts/isis3Startup.sh @@ -17,11 +17,11 @@ if [ ! "$ISISROOT" ]; then fi if [ -d $ISISROOT/../data ]; then - ISIS3DATA=$ISISROOT/../data + ISISDATA=$ISISROOT/../isis_data else - ISIS3DATA=/usgs/cpkgs/isis3/data + ISISDATA=/usgs/cpkgs/isis3/isis_data fi -export ISIS3DATA +export ISISDATA # Do not export when used by outside groups if [ -d $ISISROOT/../testData ]; then diff --git a/isis/scripts/isis3VarInit.py b/isis/scripts/isis3VarInit.py index fe0668b6fe..6b5ce5ae75 100755 --- a/isis/scripts/isis3VarInit.py +++ b/isis/scripts/isis3VarInit.py @@ -17,7 +17,7 @@ # # # Description: This program builds the shell scripts that define the -# ISISROOT/ISIS3DATA/ISIS3TESTDATA environment variables for the user +# ISISROOT/ISISDATA/ISIS3TESTDATA environment variables for the user # when the ISIS3 conda environment is activated, and clean up when it is # deactivated. # @@ -116,14 +116,14 @@ def mkdir(p): activate_scripts = [""" #!/usr/bin/env sh export ISISROOT={} - export ISIS3DATA={} + export ISISDATA={} export ISIS3TESTDATA={} export ALESPICEROOT={} """, """ #!/usr/bin/env csh setenv ISISROOT {} - setenv ISIS3DATA {} + setenv ISISDATA {} setenv ISIS3TESTDATA {} setenv ALESPICEROOT {} @@ -132,7 +132,7 @@ def mkdir(p): """ #!/usr/bin/env fish set -gx ISISROOT {} - set -gx ISIS3DATA {} + set -gx ISISDATA {} set -gx ISIS3TESTDATA {} set -gx ALESPICEROOT {} """] @@ -141,21 +141,21 @@ def mkdir(p): deactivate_scripts = [""" #!/usr/bin/env sh unset ISISROOT - unset ISIS3DATA + unset ISISDATA unset ISIS3TESTDATA unset ALESPICEROOT """, """ #!/usr/bin/env csh unsetenv ISISROOT - unsetenv ISIS3DATA + unsetenv ISISDATA unsetenv ISIS3TESTDATA unsetenv ALESPICEROOT """, """ #!/usr/bin/env fish set -e ISISROOT - set -e ISIS3DATA + set -e ISISDATA set -e ISIS3TESTDATA set -e ALESPICEROOT """] From 7b6ac6bee24e382707738d5e9eebf39da71ad66d Mon Sep 17 00:00:00 2001 From: Kristin Date: Thu, 5 Mar 2020 08:42:42 -0700 Subject: [PATCH 04/61] Migrates subset of base data to appdata area in source. Fixes CI error. (#3731) * Update meta.yaml to rename conda package to isis from isis3 * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * Add directory structure for appdata in source * Update cmakelists to copy translation files over into the appdata/translations area in the build directory. * Update to install appdata * Add appdata/templates directory needed for apollo work. * Migrates everything in maps, labels, and and autoreg into source, adds placeholders for cmake for images and templates, and adds two actual base translation files and associated changes * Actually address all merge conflicts * Add placeholder for serialnumbers Co-authored-by: Jesse Mapel Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette --- isis/CMakeLists.txt | 33 ++- .../autoreg/coreg.adaptgruen.p1515s3030.def | 256 ++++++++++++++++++ .../autoreg/coreg.maxcor.p1515.s3030.def | 163 +++++++++++ .../autoreg/coreg.maxcor.p2020.s5050.def | 163 +++++++++++ .../autoreg/coreg.mindif.p1515.s3030.def | 168 ++++++++++++ .../autoreg/coreg.mindif.p2020.s5050.def | 168 ++++++++++++ isis/appdata/autoreg/default.def | 31 +++ isis/appdata/autoreg/findrx.def | 22 ++ isis/appdata/autoreg/gruen_default.def | 29 ++ isis/appdata/autoreg/qnetReg.def | 21 ++ .../icons/DELETEME.png} | 0 .../DELETEME.txt => targets/DELETEME.png} | 0 isis/appdata/labels/CubeFormatTemplate.pft | 42 +++ isis/appdata/labels/MappingGroupKeywords.pft | 19 ++ isis/appdata/labels/pdsExportAllMapping.pft | 30 ++ .../maps/ellipsoidtransverseazimuthal.map | 48 ++++ isis/appdata/maps/equirectangular.map | 38 +++ .../maps/lambertazimuthalequalarea.map | 38 +++ isis/appdata/maps/lambertconformal.map | 57 ++++ isis/appdata/maps/mercator.map | 38 +++ isis/appdata/maps/mollweide.map | 36 +++ isis/appdata/maps/obliquecylindrical.map | 39 +++ isis/appdata/maps/orthographic.map | 38 +++ isis/appdata/maps/planar.map | 35 +++ isis/appdata/maps/pointperspective.map | 44 +++ isis/appdata/maps/polarstereographic.map | 38 +++ isis/appdata/maps/ringcylindrical.map | 36 +++ isis/appdata/maps/robinson.map | 37 +++ isis/appdata/maps/simplecylindrical.map | 37 +++ isis/appdata/maps/sinusoidal.map | 37 +++ isis/appdata/maps/transversemercator.map | 42 +++ .../DELETEME.txt => serialnumbers/FAKE.trn} | 0 .../DELETEME.txt => templates/DELETEME.pvl} | 0 isis/appdata/translations/Instruments.trn | 156 +++++++++++ .../translations/MissionName2DataDir.trn | 93 +++++++ .../ObservationNumber/ObservationNumber.cpp | 4 +- .../ObservationNumber/ObservationNumber.h | 2 + .../base/objs/SerialNumber/SerialNumber.cpp | 4 +- .../src/base/objs/SerialNumber/SerialNumber.h | 2 + 39 files changed, 2039 insertions(+), 5 deletions(-) create mode 100644 isis/appdata/autoreg/coreg.adaptgruen.p1515s3030.def create mode 100644 isis/appdata/autoreg/coreg.maxcor.p1515.s3030.def create mode 100644 isis/appdata/autoreg/coreg.maxcor.p2020.s5050.def create mode 100644 isis/appdata/autoreg/coreg.mindif.p1515.s3030.def create mode 100644 isis/appdata/autoreg/coreg.mindif.p2020.s5050.def create mode 100644 isis/appdata/autoreg/default.def create mode 100644 isis/appdata/autoreg/findrx.def create mode 100644 isis/appdata/autoreg/gruen_default.def create mode 100644 isis/appdata/autoreg/qnetReg.def rename isis/appdata/{autoreg/DELETEME.txt => images/icons/DELETEME.png} (100%) rename isis/appdata/images/{icons/DELETEME.txt => targets/DELETEME.png} (100%) create mode 100644 isis/appdata/labels/CubeFormatTemplate.pft create mode 100644 isis/appdata/labels/MappingGroupKeywords.pft create mode 100644 isis/appdata/labels/pdsExportAllMapping.pft create mode 100644 isis/appdata/maps/ellipsoidtransverseazimuthal.map create mode 100644 isis/appdata/maps/equirectangular.map create mode 100644 isis/appdata/maps/lambertazimuthalequalarea.map create mode 100644 isis/appdata/maps/lambertconformal.map create mode 100644 isis/appdata/maps/mercator.map create mode 100644 isis/appdata/maps/mollweide.map create mode 100644 isis/appdata/maps/obliquecylindrical.map create mode 100644 isis/appdata/maps/orthographic.map create mode 100644 isis/appdata/maps/planar.map create mode 100644 isis/appdata/maps/pointperspective.map create mode 100644 isis/appdata/maps/polarstereographic.map create mode 100644 isis/appdata/maps/ringcylindrical.map create mode 100644 isis/appdata/maps/robinson.map create mode 100644 isis/appdata/maps/simplecylindrical.map create mode 100644 isis/appdata/maps/sinusoidal.map create mode 100644 isis/appdata/maps/transversemercator.map rename isis/appdata/{labels/DELETEME.txt => serialnumbers/FAKE.trn} (100%) rename isis/appdata/{maps/DELETEME.txt => templates/DELETEME.pvl} (100%) create mode 100644 isis/appdata/translations/Instruments.trn create mode 100644 isis/appdata/translations/MissionName2DataDir.trn diff --git a/isis/CMakeLists.txt b/isis/CMakeLists.txt index 0bad16f054..684fb66bc2 100644 --- a/isis/CMakeLists.txt +++ b/isis/CMakeLists.txt @@ -452,6 +452,11 @@ execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/inc) # Create the appdata directory and translations directory execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/appdata/translations) execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/appdata/templates) +execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/appdata/maps) +execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/appdata/images/icons) +execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/appdata/images/targets) +execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/appdata/labels) +execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/appdata/autoreg) # Create an xml folder in the source directory that we will need later set(sourceXmlFolder ${CMAKE_BINARY_DIR}/bin/xml) @@ -500,7 +505,8 @@ add_dependencies(isis3 incs) # Add custom build target to copy modified translation files to the build/appdata/translations # directory. (As above - may need to be updated) add_custom_target(appdata ALL COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_SOURCE_DIR}/appdata/serialnumbers/*.trn ${CMAKE_SOURCE_DIR}/src/*/apps/*/*.trn + ${CMAKE_SOURCE_DIR}/appdata/serialnumbers/*.trn ${CMAKE_SOURCE_DIR}/appdata/translations/*.trn + ${CMAKE_SOURCE_DIR}/src/*/apps/*/*.trn ${CMAKE_BINARY_DIR}/appdata/translations) add_dependencies(isis3 appdata) @@ -510,6 +516,31 @@ add_custom_target(templates ALL COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/appdata/templates/*.pvl ${CMAKE_BINARY_DIR}/appdata/templates) add_dependencies(isis3 templates) +# Either add these for maps, labels, autoreg, images or approach in a different way. + +# Add custom build target to copy modified template files to the build/appdata/templates +# directory. (As above - may need to be updated) + +add_custom_target(icons ALL COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_SOURCE_DIR}/appdata/images/icons/* ${CMAKE_BINARY_DIR}/appdata/images/icons) +add_dependencies(isis3 icons) + +add_custom_target(targets ALL COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_SOURCE_DIR}/appdata/images/targets/* ${CMAKE_BINARY_DIR}/appdata/images/targets) +add_dependencies(isis3 targets) + +add_custom_target(maps ALL COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_SOURCE_DIR}/appdata/maps/*.map ${CMAKE_BINARY_DIR}/appdata/maps) +add_dependencies(isis3 maps) + +add_custom_target(labels ALL COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_SOURCE_DIR}/appdata/labels/*.pft ${CMAKE_BINARY_DIR}/appdata/labels) +add_dependencies(isis3 labels) + +add_custom_target(autoreg ALL COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_SOURCE_DIR}/appdata/autoreg/*.def ${CMAKE_BINARY_DIR}/appdata/autoreg) +add_dependencies(isis3 autoreg) + # Add a custom build target to clean out everything that gets added to the source # directory during the build process. # - Only a few things are added in order to make the tests work properly so diff --git a/isis/appdata/autoreg/coreg.adaptgruen.p1515s3030.def b/isis/appdata/autoreg/coreg.adaptgruen.p1515s3030.def new file mode 100644 index 0000000000..0519b54127 --- /dev/null +++ b/isis/appdata/autoreg/coreg.adaptgruen.p1515s3030.def @@ -0,0 +1,256 @@ + Object = AutoRegistration + Group = Algorithm + # This is the adaptive gruen algorithm, which provides adaptive image + # (chip) registration using an Affine transform to iteratively adjust + # the search chip at each iteration. Each iteration solves for new + # adjustments to the Affine transform until the 6 affine parameters + # fall below the tolerances as specified by the following parameters. + #REQUIRED + Name = AdaptiveGruen + + # The tolerance for the goodness-of-fit. For the + # AdaptiveGruen algorithm, the goodness-of-fit value must + # be less than Tolerance before the algorithm is considered + # to have converged to a user-acceptable solution. + #Possible Values: [0,infinity) + #REQUIRED + Tolerance = 0.1 + + # The Maximum number of iterations the algorithm is allowed to perform + # in an attempt to converge before failing and returning no registration. + #Possible Values: [1,infinity), integer + #REQUIRED + MaximumIterations = 30 + + # The AffineTolerance specifies the amount of offset in pixels an affine + # derived point is allowed to deviate from the orginal match point. + #Possible Values: [0,infinity) + #OPTIONAL + AffineTolerance = 5.0 + + # The AffineTranslationTolerance specifies the threshold convergence value + # of the affine translation shift in line/sample between each Gruen match + # iteration. If the amount of affine translation computed in the Gruen + # algorithm is less than the AffineTranslationTolerance, that point is + # deemed a match point for the purposes of the translation portion of the + # registered point. + #Possible Values: [0,infinity) + #OPTIONAL + AffineTranslationTolerance = 0.2 + + # The AffineScaleTolerance specifies the threshold convergence value of the + # affine scale in line/sample between each Gruen match iteration. If the + # amount of the affine translation computed in the Gruen algorithm is + # less than the AffineScaleTolerance, that point is deemed a match point + # for the purposes of the scaling portion of the registered point. + #Possible Values: [0,infinity) + #OPTIONAL + AffineScaleTolerance = 0.7 + + # The AffineShearTolerance specifies the threshold convergence value of the + # affine scale in line/sample between each Gruen match iteration. If the + # amount of the affine translation computed in the Gruen algorithm is + # less than the AffineShearTolerance, that point is deemed a match point + # for the purposes of the shear portion of the registered point. + #Possible Values: [0,infinity) + #OPTIONAL + #AffineShearTolerance = 0.7 + + #The SpiceTolerance defines the amount of offset in pixels a registration + # is allowed to deviate from a registered point. + #Possible Values: [0,infinity) + #OPTIONAL + #SpiceTolerance = 7.0 + + #The RadioShiftTolerance specifies the threshold convergence value for the + # radiometric shift of the pixel value between each Gruen match iteration. + # If the amount of the radiometric shift computed in the Gruen algorithm is + # less than the RadioShiftTolerance, that point is deemed a match point + # for the purposes of the radiometric shift portion of the registered point. + # This tolerance value depends heavily on the radiometric properties of + # your images. + #Possible Values: (-infinity,infinity) + #OPTIONAL + #RadioShiftTolerance = 256 + + #The RadioGainMinTolerance specifies the minimum value for the + # radiometric gain of the pixel value between each Gruen match iteration. + # If the amount of the radiometric gain computed in the Gruen algorithm is + # greater than the RadioGainMinTolerance and is less than + # RadioGainMaxTolerance, that point is deemed a match point for the + # purposes of the radiometric gain portion of the registered point. + # This tolerance value depends heavily on the radiometric properties of + # your images. + #Possible Values: (-infinity,infinity) + #OPTIONAL + #RadioGainMinTolerance = -0.75 + + #The RadioGainMaxTolerance specifies the maximum value for the + # radiometric gain of the pixel value between each Gruen match iteration. + # If the amount of the radiometric gain computed in the Gruen algorithm is + # greater than the RadioGainMinTolerance and is less than + # RadioGainMaxTolerance, that point is deemed a match point for the + # purposes of the radiometric gain portion of the registered point. + # This tolerance value depends heavily on the radiometric properties of + # your images. + #Possible Values: (-infinity,infinity) + #OPTIONAL + #RadioGainMaxTolerance = 3.0 + + #FitChipScale = 0.1 + + #The DefaultRadioShift sets the default value for the radiometric shift + # value used as a starting point in the Gruen algorithm. + #Possible Values: (-infinity,infinity) + #OPTIONAL + #DefaultRadioShift = 0.0 + + #The DefaultRadioGain sets the default value for the radiometric gain + # value used as a starting point in the Gruen algorithm. + #Possible Values: (-infinity,infinity) + #OPTIONAL + #DefaultRadioGain = 0.0 + + # Calculate the registration to subpixel accuracy. This is a + # boolean (True or False). + #Possible Values: {True, False} + #OPTIONAL + #SubPixelAccuracy = True + + # Reduce the size of of the Pattern and Search chips by a + # the ReductionFactor for a first-run through the data + # to find a low-accuracy match. Then focus the + # full-accuracy match to the surrounding area. + #Possible Values: Natural Numbers + #OPTIONAL + #ReductionFactor = 1 + + # Apply a Sobel gradient filter to the chips before running the + # pattern matching Algorithm. This essentially highlights + # edges within the chips, possibly increasing the chance of + # finding a good match between the search and pattern chips. + #Possible Values: {None, Sobel} + #OPTIONAL + #Gradient = None + + # If the two images to be registered do not have the same + # geometry, pattern matching becomes more difficult. This + # option informs the algorithm to warp the pattern cube to + # match the geometry of the search cube by using map + # projections and/or camera models. The warping requires + # interpolation, and the type of interpolation is chosen here. + #Possible Values: {NearestNeighborType, BiLinearType, CubicConvolutionType} + #OPTIONAL + #ChipInterpolator = NearestNeighborType + EndGroup + + #Pattern Chip Definitions + Group = PatternChip + #Size of the PatternChip in Samples and Lines + #Possible Values: Natural Numbers + #REQUIRED + Samples = 15 + Lines = 15 + + #The minimum/maximum pixel value the algorithm should use for registration. + # If a pixel is outside of this range, then it will not be used in the + # registration calculations. + #Possible Values: (-infinity, infinity), ValidMinimum < ValidMaximum + #OPTIONAL + #ValidMinimum = -100 + #ValidMaximum = 100 + + #The MinimumZScore is used to guarantee that the pattern chip has + # enough variability--if the chip is too smooth, spurious matches + # are likely to occur. + #Possible Values: (0.0,infinity) + #OPTIONAL + #MinimumZScore = 1.0 + + #The ValidPercent parameter specifies how many invalid pixels + # (NULL, HIS, etc.) are allowed in the chip before the chip is + # considered invalid and the match fails. + #Possible Values: (0.0,100.0] + #OPTIONAL + #ValidPercent = 50.0 + EndGroup + + #Search Chip Definitions + Group = SearchChip + #Size of the SearchChip in Samples and Lines + #Possible Values: Natural Numbers + #REQUIRED + Samples = 30 + Lines = 30 + + #The minimum/maximum pixel value the algorithm should use for registration. + # If a pixel is outside of this range, then it will not be used in the + # registration calculations. + #Possible Values: (-infinity, infinity), ValidMinimum < ValidMaximum + #OPTIONAL + #ValidMinimum = -100 + #ValidMaximum = 100 + + #The SubchipValidPercent parameter specifies how many invalid pixels + # (NULL, HIS, etc.) are allowed in the subchip before it is + # considered invalid and the match fails. + #Possible Values: (0.0, 100.0] + #OPTIONAL + #SubchipValidPercent = 50.0 + EndGroup + + #If the SubPixelAccuracy parameter is TRUE, then a continuous surface + # based on the fit chip is generated. A least squares fit is then used + # to estimate the true registration position (likely to be between pixels). + Group = SurfaceModel + #The result of a sub-pixel accuracy computation is likely to move + # the result away from its original whole-pixel fit. However, + # sometimes the move could be so drastic that it calls into + # question the validity of the match. This tolerance value + # thus specifies the max number of pixels the sub-pixel accuracy + # computation can move the best fit before the registration is rejected + # entirely. + #Possible Values (0.0, infinity) + #OPTIONAL + #DistanceTolerance = 1.5 + + #When refining a whole-pixel match to sub-pixel accuracy, it is important + # to consider how much area around that best whole-pixel fit to sample + # for constructing a surface model. The WindowSize keyword defines the + # size of the window, centered on the best whole-pixel match, that will + # be used for modelling the surface. Values for WindowSize specify the + # N of an NxN chip, and must be odd numbers greater than or equal to 3. + #Possible Values: [3, infinity), odd integer + #OPTIONAL + #WindowSize = 5 + + #After the least squares fit is performed to model a surface, the + # ideal result is a circular formation of goodness-of-fit values + # improving towards the center of the surface. The less circular, + # or more "eccentric", the formation of goodness-of-fit values, + # the less likely the modelling result is accurate. The + # conditions under which a high ratio occurs is when there are + # primiarily linear features in the search and pattern chips. + # In an attempt to let the user define what constitutes a tolerable + # amount of eccentricity in their surface models, we introduce the + # notion of an "Eccentricity Ratio". Here we think of eccentricity + # as a ratio between the semi-major and semi-minor axes of an ellipse. + #Possible Values [1.0, infinity] + #OPTIONAL + #EccentricityRatio = 1.0 + + #The least squares fit performed to construct the surface model + # takes discrete data from the whole-pixels around the best-fit. + # When these discrete data are fit with a continuous function, + # there is likely going to be some amount of error between the + # original value for some pixel and its interpolated value in the + # least squares solution. The ResidualTolerance keyword thus + # allows the user to specify the maximum average residual, or + # mean absolute error, for all pixels in the surface model area, + # that will be tolerated before the sub-pixel accuracy computation + # is rejected and the registration fails for that point. + #Possible Values: [0.0, infinity] + #OPTIONAL + #ResidualTolerance = 0.0 + EndGroup + EndObject diff --git a/isis/appdata/autoreg/coreg.maxcor.p1515.s3030.def b/isis/appdata/autoreg/coreg.maxcor.p1515.s3030.def new file mode 100644 index 0000000000..03c84ab9b1 --- /dev/null +++ b/isis/appdata/autoreg/coreg.maxcor.p1515.s3030.def @@ -0,0 +1,163 @@ + Object = AutoRegistration + # Algorithm specification. + Group = Algorithm + + # This is the maximum correlation algorithm, which + # computes the correlation coefficient, -1.0 <= R <= 1.0 + # between the pattern chip and sub-region of the search chip. + # The goodness-of-fit is defined as the absolute value + # of R. + #REQUIRED + Name = MaximumCorrelation + + # The tolerance for the goodness-of-fit. For the + # MaximumCorrelation algorithm, the goodness-of-fit value must + # be greater than Tolerance, before the algorithm is considered + # to have converged to a user-acceptable solution. + #Possible Values: [0,1.0) + #REQUIRED + Tolerance = 0.7 + + # Calculate the registration to subpixel accuracy. This is a + # boolean (True or False). + #Possible Values: {True, False} + #OPTIONAL + #SubPixelAccuracy = True + + # Reduce the size of of the Pattern and Search chips by a + # the ReductionFactor for a first-run through the data + # to find a low-accuracy match. Then focus the + # full-accuracy match to the surrounding area. + #Possible Values: Natural Numbers + #OPTIONAL + #ReductionFactor = 1 + + # Apply a Sobel gradient filter to the chips before running the + # pattern matching Algorithm. This essentially highlights + # edges within the chips, possibly increasing the chance of + # finding a good match between the search and pattern chips. + #Possible Values: {None, Sobel} + #OPTIONAL + #Gradient = None + + # If the two images to be registered do not have the same + # geometry, pattern matching becomes more difficult. This + # option informs the algorithm to warp the pattern cube to + # match the geometry of the search cube by using map + # projections and/or camera models. The warping requires + # interpolation, and the type of interpolation is chosen here. + #Possible Values: {NearestNeighborType, BiLinearType, CubicConvolutionType} + #OPTIONAL + #ChipInterpolator = NearestNeighborType + EndGroup + + #Pattern Chip Definitions + Group = PatternChip + #Size of the PatternChip in Samples and Lines + #Possible Values: Natural Numbers + #REQUIRED + Samples = 15 + Lines = 15 + + #The minimum/maximum pixel value the algorithm should use for registration. + # If a pixel is outside of this range, then it will not be used in the + # registration calculations. + #Possible Values: (-infinity, infinity), ValidMinimum < ValidMaximum + #OPTIONAL + #ValidMinimum = -100 + #ValidMaximum = 100 + + #The MinimumZScore is used to guarantee that the pattern chip has + # enough variability--if the chip is too smooth, spurious matches + # are likely to occur. + #Possible Values: (0.0,infinity) + #OPTIONAL + #MinimumZScore = 1.0 + + #The ValidPercent parameter specifies how many invalid pixels + # (NULL, HIS, etc.) are allowed in the chip before the chip is + # considered invalid and the match fails. + #Possible Values: (0.0,100.0] + #OPTIONAL + #ValidPercent = 50.0 + EndGroup + + #Search Chip Definitions + Group = SearchChip + #Size of the SearchChip in Samples and Lines + #Possible Values: Natural Numbers + #REQUIRED + Samples = 30 + Lines = 30 + + #The minimum/maximum pixel value the algorithm should use for registration. + # If a pixel is outside of this range, then it will not be used in the + # registration calculations. + #Possible Values: (-infinity, infinity), ValidMinimum < ValidMaximum + #OPTIONAL + #ValidMinimum = -100 + #ValidMaximum = 100 + + #The SubchipValidPercent parameter specifies how many invalid pixels + # (NULL, HIS, etc.) are allowed in the subchip before it is + # considered invalid and the match fails. + #Possible Values: (0.0, 100.0] + #OPTIONAL + #SubchipValidPercent = 50.0 + EndGroup + + #If the SubPixelAccuracy parameter is TRUE, then a continuous surface + # based on the fit chip is generated. A least squares fit is then used + # to estimate the true registration position (likely to be between pixels). + Group = SurfaceModel + #The result of a sub-pixel accuracy computation is likely to move + # the result away from its original whole-pixel fit. However, + # sometimes the move could be so drastic that it calls into + # question the validity of the match. This tolerance value + # thus specifies the max number of pixels the sub-pixel accuracy + # computation can move the best fit before the registration is rejected + # entirely. + #Possible Values (0.0, infinity) + #OPTIONAL + #DistanceTolerance = 1.5 + + #When refining a whole-pixel match to sub-pixel accuracy, it is important + # to consider how much area around that best whole-pixel fit to sample + # for constructing a surface model. The WindowSize keyword defines the + # size of the window, centered on the best whole-pixel match, that will + # be used for modelling the surface. Values for WindowSize specify the + # N of an NxN chip, and must be odd numbers greater than or equal to 3. + #Possible Values: [3, infinity), odd integer + #OPTIONAL + #WindowSize = 5 + + #After the least squares fit is performed to model a surface, the + # ideal result is a circular formation of goodness-of-fit values + # improving towards the center of the surface. The less circular, + # or more "eccentric", the formation of goodness-of-fit values, + # the less likely the modelling result is accurate. The + # conditions under which a high ratio occurs is when there are + # primiarily linear features in the search and pattern chips. + # In an attempt to let the user define what constitutes a tolerable + # amount of eccentricity in their surface models, we introduce the + # notion of an "Eccentricity Ratio". Here we think of eccentricity + # as a ratio between the semi-major and semi-minor axes of an ellipse. + #Possible Values [1.0, infinity] + #OPTIONAL + #EccentricityRatio = 1.0 + + #The least squares fit performed to construct the surface model + # takes discrete data from the whole-pixels around the best-fit. + # When these discrete data are fit with a continuous function, + # there is likely going to be some amount of error between the + # original value for some pixel and its interpolated value in the + # least squares solution. The ResidualTolerance keyword thus + # allows the user to specify the maximum average residual, or + # mean absolute error, for all pixels in the surface model area, + # that will be tolerated before the sub-pixel accuracy computation + # is rejected and the registration fails for that point. + #Possible Values: [0.0, infinity] + #OPTIONAL + #ResidualTolerance = 0.0 + EndGroup + EndObject diff --git a/isis/appdata/autoreg/coreg.maxcor.p2020.s5050.def b/isis/appdata/autoreg/coreg.maxcor.p2020.s5050.def new file mode 100644 index 0000000000..216c11d377 --- /dev/null +++ b/isis/appdata/autoreg/coreg.maxcor.p2020.s5050.def @@ -0,0 +1,163 @@ + Object = AutoRegistration + # Algorithm specification. + Group = Algorithm + + # This is the maximum correlation algorithm, which + # computes the correlation coefficient, -1.0 <= R <= 1.0 + # between the pattern chip and sub-region of the search chip. + # The goodness-of-fit is defined as the absolute value + # of R. + #REQUIRED + Name = MaximumCorrelation + + # The tolerance for the goodness-of-fit. For the + # MaximumCorrelation algorithm, the goodness-of-fit value must + # be greater than Tolerance, before the algorithm is considered + # to have converged to a user-acceptable solution. + #Possible Values: [0,1.0) + #REQUIRED + Tolerance = 0.7 + + # Calculate the registration to subpixel accuracy. This is a + # boolean (True or False). + #Possible Values: {True, False} + #OPTIONAL + #SubPixelAccuracy = True + + # Reduce the size of of the Pattern and Search chips by a + # the ReductionFactor for a first-run through the data + # to find a low-accuracy match. Then focus the + # full-accuracy match to the surrounding area. + #Possible Values: Natural Numbers + #OPTIONAL + #ReductionFactor = 1 + + # Apply a Sobel gradient filter to the chips before running the + # pattern matching Algorithm. This essentially highlights + # edges within the chips, possibly increasing the chance of + # finding a good match between the search and pattern chips. + #Possible Values: {None, Sobel} + #OPTIONAL + #Gradient = None + + # If the two images to be registered do not have the same + # geometry, pattern matching becomes more difficult. This + # option informs the algorithm to warp the pattern cube to + # match the geometry of the search cube by using map + # projections and/or camera models. The warping requires + # interpolation, and the type of interpolation is chosen here. + #Possible Values: {NearestNeighborType, BiLinearType, CubicConvolutionType} + #OPTIONAL + #ChipInterpolator = NearestNeighborType + EndGroup + + #Pattern Chip Definitions + Group = PatternChip + #Size of the PatternChip in Samples and Lines + #Possible Values: Natural Numbers + #REQUIRED + Samples = 20 + Lines = 20 + + #The minimum/maximum pixel value the algorithm should use for registration. + # If a pixel is outside of this range, then it will not be used in the + # registration calculations. + #Possible Values: (-infinity, infinity), ValidMinimum < ValidMaximum + #OPTIONAL + #ValidMinimum = -100 + #ValidMaximum = 100 + + #The MinimumZScore is used to guarantee that the pattern chip has + # enough variability--if the chip is too smooth, spurious matches + # are likely to occur. + #Possible Values: (0.0,infinity) + #OPTIONAL + #MinimumZScore = 1.0 + + #The ValidPercent parameter specifies how many invalid pixels + # (NULL, HIS, etc.) are allowed in the chip before the chip is + # considered invalid and the match fails. + #Possible Values: (0.0,100.0] + #OPTIONAL + #ValidPercent = 50.0 + EndGroup + + #Search Chip Definitions + Group = SearchChip + #Size of the SearchChip in Samples and Lines + #Possible Values: Natural Numbers + #REQUIRED + Samples = 50 + Lines = 50 + + #The minimum/maximum pixel value the algorithm should use for registration. + # If a pixel is outside of this range, then it will not be used in the + # registration calculations. + #Possible Values: (-infinity, infinity), ValidMinimum < ValidMaximum + #OPTIONAL + #ValidMinimum = -100 + #ValidMaximum = 100 + + #The SubchipValidPercent parameter specifies how many invalid pixels + # (NULL, HIS, etc.) are allowed in the subchip before it is + # considered invalid and the match fails. + #Possible Values: (0.0, 100.0] + #OPTIONAL + #SubchipValidPercent = 50.0 + EndGroup + + #If the SubPixelAccuracy parameter is TRUE, then a continuous surface + # based on the fit chip is generated. A least squares fit is then used + # to estimate the true registration position (likely to be between pixels). + Group = SurfaceModel + #The result of a sub-pixel accuracy computation is likely to move + # the result away from its original whole-pixel fit. However, + # sometimes the move could be so drastic that it calls into + # question the validity of the match. This tolerance value + # thus specifies the max number of pixels the sub-pixel accuracy + # computation can move the best fit before the registration is rejected + # entirely. + #Possible Values (0.0, infinity) + #OPTIONAL + #DistanceTolerance = 1.5 + + #When refining a whole-pixel match to sub-pixel accuracy, it is important + # to consider how much area around that best whole-pixel fit to sample + # for constructing a surface model. The WindowSize keyword defines the + # size of the window, centered on the best whole-pixel match, that will + # be used for modelling the surface. Values for WindowSize specify the + # N of an NxN chip, and must be odd numbers greater than or equal to 3. + #Possible Values: [3, infinity), odd integer + #OPTIONAL + #WindowSize = 5 + + #After the least squares fit is performed to model a surface, the + # ideal result is a circular formation of goodness-of-fit values + # improving towards the center of the surface. The less circular, + # or more "eccentric", the formation of goodness-of-fit values, + # the less likely the modelling result is accurate. The + # conditions under which a high ratio occurs is when there are + # primiarily linear features in the search and pattern chips. + # In an attempt to let the user define what constitutes a tolerable + # amount of eccentricity in their surface models, we introduce the + # notion of an "Eccentricity Ratio". Here we think of eccentricity + # as a ratio between the semi-major and semi-minor axes of an ellipse. + #Possible Values [1.0, infinity] + #OPTIONAL + #EccentricityRatio = 1.0 + + #The least squares fit performed to construct the surface model + # takes discrete data from the whole-pixels around the best-fit. + # When these discrete data are fit with a continuous function, + # there is likely going to be some amount of error between the + # original value for some pixel and its interpolated value in the + # least squares solution. The ResidualTolerance keyword thus + # allows the user to specify the maximum average residual, or + # mean absolute error, for all pixels in the surface model area, + # that will be tolerated before the sub-pixel accuracy computation + # is rejected and the registration fails for that point. + #Possible Values: [0.0, infinity] + #OPTIONAL + #ResidualTolerance = 0.0 + EndGroup + EndObject diff --git a/isis/appdata/autoreg/coreg.mindif.p1515.s3030.def b/isis/appdata/autoreg/coreg.mindif.p1515.s3030.def new file mode 100644 index 0000000000..fd968d345b --- /dev/null +++ b/isis/appdata/autoreg/coreg.mindif.p1515.s3030.def @@ -0,0 +1,168 @@ + Object = AutoRegistration + # Algorithm specification. + Group = Algorithm + + # This is the minimum difference algorithm, which + # defines goodness-of-fit as the average difference + # per pixel between the pattern chip and the search + # sub-region. A value of 0 in the goodness-of-fit + # result implies a perfect match. + #REQUIRED + Name = MinimumDifference + + # The tolerance for the goodness-of-fit. For the + # MinimumDifference algorithm, the goodness-of-fit value must + # be less than Tolerance, before the algorithm is considered + # to have converged to a user-acceptable solution. In addition, + # the tolerance value is dependent on the images being + # matched. For example, 100 might work for DN values in + # an image pair that have not been radiometrically + # calibrated, but 0.1 may be necessary for an image pair + # that have radiometrically calibrated values of I/F. + #Possible Values: [0,infinity) + #REQUIRED + Tolerance = 100 + + # Calculate the registration to subpixel accuracy. This is a + # boolean (True or False). + #Possible Values: {True, False} + #OPTIONAL + #SubPixelAccuracy = True + + # Reduce the size of of the Pattern and Search chips by a + # the ReductionFactor for a first-run through the data + # to find a low-accuracy match. Then focus the + # full-accuracy match to the surrounding area. + #Possible Values: Natural Numbers + #OPTIONAL + #ReductionFactor = 1 + + # Apply a Sobel gradient filter to the chips before running the + # pattern matching Algorithm. This essentially highlights + # edges within the chips, possibly increasing the chance of + # finding a good match between the search and pattern chips. + #Possible Values: {None, Sobel} + #OPTIONAL + #Gradient = None + + # If the two images to be registered do not have the same + # geometry, pattern matching becomes more difficult. This + # option informs the algorithm to warp the pattern cube to + # match the geometry of the search cube by using map + # projections and/or camera models. The warping requires + # interpolation, and the type of interpolation is chosen here. + #Possible Values: {NearestNeighborType, BiLinearType, CubicConvolutionType} + #OPTIONAL + #ChipInterpolator = NearestNeighborType + EndGroup + + #Pattern Chip Definitions + Group = PatternChip + #Size of the PatternChip in Samples and Lines + #Possible Values: Natural Numbers + #REQUIRED + Samples = 15 + Lines = 15 + + #The minimum/maximum pixel value the algorithm should use for registration. + # If a pixel is outside of this range, then it will not be used in the + # registration calculations. + #Possible Values: (-infinity, infinity), ValidMinimum < ValidMaximum + #OPTIONAL + #ValidMinimum = -100 + #ValidMaximum = 100 + + #The MinimumZScore is used to guarantee that the pattern chip has + # enough variability--if the chip is too smooth, spurious matches + # are likely to occur. + #Possible Values: (0.0,infinity) + #OPTIONAL + #MinimumZScore = 1.0 + + #The ValidPercent parameter specifies how many invalid pixels + # (NULL, HIS, etc.) are allowed in the chip before the chip is + # considered invalid and the match fails. + #Possible Values: (0.0,100.0] + #OPTIONAL + #ValidPercent = 50.0 + EndGroup + + #Search Chip Definitions + Group = SearchChip + #Size of the SearchChip in Samples and Lines + #Possible Values: Natural Numbers + #REQUIRED + Samples = 30 + Lines = 30 + + #The minimum/maximum pixel value the algorithm should use for registration. + # If a pixel is outside of this range, then it will not be used in the + # registration calculations. + #Possible Values: (-infinity, infinity), ValidMinimum < ValidMaximum + #OPTIONAL + #ValidMinimum = -100 + #ValidMaximum = 100 + + #The SubchipValidPercent parameter specifies how many invalid pixels + # (NULL, HIS, etc.) are allowed in the subchip before it is + # considered invalid and the match fails. + #Possible Values: (0.0, 100.0] + #OPTIONAL + #SubchipValidPercent = 50.0 + EndGroup + + #If the SubPixelAccuracy parameter is TRUE, then a continuous surface + # based on the fit chip is generated. A least squares fit is then used + # to estimate the true registration position (likely to be between pixels). + Group = SurfaceModel + #The result of a sub-pixel accuracy computation is likely to move + # the result away from its original whole-pixel fit. However, + # sometimes the move could be so drastic that it calls into + # question the validity of the match. This tolerance value + # thus specifies the max number of pixels the sub-pixel accuracy + # computation can move the best fit before the registration is rejected + # entirely. + #Possible Values (0.0, infinity) + #OPTIONAL + #DistanceTolerance = 1.5 + + #When refining a whole-pixel match to sub-pixel accuracy, it is important + # to consider how much area around that best whole-pixel fit to sample + # for constructing a surface model. The WindowSize keyword defines the + # size of the window, centered on the best whole-pixel match, that will + # be used for modelling the surface. Values for WindowSize specify the + # N of an NxN chip, and must be odd numbers greater than or equal to 3. + #Possible Values: [3, infinity), odd integer + #OPTIONAL + #WindowSize = 5 + + #After the least squares fit is performed to model a surface, the + # ideal result is a circular formation of goodness-of-fit values + # improving towards the center of the surface. The less circular, + # or more "eccentric", the formation of goodness-of-fit values, + # the less likely the modelling result is accurate. The + # conditions under which a high ratio occurs is when there are + # primiarily linear features in the search and pattern chips. + # In an attempt to let the user define what constitutes a tolerable + # amount of eccentricity in their surface models, we introduce the + # notion of an "Eccentricity Ratio". Here we think of eccentricity + # as a ratio between the semi-major and semi-minor axes of an ellipse. + #Possible Values [1.0, infinity] + #OPTIONAL + #EccentricityRatio = 1.0 + + #The least squares fit performed to construct the surface model + # takes discrete data from the whole-pixels around the best-fit. + # When these discrete data are fit with a continuous function, + # there is likely going to be some amount of error between the + # original value for some pixel and its interpolated value in the + # least squares solution. The ResidualTolerance keyword thus + # allows the user to specify the maximum average residual, or + # mean absolute error, for all pixels in the surface model area, + # that will be tolerated before the sub-pixel accuracy computation + # is rejected and the registration fails for that point. + #Possible Values: [0.0, infinity] + #OPTIONAL + #ResidualTolerance = 0.0 + EndGroup + EndObject diff --git a/isis/appdata/autoreg/coreg.mindif.p2020.s5050.def b/isis/appdata/autoreg/coreg.mindif.p2020.s5050.def new file mode 100644 index 0000000000..6614c9fca7 --- /dev/null +++ b/isis/appdata/autoreg/coreg.mindif.p2020.s5050.def @@ -0,0 +1,168 @@ + Object = AutoRegistration + # Algorithm specification. + Group = Algorithm + + # This is the minimum difference algorithm, which + # defines goodness-of-fit as the average difference + # per pixel between the pattern chip and the search + # sub-region. A value of 0 in the goodness-of-fit + # result implies a perfect match. + #REQUIRED + Name = MinimumDifference + + # The tolerance for the goodness-of-fit. For the + # MinimumDifference algorithm, the goodness-of-fit value must + # be less than Tolerance, before the algorithm is considered + # to have converged to a user-acceptable solution. In addition, + # the tolerance value is dependent on the images being + # matched. For example, 100 might work for DN values in + # an image pair that have not been radiometrically + # calibrated, but 0.1 may be necessary for an image pair + # that have radiometrically calibrated values of I/F. + #Possible Values: [0,infinity) + #REQUIRED + Tolerance = 100 + + # Calculate the registration to subpixel accuracy. This is a + # boolean (True or False). + #Possible Values: {True, False} + #OPTIONAL + #SubPixelAccuracy = True + + # Reduce the size of of the Pattern and Search chips by a + # the ReductionFactor for a first-run through the data + # to find a low-accuracy match. Then focus the + # full-accuracy match to the surrounding area. + #Possible Values: Natural Numbers + #OPTIONAL + #ReductionFactor = 1 + + # Apply a Sobel gradient filter to the chips before running the + # pattern matching Algorithm. This essentially highlights + # edges within the chips, possibly increasing the chance of + # finding a good match between the search and pattern chips. + #Possible Values: {None, Sobel} + #OPTIONAL + #Gradient = None + + # If the two images to be registered do not have the same + # geometry, pattern matching becomes more difficult. This + # option informs the algorithm to warp the pattern cube to + # match the geometry of the search cube by using map + # projections and/or camera models. The warping requires + # interpolation, and the type of interpolation is chosen here. + #Possible Values: {NearestNeighborType, BiLinearType, CubicConvolutionType} + #OPTIONAL + #ChipInterpolator = NearestNeighborType + EndGroup + + #Pattern Chip Definitions + Group = PatternChip + #Size of the PatternChip in Samples and Lines + #Possible Values: Natural Numbers + #REQUIRED + Samples = 20 + Lines = 20 + + #The minimum/maximum pixel value the algorithm should use for registration. + # If a pixel is outside of this range, then it will not be used in the + # registration calculations. + #Possible Values: (-infinity, infinity), ValidMinimum < ValidMaximum + #OPTIONAL + #ValidMinimum = -100 + #ValidMaximum = 100 + + #The MinimumZScore is used to guarantee that the pattern chip has + # enough variability--if the chip is too smooth, spurious matches + # are likely to occur. + #Possible Values: (0.0,infinity) + #OPTIONAL + #MinimumZScore = 1.0 + + #The ValidPercent parameter specifies how many invalid pixels + # (NULL, HIS, etc.) are allowed in the chip before the chip is + # considered invalid and the match fails. + #Possible Values: (0.0,100.0] + #OPTIONAL + #ValidPercent = 50.0 + EndGroup + + #Search Chip Definitions + Group = SearchChip + #Size of the SearchChip in Samples and Lines + #Possible Values: Natural Numbers + #REQUIRED + Samples = 50 + Lines = 50 + + #The minimum/maximum pixel value the algorithm should use for registration. + # If a pixel is outside of this range, then it will not be used in the + # registration calculations. + #Possible Values: (-infinity, infinity), ValidMinimum < ValidMaximum + #OPTIONAL + #ValidMinimum = -100 + #ValidMaximum = 100 + + #The SubchipValidPercent parameter specifies how many invalid pixels + # (NULL, HIS, etc.) are allowed in the subchip before it is + # considered invalid and the match fails. + #Possible Values: (0.0, 100.0] + #OPTIONAL + #SubchipValidPercent = 50.0 + EndGroup + + #If the SubPixelAccuracy parameter is TRUE, then a continuous surface + # based on the fit chip is generated. A least squares fit is then used + # to estimate the true registration position (likely to be between pixels). + Group = SurfaceModel + #The result of a sub-pixel accuracy computation is likely to move + # the result away from its original whole-pixel fit. However, + # sometimes the move could be so drastic that it calls into + # question the validity of the match. This tolerance value + # thus specifies the max number of pixels the sub-pixel accuracy + # computation can move the best fit before the registration is rejected + # entirely. + #Possible Values (0.0, infinity) + #OPTIONAL + #DistanceTolerance = 1.5 + + #When refining a whole-pixel match to sub-pixel accuracy, it is important + # to consider how much area around that best whole-pixel fit to sample + # for constructing a surface model. The WindowSize keyword defines the + # size of the window, centered on the best whole-pixel match, that will + # be used for modelling the surface. Values for WindowSize specify the + # N of an NxN chip, and must be odd numbers greater than or equal to 3. + #Possible Values: [3, infinity), odd integer + #OPTIONAL + #WindowSize = 5 + + #After the least squares fit is performed to model a surface, the + # ideal result is a circular formation of goodness-of-fit values + # improving towards the center of the surface. The less circular, + # or more "eccentric", the formation of goodness-of-fit values, + # the less likely the modelling result is accurate. The + # conditions under which a high ratio occurs is when there are + # primiarily linear features in the search and pattern chips. + # In an attempt to let the user define what constitutes a tolerable + # amount of eccentricity in their surface models, we introduce the + # notion of an "Eccentricity Ratio". Here we think of eccentricity + # as a ratio between the semi-major and semi-minor axes of an ellipse. + #Possible Values [1.0, infinity] + #OPTIONAL + #EccentricityRatio = 1.0 + + #The least squares fit performed to construct the surface model + # takes discrete data from the whole-pixels around the best-fit. + # When these discrete data are fit with a continuous function, + # there is likely going to be some amount of error between the + # original value for some pixel and its interpolated value in the + # least squares solution. The ResidualTolerance keyword thus + # allows the user to specify the maximum average residual, or + # mean absolute error, for all pixels in the surface model area, + # that will be tolerated before the sub-pixel accuracy computation + # is rejected and the registration fails for that point. + #Possible Values: [0.0, infinity] + #OPTIONAL + #ResidualTolerance = 0.0 + EndGroup + EndObject diff --git a/isis/appdata/autoreg/default.def b/isis/appdata/autoreg/default.def new file mode 100644 index 0000000000..7641c11e6f --- /dev/null +++ b/isis/appdata/autoreg/default.def @@ -0,0 +1,31 @@ +Object = AutoRegistration + Group = Algorithm + Name = MaximumCorrelation + Tolerance = 0.7 + ReductionFactor = 1 + SubpixelAccuracy = True + + # Valid gradient value is Sobel. + # Gradient = Sobel + End_Group + + Group = PatternChip + Samples = 3 + Lines = 3 + MinimumZScore = 1.0 + End_Group + + Group = SearchChip + Samples = 5 + Lines = 5 + ValidPercent = 50.0 + End_Group + + Group = SurfaceModel + DistanceTolerance = 1.5 + WindowSize = 5 + EccentricityRatio = 2.0 + ResidualTolerance = 0.1 + End_Group +End_Object +End diff --git a/isis/appdata/autoreg/findrx.def b/isis/appdata/autoreg/findrx.def new file mode 100644 index 0000000000..a0ecc3b7a0 --- /dev/null +++ b/isis/appdata/autoreg/findrx.def @@ -0,0 +1,22 @@ + Object = AutoRegistration + Group = Algorithm + Name = MaximumCorrelation + Tolerance = 0.7 + + # Valid gradient value is Sobel. + # Gradient = Sobel + EndGroup + + Group = PatternChip + Samples = 9 + Lines = 9 + MinimumZScore = .5 + EndGroup + + Group = SearchChip + Samples = 21 + Lines = 21 + EndGroup + EndObject + + diff --git a/isis/appdata/autoreg/gruen_default.def b/isis/appdata/autoreg/gruen_default.def new file mode 100644 index 0000000000..cab72f8c50 --- /dev/null +++ b/isis/appdata/autoreg/gruen_default.def @@ -0,0 +1,29 @@ + Object = AutoRegistration + Group = Algorithm + Name = AdaptiveGruen + Tolerance = 99.0 + MaximumIterations = 25 + AffineTolerance = 8.0 + SpiceTolerance = 20.0 + AffineTranslationTolerance = 0.1 + AffineScaleTolerance = 0.3 + AffineShearTolerance = 0.3 + +# RadioShiftTolerance = 256 +# RadioGainMinTolerance = -0.75 +# RadioGainMaxTolerance = 3.0 +# DefaultRadioShift = 0.0 +# DefaultRadioGain = 0.0 + EndGroup + + Group = PatternChip + Samples = 19 + Lines = 19 + EndGroup + + Group = SearchChip + Samples = 31 + Lines = 31 + EndGroup + EndObject +End diff --git a/isis/appdata/autoreg/qnetReg.def b/isis/appdata/autoreg/qnetReg.def new file mode 100644 index 0000000000..99d9d6caee --- /dev/null +++ b/isis/appdata/autoreg/qnetReg.def @@ -0,0 +1,21 @@ + Object = AutoRegistration + Group = Algorithm + Name = MaximumCorrelation + Tolerance = 0.7 + + # Valid gradient value is Sobel. + # Gradient = Sobel + EndGroup + + Group = PatternChip + Samples = 15 + Lines = 15 + EndGroup + + Group = SearchChip + Samples = 30 + Lines = 30 + EndGroup + EndObject + + diff --git a/isis/appdata/autoreg/DELETEME.txt b/isis/appdata/images/icons/DELETEME.png similarity index 100% rename from isis/appdata/autoreg/DELETEME.txt rename to isis/appdata/images/icons/DELETEME.png diff --git a/isis/appdata/images/icons/DELETEME.txt b/isis/appdata/images/targets/DELETEME.png similarity index 100% rename from isis/appdata/images/icons/DELETEME.txt rename to isis/appdata/images/targets/DELETEME.png diff --git a/isis/appdata/labels/CubeFormatTemplate.pft b/isis/appdata/labels/CubeFormatTemplate.pft new file mode 100644 index 0000000000..6bd1e6d85c --- /dev/null +++ b/isis/appdata/labels/CubeFormatTemplate.pft @@ -0,0 +1,42 @@ + +Object = IsisCube + Object = Core + Group = Dimensions + End_Group + + Group = Pixels + End_Group + End_Object + + Group = Instrument + End_Group + + Group = Archive + End_Group + + Group = BandBin + End_Group + + Group = Kernels + End_Group + + Group = Radiometry + End_Group + + Group = Mapping + Isis:PvlTemplate:File = $base/templates/labels/MappingGroupKeywords.pft + End_Group + + Group = AlphaCube + End_Group +End_Object + +Object = Label +End_Object + +Object = Table +End_Object + +Object = History +End_Object +End diff --git a/isis/appdata/labels/MappingGroupKeywords.pft b/isis/appdata/labels/MappingGroupKeywords.pft new file mode 100644 index 0000000000..35624da362 --- /dev/null +++ b/isis/appdata/labels/MappingGroupKeywords.pft @@ -0,0 +1,19 @@ +ProjectionName +CenterLongitude +TargetName +EquatorialRadius +PolarRadius +LatitudeType +LongitudeDirection +LongitudeDomain +MinimumLatitude +MaximumLatitude +MinimumLongitude +MaximumLongitude +UpperLeftCornerX +UpperLeftCornerY +PixelResolution +Scale +TrueScaleLatitude +LineProjectionOffset +SampleProjectionOffset diff --git a/isis/appdata/labels/pdsExportAllMapping.pft b/isis/appdata/labels/pdsExportAllMapping.pft new file mode 100644 index 0000000000..3039ed2c41 --- /dev/null +++ b/isis/appdata/labels/pdsExportAllMapping.pft @@ -0,0 +1,30 @@ + +^DATA_SET_MAP_PROJECTION = String +NOT_APPLICABLE_CONSTANT = Integer +MAP_PROJECTION_TYPE = String +PROJECTION_LATITUDE_TYPE = Enum +A_AXIS_RADIUS = Real +B_AXIS_RADIUS = Real +C_AXIS_RADIUS = Real +FIRST_STANDARD_PARALLEL = Real +SECOND_STANDARD_PARALLEL = Real +COORDINATE_SYSTEM_NAME = Enum +POSITIVE_LONGITUDE_DIRECTION = Enum +KEYWORD_LATITUDE_TYPE = Enum +CENTER_LATITUDE = Real +CENTER_LONGITUDE = Real +REFERENCE_LATITUDE = Real +REFERENCE_LONGITUDE = Real +LINE_FIRST_PIXEL = Integer +LINE_LAST_PIXEL = Integer +SAMPLE_FIRST_PIXEL = Integer +SAMPLE_LAST_PIXEL = Integer +MAP_PROJECTION_ROTATION = Real +MAP_RESOLUTION = Real +MAP_SCALE = Real +MAXIMUM_LATITUDE = Real +MINIMUM_LATITUDE = Real +LINE_PROJECTION_OFFSET = Real +SAMPLE_PROJECTION_OFFSET = Real +EASTERNMOST_LONGITUDE = Real +WESTERNMOST_LONGITUDE = Real diff --git a/isis/appdata/maps/ellipsoidtransverseazimuthal.map b/isis/appdata/maps/ellipsoidtransverseazimuthal.map new file mode 100644 index 0000000000..bd11c8e0e1 --- /dev/null +++ b/isis/appdata/maps/ellipsoidtransverseazimuthal.map @@ -0,0 +1,48 @@ +#**************************************************************************** +# This is a map template file for the upturned ellipsoid transverse azimuthal +# projection. +# +# Most of the parameters are commented (#) which means a program will try +# to determine a good value. For example, a program will look at cube +# labels to determine the target name and then read system radii values. +# +# If you want to use something other than a system default uncomment the +# approriate line and give the parameter your value. For example, +# PixelResolution = 10 +# +# The upturned ellipsoid transverse azimuthal projection has +# two required parameters: CenterLongitude and CenterLatitude +# which you must uncomment and supply. +# +# If the CenterLongitude is not entered, a default of 0.0 will be used. +# The MinimumLongitude and MaximumLongitude must be within 90 degrees +# of the CenterLongitude. +# +#**************************************************************************** + +Group = Mapping + ProjectionName = UpturnedEllipsoidTransverseAzimuthal + +# CenterLatitude = 0.0 +# CenterLongitude = 180.0 + +# TargetName = ITOKAWA +# EquatorialRadius = 274.0 +# PolarRadius = 138.0 + +# LatitudeType = Planetocentric +# LongitudeDirection = PositiveEast +# LongitudeDomain = 360 + +# MinimumLatitude = -90.0 +# MaximumLatitude = 90.0 +# MinimumLongitude = 100.0 +# MaximumLongitude = 230.0 + +# PixelResolution = 1.07 + +End_Group + + + + diff --git a/isis/appdata/maps/equirectangular.map b/isis/appdata/maps/equirectangular.map new file mode 100644 index 0000000000..bed67dd029 --- /dev/null +++ b/isis/appdata/maps/equirectangular.map @@ -0,0 +1,38 @@ +#**************************************************************************** +# This is a map template file for the equirectangular projection. +# +# Most of the parameters are commented (#) which means a program will try +# to determine a good value. For example, a program will look at cube +# labels to determine the target name and then read system radii values. +# +# If you want to use something other than a system default uncomment the +# approriate line and give the parameter your value. For example, +# PixelResolution = 10 +# +# The equirectangular projection has two required parameters CenterLatitude +# and CenterLongitude. If not uncommented in this file programs usually +# compute them to be the average of the latitude/longitude range. +# +#**************************************************************************** + +Group = Mapping + ProjectionName = Equirectangular +# CenterLatitude = 0.0 +# CenterLongitude = 0.0 + +# TargetName = Mars +# EquatorialRadius = 3396190.0 +# PolarRadius = 3376200.0 + +# LatitudeType = Planetocentric +# LongitudeDirection = PositiveEast +# LongitudeDomain = 360 + +# MinimumLatitude = 47.431079407022 +# MaximumLatitude = 49.323205331047 +# MinimumLongitude = 276.4825037824 +# MaximumLongitude = 279.27207041615 + +# PixelResolution = 115.77089360021 +# Scale = 512.0 +End_Group diff --git a/isis/appdata/maps/lambertazimuthalequalarea.map b/isis/appdata/maps/lambertazimuthalequalarea.map new file mode 100644 index 0000000000..9836278ca1 --- /dev/null +++ b/isis/appdata/maps/lambertazimuthalequalarea.map @@ -0,0 +1,38 @@ +#**************************************************************************** +# This is a map template file for the Lambert azimuthal equal-area projection. +# +# Most of the parameters are commented (#) which means a program will try +# to determine a good value. For example, a program will look at cube +# labels to determine the target name and then read system radii values. +# +# If you want to use something other than a system default uncomment the +# approriate line and give the parameter your value. For example, +# PixelResolution = 10 +# +# The Lambert azimuthal equal-area projection has two required parameters: +# CenterLatitude and CenterLongitude +# If not uncommented in this file, these will usually be computed by programs +# to be the average of the latitude and longitude ranges, respectively. +#**************************************************************************** + +Group = Mapping + ProjectionName = LambertAzimuthalEqualArea +# CenterLatitude = 0.0 +# CenterLongitude = 0.0 + +# TargetName = Mars +# EquatorialRadius = 3396190.0 +# PolarRadius = 3376200.0 + +# LatitudeType = Planetocentric +# LongitudeDirection = PositiveEast +# LongitudeDomain = 360 + +# MinimumLatitude = 47.431079407022 +# MaximumLatitude = 49.323205331047 +# MinimumLongitude = 276.4825037824 +# MaximumLongitude = 279.27207041615 + +# PixelResolution = 115.77089360021 +# Scale = 512.0 +End_Group diff --git a/isis/appdata/maps/lambertconformal.map b/isis/appdata/maps/lambertconformal.map new file mode 100644 index 0000000000..4ee0302b3a --- /dev/null +++ b/isis/appdata/maps/lambertconformal.map @@ -0,0 +1,57 @@ +#**************************************************************************** +# This is a map template file for the lambert conformal projection. +# +# Most of the parameters are commented (#) which means a program will try +# to determine a good value. For example, a program will look at cube +# labels to determine the target name and then read system radii values. +# +# If you want to use something other than a system default uncomment the +# approriate line and give the parameter your value. For example, +# PixelResolution = 10 +# +# The lambert conformal projection has four required parameters. +# Two, CenterLatitude and CenterLongitude, if not uncommented in this +# file will usually be computed by programs to be the average of the +# latitude/longitude range. +# +# The third and fourth parameters are the standard parallels which +# you must supply by uncommenting and adding a number +# +#**************************************************************************** + +Group = Mapping + ProjectionName = LambertConformal +# CenterLatitude = 0.0 +# CenterLongitude = 0.0 +# Earth (ographic) +# FirstStandardParallel = 33.0 +# SecondStandardParallel = 45.0 + +# Mars (ographic) +# FirstStandardParallel = 35.83 +# SecondStandardParallel = 59.17 + +# Venus +# FirstStandardParallel = 34.0 +# SecondStandardParallel = 73.0 + +# Ganymede & Callisto +# FirstStandardParallel = 30.0 +# SecondStandardParallel = 58.0 + +# TargetName = Mars +# EquatorialRadius = 3396190.0 +# PolarRadius = 3376200.0 + +# LatitudeType = Planetocentric +# LongitudeDirection = PositiveEast +# LongitudeDomain = 360 + +# MinimumLatitude = 47.431079407022 +# MaximumLatitude = 49.323205331047 +# MinimumLongitude = 276.4825037824 +# MaximumLongitude = 279.27207041615 + +# PixelResolution = 115.77089360021 +# Scale = 512.0 +End_Group diff --git a/isis/appdata/maps/mercator.map b/isis/appdata/maps/mercator.map new file mode 100644 index 0000000000..fe435f0c95 --- /dev/null +++ b/isis/appdata/maps/mercator.map @@ -0,0 +1,38 @@ +#**************************************************************************** +# This is a map template file for the mercator projection. +# +# Most of the parameters are commented (#) which means a program will try +# to determine a good value. For example, a program will look at cube +# labels to determine the target name and then read system radii values. +# +# If you want to use something other than a system default uncomment the +# approriate line and give the parameter your value. For example, +# PixelResolution = 10 +# +# The mercator projection has two required parameters CenterLatitude +# and CenterLongitude. If not uncommented in this file programs usually +# compute them to be the average of the latitude/longitude range. +# +#**************************************************************************** + +Group = Mapping + ProjectionName = Mercator +# CenterLatitude = 0.0 +# CenterLongitude = 0.0 + +# TargetName = Mars +# EquatorialRadius = 3396190.0 +# PolarRadius = 3376200.0 + +# LatitudeType = Planetocentric +# LongitudeDirection = PositiveEast +# LongitudeDomain = 360 + +# MinimumLatitude = 47.431079407022 +# MaximumLatitude = 49.323205331047 +# MinimumLongitude = 276.4825037824 +# MaximumLongitude = 279.27207041615 + +# PixelResolution = 115.77089360021 +# Scale = 512.0 +End_Group diff --git a/isis/appdata/maps/mollweide.map b/isis/appdata/maps/mollweide.map new file mode 100644 index 0000000000..aae2a3c754 --- /dev/null +++ b/isis/appdata/maps/mollweide.map @@ -0,0 +1,36 @@ +#**************************************************************************** +# This is a map template file for the Mollweide projection. +# +# Most of the parameters are commented (#) which means a program will try +# to determine a good value. For example, a program will look at cube +# labels to determine the target name and then read system radii values. +# +# If you want to use something other than a system default uncomment the +# approriate line and give the parameter your value. For example, +# PixelResolution = 10 +# +# The Mollweide projection has two required parameters: CenterLongitude +# and EquatorialRadius. +# +#**************************************************************************** + +Group = Mapping + ProjectionName = Mollweide +# CenterLongitude = 0.0 + +# TargetName = Mars +# EquatorialRadius = 3396190.0 +# PolarRadius = 3376200.0 + +# LatitudeType = Planetocentric +# LongitudeDirection = PositiveEast +# LongitudeDomain = 360 + +# MinimumLatitude = 47.431079407022 +# MaximumLatitude = 49.323205331047 +# MinimumLongitude = 276.4825037824 +# MaximumLongitude = 279.27207041615 + +# PixelResolution = 115.77089360021 +# Scale = 512.0 +End_Group diff --git a/isis/appdata/maps/obliquecylindrical.map b/isis/appdata/maps/obliquecylindrical.map new file mode 100644 index 0000000000..de6d810830 --- /dev/null +++ b/isis/appdata/maps/obliquecylindrical.map @@ -0,0 +1,39 @@ +#**************************************************************************** +# This is a map template file for the oblique cylindrical projection. +# +# Most of the parameters are commented (#) which means a program will try +# to determine a good value. For example, a program will look at cube +# labels to determine the target name and then read system radii values. +# +# If you want to use something other than a system default uncomment the +# approriate line and give the parameter your value. For example, +# PixelResolution = 10 +# +# The oblique cylindricalprojection has three required parameters +# PoleLatitude, PoleLongitude, and PoleRotation which you must uncomment +# and supply +# +#**************************************************************************** + +Group = Mapping + ProjectionName = ObliqueCylindrical +# PoleLatitude = 0.0 +# PoleLongitude = 0.0 +# PoleRotation = 0.0 + +# TargetName = Mars +# EquatorialRadius = 3396190.0 +# PolarRadius = 3376200.0 + +# LatitudeType = Planetocentric +# LongitudeDirection = PositiveEast +# LongitudeDomain = 360 + +# MinimumLatitude = 47.431079407022 +# MaximumLatitude = 49.323205331047 +# MinimumLongitude = 276.4825037824 +# MaximumLongitude = 279.27207041615 + +# PixelResolution = 115.77089360021 +# Scale = 512.0 +End_Group diff --git a/isis/appdata/maps/orthographic.map b/isis/appdata/maps/orthographic.map new file mode 100644 index 0000000000..6882d50e7e --- /dev/null +++ b/isis/appdata/maps/orthographic.map @@ -0,0 +1,38 @@ +#**************************************************************************** +# This is a map template file for the orthographic projection. +# +# Most of the parameters are commented (#) which means a program will try +# to determine a good value. For example, a program will look at cube +# labels to determine the target name and then read system radii values. +# +# If you want to use something other than a system default uncomment the +# approriate line and give the parameter your value. For example, +# PixelResolution = 10 +# +# The orthographic projection has two required parameters CenterLatitude +# and CenterLongitude. If not uncommented in this file programs usually +# compute them to be the average of the latitude/longitude range. +# +#**************************************************************************** + +Group = Mapping + ProjectionName = Orthographic +# CenterLatitude = 0.0 +# CenterLongitude = 0.0 + +# TargetName = Mars +# EquatorialRadius = 3396190.0 +# PolarRadius = 3376200.0 + +# LatitudeType = Planetocentric +# LongitudeDirection = PositiveEast +# LongitudeDomain = 360 + +# MinimumLatitude = 47.431079407022 +# MaximumLatitude = 49.323205331047 +# MinimumLongitude = 276.4825037824 +# MaximumLongitude = 279.27207041615 + +# PixelResolution = 115.77089360021 +# Scale = 512.0 +End_Group diff --git a/isis/appdata/maps/planar.map b/isis/appdata/maps/planar.map new file mode 100644 index 0000000000..4dd53ebee4 --- /dev/null +++ b/isis/appdata/maps/planar.map @@ -0,0 +1,35 @@ +#**************************************************************************** +# This is a map template file for the planar projection. +# +# Most of the parameters are commented (#) which means a program will try +# to determine a good value. For example, a program will look at cube +# labels to determine the target name. +# +# If you want to use something other than a system default uncomment the +# approriate line and give the parameter your value. For example, +# PixelResolution = 10 +# +# The planar projection has one required parameter: +# CenterRingLongitude. If not uncommented in this file programs usually +# compute them to be the average of the azimuth range. +# +#**************************************************************************** + +Group = Mapping + ProjectionName = Planar +# CenterRingRadius = 0.0 +# CenterRingLongitude = 0.0 + +# TargetName = Saturn + +# RingLongitudeDirection = CounterClockwise +# RingLongitudeDomain = 360 + +# MinimumRingRadius = 100000.0 +# MaximumRingRadius = 120000.0 +# MinimumRingLongitude = 170.0 +# MaximumRingLongitude = 270.0 + +# PixelResolution = 10000.0 +# Scale = 23.0 +End_Group diff --git a/isis/appdata/maps/pointperspective.map b/isis/appdata/maps/pointperspective.map new file mode 100644 index 0000000000..90b120d241 --- /dev/null +++ b/isis/appdata/maps/pointperspective.map @@ -0,0 +1,44 @@ +#**************************************************************************** +# This is a map template file for the point perspective projection. +# +# Most of the parameters are commented (#) which means a program will try +# to determine a good value. For example, a program will look at cube +# labels to determine the target name and then read system radii values. +# +# If you want to use something other than a system default uncomment the +# approriate line and give the parameter your value. For example, +# PixelResolution = 10 +# +# The point perspective projection has three required parameters. +# Two, CenterLatitude and CenterLongitude, if not uncommented in this +# file will usually be computed by programs to be the average of the +# latitude/longitude range. +# +# The third parameter is Distance from the center of the target which +# you must supply by uncommenting and adding a number (should be +# larger than the target radius). +# +#**************************************************************************** + +Group = Mapping + ProjectionName = PointPerspective +# CenterLatitude = 0.0 +# CenterLongitude = 0.0 +# Distance = 6000000.0 + +# TargetName = Mars +# EquatorialRadius = 3396190.0 +# PolarRadius = 3376200.0 + +# LatitudeType = Planetocentric +# LongitudeDirection = PositiveEast +# LongitudeDomain = 360 + +# MinimumLatitude = 47.431079407022 +# MaximumLatitude = 49.323205331047 +# MinimumLongitude = 276.4825037824 +# MaximumLongitude = 279.27207041615 + +# PixelResolution = 115.77089360021 +# Scale = 512.0 +End_Group diff --git a/isis/appdata/maps/polarstereographic.map b/isis/appdata/maps/polarstereographic.map new file mode 100644 index 0000000000..bc3f3b2882 --- /dev/null +++ b/isis/appdata/maps/polarstereographic.map @@ -0,0 +1,38 @@ +#**************************************************************************** +# This is a map template file for the polar stereographic projection. +# +# Most of the parameters are commented (#) which means a program will try +# to determine a good value. For example, a program will look at cube +# labels to determine the target name and then read system radii values. +# +# If you want to use something other than a system default uncomment the +# approriate line and give the parameter your value. For example, +# PixelResolution = 10 +# +# The polar stereographic projection has two required parameters CenterLatitude +# and CenterLongitude. If not uncommented in this file programs usually +# compute them to be the average of the latitude/longitude range. +# +#**************************************************************************** + +Group = Mapping + ProjectionName = PolarStereographic +# CenterLatitude = 0.0 +# CenterLongitude = 0.0 + +# TargetName = Mars +# EquatorialRadius = 3396190.0 +# PolarRadius = 3376200.0 + +# LatitudeType = Planetocentric +# LongitudeDirection = PositiveEast +# LongitudeDomain = 360 + +# MinimumLatitude = 47.431079407022 +# MaximumLatitude = 49.323205331047 +# MinimumLongitude = 276.4825037824 +# MaximumLongitude = 279.27207041615 + +# PixelResolution = 115.77089360021 +# Scale = 512.0 +End_Group diff --git a/isis/appdata/maps/ringcylindrical.map b/isis/appdata/maps/ringcylindrical.map new file mode 100644 index 0000000000..2ceae36467 --- /dev/null +++ b/isis/appdata/maps/ringcylindrical.map @@ -0,0 +1,36 @@ +#**************************************************************************** +# This is a map template file for the ringcylindrical projection. +# +# Most of the parameters are commented (#) which means a program will try +# to determine a good value. For example, a program will look at cube +# labels to determine the target name and then read system radii values. +# +# If you want to use something other than a system default uncomment the +# approriate line and give the parameter your value. For example, +# PixelResolution = 10 +# +# The ringcylindrical projection has two required parameters: +# CenterRingRadius and CenterRingLongitude. +# If not uncommented in this file, programs usually +# compute it to be the average of the radius/longitude ranges, respectively. +# +#**************************************************************************** + +Group = Mapping + ProjectionName = RingCylindrical +# CenterRingRadius = 200000.0 +# CenterRingLongitude = 0.0 + +# TargetName = Saturn + +# RingLongitudeDirection = CounterClockwise +# RingLongitudeDomain = 360 + +# MinimumRingRadius = 87899725.492461 +# MaximumRingRadius = 165123259.31231 +# MinimumRingLongitude = 182.0 +# MaximumRingLongitude = 248.0 + +# PixelResolution = 93183.457495214 +# Scale = 512.0 +End_Group diff --git a/isis/appdata/maps/robinson.map b/isis/appdata/maps/robinson.map new file mode 100644 index 0000000000..2c316c6f4f --- /dev/null +++ b/isis/appdata/maps/robinson.map @@ -0,0 +1,37 @@ +#**************************************************************************** +# This is a map template file for the robinson projection. +# +# Most of the parameters are commented (#) which means a program will try +# to determine a good value. For example, a program will look at cube +# labels to determine the target name and then read system radii values. +# +# If you want to use something other than a system default uncomment the +# approriate line and give the parameter your value. For example, +# PixelResolution = 10 +# +# The robinson projection has one required parameter: +# CenterLongitude. If not uncommented in this file programs usually +# compute them to be the average of the longitude range. +# +#**************************************************************************** + +Group = Mapping + ProjectionName = Robinson +# CenterLongitude = 0.0 + +# TargetName = Mars +# EquatorialRadius = 3396190.0 +# PolarRadius = 3376200.0 + +# LatitudeType = Planetocentric +# LongitudeDirection = PositiveEast +# LongitudeDomain = 360 + +# MinimumLatitude = 47.431079407022 +# MaximumLatitude = 49.323205331047 +# MinimumLongitude = 276.4825037824 +# MaximumLongitude = 279.27207041615 + +# PixelResolution = 115.77089360021 +# Scale = 512.0 +End_Group diff --git a/isis/appdata/maps/simplecylindrical.map b/isis/appdata/maps/simplecylindrical.map new file mode 100644 index 0000000000..12e0264593 --- /dev/null +++ b/isis/appdata/maps/simplecylindrical.map @@ -0,0 +1,37 @@ +#**************************************************************************** +# This is a map template file for the simple cylindrical projection. +# +# Most of the parameters are commented (#) which means a program will try +# to determine a good value. For example, a program will look at cube +# labels to determine the target name and then read system radii values. +# +# If you want to use something other than a system default uncomment the +# approriate line and give the parameter your value. For example, +# PixelResolution = 10 +# +# The simple cylindrical projection has one required parameter: +# CenterLongitude. If not uncommented in this file programs usually +# compute them to be the average of the longitude range. +# +#**************************************************************************** + +Group = Mapping + ProjectionName = SimpleCylindrical +# CenterLongitude = 0.0 + +# TargetName = Mars +# EquatorialRadius = 3396190.0 +# PolarRadius = 3376200.0 + +# LatitudeType = Planetocentric +# LongitudeDirection = PositiveEast +# LongitudeDomain = 360 + +# MinimumLatitude = 47.431079407022 +# MaximumLatitude = 49.323205331047 +# MinimumLongitude = 276.4825037824 +# MaximumLongitude = 279.27207041615 + +# PixelResolution = 115.77089360021 +# Scale = 512.0 +End_Group diff --git a/isis/appdata/maps/sinusoidal.map b/isis/appdata/maps/sinusoidal.map new file mode 100644 index 0000000000..3ecc617c19 --- /dev/null +++ b/isis/appdata/maps/sinusoidal.map @@ -0,0 +1,37 @@ +#**************************************************************************** +# This is a map template file for the sinusoidal projection. +# +# Most of the parameters are commented (#) which means a program will try +# to determine a good value. For example, a program will look at cube +# labels to determine the target name and then read system radii values. +# +# If you want to use something other than a system default uncomment the +# approriate line and give the parameter your value. For example, +# PixelResolution = 10 +# +# The sinusoidal projection has one required parameter: +# CenterLongitude. If not uncommented in this file programs usually +# compute them to be the average of the longitude range. +# +#**************************************************************************** + +Group = Mapping + ProjectionName = Sinusoidal +# CenterLongitude = 0.0 + +# TargetName = Mars +# EquatorialRadius = 3396190.0 +# PolarRadius = 3376200.0 + +# LatitudeType = Planetocentric +# LongitudeDirection = PositiveEast +# LongitudeDomain = 360 + +# MinimumLatitude = 47.431079407022 +# MaximumLatitude = 49.323205331047 +# MinimumLongitude = 276.4825037824 +# MaximumLongitude = 279.27207041615 + +# PixelResolution = 115.77089360021 +# Scale = 512.0 +End_Group diff --git a/isis/appdata/maps/transversemercator.map b/isis/appdata/maps/transversemercator.map new file mode 100644 index 0000000000..e7a5aea6c3 --- /dev/null +++ b/isis/appdata/maps/transversemercator.map @@ -0,0 +1,42 @@ +#**************************************************************************** +# This is a map template file for the transverse mercator projection. +# +# Most of the parameters are commented (#) which means a program will try +# to determine a good value. For example, a program will look at cube +# labels to determine the target name and then read system radii values. +# +# If you want to use something other than a system default uncomment the +# approriate line and give the parameter your value. For example, +# PixelResolution = 10 +# +# The transverse mercator projection has two required parameters CenterLatitude +# and CenterLongitude. If not uncommented in this file programs usually +# compute them to be the average of the latitude/longitude range. +# +# The projection also has an optional ScaleFactor parameter which defaults +# to 1 if not supplied +# +#**************************************************************************** + +Group = Mapping + ProjectionName = TransverseMercator +# CenterLatitude = 0.0 +# CenterLongitude = 0.0 +# ScaleFactor = 1.0 + +# TargetName = Mars +# EquatorialRadius = 3396190.0 +# PolarRadius = 3376200.0 + +# LatitudeType = Planetocentric +# LongitudeDirection = PositiveEast +# LongitudeDomain = 360 + +# MinimumLatitude = 47.431079407022 +# MaximumLatitude = 49.323205331047 +# MinimumLongitude = 276.4825037824 +# MaximumLongitude = 279.27207041615 + +# PixelResolution = 115.77089360021 +# Scale = 512.0 +End_Group diff --git a/isis/appdata/labels/DELETEME.txt b/isis/appdata/serialnumbers/FAKE.trn similarity index 100% rename from isis/appdata/labels/DELETEME.txt rename to isis/appdata/serialnumbers/FAKE.trn diff --git a/isis/appdata/maps/DELETEME.txt b/isis/appdata/templates/DELETEME.pvl similarity index 100% rename from isis/appdata/maps/DELETEME.txt rename to isis/appdata/templates/DELETEME.pvl diff --git a/isis/appdata/translations/Instruments.trn b/isis/appdata/translations/Instruments.trn new file mode 100644 index 0000000000..a6f836ce9a --- /dev/null +++ b/isis/appdata/translations/Instruments.trn @@ -0,0 +1,156 @@ +# +# The group names listed here are the native names used by +# applications to get the foreign names and values +# +# There is only one level of groups the groups are not +# allowed to be nested +# +# The Group names can NOT be repeated. +# +# InputGroup is a comma delimited list of objects and/or +# groups in the foreign label. Traversing this list will +# lead to the correct level to find the foreign keyword. +# +# InputKey is the keyword within the group which holds +# the information. +# +# InputDefault is the value used if there is no value for +# the keyword +# +# Translation is the native and corresponding foreign values. +# Translation may be repeated as needed. +# +# This file is used to translate the InstrumentId from the +# Isis cube Instrument group to an InstrumentName +# +# history Jeannie Backer and Adam Goins - Added Kaguya TC. + +Group = InstrumentName + + InputKey = InstrumentId + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + + # AerialPhoto (EROS Archive) + Translation = (aerialphoto, AERIALPHOTO) + Translation = (aerialphoto, AerialPhoto) + + # Apollo + Translation = (panoramic, PAN) + Translation = (metric, METRIC) + + # Cassini + Translation = (vims, VIMS) + Translation = (iss, ISSNA) + Translation = (iss, ISSWA) + + # Chandrayaan + Translation = (m3, M3) + + # Clementine + Translation = (hires, HIRES) + Translation = (lwir, LWIR) + Translation = (nir, NIR) + Translation = (uvvis, UVVIS) + + # Dawn + Translation = (fc, FC1) + Translation = (fc, FC2) + Translation = (vir, VIR) + + # Galileo + Translation = (ssi, "SOLID STATE IMAGING SYSTEM") + + # Hayabusa + Translation = (amica, AMICA) + Translation = (nirs, NIRS) + + # Hayabusa 2 + Translation = (onc, ONC-T) + Translation = (onc, ONC-W1) + Translation = (onc, ONC-W2) + + # Ideal + Translation = (ideal, IdealCamera) + + # Juno (JUNO) + Translation = (juno, JNC) + + # Kaguya + Translation = (kaguya, MI-VIS) + Translation = (kaguya, MI-NIR) + Translation = (kaguya, TC1) + Translation = (kaguya, TC2) + + # LO + Translation = (lo, "High Resolution Camera") + Translation = (lo, "Medium Resolution Camera") + + # LRO + Translation = (nac, NACL) + Translation = (nac, NACR) + Translation = (minirf, MRFFR) + Translation = (minirf, MRFLRO) + + # Mariner + Translation = (mariner10, M10_VIDICON_A) + Translation = (mariner10, M10_VIDICON_B) + + # MER + Translation = (mer, MI) + Translation = (mer, "MICROSCOPIC IMAGER") + + # MEX + Translation = (hrsc, HRSC) + + # Messenger + Translation = (mdis, MDIS-NAC) + Translation = (mdis, MDIS-WAC) + + # MGS + Translation = (moc, MOC-WA) + Translation = (moc, MOC-NA) + + # MRO + Translation = (hirise, HIRISE) + Translation = (ctx, CTX) + Translation = (crism, CRISM) + + # NEAR + Translation = (msi, MSI) + + # New Horizons + Translation = (leisa, LEISA) + Translation = (lorri, LORRI) + Translation = (mvic, MVIC_TDI) + Translation = (mvic, MVIC_FRAMING) + + # Odyssey + Translation = (themis, THEMIS-IR) + Translation = (themis, THEMIS_IR) + Translation = (themis, THEMIS-VIS) + Translation = (themis, THEMIS_VIS) + + # OSIRIS_REx + Translation = (ocams, MapCam) + Translation = (ocams, SamCam) + Translation = (ocams, PolyCam) + + # Rosetta + Translation = (osiris, OSINAC) + Translation = (osiris, OSIWAC) + + # Trace Gas Orbiter (ExoMars TGO) + Translation = (tgo, CaSSIS) + + # Viking + Translation = (vik, VISUAL_IMAGING_SUBSYSTEM_CAMERA_A) + Translation = (vik, VISUAL_IMAGING_SUBSYSTEM_CAMERA_B) + + # Voyager + Translation = (voyager, WIDE_ANGLE_CAMERA) + Translation = (voyager, NARROW_ANGLE_CAMERA) + +# Translation = (*,*) +End_Group +End diff --git a/isis/appdata/translations/MissionName2DataDir.trn b/isis/appdata/translations/MissionName2DataDir.trn new file mode 100644 index 0000000000..c298b24f55 --- /dev/null +++ b/isis/appdata/translations/MissionName2DataDir.trn @@ -0,0 +1,93 @@ +# +# The group names listed here are the native names used by +# applications to get the foreign names and values +# +# There is only one level of groups the groups are not +# allowed to be nested +# +# The Group names can NOT be repeated. +# +# InputGroup is a comma delimited list of objects and/or +# groups in the foreign label. Traversing this list will +# lead to the correct level to find the foreign keyword. +# +# InputKey is the keyword within the group which holds +# the information. +# +# InputDefault is the value used if there is no value for +# the keyword +# +# Translation is the native and corresponding foreign values. +# Translation may be repeated as needed. +# +# This file is used to translate the SpacecraftName from the +# Isis cube Instrument group to an IsisPreference value. +# The left value in a translation entry should be exactly +# the same as the IsisPreference and the right side should +# be exactly the same as the SpacecraftName from the cube. +# +# history 2018-10-04 Jeannie Backer and Adam Goins - Added SELENE translation. +Group = MissionName + InputKey = SpacecraftName + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + Translation = (Aircraft, "Aircraft") + Translation = (Apollo15, "APOLLO 15") + Translation = (Apollo15, "APOLLO15") + Translation = (Apollo16, "APOLLO 16") + Translation = (Apollo16, "APOLLO16") + Translation = (Apollo17, "APOLLO 17") + Translation = (Apollo17, "APOLLO17") + Translation = (Cassini, Cassini-Huygens) +# Translation = (Chan1, "CHANDRAYAAN-1 ORBITER") +# Translation = (Chan1, CHANDRAYAAN1_ORBITER) +# Translation = (Chan1, CHANDRAYAAN-1) + Translation = (Chandrayaan1, "CHANDRAYAAN-1 ORBITER") + Translation = (Chandrayaan1, CHANDRAYAAN1_ORBITER) + Translation = (Chandrayaan1, CHANDRAYAAN-1) + Translation = (Clementine1, CLEMENTINE_1) + Translation = (Clementine1, "CLEMENTINE 1") + Translation = (Clipper, "CLIPPER") + Translation = (Dawn, "DAWN") + Translation = (Galileo, "Galileo Orbiter") + Translation = (Hayabusa, HAYABUSA) + Translation = (Hayabusa2, HAYABUSA-2) + Translation = (Ideal, IdealSpacecraft) + Translation = (Juno, JUNO) + Translation = (Kaguya, KAGUYA) + Translation = (Kaguya, SELENE-M) + Translation = (Kaguya, SELENE) + Translation = (Lo, "Lunar Orbiter 3") + Translation = (Lo, "Lunar Orbiter 4") + Translation = (Lo, "Lunar Orbiter 5") + Translation = (Lro, "LUNAR RECONNAISSANCE ORBITER") + Translation = (Lro, "Lunar Reconnaissance Orbiter") + Translation = (Mariner10, Mariner_10) + Translation = (Mariner10, MARINER_10) + Translation = (Mer, "MARS EXPLORATION ROVER 1") + Translation = (Mer, MARS_EXPLORATION_ROVER_1) + Translation = (Mer, "MARS EXPLORATION ROVER 2") + Translation = (Mer, "SIMULATED MARS EXPLORATION ROVER 1") + Translation = (Mer, "SIMULATED MARS EXPLORATION ROVER 2") + Translation = (Messenger, MESSENGER) + Translation = (Messenger, Messenger) + Translation = (Mex, "MARS EXPRESS") + Translation = (Mex, "Mars Express") + Translation = (Mgs, MARSGLOBALSURVEYOR) + Translation = (Mgs, "MARS GLOBAL SURVEYOR") + Translation = (Mro, "MARS RECONNAISSANCE ORBITER") + Translation = (Mro, Mars_Reconnaissance_Orbiter) + Translation = (NewHorizons, "NEW HORIZONS") + Translation = (Near, NEAR) + Translation = (Near, "NEAR EARTH ASTEROID RENDEZVOUS") + Translation = (Odyssey, MARS_ODYSSEY) + Translation = (OsirisRex, OSIRIS-REX) + Translation = (Rosetta, ROSETTA-ORBITER) + Translation = (Smart1, SMART1) + Translation = (Tgo, "TRACE GAS ORBITER") + Translation = (Viking1, VIKING_ORBITER_1) + Translation = (Viking2, VIKING_ORBITER_2) + Translation = (Voyager1, VOYAGER_1) + Translation = (Voyager2, VOYAGER_2) +End_Group +End diff --git a/isis/src/base/objs/ObservationNumber/ObservationNumber.cpp b/isis/src/base/objs/ObservationNumber/ObservationNumber.cpp index d9bbfc2dce..6e8d280ab8 100644 --- a/isis/src/base/objs/ObservationNumber/ObservationNumber.cpp +++ b/isis/src/base/objs/ObservationNumber/ObservationNumber.cpp @@ -77,13 +77,13 @@ namespace Isis { static PvlGroup dataDir(Preference::Preferences().findGroup("DataDirectory")); // Get the mission name - static QString missionTransFile = (QString) dataDir["base"] + "/translations/MissionName2DataDir.trn"; + static QString missionTransFile = "$ISISROOT/appdata/translations/MissionName2DataDir.trn"; static PvlToPvlTranslationManager missionXlater(missionTransFile); missionXlater.SetLabel(label); QString mission = missionXlater.Translate("MissionName"); // Get the instrument name - static QString instTransFile = (QString) dataDir["base"] + "/translations/Instruments.trn"; + static QString instTransFile = "$ISISROOT/appdata/translations/Instruments.trn"; static PvlToPvlTranslationManager instrumentXlater(instTransFile); instrumentXlater.SetLabel(label); QString instrument = instrumentXlater.Translate("InstrumentName"); diff --git a/isis/src/base/objs/ObservationNumber/ObservationNumber.h b/isis/src/base/objs/ObservationNumber/ObservationNumber.h index bc53b24237..147491e07b 100644 --- a/isis/src/base/objs/ObservationNumber/ObservationNumber.h +++ b/isis/src/base/objs/ObservationNumber/ObservationNumber.h @@ -56,6 +56,8 @@ namespace Isis { * * @history 2008-05-09 Steven Lambright - Optimized the * FindObservationTranslation method + * @history 2020-03-03 Kristin Berry - Updated to use translation files migrated into source. + * See #3727 */ class ObservationNumber : public Isis::SerialNumber { public: diff --git a/isis/src/base/objs/SerialNumber/SerialNumber.cpp b/isis/src/base/objs/SerialNumber/SerialNumber.cpp index 3b22fc75a4..23e5ce86c0 100644 --- a/isis/src/base/objs/SerialNumber/SerialNumber.cpp +++ b/isis/src/base/objs/SerialNumber/SerialNumber.cpp @@ -93,13 +93,13 @@ namespace Isis { static PvlGroup dataDir(Preference::Preferences().findGroup("DataDirectory")); // Get the mission name - static QString missionTransFile = (QString) dataDir["base"] + "/translations/MissionName2DataDir.trn"; + static QString missionTransFile = "$ISISROOT/appdata/translations/MissionName2DataDir.trn"; static PvlToPvlTranslationManager missionXlater(missionTransFile); missionXlater.SetLabel(label); QString mission = missionXlater.Translate("MissionName"); // Get the instrument name - static QString instTransFile = (QString) dataDir["base"] + "/translations/Instruments.trn"; + static QString instTransFile = "$ISISROOT/appdata/translations/Instruments.trn"; static PvlToPvlTranslationManager instrumentXlater(instTransFile); instrumentXlater.SetLabel(label); QString instrument = instrumentXlater.Translate("InstrumentName"); diff --git a/isis/src/base/objs/SerialNumber/SerialNumber.h b/isis/src/base/objs/SerialNumber/SerialNumber.h index 503a91981e..e3b4048089 100644 --- a/isis/src/base/objs/SerialNumber/SerialNumber.h +++ b/isis/src/base/objs/SerialNumber/SerialNumber.h @@ -81,6 +81,8 @@ namespace Isis { * @history 2008-05-09 Steven Lambright Optimized the FindSerialTranslation * method * @history 2008-05-18 Steven Lambright Fixed documentation + * @history 2020-03-03 Kristin Berry - Updated to use translation files moved into source. + * References #3727. */ class SerialNumber { public: From 250ef2b8adf29f880a109de7947b4cb20ca2de1d Mon Sep 17 00:00:00 2001 From: paarongiroux <47163875+paarongiroux@users.noreply.github.com> Date: Thu, 5 Mar 2020 12:16:37 -0700 Subject: [PATCH 05/61] Updates cmake to copy apollo templates (#3732) * Just hard-code the apollo templates for now * Updated to have templates only search for *.def --- isis/CMakeLists.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/isis/CMakeLists.txt b/isis/CMakeLists.txt index 684fb66bc2..b63ba5dec2 100644 --- a/isis/CMakeLists.txt +++ b/isis/CMakeLists.txt @@ -451,7 +451,7 @@ execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/inc) # Create the appdata directory and translations directory execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/appdata/translations) -execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/appdata/templates) +execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/appdata/templates/apollo) execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/appdata/maps) execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/appdata/images/icons) execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/appdata/images/targets) @@ -513,9 +513,11 @@ add_dependencies(isis3 appdata) # Add custom build target to copy modified template files to the build/appdata/templates # directory. (As above - may need to be updated) add_custom_target(templates ALL COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_SOURCE_DIR}/appdata/templates/*.pvl ${CMAKE_BINARY_DIR}/appdata/templates) + ${CMAKE_SOURCE_DIR}/src/*/templates/*.def ${CMAKE_BINARY_DIR}/appdata/templates/apollo/) add_dependencies(isis3 templates) +#execute_command(cp -r ${CMAKE_SOURCE_DIR}/src/*/templates/*.pvl ${CMAKE_BINARY_DIR}/appdata/templates) + # Either add these for maps, labels, autoreg, images or approach in a different way. # Add custom build target to copy modified template files to the build/appdata/templates From a4c79d884e9cf24fc7b613f0f9d6cf30ea4817d0 Mon Sep 17 00:00:00 2001 From: Kristin Date: Thu, 5 Mar 2020 15:43:03 -0700 Subject: [PATCH 06/61] Moving apollo15 data into source (#3733) * Abstracted campt app. * Revert "Merge branch 'campt' of https://github.com/kaitlyndlee/ISIS3 into dev" This reverts commit 521dd44a6831b488052aa0e21e65ca3c5f40f7f1, reversing changes made to 2874acf628c944823f317ebd1a2525d15dee497b. * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * adds apollopantranstable translations * rename apollopantranstable0001.trn -> apollopantranstable.trn * move apollopantranstable0002.trn -> apollopantranstable.trn * adds apollo15 serialNumbers * renaming serial number files * moved SerialNumber0002 -> Apollo15SerialNumber and metricSerialNumber002 -> Apollo15MetricSerialNumber * moved metricSerialNumber0003.trn -> Apollo15MetricSerialNumber.trn * created templates directory and added apollo template. updated apollopaninit and apollopanstitcher to reflect data directory changes * added apollo templates directory * renamed apolloPanFiducialFinder.pvl -> apolloPanFiducialFinder.def * update paths referencing data * fixed redundant naming of apolloPanFiducialFinder.def -> PanFiducialFinder.def * renamed apollopantranstable.trn -> ApolloPanInit.trn, updated reference in source code * changed Instruments translation file to uper camel case * more tweaks to Instruments.trn Co-authored-by: Kaitlyn Lee Co-authored-by: Jesse Mapel Co-authored-by: Kristin Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette --- .../Apollo15MetricSerialNumber.trn | 30 +++ .../Apollo15PanoramicSerialNumber.trn | 32 ++++ .../serialnumbers/Apollo15SerialNumber.trn | 30 +++ isis/appdata/translations/Instruments.trn | 142 +++++++------- .../apps/apollopaninit/ApolloPanInit.trn | 53 ++++++ isis/src/apollo/apps/apollopaninit/main.cpp | 180 +++++++++--------- .../apollo/apps/apollopanstitcher/main.cpp | 2 +- .../apollo/templates/PanFiducialFinder.def | 31 +++ 8 files changed, 338 insertions(+), 162 deletions(-) create mode 100644 isis/appdata/serialnumbers/Apollo15MetricSerialNumber.trn create mode 100644 isis/appdata/serialnumbers/Apollo15PanoramicSerialNumber.trn create mode 100644 isis/appdata/serialnumbers/Apollo15SerialNumber.trn create mode 100644 isis/src/apollo/apps/apollopaninit/ApolloPanInit.trn create mode 100644 isis/src/apollo/templates/PanFiducialFinder.def diff --git a/isis/appdata/serialnumbers/Apollo15MetricSerialNumber.trn b/isis/appdata/serialnumbers/Apollo15MetricSerialNumber.trn new file mode 100644 index 0000000000..fe3562e088 --- /dev/null +++ b/isis/appdata/serialnumbers/Apollo15MetricSerialNumber.trn @@ -0,0 +1,30 @@ +Group = Keyword1 + Auto + InputKey = SpacecraftName + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword1 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (APOLLO15, *) +End_Group + +Group = Keyword2 + Auto + InputKey = InstrumentId + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword2 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group + +Group = Keyword3 + Auto + InputKey = StartTime + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword3 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group +End diff --git a/isis/appdata/serialnumbers/Apollo15PanoramicSerialNumber.trn b/isis/appdata/serialnumbers/Apollo15PanoramicSerialNumber.trn new file mode 100644 index 0000000000..592ab34677 --- /dev/null +++ b/isis/appdata/serialnumbers/Apollo15PanoramicSerialNumber.trn @@ -0,0 +1,32 @@ +ObservationKeys = 3 + +Group = Keyword1 + Auto + InputKey = SpacecraftName + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword1 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (APOLLO15, *) +End_Group + +Group = Keyword2 + Auto + InputKey = InstrumentId + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword2 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group + +Group = Keyword3 + Auto + InputKey = StartTime + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword3 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group +End diff --git a/isis/appdata/serialnumbers/Apollo15SerialNumber.trn b/isis/appdata/serialnumbers/Apollo15SerialNumber.trn new file mode 100644 index 0000000000..445f414369 --- /dev/null +++ b/isis/appdata/serialnumbers/Apollo15SerialNumber.trn @@ -0,0 +1,30 @@ +Group = Keyword1 + Auto + InputKey = SpacecraftName + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword1 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group + +Group = Keyword2 + Auto + InputKey = InstrumentId + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword2 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group + +Group = Keyword3 + Auto + InputKey = SpacecraftClockCount + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword3 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group +End diff --git a/isis/appdata/translations/Instruments.trn b/isis/appdata/translations/Instruments.trn index a6f836ce9a..406fb2e728 100644 --- a/isis/appdata/translations/Instruments.trn +++ b/isis/appdata/translations/Instruments.trn @@ -32,125 +32,125 @@ Group = InstrumentName InputPosition = (IsisCube, Instrument) # AerialPhoto (EROS Archive) - Translation = (aerialphoto, AERIALPHOTO) - Translation = (aerialphoto, AerialPhoto) + Translation = (AerialPhoto, AERIALPHOTO) + Translation = (AerialPhoto, AerialPhoto) # Apollo - Translation = (panoramic, PAN) - Translation = (metric, METRIC) + Translation = (Panoramic, PAN) + Translation = (Metric, METRIC) # Cassini - Translation = (vims, VIMS) - Translation = (iss, ISSNA) - Translation = (iss, ISSWA) + Translation = (Vims, VIMS) + Translation = (Iss, ISSNA) + Translation = (Iss, ISSWA) # Chandrayaan - Translation = (m3, M3) + Translation = (M3, M3) # Clementine - Translation = (hires, HIRES) - Translation = (lwir, LWIR) - Translation = (nir, NIR) - Translation = (uvvis, UVVIS) - + Translation = (Hires, HIRES) + Translation = (Lwir, LWIR) + Translation = (Nir, NIR) + Translation = (Uvvis, UVVIS) + # Dawn - Translation = (fc, FC1) - Translation = (fc, FC2) - Translation = (vir, VIR) + Translation = (Fc, FC1) + Translation = (Fc, FC2) + Translation = (Vir, VIR) # Galileo - Translation = (ssi, "SOLID STATE IMAGING SYSTEM") + Translation = (Ssi, "SOLID STATE IMAGING SYSTEM") # Hayabusa - Translation = (amica, AMICA) - Translation = (nirs, NIRS) + Translation = (Amica, AMICA) + Translation = (Nirs, NIRS) # Hayabusa 2 - Translation = (onc, ONC-T) - Translation = (onc, ONC-W1) - Translation = (onc, ONC-W2) + Translation = (Onc, ONC-T) + Translation = (Onc, ONC-W1) + Translation = (Onc, ONC-W2) - # Ideal - Translation = (ideal, IdealCamera) + # Ideal + Translation = (Ideal, IdealCamera) - # Juno (JUNO) - Translation = (juno, JNC) + # Juno (JUNO) + Translation = (JunoCam, JNC) # Kaguya - Translation = (kaguya, MI-VIS) - Translation = (kaguya, MI-NIR) - Translation = (kaguya, TC1) - Translation = (kaguya, TC2) + Translation = (Kaguya, MI-VIS) + Translation = (Kaguya, MI-NIR) + Translation = (Kaguya, TC1) + Translation = (Kaguya, TC2) - # LO - Translation = (lo, "High Resolution Camera") - Translation = (lo, "Medium Resolution Camera") + # LO + Translation = (Lo, "High Resolution Camera") + Translation = (Lo, "Medium Resolution Camera") # LRO - Translation = (nac, NACL) - Translation = (nac, NACR) - Translation = (minirf, MRFFR) - Translation = (minirf, MRFLRO) + Translation = (Nac, NACL) + Translation = (Nac, NACR) + Translation = (Minirf, MRFFR) + Translation = (Minirf, MRFLRO) # Mariner - Translation = (mariner10, M10_VIDICON_A) - Translation = (mariner10, M10_VIDICON_B) + Translation = (Mariner10, M10_VIDICON_A) + Translation = (Mariner10, M10_VIDICON_B) # MER - Translation = (mer, MI) - Translation = (mer, "MICROSCOPIC IMAGER") + Translation = (Mer, MI) + Translation = (Mer, "MICROSCOPIC IMAGER") # MEX - Translation = (hrsc, HRSC) + Translation = (Hrsc, HRSC) # Messenger - Translation = (mdis, MDIS-NAC) - Translation = (mdis, MDIS-WAC) + Translation = (Mdis, MDIS-NAC) + Translation = (Mdis, MDIS-WAC) # MGS - Translation = (moc, MOC-WA) - Translation = (moc, MOC-NA) + Translation = (Moc, MOC-WA) + Translation = (Moc, MOC-NA) # MRO - Translation = (hirise, HIRISE) - Translation = (ctx, CTX) - Translation = (crism, CRISM) + Translation = (Hirise, HIRISE) + Translation = (Ctx, CTX) + Translation = (Crism, CRISM) # NEAR - Translation = (msi, MSI) - + Translation = (Msi, MSI) + # New Horizons - Translation = (leisa, LEISA) - Translation = (lorri, LORRI) - Translation = (mvic, MVIC_TDI) - Translation = (mvic, MVIC_FRAMING) + Translation = (Leisa, LEISA) + Translation = (Lorri, LORRI) + Translation = (Mvic, MVIC_TDI) + Translation = (Mvic, MVIC_FRAMING) # Odyssey - Translation = (themis, THEMIS-IR) - Translation = (themis, THEMIS_IR) - Translation = (themis, THEMIS-VIS) - Translation = (themis, THEMIS_VIS) + Translation = (Themis, THEMIS-IR) + Translation = (Themis, THEMIS_IR) + Translation = (Themis, THEMIS-VIS) + Translation = (Themis, THEMIS_VIS) # OSIRIS_REx - Translation = (ocams, MapCam) - Translation = (ocams, SamCam) - Translation = (ocams, PolyCam) + Translation = (OCams, MapCam) + Translation = (OCams, SamCam) + Translation = (OCams, PolyCam) # Rosetta - Translation = (osiris, OSINAC) - Translation = (osiris, OSIWAC) + Translation = (Osiris, OSINAC) + Translation = (Osiris, OSIWAC) - # Trace Gas Orbiter (ExoMars TGO) - Translation = (tgo, CaSSIS) + # Trace Gas Orbiter (ExoMars TGO) + Translation = (Tgo, CaSSIS) # Viking - Translation = (vik, VISUAL_IMAGING_SUBSYSTEM_CAMERA_A) - Translation = (vik, VISUAL_IMAGING_SUBSYSTEM_CAMERA_B) + Translation = (Vik, VISUAL_IMAGING_SUBSYSTEM_CAMERA_A) + Translation = (Vik, VISUAL_IMAGING_SUBSYSTEM_CAMERA_B) # Voyager - Translation = (voyager, WIDE_ANGLE_CAMERA) - Translation = (voyager, NARROW_ANGLE_CAMERA) - + Translation = (Voyager, WIDE_ANGLE_CAMERA) + Translation = (Voyager, NARROW_ANGLE_CAMERA) + # Translation = (*,*) End_Group End diff --git a/isis/src/apollo/apps/apollopaninit/ApolloPanInit.trn b/isis/src/apollo/apps/apollopaninit/ApolloPanInit.trn new file mode 100644 index 0000000000..9adcaf444d --- /dev/null +++ b/isis/src/apollo/apps/apollopaninit/ApolloPanInit.trn @@ -0,0 +1,53 @@ + Group = SpacecraftName + OutputGroup = IsisCube + OutputKey = SpacecraftName + Translation = ("APOLLO",*) + EndGroup + Group = InstrumentName + OutputGroup = IsisCube + OutputKey = SpacecraftName + Translation = ("APOLLO PANORAMIC CAMERA",*) + EndGroup + Group = TargetName + OutputGroup = IsisCube + OutputKey = SpacecraftName + Translation = (MOON,*) + EndGroup + Group = LeapSecond + OutputGroup = IsisCube + OutputKey = SpacecraftName + Translation = ($base/kernels/lsk/naif0010.tls,File1) + EndGroup + Group = InstrumentId + OutputGroup = IsisCube + OutputKey = SpacecraftName + Translation = (APOLLO_PAN,*) + EndGroup + Group = TargetAttitudeShape + OutputGroup = IsisCube + OutputKey = SpacecraftName + Translation = ($base/kernels/pck/pck00009.tpc,File1) + Translation = ($apollo15/kernels/pck/moon_080317.tf,File2) + Translation = ($apollo15/kernels/pck/moon_assoc_me.tf,File3) + EndGroup + Group = TargetPosition + OutputGroup = IsisCube + OutputKey = SpacecraftName + Translation = ($apollo15/kernels/tspk/moon_pa_de421_1900-2050.bpc,File1) + Translation = ($apollo15/kernels/tspk/de421.bsp,File2) + EndGroup + Group = ShapeModel + OutputGroup = IsisCube + OutputKey = SpacecraftName + Translation = ($base/dems/ldem_128ppd_Mar2011_clon180_radius_pad.cub,File1) + EndGroup + Group = InstrumentAddendum + OutputGroup = IsisCube + OutputKey = SpacecraftName + Translation = ($apollo15/kernels/iak/apolloPanAddendum001.ti,APOLLO12) + Translation = ($apollo15/kernels/iak/apolloPanAddendum001.ti,APOLLO14) + Translation = ($apollo15/kernels/iak/apolloPanAddendum001.ti,APOLLO15) + Translation = ($apollo16/kernels/iak/apolloPanAddendum001.ti,APOLLO16) + Translation = ($apollo17/kernels/iak/apolloPanAddendum001.ti,APOLLO17) + EndGroup +End diff --git a/isis/src/apollo/apps/apollopaninit/main.cpp b/isis/src/apollo/apps/apollopaninit/main.cpp index 8cd10e8a62..c2a8de8faa 100644 --- a/isis/src/apollo/apps/apollopaninit/main.cpp +++ b/isis/src/apollo/apps/apollopaninit/main.cpp @@ -68,7 +68,7 @@ #define SEARCHc 350.0 //number of samples per edge(in 5-micron-pixels) in each sub-search area #define AVERs 5286.0 //average smaples (in 5-micron-pixels) between fiducials #define AVERl 23459.0 //average diference (in 5-micron-pixels) between the top and bottom fiducials -#define TRANS_N 28520.0 //nomimal dx between scan lines, scani x + 28532 = (approx) scani+1 x--also +#define TRANS_N 28520.0 //nomimal dx between scan lines, scani x + 28532 = (approx) scani+1 x--also // the size of the search area for the first fiducial @@ -114,7 +114,7 @@ void IsisMain() { double deg2rad = acos(-1.0)/180.0; ProcessImport jp; - FileName transFile("$apollo15/translations/apollopantranstable.trn"); + FileName transFile("$ISISROOT/appdata/translations/ApolloPanInit.trn"); PvlTranslationTable transTable(transFile); PvlGroup kernels_pvlG; @@ -169,10 +169,10 @@ void IsisMain() { fmc = ui.GetDouble("V/H_OVERRIDE")/1000.0; else //forward motion compensation is directly equivalent to V/H - fmc = sqrt(horV*horV + radV*radV)/alti; + fmc = sqrt(horV*horV + radV*radV)/alti; rollV = fmc*ROLLC; //roll angular velcoity is equal to V/H * constant (units rad/sec) //led = rad/mm * sec/rad = radians(2.5)/FIDL / rollV (final units: sec/mm) - led = (2.5*acos(-1.0)/180.0)/rollV/FIDL; + led = (2.5*acos(-1.0)/180.0)/rollV/FIDL; //use led and the number of mm to determine the start and stop times isisTime = ui.GetString("GMT"); @@ -193,7 +193,7 @@ void IsisMain() { keyword.setName("LineExposureDuration"); //converted led to msec/mm--negative sign to account for the anti-parallel time and line axes - keyword.setValue(iStrTEMP=toString(-led),"sec/mm"); + keyword.setValue(iStrTEMP=toString(-led),"sec/mm"); inst_pvlG.addKeyword(keyword); panCube.putGroup(inst_pvlG); @@ -250,7 +250,7 @@ void IsisMain() { SpiceInt frameCode; SpiceBoolean found; //get the framecode from the body code (301=MOON) - cidfrm_c(301, sizeof(frameName), &frameCode, frameName, &found); + cidfrm_c(301, sizeof(frameName), &frameCode, frameName, &found); if(!found) { QString naifTarget = QString("IAU_MOOM"); namfrm_c(naifTarget.toLatin1().data(), &frameCode); @@ -261,7 +261,7 @@ void IsisMain() { } spRot = new SpiceRotation(frameCode); //create a table from starttime to endtime (streched by 3%) with NODES entries - spRot->LoadCache(time0-0.015*(time1-time0), time1+0.015*(time1-time0), NODES); + spRot->LoadCache(time0-0.015*(time1-time0), time1+0.015*(time1-time0), NODES); Table tableTargetRot = spRot->Cache("BodyRotation"); tableTargetRot.Label() += PvlKeyword("Description", "Created by apollopaninit"); panCube.write(tableTargetRot); @@ -270,7 +270,7 @@ void IsisMain() { //////////////////////////////////////////////////attach a sun position table spPos = new SpicePosition(10,301); //Position of the sun (10) WRT to the MOON (301) //create a table from starttime to endtime (stretched by 3%) with NODES entries - spPos->LoadCache(time0-0.015*(time1-time0), time1+0.015*(time1-time0), NODES); + spPos->LoadCache(time0-0.015*(time1-time0), time1+0.015*(time1-time0), NODES); Table tableSunPos = spPos->Cache("SunPosition"); tableSunPos.Label() += PvlKeyword("SpkTableStartTime", toString(time0-0.015*(time1-time0))); tableSunPos.Label() += PvlKeyword("SpkTablleEndTime", toString(time1+0.015*(time1-time0))); @@ -292,20 +292,20 @@ void IsisMain() { posJ20.resize(3); double temp, - vel[3] = { 0.0, 0.0, 0.0 }, //the total velocity vector (combined Horizonatal and normal components) + vel[3] = { 0.0, 0.0, 0.0 }, //the total velocity vector (combined Horizonatal and normal components) // in km/sec M[3][3] = { { 0.0, 0.0, 0.0 }, { 0.0, 0.0, 0.0 }, { 0.0, 0.0, 0.0 } }, //rotation matrix zDir[] = { 0.0, 0.0, 1.0 }, //selenographic Z axis - northPN[3] = { 0.0, 0.0, 0.0 }, //normal to the plane containing all the north/south directions, - // that is plane containing + northPN[3] = { 0.0, 0.0, 0.0 }, //normal to the plane containing all the north/south directions, + // that is plane containing // the origin, the z axis, and the primary point of intersection northL[3] = { 0.0, 0.0, 0.0 }, //north direction vector in local horizontal plane azm[3] = { 0.0, 0.0, 0.0 }, //azm direction of the veclocity vector in selenographic coordinates azmP[3] = { 0.0, 0.0, 0.0 }, //azm rotated (partially) and projected into the image plane norm[3] = { 0.0, 0.0, 0.0 }, //normal to the local horizontal plane - look[3] = { 0.0, 0.0, 0.0 }; //unit direction vector in the pincipal cameral look direction, + look[3] = { 0.0, 0.0, 0.0 }; //unit direction vector in the pincipal cameral look direction, // parallel to the vector from the center of the moon through the spacecraft double pos0[3] = { 0.0, 0.0, 0.0 }, //coordinate of the camera position @@ -315,7 +315,7 @@ void IsisMain() { pos0[1] = ui.GetDouble("LON_NADIR")*deg2rad; pos0[0] = ui.GetDouble("LAT_NADIR")*deg2rad; pos0[2] = ui.GetDouble("CRAFT_ALTITUDE"); //units are km - Geographic2GeocentricLunar(pos0,pos0); //function is written so the input can also be the + Geographic2GeocentricLunar(pos0,pos0); //function is written so the input can also be the // output /////////////////////calculating the camera orientation for the center (principal) scan line @@ -336,29 +336,29 @@ void IsisMain() { norm[0] = pInt[0]/temp; norm[1] = pInt[1]/temp; norm[2] = pInt[2]/temp; - //omega and phi are defined so that M(phi)M(omega)look = [0 0 -1] leaving only the roation + //omega and phi are defined so that M(phi)M(omega)look = [0 0 -1] leaving only the roation // around z axis to be found omega = -atan2(look[1], look[2]); //omega rotation to zero look[1] phi = atan2(-look[0], sin(omega)*look[1] - cos(omega)*look[2]); //phi rotation to zero look[0] - //use the horizontal velocity vector direction to solve for the last rotation; we will make the + //use the horizontal velocity vector direction to solve for the last rotation; we will make the // image x axis parallel to the in-image-plane projection of the horizontal direction of flight. - // The local normal cross the selenogrpahic z gives northPN (normal to the plane containing all - // the north/south directions), that is, the plane containing the origin, the z axis, and the + // The local normal cross the selenogrpahic z gives northPN (normal to the plane containing all + // the north/south directions), that is, the plane containing the origin, the z axis, and the // primary point of intersection. - crossp(norm, zDir, northPN); - - //The normal to the plane containing all the north/south directions cross the local normal + crossp(norm, zDir, northPN); + + //The normal to the plane containing all the north/south directions cross the local normal // direction gives the local north/south direction in the local normal plane - crossp(northPN,norm,northL); + crossp(northPN,norm,northL); if (northL[2] < 0) { //if by chance we got the south direction change the signs northL[0] = -northL[0]; northL[1] = -northL[1]; northL[2] = -northL[2]; } //define the rotation matrix to convert northL to the azimuth of flight. - // A left handed rotation of "VEL_AZM" around the positive normal direction will convert northL + // A left handed rotation of "VEL_AZM" around the positive normal direction will convert northL // to azm - MfromVecLeftAngle(M,norm,ui.GetDouble("VEL_AZM")*deg2rad); + MfromVecLeftAngle(M,norm,ui.GetDouble("VEL_AZM")*deg2rad); azm[0] = M[0][0]*northL[0] + M[0][1]*northL[1] + M[0][2]*northL[2]; azm[1] = M[1][0]*northL[0] + M[1][1]*northL[1] + M[1][2]*northL[2]; azm[2] = M[2][0]*northL[0] + M[2][1]*northL[1] + M[2][2]*northL[2]; @@ -367,23 +367,23 @@ void IsisMain() { azmP[0] = M[0][0]*azm[0] + M[0][1]*azm[1] + M[0][2]*azm[2]; azmP[1] = M[1][0]*azm[1] + M[1][1]*azm[1] + M[1][2]*azm[2]; azmP[2] = M[2][0]*azm[2] + M[2][1]*azm[1] + M[2][2]*azm[2]; - //subtract that portion of the azm that is perpindicular to the image plane (also the portion + //subtract that portion of the azm that is perpindicular to the image plane (also the portion // which is parallel to look) making azm a vector parrallel to the image plane - // Further, since we're now rotated into some coordinate system that differs from - // the image coordinate system by only a kappa rotation making the vector parrallel to the - // image plan is as simple as zeroing the z component (and as pointless to further calculations + // Further, since we're now rotated into some coordinate system that differs from + // the image coordinate system by only a kappa rotation making the vector parrallel to the + // image plan is as simple as zeroing the z component (and as pointless to further calculations // as a nat's fart in hurricane) nevertheless it completes the logical transition - azmP[2] = 0.0; + azmP[2] = 0.0; - //finally the kappa rotation that will make azmP parallel (including sign) to the camera x axis - kappa = -atan2(-azmP[1], azmP[0]); + //finally the kappa rotation that will make azmP parallel (including sign) to the camera x axis + kappa = -atan2(-azmP[1], azmP[0]); ////////////////////Add an instrument position table //Define the table records TableRecord recordPos; // reacord to be added to table // add x,y,z position labels and ephemeris time et to record - TableField x("J2000X", TableField::Double); + TableField x("J2000X", TableField::Double); TableField y("J2000Y", TableField::Double); TableField z("J2000Z", TableField::Double); TableField t("ET", TableField::Double); @@ -392,13 +392,13 @@ void IsisMain() { recordPos += z; recordPos += t; Table tablePos("InstrumentPosition", recordPos); - //now that the azm and norm vectors are defined + //now that the azm and norm vectors are defined // the total velocity vector can be calcualted (km/sec) vel[0] = horV*azm[0] + radV * norm[0]; vel[1] = horV*azm[1] + radV * norm[1]; vel[2] = horV*azm[2] + radV * norm[2]; - //we'll provide a two ellement table (more is redundant because the motion is modeled as linear - // at this point) we'll extend the nodes 3% beyond the edges of the images to be sure + //we'll provide a two ellement table (more is redundant because the motion is modeled as linear + // at this point) we'll extend the nodes 3% beyond the edges of the images to be sure // rounding errors don't cause problems temp = 0.515*(time1-time0); //3% extension posSel[0] = pos0[0] - temp*vel[0]; //selenocentric coordinate calculation @@ -408,8 +408,8 @@ void IsisMain() { temp = time0 - 0.005*(time1-time0); //et just before the first scan line spPos->SetEphemerisTime(temp); spRot->SetEphemerisTime(temp); - //Despite being labeled as J2000, the coordinates for the instrument position are in fact in - // target centric coordinated rotated to a system centered at the target with aces parallel + //Despite being labeled as J2000, the coordinates for the instrument position are in fact in + // target centric coordinated rotated to a system centered at the target with aces parallel // to J2000, whatever that means posJ20 = spRot->J2000Vector(posSel); //J2000Vector calls rotates the position vector into J2000, // completing the transformation @@ -428,8 +428,8 @@ void IsisMain() { temp = time1 + 0.015*(time1-time0); //et just after the last scan line spPos->SetEphemerisTime(temp); spRot->SetEphemerisTime(temp); - //Despite being labeled as J2000, the coordinates for the instrument position are in fact - // in target centric coordinated rotated to a system centered at the target with aces + //Despite being labeled as J2000, the coordinates for the instrument position are in fact + // in target centric coordinated rotated to a system centered at the target with aces // parallel to J2000, whatever that means posJ20 = spRot->J2000Vector(posSel); //J2000Vector calls rotates the position vector into J2000, // completing the transformation @@ -448,14 +448,14 @@ void IsisMain() { rollComb, //magnitude of roll relative to the center in the middle of the epoch relT, //relative time at the center of each epoch Q[NODES][5], //NODES four ellement unit quarternions and et (to be calculated). - gimVec[3], //the direction of the gimbal rotation vector (to the cameras persepective - // this is always changing because the camera is mounted to the roll frame + gimVec[3], //the direction of the gimbal rotation vector (to the cameras persepective + // this is always changing because the camera is mounted to the roll frame // assembly which is mounted to the gimbal) M0[3][3], //rotation matrix of the previous epoch Mtemp1[3][3], //intermediate step in the multiplication of rotation matricies Mtemp2[3][3], //intermediate step in the multiplication of rotation matricies Mdg[3][3], //incremental rotation due the the gimbal motion in the camera frame - Mdr[3][3]; //the contribution of the roll motion in the camera frame during time + Mdr[3][3]; //the contribution of the roll motion in the camera frame during time // cacheSlope std::vector M_J2toT; //rotation matrix from J2000 to the target frame M_J2toT.resize(9); @@ -472,7 +472,7 @@ void IsisMain() { recordRot += q3; recordRot += et; Table tableRot("InstrumentPointing",recordRot); - //From the cameras perspective the gimbal motion is around a constantly changing axis, + //From the cameras perspective the gimbal motion is around a constantly changing axis, // this is handled by combining a series of incremental rotations MfromLeftEulers(M0, omega, phi, kappa); //rotation matrix in the center Q[(NOPDES-1)/2] spRot->SetEphemerisTime(isisTime.Et()); @@ -485,34 +485,34 @@ void IsisMain() { Q[(NODES-1)/2][4] = (time1 + time0)/2.0; //time in the center of the image //the total time is scaled up slightly so that nodes will extend just beyond the edge of the image - cacheSlope = 1.03*(time1 - time0)/(NODES-1); + cacheSlope = 1.03*(time1 - time0)/(NODES-1); //Mdr is constant for all the forward time computations - MfromLeftEulers(Mdr,cacheSlope*rollV,0.0,0.0); + MfromLeftEulers(Mdr,cacheSlope*rollV,0.0,0.0); for (i=(NODES-1)/2+1; iSetEphemerisTime(Q[i][4]); - //this actually gives the rotation from J2000 to target centric--hence the mxmt_c function being + //this actually gives the rotation from J2000 to target centric--hence the mxmt_c function being // used later - M_J2toT = spRot->Matrix(); + M_J2toT = spRot->Matrix(); for(j=0; j<3; j++) //reformating M_J2toT to a 3x3 for(k=0; k<3; k++) Mtemp1[j][k] = M_J2toT[3*j+k]; @@ -522,27 +522,27 @@ void IsisMain() { MfromLeftEulers(M0, omega, phi, kappa); //rotation matrix in the center Q[(NOPDES-1)/2] //Mdr is constant for all the backward time computations - MfromLeftEulers(Mdr, -cacheSlope*rollV, 0.0, 0.0); + MfromLeftEulers(Mdr, -cacheSlope*rollV, 0.0, 0.0); for (i=(NODES-1)/2-1; i>=0; i--) { //moving backward in time Q[i][4] = Q[i+1][4] - cacheSlope; //new time epoch //epoch center time relative to the center line - relT = double(i - (NODES-1)/2 + 0.5)*cacheSlope; + relT = double(i - (NODES-1)/2 + 0.5)*cacheSlope; rollComb = relT*rollV; gimVec[0] = 0.0; //gimbal rotation vector direction in the middle of the epoch gimVec[1] = cos(rollComb); gimVec[2] = -sin(rollComb); //incremental rotation due to the gimbal (forward motion compensation) - MfromVecLeftAngle(Mdg, gimVec, -fmc*cacheSlope); - //the new rotation matrix is Transpose(Mdr)*Transpose(Mdg)*M0 NOTE the order swap and + MfromVecLeftAngle(Mdg, gimVec, -fmc*cacheSlope); + //the new rotation matrix is Transpose(Mdr)*Transpose(Mdg)*M0 NOTE the order swap and // transposes are needed because both Mdr and Mdg were caculated in image space and need to be // transposed to apply to object space - mtxm_c(Mdg, M0, Mtemp1); - //M0 is now what would typically be considered the rotation matrix of an image. It rotates a - // vector from the target centric space into camera space. However, what is standard to - // include in the cube labels is a rotation from camera space to J2000. M0 is therefore the - // transpose of the first part of this rotation. Transpose(M0) is the rotation from camera + mtxm_c(Mdg, M0, Mtemp1); + //M0 is now what would typically be considered the rotation matrix of an image. It rotates a + // vector from the target centric space into camera space. However, what is standard to + // include in the cube labels is a rotation from camera space to J2000. M0 is therefore the + // transpose of the first part of this rotation. Transpose(M0) is the rotation from camera // space to target centric space - mtxm_c(Mdr, Mtemp1, M0); + mtxm_c(Mdr, Mtemp1, M0); //now adding the rotation from the target frame to J2000 spRot->SetEphemerisTime(Q[i][4]); M_J2toT = spRot->Matrix(); @@ -589,7 +589,7 @@ void IsisMain() { Cube fidC; //Fiducial image //line and sample coordinates for looping through the panCube - double l=1,s=1,sample,line,sampleInitial=1,lineInitial=1,play; + double l=1,s=1,sample,line,sampleInitial=1,lineInitial=1,play; int regStatus, fidn, @@ -617,15 +617,15 @@ void IsisMain() { //read the image resolutions and scale the constants acordingly double resolution = ui.GetDouble("MICRONS"), //pixel size in microns scale = SCALE *5.0/resolution, //reduction scale for fast autoregistrations - searchHeight = SEARCHh*5.0/resolution, //number of lines (in 5-micron-pixels) in + searchHeight = SEARCHh*5.0/resolution, //number of lines (in 5-micron-pixels) in // search space for the first fiducial searchCellSize = SEARCHc*5.0/resolution, //height/width of search chips block averageSamples = AVERs *5.0/resolution, //scaled smaples between fiducials - averageLines = AVERl *5.0/resolution; //scaled average distance between the top and + averageLines = AVERl *5.0/resolution; //scaled average distance between the top and //bottom fiducials if( 15.0/resolution < 1.5) play=1.5; - else play = 15.0/resolution; + else play = 15.0/resolution; //copy the patternS chip (the entire ApolloPanFiducialMark.cub) FileName fiducialFileName("$apollo15/calibration/ApolloPanFiducialMark.cub"); @@ -637,13 +637,13 @@ void IsisMain() { refL = fidC.lineCount(); refS = fidC.sampleCount(); //scaled pattern chip for fast matching - patternS.SetSize(int((refS-2)/SCALE), int((refL-2)/SCALE)); + patternS.SetSize(int((refS-2)/SCALE), int((refL-2)/SCALE)); patternS.TackCube((refS-1)/2, (refL-1)/2); patternS.Load(fidC, 0, SCALE); - //parameters for maximum correlation autoregestration + //parameters for maximum correlation autoregestration // see: file:///usgs/pkgs/isis3nightly2011-09-21/isis/doc/documents/patternSMatch/patternSMatch.html#DistanceTolerance - FileName fiducialPvl("$apollo15/templates/apolloPanFiducialFinder.pvl"); + FileName fiducialPvl("$ISISROOT/appdata/templates/apollo/PanFiducialFinder.def"); pvl.read(fiducialPvl.expanded()); //read in the autoreg parameters AutoReg *arS = AutoRegFactory::Create(pvl); @@ -664,7 +664,7 @@ void IsisMain() { progress.SetMaximumSteps(91); //Search for the first fiducial, search sizes are constanst - searchS.SetSize(int(searchCellSize/scale),int(searchCellSize/scale)); + searchS.SetSize(int(searchCellSize/scale),int(searchCellSize/scale)); //now start searching along a horizontal line for the first fiducial mark for(l = searchCellSize/2; lCubeSample(), arS->CubeLine()); //continuous dynamic range selection - centroid.selectAdaptive(&inputChip, &selectionChip); + centroid.selectAdaptive(&inputChip, &selectionChip); //elliptical trimming/smoothing - if (centroid.elipticalReduction(&selectionChip, 95, play, 2000)) { + if (centroid.elipticalReduction(&selectionChip, 95, play, 2000)) { //center of mass to reduce selection to a single measure - centroid.centerOfMass(&selectionChip, &sample, &line); + centroid.centerOfMass(&selectionChip, &sample, &line); inputChip.SetChipPosition(sample, line); sampleInitial = inputChip.CubeSample(); lineInitial = inputChip.CubeLine(); @@ -695,7 +695,7 @@ void IsisMain() { } } if(s>=averageLines+searchCellSize/2.0) { - QString msg = "Unable to locate a fiducial mark in the input cube [" + fileName + + QString msg = "Unable to locate a fiducial mark in the input cube [" + fileName + "]. Check FROM and MICRONS parameters."; throw IException(IException::Io, msg, _FILEINFO_); return; @@ -729,9 +729,9 @@ void IsisMain() { } centroid.selectAdaptive(&inputChip, &selectionChip); //continuous dynamic range selection //elliptical trimming/smoothing... if this fails move on - if (centroid.elipticalReduction(&selectionChip, 95, play, 2000) != 0 ) { + if (centroid.elipticalReduction(&selectionChip, 95, play, 2000) != 0 ) { //center of mass to reduce selection to a single measure - centroid.centerOfMass(&selectionChip, &sample, &line); + centroid.centerOfMass(&selectionChip, &sample, &line); inputChip.SetChipPosition(sample, line); sample = inputChip.CubeSample(); line = inputChip.CubeLine(); @@ -763,13 +763,13 @@ void IsisMain() { //inputChip.Write("inputTemp.cub");//debug //selectionChip.Write("selectionTemp.cub");//debug //elliptical trimming/smoothing... if this fails move on - if (centroid.elipticalReduction(&selectionChip, 95, play, 2000) !=0) { + if (centroid.elipticalReduction(&selectionChip, 95, play, 2000) !=0) { //center of mass to reduce selection to a single measure - centroid.centerOfMass(&selectionChip, &sample, &line); + centroid.centerOfMass(&selectionChip, &sample, &line); inputChip.SetChipPosition(sample, line); - //when finding the top fiducial both s and l are refined for a successful measurement, + //when finding the top fiducial both s and l are refined for a successful measurement, // this will help follow trends in the scaned image - s = inputChip.CubeSample(); + s = inputChip.CubeSample(); l = inputChip.CubeLine(); recordFid[0] = fidn*2; recordFid[1] = s; @@ -783,26 +783,26 @@ void IsisMain() { //close the new cube panCube.close(false); panCube.open(ui.GetFileName("FROM"),"rw"); - + delete spPos; delete spRot; //now instantiate a camera to make sure all of this is working ApolloPanoramicCamera* cam = (ApolloPanoramicCamera*)(panCube.camera()); - //log the residual report from interior orientation + //log the residual report from interior orientation PvlGroup residualStats("InteriorOrientationStats"); residualStats += PvlKeyword("FiducialsFound", toString(tableFid.Records())); residualStats += PvlKeyword("ResidualMax", toString(cam->intOriResidualMax()),"pixels"); residualStats += PvlKeyword("ResidualMean", toString(cam->intOriResidualMean()),"pixels"); residualStats += PvlKeyword("ResidualStdev", toString(cam->intOriResidualStdev()),"pixels"); - Application::Log( residualStats ); + Application::Log( residualStats ); return; } -//function largely copied from the spice class because it was private and I couldn't access it +//function largely copied from the spice class because it was private and I couldn't access it // without shoe-horning the input to please the rest of the Spice::Init() funciton void Load_Kernel(Isis::PvlKeyword &key) { @@ -813,9 +813,9 @@ void Load_Kernel(Isis::PvlKeyword &key) { if(key[i] == "") continue; if(QString(key[i]).toUpper() == "NULL") break; if(QString(key[i]).toUpper() == "NADIR") break; - //Table was left as the first value of these keywords because one is about to be attached, + //Table was left as the first value of these keywords because one is about to be attached, // still though it needs to be skipped in this loop - if(QString(key[i]).toUpper() == "TABLE") continue; + if(QString(key[i]).toUpper() == "TABLE") continue; Isis::FileName file(key[i]); if(!file.fileExists()) { QString msg = "Spice file does not exist [" + file.expanded() + "]"; diff --git a/isis/src/apollo/apps/apollopanstitcher/main.cpp b/isis/src/apollo/apps/apollopanstitcher/main.cpp index e67d7c3cab..65c7c077bd 100644 --- a/isis/src/apollo/apps/apollopanstitcher/main.cpp +++ b/isis/src/apollo/apps/apollopanstitcher/main.cpp @@ -166,7 +166,7 @@ void IsisMain() { //parameters for maximum correlation autoregestration // see: ///usgs/pkgs/isis3nightly2011-09-21/isis/doc/documents/patternSMatch/patternSMatch.html#DistanceTolerance - FileName fiducialPvl("$apollo15/templates/apolloPanFiducialFinder.pvl"); + FileName fiducialPvl("$ISISROOT/appdata/templates/apollo/PanFiducialFinder.def"); pvl.read(fiducialPvl.expanded()); //read in the autoreg parameters AutoReg *arS = AutoRegFactory::Create(pvl); diff --git a/isis/src/apollo/templates/PanFiducialFinder.def b/isis/src/apollo/templates/PanFiducialFinder.def new file mode 100644 index 0000000000..675c7ba551 --- /dev/null +++ b/isis/src/apollo/templates/PanFiducialFinder.def @@ -0,0 +1,31 @@ +Object = AutoRegistration + Group = Algorithm + Name = MaximumCorrelation + Tolerance = 0.75 + ChipInterpolator = BiLinearType + SubPixelAccuracy = FALSE + ReductionFactor = 1 + Gradient = None + End_Group + + Group = patternChip + Samples = 17 + Lines = 17 + MinimumZScore = 1.0e-05 + ValidPercent = 100 + End_Group + + Group = SearchChip + Samples = 28 + Lines = 28 + SubchipValidPercent = 100 + End_Group + + Group = SurfaceModel + DistanceTolerance = 5 + WindowSize = 11 + EccentricityRatio = 100 + ResidualTolerance = 0.25 + End_Group +End_Object +End From 8e1ee70f6d283bf0a87d87b09713110f6648b986 Mon Sep 17 00:00:00 2001 From: Kristin Date: Thu, 5 Mar 2020 15:43:25 -0700 Subject: [PATCH 07/61] Moving apollo16 data into source (#3734) * Abstracted campt app. * Revert "Merge branch 'campt' of https://github.com/kaitlyndlee/ISIS3 into dev" This reverts commit 521dd44a6831b488052aa0e21e65ca3c5f40f7f1, reversing changes made to 2874acf628c944823f317ebd1a2525d15dee497b. * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * adds apollo16 serialnumbers * moved panoramicSerialNumber0001.trn -> Apollo15PanoramicSerialNumber.trn and metricSerialNumber0001.trn -> ApolloMetricSerialNumber.trn * moved metricSerialNumber0002.trn -> ApolloMetricSerialNumber.trn * moved metricSerialNumber0003.trn -> ApolloMetricSerialNumber.trn * fixed serialnumber file naming * removed serialnumbers DELETEME file Co-authored-by: Kaitlyn Lee Co-authored-by: Jesse Mapel Co-authored-by: Kristin Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette --- .../Apollo16MetricSerialNumber.trn | 30 +++++++++++++++++ .../Apollo16PanoramicSerialNumber.trn | 32 +++++++++++++++++++ isis/appdata/serialnumbers/DELETEME.txt | 0 3 files changed, 62 insertions(+) create mode 100644 isis/appdata/serialnumbers/Apollo16MetricSerialNumber.trn create mode 100644 isis/appdata/serialnumbers/Apollo16PanoramicSerialNumber.trn delete mode 100644 isis/appdata/serialnumbers/DELETEME.txt diff --git a/isis/appdata/serialnumbers/Apollo16MetricSerialNumber.trn b/isis/appdata/serialnumbers/Apollo16MetricSerialNumber.trn new file mode 100644 index 0000000000..7b3e92dfcb --- /dev/null +++ b/isis/appdata/serialnumbers/Apollo16MetricSerialNumber.trn @@ -0,0 +1,30 @@ +Group = Keyword1 + Auto + InputKey = SpacecraftName + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword1 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (APOLLO16, *) +End_Group + +Group = Keyword2 + Auto + InputKey = InstrumentId + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword2 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group + +Group = Keyword3 + Auto + InputKey = StartTime + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword3 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group +End diff --git a/isis/appdata/serialnumbers/Apollo16PanoramicSerialNumber.trn b/isis/appdata/serialnumbers/Apollo16PanoramicSerialNumber.trn new file mode 100644 index 0000000000..3c47027161 --- /dev/null +++ b/isis/appdata/serialnumbers/Apollo16PanoramicSerialNumber.trn @@ -0,0 +1,32 @@ +ObservationKeys = 3 + +Group = Keyword1 + Auto + InputKey = SpacecraftName + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword1 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (APOLLO16, *) +End_Group + +Group = Keyword2 + Auto + InputKey = InstrumentId + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword2 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group + +Group = Keyword3 + Auto + InputKey = StartTime + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword3 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group +End diff --git a/isis/appdata/serialnumbers/DELETEME.txt b/isis/appdata/serialnumbers/DELETEME.txt deleted file mode 100644 index e69de29bb2..0000000000 From cc5881dff2f7c0573d93e3922a2f236f4365bfd4 Mon Sep 17 00:00:00 2001 From: Kristin Date: Thu, 5 Mar 2020 15:43:33 -0700 Subject: [PATCH 08/61] Moving apollo17 data into source (#3735) * Abstracted campt app. * Revert "Merge branch 'campt' of https://github.com/kaitlyndlee/ISIS3 into dev" This reverts commit 521dd44a6831b488052aa0e21e65ca3c5f40f7f1, reversing changes made to 2874acf628c944823f317ebd1a2525d15dee497b. * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * adds apollo17 serialnumber files * moved metricSerialNumber0001.trn -> Apollo17MetricSerialNumber.trn and panoramicSerialNumber0001.trn -> Apollo17PanoramicSerialNumber.trn * moved metricSerialNumber0002.trn Apollo17MetricSerialNumber.trn * moved metricSerialNumber0003.trn -> Apollo17MetricSerialNumber.trn * remove serialnumbers DELETEME file Co-authored-by: Kaitlyn Lee Co-authored-by: Jesse Mapel Co-authored-by: Kristin Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette --- .../Apollo17MetricSerialNumber.trn | 30 +++++++++++++++++ .../Apollo17PanoramicSerialNumber.trn | 32 +++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 isis/appdata/serialnumbers/Apollo17MetricSerialNumber.trn create mode 100644 isis/appdata/serialnumbers/Apollo17PanoramicSerialNumber.trn diff --git a/isis/appdata/serialnumbers/Apollo17MetricSerialNumber.trn b/isis/appdata/serialnumbers/Apollo17MetricSerialNumber.trn new file mode 100644 index 0000000000..e642d9b838 --- /dev/null +++ b/isis/appdata/serialnumbers/Apollo17MetricSerialNumber.trn @@ -0,0 +1,30 @@ +Group = Keyword1 + Auto + InputKey = SpacecraftName + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword1 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (APOLLO17, *) +End_Group + +Group = Keyword2 + Auto + InputKey = InstrumentId + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword2 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group + +Group = Keyword3 + Auto + InputKey = StartTime + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword3 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group +End diff --git a/isis/appdata/serialnumbers/Apollo17PanoramicSerialNumber.trn b/isis/appdata/serialnumbers/Apollo17PanoramicSerialNumber.trn new file mode 100644 index 0000000000..d82675ac13 --- /dev/null +++ b/isis/appdata/serialnumbers/Apollo17PanoramicSerialNumber.trn @@ -0,0 +1,32 @@ +ObservationKeys = 3 + +Group = Keyword1 + Auto + InputKey = SpacecraftName + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword1 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (APOLLO17, *) +End_Group + +Group = Keyword2 + Auto + InputKey = InstrumentId + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword2 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group + +Group = Keyword3 + Auto + InputKey = StartTime + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword3 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group +End From 1ddeaf49bec4af0c5d5b0165e0099f2b5fe0df6d Mon Sep 17 00:00:00 2001 From: Kristin Date: Thu, 5 Mar 2020 15:43:59 -0700 Subject: [PATCH 09/61] Moved Juno data files into source code (#3736) * Added translation files. * Renamed junoSerialNumber0001.trn * Updated Preference file to use ISISDATA env variable for juno. * Moved SN xfile to appdata and updated app to point to appdata/translations. * Removed commented line. * Renamed files to be upper camel case. * Fixed typo. --- .../serialnumbers/JunoJunoCamSerialNumber.trn | 54 ++++++++ .../apps/junocam2isis/JunoJunoCamArchive.trn | 55 +++++++++ .../apps/junocam2isis/JunoJunoCamBandBin.trn | 37 ++++++ .../junocam2isis/JunoJunoCamInstrument.trn | 116 ++++++++++++++++++ isis/src/juno/apps/junocam2isis/main.cpp | 9 +- 5 files changed, 266 insertions(+), 5 deletions(-) create mode 100644 isis/appdata/serialnumbers/JunoJunoCamSerialNumber.trn create mode 100644 isis/src/juno/apps/junocam2isis/JunoJunoCamArchive.trn create mode 100644 isis/src/juno/apps/junocam2isis/JunoJunoCamBandBin.trn create mode 100644 isis/src/juno/apps/junocam2isis/JunoJunoCamInstrument.trn diff --git a/isis/appdata/serialnumbers/JunoJunoCamSerialNumber.trn b/isis/appdata/serialnumbers/JunoJunoCamSerialNumber.trn new file mode 100644 index 0000000000..4e61894e79 --- /dev/null +++ b/isis/appdata/serialnumbers/JunoJunoCamSerialNumber.trn @@ -0,0 +1,54 @@ +ObservationKeys = 4 +Group = Keyword1 + Auto + InputKey = SpacecraftName + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword1 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group + +Group = Keyword2 + Auto + InputKey = InstrumentId + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword2 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group + +Group = Keyword3 + Auto + InputKey = StartTime + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword3 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group + +Group = Keyword4 + Auto + InputKey = FrameletNumber + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword4 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group + +Group = Keyword5 + Auto + InputKey = FilterName + InputGroup = "IsisCube,BandBin" + InputPosition = (IsisCube, BandBin) + OutputName = Keyword5 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group + + +End + diff --git a/isis/src/juno/apps/junocam2isis/JunoJunoCamArchive.trn b/isis/src/juno/apps/junocam2isis/JunoJunoCamArchive.trn new file mode 100644 index 0000000000..2f571c4de0 --- /dev/null +++ b/isis/src/juno/apps/junocam2isis/JunoJunoCamArchive.trn @@ -0,0 +1,55 @@ +Group = MissionPhase + Auto + Optional + InputKey = MISSION_PHASE_NAME + InputGroup = ROOT + InputPosition = ROOT + OutputName = MissionPhase + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = OrbitNumber + Auto + Optional + InputKey = ORBIT_NUMBER + InputGroup = ROOT + InputPosition = ROOT + OutputName = OrbitNumber + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = FocalPlaneTemperature + Auto + Optional + InputKey = FOCAL_PLANE_TEMPERATURE + InputGroup = ROOT + InputPosition = ROOT + OutputName = FocalPlaneTemperature + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = TDICount + Auto + Optional + InputKey = JNO:TDI_STAGES_COUNT + InputGroup = ROOT + InputPosition = ROOT + OutputName = TDICount + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = CompressionType + Auto + Optional + InputKey = COMPRESSION_TYPE + InputGroup = ROOT + InputPosition = ROOT + OutputName = CompressionType + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group +End \ No newline at end of file diff --git a/isis/src/juno/apps/junocam2isis/JunoJunoCamBandBin.trn b/isis/src/juno/apps/junocam2isis/JunoJunoCamBandBin.trn new file mode 100644 index 0000000000..ce77a57000 --- /dev/null +++ b/isis/src/juno/apps/junocam2isis/JunoJunoCamBandBin.trn @@ -0,0 +1,37 @@ +Group = FilterName + Auto + Optional + InputGroup = ROOT + InputPosition = ROOT + InputKey = FILTER_NAME + OutputName = FilterName + OutputPosition = (Object, IsisCube, Group, BandBin) + Translation = (*, *) +End_Group + +Group = Center + Auto + Optional + InputGroup = ROOT + InputPosition = ROOT + InputKey = FILTER_NAME + OutputName = Center + OutputPosition = (Object, IsisCube, Group, BandBin) + Translation = (BLUE, 480.1) + Translation = (GREEN, 553.5) + Translation = (RED, 698.9) +End_Group + +Group = Width + Auto + Optional + InputGroup = ROOT + InputPosition = ROOT + InputKey = FILTER_NAME + OutputName = Width + OutputPosition = (Object, IsisCube, Group, BandBin) + Translation = (BLUE, 45.5) + Translation = (GREEN, 79.3) + Translation = (RED, 175.4) +End_Group +End \ No newline at end of file diff --git a/isis/src/juno/apps/junocam2isis/JunoJunoCamInstrument.trn b/isis/src/juno/apps/junocam2isis/JunoJunoCamInstrument.trn new file mode 100644 index 0000000000..cd98607c30 --- /dev/null +++ b/isis/src/juno/apps/junocam2isis/JunoJunoCamInstrument.trn @@ -0,0 +1,116 @@ +Group = SpacecraftName + Auto + Optional + InputKey = SPACECRAFT_NAME + InputGroup = ROOT + InputPosition = ROOT + OutputName = SpacecraftName + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = InstrumentHostId + Auto + InputKey = INSTRUMENT_HOST_ID + InputDefault = UNKNOWN + OutputName = InstrumentHostId + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = SpacecraftId + Auto + Optional + InputKey = INSTRUMENT_HOST_ID + InputGroup = ROOT + InputPosition = ROOT + OutputName = SpacecraftId + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = InstrumentName + Auto + Optional + InputKey = INSTRUMENT_NAME + InputGroup = ROOT + InputPosition = ROOT + OutputName = InstrumentName + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = InstrumentId + Auto + Optional + InputKey = INSTRUMENT_ID + InputGroup = ROOT + InputPosition = ROOT + OutputName = InstrumentId + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = TargetName + Auto + Optional + InputKey = TARGET_NAME + InputGroup = ROOT + InputPosition = ROOT + OutputName = TargetName + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = StartTime + Auto + InputKey = START_TIME + OutputName = StartTime + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = SpacecraftClockStartCount + Auto + Optional + InputKey = SPACECRAFT_CLOCK_START_COUNT + InputGroup = ROOT + InputPosition = ROOT + OutputName = SpacecraftClockStartCount + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = ExposureDuration + Auto + Optional + InputKey = EXPOSURE_DURATION + InputGroup = ROOT + InputPosition = ROOT + OutputName = ExposureDuration + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = InterFrameDelay + Auto + Optional + InputKey = INTERFRAME_DELAY + InputGroup = ROOT + InputPosition = ROOT + OutputName = InterFrameDelay + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = SummingMode + Auto + Optional + InputKey = SAMPLING_FACTOR + InputGroup = ROOT + InputPosition = ROOT + OutputName = SummingMode + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group +End \ No newline at end of file diff --git a/isis/src/juno/apps/junocam2isis/main.cpp b/isis/src/juno/apps/junocam2isis/main.cpp index bac45bad14..00b7eebe58 100644 --- a/isis/src/juno/apps/junocam2isis/main.cpp +++ b/isis/src/juno/apps/junocam2isis/main.cpp @@ -291,11 +291,10 @@ void IsisMain() { */ void translateLabel(Pvl &inputLabel, Pvl &outputLabel) { // Get the directory where the Juno translation tables are - PvlGroup &dataDir = Preference::Preferences().findGroup("DataDirectory"); - QString missionDir = (QString) dataDir["Juno"]; + QString transDir = "$ISISROOT/appdata/translations/"; // Translate the Instrument group - FileName instTransFile(missionDir + "/translations/junoJunoCamInstrument.trn"); + FileName instTransFile(transDir + "JunoJunoCamInstrument.trn"); PvlToPvlTranslationManager instrumentXlater(inputLabel, instTransFile.expanded()); instrumentXlater.Auto(outputLabel); PvlGroup &inst = outputLabel.findGroup("Instrument", PvlObject::Traverse); @@ -317,7 +316,7 @@ void translateLabel(Pvl &inputLabel, Pvl &outputLabel) { } // Translate the BandBin group - FileName bandBinTransFile(missionDir + "/translations/junoJunoCamBandBin.trn"); + FileName bandBinTransFile(transDir + "JunoJunoCamBandBin.trn"); PvlToPvlTranslationManager bandBinXlater(inputLabel, bandBinTransFile.expanded()); bandBinXlater.Auto(outputLabel); PvlGroup &bandBin = outputLabel.findGroup("BandBin", PvlObject::Traverse); @@ -341,7 +340,7 @@ void translateLabel(Pvl &inputLabel, Pvl &outputLabel) { } // Translate the Archive group - FileName archiveTransFile(missionDir + "/translations/junoJunoCamArchive.trn"); + FileName archiveTransFile(transDir + "JunoJunoCamArchive.trn"); PvlToPvlTranslationManager archiveXlater(inputLabel, archiveTransFile.expanded()); archiveXlater.Auto(outputLabel); PvlGroup &archive = outputLabel.findGroup("Archive", PvlObject::Traverse); From 05037b9d6ccabc91f6698a0874731bb6b616c76c Mon Sep 17 00:00:00 2001 From: Stuart Sides Date: Thu, 5 Mar 2020 15:46:12 -0700 Subject: [PATCH 10/61] Moved Mex data files into source code (#3738) * Added translation files. * Renamed hrscSerialNumber0001.trn * Renamed Xfiles, updated app to point to /appdata/translations, and moved SN xfile to appdata. * Renamed files to be upper camel case. * Removed commented line Co-authored-by: Stuart Sides --- .../serialnumbers/MexHrscSerialNumber.trn | 42 +++++++ .../src/mex/apps/hrsc2isis/MexHrscArchive.trn | 62 ++++++++++ .../src/mex/apps/hrsc2isis/MexHrscBandBin.trn | 40 ++++++ .../mex/apps/hrsc2isis/MexHrscInstrument.trn | 117 ++++++++++++++++++ isis/src/mex/apps/hrsc2isis/main.cpp | 9 +- 5 files changed, 265 insertions(+), 5 deletions(-) create mode 100644 isis/appdata/serialnumbers/MexHrscSerialNumber.trn create mode 100644 isis/src/mex/apps/hrsc2isis/MexHrscArchive.trn create mode 100644 isis/src/mex/apps/hrsc2isis/MexHrscBandBin.trn create mode 100644 isis/src/mex/apps/hrsc2isis/MexHrscInstrument.trn diff --git a/isis/appdata/serialnumbers/MexHrscSerialNumber.trn b/isis/appdata/serialnumbers/MexHrscSerialNumber.trn new file mode 100644 index 0000000000..712e82c239 --- /dev/null +++ b/isis/appdata/serialnumbers/MexHrscSerialNumber.trn @@ -0,0 +1,42 @@ +Group = Keyword1 + Auto + InputKey = SpacecraftName + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword1 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (MEX, "MARS EXPRESS") + Translation = (MEX, MARS_EXPRESS) + Translation = (*, *) +End_Group + +Group = Keyword2 + Auto + InputKey = SpacecraftClockStartCount + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword2 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group + +Group = Keyword3 + Auto + InputKey = InstrumentId + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword3 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group + +Group = Keyword4 + Auto + InputKey = DetectorId + InputGroup = "IsisCube,Archive" + InputPosition = (IsisCube, Archive) + OutputName = Keyword4 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group +End diff --git a/isis/src/mex/apps/hrsc2isis/MexHrscArchive.trn b/isis/src/mex/apps/hrsc2isis/MexHrscArchive.trn new file mode 100644 index 0000000000..892406a68e --- /dev/null +++ b/isis/src/mex/apps/hrsc2isis/MexHrscArchive.trn @@ -0,0 +1,62 @@ +# +# The group names listed here are the native names used by +# applications to get the foreign names and values +# +# There is only one level of groups the groups are not +# allowed to be nested +# +# The Group names can NOT be repeated. +# +# InputGroup is a comma delimited list of objects and/or +# groups in the foreign label. Traversing this list will +# lead to the correct level to find the foreign keyword. +# +# InputKey is the keyword within the group which holds +# the information. +# +# InputDefault is the value used if there is no value for +# the keyword +# +# Translation is the native and corresponding foreign values. +# Translation may be repeated as needed. +# +Group = DataSetId + Auto + InputKey = DATA_SET_ID + OutputName = DataSetId + OutputPosition = (Group, Archive) + Translation = (*, *) +End_Group + +Group = DetectorId + Auto + InputKey = DETECTOR_ID + OutputName = DetectorId + OutputPosition = (Group, Archive) + Translation = (*, *) +End_Group + +Group = EventType + Auto + InputKey = EVENT_TYPE + OutputName = EventType + OutputPosition = (Group, Archive) + Translation = (*, *) +End_Group + +Group = OrbitNumber + Auto + InputKey = ORBIT_NUMBER + OutputName = OrbitNumber + OutputPosition = (Group, Archive) + Translation = (*, *) +End_Group + +Group = ProductId + Auto + InputKey = PRODUCT_ID + OutputName = ProductId + OutputPosition = (Group, Archive) + Translation = (*, *) +End_Group +End diff --git a/isis/src/mex/apps/hrsc2isis/MexHrscBandBin.trn b/isis/src/mex/apps/hrsc2isis/MexHrscBandBin.trn new file mode 100644 index 0000000000..2a9de3010c --- /dev/null +++ b/isis/src/mex/apps/hrsc2isis/MexHrscBandBin.trn @@ -0,0 +1,40 @@ +# +# The group names listed here are the native names used by +# applications to get the foreign names and values +# +# There is only one level of groups the groups are not +# allowed to be nested +# +# The Group names can NOT be repeated. +# +# InputGroup is a comma delimited list of objects and/or +# groups in the foreign label. Traversing this list will +# lead to the correct level to find the foreign keyword. +# +# InputKey is the keyword within the group which holds +# the information. +# +# InputDefault is the value used if there is no value for +# the keyword +# +# Translation is the native and corresponding foreign values. +# Translation may be repeated as needed. +# +Group = FilterWidth + Auto + InputKey = BANDWIDTH + OutputName = Width + OutputPosition = (Group, BandBin) + Translation = (*, *) + Translation = ("--- Illegal Value ---", *) +End_Group + +Group = FilterCenter + Auto + InputKey = CENTER_FILTER_WAVELENGTH + OutputName = Center + OutputPosition = (Group, BandBin) + Translation = (*, *) + Translation = ("--- Illegal Value ---", *) +End_Group +End diff --git a/isis/src/mex/apps/hrsc2isis/MexHrscInstrument.trn b/isis/src/mex/apps/hrsc2isis/MexHrscInstrument.trn new file mode 100644 index 0000000000..8f2633f3fd --- /dev/null +++ b/isis/src/mex/apps/hrsc2isis/MexHrscInstrument.trn @@ -0,0 +1,117 @@ +# +# The group names listed here are the native names used by +# applications to get the foreign names and values +# +# There is only one level of groups the groups are not +# allowed to be nested +# +# The Group names can NOT be repeated. +# +# InputGroup is a comma delimited list of objects and/or +# groups in the foreign label. Traversing this list will +# lead to the correct level to find the foreign keyword. +# +# InputKey is the keyword within the group which holds +# the information. +# +# InputDefault is the value used if there is no value for +# the keyword +# +# Translation is the native and corresponding foreign values. +# Translation may be repeated as needed. +# +Group = SpacecraftName + Auto + InputKey = INSTRUMENT_HOST_NAME + InputDefault = UNKNOWN + OutputName = SpacecraftName + OutputPosition = (Group, Instrument) + Translation = (*, *) +End_Group + +Group = InstrumentId + Auto + InputKey = INSTRUMENT_ID + OutputName = InstrumentId + OutputPosition = (Group, Instrument) + Translation = (*, *) +End_Group + +Group = StartTime + Auto + InputKey = START_TIME + OutputName = StartTime + OutputPosition = (Group, Instrument) + Translation = (*, *) +End_Group + +Group = StopTime + Auto + InputKey = STOP_TIME + OutputName = StopTime + OutputPosition = (Group, Instrument) + Translation = (*, *) +End_Group + +Group = SpacecraftClockStartCount + Auto + InputKey = SPACECRAFT_CLOCK_START_COUNT + OutputName = SpacecraftClockStartCount + OutputPosition = (Group, Instrument) + Translation = (*, *) +End_Group + +Group = SpacecraftClockStopCount + Auto + InputKey = SPACECRAFT_CLOCK_STOP_COUNT + OutputName = SpacecraftClockStopCount + OutputPosition = (Group, Instrument) + Translation = (*, *) +End_Group + +Group = MissionPhaseName + Auto + InputKey = MISSION_PHASE_NAME + OutputName = MissionPhaseName + OutputPosition = (Group, Instrument) + Translation = (*, *) +End_Group + +Group = TargetName + Auto + InputKey = TARGET_NAME + OutputName = TargetName + OutputPosition = (Group, Instrument) + Translation = (Mars, MARS) + Translation = (Phobos, PHOBOS) + Translation = (Deimos, DEIMOS) + Translation = (Cal, CAL) +End_Group + +Group = FocalPlaneTemperature + Auto + Optional + InputKey = FOCAL_PLANE_TEMPERATURE + OutputName = FocalPlaneTemperature + OutputPosition = (Group, Instrument) + Translation = (*, *) +End_Group + +Group = LensTemperature + Auto + Optional + InputKey = LENS_TEMPERATURE + OutputName = LensTemperature + OutputPosition = (Group, Instrument) + Translation = (*, *) +End_Group + +Group = InstrumentTemperature + Auto + Optional + InputKey = INSTRUMENT_TEMPERATURE + OutputName = InstrumentTemperature + OutputPosition = (Group, Instrument) + Translation = (*, *) +End_Group +End diff --git a/isis/src/mex/apps/hrsc2isis/main.cpp b/isis/src/mex/apps/hrsc2isis/main.cpp index 8e8eab9ea8..bff78f365e 100644 --- a/isis/src/mex/apps/hrsc2isis/main.cpp +++ b/isis/src/mex/apps/hrsc2isis/main.cpp @@ -234,11 +234,10 @@ void WriteOutput(Isis::Buffer &buf) { void TranslateHrscLabels(Pvl &inLabels, Pvl &outLabel) { // Get the directory where the MRO HiRISE translation tables are. - PvlGroup dataDir(Preference::Preferences().findGroup("DataDirectory")); - QString transDir = (QString) dataDir["Mex"] + "/translations/"; + QString transDir = "$ISISROOT/appdata/translations/"; // Translate the Instrument group - FileName transFile(transDir + "hrscInstrument.trn"); + FileName transFile(transDir + "MexHrscInstrument.trn"); PvlToPvlTranslationManager instrumentXlater(inLabels, transFile.expanded()); instrumentXlater.Auto(outLabel); @@ -259,12 +258,12 @@ void TranslateHrscLabels(Pvl &inLabels, Pvl &outLabel) { outLabel.findGroup("Instrument", Pvl::Traverse)["StopTime"] = stopTime; // Translate the BandBin group - transFile = transDir + "hrscBandBin.trn"; + transFile = transDir + "MexHrscBandBin.trn"; PvlToPvlTranslationManager bandBinXlater(inLabels, transFile.expanded()); bandBinXlater.Auto(outLabel); // Translate the Archive group - transFile = transDir + "hrscArchive.trn"; + transFile = transDir + "MexHrscArchive.trn"; PvlToPvlTranslationManager archiveXlater(inLabels, transFile.expanded()); archiveXlater.Auto(outLabel); From 621ac1f49f6dae871d27ecacc20cbfdd337033e3 Mon Sep 17 00:00:00 2001 From: Kristin Date: Thu, 5 Mar 2020 16:17:36 -0700 Subject: [PATCH 11/61] Moved Dawn data files into source code (#3739) * Set MALLOC_CHECK_ in Jenkinsfile as a temporary fix for the failing tests * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * Copied dawn serial number files. * renamed files. * Updated serial number file with the most recent version. * copied over some xfiles. * New version. * updated to new version. * Added xfile. * New xfile. * new version. * new version. * new version. * copied xfile. * new version. * updated version. * copied xfile. * copied xfile. * updated version. * updated apps. * Updated env variable in preferences files. * Renamed files to be upper camel case. * Removed commented lines. * Renmaed serial number files to be upper camel case. Co-authored-by: Jesse Mapel Co-authored-by: Kristin Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette --- .../serialnumbers/DawnFcSerialNumber.trn | 33 +++ .../serialnumbers/DawnVirSerialNumber.trn | 41 +++ .../dawn/apps/dawnfc2isis/DawnFcArchive.trn | 162 ++++++++++++ .../dawn/apps/dawnfc2isis/DawnFcBandBin.trn | 32 +++ .../apps/dawnfc2isis/DawnFcInstrument.trn | 168 ++++++++++++ isis/src/dawn/apps/dawnfc2isis/main.cpp | 9 +- .../dawn/apps/dawnvir2isis/DawnVirArchive.trn | 175 +++++++++++++ .../dawn/apps/dawnvir2isis/DawnVirBandBin.trn | 62 +++++ .../apps/dawnvir2isis/DawnVirInstrument.trn | 245 ++++++++++++++++++ isis/src/dawn/apps/dawnvir2isis/main.cpp | 9 +- 10 files changed, 926 insertions(+), 10 deletions(-) create mode 100644 isis/appdata/serialnumbers/DawnFcSerialNumber.trn create mode 100644 isis/appdata/serialnumbers/DawnVirSerialNumber.trn create mode 100644 isis/src/dawn/apps/dawnfc2isis/DawnFcArchive.trn create mode 100644 isis/src/dawn/apps/dawnfc2isis/DawnFcBandBin.trn create mode 100644 isis/src/dawn/apps/dawnfc2isis/DawnFcInstrument.trn create mode 100644 isis/src/dawn/apps/dawnvir2isis/DawnVirArchive.trn create mode 100644 isis/src/dawn/apps/dawnvir2isis/DawnVirBandBin.trn create mode 100644 isis/src/dawn/apps/dawnvir2isis/DawnVirInstrument.trn diff --git a/isis/appdata/serialnumbers/DawnFcSerialNumber.trn b/isis/appdata/serialnumbers/DawnFcSerialNumber.trn new file mode 100644 index 0000000000..86f2b4df04 --- /dev/null +++ b/isis/appdata/serialnumbers/DawnFcSerialNumber.trn @@ -0,0 +1,33 @@ +ObservationKeys = 3 + +Group = Keyword1 + Auto + InputKey = SpacecraftName + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword1 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (DAWN, "DAWN") + Translation = (*, *) +End_Group + +Group = Keyword2 + Auto + InputKey = InstrumentId + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword2 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group + +Group = Keyword3 + Auto + InputKey = SpacecraftClockStartCount + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword3 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group +End diff --git a/isis/appdata/serialnumbers/DawnVirSerialNumber.trn b/isis/appdata/serialnumbers/DawnVirSerialNumber.trn new file mode 100644 index 0000000000..1f0e94bfa0 --- /dev/null +++ b/isis/appdata/serialnumbers/DawnVirSerialNumber.trn @@ -0,0 +1,41 @@ +Group = Keyword1 + Auto + InputKey = SpacecraftName + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword1 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (MeSSEnGeR, Messenger) + Translation = (*, *) +End_Group + +Group = Keyword2 + Auto + InputKey = InstrumentId + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword2 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group + +Group = Keyword3 + Auto + InputKey = ChannelId + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword3 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group + +Group = Keyword4 + Auto + InputKey = SpacecraftClockStartCount + InputGroup = "IsisCube,Instrument" + InputPosition = (IsisCube, Instrument) + OutputName = Keyword4 + OutputPosition = (Group, SerialNumberKeywords) + Translation = (*, *) +End_Group +End diff --git a/isis/src/dawn/apps/dawnfc2isis/DawnFcArchive.trn b/isis/src/dawn/apps/dawnfc2isis/DawnFcArchive.trn new file mode 100644 index 0000000000..da63647b9f --- /dev/null +++ b/isis/src/dawn/apps/dawnfc2isis/DawnFcArchive.trn @@ -0,0 +1,162 @@ +# +# The group names listed here are the native names used by +# applications to get the foreign names and values +# +# There is only one level of groups the groups are not +# allowed to be nested +# +# The Group names can NOT be repeated. +# +# InputGroup is a comma delimited list of objects and/or +# groups in the foreign label. Traversing this list will +# lead to the correct level to find the foreign keyword. +# +# InputKey is the keyword within the group which holds +# the information. +# +# InputDefault is the value used if there is no value for +# the keyword +# +# Translation is the native and corresponding foreign values. +# Translation may be repeated as needed. +# +Group = FileName + Auto + InputKey = FILE_NAME + InputGroup = ROOT + InputPosition = ROOT + OutputName = FileName + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = SoftwareName + Auto + InputKey = SOFTWARE_NAME + InputGroup = ROOT + InputPosition = ROOT + OutputName = SoftwareName + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = SoftwareVersionId + Auto + InputKey = SOFTWARE_VERSION_ID + InputGroup = ROOT + InputPosition = ROOT + OutputName = SoftwareVersionId + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = DataSetName + Auto + InputKey = DATA_SET_NAME + InputGroup = ROOT + InputPosition = ROOT + OutputName = DataSetName + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = DataSetId + Auto + InputKey = DATA_SET_ID + InputGroup = ROOT + InputPosition = ROOT + OutputName = DataSetId + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = ProductId + Auto + InputKey = PRODUCT_ID + InputGroup = ROOT + InputPosition = ROOT + OutputName = ProductId + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = ProductType + Auto + InputKey = PRODUCT_TYPE + InputGroup = ROOT + InputPosition = ROOT + OutputName = ProductType + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = StandardDataProductId + Auto + InputKey = STANDARD_DATA_PRODUCT_ID + InputGroup = ROOT + InputPosition = ROOT + OutputName = StandardDataProductId + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = ObservationId + Auto + InputKey = OBSERVATION_ID + InputGroup = ROOT + InputPosition = ROOT + OutputName = ObservationId + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = ProducerFullName + Auto + InputKey = PRODUCER_FULL_NAME + InputGroup = ROOT + InputPosition = ROOT + OutputName = ProducerFullName + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = ProducerInstitutionName + Auto + InputKey = PRODUCER_INSTITUTION_NAME + InputGroup = ROOT + InputPosition = ROOT + OutputName = ProducerInstitutionName + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = ProductCreationTime + Auto + InputKey = PRODUCT_CREATION_TIME + InputGroup = ROOT + InputPosition = ROOT + OutputName = ProductCreationTime + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = ProductVersionId + Auto + InputKey = PRODUCT_VERSION_ID + InputGroup = ROOT + InputPosition = ROOT + OutputName = ProductVersionId + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = ReleaseId + Auto + InputKey = RELEASE_ID + InputGroup = ROOT + InputPosition = ROOT + OutputName = ReleaseId + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group +End diff --git a/isis/src/dawn/apps/dawnfc2isis/DawnFcBandBin.trn b/isis/src/dawn/apps/dawnfc2isis/DawnFcBandBin.trn new file mode 100644 index 0000000000..56b49fb0a9 --- /dev/null +++ b/isis/src/dawn/apps/dawnfc2isis/DawnFcBandBin.trn @@ -0,0 +1,32 @@ +# +# The group names listed here are the native names used by +# applications to get the foreign names and values +# +# There is only one level of groups the groups are not +# allowed to be nested +# +# The Group names can NOT be repeated. +# +# InputGroup is a comma delimited list of objects and/or +# groups in the foreign label. Traversing this list will +# lead to the correct level to find the foreign keyword. +# +# InputKey is the keyword within the group which holds +# the information. +# +# InputDefault is the value used if there is no value for +# the keyword +# +# Translation is the native and corresponding foreign values. +# Translation may be repeated as needed. +# +Group = FilterNumber + Auto + InputKey = FILTER_NUMBER + InputGroup = ROOT + InputPosition = ROOT + OutputName = FilterNumber + OutputPosition = (Group, BandBin) + Translation = (*, *) +End_Group +End diff --git a/isis/src/dawn/apps/dawnfc2isis/DawnFcInstrument.trn b/isis/src/dawn/apps/dawnfc2isis/DawnFcInstrument.trn new file mode 100644 index 0000000000..ae0236e130 --- /dev/null +++ b/isis/src/dawn/apps/dawnfc2isis/DawnFcInstrument.trn @@ -0,0 +1,168 @@ +# +# The group names listed here are the native names used by +# applications to get the foreign names and values +# +# There is only one level of groups the groups are not +# allowed to be nested +# +# The Group names can NOT be repeated. +# +# InputGroup is a comma delimited list of objects and/or +# groups in the foreign label. Traversing this list will +# lead to the correct level to find the foreign keyword. +# +# InputKey is the keyword within the group which holds +# the information. +# +# InputDefault is the value used if there is no value for +# the keyword +# +# Translation is the native and corresponding foreign values. +# Translation may be repeated as needed. + +Group = SpacecraftName + Auto + InputKey = INSTRUMENT_HOST_NAME + InputGroup = ROOT + InputPosition = ROOT + OutputName = SpacecraftName + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (DAWN, "DAWN") +End_Group + +Group = InstrumentId + Auto + InputKey = INSTRUMENT_ID + InputGroup = ROOT + InputPosition = ROOT + OutputName = InstrumentId + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + + +Group = SpacecraftClockStartCount + Auto + InputKey = SPACECRAFT_CLOCK_START_COUNT + InputGroup = ROOT + InputPosition = ROOT + OutputName = SpacecraftClockStartCount + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = SpacecraftClockStopCount + Auto + InputKey = SPACECRAFT_CLOCK_STOP_COUNT + InputGroup = ROOT + InputPosition = ROOT + OutputName = SpacecraftClockStopCount + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = StartTime + Auto + InputKey = START_TIME + InputGroup = ROOT + InputPosition = ROOT + OutputName = StartTime + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = StopTime + Auto + InputKey = STOP_TIME + InputGroup = ROOT + InputPosition = ROOT + OutputName = StopTime + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = ExposureDuration + Auto + InputKey = EXPOSURE_DURATION + InputGroup = ROOT + InputPosition = ROOT + OutputName = ExposureDuration + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = PixelAveragingWidth + Auto + InputKey = PIXEL_AVERAGING_WIDTH + InputGroup = ROOT + InputPosition = ROOT + InputDefault = 1 + OutputName = PixelAveragingWidth + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = PixelAveragingHeight + Auto + InputKey = PIXEL_AVERAGING_HEIGHT + InputGroup = ROOT + InputPosition = ROOT + InputDefault = 1 + OutputName = PixelAveragingHeight + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = TargetName + Auto + InputKey = TARGET_NAME + InputGroup = ROOT + InputPosition = ROOT + OutputName = TargetName + InputDefault = "N/A" + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = OriginalTargetName + Auto + InputKey = TARGET_NAME + InputGroup = ROOT + InputPosition = ROOT + InputDefault = "N/A" + OutputName = OriginalTargetName + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + + +Group = OrbitNumber + Auto + InputKey = ORBIT_NUMBER + InputGroup = ROOT + InputPosition = ROOT + OutputName = OrbitNumber + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = FirstLine + Auto + InputKey = FIRST_LINE + InputGroup = IMAGE + InputPosition = IMAGE + OutputName = FirstLine + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = FirstLineSample + Auto + InputKey = FIRST_LINE_SAMPLE + InputGroup = IMAGE + InputPosition = IMAGE + OutputName = FirstLineSample + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group +End diff --git a/isis/src/dawn/apps/dawnfc2isis/main.cpp b/isis/src/dawn/apps/dawnfc2isis/main.cpp index 95b6f3d182..82215efc4f 100644 --- a/isis/src/dawn/apps/dawnfc2isis/main.cpp +++ b/isis/src/dawn/apps/dawnfc2isis/main.cpp @@ -68,24 +68,23 @@ void IsisMain() { Cube *outcube = p2.SetOutputCube("TO"); // Get the directory where the DAWN translation tables are. - PvlGroup dataDir(Preference::Preferences().findGroup("DataDirectory")); - QString transDir = (QString) dataDir["Dawn"] + "/translations/"; + QString transDir = "$ISISROOT/appdata/translations/"; // Create a PVL to store the translated labels in Pvl outLabel; // Translate the BandBin group - FileName transFile(transDir + "dawnfcBandBin.trn"); + FileName transFile(transDir + "DawnFcBandBin.trn"); PvlToPvlTranslationManager bandBinXlater(labelPvl, transFile.expanded()); bandBinXlater.Auto(outLabel); // Translate the Archive group - transFile = transDir + "dawnfcArchive.trn"; + transFile = transDir + "DawnFcArchive.trn"; PvlToPvlTranslationManager archiveXlater(labelPvl, transFile.expanded()); archiveXlater.Auto(outLabel); // Translate the Instrument group - transFile = transDir + "dawnfcInstrument.trn"; + transFile = transDir + "DawnFcInstrument.trn"; PvlToPvlTranslationManager instrumentXlater(labelPvl, transFile.expanded()); instrumentXlater.Auto(outLabel); diff --git a/isis/src/dawn/apps/dawnvir2isis/DawnVirArchive.trn b/isis/src/dawn/apps/dawnvir2isis/DawnVirArchive.trn new file mode 100644 index 0000000000..71925ef425 --- /dev/null +++ b/isis/src/dawn/apps/dawnvir2isis/DawnVirArchive.trn @@ -0,0 +1,175 @@ +# +# The group names listed here are the native names used by +# applications to get the foreign names and values +# +# There is only one level of groups the groups are not +# allowed to be nested +# +# The Group names can NOT be repeated. +# +# InputGroup is a comma delimited list of objects and/or +# groups in the foreign label. Traversing this list will +# lead to the correct level to find the foreign keyword. +# +# InputKey is the keyword within the group which holds +# the information. +# +# InputDefault is the value used if there is no value for +# the keyword +# +# Translation is the native and corresponding foreign values. +# Translation may be repeated as needed. +# +Group = SoftwareVersionId + Optional + Auto + InputKey = SOFTWARE_VERSION_ID + InputGroup = ROOT + InputPosition = ROOT + OutputName = SoftwareVersionId + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = DataSetName + Optional + Auto + InputKey = DATA_SET_NAME + InputGroup = ROOT + InputPosition = ROOT + OutputName = DataSetName + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = DataSetId + Auto + InputKey = DATA_SET_ID + InputGroup = ROOT + InputPosition = ROOT + OutputName = DataSetId + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = ProductId + Auto + InputKey = PRODUCT_ID + InputGroup = ROOT + InputPosition = ROOT + OutputName = ProductId + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = ProductType + Auto + InputKey = PRODUCT_TYPE + InputGroup = ROOT + InputPosition = ROOT + OutputName = ProductType + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = ProducerFullName + Auto + InputKey = PRODUCER_FULL_NAME + InputGroup = ROOT + InputPosition = ROOT + OutputName = ProducerFullName + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = ProducerInstitutionName + Auto + InputKey = PRODUCER_INSTITUTION_NAME + InputGroup = ROOT + InputPosition = ROOT + OutputName = ProducerInstitutionName + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = ProductCreationTime + Auto + InputKey = PRODUCT_CREATION_TIME + InputGroup = ROOT + InputPosition = ROOT + OutputName = ProductCreationTime + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = ProductVersionId + Auto + InputKey = PRODUCT_VERSION_ID + InputGroup = ROOT + InputPosition = ROOT + OutputName = ProductVersionId + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = InstrumentName + Auto + InputKey = INSTRUMENT_NAME + InputGroup = ROOT + InputPosition = ROOT + OutputName = InstrumentName + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = InstrumentType + Auto + InputKey = INSTRUMENT_TYPE + InputGroup = ROOT + InputPosition = ROOT + OutputName = InstrumentType + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = ImageMidTime + Auto + InputKey = IMAGE_MID_TIME + InputGroup = ROOT + InputPosition = ROOT + OutputName = ImageMidTime + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = ProcessingLevelId + Auto + InputKey = PROCESSING_LEVEL_ID + InputGroup = ROOT + InputPosition = ROOT + OutputName = ProcessingLevelId + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = EncodingType + Auto + InputKey = ENCODING_TYPE + InputGroup = ROOT + InputPosition = ROOT + OutputName = EncodingType + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group + +Group = PhotometricCorrectionType + Optional + Auto + InputKey = PHOTOMETRIC_CORRECTION_TYPE + InputGroup = ROOT + InputPosition = ROOT + OutputName = PhotometricCorrectionType + OutputPosition = (Object, IsisCube, Group, Archive) + Translation = (*, *) +End_Group +End diff --git a/isis/src/dawn/apps/dawnvir2isis/DawnVirBandBin.trn b/isis/src/dawn/apps/dawnvir2isis/DawnVirBandBin.trn new file mode 100644 index 0000000000..4f13800417 --- /dev/null +++ b/isis/src/dawn/apps/dawnvir2isis/DawnVirBandBin.trn @@ -0,0 +1,62 @@ +# +# The group names listed here are the native names used by +# applications to get the foreign names and values +# +# There is only one level of groups the groups are not +# allowed to be nested +# +# The Group names can NOT be repeated. +# +# InputGroup is a comma delimited list of objects and/or +# groups in the foreign label. Traversing this list will +# lead to the correct level to find the foreign keyword. +# +# InputKey is the keyword within the group which holds +# the information. +# +# InputDefault is the value used if there is no value for +# the keyword +# +# Translation is the native and corresponding foreign values. +# Translation may be repeated as needed. +# +Group = Unit + Auto + InputKey = BAND_BIN_UNIT + InputGroup = "QUBE,BAND_BIN" + InputPosition = (QUBE, BAND_BIN) + OutputName = Unit + OutputPosition = (Object, IsisCube, Group, BandBin) + Translation = (*, *) +End_Group + +Group = Center + Auto + InputKey = BAND_BIN_CENTER + InputGroup = "QUBE,BAND_BIN" + InputPosition = (QUBE, BAND_BIN) + OutputName = Center + OutputPosition = (Object, IsisCube, Group, BandBin) + Translation = (*, *) +End_Group + +Group = Width + Auto + InputKey = BAND_BIN_WIDTH + InputGroup = "QUBE,BAND_BIN" + InputPosition = (QUBE, BAND_BIN) + OutputName = Width + OutputPosition = (Object, IsisCube, Group, BandBin) + Translation = (*, *) +End_Group + +Group = OriginalBand + Auto + InputKey = BAND_BIN_ORIGINAL_BAND + InputGroup = "QUBE,BAND_BIN" + InputPosition = (QUBE, BAND_BIN) + OutputName = OriginalBand + OutputPosition = (Object, IsisCube, Group, BandBin) + Translation = (*, *) +End_Group +End diff --git a/isis/src/dawn/apps/dawnvir2isis/DawnVirInstrument.trn b/isis/src/dawn/apps/dawnvir2isis/DawnVirInstrument.trn new file mode 100644 index 0000000000..cd1afdea7d --- /dev/null +++ b/isis/src/dawn/apps/dawnvir2isis/DawnVirInstrument.trn @@ -0,0 +1,245 @@ +# +# The group names listed here are the native names used by +# applications to get the foreign names and values +# +# There is only one level of groups the groups are not +# allowed to be nested +# +# The Group names can NOT be repeated. +# +# InputGroup is a comma delimited list of objects and/or +# groups in the foreign label. Traversing this list will +# lead to the correct level to find the foreign keyword. +# +# InputKey is the keyword within the group which holds +# the information. +# +# InputDefault is the value used if there is no value for +# the keyword +# +# Translation is the native and corresponding foreign values. +# Translation may be repeated as needed. +# + +Group = SpacecraftName + Auto + InputKey = INSTRUMENT_HOST_NAME + InputGroup = ROOT + InputPosition = ROOT + OutputName = SpacecraftName + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (DAWN, "DAWN") +End_Group + +Group = MissionPhaseName + Optional + Auto + InputKey = MISSION_PHASE_NAME + InputGroup = ROOT + InputPosition = ROOT + OutputName = MissionPhaseName + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = InstrumentId + Auto + InputKey = INSTRUMENT_ID + InputGroup = ROOT + InputPosition = ROOT + OutputName = InstrumentId + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = SpacecraftClockStartCount + Auto + InputKey = SPACECRAFT_CLOCK_START_COUNT + InputGroup = ROOT + InputPosition = ROOT + OutputName = SpacecraftClockStartCount + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = SpacecraftClockStopCount + Auto + InputKey = SPACECRAFT_CLOCK_STOP_COUNT + InputGroup = ROOT + InputPosition = ROOT + OutputName = SpacecraftClockStopCount + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = StartTime + Auto + InputKey = START_TIME + InputGroup = ROOT + InputPosition = ROOT + OutputName = StartTime + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = StopTime + Auto + InputKey = STOP_TIME + InputGroup = ROOT + InputPosition = ROOT + OutputName = StopTime + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = TargetName + Auto + InputKey = TARGET_NAME + InputGroup = ROOT + InputPosition = ROOT + OutputName = TargetName + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (VESTA, "4 VESTA") + Translation = (CERES, "1 CERES") + Translation = (*, *) +End_Group + +Group = OriginalTargetName + Optional + Auto + InputKey = TARGET_NAME + InputGroup = ROOT + InputPosition = ROOT + OutputName = OriginalTargetName + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = OrbitNumber + Optional + Auto + InputKey = ORBIT_NUMBER + InputGroup = ROOT + InputPosition = ROOT + OutputName = OrbitNumber + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = DataQualityId + Optional + Auto + InputKey = DATA_QUALITY_ID + InputGroup = ROOT + InputPosition = ROOT + OutputName = DataQualityId + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = ChannelId + Auto + InputKey = CHANNEL_ID + InputGroup = ROOT + InputPosition = ROOT + OutputName = ChannelId + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = InstrumentModeId + Auto + InputKey = INSTRUMENT_MODE_ID + InputGroup = ROOT + InputPosition = ROOT + OutputName = InstrumentModeId + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = ScanModeId + Auto + InputKey = SCAN_MODE_ID + InputGroup = ROOT + InputPosition = ROOT + OutputName = ScanModeId + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = ScanParameter + Optional + Auto + InputKey = DAWN:SCAN_PARAMETER + InputGroup = ROOT + InputPosition = ROOT + OutputName = ScanParameter + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = FrameParameter + Auto + InputKey = FRAME_PARAMETER + InputGroup = ROOT + InputPosition = ROOT + OutputName = FrameParameter + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = VirIrStartXPosition + Optional + Auto + InputKey = DAWN:VIR_IR_START_X_POSITION + InputGroup = ROOT + InputPosition = ROOT + OutputName = VirIrStartXPosition + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = VirIrStartYPosition + Optional + Auto + InputKey = DAWN:VIR_IR_START_Y_POSITION + InputGroup = ROOT + InputPosition = ROOT + OutputName = VirIrStartYPosition + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = VirVisStartXPosition + Optional + Auto + InputKey = DAWN:VIR_VIS_START_X_POSITION + InputGroup = ROOT + InputPosition = ROOT + OutputName = VirVisStartXPosition + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = VirVisStartYPosition + Optional + Auto + InputKey = DAWN:VIR_VIS_START_Y_POSITION + InputGroup = ROOT + InputPosition = ROOT + OutputName = VirVisStartYPosition + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group + +Group = MaximumInstrumentTemperature + Optional + Auto + InputKey = MAXIMUM_INSTRUMENT_TEMPERATURE + InputGroup = ROOT + InputPosition = ROOT + OutputName = MaximumInstrumentTemperature + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) +End_Group +End diff --git a/isis/src/dawn/apps/dawnvir2isis/main.cpp b/isis/src/dawn/apps/dawnvir2isis/main.cpp index 6bb1cf88db..3ca99386b1 100644 --- a/isis/src/dawn/apps/dawnvir2isis/main.cpp +++ b/isis/src/dawn/apps/dawnvir2isis/main.cpp @@ -84,24 +84,23 @@ void IsisMain () p.StartProcess (); // Get the directory where the DAWN translation tables are. - PvlGroup dataDir (Preference::Preferences().findGroup("DataDirectory")); - QString transDir = (QString) dataDir["Dawn"] + "/translations/"; + QString transDir = "$ISISROOT/appdata/translations/"; // Create a PVL to store the translated labels in Pvl outLabel; // Translate the BandBin group - FileName transFile (transDir + "dawnvirBandBin.trn"); + FileName transFile (transDir + "DawnVirBandBin.trn"); PvlToPvlTranslationManager bandBinXlater (labelPvl, transFile.expanded()); bandBinXlater.Auto(outLabel); // Translate the Archive group - transFile = transDir + "dawnvirArchive.trn"; + transFile = transDir + "DawnVirArchive.trn"; PvlToPvlTranslationManager archiveXlater (labelPvl, transFile.expanded()); archiveXlater.Auto(outLabel); // Translate the Instrument group - transFile = transDir + "dawnvirInstrument.trn"; + transFile = transDir + "DawnVirInstrument.trn"; PvlToPvlTranslationManager instrumentXlater (labelPvl, transFile.expanded()); instrumentXlater.Auto(outLabel); From bdfd507ad51646d3769bbc0bf26c942e0cb74521 Mon Sep 17 00:00:00 2001 From: Kristin Date: Fri, 6 Mar 2020 13:27:35 -0700 Subject: [PATCH 12/61] Migrates application data from base into source (#3740) * Just hard-code the apollo templates for now * Updated to have templates only search for *.def * Add CMakeLists updates to support lro * Migrate icons and targets and update source code as needed * Migrate remaining base translation files and make any additional needed code changes * Move base serial number to serial numbers directory * Remove unneeded additional serial number trn file --- isis/CMakeLists.txt | 3 +- isis/appdata/images/icons/3d-glasses-icon.png | Bin 0 -> 768 bytes .../appdata/images/icons/HILLBLU_molecola.png | Bin 0 -> 13747 bytes isis/appdata/images/icons/add.png | Bin 0 -> 1055 bytes isis/appdata/images/icons/add_large.png | Bin 0 -> 65896 bytes .../images/icons/applications-system.png | Bin 0 -> 1836 bytes .../images/icons/archive-insert-directory.png | Bin 0 -> 1786 bytes isis/appdata/images/icons/back.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/blink.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/blinkAdvance.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/blinkReverse.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/blinkStart.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/blinkStop.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/button_cancel.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/button_ok.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/camera-photo.png | Bin 0 -> 1201 bytes isis/appdata/images/icons/camera.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/color_line.png | Bin 0 -> 1995 bytes isis/appdata/images/icons/colorize.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/contexthelp.png | Bin 0 -> 2125 bytes isis/appdata/images/icons/copy_bands.png | Bin 0 -> 4254 bytes isis/appdata/images/icons/copy_stretch.png | Bin 0 -> 2084 bytes .../appdata/images/icons/document-save-as.png | Bin 0 -> 2152 bytes isis/appdata/images/icons/document-save.png | Bin 0 -> 1263 bytes isis/appdata/images/icons/down.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/edit.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/editcopy.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/editdelete.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/editpaste.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/exec.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/exit.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/fileclose.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/fileexport.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/filefind.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/filenew.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/fileopen.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/fileprint.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/filesave.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/filesaveas.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/find.png | Bin 0 -> 1232 bytes .../images/icons/folder-activities.png | Bin 0 -> 1685 bytes isis/appdata/images/icons/folder-image.png | Bin 0 -> 1633 bytes isis/appdata/images/icons/folder-orange.png | Bin 0 -> 1505 bytes isis/appdata/images/icons/folder-red.png | Bin 0 -> 1412 bytes isis/appdata/images/icons/folder-remote.png | Bin 0 -> 2336 bytes isis/appdata/images/icons/folder.png | Bin 0 -> 1387 bytes isis/appdata/images/icons/forward.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/frame_query.png | Bin 0 -> 2084 bytes .../images/icons/get-hot-new-stuff.png | Bin 0 -> 1998 bytes isis/appdata/images/icons/global_stretch.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/goto.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/gray.png | Bin 0 -> 4254 bytes isis/appdata/images/icons/grid.png | Bin 0 -> 207 bytes isis/appdata/images/icons/guiClearLog.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/guiExit.png | Bin 0 -> 1119 bytes isis/appdata/images/icons/guiNextHistory.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/guiPrevHistory.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/guiReset.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/guiRun.png | Bin 0 -> 1352 bytes isis/appdata/images/icons/guiSaveLog.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/guiStop.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/help-contents.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/histogram.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/ice.png | Bin 0 -> 2895 bytes isis/appdata/images/icons/info.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/kchart.png | Bin 0 -> 1909 bytes isis/appdata/images/icons/labels.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/license.txt | 11 + .../images/icons/licenses/ATTRIBUTES.txt | 2 + .../images/icons/licenses/lgpl-3.0.txt | 166 ++++++++ isis/appdata/images/icons/linefit.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/link.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/link_valid.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/linked.png | Bin 0 -> 2084 bytes .../images/icons/mActionExportMapServer.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/mActionFileSave.png | Bin 0 -> 2084 bytes .../images/icons/mActionFileSaveAs.png | Bin 0 -> 2084 bytes .../images/icons/mActionHelpContents.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/mActionLabel.png | Bin 0 -> 2084 bytes .../images/icons/mActionMoveVertex.png | Bin 0 -> 918 bytes isis/appdata/images/icons/mActionSelect.png | Bin 0 -> 1086 bytes isis/appdata/images/icons/measure.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/mouse.png | Bin 0 -> 16598 bytes isis/appdata/images/icons/move.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/nasa_enceladus.png | Bin 0 -> 1738 bytes isis/appdata/images/icons/nasa_europa.png | Bin 0 -> 2998 bytes isis/appdata/images/icons/nasa_mars.png | Bin 0 -> 2682 bytes isis/appdata/images/icons/nasa_titan.png | Bin 0 -> 2593 bytes .../images/icons/network-server-database.png | Bin 0 -> 1569 bytes isis/appdata/images/icons/nomenclature.png | Bin 0 -> 2084 bytes .../appdata/images/icons/office-chart-pie.png | Bin 0 -> 2176 bytes isis/appdata/images/icons/ographic.png | Bin 0 -> 930 bytes isis/appdata/images/icons/openList.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/plot.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/plot_clear.png | Bin 0 -> 2173 bytes isis/appdata/images/icons/plot_configure.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/plot_copy.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/plot_grid.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/plot_hideCurves.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/plot_markers.png | Bin 0 -> 1549 bytes .../images/icons/plot_renameLabels.png | Bin 0 -> 380 bytes .../images/icons/plot_renameLables.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/plot_resetscale.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/plot_setScale.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/plot_showCurves.png | Bin 0 -> 2084 bytes .../images/icons/plot_switchBackgrd.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/plot_table.png | Bin 0 -> 2084 bytes .../preferences-desktop-launch-feedback.png | Bin 0 -> 1654 bytes .../images/icons/preferences-plugin.png | Bin 0 -> 1763 bytes isis/appdata/images/icons/qmos_area.png | Bin 0 -> 2454 bytes isis/appdata/images/icons/quickopen.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/qview_NoWarning.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/qview_Warning.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/qview_angle.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/qview_circle.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/qview_ellipse.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/qview_line.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/qview_polygon.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/qview_rectangle.png | Bin 0 -> 2084 bytes .../images/icons/qview_rotated_rectangle.png | Bin 0 -> 2084 bytes .../images/icons/qview_segmentedline.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/rating.png | Bin 0 -> 1504 bytes isis/appdata/images/icons/redDot.png | Bin 0 -> 324 bytes isis/appdata/images/icons/redo.png | Bin 0 -> 2084 bytes .../images/icons/regional_stretch-2.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/reload.png | Bin 0 -> 1793 bytes isis/appdata/images/icons/rgb.png | Bin 0 -> 4254 bytes isis/appdata/images/icons/savechips.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/scatterplot.png | Bin 0 -> 2084 bytes .../images/icons/scatterplotalarming.png | Bin 0 -> 2084 bytes .../images/icons/scatterplotcontour.png | Bin 0 -> 1316 bytes isis/appdata/images/icons/sort.png | Bin 0 -> 1798 bytes isis/appdata/images/icons/spatial_plot.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/spectral_plot.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/statistics.png | Bin 0 -> 203 bytes .../stock_draw-connector-with-arrows.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/stretch_global.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/sunshadow.png | Bin 0 -> 2084 bytes .../images/icons/svg/application-exit.svgz | Bin 0 -> 6543 bytes .../applications-education-miscellaneous.svgz | Bin 0 -> 2710 bytes .../icons/svg/applications-graphics.svgz | Bin 0 -> 29253 bytes .../icons/svg/applications-internet.svgz | Bin 0 -> 202524 bytes .../images/icons/svg/applications-system.svgz | Bin 0 -> 4119 bytes .../images/icons/svg/archive-extract.svgz | Bin 0 -> 6812 bytes .../icons/svg/archive-insert-directory.svgz | Bin 0 -> 115956 bytes isis/appdata/images/icons/svg/back.svgz | Bin 0 -> 4019 bytes .../appdata/images/icons/svg/blockdevice.svgz | Bin 0 -> 3120 bytes .../images/icons/svg/camera-photo.svgz | Bin 0 -> 7877 bytes isis/appdata/images/icons/svg/configure.svgz | Bin 0 -> 4630 bytes isis/appdata/images/icons/svg/contents2.svgz | Bin 0 -> 2540 bytes .../images/icons/svg/dialog-cancel.svgz | Bin 0 -> 1731 bytes .../images/icons/svg/dialog-ok-apply.svgz | Bin 0 -> 3480 bytes .../images/icons/svg/dialog-warning.svgz | Bin 0 -> 4805 bytes .../images/icons/svg/document-edit.svgz | Bin 0 -> 11441 bytes .../images/icons/svg/document-new.svgz | Bin 0 -> 3949 bytes .../images/icons/svg/document-open.svgz | Bin 0 -> 210035 bytes .../images/icons/svg/document-preview.svgz | Bin 0 -> 18613 bytes .../images/icons/svg/document-print.svgz | Bin 0 -> 25273 bytes .../images/icons/svg/document-save-as.svgz | Bin 0 -> 63101 bytes .../images/icons/svg/document-save.svgz | Bin 0 -> 58013 bytes isis/appdata/images/icons/svg/down.svgz | Bin 0 -> 5991 bytes .../images/icons/svg/draw-arrow-back.svgz | Bin 0 -> 2339 bytes .../images/icons/svg/draw-arrow-forward.svgz | Bin 0 -> 2425 bytes .../appdata/images/icons/svg/draw-circle.svgz | Bin 0 -> 1830 bytes .../images/icons/svg/draw-ellipse.svgz | Bin 0 -> 1921 bytes .../images/icons/svg/draw-freehand.svgz | Bin 0 -> 9799 bytes .../images/icons/svg/draw-polyline.svgz | Bin 0 -> 4553 bytes .../images/icons/svg/draw-rectangle.svgz | Bin 0 -> 4204 bytes .../images/icons/svg/draw-triangle3.svgz | Bin 0 -> 1868 bytes isis/appdata/images/icons/svg/edit-copy.svgz | Bin 0 -> 4888 bytes .../appdata/images/icons/svg/edit-delete.svgz | Bin 0 -> 19200 bytes isis/appdata/images/icons/svg/edit-find.svgz | Bin 0 -> 7353 bytes isis/appdata/images/icons/svg/edit-paste.svgz | Bin 0 -> 12987 bytes .../appdata/images/icons/svg/edit-select.svgz | Bin 0 -> 4469 bytes isis/appdata/images/icons/svg/fileclose.svgz | Bin 0 -> 3505 bytes isis/appdata/images/icons/svg/fill-color.svgz | Bin 0 -> 10344 bytes .../images/icons/svg/folder-activities.svgz | Bin 0 -> 94683 bytes .../images/icons/svg/folder-image.svgz | Bin 0 -> 388114 bytes .../images/icons/svg/folder-orange.svgz | Bin 0 -> 88460 bytes isis/appdata/images/icons/svg/folder-red.svgz | Bin 0 -> 912335 bytes .../images/icons/svg/folder-remote.svgz | Bin 0 -> 282625 bytes isis/appdata/images/icons/svg/folder.svgz | Bin 0 -> 88357 bytes isis/appdata/images/icons/svg/forward.svgz | Bin 0 -> 5355 bytes .../images/icons/svg/get-hot-new-stuff.svgz | Bin 0 -> 6598 bytes .../images/icons/svg/help-contents.svgz | Bin 0 -> 768880 bytes .../appdata/images/icons/svg/input-mouse.svgz | Bin 0 -> 6430 bytes isis/appdata/images/icons/svg/kchart.svgz | Bin 0 -> 18048 bytes .../images/icons/svg/layer-visible-on.svgz | Bin 0 -> 10515 bytes isis/appdata/images/icons/svg/list-add.svgz | Bin 0 -> 3730 bytes .../images/icons/svg/mail-attachment.svgz | Bin 0 -> 1419 bytes .../images/icons/svg/mail-reply-sender.svgz | Bin 0 -> 8307 bytes .../appdata/images/icons/svg/mail-tagged.svgz | Bin 0 -> 6343 bytes .../icons/svg/media-playback-start.svgz | Bin 0 -> 1916 bytes .../images/icons/svg/media-playback-stop.svgz | Bin 0 -> 1991 bytes .../images/icons/svg/media-seek-backward.svgz | Bin 0 -> 1991 bytes .../images/icons/svg/media-seek-forward.svgz | Bin 0 -> 1960 bytes .../images/icons/svg/network-connect.svgz | Bin 0 -> 7341 bytes .../images/icons/svg/network-disconnect.svgz | Bin 0 -> 5582 bytes .../icons/svg/network-server-database.svgz | Bin 0 -> 117632 bytes .../images/icons/svg/office-chart-line.svgz | Bin 0 -> 15608 bytes .../images/icons/svg/office-chart-pie.svgz | Bin 0 -> 14348 bytes .../preferences-desktop-launch-feedback.svgz | Bin 0 -> 6894 bytes .../images/icons/svg/preferences-plugin.svgz | Bin 0 -> 5244 bytes .../images/icons/svg/process-stop.svgz | Bin 0 -> 4051 bytes .../images/icons/svg/project-open.svgz | Bin 0 -> 282018 bytes isis/appdata/images/icons/svg/quickopen.svgz | Bin 0 -> 7549 bytes isis/appdata/images/icons/svg/rating.svgz | Bin 0 -> 7759 bytes isis/appdata/images/icons/svg/reload.svgz | Bin 0 -> 4127 bytes .../appdata/images/icons/svg/system-help.svgz | Bin 0 -> 2545 bytes .../images/icons/svg/transform-crop.svgz | Bin 0 -> 4263 bytes .../images/icons/svg/transform-move.svgz | Bin 0 -> 9541 bytes isis/appdata/images/icons/svg/up.svgz | Bin 0 -> 5889 bytes .../appdata/images/icons/svg/user-online.svgz | Bin 0 -> 1640 bytes isis/appdata/images/icons/svg/view-close.svgz | Bin 0 -> 8022 bytes .../images/icons/svg/view-form-table.svgz | Bin 0 -> 6567 bytes .../images/icons/svg/view-fullscreen.svgz | Bin 0 -> 42185 bytes .../images/icons/svg/view-list-text.svgz | Bin 0 -> 8317 bytes .../images/icons/svg/view-list-tree.svgz | Bin 0 -> 8564 bytes .../svg/view-object-histogram-linear.svgz | Bin 0 -> 4537 bytes .../images/icons/svg/view-preview.svgz | Bin 0 -> 17364 bytes .../images/icons/svg/view-sort-ascending.svgz | Bin 0 -> 2457 bytes .../icons/svg/view-split-top-bottom.svgz | Bin 0 -> 8172 bytes .../images/icons/svg/view-statistics.svgz | Bin 0 -> 4757 bytes .../icons/svg/view-web-browser-dom-tree.svgz | Bin 0 -> 27886 bytes .../images/icons/svg/weather-clear-night.svgz | Bin 0 -> 536104 bytes .../images/icons/svg/weather-clear.svgz | Bin 0 -> 12109 bytes .../icons/svg/weather-freezing-rain.svgz | Bin 0 -> 101091 bytes .../images/icons/svg/window-duplicate.svgz | Bin 0 -> 20834 bytes isis/appdata/images/icons/svg/window-new.svgz | Bin 0 -> 9263 bytes isis/appdata/images/icons/svg/zoom-in.svgz | Bin 0 -> 15797 bytes .../images/icons/svg/zoom-original.svgz | Bin 0 -> 15775 bytes isis/appdata/images/icons/svg/zoom-out.svgz | Bin 0 -> 15851 bytes .../appdata/images/icons/svg/zoom-select.svgz | Bin 0 -> 32047 bytes isis/appdata/images/icons/undo.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/unlinked.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/up.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/view-catalog.png | Bin 0 -> 2063 bytes isis/appdata/images/icons/view-preview.png | Bin 0 -> 1462 bytes .../icons/view-web-browser-dom-tree.png | Bin 0 -> 1627 bytes isis/appdata/images/icons/view_text.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/view_tree.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/viewmag+.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/viewmag-.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/viewmag.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/viewmag1.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/viewmagfit.png | Bin 0 -> 2084 bytes .../images/icons/weather-clear-night.png | Bin 0 -> 1126 bytes .../images/icons/window_fullscreen.png | Bin 0 -> 2084 bytes isis/appdata/images/icons/window_list.png | Bin 0 -> 975 bytes isis/appdata/images/icons/window_new.png | Bin 0 -> 2084 bytes isis/appdata/images/targets/DELETEME.png | 0 isis/appdata/images/targets/DELETEME.txt | 0 isis/appdata/images/targets/ReadMe.txt | 5 + .../images/targets/nasa_enceladus_saturn.png | Bin 0 -> 269682 bytes .../images/targets/nasa_europa_large.png | Bin 0 -> 264082 bytes .../images/targets/nasa_mars_large.png | Bin 0 -> 322531 bytes .../images/targets/nasa_moon_large.png | Bin 0 -> 175728 bytes .../images/targets/nasa_titan_large.png | Bin 0 -> 125488 bytes isis/appdata/serialnumbers/FAKE.trn | 0 isis/appdata/serialnumbers/SerialNumber.trn | 30 ++ .../serialnumbers/aerialphotoSerialNumber.trn | 50 +++ isis/appdata/templates/DELETEME.pvl | 0 isis/appdata/translations/NaifErrors.trn | 23 ++ isis/appdata/translations/README.TXT | 5 + isis/appdata/translations/geotiff/26910.trn | 106 ++++++ isis/appdata/translations/geotiff/26911.trn | 106 ++++++ isis/appdata/translations/geotiff/26912.trn | 106 ++++++ isis/appdata/translations/geotiff/26913.trn | 106 ++++++ isis/appdata/translations/geotiff/26914.trn | 106 ++++++ isis/appdata/translations/geotiff/26915.trn | 106 ++++++ isis/appdata/translations/geotiff/26916.trn | 106 ++++++ isis/appdata/translations/geotiff/26917.trn | 106 ++++++ isis/appdata/translations/geotiff/26918.trn | 106 ++++++ isis/appdata/translations/geotiff/26919.trn | 106 ++++++ isis/appdata/translations/isis2bandbin.trn | 44 +++ isis/appdata/translations/isis2instrument.trn | 101 +++++ isis/appdata/translations/pds4Export.trn | 28 ++ .../translations/pds4ExportArray2DImage.trn | 57 +++ .../translations/pds4ExportArray3DImage.trn | 69 ++++ .../pds4ExportArray3DSpectrum.trn | 68 ++++ .../pds4ExportArray3DSpectrumBinSet.trn | 68 ++++ .../pds4ExportArray3DSpectrumUniform.trn | 77 ++++ .../translations/pds4ExportBandBin.trn | 205 ++++++++++ .../translations/pds4ExportBandBinImage.trn | 177 +++++++++ .../pds4ExportBandBinSpectrum.trn | 172 +++++++++ .../pds4ExportBandBinSpectrumBinSet.trn | 107 ++++++ .../pds4ExportBandBinSpectrumUniform.trn | 146 +++++++ .../pds4ExportDisplaySettings.trn | 72 ++++ .../pds4ExportEquirectangular.trn | 267 +++++++++++++ .../translations/pds4ExportFileArea.trn | 20 + .../pds4ExportIdentificationArea.trn | 55 +++ .../translations/pds4ExportInstrument.trn | 90 +++++ .../pds4ExportLambertConformal.trn | 249 ++++++++++++ .../pds4ExportObliqueMercator.trn | 255 +++++++++++++ .../translations/pds4ExportOrthographic.trn | 248 ++++++++++++ .../pds4ExportPolarStereographic.trn | 260 +++++++++++++ .../translations/pds4ExportPolyconic.trn | 248 ++++++++++++ .../pds4ExportSimpleCylindrical.trn | 248 ++++++++++++ .../translations/pds4ExportSinusoidal.trn | 248 ++++++++++++ .../pds4ExportTargetFromInstrument.trn | 166 ++++++++ .../pds4ExportTargetFromMapping.trn | 164 ++++++++ .../pds4ExportTransverseMercator.trn | 248 ++++++++++++ isis/appdata/translations/pds4ExportUnits.pvl | 163 ++++++++ .../translations/pdsCombinedSpectrum.trn | 223 +++++++++++ .../pdsExportAllMapping.trn} | 0 .../translations/pdsExportAllMapping.typ | 43 +++ .../translations/pdsExportEquirectangular.trn | 251 +++++++++++++ .../translations/pdsExportImageImage.trn | 63 ++++ .../translations/pdsExportImageImage.typ | 7 + .../pdsExportImageImagePixel16.typ | 8 + .../pdsExportImageImagePixel32.typ | 8 + .../pdsExportImageImagePixel8.typ | 8 + .../translations/pdsExportImageJP2.trn | 63 ++++ .../translations/pdsExportImageJP2.typ | 5 + .../pdsExportLambertAzimuthalEqualArea.trn | 202 ++++++++++ .../pdsExportLambertConformal.trn | 251 +++++++++++++ .../translations/pdsExportMercator.trn | 251 +++++++++++++ .../pdsExportObliqueCylindrical.trn | 313 +++++++++++++++ .../translations/pdsExportOrthographic.trn | 251 +++++++++++++ .../pdsExportPointPerspective.trn | 261 +++++++++++++ .../pdsExportPolarStereographic.trn | 251 +++++++++++++ .../translations/pdsExportRobinson.trn | 263 +++++++++++++ .../appdata/translations/pdsExportRootGen.typ | 19 + .../pdsExportSimpleCylindrical.trn | 253 +++++++++++++ .../translations/pdsExportSinusoidal.trn | 263 +++++++++++++ isis/appdata/translations/pdsExportTarget.trn | 131 +++++++ .../pdsExportTransverseMercator.trn | 253 +++++++++++++ isis/appdata/translations/pdsImage.trn | 355 ++++++++++++++++++ isis/appdata/translations/pdsImageArchive.trn | 176 +++++++++ isis/appdata/translations/pdsImageBandBin.trn | 96 +++++ .../translations/pdsImageProjection.trn | 288 ++++++++++++++ .../translations/pdsImportEquirectangular.trn | 28 ++ .../pdsImportLambertAzimuthalEqualArea.trn | 31 ++ .../pdsImportLambertConformal.trn | 56 +++ .../translations/pdsImportMercator.trn | 28 ++ .../pdsImportObliqueCylindrical.trn | 84 +++++ .../translations/pdsImportOrthographic.trn | 28 ++ .../pdsImportPointPerspective.trn | 45 +++ .../pdsImportPolarStereographic.trn | 28 ++ .../translations/pdsImportRobinson.trn | 16 + .../pdsImportSimpleCylindrical.trn | 14 + .../translations/pdsImportSinusoidal.trn | 16 + .../pdsImportTransverseMercator.trn | 43 +++ isis/appdata/translations/pdsL0.trn | 219 +++++++++++ isis/appdata/translations/pdsLabelExport.trn | 121 ++++++ isis/appdata/translations/pdsLoc.trn | 220 +++++++++++ isis/appdata/translations/pdsObs.trn | 219 +++++++++++ .../pdsProjectionLineSampToXY.def | 118 ++++++ isis/appdata/translations/pdsQube.trn | 229 +++++++++++ .../translations/pdsQubeProjection.trn | 235 ++++++++++++ isis/appdata/translations/pdsRdn.trn | 219 +++++++++++ isis/appdata/translations/pdsSpectralQube.trn | 229 +++++++++++ .../pdsSpectralQubeProjection.trn | 219 +++++++++++ isis/appdata/translations/xmlExample.trn | 241 ++++++++++++ isis/appdata/translations/xmlImage.trn | 112 ++++++ isis/src/base/apps/findrx/main.cpp | 2 +- .../apps/isisminer/PdsTableFormatStrategy.cpp | 2 +- isis/src/base/objs/Cube/Cube.cpp | 2 +- isis/src/base/objs/Gruen/Gruen.cpp | 2 +- isis/src/base/objs/NaifStatus/NaifStatus.cpp | 2 +- .../ProcessExportPds/ProcessExportPds.cpp | 46 +-- .../ProcessExportPds4/ProcessExportPds4.cpp | 22 +- .../ProcessImportPds/ProcessImportPds.cpp | 6 +- .../base/objs/SerialNumber/SerialNumber.cpp | 7 +- .../base/objs/TiffImporter/TiffImporter.cpp | 2 +- .../apps/cneteditor/CnetEditorWindow.cpp | 12 +- isis/src/qisis/apps/ipce/IpceMainWindow.cpp | 2 +- isis/src/qisis/apps/qtie/QtieTool.cpp | 4 +- isis/src/qisis/objs/BlinkTool/BlinkTool.cpp | 4 +- .../AbstractFilterSelector.cpp | 2 +- .../CnetEditorWidget/CnetEditorWidget.cpp | 6 +- .../objs/CnetEditorWidget/FilterGroup.cpp | 3 +- .../objs/CnetEditorWidget/FilterWidget.cpp | 2 +- .../ControlMeasureEditWidget.cpp | 22 +- .../ControlPointEdit/ControlPointEdit.cpp | 22 +- .../objs/CubePlotCurve/CubePlotCurve.cpp | 2 +- isis/src/qisis/objs/Directory/Directory.cpp | 8 +- .../JigsawSetupDialog/JigsawSetupDialog.cpp | 10 +- .../objs/MdiCubeViewport/MdiCubeViewport.cpp | 6 +- .../MosaicMainWindow/MosaicMainWindow.cpp | 4 +- .../MosaicSceneWidget/MosaicSceneWidget.cpp | 13 +- .../objs/MosaicSceneWidget/MosaicTool.cpp | 2 +- isis/src/qisis/objs/PlotWindow/PlotWindow.cpp | 32 +- .../qisis/objs/ProjectItem/ProjectItem.cpp | 56 +-- .../ProjectItemModel/ProjectItemModel.cpp | 8 +- isis/src/qisis/objs/QnetTools/QnetTool.cpp | 2 +- .../ScatterPlotTool/ScatterPlotWindow.cpp | 10 +- .../SensorInfoWidget/SensorInfoWidget.cpp | 2 +- .../TargetInfoWidget/TargetInfoWidget.cpp | 20 +- isis/src/qisis/objs/Tool/Tool.cpp | 2 +- .../objs/WarningWidget/WarningWidget.cpp | 2 +- 391 files changed, 13205 insertions(+), 175 deletions(-) create mode 100644 isis/appdata/images/icons/3d-glasses-icon.png create mode 100644 isis/appdata/images/icons/HILLBLU_molecola.png create mode 100644 isis/appdata/images/icons/add.png create mode 100644 isis/appdata/images/icons/add_large.png create mode 100644 isis/appdata/images/icons/applications-system.png create mode 100644 isis/appdata/images/icons/archive-insert-directory.png create mode 100644 isis/appdata/images/icons/back.png create mode 100644 isis/appdata/images/icons/blink.png create mode 100644 isis/appdata/images/icons/blinkAdvance.png create mode 100644 isis/appdata/images/icons/blinkReverse.png create mode 100644 isis/appdata/images/icons/blinkStart.png create mode 100644 isis/appdata/images/icons/blinkStop.png create mode 100644 isis/appdata/images/icons/button_cancel.png create mode 100644 isis/appdata/images/icons/button_ok.png create mode 100644 isis/appdata/images/icons/camera-photo.png create mode 100644 isis/appdata/images/icons/camera.png create mode 100644 isis/appdata/images/icons/color_line.png create mode 100644 isis/appdata/images/icons/colorize.png create mode 100644 isis/appdata/images/icons/contexthelp.png create mode 100644 isis/appdata/images/icons/copy_bands.png create mode 100644 isis/appdata/images/icons/copy_stretch.png create mode 100644 isis/appdata/images/icons/document-save-as.png create mode 100644 isis/appdata/images/icons/document-save.png create mode 100644 isis/appdata/images/icons/down.png create mode 100644 isis/appdata/images/icons/edit.png create mode 100644 isis/appdata/images/icons/editcopy.png create mode 100644 isis/appdata/images/icons/editdelete.png create mode 100644 isis/appdata/images/icons/editpaste.png create mode 100644 isis/appdata/images/icons/exec.png create mode 100644 isis/appdata/images/icons/exit.png create mode 100644 isis/appdata/images/icons/fileclose.png create mode 100644 isis/appdata/images/icons/fileexport.png create mode 100644 isis/appdata/images/icons/filefind.png create mode 100644 isis/appdata/images/icons/filenew.png create mode 100644 isis/appdata/images/icons/fileopen.png create mode 100644 isis/appdata/images/icons/fileprint.png create mode 100644 isis/appdata/images/icons/filesave.png create mode 100644 isis/appdata/images/icons/filesaveas.png create mode 100644 isis/appdata/images/icons/find.png create mode 100644 isis/appdata/images/icons/folder-activities.png create mode 100644 isis/appdata/images/icons/folder-image.png create mode 100644 isis/appdata/images/icons/folder-orange.png create mode 100644 isis/appdata/images/icons/folder-red.png create mode 100644 isis/appdata/images/icons/folder-remote.png create mode 100644 isis/appdata/images/icons/folder.png create mode 100644 isis/appdata/images/icons/forward.png create mode 100644 isis/appdata/images/icons/frame_query.png create mode 100644 isis/appdata/images/icons/get-hot-new-stuff.png create mode 100644 isis/appdata/images/icons/global_stretch.png create mode 100644 isis/appdata/images/icons/goto.png create mode 100644 isis/appdata/images/icons/gray.png create mode 100644 isis/appdata/images/icons/grid.png create mode 100644 isis/appdata/images/icons/guiClearLog.png create mode 100644 isis/appdata/images/icons/guiExit.png create mode 100644 isis/appdata/images/icons/guiNextHistory.png create mode 100644 isis/appdata/images/icons/guiPrevHistory.png create mode 100644 isis/appdata/images/icons/guiReset.png create mode 100644 isis/appdata/images/icons/guiRun.png create mode 100644 isis/appdata/images/icons/guiSaveLog.png create mode 100644 isis/appdata/images/icons/guiStop.png create mode 100644 isis/appdata/images/icons/help-contents.png create mode 100644 isis/appdata/images/icons/histogram.png create mode 100644 isis/appdata/images/icons/ice.png create mode 100644 isis/appdata/images/icons/info.png create mode 100644 isis/appdata/images/icons/kchart.png create mode 100644 isis/appdata/images/icons/labels.png create mode 100644 isis/appdata/images/icons/license.txt create mode 100644 isis/appdata/images/icons/licenses/ATTRIBUTES.txt create mode 100644 isis/appdata/images/icons/licenses/lgpl-3.0.txt create mode 100644 isis/appdata/images/icons/linefit.png create mode 100644 isis/appdata/images/icons/link.png create mode 100644 isis/appdata/images/icons/link_valid.png create mode 100644 isis/appdata/images/icons/linked.png create mode 100644 isis/appdata/images/icons/mActionExportMapServer.png create mode 100644 isis/appdata/images/icons/mActionFileSave.png create mode 100644 isis/appdata/images/icons/mActionFileSaveAs.png create mode 100644 isis/appdata/images/icons/mActionHelpContents.png create mode 100644 isis/appdata/images/icons/mActionLabel.png create mode 100644 isis/appdata/images/icons/mActionMoveVertex.png create mode 100644 isis/appdata/images/icons/mActionSelect.png create mode 100644 isis/appdata/images/icons/measure.png create mode 100644 isis/appdata/images/icons/mouse.png create mode 100644 isis/appdata/images/icons/move.png create mode 100644 isis/appdata/images/icons/nasa_enceladus.png create mode 100644 isis/appdata/images/icons/nasa_europa.png create mode 100644 isis/appdata/images/icons/nasa_mars.png create mode 100644 isis/appdata/images/icons/nasa_titan.png create mode 100644 isis/appdata/images/icons/network-server-database.png create mode 100644 isis/appdata/images/icons/nomenclature.png create mode 100644 isis/appdata/images/icons/office-chart-pie.png create mode 100644 isis/appdata/images/icons/ographic.png create mode 100644 isis/appdata/images/icons/openList.png create mode 100644 isis/appdata/images/icons/plot.png create mode 100644 isis/appdata/images/icons/plot_clear.png create mode 100644 isis/appdata/images/icons/plot_configure.png create mode 100644 isis/appdata/images/icons/plot_copy.png create mode 100644 isis/appdata/images/icons/plot_grid.png create mode 100644 isis/appdata/images/icons/plot_hideCurves.png create mode 100644 isis/appdata/images/icons/plot_markers.png create mode 100644 isis/appdata/images/icons/plot_renameLabels.png create mode 100644 isis/appdata/images/icons/plot_renameLables.png create mode 100644 isis/appdata/images/icons/plot_resetscale.png create mode 100644 isis/appdata/images/icons/plot_setScale.png create mode 100644 isis/appdata/images/icons/plot_showCurves.png create mode 100644 isis/appdata/images/icons/plot_switchBackgrd.png create mode 100644 isis/appdata/images/icons/plot_table.png create mode 100644 isis/appdata/images/icons/preferences-desktop-launch-feedback.png create mode 100644 isis/appdata/images/icons/preferences-plugin.png create mode 100644 isis/appdata/images/icons/qmos_area.png create mode 100644 isis/appdata/images/icons/quickopen.png create mode 100644 isis/appdata/images/icons/qview_NoWarning.png create mode 100644 isis/appdata/images/icons/qview_Warning.png create mode 100644 isis/appdata/images/icons/qview_angle.png create mode 100644 isis/appdata/images/icons/qview_circle.png create mode 100644 isis/appdata/images/icons/qview_ellipse.png create mode 100644 isis/appdata/images/icons/qview_line.png create mode 100644 isis/appdata/images/icons/qview_polygon.png create mode 100644 isis/appdata/images/icons/qview_rectangle.png create mode 100644 isis/appdata/images/icons/qview_rotated_rectangle.png create mode 100644 isis/appdata/images/icons/qview_segmentedline.png create mode 100644 isis/appdata/images/icons/rating.png create mode 100644 isis/appdata/images/icons/redDot.png create mode 100644 isis/appdata/images/icons/redo.png create mode 100644 isis/appdata/images/icons/regional_stretch-2.png create mode 100644 isis/appdata/images/icons/reload.png create mode 100644 isis/appdata/images/icons/rgb.png create mode 100644 isis/appdata/images/icons/savechips.png create mode 100644 isis/appdata/images/icons/scatterplot.png create mode 100644 isis/appdata/images/icons/scatterplotalarming.png create mode 100644 isis/appdata/images/icons/scatterplotcontour.png create mode 100644 isis/appdata/images/icons/sort.png create mode 100644 isis/appdata/images/icons/spatial_plot.png create mode 100644 isis/appdata/images/icons/spectral_plot.png create mode 100644 isis/appdata/images/icons/statistics.png create mode 100644 isis/appdata/images/icons/stock_draw-connector-with-arrows.png create mode 100644 isis/appdata/images/icons/stretch_global.png create mode 100644 isis/appdata/images/icons/sunshadow.png create mode 100644 isis/appdata/images/icons/svg/application-exit.svgz create mode 100644 isis/appdata/images/icons/svg/applications-education-miscellaneous.svgz create mode 100644 isis/appdata/images/icons/svg/applications-graphics.svgz create mode 100644 isis/appdata/images/icons/svg/applications-internet.svgz create mode 100644 isis/appdata/images/icons/svg/applications-system.svgz create mode 100644 isis/appdata/images/icons/svg/archive-extract.svgz create mode 100755 isis/appdata/images/icons/svg/archive-insert-directory.svgz create mode 100644 isis/appdata/images/icons/svg/back.svgz create mode 100644 isis/appdata/images/icons/svg/blockdevice.svgz create mode 100644 isis/appdata/images/icons/svg/camera-photo.svgz create mode 100644 isis/appdata/images/icons/svg/configure.svgz create mode 100644 isis/appdata/images/icons/svg/contents2.svgz create mode 100644 isis/appdata/images/icons/svg/dialog-cancel.svgz create mode 100644 isis/appdata/images/icons/svg/dialog-ok-apply.svgz create mode 100644 isis/appdata/images/icons/svg/dialog-warning.svgz create mode 100644 isis/appdata/images/icons/svg/document-edit.svgz create mode 100644 isis/appdata/images/icons/svg/document-new.svgz create mode 100644 isis/appdata/images/icons/svg/document-open.svgz create mode 100644 isis/appdata/images/icons/svg/document-preview.svgz create mode 100644 isis/appdata/images/icons/svg/document-print.svgz create mode 100644 isis/appdata/images/icons/svg/document-save-as.svgz create mode 100644 isis/appdata/images/icons/svg/document-save.svgz create mode 100644 isis/appdata/images/icons/svg/down.svgz create mode 100644 isis/appdata/images/icons/svg/draw-arrow-back.svgz create mode 100644 isis/appdata/images/icons/svg/draw-arrow-forward.svgz create mode 100644 isis/appdata/images/icons/svg/draw-circle.svgz create mode 100644 isis/appdata/images/icons/svg/draw-ellipse.svgz create mode 100644 isis/appdata/images/icons/svg/draw-freehand.svgz create mode 100644 isis/appdata/images/icons/svg/draw-polyline.svgz create mode 100644 isis/appdata/images/icons/svg/draw-rectangle.svgz create mode 100644 isis/appdata/images/icons/svg/draw-triangle3.svgz create mode 100644 isis/appdata/images/icons/svg/edit-copy.svgz create mode 100644 isis/appdata/images/icons/svg/edit-delete.svgz create mode 100644 isis/appdata/images/icons/svg/edit-find.svgz create mode 100644 isis/appdata/images/icons/svg/edit-paste.svgz create mode 100644 isis/appdata/images/icons/svg/edit-select.svgz create mode 100644 isis/appdata/images/icons/svg/fileclose.svgz create mode 100644 isis/appdata/images/icons/svg/fill-color.svgz create mode 100644 isis/appdata/images/icons/svg/folder-activities.svgz create mode 100644 isis/appdata/images/icons/svg/folder-image.svgz create mode 100644 isis/appdata/images/icons/svg/folder-orange.svgz create mode 100644 isis/appdata/images/icons/svg/folder-red.svgz create mode 100644 isis/appdata/images/icons/svg/folder-remote.svgz create mode 100644 isis/appdata/images/icons/svg/folder.svgz create mode 100644 isis/appdata/images/icons/svg/forward.svgz create mode 100644 isis/appdata/images/icons/svg/get-hot-new-stuff.svgz create mode 100644 isis/appdata/images/icons/svg/help-contents.svgz create mode 100644 isis/appdata/images/icons/svg/input-mouse.svgz create mode 100644 isis/appdata/images/icons/svg/kchart.svgz create mode 100644 isis/appdata/images/icons/svg/layer-visible-on.svgz create mode 100644 isis/appdata/images/icons/svg/list-add.svgz create mode 100644 isis/appdata/images/icons/svg/mail-attachment.svgz create mode 100644 isis/appdata/images/icons/svg/mail-reply-sender.svgz create mode 100644 isis/appdata/images/icons/svg/mail-tagged.svgz create mode 100644 isis/appdata/images/icons/svg/media-playback-start.svgz create mode 100644 isis/appdata/images/icons/svg/media-playback-stop.svgz create mode 100644 isis/appdata/images/icons/svg/media-seek-backward.svgz create mode 100644 isis/appdata/images/icons/svg/media-seek-forward.svgz create mode 100644 isis/appdata/images/icons/svg/network-connect.svgz create mode 100644 isis/appdata/images/icons/svg/network-disconnect.svgz create mode 100644 isis/appdata/images/icons/svg/network-server-database.svgz create mode 100644 isis/appdata/images/icons/svg/office-chart-line.svgz create mode 100755 isis/appdata/images/icons/svg/office-chart-pie.svgz create mode 100644 isis/appdata/images/icons/svg/preferences-desktop-launch-feedback.svgz create mode 100644 isis/appdata/images/icons/svg/preferences-plugin.svgz create mode 100644 isis/appdata/images/icons/svg/process-stop.svgz create mode 100644 isis/appdata/images/icons/svg/project-open.svgz create mode 100644 isis/appdata/images/icons/svg/quickopen.svgz create mode 100644 isis/appdata/images/icons/svg/rating.svgz create mode 100644 isis/appdata/images/icons/svg/reload.svgz create mode 100644 isis/appdata/images/icons/svg/system-help.svgz create mode 100644 isis/appdata/images/icons/svg/transform-crop.svgz create mode 100644 isis/appdata/images/icons/svg/transform-move.svgz create mode 100644 isis/appdata/images/icons/svg/up.svgz create mode 100644 isis/appdata/images/icons/svg/user-online.svgz create mode 100644 isis/appdata/images/icons/svg/view-close.svgz create mode 100644 isis/appdata/images/icons/svg/view-form-table.svgz create mode 100644 isis/appdata/images/icons/svg/view-fullscreen.svgz create mode 100644 isis/appdata/images/icons/svg/view-list-text.svgz create mode 100644 isis/appdata/images/icons/svg/view-list-tree.svgz create mode 100644 isis/appdata/images/icons/svg/view-object-histogram-linear.svgz create mode 100644 isis/appdata/images/icons/svg/view-preview.svgz create mode 100644 isis/appdata/images/icons/svg/view-sort-ascending.svgz create mode 100644 isis/appdata/images/icons/svg/view-split-top-bottom.svgz create mode 100644 isis/appdata/images/icons/svg/view-statistics.svgz create mode 100644 isis/appdata/images/icons/svg/view-web-browser-dom-tree.svgz create mode 100644 isis/appdata/images/icons/svg/weather-clear-night.svgz create mode 100644 isis/appdata/images/icons/svg/weather-clear.svgz create mode 100644 isis/appdata/images/icons/svg/weather-freezing-rain.svgz create mode 100644 isis/appdata/images/icons/svg/window-duplicate.svgz create mode 100644 isis/appdata/images/icons/svg/window-new.svgz create mode 100644 isis/appdata/images/icons/svg/zoom-in.svgz create mode 100644 isis/appdata/images/icons/svg/zoom-original.svgz create mode 100644 isis/appdata/images/icons/svg/zoom-out.svgz create mode 100644 isis/appdata/images/icons/svg/zoom-select.svgz create mode 100644 isis/appdata/images/icons/undo.png create mode 100644 isis/appdata/images/icons/unlinked.png create mode 100644 isis/appdata/images/icons/up.png create mode 100644 isis/appdata/images/icons/view-catalog.png create mode 100644 isis/appdata/images/icons/view-preview.png create mode 100644 isis/appdata/images/icons/view-web-browser-dom-tree.png create mode 100644 isis/appdata/images/icons/view_text.png create mode 100644 isis/appdata/images/icons/view_tree.png create mode 100644 isis/appdata/images/icons/viewmag+.png create mode 100644 isis/appdata/images/icons/viewmag-.png create mode 100644 isis/appdata/images/icons/viewmag.png create mode 100644 isis/appdata/images/icons/viewmag1.png create mode 100644 isis/appdata/images/icons/viewmagfit.png create mode 100644 isis/appdata/images/icons/weather-clear-night.png create mode 100644 isis/appdata/images/icons/window_fullscreen.png create mode 100644 isis/appdata/images/icons/window_list.png create mode 100644 isis/appdata/images/icons/window_new.png delete mode 100644 isis/appdata/images/targets/DELETEME.png delete mode 100644 isis/appdata/images/targets/DELETEME.txt create mode 100644 isis/appdata/images/targets/ReadMe.txt create mode 100644 isis/appdata/images/targets/nasa_enceladus_saturn.png create mode 100644 isis/appdata/images/targets/nasa_europa_large.png create mode 100644 isis/appdata/images/targets/nasa_mars_large.png create mode 100644 isis/appdata/images/targets/nasa_moon_large.png create mode 100644 isis/appdata/images/targets/nasa_titan_large.png delete mode 100644 isis/appdata/serialnumbers/FAKE.trn create mode 100644 isis/appdata/serialnumbers/SerialNumber.trn create mode 100644 isis/appdata/serialnumbers/aerialphotoSerialNumber.trn delete mode 100644 isis/appdata/templates/DELETEME.pvl create mode 100644 isis/appdata/translations/NaifErrors.trn create mode 100644 isis/appdata/translations/README.TXT create mode 100644 isis/appdata/translations/geotiff/26910.trn create mode 100644 isis/appdata/translations/geotiff/26911.trn create mode 100644 isis/appdata/translations/geotiff/26912.trn create mode 100644 isis/appdata/translations/geotiff/26913.trn create mode 100644 isis/appdata/translations/geotiff/26914.trn create mode 100644 isis/appdata/translations/geotiff/26915.trn create mode 100644 isis/appdata/translations/geotiff/26916.trn create mode 100644 isis/appdata/translations/geotiff/26917.trn create mode 100644 isis/appdata/translations/geotiff/26918.trn create mode 100644 isis/appdata/translations/geotiff/26919.trn create mode 100644 isis/appdata/translations/isis2bandbin.trn create mode 100644 isis/appdata/translations/isis2instrument.trn create mode 100644 isis/appdata/translations/pds4Export.trn create mode 100644 isis/appdata/translations/pds4ExportArray2DImage.trn create mode 100644 isis/appdata/translations/pds4ExportArray3DImage.trn create mode 100644 isis/appdata/translations/pds4ExportArray3DSpectrum.trn create mode 100644 isis/appdata/translations/pds4ExportArray3DSpectrumBinSet.trn create mode 100644 isis/appdata/translations/pds4ExportArray3DSpectrumUniform.trn create mode 100644 isis/appdata/translations/pds4ExportBandBin.trn create mode 100644 isis/appdata/translations/pds4ExportBandBinImage.trn create mode 100644 isis/appdata/translations/pds4ExportBandBinSpectrum.trn create mode 100644 isis/appdata/translations/pds4ExportBandBinSpectrumBinSet.trn create mode 100644 isis/appdata/translations/pds4ExportBandBinSpectrumUniform.trn create mode 100644 isis/appdata/translations/pds4ExportDisplaySettings.trn create mode 100644 isis/appdata/translations/pds4ExportEquirectangular.trn create mode 100644 isis/appdata/translations/pds4ExportFileArea.trn create mode 100644 isis/appdata/translations/pds4ExportIdentificationArea.trn create mode 100644 isis/appdata/translations/pds4ExportInstrument.trn create mode 100644 isis/appdata/translations/pds4ExportLambertConformal.trn create mode 100644 isis/appdata/translations/pds4ExportObliqueMercator.trn create mode 100644 isis/appdata/translations/pds4ExportOrthographic.trn create mode 100644 isis/appdata/translations/pds4ExportPolarStereographic.trn create mode 100644 isis/appdata/translations/pds4ExportPolyconic.trn create mode 100644 isis/appdata/translations/pds4ExportSimpleCylindrical.trn create mode 100644 isis/appdata/translations/pds4ExportSinusoidal.trn create mode 100644 isis/appdata/translations/pds4ExportTargetFromInstrument.trn create mode 100644 isis/appdata/translations/pds4ExportTargetFromMapping.trn create mode 100644 isis/appdata/translations/pds4ExportTransverseMercator.trn create mode 100644 isis/appdata/translations/pds4ExportUnits.pvl create mode 100644 isis/appdata/translations/pdsCombinedSpectrum.trn rename isis/appdata/{images/icons/DELETEME.png => translations/pdsExportAllMapping.trn} (100%) create mode 100644 isis/appdata/translations/pdsExportAllMapping.typ create mode 100644 isis/appdata/translations/pdsExportEquirectangular.trn create mode 100644 isis/appdata/translations/pdsExportImageImage.trn create mode 100644 isis/appdata/translations/pdsExportImageImage.typ create mode 100644 isis/appdata/translations/pdsExportImageImagePixel16.typ create mode 100644 isis/appdata/translations/pdsExportImageImagePixel32.typ create mode 100644 isis/appdata/translations/pdsExportImageImagePixel8.typ create mode 100644 isis/appdata/translations/pdsExportImageJP2.trn create mode 100644 isis/appdata/translations/pdsExportImageJP2.typ create mode 100644 isis/appdata/translations/pdsExportLambertAzimuthalEqualArea.trn create mode 100644 isis/appdata/translations/pdsExportLambertConformal.trn create mode 100644 isis/appdata/translations/pdsExportMercator.trn create mode 100644 isis/appdata/translations/pdsExportObliqueCylindrical.trn create mode 100644 isis/appdata/translations/pdsExportOrthographic.trn create mode 100644 isis/appdata/translations/pdsExportPointPerspective.trn create mode 100644 isis/appdata/translations/pdsExportPolarStereographic.trn create mode 100644 isis/appdata/translations/pdsExportRobinson.trn create mode 100644 isis/appdata/translations/pdsExportRootGen.typ create mode 100644 isis/appdata/translations/pdsExportSimpleCylindrical.trn create mode 100644 isis/appdata/translations/pdsExportSinusoidal.trn create mode 100644 isis/appdata/translations/pdsExportTarget.trn create mode 100644 isis/appdata/translations/pdsExportTransverseMercator.trn create mode 100644 isis/appdata/translations/pdsImage.trn create mode 100644 isis/appdata/translations/pdsImageArchive.trn create mode 100644 isis/appdata/translations/pdsImageBandBin.trn create mode 100644 isis/appdata/translations/pdsImageProjection.trn create mode 100644 isis/appdata/translations/pdsImportEquirectangular.trn create mode 100644 isis/appdata/translations/pdsImportLambertAzimuthalEqualArea.trn create mode 100644 isis/appdata/translations/pdsImportLambertConformal.trn create mode 100644 isis/appdata/translations/pdsImportMercator.trn create mode 100644 isis/appdata/translations/pdsImportObliqueCylindrical.trn create mode 100644 isis/appdata/translations/pdsImportOrthographic.trn create mode 100644 isis/appdata/translations/pdsImportPointPerspective.trn create mode 100644 isis/appdata/translations/pdsImportPolarStereographic.trn create mode 100644 isis/appdata/translations/pdsImportRobinson.trn create mode 100644 isis/appdata/translations/pdsImportSimpleCylindrical.trn create mode 100644 isis/appdata/translations/pdsImportSinusoidal.trn create mode 100644 isis/appdata/translations/pdsImportTransverseMercator.trn create mode 100644 isis/appdata/translations/pdsL0.trn create mode 100644 isis/appdata/translations/pdsLabelExport.trn create mode 100644 isis/appdata/translations/pdsLoc.trn create mode 100644 isis/appdata/translations/pdsObs.trn create mode 100644 isis/appdata/translations/pdsProjectionLineSampToXY.def create mode 100644 isis/appdata/translations/pdsQube.trn create mode 100644 isis/appdata/translations/pdsQubeProjection.trn create mode 100644 isis/appdata/translations/pdsRdn.trn create mode 100644 isis/appdata/translations/pdsSpectralQube.trn create mode 100644 isis/appdata/translations/pdsSpectralQubeProjection.trn create mode 100644 isis/appdata/translations/xmlExample.trn create mode 100644 isis/appdata/translations/xmlImage.trn diff --git a/isis/CMakeLists.txt b/isis/CMakeLists.txt index b63ba5dec2..318d3933f0 100644 --- a/isis/CMakeLists.txt +++ b/isis/CMakeLists.txt @@ -506,7 +506,8 @@ add_dependencies(isis3 incs) # directory. (As above - may need to be updated) add_custom_target(appdata ALL COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/appdata/serialnumbers/*.trn ${CMAKE_SOURCE_DIR}/appdata/translations/*.trn - ${CMAKE_SOURCE_DIR}/src/*/apps/*/*.trn + ${CMAKE_SOURCE_DIR}/appdata/translations/*.typ ${CMAKE_SOURCE_DIR}/src/*/apps/*/*.typ + ${CMAKE_SOURCE_DIR}/src/*/apps/*/*.trn ${CMAKE_SOURCE_DIR}/src/*/apps/*/*.pft ${CMAKE_BINARY_DIR}/appdata/translations) add_dependencies(isis3 appdata) diff --git a/isis/appdata/images/icons/3d-glasses-icon.png b/isis/appdata/images/icons/3d-glasses-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0fafc03b93d781fdf8591bd004596cf2af0d1c31 GIT binary patch literal 768 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 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/add.png b/isis/appdata/images/icons/add.png new file mode 100644 index 0000000000000000000000000000000000000000..ddfa551f3268128a271c6b7380979ce447765ffa GIT binary patch literal 1055 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 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/back.png b/isis/appdata/images/icons/back.png new file mode 100644 index 0000000000000000000000000000000000000000..8f897a05cdc6ad7820b51dfa89801878df3e7312 GIT binary patch literal 2084 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 bU-!aFY<=?0<@ZhR;zQmYWA@Lt-~RkRCL_r9 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/blinkReverse.png b/isis/appdata/images/icons/blinkReverse.png new file mode 100644 index 0000000000000000000000000000000000000000..1aaf6f3c09d2d81e9bc875156390b5030b3aacb5 GIT binary patch literal 2084 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 I`kjaV1F|6vX#fBK literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/button_ok.png b/isis/appdata/images/icons/button_ok.png new file mode 100644 index 0000000000000000000000000000000000000000..bdb2a0e70f9948ed9d0d21e3498deba12865f53a GIT binary patch literal 2084 zcmeH|duUr#9LK-s-X=F`Qqwj~m#$rttlj!Zn`-NtvZ2(`J%X$bsbWFKm>`P&QBYx{ zI!h73A^tP}^B>tng`xQ9L}UerN*!x)KIY0Ew%bbAtj$f*BsVwr>F=i2>evwVFToSe zJ@@=L=X1a3_c(cNZ~v~c()FbP%3{0w9;UI{>JB?SzaD#b8x8gY5AN!NY5m?FfA1(+ zoI|?@pQ9ZYtj@MKzjcs|!t=2`JA|21&ez@fX2T2hWcfJO_rO3;1$$Q*lxf9(tg(Ng zm!TItf+#66W})Fr==5${bG~T&`wxaNYy|ZN+<}ehc)AiEaAZ^Qa}oXz!6UFkhMzP> zT=%$+2pfdQrFrQx(Xwbop5WT8iWx@e%e`Q9tlPIRK^3fnfp+g!@90p^P*_H{QmHN#$N zN5m8HOy(!sr8(&f0?)5FzKi^2M+F_CA#`_WFqug%rKVG35D43g&S#=cT>}{43Iru$6 z&y($&S_T?w>lw!}-q5tCCgtzV#reheDM(3D8VI%p4{mGfyuZfh!*ZTX8lXt3dE$o; z65@GrnAV&nH{DzTGm51ScX^p-&t`vsuAb9`zdeR=xIA;U1fqHtfwi6Zp30(q1UKvkm` z^cy)z)(U!|v&!#aW{JX>O=T5z0&}|rZ(}QEn4v&b^2lW*%=Ax}Uea~_bTOBX zLn5I?sHJ$Nq^$t*R69;=cHiaR-_W@3iMlS8Ax6f{T)X3kAHG7E9> zuqvzL6w(>o0=2*^d2HosfXdND?vs?cY(n9cWv-*5MFv-@GDFCNvzyS!r!(V1?nXi! z)imuC$+}9%&k^T$r54m`YXxG#{RA(8q%!qdApyIY79##A-Ow(^REe2C9_RB5i^*3s zL;IZe&f=5XL;no6W){4T3YH@{r(Vs+nH!=lT-Ccs5{@sRzNE#pw^$4 q3x=000000000002db*0001-oSezY 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 SXhn+2uV+nRL4E#f@Baz9v@)Uq literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/copy_bands.png b/isis/appdata/images/icons/copy_bands.png new file mode 100644 index 0000000000000000000000000000000000000000..34ad256cbf755ceb9c95e8efadae8be68df48147 GIT binary patch literal 4254 zcmdT`YfKzf6#iz0+1EhXib}!qu$tDEYHOj$4-CaXU`yIGeMBWDniA`eR%3#HL=%nw zOzjV(tqrt^v5EX>XsZ%6tww8~zFKMoC2fIFT6vYnb{AOoF`hHK*A5G;OG#`z}PI}DpoeR2S%S|znclma4 z(#RRJ&16I;A|rzk%+PeY!~zfwo|a}w103GevWGo-(jH4<3ep#6!s8xo>+k#x@LWHS zkw5mpI&mI8)eryh0{DCkn#;vNn1NYY;2^V!oRyVjvD@uhXTsA5oH?aiS1e0~-I0Jn zcL0-t5L&v12*4oF+vC$*^ zLuUS_Ex9Wez&+-}h<6f0qh83N0D0B1JmWrG>>fc^%h@1g&x?B9-s4y$apt0I<22{e zM2i8y+|`0A4sKOd)!)+IGnBe!)0VRQ6j)>_+;M?PJmApLu+UyKkYh-v>Q= zt)ly}PdV~w7M|>5u^6BQZ-F; zKA4`01j;0p|h@VgsE6j|}eMi{U#7vrS-8ncjz{$-joHeVt zUXRdv)a7ywQ{0duN#s^S`IBk*;@t{VtzT_8%UhO?fg?Lnx1)eUaEyrRL1vH_j7V(I zbY|h;Y{Vjr+jve4-1baJHxyZhnjqtw%e^>u=Bi;R9!;mO;MMvIltLtr5V1WucFp8V z_!dW|jRJr$6r9u*pf)+xu@b%zONiGTJ%$=PH_`qb7ke>#;-Dhz5TcM z=RKC}a3(=4I z&DH{c#`+D4_qEj7BQ$Sk%@a}vYcY&#QR@y=`)!(Dibvx!$kfOzfWvSYNu@tly) zu v(FfTE+-P`D<r{aC&P6-6S1mKExjEeX12MXtKPjx#&cxvM)`*qXj|mviqqXYT#(neTpg_Uz8G zQmZ-53;u?bEZYy+j#xQ@Gybzi{;ap=e1|YMk#`z+Zoe(bSah-W zm1;7RHd&5bmn7elcdgaZpKGRye*=E_w8zxe>1!#-vn{tJ3Xq&4K+TDEFqt?A1V^C1 zud9m}=jOkDSrM8FY;ul^1=Xipg~k`(-xsY+UY;~Z0F#jiqsWXyU<%d*6QnL!wKOpF zsbkrSlkBkLHXS$^QXLr!EIABF5YP-9h-lP6qOr(wq6P^GOBVBlcg97DWas>Q~%{5Q2QNfN@kaS$ASt9T+k;l)!6#Y;o* z925m0qDZLoNNa56w7@uVO0`5akFUZ05JF)Yq){)Zntbh_f&Zo!rVw^R1O5n_7s7$= zE_rnDaSRw$8ozbCzNr+fJMgG~AiPziH2zUm#IZ>;M1& literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/document-save-as.png b/isis/appdata/images/icons/document-save-as.png new file mode 100644 index 0000000000000000000000000000000000000000..9695a56424eda300496caf56addc00657abfbc75 GIT binary patch literal 2152 zcmV-u2$%PXP)40bdUMYLM+G3ZQN z8LL)XFtx&fw8ct8%YYeeJ3z}IZAWEl2`x>3bQ~(SpKmZbDK&86oGA%j)ch5Hv z^n0=YH5Jcx^kFTnxiua~LRIm>4>sYJl`CN}0))l)oQ9Pv12fXh!1X7~0%oQ_Pex&! z`WgyCF1&S|;kiQwB9RE1Mn`e*-b%#Z9KvKG0fPjXHcc>VdI?O+oST5fh&L@f(>ppn zQn4Fxn32fiE5ZBx|faI-}h}E^AtA7k7VIKj`C;?5(O~3*S zda=AX$jj~6VB31k59{a~G_YZhfP|K^!Pnkbg8Kp{;KK87!K|XqO2f> zh;k>+qk*yzpt=WVjDsU`WJ=u+TgJZ+I~dz1D#fJ^8fRFk-O? znzshAxHJMytwTp*9sB_aq9nuZ^OEQ?ea|ul=Ng!{zjZkpXm5K9H-<+MTC^1H?f=5h z_J0Un&-QzRgfG@kAYm2b*KgE=$;aUFcHg7Jmn_B!j6I-^^(@ii`m5Imh{YR+Y#O zpH9FVDp?;aT_S{QX^ORg+n4J{@V)y4Bn=h2U#TZhFTm`eY|%|6lN^+%mXBPt9AH`& zII2UG6Qji*TI=)sF+m!Uv+0+rm)(247U@Anv4O3RU4vH-x8f&jO-PjLH9K4gmHAQR zQvh&qFPMEu8JL=yasX&_GC`y5I+2nkDKke7{;mK{-aaAaO!UQHfv72oXfL$rIn2)= z#TvR;3`YjAy@jEBz=a2Iu0T~)75;wY2!Zivbq?wXi=uZ*kOj|>)G0f*2s3vAfks)B z5Q|0;2nI6*PMnSHzRuGHuQYl7#SJK5O}BkgT*f&K8D90n9m9VzJLGbrSV0h zkx2e0`qfGIo?q+%nIkm12j&u?^K9rkZ$pQGB#QR@;NYO$J@V#tUw!n#(6CTj?(TfM z_2NS>9zHpq7Yu&8thDrLNtC=G(+%AQl4W^XnrXCCpH2U?Lx*op#_R0NIl{aYm@aFR zljrKI0>yuL<#+^un>;TXi=9lSQY|h;Er9@5Rb4H%zW3e&HDih-%Zef^sw9aD^}i&D z{0IVrAn?NLmc{gR+At!~s3xmQ&(MXT6tksw>0(doOd@nlZvNA|tpKhdUr4TGTQfr9 z`ZKu%!0hhsHv9YgQxug+3oX8wh*%Vj#pfu+CS}2*uO9Pyy%uH4;=d0M52q<}QuhBr e0ggFDQvU;t#p**?D{M;u0000M8$}SF`)$W|Vz+h^3K1d&siN<^An_F5_&0!O z)Rzj0@&v6^_10 zg~*Nh4_Qv0^%;Z#{w#!k|1X#ZQ;;@Dp6+HDfFwzvR;z(y+w7a5d4<3CPl}Rf7-tVSvZMG^9)A0BAQf8V&LJ zVG9{>Z3|Y_U^M`ViOHx#!ZB013K_`6*9ZV_uqB#YC@zDZ2d0D?f6(P|tQ3#a@s(2L z01}P3@xh-TA45^onUU7wF%q&o*g97OmE=lL4uFOcKDoWQ{=CRE|L5o=qZ!D84eqm0 z(TY!}fpk-G0x@+f4Xgl&tX`6`UHUODLTUZqH4rBXBHE6TT3rHJy|_6BfHj~JeTEX? z(^0ITcRZGj$IvMk;Sv)L>kUjP&dLt6R- zyYa=Bbgatf8{D{glU698=svQ`7Y~CniEsL{qWLobmqjQA_hgE!!xHWaYvFXB9A-fFUE*Y87hrIt&Mc0u2-(v~0T& zKomz11c4+VD@>5(9wI1v4m741bguyr;G&{9J{<$#x*U9p55;jL|g$=_H zfzf=j5U4rdp6zxU`u#o_*fcf*z=O+|E`3m`*1o|~wbT1m=)U#UEdfQHwk8G7iBS9~ z3|T7zz%osq?{>Q^UTjrN8wdl&ql1G#H#RoD-hSocXL!RJi!cf~kv-Q!YQ;po(4Rhx zD7a`UT{6*-j6*c%v3CUk-TC)uH2Mye-|{@~A`$TRl`GZ{4<78euIssuZ~ literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/down.png b/isis/appdata/images/icons/down.png new file mode 100644 index 0000000000000000000000000000000000000000..720657a28f426fbaed6baf57701e29c575ce37ee GIT binary patch literal 2084 zcmZ`)eQZ-z6#u=izOHMxc7t_o*(Ll1=KKxFb8ZPf&^m-F(#lPf}r@3Ff^b< zB^Y8N`iF)X338#G7>^`aX|=kGugVfTep_AUEB5b>pjnXr2}N1=DfGvd*1J! z^E)5+X!H8j7L(Hiz|yd$ej~lhm>LcAyms-8W%M%aXk1+njs3p6^1}&QDR^_u*0<=3 zJ50H{Io}+hMR{Mtx>a(Yi7zu0y|(tyVp_S-P`_f+QX6+#-l}k9GPz7^DS?`40;e_u zTs0Y0lB%RbbmlEUy9iPJ5d)uuCIfgBc-o!#g{US&tQ-GX#h#mGnu z0rxO4><6N;Fxhx18bfEE+id0rZ zR@L&~fTt5g9vF$H@%H(C{QUiIfY<8WK%Wsn)>fLZu3b-?LdeDd>+*imaooB+d# z45CVwD7X(gf&RcBM}G0*+}D=@zrPcrw4Bi*==+wscZtt!yAL#B-zpdUV`+rOGe~AM z9W)qAW1hVLj$#Sj-YCdX#FOfTE_4;5D{V%w$Kym&iDRtengEu4sAn8?OO3627r_@v zBM{AiQ4k^UzPm{XJcq|C3Ly$Se1Qafv8)~ui;Ag2yxXlZuKMUi-{4ayUHO#=WH)lf zMa6qxT7Up~))!QCFIo7WP>Q@(p=#1Z;PF%z!*uX}rN}6tYHlS4?)+V>jYpeA(I7Rd zP6rwn*l=qwp?k@a#ljE9asV>R)IDJo3=>t8NmZ!~kIM<6ufJIoWO1QmMmg@rGq`j+ zj0A<1xtFYb$}HqfURW~!4_GA1V6{Rph;w*Rl%|%H7UF8}7g{Z0M8BvJJaY&S4L6Wiz*c%Ry>zN&( zj_M00@xcW*G~$6Z!oe42;JI1mJT9soCVaVNI*JN%^ql)WfR4U6M#&-8nKHE?VGfCe z-aQ_Q&t|P+lyXTr-8rgv&auribnq8z>=VEnmauV{leW$PcAxEsk)mTlu_K+Nks*n< zc~O?ygjh_kM>8dffipdSGmMsYcMf5aXWJhE>}ee!K6Br&1heW9<8eksyHGNBvzt@3 zoiSdPE6UA?C9^aK*eu}i*H8ju@id;PE`A95%ymEByGWyf_+)m>Q!7!E2u7gZjf7;A zx=V=kwkp=STewU@Sy^beq1Ytq4I+{;)7yRpajJ@CGmCWavjlqh(ja*y>if*5%pxI4 z4kh~iG`?}jec|OR)OpmkX10XlJ`ZG(S?57!8+uVvvow zPGn^}l|U2JGzm`td{(_7rYy%9CT-=U`jwwtS{65qwnCR{cDepRXgrH3dGg@MWY%nU zuokw_oMxlb*F6j+6!UNbYI{zt^D&zVVD=9K=XvS8WE5*kD@#z}vJgOy8g_dyVRgzl z9aA#!_@W37gpgL!T@uHwzxC~Ek8VVdhk)7QW7~f|v5$_=dnPetHSMHIdociLQ6VE5}pzQq!aDH>)&JG(d(siSuk-B9*tvktDpuTZ) o(7H8_Z{vkbd)M(5?B07scGWE3{MpWm*V#tHs`d4)b=yDu7x#Wz%>V!Z literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/edit.png b/isis/appdata/images/icons/edit.png new file mode 100644 index 0000000000000000000000000000000000000000..fa8b063f9b6c4a9d72fc9656bf6373a252bf813c GIT binary patch literal 2084 zcmb7^e{54#6vw|U^atZ@V>bKI33D6meny130B%`=WMqtA5!^o*qXeT76eN==Au+~E zA_PPQW>ENpjVN(b7;_*aSws;8jnOP)<41IJwA;FNU4Oi-zxzDrrLU~UKkzi)ckaDC z_jAuX_r81JnGJQRDY+>CQtMaOZX%z>(rfAYQ`hU&IH6M`>ivuGO30 zq!|M&)yk3+duUL%yMFyD-C&A3OAs2r(Kpk``TE+Y8jR(VUB?YR%Xn!*^a<9LQD zQt<+DDPz1CD;fzSa(5dvDj#0l7lY_mq0n&O|Jrk^+_Y`_%LjlK2FoUA$zYy5V}Y4% zj)}!$nCRVuc^VsDIW!A4hlEG;b{yWJ*4n+gYtQZtv=eYT0cN`V`kZAvv!q4h(Az(M zgo3nwG&QTy_h*E5+KJ{yVAQ4au50ptP8c_7A_>f|uE6BB(vL$2`_7@#coj!G4fyeo z5LB@#9N8%$Wv+qh9O$3&!$DA%D;Z3H1YBtooHurC@H&d;oWYIZYP6ick61JW%N8H< zb2aE5Y=B#orU+^-MD&7K*z5OVK$plQc?n=(Fj2hn3aHX zhrhanC7=^lcpQJja(Wm&zXULEZWy0zcfsisaO^@pOy>D87!2~pdc9uR6NF2VumqTQ zUje&p{Rq#k!Q}KXw6jDU+u=i6S~?E5FGc;DN|cwEqpYk9IXQfPN$BqG<}!>XsMJV+ z8LF7qbqC?;dw8KPim@kCV9E>P;_yx^trAdKS;;j;Mn;Cb51pNz(c{NI`aM0~nT3QN?MkAl)wzjrtYwPK5o6UBS z=J(5t8IO(BK1HRFg2AA4-+P`iKRaI4WQKm0vW@egcE@%2+ zgW^=Kv6nPLcf%Ltb4l{0PyXM=9|3>1R?53Zw`*-Ea&!J@x6pWnSg<=msy&Bs{rlcu(G`Snv2^(Tqc zvi>{ZiJXtz|FpA<%7;Y!=Ek+K_Ez6K(J+O^JkAB>o&8b5k|TGSZy;Rh7{;#E?*nKW z&~6%98g8q^!GqSkUT+%1iC`dTAEyFgfkjYBIit@fRzQNvNi4OIfXZ0}mbtPQ4O>M;+FCqY@K8hRDT`*DC7ILDK@E-+yKKq=*6Hf!mHHNp_ZD=-|YPOD#p=+8D3WX?D{cMlBhznWgm@VmaN`ltw zb!fLwz=LfJhc7^-QfcYBj^Be}kBhNbY>NaMwOTEP^P%iH=>#W@z>P)&duzes;)3dN zKL5?kX0xeIr*lBLlST@QE$o{`7B5FlgenbBYwhpS7%(?lwHH7&Y=x7Ct z(=45sF3Rkh5DW$(pU)Y$?`&jhN3}0lXTLs&*EohoKV9~gQYfa|pAF8!;o-sGOlCdZ zYPG%(p!jV&9nM!3s{ogx(ddm~IO^fawQ{-q6?^(?bQR#<_Me@`OFw<~A+el}zhAoh F{2wK31MdI; literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/editdelete.png b/isis/appdata/images/icons/editdelete.png new file mode 100644 index 0000000000000000000000000000000000000000..8ae7294c33b727935ac2d8b140243b294fc65d41 GIT binary patch literal 2084 zcmds2T})GV6#w1Z(%aHP#dbbWjZ~=;jSG7iA(%KdMMNWCAxtw}#JJ2XJ`5#h+lxeB zGBifTGcuMcjDZ;?zu(h)pIYI!$N@So+0&=a$_1#%=o<@laS< zU-I)eRBEl&TPn4ux#|aHOO77@;yY^ks{QL4%L|lq+O`Ni-UkY>AJ>4z@2aH-C=%an ze(GE$9c`M;b|VT5Gq7&1-FUw0a@DC;>yR0^brY}~dgGi0ETA-8DJU;rS8?oEj@j)F zbY}slZc{v&yzueCgW96)+t-AF>m75z)4)7LP=lzM2Cn{#k*=@B_h_Rj}CW)g1Xwn5-HUyB*`95MDibf>%I{ zZE9-C0xIzwW_IFe6osWuj*K8D!$o>)C3Ay7;I}50)o=vZ%(%;|_+oKWkUkq*A_2m$ z$@f!PfBG#~jgPZP<}iy6^FlDIOJxLIM2p;4;ShP8Tu9c)1!N~+8s(0!1s>c6hNw!@ zEa0{jX!lxTEv1VAIzssrm*X!c?gP|?d=_x2#zpWD(C`Th7~nmiN~d%y+JK_OGS6`B z<54q%b&~S`CUXVjl=skCR44avHY+F?!6TZ6D^pWZ8ke`tTo9RsLC?*PM{nQd6NjSj zs$|;5KJo?9d=~hngNciLj=JF)A0D_nH6_O#@^cY{(ybU^sr*9;yaYaarYOtAa3PiH z=j{NoQuGIKkN-0dh7_fKfvTDYxH|Fz;nmKnbX)Z6;<&4Iz|e@ZFUl{Nn0 I`kjaV1F|6vX#fBK literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/editpaste.png b/isis/appdata/images/icons/editpaste.png new file mode 100644 index 0000000000000000000000000000000000000000..d0b97ef5537a96d44b3c072e6480341c2dc4148b GIT binary patch literal 2084 zcma)7O-x)>6h80GV}=!{>7t36__NV2 zv~6@@+mMcIswOtwv^KgjbYW08BnDY%tbt-kX@TL#8DQRKwvZ&3?4O2 zGiew`)OFne)>5TX$!%|M{{ZFRz>5cr{^elR$P%GY=-AB6%!L}cz=7M<)%6$T1paU8 z>FH_i?d|<)aB%SNR4U~H)Eyfeb4#Vt0j6wvdfIJjYI3`~y9)yY1Gn1R+LDKPupGzv zthKfE_2%Yg0hlZ;Ey?cgu4J>>Cu~+$R-~`5PZEj5(_33xudS}GJ_V&$_7q*8fopVj zcIK1GWOQgwv04zd^2Rx$Ua`T2Q4hB7=nEO1nwot^E4n3v=VxC|~? zFpS!^jlD;6b8~ttcq}Ot3X;#~)t;G<=wxkejWR~SR`P>x6loC-hgF@?UP4CesYrSEaPg6Vw^-a@|R5B?$ zJ3B`eFfTM|C7xMdJ}60-K^^czJ@h)*3&O+ja1d;mHP*Un^#fDj8SJa<1DeRlRQKA( zuX~^r`{o{?Ur{?@c?if=J5j)%LKWiBh&8BQnX(5;;DA>Kz6HvmfVr>2iaY`AyQ>;d z<_8U^+Ooa?<({BmKh@5PDp)m&J%cJRf%YP%gF}G{;BPs)Gr1&CSh41xy#3BA!Qev@A;j@t_|_J0lQh3|BJ1OyI@SM~s+sn{nE`9c8P0NibN7z@@kbXw!L<7skNGFAb5>(4 zR&i|GKF%^r&Qh50=Wl&KQA0@%jU0q&Y{uSvH6d!T*ku6f^+tb%R{9t_kEcTK) Mero7;`i%?!0Mk~rUH||9 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/exec.png b/isis/appdata/images/icons/exec.png new file mode 100644 index 0000000000000000000000000000000000000000..ec4ae03c9286533b99b695055e6e8347033d9311 GIT binary patch literal 2084 zcma)-c~DbV6o>Ci$PSSN5?MmDbwi^prl?Z|0bzhaQK{CUQWhNtroU_)kPrWUym{sunBjb!o>Kx(JjM{o zk;k^cBx`fVvQ$2VEgucbr8mZKulR##UW^; z0T%FDn|b?oQ?1)g`FeW#NbpXaGbd)P!7%VrxU{tF7|bm?f4=JM$cV=`IB2%QIODad z;4mdOcincI&Ea#o+&-Ian8Gi?A{dGq@i`nW58NNYa=Hh3oW@4|j#Cgz2QPZH_% zzjw5@-Zl31k&f_i5r?8EKZT+d>2%%5<#HjBNQ~t27+Oe(7{+eY+}wF9zX0s!LAYS70;k_i#ym@l8 zdi4s#WU_osO)U*_d92*wa8pug$Vzai9nFd*J9g|T;&M3wQfYWNJjiHlY(Y0}+(KTj z*VEV6>*?<|dQGMwH>{e@_?4_O~`5;rqt@kl-+JWSX=vGnND|qk3b-*^LX5epv)7CMRXh< zu~>|{yZbEp`R|ury;=<^jeeuS1zUr|;ZV9YuCeehP(w$m8)Kl6*l# zN6X_96H}H%L`$AcC5nr;#mi(d@k}NgB_zZ%v|4ROd3iab zsHlhFlZ^xi2Q!pPE#$P_x@pszkW4m% z78m!H0M3Xj=gz6{Ve^+AIr4oDY;NK5<(Yn7NNcOrip*xR4;;+E9^lYufvh=o>fDaG zbK_=cG|%Z4%MeOWPe6fz0jR3#ml2ifiJ8r2)zIm5lfz+O=6uKEJ;HE@ScH1t>dvgdDF=%cg1VL)75{ORoA;2@sIL)i};_~N=&t5HQpMvlm2vp}5C zpFaIleQT>i&15oAZf;=|JQE9?2Mz!x;2&+3P$;}``0%$+3JMAuzyt5{ag|E-!fZDC zmM&e2|LSK@X_b|g7rGZMN~nQx88G(W!|+wZ4vD}I0M1MN8T$I<$&;OT?%XlP#>Qfy zslX-xp9>oSJ}}Py>n#lM#94z+m_h)bvp94H;1d8JN&$ccc*XLQ_YX(it%t)4zFVnT KDHoCpcK-n~j;Un; literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/exit.png b/isis/appdata/images/icons/exit.png new file mode 100644 index 0000000000000000000000000000000000000000..7aa1ec8adc77dde15b011a6700ce88b22d9f5f9c GIT binary patch literal 2084 zcmcImZ)jCz82_FB_ndp~ofmQBVz_Q4&ZM~_s0J==Q=1eP#2` zy+oWB*EX#B@O1{Ap02H(&Sg)pZ@Tl$_URHMUvzb>fBNB!_NlWoKpe+O`Z9V0m;YxY z-l9K1&j^W0_pYBfarce>{tw1hu55*->G4f^x!yXK@M5tFTNRgh z7fD4mn`486SlQhTH=9)iG0B%~?3A8|dskKwN($yKT);0wL#RZN=z|omnzWi?Q7fv& z%X71s7(9U7_|FO;Bu@5Ti&v&5F@O9M`8LMHkHB^vg=Jm;saW!>)0_7XVA=XD zid2X#QF>q(l133pGeqj}OC)SV>`JF=wEBHlIA$!JVJ%v!b{No4;@9tt{ zLKco7L2(@R?S?Tvs)#+$BgU#7r`5esJ1ZK?Y4&Ab};ZQm|^BU%t_DE>MLgCJcV?WQ@zDH+b07J8#R#w?d|Q6u^v$OthrO|Cg;>!mhsb-*$YdRQ)gH>x9nw--bOgYmh{2O@GVvBupZbFc5Xf>i^%f=1Z zzGV{_V+cov5sgNXNbo3(2zdfg6w%*5fSLn`asJX3L}T%162rVccWWotQh~YqL8M*R zNYd;hU+l)}m6ZsGBk%_T2!%rAcKkWySQEoH$G*eq+KU7(-!@6ZMLaAbR~3voJ4J!5 z-MnEvHoUzKef|BABoSJT27zFZ)&m$C3S%fdGQyDva%?uFrlg>&+k^ZmQ}Fnai^tv` zk%dsi-(N5C>@y@zPRw=ak9~a*o}L~g6onF&1-)Jmksf&LYC|v>A}_+Ac%xwE3^?pL zFc{L+M?Ib%Sgqr5yP*-$xI9O1F&q^nBvwhHVBAF34tTwAKkEQjc@sFD0foFeb>V$bW^e zaJ~KpBE$lsma6D>ci{c^)>BAy$fnTn!G(kVbn+McajO9mu_Gy*DWW7mN+{DrgEi-~ zyzvfQT3Q;KAGDCmp^-#UvUp;iw6&vXL1FT)I{$d$6fRvRiV+Qy3FUKylG@eX0~stu zB2J1tR?j*+(M_?{k?Tp3Bne9v^ZxN);d{Sdy#}w>ryj@&8Ge5NzQI8rV-U?{(VXR2 zCyIjAZp+4<#-CFV>;6%Y%UdFBKB6 zXa?#lJXGxh1hK^*2vKDzY7%%=@rv8?=_jKh;Glc`=qRUz##$BECJeA11R& zy~h*C>B*P~CP>Yq)t0NLm#XZxOn7~RD(Ld1rFi$PwWF4PzW*R<&)1=+w-wjX=)TlKK9YM^E5%I@AlUwx?<_@Iu*l;0P|({RWLz zqn_P+@DSUocd1F^{iEq#vr0*W!GIXCiLkt~ps!VXMgHtXJ1L8MC*|crq~``GDZDUJ zQ&UtvtET_&V>X+ip{n$FdSS7csPu>6p_VGgI2y- z?L0lblq_k?5ugUeL+5bhsCT@?3d+SzIbb-%F-P0x%kxVd@q}_SMXz(@+HJ6ovk-m! zYL7@348OpI7lI)@9VSx-dZ}T#JGyy$bxQ)9fA_}K4z4o_%oiM7fpD7I=RBU6T!&3< zG`w%bVk5mnL;on;i$EYqfL-Vt@bSLVn1~CN_y4@?<~Usb1I#yyi;MNXm}VOteMAqK z(kRYGV+Qm(9c?LygrgYr`w=3p$K?1RwZgqYqjcC+S2xV>C*=j;Pf>v29`mM^U=J5#cL_djS8 Bk%a&N literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/fileexport.png b/isis/appdata/images/icons/fileexport.png new file mode 100644 index 0000000000000000000000000000000000000000..eff38ff032a3afc115ff29e7b0463305017f4253 GIT binary patch literal 2084 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 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/fileopen.png b/isis/appdata/images/icons/fileopen.png new file mode 100644 index 0000000000000000000000000000000000000000..9ece2e24bcd007ec3bc0de833b4e0c43e2fd8691 GIT binary patch literal 2084 zcmb_dU1%Le6h5;%_wL@mnB4TnYGYHhNd3bETQme8QWDZoEH?O3pKSXeh)}^I0pC;* z5eh*?P#?5tMIR(W9zsJYt*w+i#Rsv$LXy&=H))dIo80}G-JS8Axx3rOwqR>dID3BP zoNs2%oO|-o%ln2(`G@lWP#WGdFoLp!*v{hj+{BxGD6)t44h?{!zpqby{|S0>Z|yno zHfH=m%y#eiaul7`(czZ{t+~9>@l4N&SNFe;o}Y&Y`d@jWjh(O#cnm{QQcC5}cp!De zisLwG-1PMHT7Q54`oClDWVhf#-`LpLL?DC`zOUK$Jmor$s@H02X>n1_&&{ddW@hC0 z`1mD^??%qt3DAfaER>by<>hi1h7d)OW+^2Q<4u4u1}5iNAYkQk`LVNS&YZ)X7m=y3 zw~z+jd*qu#yGD*26h{6L0!RsUvJJyXnVTlKt_xecx(cVJrY1197rB_`#0no8{c(G- zQ2MY?=w(K}(R34F5*csA5L{Di)2*KE?#@k4o}7ID_%EkB9__hiSyrSJ`|}Ao{Q(z? zYlT`{z!(OKLPS^9L^3^n3>Gix@{nFEm0;&{J$y8b29IA@heF$C2z)1+ua-`7m9P3i z&PYWa`1IHhPw|y{Ey!{MnD0Wv zEy1;wx^6Fg1&G23JP|;EGQ=|7LbNdwed#_*N!+vuYpYkE=A!CHGP?>=xUgCWxODk% z9U5W(dVT=)$ObnuLE)*JFn9@!AWCdf7$Td7368x5cJ%Z;#EyPG^%*nFHxvRD>TTBu>N6Kc!Kp%`~K_a^6boCyw->Yw{7c6b5^}nZ7NubyCr&aj!Agf^ip?=aoc!$ z4o;Bw85eNEATT1|?-Mh{6tAu{>}B`LZLf5%PFeRdG_0_Fk_Nh0sEv8~*2;BWZYlbm zom)1p{7)-zYYxXjVy-oC0AZKYzXSc4F|b5QcOf51Y9aCwkxcxFr2G(jEelxVz!#wq zAqGjfF*GUl1|=KNkD5SkCbAP?oQ2yXTj_C7j{GeFH!3e(k+~0G=VSO8@`> literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/fileprint.png b/isis/appdata/images/icons/fileprint.png new file mode 100644 index 0000000000000000000000000000000000000000..fa5141dea5a42f969b157c7e2fea32e94a707290 GIT binary patch literal 2084 zcma)7O=ufO6n-o1N-M24mZGGRoLHb1lK57FF-_WwjAO?xR$HaGBo4GGgTBv(*e|#_)iVud~LQW3oQc@GOvI(}VM3E)!>SwiDZQk3>s?kqNM$FF4 zd*6KX=KYMmem^!Yy8GP#AWmE!jpO(lb>4yBd%xd$8wbay?~adxPQRc2_~jdvxNcv* zdIxtrq|S_-`(X}+&cwvjC1=_d4%j`veV6+lB^wi?(GTD9F+V%6))<8JY9b2RUWy*F z2Fj#Pc`ssiX=&;1Iy#`$dRb)~92`7}{d^1cKa+Giy^m^J zC!|Y2fO=g8P18EDU2DP+wpZ&So|&29%jNQkT1^2}ZM$9De$o+!u(4Ro*`~xr7jZNi zot9Ll*+vE6QW<#Ksrld7s{l><1=4mO)< zL$ld@aR})YC=`ki3I+I{#EXlI@44OXbD}5$!!YB;VhQs30=Qf}IGseyqTD3bb(2_8 zOv?$|-yi&7Wo1Q>Bnc{&%3pJHa~p=m9LIer2*P%siA2yX1vol7QnJ~shmA%r3`AZZl+iksswEsAU_+sh-P-snVN1J1FmDEdzxV;Roj z;dvhHb~8c9Pk5acC+X0dHdo|wIm5peh}`6Gn1)gII2oJBJV+*Q)XL=_Ef5h?u3C+J zU9DEFr7^l(F2lE$kVvg`BpDiWgB9K4lSnw+3J8%|joZDDY3%-Q7JI<%W_7$iG`#TLu}eEmCW=h%IumbZl%4@F~E8sY0nFK{lI{*mQbV za=Upn-(k35cz76=mzUw<#dn~u&x;4zjB8p%bO5_c8QNSeABf6oe+GTpb8Ydph-<&!!Et;@eWGn4$;hzetIMbc8{l zrf3g|UM9ElhJ+k;%5nj(cXMcH=nYIe7K6p0U)xF?Ni__nj=pbfZ*TvNuDFZ)$Q@Jw c^q11So_Y4!pP&EwG0tJ)Qfzd6W7{ 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 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/folder-image.png b/isis/appdata/images/icons/folder-image.png new file mode 100644 index 0000000000000000000000000000000000000000..034551af887f5439abaeaaaf53bed88349ea9561 GIT binary patch literal 1633 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 Hu0mjfQ^&@E literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/folder-red.png b/isis/appdata/images/icons/folder-red.png new file mode 100644 index 0000000000000000000000000000000000000000..53954faaac0261ab71d49f13e860f81c66b62dd9 GIT binary patch literal 1412 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 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/gray.png b/isis/appdata/images/icons/gray.png new file mode 100644 index 0000000000000000000000000000000000000000..83d20a06959f07676617ccfde6fd7025a61e210c GIT binary patch literal 4254 zcmb_gTTGNk6rNpRmt9yy5s<5EwTKWgs4-%+6oS#M)tIJWF*LF5LmL~LdI=?_4`R{; zuQV-fLYp)uVp@yYG)*5gfj*#32nH`zK)D8rRS*S{n{wHH-_fDC?$Sj&W_JFW|I9hx zeCP5H9@@HPgUuRkRZ7_$8?)ZRXlD;J;dk%;{R0?G?{C_WrCj`XqVmVDv10jjWA0w; zXka&FCVpRlMe{z#=Jn<_OMG}(K&kO7gHoZ%j;xHg-?13%p>4g8c)3NN=r+RUA}y||NQy$Lr0Dr`S1nQC@?a!cHqDP^Y|t{aUo z5SJ}mCPs#bhlL%|&yGxxSovQ7z*q>3o7|N#7?}|aOvZ&a&NaScbKj#6Fm?3Gz|NgJ z{SnFg7A;!z2~Hd2Nf}w;X}vX1d)#F`)`7!^4{t-MJ-vGM>TQb`FSa4z3|6aE4GauO zU@2M(=qZ{6SNEXOnIhhYHF&uhw(u< zvheWX!;qk$pv{P@x~o^OHfs<9ASWkh7ZxIzUR0{(MrMux&?SkX-wOL%W`cpebm>yjL3f~lNu&z{ zQvv9mRGN^GATH6LU;2}Q#&^BFy#kg1beYE8P~oOvpWQokpt99LQ5U10>`d+4 z%WntW#du&R04<|g695EJQc`jP)a4-!|EADXg9M>F-GK;h!PWa?r_-5+nvsQIy~Yfo zQr)RTKf8}ibp*5An4fS%1ZXIcP55$EA#k!l+iX(D7@#s1DQx=d%9SgJP=L1A*4EZ= zPeVgPKaBr`eXl`r98XM_Va`8R4Oy& z6;AiPUIDlZ`Z~|f&Nkqr-{2zi9^#`DY4;_nJX5*!^z==rfc*c2X%Qkc)B=-Se#ByNl5r{-hnY8X@S57 zg^iL6ztji)c)@0%^wCmMLLy?~j~pHzp8prF7#s6dNF4a{WqxC0<3a1qlIOmk%Q<%X xcou_Y&9Q~^`8aku@OGYUPP^d2$=t-iu=lM>Ufgq!CqR1`JYD@<);T3K0RRs7NCW@? literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/guiClearLog.png b/isis/appdata/images/icons/guiClearLog.png new file mode 100644 index 0000000000000000000000000000000000000000..880453fca9d9fce84e41518a251acff1f0c39167 GIT binary patch literal 2084 zcmdT_OH30{6g|_vc4i7#pz;ZzHeymD5knyOO^jHC2KgBzvIAMT5QB-v=)xE^E_A7J zqZ=0rVFPG1h)QS#m5_)#5p4odL-^PS z3u7!P7637>BIi-EiCiT!J$s(i?;~SAQC#SR#((!an{E>#pDC(7ODhJr3i%oLE)Xc5 zbCnc`LzY;ZV^7P|dOIPHT+V})yW@mLu{tP-qL@!^0%;VfOllzYl5QpSkS<8NrfI`8 zm=XkmZ;eYb=_uhGv-5efse}nkQ54DJ@mwKL<(_L5A~rf4j=PMA5*1}OHy8}+oT?gH zfm?&oXk7F)nHWN$5Hu}BID;ffP*wE~Cq^I;geWpF#xOSKgMlB$62eJrHmmMCG2w&N z8V$ZFzh6OOq7}4BeWgwu3@YgB>&5i6ADNjum!J&82Ks7uch914TU$3`W8;yOl#Gs! zcI4#b{wDVO{YXhk(*gdzk}UWJ0s%N2+vzAksv$c&53(GN>-;gOb#9!~z=N^g!a0|T|JpwH{}D5u+)Yi*R5|NX(V&Xf3kDRy8tM}f2?a@; zo0-%%?ef3F!#`a5qU3?j=Y4a(S=X|7^!mWy(8k_`G#L$_A_7~ zeuGc_&q2Ki{gk??5ga!UjJG4-g(l_Uqf4*(zf)8oCD1dHI>qJ#Q0i>S HuetgQ=&Np# literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/guiExit.png b/isis/appdata/images/icons/guiExit.png new file mode 100644 index 0000000000000000000000000000000000000000..7cb985935f1ec74ff5923e7e1a47991ba4a46135 GIT binary patch literal 1119 zcmV-l1fctgP)eJs>pz0mKL<& z08;arn3xPqO^q4+{T&%JHRTw%xY*%pu3vx5uxr zZy7diI>7Ms=?kExAAmu_ETE_714^C;00M{ws>T79q~5*z2o~77^(cd@s~Ipw$bs3%JB8;SGX7(8#^$S`~e#b5I{_@SY%~oW%&I03((*XaJ+KmE}$## zU_=}?LqUL(lam3KkpKdS1!gb^ynXut!;sUbuQ3=HsGx{Fc<=(lP!Ra{50oqaf!P27 z1Pcmqj(Yd*J&Hn0OJj!AR6h&@?CkV`WE{h!NsCa#zkT}xcO*an!GhudD4YKJ^^4*6 z@84i-W@f;UlM{^M{X>T?q8Of+7YEJ*F#O}k53pGvd4K={8w@H?KzaZB_wS&XWe^t^ zW5~}BL&;%HO*0v$PhZY(dj2Z)7-m@;X=!M4vfx8La2^>sMeiV1@w% z5DQYlF##AH{;yuWHc(Sj0j7rQ;PASA`ytp+9v*JE3s$b&!SL|mbD&Qzg2k^~xeCnM z-#}S<0!$4+0HG8@CMH3kY`I@rT2??yOPv9fw($W_rnz+KDlnDY1s6isukV5vLI44T zQEVC;2Z9Wr&&kPUprfM$%(mD|xI1?qGF-fP0hsnbfecH8845EPAb_wI^oEB1;DR2M z_u1Lm1%!k|fTf)TSi`et&lujkc@0bf-{A#4&`^wm9w30Q8jK8}c^_Og{rmS9rtttQ l_Hk8B00G2EtI8B0zyRRb`ov(v=I8(b002ovPDHLkV1heR;aUIy literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/guiNextHistory.png b/isis/appdata/images/icons/guiNextHistory.png new file mode 100644 index 0000000000000000000000000000000000000000..720657a28f426fbaed6baf57701e29c575ce37ee GIT binary patch literal 2084 zcmZ`)eQZ-z6#u=izOHMxc7t_o*(Ll1=KKxFb8ZPf&^m-F(#lPf}r@3Ff^b< zB^Y8N`iF)X338#G7>^`aX|=kGugVfTep_AUEB5b>pjnXr2}N1=DfGvd*1J! z^E)5+X!H8j7L(Hiz|yd$ej~lhm>LcAyms-8W%M%aXk1+njs3p6^1}&QDR^_u*0<=3 zJ50H{Io}+hMR{Mtx>a(Yi7zu0y|(tyVp_S-P`_f+QX6+#-l}k9GPz7^DS?`40;e_u zTs0Y0lB%RbbmlEUy9iPJ5d)uuCIfgBc-o!#g{US&tQ-GX#h#mGnu z0rxO4><6N;Fxhx18bfEE+id0rZ zR@L&~fTt5g9vF$H@%H(C{QUiIfY<8WK%Wsn)>fLZu3b-?LdeDd>+*imaooB+d# z45CVwD7X(gf&RcBM}G0*+}D=@zrPcrw4Bi*==+wscZtt!yAL#B-zpdUV`+rOGe~AM z9W)qAW1hVLj$#Sj-YCdX#FOfTE_4;5D{V%w$Kym&iDRtengEu4sAn8?OO3627r_@v zBM{AiQ4k^UzPm{XJcq|C3Ly$Se1Qafv8)~ui;Ag2yxXlZuKMUi-{4ayUHO#=WH)lf zMa6qxT7Up~))!QCFIo7WP>Q@(p=#1Z;PF%z!*uX}rN}6tYHlS4?)+V>jYpeA(I7Rd zP6rwn*l=qwp?k@a#ljE9asV>R)IDJo3=>t8NmZ!~kIM<6ufJIoWO1QmMmg@rGq`j+ zj0A<1xtFYb$}HqfURW~!4_GA1V6{Rph;w*Rl%|%H7UF8}7g{Z0M8BvJJaY&S4L6Wiz*c%Ry>zN&( zj_M00@xcW*G~$6Z!oe42;JI1mJT9soCVaVNI*JN%^ql)WfR4U6M#&-8nKHE?VGfCe z-aQ_Q&t|P+lyXTr-8rgv&auribnq8z>=VEnmauV{leW$PcAxEsk)mTlu_K+Nks*n< zc~O?ygjh_kM>8dffipdSGmMsYcMf5aXWJhE>}ee!K6Br&1heW9<8eksyHGNBvzt@3 zoiSdPE6UA?C9^aK*eu}i*H8ju@id;PE`A95%ymEByGWyf_+)m>Q!7!E2u7gZjf7;A zx=V=kwkp=STewU@Sy^beq1Ytq4I+{;)7yRpajJ@CGmCWavjlqh(ja*y>if*5%pxI4 z4kh~iG`?}jec|OR)OpmkX10XlJ`ZG(S?57!8+uVvvow zPGn^}l|U2JGzm`td{(_7rYy%9CT-=U`jwwtS{65qwnCR{cDepRXgrH3dGg@MWY%nU zuokw_oMxlb*F6j+6!UNbYI{zt^D&zVVD=9K=XvS8WE5*kD@#z}vJgOy8g_dyVRgzl z9aA#!_@W37gpgL!T@uHwzxC~Ek8VVdhk)7QW7~f|v5$_=dnPetHSMHIdociLQ6VE5}pzQq!aDH>)&JG(d(siSuk-B9*tvktDpuTZ) o(7H8_Z{vkbd)M(5?B07scGWE3{MpWm*V#tHs`d4)b=yDu7x#Wz%>V!Z literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/guiPrevHistory.png b/isis/appdata/images/icons/guiPrevHistory.png new file mode 100644 index 0000000000000000000000000000000000000000..efa12d018a0ecf1cf080f45a6b57496492ea3bd3 GIT binary patch literal 2084 zcmZuyU2GIp6#iy*W_G*XrMs=Lf0PnT0EI?`hl&yqDALl`)s3b=I3IqZ%qL2^_4b?zs+6rxV`@5z4zdN(DGvm3l&O(8+IdgaJJ@>ok zeCM1y`&yea-%HC_(@ILLh z&6Ha)_xqhRY2VSfc9s3ElbU{uTP5^D3pl+M z;AWH23{stRn9jTj7-t~pCor%#_Ben?fv0aPgW=pp#yjD5ySacLz8W9=J~vcN$JkgJ z(f(0jbOcDH<7D?GMDc6%waE`2Fd4YIEeJzxhs(Vvxa3*v-m(CV^StmlZ4h`K99b)> zj=l*6?f*>RizA&#bdd9@)D4Q|Weo4`x4`cM2S2F>hpPzqLpwfd!e=ctCQvr7Bd;0I zbi>*Mo=y;WU@WEL!()9o`{N%#BoYBH)gjzA#0-nTEPOaGBN$wC@T+y$ve<_V0mgF$ zq-2dKFp7p`ZQRE%9kl0s1iv1-2#kz$KoFNOT5RU3d&S4Z=f-z;wqVDq5Jr+JV%Y+e zf?9DnvC(G$%f5?AofG9P>utjmELcM{ltK3oDmdUXWHu1C#x2EP5J5VA6(B##{B z1Z8#*3)O;65^WsEqyL_QAqw9va446EdXkQR6WIDwFXqkinD6Yt8f4GKVKb?3KJSB0 z^*2Uzgi{4fP}HK0hfNeU1{{gUvvXJl3{Xe0a9R&`p)TOS`P*@5qKIm$WlLDIFxqyV ziQxE+2}JJ6=!vQ3GV4q`wIE>*3xwX4jb-Mr4seJ?Px~fRYFlPZB}Vnin#2;;fvg*u zThpNz(AquxBf#OLnoo->B=Ax1*kVg-TKpQM!yjnok92*%Z>q;Y&fgy_R zyd+7dY?_|z>K?}|Di_A_!)j*xe-w#=czE3*a`4hcg+vm(rpFv^?i4?8c4Lee#J!ow zn30KPURj#RX{AV_)D+gdH3q1Hbm~YW8e@su*LQMr+>CMhYrm995UxmG*TT@# zA=n9YoVxIV3k|h?2cEEVxO68C!$#hbu(F-%7LlVo4BZ|?K9;)1r^}Z0o?D}o$eaDf z>5!q}n!{Tj3eEAG8)8`vDMg!fWimh;A+i=`;j^oAuxk`@EFI=-SloSN?I5!$0kand z&hz3i(IM1T&8S3m$V~u(dBd@<2NPDOEKy0hfbd`n;{!3Mvf3$fT=UJttHY)dJthIO z$(fseceo^NJ1u=c2Y8$w2fUZJw0C~9oPGBmkaQ{Vsq literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/guiReset.png b/isis/appdata/images/icons/guiReset.png new file mode 100644 index 0000000000000000000000000000000000000000..57034cc54887cda46e264f070beae866a840067a GIT binary patch literal 2084 zcmZuyX>3$g6#m{e`%Gs#rQ5XA7Nj5zMp~2_wiJt{R9Yk~Atrd0{*cucCEE1rdDQziTX79Xt@6CIj``Q7j+{t-&?#aF1`Ob3B z-M6~6$?Yh00B|?2Xk0^cArqU0z86owxsWEymX@YQ80`1i4__Z5jeXmSjc?P5ZYJEa z*`MwprS+ZWRm-hC4!%(Gb!_dCNOQ8ev0-h!kNe8HQRZmN6UW@GKl^wQuMmC<45NlN zm4bs{03i;>O@rf4@Pc;g>W2-{CjtBqxN`Fao6C}Y3*g?BY@*lUwZTVXwTPtRAg5JC z<1$ha8Cph*kzem;tjb5X53S5RZeR*<^``FvJTHAqfD8P=e3S>=@YqDCS%XA3&q)Fg zN#GEdHT3l-FcOYHmDQ^f$F*KR+|-u?e+bM#jVwBCK4%~>s~FSV5+dVSBr;iKbqc^^ zL*O|wD8T0s@F1b0|KMH+Boeix!`&HZUgutHfg@sUnBR zHcf?|utNAIfpkX4KzBcsNTQQZ+LzuwyD~$81Ne-wO?Pm$1v5*a5!%q$M7S#Rt=Lpw zhy|5ScpV~Q=`6Z>llY=*7^#$H>vBdRvuMs(;P2;xto|M_DN&8>FkXd zF88GH@?0#N)-rb7X*70*?;uwi}y8fJMA9#hOJU<7i)jKsSBgq|7SOZJ6hMl2pXaP&H+xg=B- z*vKW|?ucw&X$!@;Ht0m-(;n1SIANtVPjy%57Ri0-p~R_FL)~E*i9`&%bW%XPBMr}D zDLFLOFkW1SwUiX*HY@r#B||48Y|R=^n#yr7rsBq6$~5XEwoEMK*}?PoFw)TpsOnCH zcb^x`0Oig94T`a%^TtqVuqKElPvx17NFnND6yqW4VE5xHM(IBTXEDyX&*qOi2JzF; zAAv~Z3PkC3L_4$z;P|f^TuaU(kywBFQrMIB7h*Y8gqvEUo!B_&u!C-94vh6^)-p4i zj`xm-aPspGU|`@Lc*~0jw?`P+$y}Sf>EgGS!cb4a<*qATG!J{WJWIX7M_o*yYT(%e zf($Y4rABq?uQ7aZxsOKF7;2m~Zl`3Yi(E{F=7iIQr<252zRg*)6z zBqWgN0uy2;#uzl|0*fmpu#g{-C|C-D{1oWW8Ju=X+bQ#A-pssv-*o|uB9)um#W^|m zJLjHz&p8H9S>_%BKog1I>L_v0V1zUdV@tPTPMYIYf&VK6^P z^7a>;ICBy&U%iTAm+x|v{dkXoA4Ym0+!oo`^U^zF$NU|%*>eFXsS;94LS~4N5vn=3 zFYj|C^Bw!o?$d=KXULaqXOgptY(kljjKpi~wZc}<+w0ykc6PmoZH7s^X)>iWMdct2 z!9;bEDQ^nbFX3qqAD^yh7t#8taXx!)mglH|SXSP<=EwY>&_3Kfp$kCAaRG}+B~s>=1kH5vkqn8M^vF~#Ze(~MWg z0R)PrXy#c!i(xRYCESXm93nc*@`e`xaB%o6^(l^W02nR}17HiAu4osV8aD&5Zek7j zsXS)L0+SZO18~H!L|w=Xkt^r0h0Q{9Aplp(m&sLfwKPPnIySX#rY$^|PC93Beg`>CbH<^YjVEFsPN0=fQ!nJe$WgcF!^@m8?LLX04y>W zbF}*y{j0xcskQV8@Mt-Q^d&(nfL~HRa0831*qYs1^(BX;Bd4p%V^(N3MOkFmrH{B! z8K?o8X$C+dYpDXrx_=S1qEwYfwcr&|95-zy%}bXqVQwVjSM_r!-QCgJLA_Ov@+D^` ze&LRn;+}txo0XdkI0GCR>*uTCFG+dBokTU>!dwWUF zNiGo<2O5?&Y*^p%vItw@$F6J{7E;S6QsGLM(|3OMr~jD#-LJ6Etm6bQ`S0!~bcMx+ z#pltk=!O*wRuYfKpEh6^a)ubZH9%p=IphwVDUnFf zzo_2;g50MGgE+8=7+TnPC@Q|kC>B{9iumNoQ%n>RvcJE-#`zl|vPUl3;0SR50000< KMNUMnLSTY>sB#_v literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/guiSaveLog.png b/isis/appdata/images/icons/guiSaveLog.png new file mode 100644 index 0000000000000000000000000000000000000000..dd33f5d4ed30db0399ec49625e5e35c138b9bc31 GIT binary patch literal 2084 zcmb_dYfzMB6n?(zUIgWDizQl-ogfza-0zzb)>5^ zjWZffX=Y6RXtHVO2Lp{}Ibm37iiMX@1Y9l~?1kNLzi+?Z^X{(FzkYOf-plvSInO!g zIq!S6p`v_IvVD>rKyvBglBH~Q(Xgs)KKsqad2CUu$`+Ntq~FojrVrVPZS&$4walWE zhA{t;#y8oaWlQOjg_fH(w~(Jz?5|tGPEM7U6fY}C6F#@B2nnWX3QUb8v6_M)n6ab( zHpej%_GDyo;Fp#y9~ky}(<6}xYU{Q`l_eH$Oh{W8Z^HJmPl27scA6H!I}Q6_GNa?i zKh@pY*{Zy2*DgUfjI{Fda)iTSJW)`D)Fk3+Jai14U-EBd0?4w=!C4{LYGU!6T&@sf#N-B@-)+Ui&f8etW?**6 zz>};dziz3;qituoEg4XNBr;6|MA4Fv$1zrn)4z4|Zg_Jl>kflV`d&y#ML2x&Uz&X~*<$YIabZ;?OaYwT#0@cjiJ9QFX- zThDHeV=nY(Hp5_PB_buP`@j^juJelXh{HNA-na`YL}=&|o^^eIlRswTt214Qj1A&w zy@IgfM$63#%*j_EiV~vnjLq>8N12xd>3W=soJna2dT${|YDCxYEWG{64;UWm!;x(k zq&rj5(qD-jcNSEu9g_A^x~o5et3c|Y}(s_p}|4yTPt9? zTR~Ija-?NWfGx!VNwx8Zk*E=YkE4Qd98aa;t=Ey1WW~nkz3`_<*!=EY^xqxA$^`=` z&R0=$Fb#bptw>2Z54+6&h#I52skVNq2qm=!?5tPJct?8TL?0c6^*VgEV_ z`qhhG9tc_=4%YZ_ z=8}Rh&St^I4Aaxoc>uv+5QD6ku8a(%Bqwt~on2QN^q5FQRz=BbRj{@!h(n*9LsN4P zzpDq<4`aw@!PbMov}w~Yb?Q_&olah;Kp+60&&Mg?J&w^xEtiJQnivOWoyeH|xLeRt zm!hd9iqM!3dn&zfrdqLT4{JzD5^{5MIVc%Wv;;~+i)hdZj73Q+J+j2@;`jKeIXObm zdj;Doow)kP4a}Ws!J;=zL|B1sb}Oerk|cyeA)am`?SMbPdN@1NG#)KEPH-$YY^zGv z^%2uQd`GZ9;J`$8F;4vA!YkF2L10u=TIo-KjAH4=_#7J>W9J&^A0)z}<-m*<5_vQ{ zy1U_Ur?BRQT+hkoYZI>D@`|ggs~F%2Z!EDk8f#M2Xc8}rjC=cf8K_2E?wD3pRRXkP k)5`gE>t3E$z(4-SX?x?bnJ4O68ws*>VR^}y^H=Zw2WjEL8vp3$g6#m|uH%sSDmnog8t=0tsqQy3tn37gB!jMw1L<~zX0gd6Ofoh3pYcvpv zO01d?O%#6kOQCF$7$L@nxB&`36h#xj04dOA+Oh5IZ{Ff}-n5nS*Ld4I=Pu`b=ey^g zd)_-wt!ga|)&>ETwk?l6O&OIQ@bUMDFJEY(@IAk>H3moiKJEK_4_8V$mT%~!#h=oZ zCG+>b!bShKw)SQIDA!6T@DwPwLqw}60AV5qZ9t=Rbu9v@fJvF59OK^K)KA?G zPC~_YD<~JEmB75#S+lyr4Gnh$>gv4yni^q_{J=mV*WX`AoIgL%H#+*(FmRE~<&;Tc zOfz>`+zLt-)dXG89*Oic9X(p7S60HY$;)BPC%esgCXv9|_3LjQ9~tQ+_<4qAh=h_; z%$3_gD}aVrY3X~9?cZM;vMgA+92`oU-7!s9S~6EvnC0d8dGqGM@5aYFuLHl*{h)v! z1Psp~Oaq=#pJdwDqU-N3-nXw-r?Ht#!ZGr&^LaSZWjxufOa@LSjp&o@A?M`D#Yw~X zB|8}oVrD%|lOT^Vi%jbu4g~f*-qTYP(lpq~2`G^&vg9?5jWM`+x7$2{@BaBH3=P4Y zn1G$lA{vY7#_7|KjvK}~#(V4nFH~hH0%Th;4|t=wtE)!$YOoTcP{Lu9x2-_=>eX<3 zK6uDZO{WlOY(%)d9np;&q1X&bJkID2V&T>;)pLPvW)C?6D)UtyhtAZhEP^IrrBVnr zw?H9tH5f$2re|Sz3I0eE%2uotJ9umFgg$qk>&zO7!{^u#43Z4WzRCnwB~Q7i+37SK zf~u4gpL`5+;HKz6)pb<8_!7!i7C~ig{Kz4g-+T=Zbwyug#<&>7acvkuH!~PP)dl8p z<;d#j2omq^M&WwD=s{sPrrOxyLoj*|K%+x_&Kv}1&xSEP48f2r6FnDQ2K1(0J9-#V zrcgLs0Z)kzhw)CHIfKeIb)w=n$&SpKQ&5>5g>z?-yL1sF=?q4=D;Se%?o)M`6^<q^D%NA>nsaiw)BoZo+wcLN`FHA=zYkRuLwc{bgcTvX%? zQ!dN8Uq|h(w_Py#8R*%K9D$^Hsv@}WL?4s|54m%(5nI6!ELoJxGbqzs%*E+T+&O$z z!3XPQ-)%SE+=1+C+i_+2(rIv&A=B1dO^&90 z5Q;=fO3KRMl@AqLfki0G;**NUv$kn=kmXMdL7XCISCn+FsNc TC;rOz33%JGRk0&Wp4<5kwQo8& literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/help-contents.png b/isis/appdata/images/icons/help-contents.png new file mode 100644 index 0000000000000000000000000000000000000000..6631abc97d9cd55e0c698d4ab09c950dd9f5be24 GIT binary patch literal 2084 zcmaJ?eQZ-z6#u>U^^>k;9dzpi+I4Jvx!{x`*?_oZ%P1hA7{W3XV1|`G*V6OKZy%P>OZ(26%5o^|S99UyA+i`gT2-}! zcGNNDc5kZ^$f(=tezih(->8|nbYb@4w#Q`o#a&+d#}QD&XZ=NlhkW`MXQ>CO2Z^DtAH^Pq*4Ay_b>-Fr$DEsL_vm}NI+CXND>b< z&(L@%^OTXC3lE(m)DO5ZGrZOTFKn%mK>4pD+7iGO2$X`(ip{xQbl?uAEC(w1V36ga- z&NN<|(caR+fTN^zo~L9CSdr=2!U&YeW8?-KuzaxtmY1l3I=j%{-=9pG^T9*pyNi)e z0hD-J53US{w-a11X@r;qGSV~l=nZk|AWo6RPrfUV=emVz~qiRXAU41>1; zJLYom&zObu)3x}fu??R5)%a^rizZ(b|D-z*>}*C}e>V(s^Wd=CT&=CGepODsZ?q~{ z+$j-68JrLUC&y3`X+vkxMlAaK25MT`QCspp)Mguux@km(3QPvN=NSSvS!*FI;@Iv-<@OSUxVr~UE^K;OWYAjjcEjIAevoNg5 zf+uek6t5Q;9>$XBuqhrKvL&go5*3C~jLXCO1Z#>YA)E_t$t?2k(dOp&yRRK4y~5ms2mamB-8O( zV+skG?i3jkHAaGC5X^^Kh3BbpBnrTs@l0TW?!kLQBe=Gy66P}}urcg|YoH6Ucnont zfFMd#ITFOUgoGd>E8LCOqCK4H=6SS!drlM!_Vrc7wSJ6 z$VEYTeHqSVJ8-M+IQj(c`l*oe$q3Lz00S)IK9#GuFlI`(h?G%|SNX_>L@dG!gFgMa zTQ_G)gYoPawOOT{k>7N_*EVJJS@5GrqPi(|ZXZYs)x%d9wy?5@Nna6i4Q^i7WA&R16 zxfIXHpM&Hyt9(^3D7#hpc!UkMOT#V5j_m6X{cY*5yry zwiP!ul83Or@JS$kl%<{uzsEgN@W-i3dB;(zYG)D+W_!#&UukHKqLGwZSh5v|^$2m! z>}O%yVE$3i+lwrzZCvK5n`6K zQ~xPuMXGJ9>V?9X!3ge%Z-OlWR`ON67nekX`AZRsT5dvk>(8%*wzaqr literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/ice.png b/isis/appdata/images/icons/ice.png new file mode 100644 index 0000000000000000000000000000000000000000..c136f3323a5556e07660e19ed03f3f169a4805cd GIT binary patch literal 2895 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 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/kchart.png b/isis/appdata/images/icons/kchart.png new file mode 100644 index 0000000000000000000000000000000000000000..1b614d287bb46b9e311b584bc9b77dbbd9f23614 GIT binary patch literal 1909 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 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/labels.png b/isis/appdata/images/icons/labels.png new file mode 100644 index 0000000000000000000000000000000000000000..6231f0965cd450a21d73da463c73ab29f8159159 GIT binary patch literal 2084 zcmcIlL2DC16rRl{o4PdUra{qyu_BiKf)+ibm6SH9rAR@76iToMK}4vBfb`N+6mQ;x z2WdehD0meb@PCA0BZzG&sfk%}cly3{XLeoFO-q{>CiC7m-}`p*b~5k9{M<}Jzoaw9 z61myzJ(|yB3~2QI<&G(E`5k^PH zLWL_8kJrr~AHTt<3PTXKP4gEU9=_}dwpy)FVLz{%4=pkdVP={g)^0lh!V?*^V2<$Q zWadO--I8&B4?UyZ5{`n=vDX}n479~gU1?G?O@>nbuTcjtPszDQ_=!XrW z6oXJM6bd~bP%f7xNALv}j8Te5r&Rmsmeb z5q>#{Ego-HOv4sv2*EH?Et3x-kXS9Yk zL-#cI_cV_{p5VA3dMGgNG*jwX24WJB3m}Ll>Gm{0|C!5i@@NqoLo>CmzI*%p;e%Jp ONXSjkWh=Lq)(!v#O2sJv literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/license.txt b/isis/appdata/images/icons/license.txt new file mode 100644 index 0000000000..f8aecf92d2 --- /dev/null +++ b/isis/appdata/images/icons/license.txt @@ -0,0 +1,11 @@ +Most of the icons have been adapted from the oxygen theme are under the LGPLv3 license. The original svg files are located in the svg directory. + +For more information, please see: http://www.kde.org/ + +A copy of the LGPLv3 license is available at licenses/lgpl-3.0.txt + +The following files are Copyright (c) U.S. Geological Survey (2012): + ographic.png + +All images beginning with "nasa_" have been adapted from images provided by NASA. You can review NASA's Media Usage Guidelines at: + https://www.nasa.gov/multimedia/guidelines/index.html \ No newline at end of file diff --git a/isis/appdata/images/icons/licenses/ATTRIBUTES.txt b/isis/appdata/images/icons/licenses/ATTRIBUTES.txt new file mode 100644 index 0000000000..36b9df3370 --- /dev/null +++ b/isis/appdata/images/icons/licenses/ATTRIBUTES.txt @@ -0,0 +1,2 @@ +3d-glasses-icon.png attributed to Fatcow Web Hosting under CC Attribution 4.0 (http://creativecommons.org/licenses/by/4.0/) +HILLBLU_molecula.png attributed to Hill (Wikimedia Commons) under CC Attribution 3.0 Unported (https://creativecommons.org/licenses/by/3.0/) \ No newline at end of file diff --git a/isis/appdata/images/icons/licenses/lgpl-3.0.txt b/isis/appdata/images/icons/licenses/lgpl-3.0.txt new file mode 100644 index 0000000000..fb6d90b9fb --- /dev/null +++ b/isis/appdata/images/icons/licenses/lgpl-3.0.txt @@ -0,0 +1,166 @@ +GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. + diff --git a/isis/appdata/images/icons/linefit.png b/isis/appdata/images/icons/linefit.png new file mode 100644 index 0000000000000000000000000000000000000000..213d1ad57074a33f88d46df6d4106c9991fbe675 GIT binary patch literal 2084 zcmcIleN0S?V-2NtOfRw5?YAsc&NsS__u%u7;!AqLH+R8__Z`N@=D(f;wOa9f6B#Et6cm=ym zl7b@1k`xxD6n%-rWRCkglst}FR#vvvX0!Fh=eP17&pa+kkcrxLMWS4(V_@+6<}m+z zGs0W~CgCPyQbk3Di6YuzG#bYo4##}L8WZ|E3!spzaQDV~s8e&HP^CexNP|j~39ZhA zg_)mFZB9b(w?e{|XHqyE-nx<}tR#H;b}lr!0^~oi3mmUPaM?*DAQ*5WBzgdz!0DfvF>olCq2_G29+eN=-?V!XYmm`zEsUpC?;q%pO8c!Hd*nL2$*}wvn=d zsPWPVOG~p0MmpIP;yK<)1{+agc>Uq9(FXa6 z==FiNjMkL$1C$~IK6_z^yL8osWVJdPaU#qW!pXBvY5I?4OkDS2LGWPF9e~>{BJa5# z16NcxKud=@w_iClId(qb)zq^oZ*D>4PMi^#4$f#eNPZqO$ zvLZEi)nDsXsbtV3$#>MFl{tfBo+ Ds4vH_ literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/link.png b/isis/appdata/images/icons/link.png new file mode 100644 index 0000000000000000000000000000000000000000..13bc07ff8d2cc3365492389b8f4eac2262407430 GIT binary patch literal 2084 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 F{{p4slQIAR literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/linked.png b/isis/appdata/images/icons/linked.png new file mode 100644 index 0000000000000000000000000000000000000000..13bc07ff8d2cc3365492389b8f4eac2262407430 GIT binary patch literal 2084 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 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/mActionSelect.png b/isis/appdata/images/icons/mActionSelect.png new file mode 100644 index 0000000000000000000000000000000000000000..5a2385c64063d65991fd076808dde592ce07e39b GIT binary patch literal 1086 zcmV-E1i|}>P)U(e&6+U?F~^Dg|srFW||vkq$n)n<(in>EwIg$S`)SWHCdkHugW ztdbx$rX%_*lFb%euC)f)n041A9fTHPZka(cl^yCs{(8Feyz@T&asIkXxM02EfzR{) ze!lPT=XrlW-|qv>BCJ3G5Q!7&D%;oB$2#5+NfQy#H0}76_CU3=ny+j>yFWo-6)!ft zxl1Jp-QC^H1W}+$#C!4DPTZXbfX{VZ7v~2e&?Jq?vlJ1T2W%Tj^{b&oVl~qMwj^Zw z{)iJILMRksXlMwimlH(?FFyqb4*=7^+X_gd_gCJndw}#C(^z{3L#o3Pp+uWACg*~t z!AV=D*{srBm3tb1F+*aK0-5C>?o|Qwg}B$rXm4*{ix=lIO(uW`a|r_($;lp%hw<@o zbX~_&5C{QqWjJxkU@*8APfbmU&1Ms*dLE7@?$V}clGkXKkOFez>+2ke#h|>1MIsXY zc5uNurblpF7h>+MLF3$D_R^`Bb6fbdvu9^2C#G~`9zcEn(n4mcDn@kG3ZVYxH!T0! zXeH6fp^2ChZ{OmKrR3zo!a^!5E7#uLIV-N7{=~m4xyGEF9O>=tm6etjBP>R|j6h7? ztWJl+L4SWg#l^)0BbefBY3DPWDT|1Vj*iOk@UQ?YM=ltQC9A4xd@+~HMO#}N^+(SD zU~)FSbXmFoTn%Q6dbobutV5lN1_FV4MNtZSdV2PEbbNLznBQ`qDiH-ughRj=oJ2e8 zyUpYk8f&-s)JeVm7neam~2;OL?}YeKR+gR%B+unNd^r z!|bK&k7uF3vX^p>aCNoD(leFcjmT}o`(s47=giX^t{;oa|A4rNSy_t@*Jm3~-b?s) zg^RY$g&!#!GuDJl^3<3KqNygjTrL_K8fa~8-E>^DnWOoZ#SPuC`{KTz1F1c9I-P5= z!{HFG*PAfz9}&Ux@xFCieh;VL)KhSBl$~=evrZF)wfvT#w-EJ;)oLqW1-5Tu&(l{os_RJPO`ocqa`p2-`ZD;=bKgr0* zBxW@ezH|fAeRpD<_70?f+0n-G@-jZ3kAi{%^7HdqUS6iU`Z<|3ZC9#l56yRm-us(p zkGlYom8UU<19t%1fyaO+fLh>YMMXsf@B^hFO{;qU0Hfu6wA8?anE(I)07*qoM6N<$ Ef;!>{wEzGB literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/measure.png b/isis/appdata/images/icons/measure.png new file mode 100644 index 0000000000000000000000000000000000000000..9807b87e72d4d399adace7e50f280db624a78483 GIT binary patch literal 2084 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fY)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP~7rU^Ep1{{R0UsEYc4 ziTXxDOdK^B9wkwHf2|I?+iaCJaSz-*YJ z6+z-agD+abM41a+9KYth)eDfF>D2hCwvv2~64900H zP=cVrcpQb#Tm}|&SyIc}b1{-uMg~?S9ww9V=|O$sa~??ldtmP4z%&S11f26m l%VSuOkR5q218~tp&)}CyHZBV*xNSf_@^tlcS?83{1OS4mTKWJ0 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/mouse.png b/isis/appdata/images/icons/mouse.png new file mode 100644 index 0000000000000000000000000000000000000000..427f4c6c62aec27e06cbe3e6ce274048ac36ae11 GIT binary patch literal 16598 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 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/move.png b/isis/appdata/images/icons/move.png new file mode 100644 index 0000000000000000000000000000000000000000..92c0d2d2631747150cc0a3149b75a3ff63965e30 GIT binary patch literal 2084 zcmbtUZA_C_6u#y4?N?~UFUrs%{E!eg0f8(gE(%(NVkFyW75+KxHc`IRE%65$HGYy9 zf0$_IN1{|J^oc`kwKrV7eW{;#pZ7?Co;5ZjDP=LwGxwh%laa-Abu|XdF>Q5y1L?u-SBWS zRBJNM?SWGBqh&*(#;r?9G|Kjjd^0pH7IT4h#T-?mrs6diQOhDQmqyKwl4vMgS2(=? zz`ii}xl#H=L5mX&?w-dqHa1F0pO_r*kfZRLk+Q`8ojo)-JV1T@KDv49Cc$GbFbh!4 z=sgudtJB_YYj35Ft_Q$<@;>RIVoOm7{2V}<$}esz!??b5Q@L&JeA9ekj5i9SAwj5A zDp6fiC1J0Jz~P*Kkfe$@aW*qM)9>hbK+j){P;FgxNY=`Yh?W&gM9$f4;4ttxz(q0v z=Jbqomu-{nIo8!cGQgt3hnp~?ji(p0DaqtH^Ydxa$LpIxod@v8IAwgS=8S`L%f%}@ z)^LQjZT}$*#)WYkrniy+!@0VhwPBC9m!1ywQ|+!AE|4AIU>ZpyonM@q;=+0x!17sQ zQli)0+fAM)Zfa}4OF6kY&!D$PtQZoO=VT8!IvmtL_#b)udT9u)#rd?_%3i_FhraUC zm5UKuOKPBxHEul);FzIdh*E?`;d*BfYA)-vAVW?F?DY{*<-V%J+-AOO}BXq3cXn6dWi(`uP4tecX`?ryt zb4&3(;Q?;_fs05bTELz5*WZaX@l~x+H~-Umha8>v$lTRy?&#KTd*?rFq3=KyIfB4kNOD*;|?e@-HMY(nMAA2&0Fr>zN1osEn^b< fN2v_(=Hnfe%sX7rbUdMAjLDY5Qgic~%?JMnLBn92 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/nasa_enceladus.png b/isis/appdata/images/icons/nasa_enceladus.png new file mode 100644 index 0000000000000000000000000000000000000000..11b21c8da523c36e4363d8b317dee84efb9987fb GIT binary patch literal 1738 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 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/nasa_mars.png b/isis/appdata/images/icons/nasa_mars.png new file mode 100644 index 0000000000000000000000000000000000000000..8043235234482094d3c61d91390bf4487a9e091d GIT binary patch literal 2682 zcmV-=3WfEFP)BWf`rftVPpv1n3?Sg;1PiGa4$)~d8jhSGMX^Umd+>AaWop6hejYx&`s zmLZt#FHiQ)lfD0Yt^Zp8|CW#5?Zt2f8SUa+8`sazpNF4#@)v;`Gr$YJXu-qbBpAr$J6vppv-_9))RXh=UwLq8_uVJ&eE@qk0P@khy|{ki2(StK?oWLozxTmEdT_mC zCzrcI8iXPhddnLuCS#txJY{pQ!QCmcj7~6?I?zeM%xTP-S8mf%A9?TkN8We3`ar#T zBXIsz0KD!5{_q3XkN(IzPY$#BU%j~3yk@1NZ1e+71E}NC>30I#Gvmq4ih1pHGsr_A z4NkwK^fMuvF{vP^(oKDHf1ZBuOy|+ZPMm0?4zRk4C$HrF1pe4X;+x)Z$FHyC~Lh5R}aUXH-G4c z8=m~^$_ny5900icICgY&@}0d<{qZ1|qKYugh2>r#O`$Po(KtKPhKqYOFYYu3xTWbQ^;r zRr)y)8`Pabom`zXfh53ECYU*s3MQ3+D27nh&a5;pPvH5T$kSWKvoATjGeeyIO0oN; z{;B&rr>+NZ-+jc#p8D&5y=f>nbWvQC3=4<`i^>roQK2@d%_wVO+8A{M;|lglIK5@e8kkj%hyae8P-Jju;M~3u zxHJ+B=av=f7kAPR9D3KI59x2e^^2PLeS|R zQf1hIm0mdf!qw>~lYTNid2mUKSrt)H`kA9@n6)J9rh>cR?r3xzXbh?nW+iOxJEIbg z3@!0(k~`5>O%ZY3Ev>j% zbQ*)kggU~`%mJaB3b(E)-89g+F_gBFMwPRixB5^=r*>yjI-){d!}c6jyOG3zXod@< zB1|h|SO`f1i`vLS8?JCo7Z#OqWddd6qzZ?Z6IP2BWFjB|l1%7if<-4!+v>3fwr4^= zfg~8wg))Lh*BXQv1y!S;LnndgkS2<|Bigo1b1)ZD1rZ@jlu6l;s8B_iH&8{GRc$2% z70Md&;5>b~wFQ+syEE9IJCy}=G;MZOpqC3-5HbyzfeI9z_SUH?S=ws-a#vaHDa+SN zN<=BLRv)f)4LYgQOQ4@amMB-}P*zUWK#`=(Dq(8^m&ZQR?WvuPE{x|!6^(8Ns1ii6 zM(B2w2v`(~Oc`{b6NIHgTfhM(6^KAL4-BrUU-ZD0Nee7RDRQBgDf7nIn!tXkJaMjm zRA-euFt3F)DB?=l7_l*o7WHHS`*R~A;7%4`sRNlpP^cPVvS>qY-d534E=((D(I}gH z@Z65^(gcbGE{%=tnNc>dQuO~$7q<3qSI0JAG{U$v##Ll*-cUxTLD-u+?!x}8;XB(< zMy1Hw&bXAr&fMADZ|DTY43;wGg`*X!4uvbRT?bcN8G&mtin3XV^8%>1h!nd}J)grJx6aMRhabX1K z_gj+HQ7{v(PK{X!b%aGNZo-K}Xr0IsMG(B*L((fU(wX`%E`8@}SkU zS^A5N<52+~KK%6XK+QO?lu$)@;Ywt(0L9rFJ2io( zX~TSF99hcY*0sP|Pe|10=8B7Rb=sh+G_H?7^vomw43Gf)@=3ypl~29@A0GeE6Wdc> zd$8}kc0HidhHhHHi+fI_y;T-qX9~}4JC(uZajST>lT_`)bIcT%Bj;Nr;Gn?pBsHU@!y+M11V z1si?Xn+s+}9+V_+9nYEV1_OpgKvY=NPVJDXj5R%W*H_QHqkQ?rlnhsp-k?SEhSksi z&r^EmZ_O5y&s^M>;d<9t?FFjF7?r~ImXQSrL5SX3wq6Fiv(})9K!#Gswh1jNXd+}m z=;n;`Wa%SK=l;`&0Ir>@FCPvNZ$`VfJo3=3Yq#Fz63)%5glIy)qvVN_r-3Y05T%aS zID)XzPskD_sGuqoc>n|nfnKg09AxJP{ljBw~Gjq66)C2@wklSsZgW=GiO#oG^g=a3$ox03T3UpyJ`5w9Vh407SnP?^=RXc*VgpYCMKpZT*>|McM24M_jGy}##e`0?NI!SxIC5-IZU zzLsZG{Pi2>lJl27dC1G}yloN3KciwN($o*8SW#qwewHj|m2FQJ_AQf@&o^@OzaKpK ov915Td}Fh=`u%&q{9Oh94=A}Ocm(^g%m4rY07*qoM6N<$g8Zj36#xJL literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/nasa_titan.png b/isis/appdata/images/icons/nasa_titan.png new file mode 100644 index 0000000000000000000000000000000000000000..199a02d4bfb8d6e001ac70954ab2ba7470d7869f GIT binary patch literal 2593 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 T`3Fp500000NkvXXu0mjfdjsNX literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/nomenclature.png b/isis/appdata/images/icons/nomenclature.png new file mode 100644 index 0000000000000000000000000000000000000000..10def86dbb511496b533212fea730b77d72d8ddf GIT binary patch literal 2084 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fY)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP~7rU^W-a8%cYM{tQPZ!4!3qi(Z?2$i!Dn`L*2oMnh z4nQ^kfmj5p7RCpO{R83;Kzs^_Yk`;-h_M1DtfJTjwSmG?Kx_uYeLx%t#OHum6o`oe z4nS4dTnzI8%n(i>;|35OpDO2#Cvpm>Gy0 zfEWXiV(?XP`aN5NX!_ literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/office-chart-pie.png b/isis/appdata/images/icons/office-chart-pie.png new file mode 100644 index 0000000000000000000000000000000000000000..008a22e4c300f771083691bd0dd88e38904b603d GIT binary patch literal 2176 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 Ef-~lxN&o-= literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/openList.png b/isis/appdata/images/icons/openList.png new file mode 100644 index 0000000000000000000000000000000000000000..ba242e52626be39ba318e5269f59a35e7c4236cc GIT binary patch literal 2084 zcmb7^Yitx%6vzMb+}W9(?(A!JyWMu%LL!Pr`9LJ$gF%Z>1=0|ZM-B24qLF}+4?rX# zhA%=$B>KTeNJtb6Vt7P9XpD&_#z@pC0kw$<1q=n+?z8)x-JS8=DP8G;h-dTPnRDje z-<*5S-23LhvPHTYR{`k#i~E+-)nrm+`v30pSLV}2-uUdIJ~-@m^y`n`rigdP;x(_) zj5AE!-WS(c6!h%uU%JpUtjgx>xx4(wPE+J;f8T-?^8(y)&zcHHL;knlq{yHlcFpz)rq9&ELPyZx44;C4+CW?@K$BPZRd96_9 zyWse%gKHnx)*YJ_5fL;LgggbbNkwqT(GVsw8>mi@CO!9Gvu)@~%(yMoymi3_*S$BH z=s~aWEkFr1NVL5FG@f4S6}wpD?=Tn4TV~>B#X#J;AKY|?p*+Bawy&C-I(*{C+n>1L zs+db>tAa0`E6|cz4e#HSs0F__xG@FX3C_yH#~P&@yUUJ-O6KPMQ>hDl)TV9F-G8ZN zmYZ=+bq-j?)b6?#LOT6Z%aFUfviTsqk8XrFnnY-5gl)5F=7O{Pj%J-btHHI!k;&Y< z&b%n2Yr$589$5;jKDocz6w@<}N{$O=L0c%;O5`CvolduoY5J;RV*aK>(A#IBUIzqf zhegu02p8JFvLp5S$!k-Co8Xc-UX&wUdN!Ab-Jn@5X2d$tzx!S2X3~XPHGt;kqr-U?rJSTSqT8zw;^Ly-BEEI+PR=EnXpc=qolm zB8V!z>!w)j+60$;sr{+(6e7u)$mMdb^7%aGE?J2^AAN>+huMTG1ZMKw0!xyNu$t() zD|qasBfnJYW%N8e2f7i&g6CeqTVI^RuEQT7s;lrzfS(GdQHE2QvTS7%t6abnqqY2F z%^I^%oi91hY~IGLeSQ-a&JR_ftY}RvUx=^O9t`r=hNDwHk^giK|<}(~QH6 z9^Gcz*dJq~g~yVn2!{r%v{nXZS=T5-r{UmQrh?03Wu&rIDuGP^hw3ZfYH6r!`ODu- z(OSUyL!%@45BWqC`E(J5i5g1zDk@eT0@Z_74pWz~WQK42F{O+Ip1HsQdf;) zF1!9HJE&co+&Z_MmA~ziJI@bRd%`l>H4e!DkO+C4Yu>Eak-A;`FlJ@N-o1&x7?jg3Dw ztzZHfW@l%o4y62`G*!$88~pFzKd@_IG*wK783GK7xiB_0XclT1Qn>1e3Omz(J63k) zv(3J27eQu{ZE(c&uZC=_j77kN>hS09e+CvtrUM**7|y{Q3N{!T3^p)9LbOA}f0jQC z-4)({{LlP!}yzH(?;bO6^1XI761M-?AnmUeHNcSoMF6Q z!GYs57w>e&zibBo8JH{?{;)eRFmY~Y`SDHYF9)9?K0`rrj4%bDFg|kRNHU1OP0v&2 z&oB0MO#fK!{Qn}9;`?mYH;{Oj{j_Uh@87e_U;3@?$k6ZyB!&xM1jQz8U(>%oIZreF zVPEERYfTi)Q0>|;`YRlx1cl#yz5h+}PY<$z{~7)>ZWWyFvqNC6K1>|LV8-7pzyAH< z4Dq?Maso^di2nQUZ_i&w<_350_aQmFN71=lI_t}ahnK!AGr(FKcz?_QssVu{2!)FzCFfx? z1E{~!*49=FCWjIfFhM8{Dm#uKi4o$%lx_mX)kYWxgGToOAwJNxW!Bc#sF9ChDis9G WempKJUuRJRGRo7{&t;ucLK6T;Dgmzm literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/plot_clear.png b/isis/appdata/images/icons/plot_clear.png new file mode 100644 index 0000000000000000000000000000000000000000..091390a610df2575ccd84da2355ae3bb123dee46 GIT binary patch literal 2173 zcmbuAduS9_6o-Fz9y_zU*_~{Xb(2l9iHVwMW0TrfEY_-xXewH1Z9!|0^hR3P=L-uUltQbmRSLgcGg4e=VG)Q}+=WYO^rL$w@rgjIR0y4xf!NDa<_D2+D zw~gbjUWvz-eLFZP=k*WMn7p&VFfo@XG6_vvu&k_X`@;Z>z6J2*aQG0^TWc_cNh&5*A@D6r_q<_BL53}BVZXagq&9=o9_W3n6w zW)&C_vsSS4T0GTzu5_JvjZ&IFptEX|;DVPKVZMY3P!mPjA_vxPd99u6_Qy zeLuc38!|W5xb7K=GxV&*u^4OW5kD4GTl462+C3=WNfV+j^C%_Ud=_~nC?oX8lUk7j~R)lH_NqC^1C zGL&ixI1`8H_y|&=dnlKT`~)H(IR$RF6MYv>Z9o3mws}(_GmR&~`+uI$3CnqNnl_qK zGEj{T;-L^YJp-1g2nIsXIUCH5n(7Jf;L$I3K2<#vu&A2^=M@ZPCvueZ$%+EXGDt)d z7#fYkHzA|{ZXCf#0<|s)r6jx@8gsz+>k(%WbibSi{=Mf;ERbTZ4TcDA-OFJ#rouPm zM=BNtphIA;5A^$ka>}FKE%h_DqzcF&V`@4TGo?P(15$6{jCESR}&@oA*sH(6OejW=A znx?{T;h;q$$fOc*l}kt~6k5#No*p>cJ$mi*imC8v5$6}8NhR1=>+lLD7GWc&yxD~I z#kKf*a2zg|v5}caR+dpA5YP;Zn*$T@*b|Mu-;Q-{?WkQ}gcpiXagvwK#lU5&Rq&(bUBm3laEv*k~HdwaSUByrc||ZrAl4 z+g9G07)n^nMP3hQX(bsL_gO0|dK+sTf`268B?2E#L0KBnN|#7YA;MA<{D2Uw0^1hkv1H$6AM@Cm@ea+BA>Bkc$=!SQ zj4UP3`S{V$bY%{NS`YVdk z)~eNNvmgk-^Xc_uk{MZDO@4X)d|hf=@^1c&jQsJg&-d?|q_9LHC3?MoJ{%hQy?i&U z=W;!siHmb{Py7nDBnYB3K0YnVAK@D2iKrB#CtQ?)dE;ae8}) z-tO)mFlS4?b!+J3`T6B|hK%%EQ>SXGa&ry$Iy$~Cvsf&iW5*7cVW=5dmRAf8 zg25;gizOD7kZisx9F7K(NfrnK2XykviHYgq>guurbd$|fDi`s*06yQUKN5*eDdX9E ze0@Fg{i8=K9LsWm;~3P{l^3Yh#MbpQGRPCNoJ}W=+ZAJim21P}+ zp5^7WH`HoXA(8}MCV*zFrR7Q?0GEq=zg8=4P?Yu8*4kjr-n=o;1{NU) zL_oC$Ks8C~H6Rwy(%;_nSUj3^W#HMsianmWKVLa?!BGM|FXu%GOUY+Nft-4 z>2<>N1Ki7}p22qncDDdQA3SiUqEc$Km;`)Vfsyv80O;X}kP-=T@`1_=VqQHe-v3+w zUm!Kx0)2tFy&{JaOQ?Jj10(^eFhDpCu)zQpO980@%w&PWrIn<4M__qt8D8QHxH+G# z!i+N|#uxNBgcAS=2vJlsxtRiS&{@^Q(i%bS7%am_M?u=}3b`4d?GVjIUNRan6(G$a z#REJ=8xROb65v}UH+BWiz)PFL{ZHrY6?Rp;m;z1(4jX_Mij$Q8De2q;FXPiIOw|)K}OjH&J literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/plot_copy.png b/isis/appdata/images/icons/plot_copy.png new file mode 100644 index 0000000000000000000000000000000000000000..73b0b281bee2591b709f2606c710ec526579d96a GIT binary patch literal 2084 zcmcIkO=}Zj5T4!aX0sdOHm#MmDWMjmlp+*bMDV1fv{5XgUUDmzf(H);a}cE{9t6Rg zN1=Eq3Le@Df~6o{1pk3OSZFDsNk5E)wAp0yu|D&*8~OpMP3XJK&bzxa&pR{E?7Y4+ zIvg-M3?d3dMwN~ZisLvEG%sgQop=}ak|Y%&eT70{ z?4XB&2Y)iT@uXBLxxfd%pSV{P*=}!dj~_Ku5NUpGEg`kEm{cg(w6&E!WTWdkwYCOn zW8)9`P_bapq(mY~rg@HZU8D8&Oa%_dvgC*z%d%*8_B#av0cvaOph~4e<#I_Jkj-Xk zdHFZ>^z;(jrBVs(`)G4BN&Iba@Ct)^AewO4JEXD?oTG5Ki%<^Q-rlBME=R>;Q5?X= z!C(u3Hie(x&k-lYUegR(U0snlYmdhhE|<%kE@x0?V97L1l4YWuon4xqezy<`g+_|S zy@+MGcIj1BQGwA4;F}O^$pM+Fq^jx*+qR#BRZ6GRG&3`k9v`1*=IHBL`(!@lh{fW% zG8ocn2AR|#nQ|2vbrLm28iFJylS|au8FtSWI+aS%;^J58?d<~>7P?{$`^&Vn^ouf? z43jDBs=)jtqtGmtm7}h%i^5=ccSmUV#x>^-;S7B~jk>!pp-uA$qDhEt=ebKnSGYb^ z&5?qX>hozfe!nglJm$@%7#Qe34b~xBaKv+m&}3(`7`S$$)_LxkMx3oPsG4q)rfG5X zuoxszUXa(1zwlm7uNogg9vOxaR{-*6-;UWdF!(2->jrkuJX&KW(sDmGpn0ZM7ng&j zp)TP;hLUEE0`n<6Pa9e6e`wh9Uub~LDa?Vt*t>rvXYoJF%~U}Hs6XfAPY**=uh=m< LG#Z(`G4}Ew3GySS literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/plot_grid.png b/isis/appdata/images/icons/plot_grid.png new file mode 100644 index 0000000000000000000000000000000000000000..4001b35cafcbb77be5e4d36b36acbda284b5b981 GIT binary patch literal 2084 zcmcIlO-NKx6#nkKnfFFTbVLN(M6{3)qGd3nWsEt)G#1h#p+y-%MvKA-T1Zntkh_vh zrJ$8si*U5GO|)==pj}WaDcTf8q~%j=X5PD<^PKybA8MMiGu(IH{q8y6J@@0hJJ%0& zchy#JsRmFRjf8v1H}UZ6^h`ZE6C|hi#k#_f{JZyba+r{+vyt8b%9!RM22b{;2{g_} z>~x|=L00g-AWkB#X1$23o5sM?!h_? zj}$&b+jcdszvcL1;$4J&qQOV{tsS|&3f(8bjheM2yuu^>S$t7R4slL~5P=4b1sY|w zo$9Yq9LlR={$AtQ%@y>FtSLg}xfr*gVkuNmfuC)ScqDvw_v=~gz4aM(M!=>ov&dA% z4(usfWR2C%&h9fiVvv?$i;N%1?MJCgt6&r7^yv~Q3aA9nl*Xx4>LpECV`c8q6z~T= z!7&aozc4uwpWyeool#`d20XSG(riHd!#Kkj+B1Ttr6p{Al|cs*4)&`@iN-Unaaccm z@K`<^SiJA%wGNt?(z3XGX9#P}q+p(+d=t(EMxjX^k!7bg6l)BT@d`UzRY1z@mTkcj z8vLskHLf4?jYH1WI$uAGCw1fSWDMA8zK=JoSmQ~x@DD!0xg{FcoL=%viFIiMng;m! z>++G;Ar`OIyFK=}ZWLZy$NrV$MB>u8^^|A~i&_+tA_dIl_tKo;4s^^VqZ| gZ5M*UU`q+nW&??}XZnl40QDvi?d%Re+;{BCPp8u11ONa4 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/plot_hideCurves.png b/isis/appdata/images/icons/plot_hideCurves.png new file mode 100644 index 0000000000000000000000000000000000000000..2c73bd57f86988265d44ff385eade3f7353ea8d5 GIT binary patch literal 2084 zcmeHHSxi({82;{^joBDwU?#FB?X*J`T+mT)1f;_@zQR($dB!>vO#3Ov%Oz^N)_et>W0^8 zMF&gnt>+t}R8*X>AE;1Fsbr}ZzF^5{rAnvWwzq!Qdag~;5GKU`@gFH5rRRRkaoi1= zO!k9bueYrAk&=?Ki)#IBj%ueV8TNtT9;mDqn(TJ_>7t?{#m$>H(b3Uyy{4vS8=G=C z9L~DBx=nd`d5Fj3v6hyWSE>Bj>avHA3YvP2a@1n62st@9qE@RFbvm6_E|*_onVg*L zRjbt^n`>%n5*U{9I3-(qFaFuFfnLu+o#j_nR?4YUUJwMdwzi_ItV}2_F6P;)fq?;` zzrUY9eE2Z3va&!A61uy)qg`EHqoOF*5X8-J5;puDZHWkG)0mu`#MIOjM-sqhv%zY$Vs>_xOHECcnoK4GVa>$#4dYwuxT2t-pxtOR>O!Fq zh?wbznVA{n=jWrZuMdGhAn|;X0p;c87#$r&ZfPr&cljv9HM zKa-uEt)YZXm4-F;NT!iOG`noA7jiUi)?6U2;>YD78b%_Fn~!G4u_dc z+VS!6GjwlZ9iQB~b?YmZZJQPSmoH$!8-zrRW8eN7#3TxIc6K5oBLiePFC$)9SV(5F z)YjHQvJ%Fn3tfnF66ljvD68Cu;oq)>olfT`tmBg0tV~%?$G0f47Qvw6vEh-8IM>#O z$2VIbl}f>^MP!NnC?;w0>5X#Scj5Og;Yd|Af&m{QaS`(*Pl?f}c#-FyWW*^mcW&@} zJP2;_HcW<0$i3s(k-H8PV*`lAVxSI0!ri8X!R_8+Yi_2`LJDzZg_WRBjDU%1Bs%xp zdold$6-+t%5SqJ<+zbO$DwSt>dHF0^=@?73&o>dApGQhr z8Kjw+2+#(zWdB($=ypRTm99t$-0l&TTkLzRNwZhJhDI(T5Ern0TRui&rg-#f?@vU0 zj55*JM!mk*>vEYFolfX>>_B9BF;Q2NTno&aE*CU1*&j@|t7MZ>b>^n@@&om}dCM*? zv#?4Wx~mk?#;dqnMmX?;LC!!!(?i!J{xLmGVjBqVHet$gF(~a~EG6*}LAW5x= zMx%&MParsa8SZ%^B=<357R>#$BWQM$Mr*;md4Ghcprlj5^zsR$Jktnte-3##h-lpl zFe}tpe&cN{6KIY2{`C*NkI;-xt3lS&M-jOA1+$R(hB_EwWVGUfa0A?cMsej*bAaK$H2y=J*8v0I_ iou7i>M@&F~-s+U{$BFBshZ+)=u~!_leOG?uoxcF24EhrQ literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/plot_markers.png b/isis/appdata/images/icons/plot_markers.png new file mode 100644 index 0000000000000000000000000000000000000000..f8cac1d3cccaf06363c6022b7a611ba33981eb92 GIT binary patch literal 1549 zcmV+o2J-odP)TG&j?Cb;hHjF2B%e!;@nmdb?R2bra@mA zr*F&>7wV=Gk(6w$K};l@FxJr-TT1CDtQ$lN%nlLCEp6J{miGR8`rP~6`#fhau6D#^ zd*k=rH|LyBPJZY6Jv8ikUpaH&a->cHkgcs!4iC%jiKdfCJ~C~gh}xY}Hb*|b ztL0d-eC53H*y+jeywaM;du(cvO?*Ylvp1hfe`(BtH(mtLe%F&KmqSAmRfTyfiGzPs z_^|t*+oY~bIW#1Hv)hmW%AZc_CBo+ulm5k%ciiqC1rQIsWxi4CKixAjp*w=sm_Cv# z^9$~kO}~C5ddr;)rvKi5IaBm;H0uw$b4E?kWMU#=YEg53P!Wo3ySVa3jU!@@@?c+6 z(-EZROO)Oc5aNlFB&0>v9Udn*Hmp#gNAoeloD zxmg9Me@wa-FTfdn4J2^?HpHKQ4+G;KFAul<_uc=OHn+&9w(OOL(4NY?`DoRtsHQ2b z{gx;05=Q>`g49Wb?c2v97wP%i>F<4&Wb{4nG|%pO(H!{gYJhk4 zf3Oum`^TlMN51faVBtbPxf}#^Cp8-E{4_MgNu|K$ zg7*)@lMjNG!BMv2o@m^296+fEX(pqiP+Sa}2DuzePSWy+Qm`eKK1$e|%K#{AZ+7cA zo#6F?&j-Nn=?ADN6WG@V$PRVX+*X=S04USCtuQkK2MGYv^eSL!9Gs5+ADeG^8b3@r(>q94wH%7wA{ijmF>M}=WK}gHDf1>-hELUc_2eUp^ zQCQ-Q=_g`kp&Iwqq)tGaGJWpVWwH2~$x{DE)3s|V%N@Ts8TA&fvVCXQ<|ke~wu7&! zZNKW;@x-g04FDQI9!=5I|9{Bn+p$;+RKKMJEAJJqFjzTkBZi$C?yyoL+dYxjhEx@7 zgqQ=@E%l^<_@0+v4iE@TQ(38y&x2)wZG*!BlP)-M0e*HXI0|2zT3mq|y6GN zHr&~ARgVMdIdIsg*nov;g5R%DR|n~IA$>v=l96%n8_5pZG#Y88Fle~s}}@pT<>OSWfEzOksWG3syKZ+ z&qa%V3MA*iqceFY;3gb~P^bVcDJej89WohC4Y(Ow@i?oh<+Lg+_nC9Hxo_|Joxfby z{Ce?yf6V|izVebAaL$3hz0f%eq&Pg7WNa+RrAr`XVaArlGl}Qdud5I2UbY5DQpe7k zTDp9`mXB7g-F|o5+5r$90E>b~3YeV(uUz6XfV4PtNCJuL({SHULn;iTHRSbZ#_9;BF00000NkvXXu0mjfkYe@2 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/plot_renameLabels.png b/isis/appdata/images/icons/plot_renameLabels.png new file mode 100644 index 0000000000000000000000000000000000000000..f02cb1a66da551cc49d7e5099a7e73871eb38510 GIT binary patch literal 380 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BSE>%y{W;-5;PJdx@v7EBhrLVIFNw&1LhZ0)>8hx;TbZ z+*&%(Hm})1pml#lo^arC@e_=fo^zDEjLDyxZl`hni}u^oObWbBE4%*Ti$Jr@msM<%QaBN!E@4yDD4C>{`ZyhPDg2Huf1~A zDfSKLxt(XPS(|^nx`oZ4$<=h_yIU1Qi*os7`?PXYh!1DB_s-pjQ zCeL5?v-&}{qudkOUPJo>JJnn3SAJ5~Il;_#pfIyVSv($3cq5N65}D8EI|K+da6|Y7alKv_ z)xKRCdH?Gb{Fi6;^Xp3mpST5ZdCDwPs(%AsP~5>rqT zl}aT+*bPz+6&25{?U&@D71F3J-ep#+RhV|WU7*qUH-+p>Cc~snST2`^P3xYaIcBP{ zFOo|jwE_BpDlQg_qEZe)kf0+{4prPjDh=7=cEof@I-MpCo=hgiVbT`PPCeF4!?MO! zPscRTBb|ZZBY^I>Pq?E7iF*`i-(gy!U83UdGQUAc5ui_@K zNyeenhPEQ6LLD7kogd=NK+}QQ6K@?Y!>-RaUb__KBi6^D{p9?YG_T@xI>UayzieW^ z4^V09@)`vDfJdQw8+Hp+DwPq3!||?AD6CMRxxdk8bu!I0ji8iHw#<8u@m-L{I@BK2 j$@Y4^x7}_x{S$4jT=2~xfbm53EBO*GLoYO2;I zn%ac)2Qf{nXf&lJ8mm;aHfX6V7^B3ZR$vuusl0dD_j~u=>zOONU0I|t(Mi5JGjq@R z=FB&b`+Dt;s#GCc0FYX}wW6ME7K1j4>VckprDT#G-BwkBNqmRrHe~c2rV;+>t&Pu6 z#3u~gi+dV_G^lyD`u4ap0NN^Es1TV*NA+ph;j9wA0h#+ihN`XUo86h2 zc%yP-8lS&LfG9~2Wf|cxFh1wO*Oz=ghg00QaMJKD5lSF(6(b?iov}7TeDEN+$Li1R z%FPx#AKsG5->6H3&E?0UgW&YT?g>DjN=qn7;cw81Z|NF(n5-~DL8e4}fgt?;ASyPl!50^2X+4QRf*P_UBS`q_+i8yq>cZ)+nkgmY z2-$M$bXoQm7wQD3KLoSG1GCwV`!-~vp)?P37AqEP4lLT;Sakd0^afCvuS=dcTUr^< zs>BHhY){u|Y1v*_tS&Td$wQr?K$*X`BnP)-B@wY5R)?Ep34#~YNaFl;QDP94H|ue@xfm)bj9^%T+vQ~Edvz(?R`b~4 zxCJA#UQ8^8@X(Pyd}RDhA+J90G1foPh1x@(L7&DW3>m{$teBsk8e#p|D{fb+D^ zI(w%th3-A=I>ZD#*lt9JD+FtZr*o2k?u!I%H{m!LlG|>=z(EV30$M?nC$%t z(?$Re(*CUMbdqS2|D z?=kuZOl3y-L8s9~9k`jr_?A#LLjq1-6dg+OWjHzteQ$4jug|$_o5FB7Z*uN=?m5r- zoacPcbI*DC)?MuuQ@II%rDI3y?NpbrA{prIJ$`>9Rfc^#+gsto5DqrjzI=&Vj1TSb zJWL~wvBDkN?@3al_((@*oA{eaUvkxErHoTvvKc;o;XJ?|LIXxmHFzU zfk{DCQ!?4As>rI@e!a?Uj$4k>WvNX~OohYto*F5Z1w;&Pu6Oq6a ztt13qkiZEdZn&lldpkL3V9JO$$h#@S)T&TeRtwEVs*;W(8S|smb!P^e*7~ogy_=FO z1-6Q*!3PnG{0@$?!&F#}bZX{;6r^o8d3*E0(S)Kb24#wB4r$t`nUNO|@sE-VQ;$b1 zG(++%P=;9HyzU?rISSrThCpB*(PSp#d|=i#2)r^n6@z2lci{CB$&tV>Z+Wn_?HM@h zcjL(O^(bGz2}Wx@ws$>%rDPR+!{1ewfk85w^I)DC1J7ieY{J+YWu-D>?S+b-5P4aL;6z!`f2%Rpydw5}1_ax_cQ zWlyBn#x9=AerUyy(=F0JI5;@T2Ir#6N|8roXNUJPzO$|av{(On6Jg~H&@+?edfpMY^>OPdrJ`(a!t0Tc<0fi;sVw*1XvTPSTQJ;(QBvKSX{^=9wM^L^*M z@AJLi`@Qdb&UwH2W{DtF3?GV}Z+4ZkJA&s*0 zSnKPw!pXqB{bK7DDHU%xPSh#9Dp^Kp`3L9JXGr66*lSwKALe=#tubOekpC$IQrh=J zj^l30WU?FS>FL(pIMUM6%1JlOY@|C&VBGtJyH9gh(cy47&Q?@ZDCXwo;B-1~Ha0ev zGLzfwo@{PzezK^j2+3qJ(bd)UDycucyX@ab1({wWOk1s1!Duv!8jVKO>2zVaTz;8B ztJQ|pYPHC09UUD4;}SXvZ0$Yyd&GJ=o|_^w*Vos}DNzJ6B zKsX%c{C+1pKV=I-#~@i>%9CF6%?W@cK5c#Tyw zi|6_Cd-v|uP_dAbk^*|h%E}6QdwVfDI*O{QD$wy0%rm7$Ha0c}>I{^Xl|ir9gQYAM zi?K9mW@l&5)3cRDe8yt2oVJ#hD2A`}BM{z%L`Ustwqju>cQ^WX|^Ll%uJ2rtyc+aCBs306Fjay&~|qhe)kY;17q=psstX(-eskjh8kTlfXP zE&mQNxy|`j|JamLiv?13+B{W+=L-(jVEo1xFlZ!*t|gIcD1;}p777M~m#CN77ZjmT z=oKo|DWf4x8(sMc-o!lo>q!*UJcnO>UqY_c2+SvoSeKc-ue#2%PkLu+5DI>qat4_8 zo3W%aCFeZ1uaVA~s70E>}%Avvo<#`7U5j>Z*Vwlr;b=;sggJ+C^X`g@8^Y!PWK{3=U7-+VBdv%lAWDxrWPA$dHTd7^<|Io zTs+JLlM3rvCqOQ+MF0Q* literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/plot_switchBackgrd.png b/isis/appdata/images/icons/plot_switchBackgrd.png new file mode 100644 index 0000000000000000000000000000000000000000..688b71196a0cbdd7e57f8a4afc82a61e6470907c GIT binary patch literal 2084 zcmZ`)drZ?;6h6Pc=>w#;+Lni4K}Fa=G|Es%Fl`iMvXE(pM%>Fs_Hb@<1~!*0CR}Ja_`?{Cx&&mYaTDgSC@#Dlt|$V^!@ekeb9c@UD%&zoa(ZuX@A>XI-}&zC zS1)hbsFEAx0H7+^WGcaN0l7?qpTAyucP$Q*H#ToH!F~80%Ab$5RN_k1flZ|!VMHT2 z_u1~!04_=o7QAGZ+T`K|+KggNQwUcs6qxc~$%*CarKLU&w>;ajtzv-bY2Y{x0^TtE zv7W7j6Bxr_8U%0)b~AwghY&p*m40DC4CGcX35&PodChS#=bVr3yA@ zyZsD+e;;@1lpI1KFDA)g-#&QtkX2psqNH)zBFPKD{G!K?AH&_dcfoGALzFZ+IAqnz zT@8~V4l7^~gzw>vxGuKTJ8sAt^`~x)Aoj3H~?wn4{tZE;0sci9~pQZSK_-I{i9@LIFOX56=riAP|6X zI1DnG49}j1<;$1Dym|BDq-v)0KY>Xqo&AIFxs3Pj1qEZ8y7ct1M6qNY0l8c*-X|v~ zd0;w#JTWm5GBYzlsZwq(I+oTnzQ~461`s115u4%I%6}DI^)`Qf=7%2-j6QkIS32IIq&%I%_@}*L_R630j_l%9fcRO}~5&?-Ohrdyu9l3A556VKiLBb zed=&K)N%skoTo+>kO@YgJke9`)Fg5tHZcmDmYtCS=W1%;TvHPm5)weERPvN)G#W6O zOwiienkyEI^>=a|VGL(T0~0|AfknXC3^taf&saTzro++=MkB-}C&SLITVZKd7EcKs zL`Jf+*=&%7>&du>8j04{($cbYD8=rK@7It_(D44iZvaJFEr&eX9u5pJR0HqqKUP;) z$M)~v&l(yUSYKZs^ZWhm-o1OQs;Y`zxpHOWk?jY0rHMXAP#xlOYXD@IHp9ucti5)( zTNbO;>f~~IRA#KdzaPrW%K;1Gx!3FUKvYCUMFH(gNlAeR4<1|yrz-RaX%`?UuMA4s zySk2fghDBnSv`i0!ek@3d@$X(;o)Iw7<6=W0A>tBLqkAvq(ksfsaC74?aa*N1Vl7O z&&UoZ8V(#46&2qgk39qsF@wPXWo2a$A0N+O5_*?VW|Sq2j*jw;rahR*nvaGHSFGS~BZAapGxi{d>xn~>AK4DnvBhEml}g2bCo1R?k>(dKUJRJj zwNHC`0&`cI-v%%q4$n#jraL=34O&E{;JE~By|fN^ngypAbr>O)ac5ll=>Jglv)-G26L z{Y{E}`nn-Udc091KX-TgaGjsihPJl0k8vl$6}WPOnVHt4Z2zY;5HDqb@t0PHM`S+wK0Ou&^)- zInBWLIDl&T>-zQUciP+AyAaAh>ncPKD#F`eJ=+L6BjCH16- literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/plot_table.png b/isis/appdata/images/icons/plot_table.png new file mode 100644 index 0000000000000000000000000000000000000000..80df188ae54bdb77df7e2f7133a2964b72e7c021 GIT binary patch literal 2084 zcmcIl&ubGw7@f`9-54oo3?W!hib(OOmx?`AQre(~5WIv2DS{_^5cH@B-aPvUM6hTN zB}D19P{Bk0iySNxmz)Yowvp}l-XxQ(VRx{Seqmx=#U9U<|@78Y(A ziR<;TUld+kyvz6j@$qp_%*|a@gq=>uNF4Ty!sH^cz~-&X7}?(5iLpp&vVpVu_c@!$ zwbxUtPiO~IlZ_rE*2iZMF`eG#IbLrxcDGus)>J5Sxtu7K9#mQ5YFr^}wU2QoX|gd{ z{dG+x+c1f7^TLj&#j3{j`qwSb^G+KZ>7UJJMY&v5HI6;UraGEzs>X&JDl(&gRVJ|Q zXK{|z2g3I*QXFSyFVX;|$p-TUZr&!qFO)<-H@M{_Pm8+wF!BM=7rOpZ!#bG9m;Nv| zu#(9n-|Q}}zV8dn2^CfV9dx6Yg+3JOfc1h(7w#S(yjuEpaDAD&!b&k;zqj%B57?QU A%>V!Z literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/preferences-desktop-launch-feedback.png b/isis/appdata/images/icons/preferences-desktop-launch-feedback.png new file mode 100644 index 0000000000000000000000000000000000000000..8a80d44686d206ee88ee8d2064649d33b8354709 GIT binary patch literal 1654 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 FV1f>+LjC{% literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/qmos_area.png b/isis/appdata/images/icons/qmos_area.png new file mode 100644 index 0000000000000000000000000000000000000000..2cd4bf4e2cca40c4c2532387e7d0fc17690f96fb GIT binary patch literal 2454 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)4%caKYZ?lYt_f1s;*b z3=G`-Aj~-FC-YLEAbW|YuPgg~E_Pu}cAJ^T%0Okxo-U3d9=wbaoX@{8{{R0UsET%g ziFQUqOdhp>U*^T3_qT~VBpnIhdUI- zf?sdnGH@#?GO&q?!WEFpV0`lyMGHzCFtLG(BFX?OKOc$#C>Ah+yiOrtWI+iO1{4$j zeELkG@xW*S#u+j|vF`srU?ie}|9}57fPDsvOc+2efuZ6cbs+E$O2d?bXi#zjVXQ!g z4>e4&D#9)ZHh1Xf^f#j=IsFmiKnZd%Q~loCIG%e BT+jdj literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/quickopen.png b/isis/appdata/images/icons/quickopen.png new file mode 100644 index 0000000000000000000000000000000000000000..813a1ce0886defcde6f8ceea774af04c7e1cde6f GIT binary patch literal 2084 zcmcJQUuYaf9LImNvw!aPZgc-~F{w>j(jzgnp+O&N@F|kgoMMrp4?z(X@}O7{sxN{s zJ_x>Aih?f%F=8s!+LrU7($j`gdr8G=N~39-yEf6}5|T^q_Rs9>jV&6THW_UP14VjS?PI-bp`qSh=f8$tZf4d~=FN&ZUQkUU)Kw#+6YM@g~g-4G!)O zXtbj>j{n*x0zB#>2v9&wM2=pvrNYHr{_1uJZ`asf1Q70TLa;AcIQYg(_IGWMDF|Tz zxioqaYE69AG{0kp>geYqQcx>3Bc9qPRc z^@24ql;ol_gyX3mdq@y52qFXITELhDe`dByr)OKQ)wHj=4Z)ra#5C1|$;yH51C9n< z0zoi<=M~mxRrvfe{@z9C?<%dvX$UT-QX&MAHn5w#97`ZT0^?J(z_Bq*UB=7Tmei~Z ztWd+Nx{bhS6Jyz-EZVil9TboNSh9FW28*|Y?2D`6^8hF>N_4eKt8sk6o(xnXYJa=c z*V{wFULPzHunY{>rvj^rj5n}AOD#>~IeWSOZs(fmkXy5*NU^3%})p(>L>pH9oI8 zSO8zJ*BT+jT;`Z}@-);&w{S38&QLxr`iH~?0-C@39*t?es3Nqw?Tj^@kQ{eKA!B@of zT>MUUDsY}p<{olL>CDW`e;aW!nPn}qB6KI5j-f+Tv6v0_3t@Xaqn(l*XMs6(k;Iq1 z(eiZeG~W@I%PBFg3ZZ?fF&5PTEEB_}E85xe7W&;`WJ$0Bm24KAoyZ3f-{hqrq1e%K ztgo9q?l1<^Q!Vq8v+6lU?R$npHnMYzHb>N5Y987bjDs}PscsGQ^g7DIf7hFEmTa*g7@k>DZN_smPDQZ0r;RmJ8136Ytu nA?umBIqw+tP1r-||5`sYdHi^O@T-{jk@VrC!)Kp<^@D!^9dM4O literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/qview_NoWarning.png b/isis/appdata/images/icons/qview_NoWarning.png new file mode 100644 index 0000000000000000000000000000000000000000..19dcf363dd1756fa09d6bba77dd65b0d38579eb7 GIT binary patch literal 2084 zcmZuyU2GIp6#nka?0?&B+0s&KOUgeKBSwiN4Io$pjiDh#gD4V%54>m~!9*V$UyP5w zsv#pVbeep#C5kX^2lv3oU&;s_C?ru9fyE{ME@62{8M5jG-W@pa*?sva)?z!*n z>EBtOUYZ6_-?yuGFMW$xGS2(?Gq3m1#ScBVvzLAycK>wR-NL8T(OvtGal{odwPWpv zZ}Vm1&A#2wCWh0o+!E{J`7b}_n{WDhw?DtRNqv^sUsepMT>~(>*TYKAAjQ9|J&xst z0{Y>qZBTfG)+m8mBd;{>Ag0e|b2y#J;U*ju%1v-C55mI$0*R{u6LjSw#Fkh{&vdMQ;kGFeSr~Xv8$~!dOWAH4Er{ z50J4JZk$^)e%pOx*=oFN+0$6AwK}k*xfz~O#%xfA$t5Z=0T)0{6mYOyhRNH!3?fA+ z2ffd@)?5yE#>NlYw*K5IOrt-RL@Kb#AzOSU|@L`piB>6C9ur6r`7^VP9jMZ z@R?E(jxN9=mS0iZERO0lV+5l8nZJk)nT@b0vQ)%ff>v!tMEXWkQ0KWJp#3pQL5Vy! zz~%h!#Ly5dYTjW{!-lA=Y`1`+!mnsEJIR_AKRypCz!CU-xnYi5y-X0_#aLk!wrhuE z1dE}K!uX-f@on6;hmeS6Ffp4ZdxrcEut!=+r-TXteV?;M6APM#wz&5TES;9H;Q76l zX^o1S!>l=n$}Bg^!q%&C&>WP^N=y__Pn|=PN@2b!CPug#hy}DLfb9frkMcJ`Wcxm7 zGPHdoCt*w!FSQ)u@bjpl41Lb4DtHyfRr!%#(`!zWX#%=>nEi%ud4h)&d)$hxd{j-!Gd{Ek4bb{ z=fn_jyQu|d4C$vz=@aZ1sIau8yj<2Q+W^=O5XcJXquQ2dc_-f_Mq*`5IF`?bp+CuF zFl;W}#bwpwN^wH<>OeIMtAzwJ5ewT_^pqUX1UO<@W!X90NRnhqGSs#T$1DR==Awhp zY!MZ$aG_LG{oILZ=Ih@K6Ht;W%N9VpW_C%d5= z5(wJskgvw@gOgW1fk);%17xep&XSBv6OshE)Kfr1vlS|Hp{~~&7VDQga~RC?6uCMA z&%}?=_n(4}3wRoZcr(76n}O+7)cU|zF#!|{Gd?eYx+TT>X0P7e$S zt>_wf;4ozavu$)qmkQ)C1v(hW;^PX~Z|Fu1Q=e^Egl{EL{QaN9w0P^}Nb+a(mW=6p Mw!inQ9k0Ig4?x++S^xk5 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/qview_Warning.png b/isis/appdata/images/icons/qview_Warning.png new file mode 100644 index 0000000000000000000000000000000000000000..098e275302b6a0342128c7ea68c9a8387936123e GIT binary patch literal 2084 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 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/qview_line.png b/isis/appdata/images/icons/qview_line.png new file mode 100644 index 0000000000000000000000000000000000000000..6cc2070fc3e082748ac1b7787bb175af409af2c9 GIT binary patch literal 2084 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fY)RhkE)4%caKYZ?lYt_f1s;*b zKph)En6WlB@)uB$y~NYkmHj>!tEir#(6bg7pvXo~7sn6_LB?h5kw1VcMgf&W;D2MI z&Htt*4w$h_Fa{;`|LW=vp#GfaJXwsz#k*kU zkZth)loWP`|Nq+=I5<)m#Kq$nb8}a~3_TPYj zu77cH-~YF@1(T!^m*W52+)RJn+`9e+2mk)x+?ol#UYnL$x8im|C_9aRiw=H+c;wjx&1Xcy)2>y$VwD}(y`R!kMc`7;jaq9US6vP26 evAl397}gS5?=thv9;t%b01Te4elF{r5}E+z$cf4T literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/qview_polygon.png b/isis/appdata/images/icons/qview_polygon.png new file mode 100644 index 0000000000000000000000000000000000000000..7f8def5b06973c6dfc3a03bb6ff77dcbcf1dfb19 GIT binary patch literal 2084 zcmdUw&1(};5Wwecy4f^wOPW*-o;=nbLRu;nBorn62x22vC@HiJm9&>0qy{OJND)f$ z;6a4m1O?HYf)xuMs$RVGR(sNu{tYEUn@!$0vrU$LqzTsc(znd++j;YTJMYcB*{65L zMoj-DKLD7?(ZpSPUSRQg>Hh8G!gYFhXK#%p0Qq|L`P~cBv_BY4KcpG&SwudYE|b#8 zC2tQIzx?|7?#t10o)~F1l8GDlu62sHMtYwt&R7$5e=(Q)0hSejGOcr;RziZ6${$fE zToE1**6sfF+2%3~;N&ETY88N`QUO?B5Bv|5nQkz}%?n5#JIio=^|)P4nV``t!#y4V zmJ_r_up54A;5OPB2G`&q<*|cS_eI%bL13H2fjePSz|1-=xVp!@6*V|eUxdSDIX?av zmzNtHunk+>8o`HfAxzT;`FvRP_GWN*_XGCzU2MT=7*fHMYUHVajt&EKU8B@P$Ywjm z^mGimy1o)T-au%gP{9oKdUdkp7)o0#OF}e?Fh6fXDD)Bs2OrUZI`0U$YG4>h9&<`m zsBTDG5G_hSi9J04D=Y07iQE^%!v&1TgGcZjm2-M2KtG{W@;gOH$||g``T(&?1&O`q zqGT5*Q7o2WdwY-aJR`QYzB@Em#{s)^b{D6ne#6=too@m&u$J34ocdyC2e42$AmiuS z<|h9Sl%{TlGDI)BF1dDa>e)gn&U5Z#ECym}$q=E?f=s2};LMEap57YFS;3%Y@L&*d zanUdO`v;sh?8cP&!W}f^7EiBO} literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/qview_rectangle.png b/isis/appdata/images/icons/qview_rectangle.png new file mode 100644 index 0000000000000000000000000000000000000000..99a113be772668c194483c7620450e4db3b2f886 GIT binary patch literal 2084 zcmdUvzfK!L5XN@_`;5VbkwU=>L{zj$sfcVD3t?G6$R7W}{XrE)|V2rTThhOU6Y! zg}i)!KRb9OL;lT1tzu$)KA(U6B%ax$_10U-IKg8(d#xLBM(^sI)#$RAd-1Y(yz*mN zJg4=_+Rkd(eu-KmiTKaVQg7Vt_GMn?`Y*?yw$oWa?o0w0jmoCo7LU5_?)=ungBxRv z^ohsL&-?wUDP!b`2Loe!y+oLJ)vm9NDHL1~U2a68n8m0?Z8i=Ck&j0$1&`z+t(=T1 zAjHKf9CHUn0lb0w<0-UMkKPId}ra+5&O{!=Zm2O>l6iA%sf3$Aj1@s@O4fU&^QfJU#8z zYT(3WA}nY(rx@$7AQ)C<=zCCDhUS=N)Vjw6o6>5pTNnGy;L!ik$^dYga=8E$z#ES@PLtkS vQnXqCP87?{_Ra3D`;+#h=YKoK^V9y3jJfT@5BC?%eaNX-8@YRWw&Ao)Cc^YkuPoR>=V%iQr?TwOh@FL5#P ziub_F27l%2bt9%>%rN{_ds=t%B1)t;y?D28lk)YOy&r_)2p$$eTwgRx-)1GLS6 zu(HyE^z`RyZm!+9cQ0-;J@M;-X!mXn+1b6=v!@&d1;G3FJ~cM>g?rAe*C+SZ9ffi9 zXiyzHR)xYsU||6;cnag=;_Z~0dP=LWUy1dAn2M>mcmQQ(9+PxQR%_L=vUq(R$JNBd zB3Ekca&%l%G3Dg6qOQ&lpAY!@6%gW;RdEtU`Q#)pHPyxodYTvX59NO-ro6lX)Yf`T z(nS#!!z|@~H9jsI;AAu^teDc$G-PBvg5Q6V9T3v*-z}wUC?=`J$3sm`0n^g~a=Ysy zm4_8mR#va7t}aIvoF-OYqtchspe)w zrKD6L7<_>4?zJgoG@?#ij1>|e7@D8AYVY2G#kJGS%wY?_FCvKw1b%R+HRk8tDmhul zzJ0(CDXp3i3c1XhBS~&AZr5x8D77(l#Yym^C#-<+p;hwM)KQ?qcN(rRc5Y}%k`O0)p=Ilr#^l> k6^;An?}pEpz|Q}t|ABSg&V~PW+6|H7-G8v8ySV!LPjn<$WB>pF literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/qview_segmentedline.png b/isis/appdata/images/icons/qview_segmentedline.png new file mode 100644 index 0000000000000000000000000000000000000000..394b0cdf0fa2102f888d67573099e8bbb50dba85 GIT binary patch literal 2084 zcmdT_Ur19?82`@QuG7J^Jvc*%kfHd{OOTjKigz1sXii!P8={sgX9xxUi5{W|3xa&8 zUIxAd)dEvf2*HOTQNFB~dgx7w1cRhNdeFPsyPK;OxpB9^+80at;DTfgkNehsl zm@y+U@2i0Ts9jwJO~MD}6x`eUPT(ye61kBxCr}ip}ew3F=CcZ%;5htZ7;tXWD6eP*cg2A5$ zM`CYp7`C_10Ant;y84yls@Ds`(vlV`;P`mTsH08;=_y)~M6C>4TV*Mbx45#ByfJKc zHUu`?T@b}L=x|)-7$?m-lC)ZmX@Y};Rty9-acb(Q=G5sBZbPp(rgnBdKL~57NC$9W zzzX~OA1IF_u(`Rx_#W^S$@ItJg(;)uK%Y1mEQ8(M z4cb(mYlU&rKe?xTQ28*@z2XN$puHDGM5EC_lbK0nBG&&(?C(!sd{KSAVqH=Hfjspq X`_k}U9(j5F2cN*>>UJ(jgLi%dR&VX) literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/rating.png b/isis/appdata/images/icons/rating.png new file mode 100644 index 0000000000000000000000000000000000000000..488baf2b515938d9fb7b31a6009236cc67f8c1ec GIT binary patch literal 1504 zcmV<61t0o}P)^Z)~juYpG6H=o%4iO|NqD@dL zAym?qzR-u>q*meq!3#pD5>OGTvAH||RZ$hhJs@7VJb)00N|bBbDpg||M{SZOZj;z4 zj$NF@$BCVD*)#Lw!)~-WaV*EBDZlh-X6I<;|IX~p?1-xJ{|v+b6e0<4KLXxn6n~k& zmCoB=Ko!pAceX!VKJ>25z{t;SOEuJieD~dj=zaGT>h*ftyCfhIi5mE~Y1Cg69Ft#sz*tK=`=6iM`HAkI%&qvUuYkJ3i8a{H91w>-u$4l1T3!z7AN*%1D zb=@b3kstNYI01BR3o>?%`I&!d+wt3miMDL1VH8)kbsNB$2s@L zv&g05jCDFFUVgj$visrFs^vXgia! zjY9is!uC~&de90YK*rqUa&_Ws>Y74`H#uB!oYLetlmC95>X~C_-7>#H2K!~XE?qLQ z>0_S;X8^#YNP8aBPlGW@TT#Y8A z^$hCeLTwq@cuINl6y>vTmbdNJQ3I+$>_2((@IR?cod91$XQ7TJrD|FyDH|X~ua9cu zSWbl3{_-mszN@U_I-Tj-_G5iRXSn zu3Y`jmOlT7#%(Af2X~uiS=Msr=AFB+K?h<1)4<$CnZ?}q?yn$d(9H4Ye@At6_;0uM z`#Vw927y$)f!F}WB7Pd&e8O7=F!bKGNHG zLj3|qarO=P$K&SA`VTGXTGiQsga!>f#@7E~4K)s=gy_YFgGfE#(oGR3OiWr%9@2@A ze%-G`Rd4uC=snfAatTUB)PY249-GcWK(;6WRS=&h7m!rS)p58*UrL=^Qn6H2((RgSf=Y>8e;;zg0`x(pOpuEJC4)>RnTXt+4eDL(c~sa?RJzphyl`v_Q=x zR>?kcB21h!3=JwL2Aq#tIkvKuuf;7?iX(jEnOEGV!|TQDxYw|z%VYj~V+QMIDF~p8 z5a@&4L&mv+wPh9F8i$jAR%XUrxzNVmiC^(}A80+&W8?RIAi2-!R|bCVzGMp0x^cT@ z^;(EpEIQ+qr+__hLkE$}#xq}N{=099?wB}!ftFTI+KA8J_XGaKoDOq4|K_u7G4PX1 zMYb&OZj;cv!@IsY{ozD-L4i!74}?TqnLqJ@{j=Gc8~*{XN&AfhN&l4q0000<>&kwMRY=rY`r+zuQ&5-Y~0*|YFsCf~i--KT6=Pr>qikePX zpE(zhx+ZIti^p2szpRb_C#Ui_hDu8Ev$Zo@G%#Bn*!_JjI6F%!Q z9Q>o2&AZIgn$2g&HYUR+j~$oxtY^CBRWhTV{lWQ-Abb8u9bn|Rq`o~d;Jqu*%?zHd KelF{r5}E-1ops6p literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/redo.png b/isis/appdata/images/icons/redo.png new file mode 100644 index 0000000000000000000000000000000000000000..9280ed72315657683d6587a0c4f725cadd4061c7 GIT binary patch literal 2084 zcmcIlX>3$g6h800dCM%F&UBd4y%Y*9m941=Ep-8>w3Pq~5+(kyf+7Y?OfW7{erSl% zUqoCmC<*+KXrhRMASP18A_Us96#{fYN=vutY@N=$eLVMeIx^y4@8rDm-o591XTS5& zldI}8YpUkUkf$w6+E?-eLD`Y`03XqUQ*MSYKaoh7wLB|$@R&r_$Fcl{IqnA!XGz(^ z7KV@Eo{>~dvHLv!zUM1eH?_=m|EafGhI?^_^8vS8^n#Tm`2&a>F^H%^7?JM=Wj(fU zVfNA;F2NJ7&Z$cSPXi{P&Habwha#bGDhn3Rnv=B%B+d$G02usn$jLi3phux2&sL7hRtBY$pjO0Qw2Stp%*MD zCe{v1WhU?hW$e5Ya$NQ3}|{M3gSldcOQMaPsa?r0u9NQqYp(5;%ALat#Wd zpdK5VS?m&~U@pfoe`63<15lDt2CJtv!3<|b8fX%m?qLsO>SP$#BUoUK8c-sdC(sp5 zP+;^}C82x7senxn8G;)gM~`r-CUNfLL1hHK>)wOu2!V#6q?p7Z#G+Z4NQGhy9XWag zJhL27kXr=xh0oBz=#6&4)nF^!3|)f1#%{pQnuFB9aJ(PB?%GA2kSsO`D8rx{3UpoT z0bMbAh!6$F4muqjlqqoc^&TjgTLMRW55SklJ_b%;!B9;kY+lSBG4{@H8$k){V6k$* zS#W4*+yH|Y!+==rDPVj#6CG0eQ8?csvM>T11W#(TNVpm&#V=?V>{XNCCfF^QoF!>3V*&bF8oL$_Q8_4x~(BLK!_29F`Oj zKzfEUqn%M0ycF)st8%aVVC5ct5;%1U&3w+ytf*QW_UCu~+S}r<#e8KuvPEz?T{IOW z9ik|LU9y8DN)Q{5!=1AM2=~S=&TPn8x3T`!?zWLr<}bTj=)cKCd}xM@;h*PQn9lGO z2}jhm_weVh!~@C;SipR{R|IR8fOmmG3r9K#i**;Tg1sA7Z{CglA1ZK6S85j4CdhCQ zuT#L2A>7L)7teYtoYh#s1-M^~L@x3nmV?uM=YnlG3~B!w_v-#{@79fVJKt!smJkDt Mb*p>_mo>frH>fUR0RR91 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/regional_stretch-2.png b/isis/appdata/images/icons/regional_stretch-2.png new file mode 100644 index 0000000000000000000000000000000000000000..6d70d368426a5a31910aba7cfdd512a6e1b86ca2 GIT binary patch literal 2084 zcmb_cZERCz6h8O+wrjg}&}JX3%w=1YuSqr|Y8E3Y!ooIdK4xRXPKQykc4O_Z# zVu+Ej_U?~ffl_<9rEQ%y;x1YAAo(J@o1pokCH%;yHGZK_+hPhZx$XM=>zF$>W-jS{ zzu)%w%EwM04<~MGT=3zRz&j88^pb5m+dOW$#^X`MPxhT9QOr>$lZ-fy^F9XwR-8l4X&s9MSYtoZ|7A;W)X+&VBpr zH+g9D1o7tn)weHnrZY}|(+a=8s;me=0*L}6g0}*fWyzt^Ma5KExy&mF;>lHwd!M{{ zzL0a^9s34XPE4f_uU=L{sv>a^1s-bZ4brt6T!k!4AcZIpyoYjD>QF=D-g^r{naqJB zQR8S$$ismYc&Z@`I3tzm0nTg`naJm>Bh#EXc1z&y-2-9Aq1qCkLJ~q| zo-zU5*!wQAk2a>a3))pO*z=f zl8StL@Lg(V_PVYw2351Y>^M$PQzcSZQIG~4rJU`Mg#0j%-gtdGjm9bfLIgar0hrC$ zl+NTRnX<4qD3$yzplRCEz)Az43j1*xq45GDrL(QYI6`K`bnvQs`(|{2#rxO>IQQ5h z%4DIl(g2^L_O=h7!?kcumO45*zLzl&5i4icv(RuOhy}tzMmVhc=!CLh5~k;E;}+L{aAb$~uD;Yh>gK zxm<35O!7)zUP;nOEJ3kxlYXB{ zlaatLZ2^k|vvVK3**H{N?FnA`)j0Frz%-rxahlFuyh=Zh8Vi6$o6bMAt83-e&)$8Y zSyiR`2O~2FPya9(9T+xd8*skm|FEyCtLsBC{?lr0ZSBkRxX=&GeW|Ld$wK|Vk$G3# z$uJ&|&vbTnPDZ2AW1&!}?M}Ar8-7y4@bK`(7f!v^eX!^JqfFPbu04Eo?NdE}0%vBZ A2mk;8 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/reload.png b/isis/appdata/images/icons/reload.png new file mode 100644 index 0000000000000000000000000000000000000000..ca7f2fb8ea583fd56bedf012925d3c506bfca182 GIT binary patch literal 1793 zcmV+c2mbhpP)X1^@s6D=Y3@00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU&lSxEDRCwBA zWWWOc|NqYjq}YI%ABe@EY!LVh#J_;}2NZvY;@^ynjQ_Bi1rR_iSPW+cQbIti_VhD@ z;{Epw#vgt#Xn+09p!oeagXEvT4FCWBXL$VYKf|T}{}~RmvM_8-HDb8WfCB&o5F?u5 z96(9|s8Rjwa|XXR-x!iaxq!9-u>eqp2kMWHK)1jA!ocw0BLl7M)X17$ztS{%26&|IhFb7|1{|kmX=Dgb%|Ea18N21A~>!e+C=b{|xMWVt2$< zjagw900a;dG=*paz33~;_m4rI9~g@u9YFl+_b-O`A3iYLef5c9+k;;WGp_w-IQ8-$ z!;haoz<9^w{|pnaK*9m!OdGks3`Uaw7KKhV&elkDM;=Q!^#IN3`Qah42OImUitaw55t2Gj0}q} zGc#O0xleslwaYDl00P+}cK02Fi4ey>pvJ#omwy5pe(Cu)2EXItaKqJr5pF8_pFxnF zf#DM{CoH(b!tnhM1H*}z3=Hpn!V?OEEZ<)SWx;<8oT3W8plkpTKp+c*-+pJ%02vNa z@ay+qhIb!6F=SnmV0ihRkwFU>+2?}(Gh7e-&v4ZDAHzcXzYMHQ2;Ttn1jEiJNc_M5 z802_?4rS%B1qDAq0D+V;fB4BD$IbE=95i3QePh`5nup=$Cng3VplkO7y>B4Q0FD=s zLE(Fu8GfVX*;V%#!Ql$h|M%ZN1_>UZW7)X1K^6c65Xk@kzy4$pV`uscOexGjAN*lB z_?926F-iSDgD3|iwfqE%+eUJwn^{~4$bMF0KA$nfhg*a&8T00LR?1L);v@4hoA@c>=R%*+A| z8c3?R{|S=*nSqx60v19b%*xEnzy>UUKs3+}umeD@207w4P#$E#i!aO!KfZl=0Wt$1 zfIxBZ9jNB!^Dj&czyJPaU}9!suonFTwqW6HCWhDF|A7r=XJrMu`WH~m_g}xkNfKoE z*B`*V^7R|TmmfdDVt;@Z-21@9@a^N<+n^``2q2IJpIMj~PTl>;0?a(Wfi7cW2$lmD zn_T~asR$UU`{K9}FP}I2n$-WMZ(~%E@3V!p0!U z`Iq4=Q1kVVkaYSF82&SDAb|}E8W6biftBIHD^`ZrXE*Et)g1r<1olCI2E(1-fB%;q ze!|Z1@#_x;7A9r}bFu#n$9;YRQ_eqzPrn%$_C9B3SaOdIY&aWGSCjF7hG{nc!NCU! z`~P5k@CgUQ?Nht^p6{D-17ra}05L)fJMJ&P7+5@)FueCy{>0#~@`FK$mz#l=g_(hg ziIL&%XJ&>A?-+qOn2|vRn1Vt10-St-@cFw>;GhHfVA}&8hSj(D7|vz0>;C`q3sebx z1qdJ(V8j9K`2Pb~nXs__`J}etF3+t$K$rL_eP-YShOZDW7lSIW5LD-9gd|OH@?>Cm z|K&T-x8K1L4oYcTfrf9n&%^LwS+*b0@aNE~lmQ@skSiQe;{UJN^-7VISL}|x%vT0G z>8}jxf`7n1VF5-y6C)(OgMtK4`t?M904@2+AkX`YL5vHMd|!QIVR-nNjp4>Sc7{uD zI2azE+uiqcmjC?!f59&Q2s0c600M{+PbI}9owG-URY<{?iJixm5m>e`v2sd-vf#g; zUtawE_V)IlxA)I}xwK)=$3x%<{Rj;fl#&V{fEbCW4OyU-5*w7wjMRkr18v6qLUuJW j00V*1EP^)^1BSo3_iWW@}87 zS(7Dmt0gT>mu-zPSzS}xIbx&6W~6mi1e_QIVe&0U@sKa?j{Cm%{(JuK9dcL&t$oP< z-v7t*f1cm-`M$cpZp+44eVQIXY;8@|R(fXfq1Djuu04BZ>7n`Arj1o#{O?fHM-8;2 z`*qE8yXZy_AHs&bzr9YI((c;L)zXkIBPnk6UnW0z5ik|hR;}OmtWL->4b2e8{ZY(r zYjVNf>5BW4@@;PKwCJkew;gzIAYlK^6~C+W&52)r8!_s8zOmH?Dxkte8uo%I0%&&(z0t^hEZ zB!wf{M*?kR-DcYQjJ&~VEh#QB1EX4CfIOh`09`JiV99);5Qao7@#`nkBU0%)v7a^p zFG&=0Qrf2jnhB8TCglX+8s+{hd4Tc6Sb`{x7N?=%6$a7g(47=Ofhb^t6mtp}1HGE&i3K88 z^ZSvr+lGL>zUqg_$@v`~elkx?EE0;E#xZF!;y+%hy$E9D{yAW`Q>7AZsa5~`L0jwS z*R_tSwyB7#H>V2#uvb$nk!Ah^%Bo8d|Bwo5(%_uL8)cI)G~1Dw`8^!o7=t@Up$~yd$8IMh}u`5q4BccBSN{afip)yAKUT8!ku3w!Q z?d`Tc)BpX}7Or!Sl+dwvDlVd+ybxl1NU=w~6jV!~5sXJgRSP354m9}B#^&A%}w@*MVad(BTE3Q*a46VBZJ@8F= zXNEf`UhUr6a+tG)a)39QNh>L)hR^SJwuO%<>G+zT`>FnX1kUTm6Y@0J_%RDg0WazbN($5K62!QMhgaB}~9E3<+rl1IDJ4aTN zNpVTEei%s3BrnAh54AkYWiW35%rC&_lF@*_?cccK1?Or0k@(ky=!vJf#r&R0$@^EmP2l4o4^5Be_IM2xK3*+0BD@ z3u&ph^5)~cLBi}bsB<&oof)H$ko6ulWaUF(zN0s~ny_x=8l?0k!KjacZkYzNq7$m1 z8cy<@6K-_P_P`v-QV@gycu1%#(gR^2I@+5cw63LX8%ujRwJOI9b z#&rQd$=!-CY^^YO3=rvWmORRHV$5fyLUYqyrlhF?U~**qpeB3yo7%4jdFPlXF9ERA zKSCn+=1)nvh#&{=SqOl$OgL}ghTQ?D;3382MIxu{giEH-l0nQLlBxh$d1&zMOV9YH zGqTg`jn=CsrS|y^4_Q0QL-S1pp6HlhORwXyhl%kfzsY#RPx%o+K@Wq&&Xw^INg*(d zR~6As=ns8jIdrLg;KySzsbk=8FD(smbHVy?DxzmGW_JVBD;DfGZ|E zEH)Z_EZTCS-SKBz@6@060*ZjKx-N_Juuz#FmwsFmr7a(@jVQ7x#vuU8D)hs1z--L$ zFsuE`aqGw{d{;??2p(m6c(ozNyej!v*>X*u&@+mw(ZD?%kz!s!8OW<>e@H@Wp$pQ&G# zk(F@7S z3u7!P7637>BIi-EiCiT!J$s(i?;~SAQC#SR#((!an{E>#pDC(7ODhJr3i%oLE)Xc5 zbCnc`LzY;ZV^7P|dOIPHT+V})yW@mLu{tP-qL@!^0%;VfOllzYl5QpSkS<8NrfI`8 zm=XkmZ;eYb=_uhGv-5efse}nkQ54DJ@mwKL<(_L5A~rf4j=PMA5*1}OHy8}+oT?gH zfm?&oXk7F)nHWN$5Hu}BID;ffP*wE~Cq^I;geWpF#xOSKgMlB$62eJrHmmMCG2w&N z8V$ZFzh6OOq7}4BeWgwu3@YgB>&5i6ADNjum!J&82Ks7uch914TU$3`W8;yOl#Gs! zcI4#b{wDVO{YXhk(*gdzk}UWJ0s%N2+vzAksv$c&53(GN>-;gOb#9!~z=N^g!a0|T|JpwH{}D5u+)Yi*R5|NX(V&Xf3kDRy8tM}f2?a@; zo0-%%?ef3F!#`a5qU3?j=Y4a(S=X|7^!mWy(8k_`G#L$_A_7~ zeuGc_&q2Ki{gk??5ga!UjJG4-g(l_Uqf4*(zf)8oCD1dHI>qJ#Q0i>S HuetgQ=&Np# literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/scatterplot.png b/isis/appdata/images/icons/scatterplot.png new file mode 100644 index 0000000000000000000000000000000000000000..219aa3ff8cc1bd03f6fa8e7d5b8e56f48f0d80e9 GIT binary patch literal 2084 zcmbVNO=uHQ5ZX1@7$GH-VG#*x9^ zaA;>p)3k8bOb?Up#OespwJ>)sK`L;nuQ#pzz;FEQN|ZdC&YQW5lre)PuAR>PA!l$b zJCF%}4*5Idv3ny|m&h}lO&>bm6A|}=x!-~yZHbf;SpVAcdqc|dI@wa%>vD7SfD}SV zPm*LZIpi6v1{UW`@$toITg50)DwXQ8ZTqq?jGNEr=RdT%K|66DKtwu3OJD8lU)bM2 z5N;>Y3-j*Mm?~BWpin4`E1=K!(<`Bsf7j^II*1~!db|&yE~S3MgkNtxtP6mc4}*0b zz-t3SCIzO}#vVP^X(A@d<#G~^jl`WiwVc;ZL?%^=yJ8Sq)Z=_S9=}Vr=|#+>AZtg| zQ~*dr-W1P-2)aqR+GdFkaW%N376ei^S#2D)y9L9UEn@odssyp19^aukMvuSIa>$u< zd-NH(E3)+cpfbFwwQUUpVeuU2iTEWs98zvUD7~VH_yR&Ebyo|_%+pm18pJ%mtQ$t> zS9dqCj)1TkDFBZqcB{iut)RW6iVY`|3~s~PldZ~qEb>WdFG9{W&wNn@s>4ep5|cE? zJsf1sf0_5KNErtWVp%K}^RZZLitN2`LYVYl$SRqYtEw1gsZ{FV!2gnQJ~R`H>KCGR z++c4c&IC0B;RLb#)aTno4h(Jrovw!Sv z0lgw-E8ZqodT8)=;pZF=5$`dgM)lo-k1(dmNAW9ETo>65vWGnTYP?L!F6=?V{vg@- bi2G?Z$imyjHy6xp83eMK!SwXulh^+Of+p|L literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/scatterplotalarming.png b/isis/appdata/images/icons/scatterplotalarming.png new file mode 100644 index 0000000000000000000000000000000000000000..9b8faa373ffe3e84237c56cd56494fa06b60c2b5 GIT binary patch literal 2084 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 oM!^R4zX$R07*qoM6N<$f||`)=l}o! literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/spatial_plot.png b/isis/appdata/images/icons/spatial_plot.png new file mode 100644 index 0000000000000000000000000000000000000000..642d39c05580b3cb493af4dcfe7de015aac13285 GIT binary patch literal 2084 zcmcIlZAg<*6ux&~?>05J(&)p2Na#b#A0-rHk;0k~N5R#UbwhV~tQHLCpH;cxG44_}i!aOp&80=FDbnrZnyOlKBlSu!VA9EO- zBnEe!E{)-irA}ny9E9wag~@k}?#|GTWdYMMw?U8*a9a#kX>{7-O@4iuI}i;%6+pmd zCXx)n2LQGmHG}aQHT6QFDjpn5UdRawM#~Z`L>%t`5Q1p{;K@dkb_jS2h4Xyw^7Nm( zuKU%FJHuE-@~XHDeY_W=GLsxzFAZpNt`7Z~ERx9dv~uiD$~3!@>?t^J!6|NqpPEQOy$Yq3cUJLN?0l|m)wZ%6_7UCJ~ZXqztjyOLsHo< zRaN%sTeH0*pN8hMm2y^i57HK6jjhd4kL4JWFk%{11$b7MYx{Wrq8Nml<2jC_O22lH z+fG>R=GM6Ldy%l!P@UBlTi2@yGUa?gFY$%mWMYmXCF5U0g?)6MakfUKA_1M6kcFCA zr0Wb7+Tt%H@~pC(23a9os@*xI%2F*j_uYtbjy;a8f2PY3=9Rg(NS{P!vYRsaX^%O_fY?C%}z7s=g{ z9Y#EO%_u$&D@9GifOMXqlsdb+yWe5B^cWLdX{>9h1i_BfM?Mr6oRxFboS^-Cp-BDI j)YPLUlWF|nPr&=nt{~%&Ydz}jL?X+ktc*t+3(x)r6x$fL literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/spectral_plot.png b/isis/appdata/images/icons/spectral_plot.png new file mode 100644 index 0000000000000000000000000000000000000000..747557b15ee0a8a1376239f582a4b83842334f2d GIT binary patch literal 2084 zcmcIlaZDRk7=L%P+_l(HWGtD2Q9}kd5)@_2W(xxYfo8NW3zHCoGn38DEK=s2W|4(0 z#$-cKGug-t3z-J9gp92>=H@`qRgH-zGjYKYlw?LFn@g+3!FuhTzwg>>TDyRM=#Tu~ z_rC9a_j_Nz_wG2f(Nkx$-e+Zu*wZe?mzKko|uC>dEoORVyH?Ga$28HGYWc<%?I-O5p3sann z?be6I&%kd%PdxD&>^S&2*b53A23A>FS){7!UQE0Ee*X^?TLfmTDWDC!1g-`Bpc5pt zf!RFGAWGE|j0$4j-A587+ynlu&r%1fxH=I+EBX`8(i0z2X2EswRH`@`<9fx(k$*X- zU$zE(gYr3!=U*F|&*+fDbi3%BG#VDg{vB)u61IWaITj|jzs@kUUx3d?Fb+U+6^>|r#_p7FY&Ar$48%1#q-7rW#;jXP9fongp z;!~e6y0c6!sdsA3e89Y9v>rbs2~*RSys7aA3&oJtc8rT=KB_T(9g7H6Ja755 z`jzj>?Kew1RHhw;)C9E*wh1f;^AGm1Dp>jzF;I{3);&+&`BGPYBrKffRnxRKcWTh@F$< z_OjxJc0(`i@c1=eNe#{5wd7=0);Y=saVe4^x#?560N#qT0CpufkX&t|Cs@#-hJKvK zhqQ-Hp1G7JN*R-KEynHO0Qe>NJ?M4j1}qg76{|4Uky5b{j9dD4_>*Ew`9`V_XLZ(a r(yY;QV__*D)$VmT9I1zIJp5nU56T?f*PZ?r(sb2&YED1-+`+#An1Ed7 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/statistics.png b/isis/appdata/images/icons/statistics.png new file mode 100644 index 0000000000000000000000000000000000000000..1b43d9859347531a74760fd9be345ff43c6bc57f GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7lu}YI3>1p+ba4!cIQ;gyAs5g{hl^e3p5)rh zJ^nFZn``f-2N%k@4%R$S*!HdZ%VSy5z0YR`Uj3q<_HBv8Rb`-FAb8r4E$#M1e9`XZ k*)A#H(^$ZQ3;viWiwXSTv3SXCTLcpEboFyt=akR{08-IFxc~qF literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/stock_draw-connector-with-arrows.png b/isis/appdata/images/icons/stock_draw-connector-with-arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..a9dbaf37c2fe9c71439bf846b33c0ce7cbb7fc91 GIT binary patch literal 2084 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 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/svg/applications-graphics.svgz b/isis/appdata/images/icons/svg/applications-graphics.svgz new file mode 100644 index 0000000000000000000000000000000000000000..6576e0d33ea2e2992e619597acb802a4fbb48949 GIT binary patch literal 29253 zcmbrlQ*bU$^euRjljOucv2EvzZQHhO+qP}nI#`a zw80nCHcdOdzV^5KFh1Rl;RAbZTeZn)TdwZ*wHrF$*G)ZdAbwg})NSZ>y&j(1=jE_p zjVpcFa2_D5Yw$i8&3}gLXZe8M4`_QI_S)73bhtmA-oBjVvq8TB`_Vk<)(wC3z5ncb zHf_--Xw;)eOG~qe9Nb*(Q>Q^2@4Mdj^m2E&KXLEw>FwOW+hUSCwRPpw0h+wKz8%{B z^bJl@+kamie8((LkFwd`zF@a)_VsFRYr|#jml=3*7w7!PWMFad{#YO`5rBb z>h$eaxBa*;Wh^e9Ur|=IozISUME% z{d~Ldc7VRG-@_q#Z{YSHLiDJN@1vK%8{4eX zP54{1q_oS<+NM4Wi8jjn!EYOnp3uFIqQf0usAbfd&$ZOivR5h`Tpr)GVoXcKS}R!J z&u1~VMuaMy-X^HsnzpL#u1PG@2v5e>Zqs4n9KJpo7|w2uTF1QxpJpj5U3|Wyz2xA& zUah*&L))Z}5kMF=FYj8Nnv?hI!|mX-!_D~QwlC`y-^?$wH`BKDYd!5RMOnSFKkIps zdO5wkse6;h2JCL%d0pFb>sCreV34PBc8Vang$Q)NV0hhM2zh=x;&p>ei!%4bP&LIZ zOp-kPJJ|Nk<6Jp5eK%O+>(#T}m2;IQjjG!9?ZMK;y^wr-rAUP)ehxM0__6KNu1UK8 z>W*eV6{vP+el}}chh?*fJU-ce7$ihrcW}%4qk{c@N&%<;R~$s#Un^(4*NME|Op~?(E6{(E z>!0))|JqRgZGkc2=c-*!JFM|>(3rUEA4EOf+-*PH*sIgG_3dt%V9PZmqPKpyx_9Z~ zS>dOaTmCcC&D(^R*8HM}=ho8XX|~9rZ>5*4LRh~nlerVIc>c0h@#{3w?psHwQ`E9K ze5xR@WCa1o8ToeJu`$ zI~oM~wesPG{xR|uFPk9T_EK!(JF#P%JiM!tf|vdMC%BHT=&_V2z%NJW#Uuoucn|Wi ze?KRVm!eQzXE-8oG#{36P{PbjUpIpN(8AB{Ok#Zz-LArQ)L8C30T(@6jsI`%O*uVm zIL5n~GuP&z*tY1cMi6h%<{smP2aybMyoYbRxayF&3{eVPQF8hn*+ZOn&R%vx*d@Qn^ZX% z$BNjP^dorr-`I*%Fs{ZeNWYzzOj3S6ADT~~?wrWnznc}~|DZz~?;)O5!^ty{4!`jB z^Saw~`d28D_^x;s=*PK&L_$d4-BO?%dU$pqZjv`yARiz1DbkUA|KIM8P|&lP%lZ2W z)q#tUh_haw=v~*q$Ik0}g*E{KOZT}hTfpTeAAOwN4Nn!xdL>tV;d&hQ_|N7%KdXb5 zZeLx;(6^UEL~yLoQXL)0l!CmjcT%}KI*EJw-sE17kO2)1qStu5Ha|XxlH*v^?cyaC zZX=Q(_#SRVjH*g@WCWS?xPPX}Sgdj|vNC!AB=eHxFQJ<|b}WWbNnMm!I(HHZBY}WD zYRIEs-I5KK(dp{W5bw{RL6Y@#{{NsL{9(r{{71loU}zjZ01=P)tA$My}x)cM@TMD!cM{RLq7(3d~uEMmD1P?IbHHvXnNhaR*wq z!C1u9RoXT!RKv6fJ1zma7&*llqMd-&f@TMRhJg3xr*?sd&MXtNhwg8mLk!Yr@{+7H zWn1RMZ$8+v22?;P*$(!N^KH4kKOBDBGHWB)gdl3KkT+&HC|*KJQP;36k$hNK*y^~!mjRi$+ccelpP>mOovtJ+CP`N*6%I7{->vgt3 z4by8#YI){$i!@9;!}Nz#k?O1q7G$sQ+gU3uQxLrgUx_I=hn!L(Sa0THg-;kVeASu5?VEe z>Jc4dV27!0kbfD=rtHG_TQ9G2r@pEREWDy;V{bQCU^Q}N$Au@sGjk7TGU~~!Xn&iY z@e-L)$DtZguTW?$V7&BU5~Q)M;(SClYM2_ny%-x}*%(_#@+=S(3Rge*O-K>#ZhFiS z@Yo(2HmMQM99 zP>^rr76DcuPfR+-!mfDRFxUAw^Of(q4-O+A_3nGB@ZPMzLEK!GuwhFMY|@WXkmOTB z>K81*}QZ- z6GXH014&^FouryjV~SinEbeev zo+$>YM7M#TiMgzrNjI>2G(Uu_sTjdK{INu#R*g9wvtc8@0Wf9O-;W)=YB0-d3{4j= zOk;*Z4Mxkt_RfsGi@qbB!I-*FI|D3w4$d|fDaL`B|MbszkO*r*CW~sQA9rQ`H_tGu zEp&N?HhEs3j`d!uAESSG^MplUTp0^4BBcw9O0uYQTkbJ`A$}4)J;02Xh{?U}Fx$LXdAx%!z_L(|4CeiN!&SODO1 zs2lgBf~@aY7F=9FaE9V7baR+0QK^sw$5;@;r85qi&DldOG0m)Kg1w(@89Df@j<3v3 z`;nYbdIQb8WGFgpqQg-D`HC{I7%leGEgLfxHh$FV{>{T4@7LKSF>FOf>wjo#`xPDL zlNKV9_;mIv?|+Sj1U+6G#52ws6>w0W18dn=A>tDC>N^mml7rdtv73RMY}$9&5%~Zs(Q$? z)eNtBVck9=Z#snEMo$Sl5Waqeni)}zLIxQx^4(=B30i8!K0)m$w%E?-|SOY_bXHgIYY zjL$FzD;npId5*$RD4sMzs<4El^gVG2m*y#H{*0M6zmj+PduKNN5LOE%@tSRp1Zu0d zX})rW6b*y_8iDs^dVGq^%9qPBDxivI-o#hiEuYqIUtWbf2M`}@(R%QH@Y-Iyaqs7} zPU!veE05M&6Nhzoc%ClS)uB16NC)Toz#Ltyi+$sNXX>ed-SW-ZVW~W-h!4R*x$}R| z`~Mdfa8S;pgA>#H9~z7Ui{bw^o&OJD*nxTRETUM+|01{aKPAVDC^r2`9#wSG@E_hE zhb3;8|MR^4FQPU>3h%HE|MB{0LKN$F`yZnDP{e}r>fnH19GuMx;iUY(+Y01+>1}0m zJk)%AoUSvU0w(r1#?5|CZn5*%25Ezd*GEl*cJ0E(EH#=j<6$O_I6Pd^uhY)dizpaa zQFwtW*~ld=8#i23oGx)xm#J$H&#U0*{GXTv_RPm&g%K4TU>c%WhMI%(U$Ot0dFo}K z@C;zjQ!K;X%+*zuEnJK9U+j1e;PiA>liSbxi;r46=I|wqyK^NPT!hE{=Qe`fjP0&= z&*wu3zi>zh9wLYGRa+ki+2v^DF0lhe+i`bC&qwbp@Z#aYbTt(!E^-mKprEMYx6Vgv z&FJ!Tm0w?ZR1?f+9G!(evP}aS-LG6M?Q#U|@w*1<9KF`O?W_M<5S9B;I{VP=(|#Cl zhv+@X^A1>UUYTqkSD|nx-VH?8+|zrgyKtCXPmpYXGd!e-H?UvfZw_GIWy5b!kcjt( zh{hcg?`P2D0(U>(UuAsX-&Rd^pSHib-`BgIIH42>7qdEj00Zn(2ZJa6L%wv{?Mc98`}Q@R9q($}wox>%+*g!b2ng~u zENwnuM7nb{D$#FJ_|% zK`9H12%KuWJ+QTF+&=+ZM!cB}d99E~9c-u_>bJnIcpwLBFoM8n@%l z^@X2RD_Rb4V~hhBh$p+YaeW$%-5t*Hef8{OGPSkU5L&757H{k3^>lS~cYfbYqJK`e znYDH4*&zuA6$!{Y8oi|9*S)otJXP7%xuxm#zP%zuYm(uaXfMSlN07lr2p9+OlE%A? zBmZfXa}80DGYYNF`2xtE5?&AW$&Djn6HD zQxeNQsWRZ(D@lV2>7)reK*E{+PIBI1yd93wxMVcnIbMH` zj8hexA)!CQSdD{H{8+X!{m139uF-rtw0JA3JB5^^d}ABz#_Rcw4?pMB&8%(J&iBg& z)Wg8?s&z~MlS7gK4U)2ejGw1@Ne_MwOXuCVdt?y%_g-rtXeCKAiK~Fnl`@RBc4#sJ zYCZp>oNygtw_*tvc(vi6(Gv*%-BV|PDMiBP{eE}6fHKmn* zMk1}U5+Tk~GG=1Z8d^;SoD~&P{!OhA3Q8bs%3) zt2)FOhPiRY1dhHqcwu1EIx=*+={O=G8-+_`$S>rwf(&60uZWYxc~5v-4zO_2t@pf6 z$c;~MqWGz5S0^hK{lA&?VGX^I>|#d*8*TmsMtabN2pl@D8R#Sx7B3cVA@z=W^~5Pu zxOY^rO!2Wq(tz^JeQT&OrK$&iig;B{B`Jmgmb7G7=3huMf0VIx9wP*D&J_Mt`scRb z^c7R_K2Q_N|DHF^4?K=6d{tmXq?^VHTDYf0m6wRSp;Ho2$2>*}NCdy7|BDm`OcX+T zXHZ9>V6Alre8*$BYxojTap%wGFHLG_Ud$~(_hTd&`Tu1Ei7JG*G=mzdjsh#_VQ{u4 zS58fiQeEP^jpTK(mz_h$l|_vf3q?`kNJPg_BAGRLPN5s56aeYp8b~&cri%SgXQJGN zco>aM^_iozOzT>+|3`}~SZwN8>Q;LMOGziRt0^DCLU;mlpKvECpsBQ=HDT4^%~P^R z7_PN7J8e$I<{USfJtOlNuw~4|Cc?8RbDE0EGBKU2+Ug+6n30e_l}AiYWuQJ^sEmV0<5Ug35+$Lle@b z#E6`N_*WSyf6V9d2$>>~)#Kg0{>%SecZRH0VXwFnZLkPuplfE~ zXCG2?(`L2ocsg&-G<#b$qjeLg5GNCOnDQZqjOvh%5tLnPSX~zj6@Q{7c3eQb&zhyK zzPn`><9)CE<1`iC`PEVP*|-eai+hp`%e=K2`q(A`E_)ZK+ymxyg68=}n0N={91U|J zMA$1L4zb%g)2_~poxcc=0o?_ZlY(5jl*a(~I7+T8t;%NRGDB?OQ?-cKX|7o^{F&Pc%ixYqu z^9A2S9Ps0$L8jpvP6V9KHW;3NYgQTtyy`bb$(^(-r=_9f`*|Q!_?CA*YMvj^c*-7sIDO z)9u;ouv{7GE-W(9pIc<4JvC3kcxaw@q}sma4h{<*4^f#q{1z zHChIVP(3#Sl|M5yGE zvdjbl#0_ueM)k4iYSWDQ#UhTEnnwJXO(=sYbANHx80#Axo5g*^BZ=w$O#q#Ic=$Z` zo~=;7a_AwAslRrkwf&fX(PxnEObZwNxbYB=ZHl) z05VbcTCLHE7)lu#&V)bzG~QMcJR@DGw}An2n39;1ZCCGhhVHw&3;1H$NAqu3Xam^u zQE6m7Zq5!6hsSb3B~cA1R-7(#mEM)iy`8C)Epi<)wskQeDpTOHT)4V;Cf%@DlJ(SF zAHf_ij?vf2&y~E6D8*CoB5PoC8`{AM@8Ll7auU0mCLZ#osxwPSJauC7k&rc|8y_Da z<tN;Ubb$h4p4#sgClVjYCSDC$&MhBr?fAS<;vm>^7P82%b;R)m z&v(kMF5tu{nmyG&hJ~Lo#}xRY46B`7Yenk|F0ksCn9+O7DCBug6`dnDLXTK2kJ?>m zw*|K{*DlFF7z7ZbLuN0V3VLlKo9%A-JXajaV>J-6-O*sTW=9H`JXExXfRO@zdPO18 z8)-9dcxUP8uAaj|@;vj1J4lZX-=T)@qjNEF3m?qSGLh$O)+u2Gr9QL^NPTMW5_#3! z3G=9{XR-cd{F~OpJ2%g zh?FxTh+#Sy{iBzb9xHj!7o0B#^cZOnaq2%WU$k;KU)92GMnMS>g)eXhCCfD8yV1<) zFJCqFdi6=8D$b{C-49%tOB4Ft0&2*|F{Ly%gu-cm7&0~blu?$0W!q$bS5E>;wvtUo zU_xn$xD+_vvrdFz2x+-!4XcA9@0apNGmWltaBTFz`6rx0B#C3_d z+blV$7!@HBiSqQl^v&~<1(v8hANp{osDvWj=}dy;kLShzT5shrK}rju8$UT#C%FP> z8@o%m+!A5a$s^snMR$>c=*J?TH|mEJ>>(uIG6DG);k|ySTTj{woJ4 z8JXp(;&I3Nj?Zoh7Fqp8Xd(#A_1nyNzPfDQi%$Lo=WeScdSlIlh_zKO7hpYeX&y39 zb;GIC$jQE?fUPwc`9LIyZL9^a)gGUx!aYBm+na9RCvPj-XcUtQ3GZaY ztIOA>t?k_{UyJ%DjJsZvG3Pt^`)Kj%>OdePj*e~W>4}x4%uFbH+Ib?r zAM%jF=ktO;rILeR(&(8ej?6D7j!zMDgl1-I?bUqf>yZ_GADD{9tK=vUYf2gvR)N zK;W6@KgH_GYAAaH^y1&C;2|YjyA@>vX z;K3uYK90Z3NeytKk{20PW)Tjh;aq4uW5K7vKYQ+vg3f(sJt$F|vJ<%e1;>XYP#{NX zq@_z=EszMA76GoR&MVo5SL|nLo&a+fTWwc{@#F-#BxvC>)e&%K= zB%j9+Bxg9V(8b46vN(Ouo1-lSu5jmKv)N4dCbKeAbsqO0i=rwqZ(aD6`XjO=k07y^ zFFu&cZez=}V9OP0!4KaT&siWEaTv+6Y#UJ|hHt^Pe&~%82u5SG{VO!&6=nF969&md z8mzvAC}a{oR!kTUbdV}!&jsUwD*{e2%;e0DYb^eL|TKD?*jsT3t z@5%7RFno(&2waQBAIus7pff+#Kbb>W>T4Qy^ii_JM^jaQ!y_#!VHwyn%37}VZ+AQI zD0vtCfktP!yhkZnG|iF9V0Ee#Z~D8JsDEycW$VWt2u0DOhz%exg!SRLOjx~FsyzI! z4;6O!qIhNr@4yI;9;c0j&lZpHy1~8n<_-r9B$dFDEmtJs0$o6ojI#7E#x{o{M#zB! zw=Z7(!}4d8HvH7R!QX;EidT%kOpOJjPKZI*NWb6Lp&N3{xlg?lCpoYo40*Ag2|+&5 zQ2be_U0vlEj6umK9XFDh)Z|G3~POM_`-}9l0`S(++h>1 zPKCAAMyPnU|8Po6+N%3|+1#e;zmlk10K^pf(j8^7YW=ZrOr5rem~K2YJrsc|+mD__ znmJEF8NI}fU1ielRl8cn%26$YgW^LWF{{<&)b(?27C(2lSSD@2rAOk9si6aOR#_BJ zrv|X{INkPQYS)nP>TBT`!jYOA*aM{ZH2yN#9q-Q@j>2HQy5C<~9F`78Yca6YDDXo$ z?b>L0!n^U}4S?Yc?c;iz5=zsbR?qV2DtdKmzcfj(pgloGcPE>?4sF0gvQ78?LL)1M zUqCfVC5*q4R{;n!LDxHn8#~I)<4t_$n;DYWao~q2@={aC`S}gJZ9_`EL>#&WOTR{3 z<-sHurKOoKA6-g?-VzFAy6Z^XI&qrI<#~)+lui`2&1)f=?sz5ml{8?)neJ$STSo7O z)kRLqbSn)lDSBP?yi^vw9%e`XDFGXXL_kMK@p3P>N{+c7J7~oEooGD?LS#}~`hh_( z?f^UHX2#~ngR^TRlOd3&X(u;*K_7k17#6=S!nU7}H>>)3KKB0;iB|30@Et9r9#3P4Frb@Q zqVvxs8s97BS`4VjgE>{RRO1s4nh66C4U$I?<&i=FejDZdq)p-|@R9vnC8GQtT#`Z; z`ZmxmdD$NQSF ze~Xt<1DH&3YEAwfAHxv_{6Vn^$Kj4{mw~w>Sw*l2Dz3wmBr)cfu?dGB;xnF>o64-vvQ@B z2#j+5`(R(46gM@TW~~%lU1VK=+)dSbmbVz|gK#f^mb(pj=;zXIbFfkCp~ z*q=r#$j8d?W&Mw&J^maKgOCBOqzuIA`(^s|=Q1ek>h(J#?m7;IE$7gzt54yS$kz9Y zs?9q8V0gV)uyCZ8Z6{LDqQO21GSyPW#!xWT$&E%JLviI>99nFh3%%%|k?yx?xip~# zB<9%Ljfq@t2Ie&0U()%(0cs4K47dh=#f~ zh@|0gOSkTNzy2LfD0uxDPQ|)D{>#LZlF2ki1mlC@@3$2v`O+}8^YZ;$Tq>%+AlyKFFNYiz*buiMt)ObpR1lLQTJt4@^Nd_0l z;0vNh-pxo;QpO+{NOnZ3B*EiQm}j9v8VOoL_vdVzqrl%3pvf@G%Uie*k}!pvJFB9} zhqoXQ&I=^8H<|r*WLigLtS@SnfK*Z6BExidGIUKXnL9s*=Vu$}#0X7Y!03;$3dx~TBVAZ% z*8^%8!p>AcLJhe?cgzW_9iC#D(dqFlajOx7*^~VxkOdR|M6JfgcH!Wz^2rkJU$9zb zS||=1RJK!Qi3Sm9j#XZ#LKqmcm=cu#T{Z^cEM1*M$@If|qNj6BW9tJh+x2d4=jvo{ z=RVJNzkEIvdX+wJPgiA4_O)n*O}E+2xUpTY4+8tNd-`~Hfv3x#Zs=@%Sg}9OgTg@# zMO|y(&&$`>%Wi%fIy>L9mu$P;9;^5FK5AQob0|p0qv?Ztioa4{<5pix-lw03kE?!w zpM1@>w_nRYJ)OPSW9N#qx_Ui!^xK?GQIBf0d$b#UK9Ae$Y+dxWzHcXfUvJx+ts6ju zPovJAdajN`}+0gWmBC?+{4?qt+(0Ag0-_$nV0#8SBvZA z8uCXp1id4EPpt0~)5rYe;VHxQ+xDGJ4xaW#e@84{P3`!w2VKfInW`R!nRKyZGUL4R zjGoVP7oV`~Y4K~MIFp8G$`9F%l`H9b%+tz((vd2^EWvkQcnrw7WYYo{MkB+V>0U+% z+smRC#?)et%4@c2ODXrw@bK}f@fTwtEK~ZjACixTXpLCs{oifAuil^JpD$8eW(U($ zG0Qi_iN3YI@IIPjBB0d;@c4Gm)a)y6wSoJUu8^x{*Kr50TyaGyP&x%pH)?2El>82(F(FP{MZlF_vL8lh@b?$2~C)b=EnOwkfuqQ09}8U|tCT z1d&WQ!H>hT9_>p|kyd;LR!9TGOP?Mtl$;%)M`{fiDoJD=N>|Q=Qn73Rpj{OsW^?p; zFHwaz59|rWTNCf=EHc}FL=19u%+LeYE7Q1@4#i`Y(jzvTeA%VY~7528&`FVXylxbC}KAnuhH25$XIb&>C1WCHu3*?t^$gRH+FZK zPOhUzb;x=eO2JWct%ewg9(*7kb_kE7s{JQU%s%q$$#T86?0@^I-E@HE?sdUbGUC*# zgY`4sf>bxLx5>z_|Ldq#o#d!O(8Eo|m1EUBaPy7?K2TQ5*iSDkM$;6l#B~rIGjI)# zB@9oZr>k=g$YPLcx#0+0Ty=eyl}8FiHZ~2Mq>}He3&}_fG&AmxYt%ZmR584Y#I0-D zx1%&E$Fylx$+1&0k_l$`(?tDU)4?-wLQ0v5Bo18I)RJW+YYw5kMQ3uju1G@N$h651T}hl$#XFTC$#Jl8(A(uSpC{ zABmHz;tgjxOV`)TE3UCEZ`4{)XLF=kl1Emi#WFbNF#HZTC~QJwX>p6pfm8(Ofn*p% zT4?boG@+qWsC2revli)WD~MrPu&cq@HJ8vx#S5n#2y3!f+=%&!sBHnmB>hI)!P6wq7m95d|6>0|4L;x3v ziM{bWh0RyEpXAGB&&9=y*KZL?`7> zd78(Iw{K*~%x{ei#(-5eoU~86cvFUKEn$)Khfb{wW(sE?qB=0mBob$DXo#H3grFms zF%T~5CwUqR>&0;tr`oKKv%EW9rOkQ?MqnD4LAVhA&YNC&v@9Dk)O6Rrj#kvidtHvL z=*DTUa}}5d9XqrfT~e9x(Yp>T?0hrmU=|caikr-lXMN~hWdF7NG;mIxqAB!$O{My0_SN_II z=elIlgw%E~Jugur;10mtDg`QEm6zTrWk;GxNL)lNo32QF_sB9Mk1sFOFEia7&Mu~A zwtm{exMFw2!FO-svBM7Cl);eNmnUiEDkvXIjS!3pQ&*}=xxY}_;4Gk4n4xE^R#L%q z7+5X@=oYt=2Ya;eTQkW}U%AJQflwhZD-N&AP{U7GU{AITtEt6jO2c8c9H5;amK=nk zyIexW$2x*kMjt!f_zEMN7O~Y32M$=>^Iu+Ydc0&q4}3rpUwi1MD2lO!Oi*4Z<3shO z<~VV1WWXtT+5)>xnbw^HaYC&;Ta4nvJt)X{F#VkI3}r2R$;<^6X(FDZ32KC-O(k_I zrt^4C59I^L!Rn2e#7SpmCC`5gmb7Sk8YiXZT_+g>#QNXWDAM<$Q8ze?-sMWSBTn@C)1A~h{YnAv)2yQ^+z$KEv*9b z1RO`ISHh?=UNS_sM;n1q#Pr*@4yfz}#TsFMIu2lo=Xnb&SY@dt7jcu8*{3O-Lg>Y0 zHjbYuF4Z=V+4$bJO%n0-0Ee3R?Gxlv(U&nZd+a3GMSAV*2P#^ zw-@!tZ{62^qsxr7->+#Soqs9Ca=&^R0+((`C1s&c-!fDjlH4t1hP+mUzsy#K{61HI zfNg%CdH6@QWUUh4K)zflT9sFpV^%oksCF_3wpwF`SR01-vv-!eutha`S-suTxFGhv zTPw|C-B%wO>)E?W6nEl>4b&H{()uHxP0e+nEq{fEoXSBrZ>;}Yh4ivd_#3<~@nUY6 z5wc5Xym-w`HL7CSY|rpi?fSVuCTB!lL+(s*66b9knyixIs!((J5}H*puHmLacIV0Y zMl=0vdMlEa?!WMjqk=N94xB>9rDBQdyr+-*&bd09fSDh?wto|DHUTQPo1j^{ZQ!lF zCNS21yJ%}|uy;m;RtpYeRkWhf$8pdT*&*;JVXPXT-sVA^f)uBrIg789w3{=Kjy#>= zr%N-5VUUonkDiRkTN`eKzE`U=^dBwU?=9ngC3>%$id_3_C$0l_(l^1oN!w6;j6Ep5 z$8PvlHVSLKHQ8Bti-CKLX^JWyp^9qwEwhyCON`&y$(WOU%dyoQ(dc7Du@n;(L(=_= zN!(?w!{LL0%15XshDQaW<-EhZiCj_(?Y~!TdAP)P1884=vGM4339mwXQ8wLeUbfI? z`b^SDMsy`T^LjJt5he(gJ! z)g6b~wyE(7#$IRz(pMkBfAYo@qOLzbuhgubf(5M!h zvIf5VXH>})laEK$n@>BH6<<_W)fsD(O~nEPUzm~WigNP14vH{8)zId2WE$td9qAaJk`bO%xgCEOJ|4%}eR+SZn_uV|ur9C)gv#gHXa=D)3r z!4r;ZK~q5GvL*Eb)3F5pD+$G)7Hvf^laOA^A;qYOk+`-Fe=`D*%ZWKlksGYb6j3?pN zgWJB1$(`YGqMGK(Sqi(PQj!jMD#}4c z>Z;6Xy&Sd{V_9C}V7AYfIFOdVc9W0n;4q6V3Q~4*MO|wU{c~y|lG}AQb#%8Fym5$l zPAO4=$bNDWEz_r06h$TR2Cgk)1u3gSrS%jd{l!A;%vdt`-o>A!s`<);Oz=WLz3pRhWTQ%zab^@ z@f}A)Wf!F#H4Wsob z8cgjQHK5*Y=TY941r>bs)Xb7ssy3rK;?99@SXPd8Q29HBUG#R-;ir4}e6s#%ixi2u zi&M2uwTPNx=E|oVcPa9E^XX}g8rbbO_q#FKQ#~Q7Tc7W6m&mw+FR7`md%ACP=WG|( z?&)^K>#OV2=evex7wGk17t@qT#e3ne;|eI(iDP<*_YeyEmmovy@@VJ3=lOW+nmE+` zuck7mr=8AGzArM-sSk%z?Hu6~GvgZFh4gdZb!1c#p;XkT4>@;e!pvR)Yet$%-|uFS zr&%*s<DPX+$7VnFeSo|iZjhYY{)^ zMJ5%W%j1ga0R3aTwokj_Vupo(t6jtcN@eZr%plA@LA|bCHrD95>5e(@rAuRz^ot?z zDy(tEB{XrUE#Fi!>K0l<;ZpHVAw3O7;C^8T<5f^z>EB%sqH%Ee#m6X&02>i~3gVLt zDVU0f8=?3z9?F}S!)e9CBa4}w(g*uP7(7=)}j;N(#zl`?^-^nehz$|~Uum0R#+b4Zm&rtt>*eFPZNS35y%E?2AIE&p&W9WgV#NOIzn0ujij5uS!IR>UmY?9Z9 ztkNmhZ!irb&yVC|*^NLmV7KRP+1zWJ7d^vmX>Psj_4ZNswua9)^wq8Hmh%Q7bkl4| z%JOCKrl0fC<@2GWTyXgGccr3jS0abWKiP)j z+GBqmWlDw99b)ac@zHj#L_q=n26#yk(`_%5fQtI7jZjiyhH_0$x+%<5UJSL35oypC zMzzf#jwLHjOH(&osEOn)uysx^0ixlMh+vuo^&m0HTdd@OyO09t#(ZJp3H}M4j(Ud4 zE1oqilCrY;VnYK{5IrP>8}qEV5!xXe1NgYiet{Etnz`nLMgmrtn~(T*qAV6c&qya+|oKH7Bx3RkX0hLaG@FC9*Zl@36PPsX+}k5%6x8 z0-CJ^^x>H++N8D=I8%lcgT+olQ@EjUr8B%l+3SOr;{cM+5>Js3xT2S_jcB3-Z5TKx zMqG{%aAJxzu4~&^5&s+gC}RE?*BjYi2}1vDXy7V6~!!O+B)1{FfcF2}YG zRfUGs74mYTiMmJ`7Qm8n0PvsO0bB>uIlq`C@&`GOsZ^O{)yd36pD>Bfvd9|}$&54N zU}g6T$pGK$k(tx&6{<^eAu%!aP>p15&l6_4cslP|=azClZ_Y4tk))9&ELABoi%f+* z327x<$BPY-kPx>KjhF43_clgQw5{669*|l<)1=udQdG7Ug$kR5HMOb5+-f}+8RS79 ziaF_?o4UY@VEJX;tSwnu=h1KSh!$*zJxB#Jhy#~#z*7aWse>P%rFm9*eiP4w4H45T z?=X(VBJ?DvG+(pns)~l)!XO&0JP`tCDU}8nE{&-W13Qn=h_}s|O%v&5PDQ}8p`|&s zr~DR1&4`F8MJ`dind>%=HANHktl+BNvNEj6yd7o=I)l}!5ABgos_Pb7z+SK)a7VZf_vUFccgedzpLVD^>;#pxB}Di z!y?tpCKE|zE~HVcUavgW0v4M2O=q=W&I0gQwgf*tzbrK*wn*^=E5}}`)<(1c&)F#1 zHgcw8n&kLzhrpx$ZXlkgIF)uzqE*ckSap8CX`bA zFr3k0;>fY^H%UGkdkC@kmEs1Fxl*akf?ES+WMPGFnGbGw$v3#$G3VNFq97n#ovN@m zLHJo}#i{PH@`T6&tejO=*M~?nR@h}K7mhp^A zp7$h6vKM{7IGvwhG^{Muqmt-Qjgw3&)Hx$c?n_+$*ZGeHy(P*gPy>yc`uW1(`0sy* zocrWJJ8PQ&XcHq(;4yBR;7#pWL3!ke{>cT5W14R6lydn34q1WXe{W|SSzqIqRQp9I zFNwy7aT+l*f-lr5Nv)X`n@-l$UEi@{#&Av+kWI6S!yrwWIH?=iET^>@&C5O^n1ejt zCit%h6}r!q>WJKX2)TFp zZRA19sbA5@fhf$KO+}t>!OV_XV@=+VAex5eqEJtuJ&IR!XDA?x;cF9r)FSgZ@aE<> z2@(TCN-8sHGKb+}LmY&~?PTF6cUY2ijEc~ZiHLcNI{=xPwX9?+A(!`)bJz0tojW0S zj7k;D>BYZ{cQ|Btl0OefG%Q=?k>>^Tzn1fsI>N2II6aIm+r`Jn`IS zo-zqFy`t#Orj!J%RMV;lTg0ekA$n(tJH2SEIhO+%2TbZ_?N|3Em7S!|zfMCMNi5~n ze`SGsH6ldH*G!g=5LHY4o-vG?SLRwmLnGven+9y6Y%laTaEKHbzL}{S2JKWJvxx?Q zPVx_qwZmY`G`GQNLe<1zWsChZmbb#7+6?B?T6|LkB>GR|!{s0CT-{TwUY+1JDyYoo z_D+!{VyBn}^GaP}X7tD(&a70`xr*{#{!{($O2=!VwPN)-`8!@P2&4R0Q%FTh@>y_j zU#K58;e|#((vnwGp+aTyTB7=j?x_@dF`V2hV4=gL9D<7q|Jr1zV!1(^s`!F7rvKV8jnDQQxQs(x-2M-DRVk z9M;pf7v)VC5sX}@iLuE>v#rYq&Bgg~TAY|0ZO@V+s-rIoGcV7&C98Q1TCCw01y9JJ zs4V@UkmiPkb~uM_)B+8Ev}BTIn&mTv5C-SS+vXgPbe#+;a*?eHl?5t$6*kIc9Q7;$ zt8~WA3{T9$+HBCE>PFopcmzd75zpgc?uw0ySh6qF%cAunz$N}9Z4eynJ!o=jZM0il z291PHxp}6?O>63PU{#C_CgoWeyGda@-IwGO!sK(NcG|0&55Cyb;(pE+BLj0 zGyB<6j9{CN9?ks>!hjD@tgVKRcIckyR*8@^i-eI`hx0I!{R@LAtG-?SK*=?89jpe` zlE9#$(y=fuk?O%(SZXko#9$#jg_9;$Gqtmf)Y(IJh19d5J!p1mE({&Q)6+UUYGI9K z)`gV@?0PGx)(xNU+#sR0u*?ptg}Im@j}#IU7A!2y8rUxdwNy(7?FM3Du3|Z(k)n>l z8Ub5acWV0{4K@osE69-&zOV*M#llL`B97U1J-E)wW#^iNd(hI7LEX}NuuQ@3$?fWc zAvkb)_8bQ5qiUg@;);tH(4EIyq$dKYwT7-7zDRZdBnutM* zvoYup-~?DY^JfJ9&-W_xRcHRc?493^ zB}s0dujQvWu&)|8P4MrJqzoGn_R4^L*VR$9*t&p zTTnF`-RG-F27_cUA|oPCs+fLx+jwskH#_3~Sx8X9f;*4jgl$n6wR%6WZUUwutoNHF+JZ{3=-aUA)x?-RjmyT+c>b;>La8bfr zSo>0&gRSF=+0|Z^2o2fT3WlpsZFUpiXUV~mvct2Zl4GE@bq}m`>D(~5<6PYqz%1t5 z^5wmdLak*`W_JvfP7l9aF0J{NPQ5G#Ry1s2m%D7HVpj)=!}4*nu0D3^eJeLx5s!ln&z}AQJHKY9%D!X1qFhZVTaXt&#t<#WxZHc$R z2del+#*#Tml%p>?NVm3MDwBxnxMB}fTyzjoBn}IgjtZP%^_p*6br{55j?07Xh%F~H>xSO7Z{AS^5nA>1UHLHQ{g2Nku%z@d_9`Cdmoa|DU>e9XH8O|S@qF&fq zq-t;vHfMA%h;9oVsLUKWu!NCk0V5ZP482qb3z58H>AL6;!SJ^^Q}$HnRpQ5Z)QOCN zDd`s#9L{;I%PqR)iq+KKCgE+qm9P+p4>ong)Taq(j1pCxiGii1=j%tTrb4c@DT`=d zu!O=cI7$Lx_zK1-UOtreTc!Tl@D3;t@H&~dsd%?{ARF8sSFmN z3=1Zz0s|SY76UozO@Np7mW$?qUaCW}#S@&0&a;rw0%Dahm?b3_i-Ht3Yv%F|IU5%x zB0_OBg?9_b6_=>JDxsRWm9TDO9n9VuKF~8ucVy1?_lD8tX8|MEG(xUzR-mphoJ}q| zsH)Y*3U0Fnr3JlvM@CxtKy!{GGPzTapb)k4OKrkjxKJ+b##zMZz%0@^)rGWp+yc~L zapW~?L+XOnfcZNe1}F5PcMOg)#}%gtzt>{0xwsGJ$j-$wn{7J-t)jIc4C--QpMu_E zqnOJswK+1Qt~k8=kl~QrI=Iy#*%W5j%muQY(cUpSn0Qp4uOF$}t$C?SBP!#HJpf#E zP)+f-Ns*#9goGb1N<%Lw92&2NP=;^0TxoUn1{+NMiY1!$K}b-Ca>Wyz(q|c)ie=RW zSDA#LW&CEam7@k5J9{peoe6ADSF+SVO+RMv=nl~>H^q^DsSc`{cE#+~brBL;CVpUa z^noS9ud+Q*W>;+0$cqqbWwpTuh}VI`Q~Fxk8*;7ECPiK`L-is4(bHUHxE4KZL54dk(HZp*KWv3~WhG-B3KQ#*s+3xMFk1 z=(TfMZOp|Lb=Km*6=D}5>>7|O7HP$U5TiyxaB&@Dj7%dkeq3!Mm7PuZ*fW$?JtEyaOTT9ech>3L9U_)#5 z#tQ2gifn$PVfjRDDKE||4uSd>oo2o%S6(G>s+V1{yB*4@YNsu%)LCqL)^6kChZXFN zMG$hqmF2)81hF2i94t}ndmML0FP4c$ysibdZ|DrM^YtS(jh*dM8z7#2#ctp{gjkmz zm^Cp}yBPjT!>;WJxWlg4#oI2Dy}h*uTbbr7hFV+;hoj>n+LGPtT~ZnhW!*yB8=(U| zJuxs%h3yQ_djbb8-#EETHjH9Dq>6cN=&e_4YF2n$v1h+|O59#4Yt)6p)bb+Yvd1)! ztIp4#ez}+y`qQ87QOmQQzyIyu|KrQwmpXp?yMO+}KmP9J8SC%=J^%dE{%7`3zqqI9 zk9&%rJ(*H-qGN_wOIhzBbj%E;UwA7?q^aIMTR7pk?`I~ISH4hBV$<{o8CD?Y>{z^s zJyTyKYm#fWZtBb)&-K`W_r=ZFB0+O`{_eBRlf&;oGoj0^?>_5W!T9urIQ}m-KYvM2 z2zzsV`qSb3vA6Lv%qMD;)+YBPM|wLxU4o~g348lVVWd8f-fhmg*P@Ebf^}n%GZr^V znql&}kdx=HZ}xh9^_Q2{7hU?jzWkA&;Zmlw@^ZGH<=Zz8U2LaD<&xOVmbQ>FhtAei z`>XLRdUGX_Fl*qKf7b#!cjRfCrH%bV#aPvfZh#e3rwC#7-9gYlk8`IWj6zQ#q_-_VrdSDSAAN*=1O z^UyawU(jD-zVPc$9Y1zb;oEW2uQlEJmAaAY*LjG)@ow}>%ol$BspH2^%5QSQ@Nw?` zRz@wQij=q~HCLp4Iivj@uRni&S3FM#__!O@&oYuzmK5$u;fZQ|`sri%^_%&SE|KcYew$3+^aky(pG$Y21$E{$L~Jd-AMuv$odfEh$z&=kujBO&66kQg)aX#1LWGl zj6dvuc72S;N!!`&K8_H?aU4qEeHTzQ$8ji`Bh~#>a6w}=nO6-1scWhIM5Bl+7}$q) zk*#-OAVq5tsrFaP|tzp~$c_fP+4f8Xz43vp$3cl~Sjl>Yc97UIn>F%SfA z4&0@uLqLv$JT8g8JIG`|FMKLnv20vvn`&fa-#rO|v>tku`^S$uS_Mm`zV@_eE3==~ z(>$CVrN8(_-p3}d>rR(DHB9m@P)e@Q+31p{bnduIG+C(0?Xz_fXR8h@L-`BLpm2zf z02Vi20<1wDU3HgG%0T9pI^FOE3PH8PcE~En8HbWfEBio{M-1f3s#s9XTEkzD_RJAxF%q?~ zBXyb;A{KRLS6j^8m36T+$&8&P3oA=HNpx52tEEL!76p`3Mj}Us-6e>_3pEl~<+4~P z!*gHlq1Hozipa%+HM$ooVQD>I4Pq0Oqi&5O5-B9mvh^utEY=p;HRW8rWaal@S3cSu zh0kb5HxcAN}!5*#(ZmpC!9|ywIbr6#KazDRRr@u348h z7|RKNHfBO~z=6O^dqRW0UOwP27Z;4d(##a$Q7 zR{?4y0X+m1MLOpTZZcMvT~<anrbQfe99nSGdOjhPt4$%j&Jjp86jOKkl)>L{v?qoLsR#fq$K z)#Er-&rQ)TwXLTR?6NJA+s@Gv`c8l~WxWXiwG?c;$Hmx6S&P-US<&57@bHNmyX z#*m4fD&MsySr^M|lu0b;1hZ2_j!h*&S)Dt0w@@h|Vbj`iE-AUHSD_TE*wospF1=^F z>RG4yS?e$fYA+FeIHq$Q?7wQ+)4q7hXVT7B=cwm*EB5Jq-cm}QpZF>1>*G6;?|%5< zyFZMwUp0*~=1(6_lAfITG7vZW_&bS1YEOkdNDEyD&(M6K;biSTbU%P1FBC?a*&`#! zqd1q0#k*xa0?y)} z_&&O(#e#bpW!Cv?f9h`?D7A#?VHbL(-zr_$V1Z`i`!HZC%5Jr_RHvt(-!RPv<8&=`8s zd1z5w+V?8qWQ!AhFdXwlz=N5sjS$*rr_8;Yl3A&r9cY!*8659?Z7JJ-=fGH)DPgMT zAR6kDh*Q7~9T5-FX-M+a$akS^a4I0}T6 z)Y1rG966u0YKdr>VLXq%?#X@*ilNBYZYD)A57|6LqIV~;Zq6f%Xamo4&M$br^SaW} zT4mM!x~4cke^GbDmh$OmonZcW9KdxPh#>J=N9U7COTB#hlp8Su>vmZvB}1^2Vo;ce zPx*9H=!&GGHe^oVYKx~V3JU4SlZ@$@6Y|1%tdpBEV`zmAe5&A24H^))!}%d-l(HPr z`1F(3E8}M!ZYKt_DgNza#|>W>J0Hi$b=AzOs8M;0^C>gCT)e6670130SeQvQR!VT8 zP=)JudUzu5rWD3LsV!=Yy9E93D@8yLdVIKxDDfMuyGXykc&7D(q0eCD zL6bJL7|~Z+@*`BK-1Nt~jG9L!XF4f5>MWXL&^Nq`Ze1?$5yeco-xer}Vz+4U)tXGPCSIMth1Tp z$!qW_jSaTuqb1HKJTWl%Bm|^yHgcSBzS;RHlV?TGY6SV4ujK@HOGF<_?Ns*QqjM_T zvqHT+0(@v&8LeuCfCKA!Os_O`q|=*$z}0o=(EKet9rJUQu%Z(g`cgZR9)6m&h*?4 zYkj(wQt@;xrTjnEQvSl$Qm(mFf5jyhZJk}if1gV%labG_%syM%FwZxg61Acza?WRT z5u>|Su&9Fslif-v5HPu^7FkQZl!a1i7-fh+mjF{jh4sX?7ZSK>C`BOS zMXHl^0{#MD&x*r0w9#luov8YaFNeGIN3WbN z`Sh0*5Q2hDM0^+z|GxcJpk%0dB;SNO68Y(UD2jnHB>etb?d@-FMxvI0-YqB+s(s^|tUtyS>?~hd z{3`vA*G9is^Ceck`{Da9g^!$~W`)al|8R;L`^sa2*FCwPe@yVYDfjh<2d{Sc;l=rH z7JTySm(Y1L^=rntzNlZ5!g3{OmdPqb(Y{~xT{mq?^gWp@?50YteFwuTQ48G%~LBf$Ml9y~-Rt&f}dJ zW_RHrx3~o;eZT77Ltej-Q0MRi_7_9W0SRT2${TnhThz!f!ke`HJ_*e*t@E6#v-&2p zmxw^by<6h{GA$ zWYD{hs~*DXv6DFdJe>sc>B+zuW_IckXGO!NlIbA?70(`6Nsx6~;nb!(z}uGM z!agD7QMXjGn((QZeuHI^DUFC#x-jWjtlx|N<$^&!3I_Z1af+N5xO{LxN7zHB;^QSK z_~|WC>e4d&$(HyB3qe+nPhT@dG{(z8<^TSl{_3yZCx6Fy(t>IRKWDOzyE9?-KPk%Z zC8RZjU)5x_s+G;n$gE!gCJKy+t?uJ|zj={+uHa4hO8r6^Ij~0{dtoroMAmYgUF}Wp! zRQ>KCnN!s%OpLNU-OcXbMpf;?;WM|Qn-nPASVUHfF$plX(m)!^dn@O=iq5$Uz+ZEfb* zXYidh?;0dgx>ymofw-#>%(JjtmvFYct5O6YvQPD=3Rde_tF4yzyqia0WMHmUD&$IN z3i3)vFP2=My|gh)Gg;TNTe{x0NJCt7$3s+g+_fo9!+KR*8L6?tl$((=tcF|avE?d2 zZ?!c!dIGvQm31)=Vb{e>q#Dmm_LH6BkM{--K1$A$kD654mYGs#8a_y&(E~lf7-j~~ zVJVh1%()E1dfoP2DyGR851|vY&{BA}bXww@&@Em(OS(lXV?obT`R!J?3 zJ&o#)Xe<{YBFa{|7O{}km#Q4GFK%YTh8AfUfmN=(SQgMVEYan|EX#7w@y!D1^K?d- zu&(~D#kHRoiB1XZ*GZ+<3!A9Tw%zP(4z{~AMHmAss=1|jqPp9-FE04W4wuJXm=ZsF z7)GWXJU3RtEqOTE9leY?cP?VFgD(}b+yscREM{s}c~{Jy=5pvz6UOu!mTcEy&MCQ= za75Oy2&fKgcVJ&#L0{b$Dk_4z^TI>=04U z87>@Iz7S`N$5PzVUqgxEzFVVN%oyfbF$JYuIft2=4CCsO+*gMrBA4Faw2q~XIP11< zT3giuRc>GyeeG8R)S_GkGMrD zmE2XD+EzdW*~%D8@tGk&k}CX#7-{zn7F6)NGAMjL#*Bqdvc`%b8gUm0)k-h294PYu zg*k3uCUxA!o0@CsR7_nqJN2F``i*AOJ%ZBf(uzIpJi7@h!+yC*-PcYp|9^Yux^l;I zoZ(wpceJ_AJSLY zf;o0RF;WUUhni%X?;%Q6Gxrs%!pv`meP=$4VJ{?=n(x-xJ7xPSvC7(72qsT;(zj+s zd<#QYL+zRZEvInM%TWUC>L@`Cn{oJYYt6-!*4U7psW0oWxy^|jwPmJp!br5rCzAL)tQ1T&+gY&x%D!&KyO{P zk>Tfgozbzc=NgH87#D*sH8uo%N;pHkZNn&39wMR#nL;tlo!y%`HE_DBXIM;3mUx^W zZ?+xK;R}j1&UE0`z-AI5Ii0bL5V1|&o(i*+O6==(bffP~aA)ek%choFQyW$}!bgd0 zOXrz4m}tSKX;d4BY*HmhwNhy@ObGQYWvNJS)eZ$=o3?ggS{BoSo6$Pb4vS*#NRmKk zoZeL|8<)^Z0z0fzRV}wXiU54OjvBIZyGf*}`&O?k5oOw@OcZ*vcIX}>mny(BU!o1R znMrFsf7Uxvt8>$AvV6N)GA$>J69^6~lv!L;+t$u;siBp*sfA0#VWB!LwJQ4{t3yP* z{q*&&kug>UJA6yy-jbX`z9PNu>~-rGeAO>7&#B+uC;jQ|&)zG&nI&SS@EIGamBC{^ zR*BAbgh?}PN@W!_fxvWtcjzovob%t7ec<$SNmCnoibiOQ?UY1yur-0~FthKb|X^$k9HZJQO z|NThDs>bD#>!d&>Sk`{I$)fR58cTHlJyzjSo-2}<8H-J@ce+hvtY^ifgEr*t>fvaiPQeuAO=D5-p8^LAy+Ug)Zf*;|PyJI*CGunkY z&4A9a(d-xc?rW#%bdGfl2q&sJuOFHo^KXg>BqB>P>UoOt< zX=%|ub>U{o?mWAHl2hJ_tl2W_a!5VvU}^|%>gJKXb&(CxVU{lFEunk2Pw(^$kKH?# zhtSS#An7_aICJ`DSdx~y?Qe-n9|@zOeY}Fk&;UOxV;iPk$S z+*#Z3vbE(t5_PeP;v>1FWgee&@6>a5jf^o@qU<;?x=vXbp2x6QDM+4R5-Wg*!eQGs z)Jzo5Fy4iu3C@GZA0og z;6c&as#VuWpH^jRc^uq8R2&Mc97avmVM*iDE)h7WywAiX<(e^fu@Z?1;p#HZHf)uG zcgnssDql6K)tyoA?J^#26`eCpd8v%+xpXzo~hvqVua^+)OF$@qd&o)Gn= z_KUq-MCgxMB8bGCnnEV{0Cb5I`l2pMxM25&uh2|h-K(T5F)g*Iz2%XV#2b^|?ZB%i zmq_T`d#bL|S8)Y2w{?3(JCfJ=^iqi3jQiGT!B?lr)Nkpx0?oKOm#J}9E7r1(wl`{P zwj*ke!xh78k4L7;uK2UA378JwD&MSjV&Df^FMS&57MvD4BJ2ExMcN?j2LJ zFKlYnG7UZ1;afdzVXAj3yE9GJt4nn7)-;pdaL#azVDrVeLpuaRONfKYGzJmXc31+_ z%wWcP{PK>@C1okJYCJj-fnjbXxM<73LQZdOkUN?po74Mb`_a6ZtCKBuqDjJYS|Y>p z0bn6qZAVj>n{0~>E$bR8rrL*5p__TBv<*{04s%JZ>20gjwYTJ;x^fQJCaXtn!cyqO zVpiCkN_K%gRaq-EGPeuSg<9j$U}MhUbu}&T3~^`hikA(Z-!Ql=OXrNSDkAj+gok%t zl-WL4PCPJk>>bf6oM7@!*FBczJU?ydEhIN&S_X!}sfgPG zmY5DTWpkK9!I_M!#PhHS3{sJ>r&R?~zJ1Rk#;CSHv);%(Xm`54vuWGQHnlsOj(W79 zqi;tc{TXppg_$DVLvVy-(POhxBKxpxvBT7#>cL8;9&b*F==iMxmRI|-Y-AlKmO3m7 zsP`jey}E*g{DnpA?q7BMV98-?yenc;;~z!r7mC>5d~8ZTD>^Q&tP-@{7qwmAC)$i& zQ`lp#oVP)kTvWdly~6cD%GzG9>Z{Kh)l24djjv*#c_-$yyNa)*Zomb*(6%&pAM}F1 zf%Mh>T>fgM`vuP(IuBBpJwM+W9S>G5vzU`BVlk5G6x15QwEv!#V$;<~eI_FHK@L5NbIFGFfS! zzOQLzgb$;T=MDQbD}6v~QLJ!zE;rSgHZ_(=rOlflWy;+U%T?f;sZ04th*rtVeVK}{MqLH@ z#&V_UhzzFUv=V7vUaKYKj5ime>kanmt`Hm@gppg**%8gdz?`!_MJwy4wwm=kT7b&7 zqnWDgEextW<|d*kenl=tN9I#%^`_76DN5uRr9~uX=25`-fXZ?)^Ud5*y>Gp#Xb7jJ z3(3(=W?Nq|5oX?Z8oM(TUao&ueE61SA_?0XkEYJ)j-l=5nD16X@i;nsD7UZgc|hj^HQIF9r1&n(s{l5ZFW=r=CcqTE2iQ?v1PDXh7}L0 zFE+38r6&yz<5gH%)4F5@&uik654Nw!S&j6h)e5_m%dDTR&GqUz62h<*q1PKLJZQGs z>cSG6D`Vd=FHA+fyO(HR(B=F}=)2_G?1xFdmG#ZSY%-%Sl~pv@Dd-^FD=v-IDPlP_ zf-rVoGs!lBr`}~~zqD4uJw8{<+B)mfDO?(Q61WJ(8^bDO*i3__k$Pba)YDa$O3=27 zv$}Hb0dsppSYSJKWJyC0>(ZW;hg=A)9{Yr1r-QWRrcyj_)JgTti0@42FV`#R->S&a z41V6zU>J{L!(9wp4Ird^Gj@fI9wMk&Q+lyT@$=(5DApOEmqGVf;8ut!V@vfsXl_TP z*Ocu_iaKu$7NB?*+S;t@0v9Y{v0I9P5nB}o7tzh4`zc}sg!Zfsl3seLt;lxoEsj|E zIEk7`)wAFP#WuY*B;r|y^3bx~vYaG`q2w@h7xG4Bcb18l>z~9o3*KHz+xlsXsY4EI zLk~<*@xy3+SbJy;3yJAVY0@9Ryn|;8W~*mjVx)SHerh!$M`v`Hv*4fY*VM^sjX;yWNZ7Uql-=czg=Wz=y=yvD!Cj7<{71F?ud0^EG7ETIAEQ@hD#{UWxPLf6EhwH#{3~Y5Rk{vRYF!ujYz00p6f5 zREqH;R)ETw3+NOmVb7DmYJ7ZzuI%ovIaO;8^T!@9q@K^9wj4a)LRc)7*~xppCt8nO z4i^sdWs2e(QCgZ6um21E7)V^g^8x_AFTtw- literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/svg/applications-internet.svgz b/isis/appdata/images/icons/svg/applications-internet.svgz new file mode 100644 index 0000000000000000000000000000000000000000..5b5b088125754e3ba047b0151d453f5eec086d01 GIT binary patch literal 202524 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�=wG*+2ZaK#&P<_DTMwx>FtvQEGV-MUHlJ< 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

r8uN61CXA!=SykU>)fph*DCGS3~k>xs^S9tmer^ z|2ywP%|N>Ja%+7!N`k$OAJ6;@-z?lOX=p^dfQ90=ql!nO`F~YZH_{I&d4T?~*tz}k zdh;y0=3X6N=U}Z~pC*x1wOR>4f^fRBBbRSSywf^F-P&utOa;ide;VR7Qq6ZGgnNdJ zB3L*^_pI_t7b*9AZ+owEo;I8rPELhLH-EoQG;}i|k?hzg9r5KZ$!k-G)Yn#EiN~>M zSHZ1M&B3~uK#h#D+V5I}zgIEy+JUnfe${QHDGlr7jQ6F$Uu`CC0l-^q_?}0@>%jv| zuIZ!?;9P>>Gu((n`6{?Ae}mqn`CivsD6s0Ew8R|iQJgkEb9?q-fAn(`yau9hPu|PR z15}(A1}qu-&?41YVF%_Y{w0Z?5FYH}geTejHf6dsu~E2c^hfmf%CPWLgXL~Qd4wBZ zQoyI!)@)9zY@HY@mVK$MOWRMgX^E)lc5_J*gYA4 z75IL2Tl49enNOZDN!|sog2M0!N-eR(zYQqWq+BscmXaA}pG+MkeGfK5ZG^0Lf2s2d zgw0`zXPxZZ0du4y#g8r*5uVJkL$vQ-OnSc`*7F`lV0?wbr30+|7=OvfmF-TJ+56;( z50(Mu9&T3lpC-g;(Db)QmCIu`>LMdG-h;j^sV7SMneKZi{Vg8hRO!8pMm%0P!}M$) zv>D7S%rXm3h$kPX<;llEwpbz6MDbl2@Zt_H>hwQ;1nS69YV{J8U{^X7G8-LGi6jtBAn8$nu=A%K{Z3wEt~# zHNZ;EYV2!3L}{m?8cwrHzT8J_vh-ovHb7+-ZrG&oB3GaP5q< zNQMy*l{VfjUg<&sU|Pz>aX*ly79WB1ipJQ__h6?m#?sL^v4IX>XuAYRR+>)dmb@ON zk5V6=oVrr&FE)bwtj^I&I0rN3f05bqGo5t~GV@Q#s;?N>JPO#i4;tVkv(aA-lM-X) z2BQyhMGxXRu43^9FW`)SuLq(8_*#F4LK9~<2JKbI{i1hV-16xqtGf)vtCHLp80Ru| zF8^Jdg7E9L^tXSP9Q=>tHqXx|a{r<%KlZrt{kXJzhe)bkILVTYepIzf(tWyIT(wEv z?m2j!G%ejIfOk&9aos@;gUqktpoha)ppD^I`1a-en&RZ{@lboVS4*f=D`PnT!L7cK zy}|D;`r0D-S3whbsJMdDzO9UJTIFPR;s_aq^1m9VDMbQCu9zF81#rje&$aqFA1C{x z7C!l}#@_7^#TV@t6O+|@6%4}ipvr1kCf(B(9y+4@gWP^q03q?88Fg1Br zkVVk>*}X7eEnuPd8IgPY6z?S%TQRFyt9pq{8=XM?JJ8{YSd5qGfL%*a(_z3U@v7M> zrWa!eFx2u?VD#3yOUHC?rKdbjibLHfw>yyNQ>8?pjNiOK;s>LpD%V7$8= z1NZ6Vl%aJA;ds%g=}TCtVC5}lOw58-GjII#_15@n~37dEZ7oVV=_2& z+jpr};{h*Vw8MnYb;7Atf0; z7Bh1Jy5AD1%`NZodJ)%U`+kin`q;v3#6lMER_m3)5`j$y73z9_ZBy@#cw7laie|5m zDYWJxLuZH)s|-Z*SZXf?RSXoD_UD{})(g(=zmy+=>q8kv6)2$j3YxBqD;<@nQ)I@| zzR?23Xsvk`VD8Qdt;eB@Nqc2^(A;0y^*%oj`-5k+&jH25H~Oe=7CEDj=6 zwYg?1apEhOMJi(Iv|!@t|63@$a5tZBdnql1@c%;J(D&ZFIu>reXgJob_) zGs}hKY^o&Ty^@&fkTkaD?QYYy%fjAo{zd&Mf%{m@8aAvoC`X1q7x+EDl%PRx%_Tih z&1XRBK>Gb`N~q76BrZ;;vdT0@Ll5iIUyZSm`Jg?ux~+=0Ag-`T;J}Bp7V_rp1*_6D z`)rmo)9X&We+fCS@KjTcYlrwgAM@0munFWr8vYCD_4(g$eOCFgzv-$Fooww;yeblx z2$$gWPw!lCv76e#7dVl`0H`9iue0~p4P3R9+IBPGxHqrz69 zUd)gyAsryOqha286zP=ih^5k&D+j!l+Ki3Q0hO`_pT%_(JOhi0d4pDUW?KhpC&!Bk zcI}w7_zLrH;u2&&RJ1pZDb+sECPf#k5qZaLKmfneiH>cnBxR8rm8~U1fV*!o zK}}5@b{N}utY4?zi}il{mDYN%f|}p}48?{}Np~5rJbtHtytdY6mC7z?oPdA%*LV@3 zx`vH{M(mF|kNM_Y7R&5Xj;G?UMem44hP0aFRPl8;Vq4RcF4)F`DcpQ7b}h>K*7T6f zWqu6Wm|gD@Wx1NwZ{5mt>5wihS~~j*B-%GF0O*fof^hxaVN%ObcG*tv%z$M1KM4fY z&&a35??qZNN^TWVk>7z|)&r`Lt1pUdU77Ta?EQ*!ikStZ7zs|dpUF8c z*Pp92Wct$#lY>fBzbC^Mero5*bD~*_NA;*FT!LJ1!x$S?BvA)oiubc2WVBA_`(bnZ zrOvRX{;YTvoQ4a#w|hdSezgx>cSUv0xL) z0gaX+_mQU(%Dze>!^jVIK9O{*g_0OgGM`iS?%?fJA9NN1STY!|_*#Ga3)jE{%IKX3 zTXQ?qOzlUZPI+W*A88n;m1JCoY|N`oWVX+8#DLR5Qn)Ln@rpQ)@KF78F1;Wd6_W#W zN~wfIHU;|Qz^8i*HA4d zkv1-yxr+xv#Z+@|Y~Sh~iPljjbbqvQs~BDQPt1m^g~P;wp15*$pyHat z=kFXvh@Q<2+e9T#PrbJEjd!voMIt*U0y7UQd!iepDcjmf62wi*b*T96 zU?M8i?G0KCROJa$Ok{^MwhM$pUng3mK5Rb!Tu#0SxN<4^@Z*7t*R4Xsf1-x(cd8Ll zT#|g|tJP2XU>^Ax$8DZ>{Ato-PH!+MJCFqQ63d&{>^$`NHOFNGCrgw542p5bQ}-lUB)^B}0H+4GvPUZ1 z_n+nO4yLTo9)iCg{qE103tp14l7H$ig`{YFuL?T>75(l8va9qXSSGiKW}fo#ZM-vO zF0_5U)dV7_Udrv~L(5$))2yT3E1Q@={{!5svp?98?99zLfksmCyB4@cRZ$l@R&t6| zCG3`OaxbCBSM2wX>s*k(N#Irk8b{!=GPx-;&5~a}O6SYKyH8edozKdgSvIcDZ zlt}!GEbwgtY76i4yLW`jxG`k@T(?~+2Y?-_IPJ{-;!KQmaw9+!ge`^h!{Oig1OWFJ z#i1NhX3k@D{73HG!=>7JBj@n#O@|7dYbp)qYSx+YfV&!yh%4W|&tCTK`;E`X6RPTUdXelYf>vs%Yb*Kn1fO z36y^6$*2jvpYNX0mb~-HG9!yn@eZ9A6XZj23Y~%N%JP1TSb#;=(q|GB+ZSOlpu;xE!(-{<*sBot_t z4dK43UaBJTy;$vekEQfseH}$DMRT#xs5OMnZ+Te$~EEJ>IhB92y=!NY|HY zxaq5+UN+ic2HuZLr2JRG=^q$JbaN1-!bcf!UcwV!yKY;nN+W$c-jle*?b^hYh&P)z zh@2B^*7Zx$X2u%4ddBJwIjM-nr`WApX`IH+gbI1glzD^hV%u-T=oA5zu?&IbEWwjV ztMz4Qosh|Zn$#A|-s&mpb+t}Whkt^9A>9>x1JkV3Ay*d%d`MTRiRKSe%l3o zyeS4+j_z>M#=rU9w1H;(WSXqA|ECwV$n2)IEVyaPL@B2wK{vH4G&SvJU_WxYu0Rel zx2bu;ZoHad+8&u$>iHvYr;o5)=-_ ztcy)nMZd-^)C_*(GGTfyS=zVa?hx<(hlyJ_2jAvv0k8X^Tr=M@TzeOL>zypVqGB7Oou3DX-9w+}h_GNn!y*44#I2cwV zaAJzXzCAQ*$nTeWNuJyCq5wia27+3u21M+QNR#9}-CeEa@vjK@D<5<&`>ncFu;l2P zf}^(0mX-*jua@H8dbc&k^$-+_iLzO+V3Pb10Mf@?Dy3U7StJd%h9(pW)5Z+?npcKr zl{7GZFpL3Gt^LLR^1={l6qJy@bb}l%&mz6LkbQn8StSzNzGtcb+b9HfhfepJT@S_m>7@erlA)>~UeFJzc-0MI6YlJ&a$Y%>rp#ats#h1tPPyOBJx+ zVIN!4e%_S1EaW9WI&XeHqt-jx&}+A;6jpBZkrv|*f!>+FymD8#k#opa1^~XD(uy3$ zHp^!p^us5rt_H~&rpZ;&f5r`=*{K5%5K3}f4Ak$BL9y(ZB;Ryda^`3SuCBN$e=-gpc*>IhCbxjnujF?H8#^OeAW4klI#LK`zjg+inxacf{7({&`mu@vKDrrvLh|LP&Kq37QBR{8$ zh@_DjPaLgRxCP;!kjbJ~*)PNZd`O1nMlEg5cU&~aa+>%C5MTHahB}Sd&i^&yZcIfc z$QLF2&!y!#cw{tO?Gm1~6EatkQDrU;w8Lo_la|}I_j^#q7n8*|1zLisqw%%A@;o&b z$sf`uk$kI4@T863r;V@G7hO=_jE3d*Y%Jz7Ku3{<`hl6xRoiEl(U>>#o6_ID9MnJa zwX`VtvNE~ZUW}W}=PTj%i!1jo1Fs@$JMH;=hA&@Gw;@v!KEfGaKzG}wu`h^7|4Cto zNKbP38xIZ58%+{UbKBxqIXc^5aYCR46&zm*bn#Ls`Zn@nGC$m|c5Wm-3J(_adDqSi z6joX{BAx(^#^cV_hn!8|^HjR#ObKtS9=B&b`(=q0>4&?X-@YPT)6<~^U<4b zrMYgRh`YDR;df=P!*EhqL`4Kbw=>qKGg0)q>LX|CP!YU1d~Fo{mCzKL%2i&U){XYn z=TkquN;F>>AarCd(=zxD^5oR9z4Tzjj9yQ8ZlsAiX=&(ezItYii&8| zxaR;7o~8z6)@iG0HI9zq);6I2b@)If-+QE}hO^#MiU*YuQy+kIka*k3T0P4jv0`O#nM5jQ&r-7rm`XvHZi&Vm+)mclWAw zA+xj>+21-iWu&jgPlxf^Is4e-pz*@Vqzlo9ufg~zh7sQ%5_@qCLG{Wuv7efSxJNvp zgF&v(IOrN7K2)%&q%i6I@$ar|jTFlT$WW!UYYnQ(I_Bv2#6bc;VQ=uRzMEn!%#|ZA zqT_)JTbsyPjbn7=M|XqR;$2|*R)F;XQFNX0Y_)B?yH%qPO6?9rYZsv?I*cmODiK?) zq{J+-M_Z++QJYvTVkHqP_Gs-9o5YM&u~)@jZ{F|c)A^nIT=(^#Q4CH#z)=G?`YU4f zukBT-M#t|XtzIb&T27ADC%+}pV7K2$?L;**?s~^t8^wL(QaX?ZR6)?*f8?K zRsYK{JqfdUWzrR>Kh~stX1n*U(c67AgK{7E$bT+&=c?%G zrgcjZa9cIf(I?>-s$RI$$=oOYk0Gmi)w4An;8S)c?S7z|$43(0iLekYs8G9|Yn^}kU}u9wd} zq&Lr$zlHr5+-^k_c)(NnIa~g)G(BBp?i$e7-=v#gr|i0`$afiE_2@s?q>Gv5+}~3v zp#{sPs04!^P39-b#%FX#l(4?e;t&?)7j96bscL8DIcVfB zYr+nf>Vh`NT)R9O(RMSb_wV0HpQ_#Wpc*vLS?u#3x4bGW?R%D`s7b8A@X9!~Kgq`G z10>ioP?m!!-G`<^=y80ZYina>+jEb2#cbEJ?yJ=hc+QO3u%26S9C^=j8Kz&y*fnc! zESG>;(uy`5=k`#`8ILWN^lx5{8aT+?UH@PTd&M}hWpDR!ZIE?I9^JokHwxkJM1$;Q%;+lrl@8ifGwB>y_dWwfrtnwbm@IzJMYu?9iAfDK~7 zNYCXXgYZ5gxoG1hVzkk$G=vKLg#cmbzBvbe1Ixr#3#V`B!C8VsdEb0zQaBJb_60p1 zgv*|~OQTs57CdTo(a?{e+~;T@-7O2Q&W-#&yTn}H-Oc=a#+Tt%i3YUeK0{5fT9`3P z%`=1Fu~z-tXq{z)oc^w;xPSX@(!&7pnwRSPNCwML5N=Pkhfi9yyLMf)iN?{s&-Q~} zq0w_Mk8}K??5L3hya2-lbzO6EISLr|%oiJ$Bzzj2@M{YFh2xW_ATc=uXs1V`;3WHx z*F$*fsD(ZXRl>Rp)tB=GhFuaCz-;ij=TMAhQXtuU$gTw8H}Tx@PKW#7GKO1t;C;yk z0Y~P~j1t#s5Vs7oytyR?1fPOvv@j!F#!~1@YT|Q#_z?Qjk!8|gi2(W67%Wcvyn+Sz zCX(?y-v~5;RF(b!pSy{p!T))?NoL3avqO{W{t((OFayYb9FnS?yX-QAwgfG%K!x#{ zDGMkVtG}F{HJ_t%_c{Uj#yQ^y`&wXFIr^<#3XblzNeO^U2`4@>u0@+hI_2ihBA+UtSz#H`tuurZGx^N%Eg2q< zTl&AtPEh{Br{|7hfsIT*xTQpT#r#%%J6uQfdj*DgWVS z&6Mt1F^Pp#$Iq!x?oEVdv>4^e(Mqn3m=TsYH5O0rLWQgKt&GW==f9qEz?^nGRv7U= zEvf`C_P`wcXaFTU10L(h<_5aPUIwsVaLOc(kx!DuL#4*0eI}4z5kq~3HI@k%(5I|L zAF2LrO;ID#w2P$IBSdc^625QWcaX!FcFd8lJrHeQ+WYR5Jz{Der$#ZCyVcyat=vi% zeUPu_f=B5m;plS;*Lh>Sb@0J|W5AlxK&Z>t5V zSz&_h)YtR2WQEn)(#U-yz5CZ20G(Ww(s^oAcPX1%a?*pGsTOPuGzjFU$q%>`jhreb zO?(=AiM23>6*33%I`KS&+;5k_;{|qHZtG4rKkXZRio&88 z;2()suytitc%xIDN2whtz+aWNwxk+{&hBMHCJHm4 zm3Q4+z zEm+%y#srijD?Ap3wS;!NV8`((nQn+2zRf0j!D?4b~M%H-@PS8&YxBNqjzk zNMHXHz-to1<(u^-=xR0AgA0PI2E1BTi`KKl<=E3@+Kdi9Ol6Lho*?{2M#c>U>kCK` zMoF}dtkwvA37&)V->5kn3}1nS<ZshAB8n{Rx3D1JE8;tKMn^!B~E8rFFSlk z6WlWcnWb7gfN^^(5x_BruZ})I5l%z42(-EFj|Pxl_|KkOS5GL%6Bxe^!R-p~+zSKn zFVrp?4}EEL>zT22Ec%_jT?qiF;Ga;yPKHZuc~8?xefI|8Jg7{!Ug(Vjvl-{aex+oEO3tQPtQu&^>%7N`lFm(w_)IX?^UyCL>sL18_g>vnO*?g)@@!y$M8W= zAnKr*ZLvl7!X|e}YQ7{|?sRr{gBHkCxsa#e270zM19Wgt$LeLHfdn^yyGFK z$xaLx<0(VU%gDV3OcYPXA&F>$kvbpnEQ(_M|STzn78DNP31Oa|BRR z;piIZk@-{CS5Uf=0`lgW>!(&FIp zk4SY6;iM03O@QlbL$Q=TU3}3rQi*IO`T2oO@Gj{Twa{>Gzt-KA4x_{$1zTBfe-9)2Cpm z46`=avCTwh6SgFjtf4qMzYC4-o*rab2K6zE35;=k#MO?KL1!v#npG+2ddrQ z@`6Mg);ONxq@W@=X(X>Nb1D8Jf=>-jJbbetyBiQezM~->@gJfjB;B)y>C(Z}m|Ga5paX0Xj zo(9R=I|kogBYcHyE)jQ$$g-_IZws-D774{4DfRZn^PwrhZ1=~y(Dv5*i@WNdOTdrP zOZV-;?B28P(g(=*v3TNOQF32`Ay6F#o=i;!-WU4@&tkuE4t(OQMzx4MsqGhxOK=X8 zb+!U^z01x-?fUufX>Tq6v;y%gHKj_IPmC-~zecbXc{}RmUaWP88_z`gO700af9%bd zCwUy{*SiE4Sd4ay_=0|Hg#t@n8=n{(0;`tqn!RXvv{_nOX`(uFWJZ;!e$4-pTg8?# zAE21>AZwBIzEWXcV(o+z$5q@o_t?!E>6AcXm2j<7+L$9o4&u^__Wec&rTYX=01s>}FSeU0L7LYj<=wrO|a; z+6E0I*4;FSe7;sREElI)h@fbBrl7I3KCKb3j)HeL?Ed)lD$(XAspY+8k~p2Lh(Rlw zWg3Tt4-^Dhbcd@uA8Cm2b8LRXrzuGPbOb#eURAPAkhkC>t{Ae_m`rmR$vTm`OObUc zJnAaapxwTB{+Sx;dACV!;zW@Cr%9R{{am5n-j{Fy)QSY)@hA=&E92=dg--5(N zqyU%sjz?oDAnTMSQcD4O`*2B69!X-tV|xig2MlkE=oF>rP(zm`7=6GNiZPuE(qFvW zT&FD2GT37VuDZ)Mz=?FX=8UyMpkeraiDkO|KV zie^}+JV1qD7$tHc+ZB*J4L6W1H(%y{`kE4D9{W>hCD?H^*b^XQ)428fSm&WrhG85R z!=bHngZ@N=a38X{>{ZTTuI*FcV)|+~)O^B@F~j~{dS59oj3Kf{<|xh}^9at(yynGa z)36T1?AMSIEgRMAoI6em8>El9K3JccTWm_2>UpYTHQ8DHlmMy)02%0Y^|OrP{~#b^Nm?*GM<*&1fSu z*M!GTtvA;2Qr`=)x`wqT16jw$1iq?nw`m3%@-ozH?pryyoFpEM#D!nQx+F|3n6iS! z_Qs(hnXLu`yd{AWzMccL0sLwQRkS~5fprqt3f!4rdXgUDH31d#YD-(T7&4%DI?}qY zv>fmsp5C-1k-p_(!Iqc(5A$GpV)pX{p74-SRFlbVEx6vXLvLv5skB=U(9*Lh zAo3=;_awWa!~2`B$(~9%Ap%lFSEd06z1H<_uU1Sq<1$53|U~cBzQ7=vEH-qT9+n`BVVN~Wf-#}xQMTBD+Dlp)6Yd) zRK+#}xAP0g$jrMrvP zu?N*nvB6(dO#}}awR)~zH3%3Sk#8w1eqsc(3kaT#nE^H-sWj|g3*Ns|J179$nW`zE zC>PtUWm`7*J_r4fvk&zNGG()cZ6q4Fq8aPCuNA2KbGH`i%blWi@8L=lfQL?qfv7rz zo17Nzpb49k^QO@4zeumgxgL^Panf$7=vdEjW7{vZ1DpH0md-x4)1*YXJL;{6wC+1j zq!%lbt<$W%`tMVRCkrs+Q0cq-(IvujDC_@t^QNLItIJ>aA-9mg&Mum*S>^L-lP2%p z?f@u^{-wN!Y=+0I?pI1m!369M=>;OtY8oCb2fN;V!O;I zAc=#w8T`m68cTPr(uMboG#TFt?EKl6x?JvgW*P~4lWBk9OgNQRZ&_Lm zTU#k0y*4K`@$x0_WcZ;C8g8b z?uZwT{(9dU#B<=_Lt>&`JPXE*+OJq}IQ7&?{&MBlzgLQr8X*@rHqqSKLq)c6d_vCs zT$Es70j<71?b2|fKq@ni@BnS`1kf{IKJroX!*DOZtt7F9ElzHVSM7j)-an@n$$B#* zxHe#V&Zb8yZre6#k4NLw;Ny)grEI3-npc^>@r+W93VaZGfp|Gp`>&a5?*5qX2s`BY z?oQb9&~k!v#~I`{BTBhRH+mm|)+Yfk9AqPGRZcVE6?e z@RRc2DCuTD5N7-ViA*;)Hayj`IUK``o_pv;lV1gG26v2jMq^^0RR(Uf{>^met|)hG zgS2MF*8>zr46|K+qhd3z`Di*sv@zm*g1(D`)#d^KKY=ySrd~;lI8fCw(uTdqoI}SN z^BTeIsxDSpmPW01cb6gwba5u>*xedMY3^149|?y6pR3!dz~`rG#CfG9Ok=pdzbok8 z_ge`mOXDCKRkayeC!aQD6XW*d%a>F6fYDXDA_X*z@gl3mUM`_lDNuwvcT)FdmPlz} z4|+rF05|>w?*xxgkW=+y@&ip4PLfm|&twtz{S~hyIBAR`wXJzz^8%h4%=Yo)!EkdZ^G8qojh@2+p?2BTIYbfyimwz^-q|KV^Y-Mrgey1x=zuz?p)(xe7bjn!GF z5n4uU)NEl16W>kR=lKAQpZ=xRe^e7Ul~Mu-)7dj(k|E^`=B;G7?hQ=Ssa-Th*>SH5 z+eHF97`~gb3ZcCf$%A#dv#g1CD$1)~q`Onu+RA%I7Tg=^F$zb)kql*Wc&1v(@$5zI z{md%e%W2NFkLEe*8_U%nq}W!XdK{e^+^o(k0d!x-CJb98O>Lk22w2YT;rvr!%DT^m z18x^{Hk30JB?-$u`qDx2~Kl;qv-gzFnZ*kOOYSikT}ZgHVdU)I}3e$a4NQ{%Gu~A&cUF{f1dS z0nRegPgBdbv_uzh%1{Oak+Il}^V1)N&7`^%SCtEC0z!#{04u*{G_Pi}y-4-1VAaAgw@iO|1u8? zF!*~xNR_shCk{i?_F(`VXF6YH;Qe`U0bHC9Loo{RsIx>5!gQ<|>MUUP?o?x;E@s$O z4GdUS+Ih6%{!Z6O#5)p%?t+$XSVgwJ%u%=an)U1fwmjltksw;>--@KXp~x*O<=KCG zc-hp>YRnx5_)CqIlm{EBy;=5zJ0brq%%fkeiehL5C-v8Gp(VhQpVHHRzY1H7$6X`q z>j$@LnQR?RdAIi$=HEmvL?sI8UB8K1kt|4!_W^I>h zd5^J1un4Io?A>uG=w;o5QxlTZ5+B?Wyrl(+Wry?GI^pl`=4yHJSBFC>2P;I`+hsR2 z9G6#ff0??m*@w-ZHuTmNr5ayzn15V(*AruRl)S&Vj~L>EaQeYz;Z4VlE)Ym_BIImudcwzk+p|4O$M@yc!_za&oJanJ zy)BB&wR7-#jNhv15Gylfbrf*=q@;9|$X3x625dH-`uRxLycN6{@o`98lgnQ0(wgUD zW4YXP%E-m@NyEI{1oVhZ3%0+O-T68)-{IKA=W3;v4~SE?K72XK2yalQW>LzSsHM#L z0n@46;x_?199qecu+@4pNd7hKvV(7&c+hS#Ox4*J?M%rJd}N=CGGtM;YeSa!`Z*cB z%SYm>S#(FY>~lexZT(rqua1u^*tuE_$2Bfn*>&^ANbqEUON@1=HY;#b`^*7!|e zbW+$tlR{j@BUFtxfA#qO+$zv(juA49X+F2kh_ zs>=9w%`Wv;SkKDJqrZNVl{QILR-fy^iQFz(IhJ_8VI)L=gL)pY!C6|94fP^?|DmM) zBJ${DoZ`7M4kb_n*m37uq4!8x_@K;3D{D6`fO7ZN*X=+!pjU)SH+4T^eC;TeU#d>W zF55YTpWh|P>eq3<^S3sAYwX4OU^6TAnD5KIH8pDm<)|EX`(7C(32v;ZuO+Vb0+{v` z+dHfy^CSq9Xn@v8#>LUakmn zdvx2bQbkLD;v)FTVbbXV6@@dh;34wQR7uM=wSS`d>q#D+Z)?k)RV|Ri$!Hr{Z;C=B@bgRgB-xb0F3-xkae~&J0n%N)y|RLm z)EkTp@ShxQcBuJAIp{k4t!!(fx~Ri(ent%Wtq+MJ|=hM{w99x6V@07{eLL9KA6apkZ6 zrLP}{ZGN=$_#CLD?;pMSO|lA4dI~7>=m)E2`GPO#m6ZW{h%MyltMHL=AS{xqrAKIv z$WwDOVf92DL~?MnAn!FFP8>C5lR|i;i^6JB|8<`s55!&xTEF%08QVXcD0t*_fl-XjbpX_pTIF zUtvu>Nno%bllt4&=@oM0W_8SGS)xF*rPiQqzQ&mO_E^Zph(fv6l*0Xqar0Ia8Bs}? zb&A$tM$zcj{eb|5A@o;$#{&mi!xyV0bZbSSABQj=t8;IHYraow3pPtPWyRyGR#hk5 z$es3T0LazU8yL-kYrT^*fo9g8>uOrYc{}O$nFni~ntjVGLyAEr5o?r@hYD{Xf9HkqnQt$)I6r?hoKgAQCCiz# zr{`RQech5T(HZg<68cLA6DFVX)D2I|Q(1Lm!aC3>Nz1}Y-#^a=Xmj9SA+U3BBf#$N z2WsJ0Z~`_=m(7%Q^mse;$80ez0E%hs_sRL|OEj@yF6A?jj&Xn8Oe(Fz+s?hzA3QF6 zewwndWF8k0wgK#?E-EjGI z0mHSka+}*I0G(r@e09XDABkUs=O)h;qe9Hg7*?$jd&Pf@F!PRB#+VotDrxW;Tv*?=1_Gs$amM^}n4 zFA_vp)E0Ch#v@7f>E9SR0+zW%vz>(3);fW%gk+rNAEVvDf#y&!=llg2D!VV2!Hr-2 z(3gIoZK;twB>-t{QY4>saIGo8NolFoa)%gwdFKJL@?l%V$9mQ{o{!|v@-P)=m}e^Y zuRDuMk20&SE4)F&H%h$Nf%c$x{)I$=L1x3a*V=V8q&`wg}247!!Eb)x<;?; zLyHK#z(?N;&!`pQlQME~W@iyjXAztSa7yKaC{@^u(oO~l&%3KJ*29}nnT0WA?Nb%i zRMR2F8miqh_X6xEtO@ew{+Za+(zWc%k~9G*tp_OmHrTo2#9wOxgOZE{2+mPCd)&+e z2s?EfN-hKovP82CsAK3blP-zb_K?LJk=(k{)FEGmZ=}5D@B<~5sUi75zB0u`vHY8j zb=QTIQ~%W@DX9rPAPHRacsGQ)L?dRxJ+2WocA}) z5#R&*We{vRe^@dT`9$5m-ra+gWM*7Dv{*~?LcebSjL6dtkqUij%At08FtzgD4l)W{ za(}Nw=xaf^{QQTy(~V>!jf8}*~ zPKRgop03JNmI>pY((FInF4v?bunW?r37ld_aBS;-cRI=g%*t8vfSNOJi%r9O?GG2q zrF2w31mpccR$X4%M%G8RLqfaiqHnB-HZ{wTG4(bi{Y^qm&Gvv+t<7coys*@4EkU7G zR1g)7e%;8ZBJ*HE#jd+Q;G5#JG!)bf70rF5F4{{#s;WP<@cH4>;kz!T8NCA6<8qQS zkEmahF_)BLIIAxAFA^KfO>A-eaj=8f-t=Ja>T`8)-mAra0Q4A4Ul)JM-SkiN$)++} zp&mq|SYgc2qfN6ao_bEAfX?vv0-I3bA&RU0l^VIJNdY14@0>uIh=}993bz}wF3M+Ns9D!DotKbtDc$vKTf&1_bb7h z=01i~mG*afJ`j-tGE4hDS7$7!=4(K^ZIk4%=S6f%q0#)?&Yi<@&&3+)UKn#{kgQoxY933ly+7O3 z7xdrY$p=njBlzM@Pi?lK1k4Ie&u6B5GFZFmP6hjb6p1Y+X1J)(0j+Pv@83wnj_RM( z9p$(EHjRDccu;nu9;~N*jus8UX&%%!>!xH1@Hx`Z!AQv0+^P zU=#8`^`0{QdNP`=yhJZE-zZL3O_XlJ&r5&Z=duUBfz>Q)HhJIpI%63?cEt=nXS{+3 z6qTm|pEvVLq+dPFugSyFJyuGB5=ZkYX{9L1efo`Iu(2(fFBs#vj_o~QfjiX%|ISfU z;h&&UB2i0fNy@xbb767&EZK;)ox>iatr?j_6h~y}921OQNcRpCwn*IV^}njRa*wNf zsP$S{fG<=hGSNSQJ;uYi$bQQxj`71H@*#RuLTU36=8qM8BX zp9dpAxTZxjl`-tB1~kLXv46qU5*Tef@yv_RNDSQo)8WFE>3^RBGURtKdDKBRlP5U5 zkCAC+Na-9Qo)=!q`BQuyx#a1EOfq-0ZwLy>_fB9-_ZVhQ59HleWKDSi>Gm0lsB~Sl z&*yi3u6mgkE|f505qKnkQh2f6Eem=)6m?YO{(SFb;u(&$0l<@N1@e1UPxic32pmY+ zkPq|o?2KBHe_+~9vMJ3wQd0{5Oz-O>8U~E_4^A$Y?zv(QDy^%LP5aU5-duQPil3NM zn)`1m98XiDycgKuy+HP|?3ZtNXb==pRuYa&r%SxKvUa`%#mZvORGt=g{)rWM=N16c zm2H@n0EfAIq@^Gz$SPw0^y^Ss&Z8FYSAL~)Jl^72mXZcf>iqWHK49) zB~CLgp#o5Raiyo`7h9Qd)H63w*E1D*y_rEfcdSIM3>HtLifZalj`|tB5s#x%b&y7N zF0rr3vh)v!@z*YS-Fk>@ymeBR>Y9_$N{@ab_HW(ty{Fhmfta7zFj(C*JEzB^M1ib! znlp=2&pvO;-Z1Wl*0Da3Jq?t#dhPG%U#&O=*Mx`ICA2`6HAtI#ukpZwCAY^Zh8eOWD?bO1^*4w{j zfd(*^6P#tCjCp8>VxsupOFO z`+b`WUIDpNV~4N1b)_8m+&Hf92JO#U$)EAX z4AR-jru$`HaPQeahUr}ZLS8|8*Tki`M)jAIX@SEcG)g~<%ZENB zp{GZ{GQd&nVuJ%n*k9NE#(R(gG9AK^-h+ngRjz)1I4tCN(^L@AACSo7+xBeA7*IRy z8rJoxzS8ie+E@WC-trR1;$RWb76JiAntV@s<2T6H>(kv?p;fzhrT4+GFNnpFP}aMm z_3dX?W|o+5Z<`F6Yp7$@YJn7bt}41BVsy2# zWH}`!OfoZjGunE>(H87kVBQMA@T=OfuV09%=C&z8NflzhQ@}}$SB)FW<<5D((IFbB z?379GFsC+M2r@H)rXs%rLOYY$hW47q^8FSYxjh_jO5^%3hl+fEXTlkGOhDBy)fO^0`5R36)t)j!8^{=g>-&e31jk`3d8 zBWIARZzK|ys7uUp6EufSqJ66!|0S4XOf{e&RQctve=FnlvAA75R@(L#I&&xUu}o5o-D?5qZwFZq73e zpd(IxAiNgWDzvV)W6TCZxPWfQR3YB1>Q5K& z5ox;GY;sNg%hV(yVBPw&ytG;xu;w}`_5HcxMC*2yQOyDsIeJ^h8QAs0Y^wZLAEsQT z9u_i^xAfD(Hh*Q8?p`N%3HK9zsgts`&SiSo{WpVRu7m5=a%q)NQ}@_5(i5Y?I>3~p z8%6#}_UC+)a?mO&^&+k>OWugq3h{jFC|QIXMoE`j|FG}b0RVMdC`=9NO!N=HrMS{6 z6CYPhp`;3b2UaYDH!VpS~v@V9qzgyXqh8>gwk-rn_?s z#gbaMANpR8gc{TfCtHbX=BUlyEb#!VrJ}REZR;KI-^igL&>qqzcYLBCX8Xu##>3;w zhbuJ}9B>bNd<;EWhlrtj8sg?@5@J`U@PG!!5(fP282`o=GpuE6L(h?MC1VyjS5IzQ z%ZQQ$_#@Odrc#MP(->pjn1f0ey3uMYRbw#Owz7vBE6#XY&iZHJqK)4ohTUcRg(d=LsX6IJ#V))Wlcl9=6O@i zu%fG`3ECp&w(4GPpeF^}kAwP<@zolQ?mph>vT*av;;6YXFU)}Lp#2d;ucG;n$eeaO z^hfQ}I9dpwuZ83KKWtpN%cxPT*Q~At@uk`vXN)VmEP=lEr9WuU+RvP8esA0hwTln) zEGLx{rpWvjQI&M!de-Y^)}zB&98b7vKe)Or=n6wN0+3;XnpY(yy1s6gj-b%+-mWnC zq*}K$Lk;PQ{LuDbkwQ3_?txcA@l0Am)~-+LopoNGocTCn{%2g*U-!i^_oegzR8+<< zVcOc{?gbum7Bq?=!EWkW?Csv^!?hiJ#c76^)W^*{qayY7Cujs?YUtW@*M@8@B8VLc zd$`bNQTaU~Z52ZmZmjv#mQH*W(Ss!9*!ho{&8Xv-B+On4k~=p(8=M(O^1BVGAX%9= za~DT;2x-mxQV#|!D(u3K9-eBE7*OMtsxp()Shj8P?T6)o&NR7e!uPc; z?wGfxNTT_kk0)#bWhTPA8QE>sd+FCQd@g@>%x0?5GEW+txoP;q)$Yq%T2cW2N6>4f z@gk=zCG(nY>wmYKX$CH-@A9el7fD&tv#DnTro;xU^-`B{9Q2+QsBXz0!J6?q7a|Yd z^I%43TiCMG;{niX)Dg8iM@Fp&TE|v1w;A?~ptI^%CSgPYW9uUErh%P7Ldq6cQ;VZW zE&}22SkDnOvu{wM4?4nV>d*T#+lbDIqNlZNfNf&_VB|a>{GAc_ zyq!F?)={xGZn<&%NZiRc2yk8g!1|TXoo2|VkrMHHh`)JqJspv8k1!RpZJIOhNr%6g zBa#Erg-{}4ok15`aEdeWu^a^Q2}ZhXt#rT4n*v7ptj%XWQtX zO)sjuMx-}FXbc>}=6W@PWG&?qsr9;y0_B*(HUKzy*UQTNz8NOB5>WNCUduDQ0_b1T zKzOV!A1QBXjk`owT4fqpc6Ecy&Gfl_k=^FKDGby#2rqIPCv!W;NB-5C5OV-Oed6s{ z_`+KA_tsx5YC84Vi}BMT1ymidN;rc#UwZdnSz+(C*7c?x;K1SWl2he#T$iM-^D#ru z0r{uK`oX;1?0%1Y%g-5Z_l>YamC&Dnq$~CcNpd=>89fn)NoJ#Y-A9#D_J$Hl!<`mE zp6s%xXhzl3s3oKHla? zwd@UzXfx_-SkbBG*d4vT+<)ck1IX3+l|vcD9t-TAuf(5~dp-tc?mzS_^bmCF6bV$d zHRLP^EUTn-i5}|Dy9|%A3z!Jz|ByW0wWPntNf#;o0YScn76D7F3yA5YvQ;gs8nmJE zG$;Qho5{7SC$^fn`}m8CQNx#kmIxCi>mE$l!Y~@XyAq(7$1(3#|2<6k@)y5r?&o$S zvbe+@$sc~CeXr>{oIS!G+eN8y35f~=()ql>g~zZ8?m?CRlOZFU- z2vcrDjfJ^(rmVt@aN&g%oM$zy{NcYC#PWZ(y~BmSxjKLsfw$pSV>Hy-=vOZqF0zpO zeU6=~MrQ>`6p(?MuOfL&SR*~Q95eh!;8W0G&`XC91Xiooop|MHq!DZP=W$M~_}V)& zbHoxG1Nw%qS=gSRfjxHy9DscllVixP~k`noFvQ{Vn!UJDZeK2s##}mz6Lhk9&8`1uwrH zkL8$hJS$)6(F*=sDTvDBU0&QN?f31IAX9ki z+T;1&{MJk{pw;!;O`ip3Cl#!@cWx8>;@^xd+t(4v2`bJ1)RMCNM5Jmlukz8v8zOfOHnd|BJx+-_RY6n$+avliiWSBvTb`lPxjjoe0o{W;!9PX!7!iv!Q> zh?yEJhE;vXHlKBC0|y~^4n6c21APlrDl6PdmJvf&%25qi={?Db>-TB=!vXFA7DQ3Y zm=-D{ekaJMo(_~tmI1ey_RQlhbsWyuIV%You^Mkuz<)f{^PuA;!blz$P?pHN+k6i# zL-@a<0SJUUtnadz$Y)cwekY}PqIxfC0&^nj9|4bbbrw?OS;we_*?&uSWie!R@v8y= zpVt@1r28#5d1VOCCYOZ{R-51m`jep_{$YMvdoAAwpEt0sO#sw}fG0PAG@qM{v}skX z)U@mngZ1>+@mfa^&rK{gzJNGZtj{b&RXv=r%CG1EKlU6=6P%i_S9(0O+7wzUQM2{d zky2Z%%KsCQtG0_??XSBC5mv_5Zihtl{tfn5=Z1e#CmMgZwQZBGY#@q#4LTbrme=Z; zLso$nP)c2oNx=!T5{}AbQtD+yAm!<6jVBTeTJ2@`EM%p$k1dVodai8~@65~M7{dJ~ z?!zg;{-wJfg$4%yHZM*PTZA8112~x@XhRoba_DTk|6dv40)IoMUlseGl{0E@&OC3V zcI^u^lengBa8aaTbP1`2dHGHT)`qxFY$I$De1(hfO*}O8&|>v7I3Q7JKC)`)A##U; z{o{G_((^{CZ-+*=x_0meS5-X!4awjn4MT9#uZv0;hb;Ek*KMiOuerIbK~37t#4DmJ zBLfZu6+1WpA_$^S3TZzW;5cqFPNY%lc?%yD*R)7oSjQqp;q_?JpT4+?QqI}Mpg+?> zk$c0IRk9lq(nBj2(zkj~zC!-U&Wk;LyA0_Z^dt7>2R;=$=x)ehKQZYne;ycl@GWfm z%d3)`#trqy%Hqe6?t(u+SFjLKz(mXkw3PA~az{3E8e;DmJ@q5KAsDW17^gPO% z>n_5VuKt#^e2=-)jL{zGbwES}QNqbR$d ze(Gv6tz4|QnzG75HlBPOI6TaD8gO0L-VHtWq8;g8GwX2qbl>r9j*&IEt^MHDa=`8W z5=JdBo<>*{wuM0K!vBDV?ferYReM42Krl_h6IKX2`z{@t(NVXb=*sQ*!swKpEZ=zB zrQKmqBMe#7MbV#GRc<_KCz!hB$%?M zZ_R>SKFOE4+*83yH_yqypOSKb6R!N~klhg=Lp^|rIxN(4^I$pN-eSBX)A=Q_jUmIL zV)?%jo;?++D1i#?d@*KP(|w{od9JXyyAk1K0-1{3b@J^=#)ic;drEifF4L}juMvqy z&I_ugDoF_|6+q457DdM&`hm+F-@`oBnsabrL#byvhwhuw&lWjZ4{{!_D4DQO%RIT92K^vfSrqI zcBX!=Q{Os-?stp5eb7Kx=Id~<&UDw*pj2j0d|;+t9>_PaX=oPcEo&*?NEs77&K%2vjl`cKGD2hl{xioGL=63Su+|f*=t>f zF%PBOH2cTG?l8Kn8Du?7RYps0k-7Mgt=!J#^cEh=? ziPR*fz*GK|UX@TbLo3#bmoV$^O5&4x;7l2RjM)ECJ4E(-wh;SOWH>2D>IJMBZA65v zfa@Qmv(~A_)mxk!f9-LYw@`zF(~WHBQ(TXH`W5FY|X^8szc8RC;n;Nei|AZj=e_4eQ}$WY1V*H{ zv5|k=a7i(ID4%Qcll8E1+(m#2c5K`-Pl*@8skQl^TFx|ABBMi6@kF=}tR%o;7VLa05HAU2_P?H$A_YVW-{cR%0nIlptxb@?xs zzsP;R->>m}P-RsvJ#eMYz=UMV5#iAJ8Uqa#pV6@i=9qK6rQod|VC%*ZZ4JXISgQ^x z4Uo~fKh1FSRgtCLcQr6-q!I+ikaAnT6CE;(TNZ3d7+~_Q@-ijEZ_0%~D^hk$Td7)7 z>1li{@0#Er?D=hJ#9dJwCkDg;4?8dLlK-*$#tGl9W7*LJ#d*t3J;Nwy-_$e8!Z7>? z6+;I*hO>Zd0Y~c&xc}1IW0Z$=6tbb9J3oCagHX~KI6+`kz?JsCwotLeJ zdyTMZ1);y;pUkbnkuR;PapV|jpbgmQ8KgTf;{Qxwc;+dsS()3yZh$Mko0I8r=hU|p z`xK*%pUTg)Crk8c%7{tI`T017cR4i-(OXfe(r(=3!VTTvK?g1#rG1v$dD?MuXr;&} zFM9Nx${8meM(&=AH_)9O88|BQg$Obo+VZ283Mg)dXF|WnKB&}dPAS`4K=@NWNCv<6 z+j(fPH$M>2o&J9Bz9SI(9{r)HJUh>3KUNynAT=Xg+H#g_!-Q3n)#*fj&tfKUE%w$6 zJzgz%L+Xl3XCx*a_%4}tmrPjjDI7+9_smYAZ|_#eb5E@=r`El5sh?8Q>TE!jc-4qU zI1#N(n;#NCuRHD-x@sRz#ffuEnt1_v_&@+ui42!B-oxa*pIC6NA?@1!QBs1TXB~6y zE|5MykLW_vENAbA`Y9!x$Lq>pSeN_xRiQ(&{Eb5W=`pMu=N#%EgeJ5L$R#EgfVM{} z&Ek||)tDqDFRk0Wcr=oauJO0ht00?vb!G0P)GAYG|AgZXxs3#oL%Gdw39Hs|5ENDz zQT>&X*}a{MWlO280(S9R`StF}!=eRr@Q;N==m+dsS%P=xO4xjSU3yLK;Y5UWR{S&j zt)Apwg+O124kHMJ#fZ*Xr|#2(Wk=0|PXAtuqP-6(62tLfQ`1r!go}li5B&)POT^0d zqJQeLY6H8qPKuTE8jI_80l;tO0i!QVBc~-QZusK~8*_Gjndk82;xs(g2BUzaDFTHh z{eraFaCR^hVAiK5kTRK+e-MflT7bC39Zb~dYOE4!qJ`ZN}7WhKcQ^S zttEqiayE9JGs`wBJYHDy+i)m?w(BmiqP#*#UGxK99SfTVWcRRoJur(O?Tegy@BJwf?ZILmQvkic0q&! zC0lC4gCotBY`h4&N*_vlNz-!bedqGwY~ICr@?)t*|CsM8Q?I_(+QVWCl{B284TGh_ zi^Nq#TN5`PTq}@Dr{DE_cbC555*B7`#VGf=3R7x*X|K{^3=%NZ$845laTGpcuy{UO zbFtxnW^_IW{M4O}`JWE^Urb$`T#zH#PRlQj9WLgk4*UUQWzXnh?b*e_#n#5fQQcXq z|Jk$iqvM5@6r6wUd7basO5G{$V(Hmw9b>k?VcdT|x=5+LN6CzLF^9EeTXTil|Sb?NOsy!+t4Vzy{Kxq9@^B$FZidj0hPGT#8 z)1z0rg;q-J?$hqM&oZxtLexsl30;_oZPtP2i7qo}XKxXE9u?TeUgQn?#qzf;MPT@< zjK9pqVpF$OXNQMr!XssvK6*zx?z`&m9ZwV1XRun6jjL3trB`2)Wf4YS zn-m)7ZK@+cR9+Nlm8m;3J|-g?7s<^;P7ZAN{ywDupmiJ;Jr4mNH^ z{TLrIV!pq2oUf}$-VBFH5;+DWkE?`he4zRr@rkz>LGA9HQEChxLI}5cl-RU}=uR-7 zza?wRWCrJKy3Fun6zgfe%!aW93ri22F8syVik(FBdHxgF924?NP&Q5>WAx8Zc(psU<1J%T*7Yc8KK$x49lWFlW(b^E}lI}0RG!$Q`sB-roxS%Z)I za+a0kFWVzu?iG4j0s$m#Ik2WI)lwI&W-t5EyQ=O+8c%hohMRbR=uNhhp&Hl7a5)Sx zC%Z-z3;$K;#4$Ef1Y)%wK)&q!O{ZlsmL`S-^M^4RLpyzah)p-lfMIjCuEYulX6Yg> zCMqDEDT6*4j=R~xW%JsLcE2q!rU$B)%cDmZUpz0N?KbIQS$LX8neXZ8&-gOy(^l*Z z)KDk=YYoI(w?~PE*=vazACX`15a)V3*EQP`%2cHfDVIh2h#EM{^42~-+3>$vU!kxxk zl1M2@nlaPGgKp{CEo3Kq<|(Y-)#KuI>S0ve{Sn6zg)VhreAdy0)qUzj`ASTv2(2XY zBMBmyJ>SYTtK9X*_V}so!eal#a+zD4(;6hVJ6A}h>30VoD`2GWgB8}nOirv%K8C*$Y7^DtC`GO^1@T41t1nrf{^_&Tdr+`QyV>5SBrl72Fs=pVY+ z1lc8CQh>zdo{Yp$x)=10?FJ-QrHSu4t+bY#t5xEPZ9o2~_O|R^TaM7sc4d3GGn8`% z8*ZzhF=xxnn;Hy7d<)v~OQJufC8Atv@as&3geAWu3_+1Nc|e9_qO_ zX!zPhg5-?%q|d$*9`wQs|2)2JBuGJ@4%S z$Lwf-eomm`N7mdB37`aLVFR*U3tspP;Mvs!-!+mzHC~NhVk`+eLe{c6$!m<0J)xt> zmzuQ#_ZfVwHN6k>{tP}LHr<;=vTqh{L$*>?eW+ykS;YsB_2_V_zcbAgrMn9>f#MX2 z%Lt`NUE3%tt?fy z)EK>>_7zdJ!SBa{)kZQalsy^@%f4lna>-onz=x9HudYNpIOH-|S6^`A=?_;|a z_DFbFfV5_1dL&#DGlWrUDK0%a1+@<>rzom1SoK!Qno=t*TgLXg;rm)^KW0l3c#<;V z-Ke`kVM^}Df8q?7^{lq^Lez6G3Qsr6nI|7cu+D+_cJBg={gU z`;MM`MPI3@+f}Ah0?TUGzT4juPyw)%3ZRe`IVYnO8IPCUY!D<_B0p+X7lvpB4O1@# zw?Rypof|nR=9@|bNunj>HIF69G$*iJnT|zyub7=nv`;3 zwFUsUAaDX-nnfo+k?waF|ACQjSwK6pT%BKP%^D9{f>lPdoE%=SuAd6u}HpJP4!C1wgEildOg-6DCg6{8wZ%+9%%e($k>gzmX(%qfnKI{?;U-*(%BTjjF zpc_KUiNK!T`@_@H2Q(?dF3Eujfdt`uwIEVNZOHA>eb3vu(|eO)dcE4s@k{bgo;>sS zyo{ricQc5|TdC<@1&9=7okP@5I{}1*^_ktnlLv&|NCqk&=g*lWlz?->k^w+j8sCN$AAQTji`tJ|@W0G_QOrpvFj841UpG`F7uLe)RgzfSM+- zzbW%gG_S#x$ie+nh6Oy!+WRNV!`Vi)4jFJYA`yWC6aSH33LZ`rCoB!AZ-$fK*~Gs- z5Q4RaTN%cRnfdZP;HKG!Lod5~J#E3Mph?ci+|8{Xy)jpr9X`!cjACDLTt=y`nSu_n zh2`se05qF(#ypissC;6z8n-ddv$tZZW#g8G1`K*oac_K@{ z+G?HuDk{Mx6-3TL+rvCDlZ~r%@<>vGByet_TL)5L?yo>`kHA6sU?z7vwhsYgnKafz z2s>09ak+S8mun!sOg&&DZdTK})b_$*((GXWwH^cNprR3Hsl!an==@Pb?X^!cbf=Po zUT=dx$!t+4rn{h?3APsA*D5)D%_J8OiXFA&hnBY|mPV=&`YuVxW6_f9;n#A8&3Ps& zr-!V8!0!0QUEjM*^qpvzSM1!w8QE{Ov(31UKLi8Lis25w0b%Roqyc6D1xsvY!^aF~0j>0d*oBIOa%vaSSH zWV^@vKv$Gr?y!IyJy4+?r!WeS~e zv5e9qs1sQpO)tx%n0LsMQ+EyNW&53>#`bW8t+pXLdmo-qJezry#(BxjY7U;bxA)gj zk&}$*7ddaZ2W@%!NIYd$!t<}8@^iV`qz1nbaD$v^{W*N<181L@*-s~EgE$EhP}}|V zN5Jem(}HdaX>BXKO@~&`Qk692}zp zw>l?gI*Ag`tZl4tq1tr5F@Ieq-e`o#{4x@pe0E?#3*MF9>UqoR9h+{1+%Y6Qnjgc8 zG8+S143uAx;1D0{lv}n{%{P*UtHvcOp9F`YAlAe61?2J_v&&#tqMW86D?b$Bj#CtQ z7Bkx!40&PNzy9SvehLDJtDJaY_+TZZ+%4$iJ`d6uIb-oBlQ&g#dno?pV4iHg&~S#a z&#Z~(An)ssmaIb=LjigpjZI-K0-qq$R!xXhCs8M8-jHQ?;LusWLEdP-sdcUt3obWb z`Rxi%$u`*}tF+IOY20Y|uL%%N-FY7LDS2Hf5)K5gc{jBJe998j&~m{D(RsiNy#?9ce6(x7@eBemeYeL#ffo1-%WA{-@Oz+F5-f za`V%5VE51b+H$#5@fz#k!-fUv++hIdpx(1s08OQ>K% zN+Ep+v>YH-h)vOz>z8FBvb;9up=tljA% zHzNBJcPv=Ss_4J_3qESxQHGQbUu!WbP{=b`EzlJ*B=uVB5Tut~wI)maAKcU@(F5HK zVQ*m5eOg_-eT8+IVGpTm=zeyQEuxMJtgxW6k#G!L{{;ytvaPdb_jLlI0?q6v$v;1P z`A|l~+!(6Xa)9-Lu#oB zVusOhX;SER2ZOW^R7zJ8tFq)e`nE%YWlhE3dhy;4v7__;LSDKkp6DFm{F`4}udov6Vyx4asc|MgH5t|aVxrPKb$LwPG% zUovJPG;Z&0#33i<0jmtC7zck6 z9}Ug)Gg%xS4ZQebH_z}TiY}frS5d!&WHUpiv*g#pHE<-%_N7fDrPs$j3)U52_6Vt9 zrKta9tEW*TU+qKA$*PvwGFR6}Dd#^^dJ#9xo^ey2^R|eh#WJmlsC$Ve5yN4aNN<=KsgZ-k}BF$lAwK~`Tylm0^E(Fsc+Y= z2HJf(ZsBY#nM0MpD+pk9_fHQ)-(pmCO7pZh?VNm|_n6{=8&n@W`eUD?D~*K5k_|23 zp#(yfEJrd4f^M@36n52B_pV)F0|q=KOqx)KVn3A_XP(GoB1`gC=`6L86L(L#38l=O zJtNo;|8gh-hZ)gb?)O1qZkBdpc$*c(uW6Ou463E`ev90S0Yp2&lL&JqCPeR4&WZT| zDO|o7sDO`aWk?xkg43hnCT^)yjE1pj+(B8%xt4E=7VbptCQAq8GL-2663@Qf3GH%% z3afV*t+;_^{S2wi(Xf4?=UbDPWK}td920ExZ~Xu6r^?n%Ly2W)%kZg_<;rh#VBwwfp6FFPIxXl@C0@j-vCys0ayX3CAE@ zS214~5O3;{LvQGS>n?%`s%lEjK1ta_fOn07Vy#`uq|GGSip@IZb+S|Ie_Mm@9G0z_?Sblalf{Z<1xgv;d*wSwSF{}=m^u$ zx4KxDARtSM5rzY&9Yd>sC-tbkGY7_+pdBmaZ&PEOMNpsc(@pRj;-{a5I#bFHlosOI zyYB3(|KW}TKlLW0%KgDfT#kF%HMyZls#G~^P4*jh(oGH z^L@d1%V{3{gi=u7<$0yX^SkuF01BnO9-vUDh?7xiK+wrLmvG&8E|iGh>{5suHl&D4 z)GqC6-40-(yw|0Fpam>~wC?hVX2g-@B_L@_>80-G;|2Ha?*meC|?r#WD3AgK)7Br8Lcc=6EC@~0HKC7 zplqnO0|Ul0%d`OM3C}%03S3Ob{!`n?&AzM7&n@0pr~Fs7vN#tV%3@hAnfP z{fXK0h0!o~jDolIJ{;6OS%kGZ%-s{lMrHW*uTz}s-rJBYG0IFA5M|S;z$uJA*^x_r zV;FaheN#^6a(Axv(7S`r?-ysf`gq6?D2N-u_3hT^ENm&Ro9c`9=!9oX;Zpjek&0rr zNUv#=oR+6Q#)*6ki=NSHS^Oc0TZkp!V`CP>u7*xRu55(6{+z&9WU;z~a8lA_)m`4# z+d}p%t_7jj7oEM+ND{*wRUL&Oi{NdD$>Hyf>@S-67gy5W3JgzjV^Zk3*0=95vAL0r zOs#P9f(#{$j}K58$NinapMd>?PV_ywBPBhCHduY{DPAspW`(UHvpwuIE&SzM#XZ30 z>1I$5b3}%u#n^Md)Qn~^fOyw^in(VCo?6CH^gu3K{a+r6(l@|EDR2HoC8?wWCQg!G zdo;SCwp%KgYUytf`f74}zfU7ycK!8GxcLqGwPy8Wc&=80rioH3E}sYiEPbB;@ldQj zALqUGUPQ=xq=<*dwY-;4&*@~uz7L#o;gT!@MfW*dHkWx5w3J)bJepX_!Z{sB%gQPh z;!I;F_g3QG{vQq{O4w)nKOBmc7g{a)3=8VJ6$xWPRG_UH_iu)Ic-*bkTGe~yQAQv( z=FI06#yAgjv_Ua#<{YscH-``TVV(E77)7YV;W6eDUnBzP{u#bDxwrqYpfj#X=>EC5 zdeNwlL8lZkBQMO&?DKW|$W#GWb}E*Ue>oH`UT@%R#C{b)8mL%;%MGdZ&f@FDv7X-l z^-zX0{`FAG-w*RUU2zC{ZIuRiD4v#CzS3TgR-l!w+nAYDkvLy`e^6r?-XgXgKzO1R6oyh zN}213th0pa2WUQCz3A1y9!fDVMFrW4Tn9Xq9$XbCZ|MZydLti(Re1ZQ6m*T|s6m|0 zGsf&Wn{@(-CR)e&Y1cBZv)b$F2GAU4SL3*5Zv94i9Z?-7ojj@!FY*+U*-3uQboD~( z30F@Ag0_Ifr-#i%Bmi{*>c1e0MrSBTJ0Wu1`7el~Ls!!H%xH|pWOD^`K!N`509K`#YO>(%{GV& z-QSp+{rnK#KX!si&U&)SK*B#f!DxRT{XZfK9vh*U6q7Jbr*%*xf-&AEU9(x`;aa0U zb?_e2I_yLx@;!qD9ie`T8!&1O)tARSnI~R9gdvXfB`{qGC^$3$IYZ3~B%{PBdrs>` zgFS`x6RCdlw6qg-KjtXmm~;N*{Ug4?5PmCQ5B2Uhp5u?{X?oYoAA@Bn5*_UotscTv zQwIMSFcd-*TxOZG%@dcUFK4~Oz6onFe*JOX0;o150kHNBBL+AA9|A@H8$>~Sj^%Hj z9X!y_k?{9zMd5v4>C)kPonyZi!!^f^`_r})E~@=)1t6-Bsq{^r!sU)Ib<;gP=C>*8KNSogh=4zeE;Ky8V}H*3!N;AV2JS@(P3$=^%u->;xVAk0!Q z08=29cADx2Q&;Q1vFRF>nM^fw*Slvbz-fV!{*x|98=P?CFmOoY?{0l-0Y$4F1ZK%z z4|yRAglxYWJMIv{%;XZc^sIAPD?tjEv@Lflz&%@?svZR%dDFq{$9E%n24iJ!{0pLt z$BFk+0U!!*C+ZH?)jYbB(@}dDxneKA5&J(N3d}Il5q{Vc#tCHF+8xRi|M6C zsZI=YCW(|~ouC~uNdi3LzamP)R(}@JL;hz_!p75^pLT5D7(;&r9w!LW0>Za5rq-@S zvs?Ptl{*`048#xr8$_9FsRUUj5Rq3f`|b{2(02-ok1sBWF3^tGOXMR_9P`*%hg=Ecjge%lS&PjF#P%~ zqXJD_;I)80ExnK^#jvSc8s%7Tthkr3gS$NBQ4c7KAKed6-@j|?C*4{Y3!^)Q+@(xB zC(^8NoFp?jqyv$|+d5-muZ9(AO6FrY`iUx zCmN9?5X5U*G*XFNU-01Lf;Qowe%2E6YY@zvx^_iU=co(Wa7KFd8Bf>mjhB|cJg+Ja z)*y*b?7anq2pt0+dQ1LST?<#W zgaW=MB1|;!q~*4Rqn+bJmT%_)wnvAlqckJ5d7c z!1#;Vab|Wx=>Kh^%uGqc5wg%TU09mv>8I7;cF2pgWs#fjzHgL|qY5Ey#wzRbToZRbo186MFcT7iz%94}w`q9iIz^Dl`KTb zAt#ZqbpdAZ0EnPvS9o>UuIS5@bycy}=)WWiE=u?TFr(b}9Jf;i8yne2FrZaz&rnmIPLHHNGzEX4A|QK%a_pkm+h0>E67rCQkn& zqNGm!Y^5m$CBz()b+_nOwfJHcP+jP!yt+$&Nt8#!*WLn(R!xFVbRdKM?_Ea%G4X|u z%G0dZ{0d?IDug1z1vtwLk;z$Gw(i|`Yd(s*x6_aG-8Y%f^gHs2Mr0MJp z*#=()q+Ntcv=#ciiQovH;T&|ud}*FUM4oFH%H5S$?2ohf-`@0of|A23}vNIZI= z)cIn9H_+V4w(-j}L+lrKD)!-Pm(qqaxT?D2g?ohDt{GN+T=iRql!0dF@E8qcWTUOx zt^BxaTk9WmU7VYF+It~BP;i$i{_FEtbZQka{Hxom>J|E@fFj3UKbo)57s_lYg>Tqp zzFwey5yoO5oez#~WD#A=b<4jm=kLbUXlV)kZ4<-aRisux0dOeM5yI8&%WrF>zhT;h zH06BerAvTT)GyAEn>~8J`jUJ`<;-4>t9KdB5}h_QcFo6Yq4Cn`t>gQ~3IB&fX>xsv zK|#p1$_X;>{&FZ4(dR?9DK)}l4YU1@qAnK?^bSz7zlyjodvF{6d~f`fN@l;VNJ#)P z9OdYDkLY8pDWj<0$W~`Bb@buV)UYDtDBnTW90itlYL=o0&ec7yA?n zbaR6c_KP8qB`g{78jWucGGH-mE-i@k2~3Yo-o{35qc?k+LQCS+^c~6`5^qE(|Q2{{s-O|yi!TtKXHWk2cC!XYv2?cs-$}{LZ$<9M^XU=|5bMUckQ;J4OkgKy{JrhyvIO{dt$~_%68CG+ zA&HhL%>pDFXo2Q{q0T_5H>~0Do9?I~zuL+f4}kk<{P`7MJ`3W3e&H-~vq+&9S{qZmD>oA8e>cavAjI9v6sp|V zKK!|`N!8t5ST4PnE*1WHA60lG0+Xjw&DnhRPse!?>)ehXr-da)9yKv_1}6H2wrP|0Q5Sx=I;GMz4fRRaL7>;2vq;f#Y(Dj`%_>~$ENt)X9K7qPWjTlCZ_U63Opr6V zmcCh8E&Segcy@nELcxUJ?ZYX-DSdOLKbu&x#pfFye!UVuqmylTLbSR!SFUU+C!Q7W z)=PCgX+nin*(4|E)=qRFB4*cV98nL zoWqrWBA|CI0#yfWS5Bir)7R(mB`v7<$V{}wQbDeVd8uzdjNu^evgOG#+~owNW4)Zj z>x!MoN1rROJFWLTzaH+V*(i}tqTsA@C_V90ZbiQ~p?)(={d8Voin`H$r z2_a(b@G*%!#ri@^!qqgz?H(p{w|B=DMFkx*o|`F<#<62}%2J8uc^W$nca%2JE#(`3 zcyi5EMoy|Dnc6_KDD z9griLM(<<`r6u?43t&&j_)$v#_`CNc0H7%MfQW4vN+!l#HaiHTP#M#L`icVfAeNMG zZR){EBKpy`ytNVXB{NhOdkwaSNYt*4{=l0JF&3x)nkaXj5uqK*5e8ljlz32m{0z0+ zt7%01GH1xTn)h_?6$fF%`|~6juG*r-3>w64U)8fBiwW2I+lI`;U}+Ev*;<{4 zP$PlV;$qhG{?NQiVI8^?^F-yuC0=Pcwec$2Ti^a;qL?AYi=aP)e$o{+cM_ zOn*%j{b*)%ZM$ZA4~ohjDTRu6G#tq9T3>^3C_gh8l;g=2E1rSaS#M}?!|ac$?9yjX z=}O~KMW7F9=u~A#t$^cIcWGi8*8s+wrXmPfTXSxBk)n^&M#_(u^#57s}O* zvYjw5_z#L=6#>1l+KmTX_N#qJ)9xhQ=!lYCNT2LUc-4AlRRG@vL|Vx-i&zR;%{X9+ z*@SG>f3GW)|5F`MEn(*t%&RF@7z2j)0$a$$VHadjSC)2%nuj;o-CVy)5C}3_bkk!g z5~#qDLszseVBlU)X0;(?ei0+ggLyt)72N0rts0C;K9qQ7$eRgoteH+)gnK3I)gkeT;#olk0DD?aN|m-@6hB^I_-k zgCW{YSZa*?WVM`d{U{)?jEjiv0LF8sG*^ zP9eGzmaBDDpM5kYEi5)l{&76RZvLfFasyJpJC2EC^pxg3xO#i<79*-J3bpQbAP@fh z-eny+ZF~s7H!hq>?yrsF5I>VUSPR~Gfl;8H_n6*%(zq?u%C2M!ZrnVkp=F>YSG-%^3?UJr>u%iYf85B`?c5vqh`;RzFy1G(nE zG|En=8VL!$^ovqkZNau9G=-Axc+jSfSYmTh1+(Z~;tKWNIr1N}gW3>&SqA+7T&%QK-OQ;TjkNmnPe!*cu z2c$941Z32!oVuMcM3m|WE+aaN8(z?0o)KO)07g+Lan~m`Bj1bdDZYd97)R>(2qNoq(87qQ4lOK!QxQc6n7Q39gtn#o^+7bo~NY^ z7fTAA-TMkfZo*HC116r9i>{!X=Ocwh-$1~h$ zJg3NMI#c~$80Bhrtgr)f$6f7()XCG+ZB8>`9J;qmLg+z@&~rel7ix=Bd2Gl$4f9B44eH%sfGyCWc@PtYkT%r_3R^}t=N!=H!d2}>}&{MUlq z^Yl(F>xk3U&`x9{Z5ZT(*{;yU@^q2SOy;sfL&+D!J(Z?#aTec`#(&i4a8u9~lA^)c zE~#L;e7hvGd++w^`xgIT2RPAe_Sv09I&{pwhC0073XcY+Bz|qm5(=R%)0j_ztBh>2 zQ%*DUA&}g9S)b8F{-GA_Ie2T0Fr9U+HIr(WC%5ltCsGnquhI235-}Qq|53~rex5Ou zeO^WlMyWD=+c?7K9AJlION=OMR9gWV#nqSE#O!R+psScDJMpO$1pgL1yz}8o8CTMN zRkFJUL2)IiD4%kYPR=^&uZ$AZo%dPK#mE8=CSFSl_L0wk`Hq$v^0E7Q1xFLL->YT~^0CRBe3&Biz!E%oU}tA96?2tbz%P&YcQ1s;~2C2Q?)G9_N_ zkwD7y2)BbzpE8RHZKUgmW`4iIqBPUDzQ=rvef4f{DCcET_D1#f5$RIU@>U)IqpYcO z4NS*j!a^X9#K8dkSZgxPZN>?A`8}P*$ZA&gX%nT7FX=^V?pdK_ zO5f%~w%oJ}6n;+dC9%P_YCRuvJzH8%`k5!&Y>v)6qVG=#MsnEn*V#7mVW@gG6r%@~ zQ|xqY#%)_a`U-#BNc<7#z;z4k6H-1qF zQ2h#2*#&5ntBipyBcmRq0C}25A&v5$r`YRm7>YMtoG(hP^&d*X>*g&|f!p4rk4g;! z5FUlwpu)d2%7GV|j<43|A5T@7s9I5jn|)&SM{&y6MW)ABMJ00n1EaW~_iL71tfQwm z86rYpxtr^{bW~9UQ1o6^f0zHo8S`GjF|XoR38j9a-s8v*<@H2dY+^aVbIB1qkueV~ zNw}(={aeRJ>uT(ZUZwb?-je#~;ewDvxn>kc<1-=jerylS-s@PC{4js@H_ZO$e8k9* z1}>&xS9Q#=%`+O467WQrx#FQ*A8u(YHv(W$zG!t%Dbi*kEZ!fWngA80p)<^L>0O5? z)8$uA(EC4E!jW`Jrj|Bt#QQCjjTmXmu>qOKJwChGHaU zv>#hKQoPlRTK&f;K``GaK6+ltu2es&u(z9?nr!%A6b0DjrDUg+&X0QaI;oF!%IICO zWdhS_v66R0x*xaM6@GL&ov#7agBg;Xte-1@chU4BC0{8#W3QGWHrKesHyTMKQ0c{N z|6JDHm8o^1I-KuoZ~qU9q9wB0a`o-Wq)7{lXO=PnAU~SVwUTCT{}UaNz{r#h|y#1??S^l-*U9(D)(J zMl=1*#1%C+gcFn&-G>nG)sI$8$&;K}O|Mf5y;7k#P?nQVg)Desnf3_iqUX)35HdZX zjX{8lB5atdB5_P1Zs+VOZm=PoZ&_FPdUIn{Vzt2v(UYLw#sazX%*~m>Z2Bw{(h$Z| z{djCVi^vhgG0brpMOeuH7?_`Nbt!JWP@Ga$4;$j`tMVYbt4V3)y>!0mRRMq9kwmX26h6j?4@5D1V%IEtUo^m)M_tK=HKeRnXceua&TF-Hse)N2H?s z>sH-{@HrMki$E`2Ri?!W>Yj!((dCYHDd>&-CeR|xw7ke2ys3$MDh!?NFHb0 zf@Qce5U+`RBara}b&;^?Zw_8L%=~LifjYceeTV%m6%pmRPGedMrZq$^F!C79Ez9Cv z8l_mRh>V=3rV(QPOQPs^G`dU5MP{`=VzET`fGk7)B~eOZ^|^lmB#P`{9$2F_*^_x# zSmKe#(oLi!UTq%fxi9Dg^W_5WTwRToft|YrkdTZ%;&>YCS%2)J(g10M09t=?c%|YD9W3#&7oZ-l zl-%)5`A(VOepb3P#AasV>H=EhqO<){YS{-NHeJo!w@3{15Clw=sOfHqF8yhL3{49J zk)XG>;Wdz1{jDf8qH}8qWB0_8CW6#I41HBO&oxL(=k9>^94)YBDhzjCm$JwHYobh6 zxliqK&93#l1$T{LtCc?%J+eTpafd^L?A#!7bOaPcGZFG47LLj6`o4$C0btJzvAO3AI)sqJw{3u^UMXSr{g3}*cZYn#g6HLOD|YDD)w35XL$&yQ(7LFo9a z4=O7aaTr@Wb)^9)iqgL*3YpG-P!y*I9VD&Ys&0DmN2Qmn*J8`Y>wQeTv>Z!yCN{i{ zsyEyZIX%YUO=CYb%tEds4a;ZA%qk_?P!T7~^U4F&oeC}Qh_a9S<37InMBo){)tA;* z$cEw+in&aA4L*fHQq})8QOHktWx0iiLuIZ@3cYG2S#=T$uYlW#KEsYQyAbk{M2w)= zL$JWsXpx}*OCuYzMEA+UXMM1Z3@btIOu?|5VQO`?dFTAMyKqm}Yr zx2bcLm1vDxB&iC@P#+iAtbZ>A%oh?EL_(DnEi}B7op^1W^RI~#h_QrM4<)d4^yosS zln2F%M9c#8_FhiC{%tEMSKbDvzS&^8{;{uha=B)i;<~oM3*+^iS39~ILRqFzo%(5% z>9~-g#FCjK>iMi(?r!I^r{VTPeuzs(Eg3j|B5JID68N76;aq+T}L&nm6&vM#0Pe3c=XKH0tfUy0aF6z^D%VHZu z;sI3?Exq+`5To?_f}u^7fpQNkn_bk=>L=-OYA&ts)Sv1CS{1n$RNrV%i$M88UVg{C zE-IPvmPEdAdgnX;1_hqI%~62lK7V?1`k)W;6c>CD?Yv_j%V+IDlk#lXQ-|Pin5{*) z{a#bZv+hPbm{08|lea%^XWdiuCRSp$Hg_o8e#7keZO=)%d%WQA%T9cmEl1Go*tYdp zlkaX0Jg-)+D8eIUa5$+GF;zS&^!_xLlF2+dK)W36SWsy9>#vAX%(bs6?8d{ zBKFUk+$#mDPjQTS8$)Mz$jWz*Bij5W3myU^>Q~}XXoz(gXrGOem{*GIW?qWRiVtE^ z{W4z$T3_Bo3JMUBAE_1`h8fui_P+#YQ90F5>sE0erao(e$%cl-Pip-nA@WT2^!?f5b}~enKh|!B%cAFg&U7lJ zz+790UQ6s5O>F`W{QglT#RDrdDENLEhutTy@BfRhzlv%z?Ak`{mIB2oQrz7wxVuZC zxEFUQ?v&zg#ob+lySo%Z2<}qc3C`mEpXdF)f9tAPHP7=n{d$g=X{_GG zK0UvJRM#2FW2ewV#o<(57L4J`WuucPbtuLroav# zcGp!V*%mb8cobOqObh5%kM33&69jV6gL~5npKFs&l)J6uj$OM=PhA88YZAvi>edkT z^YvD$;beUW#RUrRGQMz#jrUg5~59#>A0g>*KS*={Zy5sThzyeF9 zvONvk#A2b#IpM$mG!QE*^sx#VT50N_0~q83KXxX#iPg-ndy-)r?UWR!KG|XtoV8^4 zIThT`{WE*2Xw*3B9AT1yW|%3u*2U{4T%OPJ=*)1jM)DQkNH|4` z;wqnyegEAa-?o>Eem7CZejnL+H^pm|+8eL#_c$p}L(rCO4PBqsG<=eA#x};G4->$5 z69rYGC*iG3WfO@}y^TUueIe2Hz0+)I#eMPDR%%Tj$C32FbdEmONc2MncGj(&3_7Kz zd32C4Be5U1d73Tz_=bTbVWFq>DNP##&U*b}Vobwvm4S=H?)olJZLd?u=V{j#FzyDT zA0yvsl703P>Ns9S=;A%sco^)O_0lzPIUfR+soEwUeQ%;ki0#c#HxaC5VQv@Ud7Yax zOfJ~lwA*a;UoCuGn@(P8qcK+n=XO_9@JvmarHT}0ikQN`5k*~)`#j>6SA5@Tj%!sn?B>ilZ699*EOp=fCZ-!2Gy+vXwG9;_ zj?q?M9R!3bueQM-PnK>fAlNnCq%0tv=l zbtKNa(8gRGWL_))tl$p4n?mNR#+2gJt8tT1)2c+!Lmz%8b$Q zulcmZthReqLmfGqUGj(MP;E>k||?v#?+SA+n*d0XShgB z_)S1*70-ZyPluJb$jCtB@$@bqW9d~+FVtW2|AHvG{})8z*OE&yuaS$Z$W0Di;leY0 zPa4OhMxz7;Oxxui<63`L*yfgfeyG3q;6g6GT&V9_IMn$YtHjdqV%{Cy^|KXRC#z!jE-(Zy(VY~DK;EW4{XZ;=f zlr3z0U;6L9<(a)dHu6^q9CvUGjWb+z8)W1yq_=C;j!jaTfGTzO{ohAjb)GM-o;C)> zJZu56zLqylU47p4FCH^NT14-6uCPux`G?Ik9w9MYVriy^-lHd(7UHd2YCI=ML$D|#Mr*D}$15f{gZX#bD?tSNY$Z_dkFJM}=A4OrYCQe;N<3P4fF@|R1#^PZbk_vZMPIWt(u6+6$KBdUk;93`?Ox8=#|dFg^Sai;Ue>C z6(gaq_3>dlh{?@Kh>`YE7=>}&^5cX|Mp>$cB$~3%LVl880|IL<-ynNcH}!#Z>? z%MxGo6UWAR8z!?niEX7ml~!Qz*Z>)3R*Vn_Hjn?;L^&2~T&RF;2z}Q=1U{Y>e?L_STbhc?}Ps4Z5(|4 z6)^i$2PqnI{6PbcTO!l(qT8x_UKIcqd#pmVY_L`OR+wV>3%B-6^Pt!u*#TnVJ#%L- z9+#!m(F-Q9O*HT@BLjJEuvBa6#aGVN6xP!ihz>5bk}AbquV*z$Lpy8SbbVCI)_?9a z$KLQ2TJFZMl{Hfd#}4+$ec$-f^c;%t{zWll&D??%dzF8<4*1M?c+O?qwBM07YueCb zgt{J`?&iN#+%XYmRipr)$KFp`0$WTCU2UxXGOv^h2-F77 z{$!rkX2DDyL!qCWltiP$Fvy_#{9CG3>+w@#P^b; z>T4iKa9WN6!1e^x;!pB*(z0Ts7ii~6Af{O@x9j^`Q&KdnV4KRXQtG$Ql#g#|V{w1H@UsP5YspolCB6G;-loBFf8J_I z%NoPl!$;%2kHt<@03xX~rvImzEU$&{-iMLQS&;u>QAAM9htlZ< z7R&&m2FqNtj$Z#^QKTg1JI5oH1&+d}do-V8B}@K-8`jx&>{r_ej%2HlW`EU2SeV~J z22|841`eR?)?h_}qmDVarFU(?Jo|!cOY~qeZ2tJEMyy!>YxZFda8%p*Fg%B{-_2Kv z#;3w)u@JAdu5=_(TVhEo98mzIn72SRQE5AXn6AiECI45*M2W%nQBmPNkAo;()Ad=u zlkFdo5q726@RIfrWFJ-m&h0M1wNNut^DW^23q?`<(@Ib z0_+SvkvNQR=y@jn@av+(bHQf!KMirNL6%bTeVnSu8erLc#QQ%e3hsYU6heeQg5UpR zqBQ-FiGtde|F!pQNN8vrm-I>8&?7sY- z){LlYR57>jTcUcLodT(U%t+nGvywXL#4NlibhW(-p(QS}?$qX3*i!S7?-sC4R&+ zm&>w2e>XOV66yQIG87Cr_P{{$goJz?>bx+n`niT}?UicKq?S_;IEBn-rewaV$$B*3 z>I6CRCYRM7zsMM3Rxdo)TyYL*P-{f}kB5@>Uk_z@e>o_5D(2loF;Dqm)J&7yO~(&g zM?*X{%@{qs4{j=7x&426D2w=?++5O6nt^2~iydtQ3`hUrP-tsOtLZ!1E6M?$4}-L) zTU9*Sb{&mA%9~8$@1o{xiu;0&-{BW^PNPiwB^T}z|9$J-+jkBH&}{1~O=8`rlUzl# zACt9HPem*@jE-t)2Q>O;f|C}-kMeB!9}NZhT|)^0REB`4exNC2zC|s+%Uhh`&a&z$lCMljHTT?WEBD# zoF@V`J9x2&6bE(cu(WXTo2YD(E*nm7trK>vSF2hd&B=AaKWxQg8VQx?tlqDRQ}{fs zS75Sq-0m{-_7r@sH~1CHu8ZxF4`LNu0kQ3K&sBnj3shFRemga3&A8Ljdt7{Lb;l)a zpiX&ovKkioQ=HFZ9}P3I3!53X)-|=t;SD!9YcqgHeU->67sXLy-3dNkop8Ake^XhU z*WhAaCV| z6spxq9^W*!N{}1`S&#QU6yA`~O+%LI7)9?02(TtqaMBQ55rhQKrgYJ;|8QeY>B!9P zn-V!Zql-x`8ScU_pAtl3=6d5=_7nDJ>dUZ=(eW~+r_3?O|6=6+A`Rs9XT&fxu${Y@ z&WvcYWEo>y$_3}x46L9r`HnkcWdGC0k~C&H5i0MZ$!8il=9e&4M$|BbfJkDv|4K-nB z&3qR`7vm_BYti<)tjj2#eioBs6)i$&zabHA4L>c`y-Z`>1CF_@bzkQWQ{0zBWA$oh zH*ZjVqU}9$q8To7?Y+SQjHfLe>wXs1X%3bbBpsK%%#?;305oTfVJtU4%0|w0n#;o6 z>!M|6xz50b786e3kwzc3>0u5(l2&+ACBw4**D1zh^Gcx`T|1jA{xQX-78%MNKTV!5 z`u`D8FwC16Gzr`4j?CVJcBZ@@)#m?hDk&4+XR$<6sSBbkh!efS<7RiYeE69!Qo6mh zY|;ZM?<5K&=YL2P-2aj&{>jNGP$R74D3=w%L1h z(%Blc1k=>{8kxWkPj3HzB+4CkZ?r;O$#&Jt^z`@m?8>>>EItJ~$G?S|Ne~mA6u+h7 z+2o)N`H`E>+Rq9KJ4Z-k0Eqg50%573=6T<{D#-WBZN;pluf23ajd}5RdsxAic^|%dx+9_%uJXFSdbz6al~ry~-9$~ULE0?I$BNxa zE5p_>|KY4UTefUncZM%2R-2M{JDH`*@0QXFF3Zrl*ko7fP^NwQ6bgzUdP=YG5T74;sDI#vC8)f zReKd&W6^Z3u`Jel0K;*fwJQIxTQECAJfAp2;i-@cI3!@WL~}=Pyn@)Q2eiI|v%)K@0CG?JLKQ3g@0f1y>yL4pxP&c8a7t*I%Z); zQNi1Djdu+Y507Sp<)*pIGXoqK90VmJEE&`pn&Ve|cYe_01F`}gi_(|()neE8kx#kI z3RtOeM8U&LF~?*PNb}u--4d|-rtM1O`|h($EVtOB80gr}p-5Im;C9tI^kcmjFqI;; zGM1V?G61#DY)vdgjSOzy^xj<*A6%GH5t4CKNpZh1p4UC!t|clciy<%M`udr(KSCvMaxn$Y&YE=mg)>uX%Kz_B%z zH5ArgBp2p(H4DQs)Y51ja4u`X$cAkJSeY9ArGtvcc3etI(GTVj`ZG^`Q+be!k&p?( zUy{py{rKzX|K6SmqVGwx)3hL(|dOa)i?1d4RzA9PaKrtpzAy*MXBg9FJWl*+&= z>k))hoA+D1$$sK;yiXXK1Dxb`nd5zewxrY)zoJyd#nl0vktV4xbCPp@8xvkv{8=wq$GCHx4s)8Pgfv)WFk2<-cU0lwtn50;UYj z%%8aN;zj)>A#}@FWT!Oxx&kcOpCqFiBI30^x!3HIr09dh`xgiTpMgG~P1UfKxUT5l zEwkmEnePY>hvJw_D~MiWp5T6cH=S^!m`?&Y^leHM}<3^VT)<1mWPTZGAo<} ztN)Qmv!TWchsdi*yoQkj^ps{8$nb2~;iMAp?%aV3%>Ykbc53!o>vHsnVq9tz3Px!p z7V>d-A-@&PTk_NkyGccf4=rC!2 ztHYy?H?HRlYqTji1QF88{u`BIms+h1iIA>F370kz7NQbo_9c+!sIUoDCHxsvL_r=* zH6%{gq=rYUJV-hhme8O*^ot zP;pwlHuv|Iv=ZV0>|>fRb)XH5*xd5Z$g;!D8#?K_9H!+8JFc)Gtlu_98FYhV&e37X6pxSoG?Aj$|M$0!KZr zQP=7ZnYI#sOa;D_4Le0)oke6BGiq=7+8H%I;{LloLr`-7#;QOE^@lJn3Erqd|wmOVP2-Nzd zwW*5>Lo?Jp7^27jdzpfIvN4no>vyDT{6i{uOc!81tUdi8m7Mmclpzg_GTDS@+79N7 z0+_R_@@%C@E2A-0$n~y9Hzl$o+M;3+d#&Q3hlWa5^HACQCPpufBaB8;r&%_$ zmBP)(AUQZZS_TFV{f(K6Ob;)c)K&`n%s*pQFI&tcT|@ym7h<9*Aeo)BD^Zk^0N3FZ zgjtdE;P!fVN*748)3C=L&c@mp^4NZ}u;GezEm!(P{+*oywBU-_t`wF%CN@Vxg)p_? z_ysI3O*P&Wjo7A3#iwUW@XM7y)e%7xS&Epk=_zrDGoHhu3N?c`xkt-{p#mFA@(Yvn z5mJ*f29{UG@HbFF=%zYoFj3GYQ{#w!^si+VNeW_LFyPUA8ZT|=&+5g<_2!L`9u7l4 zI4SX!i1W)*WC(c~$hOb_bxIn|(4Uy%_)qCgObVDfQn0Q}(!pa~gf`p!wzpW7(|Z0| zxNI|b%3`$ie=>GOs*jsd>qu^GhC)7d##(4%;L$BBA$*?X&-h@;fHN!$hM|9*3`r!1 z|Ei=sFP%4;986Xpye7nJL%HOiEUGG%S5z<=smh2b#}tJ~W=1YK^+%V6P8ju5iHR5z zN;xAl+;JCpyLH;s#?6rP0lm zTDy_gWT1WFim3pmk`G}fELv3gQ^M8Fr_GxDM$lEvCIXfWBmmPWfflv`ibd51#?rTm zIMcAq!xiQB{83{umUiW3VSE?RacoeY2@*-*P_!U*6kIw?OCy!M{4A&Zj!6~K_-Q=P zewj4vl46WiMhPrUEkh{T&@VRK8Bh|3|LSZBPli%butn{+9^0bNHtgud@itc0hD?0v zp2N$7_8hcR|5Eddt)`jk@nC7+?S;ARRb`fVhW;jE@vC&(E)%gnfZEe(6$*bL!1Mvw zNh%}sQnfdVVlSlf(f%o=FeCXW(Ph*`{Nq*J3$uQo+wiMmRJ&j0{9FeL)3BA*0u#vV zF0FzfayI7+&YfK{z116A^S6?7)hgo+vJe6W!fRGCY3{a+m@(oWMdHISU3 zHve$uQMd}z=)>d`D&w0QJi5=&fM4^`=cu{@Vu8#pxGut!a%3BL;v?Vb@YxSDR&Kq$Lz3UcY_Y88 z5@8a;hk}2@R;GXOVRz$Vja|=bH2kA-3k893TE|#l1!(6(e^F$s_naD8)+c0n% z7)2uJ{P`n_6v)r3Wg?xLyKs9mA%aw@sX-pOK&k;>SFnYxDThGGXbu0Po-=>YWcn<} zCDT0OHr*O7p1i-hS=CbJozt4RiwZoi>hF-zDE6>8kP+n({YHk*o61g@M)Ve z%kJn8{i!i>8+`57rm3&xtNobDSyF4@tVp=JMqwH&oPoEHnsRl;^x~TiI>47VzT$jS zF0MOn@oiUT>5nl)_^P^TvTY`bMKa{!n^`33Cz||84q1j%YWDp5Y#5sr<1DkGi62!_ z*{J-Nt3b6a>6qid((QBkkL2qX9H`+HA3w;lBbiR)+d>-4B-smx(%8H3A~7^gCmQcC zsLBhNmEw`K=fQtF3A|dd0Tv}T1;&a)uwq=g{DL2={jcDE_ym8>`dy&@8~!Cou{g#X z2Vg+8+%hQZ@D$m=_tix$lx}#MiSN|IiUOAl0q(Jz1QmlWKz|3s{Lz|$w}YjJ5yr%s z-K_twiD<9d7r!33gatTSv^qJWfFI;$uXXSXpb5eY z#sNIq)7eLepte_|yc#9q>t6pg-0M)+;AC5A)1qj~;QNJ(>_kmpVnVMuDfqX(SSh=@ z!c5+iomTADq5yB`H&vFct^tKE|C~@!Sx02EJkRX{X>lIY{u!te?;B@v3b%*NjusS{ywBVup?kvWEx0a*i11)(f8Y>Q23jWIYYz9=NApE^pq zfItJ;?V<;oCa$bp5nz?Ug@g2d?3IDu#el6(CJ3# zw_=oLHr9!i$!Z|g>5d`Us49X5cSls;+V(MUs(ZrmIF1D3E%q6@rgI6k*~N^*O``K> zC+EwO^9!5nFpK`BX2eTMGgDD9?2DIc4^Y8G8{r^`?}GSNE^ZnoVO7-2EvDTfFqAPw z?w+n|-?({rpn?y0sBbTjp@j4)0fKZl>h@FRMzfx&NP%) z4MJ_a4Wn1c;ii|>RW9UnRM#5M;=S9$--kzF6QoD?(8&MA_4@f1($4A@8|AoZ<*Vzj z&9AF3BKY`n3%Xv17-cf1+WPqJs=nGgTtXhU{R8%F*-J-S6GwU`e&fj0`8dJ(jdxr( zT~`7-{4Echpttum0c{@PTC}cp9?q@a0)o27IVU}C{FOcpkPU+@0qqWaPu%u{bCuE- zkDxv9(B-wNp&&EUAjni#nPj7#l`=!$)$Y*y;ppYg*)nb+hqiD61WG=*?MjU*1Ovf4 z#mZ0<(`k|voE#C79qTQVIcRb;iHLsI#uKGX?K{duo4qnU^1JMugk)>tSd3xg1`Vnb zmT6bZn(OJ>(eCQi)(C6{x(d>U4aA+j8upt)w-4uvEf4DN1a4ds&gC8=vn#@qBu4gbB53z7H{0gx-q)QSKZUec1Q&S)g);+&`~*k^ zS%i9K*H;bRj?ABqT%ecFr``uAmv^Q+W`uFO4FO-XlctCET6vbeecyQT&PmU@?K=6A za*eu9wui=^O`)#WKTV&ux@visz#}tl*E?OAF_|xr%Ihsl4$-%IpH|NGk?Goj%d6+d zEA#Vez!A}U+_Z)v)Q-cD;AHJ#_TYIc>CROtr+sB5%!k*X-=Ap4Pk7Cd#6c+qzVP-^ z_3dAKfCxW6$!;HbXJD>xZWID7zMh?(UZ0(lVac}3B8g6oEf0Vu)-_)>Wacu)HDea8 zk8SOMRv-E;tL~(``bHi>@CL>n54X4b&#NjUEdm2kQ!}@e)AntvXLdELM$gKIFoXt% zt2cLO!X#Q}Ev%tkPuE*oxbV;pRu>mQfyS6)AJOL0?k zNoz@4yytavn2w!1`3{HHYFmtuecJrn+gci*y4!s&>3yJ|Ek}adCXQd4P>HJ7h3$p> zs|NgLrUP<~9CLh$vU61032_S{$BPoAh5=wy+_Q5-+_n{?wKkH$Q>`!`;&a#Gr$QHj z*MCMc_PuuxIAeFWPOAKcYt`3Hm&+p~6Njgp(D8_vv$*;I0qy1CzTVKJ^^5&xD6F8j z_BeI!Ab7}4ru%N>_U!c(JaN4G`fTj)_h#pFerCUz{-?|LWr!$b$k+89a;iWzakGESok{^P<;x?+p=cu)k~o|# zGt+=_$FTW_lktP2qg7+qPQI*`u;b(h$k10_&woNy=pwN@4y}64{|=tPuTMMmeUG%s zH6pcd!g%Mma4BcLMR7gu){RezNjI14_ikq<4=;z%C`ET%Gzc^f*PYwvv-dNfPN%MS zyWz+g$mz**&-CY&>!+P-a8%P;He{Wv$56lLZvSVPNEj4%hPG73$Mt#`;*x#OZ`@w^ z(qwe4K-!YjGPVr1e{*~CY<+I%S@7!;_}BeR(k|Ln<#ic*`6N{wCp8Kzk*+H*P3(fYtFamSMA2c z&ndgzP5iZ0Z~FRQhc4{GXqE_1Is;xjde}rVR)hrugmpZ32D&;9F8dF}0`i|)0~(u_ z*9K0n6YNKi9XkwKkD!k3M>=K)P=gi`f00fSVP=+Uvh-JefsGYIVw6Y0uz{e#osKXt zP`mr(BKh@c0_@ZspmGg;YBA-TdkC7!E`iNr*9)>1 znc64z7EU#w{|92CY_?m?)B{Ic75;(jrs9p|kr?2V(%Dsz1CgSp1N!4wI(oeqP+>7~7$_3GQbe_Sn! zD(yU2EBb+|j>mt7*Y+|O4RwtcJ6q4sV*Z)ELe5@i=bpFq?RxB80}P-v*-<|a>X`nW zmU#SJjq95_+d79#f#ZaUy6oL|?0kD!36Vdet30*Pr|K;&`7GWG<|nNWtuK%4yyBxB zpoP`a`t+P$yZ`WIOj;M!YS%V3EYz3ihBF@Co+N>dA6^Gmv5c+gf4vM!`F=5e(ZXGi z%d%Kx&#OWibwPbJ(lh2$TM0P9*;Hdtzu8Q;5Op~FGIC6u+NwjMOU8pI)oUoFRC#3b zvuNGv#%)4+{}`lT>9OTy(ALoi@QsJWJj0rGPoT@=p;U5;yNwj4=0teOgp<1%jM%MS zL|JgklD7S^({1Al8!)|ny&Wi{(3%hZyrb^WUNFW;R3_xxJ;&`pvy)?J*WQ(sq?}|G z_i2{2#ul+Fo9>Z)RnGB=sQc{blgIP$ptliI20eWu?|y}bPo(Y-}5Z$P~Su178|B`{yMC#O2?-inrEnMTsT?w5YSXKTeEBUf;<9duJ5P6tFSmYv50b(j#$ zzXVz7!XPNGx6&#_=U=U9m0aL)gg;zNL#6X~+P>fafPik$%AFlV^ZIsU=aSOl@-t~j zbS*sDumk^aKqJCA;XFUogRu3AXGPW6ms6&83a#ajJkE;gmJm5Y1`UHxfwB3U%{9?xYH zd(P6vo21foUWw%LXq;V}$0h;tSfl*a>{8@d7XqE_*t z#_8s`8AlA5?Q>MuT%$cRj=|^Jr@Ig*xcE{4+}f{RXkj`Jyjc8F?%e_wv)fnhpWjh$ zBw_YV(6hLf6?R{;5ZL1MC?l3^G~L-5+W^luMA-2WuW`p^yPX z-y1kE(mpE1&J+1WacRDFlkj|0Z(QWh+D*OHxx)roRax-}|7fYJNQ8 zH{Zw39Q3V2{A`|KSl9>s+|HVF6<^IIQXDAf_AJ0-t1?O}&NC;*WqLn{buDBJx@)qw zWS<;^mGpSN&#(F6SsZ$K7p~Vo(;0O^&cif}xawFK$us)i?o*0GT}7znw7Ow-zIcKKsN8 zE$R|w)mIe0D@#>Lz@-T11J@OAyP)?oa)y8M?n;5$kuyJfTb`IZ)#o`|N8c>v`Usx% zRI#y#6Zv=e$E##b$Z~d55JkgGPPEe4MazKuzPXk}(LZEmC3tbMNk~ToNri{**#Ud1 zgu-GO1@5T{<M4ue~!SFEcV9-9CUO=dq5TtzE)jOH2GDEG|N2*P=(mB+B?furOfc zpeEg&7*t4H{wq@UT*?VQf;jc!R54_1(j)BpCJW!`isV=GOsJ@D*@KS~jQKtarsU!U z(0%&|GgwW847@)L&}imNy((-=B#{-fq;E%Y_Vlk)o^9QyN9!U%tQ10bzkVr7{5{vGxH%2r~(TL zc<<`nWD^kK{L{|oRjQ6+N~Ni+`t?P!q3=reat;OwzrkO+TY22%y_fRTkonbeuai@1ul#q} zwWM7WgX@Wx@#|h-MXPEg;%C+*yF{c25>)bjw$%jS-K-gSTto^4P;rNQm=2K8gk=f< zyqE^$$ASBw2mj_}_R#qPWKsTwXQ(*y=k3M%1Ng2P3jDS_ZDEl{({tMH{^&}`k(SGY zu!ss>tgG}xru~i1{^cNk7c7T349{=FkkNH=ytKeDw2_F&(h<&7i&Ex}JIEF+Dz zRt;a;S7Ht?bB7VLGbl9{Eg@mXOia2pzvqZ?wtr!EE-e7zT_yE-=2KyYRconD?>77U z)Pr-%2q)JphrSeS(M5(uW16rqJ$^-P{etr77K!l_?&43!FC{Av?ZGXD@S6!&pSuD6 zfwnXUUfAhgN9d;rMGa!JRk=}Dm2{)HIVZCtr4=Q9ctg$&a*FehXt<*2Er3cej2P5w zWUpqPqfFO_Q69JRy|nE%Zy7h=LJB}6Z9+FbI;Je;V|Z?k&DzSp*o${w7NWkX5US?G zVZmML_vdu(=T4l1wb6t+Z+yu<`p&xgM%8Cq-jxO%;j4wZ)*yBy34nNU^(ZXvsdC!_ z{-#=TX|PseIf1F!Jhzpr_tyfab%7_ofI?U;9^1Or4+lz6db$;@#!!SvRQGi-Yv7OS z*KaVi3DURl6xI>~pXGix#t>0aZz-Or!`c@O(J#nj7=G?xw?HlgqGCP)SrUyxh_iKOh(YxjOuaR+PBTvP>m8s~OxXwqI= z_zt0LY<*I_y&{eplnyzSxr5s@$qJ~i{*FL7B}i=0Jn0kHCM2mq_Z5NFAx%f*dk{iQ z!s-%Q<3cJ2pI;~q=4dyg+UOUaBY5nEkM9J{(ZQ@zkBFeyUe9Jy<42e^H#rk1!!q3f zK;(BbRn*Wef?$JQi2Ri@ictpnXNzGKbAN&zmYPp>roaK3kZeaQ1p4B|6r3hll{Fvi3wpWOB`9pdjNk1TsaJV1;jQEmOgmO$;<~c5p(nej|<66Ts>Cr>ujQP z)_2oL5(H#Pck z#dx3fgqg_aDu}b!q^eY>Y>xfk^-XHV6Na3*#YvZ!zwr zqwMi)Sl$Kw%ad34!m<7QXI;z_(_8sbk!VAS57DtrZ7YL5KHN;6j+~$&x}+)CbD~UQ zBj-(uPnnK4eiOc9Kx5b+Po|nkgcqBitcj2f57QUxx_U*o2_OLS(NG70(?c)(hOuz- zoaB4KVI$kJ1eV>za-;B=ll7}L_^VIj`#z!<6%|UmMcC@d5&PzBy$$+#tvsxQ3r{nw zP~jsrxSk7E0{Cdjw9V1`pyW(CStM0Ra@@jN@*Jfm;oUbqi7G~=80@yx`rZx7lOl*L zlLEH}8;g*C%6!MCVw*Ecv~m;_d7BdoLEY_$RwpvbJ)~4PL~Fo<^!Pgv3Bf+!$AgEDXtpG;WUHso56W_E^I8CF#q9j! z@o)do=tnA!h+0o({dF;s1gd2=I8+o|5JdFaW?0eV`6?$?$fO)FCL zSz6x{<21aAO;k>`vdvVvWap$T7=yn*S70}+jy&YC?t>+7rHARu0EEqUZ3UJ%-tC;) z9YYw)uQVEQ!cutX(@fQkC#mT^=()k;tKlSIq34h zLTuj6;-AhHD^ELG20yxF{o5Lr0y2c$w1e0<0z@Q4WOuSGI&en{6FQxPdiq*Q^g4ax2Dl{{zjh~$i8`?-wrcAm=jWU}Ierr5_1SZF48FT@iU0GKOxnz8 z)R5AX>_1O_QX&kb{Qem8YG6Uzk`ymZnPT*Jmeu2|ToIVR9o7X8XG|&sX%H&IlUTNw zZH8@+?hI%uB}qC^?$I=DVNWA!uIK_eZ!t$P!%0vXCoXyX$q^VK?$l8#k3)uCN&Mxy z-I!GVfWT$w!;#p@XiZIF7Po1XQn8+JT|QL;;>APsuWfaTleWAvg^V(^$@}zBQ4nFG zUX&Y|OWH`=jC3xL=DgH_XVZ>^`q9U=xU=Uak=rjvA4$V65d{BT?_tofdrzikONS2- zL@}u;kKteVFH@$!)_kcP$di-*YC4&4GpZ@_4`jpyt?~#p|3&qgk;IvePer0# z9eQ9|{$jwoi+fVC6J0JjD@aH~*gGdwE&V0l5KGZUr<5`M{}OI;Ncj1(RQk6_&{{0}MFhl~dC8R_ z05W^fJ|*6SV9rXN;OMizck!%>t13G)SkUlcUG&ioFhyDy5&o}hYYSBAxTv~i0IS=s=3$QgDf;q~ zbehjs_7pj#gqMKN?>lnnfOWK8POd6zaxp>{BT_?ollz_IpJb+Y>1 zb=@Jg%`%BGBoEXs;X78;|E8_!t<=g)A=UhQOPeV@4VKaB-quA%k0VH8>p^tu-@W6j z-ECNZMRmRIow3dj%7hKFi$iG~uAxiC46aQ@bBjw0l(maTHXsniNaraAO7I zK(%>5*7G5*xEQn@J;UA%6oTS{(&U)tX6)lRSL#Vwa+{qSWcRSBK#!I=#L4Rv^lZ{c z#=|P&?C{|*QUXS7$RInAW^3+Vi)e;H)0~2!rSZU#dwo(s?-F}PlIMiuDW{a|5&KBU zbiz}GkA6|&et^vQUW$35yBjn;w&_BsVm*eGuJJ;CprMUL${v#!bn!cKx2p}E^*O_M zTc0y}h@0spmx=5x6IZlH`RFtE)2A*$=ls~aRWXC%a6$KQ+RK{|`3&?a1B5uIl33Jm zo&H?m;uA~OaZeeNAQtq?wCp#S9ULp&T=R#j)_R_x@$Mrnj{fMKCADVM09@7rJ!YL@ z+p~1m4&fgzzQr?47Jx7L%vvfRzc=`42G*ymCNl>?$VJq=8Wfg3Gt0YLV0Rk_Au{J| zCwZ1I_5Sp(3VkPa^M}PmiPT;E=`>L}2|t07*c$zetbrv!192Ef}3I zwddaasB4=QBD|i;w5}sphHLz@?DbJqFgYe(WZ&9yfO>1u!9MmV73DOqtv)&1Qt-VB}@j5(vEQ%7yF`4?UI3 zK&@6Z;_8fD{5^fR%?j-p2W!*mmHbU*3!d|0r~OsN72R(z_Tr21MR8iB{`m@`z1k#4=gyx)W;Y?E>#YT6s!h`h384Z*gSciJ|y+J$Nc~B?qdOL~TaO3X~h0Uj;2W4ol9y zE$Nr-?xoDKsyjdrH5Tx?EC=&R>TZ>+c} zz2U5gH1o=T5+vu^cVy5}fWj%(B|AbG`~R!FjUUiaQ_2(sL4}7Fy>mLs2SXk=zeDEt zGQ%V`3RZZSc5Gvp^Kas>%?s`2NyR6FEV9EgDH{j|n^ggbPA9kQ1y8#@nXz?sJ9O_oFK2Ndjo zN$5yhB95>2Joc|UWh-1`UydzsC+l=gZr^BYdu?wzwNi|esy(+83fw*kNl zrUt{8Cc{>b-f6?ZBi4=XlB;GPGktcLbA8FUF9qPhZ~tt>8t>yfsC)%mjY%=vE#GVY zryfIj~BTba8ezt)nj2ZXF%`~1ClkqkPpqDT7?4jR+$5!eeS zvoSI(N9v9F0LFiN6n3TeZHBu$e!}C~tT|!?pY?9EOJQN)=o3Ld`iPpZ3z<^n&4O3a zq1xTeG#6hxToXl{2@xQ?;6K3}CTaZHyz5#fjQoA?_gX{r_4bx%c723SucDnG4^!CZ zwLI)(#>v;gk%Tw`LfZ~*A@v3zW2orj@x!crQI8Qr0y>W@xE4ao#@^n8M^bWaF7dyE zV3N|XvGR2Qc&4gzR$I}>Okq{9+_i>Z7)SFwv;=W8FBBG+^{s=Pd0 z=;T86!5NAmk~({BurEgFZ%Z;KilSHAO?`0b7M-TUeH84rW-dV2I!s<)%?8Ha3OH7N z$~vJtNkS^FBE$L(;%IJzW_-lVV`bRN5dsW{e2i;Ri{FO~whMMS7*U7k?mjV08f=e#ik z-g4e!CeUs8Q|?sSrt%)?<0D<+hB%VXKH)b6q=X}LvyHXhHNK9Q@jFyuoKi1%>GU;y z%N%z+hnjU|J7EUYo~#u%hAGp~p?Yz8M0_qivALL28wK{WEcwqm?#nLn=n0vY!(yt2q5E^ibb+4`uC@X@PZ&~U4ayDaY@-l?iAFisrhUaaK zjCdvI%@?mP!F*NCy<^=Y$m7lZ#l{#AGv6~HkL+=Fx`!HN-0W6ab05+J&mBuxsQUMn zhKGNXA)e<#=FMp3ukUU!3F*%&Wox`YorXRs()4#GFo+qv^Utedh-3e>MI0r(FU@!F= zao&=p6E5-sF%DJq1gDc`Qi^LcFANrP@HJk{%3JWA+i5jY_cL&yke)gZEbo$E|u3 zpT^|U8Hg1whf*Yi z`?^jJDGfzH&;4!MgJO3hFwDcc03fvWL&u!dwO z0T+CZZl@k0`N5vTXXd_rQNfFN1Xu`$ST&UBm;HiaP~ApFyUo(Y2j)poiqXz@LjsBlqGv4q93w!p3dy$6qTF$yR&O>n6pyk9MF?lW@%k ztCAM>xBRcKu{;lR_HlEtKiN~3(@nz5M0&&wqmqsd@(ty85xeofq%hYyiF+S$ANj)e zSiRSIkj)c#1+Ofi(oD#2leqp}z8bxo&wPL1z6L34{=5WZaBEEx9Gq_w)<2Z-Z%^K zI79GT=CiXnRMmTmRwSA|kNJ%ajvoHz>LKY5&?+L*^FjWU0+ls&I)Q=%d8B5@uQ_~F z&n|as2^=8y53QJ$5br&6BSKiAhG0bPpY*A8nt@|h+=y^Q)j1}4HoR_x> z{KAYz2cnxz`m0ijZbXv?`xk>A6LZaW;HqS)peA-JBV05WtGD4n?Vueqe)XEK0t2zi z08hr;UTmQ1k-jk@B3il#rjrW$q0G_W=R$3cHoJ{8nT8D#{+J#g?$(Lb`05_7OIdDL z&bUxyeTY2qP0Ijgq<_i`(xl^aCwYb8gfyq_mlTBT|<$FN?Z`A72&ZF-xA5 z$oxud5Em=3!V>*CG?@kNuiAwHQ;(|N^}k1BM3-|s7<06?;3E*G)uo;upP}-*@JPB$ zNX2I2l;eErC%O90n@UZ zLUnx%{@#Hoaqqp-{*z3BA^XYaP(h^c`l_}{z#vHN_fRMjCr6I7Yq-Io2{r}^xR6tb zE8^$l2Z|aX{p@pGCVX{XbsH0$bQPt04j;E&qObH|6bB8*4PJq&uP>_vKd(1&KP{xf zFdTi0!{g$f_s(f{gXl0u=x8s-rw#9obf4-7t-D#Op1|VfH#T2Pw&; z!;fbQ0~5l;;C+{#%IMz_WmCXM@bC>m0hz}<9VJ`JsQ=!?Yg^t#ufURw9ayiN0 z&7Hh@hlY0gSkvh5x&G+@bpX|QZ2Z4%&;+7_Bw|Kb+)g^roGAoaSE>;?$@b&!epfJ(2>=qqNd zRu6mH@BYXkw&KYJpWcKYqutWjqP_vV`nM&DKtvT zZ8}govEDzB=|a449Bi@tMhcRot17zhaXaOua$|m=@XwM`xA1;{ zkb~MD&f!f!*>L9myF^4f+meRGNYv~;k;&$FY*Cw23sZkW%v`~y$5OnBf>I)bWhM$! zX!F=gw#3Z84>zFHiyC(b|K&Px`D?a~r`Hl9#Ahu1vj%_RC25kP&6)8k^FHnu#dWfg zVVS%ZAkj0Ve$SI(5&;G5&AVLk-!hZ0D5>}MF3!&%H6Hw9*-d^Z4rWO8>fAQ(h9wOX7xA76IKJX0BWvcg zVd>i@%wE!_U#}qb7O&lN>Nc^Tx=Q*F0On1et@)hEvMo#~_eWliTm`d>)B_%7ZQ?Ow zlHSgRSgC&5tLe3P72 zOWWstUvm$hUiQ{9Xmq+NnY~wL7XQm{$4;5T?mWu0hyb!o)^=wH?fVB0BQ!K_dflQz#Op*q zHCYp5FXs@^LDNKZkF3!-41BHoo5mv21!g>3wN_``k;= z{4hxV3BXmqHb$*zmj+2pHtHx=Z;6H>TnRE$dX&6H+oD65v1U)e}r7|Aj9n5 zSAo^>VpX+Nt=I{XQ$*CO`{AK!CR`tv?MwKnf!% z%KpZCyp7NIeZN>PXI8gFdFagCh%dpz_+b(%jrL{Xt)(2$F@-A&ct3#=Ea3Rj$rd6< z653ydt-^APu6E{~q$fwlop}$b*SWL@*Tt^RDr>n6_=H0i*UjF~h()abp;&l-WZ0S85tGjZ4 zqgP;q*6m>Ik;ukdzhHezO?aEd;}c>U(bLz?xdHxY1^S+JY-PRDxc%uCD6u595d(hb z@4s&g^mi`xvcX9h8v?1qO8ruU@(|&er8JCiJdH2H?Q*2WJa> zSB!k>SV^&bP1@++PPf7sd0vO3I=|7;1Pp9!(*+x?CNea=5kO|AcO4NZ#Q z)>AydsMaI1p6a5&FNAnn>L*ny_T4*~BwmMxuI%LBwb>~)|l$qP#Zoa4W*ZTM%HR5h7o{A-l%9$K%v)Uh$1vqG@ z(2>{_diWi^ejXoK!q&^LzXyizGjA3%K!0s@%&)|zhvw+;FA4Hb8RIS6lUxTo?)SWY z-+)M4m@vqmkLv>7&Ty{}gOG1semATxj9$Ot#FghhG~8;4J!Q~9kC?nJ3)ZNH3jn(2 zhC|u`V)f_!`6l2ne4czOQHQ&-o8U>9P-UT)!X3fbhLZuf$&p?zU$;Kb}LS3AaQZamzQVmg$M@OOtAtV?=5B00V@v~xHL zMP{m2;qOiH3V*#Kmgdg445ecWba^ZCZA*c0aH)RT=gV8fr%dt|ZS4l`MB|a%CJd=Q z&HX4Kh4Q~ymj(Nkay_u&nNE(5iNe#I9X*!q2>AlZ9_^3Ef0)f6Ubh5M?4byw7BS*> zkKv5D1_dl_CfcF6ow}eV(kra=Gml*koCmr&j%C~f6uGZXyPO^YsLM?wub423<{cv1 zHG+lMY*r^=R-)&bONxBertnjM`nK7y^IC0pXUCGmXrC>&xsz2M+DNbisKH*v!IxQQ zL$W)8fw}~Zb`iw}^AvMT*6IEtB%?zwO?zElQQ4>7oaw;Cs7Tms_vA*%=tp|F2FYv{ zysQZJuJnwbKiu>9O>N|PP!74{k5>m?St&@%S-F&;&Z_lRSsur4lhp+zx?RinFYam*jn+`cAc560*Q&aI$<+AP1oJ;;ET;M8DBY5!XlS;o){+c5hf4bv zbWnMUI@eBgj{qJ9AK1IzrWWvmT~j_9YCEk7se$Kf`~KP}ZCC7eFyks2MP~aoI6>J4 zKVZMa^|aEpRn*hcYpa=YH1L=7Vt&RAwx@@!1-&~WZNuc94B<5>-7{1uOZJ9%q(44B z4h1TEoiS5cd1gC(d`*ax{>N1WkdOW2YAJWu=(?_x7kk6rA#Z1bw>KL4H$EebLYGn( ztJB_bho(RW=wo|+s9{6MU(`7P5Z)RP1h*_3JXA;m*+vrLV3@*Q=G`4vPyOKKMl3tM z8CP~_ASH>!4pE(!-ZPRPGAUM*m7C_cEQf{#q)#w7e2)C2qk3}u`>>IsP8btX+H{p=y zsfG-#5zJT&mEJ(q&bpBG>Xkz_D5W-H4o!=DU!aIKW#52TKWWzOq0ZRxe4RczAj%og z$zGQ0O55~6w4VX#*Q~AXE+>MsyKQu4c5XZ(UL$+PMVCgG92+<$9d4iordZ?yU;S*i zH=nig%OKO<=-S(Jq4b77lKMos8K?|$v~m7Jn%i}hFMOCCh~O@-z?XJ3x#iT_M2N3v zcOJ0^%Fe{&>l3XQ~@V(?GsYIwLK&u$#Lj3=Z2$0nP~-BP-|E1 zd`)z|#-K-ED(Ct**fW?xveP{Za604BVrDwTV8~u1e`0!4*`emXVTP_5)}y#1l5ilM zzKxNhe%-@G{Oxt&ukwg9MI0u%I=#TKppxHF1S<5%o1@2`cJ_SDRg{bHnNNtxxnn*D z#5P~xoWIR_rYYp0q~AyS+vWb16Vh`gD6gBmx~(6G>Y9$of-G1MbwN1MC{7@q;4~5+@Nxr_pq1mC$an~ z8^Om7B&wt8b)hM8fOLO76w1Y#3ALKJc<#-+q+G?D@0L3+Rep^&9!Ig8qwQgO=-I1c z7+>KgN-+vY8RUB0{{pxHG<5Tx zG&+IM)^XTytmb5ZdEc>y?in!d_MA0@5heUC``*!KYg+crZv>Z^J@=SG4UvhzSHckfO&6jRt{rO z$=`{W{uuw7;`$;;)5_n=PmV^9VWMiL^3G=s)H+=zxp;1u2?mHAKC*Yexvx9lZR0Ghx|7w{#FkeC4Nmom1hsv4Kycwj!OSdi}9p8w6=9*5Rt7b{x zanamautpNz7aXSct?wo@dFy3eQVs9qzxG3_ikCvb?W3nGbbmTVC$~Zv-3JqxZod`K zz#|8|L4rZvhpx`90yc3wnIvD5lG=wkhUc!!fZVn^6Eu=03pAN9K`M!_nErUiqAQ>) z@KBWr?svtP(pEH)MZtR7EAqlh<$!IQ=&!hWbN4m+k2kKbIe&K(CU=_b*+O~JleL{O z^t&fu{C`+qSZv^ujz8Y`p1Xvmv5e#@`Qm8!btedf#Kzs`YN<1Sw3t{o2fThC^K70k ziW`ox1L^@1vu2uxC~LLtt^e-HT+Qba#2~w@i3E3uDF%uE;~^5d;fjs8nrts7#o2b3 z3v>y_zDBbt@RPy4U7>H3-~$$=1|_HXxZQB$@5_Csf5!w{p*F=uF0+Q?lg+E%kO-{b zZ+Do~sfEJs$o+=d09-}6fTWH7Ca+$$AEmK`eS8=swC>d6=?gP1?{%{fUEV60%bCU^6pUAM37}Z@c7L;L@D1XtbEYI!JvI-!B&Uv z8#q*-C{u9JCnsy3Gz$s-=3?+CZ9Ib5fvj`ElI+U!TgP7G9?`vZe9&j9nsFp5w+$QK`QezF<_mrhy*P@@ji2a=ws*=YDdGY6U7&`5QdB(z$gJcYO7xN1 zguXl+KW_s^?R??R-#X+@4F0AwHG;&SL%FX5GyVZ^UtNF2@ffH_Ej<nw6;jY(_TafaF__WVj|sVE;2ktvMad+-z5;BfQ05Aweo z$^^ejy=>Q3XWmO2eyU@DQmr)aP5H{xYEtYrINggds+;W3)lrb)=&~mIOANW)8# zU_^v=fF$po;tbHYkUizJ-{vlH)AvN2df+c|hGjSvEVX1qh|&=hF98wW9)0JuF^kt`2{rTHh~saTh>J^;h_~m&4Jo zY)!otYjVACnmvvG4$j1I0$Fe^;b$t?)Q zi}dX-$z(@+YM*|<0ujAm=~J#Wsv+)d!&?hz6{+--nxaK^_t)ZH(M|?~G>RD~8W> z6fz+xf?sj*#JH-M?GI#rIE<-{&MO&ISr@4)zh)+d3Gkg1b#Dgr+s4hu6f=cte?xw{ zG>}HQ3bfeVBfQDhNiJs$-O0g68a(~R0{C0YEpUfq4ke$)3h-|OcybK3m|D5o%6>Id zoCAg}#(goI4$VZ&MrYcax6qCaBClh5XB&ig>tSXT_1|&nWWJdJfTltt!*^UB#B_mP z9sY3&*gma;{7mPn{(~Z^Z1P0;Ez$TC+DI5{?aGFUDXx$x4shUwN7MY8%RE_k%i`IbeU$Y!U&A0J4 z`US`B>wS`&9YixNRXAaP7@&{bW?+2kMQG{1@HbXxBTG-8%#_p~>~?j567t2zfEJ)w z@e?9xb-^NxtTyG}mGM))nq)p1>Qw{Kfe~g%2SH4d;jjG>w`V}NtI%q=)lsuY}h zHE9CL83VOim++;d-NVCZ{)#Ivq7|XP^H1`fVfT8obpl4FWLGwTa?DiF{668bO|^hd z#$BRhFeO4XPp!+-GD!P?7JnbjmAfmAiQ?$6DNdD6xqpTN53(Kw&KnCeEd0n9cA zAoj@5ZsAgcVzT^cchRTFg89iYA4GN*OHbx03fj^|5nmXE;=5vSmKqtX^{9iKLo$Z- zMLhtgpNzS8fyAAY0wFD|w>lOhm5mG&8EzW?HwRCNf9uwYUJsTOnPk+Lt4|56q={1X z97b|xxK;K;JBcg|44_c#hv)8$X zI-zyMdk;zR{5(d|X*LUOzWqy}$!`S<(B!SPL2jrxcsuQ8LXA7JY2$o!rh6HA z^HMdEN&WpiBIB|NazV^m?ao@wFD)LY3nHnK3BByV9u7>#`%`~+5QXOjgKV8EeS-#6 zI%jNwsir|KQD#7pK74{u20b&=X*iqyWt$26*4whDm!Qt7*W3gyFr2z_4jWG(M7rho zIfmHSZfz`wbKZcpsop=6PKdZBOWzJ*`axT`*G{Iw!06Rvq3L0hm)+E}*Z{TJYRr;(MaR76|8w@kI9oAgdoZn>32C}J+Cs~cj^QBd`+MsPwe5vLFI$VQs!WxUuMS# zcz?TJk@HOqLc0Nte%2W1K)}A$;=1$mszs!2XtK^*J<*ynaX7K*5*r#={4=>eHcYM@S zkn(($I+}N!c`~g7^J+jLO6!e`_-m>Cc;A=C4$mxRVfIY$cKL$ogTYB|<*zgbK{%%j zoz}7{>fLbtS0lXr;K&0ZGMl2altBY0B;V=h#k;xC^X~8u3_a)4Wu_zIK%f22Vech= zz|UMxah*~Z7^-vG>7k3%Hke>2K$a{u=eHh3@TOn1G4Wl;|85U!+*0;rx`~6;7Y0I# zSFJg;1IOJ^v{pSFFx`UOmMN+eHS&6x+Z|v(w@>z)PU(eniblFN_#a?AX!_1l+jhfW zU=!kyJofAFvX3n#B3Qo@9$`SUnWUwqxuuO-0CmD_?GkiPME0^$4Sk!ZFL$JBv8dE= zRC|<9`Y_sqr=TZU_joAq={UtTGXDlf4w%e_OkZ}40Ae_W_d)TU&UqLG8k5hHF1hy5 zAUMAKq>_=Fe_44ZlirYJeYzET;;9kTh*;(~wLoeDylwu2t^vq4aFF@d5pIg_@6ESa z8b6x1Tuqsh#WP$BXjmi}pEJ_^(b62q-&pmXUJMilB?)zB6FLDVzq=Vg!6!LVMIv%% z=|2|OE@l~~-kDH{y-u1$p4nboT_bN0G@ZlndMuw4w#3VqNK>k>f@0N!d%IN}@P>ZN z$t}t6aw^&*yh~~GewF%>I9*SN1pkUK@^g90v0Ckk%h})-e5Xs5{v%CyMFiP0n+4IUvm15OZokr@6xc+@UmJM?lMMQ&86mF8 ztI8DY7~X_pKh>VoL6Im;_*_3A(lFi`Rp+KDl+__`>qLtkc@v^#n`5 zMX%i~+0E+BKFw-~3?9i*lV_+=$+Mo+yJ@X{#{qU%&E6XKUfC>?^SRiTSY4j-DIbM& zKAiKUulxZ>F(nNz(lUDhTrt4kgPx^>l1o7DC9p?bnu;i+) zl2ZRHcgnevVlsLY!a>2Np`Q7Lk|80PV?qg+gG7tp{Vp+G^BTlV`b9vr7OM~vl~+Pl zVBX;iY2=Y0!QDNYiiuuSw_U_THZr?1oIgcb9;wHal+`R&q5+n6lcL3ox}Nx`h!pNf zk?qNv-)Deb#64Zl7YgS`R+CDrRL2%=DQW)6$`_XRC~y91Yib7EGWIJX zJwd`xG@|SLom(#;i4^1Zx#8kMFj2Dj(=~?r6fGV}{q%W}#5b>qT}|mSKa^WgfT&xH6BypehZirf+b=OnWsn-^{do$f%)HyRW{AG->a1%m=KJmzH& zY{E`;0sE~#xq(8L_PoJYH9~bxf6hG=`f4_L0SEkI^`~rid4kH9Pf{7rh0h8$y8!rr zqt=}w<%&Pep?M=h2A-tr`>pRBtx2O*GGU)Bc8&1^IT_^)7$_6V4ubmi`Xw!n>#0W( zxiCG>hDte0rO-WD(ERhk(~!+Ao2Ow zH>XC=Ttoo^e8b`XlpgmB$hUhI=MPaw2cK!pt}gJ!P)wQ?Z*r7SzQJaol8VIeU4ljy z!bu7XeNCYFFvZL31+XF~TW?3BBLhl3Fq%H{J;NF)GjH$1zn+%tBzAS3FVOAowQ9BG zl>Mv~^u>qyR5JS-Wc3ooppA&YMme?y#RtaD1NXTl)-X9P6_W!Ywh(t4oX!S?NZ}~$ zZWU4H(Y1Zh#3WUNpIL~Mu|m9`oI3YYfZX#CA0hqAOH(!oW@h?@vAJh({XxDQ{V99=>x;uFf|ER0^DR<1|Nl zL%0Pr1>1QDqr0$j;UwcQR3#Eascv?H00+H&2(iQo2T%J7!;f2c|`vBM% ze^G6&%(r&_sM{C$+z+6e>QsW^Z9i&_j4t<~Jp@YQ?%nYjcldy_ zj=Y&;m=4-n1xWLOU)9kKsO=3`CBv^q@tWGvE?|UgvN~dk%5@jE3*$d$Vsp~g^~QB0 z!0vpVpPu$QHEuiAX^{aST><~@@F(l%5$e##8EMP{Ap^8iDQQnxsip%@bi(l9^&fyR^Lz@CUQ~ny%61(4AN)mY^K=%p3!^a^T5^gyMLq{cFG563dT6$FZo=6 zG$jP{ILu}lKg}S17mbpQ%89^rK`ys9quZSUMfp74gB&GJ%zR+ug8t-uy+d@v8{+j8V@-!_TQNo5=%PJ3C@IQe>#ht?L{7%?hTDSA?}8K!DLq&aep2OE zLAq}}xjk5T%Y@isv&P^OB@^XA&(wM#w=R{doe7rK+d@W;F<>!oY_}>BAudN>3CDCm z;!xF4z1tn!?K8aZiq~`VM-VO=c(PZ=!)nvD;epAnB#n`h__|;ZgD*gUlYEnT-(9yj ztn~(o3X(AgO6Ay4@s-wUO|df|DuND6pBX>j6tBL`?`KzAL~2g`By*@?r|Kz(_Y9yj z8q({|@Gru8OB|R?&)s>P+LMk~)0dEb5!t5I7!o38gBJJtmrUY%jm zEg94!U`t?%iKClwV&QKJC@xZFit>1Mhnh?u*-__{U|Ops;<~y)RFLmhQV;%HKUp*i zuE39QA=r()YZ=hx5^XP(12dae8SkqXiM1@0XU(UKo`45NKqpM_?~FP$Cy*l$yUP2+ zh41hQQK-Wh+LI@9(H2`80!~zW8!07$4g5AD_z+IIOYZ1h!d+KBXXk`}ttOw{lS?|w zs0z3m4qB{l$Sc?S$|~P_6XKhhs3+j@1xXEPJs@g%bOQ;>?aki#qz>M<{sEKukfWcN zL0xD#@%%N_))5op+wlf_{(kZKNZ8p9Tjch3Y~V%c*-ol(rePYI;MvY*zRJDJd}v3R z4u(41^D;eQTf)-_zo5#?@E?OjnJto;T$hI02?U4@Fo0e-`P^N(s@`(dWv)qjuHbgM z3a4vVtatYc66zE=_Y>J5k}bD*d^3bP1iLa-oF*<0K8X1nj1Rzt)!j}qKlcx1Mjm%Q za`9#D@ZGJn1mf&_O}Q0r)T}CTHc!6|kBVx%HRN-*G)n7?Y~i!^{ApSM@fvrW{_;B^ z3Zr%$lzKTRW6ADir?=p~`gM4GzqNnRQmLXc4|NwxEHIh&2*^KDY1Qj^~}*e6oR*(`#`;|=c@lIz2~+SriL}pzZq}KmNdAm-J=)ni6H%k z+o^QVc6|@f6Cigzb{=?b`}7z_!)U;iTO*oxxvk(JCYgcsRRjW|T^)SKuXlK%q)i|= z$q}0=qWL9b7Hvt4OyL0Nc|1`5uv&6@d;H){A(=EQo3yJu|15iR5j^RUmSOwRpoW?B zPU(Wvsr%2_qDSLXnc-`FZfS)9cZtB@saSL)RJ@2$JVm)08_P?m#=P!Mt4VIHUN9d& z>4_Vc)lNxM*~~mY1l$_JjxK9npIM0e9iYwKWe}LvOHy2J(eaHjqGl-F{qd8PxM``H zqg@$O@W^1qq4nssMb7zo!ls%}I2rXz<4<_#x`V%N%Moxs$ropj( z3L<*{V{K9y*h`CNZ36w_k8)E}>-}7@W zpBpks3B4r(y)1N&#h-cWBPsGR@%`MJaFynU;9RF0^6K#NQ1ygISQbAm0ak$vO4}Y^ z2@@g%S3|CrToR1{%Y-#1;DXWK;z*f7WETqDW#Z=1i`9f=T;&diO{U!`pFrOAloYXS z$I2j+#}Sa74%Pm*OS)i0{OKYUF25~bTC%uP?Rn?$J(N#et2~dANti0-Hr*BxHaDCe zvhr-}ksCXhA%J{obVz+>qhHHTCPx&OLeHEfQ0f+NcdNFu_Y=p0T0HYw2Inzuf^4NUD7q+lVvNDaQXYjGQ06XtS928IOz9k7y?#fDF*0#K zZbt@<3kXbA_R^tEJZH*6;)o6j(Mp2&Mel&e4luNfMTY@fF@ zxH`bjaPh;Ng(BNfj9Q2=PtScGVwx^8mUW;v3*C0Obm&BGH&m_&*gj=Ww@1(Xq zhDr^C2So(H5rdv7zDL9H!eiAIW|`Z&O9-hd^TeT9-InsDFxd1iCIk_`zW2L+MXD%W zx)3{9e01}{Y+m_r9)NfC6f*U=qNS%^)z0m@*F%*02F$>Yrnzv^eivc1a~K~I*%7sP zz?+j1X27!FCifFd98_?2;RXWyN_C}ES)c(?{Aea;%VVl&xvz!p^8aKO#^H)qSh9^+V6X-cD*j#b5 zxi91Hajxm;%ESqYd)z3^6AuVCRH6udR|9AM^!`-3(JV<8iFCoWJ!S&Hw@19;U`pD& zN^1H%hslsk8@GCXe#(3v#GJ@E?3<8D!<}7SntDVXmPvU{scCDO+`AmZcWHz^1jwht zOnB_x-dxDO?lN217_WMnK-UJFA##TdJi911cdu(@LN^Z~{K1R}*1h8M;K~!sM_W+c ztN{%mP+ia}O{2i4M>?zGG?6;WvRCikKW`ZdyMio&?lB%UBc#e`yDnlb1+txpFq&avGetw=d=5jHVLXN77g>VltE*LkNZ0?}Kjyr?xM) z-|t^B&HpRZ`P0wD7#jYo!sy>A%kBzs}{K z)nos0cK@8&KV|jL8Ktk#|G#7s{V(S7*B>|u}~|2O#3_huOQ(nW`_pTGV^ zTvEVanfXg|`77Cu6Ucw?c5XY8BuR4pmB79&kaU<{&5Vov7=q*jNnmHNm;a}Tn0s{A zWY;_-23bHO>Uf0T#nnVr&8z>JTlo6F#?3Ki?$Q79AOHF9fBAp^`%nKr!K;cl`>%gN zQ48PvaYE0M?9unx{Pi#Y=imPGKmPTf_;<^`yy~MMn4G}8Vg_-|4fHGb{HVIx8#t~G z`>4KRt(V2R=ES=5vMyj>+c$C71lBb+evBV=0ORt;mT@~*>NqUy%B+vZDf-KNW8>?i z?eb~Bd9BzV?UzLZ`x@mR9oMh|CVrK~JvPv<8uO!Z*tUS2J zZ1Zybdg81WsIKB+tgChc13Qk7#(~ZN@&G>OxT+h3W5rQTyNcT$Jh_kQShGM=XFLNZ z0xJA8KW1XT`|NkbH5be$0YSWQtqls?2|bvO z1ovVNEU9aGyl|tS?~VQ0eobg?^#^WKa@D}zK^r#)t)6bo|s`5LS*2 zgc$H`FZ?Khby=47+Km;ssIS6q8P{_GAq;506RK(8#+ml3osa4Vl{tOC+OD<+Qd{}z zaYZj+;5_%Mc!mkAYs7pNx7a{lyVSl5`!>TOeAWJ{!XY>i2c5vYBC#`v0sE&%DM_FRt)rfWnMW!P|)aCLOKQND>lfl%m&VLne0k!X!E(&K_o)Z!V0Nj z;}v`+HV`_fdIb(=Eg&piWmH@}w?=2s!HP?v6etv@xI=*!E$%QyTih9326uNW6nA$S z+}+*X-Ftbzb^knTC)r8P%1N?zY(KY^TmB;sgcX0v)PHDT`j$9*-DUTU={Wq04L$88 zB7V;^`6k*W{JPrQ?~mP9Hak#EKD(9h(?@1A4De$S&T>Uz9@jTjIE#Y7G%BVqr+#1ER+{fKGKdbc2lU-`zh{7@8Xxgs{nm93^{I z(f&e==LKG$I?#yA%M-SnKa^(T{Px5zRN=kd_2)n>r$nQ3qGh$&;404o-~jyVgVqTN(P6@QBSR}45vNWJ3{r}m9YwEs}mE8TDC#B4~@oqjv8;d1he6!ml1 zew>~7nXi-i4a-Mo4dr_Udk}vZZrpS#_1+1U3%32lgJY6W60%W8JO;j8YJejm=KdE? z5TA73*;TZNMPYc`Sf`KwR_q07wRa7+#1{9ar_l92;mR7(t8V&e=EMQv*}og4Q6lQ) zFmVz-Tq^>Nsw<8(C#N%d{`M@8G)z~`^F-o|?-BA4PM6VCiKHZaSyg9Lvb{&nm)o!9 zBqSZc#o#S(**`H`c}1?B=Y(MS^IGfD58#{m>xb=qY;t`z9T~ypWi-2g-Qn$PoXQlj zP&akA$CTw6wm9Wu{q-@ZE=aB$0+&c-gv4*UTdp4c}y7sHZE zhy=xjC(LEQRrv>RI7M4Z5cxx+vHO=4(A+zb-KfTFA$4GSOC#b=i2ew0muNNq<}gp% zJ9g32arM>t=gNcGC;Px>gX6!JYitt zeFe(%=#ILflvM!(=%>tV?mKocLz%?ZswHK$ELcCxew9zj8}EB= zQzWTeC#``XSO-QG^2+0*a&PI1@QwS$@=xy=%8fNg;TW*2@?KhxMsKx86z@>y{V5`W zCvF$__)Xkm))=s=gfo~8cV7MH%7`?D z{_Ly4M@Q_0GQdM;dOr+yG9z0l0)US;i%zos($6pIzjdxo)oD5YcLQ)Ei!Ft+BEtAR zLwaGRO;nBaYvM+Ew;n-I;VhDzIX07l_aOP#Vymog7P-XV-~%jK8?HhXL7%k90>B8P zJ);NJ!@o4DGzF1Ix?l4u8;}n1vpV2*{{H$wg)2L$k=46m_u~XJdn#jX=I2Wo=xR*% zR{K+qVS$=d_<8b4bl`4>DsHJ9RnK&t`4M0yfgVekgBg*&rB9y|_nQ{7Nre-lBc6WVKDyuE-4Bl`A`zVuj2x6Z)?clXx>BJbW!OYN7Gi6_H{IC= z2LT%P@N}8tn_8p|3Kv;_h>nZH{Lu^?;h?o9l#Xb!WJF#1VVGv!{M4hB-sqPeeKK2) z2cq$K#a!c>#U?G}fXxGBdcuN(Ki`^3c`E6Y|7K9C-GtO|&-%HOF4=Ac!;91Uc)hzr z4-MIQIYV=N4g2xreA5b*lR+nw^cIkp3P{-MVs(>8AYG9jhfihN_FACHR5 zp$C~CWI*Yr4KP7|Dm>_c9{Pzy^{G?zxbbh1$C5WGJ2C}ukYQo8)J`9&BT-U-H%Ft8 z^Jjj^Cwy!EYv?$o4L3-mWVj=HMI z`?!X8!XBQp;YXD2*JWVj7|9Jgh+%DJ|CKo0^Lu<-hBrl*+qalT)y2j%9hu+Mj(D; z_&!EvRZ&(nAM>%Z&TmWfBAAx8wG>u>-PQ9Mf25jD{n--~H1IrbF%+prtA5I0R9r?%9eBtfSA3sZJe|LQqm0~HIVUJ=0Id{2 z5cqxBF-nEAjA5{DMEI2PVFH|jQ}tfCv!MDUHo|D~{z4EE`#viYzaIkJRTvy3$=}sHH3!7}% zlz`(iuEx2%Tc<&U+P00E5s>OTf)!^efqA#9$7$@ovzh!>(oNXx(tb0Q(04aMOk2wI zwHDIN0m)@85XQ_-YOaYJcel3f#+PoqaGofS!@#G&rZ5Fzvi+ix%z%59Ewk$tTyD-X zvlYRMX4@Nwo|%TK=#I%Uy3g5Hry+*QjK;h9W%mYK41#B6_eOg~hX)}*es%lp6@2|; zozk}EP0ECGQlrCF=3CTbt5C#z15@UkN&=_d@^bMB=lCWs$-*Orcr*wDI%hg zu^XY=H5Czz*lv%5(|r7ji^eagEXpM1vt%u~Vv$BdKmwW>1hNo` z{NU1nr;0c@Cxi>$nZ~daC6B*+iGo4bsVM>VEgv5OtbX$^tH@R>%5bK zcdf`Oz$RaB_RT!mRBEf(a{@_bN1jaFNfO9N^Id_4B6yb<1gc}Y;TcW>-{jWVFRaE* z^uMh1LSAHjW4uzb(l+RA4Fz^S42zDio!4r6B&g7e;Z^n``SW2+_sLS88BhH9N*qNM zXM|K;>D}+?Zzp)-`Ar-h4Jm63 zG{7c-CE0)hP#|6L$Q8Zs^c~}TNiJkGeD{lTiRE@YQ z6$ks9Gj8_^X~Rrs{-3PbPpzKx`tn)&zhwvWkw5LzC0BAg=f3d}(^Q)QCkYSJ{)sA; zW=0Aa|>ggyK zT6OnJ#_Gl}oEaEdl;i5W zB%HkWq;dmDnL=b&2L+f;i{h+DzW@{#zr2;>$;uMP{B+FEjo46SdzfshS&>(3I7~A$ zu50h!g<`64VuyJI{k|a?=DI`pjEt;2?Ra^rlh14n%3!4O=9Of$ITCP0zZD$J;1f!) z)pr?lL^v8?VZEg{8DWRbo6gCU+pHTxIqR5%AzEiNi=TgxA8 zolxlnRjxli!^)5IeyGcQj0;H097Tcduu3!;@fcx+rFfMZO29-HO!pwJv;FIA`uAwNXUba>df)7d(Bo-0_Cl z5wrPE+&=^2Za!$4u{?A^$}eFxXrIJugPRv>{N)wCNXM>VahiwhbNNVc;^c7u;J^vO z&yO}I=sq~yiirLzXII-8JJX6l3!)2}z&vioy4cLFQ~6$45*!MY@8YlY{NW~2D;unt zW%M)c%aS)EhwKQMHeSDJY+RdY>TL?o9N)}ekF&=6ie6B!kP?27eI|-_x0OtlGHGo8 zY@yA-XkplBU70gndL*T7Oj7D-Vm3$RwCM98pq+m5HCZRW_w1yE#i?OaNCM18d-(kQ zUL$o|&d+ZpQ)X|8vVX4=VMk`nm~L~*FS}6b_$k5GarCIfUO8XO#PI$p0Sg88R2m4Y zcqAD5;rjAvfCwZJlgzs}*e>yF0JOuxUaOY-j8iqShe~7remNooeo2JUicTI#^Jz^X z^6tv`8o<2%1Vgv#_j36Hy{x*cCKafA@T|(=UCH429-99efqGA7+3AqQaYg_#81HI@ zhFf)ddIU?Z;hQ~&{b=9T)ek^?a10q+0P5AJ0s&L&TQ}t2+LN6>z@;54e3IG6G}=uc zqzd}esO}s9kFoxo25s0i%J@hliWfHszTQa~+E?zq__Df5_hehh9t8b#F&4{1gPp47 zI9UXDNp=<4ZC;pr=9zDTSFrh#-T<$;;g#=L*7Nky169Q%eV=+%wzi1wr;38t&38I& z!Izqc?Nnz4Vf)YTZ!ouOvM50cZ`6U01IFoyE`q^j#q9A4B*$M+>drnA7tpgRpq&g& zJ3Nxaw-wJm64&lpyDo>&_bx=F9xi7!O!}=NGmfmPF0lGs+jdqVR8`5cmmNxuNgdUf zc)JpZCxsTMhh>n&aEjyVQ(B~mJ1Q9bfOI#RHcG_0XWno5ZJ_=lVdrwpr+@TgGVu3R zkQEEVbDOmCTBH*)EedT3F+jNG6@MVgT8;mhV7Sy1^)*C`a^_o*P!MVC6{?2)P9;(!ZX11{`lMK zqZ%gkICD?+yem_q$0c=dEzQ9)q=+d`T}C7yXf$H~C|b~NmcrB8meHE?KQFvLJ}BpW z->oXP*yHntm%+cB5YzFu_|;AI?=oJ=Me3r^f|wo=>_?FG7zWegC?1dr@hTxmMA{{& z8Bv-(zkdv1>Vf%$frQy;QO5LMbf+9j9J^}VJdk6saF6ZXmTg$m5;))r;fTrPoQHVo z`+ASzHF1JuMz`k^abnY`&;iHn?D}?FhdUZwQYNa2cn+t4gs|M*pntOgIFhnnUx zcJ+BilvcB}Y#1OLil)j3_RFAtFCF>oF zkrTMf=?nBS^TR3jR^t4^RAWxY%5>P?3DH3F*y4GtVXJNWcfN?*gd1&kdt7z zzH?a)p|kv+GhvdiBdb&}kAL^#q3?+q>zJueK9U^O(uevY-*=Dfc9#!oG#A|v#~`Tr zCmCcCnW!S_QS0_;E-%`X!wc1F{fwq73Iku_ucRf3Y#pvpxnn@tpY7y1q2dlt|Aw)! zA>S56l-e;kyXAx+!=4yxkC$x0L)+Wcl5&E zvAH57M)-TFoNemJ^BsS9sc4?`4ZaAU81}nE5Jm)SeN(6-qGADza_SOs-C?t!8^BEaRU<#n z0ZRB@k@dvZr?RXqaL^1Yb7bF`47Ej(+{FRjlOfhOU#`+sGZCrRE|K%7Os{X;erg?D zeN1UhLe{%yJoj7XCd!-zb3VYr8kBo1oq=?qXtKe?NKPYx0_C*~RHp`dpn~IPuiA*U z8QYhzh^xERdLF;Az9;#Meh)W&L=LLt`lobo-oMBPraXsgt1E4A0zJjm5_l`UairXb zD&tmv*&1_p>angJQ;#Rx^_WFt3f}4o-RS(N@6{K*#p-DZe7x9?nE^h2+@7gN=3<=U zr;7ZCY(MvO(Y_8F2RhZN#9$(LJ)a?U>D@QIltbw_v@eLzmlKOgJha!lKM3vH9-nd9 zd^_!XwW_$PeO-E$XHCU^daG{N+|Of4|JcBCaewJGhOYd+RpIvbizzhU?P(o>P&|&& zhLp7uA`E4lcZqE)-g)5AIxW}o?2Egc^x$PP_KB?y%1HWfyX-80Y9mtig7l8{Dx(2W zI*7&-ISxQ7gik5|V?yZDK?^iQL+uKc!8q*r3iJuHw{Eu$QQAAXc)NUTs~&OiH97U1 z2J1l!6EcT>eObkN^hI0^WeET`v_;E=;Vmv=%)m?^(p$ZdHy=4zce&sf9@}#{<+A5Z9|Joeu zI-Q(bmpP0WB*UhCoOaaZBQ(c<_3iPN?JaIOs%))L%9m| z^=_`m`PiSE=a{o$=r$Fc2v!8&yDRrNGOyX5_{C$T&6|1dW)aPYx^u?x_=;h@iw!0* z0pw2Rtca%RFpntGX01)KJ=B$ue626T*M52B9ItLZ;or+N`Z*)XHPT4t9E#|fSp>6i znCrgx_DtUK#C)@{+jdzBBv}ryS2su{#fX;l)y|#WX1Zl6TLk0xb+5u(>EQn>OFA;` zPHV@vFW9W|STmrVGd8JD!W^z->#n4QeEv($mMYD>a#27`h9)63YJ|V*62nlSI|y%6p)jbSv-V0(|i%|B<&$v=}p18U_ke_mm+bCS#O8Y0%Y_S&2PW#CRx z?|}!ZE~Bf_m?=Dml851*`*}M?Ot$C*Gu6$C*X%%QA3Z|+;e}@+(_j+cgNN`+T;$$F z?SYkO`?NfrQT=T)3bf_OH1YDC8>T%Z7I{UN?UG&{m7rGg;bP^r_^W4P-hT(F-@aED zCK^lfM&XmTe#*h+3@lNWS&I$oDNLln<-43uajRFcK+33SO_A|2wIb(esrA96DuC!Y z_sFF`sKI;40w-09yjMj9rk0&9ClOsRMm8Uo0n-v<7ikKF&8SU^3~_kBX?2mW>o7Bh zojRDCb6VXv*b>7h7|7(f8p?_gsvq{(uO#_jr!Z7`OGTYVW~11akhx0sz{g@sU6*jQ zhSv+!@xStogmPfRW3)*LJ+ONnBZ4i02H5=H;t~Ke>$v6<^6m@g6gChDfj*&euts3l z7|o5s&(muSa9guR;*j;e9y#wcdr7t(6}z{G(IxcA&}6F9AFqhyN59LD4d+(1Sg~`7 zcdXKvVFmvDsSrC-tpuK~`ir@1nmj)O^IXg%j-!N}D-Xl7bH&q@c$lmtevHdOIsNn3jCnJVbjarhx3PTKSK2)t5*AgRyfwelxQLy(`>ms_}V z>=l>eT`TLb?D35!kEt_-gC*hE_0o$a1drn43{`_vfC=9zIG%D^&00qF*lpS4<|o)s zAQNnAs4rmV6Uz->62O@xcfO=P9B`~_?}e#yh|)xi&qN^sT12oZsw-lRBbBA6OA7Y# zO~0iWjytGuEGTWuUbXZt2{taG_B{yTPBOlE7pb?NTh(l~7Ha7*g9BsCv|?4!lM$Hg zC`|cdwr3CJwOLcJ;25ueJm^YIU!P#lqP**|e;{AL98Ri=JW}kc-V0aeI;LpE6{> z!Gos4e~5=kjN1$=AL!K+-U2QA$g6*Njn;4RQeg5+H-08>lZEiHktBkf0S9EmEqwL+r8QCukoVrD&xAGd;ypp?k?C}rmr2Y5#Ai7KSL@CpJZY0xT0k5@ep%)#3C(`kX%0o)jqq{E%V;tpSDFwJva;&no@Vv1lJ}8ac&B4Uj zupVBY^-jBu@mX9`tnR+BJNM|6aASByg879x+{nc-Y*eQb~f&fmzd1rK%@ z^}LeD(ez#Of8vMGj|+<~?82ds1ed8D?>AI93q?3Y4<_X+Jb!fU|;T@`1N!v25DieH_?J3eWw=1w5 zkD}5J17g1`r9i658g}|=RFQ=rFVdEYpi|T_^^fA@ z&a{OrX0ja3@hZIzr7kO$5)mWQLe=r2`ON}kr{1qN%gE*H*Orxcg(kJ~J@JTzSo=!V z2@8B2B9(q2I>ygFC@i|$UL#f8U@|65;`;_L*>)rGv&^A8@Bg&pjYTcwA#kbcpr&y1rCOU`SIb#Rtn{WYO9D$5^sJ&< zsa?W)UKxlG))Z)}uS5Q@`_c@f8bQAO(e}nOXJ!>z>L44}6<~s;MyB#4k6><K%HcR@@=- zd4bOH(QkZ|K8ACbvoY0UvvY$5Z2`G--=<1;XnI!~&tN>Zbu?2)i%`5-ATmMao-T=1 zV|`pT?yZxJ%`u+3g-vDJKV9Ovv3{O^5n)5uA|b~9E~Z5k#L#ffU24PgtUY{nGCXc4 zA$CBuD5o`Xy^gl2drYOQ_A%}*61yAsA8p?q5i4T;`FSK)BaB|0xK`sdH^n-G_WXqz z&vzJqVg2<*rYtvQ>ejZoP-r@wE%pJ6&abVSQn!U1gWA$o3VdMF%Iw28qTz-@T_N_- zt8$`|tF}5j>!;{Za*_g;gM;J9Zsu`%V?q9OKD{(0?a zadj^B&8U@5*(AYhfskxQGh3$?!+JhM4_g|Cj0_B*=78Oud{TWhj(68-t{iWPpPP?Q z25CT_S>0v;YRQ0MN-rKn9+n}%q!sk0hOr8R$isOUH&ww#=Odau^pFd{!gQ6a(d%T8 zR%VE-K_HbDT?C871*s#yE{UxQza7P!LeAJE7^lOW|Ck>6{|Ke86E#7siN`+uy>8Sj z(h`G_drXs|243EnCZDZRf_Ln=Pv+S}03v)3$sxtK`5WBImDJS`T1rdQo~k@7p5pYi zf0aoNYDRKL@xW-oILRn;v5cJIsvu^8H*D7)N}7!Z=%3$AL6x7sOYH-2r!HM{)eW4z(0 zAAzMX2D$eXGSwo2Ru+`X0WWfFOOYR4?Vr6?M;RNVsZp~DV`^1xK8z=d%ng_ z10@3cEzd49@RonrKjuni zXpoCSi))tcSak@4(ZhlXYAX0qdMI48LwN`m*y}}O@-HmO3**6vYW-_0J`uE`FS zl0|7~E9b=)rO4o_#T{h^)1V-VTf?}0kU7h+6LymcTX$R2eU%eG3ZmV-1uAtD&(iX) zsD)5>p)cy%gz7G=r*_wn6h*hXv3sQdxIWdGvWe$u9w4^d%Xqa87Mfq;!ZL`|+=X>O zENAHS0ltYJS}>4!A13fjnQg=BFp)Gku9w7uy6l#K6`v2ZZ$)*a0^CE|D8%L$ zm$XL4e%<6ZoZhg&rCqy$nPKJzh_*4Af63t|mw0Nf9NXA0*x%a&xaxJMh#nD7SU5A{;Y#6**EVagyN}qfUa`=8u`z zkLBF71YGpZnR=9(nVjrHv|~(9R?WjQI-ofhn?xe$dt~=i5+o^R1TV?Xn7+BI%)I6LO!y~~C<(ZJToKbtbtc+^vkn_W zNy_xUWoq$K?%#Tw58BZ+t=fzPMANCF=ijzfPNFM)mwrcv;g{#fhXIKutM%AH=ibML zLqsjpgEoU29synTVKCRS_^^S(z_EnNSzcoScCOm8TP8!t$#=UYk|}0s(Fsc{vemr| zRC9m67YA4K{oW*@F{&C8vY`5`K$_!+k;eEhK59vjTt72jsk-U+WJ%mItOQ_5l^S3# z(}!5Fu`_9VA{?T}2Vxz=XCcPJD>~5b1-}LyOZ0NpJpVOXhV_p8T#G5S9)x&E_6kcn zZV4gtD0i8byN|@;Lo%1=AUgysX(M{`#bd`UCd4f6r7o;^ZMU6Wv*@OzEEd)6=Q~^F zZgx|H=)GZtR@LOgd-tvz7Uj#2KI2EvPu7}?^a;hp51quXopXcG{2C{_P$$+e8eT(J zTIMg{**yIRv!nIDxh~4>x5*-9y6uN|^8Ao%=tK88v~bR|f>s%%7ZOaN)+2-!KyTlp z+Q(U%D4fK35}WAyk%A)JvJVIZmSXK5T-&maC11?BjfR$Qfpaiu?Jk?m#gtHqJ-X_^gZTUM8p2%wmFX*9!}4 zIayy%8-XoHU6*COaQN1F;ne6ZM%q=-Vzp}&KJXA3q|g;(xUu@)#GWiJaYmT)eY{;a z`sIEOj(Gq-hp{-MTRT_S&u)P&k=<^ZgW4E{lLX6wW?g46n_D22NEkG>JqJ;9 zz@@d_)dtJ*G}e(q?a-EdxKfRuhxm{p%v6M;U*%lCzD4^l$V31F78d?fOTe=lZ|5mF zcu^cDmufH2&dSTCSnwMB`2{`SOp|ox_ojY9VJ3^i&PNK_k&UC(r%CX@0ebSqA?b`T z&MK%*T(2_U2c)KVxK39gP)4ugs_}xiC8E}&0HR%ZBR7wLCgWDK)P?rG-X!E*b%LBC zEGUK(SFk9;bg}gKkS>2(KTA*??-45MPAMfrfvI62HMf`DmHwNuus&0xXT!gDW-%a; zzcrmU+5YjSu!aYe^|{`YvP*U4vLQiM z_`U4b7p&QYG-!C?IbqwbPk4?ru$s@RyuPMKU|Z}L`9fGj8~+4+i_>DsI%~T9tljPGSuP+z+I0^lw|ftydun^@0Lv7! z^p=)n79@u5jeBTLdlV%qoiLP@R!cSXAH%UPW9PB8LoeVNEWH(T<=Z2$q53wA&vXZz zzU6KsNESK+7YF3?w^^-9dAqYV5ck-1h!A31!PX$eL-gUTnYMu}0deJb)AKz7^TZ(( zX%_uL5Gz7Ezz=J*MPWRIMHZ^{2Tc2lN=k={6k043{-0#Se&d9+vEwckJ~xu@=X`HE zq4>n)!(;P=PRNo#{(K)SlgUx6*@Nx!`r~-ZB>|H6MnHT2VIGYo4J@_7ll9z$%0Rlk zjekva0*w!?lxD09YB9!S84AoIE@t*>n9!d-DEKeUSQk0#ZKsUMq$dz14 zc%R;yNCpn#*+sVe&`Xvkpt%hWz_DeOTN0RWkUs_QKVc`96-rtH6<*b_@&@=d<9DEl z!V0_0k+I3}2VN^zH$RC&5zc^DSpkTe9;ra{%oSJ|>LToxX+Nw-Y}+=pk!X%WVAM}4 z{R$U&Waw2fJ58}nxq9QOKx?%~s75{2wW!OBCBOUDTQdG#lx19TxW3Y$3H$>9yWXeu zvpcxkni9=m%~JIN#a)lK?{8S zlGS7MRy(m?DP4j66oJ3XCt-}yB`mkKk;B4em&glH+ZuC z$GeZr5j!(FnVS<*oOAq1_@QQHnMw&|4>Lv0ZK2imD|##$mZ!I_HWe9lOGiC=t9-5@ z)n~VlseM{3CpTY06QyeBn&(~LG;B)_%dj?nl`b9yLKaGHU8_LA^4mvjx7E?65)Kw) z*V;Mmi+;WksTu?4IjnOqZF$pC>ime6p>A5Dy4wr(U8R*FQ_62suhzg>V>K_2pryB6 z&P;>`M&=^`@0MG{N8`k(|_8D>*(InY!`r@s3IDRy4tL1)I(ng>>TG4 zBQgO`leRZ=ccmML<<6^KM-3#$ZuE^L$4kr7WgxfDG-m`)mGL@ExBml6bCX1^4=g#~ZQ`6X6oGZygfgv?CJeK=`r zO>euYO-GJ-iHeGX1&z}jjU_RUeH>;7GUo8gXU+9kI*w;8ILo=a&3iNE5Y@M5PIZm7 zdI(%V#|K)VX5j6cbD}IwJU89tQot=j0se0{u);FGjp!Bn{xIgLkDzTPx`o16x_QKs z8F;KGrA7c_-l}mmgjGQfw{sbG~ z+ZKwEBC9NlEtnIGg)Yr}{{l;YpLF;UH?P+0yIAwA3~+OV-WD9QXRB6kV0m#F=qE!glnrnXI# zsdy9#TRw6QglHTOw3M1uOi+ge^2E`6;+*@n`iXOlWaKm38BAaUu5kbETm6W~_E-9a zTa8t<%`-a6F53N^arKTm;x3wer<`$j`w*-hOLAy>YkKZh${=a(mSD7L zeuO#0m~am3>#7HwT|XtOZ+%?{<_X~7yu zY+0ZlS`hKrC30_7um;E`Io#vI-rTh$4KgdpToO?c_gDiUShzo0BUWl3Dj+I)+|*(E zHE^zhvRx1RoUmt<+sV5NG9D|*yRC{?fNU^V_Y6=r-;w`9FeuCpdq%~2N#r>1jXSJ3 z@A2e)QU2k5N+o6G z1a>LdPBx8=isO)^HZyRPZMEGxRrX8g{0h5^%{Q(xSjlD5h&g|nZLU_+%K975Q?TNX zMRS4|d(7uKejd6^Y^LMoxnBI{{JGe(+e#~IeVcIS_j^N!6U^5WT@8>8jI`1XgzF^PNl2@2IZ?gbZdCl%kxpbR^ zIlier#k^zM+7lpKpJd*4-9Gtd^9{XO=H`<$vlrEfEgIMerlk$-M6EL+hn{ERp&NPlHPxTxy1aYm??|1oWLV zY3){))d1~4>lS6Vt;B!H!)h|1j)ql(*%-v1daX`me<8c8Z(kIid%b9jy;-9wf&Z+a zu7XzC3`Y}xt49j5iuhT(A;R-mV()&U%N98n^l+C|PC)hrY-;1i!b2p|mg~vFLn+U6 zKk17&UR1(Pqk1vla7XF@HcV4~!t~DLoL{uAKs4KH{x9^0{Oh8%O`p8^tS1!B&tT;V zQzS)k?FjSTY|AX^@Y433+7V`*47aDfij+ODSgzofwEJYxblMXUk?shq zcFlX4nB=VlI1bj()-|}29lP4~EUQ8$-P$$E9sQ|WPiV77N?V8VBvjG#KQ(^Hv@aqe zkjD%L)Af^m4{i&TBA&QSfi}0qlyZ@UJ!+MSGdwk4>SjitDOBotz?s9~$Emgy*AB#w zGiui@%Co^LkndphVKF$-H3 zo*T+KJW{xI?B{C%%&g$w|00Q3~FfW8sGj}P*v?(!{H7O0cr|PBw*O@RCbmntKG~zFn2V7Uq}DTC>jm}z zlKkO{y9_W((tm?b_q4#Jx5c1w_z2;;v5*^f%fd@X^b=hqnN3Hn5}yZJw{(Ifm_Qu< za3Zd9i-E6;IeQm}-SSv_*}xbdOC1_qdMidt-s9)_hUNCrP|OM?prf7z5cvMg5p3Zd zJK)X7TIchSQVj|_S^r}c4hkzB323Q19G-{wEr-16vu^nVP8a3ZWuGrViy%>}XNlS1 zN>r}p=#u3aNU54sFT#wgl2mU3ze$-*CTS{qn(S~f{qz!&vnQ{rasd>$r+GN8;iW$O zO3e1}-BEnpA3{u?9Qa;PnEJ05YR%z0n{tuQ z=4{!jS)Ar@Kw2eyAfi zn$hcKJ~dz(FGDGI`fy9PA2MXll5G>F>W1SSHe=3WfVWqB_hD7Q{!F3^FQD3%f((VJB)c9?X?vemKAOe%I(X%kbA*npx%_4xILVTZ zC(K%h56#m1a6N$#0vPHcb=v$gYuTE|AC+A_+=Fp6!Vkg4nd4&BKv!1ue{ouw9 z=)f?!{mkhHVZ*XT-D`aN-_Fs3Z0bxbgKx2y+2nRJr`gL?>L<)3{QC%f6iH034|vVZ>8OkJH6#z`$?$ra7^yx!w*^2L7%H8Yb+~mZSHqoM&?=(Pjhpg0JV5a zdp=9~%-zeb&v;?9=*h)EOlEtNOMv!osED=8%yskx(;+ogYI!V*=g6TLuC?ur1lmvc z5|;z3ed1lImHi#Plh1(mmT6SVBW_!=YgoIBJX@O!)m)?758&C_&vZ!)y0vyDLF%XR z95+Tz>n$S(L_`2~@mbx4y!sgPUbHtyNpA6ob&e~ee7=i;Ckj-yGC zTfi(pk#!78;><-K$YV#JI8CQ$rLC~e*%6?wSDQW5lYnQzm==QfSG@WNIq8;kVDFY$ zZz4`MMF{qqcHBIR-AtOq_l4~XvQ-OIqxkBbvLA%R<=jW_&cQ>=y%3L>%;p@hJJ>>R zH3Yjy3bEiE&;56nb42XU^s^hzNocSKnN zwAlP%bS#L+(}56bri^A{jHnO+W%Y> zw(AT%jXplQ1`|vxXVD)8mkE+$P#rnPPQeNF-g(PnpG;XhV8f_MFE@a^7cABpPUD&K zZ|AzI9FG09O}S_dRfplW)XLOCuz`CVcd2)3oWraD+V!3Y?h0{zuyq_cQ75SCYMsdD z@*K<>Xg8!JVcH9rVa%haRiks}DH92H(XpDj43ifevK7_^4$T-77+nm2|JEz+5F$2r) zUt|VE$ZzyMfLQ+>;yR(atdm&2`w>elA~~ulW(5vF(-fmEj?xoT6U!fY-RIHhm1V)q z$K}g0v(WBiQ!Z<8zyRG6#z$e6FfE;-y-f=JSNdW8+%#HMj1t#<>w9n)%`90`VWUX4}WDV z-nw!)1(S(E^@d5+wbTwZN$S&%(!j1ej zMF-7qyZ6~7O)0mmOs%FO%kOTDFC?4A8RPu*zQe;Qvz=sXYjiBO_89{JDma=WcqC#+ z_Xi@cMYshQ>a1RxM!A(8f9w%d%?`F-`-*;a9)}dh8ic`d1R+g+_s)|1R8dO~Ht*t{ zj}ubf`xKoM`W62YR){aJk|zhmGCA!SFvYmnOMSrK;=WM~!#NwA6{cQ#kJvnCjeYJ* zi@1DhRX+Xe!@Ys7jDYs9Z%z`voI?PL6a_2-%V3N(!XIu;Fuq=>4nEvJ25)>`0w; znOM;C!87^CR8I^>c%Q&!+wrzGrIk zQto{qChi+!7b5o<;DMF2NewhW7fJ-*6KgXpsIfb-?kv@Zg>QaL2n#<{?tj~%$xo6z zXt2Ae4^u}}LU@U;R7@bI*@E9i?0!3=NXxolGUR-FM2J-%XUStk@OFkE=-!iqc=6rB zqnN1Wm-2i3RQX|g9J~X}x*-0BGjW#pR7+{Ds@mOrURGMc5N}RDjSsYanaj8UQKPwe zTz~@cbxcKX#}Xqd;=?pcm+qTSQq8$FcEFaYt)w@hm)qL#b}Ao5=EQ|{Ps`b^+6j<& zC5h~RRGZnAdl4<9{XYO|K$X8|Z7KlMKO30SWe%qLs)2bnFl&QAh_Mm%a;q-Q`|}!S zgMjx*5!xkADQeHr0<*m2;HA|{T4%nh8Q2Xx{P;=L&uIC_&`$4ziVbNAWRS4H{07VY9*8Y^y$KFx`re*5 zA(@+~w;)7zWxWLr+^SO87&U{hJ&w5F23@;azuyACOA(f_-vY3DkDs?7l|i;|NtXBC zg7ul8Wd0PC#MI2PoJ5$6 zoC(cdx6~p-b-r2$>WFFJy;)F)*z^ewofVoo;E-%=MHdebHN7qnAGN8{h0O%(0}E#E zML3PfbdBr&d1)`V$`?K+m`S4rR^zUCj1F%6b%E7Eqtb=z7K6SE%wB;h&PDFH4%RNV z1?CRHeNW|xRlmsPU>f8G=6K!B^8#OV3E-yrATaY?@vfNtGh+U^2Bpp@CCtnRSYrTS zKId=Sy~gf<>R@$bfc-W+Nr3@PpKh6pk>Do#q=;g=A|2oUXR(b~9Z|Z&ppYC~NliwO z6i%HZuUyY+;KcO>E|WhPVkS7$$*PP`n_vzikl9?g^HHqDhXNpv1W$&i3V<$OU^-he zVqSV4ZK*IYH3e*tlmj{RO@^B7j(<8)W9LBn+p0=T<(+V?KGZXn@uHv1{PqlaQ#kn< z;rtLBe3L#{jcsa~%L!(Iu7kB;Ts(S!VTl8%BQ$`@;fcFC7nrXBs>lmu)n)1KcV2zq z8Uv~>o;_8@Gf+UlOGP|iVom1LXyp(t{$q9eb+AVL!O7IPI0rd+WAPjfY^<-;3t;8G zN_nDau1a1u6Za0pk7&ZV8kl7y;9w*GG+Y+?HGob3KiHX~W^iH8dC%z9>IGh#O;fyn zrEo=p8MHJo4~`)>{)WhUw7JBVV#@&@%-W0H7C50_zj-EDYbxuO6B@_0I=n>8m#JQ> zygA1`+}!M41&_}txc}O&8cKb|T(ZD@7?=T%9I$67@f8u^VApz`Pqn}rs{`w+4Xoo% zz^=_M_Xd~%=iX!|gVp^`f7NuFbs}?k3#`J70+kj(Ib)!lFnBztRoQazZm(t^JOS}#)u(HojHYw9uJZo~;aGC8S*Eh{}^j1G6sR+mnK|V!k}-tWo0icv2gU z;j=i`oqfvak0(|3X`Ys}GEiBT)WM7Gwc@EsVM;&u_p(w@4CwSI`NzWoih zv(N&EwCyawgCnZjS%9?%^syGE6v}oMK&KVm)&i_={ugUulwA0>7GUkk{xTO=Q&-Ys zF7%z?+g*S=6Z_j;fOVqV<1Tb2VLh22htW&{)OHuFoLKv^7rg9V_5w)5n8L~GqUi*K z@)rYa;3;--KvBY2Al{?w)b<%V2rnOx;TqB29-~UM2WJlkVDdKqp8-fgmwoy6G9d5`JEwKt>Qhh5=9m7 zktZK3JKj?}SMRd|J_B>u`75D3LLFVv){gnWU2auD)&x!t^H;nV>gl@Hj`zs=Y*oBx zU>)97@!kY88(Tg~G2g;9x_PUZkG%LQE8e@eF7%4_CdgUsuV{~)++bhPo`VO&x;xyf zQ4HVZErookaSZncR%QiEFV-sFGcfb<2~KbW55^DQzMtQea(+h2@#}%h`46Qy4M;(? zfAD743EB;&tWQmj&7#`=yG9B-0D53WTb&eB3nPF-3*x8Yfd*P?4B-ldrvS~O zjpWB?bF8agv!HdPk-08&gu*PsLY zP@lR%s%vDaISj~;CGaj-y0**d9EEi`iw3g7OBr&Y@f)P6S8D?O{*Wl*b}&tafgL}A zQ05#!JPAWF zuBumxGXmVzd7nYekr`p=n_SmI;WyvbDPAD;5`o&+v0c~AL)^8oSc9>P9K54AdIM{| zRy?l>ZtTpjJNiA{5=t$LBglM$2}gjEkrXhPss}q~Ud6_Lu2+)cY+$FA9OB^}%m=xY zp=;`=@>Gp0^?_gDU~{C{7TIv!#S!F-!G~r9U ze97{}ikoN15@jTqPX&`>%2jL)tOl!h#k@Wv=J~sr70={sTg+gmD7Towsc>S8+0;|< zh#9vSadx#bL20J-H{MfF*7o?z$K{FXDA)@7?1 zs1poNH7lfP%O5qH>ae9|5W};+)eKH4t<(%2oJ=V-lbL4@a@ErtlzOV!aLp-^t>)T6 zk)>v`rg=-v_wy{UHWnoEY~ zFlrVEsi1DzX;J3xYEw(n>-T2N}%x6iTz z>SUwcneM=)e!Fo2?>n;;0>dN!GF@f!Vf5(0J0mijDgq9m(d(?5x6KR4_ubSH5HnP5&v;wv#T@`IjnFLk*-Qi4{a>5#*8H+AxTn*?7nkPL2D3uDC+CBli z8z^RHECA$N1RPrNP{lEAzLk&IBd2mfGvi&U`e&s2Q{0w!noMI#aV;>b+y?HfYKrG- zUb(Fv6$n;j2IiS@2_AO`HWLcDz!bfKCnQ=)2-CwwHIFpl;xh%v4+0>3T!XCVi)5pJ&QNmR6_4d$ei{-?J=MeBRh+p8m|}uMUl5vk><&%_`Cz8T zJ6ZWHA2js~%uOK)hCoLD=Dyy1RNrh}88XfV4r0^Auq-K!jTrEqs61v`d9(dnE4p4ug*F=RMolxW-@rP(LiIYgxU+TcV67Dc>m&>?XOJFYT$GAQ&;9K?y{FNmEmCKjLFW{hi?zFH#NLIqv0PTpw~|!nAQCbR#_fw%ou@p z+1_jYswUvT!7oFwY6X>u2UhWN*ROncJe*d)Wq z!YC~3+g*S;K4oIXk-T2EblVHlk@Iug3$W4Al)ac>S4dR$0<5s*wiiU2;=bJln4g6# zXW=UDjah%qau=q6&cO8KKn729n+q@t6Qj(<0Q1Xfev5|RQ?q?00BS!3KsBGW^pINP zwgYW}sp@WEj@;DBtKPu0>A&j2&|X<(z71P?t1qmF^#Lux)X+GHT0CzY=T)~f?I zjvj$^`Utq@WS0)|1}hPHfB9R2na2sRF|`g>#R=?+4AmN)rDpo@WinnK)eJcE-l3g9 z`i9$gWjB5Kuj(;q^X}to1IQ8>vHiIXSEPZAz5g^^N-(H6D7K?pCc&zI+=aY8!JV%O z%zQJDZ?5g47MR}UZ5jJ#Wc>4iffuFpkH$Xk(<>XHhXeSSbB3SsLhn;qdNme1lixsvEX0-l&eH1$L1@vG zrRUNlb$Tj#X^pt*urA$}MiAsIDrl2#uK=Ffn#xm*t|+~UmK$i@hn8^S2&nV8jcJOQ z1IWw)5WZBHIu}$^Aq}WB9dTK;Tm|zC88ZFT$!xa@Fde^=yY1V-5(5T1i??O^C!FCo zx9X=Gc712VzVp;hXxCKWH^jLonCUn&ZOz;MtCixp9Zdhp!J7L7=9WwG8XG)mDS>xu zB-SZK)Y@Do`!5)d&Wqm!Si@_?nGR;@%guWxn712{+j;|wm2_f7+2w}~u(DdR|8~pg zaxI)|QfU*fEHImcfzBp5;G$(L_9!r2x|`<+*?-e+uIYC+gc$TSI~kHVeS?W|+@A1}a6$8E4Gg5~Fg0hz4}ptc5h)BFIlwZc{KG9JGs!PcJD z>VlU?arDmYS={qSJ56od!6iE-qg!!V0a?PeHqdCIfte>+U|xI%#`;b$&3a+20&+N8 zK1n&O%dgGl;JAxuXdA~A*H}G|v=hEo;N;2v>rDG>H~V+IHM{;HewIubRmaarRUJM9 zNw@C_pJ}G(e!^$Dl-cU=8F6Pl;j`2bmOFeV12QXLqh~TAZJgkljL0=Qc;+%9eF06$ z7zuvO6FVdBHacih^1Iqk;7mQj)-ki90Xe&r;e^fRq6_y#%_eW#e1c|Ere(*>RN9mC zgv?ailPf!71~lGfCs?N1o+nl&)9W~@d3Vt+emL)7*`hI4V?VJnH3{twm2JtO40~c_ z#XGDzRCZ7II7Uc@Os{J^QL=KWvcC?@DUA^Obg%k%_Nx6uYSl{-(vw&dHzObj4HY@}uL z$*ZdR`^l>kv+BvKGWj3&l2}!?-#fEv!1n370TM5OrPf6y)a&F`iJ7DGs`)S4SSPDW znA3sxp+@^E{3WZpxKzG6t6Fq$BkIYjCLOEjtm-7LK}^+}HDzil-i`9vx3+eHTD-&C(|a7 z(Kzp9nu9gWLT|2wTBkHd%ucCou{cxTim&{Vtqq|@lv z-v)l?)Jnm^%d2y03p`mwbaHB7ekXVPLxQ-Gy;Ev&iy1k&Q)(*4ijz(Q`_qN4Xswvl=?HRQJx@9U%nf9nj+kIp1$=zf zeaFeL`rDHFkU0cka&yQS+M~(@UNa65yq>lAPcgQ#*kp&O8$O5?`pD((m7jkc6WdL1HqjSE%DdsNXSf`j<=%<)FNjdGM znA^Fus%yFN&b%h_)N&JTuCC<{VtRHh_afHVPc64}J5Mcl62l9~*G)WGaIch?rH&cz zT5e&~?pp35*0QeU=1hFvSY69anjJ@0uaKJZyOKMIIeT!nhSf8R_)^F{xs)F_&V+ww zv%WQGUw?qsP+OS(txfOFTl%)T5`P`&AMVur z&Q6VgkR&j_6$aY!1g4FiEfvH%qoo+qN>l%1JUn;1KKq*M}j+^MNzKv$+?50naGRrNe6e3W8VxMxWPad)PQwaBI+>(2>e zHMq3PfZZp-_gpSYPL8L<;#nu@_N*rSX zmGmT}Wew?oe$9Yh<|Ge{>fB6$LMS>aARt)Ee1mk6`YLVa|`urmjECC%mD#66uvsHqNXin^Q zQH>jGmEc9pHC|MLwPZ6}C73=D-NjZ3-o$myTO~M2kb}IunW(xyPVgVdb0(W2lQ&_}2|I3}$a==R;(~lak0p-iR3iZom`7~#g-|c9uSD}qYi?xXA0Cu;Do(bX{_31C_I~H-g zvxqgDU{C!30m5M`7?*>#+Ha*aV8U5JQcyt{W&QT+ zuAyQ2K(xmOE&RD8%{r+rBic1VwhhFGbb~mWL~|E#Uu&#@C|7_=e>Y&j(_=9Gd76W= z`pMR_rj^S@a~ddof}Ejmkk=B;ZKRwasVS1eMQem;gH(=7`nX&n|9uwk&t2F%@L0P4 zZU6Znnt8tQpI-YftocYr?Vq*(9{hK{;=);d{vFotpLOi|=!g7{#rIZd-`2j1&K1-> z*muAy+8%$9qMtv|{2|(2^Mx$NLv&ZNv*?jTiEKrQ!P_MTcK#trwWXf4sk@iNBC%ypW~8&{(f<hS~DI%ZAV+h}YV{Qu0!lSqRM*ao7SfZ`YSu3CGXN%oOI;T^54tDp2?asZv^( znSp|8KDx|8PVNfw1CDa^zAGW2eafvp9#Ef>pe9W z%3RheQM*w^o$V|oaM5GGouvRyEN^1=x6$pD@|6M@d;)G?X#$;AKXF|N99$+w8c@F@ zqVX)W%>sNN{>buXlcNM!tTG|Y9-7Unz@@*AOiEqr~za{SP`!UGSzd* zO)4O>{3g5{$eBi@3jEu_Jv)R~KYQcxqgE{-c4svPZ~{%Z3z$Gs`2YpTgk?YnwwnaP z$GUx_2^c*1i6ch8FF)A2U5t;nXntpl#=9+g=@GkqmkA6eF^E1lFnQ+_M}Q_fj^z{C z2C|Yzr~^uMvxAruwDDr3xa{Bbd-{&e_Exo<{hxbw+y=w|z=`YtgH9uH7EuDh9Tfsn z_29&efJFx!D3eL;XLEPB3CKNa#MyrMV5Napq5>2rJmo=TCy3B&0P$X;F%ral#1kiD z1z$wnQM3u1g`^ zGJh!yccA(hPPD$uX*-q=OwEB(q+b^gmZ(L2rvegGdM_mk25?h)j~Mu(hbo#k@tOuS zh02tMD4=r(5iLO+TV;0!V*q)i2Qm8&7;AA~b_N8<%JhBGBP_bjvQD17JkOuUVb^!; z+_!4gckztm7uP7@;8P1uiE^stZUAM40-dEy;u#an1IxjSnHDh5`7PeVz%(3})FHEn z%&;$Swt}R7ztXif@u~sd>I_gN%f@@SgjKZ^P_aY` zfBpbKQ;JvJzNQi+Dc4q^ky2h(Ww;+-KNIFrBIWa)?c>%>-7zW3kQ+tjR&*%zd9@ zmf%foNw5rHaYWuH*>-W&=(DUO9e*YR>Ok9CS{{9vk=fti;LWE*oOAYZR^q*)&$D^d z>p$Jh`JK)D))F-dx@H*f1UVr&UF;TMt_#zKJeWC!YY-U&c5&?~hiJ_WcC{hOeXMWfCuk$u!JSR{IPBxV}VmC zFmXFkbF%ALOXdMCjhz>lgEwz+u`AxlT-3aI4lswU-MERtu%tLffHja$e9De(E$*;h zd%}q~hkv?_zvC$UAC#Vl*spA<=j=-RA_eyhuH7C3RcsSv)4tfNdJAzbHMch2khZi)|gH=e9l` zrRTOzqLrQpSo`QmJ-2c5@maRNvkB@S3U~T6?#i7$tnH}6iF3wLg%gjoqYBrTfpztc z(69Z7!s$9$`&AUKuN*(3aD62`qHuj>t*+p)zS8m$h0~1}bwuIBqvj(Dr(1LES5>&a zS?7_3)4e=h1}|drv2Aak#c023Q|KY->Hra56t~ zA5k)~d9*CqZ1d$&h7*rvM;We7pnPifsz#ehc9h}TjPfH()@IhD3?~kce~&C#)_0tZ zcUsB6PGu|lZGR4J4f)9e!+3G z2Uz#8codKU_QtWmi?<$`ui#Rx$+;bsxV9A6KG|T&(ew=)V5cJ^UIQ3%s{4KhtE&6C z!d+YKX0HXNKU89yU?ub(6X8h#*Q_=pmXf*Q$I2kfe-keo;6?XaoU_0zNI1N~=w-&mAo#oWWM*DOpf5&5bE1&%H2k2tE z4Q6RV7u!wY+}_o8C5|<~a+t&x*7bHFzOL$my98hN3CP#s;R_EU8SE*cG|>`pw#Jau#4!h94O0E zgeT6(Q-voUI!#U`p6=tdeqGNW?&I$`OYiiPf4O@KNT-R{8h1oG&hNm$YVs0iEb!v1 zc-!otbm@2OcT9SvXx=@v9hhGICGCz%Pq9~m`EP~G1Bf^5O|UyGJ;gDq1Jg^q@(xU= z_a5uW^hmNoNheX^Wm;R~4o&CT#v9B_*Til>jaw4VvA~-)gm^0eP20oHgVgcq636QJ z^cJoT!z)O=y`R(qYuK{bW_5^qiPHvHnc#C6bdY-XVX?sqFN-Z49BgV4N6(m1tU96( zqyRIoCEVkO$Nc$e{2gEEt$OmZyU!p?or}vE+IVE#R{#UZ-y<;T4^j0{dvZ;N{(%E+ zxQj;XXq80#UAIb1mpM&A?I}8X!o?BF8%v=o%2NM0Fg5w5lpK8|>MPjXApu8&nOb+Q zf~^n~-tgofH3pZ@l-_nT8d+GJtqVE*ep~v_3rj;5z~+k+r53b}k1+7oyS&>rfvzml zrcqMBP;Us+J{d&Soo%Iqfhl!*R`8Vrr3|9?-b~_7NnsAAk*>jmLA=KVs}c{aVOwAY z-@)wcCeyGgscl{bWP=7tX86$K7GMp{26J}N24icssWE73=hRy5kImrkcy(_Dk~0+U z2rmiCO79KCZ<|!*QoU7gg=6o)udw{MgeeU~mV5qHp(%>~m+`iCyEq}Q(hr!bV!7I49Li^ zD1CPiZ;8#07?UYLSuM#>Da>i7i&t!BPaCh~3)k&kxC^r*SKZ93wUODKya84T;OXTR z$F)u~ulO>1x_MJ2Fh`nci_M;XUNDd7XQl{!5Us`aboGLh2gzya6=&|#(<>fkr>Pel zcblfUs)M?EeEO~Ho<^pq; zvx(zwpx9gFdjgGp!8doKL)8!)S^Fu(m;Sv3UcgM7c1VdqAlFjmy88-3xD2SY!p+HD z$JeXG;Tv3dz1hkYQ}UVOVFPU3GT=N7zG}p>PGNBCNea@1Sph5#5EJ_bN~c0Nc%HcI z7clPMr=K5FfE7bDHVZu_1eYPr4Ia_fhSW~~2co)#vg4oXjnSR=N zRDcu9H@ld-(4I$4wcxeIaq^$^1M57iV471mPfMjt%bP2}i{8&U55QYN7jY>)I`=$> z3D~6;D~{;=r%aD?Ac2>H%HlPDoo63zSAhFk@xAjl=-cqjqtv1PAL`!73{TPhAo+ zLxZfsck!A5-ZX5$vh=%9>0(|%YkLo{$?cLMJb`>_6U-aK!AWmOyeh$}HvtDb3c>UV zhj_hQBoV0Pkd>{sxB@s6-{e3aO+s*_y8Q47z#|95( zVA>(+>L0d2`f8^o!N~^Nc4`VNy;gBmfQ#o+J4LQiohw3Ip9Ws%^&PkGor3gVe**B( zF(?yi0-fHjuzZ7+)dw>}4rB_Ds5=f!Cw+oLqj3g zyw2Qwli%-K&cjij+3gWtHF=4gk&!OT_(GX_wRLUE;m z`2bsc91i9VpW=wE;P1#3FP|OVm2Px{Sz2yh&= zaj@C|dO(`+TGbQMI=VbsZTv)^kI;Arr~PF{TF0-)5gP|<7q{4Wf+d%E#Kt>7?ni7~ zJoav}aqsZ@Xr=K4+nHF~YU9}f`W71(4PTGgIA1+?i;XkSpzr(<8xKWE_YoThuNEU$ zCA)YW)uk32=cn=gh>dqtYJI&$OU5!G_z*@=;8RhIxOPTwjn&Qq}y zEAhyUEAL{}DlZ#ctRDV#ZhW|xzvElI6>{E;pEHi1Doo$(Ukjq{W5?uE61(nS%= zPU<=4LHl#IeOxBqr#~U?aWbJ2a|0XQ0C3V+0S99};^{7X*rtOi)MKCS$3Rs=KVtw)acd@~e0&fq1+FpG+TvPV% zjL_*}dw?bLCteFkBXt9L!2?+b5W;mCm?q)`o3^Va?T?%1b?jg75zEeJ4xHd6jtQpA zY$dLJ8@w449Cu4Waf=DpRlxHBlM`jZ+zwlOuJ2KF@Lg-QT=wm9^3;PY`?j`tUQ;G+ z_;N&gb8vyZJj3&ilIl*Yf%S4q6s3^7^j5^2qDcKYEqdm(d?dF1@F|dEN39CxGk`<3NOtOZ*e$1+d}@Vz16fwQfYPhh$DpQx z4J^g2oW_(5G1c)lmB9v1Rl4yQG6OEfaHh#}yTucbnN~|6a4V?IN1Y$VE-W+0y(R$L zrjvfu1Szd3sU0H#rr^)I@Zvz{Y_MhYtwEvsK%P|B0H!>JrP@;9)P`M?PqvT=aC$5b zT2FeHo_g@DO1;0`;S&ruv7W>fMQ3%ssYWHo0u9x6R`QR^iI#44ph+H@uKGn}Z~tHk zN;>F{H~hASKHZ}Eoh|wgli&L%cyyJ)%8VUdW&H-?=qmT`=g;i-P#R*N;qT(>41Xu8 zUh_yQ_qUQS^E&h2`@4Mxz=NkO=pF$t9_eQWeD51OL*T*6l0H-5wdsZotTPF| z_vJGLUP=4C&JcLuXU7_#n-Ge2ENaWd{I`;`$!qn}QYMSwq7@>RRF|pwqzy@>~Z_enUb_2NzzaIBY5}6vM>XA0RYJT}vw_ zn9a$;+76s}CDZ;JVBYg39#fNU%u;A;gPmPWV&4O-$-?63FqF}-^`*6}1>Q8O#1luT zO@>@kykdcwn;7C64xUPqiq`XDz$&%?>lKXk?MKr9Y>HI3rU7_hgZ`9Q zRyEciNdw<3O?woU!Nr)~BWd8wi9Cu1K$-+`6b-=2dA7hZIlw;!mVHZ-;|MH+4ZK=l z*}wz*2rPq@O?m{Dojyid3oH*XKjIW`FYuy;^dhjlur~3UM_?JuRC((wPhikDJNn9C zXVwYK2d==HxpM@T!HTDg_hn!v()@?Ovcz(7gHts+>TDbHC@h2Z59o6w8;00c1_Uuvd>d4ShzK@O^#iQY+ z$dVOUop9ojepI|VI^{>ktD{$ObiBk@y(-^#xV;L@r~eL+oxrh2$Ip(ISBWiv99hs2 zIBP90a`9noF|Q@QJdT2QYMx?XXj9lCK_-77jGvcRl7IT4eV_A;T~LgHSF z%=K3Hst(8uur7CTY%*SLKS7<-gBx>n;AgeWSBU+R$VO{*Y3@kNe1$mX0w=h{my;Jb z?$}f-ecd!t@7Qu*6KmXM8|?f9V)F$)pHdwmt@m}a@e?T1-k~+W1;5I~e(hHLDsY|I z7%lsi9l~3!`xW5D+o*-VZnlh8{yHJTpJ&>~hjM;rFSqaa(_EIJcHb&%5N8%}s$J1| zuMsJFA*{^%$^tPZci(563Y9Ed>ML&&SM`O+!XM2+)O}gj<{X0>eWfO`aslHG@Tvcz z?_)Nr;^Um_nw_KSGSrQ3gILpnrH;SB3}KrCcoJwM&9)Z0!jJPzjzNK)NM|x{d!vlF zcL47r)-|9B82Vd{#TdZUdFYyH+4c?}0UBCu4Y52F2Vk_Z)Tc9ZoNZ1~M~<1IHnuot zfFXvq$5_q{%r@6}S!m9dtU0E(_;j_c$5WNnZNR+GZ5CX$rHDiRS0L)+t@<6$?wu0z zFN5By?;^4ln9fA=2=G+&{&5)Y@}5)PF6w>!9A%SS8LBP5Y=d?DwtHvb$xS3)kzo2# zTb%puX|Q_v#) zz8YhL2Us|miQb?9UVpNlp`jsKyJmv(+`MT6=zIm!zUx77Cj9(%{G~Fik(gK2_J8YM zew$~aTJwwI!I@TD+NloGc9-@pLlI24ZM%Z>Z&biEC{z2QW@>@&N#A4jXvV#(kOwZ4a%@ zRbUD#0@wY2$phVl<<--2c5mhR=~m9~Y~{DAZAy!tW4UzOuW)g!C1W6SidRl>P{#yJ z3n{@oG?v&3%r3^}^aa-3ZSgu*m#329F=RZpLXnBh3#=*j;-iPOubbxtP8I6mM}*1}4*Yz;BZY_K{hZr%Y-deP!J$<7XX@iMYxv^6OdD_dAFx;?jl;vI@OrX0$t~(@G{m zi6>~$c?M}Gf|GwMo}$1^07rq_w_uv`#u)*Wcurs14tAb@;@k$N z5NGtopNipFPH}cX#Y^%)Z9EJxBT8gi@C9alxQlBfmf1&NFpD^=Z78`LRcDf#P6`*1Js@9gDw9?Q>%5y*g8y*#T5=l*$?Z+G zzKTZ=k(EYAMIWpaoUDBpS3204(Gjl!9PFqQW^PSIz1+m!Q&j63V!fq@GH`t@Jbi*5 z=jzzti~by0&#W2U=M+Dp5Vge?K&24+;z}?-(gwR~6m3WVOq^cNZ20O6&}xDCR_nPy zO&4vR3l@CIPz$ZsFTd%t%^c$^o7vyi%4Mp<#a3xjfp~yRN3Yl`!9(MX#J<6Fw{EtT zVAXz$#~xq}9Ti_2n3AZu-;%wfSemTTAo3NgjtlWz0cMeWi1S~(RPEX#zsMXV8scjQ z*i=%S>KSn`15d&^0?5$4wzk$h3TwaVXOJ0+moU;Prgij!YP}S8%rTRrr znIhoDBMZy}Ily<+t}jb4p9%*TeJ8NGH^Hn%BJ(20-%sxP1Zylf7_X;|WpCMteh(=J z%d`^jF~N&x7+8H};N*k}a4;zcX7Gy4&pg3&G6Osrd#Q zCtF^?ybJ6v&i|*I_&YA&JE87hkD(@?+5)rq0~jyUT{>;VNs|Js26ixPbnjXX z2QrP7;xPtTx&U1dlA6cr&N;0C4yxXQhh{L>>f@B*`6fNbCmHr9ZH z9X$IjRkVY(;9G(D(>gdcBPoYm9Izxre;sBY?&R;deDBrBalP!eD;8*8yRC{z@^#x3 z|HIq4B{`DgSad7BfcbFZL4y0=*xY*w`lMAv)|koK6d#>^Tu~v(9VGF_4pMn*6b4#R zAY~bY%3GT#z;*|u!tgAFw^kzpH1?1Z(XIr^Yikh`l;%f^7zSEnwGJ^s+xF2Q@a$%^6!ZYi8LcnG ze{{sRrjVdm)_TGO?Z=Or0N)F?$0SXP6sQcq58z!P#_5c$BurwBRuMq_?pHfVVy$ts z1Bf{Pv3-;Sypg6`M{i2=Q(^p$&Gy@{@qc^)V(ta(7Nep5AKFxnRKCuZsv#jv_5hX) zA!-p(y{87T{OqVIk!M_}H`Mn37dx7t{j{98>+GhgXg?W!mP&n7yNS`8DXkG28@-ph zqD*`AURuOG9Jn=~k^!30o9JzVqK*LCM`iV$XqTTtIAc~_@1lcNDmUTYM3ZR;WA`Sy zfRG?3Lei9Uu;Xl=T(8Xfud{dFX4ITpfW3FcTPw6er-|&eQRWP#@4WcZW9|%tE*u z{+Qs&Iux<02URCOI)qZaA5xq54zq0Vpr=4Q+}POEJ4REi&&|C$gagcT7fS`)yic}7 zBUSgCa{wQOclN{I?FdrdeyuinspPiim+&RTK~}ButusQar2n)IyFL|R|BeX%FvNZ= z!C-+Vu~bwU#(RIPunAPnOdDd#<*_l^4g=yA2u(7gWS#}|W5Mud7Er2k8)9-c$_^`P zQOwt9GmJ_X#ks98>ax`KfThmYY9tUqYPg}st19Sg#{*9TZwm}ahi?Ln&+hhCoo2cO z7cpOWNL-FUO4T*KR7O@0F{#%~%I>wiph|FsdmCQB&A?dOT*bPv+yUIL=SI`RR7-K+}=Kh`3*i3$H?Cix^U4O6^>QwNyA(wt??d?*Edo=68hk z-)g?32#wiEx)ZEsIi19t;)?7gEPR06{eGJB3(OHs1teHOlLPubYJI zr;@&Nl!bfSO<@KX-B+FFoZzj7(l-rS+Q=@jj2!W*ylK?ZPvRu~b*lAIQbyQK#THkG zexI?ys*1kp++fB+?52B**Q}ck4oy8&Z}QihrCv2-J5ua-vm~$eO~rF^E+vQ zG5=b`Z~YDOwkhaun756A*!S&n&^IV=Cj_zO+bN;%adanzC4M>yp_?t}F>QN$G3YVw z+p8hOR^#?^XfcS}??L>;c>6&}l-_m`z_^V_Z%c`m#(Y~&NLrV5ONx1aCX6Sf0$Trxp(PQ*1qf&cH*L zVgv2}3bl!Ye*G@v25SGkHQu&2m(r;KPvNubj{xls(Fy0{!jb1=K~9GG<6 zcVRj(_;I^z9q0=Es;J%N)Yx6|E_i(WSpauHh`$nVTa$ddXuka;`;jOlw9>jO`l8^w1GnB7>5rwTB*htY-NZv^_4fEUCUEC3bRQ61n>KEr5V5VieMG><=X(2$h%@W< zArX(7w^s>RCAhbji8zKtv)i5M(qp$9N`jRPaJ!|5?TOn>MOObRyWLjAo^d;}fJ=5k zcWe>I?628fUEGx*cbmR|aXtO^gb_bQ9!H~hRr}nYGU73I_nj$l$`tFqG~!|HCF|Zb zXGD|V-ZtWA&+dIgrdoYl;|L#LKTh2brP;qD&Gs+tQY>j946)AzX1RrRK_=PhVGs|Z zW;Jv@=LGZDtZP04%n(J0O|P@E#lc3g($rBs^|z{2#nTpKMe1y7ygc}HXgh;Qt&3JS zSgD=u&L`8D+~P4E%;W+xt9F1>E<66*+F6?rq_?&2wo6^gXW!Y`1BuHw1^T&Id_0+j)FtGFb- zp2WJ+o41UsrFWk)t~`QU_GcNFWOt8K#uY8P*=1ZUxz%M{Ex7ZPae)jpZWWiLwydkT zT4497;v({c`5#qWl34ey;%b4duHq7Ikb|R{X|X>pFaHC*C)KGq=icSQN$G9q0a17>$1xqLg6 zG+T8ClXdu6-Q{G8ZAEuMsl!fYqfp^Ee#dU4V&|F_SO>58nd5E5;(>oF-$pIs+sZ{$ z&$_K%#OsOM3Pzk=sn^|NbS>7~O-Aey-E2l^&$_*6$ofFtt_ECGk8V2~@rv8+Mwp#5 z&<$~P%`0!e9P!xk_S2E4U95gP;#KSR;}PfFw`Y&oBW_P0@i>hdy6?})L#UbE6=;g* z@Y^*=>>0PKkoc+iVH$lV%`Cm;j~PR(a8r@;#Jv&r-%3UE=-**2?nN*U+CpPTK!j+y7G03Z~3)~V{NoJ zdKb_75!bxMwO5?yExx_dev5POYPbcw;@o5znBq?SyhXrw)!iat@qSB)MHRQi_^#-# zKo$;LZ;`UN<}G5rdqx*IH!ppFE`+}OPIjSmvsD*TH;4V$*FF?x|Bf)*zoe6yMw^Vo z!@%^FIaqZw;7y@E9Qb_=>oIYy4VGtDyfztkKMqeZ1X!}HOId+SK^sCG3DkxlH2oI} zRfva?sU;3D2UQqYfnc&WZe@d~i*rmcgy*JT_P8}=kel!s3+QSWrJ2_O45}8why_kA z5AkraX4~CXn_zZTFmcQQ=5WsYj#QZWI~+w2-OdxADjo{0*u|!yvdQZp>eVHRIl&qT z`Zg3bX$am8M-x2d5xNaYja!Do8*k52i{h~&mVv7E*ey@-GIb4`KWzLDB{{z%$^SI$ zhPMERE^Dwti*Sm3wFHN-t^f;1M9Z(xELwbpZr0N4#PB+jYlE1}j^vK}&da=IcM)rQ zi>}g$AT~V`iDZ>6x09I9I$|4xxT0EO@g>wUvn6&Ct*j-sy>Ti9ZJ{k<)ohuqQ$?RG zva_q`C9(BbSJAhyu3JSfS*yt=KK^06e=4NwJ3{(v2rlK5*N|%8#9RTCI!m+y$$JG-N}4HD z&;qf5Y#wSyTqclXE+)|`fI$yF@!>7kDBXEQQw}TU!93oQ3RJUsN%8;{r)9RB12?xJ zqU(&nQ@Cryf%L5kM-WX;lDoe6e&+9b^odKs)(XOB11J7<;9b0*KG6N02l|_3bI%4n z(GW&dKhZ5-VS1+Po;&?W@2PYjsW`{`Oz+9o4^_Cs|9q(TaO|gQV%ubmTNFq3bDhGh z><63obnYkX;w6^b{GRUpZ0&u^9rpp-;mUrxuLjYNcl^*WK6}RX9fg1WqVWH4dUh+= z4q4q!u|US%>UNUtco#6=@}85EZ+V$ z7WUq~ZsTFaL3?t;ZBFbeW?9|5*gKLsy18+JgF=3rAB%U|+aOt?+PU8b%8KN!x4&`+ zdZilN9?TsJj&9LB#Cy%|;M_svx50DAnC(Y0(1*h8-w|f}muZi-Cu>~3JAw(l{Df}$b)~m6W@V@G*scE;;aG0zjtWUnQuM9nJ7r~Ie;uk5Do{?js^`X zTR;SGL`$?-3q?#Hz@j-o^yxrpoMq_p_el{CRfTdRuDkjIIFwKDuFt|H)v^#X7SO525_cLfR12fU@4%GO ztF2)JRsXDgV}hvPi|S^BxHwwh^$~Bf#Ebzp{wrQ<_i*zN?_qcTIk-9qug@YL@A!0~<-X(9 z#h$CDuM2zNM2~0JrSx}vyLgUwy1Q`Iod7Rh{tk#2*1qH8#pUmK`NN$&bw|+a+O9jI zUc5)$3HCz2zU{_Ox8406yRCk)+kSk5Gx6G*dm#3@U%!WDo4EEJs$GZI=$YGj*zZhk z6R$hUTywkkeM&voTdb$pbHBwm2-z>Ezmvno@eURjdhVV(E;OOWl8d|3Tu&~4#q>@# zzhc~j&xNbTosE81!JVBhjvaTl`dvwP_PV&+#rJsjyBgo|?Y&y_j(5MS`Hp}WN8}w5 zFSf8dLjG=3nf#AKH4)yB3Gn zI}f`h?9R&;hg;9n?t~+|Be#X|4&=5}wBioz7JEpt-l5*6p5UX0euvmH?@(|s-Nkl? zhKono9V`x3mf9UWPL|m8U~+J({Vsp*@N&!Gvbw{~#TErNDve;5TH3SG#ZTm&pAP0t z$~#{jOjTjs`Rn3V?R!Rh`5^gXmrU^1bcOsTcdmo?}lA4GqXUI#=0J8182>$Oc(3nB>ijkL zS!x|u`EVy%OyE#I-(&s?cRBGH8;C8sZ>14kg@L-20Sqaax|PJFk#+7R2twX79&|f# zg>}aH4`0WpcXEH{PX1z7{Mfa|v+3#*TLPCd@1=p{05jhNI9L$|mQ_(a9k$TVM#Q1vuqr^eQ?a#LI6wtg@Qg6FkB6Iv$?Gz>LjaPcnJX{1ykz zbtU(QxYhy}gD35+4)A0=M?CA!uTfz@d%P!D4erD-4NSjMip#fBW=G8Sr~?-_d|@sF z6 z)25nhao@DPT1(efZLrLhPF^Rg&xqJ#fVtO)cs}!oU*tn^_V0-EZzhE1Z!PZ~cz~DE zDWq502CHnp_09oSd|JG#z--NMbypzIH*3|F-fN9X5bqmqQ~R$x+OaS2Vy<3m&k5!V znqmbmS)0(Rw}JRrqt){PW=+Bt*Eoa8vaHqn);Q=(%GoA>fmzlqoUwqxE;4OFB$!LN z#N`W2!SuF5x^R3g@QG%}(3UCA72u^0jQ_oka(2&OywtvQY7p6Gl7Sgl4e{Cq=C0qS zmV=+7LsVRAfEh`Wo#uN1lkYFy<94)BSyP*OK%PfaxP5}3-XUZJ{n*t$6y*GlAjjVW z@~u|70`m3P(L8O6ZTV45J3_x~gS9<~$K0*e4lqyP0Be4~_<6{D=wD_j_5y1P zVQbYP9x=dj$bqRG9JTx*s_gb??RI!X>+}&|JHa~so4enVjhXUT1#^p^0St;HkfPZJ zg;D}?M4KEAX4?4ST|hNY1?pH3D_AJEW`TJuGl8!O< z$FjV>Bg?-S7(c#&I%3Yzij;u^Y~m`i`raKiY}^)^*;-mBP1FQCoxNbXU9OJj?-Xg9 z)oS1Xt8}h(`+qwfbsBO zCD@f|@l>nG14y$v#d`*r?k#eMa8&z#b?^xePJ(Y0y|?0N+Uupn_tcFwQoJ(248R4r zg)2AH7u!NeFqife?>WKDnrsszfC=$!3uFQvQqu-XpG9e`%xWXXz>L1dv2l1`)oJ!v zK)`>T&z}nO{*Ex$-#hGfq;njOeL|hS58Lcm=M;No2Rq}i?T&U1v1NhPtWi8xhdcF< zb?KSeG0y>BY-Z8{&lK0_faeg-td4l5IQEHn3jA3e@H{-8*%8kKtD>hvp4snDW$1)G zYYAgGIH`t+N9+!JCRk%7#e17L*93EaF0oCr8U}+ydD#kmwkL_#a@UD}#ul6J4uB4@ zGrg;$pTbxj{j?H4YjpTCz^s8Kt0F^eBRc>(`YqY$-#ZNIV%xLhpacBKdRHXW>&FTG znJABM*nasuzu10#o_l+KQoPn`*UxT!pv1dgouQpSDb7uHnengAVWG%N>m=>}(dl>f zmi7WoaXsEXpnF&6aRSAsH`Tv$Q|+&c+x-G9HPIP6v!!Zv%8s|xW#{a8OXljVox?M& z^LA!SHaR-9+`?a-ytBkLS7+`7n7`VYJ8_p*r|#rkex1AX$MTG)m+tE9oq3n`&EI)< zhmkjjM;Ie+0*_dKO~!|?_D$g-t0D}nfpuaRFNRLUu{(<=@7~sFJoQc~uQ!*+?)KP; zJgc|Qo5>U6v4HB%dpBUPqUB=uPUZ1~mCEI547<5Jvh?o}&9J;Z~zTx!M!^C3^kSlSfZkcioqBD3NMSh~=%#5Krq5`L64^q%LcThh7hkNRVEXzQD=UeX!Dq#MSEv*E&T^Q})ipvI(R_ zhH!*Q6oo}&gxL8vv^rdpnNNz%B$Va`RKq**&H|sb^A1wJjqpZo32Hn8eC(^_QCvXh z_AD-U@soK3H$tkI8!%;spV8({?sx2+DEX{}PoxCdk2Tiw(|E1;ms?vi@rwFXkk@wv zdHzdh!wNQK1(s?^E9uoHO7d!+;7IRXBbFsmsY83So*4$co0`${kceu*QNcvp(^nP4V%+Tk=Xr(PYb0IHPdzNP$VC*(4lw|K9Q z6^Z>F(XHP^m)j*`jj0y@L}goXPsr1uvalOvp1mO`KZCf|mK$?II8%l<(AB>?r2znG zY6w@Yw?QUPuPeJTE9zh#a#vIpVmWOY>#i2?X(#ZmD5^$z7o2d% zVZF*ddGvAxvN6rOn5EPIvDAm!9Q4EO-9T#nn7vs5jp5h3oq(OY%)8s1#*~LG$@C?keYEB%aq4yT z9^_m0ZXUX}AM4GY%p3Ne1>m6e_Cx3SP?r5Wvi#TJM=!-b%O|0>_i+zo!15{sK-V*E zU4gi3Urj=Nn&+!$&>i(SQPWZ8ybgj^R0c1VZQ$8Zq%^Kq)tRcEYE5VX`@NRDT1tV* zSB+ZoTfJJAycJgm6Yj3OX)SG;3N@v}L4%>#m%nNrSD1Ngfty&ffF|F^N^X{~4!Ncx zn^(nT8sMSj1(J}zIx7FTDqCMQc5N>BSIaHh)*)O$s-0Iqu0cmMNfX!P=JZ#&E~m#* zm=Qqr-ubE3d@8B=9Z8M9HTZ82PzI33@L{i|e*bPj8g>a(XHc8uSl ze6!;TZHtDNM%RH1TT1iuYZ=GrgqZ*&Pjs%;kCk7{cM9cMnC?VM_E(?=TRf$(>uJs zbBBM?gMS#I(mrQ_<%hk>Y0FrMA6w#jTD`5^Vme#<9WBPz%JJcHZSAc;k6sGi>h)PE zvz2eZE2&lU2}~{o@nfSGql1f$QhKqHmHpj|8OXz6^;&QL2bGY!8#s{rRDd_v57_Bs z6zdR`x3IUH2^>H>+fk1lcS~_)o!0Zu>g~+mqyk&Jw>$^Sb`;OrU{0Bf-ZBlGoQEUU z%dDO4P1k`G^}8vPHGxI^#$Jv4#5mhJmBPU|@)Xx_a4~7DPlf3D$xFOH-Yon(#)kc3 zZ2Z{n#wo!TKe@rwiH=KVy3odGk4=CXn>4V-Zhodo z5DzmjuV?$5Qaoa|Uy4i-0n!0%Ks6Z@n@{mbYp+-JThcJJ_KYnhC6)`HaH7rYR#T4R zoTHs?oA}IXznmt}L>+u8nX)ohn$5zXu`eLr{b935y$wOIKJ!Y2xJ~xK7(j;98CAR6?IWE-IMS~OmbY_ik(S%>UClw9vD&-kEuZcDn!<5?V?~TLfX2)Rp%+lThnCQG zyy;8-m!x!kM@oOS4vLjjr?wk zd_O_FL9CH>mP#=z0r>EpgpO=dMUM5dF^LhZGIz0Mf){@e%uK2UrV@X6EC&ZZA{lq^ z-sO-IrE8CV$4)zlQ=R({cgLr4yuTyI_5WJAQd_f#wGCKYp2xMgg!TZHuyB;t*u-7c zI&1qD14vbNwQo^q5y!WvbGH>%JHEwgebtU{@v5tFe2cBE&h{-N;-4LGmf5V(z1!F8LH6 zkyVmv+R;wuaVPc%2q{+bD8|uG^EecZWaXsVeza3N4#i3G%;QfydZ`_6;v&V`q@786 zmAVhbGQML^`LEUQMnn5#3j_EN0PV2YnAl~&XmX3YD11z&F6oNL0<$sQ;it%|!Z^L}Y=Dijy_spr4tlt~fMf)V z=O#}UporrcZ_}yD(6wi8FlDnl@e$R`gea$_{?l~v;7+%hhQGi?H59BhC5}D8ScRgI z1;UE$T=2UzDT8*d#SHMEGg3UB0zY(xgC`FGb*0)_VqY7q0D<^<5Ea!J*`4_9~hl?&~HF&flsmmnU_zbWp}zXos#*uLxogI3b#8(wqpj@)P?PD!0Be?h{rNP#>YS<_Qj##faA~u-Zno&fT?y z8#3G1mK9j>@mAYYLrBb)c=`mh-~Ltm9Xx4ciPH?6O#c_}EU>COk6}^ORhkg|Ha4^i z@S#+jCTB=Vy{1cmiy@shZN`sn?L%Q+-x20tjJJQTMh*C!QyhU7Jy0mT3#?89+*naK{1~6C%1aYJxRZ zKx|`cRKYT##{w236XKX;HOm%f$L`dEv~+1!0iDHR;#C_wC>G+X06+A^i1&hiMSa-| z3^~Z|{S;d~tiY)xS#g)ItC#CM*DMRn+Sm~La4^KX#^DLBOTnEjLagiX zB5R<-;XBf#l=h-)`D`$UTOS<2W5OLa`&5kgcf|M?+wI3UIBk-4GjLM>z26@k++yxM z0z2)Edk?|Nq&*y9hM>X@KX))qF)imlCot25^Y938ayXsXa)Y}!cgw<=5!P%4rV?PU zES>&5@yeRsGZ!Sit~`QS>fz$Gf!vm^Gy~O3L7Zh^mY&tSAS^cPgT)?Xj?M|O8F1nY zi0;{MLD$Ic6htTsOCL*KtHlnX`ZmS8#uw|Jz3lL=70pCs6!jSJtt zTy8Wfdp|N|O8MQb{xp?772^Dkr5Dd%TSLjy9oyQCBz&F$WF--qu1}$t3!gE;Jb4#5 zxTeKEw)in1C4}gFS!`9}r<;(=5v7z&4Bx_FV1nPO-~N=D?vgUB;G8p7QEQ2845Ft48TSUtVIuUsiB3?O$kyQB z;|sGvv^Z#y43?}L%ZoaJ5NYQ^s3AJ?1!ED$Lt=>MBs9+{jJ=4D9UM?V6ctM#WA?jq zqlKA4jDFjx)GB)JbABqX{vCO>zdC+HPWZK!c+4&KHNp6|hP?87nH<4Wlrurf%odM4 z{N%bhpI~L~i2e2S;vTl^em@CLI)}wkCVo=PzXgu72w0zE1$IW;#iPB+wH&N5^x`pv zZt*&oBTsH?m4h{xTpYf|&zvV5u#fZE%f%UFHT)4j+r^I;Sd%Kji#Duyv^?@8F;~!F znebUlXt}`IF$MWnz+9Jy-9kLHj44=TXVh8jHNeKmI=FNb@uO=#bt!BC2X|&LBPNGO zr8s7QpVPotXVd=2&h@D%=XXRo{yOM+DnhorZ9OqwnG|r#x4)n^M;bu(B7# zxeA=zUc|N*IF8hqGO*jT0jym!7$Rc`Q$(_$4?PJ`sBXo!#w(j}I_Eu7T;w+2Fy37h*RP z4_n}Xxb+sVn5FAla*wagPa`%rInOe?*m9B=Z=*P>z>^k$c#I)_Ji(?&j^chL^yov4 z>hO&t<_0^hL~+gn8$HtEvEs+3_Mt4V@5u7}t1cX;o^cge#eK~aOoenFo*O)=fF8~Q z_wUA#VqD7(8_?)r6V^`fpdbHmH>xs59=4rpespJ_DPG&al+1%sK>Ez4cHDIPJw>d7R2a)I;s z27RmEfj??AGdh!I2G}X8WE~}%L@b)=AnHsZPTp53EW)smCT_LFE=3w2sClfTnLo9~ zPYbq1p6oNtU>)FKZK`-J12Y-&@U;3=koR{4`4^+^$2YKGUcliXQbBZ~+XB;Hw8aCc ze%B>@p0+-852+|SSoXGfE|WE4A&hIPdme>Gzgpmc8ffC-30BuOFdc9cJQyStuM9Bn z))r@$?30=)_FUj%{6qXU{b6Z@UO_OvtkU|^1Akn`f)aYCdl(UhF$(IZ+Dj)Nv>-PctZUk{*&{c*wtEMRvX*9 zE)IMS{LpB8a+R|(lMx}248`A{G`epfFAM9deS>wKIF->ldL76<(2;TNs9Di%c5TB0Nak`}UVWs$%W4~p+W<89yh-+j*oQ{FfmfdvgTn9T@Hqf>* zfJ?1&Om_!)^P=O-HTD-uy0lms&{TR{n2S{LJshrekU^m>lF3OqMaSoTDrWk7#Mvcx zxS_}M8r#Xn9$lg5fmkGomttd1n7??>@9&?5GCqwfRTYawihw{0WwLRC9+=O$q4~G@@T^CdYh?T`(lRYk8DkkviI?KIG?<3~=z+kX*a;rVd!x15Ir+4gVm=SDS?>D3xd9O;lh+ zD_#}@r`trjWD^|<#^mNfNKLt%7jA*)2Yiw!U>@HTi-Ouh4z4->CNT8uzmzTOo5F$2 ze3Lv09<47qAY}74MHHZuctZ|~*1riRO!4BAe*)vJ_jVdw7}C_A2I~Ayp!Q$N8(1wF zXTM~g0FT_|r^is~jn1r(pnZ#s)H1QF(|=r$LnE~doS9dF`^Oa>y#SwS z&Jyev->5JW`6Wl|QEln1z(@y~q2v8#_NDfg7|LU>_NMpmBQqGJ9x{C{4{M1mcLixv zU>yayRR(+2KIJ#4QX!_L@xSpe)wje@Ym*`U4}NJHDM|Ls7T_)gB@oglz^MXxCw3@) z#bt7_$E_WPj8HI-eJQ~OZXp)0pN6XaPN?eN_85pj`}R5dm}u{I>!-KPM3+BKf+kdI zvu)htu^?%Mm~=|EX+Ji3w$%|s9q3T^5o++u692nY6qP~C0NECq>=GbV22>Z)%-Jko zLwYnQ(qxRHvp)8WilM?^zp|4F4GQw15Sn8;?3(E;jdkdLGZt|`eG z=uGV^J10!hXiOvBaR2&@P?-+8H94nnJ9~FsVg)v!*`v!P4)-RrNp)(n5tTXrmw_6; z6R6)7Ti=S^`xXZ@p>nwESf!J$q)L#&4a+ifKi39D3goP+6EgtPO~E7fX- z#Y^G0JXQy2p=5O7&ViaBZ5mV?kb%qR2pf5v6pf9;`-iz){1T~&p>vXq;q46WkN)m_ z=zcVF&@@QZe~KRoCE}nSCC|IXB7Kj(flk$z!&7iaMu?Num%)xzQc3F~vv^~N`jZZ* zF(l6##(i?ga!^eEoN$yo7JWY>{WMbRcOo_anyl3~&yHO$78pLeoNTad*PCZ&@w3ZO z(ly>{RiUDMt4>(B?@D(-Gsep*x%sCq14`yrZO|0LeZ;n?1Ezy@IiU3mm@Nxo zNGvYj=49O6ddo_3mF`<~@+&_OOHx--uU;kpG}6Oc%(ANz-9ndK`D_);F0{VZ$?A@r z=&NQcGG^Zp6H`~|_Ns6ySMItsy17!%D`Rv1wp^NXLscd|UiGi^Dx0hSEfHcQ&ZmGF zSEl{Si=$T(TYRj4f-?gaCPS~=j&G_%Y5a$LvQ8@orXr{GU<|w2wd9Vo&kwt1J9Q zezUP1PYzYzkUA4KwZ@du8*HL27vD$tU|Hrr!2)j}8 zqQkdU#jh%7d&K1`yI-3NA-X*bsbQDACaHV$-V&-M-@*9INskj7F}!1l)}d3ia#M3Dl@>MKPR>814cY`~R@ zVJK9{sQ}08l0DCxGQ13&2Eaaj`3gwNggMz+VD=Sm)Y(Mk70!V`Bu~8@ncO6&_25(r zc?|F4GKEHjn(miC%}YT}32e1XoMZhZU!5EuuskoB0)1)QJ?oBR7QKmGvR#?_jVs=M z10{cXqOSF_#zSU07*&@WgvdBQwhI`}+ua;TNHHkCK2(rd!XIC*>v!Tb|N2zK?b_|3 zU6P*qd;;6^tE5KKwL8~e4pQGBzIkw0AcEN)z$J6DcZVSEb$t3A`eTsX&agI&x z*(kP0KfV>ge;CH|J7L`4!+0AL;$1GbZ9ySZHa5(m+_vpupqTB6XsEYgBHqPoyD1bh zs8KqBY8x@)LN}yz5Udyo+g^@%SJLhDC@B2(fuy`E@HUB16<5jPDWh`ROY|xQYQ!wm zz3nM|Rk<opc)Xnd#b^5< zO_7ogj$biX&f9{F3f-HA9%TZI)XRfk_-;57G7g!>YdnX<^WCkayf?h6z&c6#QQqxj zO&)2maxT%Z#ogd^ic~eQH7>ao!n?;xNE-)x_p0KZ=2`C+tt3MS94Yd2ygR(|J>t>? zoG?=A-5r*F$rz%ig;xFCU8dKDEdSnp#u+Wg^bN)7OQu)%9yX^{gAS={ENo!Mhd@g; z9g^2vYwj&{MxQAWYX5Ud^x3wcl*5nqQn&Hw&AhJ8qb8VR zq>a6ta6N{Ct@?O2ogAb(G(MD+zD)GLFMY;ezB(RHf@yu3Nbob&P4qFK@-e$#j@-#e z1-p&(O|Ltpy~%f8ia8_}7>cyZ;FXvOd?ouhm`$a|%l#+mmSByMYR$TV4|!~>3V!L_ zc)sJ)2Ed^hd4&lfEeecOQp8_T!!OYfW?<%H9)0x?BhAQ4Ax}6LELAt8DwR2H4%CMZF5$kTD9*$e(YiWea@1U#q?n zV3TSMW*F&KuX;FSYJipTiKeYQl2ZY8e*$r9mVaVXySA!Hy1lYzQIYzJqL0}PW;NNz zSWvYg=k%6a_wd?ctUr!}v;7*MLo}J>CDmWC*C;yzrsQMjD-=JCLFG=mz6$f{M{lr8 zAJblSy7rYn=cJzoYW+^2ep^3%TLA9WB43+`?!}}*A1BidoSx66X!}ISItdP`NFA_G zWLehWbbq}PvQ5MwZu8^1mr;97B16`Z*CZl)4JN~kOtaS}GJE|_Ffz!n?GpKV`NvQm z-w8szE|DZ#6wKJUMZ6}FB=fP3@4RGQlZcXj6s$C|YF?K}e4X`RsCCFV@w!Bu>~L^C zGpg+oAwvtCdhC$bBQiTv3-*YlkX{1f9ezI_{WMPJcjEN#w^0?Yk|&h3!^-lUUNDm=xugjAxYP19>Hl!&p;|lY$EvQ9I1BS^ZE;EpyqC5=L-r9f{I<+t) zVWgh`kAj#m1?SZxq-BB?$=XQ=luDRU-dC)eK<1PQ#0_u0pNoDPr}jH>`uAI(_6-P= z8YPfSQVN*O1)nJadQ(yXrOc&bqgAjXNU;HXt^|MReH&adap+9G?@KQc3$ouRdE7xi z$s|okf?-#P1=~m=Jp`>ko;zAT!U8EStaT9nRg5MLtkSsUV{ih=HW={WYl z@FYcM4<6>GqM%wG-NSBQnETvfXg06)IdGM<*u&ah4h&EcLS4xzX3VllYavAi^nBU1 zhylZOGkV417*9q&KAFbv1nIXW)VHg_B`)XzN>MU}h5w|yK8i80;?YLIu)a)u6rib- z3CI~j4>uF;`7~t&G6ERNGSY284<%1RYOmR&4LT=D6Tw=cS}&2mR4^jQr~*xkR7r3v zUvH<|U^{DPk#QVMb5eo?1O+cZGDy$lcFNkMXn{Fb2cHh)L3t{)*X)u&hW;$Q#11S5S>d2Zu7b%A2;I25J3HkbYY}eLKoX zH)`|>g%+|hNSy-PoVoMT2InX#@tAdq`PC(o&(x8mK2bV`>obPL-v)eLke;A)9-}YW zDhb*dQas3L=Kdoa^y4fJ%uwExi;^2G-T3!oBy>oP$4piovdBC_o_RF8WCD#$5Df&> z5atb)#3eV`CO5l)A!+3hY9IJ}L?vaY0HLK<}@pLQZ% z!+$o1;-_IczZ0hYw+%ASo=c0(LNTAYH!0;{^=mAuP;h!kd#eEOf z8h(kyq=DW+dJ0(fDBiLTP+ujz}hkI^!~s6nJxkBHar#P4cvY5q^p3yMfh0 zn(vf^9e$Gmsty_L;68zzLwW>5S#qg3=)fMz)!%HX$)f|B+9ldR6$~p<4XW3I*qYEJ z<$}r#d#=8plYSbh_B)ZPf9+akHnh9R>;m%y*&d*&UkctWc>Ga{_l;IQnkVQTWT=9A zimc=4;+bvv#!&ZQDC4zApN6c0(sED$_N61DG|8+2BZTaBP-`v?0SBIwAlJSKu${4C zC@e7K8Dyn^GD*%{8jgZXM+z9sq&x$%ak5T>qD4+5x}-YolDnXR%Ot4KSd$6xg0P&A5}mNf3!wId{Q4{z^tcE$f`*d@@$7ahl00h*2LqGahx=3P(>g6 z($VWqx*M2A#i7ifvNr1vvLW3$HT?6+B^dE~=z*lEE=7HzN61Mik6sOGMxcq264240 z6hGuHPNXHY%Y6)Z2}UHHjAqfJtH?TJjFN2*+DURUz@x$wh@hBKR)pGs9!^^OB^JZq zPewnD(fXYj&HvBYG;s7OY3<5>y+qEl^IKaI(&TnL|c5Xl-A< zG{w-FB8{bz7DB_JP$eYQbBAO@%?P{(@>q?3Ds|_sc%^e(uyn{@{EFB@h&zZpvr&@^W=6Mq{e`C{9VRI zK=&X^6O{HZm%-pex>QL$17_|uv>+Q2kq?R~$sCa)yF{uM__=T^U}j_`dD6aI_!G7N znjlRA40ZBMgBrHe3bqkU3z^kmohH2;baPTGKuPMbJ)ztGo$Cxn@-$T^KrHKfLn)|ZB9C@DdH(nNEGvbIramx9|& zNPDyp^2jA>0Oa1W%psXKWW4ty#ULN*m{Vk`pFHp1t}?DB`Da=5JX?wx60#B) zf&;lY6$ORJEBz>xtIP&V^iwqgTav73aMW0Fx<6xs-IszCM#S}1tQyh?Y9v9ct#v8n z{W$Glekqe(mi89W0_;#SO2MiAQiS7e({hqb6;Q2S4bMr-Av2*kw&g!Eoyq~K=2Z=k zf+Hjods2G=`Lf?)VPW^v7>(bFQU7aoUp7Xen1Uidhp2)+MwU@(dvrHwkz^;Se@+aK z+V8X>kYs&1uNa5U?3pLQ6Grl-_I!1J!26BJZXx$X*FcBwX)sBlQVgo>FXzxVq(fFI zn4^0RevBf=jMUikw}UaClY5ZaWLA-`@4}Fjez|ZMNA|*!fVaNOj!;=tjFIu@ibcAT zl|p{G)`8mO*i(E-^7|XIpT=kXPJDh_L4A7zTgT|fAhY$cw*-=;1=&IQr+VUK_|{g6 z%p&tB+4`k2^S*JSvIu=;ogmz(F(tDv^Gl>`wTMi8%nCAkD@~81Uu#htrCY3e%*Po8 zTei$KRQMLb5}YGssgeKI&&0N{rtfI;FQvD@kjU2Nn#v|)Ak}$Qy`)B|(g7`U3xW;0 zI@uZI_|_5y#Kh*?Rr041I=>U4e{bUJcL}IZYYli($yR@tklv=81gjo9ptRX;o&w`2 z*&U!|ZzoWJYVoC4Xx?QnwwuV`g|WzK0XyUpM-o|D+ohyno*<(F^v-Q?8qjjc^a3^P zOM_HmNL=+>mn8Uqo%2}HV2NL1 z3Py%DnW><;Z@*}Rl0rr`cCeZLx7*YPBYlL7<6vr#Qwlo7R#r%>$dLkhaBUl`;1Zi; z7g;%<7FsZme{HhGko%_#7t$KCB|yNxGacmog4Yd2S?`NZ* z2C4l{kbYYxO7=)v#@ufv7F=S)gMCG8Ql6({= zH;^L7p*sG$v(A8CO=b(IVXv<%3OqU>C*|r0tS^0Gf}!Zz&ann9n~WhPgq-3231hJx zX;7(9H3G(&ZDtElr^!4HVqcH%r=y>SYWz;9`rq~=>)G-Ih|Bn^UkF)kpof#A3YPWd z;G5aH2r1p5ogz&Xj8W3f!QM<1h9b5kLuD%HA!HR))>M~lwTGOXPbtWPyWno2h!h{N zhf>q6Fnu=dHW7??&SM8y@#qm-z#>BiG+S1KX;hj+qfhOxXeMOofU!G*a;Pv;;{i$v zwe?h=*s9#46=+qDsbJ z6Mu#CCL;>8ak7TYluPEEz|ki4PrZI$ne$i-c_vwBz_Q2Dd>sLGndtEbwT8U^fe}iE z57?Syd9x4U2sv(`{dw1Tq6vpGlr(8@jEe1nAhHtlPO`nh%D8NH|FOH`QK~`HN3#Tx zGW&i$`e~%j??h_<{e=1|6GECLn4zRpgJVt}iC6ak`Qd>+k68&;85yshqJ&9-W?#Ru zSB}a3QWfkrvbB@hK*L?}+RaZQEOpT0)6oX2|1_|p#w_8GFI!AZYF zM8BnhP&or?f9b?5jJOM#rC^@eMot5(s5EMp!|Aw37o zGLq<$Pp|K;UdajvwYE)|@=`M9vnc-3(%1jHX{y`rMC!K{)%OVuNxABi7+7MDuj?U+ z?f`Y_F%^t?vVywh@x*Jk_&Q<3h-Ws|D;6WE!r6TuObvaQ-w#<9A~8+fwS=K}NdFTP+URnxIZ^ zORnxplT0(PR9-u;2{@LdtM3w)Y#}Y@Yp?Jwfyw9u`!qQjTteISAuFWuSmL19e0rF{ zIzhS@IA&y@dCU5*9nznLKN$+8Ce;NsP;6#mPT?_PKr`O*?T zo9K8=<04>Kk)Z=t3)$|QM%i|BQY%PL0Yjavbg;^{(Op03oA0ZUpN4AvPN?Sp>|r_M z25RUfYfgqlNnc^g1eMPfii85j@k<1pgPLI6VF8cMW%3X(tao<<_r$l&p(wp<%oIV3 zt3kC25_3MzM&62NR4;|4(HF1eBpLg7o1Owq>=Larkm!5i;%!S@Z<$^)_XL*rB}(T8 zMuLU61={#!BXbL?+U1~g8$8i`VvQ>ofm2t4qY^Ba_tK57e2hfTl_9kUy4$5A&_N(@ zN(CgrduTa%Ae0HPRGsr4W_`-Qs=4H|ufVNI$?!=j7zs~uNJ)JryPgWb9>UASS1Lnkg9 z!~0UP>IHrB61@#g@~21@K7M+Auu4Y7w$K2kEn9$)*QL_7|eQKb7Nx2Gn9%9N+REM&{btpB?%c%R=n z8~xWuccB@E9g8wejWidZR+pG8515r?2I*3lI5Z%Mfw(mf z?B}rjB1vF_fNV_F-OxS*A{mm%Ts&9p>5-^hi%V$$65SgEp2HIj!#>a)n16KuS$!=p z!kZD`0wQNxfvP^09eEp9h{_nmC=Bb4l4UDQdIL7~L}8?#+qq0zsSHqWJ(26Q0IQEg z4<`M&;WMR zL_w$#*t92NHNyZFqB(d#-Z9S!y2(=gB^!Ncqqo>HG!i@F?!&IKwVI%-m1~CffmOF^U z6R1@uMhLJN(3#?eN#{Wv;y|m1q5}(ZK~&9%iZ8~5IMKy`qZ)^5@e0%~vvK?j+xzPU z8Gg8Y{?p}mQ&azXz1>{$+>76~R~Ikj1^>Iv$Hp=-S+Ck_cRoG)TaeM z2UxlzPl%P)moU;y+~dh!tya5N_^8|Ki>sUbJ>T8k z^5yMjcP^0P>2)aj_+`!x^^V#x@8j%V6|Fx!I}`5N+M3T!-90-qjIZ8G+&{I= ztGr?P08^Qrx|^TMvj12FLd)H=6My>1#m|dRZ+!acXi*lDKg+>QIBIF1cfq3td_1XH zbyUGKn#ZFhH|rX((~n2y>8uXsEa4rQsU21A@y}jTQ=53t&ylE#rPd)7^R9tI(@{eC z2#fpZg+U>0RqV+>Uty=)^0Wqgw%*LO?Wmbu!@piHwKDIe@T1Ex=`E&L{nz!AQj1b3y;*6_=x!gwI-RUhdT+Da z=+RnuRA+{lCvz1eZr{D$oNwN5-d7@)_R_vvE<{V&OUCE8$N4HemZPDx&9{o>tASq zDt&#M-dw5c)nWeX*H`_+Q>~VVmId{!fd<9hLawZBuzzqPg(K)e0J#m+@vx2Ef}jj zkdNP=A_awDFn*W2l{>aSY;V%v^|O8ZcE3s?)-%TThfka2{!Z}pa=Y2?&c69;{;*7P zL=iB4b~1lJH{7q==8vR1_PSrp$MJYe1+;i(VX!_|>D)KG|qA506Io{G$=0eIONH=a1k` zq_2*Yd1+pX^CsG_j+FW0Na=B;097znm^}43T!6ZBJ3ME+zA#kazB*KI^XG>QZIkoX zhfinv2dS;_Q0TgEi_JZuBM#l=$Mczu%7XTced?Ue<7d}>wF*3#$A$cP`OSO#K$vv; zk@zh>W^T2F59ohsUs{oV00yBMN1>u`*PFv?SKs6UH7VY#E>rW1&E4YDem0C*c?APH z_RZVX-xjy~{d#fz*UfEK_n<=V&+^sk!+LSZbucQUwT7dhHDid+pL<_ADA+kX9KYHfX6%ltncd-@-5pOpaX*Wn>;rxZ&+exu zEJdEhL+)M=MXjIRLr=4GdOi>N2Rww&?xCmJ0bmckn0MP1`LBN4q}wxDeps*Wcu(Wa zqPP2Iaka_}cRs7tNPX~TyIZby?UBo$(W6?g@J7ub4xQHixt5>r-z}EgyAId z*QqC`O(dfJj6|;(EPh6$>m+^VS?BA}BK>}KSS%NZ1xK|Z7|6~VRWIM3{okwCeGPGW zdG^ok?qAIOoxtMF_BL6S->GuT%d;+p7l$9$?^CS0-OE3xO~e;-elQX~e7ac`fYr90 zSZOym{r7&|y)^&FVZGV>+%+<+)8^ICR)26m(wElJ{O#(;rN%l-PWtv6uK&I}D$}}G-2h9_-%rq4<-v5*3wTfni1Fl?5gaI6 zkzq>;y=}0=nBa>9qw+`v_R8DzAc3HqEnw`r6f&q4AQsRnV{C0sE9ZR&qei8{*XB$Q z11bYhU_;79SEQY?Ru?M_D2Pv)P*4~`Q{f_J&?;@AfL1}YRj*bNFvI8+cvoQ3 z%0kRAVS=kPl8VL`X;2QU6{rNom*eUXX9cqddo)j2l=L5#9 z0?BchYzI28JYgSF6N+Bzl(*0)fQ}W`1srCG2o!nSYY zU$_hxhnfO=6@1866zBT_8|4gQtYM-8g7RcBmXHRWL5d0q2MG`|j6tE*$LRuy4Cmyc zq6Ae^SF;loR%rr-d7zb)#R6)D+GH>)(p7I%&eHK<0N}xZ05XgUFpia6)IsUFL5r~s zUp6g)b*S56H+W+3-03zw4SW$8CabiG?9iN@b%HYN{G_{1Wx!z~jCI-@gftE&Ny`Zk zcuK9QWqIx_6R_sw%D$+RHS~!HI>9`xbIMi>gxxw=%n1iQSFF?kKZ6$?WcBc6TznlfdqvC3g2RyOYfBB(uAd*&QWz z4-&f@nca=d?kKZ6$n5SVb|;D5qs;CkvpdP`9%Od661$_o?ncY(9%XhXncYcdca+#2 z1a>DavwM))J&5d1T4r~U*c~NyCz;(zX7?zvyU{Ycqr~o3V)r1kJIU-$GP_5a-AQ71 zFR?qw?2eyf_aL)-kk}n0b`LVU8;RY6#O^_6_aL#mk=Q-R><$vU3l=2s3)p?SSue3W z>Iu7Rtz3ZdlJKIy=n8C=buk;MM@(Ws2Acv5)L^t!$7%%E=p~p?K||O;U-PZ3zNo=y zb>$~(p{+g32)UQ5cCb$e6fCgI~v#e7g_Mr2=f{sihI305rWEcYUW|39~i&m|y zuOO&^)dC+C257MMv7bsq<3~#&gP?+SZAqL2s{&MxdX6Tev#eL>uraA~=5ydhhRO7> z1zTk)=mwG{1}FSHgslp($)Yh0w9!{Kh!GoTH1-4^(6-fgv{(r~`kvrHXRR(Mi~WvF zBv%w97%_}DYVu?gO#==R>QIOn?f4ajg_GkxMKcu)!L1jY4Cf zK$*k}nAD9oP%dN`Oi<)>12M)7I_1IkpvieKhU-du3~Cjvn}XW6E_AtW`$@i*r5$Jc z0y-6;RTd-iEMqEYBQ+2UGs!SouOexl=O}|w5jvg| zYZvkata<*lH4ik!@l1=>B>i+eD`TF3k!SGY1Eav%!CWtbwF{&?*%60i5H*h31`VpH z>4=$f6>lsti=NgCB8zY0CMd z`ap(}g7Ptps}7{7tjA%6!fO*fu4eLPzwv$D6N&<@g0);DRVQLpG1$JIqAZIhwLn~X z;pf1M3|q2X(S<6j!8OoA(MrlX!*yb{0HO-sa!r{V1Dni3u0A1ypkg#!shX;wYXP{b zja3%Rp#C)t#Lz%rMxzXODHXKtD{!wX=#AxSy`*xU%Pqr|0#Jdc5h#@VU%So-;yS}m z*BMMmfXry28&7@=g9j$0%qInuDUo3tTP4U^!I%jpGFbD+L_CtEIMtd!nG)mFTGq<_ z5_}-6fGu&~BB+RQ3`5YorZl_&5uL+u))liXYeh|hX%%c^!^C4*60{~zc8*{zYvq0k zKKQ!Kj9N>XY0SNusRzCbtxRATJPk{wU}FL0%w*W>a5bc4+7=<-;W{8VcK zW#{{;wXBuxHpX67?zCQ6xU;l9k&X5@VGVGM(h+;wcrWG~HFBiNA&WfO$8f)!>g z2FnSCws0g%Fx8qs+4(TFmbG%f1RqG5Idl#x6JQKOfMKj-fC9>y3Bw#RCOe0u;ajF$jCKQI*TGq<_5`6IJ%xt&+r9_+@0fGaiwQY3hBi(=A01CWs+2Ony zoV|qcm4u57Lkvwfnt-u@IyTUv#VAOB#pLrC}@EpCQzI){@ z3=gFE(AG_rP;*&pk`IJqf5wlYuWy|7bxCWr?N#J>3ch#>pU263;+@jEzqDg1%IBmo zNDx=y=7i~0sz&AAaG?eh0mcjh*#;VuK-r3id)xniVaopSK+oN@fH5(LsBQLJsD!PkCb)91UCd5N4pqCaM>hBKhRn^!xJ4@P+*J=w!t-7FbyO_Q&7iH6)2>XFsPZ9UmgO!m$on4N9m$$F)tW%b0*2Yz>hN*DgeW{kp1VnvFuwXT-Y#|6?{+$< zSATqPtpEgrbqmy>ZR-_BG&qok;gw82kjBxKOz{>mA4u~)u6#fFKf2fyp2Ulj>SJ=b z4v(iyE~6LEJcd&S-NwU+6;;vuiXl-~7v;Fa>GsN?qX~&<=^2~_R4YT+KH_T*M_67U=#r!J$ VQGUIc??0qp{|4_ZlaP%`008}xCc6Lt literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/svg/archive-extract.svgz b/isis/appdata/images/icons/svg/archive-extract.svgz new file mode 100644 index 0000000000000000000000000000000000000000..3f0de142799b4da5c5697139bfbae52fa1d90659 GIT binary patch literal 6812 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 K#??d;ga81v4pMOd literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/svg/archive-insert-directory.svgz b/isis/appdata/images/icons/svg/archive-insert-directory.svgz new file mode 100755 index 0000000000000000000000000000000000000000..4d125b8a7b67611cd8c03482b9dcbcf8024b12aa GIT binary patch literal 115956 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

pN$pbk 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 b$f{|ndW=Hng#jL)7ey{!2sJ2ECL{Y7A+r#E literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/svg/blockdevice.svgz b/isis/appdata/images/icons/svg/blockdevice.svgz new file mode 100644 index 0000000000000000000000000000000000000000..ea3d15696af9cd5e114d0fccb64f04491fa2776b GIT binary patch literal 3120 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 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/svg/configure.svgz b/isis/appdata/images/icons/svg/configure.svgz new file mode 100644 index 0000000000000000000000000000000000000000..4057e8d5c07d40f7b5fbf7124c3adda4ccdb1913 GIT binary patch literal 4630 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 M503j-7laCh9DeODz17A3m|=){O$+Mp;5 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 literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/svg/dialog-ok-apply.svgz b/isis/appdata/images/icons/svg/dialog-ok-apply.svgz new file mode 100644 index 0000000000000000000000000000000000000000..e62b4d0afec10c3e11feba0c3c98b0d5aca0611e GIT binary patch literal 3480 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 GO#lE=>a8CD literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/svg/dialog-warning.svgz b/isis/appdata/images/icons/svg/dialog-warning.svgz new file mode 100644 index 0000000000000000000000000000000000000000..94faed909f8e5efee7e0cdbd42eb4e5ad579c3b3 GIT binary patch literal 4805 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 fJfJ~++yh469=)yqbBg*fZT$9N&6=MJZD-%cP literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/svg/document-edit.svgz b/isis/appdata/images/icons/svg/document-edit.svgz new file mode 100644 index 0000000000000000000000000000000000000000..ba96fde00b36e17c06c2a0db9c29d24b5fa7cc05 GIT binary patch literal 11441 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 H&qe?MI}*2P literal 0 HcmV?d00001 diff --git a/isis/appdata/images/icons/svg/document-open.svgz b/isis/appdata/images/icons/svg/document-open.svgz new file mode 100644 index 0000000000000000000000000000000000000000..0f271f93aa72f8cdb29ad44c0f8c876b236be331 GIT binary patch literal 210035 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