From 9a324379e748d56ff09c016ffa5d9580f7daf5bb Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Mon, 16 Apr 2018 14:59:53 +0300 Subject: [PATCH 001/230] Added a warning if we can't send some of an entity's properties to the entity server. This can happen if a property is too large to be sent in a single UDP packet. This commit doesn't fix the underlying problem, but it makes it possible to see that the problem happened. See: Large 'userData' can't be sent to the entity server https://github.com/highfidelity/hifi/issues/12794 --- libraries/entities/src/EntityEditPacketSender.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libraries/entities/src/EntityEditPacketSender.cpp b/libraries/entities/src/EntityEditPacketSender.cpp index 5d7bd61854..d458c36f79 100644 --- a/libraries/entities/src/EntityEditPacketSender.cpp +++ b/libraries/entities/src/EntityEditPacketSender.cpp @@ -119,7 +119,10 @@ void EntityEditPacketSender::queueEditEntityMessage(PacketType type, while (encodeResult == OctreeElement::PARTIAL) { encodeResult = EntityItemProperties::encodeEntityEditPacket(type, entityItemID, propertiesCopy, bufferOut, requestedProperties, didntFitProperties); - if (encodeResult != OctreeElement::NONE) { + if (encodeResult == OctreeElement::NONE) { + qCWarning(entities).nospace() << "queueEditEntityMessage: some of the properties don't fit and can't be sent. entityID=" << uuidStringWithoutCurlyBraces(entityItemID); + } + else { #ifdef WANT_DEBUG qCDebug(entities) << "calling queueOctreeEditMessage()..."; qCDebug(entities) << " id:" << entityItemID; From c0052004de51ea04ca9dbe8ba415ca8a5f4a1093 Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Sun, 22 Apr 2018 13:51:41 +0300 Subject: [PATCH 002/230] Explained an edge case that can cause us to fail to send some entity properties --- libraries/entities/src/EntityEditPacketSender.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libraries/entities/src/EntityEditPacketSender.cpp b/libraries/entities/src/EntityEditPacketSender.cpp index d458c36f79..3d2f0bd069 100644 --- a/libraries/entities/src/EntityEditPacketSender.cpp +++ b/libraries/entities/src/EntityEditPacketSender.cpp @@ -120,6 +120,10 @@ void EntityEditPacketSender::queueEditEntityMessage(PacketType type, encodeResult = EntityItemProperties::encodeEntityEditPacket(type, entityItemID, propertiesCopy, bufferOut, requestedProperties, didntFitProperties); if (encodeResult == OctreeElement::NONE) { + // This can happen for two reasons: + // 1. One of the properties is too large to fit in a single packet. + // 2. The requested properties don't exist in this entity type (e.g., 'modelUrl' in a Zone Entity). + // Since case #1 is more likely (and more critical), that's the one we warn about. qCWarning(entities).nospace() << "queueEditEntityMessage: some of the properties don't fit and can't be sent. entityID=" << uuidStringWithoutCurlyBraces(entityItemID); } else { From b9306a35cc906e2a2259c0c5a785a48f003ab4f8 Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Wed, 30 May 2018 11:01:07 +0300 Subject: [PATCH 003/230] Fixed formatting --- libraries/entities/src/EntityEditPacketSender.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libraries/entities/src/EntityEditPacketSender.cpp b/libraries/entities/src/EntityEditPacketSender.cpp index 3d2f0bd069..dfbb4b4871 100644 --- a/libraries/entities/src/EntityEditPacketSender.cpp +++ b/libraries/entities/src/EntityEditPacketSender.cpp @@ -125,8 +125,7 @@ void EntityEditPacketSender::queueEditEntityMessage(PacketType type, // 2. The requested properties don't exist in this entity type (e.g., 'modelUrl' in a Zone Entity). // Since case #1 is more likely (and more critical), that's the one we warn about. qCWarning(entities).nospace() << "queueEditEntityMessage: some of the properties don't fit and can't be sent. entityID=" << uuidStringWithoutCurlyBraces(entityItemID); - } - else { + } else { #ifdef WANT_DEBUG qCDebug(entities) << "calling queueOctreeEditMessage()..."; qCDebug(entities) << " id:" << entityItemID; From d179b91f69943a5e463f7da69bb48986b4472e0e Mon Sep 17 00:00:00 2001 From: Clement Date: Fri, 7 Dec 2018 15:26:49 -0800 Subject: [PATCH 004/230] Fix non self-sufficient headers. --- libraries/octree/src/OctreeEntitiesFileParser.cpp | 4 +++- libraries/shared/src/GLMHelpers.cpp | 5 ++++- libraries/shared/src/ResourceRequestObserver.cpp | 6 +++--- libraries/shared/src/ResourceRequestObserver.h | 2 +- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/libraries/octree/src/OctreeEntitiesFileParser.cpp b/libraries/octree/src/OctreeEntitiesFileParser.cpp index 962f744c34..2f03eda286 100644 --- a/libraries/octree/src/OctreeEntitiesFileParser.cpp +++ b/libraries/octree/src/OctreeEntitiesFileParser.cpp @@ -9,13 +9,15 @@ // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // +#include "OctreeEntitiesFileParser.h" + #include #include + #include #include #include -#include "OctreeEntitiesFileParser.h" using std::string; diff --git a/libraries/shared/src/GLMHelpers.cpp b/libraries/shared/src/GLMHelpers.cpp index 905bf3ccfd..790623ad8e 100644 --- a/libraries/shared/src/GLMHelpers.cpp +++ b/libraries/shared/src/GLMHelpers.cpp @@ -9,9 +9,12 @@ // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // -#include #include "GLMHelpers.h" + +#include + #include + #include "NumericalConstants.h" const vec3 Vectors::UNIT_X{ 1.0f, 0.0f, 0.0f }; diff --git a/libraries/shared/src/ResourceRequestObserver.cpp b/libraries/shared/src/ResourceRequestObserver.cpp index 5e0925520a..608d6905c5 100644 --- a/libraries/shared/src/ResourceRequestObserver.cpp +++ b/libraries/shared/src/ResourceRequestObserver.cpp @@ -1,6 +1,6 @@ // -// ResourceAccessMonitor.h -// libraries/networking/src +// ResourceRequestObserver.cpp +// libraries/shared/src // // Created by Kerry Ivan Kurian on 9/27/18. // Copyright 2018 High Fidelity, Inc. @@ -9,12 +9,12 @@ // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // +#include "ResourceRequestObserver.h" #include #include #include #include -#include "ResourceRequestObserver.h" void ResourceRequestObserver::update(const QUrl& requestUrl, const qint64 callerId, diff --git a/libraries/shared/src/ResourceRequestObserver.h b/libraries/shared/src/ResourceRequestObserver.h index 1b1bc322e5..edf3c617cb 100644 --- a/libraries/shared/src/ResourceRequestObserver.h +++ b/libraries/shared/src/ResourceRequestObserver.h @@ -1,6 +1,6 @@ // // ResourceRequestObserver.h -// libraries/commerce/src +// libraries/shared/src // // Created by Kerry Ivan Kurian on 9/27/18. // Copyright 2018 High Fidelity, Inc. From c05e3e7d09adc94901e946f45b3c2394373bd8ad Mon Sep 17 00:00:00 2001 From: vladest Date: Sat, 8 Dec 2018 19:12:02 +0100 Subject: [PATCH 005/230] Fix Avatar apps warnings. Added notification for HMD.active property --- interface/resources/qml/hifi/AvatarApp.qml | 6 +++--- .../qml/hifi/avatarapp/AdjustWearables.qml | 6 +++--- .../resources/qml/hifi/avatarapp/Settings.qml | 16 +++++++--------- interface/src/Application.cpp | 8 +++++--- .../AbstractHMDScriptingInterface.h | 6 ++++-- 5 files changed, 22 insertions(+), 20 deletions(-) diff --git a/interface/resources/qml/hifi/AvatarApp.qml b/interface/resources/qml/hifi/AvatarApp.qml index 57e4db062a..559f5bfba7 100644 --- a/interface/resources/qml/hifi/AvatarApp.qml +++ b/interface/resources/qml/hifi/AvatarApp.qml @@ -10,7 +10,7 @@ import "avatarapp" Rectangle { id: root width: 480 - height: 706 + height: 706 property bool keyboardEnabled: true property bool keyboardRaised: false @@ -415,7 +415,7 @@ Rectangle { width: 21.2 height: 19.3 source: isAvatarInFavorites ? '../../images/FavoriteIconActive.svg' : '../../images/FavoriteIconInActive.svg' - anchors.verticalCenter: parent.verticalCenter + Layout.alignment: Qt.AlignVCenter } // TextStyle5 @@ -424,7 +424,7 @@ Rectangle { Layout.fillWidth: true text: isAvatarInFavorites ? avatarName : "Add to Favorites" elide: Qt.ElideRight - anchors.verticalCenter: parent.verticalCenter + Layout.alignment: Qt.AlignVCenter } } diff --git a/interface/resources/qml/hifi/avatarapp/AdjustWearables.qml b/interface/resources/qml/hifi/avatarapp/AdjustWearables.qml index 256d951a45..e8b776f47b 100644 --- a/interface/resources/qml/hifi/avatarapp/AdjustWearables.qml +++ b/interface/resources/qml/hifi/avatarapp/AdjustWearables.qml @@ -153,7 +153,7 @@ Rectangle { visible = false; adjustWearablesClosed(status, avatarName); } - + HifiConstants { id: hifi } @@ -226,7 +226,7 @@ Rectangle { lineHeightMode: Text.FixedHeight lineHeight: 18; text: "Wearable" - anchors.verticalCenter: parent.verticalCenter + Layout.alignment: Qt.AlignVCenter } spacing: 10 @@ -237,7 +237,7 @@ Rectangle { lineHeight: 18; text: "Get more" linkColor: hifi.colors.blueHighlight - anchors.verticalCenter: parent.verticalCenter + Layout.alignment: Qt.AlignVCenter onLinkActivated: { popup.showGetWearables(function() { emitSendToScript({'method' : 'navigate', 'url' : 'hifi://AvatarIsland/11.5848,-8.10862,-2.80195'}) diff --git a/interface/resources/qml/hifi/avatarapp/Settings.qml b/interface/resources/qml/hifi/avatarapp/Settings.qml index cd892c17b1..0284d2d67c 100644 --- a/interface/resources/qml/hifi/avatarapp/Settings.qml +++ b/interface/resources/qml/hifi/avatarapp/Settings.qml @@ -103,11 +103,11 @@ Rectangle { size: 17; text: "Avatar Scale" verticalAlignment: Text.AlignVCenter - anchors.verticalCenter: parent.verticalCenter + Layout.alignment: Qt.AlignVCenter } RowLayout { - anchors.verticalCenter: parent.verticalCenter + Layout.alignment: Qt.AlignVCenter Layout.fillWidth: true spacing: 0 @@ -117,7 +117,7 @@ Rectangle { text: 'T' verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter - anchors.verticalCenter: parent.verticalCenter + Layout.alignment: Qt.AlignVCenter } HifiControlsUit.Slider { @@ -135,7 +135,7 @@ Rectangle { } } - anchors.verticalCenter: parent.verticalCenter + Layout.alignment: Qt.AlignVCenter Layout.fillWidth: true // TextStyle9 @@ -164,7 +164,7 @@ Rectangle { text: 'T' verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter - anchors.verticalCenter: parent.verticalCenter + Layout.alignment: Qt.AlignVCenter } } @@ -327,8 +327,7 @@ Rectangle { InputTextStyle4 { id: avatarAnimationUrlInputText font.pixelSize: 17 - anchors.left: parent.left - anchors.right: parent.right + Layout.fillWidth: true placeholderText: 'user\\file\\dir' onFocusChanged: { @@ -357,8 +356,7 @@ Rectangle { InputTextStyle4 { id: avatarCollisionSoundUrlInputText font.pixelSize: 17 - anchors.left: parent.left - anchors.right: parent.right + Layout.fillWidth: true placeholderText: 'https://hifi-public.s3.amazonaws.com/sounds/Collisions-' onFocusChanged: { diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index fbad66bf55..1dd561ad35 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -1779,7 +1779,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo updateHeartbeat(); QTimer* settingsTimer = new QTimer(); moveToNewNamedThread(settingsTimer, "Settings Thread", [this, settingsTimer]{ - // This needs to run on the settings thread, so we need to pass the `settingsTimer` as the + // This needs to run on the settings thread, so we need to pass the `settingsTimer` as the // receiver object, otherwise it will run on the application thread and trigger a warning // about trying to kill the timer on the main thread. connect(qApp, &Application::beforeAboutToQuit, settingsTimer, [this, settingsTimer]{ @@ -2662,7 +2662,7 @@ Application::~Application() { // shutdown graphics engine _graphicsEngine.shutdown(); - + _gameWorkload.shutdown(); DependencyManager::destroy(); @@ -2838,6 +2838,8 @@ void Application::initializeDisplayPlugins() { auto hmdDisplayPlugin = dynamic_cast(displayPlugin.get()); QObject::connect(hmdDisplayPlugin, &HmdDisplayPlugin::hmdMountedChanged, DependencyManager::get().data(), &HMDScriptingInterface::mountedChanged); + QObject::connect(hmdDisplayPlugin, &HmdDisplayPlugin::hmdMountedChanged, + DependencyManager::get().data(), &HMDScriptingInterface::activeChanged); QObject::connect(hmdDisplayPlugin, &HmdDisplayPlugin::hmdVisibleChanged, this, &Application::hmdVisibleChanged); } } @@ -8572,7 +8574,7 @@ QUuid Application::getTabletFrameID() const { } QVector Application::getTabletIDs() const { - // Most important overlays first. + // Most important overlays first. QVector result; auto HMD = DependencyManager::get(); result << HMD->getCurrentTabletScreenID(); diff --git a/libraries/display-plugins/src/display-plugins/AbstractHMDScriptingInterface.h b/libraries/display-plugins/src/display-plugins/AbstractHMDScriptingInterface.h index 4234a8731b..0c35a5456c 100644 --- a/libraries/display-plugins/src/display-plugins/AbstractHMDScriptingInterface.h +++ b/libraries/display-plugins/src/display-plugins/AbstractHMDScriptingInterface.h @@ -15,7 +15,7 @@ // These properties have JSDoc documentation in HMDScriptingInterface.h. class AbstractHMDScriptingInterface : public QObject { Q_OBJECT - Q_PROPERTY(bool active READ isHMDMode) + Q_PROPERTY(bool active READ isHMDMode NOTIFY activeChanged) Q_PROPERTY(float ipd READ getIPD) Q_PROPERTY(float eyeHeight READ getEyeHeight) Q_PROPERTY(float playerHeight READ getPlayerHeight) @@ -43,7 +43,7 @@ signals: /**jsdoc * Triggered when Interface's display mode changes and when the user puts on or takes off their HMD. * @function HMD.displayModeChanged - * @param {boolean} isHMDMode - true if the display mode is HMD, otherwise false. This is the + * @param {boolean} isHMDMode - true if the display mode is HMD, otherwise false. This is the * same value as provided by HMD.active. * @returns {Signal} * @example Report when the display mode changes. @@ -67,6 +67,8 @@ signals: */ void mountedChanged(); + void activeChanged(); + private: float _IPDScale{ 1.0 }; }; From 3943fe2861511ff26014f66fa0f15c918b4ea844 Mon Sep 17 00:00:00 2001 From: Thijs Wenker Date: Mon, 10 Dec 2018 21:29:03 +0100 Subject: [PATCH 006/230] avatar packager initial --- .../resources/qml/hifi/AvatarPackager.qml | 54 +++++++++++++++++++ interface/src/Application.cpp | 3 ++ interface/src/Menu.cpp | 7 +++ interface/src/Menu.h | 1 + interface/src/avatar/AvatarPackager.cpp | 44 +++++++++++++++ interface/src/avatar/AvatarPackager.h | 35 ++++++++++++ interface/src/avatar/AvatarProject.cpp | 27 ++++++++++ interface/src/avatar/AvatarProject.h | 45 ++++++++++++++++ 8 files changed, 216 insertions(+) create mode 100644 interface/resources/qml/hifi/AvatarPackager.qml create mode 100644 interface/src/avatar/AvatarPackager.cpp create mode 100644 interface/src/avatar/AvatarPackager.h create mode 100644 interface/src/avatar/AvatarProject.cpp create mode 100644 interface/src/avatar/AvatarProject.h diff --git a/interface/resources/qml/hifi/AvatarPackager.qml b/interface/resources/qml/hifi/AvatarPackager.qml new file mode 100644 index 0000000000..787c8d6b69 --- /dev/null +++ b/interface/resources/qml/hifi/AvatarPackager.qml @@ -0,0 +1,54 @@ +import QtQuick 2.6 +import QtQuick.Controls 2.2 +import QtQuick.Layouts 1.3 +import QtQml.Models 2.1 +import QtGraphicalEffects 1.0 +import "../controlsUit" 1.0 as HifiControls +import "../stylesUit" 1.0 +import "../windows" as Windows +import "../dialogs" + +Windows.ScrollingWindow { + id: root + objectName: "AvatarPackager" + width: 480 + height: 706 + title: "Avatar Packager" + resizable: true + opacity: parent.opacity + destroyOnHidden: true + implicitWidth: 384; implicitHeight: 640 + minSize: Qt.vector2d(200, 300) + Rectangle { + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + anchors.bottom: parent.bottom + RalewaySemiBold { + id: displayNameLabel + size: 24; + anchors.left: parent.left + anchors.top: parent.top + anchors.topMargin: 25 + text: 'Avatar Projects' + } + + HifiControls.Button { + anchors.left: parent.left + anchors.right: parent.right + anchors.top: displayNameLabel.bottom + text: qsTr("Open Avatar Project") + // color: hifi.buttons.blue + colorScheme: root.colorScheme + height: 30 + onClicked: function() { + let avatarProject = AvatarPackagerCore.openAvatarProject(); + if (avatarProject) { + console.log("LOAD COMPLETE"); + } else { + console.log("LOAD FAILED"); + } + } + } + } +} diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 0b53e24a8e..7c4975e7a9 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -158,6 +158,7 @@ #include "audio/AudioScope.h" #include "avatar/AvatarManager.h" #include "avatar/MyHead.h" +#include "avatar/AvatarPackager.h" #include "CrashRecoveryHandler.h" #include "CrashHandler.h" #include "devices/DdeFaceTracker.h" @@ -912,6 +913,7 @@ bool setupEssentials(int& argc, char** argv, bool runningMarkerExisted) { DependencyManager::set(); DependencyManager::set(); DependencyManager::set(); + DependencyManager::set(); return previousSessionCrashed; } @@ -2639,6 +2641,7 @@ void Application::cleanupBeforeQuit() { DependencyManager::destroy(); DependencyManager::destroy(); DependencyManager::destroy(); + DependencyManager::destroy(); qCDebug(interfaceapp) << "Application::cleanupBeforeQuit() complete"; } diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index e9a44b1e87..4056458dcc 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -35,6 +35,7 @@ #include "assets/ATPAssetMigrator.h" #include "audio/AudioScope.h" #include "avatar/AvatarManager.h" +#include "avatar/AvatarPackager.h" #include "AvatarBookmarks.h" #include "devices/DdeFaceTracker.h" #include "MainWindow.h" @@ -145,6 +146,12 @@ Menu::Menu() { addActionToQMenuAndActionHash(editMenu, MenuOption::PackageModel, 0, qApp, SLOT(packageModel())); + // Edit > Avatar Packager + action = addActionToQMenuAndActionHash(editMenu, MenuOption::AvatarPackager); + connect(action, &QAction::triggered, [] { + DependencyManager::get()->open(); + }); + // Edit > Reload All Content addActionToQMenuAndActionHash(editMenu, MenuOption::ReloadContent, 0, qApp, SLOT(reloadResourceCaches())); diff --git a/interface/src/Menu.h b/interface/src/Menu.h index 7168b7294e..3611faaf8f 100644 --- a/interface/src/Menu.h +++ b/interface/src/Menu.h @@ -46,6 +46,7 @@ namespace MenuOption { const QString AutoMuteAudio = "Auto Mute Microphone"; const QString AvatarReceiveStats = "Show Receive Stats"; const QString AvatarBookmarks = "Avatar Bookmarks"; + const QString AvatarPackager = "Avatar Packager"; const QString Back = "Back"; const QString BinaryEyelidControl = "Binary Eyelid Control"; const QString BookmarkAvatar = "Bookmark Avatar"; diff --git a/interface/src/avatar/AvatarPackager.cpp b/interface/src/avatar/AvatarPackager.cpp new file mode 100644 index 0000000000..ef127d4459 --- /dev/null +++ b/interface/src/avatar/AvatarPackager.cpp @@ -0,0 +1,44 @@ +// +// AvatarPackager.cpp +// +// +// Created by Thijs Wenker on 12/6/2018 +// Copyright 2018 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#include "AvatarPackager.h" + +#include +#include +#include + +#include +#include "ModelSelector.h" + +bool AvatarPackager::open() { + static const QUrl url{ "hifi/AvatarPackager.qml" }; + + const auto packageModelDialogCreated = [=](QQmlContext* context, QObject* newObject) { + context->setContextProperty("AvatarPackagerCore", this); + }; + DependencyManager::get()->show(url, "AvatarPackager", packageModelDialogCreated); + return true; +} + +QObject* AvatarPackager::openAvatarProject() { + // TODO: use QML file browser here, could handle this on QML side instead + static Setting::Handle lastModelBrowseLocation("LastModelBrowseLocation", + QStandardPaths::writableLocation(QStandardPaths::DownloadLocation)); + const QString filename = QFileDialog::getOpenFileName(nullptr, "Select your model file ...", + lastModelBrowseLocation.get(), + "Model files (*.fst *.fbx)"); + QFileInfo fileInfo(filename); + + if (fileInfo.isFile() && fileInfo.completeSuffix().contains(QRegExp("fst|fbx|FST|FBX"))) { + return AvatarProject::openAvatarProject(fileInfo.absoluteFilePath()); + } + return nullptr; +} diff --git a/interface/src/avatar/AvatarPackager.h b/interface/src/avatar/AvatarPackager.h new file mode 100644 index 0000000000..8f29f98c0b --- /dev/null +++ b/interface/src/avatar/AvatarPackager.h @@ -0,0 +1,35 @@ +// +// AvatarPackager.h +// +// +// Created by Thijs Wenker on 12/6/2018 +// Copyright 2018 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#pragma once +#ifndef hifi_AvatarPackager_h +#define hifi_AvatarPackager_h + +#include +#include + +#include "avatar/AvatarProject.h" + +class AvatarPackager : public QObject, public Dependency { + Q_OBJECT + SINGLETON_DEPENDENCY + +public: + bool open(); + + Q_INVOKABLE void openAvatarProjectWithoutReturnType() { + openAvatarProject(); + } + + Q_INVOKABLE QObject* openAvatarProject(); +}; + +#endif // hifi_AvatarPackager_h diff --git a/interface/src/avatar/AvatarProject.cpp b/interface/src/avatar/AvatarProject.cpp new file mode 100644 index 0000000000..876bd1725b --- /dev/null +++ b/interface/src/avatar/AvatarProject.cpp @@ -0,0 +1,27 @@ +// +// AvatarProject.h +// +// +// Created by Thijs Wenker on 12/7/2018 +// Copyright 2018 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#include "AvatarProject.h" + +AvatarProject* AvatarProject::openAvatarProject(QString path) { + const auto pathToLower = path.toLower(); + if (pathToLower.endsWith(".fst")) { + // TODO: do we open FSTs from any path? + return new AvatarProject(path); + } + + if (pathToLower.endsWith(".fbx")) { + // TODO: Create FST here: + + } + + return nullptr; +} diff --git a/interface/src/avatar/AvatarProject.h b/interface/src/avatar/AvatarProject.h new file mode 100644 index 0000000000..cc347c3d4b --- /dev/null +++ b/interface/src/avatar/AvatarProject.h @@ -0,0 +1,45 @@ +// +// AvatarProject.h +// +// +// Created by Thijs Wenker on 12/7/2018 +// Copyright 2018 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#pragma once +#ifndef hifi_AvatarProject_h +#define hifi_AvatarProject_h + +#include + +class AvatarProject : public QObject { +public: + Q_INVOKABLE bool write() { + // Write FST here + return false; + } + + Q_INVOKABLE QObject* upload() { + // TODO: create new AvatarProjectUploader here, launch it and return it for status tracking in QML + return nullptr; + } + + /** + * returns the AvatarProject or a nullptr on failure. + */ + static AvatarProject* openAvatarProject(QString path); + +private: + AvatarProject(QString fstPath) { + + } + + ~AvatarProject() { + // TODO: cleanup FST / AvatarProjectUploader etc. + } +}; + +#endif // hifi_AvatarProject_h From b261665072bdabc43f5de2a0748a5d5d1cd0d45d Mon Sep 17 00:00:00 2001 From: SamGondelman Date: Wed, 12 Dec 2018 09:39:01 -0800 Subject: [PATCH 007/230] working on lines --- .../src/RenderableLineEntityItem.cpp | 59 ++++++++++++++----- .../src/RenderableLineEntityItem.h | 12 +++- libraries/entities/src/EntityItem.cpp | 16 ----- libraries/entities/src/EntityItem.h | 4 -- .../entities/src/EntityItemProperties.cpp | 10 ---- libraries/entities/src/EntityItemProperties.h | 7 --- .../src/EntityItemPropertiesDefaults.h | 1 - libraries/entities/src/LineEntityItem.cpp | 12 ++-- .../networking/src/udt/PacketHeaders.cpp | 2 +- libraries/networking/src/udt/PacketHeaders.h | 3 +- 10 files changed, 61 insertions(+), 65 deletions(-) diff --git a/libraries/entities-renderer/src/RenderableLineEntityItem.cpp b/libraries/entities-renderer/src/RenderableLineEntityItem.cpp index 6a472cab1e..884f8a2566 100644 --- a/libraries/entities-renderer/src/RenderableLineEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableLineEntityItem.cpp @@ -17,38 +17,67 @@ using namespace render; using namespace render::entities; -void LineEntityRenderer::onRemoveFromSceneTyped(const TypedEntityPointer& entity) { - if (_lineVerticesID != GeometryCache::UNKNOWN_ID) { - auto geometryCache = DependencyManager::get(); - if (geometryCache) { - geometryCache->releaseID(_lineVerticesID); +LineEntityRenderer::LineEntityRenderer(const EntityItemPointer& entity) : + Parent(entity) { + _lineVerticesID = DependencyManager::get()->allocateID(); +} + +LineEntityRenderer::~LineEntityRenderer() { + auto geometryCache = DependencyManager::get(); + if (geometryCache) { + geometryCache->releaseID(_lineVerticesID); + for (auto id : _glowGeometryIDs) { + geometryCache->releaseID(id); } } } +bool LineEntityRenderer::isTransparent() const { + return Parent::isTransparent() || _glow > 0.0f || _alpha < 1.0f; +} + bool LineEntityRenderer::needsRenderUpdateFromTypedEntity(const TypedEntityPointer& entity) const { - return entity->pointsChanged(); + if (entity->pointsChanged()) { + return true; + } + + if (_color != entity->getColor()) { + return true; + } + + if (_alpha != entity->getAlpha()) { + return true; + } + + if (_lineWidth != entity->getLineWidth()) { + return true; + } + + if (_glow != entity->getGlow()) { + return true; + } + + return false; } void LineEntityRenderer::doRenderUpdateAsynchronousTyped(const TypedEntityPointer& entity) { entity->resetPointsChanged(); _linePoints = entity->getLinePoints(); - auto geometryCache = DependencyManager::get(); - if (_lineVerticesID == GeometryCache::UNKNOWN_ID) { - _lineVerticesID = geometryCache->allocateID(); - } - glm::vec4 lineColor(toGlm(entity->getColor()), entity->getLocalRenderAlpha()); + _color = entity->getColor(); + _alpha = entity->getAlpha(); + _lineWidth = entity->getLineWidth(); + _glow = entity->getGlow(); + + // TODO: take into account _lineWidth geometryCache->updateVertices(_lineVerticesID, _linePoints, lineColor); } void LineEntityRenderer::doRender(RenderArgs* args) { - if (_lineVerticesID == GeometryCache::UNKNOWN_ID) { - return; - } - PerformanceTimer perfTimer("RenderableLineEntityItem::render"); + Q_ASSERT(args->_batch); gpu::Batch& batch = *args->_batch; + const auto& modelTransform = getModelTransform(); Transform transform = Transform(); transform.setTranslation(modelTransform.getTranslation()); diff --git a/libraries/entities-renderer/src/RenderableLineEntityItem.h b/libraries/entities-renderer/src/RenderableLineEntityItem.h index 799ba5b78c..50b40309fd 100644 --- a/libraries/entities-renderer/src/RenderableLineEntityItem.h +++ b/libraries/entities-renderer/src/RenderableLineEntityItem.h @@ -24,17 +24,25 @@ class LineEntityRenderer : public TypedEntityRenderer { friend class EntityRenderer; public: - LineEntityRenderer(const EntityItemPointer& entity) : Parent(entity) { } + LineEntityRenderer(const EntityItemPointer& entity); + ~LineEntityRenderer(); + + bool isTransparent() const override; protected: - virtual void onRemoveFromSceneTyped(const TypedEntityPointer& entity) override; virtual bool needsRenderUpdateFromTypedEntity(const TypedEntityPointer& entity) const override; virtual void doRenderUpdateAsynchronousTyped(const TypedEntityPointer& entity) override; virtual void doRender(RenderArgs* args) override; private: int _lineVerticesID { GeometryCache::UNKNOWN_ID }; + std::vector _glowGeometryIDs; + QVector _linePoints; + glm::u8vec3 _color; + float _alpha; + float _lineWidth; + float _glow; }; } } // namespace diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index 94d0024fd5..8b790f162e 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -1302,7 +1302,6 @@ EntityItemProperties EntityItem::getProperties(const EntityPropertyFlags& desire COPY_ENTITY_PROPERTY_TO_PROPERTIES(registrationPoint, getRegistrationPoint); COPY_ENTITY_PROPERTY_TO_PROPERTIES(angularVelocity, getLocalAngularVelocity); COPY_ENTITY_PROPERTY_TO_PROPERTIES(angularDamping, getAngularDamping); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(localRenderAlpha, getLocalRenderAlpha); COPY_ENTITY_PROPERTY_TO_PROPERTIES(visible, getVisible); COPY_ENTITY_PROPERTY_TO_PROPERTIES(canCastShadow, getCanCastShadow); COPY_ENTITY_PROPERTY_TO_PROPERTIES(collisionless, getCollisionless); @@ -1449,7 +1448,6 @@ bool EntityItem::setProperties(const EntityItemProperties& properties) { SET_ENTITY_PROPERTY_FROM_PROPERTIES(scriptTimestamp, setScriptTimestamp); SET_ENTITY_PROPERTY_FROM_PROPERTIES(serverScripts, setServerScripts); SET_ENTITY_PROPERTY_FROM_PROPERTIES(collisionSoundURL, setCollisionSoundURL); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(localRenderAlpha, setLocalRenderAlpha); SET_ENTITY_PROPERTY_FROM_PROPERTIES(visible, setVisible); SET_ENTITY_PROPERTY_FROM_PROPERTIES(canCastShadow, setCanCastShadow); SET_ENTITY_PROPERTY_FROM_PROPERTIES(userData, setUserData); @@ -2652,20 +2650,6 @@ void EntityItem::setDescription(const QString& value) { }); } -float EntityItem::getLocalRenderAlpha() const { - float result; - withReadLock([&] { - result = _localRenderAlpha; - }); - return result; -} - -void EntityItem::setLocalRenderAlpha(float localRenderAlpha) { - withWriteLock([&] { - _localRenderAlpha = localRenderAlpha; - }); -} - glm::vec3 EntityItem::getGravity() const { glm::vec3 result; withReadLock([&] { diff --git a/libraries/entities/src/EntityItem.h b/libraries/entities/src/EntityItem.h index 5c45c96702..69ab271438 100644 --- a/libraries/entities/src/EntityItem.h +++ b/libraries/entities/src/EntityItem.h @@ -207,9 +207,6 @@ public: glm::vec3 getUnscaledDimensions() const; virtual void setUnscaledDimensions(const glm::vec3& value); - float getLocalRenderAlpha() const; - void setLocalRenderAlpha(float localRenderAlpha); - void setDensity(float density); float computeMass() const; void setMass(float mass); @@ -592,7 +589,6 @@ protected: mutable bool _recalcMinAACube { true }; mutable bool _recalcMaxAACube { true }; - float _localRenderAlpha { ENTITY_ITEM_DEFAULT_LOCAL_RENDER_ALPHA }; float _density { ENTITY_ITEM_DEFAULT_DENSITY }; // kg/m^3 // NOTE: _volumeMultiplier is used to allow some mass properties code exist in the EntityItem base class // rather than in all of the derived classes. If we ever collapse these classes to one we could do it a diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 826d180539..790d8dcb90 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -50,10 +50,6 @@ EntityItemProperties::EntityItemProperties(EntityPropertyFlags desiredProperties _lastEdited(0), _type(EntityTypes::Unknown), - _localRenderAlpha(1.0f), - - _localRenderAlphaChanged(false), - _defaultSettings(true), _naturalDimensions(1.0f, 1.0f, 1.0f), _naturalPosition(0.0f, 0.0f, 0.0f), @@ -1732,9 +1728,6 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool properties.setProperty("isFacingAvatar", convertScriptValue(engine, getBillboardMode() == BillboardMode::FULL)); } - // FIXME - I don't think these properties are supported any more - //COPY_PROPERTY_TO_QSCRIPTVALUE(localRenderAlpha); - return properties; } @@ -1775,7 +1768,6 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool COPY_PROPERTY_FROM_QSCRIPTVALUE(emitterShouldTrail, bool, setEmitterShouldTrail); COPY_PROPERTY_FROM_QSCRIPTVALUE(modelURL, QString, setModelURL); COPY_PROPERTY_FROM_QSCRIPTVALUE(compoundShapeURL, QString, setCompoundShapeURL); - COPY_PROPERTY_FROM_QSCRIPTVALUE(localRenderAlpha, float, setLocalRenderAlpha); COPY_PROPERTY_FROM_QSCRIPTVALUE(collisionless, bool, setCollisionless); COPY_PROPERTY_FROM_QSCRIPTVALUE_GETTER(ignoreForCollisions, bool, setCollisionless, getCollisionless); // legacy support COPY_PROPERTY_FROM_QSCRIPTVALUE(collisionMask, uint16_t, setCollisionMask); @@ -2021,7 +2013,6 @@ void EntityItemProperties::merge(const EntityItemProperties& other) { COPY_PROPERTY_IF_CHANGED(emitterShouldTrail); COPY_PROPERTY_IF_CHANGED(modelURL); COPY_PROPERTY_IF_CHANGED(compoundShapeURL); - COPY_PROPERTY_IF_CHANGED(localRenderAlpha); COPY_PROPERTY_IF_CHANGED(collisionless); COPY_PROPERTY_IF_CHANGED(collisionMask); COPY_PROPERTY_IF_CHANGED(dynamic); @@ -3401,7 +3392,6 @@ void EntityItemProperties::markAllChanged() { _alphaChanged = true; _modelURLChanged = true; _compoundShapeURLChanged = true; - _localRenderAlphaChanged = true; _isSpotlightChanged = true; _collisionlessChanged = true; _collisionMaskChanged = true; diff --git a/libraries/entities/src/EntityItemProperties.h b/libraries/entities/src/EntityItemProperties.h index e2f483d5b8..f9ec0b9605 100644 --- a/libraries/entities/src/EntityItemProperties.h +++ b/libraries/entities/src/EntityItemProperties.h @@ -350,9 +350,6 @@ public: bool containsPositionChange() const { return _positionChanged; } bool containsDimensionsChange() const { return _dimensionsChanged; } - float getLocalRenderAlpha() const { return _localRenderAlpha; } - void setLocalRenderAlpha(float value) { _localRenderAlpha = value; _localRenderAlphaChanged = true; } - static OctreeElement::AppendState encodeEntityEditPacket(PacketType command, EntityItemID id, const EntityItemProperties& properties, QByteArray& buffer, EntityPropertyFlags requestedProperties, EntityPropertyFlags& didntFitProperties); @@ -363,8 +360,6 @@ public: static bool decodeEntityEditPacket(const unsigned char* data, int bytesToRead, int& processedBytes, EntityItemID& entityID, EntityItemProperties& properties); - bool localRenderAlphaChanged() const { return _localRenderAlphaChanged; } - void clearID() { _id = UNKNOWN_ENTITY_ID; _idSet = false; } void markAllChanged(); @@ -452,8 +447,6 @@ private: EntityTypes::EntityType _type; void setType(const QString& typeName) { _type = EntityTypes::getEntityTypeFromName(typeName); } - float _localRenderAlpha; - bool _localRenderAlphaChanged; bool _defaultSettings; bool _dimensionsInitialized = true; // Only false if creating an entity locally with no dimensions properties diff --git a/libraries/entities/src/EntityItemPropertiesDefaults.h b/libraries/entities/src/EntityItemPropertiesDefaults.h index 6c39e90c91..3c4577ba2f 100644 --- a/libraries/entities/src/EntityItemPropertiesDefaults.h +++ b/libraries/entities/src/EntityItemPropertiesDefaults.h @@ -44,7 +44,6 @@ const QString ENTITY_ITEM_DEFAULT_CERTIFICATE_ID = QString(""); const quint32 ENTITY_ITEM_DEFAULT_STATIC_CERTIFICATE_VERSION = 0; const float ENTITY_ITEM_DEFAULT_ALPHA = 1.0f; -const float ENTITY_ITEM_DEFAULT_LOCAL_RENDER_ALPHA = 1.0f; const bool ENTITY_ITEM_DEFAULT_VISIBLE = true; const bool ENTITY_ITEM_DEFAULT_VISIBLE_IN_SECONDARY_CAMERA = true; const bool ENTITY_ITEM_DEFAULT_CAN_CAST_SHADOW { true }; diff --git a/libraries/entities/src/LineEntityItem.cpp b/libraries/entities/src/LineEntityItem.cpp index 4957c30112..766fd12bbb 100644 --- a/libraries/entities/src/LineEntityItem.cpp +++ b/libraries/entities/src/LineEntityItem.cpp @@ -173,19 +173,15 @@ void LineEntityItem::setLineWidth(float lineWidth) { } float LineEntityItem::getLineWidth() const { - float result; - withReadLock([&] { - result = _lineWidth; + return resultWithReadLock([&] { + return _lineWidth; }); - return result; } QVector LineEntityItem::getLinePoints() const { - QVector result; - withReadLock([&] { - result = _points; + return resultWithReadLock>([&] { + return _points; }); - return result; } void LineEntityItem::resetPointsChanged() { diff --git a/libraries/networking/src/udt/PacketHeaders.cpp b/libraries/networking/src/udt/PacketHeaders.cpp index f2db155dca..ebd747fd39 100644 --- a/libraries/networking/src/udt/PacketHeaders.cpp +++ b/libraries/networking/src/udt/PacketHeaders.cpp @@ -33,7 +33,7 @@ PacketVersion versionForPacketType(PacketType packetType) { case PacketType::EntityEdit: case PacketType::EntityData: case PacketType::EntityPhysics: - return static_cast(EntityVersion::MissingTextProperties); + return static_cast(EntityVersion::MissingLineProperties); case PacketType::EntityQuery: return static_cast(EntityQueryPacketVersion::ConicalFrustums); case PacketType::AvatarIdentity: diff --git a/libraries/networking/src/udt/PacketHeaders.h b/libraries/networking/src/udt/PacketHeaders.h index 0d4d065f5b..1ed2dd83ff 100644 --- a/libraries/networking/src/udt/PacketHeaders.h +++ b/libraries/networking/src/udt/PacketHeaders.h @@ -250,7 +250,8 @@ enum class EntityVersion : PacketVersion { CleanupProperties, ImageEntities, GridEntities, - MissingTextProperties + MissingTextProperties, + MissingLineProperties }; enum class EntityScriptCallMethodVersion : PacketVersion { From c0bd9121fbe1935cb537feccf9d28f470e94becf Mon Sep 17 00:00:00 2001 From: Thijs Wenker Date: Wed, 12 Dec 2018 19:55:14 +0100 Subject: [PATCH 008/230] open avatar projects --- .../resources/qml/hifi/AvatarPackager.qml | 66 +++++++++++++++---- .../qml/hifi/avatarPackager/AvatarProject.qml | 59 +++++++++++++++++ interface/src/avatar/AvatarPackager.cpp | 19 ++---- interface/src/avatar/AvatarPackager.h | 9 +-- interface/src/avatar/AvatarProject.cpp | 2 +- interface/src/avatar/AvatarProject.h | 26 +++++++- 6 files changed, 149 insertions(+), 32 deletions(-) create mode 100644 interface/resources/qml/hifi/avatarPackager/AvatarProject.qml diff --git a/interface/resources/qml/hifi/AvatarPackager.qml b/interface/resources/qml/hifi/AvatarPackager.qml index 787c8d6b69..d93a3900a8 100644 --- a/interface/resources/qml/hifi/AvatarPackager.qml +++ b/interface/resources/qml/hifi/AvatarPackager.qml @@ -7,6 +7,7 @@ import "../controlsUit" 1.0 as HifiControls import "../stylesUit" 1.0 import "../windows" as Windows import "../dialogs" +import "avatarPackager" Windows.ScrollingWindow { id: root @@ -19,35 +20,78 @@ Windows.ScrollingWindow { destroyOnHidden: true implicitWidth: 384; implicitHeight: 640 minSize: Qt.vector2d(200, 300) + + //HifiConstants { id: hifi } + + AvatarProject { + id: avatarProject + colorScheme: root.colorScheme + } + Rectangle { + id: avatarPackagerMain anchors.left: parent.left anchors.right: parent.right anchors.top: parent.top anchors.bottom: parent.bottom RalewaySemiBold { - id: displayNameLabel + id: avatarPackagerLabel size: 24; anchors.left: parent.left anchors.top: parent.top anchors.topMargin: 25 - text: 'Avatar Projects' + anchors.bottomMargin: 25 + text: 'Avatar Packager' } HifiControls.Button { + id: createProjectButton anchors.left: parent.left anchors.right: parent.right - anchors.top: displayNameLabel.bottom - text: qsTr("Open Avatar Project") - // color: hifi.buttons.blue + anchors.top: avatarPackagerLabel.bottom + text: qsTr("Create Project") colorScheme: root.colorScheme height: 30 onClicked: function() { - let avatarProject = AvatarPackagerCore.openAvatarProject(); - if (avatarProject) { - console.log("LOAD COMPLETE"); - } else { - console.log("LOAD FAILED"); - } + + } + } + HifiControls.Button { + id: openProjectButton + anchors.left: parent.left + anchors.right: parent.right + anchors.top: createProjectButton.bottom + text: qsTr("Open Avatar Project") + colorScheme: root.colorScheme + height: 30 + onClicked: function() { + var avatarProjectsPath = fileDialogHelper.standardPath(/*fileDialogHelper.StandardLocation.DocumentsLocation*/ 1) + "/High Fidelity/Avatar Projects"; + console.log("path = " + avatarProjectsPath); + + // TODO: make the dialog modal + + var browser = desktop.fileDialog({ + selectDirectory: false, + dir: fileDialogHelper.pathToUrl(avatarProjectsPath), + filter: "Avatar Project FST Files (*.fst)", + title: "Open Project (.fst)" + }); + + browser.canceled.connect(function() { + + }); + + browser.selectedFile.connect(function(fileUrl) { + console.log("FOUND PATH " + fileUrl); + let fstFilePath = fileDialogHelper.urlToPath(fileUrl); + let avatarProject = AvatarPackagerCore.openAvatarProject(fstFilePath); + if (avatarProject) { + console.log("LOAD COMPLETE"); + console.log("file dir = " + AvatarPackagerCore.currentAvatarProject.projectFolderPath); + avatarProject.visible = true; + avatarPackagerMain.visible = false; + } + }); } } } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml new file mode 100644 index 0000000000..a34c709567 --- /dev/null +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -0,0 +1,59 @@ +import QtQuick 2.6 +import QtQuick.Controls 2.2 +import QtQuick.Layouts 1.3 +import QtGraphicalEffects 1.0 + +import "../../controlsUit" 1.0 as HifiControls +import "../../stylesUit" 1.0 + +Rectangle { + id: avatarProject + + HifiConstants { id: hifi } + + + z: 3 + property int colorScheme; + + visible: false + + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + anchors.bottom: parent.bottom + + RalewaySemiBold { + id: avatarProjectLabel + size: 24; + anchors.left: parent.left + anchors.top: parent.top + anchors.topMargin: 25 + anchors.bottomMargin: 25 + text: 'Avatar Project' + } + HifiControls.Button { + id: openFolderButton + anchors.left: parent.left + anchors.right: parent.right + anchors.top: avatarProjectLabel.bottom + text: qsTr("Open Project Folder") + colorScheme: avatarProject.colorScheme + height: 30 + onClicked: function() { + fileDialogHelper.openDirectory(AvatarPackagerCore.currentAvatarProject.projectFolderPath); + } + } + HifiControls.Button { + id: uploadButton + anchors.left: parent.left + anchors.right: parent.right + anchors.top: openFolderButton.bottom + text: qsTr("Upload") + color: hifi.buttons.blue + colorScheme: avatarProject.colorScheme + height: 30 + onClicked: function() { + + } + } +} diff --git a/interface/src/avatar/AvatarPackager.cpp b/interface/src/avatar/AvatarPackager.cpp index ef127d4459..c6c1318eab 100644 --- a/interface/src/avatar/AvatarPackager.cpp +++ b/interface/src/avatar/AvatarPackager.cpp @@ -12,11 +12,9 @@ #include "AvatarPackager.h" #include -#include #include #include -#include "ModelSelector.h" bool AvatarPackager::open() { static const QUrl url{ "hifi/AvatarPackager.qml" }; @@ -28,17 +26,10 @@ bool AvatarPackager::open() { return true; } -QObject* AvatarPackager::openAvatarProject() { - // TODO: use QML file browser here, could handle this on QML side instead - static Setting::Handle lastModelBrowseLocation("LastModelBrowseLocation", - QStandardPaths::writableLocation(QStandardPaths::DownloadLocation)); - const QString filename = QFileDialog::getOpenFileName(nullptr, "Select your model file ...", - lastModelBrowseLocation.get(), - "Model files (*.fst *.fbx)"); - QFileInfo fileInfo(filename); - - if (fileInfo.isFile() && fileInfo.completeSuffix().contains(QRegExp("fst|fbx|FST|FBX"))) { - return AvatarProject::openAvatarProject(fileInfo.absoluteFilePath()); +QObject* AvatarPackager::openAvatarProject(QString avatarProjectFSTPath) { + if (_currentAvatarProject) { + _currentAvatarProject->deleteLater(); } - return nullptr; + _currentAvatarProject = AvatarProject::openAvatarProject(avatarProjectFSTPath); + return _currentAvatarProject; } diff --git a/interface/src/avatar/AvatarPackager.h b/interface/src/avatar/AvatarPackager.h index 8f29f98c0b..a8ef6c6421 100644 --- a/interface/src/avatar/AvatarPackager.h +++ b/interface/src/avatar/AvatarPackager.h @@ -21,15 +21,16 @@ class AvatarPackager : public QObject, public Dependency { Q_OBJECT SINGLETON_DEPENDENCY + Q_PROPERTY(QObject* currentAvatarProject READ getAvatarProject) public: bool open(); - Q_INVOKABLE void openAvatarProjectWithoutReturnType() { - openAvatarProject(); - } + Q_INVOKABLE QObject* openAvatarProject(QString avatarProjectFSTPath); - Q_INVOKABLE QObject* openAvatarProject(); +private: + Q_INVOKABLE AvatarProject* getAvatarProject() const { return _currentAvatarProject; }; + AvatarProject* _currentAvatarProject { nullptr }; }; #endif // hifi_AvatarPackager_h diff --git a/interface/src/avatar/AvatarProject.cpp b/interface/src/avatar/AvatarProject.cpp index 876bd1725b..a3b22ab2c2 100644 --- a/interface/src/avatar/AvatarProject.cpp +++ b/interface/src/avatar/AvatarProject.cpp @@ -1,5 +1,5 @@ // -// AvatarProject.h +// AvatarProject.cpp // // // Created by Thijs Wenker on 12/7/2018 diff --git a/interface/src/avatar/AvatarProject.h b/interface/src/avatar/AvatarProject.h index cc347c3d4b..2114b147dd 100644 --- a/interface/src/avatar/AvatarProject.h +++ b/interface/src/avatar/AvatarProject.h @@ -14,8 +14,15 @@ #define hifi_AvatarProject_h #include +#include +#include class AvatarProject : public QObject { + Q_OBJECT + Q_PROPERTY(QString projectFolderPath READ getProjectPath) + Q_PROPERTY(QString projectFSTPath READ getFSTPath) + Q_PROPERTY(QString projectFBXPath READ getFBXPath) + public: Q_INVOKABLE bool write() { // Write FST here @@ -33,13 +40,28 @@ public: static AvatarProject* openAvatarProject(QString path); private: - AvatarProject(QString fstPath) { - + AvatarProject(QString fstPath) : + _fstPath(fstPath) { + auto fileInfo = QFileInfo(_fstPath); + _projectPath = fileInfo.absoluteDir().absolutePath(); + + _fstPath = _projectPath + "TemporaryFBX.fbx"; + } ~AvatarProject() { // TODO: cleanup FST / AvatarProjectUploader etc. } + + Q_INVOKABLE QString getProjectPath() const { return _projectPath; } + Q_INVOKABLE QString getFSTPath() const { return _fstPath; } + Q_INVOKABLE QString getFBXPath() const { return _fbxPath; } + + QString _projectPath; + QString _fstPath; + // TODO: handle this in the FST Class + QString _fbxPath; + }; #endif // hifi_AvatarProject_h From 96673bb5b9087194ebf610c0a65a416f3ee27a0e Mon Sep 17 00:00:00 2001 From: Thijs Wenker Date: Wed, 12 Dec 2018 21:15:44 +0100 Subject: [PATCH 009/230] show project page --- .../resources/qml/hifi/AvatarPackager.qml | 121 +++++++++--------- .../qml/hifi/avatarPackager/AvatarProject.qml | 10 +- interface/src/avatar/AvatarPackager.cpp | 3 +- 3 files changed, 70 insertions(+), 64 deletions(-) diff --git a/interface/resources/qml/hifi/AvatarPackager.qml b/interface/resources/qml/hifi/AvatarPackager.qml index d93a3900a8..2044529427 100644 --- a/interface/resources/qml/hifi/AvatarPackager.qml +++ b/interface/resources/qml/hifi/AvatarPackager.qml @@ -22,76 +22,83 @@ Windows.ScrollingWindow { minSize: Qt.vector2d(200, 300) //HifiConstants { id: hifi } - - AvatarProject { - id: avatarProject - colorScheme: root.colorScheme - } - Rectangle { - id: avatarPackagerMain anchors.left: parent.left anchors.right: parent.right anchors.top: parent.top anchors.bottom: parent.bottom - RalewaySemiBold { - id: avatarPackagerLabel - size: 24; + AvatarProject { + id: avatarProject + colorScheme: root.colorScheme + visible: false + } + + Rectangle { + id: avatarPackagerMain anchors.left: parent.left + anchors.right: parent.right anchors.top: parent.top - anchors.topMargin: 25 - anchors.bottomMargin: 25 - text: 'Avatar Packager' - } - - HifiControls.Button { - id: createProjectButton - anchors.left: parent.left - anchors.right: parent.right - anchors.top: avatarPackagerLabel.bottom - text: qsTr("Create Project") - colorScheme: root.colorScheme - height: 30 - onClicked: function() { - + anchors.bottom: parent.bottom + RalewaySemiBold { + id: avatarPackagerLabel + size: 24; + anchors.left: parent.left + anchors.top: parent.top + anchors.topMargin: 25 + anchors.bottomMargin: 25 + text: 'Avatar Packager' } - } - HifiControls.Button { - id: openProjectButton - anchors.left: parent.left - anchors.right: parent.right - anchors.top: createProjectButton.bottom - text: qsTr("Open Avatar Project") - colorScheme: root.colorScheme - height: 30 - onClicked: function() { - var avatarProjectsPath = fileDialogHelper.standardPath(/*fileDialogHelper.StandardLocation.DocumentsLocation*/ 1) + "/High Fidelity/Avatar Projects"; - console.log("path = " + avatarProjectsPath); - // TODO: make the dialog modal + HifiControls.Button { + id: createProjectButton + anchors.left: parent.left + anchors.right: parent.right + anchors.top: avatarPackagerLabel.bottom + text: qsTr("Create Project") + colorScheme: root.colorScheme + height: 30 + onClicked: function() { + + } + } + HifiControls.Button { + id: openProjectButton + anchors.left: parent.left + anchors.right: parent.right + anchors.top: createProjectButton.bottom + text: qsTr("Open Avatar Project") + colorScheme: root.colorScheme + height: 30 + onClicked: function() { + var avatarProjectsPath = fileDialogHelper.standardPath(/*fileDialogHelper.StandardLocation.DocumentsLocation*/ 1) + "/High Fidelity/Avatar Projects"; + console.log("path = " + avatarProjectsPath); - var browser = desktop.fileDialog({ - selectDirectory: false, - dir: fileDialogHelper.pathToUrl(avatarProjectsPath), - filter: "Avatar Project FST Files (*.fst)", - title: "Open Project (.fst)" - }); + // TODO: make the dialog modal - browser.canceled.connect(function() { + var browser = desktop.fileDialog({ + selectDirectory: false, + dir: fileDialogHelper.pathToUrl(avatarProjectsPath), + filter: "Avatar Project FST Files (*.fst)", + title: "Open Project (.fst)" + }); + + browser.canceled.connect(function() { - }); + }); - browser.selectedFile.connect(function(fileUrl) { - console.log("FOUND PATH " + fileUrl); - let fstFilePath = fileDialogHelper.urlToPath(fileUrl); - let avatarProject = AvatarPackagerCore.openAvatarProject(fstFilePath); - if (avatarProject) { - console.log("LOAD COMPLETE"); - console.log("file dir = " + AvatarPackagerCore.currentAvatarProject.projectFolderPath); - avatarProject.visible = true; - avatarPackagerMain.visible = false; - } - }); + browser.selectedFile.connect(function(fileUrl) { + console.log("FOUND PATH " + fileUrl); + let fstFilePath = fileDialogHelper.urlToPath(fileUrl); + let currentAvatarProject = AvatarPackagerCore.openAvatarProject(fstFilePath); + if (currentAvatarProject) { + console.log("LOAD COMPLETE"); + console.log("file dir = " + AvatarPackagerCore.currentAvatarProject.projectFolderPath); + + avatarPackagerMain.visible = false; + avatarProject.visible = true; + } + }); + } } } } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml index a34c709567..0a6ed6c459 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -7,15 +7,13 @@ import "../../controlsUit" 1.0 as HifiControls import "../../stylesUit" 1.0 Rectangle { - id: avatarProject + id: root HifiConstants { id: hifi } - - z: 3 property int colorScheme; - visible: false + visible: true anchors.left: parent.left anchors.right: parent.right @@ -37,7 +35,7 @@ Rectangle { anchors.right: parent.right anchors.top: avatarProjectLabel.bottom text: qsTr("Open Project Folder") - colorScheme: avatarProject.colorScheme + colorScheme: root.colorScheme height: 30 onClicked: function() { fileDialogHelper.openDirectory(AvatarPackagerCore.currentAvatarProject.projectFolderPath); @@ -50,7 +48,7 @@ Rectangle { anchors.top: openFolderButton.bottom text: qsTr("Upload") color: hifi.buttons.blue - colorScheme: avatarProject.colorScheme + colorScheme: root.colorScheme height: 30 onClicked: function() { diff --git a/interface/src/avatar/AvatarPackager.cpp b/interface/src/avatar/AvatarPackager.cpp index c6c1318eab..1088c862d4 100644 --- a/interface/src/avatar/AvatarPackager.cpp +++ b/interface/src/avatar/AvatarPackager.cpp @@ -28,7 +28,8 @@ bool AvatarPackager::open() { QObject* AvatarPackager::openAvatarProject(QString avatarProjectFSTPath) { if (_currentAvatarProject) { - _currentAvatarProject->deleteLater(); + //_currentAvatarProject->deleteLater(); + //_currentAvatarProject = nullptr; } _currentAvatarProject = AvatarProject::openAvatarProject(avatarProjectFSTPath); return _currentAvatarProject; From 770da220d785d0124f81824565a668d837615a35 Mon Sep 17 00:00:00 2001 From: SamGondelman Date: Wed, 12 Dec 2018 16:47:35 -0800 Subject: [PATCH 010/230] cleanup entity properties more and start polyline work, remove lines --- .../src/RenderableLineEntityItem.cpp | 90 - .../src/RenderableLineEntityItem.h | 50 - .../entities/src/EntityItemProperties.cpp | 2623 +++++++++-------- libraries/entities/src/EntityItemProperties.h | 25 +- .../entities/src/EntityPropertyFlags.cpp | 2 - libraries/entities/src/EntityPropertyFlags.h | 542 ++-- .../entities/src/EntityScriptingInterface.cpp | 83 - .../entities/src/EntityScriptingInterface.h | 65 - libraries/entities/src/EntityTypes.cpp | 2 - libraries/entities/src/EntityTypes.h | 3 - libraries/entities/src/LineEntityItem.cpp | 191 -- libraries/entities/src/LineEntityItem.h | 82 - libraries/entities/src/PolyLineEntityItem.cpp | 13 +- scripts/developer/tests/avatarToWorldTests.js | 46 - scripts/developer/tests/worldToAvatarTests.js | 47 - 15 files changed, 1665 insertions(+), 2199 deletions(-) delete mode 100644 libraries/entities-renderer/src/RenderableLineEntityItem.cpp delete mode 100644 libraries/entities-renderer/src/RenderableLineEntityItem.h delete mode 100644 libraries/entities/src/LineEntityItem.cpp delete mode 100644 libraries/entities/src/LineEntityItem.h diff --git a/libraries/entities-renderer/src/RenderableLineEntityItem.cpp b/libraries/entities-renderer/src/RenderableLineEntityItem.cpp deleted file mode 100644 index 884f8a2566..0000000000 --- a/libraries/entities-renderer/src/RenderableLineEntityItem.cpp +++ /dev/null @@ -1,90 +0,0 @@ -// -// RenderableLineEntityItem.cpp -// libraries/entities-renderer/src/ -// -// Created by Seth Alves on 5/11/15. -// Copyright 2015 High Fidelity, Inc. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -#include "RenderableLineEntityItem.h" - -#include -#include - -using namespace render; -using namespace render::entities; - -LineEntityRenderer::LineEntityRenderer(const EntityItemPointer& entity) : - Parent(entity) { - _lineVerticesID = DependencyManager::get()->allocateID(); -} - -LineEntityRenderer::~LineEntityRenderer() { - auto geometryCache = DependencyManager::get(); - if (geometryCache) { - geometryCache->releaseID(_lineVerticesID); - for (auto id : _glowGeometryIDs) { - geometryCache->releaseID(id); - } - } -} - -bool LineEntityRenderer::isTransparent() const { - return Parent::isTransparent() || _glow > 0.0f || _alpha < 1.0f; -} - -bool LineEntityRenderer::needsRenderUpdateFromTypedEntity(const TypedEntityPointer& entity) const { - if (entity->pointsChanged()) { - return true; - } - - if (_color != entity->getColor()) { - return true; - } - - if (_alpha != entity->getAlpha()) { - return true; - } - - if (_lineWidth != entity->getLineWidth()) { - return true; - } - - if (_glow != entity->getGlow()) { - return true; - } - - return false; -} - -void LineEntityRenderer::doRenderUpdateAsynchronousTyped(const TypedEntityPointer& entity) { - entity->resetPointsChanged(); - _linePoints = entity->getLinePoints(); - _color = entity->getColor(); - _alpha = entity->getAlpha(); - _lineWidth = entity->getLineWidth(); - _glow = entity->getGlow(); - - // TODO: take into account _lineWidth - geometryCache->updateVertices(_lineVerticesID, _linePoints, lineColor); -} - -void LineEntityRenderer::doRender(RenderArgs* args) { - PerformanceTimer perfTimer("RenderableLineEntityItem::render"); - - Q_ASSERT(args->_batch); - gpu::Batch& batch = *args->_batch; - - const auto& modelTransform = getModelTransform(); - Transform transform = Transform(); - transform.setTranslation(modelTransform.getTranslation()); - transform.setRotation(modelTransform.getRotation()); - batch.setModelTransform(transform); - if (_linePoints.size() > 1) { - DependencyManager::get()->bindSimpleProgram(batch); - DependencyManager::get()->renderVertices(batch, gpu::LINE_STRIP, _lineVerticesID); - } -} diff --git a/libraries/entities-renderer/src/RenderableLineEntityItem.h b/libraries/entities-renderer/src/RenderableLineEntityItem.h deleted file mode 100644 index 50b40309fd..0000000000 --- a/libraries/entities-renderer/src/RenderableLineEntityItem.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// RenderableLineEntityItem.h -// libraries/entities-renderer/src/ -// -// Created by Seth Alves on 5/11/15. -// Copyright 2015 High Fidelity, Inc. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -#ifndef hifi_RenderableLineEntityItem_h -#define hifi_RenderableLineEntityItem_h - -#include "RenderableEntityItem.h" -#include -#include - - -namespace render { namespace entities { - -class LineEntityRenderer : public TypedEntityRenderer { - using Parent = TypedEntityRenderer; - friend class EntityRenderer; - -public: - LineEntityRenderer(const EntityItemPointer& entity); - ~LineEntityRenderer(); - - bool isTransparent() const override; - -protected: - virtual bool needsRenderUpdateFromTypedEntity(const TypedEntityPointer& entity) const override; - virtual void doRenderUpdateAsynchronousTyped(const TypedEntityPointer& entity) override; - virtual void doRender(RenderArgs* args) override; - -private: - int _lineVerticesID { GeometryCache::UNKNOWN_ID }; - std::vector _glowGeometryIDs; - - QVector _linePoints; - glm::u8vec3 _color; - float _alpha; - float _lineWidth; - float _glow; -}; - -} } // namespace - -#endif // hifi_RenderableLineEntityItem_h diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 790d8dcb90..2a7fe1ef77 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -346,74 +346,174 @@ void EntityItemProperties::setBillboardModeFromString(const QString& materialMap EntityPropertyFlags EntityItemProperties::getChangedProperties() const { EntityPropertyFlags changedProperties; - CHECK_PROPERTY_CHANGE(PROP_LAST_EDITED_BY, lastEditedBy); + // Core + CHECK_PROPERTY_CHANGE(PROP_VISIBLE, visible); + CHECK_PROPERTY_CHANGE(PROP_NAME, name); + CHECK_PROPERTY_CHANGE(PROP_LOCKED, locked); + CHECK_PROPERTY_CHANGE(PROP_USER_DATA, userData); + CHECK_PROPERTY_CHANGE(PROP_HREF, href); + CHECK_PROPERTY_CHANGE(PROP_DESCRIPTION, description); CHECK_PROPERTY_CHANGE(PROP_POSITION, position); CHECK_PROPERTY_CHANGE(PROP_DIMENSIONS, dimensions); CHECK_PROPERTY_CHANGE(PROP_ROTATION, rotation); + CHECK_PROPERTY_CHANGE(PROP_REGISTRATION_POINT, registrationPoint); + //CHECK_PROPERTY_CHANGE(PROP_CREATED, created); // can't change + CHECK_PROPERTY_CHANGE(PROP_LAST_EDITED_BY, lastEditedBy); + CHECK_PROPERTY_CHANGE(PROP_ENTITY_HOST_TYPE, entityHostType); + CHECK_PROPERTY_CHANGE(PROP_OWNING_AVATAR_ID, owningAvatarID); + CHECK_PROPERTY_CHANGE(PROP_PARENT_ID, parentID); + CHECK_PROPERTY_CHANGE(PROP_PARENT_JOINT_INDEX, parentJointIndex); + CHECK_PROPERTY_CHANGE(PROP_QUERY_AA_CUBE, queryAACube); + CHECK_PROPERTY_CHANGE(PROP_CAN_CAST_SHADOW, canCastShadow); + CHECK_PROPERTY_CHANGE(PROP_VISIBLE_IN_SECONDARY_CAMERA, isVisibleInSecondaryCamera); + changedProperties += _grab.getChangedProperties(); + + // Physics CHECK_PROPERTY_CHANGE(PROP_DENSITY, density); CHECK_PROPERTY_CHANGE(PROP_VELOCITY, velocity); + CHECK_PROPERTY_CHANGE(PROP_ANGULAR_VELOCITY, angularVelocity); CHECK_PROPERTY_CHANGE(PROP_GRAVITY, gravity); CHECK_PROPERTY_CHANGE(PROP_ACCELERATION, acceleration); CHECK_PROPERTY_CHANGE(PROP_DAMPING, damping); + CHECK_PROPERTY_CHANGE(PROP_ANGULAR_DAMPING, angularDamping); CHECK_PROPERTY_CHANGE(PROP_RESTITUTION, restitution); CHECK_PROPERTY_CHANGE(PROP_FRICTION, friction); CHECK_PROPERTY_CHANGE(PROP_LIFETIME, lifetime); - CHECK_PROPERTY_CHANGE(PROP_SCRIPT, script); - CHECK_PROPERTY_CHANGE(PROP_SCRIPT_TIMESTAMP, scriptTimestamp); - CHECK_PROPERTY_CHANGE(PROP_SERVER_SCRIPTS, serverScripts); - CHECK_PROPERTY_CHANGE(PROP_COLLISION_SOUND_URL, collisionSoundURL); - CHECK_PROPERTY_CHANGE(PROP_COLOR, color); - CHECK_PROPERTY_CHANGE(PROP_COLOR_SPREAD, colorSpread); - CHECK_PROPERTY_CHANGE(PROP_COLOR_START, colorStart); - CHECK_PROPERTY_CHANGE(PROP_COLOR_FINISH, colorFinish); - CHECK_PROPERTY_CHANGE(PROP_ALPHA, alpha); - CHECK_PROPERTY_CHANGE(PROP_ALPHA_SPREAD, alphaSpread); - CHECK_PROPERTY_CHANGE(PROP_ALPHA_START, alphaStart); - CHECK_PROPERTY_CHANGE(PROP_ALPHA_FINISH, alphaFinish); - CHECK_PROPERTY_CHANGE(PROP_EMITTER_SHOULD_TRAIL, emitterShouldTrail); - CHECK_PROPERTY_CHANGE(PROP_MODEL_URL, modelURL); - CHECK_PROPERTY_CHANGE(PROP_COMPOUND_SHAPE_URL, compoundShapeURL); - CHECK_PROPERTY_CHANGE(PROP_VISIBLE, visible); - CHECK_PROPERTY_CHANGE(PROP_CAN_CAST_SHADOW, canCastShadow); - CHECK_PROPERTY_CHANGE(PROP_REGISTRATION_POINT, registrationPoint); - CHECK_PROPERTY_CHANGE(PROP_ANGULAR_VELOCITY, angularVelocity); - CHECK_PROPERTY_CHANGE(PROP_ANGULAR_DAMPING, angularDamping); CHECK_PROPERTY_CHANGE(PROP_COLLISIONLESS, collisionless); CHECK_PROPERTY_CHANGE(PROP_COLLISION_MASK, collisionMask); CHECK_PROPERTY_CHANGE(PROP_DYNAMIC, dynamic); - CHECK_PROPERTY_CHANGE(PROP_IS_SPOTLIGHT, isSpotlight); - CHECK_PROPERTY_CHANGE(PROP_INTENSITY, intensity); - CHECK_PROPERTY_CHANGE(PROP_FALLOFF_RADIUS, falloffRadius); - CHECK_PROPERTY_CHANGE(PROP_EXPONENT, exponent); - CHECK_PROPERTY_CHANGE(PROP_CUTOFF, cutoff); - CHECK_PROPERTY_CHANGE(PROP_LOCKED, locked); - CHECK_PROPERTY_CHANGE(PROP_TEXTURES, textures); - CHECK_PROPERTY_CHANGE(PROP_USER_DATA, userData); CHECK_PROPERTY_CHANGE(PROP_SIMULATION_OWNER, simulationOwner); - CHECK_PROPERTY_CHANGE(PROP_TEXT, text); - CHECK_PROPERTY_CHANGE(PROP_LINE_HEIGHT, lineHeight); - CHECK_PROPERTY_CHANGE(PROP_TEXT_COLOR, textColor); - CHECK_PROPERTY_CHANGE(PROP_BACKGROUND_COLOR, backgroundColor); + CHECK_PROPERTY_CHANGE(PROP_COLLISION_SOUND_URL, collisionSoundURL); + CHECK_PROPERTY_CHANGE(PROP_ACTION_DATA, actionData); + + // Cloning + CHECK_PROPERTY_CHANGE(PROP_CLONEABLE, cloneable); + CHECK_PROPERTY_CHANGE(PROP_CLONE_LIFETIME, cloneLifetime); + CHECK_PROPERTY_CHANGE(PROP_CLONE_LIMIT, cloneLimit); + CHECK_PROPERTY_CHANGE(PROP_CLONE_DYNAMIC, cloneDynamic); + CHECK_PROPERTY_CHANGE(PROP_CLONE_AVATAR_ENTITY, cloneAvatarEntity); + CHECK_PROPERTY_CHANGE(PROP_CLONE_ORIGIN_ID, cloneOriginID); + + // Scripts + CHECK_PROPERTY_CHANGE(PROP_SCRIPT, script); + CHECK_PROPERTY_CHANGE(PROP_SCRIPT_TIMESTAMP, scriptTimestamp); + CHECK_PROPERTY_CHANGE(PROP_SERVER_SCRIPTS, serverScripts); + + // Common CHECK_PROPERTY_CHANGE(PROP_SHAPE_TYPE, shapeType); - CHECK_PROPERTY_CHANGE(PROP_EMITTING_PARTICLES, isEmitting); + CHECK_PROPERTY_CHANGE(PROP_COMPOUND_SHAPE_URL, compoundShapeURL); + CHECK_PROPERTY_CHANGE(PROP_COLOR, color); + CHECK_PROPERTY_CHANGE(PROP_ALPHA, alpha); + CHECK_PROPERTY_CHANGE(PROP_TEXTURES, textures); + + // Particles CHECK_PROPERTY_CHANGE(PROP_MAX_PARTICLES, maxParticles); CHECK_PROPERTY_CHANGE(PROP_LIFESPAN, lifespan); + CHECK_PROPERTY_CHANGE(PROP_EMITTING_PARTICLES, isEmitting); CHECK_PROPERTY_CHANGE(PROP_EMIT_RATE, emitRate); CHECK_PROPERTY_CHANGE(PROP_EMIT_SPEED, emitSpeed); CHECK_PROPERTY_CHANGE(PROP_SPEED_SPREAD, speedSpread); CHECK_PROPERTY_CHANGE(PROP_EMIT_ORIENTATION, emitOrientation); CHECK_PROPERTY_CHANGE(PROP_EMIT_DIMENSIONS, emitDimensions); CHECK_PROPERTY_CHANGE(PROP_EMIT_RADIUS_START, emitRadiusStart); + CHECK_PROPERTY_CHANGE(PROP_EMIT_ACCELERATION, emitAcceleration); + CHECK_PROPERTY_CHANGE(PROP_ACCELERATION_SPREAD, accelerationSpread); CHECK_PROPERTY_CHANGE(PROP_POLAR_START, polarStart); CHECK_PROPERTY_CHANGE(PROP_POLAR_FINISH, polarFinish); CHECK_PROPERTY_CHANGE(PROP_AZIMUTH_START, azimuthStart); CHECK_PROPERTY_CHANGE(PROP_AZIMUTH_FINISH, azimuthFinish); - CHECK_PROPERTY_CHANGE(PROP_EMIT_ACCELERATION, emitAcceleration); - CHECK_PROPERTY_CHANGE(PROP_ACCELERATION_SPREAD, accelerationSpread); CHECK_PROPERTY_CHANGE(PROP_PARTICLE_RADIUS, particleRadius); CHECK_PROPERTY_CHANGE(PROP_RADIUS_SPREAD, radiusSpread); CHECK_PROPERTY_CHANGE(PROP_RADIUS_START, radiusStart); CHECK_PROPERTY_CHANGE(PROP_RADIUS_FINISH, radiusFinish); + CHECK_PROPERTY_CHANGE(PROP_COLOR_SPREAD, colorSpread); + CHECK_PROPERTY_CHANGE(PROP_COLOR_START, colorStart); + CHECK_PROPERTY_CHANGE(PROP_COLOR_FINISH, colorFinish); + CHECK_PROPERTY_CHANGE(PROP_ALPHA_SPREAD, alphaSpread); + CHECK_PROPERTY_CHANGE(PROP_ALPHA_START, alphaStart); + CHECK_PROPERTY_CHANGE(PROP_ALPHA_FINISH, alphaFinish); + CHECK_PROPERTY_CHANGE(PROP_EMITTER_SHOULD_TRAIL, emitterShouldTrail); + CHECK_PROPERTY_CHANGE(PROP_PARTICLE_SPIN, particleSpin); + CHECK_PROPERTY_CHANGE(PROP_SPIN_SPREAD, spinSpread); + CHECK_PROPERTY_CHANGE(PROP_SPIN_START, spinStart); + CHECK_PROPERTY_CHANGE(PROP_SPIN_FINISH, spinFinish); + CHECK_PROPERTY_CHANGE(PROP_PARTICLE_ROTATE_WITH_ENTITY, rotateWithEntity); + + // Model + CHECK_PROPERTY_CHANGE(PROP_MODEL_URL, modelURL); + CHECK_PROPERTY_CHANGE(PROP_JOINT_ROTATIONS_SET, jointRotationsSet); + CHECK_PROPERTY_CHANGE(PROP_JOINT_ROTATIONS, jointRotations); + CHECK_PROPERTY_CHANGE(PROP_JOINT_TRANSLATIONS_SET, jointTranslationsSet); + CHECK_PROPERTY_CHANGE(PROP_JOINT_TRANSLATIONS, jointTranslations); + CHECK_PROPERTY_CHANGE(PROP_RELAY_PARENT_JOINTS, relayParentJoints); + changedProperties += _animation.getChangedProperties(); + + // Light + CHECK_PROPERTY_CHANGE(PROP_IS_SPOTLIGHT, isSpotlight); + CHECK_PROPERTY_CHANGE(PROP_INTENSITY, intensity); + CHECK_PROPERTY_CHANGE(PROP_EXPONENT, exponent); + CHECK_PROPERTY_CHANGE(PROP_CUTOFF, cutoff); + CHECK_PROPERTY_CHANGE(PROP_FALLOFF_RADIUS, falloffRadius); + + // Text + CHECK_PROPERTY_CHANGE(PROP_TEXT, text); + CHECK_PROPERTY_CHANGE(PROP_LINE_HEIGHT, lineHeight); + CHECK_PROPERTY_CHANGE(PROP_TEXT_COLOR, textColor); + CHECK_PROPERTY_CHANGE(PROP_TEXT_ALPHA, textAlpha); + CHECK_PROPERTY_CHANGE(PROP_BACKGROUND_COLOR, backgroundColor); + CHECK_PROPERTY_CHANGE(PROP_BACKGROUND_ALPHA, backgroundAlpha); + CHECK_PROPERTY_CHANGE(PROP_BILLBOARD_MODE, billboardMode); + CHECK_PROPERTY_CHANGE(PROP_LEFT_MARGIN, leftMargin); + CHECK_PROPERTY_CHANGE(PROP_RIGHT_MARGIN, rightMargin); + CHECK_PROPERTY_CHANGE(PROP_TOP_MARGIN, topMargin); + CHECK_PROPERTY_CHANGE(PROP_BOTTOM_MARGIN, bottomMargin); + + // Zone + changedProperties += _keyLight.getChangedProperties(); + changedProperties += _ambientLight.getChangedProperties(); + changedProperties += _skybox.getChangedProperties(); + changedProperties += _haze.getChangedProperties(); + changedProperties += _bloom.getChangedProperties(); + CHECK_PROPERTY_CHANGE(PROP_FLYING_ALLOWED, flyingAllowed); + CHECK_PROPERTY_CHANGE(PROP_GHOSTING_ALLOWED, ghostingAllowed); + CHECK_PROPERTY_CHANGE(PROP_FILTER_URL, filterURL); + CHECK_PROPERTY_CHANGE(PROP_KEY_LIGHT_MODE, keyLightMode); + CHECK_PROPERTY_CHANGE(PROP_AMBIENT_LIGHT_MODE, ambientLightMode); + CHECK_PROPERTY_CHANGE(PROP_SKYBOX_MODE, skyboxMode); + CHECK_PROPERTY_CHANGE(PROP_HAZE_MODE, hazeMode); + CHECK_PROPERTY_CHANGE(PROP_BLOOM_MODE, bloomMode); + + // Polyvox + CHECK_PROPERTY_CHANGE(PROP_VOXEL_VOLUME_SIZE, voxelVolumeSize); + CHECK_PROPERTY_CHANGE(PROP_VOXEL_DATA, voxelData); + CHECK_PROPERTY_CHANGE(PROP_VOXEL_SURFACE_STYLE, voxelSurfaceStyle); + CHECK_PROPERTY_CHANGE(PROP_X_TEXTURE_URL, xTextureURL); + CHECK_PROPERTY_CHANGE(PROP_Y_TEXTURE_URL, yTextureURL); + CHECK_PROPERTY_CHANGE(PROP_Z_TEXTURE_URL, zTextureURL); + CHECK_PROPERTY_CHANGE(PROP_X_N_NEIGHBOR_ID, xNNeighborID); + CHECK_PROPERTY_CHANGE(PROP_Y_N_NEIGHBOR_ID, yNNeighborID); + CHECK_PROPERTY_CHANGE(PROP_Z_N_NEIGHBOR_ID, zNNeighborID); + CHECK_PROPERTY_CHANGE(PROP_X_P_NEIGHBOR_ID, xPNeighborID); + CHECK_PROPERTY_CHANGE(PROP_Y_P_NEIGHBOR_ID, yPNeighborID); + CHECK_PROPERTY_CHANGE(PROP_Z_P_NEIGHBOR_ID, zPNeighborID); + + // Web + CHECK_PROPERTY_CHANGE(PROP_SOURCE_URL, sourceUrl); + CHECK_PROPERTY_CHANGE(PROP_DPI, dpi); + + // Polyline + CHECK_PROPERTY_CHANGE(PROP_LINE_POINTS, linePoints); + CHECK_PROPERTY_CHANGE(PROP_STROKE_WIDTHS, strokeWidths); + CHECK_PROPERTY_CHANGE(PROP_STROKE_NORMALS, normals); + CHECK_PROPERTY_CHANGE(PROP_STROKE_COLORS, strokeColors); + CHECK_PROPERTY_CHANGE(PROP_IS_UV_MODE_STRETCH, isUVModeStretch); + CHECK_PROPERTY_CHANGE(PROP_LINE_GLOW, glow); + CHECK_PROPERTY_CHANGE(PROP_LINE_FACE_CAMERA, faceCamera); + + // Shape + CHECK_PROPERTY_CHANGE(PROP_SHAPE, shape); + + // Material CHECK_PROPERTY_CHANGE(PROP_MATERIAL_URL, materialURL); CHECK_PROPERTY_CHANGE(PROP_MATERIAL_MAPPING_MODE, materialMappingMode); CHECK_PROPERTY_CHANGE(PROP_MATERIAL_PRIORITY, priority); @@ -423,29 +523,18 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { CHECK_PROPERTY_CHANGE(PROP_MATERIAL_MAPPING_ROT, materialMappingRot); CHECK_PROPERTY_CHANGE(PROP_MATERIAL_DATA, materialData); CHECK_PROPERTY_CHANGE(PROP_MATERIAL_REPEAT, materialRepeat); - CHECK_PROPERTY_CHANGE(PROP_VISIBLE_IN_SECONDARY_CAMERA, isVisibleInSecondaryCamera); - CHECK_PROPERTY_CHANGE(PROP_PARTICLE_SPIN, particleSpin); - CHECK_PROPERTY_CHANGE(PROP_SPIN_SPREAD, spinSpread); - CHECK_PROPERTY_CHANGE(PROP_SPIN_START, spinStart); - CHECK_PROPERTY_CHANGE(PROP_SPIN_FINISH, spinFinish); - CHECK_PROPERTY_CHANGE(PROP_PARTICLE_ROTATE_WITH_ENTITY, rotateWithEntity); + // Image CHECK_PROPERTY_CHANGE(PROP_IMAGE_URL, imageURL); CHECK_PROPERTY_CHANGE(PROP_EMISSIVE, emissive); CHECK_PROPERTY_CHANGE(PROP_KEEP_ASPECT_RATIO, keepAspectRatio); CHECK_PROPERTY_CHANGE(PROP_SUB_IMAGE, subImage); + // Grid CHECK_PROPERTY_CHANGE(PROP_GRID_FOLLOW_CAMERA, followCamera); CHECK_PROPERTY_CHANGE(PROP_MAJOR_GRID_EVERY, majorGridEvery); CHECK_PROPERTY_CHANGE(PROP_MINOR_GRID_EVERY, minorGridEvery); - CHECK_PROPERTY_CHANGE(PROP_TEXT_ALPHA, textAlpha); - CHECK_PROPERTY_CHANGE(PROP_BACKGROUND_ALPHA, backgroundAlpha); - CHECK_PROPERTY_CHANGE(PROP_LEFT_MARGIN, leftMargin); - CHECK_PROPERTY_CHANGE(PROP_RIGHT_MARGIN, rightMargin); - CHECK_PROPERTY_CHANGE(PROP_TOP_MARGIN, topMargin); - CHECK_PROPERTY_CHANGE(PROP_BOTTOM_MARGIN, bottomMargin); - // Certifiable Properties CHECK_PROPERTY_CHANGE(PROP_ITEM_NAME, itemName); CHECK_PROPERTY_CHANGE(PROP_ITEM_DESCRIPTION, itemDescription); @@ -459,76 +548,13 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { CHECK_PROPERTY_CHANGE(PROP_CERTIFICATE_ID, certificateID); CHECK_PROPERTY_CHANGE(PROP_STATIC_CERTIFICATE_VERSION, staticCertificateVersion); - CHECK_PROPERTY_CHANGE(PROP_NAME, name); - - CHECK_PROPERTY_CHANGE(PROP_HAZE_MODE, hazeMode); - CHECK_PROPERTY_CHANGE(PROP_KEY_LIGHT_MODE, keyLightMode); - CHECK_PROPERTY_CHANGE(PROP_AMBIENT_LIGHT_MODE, ambientLightMode); - CHECK_PROPERTY_CHANGE(PROP_SKYBOX_MODE, skyboxMode); - CHECK_PROPERTY_CHANGE(PROP_BLOOM_MODE, bloomMode); - - CHECK_PROPERTY_CHANGE(PROP_SOURCE_URL, sourceUrl); - CHECK_PROPERTY_CHANGE(PROP_VOXEL_VOLUME_SIZE, voxelVolumeSize); - CHECK_PROPERTY_CHANGE(PROP_VOXEL_DATA, voxelData); - CHECK_PROPERTY_CHANGE(PROP_VOXEL_SURFACE_STYLE, voxelSurfaceStyle); - CHECK_PROPERTY_CHANGE(PROP_LINE_WIDTH, lineWidth); - CHECK_PROPERTY_CHANGE(PROP_LINE_POINTS, linePoints); - CHECK_PROPERTY_CHANGE(PROP_HREF, href); - CHECK_PROPERTY_CHANGE(PROP_DESCRIPTION, description); - CHECK_PROPERTY_CHANGE(PROP_BILLBOARD_MODE, billboardMode); - CHECK_PROPERTY_CHANGE(PROP_ACTION_DATA, actionData); - CHECK_PROPERTY_CHANGE(PROP_NORMALS, normals); - CHECK_PROPERTY_CHANGE(PROP_STROKE_COLORS, strokeColors); - CHECK_PROPERTY_CHANGE(PROP_STROKE_WIDTHS, strokeWidths); - CHECK_PROPERTY_CHANGE(PROP_IS_UV_MODE_STRETCH, isUVModeStretch); - CHECK_PROPERTY_CHANGE(PROP_X_TEXTURE_URL, xTextureURL); - CHECK_PROPERTY_CHANGE(PROP_Y_TEXTURE_URL, yTextureURL); - CHECK_PROPERTY_CHANGE(PROP_Z_TEXTURE_URL, zTextureURL); - CHECK_PROPERTY_CHANGE(PROP_X_N_NEIGHBOR_ID, xNNeighborID); - CHECK_PROPERTY_CHANGE(PROP_Y_N_NEIGHBOR_ID, yNNeighborID); - CHECK_PROPERTY_CHANGE(PROP_Z_N_NEIGHBOR_ID, zNNeighborID); - CHECK_PROPERTY_CHANGE(PROP_X_P_NEIGHBOR_ID, xPNeighborID); - CHECK_PROPERTY_CHANGE(PROP_Y_P_NEIGHBOR_ID, yPNeighborID); - CHECK_PROPERTY_CHANGE(PROP_Z_P_NEIGHBOR_ID, zPNeighborID); - CHECK_PROPERTY_CHANGE(PROP_PARENT_ID, parentID); - CHECK_PROPERTY_CHANGE(PROP_PARENT_JOINT_INDEX, parentJointIndex); - CHECK_PROPERTY_CHANGE(PROP_JOINT_ROTATIONS_SET, jointRotationsSet); - CHECK_PROPERTY_CHANGE(PROP_JOINT_ROTATIONS, jointRotations); - CHECK_PROPERTY_CHANGE(PROP_JOINT_TRANSLATIONS_SET, jointTranslationsSet); - CHECK_PROPERTY_CHANGE(PROP_JOINT_TRANSLATIONS, jointTranslations); - CHECK_PROPERTY_CHANGE(PROP_QUERY_AA_CUBE, queryAACube); + // Location data for scripts CHECK_PROPERTY_CHANGE(PROP_LOCAL_POSITION, localPosition); CHECK_PROPERTY_CHANGE(PROP_LOCAL_ROTATION, localRotation); CHECK_PROPERTY_CHANGE(PROP_LOCAL_VELOCITY, localVelocity); CHECK_PROPERTY_CHANGE(PROP_LOCAL_ANGULAR_VELOCITY, localAngularVelocity); CHECK_PROPERTY_CHANGE(PROP_LOCAL_DIMENSIONS, localDimensions); - CHECK_PROPERTY_CHANGE(PROP_FLYING_ALLOWED, flyingAllowed); - CHECK_PROPERTY_CHANGE(PROP_GHOSTING_ALLOWED, ghostingAllowed); - CHECK_PROPERTY_CHANGE(PROP_FILTER_URL, filterURL); - - CHECK_PROPERTY_CHANGE(PROP_ENTITY_HOST_TYPE, entityHostType); - CHECK_PROPERTY_CHANGE(PROP_OWNING_AVATAR_ID, owningAvatarID); - - CHECK_PROPERTY_CHANGE(PROP_SHAPE, shape); - CHECK_PROPERTY_CHANGE(PROP_DPI, dpi); - CHECK_PROPERTY_CHANGE(PROP_RELAY_PARENT_JOINTS, relayParentJoints); - - CHECK_PROPERTY_CHANGE(PROP_CLONEABLE, cloneable); - CHECK_PROPERTY_CHANGE(PROP_CLONE_LIFETIME, cloneLifetime); - CHECK_PROPERTY_CHANGE(PROP_CLONE_LIMIT, cloneLimit); - CHECK_PROPERTY_CHANGE(PROP_CLONE_DYNAMIC, cloneDynamic); - CHECK_PROPERTY_CHANGE(PROP_CLONE_AVATAR_ENTITY, cloneAvatarEntity); - CHECK_PROPERTY_CHANGE(PROP_CLONE_ORIGIN_ID, cloneOriginID); - - changedProperties += _animation.getChangedProperties(); - changedProperties += _keyLight.getChangedProperties(); - changedProperties += _ambientLight.getChangedProperties(); - changedProperties += _skybox.getChangedProperties(); - changedProperties += _haze.getChangedProperties(); - changedProperties += _bloom.getChangedProperties(); - changedProperties += _grab.getChangedProperties(); - return changedProperties; } @@ -622,16 +648,14 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * mass in the application of physics. * * @property {boolean} collisionless=false - Whether or not the entity should collide with items per its - * collisionMask property. If true then the entity does not collide. - * @property {boolean} ignoreForCollisions=false - Synonym for collisionless. + * collisionMask property. If true then the entity does not collide. A synonym is ignoreForCollisions. * @property {Entities.CollisionMask} collisionMask=31 - What types of items the entity should collide with. * @property {string} collidesWith="static,dynamic,kinematic,myAvatar,otherAvatar," - Synonym for collisionMask, * in text format. * @property {string} collisionSoundURL="" - The sound to play when the entity experiences a collision. Valid file formats are * as per the {@link SoundCache} object. * @property {boolean} dynamic=false - Whether or not the entity should be affected by collisions. If true then - * the entity's movement is affected by collisions. - * @property {boolean} collisionsWillMove=false - Synonym for dynamic. + * the entity's movement is affected by collisions. A synonym is collisionsWillMove. * * @property {string} href="" - A "hifi://" metaverse address that a user is taken to when they click on the entity. * @property {string} description="" - A description of the href property value. @@ -677,8 +701,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * is typically not used in scripts directly; rather, functions that manipulate an entity's actions update it. * The size of this property increases with the number of actions. Because this property value has to fit within a High * Fidelity datagram packet there is a limit to the number of actions that an entity can have, and edits which would result - * in overflow are rejected. - * Read-only. + * in overflow are rejected. Read-only. * @property {Entities.RenderInfo} renderInfo - Information on the cost of rendering the entity. Currently information is only * provided for Model entities. Read-only. * @@ -718,7 +741,6 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * @see {@link Entities.EntityProperties-Image|EntityProperties-Image} * @see {@link Entities.EntityProperties-Web|EntityProperties-Web} * @see {@link Entities.EntityProperties-ParticleEffect|EntityProperties-ParticleEffect} - * @see {@link Entities.EntityProperties-Line|EntityProperties-Line} * @see {@link Entities.EntityProperties-PolyLine|EntityProperties-PolyLine} * @see {@link Entities.EntityProperties-PolyVox|EntityProperties-PolyVox} * @see {@link Entities.EntityProperties-Grid|EntityProperties-Grid} @@ -764,34 +786,6 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * }); */ -/**jsdoc - * The "Line" {@link Entities.EntityType|EntityType} draws thin, straight lines between a sequence of two or more - * points. - * It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}. - * @typedef {object} Entities.EntityProperties-Line - * @property {Vec3} dimensions=0.1,0.1,0.1 - The dimensions of the entity. Must be sufficient to contain all the - * linePoints. - * @property {Vec3[]} linePoints=[]] - The sequence of points to draw lines between. The values are relative to the entity's - * position. A maximum of 70 points can be specified. The property's value is set only if all the linePoints - * lie within the entity's dimensions. - * @property {number} lineWidth=2 - Currently not used. - * @property {Color} color=255,255,255 - The color of the line. - * @example Draw lines in a "V". - * var entity = Entities.addEntity({ - * type: "Line", - * position: Vec3.sum(MyAvatar.position, Vec3.multiplyQbyV(MyAvatar.orientation, { x: 0, y: 0.75, z: -5 })), - * rotation: MyAvatar.orientation, - * dimensions: { x: 2, y: 2, z: 1 }, - * linePoints: [ - * { x: -1, y: 1, z: 0 }, - * { x: 0, y: -1, z: 0 }, - * { x: 1, y: 1, z: 0 }, - * ], - * color: { red: 255, green: 0, blue: 0 }, - * lifetime: 300 // Delete after 5 minutes. - * }); - */ - /**jsdoc * The "Material" {@link Entities.EntityType|EntityType} modifies the existing materials on * {@link Entities.EntityType|Model} entities, {@link Entities.EntityType|Shape} entities (albedo only), @@ -875,22 +869,22 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * * @property {Entities.AnimationProperties} animation - An animation to play on the model. * - * @property {Quat[]} jointRotations=[]] - Joint rotations applied to the model; [] if none are applied or the + * @property {Quat[]} jointRotations=[] - Joint rotations applied to the model; [] if none are applied or the * model hasn't loaded. The array indexes are per {@link Entities.getJointIndex|getJointIndex}. Rotations are relative to * each joint's parent.
* Joint rotations can be set by {@link Entities.setLocalJointRotation|setLocalJointRotation} and similar functions, or by * setting the value of this property. If you set a joint rotation using this property you also need to set the * corresponding jointRotationsSet value to true. - * @property {boolean[]} jointRotationsSet=[]] - true values for joints that have had rotations applied, + * @property {boolean[]} jointRotationsSet=[] - true values for joints that have had rotations applied, * false otherwise; [] if none are applied or the model hasn't loaded. The array indexes are per * {@link Entities.getJointIndex|getJointIndex}. - * @property {Vec3[]} jointTranslations=[]] - Joint translations applied to the model; [] if none are applied or + * @property {Vec3[]} jointTranslations=[] - Joint translations applied to the model; [] if none are applied or * the model hasn't loaded. The array indexes are per {@link Entities.getJointIndex|getJointIndex}. Rotations are relative * to each joint's parent.
* Joint translations can be set by {@link Entities.setLocalJointTranslation|setLocalJointTranslation} and similar * functions, or by setting the value of this property. If you set a joint translation using this property you also need to * set the corresponding jointTranslationsSet value to true. - * @property {boolean[]} jointTranslationsSet=[]] - true values for joints that have had translations applied, + * @property {boolean[]} jointTranslationsSet=[] - true values for joints that have had translations applied, * false otherwise; [] if none are applied or the model hasn't loaded. The array indexes are per * {@link Entities.getJointIndex|getJointIndex}. * @property {boolean} relayParentJoints=false - If true and the entity is parented to an avatar, then the @@ -1018,20 +1012,21 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * @typedef {object} Entities.EntityProperties-PolyLine * @property {Vec3} dimensions=1,1,1 - The dimensions of the entity, i.e., the size of the bounding box that contains the * lines drawn. - * @property {Vec3[]} linePoints=[]] - The sequence of points to draw lines between. The values are relative to the entity's + * @property {Vec3[]} linePoints=[] - The sequence of points to draw lines between. The values are relative to the entity's * position. A maximum of 70 points can be specified. Must be specified in order for the entity to render. - * @property {Vec3[]} normals=[]] - The normal vectors for the line's surface at the linePoints. The values are + * @property {Vec3[]} normals=[] - The normal vectors for the line's surface at the linePoints. The values are * relative to the entity's orientation. Must be specified in order for the entity to render. - * @property {number[]} strokeWidths=[]] - The widths, in m, of the line at the linePoints. Must be specified in + * @property {number[]} strokeWidths=[] - The widths, in m, of the line at the linePoints. Must be specified in * order for the entity to render. - * @property {number} lineWidth=2 - Currently not used.
- * @property {Vec3[]} strokeColors=[]] - Currently not used. + * @property {Vec3[]} strokeColors=[] - Currently not used. * @property {Color} color=255,255,255 - The base color of the line, which is multiplied with the color of the texture for * rendering. * @property {string} textures="" - The URL of a JPG or PNG texture to use for the lines. If you want transparency, use PNG * format. * @property {boolean} isUVModeStretch=true - If true, the texture is stretched to fill the whole line, otherwise * the texture repeats along the line. + * @property {bool} glow=false - If true, the alpha of the strokes will drop off farther from the center. + * @property {bool} faceCamera=false - If true, each line segment will rotate to face the camera. * @example Draw a textured "V". * var entity = Entities.addEntity({ * type: "PolyLine", @@ -1353,7 +1348,6 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool created.setTimeSpec(Qt::OffsetFromUTC); COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER_ALWAYS(created, created.toString(Qt::ISODate)); } - if ((!skipDefaults || _lifetime != defaultEntityProperties._lifetime) && !strictSemantics) { if (!psuedoPropertyFlagsActive || psueudoPropertyFlags.test(EntityPsuedoPropertyFlag::Age)) { COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER_NO_SKIP(age, getAge()); // gettable, but not settable @@ -1362,62 +1356,68 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER_NO_SKIP(ageAsText, formatSecondsElapsed(getAge())); // gettable, but not settable } } - if (!psuedoPropertyFlagsActive || psueudoPropertyFlags.test(EntityPsuedoPropertyFlag::LastEdited)) { properties.setProperty("lastEdited", convertScriptValue(engine, _lastEdited)); } - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LAST_EDITED_BY, lastEditedBy); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_POSITION, position); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DIMENSIONS, dimensions); if (!skipDefaults) { COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DIMENSIONS, naturalDimensions); // gettable, but not settable COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_POSITION, naturalPosition); } + + // Core properties + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_VISIBLE, visible); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_NAME, name); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCKED, locked); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_USER_DATA, userData); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_HREF, href); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DESCRIPTION, description); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_POSITION, position); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DIMENSIONS, dimensions); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ROTATION, rotation); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_REGISTRATION_POINT, registrationPoint); + //COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CREATED, created); // handled above + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LAST_EDITED_BY, lastEditedBy); + COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_ENTITY_HOST_TYPE, entityHostType, getEntityHostTypeAsString()); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_OWNING_AVATAR_ID, owningAvatarID); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_PARENT_ID, parentID); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_PARENT_JOINT_INDEX, parentJointIndex); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_QUERY_AA_CUBE, queryAACube); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CAN_CAST_SHADOW, canCastShadow); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_VISIBLE_IN_SECONDARY_CAMERA, isVisibleInSecondaryCamera); + _grab.copyToScriptValue(_desiredProperties, properties, engine, skipDefaults, defaultEntityProperties); + + // Physics + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DENSITY, density); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_VELOCITY, velocity); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ANGULAR_VELOCITY, angularVelocity); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_GRAVITY, gravity); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ACCELERATION, acceleration); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DAMPING, damping); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ANGULAR_DAMPING, angularDamping); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_RESTITUTION, restitution); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_FRICTION, friction); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DENSITY, density); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LIFETIME, lifetime); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SCRIPT, script); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SCRIPT_TIMESTAMP, scriptTimestamp); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SERVER_SCRIPTS, serverScripts); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_REGISTRATION_POINT, registrationPoint); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ANGULAR_VELOCITY, angularVelocity); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ANGULAR_DAMPING, angularDamping); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_VISIBLE, visible); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CAN_CAST_SHADOW, canCastShadow); // Relevant to Shape and Model entities only. COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_COLLISIONLESS, collisionless); COPY_PROXY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_COLLISIONLESS, collisionless, ignoreForCollisions, getCollisionless()); // legacy support COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_COLLISION_MASK, collisionMask); COPY_PROXY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_COLLISION_MASK, collisionMask, collidesWith, getCollisionMaskAsString()); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DYNAMIC, dynamic); COPY_PROXY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_DYNAMIC, dynamic, collisionsWillMove, getDynamic()); // legacy support - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_HREF, href); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DESCRIPTION, description); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ACTION_DATA, actionData); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCKED, locked); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_USER_DATA, userData); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_VISIBLE_IN_SECONDARY_CAMERA, isVisibleInSecondaryCamera); - - // Certifiable Properties - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_NAME, itemName); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_DESCRIPTION, itemDescription); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_CATEGORIES, itemCategories); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_ARTIST, itemArtist); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_LICENSE, itemLicense); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LIMITED_RUN, limitedRun); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_MARKETPLACE_ID, marketplaceID); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_EDITION_NUMBER, editionNumber); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ENTITY_INSTANCE_NUMBER, entityInstanceNumber); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CERTIFICATE_ID, certificateID); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_STATIC_CERTIFICATE_VERSION, staticCertificateVersion); - - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_NAME, name); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_COLLISION_SOUND_URL, collisionSoundURL); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ACTION_DATA, actionData); + + // Cloning + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONEABLE, cloneable); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONE_LIFETIME, cloneLifetime); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONE_LIMIT, cloneLimit); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONE_DYNAMIC, cloneDynamic); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONE_AVATAR_ENTITY, cloneAvatarEntity); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONE_ORIGIN_ID, cloneOriginID); + + // Scripts + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SCRIPT, script); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SCRIPT_TIMESTAMP, scriptTimestamp); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SERVER_SCRIPTS, serverScripts); // Particles only if (_type == EntityTypes::ParticleEffect) { @@ -1569,23 +1569,17 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_Z_P_NEIGHBOR_ID, zPNeighborID); } - // Lines & PolyLines - if (_type == EntityTypes::Line) { - COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LINE_WIDTH, lineWidth); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LINE_POINTS, linePoints); - } - + // Polylines if (_type == EntityTypes::PolyLine) { COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LINE_WIDTH, lineWidth); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LINE_POINTS, linePoints); - - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_NORMALS, normals); - COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_STROKE_COLORS, strokeColors, qVectorVec3Color); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_STROKE_WIDTHS, strokeWidths); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_STROKE_NORMALS, normals); + COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_STROKE_COLORS, strokeColors, qVectorVec3Color); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_TEXTURES, textures); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_IS_UV_MODE_STRETCH, isUVModeStretch); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LINE_GLOW, glow); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LINE_FACE_CAMERA, faceCamera); } // Materials @@ -1631,6 +1625,26 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_MINOR_GRID_EVERY, minorGridEvery); } + // Certifiable Properties + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_NAME, itemName); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_DESCRIPTION, itemDescription); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_CATEGORIES, itemCategories); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_ARTIST, itemArtist); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_LICENSE, itemLicense); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LIMITED_RUN, limitedRun); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_MARKETPLACE_ID, marketplaceID); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_EDITION_NUMBER, editionNumber); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ENTITY_INSTANCE_NUMBER, entityInstanceNumber); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CERTIFICATE_ID, certificateID); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_STATIC_CERTIFICATE_VERSION, staticCertificateVersion); + + // Local props for scripts + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_POSITION, localPosition); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_ROTATION, localRotation); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_VELOCITY, localVelocity); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_ANGULAR_VELOCITY, localAngularVelocity); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_DIMENSIONS, localDimensions); + /**jsdoc * The axis-aligned bounding box of an entity. * @typedef {object} Entities.BoundingBox @@ -1660,29 +1674,6 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER_NO_SKIP(originalTextures, textureNamesStr); // gettable, but not settable } - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_PARENT_ID, parentID); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_PARENT_JOINT_INDEX, parentJointIndex); - - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_QUERY_AA_CUBE, queryAACube); - - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_POSITION, localPosition); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_ROTATION, localRotation); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_VELOCITY, localVelocity); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_ANGULAR_VELOCITY, localAngularVelocity); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_DIMENSIONS, localDimensions); - - COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_ENTITY_HOST_TYPE, entityHostType, getEntityHostTypeAsString()); // Gettable but not settable except at entity creation - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_OWNING_AVATAR_ID, owningAvatarID); // Gettable but not settable - - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONEABLE, cloneable); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONE_LIFETIME, cloneLifetime); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONE_LIMIT, cloneLimit); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONE_DYNAMIC, cloneDynamic); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONE_AVATAR_ENTITY, cloneAvatarEntity); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONE_ORIGIN_ID, cloneOriginID); - - _grab.copyToScriptValue(_desiredProperties, properties, engine, skipDefaults, defaultEntityProperties); - // Rendering info if (!skipDefaults && !strictSemantics && (!psuedoPropertyFlagsActive || psueudoPropertyFlags.test(EntityPsuedoPropertyFlag::RenderInfo))) { @@ -1737,56 +1728,80 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool setType(typeScriptValue.toVariant().toString()); } - COPY_PROPERTY_FROM_QSCRIPTVALUE(lastEditedBy, QUuid, setLastEditedBy); + if (!honorReadOnly) { + // this is used by the json reader to set things that we don't want javascript to able to affect. + COPY_PROPERTY_FROM_QSCRIPTVALUE_GETTER(created, QDateTime, setCreated, [this]() { + auto result = QDateTime::fromMSecsSinceEpoch(_created / 1000, Qt::UTC); // usec per msec + return result; + }); + // TODO: expose this to QScriptValue for JSON saves? + //COPY_PROPERTY_FROM_QSCRIPTVALUE(simulationOwner, ???, setSimulatorPriority); + } + + // Core + COPY_PROPERTY_FROM_QSCRIPTVALUE(visible, bool, setVisible); + COPY_PROPERTY_FROM_QSCRIPTVALUE(name, QString, setName); + COPY_PROPERTY_FROM_QSCRIPTVALUE(locked, bool, setLocked); + COPY_PROPERTY_FROM_QSCRIPTVALUE(userData, QString, setUserData); + COPY_PROPERTY_FROM_QSCRIPTVALUE(href, QString, setHref); + COPY_PROPERTY_FROM_QSCRIPTVALUE(description, QString, setDescription); COPY_PROPERTY_FROM_QSCRIPTVALUE(position, vec3, setPosition); COPY_PROPERTY_FROM_QSCRIPTVALUE(dimensions, vec3, setDimensions); COPY_PROPERTY_FROM_QSCRIPTVALUE(rotation, quat, setRotation); + COPY_PROPERTY_FROM_QSCRIPTVALUE(registrationPoint, vec3, setRegistrationPoint); + // created is read only + COPY_PROPERTY_FROM_QSCRIPTVALUE(lastEditedBy, QUuid, setLastEditedBy); + COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(entityHostType, EntityHostType); + COPY_PROPERTY_FROM_QSCRIPTVALUE(owningAvatarID, QUuid, setOwningAvatarID); + COPY_PROPERTY_FROM_QSCRIPTVALUE(parentID, QUuid, setParentID); + COPY_PROPERTY_FROM_QSCRIPTVALUE(parentJointIndex, quint16, setParentJointIndex); + COPY_PROPERTY_FROM_QSCRIPTVALUE(queryAACube, AACube, setQueryAACube); // TODO: should scripts be able to set this? + COPY_PROPERTY_FROM_QSCRIPTVALUE(canCastShadow, bool, setCanCastShadow); + COPY_PROPERTY_FROM_QSCRIPTVALUE(isVisibleInSecondaryCamera, bool, setIsVisibleInSecondaryCamera); + _grab.copyFromScriptValue(object, _defaultSettings); + + // Physics COPY_PROPERTY_FROM_QSCRIPTVALUE(density, float, setDensity); COPY_PROPERTY_FROM_QSCRIPTVALUE(velocity, vec3, setVelocity); + COPY_PROPERTY_FROM_QSCRIPTVALUE(angularVelocity, vec3, setAngularVelocity); COPY_PROPERTY_FROM_QSCRIPTVALUE(gravity, vec3, setGravity); COPY_PROPERTY_FROM_QSCRIPTVALUE(acceleration, vec3, setAcceleration); COPY_PROPERTY_FROM_QSCRIPTVALUE(damping, float, setDamping); + COPY_PROPERTY_FROM_QSCRIPTVALUE(angularDamping, float, setAngularDamping); COPY_PROPERTY_FROM_QSCRIPTVALUE(restitution, float, setRestitution); COPY_PROPERTY_FROM_QSCRIPTVALUE(friction, float, setFriction); COPY_PROPERTY_FROM_QSCRIPTVALUE(lifetime, float, setLifetime); - COPY_PROPERTY_FROM_QSCRIPTVALUE(script, QString, setScript); - COPY_PROPERTY_FROM_QSCRIPTVALUE(scriptTimestamp, quint64, setScriptTimestamp); - COPY_PROPERTY_FROM_QSCRIPTVALUE(serverScripts, QString, setServerScripts); - COPY_PROPERTY_FROM_QSCRIPTVALUE(registrationPoint, vec3, setRegistrationPoint); - COPY_PROPERTY_FROM_QSCRIPTVALUE(angularVelocity, vec3, setAngularVelocity); - COPY_PROPERTY_FROM_QSCRIPTVALUE(angularDamping, float, setAngularDamping); - COPY_PROPERTY_FROM_QSCRIPTVALUE(visible, bool, setVisible); - COPY_PROPERTY_FROM_QSCRIPTVALUE(canCastShadow, bool, setCanCastShadow); - COPY_PROPERTY_FROM_QSCRIPTVALUE(color, u8vec3Color, setColor); - COPY_PROPERTY_FROM_QSCRIPTVALUE(colorSpread, u8vec3Color, setColorSpread); - COPY_PROPERTY_FROM_QSCRIPTVALUE(colorStart, vec3Color, setColorStart); - COPY_PROPERTY_FROM_QSCRIPTVALUE(colorFinish, vec3Color, setColorFinish); - COPY_PROPERTY_FROM_QSCRIPTVALUE(alpha, float, setAlpha); - COPY_PROPERTY_FROM_QSCRIPTVALUE(alphaSpread, float, setAlphaSpread); - COPY_PROPERTY_FROM_QSCRIPTVALUE(alphaStart, float, setAlphaStart); - COPY_PROPERTY_FROM_QSCRIPTVALUE(alphaFinish, float, setAlphaFinish); - COPY_PROPERTY_FROM_QSCRIPTVALUE(emitterShouldTrail, bool, setEmitterShouldTrail); - COPY_PROPERTY_FROM_QSCRIPTVALUE(modelURL, QString, setModelURL); - COPY_PROPERTY_FROM_QSCRIPTVALUE(compoundShapeURL, QString, setCompoundShapeURL); COPY_PROPERTY_FROM_QSCRIPTVALUE(collisionless, bool, setCollisionless); COPY_PROPERTY_FROM_QSCRIPTVALUE_GETTER(ignoreForCollisions, bool, setCollisionless, getCollisionless); // legacy support COPY_PROPERTY_FROM_QSCRIPTVALUE(collisionMask, uint16_t, setCollisionMask); COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(collidesWith, CollisionMask); COPY_PROPERTY_FROM_QSCRIPTVALUE_GETTER(collisionsWillMove, bool, setDynamic, getDynamic); // legacy support COPY_PROPERTY_FROM_QSCRIPTVALUE(dynamic, bool, setDynamic); - COPY_PROPERTY_FROM_QSCRIPTVALUE(isSpotlight, bool, setIsSpotlight); - COPY_PROPERTY_FROM_QSCRIPTVALUE(intensity, float, setIntensity); - COPY_PROPERTY_FROM_QSCRIPTVALUE(falloffRadius, float, setFalloffRadius); - COPY_PROPERTY_FROM_QSCRIPTVALUE(exponent, float, setExponent); - COPY_PROPERTY_FROM_QSCRIPTVALUE(cutoff, float, setCutoff); - COPY_PROPERTY_FROM_QSCRIPTVALUE(locked, bool, setLocked); - COPY_PROPERTY_FROM_QSCRIPTVALUE(textures, QString, setTextures); - COPY_PROPERTY_FROM_QSCRIPTVALUE(userData, QString, setUserData); - COPY_PROPERTY_FROM_QSCRIPTVALUE(text, QString, setText); - COPY_PROPERTY_FROM_QSCRIPTVALUE(lineHeight, float, setLineHeight); - COPY_PROPERTY_FROM_QSCRIPTVALUE(textColor, u8vec3Color, setTextColor); - COPY_PROPERTY_FROM_QSCRIPTVALUE(backgroundColor, u8vec3Color, setBackgroundColor); + // simulationOwner is read only + COPY_PROPERTY_FROM_QSCRIPTVALUE(collisionSoundURL, QString, setCollisionSoundURL); + COPY_PROPERTY_FROM_QSCRIPTVALUE(actionData, QByteArray, setActionData); // TODO: should scripts be able to set this? + + // Cloning + COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneable, bool, setCloneable); + COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneLifetime, float, setCloneLifetime); + COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneLimit, float, setCloneLimit); + COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneDynamic, bool, setCloneDynamic); + COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneAvatarEntity, bool, setCloneAvatarEntity); + COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneOriginID, QUuid, setCloneOriginID); + + // Scripts + COPY_PROPERTY_FROM_QSCRIPTVALUE(script, QString, setScript); + COPY_PROPERTY_FROM_QSCRIPTVALUE(scriptTimestamp, quint64, setScriptTimestamp); + COPY_PROPERTY_FROM_QSCRIPTVALUE(serverScripts, QString, setServerScripts); + + // Common COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(shapeType, ShapeType); + COPY_PROPERTY_FROM_QSCRIPTVALUE(compoundShapeURL, QString, setCompoundShapeURL); + COPY_PROPERTY_FROM_QSCRIPTVALUE(color, u8vec3Color, setColor); + COPY_PROPERTY_FROM_QSCRIPTVALUE(alpha, float, setAlpha); + COPY_PROPERTY_FROM_QSCRIPTVALUE(textures, QString, setTextures); + + // Particles COPY_PROPERTY_FROM_QSCRIPTVALUE(maxParticles, quint32, setMaxParticles); COPY_PROPERTY_FROM_QSCRIPTVALUE(lifespan, float, setLifespan); COPY_PROPERTY_FROM_QSCRIPTVALUE(isEmitting, bool, setIsEmitting); @@ -1796,17 +1811,104 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool COPY_PROPERTY_FROM_QSCRIPTVALUE(emitOrientation, quat, setEmitOrientation); COPY_PROPERTY_FROM_QSCRIPTVALUE(emitDimensions, vec3, setEmitDimensions); COPY_PROPERTY_FROM_QSCRIPTVALUE(emitRadiusStart, float, setEmitRadiusStart); + COPY_PROPERTY_FROM_QSCRIPTVALUE(emitAcceleration, vec3, setEmitAcceleration); + COPY_PROPERTY_FROM_QSCRIPTVALUE(accelerationSpread, vec3, setAccelerationSpread); COPY_PROPERTY_FROM_QSCRIPTVALUE(polarStart, float, setPolarStart); COPY_PROPERTY_FROM_QSCRIPTVALUE(polarFinish, float, setPolarFinish); COPY_PROPERTY_FROM_QSCRIPTVALUE(azimuthStart, float, setAzimuthStart); COPY_PROPERTY_FROM_QSCRIPTVALUE(azimuthFinish, float, setAzimuthFinish); - COPY_PROPERTY_FROM_QSCRIPTVALUE(emitAcceleration, vec3, setEmitAcceleration); - COPY_PROPERTY_FROM_QSCRIPTVALUE(accelerationSpread, vec3, setAccelerationSpread); COPY_PROPERTY_FROM_QSCRIPTVALUE(particleRadius, float, setParticleRadius); COPY_PROPERTY_FROM_QSCRIPTVALUE(radiusSpread, float, setRadiusSpread); COPY_PROPERTY_FROM_QSCRIPTVALUE(radiusStart, float, setRadiusStart); COPY_PROPERTY_FROM_QSCRIPTVALUE(radiusFinish, float, setRadiusFinish); + COPY_PROPERTY_FROM_QSCRIPTVALUE(colorSpread, u8vec3Color, setColorSpread); + COPY_PROPERTY_FROM_QSCRIPTVALUE(colorStart, vec3Color, setColorStart); + COPY_PROPERTY_FROM_QSCRIPTVALUE(colorFinish, vec3Color, setColorFinish); + COPY_PROPERTY_FROM_QSCRIPTVALUE(alphaSpread, float, setAlphaSpread); + COPY_PROPERTY_FROM_QSCRIPTVALUE(alphaStart, float, setAlphaStart); + COPY_PROPERTY_FROM_QSCRIPTVALUE(alphaFinish, float, setAlphaFinish); + COPY_PROPERTY_FROM_QSCRIPTVALUE(emitterShouldTrail, bool, setEmitterShouldTrail); + COPY_PROPERTY_FROM_QSCRIPTVALUE(particleSpin, float, setParticleSpin); + COPY_PROPERTY_FROM_QSCRIPTVALUE(spinSpread, float, setSpinSpread); + COPY_PROPERTY_FROM_QSCRIPTVALUE(spinStart, float, setSpinStart); + COPY_PROPERTY_FROM_QSCRIPTVALUE(spinFinish, float, setSpinFinish); + COPY_PROPERTY_FROM_QSCRIPTVALUE(rotateWithEntity, bool, setRotateWithEntity); + + // Model + COPY_PROPERTY_FROM_QSCRIPTVALUE(modelURL, QString, setModelURL); + COPY_PROPERTY_FROM_QSCRIPTVALUE(jointRotationsSet, qVectorBool, setJointRotationsSet); + COPY_PROPERTY_FROM_QSCRIPTVALUE(jointRotations, qVectorQuat, setJointRotations); + COPY_PROPERTY_FROM_QSCRIPTVALUE(jointTranslationsSet, qVectorBool, setJointTranslationsSet); + COPY_PROPERTY_FROM_QSCRIPTVALUE(jointTranslations, qVectorVec3, setJointTranslations); COPY_PROPERTY_FROM_QSCRIPTVALUE(relayParentJoints, bool, setRelayParentJoints); + _animation.copyFromScriptValue(object, _defaultSettings); + + // Light + COPY_PROPERTY_FROM_QSCRIPTVALUE(isSpotlight, bool, setIsSpotlight); + COPY_PROPERTY_FROM_QSCRIPTVALUE(intensity, float, setIntensity); + COPY_PROPERTY_FROM_QSCRIPTVALUE(exponent, float, setExponent); + COPY_PROPERTY_FROM_QSCRIPTVALUE(cutoff, float, setCutoff); + COPY_PROPERTY_FROM_QSCRIPTVALUE(falloffRadius, float, setFalloffRadius); + + // Text + COPY_PROPERTY_FROM_QSCRIPTVALUE(text, QString, setText); + COPY_PROPERTY_FROM_QSCRIPTVALUE(lineHeight, float, setLineHeight); + COPY_PROPERTY_FROM_QSCRIPTVALUE(textColor, u8vec3Color, setTextColor); + COPY_PROPERTY_FROM_QSCRIPTVALUE(textAlpha, float, setTextAlpha); + COPY_PROPERTY_FROM_QSCRIPTVALUE(backgroundColor, u8vec3Color, setBackgroundColor); + COPY_PROPERTY_FROM_QSCRIPTVALUE(backgroundAlpha, float, setBackgroundAlpha); + COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(billboardMode, BillboardMode); + COPY_PROPERTY_FROM_QSCRIPTVALUE(leftMargin, float, setLeftMargin); + COPY_PROPERTY_FROM_QSCRIPTVALUE(rightMargin, float, setRightMargin); + COPY_PROPERTY_FROM_QSCRIPTVALUE(topMargin, float, setTopMargin); + COPY_PROPERTY_FROM_QSCRIPTVALUE(bottomMargin, float, setBottomMargin); + + // Zone + _keyLight.copyFromScriptValue(object, _defaultSettings); + _ambientLight.copyFromScriptValue(object, _defaultSettings); + _skybox.copyFromScriptValue(object, _defaultSettings); + _haze.copyFromScriptValue(object, _defaultSettings); + _bloom.copyFromScriptValue(object, _defaultSettings); + COPY_PROPERTY_FROM_QSCRIPTVALUE(flyingAllowed, bool, setFlyingAllowed); + COPY_PROPERTY_FROM_QSCRIPTVALUE(ghostingAllowed, bool, setGhostingAllowed); + COPY_PROPERTY_FROM_QSCRIPTVALUE(filterURL, QString, setFilterURL); + COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(keyLightMode, KeyLightMode); + COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(ambientLightMode, AmbientLightMode); + COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(skyboxMode, SkyboxMode); + COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(hazeMode, HazeMode); + COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(bloomMode, BloomMode); + + // Polyvox + COPY_PROPERTY_FROM_QSCRIPTVALUE(voxelVolumeSize, vec3, setVoxelVolumeSize); + COPY_PROPERTY_FROM_QSCRIPTVALUE(voxelData, QByteArray, setVoxelData); + COPY_PROPERTY_FROM_QSCRIPTVALUE(voxelSurfaceStyle, uint16_t, setVoxelSurfaceStyle); + COPY_PROPERTY_FROM_QSCRIPTVALUE(xTextureURL, QString, setXTextureURL); + COPY_PROPERTY_FROM_QSCRIPTVALUE(yTextureURL, QString, setYTextureURL); + COPY_PROPERTY_FROM_QSCRIPTVALUE(zTextureURL, QString, setZTextureURL); + COPY_PROPERTY_FROM_QSCRIPTVALUE(xNNeighborID, EntityItemID, setXNNeighborID); + COPY_PROPERTY_FROM_QSCRIPTVALUE(yNNeighborID, EntityItemID, setYNNeighborID); + COPY_PROPERTY_FROM_QSCRIPTVALUE(zNNeighborID, EntityItemID, setZNNeighborID); + COPY_PROPERTY_FROM_QSCRIPTVALUE(xPNeighborID, EntityItemID, setXPNeighborID); + COPY_PROPERTY_FROM_QSCRIPTVALUE(yPNeighborID, EntityItemID, setYPNeighborID); + COPY_PROPERTY_FROM_QSCRIPTVALUE(zPNeighborID, EntityItemID, setZPNeighborID); + + // Web + COPY_PROPERTY_FROM_QSCRIPTVALUE(sourceUrl, QString, setSourceUrl); + COPY_PROPERTY_FROM_QSCRIPTVALUE(dpi, uint16_t, setDPI); + + // Polyline + COPY_PROPERTY_FROM_QSCRIPTVALUE(linePoints, qVectorVec3, setLinePoints); + COPY_PROPERTY_FROM_QSCRIPTVALUE(strokeWidths, qVectorFloat, setStrokeWidths); + COPY_PROPERTY_FROM_QSCRIPTVALUE(normals, qVectorVec3, setNormals); + COPY_PROPERTY_FROM_QSCRIPTVALUE(strokeColors, qVectorVec3, setStrokeColors); + COPY_PROPERTY_FROM_QSCRIPTVALUE(isUVModeStretch, bool, setIsUVModeStretch); + COPY_PROPERTY_FROM_QSCRIPTVALUE(glow, bool, setGlow); + COPY_PROPERTY_FROM_QSCRIPTVALUE(faceCamera, bool, setFaceCamera); + + // Shape + COPY_PROPERTY_FROM_QSCRIPTVALUE(shape, QString, setShape); + + // Material COPY_PROPERTY_FROM_QSCRIPTVALUE(materialURL, QString, setMaterialURL); COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(materialMappingMode, MaterialMappingMode); COPY_PROPERTY_FROM_QSCRIPTVALUE(priority, quint16, setPriority); @@ -1816,12 +1918,17 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool COPY_PROPERTY_FROM_QSCRIPTVALUE(materialMappingRot, float, setMaterialMappingRot); COPY_PROPERTY_FROM_QSCRIPTVALUE(materialData, QString, setMaterialData); COPY_PROPERTY_FROM_QSCRIPTVALUE(materialRepeat, bool, setMaterialRepeat); - COPY_PROPERTY_FROM_QSCRIPTVALUE(isVisibleInSecondaryCamera, bool, setIsVisibleInSecondaryCamera); - COPY_PROPERTY_FROM_QSCRIPTVALUE(particleSpin, float, setParticleSpin); - COPY_PROPERTY_FROM_QSCRIPTVALUE(spinSpread, float, setSpinSpread); - COPY_PROPERTY_FROM_QSCRIPTVALUE(spinStart, float, setSpinStart); - COPY_PROPERTY_FROM_QSCRIPTVALUE(spinFinish, float, setSpinFinish); - COPY_PROPERTY_FROM_QSCRIPTVALUE(rotateWithEntity, bool, setRotateWithEntity); + + // Image + COPY_PROPERTY_FROM_QSCRIPTVALUE(imageURL, QString, setImageURL); + COPY_PROPERTY_FROM_QSCRIPTVALUE(emissive, bool, setEmissive); + COPY_PROPERTY_FROM_QSCRIPTVALUE(keepAspectRatio, bool, setKeepAspectRatio); + COPY_PROPERTY_FROM_QSCRIPTVALUE(subImage, QRect, setSubImage); + + // Grid + COPY_PROPERTY_FROM_QSCRIPTVALUE(followCamera, bool, setFollowCamera); + COPY_PROPERTY_FROM_QSCRIPTVALUE(majorGridEvery, uint32_t, setMajorGridEvery); + COPY_PROPERTY_FROM_QSCRIPTVALUE(minorGridEvery, float, setMinorGridEvery); // Certifiable Properties COPY_PROPERTY_FROM_QSCRIPTVALUE(itemName, QString, setItemName); @@ -1836,108 +1943,13 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool COPY_PROPERTY_FROM_QSCRIPTVALUE(certificateID, QString, setCertificateID); COPY_PROPERTY_FROM_QSCRIPTVALUE(staticCertificateVersion, quint32, setStaticCertificateVersion); - COPY_PROPERTY_FROM_QSCRIPTVALUE(name, QString, setName); - COPY_PROPERTY_FROM_QSCRIPTVALUE(collisionSoundURL, QString, setCollisionSoundURL); - - COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(hazeMode, HazeMode); - COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(keyLightMode, KeyLightMode); - COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(ambientLightMode, AmbientLightMode); - COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(skyboxMode, SkyboxMode); - COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(bloomMode, BloomMode); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(sourceUrl, QString, setSourceUrl); - COPY_PROPERTY_FROM_QSCRIPTVALUE(voxelVolumeSize, vec3, setVoxelVolumeSize); - COPY_PROPERTY_FROM_QSCRIPTVALUE(voxelData, QByteArray, setVoxelData); - COPY_PROPERTY_FROM_QSCRIPTVALUE(voxelSurfaceStyle, uint16_t, setVoxelSurfaceStyle); - COPY_PROPERTY_FROM_QSCRIPTVALUE(lineWidth, float, setLineWidth); - COPY_PROPERTY_FROM_QSCRIPTVALUE(linePoints, qVectorVec3, setLinePoints); - COPY_PROPERTY_FROM_QSCRIPTVALUE(href, QString, setHref); - COPY_PROPERTY_FROM_QSCRIPTVALUE(description, QString, setDescription); - COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(billboardMode, BillboardMode); - COPY_PROPERTY_FROM_QSCRIPTVALUE(actionData, QByteArray, setActionData); - COPY_PROPERTY_FROM_QSCRIPTVALUE(normals, qVectorVec3, setNormals); - COPY_PROPERTY_FROM_QSCRIPTVALUE(strokeColors, qVectorVec3, setStrokeColors); - COPY_PROPERTY_FROM_QSCRIPTVALUE(strokeWidths, qVectorFloat, setStrokeWidths); - COPY_PROPERTY_FROM_QSCRIPTVALUE(isUVModeStretch, bool, setIsUVModeStretch); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(imageURL, QString, setImageURL); - COPY_PROPERTY_FROM_QSCRIPTVALUE(emissive, bool, setEmissive); - COPY_PROPERTY_FROM_QSCRIPTVALUE(keepAspectRatio, bool, setKeepAspectRatio); - COPY_PROPERTY_FROM_QSCRIPTVALUE(subImage, QRect, setSubImage); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(followCamera, bool, setFollowCamera); - COPY_PROPERTY_FROM_QSCRIPTVALUE(majorGridEvery, uint32_t, setMajorGridEvery); - COPY_PROPERTY_FROM_QSCRIPTVALUE(minorGridEvery, float, setMinorGridEvery); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(textAlpha, float, setTextAlpha); - COPY_PROPERTY_FROM_QSCRIPTVALUE(backgroundAlpha, float, setBackgroundAlpha); - COPY_PROPERTY_FROM_QSCRIPTVALUE(leftMargin, float, setLeftMargin); - COPY_PROPERTY_FROM_QSCRIPTVALUE(rightMargin, float, setRightMargin); - COPY_PROPERTY_FROM_QSCRIPTVALUE(topMargin, float, setTopMargin); - COPY_PROPERTY_FROM_QSCRIPTVALUE(bottomMargin, float, setBottomMargin); - - if (!honorReadOnly) { - // this is used by the json reader to set things that we don't want javascript to able to affect. - COPY_PROPERTY_FROM_QSCRIPTVALUE_GETTER(created, QDateTime, setCreated, [this]() { - auto result = QDateTime::fromMSecsSinceEpoch(_created / 1000, Qt::UTC); // usec per msec - return result; - }); - // TODO: expose this to QScriptValue for JSON saves? - //COPY_PROPERTY_FROM_QSCRIPTVALUE(simulationOwner, ???, setSimulatorPriority); - } - - _animation.copyFromScriptValue(object, _defaultSettings); - _keyLight.copyFromScriptValue(object, _defaultSettings); - _ambientLight.copyFromScriptValue(object, _defaultSettings); - _skybox.copyFromScriptValue(object, _defaultSettings); - _haze.copyFromScriptValue(object, _defaultSettings); - _bloom.copyFromScriptValue(object, _defaultSettings); - _grab.copyFromScriptValue(object, _defaultSettings); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(xTextureURL, QString, setXTextureURL); - COPY_PROPERTY_FROM_QSCRIPTVALUE(yTextureURL, QString, setYTextureURL); - COPY_PROPERTY_FROM_QSCRIPTVALUE(zTextureURL, QString, setZTextureURL); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(xNNeighborID, EntityItemID, setXNNeighborID); - COPY_PROPERTY_FROM_QSCRIPTVALUE(yNNeighborID, EntityItemID, setYNNeighborID); - COPY_PROPERTY_FROM_QSCRIPTVALUE(zNNeighborID, EntityItemID, setZNNeighborID); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(xPNeighborID, EntityItemID, setXPNeighborID); - COPY_PROPERTY_FROM_QSCRIPTVALUE(yPNeighborID, EntityItemID, setYPNeighborID); - COPY_PROPERTY_FROM_QSCRIPTVALUE(zPNeighborID, EntityItemID, setZPNeighborID); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(parentID, QUuid, setParentID); - COPY_PROPERTY_FROM_QSCRIPTVALUE(parentJointIndex, quint16, setParentJointIndex); - COPY_PROPERTY_FROM_QSCRIPTVALUE(queryAACube, AACube, setQueryAACube); - + // Script location data COPY_PROPERTY_FROM_QSCRIPTVALUE(localPosition, vec3, setLocalPosition); COPY_PROPERTY_FROM_QSCRIPTVALUE(localRotation, quat, setLocalRotation); COPY_PROPERTY_FROM_QSCRIPTVALUE(localVelocity, vec3, setLocalVelocity); COPY_PROPERTY_FROM_QSCRIPTVALUE(localAngularVelocity, vec3, setLocalAngularVelocity); COPY_PROPERTY_FROM_QSCRIPTVALUE(localDimensions, vec3, setLocalDimensions); - COPY_PROPERTY_FROM_QSCRIPTVALUE(jointRotationsSet, qVectorBool, setJointRotationsSet); - COPY_PROPERTY_FROM_QSCRIPTVALUE(jointRotations, qVectorQuat, setJointRotations); - COPY_PROPERTY_FROM_QSCRIPTVALUE(jointTranslationsSet, qVectorBool, setJointTranslationsSet); - COPY_PROPERTY_FROM_QSCRIPTVALUE(jointTranslations, qVectorVec3, setJointTranslations); - COPY_PROPERTY_FROM_QSCRIPTVALUE(shape, QString, setShape); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(flyingAllowed, bool, setFlyingAllowed); - COPY_PROPERTY_FROM_QSCRIPTVALUE(ghostingAllowed, bool, setGhostingAllowed); - COPY_PROPERTY_FROM_QSCRIPTVALUE(filterURL, QString, setFilterURL); - - COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(entityHostType, EntityHostType); - COPY_PROPERTY_FROM_QSCRIPTVALUE(owningAvatarID, QUuid, setOwningAvatarID); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(dpi, uint16_t, setDPI); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneable, bool, setCloneable); - COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneLifetime, float, setCloneLifetime); - COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneLimit, float, setCloneLimit); - COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneDynamic, bool, setCloneDynamic); - COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneAvatarEntity, bool, setCloneAvatarEntity); - COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneOriginID, QUuid, setCloneOriginID); - // Handle conversions from old 'textures' property to "imageURL" { QScriptValue V = object.property("textures"); @@ -1983,52 +1995,67 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool } void EntityItemProperties::merge(const EntityItemProperties& other) { - COPY_PROPERTY_IF_CHANGED(lastEditedBy); + // Core + COPY_PROPERTY_IF_CHANGED(visible); + COPY_PROPERTY_IF_CHANGED(name); + COPY_PROPERTY_IF_CHANGED(locked); + COPY_PROPERTY_IF_CHANGED(userData); + COPY_PROPERTY_IF_CHANGED(href); + COPY_PROPERTY_IF_CHANGED(description); COPY_PROPERTY_IF_CHANGED(position); COPY_PROPERTY_IF_CHANGED(dimensions); COPY_PROPERTY_IF_CHANGED(rotation); + COPY_PROPERTY_IF_CHANGED(registrationPoint); + COPY_PROPERTY_IF_CHANGED(created); + COPY_PROPERTY_IF_CHANGED(lastEditedBy); + COPY_PROPERTY_IF_CHANGED(entityHostType); + COPY_PROPERTY_IF_CHANGED(owningAvatarID); + COPY_PROPERTY_IF_CHANGED(parentID); + COPY_PROPERTY_IF_CHANGED(parentJointIndex); + COPY_PROPERTY_IF_CHANGED(queryAACube); + COPY_PROPERTY_IF_CHANGED(canCastShadow); + COPY_PROPERTY_IF_CHANGED(isVisibleInSecondaryCamera); + _grab.merge(other._grab); + + // Physics COPY_PROPERTY_IF_CHANGED(density); COPY_PROPERTY_IF_CHANGED(velocity); + COPY_PROPERTY_IF_CHANGED(angularVelocity); COPY_PROPERTY_IF_CHANGED(gravity); COPY_PROPERTY_IF_CHANGED(acceleration); COPY_PROPERTY_IF_CHANGED(damping); + COPY_PROPERTY_IF_CHANGED(angularDamping); COPY_PROPERTY_IF_CHANGED(restitution); COPY_PROPERTY_IF_CHANGED(friction); COPY_PROPERTY_IF_CHANGED(lifetime); - COPY_PROPERTY_IF_CHANGED(script); - COPY_PROPERTY_IF_CHANGED(scriptTimestamp); - COPY_PROPERTY_IF_CHANGED(registrationPoint); - COPY_PROPERTY_IF_CHANGED(angularVelocity); - COPY_PROPERTY_IF_CHANGED(angularDamping); - COPY_PROPERTY_IF_CHANGED(visible); - COPY_PROPERTY_IF_CHANGED(canCastShadow); - COPY_PROPERTY_IF_CHANGED(color); - COPY_PROPERTY_IF_CHANGED(colorSpread); - COPY_PROPERTY_IF_CHANGED(colorStart); - COPY_PROPERTY_IF_CHANGED(colorFinish); - COPY_PROPERTY_IF_CHANGED(alpha); - COPY_PROPERTY_IF_CHANGED(alphaSpread); - COPY_PROPERTY_IF_CHANGED(alphaStart); - COPY_PROPERTY_IF_CHANGED(alphaFinish); - COPY_PROPERTY_IF_CHANGED(emitterShouldTrail); - COPY_PROPERTY_IF_CHANGED(modelURL); - COPY_PROPERTY_IF_CHANGED(compoundShapeURL); COPY_PROPERTY_IF_CHANGED(collisionless); COPY_PROPERTY_IF_CHANGED(collisionMask); COPY_PROPERTY_IF_CHANGED(dynamic); - COPY_PROPERTY_IF_CHANGED(isSpotlight); - COPY_PROPERTY_IF_CHANGED(intensity); - COPY_PROPERTY_IF_CHANGED(falloffRadius); - COPY_PROPERTY_IF_CHANGED(exponent); - COPY_PROPERTY_IF_CHANGED(cutoff); - COPY_PROPERTY_IF_CHANGED(locked); - COPY_PROPERTY_IF_CHANGED(textures); - COPY_PROPERTY_IF_CHANGED(userData); - COPY_PROPERTY_IF_CHANGED(text); - COPY_PROPERTY_IF_CHANGED(lineHeight); - COPY_PROPERTY_IF_CHANGED(textColor); - COPY_PROPERTY_IF_CHANGED(backgroundColor); + COPY_PROPERTY_IF_CHANGED(simulationOwner); + COPY_PROPERTY_IF_CHANGED(collisionSoundURL); + COPY_PROPERTY_IF_CHANGED(actionData); + + // Cloning + COPY_PROPERTY_IF_CHANGED(cloneable); + COPY_PROPERTY_IF_CHANGED(cloneLifetime); + COPY_PROPERTY_IF_CHANGED(cloneLimit); + COPY_PROPERTY_IF_CHANGED(cloneDynamic); + COPY_PROPERTY_IF_CHANGED(cloneAvatarEntity); + COPY_PROPERTY_IF_CHANGED(cloneOriginID); + + // Scripts + COPY_PROPERTY_IF_CHANGED(script); + COPY_PROPERTY_IF_CHANGED(scriptTimestamp); + COPY_PROPERTY_IF_CHANGED(serverScripts); + + // Common COPY_PROPERTY_IF_CHANGED(shapeType); + COPY_PROPERTY_IF_CHANGED(compoundShapeURL); + COPY_PROPERTY_IF_CHANGED(color); + COPY_PROPERTY_IF_CHANGED(alpha); + COPY_PROPERTY_IF_CHANGED(textures); + + // Particles COPY_PROPERTY_IF_CHANGED(maxParticles); COPY_PROPERTY_IF_CHANGED(lifespan); COPY_PROPERTY_IF_CHANGED(isEmitting); @@ -2038,38 +2065,125 @@ void EntityItemProperties::merge(const EntityItemProperties& other) { COPY_PROPERTY_IF_CHANGED(emitOrientation); COPY_PROPERTY_IF_CHANGED(emitDimensions); COPY_PROPERTY_IF_CHANGED(emitRadiusStart); + COPY_PROPERTY_IF_CHANGED(emitAcceleration); + COPY_PROPERTY_IF_CHANGED(accelerationSpread); COPY_PROPERTY_IF_CHANGED(polarStart); COPY_PROPERTY_IF_CHANGED(polarFinish); COPY_PROPERTY_IF_CHANGED(azimuthStart); COPY_PROPERTY_IF_CHANGED(azimuthFinish); - COPY_PROPERTY_IF_CHANGED(emitAcceleration); - COPY_PROPERTY_IF_CHANGED(accelerationSpread); COPY_PROPERTY_IF_CHANGED(particleRadius); COPY_PROPERTY_IF_CHANGED(radiusSpread); COPY_PROPERTY_IF_CHANGED(radiusStart); COPY_PROPERTY_IF_CHANGED(radiusFinish); + COPY_PROPERTY_IF_CHANGED(colorSpread); + COPY_PROPERTY_IF_CHANGED(colorStart); + COPY_PROPERTY_IF_CHANGED(colorFinish); + COPY_PROPERTY_IF_CHANGED(alphaSpread); + COPY_PROPERTY_IF_CHANGED(alphaStart); + COPY_PROPERTY_IF_CHANGED(alphaFinish); + COPY_PROPERTY_IF_CHANGED(emitterShouldTrail); COPY_PROPERTY_IF_CHANGED(particleSpin); COPY_PROPERTY_IF_CHANGED(spinSpread); COPY_PROPERTY_IF_CHANGED(spinStart); COPY_PROPERTY_IF_CHANGED(spinFinish); COPY_PROPERTY_IF_CHANGED(rotateWithEntity); + // Model + COPY_PROPERTY_IF_CHANGED(modelURL); + COPY_PROPERTY_IF_CHANGED(jointRotationsSet); + COPY_PROPERTY_IF_CHANGED(jointRotations); + COPY_PROPERTY_IF_CHANGED(jointTranslationsSet); + COPY_PROPERTY_IF_CHANGED(jointTranslations); + COPY_PROPERTY_IF_CHANGED(relayParentJoints); + _animation.merge(other._animation); + + // Light + COPY_PROPERTY_IF_CHANGED(isSpotlight); + COPY_PROPERTY_IF_CHANGED(intensity); + COPY_PROPERTY_IF_CHANGED(exponent); + COPY_PROPERTY_IF_CHANGED(cutoff); + COPY_PROPERTY_IF_CHANGED(falloffRadius); + + // Text + COPY_PROPERTY_IF_CHANGED(text); + COPY_PROPERTY_IF_CHANGED(lineHeight); + COPY_PROPERTY_IF_CHANGED(textColor); + COPY_PROPERTY_IF_CHANGED(textAlpha); + COPY_PROPERTY_IF_CHANGED(backgroundColor); + COPY_PROPERTY_IF_CHANGED(backgroundAlpha); + COPY_PROPERTY_IF_CHANGED(billboardMode); + COPY_PROPERTY_IF_CHANGED(leftMargin); + COPY_PROPERTY_IF_CHANGED(rightMargin); + COPY_PROPERTY_IF_CHANGED(topMargin); + COPY_PROPERTY_IF_CHANGED(bottomMargin); + + // Zone + _keyLight.merge(other._keyLight); + _ambientLight.merge(other._ambientLight); + _skybox.merge(other._skybox); + _haze.merge(other._haze); + _bloom.merge(other._bloom); + COPY_PROPERTY_IF_CHANGED(flyingAllowed); + COPY_PROPERTY_IF_CHANGED(ghostingAllowed); + COPY_PROPERTY_IF_CHANGED(filterURL); + COPY_PROPERTY_IF_CHANGED(keyLightMode); + COPY_PROPERTY_IF_CHANGED(ambientLightMode); + COPY_PROPERTY_IF_CHANGED(skyboxMode); + COPY_PROPERTY_IF_CHANGED(hazeMode); + COPY_PROPERTY_IF_CHANGED(bloomMode); + + // Polyvox + COPY_PROPERTY_IF_CHANGED(voxelVolumeSize); + COPY_PROPERTY_IF_CHANGED(voxelData); + COPY_PROPERTY_IF_CHANGED(voxelSurfaceStyle); + COPY_PROPERTY_IF_CHANGED(xTextureURL); + COPY_PROPERTY_IF_CHANGED(yTextureURL); + COPY_PROPERTY_IF_CHANGED(zTextureURL); + COPY_PROPERTY_IF_CHANGED(xNNeighborID); + COPY_PROPERTY_IF_CHANGED(yNNeighborID); + COPY_PROPERTY_IF_CHANGED(zNNeighborID); + COPY_PROPERTY_IF_CHANGED(xPNeighborID); + COPY_PROPERTY_IF_CHANGED(yPNeighborID); + COPY_PROPERTY_IF_CHANGED(zPNeighborID); + + // Web + COPY_PROPERTY_IF_CHANGED(sourceUrl); + COPY_PROPERTY_IF_CHANGED(dpi); + + // Polyline + COPY_PROPERTY_IF_CHANGED(linePoints); + COPY_PROPERTY_IF_CHANGED(strokeWidths); + COPY_PROPERTY_IF_CHANGED(normals); + COPY_PROPERTY_IF_CHANGED(strokeColors); + COPY_PROPERTY_IF_CHANGED(isUVModeStretch); + COPY_PROPERTY_IF_CHANGED(glow); + COPY_PROPERTY_IF_CHANGED(faceCamera); + + // Shape + COPY_PROPERTY_IF_CHANGED(shape); + + // Material + COPY_PROPERTY_IF_CHANGED(materialURL); + COPY_PROPERTY_IF_CHANGED(materialMappingMode); + COPY_PROPERTY_IF_CHANGED(priority); + COPY_PROPERTY_IF_CHANGED(parentMaterialName); + COPY_PROPERTY_IF_CHANGED(materialMappingPos); + COPY_PROPERTY_IF_CHANGED(materialMappingScale); + COPY_PROPERTY_IF_CHANGED(materialMappingRot); + COPY_PROPERTY_IF_CHANGED(materialData); + COPY_PROPERTY_IF_CHANGED(materialRepeat); + + // Image COPY_PROPERTY_IF_CHANGED(imageURL); COPY_PROPERTY_IF_CHANGED(emissive); COPY_PROPERTY_IF_CHANGED(keepAspectRatio); COPY_PROPERTY_IF_CHANGED(subImage); + // Grid COPY_PROPERTY_IF_CHANGED(followCamera); COPY_PROPERTY_IF_CHANGED(majorGridEvery); COPY_PROPERTY_IF_CHANGED(minorGridEvery); - COPY_PROPERTY_IF_CHANGED(textAlpha); - COPY_PROPERTY_IF_CHANGED(backgroundAlpha); - COPY_PROPERTY_IF_CHANGED(leftMargin); - COPY_PROPERTY_IF_CHANGED(rightMargin); - COPY_PROPERTY_IF_CHANGED(topMargin); - COPY_PROPERTY_IF_CHANGED(bottomMargin); - // Certifiable Properties COPY_PROPERTY_IF_CHANGED(itemName); COPY_PROPERTY_IF_CHANGED(itemDescription); @@ -2083,83 +2197,13 @@ void EntityItemProperties::merge(const EntityItemProperties& other) { COPY_PROPERTY_IF_CHANGED(certificateID); COPY_PROPERTY_IF_CHANGED(staticCertificateVersion); - COPY_PROPERTY_IF_CHANGED(name); - COPY_PROPERTY_IF_CHANGED(collisionSoundURL); - - COPY_PROPERTY_IF_CHANGED(hazeMode); - COPY_PROPERTY_IF_CHANGED(keyLightMode); - COPY_PROPERTY_IF_CHANGED(ambientLightMode); - COPY_PROPERTY_IF_CHANGED(skyboxMode); - COPY_PROPERTY_IF_CHANGED(bloomMode); - - COPY_PROPERTY_IF_CHANGED(sourceUrl); - COPY_PROPERTY_IF_CHANGED(voxelVolumeSize); - COPY_PROPERTY_IF_CHANGED(voxelData); - COPY_PROPERTY_IF_CHANGED(voxelSurfaceStyle); - COPY_PROPERTY_IF_CHANGED(lineWidth); - COPY_PROPERTY_IF_CHANGED(linePoints); - COPY_PROPERTY_IF_CHANGED(href); - COPY_PROPERTY_IF_CHANGED(description); - COPY_PROPERTY_IF_CHANGED(billboardMode); - COPY_PROPERTY_IF_CHANGED(actionData); - COPY_PROPERTY_IF_CHANGED(normals); - COPY_PROPERTY_IF_CHANGED(strokeColors); - COPY_PROPERTY_IF_CHANGED(strokeWidths); - COPY_PROPERTY_IF_CHANGED(isUVModeStretch); - COPY_PROPERTY_IF_CHANGED(created); - - _animation.merge(other._animation); - _keyLight.merge(other._keyLight); - _ambientLight.merge(other._ambientLight); - _skybox.merge(other._skybox); - _haze.merge(other._haze); - _bloom.merge(other._bloom); - _grab.merge(other._grab); - - COPY_PROPERTY_IF_CHANGED(xTextureURL); - COPY_PROPERTY_IF_CHANGED(yTextureURL); - COPY_PROPERTY_IF_CHANGED(zTextureURL); - - COPY_PROPERTY_IF_CHANGED(xNNeighborID); - COPY_PROPERTY_IF_CHANGED(yNNeighborID); - COPY_PROPERTY_IF_CHANGED(zNNeighborID); - - COPY_PROPERTY_IF_CHANGED(xPNeighborID); - COPY_PROPERTY_IF_CHANGED(yPNeighborID); - COPY_PROPERTY_IF_CHANGED(zPNeighborID); - - COPY_PROPERTY_IF_CHANGED(parentID); - COPY_PROPERTY_IF_CHANGED(parentJointIndex); - COPY_PROPERTY_IF_CHANGED(queryAACube); - + // Local props for scripts COPY_PROPERTY_IF_CHANGED(localPosition); COPY_PROPERTY_IF_CHANGED(localRotation); COPY_PROPERTY_IF_CHANGED(localVelocity); COPY_PROPERTY_IF_CHANGED(localAngularVelocity); COPY_PROPERTY_IF_CHANGED(localDimensions); - COPY_PROPERTY_IF_CHANGED(jointRotationsSet); - COPY_PROPERTY_IF_CHANGED(jointRotations); - COPY_PROPERTY_IF_CHANGED(jointTranslationsSet); - COPY_PROPERTY_IF_CHANGED(jointTranslations); - COPY_PROPERTY_IF_CHANGED(shape); - - COPY_PROPERTY_IF_CHANGED(flyingAllowed); - COPY_PROPERTY_IF_CHANGED(ghostingAllowed); - COPY_PROPERTY_IF_CHANGED(filterURL); - - COPY_PROPERTY_IF_CHANGED(entityHostType); - COPY_PROPERTY_IF_CHANGED(owningAvatarID); - - COPY_PROPERTY_IF_CHANGED(dpi); - - COPY_PROPERTY_IF_CHANGED(cloneable); - COPY_PROPERTY_IF_CHANGED(cloneLifetime); - COPY_PROPERTY_IF_CHANGED(cloneLimit); - COPY_PROPERTY_IF_CHANGED(cloneDynamic); - COPY_PROPERTY_IF_CHANGED(cloneAvatarEntity); - COPY_PROPERTY_IF_CHANGED(cloneOriginID); - _lastEdited = usecTimestampNow(); } @@ -2203,57 +2247,90 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue static std::once_flag initMap; std::call_once(initMap, []() { + // Core ADD_PROPERTY_TO_MAP(PROP_VISIBLE, Visible, visible, bool); - ADD_PROPERTY_TO_MAP(PROP_CAN_CAST_SHADOW, CanCastShadow, canCastShadow, bool); + ADD_PROPERTY_TO_MAP(PROP_NAME, Name, name, QString); + ADD_PROPERTY_TO_MAP(PROP_LOCKED, Locked, locked, bool); + ADD_PROPERTY_TO_MAP(PROP_USER_DATA, UserData, userData, QString); + ADD_PROPERTY_TO_MAP(PROP_HREF, Href, href, QString); + ADD_PROPERTY_TO_MAP(PROP_DESCRIPTION, Description, description, QString); ADD_PROPERTY_TO_MAP(PROP_POSITION, Position, position, vec3); ADD_PROPERTY_TO_MAP(PROP_DIMENSIONS, Dimensions, dimensions, vec3); ADD_PROPERTY_TO_MAP(PROP_ROTATION, Rotation, rotation, quat); + ADD_PROPERTY_TO_MAP(PROP_REGISTRATION_POINT, RegistrationPoint, registrationPoint, vec3); + //ADD_PROPERTY_TO_MAP(PROP_CREATED, Created, created, quint64); // not yet handled + //ADD_PROPERTY_TO_MAP(PROP_LAST_EDITED_BY, LastEditedBy, lastEditedBy, QUuid); // not yet handled + ADD_PROPERTY_TO_MAP(PROP_ENTITY_HOST_TYPE, EntityHostType, entityHostType, entity::HostType); + //ADD_PROPERTY_TO_MAP(PROP_OWNING_AVATAR_ID, OwningAvatarID, owningAvatarID, QUuid); // not yet handled + ADD_PROPERTY_TO_MAP(PROP_PARENT_ID, ParentID, parentID, QUuid); + ADD_PROPERTY_TO_MAP(PROP_PARENT_JOINT_INDEX, ParentJointIndex, parentJointIndex, uint16_t); + //ADD_PROPERTY_TO_MAP(PROP_QUERY_AA_CUBE, QueryAACube, queryAACube, AACube); // not yet handled + ADD_PROPERTY_TO_MAP(PROP_CAN_CAST_SHADOW, CanCastShadow, canCastShadow, bool); + ADD_PROPERTY_TO_MAP(PROP_VISIBLE_IN_SECONDARY_CAMERA, IsVisibleInSecondaryCamera, isVisibleInSecondaryCamera, bool); + { // Grab + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_GRABBABLE, Grab, grab, Grabbable, grabbable); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_KINEMATIC, Grab, grab, GrabKinematic, grabKinematic); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_FOLLOWS_CONTROLLER, Grab, grab, GrabFollowsController, grabFollowsController); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_TRIGGERABLE, Grab, grab, Triggerable, triggerable); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE, Grab, grab, Equippable, equippable); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_LEFT_EQUIPPABLE_POSITION_OFFSET, Grab, grab, + EquippableLeftPosition, equippableLeftPosition); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_LEFT_EQUIPPABLE_ROTATION_OFFSET, Grab, grab, + EquippableLeftRotation, equippableLeftRotation); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_RIGHT_EQUIPPABLE_POSITION_OFFSET, Grab, grab, + EquippableRightPosition, equippableRightPosition); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_RIGHT_EQUIPPABLE_ROTATION_OFFSET, Grab, grab, + EquippableRightRotation, equippableRightRotation); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE_INDICATOR_URL, Grab, grab, + EquippableIndicatorURL, equippableIndicatorURL); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE_INDICATOR_SCALE, Grab, grab, + EquippableIndicatorScale, equippableIndicatorScale); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE_INDICATOR_OFFSET, Grab, grab, + EquippableIndicatorOffset, equippableIndicatorOffset); + } + + // Physics ADD_PROPERTY_TO_MAP(PROP_DENSITY, Density, density, float); ADD_PROPERTY_TO_MAP(PROP_VELOCITY, Velocity, velocity, vec3); + ADD_PROPERTY_TO_MAP(PROP_ANGULAR_VELOCITY, AngularVelocity, angularVelocity, vec3); ADD_PROPERTY_TO_MAP(PROP_GRAVITY, Gravity, gravity, vec3); ADD_PROPERTY_TO_MAP(PROP_ACCELERATION, Acceleration, acceleration, vec3); ADD_PROPERTY_TO_MAP(PROP_DAMPING, Damping, damping, float); + ADD_PROPERTY_TO_MAP(PROP_ANGULAR_DAMPING, AngularDamping, angularDamping, float); ADD_PROPERTY_TO_MAP(PROP_RESTITUTION, Restitution, restitution, float); ADD_PROPERTY_TO_MAP(PROP_FRICTION, Friction, friction, float); ADD_PROPERTY_TO_MAP(PROP_LIFETIME, Lifetime, lifetime, float); - ADD_PROPERTY_TO_MAP(PROP_SCRIPT, Script, script, QString); - ADD_PROPERTY_TO_MAP(PROP_SCRIPT_TIMESTAMP, ScriptTimestamp, scriptTimestamp, quint64); - ADD_PROPERTY_TO_MAP(PROP_SERVER_SCRIPTS, ServerScripts, serverScripts, QString); - ADD_PROPERTY_TO_MAP(PROP_COLLISION_SOUND_URL, CollisionSoundURL, collisionSoundURL, QString); - ADD_PROPERTY_TO_MAP(PROP_COLOR, Color, color, u8vec3Color); - ADD_PROPERTY_TO_MAP(PROP_COLOR_SPREAD, ColorSpread, colorSpread, u8vec3Color); - ADD_PROPERTY_TO_MAP(PROP_COLOR_START, ColorStart, colorStart, vec3Color); - ADD_PROPERTY_TO_MAP(PROP_COLOR_FINISH, ColorFinish, colorFinish, vec3Color); - ADD_PROPERTY_TO_MAP(PROP_ALPHA, Alpha, alpha, float); - ADD_PROPERTY_TO_MAP(PROP_ALPHA_SPREAD, AlphaSpread, alphaSpread, float); - ADD_PROPERTY_TO_MAP(PROP_ALPHA_START, AlphaStart, alphaStart, float); - ADD_PROPERTY_TO_MAP(PROP_ALPHA_FINISH, AlphaFinish, alphaFinish, float); - ADD_PROPERTY_TO_MAP(PROP_EMITTER_SHOULD_TRAIL, EmitterShouldTrail, emitterShouldTrail, bool); - ADD_PROPERTY_TO_MAP(PROP_MODEL_URL, ModelURL, modelURL, QString); - ADD_PROPERTY_TO_MAP(PROP_COMPOUND_SHAPE_URL, CompoundShapeURL, compoundShapeURL, QString); - ADD_PROPERTY_TO_MAP(PROP_REGISTRATION_POINT, RegistrationPoint, registrationPoint, vec3); - ADD_PROPERTY_TO_MAP(PROP_ANGULAR_VELOCITY, AngularVelocity, angularVelocity, vec3); - ADD_PROPERTY_TO_MAP(PROP_ANGULAR_DAMPING, AngularDamping, angularDamping, float); ADD_PROPERTY_TO_MAP(PROP_COLLISIONLESS, Collisionless, collisionless, bool); ADD_PROPERTY_TO_MAP(PROP_COLLISIONLESS, unused, ignoreForCollisions, unused); // legacy support ADD_PROPERTY_TO_MAP(PROP_COLLISION_MASK, unused, collisionMask, unused); ADD_PROPERTY_TO_MAP(PROP_COLLISION_MASK, unused, collidesWith, unused); ADD_PROPERTY_TO_MAP(PROP_DYNAMIC, unused, collisionsWillMove, unused); // legacy support ADD_PROPERTY_TO_MAP(PROP_DYNAMIC, unused, dynamic, unused); - ADD_PROPERTY_TO_MAP(PROP_IS_SPOTLIGHT, IsSpotlight, isSpotlight, bool); - ADD_PROPERTY_TO_MAP(PROP_INTENSITY, Intensity, intensity, float); - ADD_PROPERTY_TO_MAP(PROP_FALLOFF_RADIUS, FalloffRadius, falloffRadius, float); - ADD_PROPERTY_TO_MAP(PROP_EXPONENT, Exponent, exponent, float); - ADD_PROPERTY_TO_MAP(PROP_CUTOFF, Cutoff, cutoff, float); - ADD_PROPERTY_TO_MAP(PROP_LOCKED, Locked, locked, bool); - ADD_PROPERTY_TO_MAP(PROP_TEXTURES, Textures, textures, QString); - ADD_PROPERTY_TO_MAP(PROP_USER_DATA, UserData, userData, QString); ADD_PROPERTY_TO_MAP(PROP_SIMULATION_OWNER, SimulationOwner, simulationOwner, SimulationOwner); - ADD_PROPERTY_TO_MAP(PROP_TEXT, Text, text, QString); - ADD_PROPERTY_TO_MAP(PROP_LINE_HEIGHT, LineHeight, lineHeight, float); - ADD_PROPERTY_TO_MAP(PROP_TEXT_COLOR, TextColor, textColor, u8vec3Color); - ADD_PROPERTY_TO_MAP(PROP_BACKGROUND_COLOR, BackgroundColor, backgroundColor, u8vec3Color); + ADD_PROPERTY_TO_MAP(PROP_COLLISION_SOUND_URL, CollisionSoundURL, collisionSoundURL, QString); + ADD_PROPERTY_TO_MAP(PROP_ACTION_DATA, ActionData, actionData, QByteArray); + + // Cloning + ADD_PROPERTY_TO_MAP(PROP_CLONEABLE, Cloneable, cloneable, bool); + ADD_PROPERTY_TO_MAP(PROP_CLONE_LIFETIME, CloneLifetime, cloneLifetime, float); + ADD_PROPERTY_TO_MAP(PROP_CLONE_LIMIT, CloneLimit, cloneLimit, float); + ADD_PROPERTY_TO_MAP(PROP_CLONE_DYNAMIC, CloneDynamic, cloneDynamic, bool); + ADD_PROPERTY_TO_MAP(PROP_CLONE_AVATAR_ENTITY, CloneAvatarEntity, cloneAvatarEntity, bool); + ADD_PROPERTY_TO_MAP(PROP_CLONE_ORIGIN_ID, CloneOriginID, cloneOriginID, QUuid); + + // Scripts + ADD_PROPERTY_TO_MAP(PROP_SCRIPT, Script, script, QString); + ADD_PROPERTY_TO_MAP(PROP_SCRIPT_TIMESTAMP, ScriptTimestamp, scriptTimestamp, quint64); + ADD_PROPERTY_TO_MAP(PROP_SERVER_SCRIPTS, ServerScripts, serverScripts, QString); + + // Common ADD_PROPERTY_TO_MAP(PROP_SHAPE_TYPE, ShapeType, shapeType, ShapeType); + ADD_PROPERTY_TO_MAP(PROP_COMPOUND_SHAPE_URL, CompoundShapeURL, compoundShapeURL, QString); + ADD_PROPERTY_TO_MAP(PROP_COLOR, Color, color, u8vec3Color); + ADD_PROPERTY_TO_MAP(PROP_ALPHA, Alpha, alpha, float); + ADD_PROPERTY_TO_MAP(PROP_TEXTURES, Textures, textures, QString); + + // Particles ADD_PROPERTY_TO_MAP(PROP_MAX_PARTICLES, MaxParticles, maxParticles, quint32); ADD_PROPERTY_TO_MAP(PROP_LIFESPAN, Lifespan, lifespan, float); ADD_PROPERTY_TO_MAP(PROP_EMITTING_PARTICLES, IsEmitting, isEmitting, bool); @@ -2263,17 +2340,145 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue ADD_PROPERTY_TO_MAP(PROP_EMIT_ORIENTATION, EmitOrientation, emitOrientation, quat); ADD_PROPERTY_TO_MAP(PROP_EMIT_DIMENSIONS, EmitDimensions, emitDimensions, vec3); ADD_PROPERTY_TO_MAP(PROP_EMIT_RADIUS_START, EmitRadiusStart, emitRadiusStart, float); + ADD_PROPERTY_TO_MAP(PROP_EMIT_ACCELERATION, EmitAcceleration, emitAcceleration, vec3); + ADD_PROPERTY_TO_MAP(PROP_ACCELERATION_SPREAD, AccelerationSpread, accelerationSpread, vec3); ADD_PROPERTY_TO_MAP(PROP_POLAR_START, EmitPolarStart, polarStart, float); ADD_PROPERTY_TO_MAP(PROP_POLAR_FINISH, EmitPolarFinish, polarFinish, float); ADD_PROPERTY_TO_MAP(PROP_AZIMUTH_START, EmitAzimuthStart, azimuthStart, float); ADD_PROPERTY_TO_MAP(PROP_AZIMUTH_FINISH, EmitAzimuthFinish, azimuthFinish, float); - ADD_PROPERTY_TO_MAP(PROP_EMIT_ACCELERATION, EmitAcceleration, emitAcceleration, vec3); - ADD_PROPERTY_TO_MAP(PROP_ACCELERATION_SPREAD, AccelerationSpread, accelerationSpread, vec3); ADD_PROPERTY_TO_MAP(PROP_PARTICLE_RADIUS, ParticleRadius, particleRadius, float); ADD_PROPERTY_TO_MAP(PROP_RADIUS_SPREAD, RadiusSpread, radiusSpread, float); ADD_PROPERTY_TO_MAP(PROP_RADIUS_START, RadiusStart, radiusStart, float); ADD_PROPERTY_TO_MAP(PROP_RADIUS_FINISH, RadiusFinish, radiusFinish, float); + ADD_PROPERTY_TO_MAP(PROP_COLOR_SPREAD, ColorSpread, colorSpread, u8vec3Color); + ADD_PROPERTY_TO_MAP(PROP_COLOR_START, ColorStart, colorStart, vec3Color); + ADD_PROPERTY_TO_MAP(PROP_COLOR_FINISH, ColorFinish, colorFinish, vec3Color); + ADD_PROPERTY_TO_MAP(PROP_ALPHA_SPREAD, AlphaSpread, alphaSpread, float); + ADD_PROPERTY_TO_MAP(PROP_ALPHA_START, AlphaStart, alphaStart, float); + ADD_PROPERTY_TO_MAP(PROP_ALPHA_FINISH, AlphaFinish, alphaFinish, float); + ADD_PROPERTY_TO_MAP(PROP_EMITTER_SHOULD_TRAIL, EmitterShouldTrail, emitterShouldTrail, bool); + ADD_PROPERTY_TO_MAP(PROP_PARTICLE_SPIN, ParticleSpin, particleSpin, float); + ADD_PROPERTY_TO_MAP(PROP_SPIN_SPREAD, SpinSpread, spinSpread, float); + ADD_PROPERTY_TO_MAP(PROP_SPIN_START, SpinStart, spinStart, float); + ADD_PROPERTY_TO_MAP(PROP_SPIN_FINISH, SpinFinish, spinFinish, float); + ADD_PROPERTY_TO_MAP(PROP_PARTICLE_ROTATE_WITH_ENTITY, RotateWithEntity, rotateWithEntity, float); + // Model + ADD_PROPERTY_TO_MAP(PROP_MODEL_URL, ModelURL, modelURL, QString); + ADD_PROPERTY_TO_MAP(PROP_JOINT_ROTATIONS_SET, JointRotationsSet, jointRotationsSet, QVector); + ADD_PROPERTY_TO_MAP(PROP_JOINT_ROTATIONS, JointRotations, jointRotations, QVector); + ADD_PROPERTY_TO_MAP(PROP_JOINT_TRANSLATIONS_SET, JointTranslationsSet, jointTranslationsSet, QVector); + ADD_PROPERTY_TO_MAP(PROP_JOINT_TRANSLATIONS, JointTranslations, jointTranslations, QVector); + ADD_PROPERTY_TO_MAP(PROP_RELAY_PARENT_JOINTS, RelayParentJoints, relayParentJoints, bool); + { // Animation + ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_URL, Animation, animation, URL, url); + ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_ALLOW_TRANSLATION, Animation, animation, AllowTranslation, allowTranslation); + ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_FPS, Animation, animation, FPS, fps); + ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_FRAME_INDEX, Animation, animation, CurrentFrame, currentFrame); + ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_PLAYING, Animation, animation, Running, running); + ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_LOOP, Animation, animation, Loop, loop); + ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_FIRST_FRAME, Animation, animation, FirstFrame, firstFrame); + ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_LAST_FRAME, Animation, animation, LastFrame, lastFrame); + ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_HOLD, Animation, animation, Hold, hold); + } + + // Light + ADD_PROPERTY_TO_MAP(PROP_IS_SPOTLIGHT, IsSpotlight, isSpotlight, bool); + ADD_PROPERTY_TO_MAP(PROP_INTENSITY, Intensity, intensity, float); + ADD_PROPERTY_TO_MAP(PROP_EXPONENT, Exponent, exponent, float); + ADD_PROPERTY_TO_MAP(PROP_CUTOFF, Cutoff, cutoff, float); + ADD_PROPERTY_TO_MAP(PROP_FALLOFF_RADIUS, FalloffRadius, falloffRadius, float); + + // Text + ADD_PROPERTY_TO_MAP(PROP_TEXT, Text, text, QString); + ADD_PROPERTY_TO_MAP(PROP_LINE_HEIGHT, LineHeight, lineHeight, float); + ADD_PROPERTY_TO_MAP(PROP_TEXT_COLOR, TextColor, textColor, u8vec3Color); + ADD_PROPERTY_TO_MAP(PROP_TEXT_ALPHA, TextAlpha, textAlpha, float); + ADD_PROPERTY_TO_MAP(PROP_BACKGROUND_COLOR, BackgroundColor, backgroundColor, u8vec3Color); + ADD_PROPERTY_TO_MAP(PROP_BACKGROUND_ALPHA, BackgroundAlpha, backgroundAlpha, float); + ADD_PROPERTY_TO_MAP(PROP_BILLBOARD_MODE, BillboardMode, billboardMode, BillboardMode); + ADD_PROPERTY_TO_MAP(PROP_LEFT_MARGIN, LeftMargin, leftMargin, float); + ADD_PROPERTY_TO_MAP(PROP_RIGHT_MARGIN, RightMargin, rightMargin, float); + ADD_PROPERTY_TO_MAP(PROP_TOP_MARGIN, TopMargin, topMargin, float); + ADD_PROPERTY_TO_MAP(PROP_BOTTOM_MARGIN, BottomMargin, bottomMargin, float); + + // Zone + { // Keylight + ADD_GROUP_PROPERTY_TO_MAP(PROP_KEYLIGHT_COLOR, KeyLight, keyLight, Color, color); + ADD_GROUP_PROPERTY_TO_MAP(PROP_KEYLIGHT_INTENSITY, KeyLight, keyLight, Intensity, intensity); + ADD_GROUP_PROPERTY_TO_MAP(PROP_KEYLIGHT_DIRECTION, KeyLight, keylight, Direction, direction); + ADD_GROUP_PROPERTY_TO_MAP(PROP_KEYLIGHT_CAST_SHADOW, KeyLight, keyLight, CastShadows, castShadows); + } + { // Ambient light + ADD_GROUP_PROPERTY_TO_MAP(PROP_AMBIENT_LIGHT_INTENSITY, AmbientLight, ambientLight, Intensity, intensity); + ADD_GROUP_PROPERTY_TO_MAP(PROP_AMBIENT_LIGHT_URL, AmbientLight, ambientLight, URL, url); + } + { // Skybox + ADD_GROUP_PROPERTY_TO_MAP(PROP_SKYBOX_COLOR, Skybox, skybox, Color, color); + ADD_GROUP_PROPERTY_TO_MAP(PROP_SKYBOX_URL, Skybox, skybox, URL, url); + } + { // Haze + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_RANGE, Haze, haze, HazeRange, hazeRange); + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_COLOR, Haze, haze, HazeColor, hazeColor); + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_GLARE_COLOR, Haze, haze, HazeGlareColor, hazeGlareColor); + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_ENABLE_GLARE, Haze, haze, HazeEnableGlare, hazeEnableGlare); + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_GLARE_ANGLE, Haze, haze, HazeGlareAngle, hazeGlareAngle); + + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_ALTITUDE_EFFECT, Haze, haze, HazeAltitudeEffect, hazeAltitudeEfect); + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_CEILING, Haze, haze, HazeCeiling, hazeCeiling); + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_BASE_REF, Haze, haze, HazeBaseRef, hazeBaseRef); + + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_BACKGROUND_BLEND, Haze, haze, HazeBackgroundBlend, hazeBackgroundBlend); + + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_ATTENUATE_KEYLIGHT, Haze, haze, HazeAttenuateKeyLight, hazeAttenuateKeyLight); + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_KEYLIGHT_RANGE, Haze, haze, HazeKeyLightRange, hazeKeyLightRange); + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_KEYLIGHT_ALTITUDE, Haze, haze, HazeKeyLightAltitude, hazeKeyLightAltitude); + } + { // Bloom + ADD_GROUP_PROPERTY_TO_MAP(PROP_BLOOM_INTENSITY, Bloom, bloom, BloomIntensity, bloomIntensity); + ADD_GROUP_PROPERTY_TO_MAP(PROP_BLOOM_THRESHOLD, Bloom, bloom, BloomThreshold, bloomThreshold); + ADD_GROUP_PROPERTY_TO_MAP(PROP_BLOOM_SIZE, Bloom, bloom, BloomSize, bloomSize); + } + ADD_PROPERTY_TO_MAP(PROP_FLYING_ALLOWED, FlyingAllowed, flyingAllowed, bool); + ADD_PROPERTY_TO_MAP(PROP_GHOSTING_ALLOWED, GhostingAllowed, ghostingAllowed, bool); + ADD_PROPERTY_TO_MAP(PROP_FILTER_URL, FilterURL, filterURL, QString); + ADD_PROPERTY_TO_MAP(PROP_KEY_LIGHT_MODE, KeyLightMode, keyLightMode, uint32_t); + ADD_PROPERTY_TO_MAP(PROP_AMBIENT_LIGHT_MODE, AmbientLightMode, ambientLightMode, uint32_t); + ADD_PROPERTY_TO_MAP(PROP_SKYBOX_MODE, SkyboxMode, skyboxMode, uint32_t); + ADD_PROPERTY_TO_MAP(PROP_HAZE_MODE, HazeMode, hazeMode, uint32_t); + ADD_PROPERTY_TO_MAP(PROP_BLOOM_MODE, BloomMode, bloomMode, uint32_t); + + // Polyvox + ADD_PROPERTY_TO_MAP(PROP_VOXEL_VOLUME_SIZE, VoxelVolumeSize, voxelVolumeSize, vec3); + ADD_PROPERTY_TO_MAP(PROP_VOXEL_DATA, VoxelData, voxelData, QByteArray); + ADD_PROPERTY_TO_MAP(PROP_VOXEL_SURFACE_STYLE, VoxelSurfaceStyle, voxelSurfaceStyle, uint16_t); + ADD_PROPERTY_TO_MAP(PROP_X_TEXTURE_URL, XTextureURL, xTextureURL, QString); + ADD_PROPERTY_TO_MAP(PROP_Y_TEXTURE_URL, YTextureURL, yTextureURL, QString); + ADD_PROPERTY_TO_MAP(PROP_Z_TEXTURE_URL, ZTextureURL, zTextureURL, QString); + ADD_PROPERTY_TO_MAP(PROP_X_N_NEIGHBOR_ID, XNNeighborID, xNNeighborID, EntityItemID); + ADD_PROPERTY_TO_MAP(PROP_Y_N_NEIGHBOR_ID, YNNeighborID, yNNeighborID, EntityItemID); + ADD_PROPERTY_TO_MAP(PROP_Z_N_NEIGHBOR_ID, ZNNeighborID, zNNeighborID, EntityItemID); + ADD_PROPERTY_TO_MAP(PROP_X_P_NEIGHBOR_ID, XPNeighborID, xPNeighborID, EntityItemID); + ADD_PROPERTY_TO_MAP(PROP_Y_P_NEIGHBOR_ID, YPNeighborID, yPNeighborID, EntityItemID); + ADD_PROPERTY_TO_MAP(PROP_Z_P_NEIGHBOR_ID, ZPNeighborID, zPNeighborID, EntityItemID); + + // Web + ADD_PROPERTY_TO_MAP(PROP_SOURCE_URL, SourceUrl, sourceUrl, QString); + ADD_PROPERTY_TO_MAP(PROP_DPI, DPI, dpi, uint16_t); + + // Polyline + ADD_PROPERTY_TO_MAP(PROP_LINE_POINTS, LinePoints, linePoints, QVector); + ADD_PROPERTY_TO_MAP(PROP_STROKE_WIDTHS, StrokeWidths, strokeWidths, QVector); + ADD_PROPERTY_TO_MAP(PROP_STROKE_NORMALS, Normals, normals, QVector); + ADD_PROPERTY_TO_MAP(PROP_STROKE_COLORS, StrokeColors, strokeColors, QVector); + ADD_PROPERTY_TO_MAP(PROP_IS_UV_MODE_STRETCH, IsUVModeStretch, isUVModeStretch, QVector); + ADD_PROPERTY_TO_MAP(PROP_LINE_GLOW, Glow, glow); + ADD_PROPERTY_TO_MAP(PROP_LINE_FACE_CAMERA, FaceCamera, faceCamera, bool); + + // Shape + ADD_PROPERTY_TO_MAP(PROP_SHAPE, Shape, shape, QString); + + // Material ADD_PROPERTY_TO_MAP(PROP_MATERIAL_URL, MaterialURL, materialURL, QString); ADD_PROPERTY_TO_MAP(PROP_MATERIAL_MAPPING_MODE, MaterialMappingMode, materialMappingMode, MaterialMappingMode); ADD_PROPERTY_TO_MAP(PROP_MATERIAL_PRIORITY, Priority, priority, quint16); @@ -2284,13 +2489,16 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue ADD_PROPERTY_TO_MAP(PROP_MATERIAL_DATA, MaterialData, materialData, QString); ADD_PROPERTY_TO_MAP(PROP_MATERIAL_REPEAT, MaterialRepeat, materialRepeat, bool); - ADD_PROPERTY_TO_MAP(PROP_VISIBLE_IN_SECONDARY_CAMERA, IsVisibleInSecondaryCamera, isVisibleInSecondaryCamera, bool); + // Image + ADD_PROPERTY_TO_MAP(PROP_IMAGE_URL, ImageURL, imageURL, QString); + ADD_PROPERTY_TO_MAP(PROP_EMISSIVE, Emissive, emissive, bool); + ADD_PROPERTY_TO_MAP(PROP_KEEP_ASPECT_RATIO, KeepAspectRatio, keepAspectRatio, bool); + ADD_PROPERTY_TO_MAP(PROP_SUB_IMAGE, SubImage, subImage, QRect); - ADD_PROPERTY_TO_MAP(PROP_PARTICLE_SPIN, ParticleSpin, particleSpin, float); - ADD_PROPERTY_TO_MAP(PROP_SPIN_SPREAD, SpinSpread, spinSpread, float); - ADD_PROPERTY_TO_MAP(PROP_SPIN_START, SpinStart, spinStart, float); - ADD_PROPERTY_TO_MAP(PROP_SPIN_FINISH, SpinFinish, spinFinish, float); - ADD_PROPERTY_TO_MAP(PROP_PARTICLE_ROTATE_WITH_ENTITY, RotateWithEntity, rotateWithEntity, float); + // Grid + ADD_PROPERTY_TO_MAP(PROP_GRID_FOLLOW_CAMERA, FollowCamera, followCamera, bool); + ADD_PROPERTY_TO_MAP(PROP_MAJOR_GRID_EVERY, MajorGridEvery, majorGridEvery, uint32_t); + ADD_PROPERTY_TO_MAP(PROP_MINOR_GRID_EVERY, MinorGridEvery, minorGridEvery, float); // Certifiable Properties ADD_PROPERTY_TO_MAP(PROP_ITEM_NAME, ItemName, itemName, QString); @@ -2305,159 +2513,25 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue ADD_PROPERTY_TO_MAP(PROP_CERTIFICATE_ID, CertificateID, certificateID, QString); ADD_PROPERTY_TO_MAP(PROP_STATIC_CERTIFICATE_VERSION, StaticCertificateVersion, staticCertificateVersion, quint32); - ADD_PROPERTY_TO_MAP(PROP_KEYLIGHT_COLOR, KeyLightColor, keyLightColor, u8vec3Color); - ADD_PROPERTY_TO_MAP(PROP_KEYLIGHT_INTENSITY, KeyLightIntensity, keyLightIntensity, float); - ADD_PROPERTY_TO_MAP(PROP_KEYLIGHT_DIRECTION, KeyLightDirection, keyLightDirection, vec3); - ADD_PROPERTY_TO_MAP(PROP_KEYLIGHT_CAST_SHADOW, KeyLightCastShadows, keyLightCastShadows, bool); - - ADD_PROPERTY_TO_MAP(PROP_VOXEL_VOLUME_SIZE, VoxelVolumeSize, voxelVolumeSize, vec3); - ADD_PROPERTY_TO_MAP(PROP_VOXEL_DATA, VoxelData, voxelData, QByteArray); - ADD_PROPERTY_TO_MAP(PROP_VOXEL_SURFACE_STYLE, VoxelSurfaceStyle, voxelSurfaceStyle, uint16_t); - ADD_PROPERTY_TO_MAP(PROP_NAME, Name, name, QString); - ADD_PROPERTY_TO_MAP(PROP_SOURCE_URL, SourceUrl, sourceUrl, QString); - ADD_PROPERTY_TO_MAP(PROP_LINE_WIDTH, LineWidth, lineWidth, float); - ADD_PROPERTY_TO_MAP(PROP_LINE_POINTS, LinePoints, linePoints, QVector); - ADD_PROPERTY_TO_MAP(PROP_HREF, Href, href, QString); - ADD_PROPERTY_TO_MAP(PROP_DESCRIPTION, Description, description, QString); - ADD_PROPERTY_TO_MAP(PROP_BILLBOARD_MODE, BillboardMode, billboardMode, BillboardMode); - ADD_PROPERTY_TO_MAP(PROP_ACTION_DATA, ActionData, actionData, QByteArray); - ADD_PROPERTY_TO_MAP(PROP_NORMALS, Normals, normals, QVector); - ADD_PROPERTY_TO_MAP(PROP_STROKE_COLORS, StrokeColors, strokeColors, QVector); - ADD_PROPERTY_TO_MAP(PROP_STROKE_WIDTHS, StrokeWidths, strokeWidths, QVector); - ADD_PROPERTY_TO_MAP(PROP_IS_UV_MODE_STRETCH, IsUVModeStretch, isUVModeStretch, QVector); - ADD_PROPERTY_TO_MAP(PROP_X_TEXTURE_URL, XTextureURL, xTextureURL, QString); - ADD_PROPERTY_TO_MAP(PROP_Y_TEXTURE_URL, YTextureURL, yTextureURL, QString); - ADD_PROPERTY_TO_MAP(PROP_Z_TEXTURE_URL, ZTextureURL, zTextureURL, QString); - ADD_PROPERTY_TO_MAP(PROP_X_N_NEIGHBOR_ID, XNNeighborID, xNNeighborID, EntityItemID); - ADD_PROPERTY_TO_MAP(PROP_Y_N_NEIGHBOR_ID, YNNeighborID, yNNeighborID, EntityItemID); - ADD_PROPERTY_TO_MAP(PROP_Z_N_NEIGHBOR_ID, ZNNeighborID, zNNeighborID, EntityItemID); - ADD_PROPERTY_TO_MAP(PROP_X_P_NEIGHBOR_ID, XPNeighborID, xPNeighborID, EntityItemID); - ADD_PROPERTY_TO_MAP(PROP_Y_P_NEIGHBOR_ID, YPNeighborID, yPNeighborID, EntityItemID); - ADD_PROPERTY_TO_MAP(PROP_Z_P_NEIGHBOR_ID, ZPNeighborID, zPNeighborID, EntityItemID); - - ADD_PROPERTY_TO_MAP(PROP_PARENT_ID, ParentID, parentID, QUuid); - ADD_PROPERTY_TO_MAP(PROP_PARENT_JOINT_INDEX, ParentJointIndex, parentJointIndex, uint16_t); - + // Local script props ADD_PROPERTY_TO_MAP(PROP_LOCAL_POSITION, LocalPosition, localPosition, vec3); ADD_PROPERTY_TO_MAP(PROP_LOCAL_ROTATION, LocalRotation, localRotation, quat); ADD_PROPERTY_TO_MAP(PROP_LOCAL_VELOCITY, LocalVelocity, localVelocity, vec3); ADD_PROPERTY_TO_MAP(PROP_LOCAL_ANGULAR_VELOCITY, LocalAngularVelocity, localAngularVelocity, vec3); ADD_PROPERTY_TO_MAP(PROP_LOCAL_DIMENSIONS, LocalDimensions, localDimensions, vec3); - - ADD_PROPERTY_TO_MAP(PROP_JOINT_ROTATIONS_SET, JointRotationsSet, jointRotationsSet, QVector); - ADD_PROPERTY_TO_MAP(PROP_JOINT_ROTATIONS, JointRotations, jointRotations, QVector); - ADD_PROPERTY_TO_MAP(PROP_JOINT_TRANSLATIONS_SET, JointTranslationsSet, jointTranslationsSet, QVector); - ADD_PROPERTY_TO_MAP(PROP_JOINT_TRANSLATIONS, JointTranslations, jointTranslations, QVector); - ADD_PROPERTY_TO_MAP(PROP_RELAY_PARENT_JOINTS, RelayParentJoints, relayParentJoints, bool); - - ADD_PROPERTY_TO_MAP(PROP_SHAPE, Shape, shape, QString); - - ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_URL, Animation, animation, URL, url); - ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_FPS, Animation, animation, FPS, fps); - ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_FRAME_INDEX, Animation, animation, CurrentFrame, currentFrame); - ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_PLAYING, Animation, animation, Running, running); - ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_LOOP, Animation, animation, Loop, loop); - ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_FIRST_FRAME, Animation, animation, FirstFrame, firstFrame); - ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_LAST_FRAME, Animation, animation, LastFrame, lastFrame); - ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_HOLD, Animation, animation, Hold, hold); - ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_ALLOW_TRANSLATION, Animation, animation, AllowTranslation, allowTranslation); - - ADD_GROUP_PROPERTY_TO_MAP(PROP_SKYBOX_COLOR, Skybox, skybox, Color, color); - ADD_GROUP_PROPERTY_TO_MAP(PROP_SKYBOX_URL, Skybox, skybox, URL, url); - - ADD_PROPERTY_TO_MAP(PROP_FLYING_ALLOWED, FlyingAllowed, flyingAllowed, bool); - ADD_PROPERTY_TO_MAP(PROP_GHOSTING_ALLOWED, GhostingAllowed, ghostingAllowed, bool); - ADD_PROPERTY_TO_MAP(PROP_FILTER_URL, FilterURL, filterURL, QString); - - ADD_PROPERTY_TO_MAP(PROP_HAZE_MODE, HazeMode, hazeMode, uint32_t); - - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_RANGE, Haze, haze, HazeRange, hazeRange); - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_COLOR, Haze, haze, HazeColor, hazeColor); - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_GLARE_COLOR, Haze, haze, HazeGlareColor, hazeGlareColor); - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_ENABLE_GLARE, Haze, haze, HazeEnableGlare, hazeEnableGlare); - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_GLARE_ANGLE, Haze, haze, HazeGlareAngle, hazeGlareAngle); - - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_ALTITUDE_EFFECT, Haze, haze, HazeAltitudeEffect, hazeAltitudeEfect); - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_CEILING, Haze, haze, HazeCeiling, hazeCeiling); - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_BASE_REF, Haze, haze, HazeBaseRef, hazeBaseRef); - - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_BACKGROUND_BLEND, Haze, haze, HazeBackgroundBlend, hazeBackgroundBlend); - - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_ATTENUATE_KEYLIGHT, Haze, haze, HazeAttenuateKeyLight, hazeAttenuateKeyLight); - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_KEYLIGHT_RANGE, Haze, haze, HazeKeyLightRange, hazeKeyLightRange); - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_KEYLIGHT_ALTITUDE, Haze, haze, HazeKeyLightAltitude, hazeKeyLightAltitude); - - ADD_PROPERTY_TO_MAP(PROP_BLOOM_MODE, BloomMode, bloomMode, uint32_t); - ADD_GROUP_PROPERTY_TO_MAP(PROP_BLOOM_INTENSITY, Bloom, bloom, BloomIntensity, bloomIntensity); - ADD_GROUP_PROPERTY_TO_MAP(PROP_BLOOM_THRESHOLD, Bloom, bloom, BloomThreshold, bloomThreshold); - ADD_GROUP_PROPERTY_TO_MAP(PROP_BLOOM_SIZE, Bloom, bloom, BloomSize, bloomSize); - - ADD_PROPERTY_TO_MAP(PROP_KEY_LIGHT_MODE, KeyLightMode, keyLightMode, uint32_t); - ADD_PROPERTY_TO_MAP(PROP_AMBIENT_LIGHT_MODE, AmbientLightMode, ambientLightMode, uint32_t); - ADD_PROPERTY_TO_MAP(PROP_SKYBOX_MODE, SkyboxMode, skyboxMode, uint32_t); - - ADD_PROPERTY_TO_MAP(PROP_DPI, DPI, dpi, uint16_t); - - ADD_PROPERTY_TO_MAP(PROP_CLONEABLE, Cloneable, cloneable, bool); - ADD_PROPERTY_TO_MAP(PROP_CLONE_LIFETIME, CloneLifetime, cloneLifetime, float); - ADD_PROPERTY_TO_MAP(PROP_CLONE_LIMIT, CloneLimit, cloneLimit, float); - ADD_PROPERTY_TO_MAP(PROP_CLONE_DYNAMIC, CloneDynamic, cloneDynamic, bool); - ADD_PROPERTY_TO_MAP(PROP_CLONE_AVATAR_ENTITY, CloneAvatarEntity, cloneAvatarEntity, bool); - ADD_PROPERTY_TO_MAP(PROP_CLONE_ORIGIN_ID, CloneOriginID, cloneOriginID, QUuid); - - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_GRABBABLE, Grab, grab, Grabbable, grabbable); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_KINEMATIC, Grab, grab, GrabKinematic, grabKinematic); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_FOLLOWS_CONTROLLER, Grab, grab, GrabFollowsController, grabFollowsController); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_TRIGGERABLE, Grab, grab, Triggerable, triggerable); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE, Grab, grab, Equippable, equippable); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_LEFT_EQUIPPABLE_POSITION_OFFSET, Grab, grab, - EquippableLeftPosition, equippableLeftPosition); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_LEFT_EQUIPPABLE_ROTATION_OFFSET, Grab, grab, - EquippableLeftRotation, equippableLeftRotation); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_RIGHT_EQUIPPABLE_POSITION_OFFSET, Grab, grab, - EquippableRightPosition, equippableRightPosition); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_RIGHT_EQUIPPABLE_ROTATION_OFFSET, Grab, grab, - EquippableRightRotation, equippableRightRotation); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE_INDICATOR_URL, Grab, grab, - EquippableIndicatorURL, equippableIndicatorURL); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE_INDICATOR_SCALE, Grab, grab, - EquippableIndicatorScale, equippableIndicatorScale); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE_INDICATOR_OFFSET, Grab, grab, - EquippableIndicatorOffset, equippableIndicatorOffset); - - ADD_PROPERTY_TO_MAP(PROP_IMAGE_URL, ImageURL, imageURL, QString); - ADD_PROPERTY_TO_MAP(PROP_EMISSIVE, Emissive, emissive, bool); - ADD_PROPERTY_TO_MAP(PROP_KEEP_ASPECT_RATIO, KeepAspectRatio, keepAspectRatio, bool); - ADD_PROPERTY_TO_MAP(PROP_SUB_IMAGE, SubImage, subImage, QRect); - - ADD_PROPERTY_TO_MAP(PROP_GRID_FOLLOW_CAMERA, FollowCamera, followCamera, bool); - ADD_PROPERTY_TO_MAP(PROP_MAJOR_GRID_EVERY, MajorGridEvery, majorGridEvery, uint32_t); - ADD_PROPERTY_TO_MAP(PROP_MINOR_GRID_EVERY, MinorGridEvery, minorGridEvery, float); - - ADD_PROPERTY_TO_MAP(PROP_TEXT_ALPHA, TextAlpha, textAlpha, float); - ADD_PROPERTY_TO_MAP(PROP_BACKGROUND_ALPHA, BackgroundAlpha, backgroundAlpha, float); - ADD_PROPERTY_TO_MAP(PROP_LEFT_MARGIN, LeftMargin, leftMargin, float); - ADD_PROPERTY_TO_MAP(PROP_RIGHT_MARGIN, RightMargin, rightMargin, float); - ADD_PROPERTY_TO_MAP(PROP_TOP_MARGIN, TopMargin, topMargin, float); - ADD_PROPERTY_TO_MAP(PROP_BOTTOM_MARGIN, BottomMargin, bottomMargin, float); - - // FIXME - these are not yet handled - //ADD_PROPERTY_TO_MAP(PROP_CREATED, Created, created, quint64); - }); if (object.isString()) { - // TODO: figure out how to do this without a double lookup in the map - if (_propertyStringsToEnums.contains(object.toString())) { - flags << _propertyStringsToEnums[object.toString()]; + auto enumIter = _propertyStringsToEnums.find(object.toString()); + if (enumIter != _propertyStringsToEnums.end()) { + flags << enumIter.value; } } else if (object.isArray()) { quint32 length = object.property("length").toInt32(); for (quint32 i = 0; i < length; i++) { - QString propertyName = object.property(i).toString(); - // TODO: figure out how to do this without a double lookup in the map - if (_propertyStringsToEnums.contains(propertyName)) { - flags << _propertyStringsToEnums[propertyName]; + auto enumIter = _propertyStringsToEnums.find(object.property(i).toString()); + if (enumIter != _propertyStringsToEnums.end()) { + flags << enumIter.value; } } } @@ -2563,81 +2637,61 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy // PROP_PAGED_PROPERTY, // PROP_CUSTOM_PROPERTIES_INCLUDED, - APPEND_ENTITY_PROPERTY(PROP_SIMULATION_OWNER, properties._simulationOwner.toByteArray()); - APPEND_ENTITY_PROPERTY(PROP_POSITION, properties.getPosition()); - APPEND_ENTITY_PROPERTY(PROP_DIMENSIONS, properties.getDimensions()); - APPEND_ENTITY_PROPERTY(PROP_ROTATION, properties.getRotation()); - APPEND_ENTITY_PROPERTY(PROP_DENSITY, properties.getDensity()); - APPEND_ENTITY_PROPERTY(PROP_VELOCITY, properties.getVelocity()); - APPEND_ENTITY_PROPERTY(PROP_GRAVITY, properties.getGravity()); - APPEND_ENTITY_PROPERTY(PROP_ACCELERATION, properties.getAcceleration()); - APPEND_ENTITY_PROPERTY(PROP_DAMPING, properties.getDamping()); - APPEND_ENTITY_PROPERTY(PROP_RESTITUTION, properties.getRestitution()); - APPEND_ENTITY_PROPERTY(PROP_FRICTION, properties.getFriction()); - APPEND_ENTITY_PROPERTY(PROP_LIFETIME, properties.getLifetime()); - APPEND_ENTITY_PROPERTY(PROP_SCRIPT, properties.getScript()); - APPEND_ENTITY_PROPERTY(PROP_SCRIPT_TIMESTAMP, properties.getScriptTimestamp()); - APPEND_ENTITY_PROPERTY(PROP_SERVER_SCRIPTS, properties.getServerScripts()); - APPEND_ENTITY_PROPERTY(PROP_REGISTRATION_POINT, properties.getRegistrationPoint()); - APPEND_ENTITY_PROPERTY(PROP_ANGULAR_VELOCITY, properties.getAngularVelocity()); - APPEND_ENTITY_PROPERTY(PROP_ANGULAR_DAMPING, properties.getAngularDamping()); + APPEND_ENTITY_PROPERTY(PROP_VISIBLE, properties.getVisible()); - APPEND_ENTITY_PROPERTY(PROP_CAN_CAST_SHADOW, properties.getCanCastShadow()); - APPEND_ENTITY_PROPERTY(PROP_COLLISIONLESS, properties.getCollisionless()); - APPEND_ENTITY_PROPERTY(PROP_COLLISION_MASK, properties.getCollisionMask()); - APPEND_ENTITY_PROPERTY(PROP_DYNAMIC, properties.getDynamic()); + APPEND_ENTITY_PROPERTY(PROP_NAME, properties.getName()); APPEND_ENTITY_PROPERTY(PROP_LOCKED, properties.getLocked()); APPEND_ENTITY_PROPERTY(PROP_USER_DATA, properties.getUserData()); APPEND_ENTITY_PROPERTY(PROP_HREF, properties.getHref()); APPEND_ENTITY_PROPERTY(PROP_DESCRIPTION, properties.getDescription()); + APPEND_ENTITY_PROPERTY(PROP_POSITION, properties.getPosition()); + APPEND_ENTITY_PROPERTY(PROP_DIMENSIONS, properties.getDimensions()); + APPEND_ENTITY_PROPERTY(PROP_ROTATION, properties.getRotation()); + APPEND_ENTITY_PROPERTY(PROP_REGISTRATION_POINT, properties.getRegistrationPoint()); + // FIXME: deal with these + // APPEND_ENTITY_PROPERTY(PROP_CREATED, properties.getCreated()); + // APPEND_ENTITY_PROPERTY(PROP_LAST_EDITED_BY, properties.getLastEditedBy()); + // APPEND_ENTITY_PROPERTY(PROP_ENTITY_HOST_TYPE, (uint32_t)properties.getEntityHostType()); + // APPEND_ENTITY_PROPERTY(PROP_OWNING_AVATAR_ID, properties.getOwningAvatarID()); APPEND_ENTITY_PROPERTY(PROP_PARENT_ID, properties.getParentID()); APPEND_ENTITY_PROPERTY(PROP_PARENT_JOINT_INDEX, properties.getParentJointIndex()); APPEND_ENTITY_PROPERTY(PROP_QUERY_AA_CUBE, properties.getQueryAACube()); + APPEND_ENTITY_PROPERTY(PROP_CAN_CAST_SHADOW, properties.getCanCastShadow()); + // APPEND_ENTITY_PROPERTY(PROP_VISIBLE_IN_SECONDARY_CAMERA, properties.getIsVisibleInSecondaryCamera()); // Not sent over the wire + _staticGrab.setProperties(properties); + _staticGrab.appendToEditPacket(packetData, requestedProperties, propertyFlags, + propertiesDidntFit, propertyCount, appendState); - if (properties.getType() == EntityTypes::Web) { - APPEND_ENTITY_PROPERTY(PROP_SOURCE_URL, properties.getSourceUrl()); - APPEND_ENTITY_PROPERTY(PROP_DPI, properties.getDPI()); - } + // Physics + APPEND_ENTITY_PROPERTY(PROP_DENSITY, properties.getDensity()); + APPEND_ENTITY_PROPERTY(PROP_VELOCITY, properties.getVelocity()); + APPEND_ENTITY_PROPERTY(PROP_ANGULAR_VELOCITY, properties.getAngularVelocity()); + APPEND_ENTITY_PROPERTY(PROP_GRAVITY, properties.getGravity()); + APPEND_ENTITY_PROPERTY(PROP_ACCELERATION, properties.getAcceleration()); + APPEND_ENTITY_PROPERTY(PROP_DAMPING, properties.getDamping()); + APPEND_ENTITY_PROPERTY(PROP_ANGULAR_DAMPING, properties.getAngularDamping()); + APPEND_ENTITY_PROPERTY(PROP_RESTITUTION, properties.getRestitution()); + APPEND_ENTITY_PROPERTY(PROP_FRICTION, properties.getFriction()); + APPEND_ENTITY_PROPERTY(PROP_LIFETIME, properties.getLifetime()); + APPEND_ENTITY_PROPERTY(PROP_COLLISIONLESS, properties.getCollisionless()); + APPEND_ENTITY_PROPERTY(PROP_COLLISION_MASK, properties.getCollisionMask()); + APPEND_ENTITY_PROPERTY(PROP_DYNAMIC, properties.getDynamic()); + APPEND_ENTITY_PROPERTY(PROP_SIMULATION_OWNER, properties._simulationOwner.toByteArray()); + APPEND_ENTITY_PROPERTY(PROP_COLLISION_SOUND_URL, properties.getCollisionSoundURL()); + APPEND_ENTITY_PROPERTY(PROP_ACTION_DATA, properties.getActionData()); - if (properties.getType() == EntityTypes::Text) { - APPEND_ENTITY_PROPERTY(PROP_TEXT, properties.getText()); - APPEND_ENTITY_PROPERTY(PROP_LINE_HEIGHT, properties.getLineHeight()); - APPEND_ENTITY_PROPERTY(PROP_TEXT_COLOR, properties.getTextColor()); - APPEND_ENTITY_PROPERTY(PROP_TEXT_ALPHA, properties.getTextAlpha()); - APPEND_ENTITY_PROPERTY(PROP_BACKGROUND_COLOR, properties.getBackgroundColor()); - APPEND_ENTITY_PROPERTY(PROP_BACKGROUND_ALPHA, properties.getBackgroundAlpha()); - APPEND_ENTITY_PROPERTY(PROP_BILLBOARD_MODE, (uint32_t)properties.getBillboardMode()); - APPEND_ENTITY_PROPERTY(PROP_LEFT_MARGIN, properties.getLeftMargin()); - APPEND_ENTITY_PROPERTY(PROP_RIGHT_MARGIN, properties.getRightMargin()); - APPEND_ENTITY_PROPERTY(PROP_TOP_MARGIN, properties.getTopMargin()); - APPEND_ENTITY_PROPERTY(PROP_BOTTOM_MARGIN, properties.getBottomMargin()); - } + // Cloning + APPEND_ENTITY_PROPERTY(PROP_CLONEABLE, properties.getCloneable()); + APPEND_ENTITY_PROPERTY(PROP_CLONE_LIFETIME, properties.getCloneLifetime()); + APPEND_ENTITY_PROPERTY(PROP_CLONE_LIMIT, properties.getCloneLimit()); + APPEND_ENTITY_PROPERTY(PROP_CLONE_DYNAMIC, properties.getCloneDynamic()); + APPEND_ENTITY_PROPERTY(PROP_CLONE_AVATAR_ENTITY, properties.getCloneAvatarEntity()); + APPEND_ENTITY_PROPERTY(PROP_CLONE_ORIGIN_ID, properties.getCloneOriginID()); - if (properties.getType() == EntityTypes::Model) { - APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); - APPEND_ENTITY_PROPERTY(PROP_MODEL_URL, properties.getModelURL()); - APPEND_ENTITY_PROPERTY(PROP_COMPOUND_SHAPE_URL, properties.getCompoundShapeURL()); - APPEND_ENTITY_PROPERTY(PROP_TEXTURES, properties.getTextures()); - APPEND_ENTITY_PROPERTY(PROP_SHAPE_TYPE, (uint32_t)(properties.getShapeType())); - - APPEND_ENTITY_PROPERTY(PROP_JOINT_ROTATIONS_SET, properties.getJointRotationsSet()); - APPEND_ENTITY_PROPERTY(PROP_JOINT_ROTATIONS, properties.getJointRotations()); - APPEND_ENTITY_PROPERTY(PROP_JOINT_TRANSLATIONS_SET, properties.getJointTranslationsSet()); - APPEND_ENTITY_PROPERTY(PROP_JOINT_TRANSLATIONS, properties.getJointTranslations()); - APPEND_ENTITY_PROPERTY(PROP_RELAY_PARENT_JOINTS, properties.getRelayParentJoints()); - - _staticAnimation.setProperties(properties); - _staticAnimation.appendToEditPacket(packetData, requestedProperties, propertyFlags, propertiesDidntFit, propertyCount, appendState); - } - - if (properties.getType() == EntityTypes::Light) { - APPEND_ENTITY_PROPERTY(PROP_IS_SPOTLIGHT, properties.getIsSpotlight()); - APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); - APPEND_ENTITY_PROPERTY(PROP_INTENSITY, properties.getIntensity()); - APPEND_ENTITY_PROPERTY(PROP_EXPONENT, properties.getExponent()); - APPEND_ENTITY_PROPERTY(PROP_CUTOFF, properties.getCutoff()); - APPEND_ENTITY_PROPERTY(PROP_FALLOFF_RADIUS, properties.getFalloffRadius()); - } + // Scripts + APPEND_ENTITY_PROPERTY(PROP_SCRIPT, properties.getScript()); + APPEND_ENTITY_PROPERTY(PROP_SCRIPT_TIMESTAMP, properties.getScriptTimestamp()); + APPEND_ENTITY_PROPERTY(PROP_SERVER_SCRIPTS, properties.getServerScripts()); if (properties.getType() == EntityTypes::ParticleEffect) { APPEND_ENTITY_PROPERTY(PROP_SHAPE_TYPE, (uint32_t)(properties.getShapeType())); @@ -2685,6 +2739,46 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy APPEND_ENTITY_PROPERTY(PROP_PARTICLE_ROTATE_WITH_ENTITY, properties.getRotateWithEntity()) } + if (properties.getType() == EntityTypes::Light) { + APPEND_ENTITY_PROPERTY(PROP_IS_SPOTLIGHT, properties.getIsSpotlight()); + APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); + APPEND_ENTITY_PROPERTY(PROP_INTENSITY, properties.getIntensity()); + APPEND_ENTITY_PROPERTY(PROP_EXPONENT, properties.getExponent()); + APPEND_ENTITY_PROPERTY(PROP_CUTOFF, properties.getCutoff()); + APPEND_ENTITY_PROPERTY(PROP_FALLOFF_RADIUS, properties.getFalloffRadius()); + } + + if (properties.getType() == EntityTypes::Text) { + APPEND_ENTITY_PROPERTY(PROP_TEXT, properties.getText()); + APPEND_ENTITY_PROPERTY(PROP_LINE_HEIGHT, properties.getLineHeight()); + APPEND_ENTITY_PROPERTY(PROP_TEXT_COLOR, properties.getTextColor()); + APPEND_ENTITY_PROPERTY(PROP_TEXT_ALPHA, properties.getTextAlpha()); + APPEND_ENTITY_PROPERTY(PROP_BACKGROUND_COLOR, properties.getBackgroundColor()); + APPEND_ENTITY_PROPERTY(PROP_BACKGROUND_ALPHA, properties.getBackgroundAlpha()); + APPEND_ENTITY_PROPERTY(PROP_BILLBOARD_MODE, (uint32_t)properties.getBillboardMode()); + APPEND_ENTITY_PROPERTY(PROP_LEFT_MARGIN, properties.getLeftMargin()); + APPEND_ENTITY_PROPERTY(PROP_RIGHT_MARGIN, properties.getRightMargin()); + APPEND_ENTITY_PROPERTY(PROP_TOP_MARGIN, properties.getTopMargin()); + APPEND_ENTITY_PROPERTY(PROP_BOTTOM_MARGIN, properties.getBottomMargin()); + } + + if (properties.getType() == EntityTypes::Model) { + APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); + APPEND_ENTITY_PROPERTY(PROP_MODEL_URL, properties.getModelURL()); + APPEND_ENTITY_PROPERTY(PROP_COMPOUND_SHAPE_URL, properties.getCompoundShapeURL()); + APPEND_ENTITY_PROPERTY(PROP_TEXTURES, properties.getTextures()); + APPEND_ENTITY_PROPERTY(PROP_SHAPE_TYPE, (uint32_t)(properties.getShapeType())); + + APPEND_ENTITY_PROPERTY(PROP_JOINT_ROTATIONS_SET, properties.getJointRotationsSet()); + APPEND_ENTITY_PROPERTY(PROP_JOINT_ROTATIONS, properties.getJointRotations()); + APPEND_ENTITY_PROPERTY(PROP_JOINT_TRANSLATIONS_SET, properties.getJointTranslationsSet()); + APPEND_ENTITY_PROPERTY(PROP_JOINT_TRANSLATIONS, properties.getJointTranslations()); + APPEND_ENTITY_PROPERTY(PROP_RELAY_PARENT_JOINTS, properties.getRelayParentJoints()); + + _staticAnimation.setProperties(properties); + _staticAnimation.appendToEditPacket(packetData, requestedProperties, propertyFlags, propertiesDidntFit, propertyCount, appendState); + } + if (properties.getType() == EntityTypes::Zone) { _staticKeyLight.setProperties(properties); _staticKeyLight.appendToEditPacket(packetData, requestedProperties, propertyFlags, propertiesDidntFit, propertyCount, appendState); @@ -2730,22 +2824,23 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy APPEND_ENTITY_PROPERTY(PROP_Z_P_NEIGHBOR_ID, properties.getZPNeighborID()); } - if (properties.getType() == EntityTypes::Line) { - APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); - APPEND_ENTITY_PROPERTY(PROP_LINE_WIDTH, properties.getLineWidth()); - APPEND_ENTITY_PROPERTY(PROP_LINE_POINTS, properties.getLinePoints()); + if (properties.getType() == EntityTypes::Web) { + APPEND_ENTITY_PROPERTY(PROP_SOURCE_URL, properties.getSourceUrl()); + APPEND_ENTITY_PROPERTY(PROP_DPI, properties.getDPI()); } if (properties.getType() == EntityTypes::PolyLine) { APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); - APPEND_ENTITY_PROPERTY(PROP_LINE_WIDTH, properties.getLineWidth()); APPEND_ENTITY_PROPERTY(PROP_LINE_POINTS, properties.getLinePoints()); - APPEND_ENTITY_PROPERTY(PROP_NORMALS, properties.getPackedNormals()); - APPEND_ENTITY_PROPERTY(PROP_STROKE_COLORS, properties.getPackedStrokeColors()); APPEND_ENTITY_PROPERTY(PROP_STROKE_WIDTHS, properties.getStrokeWidths()); + APPEND_ENTITY_PROPERTY(PROP_STROKE_NORMALS, properties.getPackedNormals()); + APPEND_ENTITY_PROPERTY(PROP_STROKE_COLORS, properties.getPackedStrokeColors()); APPEND_ENTITY_PROPERTY(PROP_TEXTURES, properties.getTextures()); APPEND_ENTITY_PROPERTY(PROP_IS_UV_MODE_STRETCH, properties.getIsUVModeStretch()); + APPEND_ENTITY_PROPERTY(PROP_LINE_GLOW, properties.getGlow()); + APPEND_ENTITY_PROPERTY(PROP_LINE_FACE_CAMERA, properties.getFaceCamera()); } + // NOTE: Spheres and Boxes are just special cases of Shape, and they need to include their PROP_SHAPE // when encoding/decoding edits because otherwise they can't polymorph to other shape types if (properties.getType() == EntityTypes::Shape || @@ -2791,10 +2886,6 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy APPEND_ENTITY_PROPERTY(PROP_MINOR_GRID_EVERY, properties.getMinorGridEvery()); } - APPEND_ENTITY_PROPERTY(PROP_NAME, properties.getName()); - APPEND_ENTITY_PROPERTY(PROP_COLLISION_SOUND_URL, properties.getCollisionSoundURL()); - APPEND_ENTITY_PROPERTY(PROP_ACTION_DATA, properties.getActionData()); - // Certifiable Properties APPEND_ENTITY_PROPERTY(PROP_ITEM_NAME, properties.getItemName()); APPEND_ENTITY_PROPERTY(PROP_ITEM_DESCRIPTION, properties.getItemDescription()); @@ -2807,16 +2898,6 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy APPEND_ENTITY_PROPERTY(PROP_ENTITY_INSTANCE_NUMBER, properties.getEntityInstanceNumber()); APPEND_ENTITY_PROPERTY(PROP_CERTIFICATE_ID, properties.getCertificateID()); APPEND_ENTITY_PROPERTY(PROP_STATIC_CERTIFICATE_VERSION, properties.getStaticCertificateVersion()); - - APPEND_ENTITY_PROPERTY(PROP_CLONEABLE, properties.getCloneable()); - APPEND_ENTITY_PROPERTY(PROP_CLONE_LIFETIME, properties.getCloneLifetime()); - APPEND_ENTITY_PROPERTY(PROP_CLONE_LIMIT, properties.getCloneLimit()); - APPEND_ENTITY_PROPERTY(PROP_CLONE_DYNAMIC, properties.getCloneDynamic()); - APPEND_ENTITY_PROPERTY(PROP_CLONE_AVATAR_ENTITY, properties.getCloneAvatarEntity()); - - _staticGrab.setProperties(properties); - _staticGrab.appendToEditPacket(packetData, requestedProperties, propertyFlags, - propertiesDidntFit, propertyCount, appendState); } if (propertyCount > 0) { @@ -2995,80 +3076,58 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int dataAt += propertyFlags.getEncodedLength(); processedBytes += propertyFlags.getEncodedLength(); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SIMULATION_OWNER, QByteArray, setSimulationOwner); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_POSITION, vec3, setPosition); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DIMENSIONS, vec3, setDimensions); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ROTATION, quat, setRotation); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DENSITY, float, setDensity); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_VELOCITY, vec3, setVelocity); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_GRAVITY, vec3, setGravity); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ACCELERATION, vec3, setAcceleration); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DAMPING, float, setDamping); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_RESTITUTION, float, setRestitution); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_FRICTION, float, setFriction); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LIFETIME, float, setLifetime); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SCRIPT, QString, setScript); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SCRIPT_TIMESTAMP, quint64, setScriptTimestamp); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SERVER_SCRIPTS, QString, setServerScripts); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_REGISTRATION_POINT, vec3, setRegistrationPoint); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ANGULAR_VELOCITY, vec3, setAngularVelocity); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ANGULAR_DAMPING, float, setAngularDamping); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_VISIBLE, bool, setVisible); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CAN_CAST_SHADOW, bool, setCanCastShadow); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLLISIONLESS, bool, setCollisionless); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLLISION_MASK, uint16_t, setCollisionMask); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DYNAMIC, bool, setDynamic); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_NAME, QString, setName); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LOCKED, bool, setLocked); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_USER_DATA, QString, setUserData); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_HREF, QString, setHref); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DESCRIPTION, QString, setDescription); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_POSITION, vec3, setPosition); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DIMENSIONS, vec3, setDimensions); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ROTATION, quat, setRotation); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_REGISTRATION_POINT, vec3, setRegistrationPoint); + // FIXME: deal with these + // READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CREATED, quint64, setCreated); + // READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LAST_EDITED_BY, QUuid, setLastEditedBy); + // READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ENTITY_HOST_TYPE, entity::HostType, setEntityHostType); + // READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_OWNING_AVATAR_ID, QUuid, setOwningAvatarID); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_PARENT_ID, QUuid, setParentID); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_PARENT_JOINT_INDEX, quint16, setParentJointIndex); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_QUERY_AA_CUBE, AACube, setQueryAACube); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CAN_CAST_SHADOW, bool, setCanCastShadow); + // READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_VISIBLE_IN_SECONDARY_CAMERA, bool, setIsVisibleInSecondaryCamera); // Not sent over the wire + properties.getGrab().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); - if (properties.getType() == EntityTypes::Web) { - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SOURCE_URL, QString, setSourceUrl); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DPI, uint16_t, setDPI); - } + // Physics + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DENSITY, float, setDensity); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_VELOCITY, vec3, setVelocity); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ANGULAR_VELOCITY, vec3, setAngularVelocity); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_GRAVITY, vec3, setGravity); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ACCELERATION, vec3, setAcceleration); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DAMPING, float, setDamping); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ANGULAR_DAMPING, float, setAngularDamping); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_RESTITUTION, float, setRestitution); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_FRICTION, float, setFriction); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LIFETIME, float, setLifetime); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLLISIONLESS, bool, setCollisionless); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLLISION_MASK, uint16_t, setCollisionMask); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DYNAMIC, bool, setDynamic); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SIMULATION_OWNER, QByteArray, setSimulationOwner); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLLISION_SOUND_URL, QString, setCollisionSoundURL); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ACTION_DATA, QByteArray, setActionData); - if (properties.getType() == EntityTypes::Text) { - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXT, QString, setText); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_HEIGHT, float, setLineHeight); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXT_COLOR, u8vec3Color, setTextColor); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXT_ALPHA, float, setTextAlpha); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_BACKGROUND_COLOR, u8vec3Color, setBackgroundColor); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_BACKGROUND_ALPHA, float, setBackgroundAlpha); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_BILLBOARD_MODE, BillboardMode, setBillboardMode); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LEFT_MARGIN, float, setLeftMargin); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_RIGHT_MARGIN, float, setRightMargin); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TOP_MARGIN, float, setTopMargin); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_BOTTOM_MARGIN, float, setBottomMargin); - } + // Cloning + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONEABLE, bool, setCloneable); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONE_LIFETIME, float, setCloneLifetime); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONE_LIMIT, float, setCloneLimit); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONE_DYNAMIC, bool, setCloneDynamic); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONE_AVATAR_ENTITY, bool, setCloneAvatarEntity); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONE_ORIGIN_ID, QUuid, setCloneOriginID); - if (properties.getType() == EntityTypes::Model) { - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_MODEL_URL, QString, setModelURL); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COMPOUND_SHAPE_URL, QString, setCompoundShapeURL); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXTURES, QString, setTextures); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SHAPE_TYPE, ShapeType, setShapeType); - - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_JOINT_ROTATIONS_SET, QVector, setJointRotationsSet); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_JOINT_ROTATIONS, QVector, setJointRotations); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_JOINT_TRANSLATIONS_SET, QVector, setJointTranslationsSet); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_JOINT_TRANSLATIONS, QVector, setJointTranslations); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_RELAY_PARENT_JOINTS, bool, setRelayParentJoints); - - properties.getAnimation().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); - } - - if (properties.getType() == EntityTypes::Light) { - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_IS_SPOTLIGHT, bool, setIsSpotlight); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_INTENSITY, float, setIntensity); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_EXPONENT, float, setExponent); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CUTOFF, float, setCutoff); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_FALLOFF_RADIUS, float, setFalloffRadius); - } + // Scripts + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SCRIPT, QString, setScript); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SCRIPT_TIMESTAMP, quint64, setScriptTimestamp); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SERVER_SCRIPTS, QString, setServerScripts); if (properties.getType() == EntityTypes::ParticleEffect) { READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SHAPE_TYPE, ShapeType, setShapeType); @@ -3116,6 +3175,45 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_PARTICLE_ROTATE_WITH_ENTITY, bool, setRotateWithEntity); } + if (properties.getType() == EntityTypes::Model) { + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_MODEL_URL, QString, setModelURL); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COMPOUND_SHAPE_URL, QString, setCompoundShapeURL); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXTURES, QString, setTextures); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SHAPE_TYPE, ShapeType, setShapeType); + + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_JOINT_ROTATIONS_SET, QVector, setJointRotationsSet); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_JOINT_ROTATIONS, QVector, setJointRotations); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_JOINT_TRANSLATIONS_SET, QVector, setJointTranslationsSet); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_JOINT_TRANSLATIONS, QVector, setJointTranslations); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_RELAY_PARENT_JOINTS, bool, setRelayParentJoints); + + properties.getAnimation().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); + } + + if (properties.getType() == EntityTypes::Light) { + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_IS_SPOTLIGHT, bool, setIsSpotlight); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_INTENSITY, float, setIntensity); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_EXPONENT, float, setExponent); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CUTOFF, float, setCutoff); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_FALLOFF_RADIUS, float, setFalloffRadius); + } + + if (properties.getType() == EntityTypes::Text) { + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXT, QString, setText); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_HEIGHT, float, setLineHeight); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXT_COLOR, u8vec3Color, setTextColor); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXT_ALPHA, float, setTextAlpha); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_BACKGROUND_COLOR, u8vec3Color, setBackgroundColor); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_BACKGROUND_ALPHA, float, setBackgroundAlpha); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_BILLBOARD_MODE, BillboardMode, setBillboardMode); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LEFT_MARGIN, float, setLeftMargin); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_RIGHT_MARGIN, float, setRightMargin); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TOP_MARGIN, float, setTopMargin); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_BOTTOM_MARGIN, float, setBottomMargin); + } + if (properties.getType() == EntityTypes::Zone) { properties.getKeyLight().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); properties.getAmbientLight().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); @@ -3152,22 +3250,21 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_Z_P_NEIGHBOR_ID, EntityItemID, setZPNeighborID); } - if (properties.getType() == EntityTypes::Line) { - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_WIDTH, float, setLineWidth); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_POINTS, QVector, setLinePoints); + if (properties.getType() == EntityTypes::Web) { + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SOURCE_URL, QString, setSourceUrl); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DPI, uint16_t, setDPI); } - if (properties.getType() == EntityTypes::PolyLine) { READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_WIDTH, float, setLineWidth); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_POINTS, QVector, setLinePoints); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_NORMALS, QByteArray, setPackedNormals); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STROKE_COLORS, QByteArray, setPackedStrokeColors); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STROKE_WIDTHS, QVector, setStrokeWidths); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STROKE_NORMALS, QByteArray, setPackedNormals); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STROKE_COLORS, QByteArray, setPackedStrokeColors); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXTURES, QString, setTextures); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_IS_UV_MODE_STRETCH, bool, setIsUVModeStretch); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_GLOW, bool, setGlow); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_FACE_CAMERA, bool, setFaceCamera); } // NOTE: Spheres and Boxes are just special cases of Shape, and they need to include their PROP_SHAPE @@ -3215,10 +3312,6 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_MINOR_GRID_EVERY, float, setMinorGridEvery); } - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_NAME, QString, setName); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLLISION_SOUND_URL, QString, setCollisionSoundURL); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ACTION_DATA, QByteArray, setActionData); - // Certifiable Properties READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_NAME, QString, setItemName); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_DESCRIPTION, QString, setItemDescription); @@ -3232,14 +3325,6 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CERTIFICATE_ID, QString, setCertificateID); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STATIC_CERTIFICATE_VERSION, quint32, setStaticCertificateVersion); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONEABLE, bool, setCloneable); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONE_LIFETIME, float, setCloneLifetime); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONE_LIMIT, float, setCloneLimit); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONE_DYNAMIC, bool, setCloneDynamic); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONE_AVATAR_ENTITY, bool, setCloneAvatarEntity); - - properties.getGrab().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); - return valid; } @@ -3364,84 +3449,174 @@ bool EntityItemProperties::decodeCloneEntityMessage(const QByteArray& buffer, in } void EntityItemProperties::markAllChanged() { - _lastEditedByChanged = true; - _simulationOwnerChanged = true; + // Core + _visibleChanged = true; + _nameChanged = true; + _lockedChanged = true; + _userDataChanged = true; + _hrefChanged = true; + _descriptionChanged = true; _positionChanged = true; _dimensionsChanged = true; _rotationChanged = true; + _registrationPointChanged = true; + _createdChanged = true; + _lastEditedByChanged = true; + _entityHostTypeChanged = true; + _owningAvatarIDChanged = true; + _parentIDChanged = true; + _parentJointIndexChanged = true; + _queryAACubeChanged = true; + _canCastShadowChanged = true; + _isVisibleInSecondaryCameraChanged = true; + _grab.markAllChanged(); + + // Physics _densityChanged = true; _velocityChanged = true; + _angularVelocityChanged = true; _gravityChanged = true; _accelerationChanged = true; _dampingChanged = true; + _angularDampingChanged = true; _restitutionChanged = true; _frictionChanged = true; _lifetimeChanged = true; - _userDataChanged = true; - _scriptChanged = true; - _scriptTimestampChanged = true; - _serverScriptsChanged = true; - _collisionSoundURLChanged = true; - _registrationPointChanged = true; - _angularVelocityChanged = true; - _angularDampingChanged = true; - _nameChanged = true; - _visibleChanged = true; - _canCastShadowChanged = true; - _colorChanged = true; - _alphaChanged = true; - _modelURLChanged = true; - _compoundShapeURLChanged = true; - _isSpotlightChanged = true; _collisionlessChanged = true; _collisionMaskChanged = true; _dynamicChanged = true; + _simulationOwnerChanged = true; + _collisionSoundURLChanged = true; + _actionDataChanged = true; - _intensityChanged = true; - _falloffRadiusChanged = true; - _exponentChanged = true; - _cutoffChanged = true; - _lockedChanged = true; - _texturesChanged = true; + // Cloning + _cloneableChanged = true; + _cloneLifetimeChanged = true; + _cloneLimitChanged = true; + _cloneDynamicChanged = true; + _cloneAvatarEntityChanged = true; + _cloneOriginIDChanged = true; - _textChanged = true; - _lineHeightChanged = true; - _textColorChanged = true; - _backgroundColorChanged = true; + // Scripts + _scriptChanged = true; + _scriptTimestampChanged = true; + _serverScriptsChanged = true; + + // Common _shapeTypeChanged = true; + _colorChanged = true; + _alphaChanged = true; + _texturesChanged = true; + _compoundShapeURLChanged = true; - _isEmittingChanged = true; - _emitterShouldTrailChanged = true; + // Particles _maxParticlesChanged = true; _lifespanChanged = true; + _isEmittingChanged = true; _emitRateChanged = true; _emitSpeedChanged = true; _speedSpreadChanged = true; _emitOrientationChanged = true; _emitDimensionsChanged = true; _emitRadiusStartChanged = true; + _emitAccelerationChanged = true; + _accelerationSpreadChanged = true; _polarStartChanged = true; _polarFinishChanged = true; _azimuthStartChanged = true; _azimuthFinishChanged = true; - _emitAccelerationChanged = true; - _accelerationSpreadChanged = true; _particleRadiusChanged = true; _radiusSpreadChanged = true; - _colorSpreadChanged = true; - _alphaSpreadChanged = true; _radiusStartChanged = true; _radiusFinishChanged = true; + _colorSpreadChanged = true; _colorStartChanged = true; _colorFinishChanged = true; + _alphaSpreadChanged = true; _alphaStartChanged = true; _alphaFinishChanged = true; + _emitterShouldTrailChanged = true; _particleSpinChanged = true; _spinStartChanged = true; _spinFinishChanged = true; _spinSpreadChanged = true; _rotateWithEntityChanged = true; + // Model + _modelURLChanged = true; + _jointRotationsSetChanged = true; + _jointRotationsChanged = true; + _jointTranslationsSetChanged = true; + _jointTranslationsChanged = true; + _relayParentJointsChanged = true; + _animation.markAllChanged(); + + // Light + _isSpotlightChanged = true; + _intensityChanged = true; + _exponentChanged = true; + _cutoffChanged = true; + _falloffRadiusChanged = true; + + // Text + _textChanged = true; + _lineHeightChanged = true; + _textColorChanged = true; + _textAlphaChanged = true; + _backgroundColorChanged = true; + _backgroundAlphaChanged = true; + _billboardModeChanged = true; + _leftMarginChanged = true; + _rightMarginChanged = true; + _topMarginChanged = true; + _bottomMarginChanged = true; + + // Zone + _keyLight.markAllChanged(); + _ambientLight.markAllChanged(); + _skybox.markAllChanged(); + _haze.markAllChanged(); + _bloom.markAllChanged(); + _flyingAllowedChanged = true; + _ghostingAllowedChanged = true; + _filterURLChanged = true; + _keyLightModeChanged = true; + _ambientLightModeChanged = true; + _skyboxModeChanged = true; + _hazeModeChanged = true; + _bloomModeChanged = true; + + // Polyvox + _voxelVolumeSizeChanged = true; + _voxelDataChanged = true; + _voxelSurfaceStyleChanged = true; + _xTextureURLChanged = true; + _yTextureURLChanged = true; + _zTextureURLChanged = true; + _xNNeighborIDChanged = true; + _yNNeighborIDChanged = true; + _zNNeighborIDChanged = true; + _xPNeighborIDChanged = true; + _yPNeighborIDChanged = true; + _zPNeighborIDChanged = true; + + // Web + _sourceUrlChanged = true; + _dpiChanged = true; + + // Polyline + _linePointsChanged = true; + _strokeWidthsChanged = true; + _normalsChanged = true; + _strokeColorsChanged = true; + _isUVModeStretchChanged = true; + _glowChanged = true; + _faceCameraChanged = true; + + // Shape + _shapeChanged = true; + + // Material _materialURLChanged = true; _materialMappingModeChanged = true; _priorityChanged = true; @@ -3452,6 +3627,17 @@ void EntityItemProperties::markAllChanged() { _materialDataChanged = true; _materialRepeatChanged = true; + // Image + _imageURLChanged = true; + _emissiveChanged = true; + _keepAspectRatioChanged = true; + _subImageChanged = true; + + // Grid + _followCameraChanged = true; + _majorGridEveryChanged = true; + _minorGridEveryChanged = true; + // Certifiable Properties _itemNameChanged = true; _itemDescriptionChanged = true; @@ -3464,99 +3650,6 @@ void EntityItemProperties::markAllChanged() { _entityInstanceNumberChanged = true; _certificateIDChanged = true; _staticCertificateVersionChanged = true; - - _keyLight.markAllChanged(); - _ambientLight.markAllChanged(); - _skybox.markAllChanged(); - - _keyLightModeChanged = true; - _skyboxModeChanged = true; - _ambientLightModeChanged = true; - _hazeModeChanged = true; - _bloomModeChanged = true; - - _animation.markAllChanged(); - _skybox.markAllChanged(); - _haze.markAllChanged(); - _bloom.markAllChanged(); - _grab.markAllChanged(); - - _sourceUrlChanged = true; - _voxelVolumeSizeChanged = true; - _voxelDataChanged = true; - _voxelSurfaceStyleChanged = true; - - _lineWidthChanged = true; - _linePointsChanged = true; - - _hrefChanged = true; - _descriptionChanged = true; - _billboardModeChanged = true; - _actionDataChanged = true; - - _normalsChanged = true; - _strokeColorsChanged = true; - _strokeWidthsChanged = true; - _isUVModeStretchChanged = true; - - _xTextureURLChanged = true; - _yTextureURLChanged = true; - _zTextureURLChanged = true; - - _xNNeighborIDChanged = true; - _yNNeighborIDChanged = true; - _zNNeighborIDChanged = true; - - _xPNeighborIDChanged = true; - _yPNeighborIDChanged = true; - _zPNeighborIDChanged = true; - - _parentIDChanged = true; - _parentJointIndexChanged = true; - - _jointRotationsSetChanged = true; - _jointRotationsChanged = true; - _jointTranslationsSetChanged = true; - _jointTranslationsChanged = true; - - _queryAACubeChanged = true; - - _shapeChanged = true; - - _flyingAllowedChanged = true; - _ghostingAllowedChanged = true; - _filterURLChanged = true; - - _entityHostTypeChanged = true; - _owningAvatarIDChanged = true; - - _dpiChanged = true; - _relayParentJointsChanged = true; - - _cloneableChanged = true; - _cloneLifetimeChanged = true; - _cloneLimitChanged = true; - _cloneDynamicChanged = true; - _cloneAvatarEntityChanged = true; - _cloneOriginIDChanged = true; - - _isVisibleInSecondaryCameraChanged = true; - - _imageURLChanged = true; - _emissiveChanged = true; - _keepAspectRatioChanged = true; - _subImageChanged = true; - - _followCameraChanged = true; - _majorGridEveryChanged = true; - _minorGridEveryChanged = true; - - _textAlphaChanged = true; - _backgroundAlphaChanged = true; - _leftMarginChanged = true; - _rightMarginChanged = true; - _topMarginChanged = true; - _bottomMarginChanged = true; } // The minimum bounding box for the entity. @@ -3674,30 +3767,78 @@ uint8_t EntityItemProperties::computeSimulationBidPriority() const { QList EntityItemProperties::listChangedProperties() { QList out; + + // Core + if (visibleChanged()) { + out += "visible"; + } + if (nameChanged()) { + out += "name"; + } + if (lockedChanged()) { + out += "locked"; + } + if (userDataChanged()) { + out += "userData"; + } + if (hrefChanged()) { + out += "href"; + } + if (descriptionChanged()) { + out += "description"; + } if (containsPositionChange()) { out += "position"; } if (dimensionsChanged()) { out += "dimensions"; } - if (velocityChanged()) { - out += "velocity"; + if (rotationChanged()) { + out += "rotation"; } - if (nameChanged()) { - out += "name"; + if (registrationPointChanged()) { + out += "registrationPoint"; } - if (visibleChanged()) { - out += "visible"; + // FIXME: handle these + //if (createdChanged()) { + // out += "created"; + //} + //if (lastEditedByChanged()) { + // out += "lastEditedBy"; + //} + if (entityHostTypeChanged()) { + out += "entityHostType"; + } + if (owningAvatarIDChanged()) { + out += "owningAvatarID"; + } + if (parentIDChanged()) { + out += "parentID"; + } + if (parentJointIndexChanged()) { + out += "parentJointIndex"; + } + if (queryAACubeChanged()) { + out += "queryAACube"; } if (canCastShadowChanged()) { out += "canCastShadow"; } - if (rotationChanged()) { - out += "rotation"; + if (isVisibleInSecondaryCameraChanged()) { + out += "isVisibleInSecondaryCamera"; } + getGrab().listChangedProperties(out); + + // Physics if (densityChanged()) { out += "density"; } + if (velocityChanged()) { + out += "velocity"; + } + if (angularVelocityChanged()) { + out += "angularVelocity"; + } if (gravityChanged()) { out += "gravity"; } @@ -3707,6 +3848,9 @@ QList EntityItemProperties::listChangedProperties() { if (dampingChanged()) { out += "damping"; } + if (angularDampingChanged()) { + out += "angularDamping"; + } if (restitutionChanged()) { out += "restitution"; } @@ -3716,60 +3860,6 @@ QList EntityItemProperties::listChangedProperties() { if (lifetimeChanged()) { out += "lifetime"; } - if (scriptChanged()) { - out += "script"; - } - if (scriptTimestampChanged()) { - out += "scriptTimestamp"; - } - if (serverScriptsChanged()) { - out += "serverScripts"; - } - if (collisionSoundURLChanged()) { - out += "collisionSoundURL"; - } - if (colorChanged()) { - out += "color"; - } - if (colorSpreadChanged()) { - out += "colorSpread"; - } - if (colorStartChanged()) { - out += "colorStart"; - } - if (colorFinishChanged()) { - out += "colorFinish"; - } - if (alphaChanged()) { - out += "alpha"; - } - if (alphaSpreadChanged()) { - out += "alphaSpread"; - } - if (alphaStartChanged()) { - out += "alphaStart"; - } - if (alphaFinishChanged()) { - out += "alphaFinish"; - } - if (emitterShouldTrailChanged()) { - out += "emitterShouldTrail"; - } - if (modelURLChanged()) { - out += "modelURL"; - } - if (compoundShapeURLChanged()) { - out += "compoundShapeURL"; - } - if (registrationPointChanged()) { - out += "registrationPoint"; - } - if (angularVelocityChanged()) { - out += "angularVelocity"; - } - if (angularDampingChanged()) { - out += "angularDamping"; - } if (collisionlessChanged()) { out += "collisionless"; } @@ -3779,48 +3869,65 @@ QList EntityItemProperties::listChangedProperties() { if (dynamicChanged()) { out += "dynamic"; } - if (isSpotlightChanged()) { - out += "isSpotlight"; + if (simulationOwnerChanged()) { + out += "simulationOwner"; } - if (intensityChanged()) { - out += "intensity"; + if (collisionSoundURLChanged()) { + out += "collisionSoundURL"; } - if (falloffRadiusChanged()) { - out += "falloffRadius"; + if (actionDataChanged()) { + out += "actionData"; } - if (exponentChanged()) { - out += "exponent"; + + // Cloning + if (cloneableChanged()) { + out += "cloneable"; } - if (cutoffChanged()) { - out += "cutoff"; + if (cloneLifetimeChanged()) { + out += "cloneLifetime"; } - if (lockedChanged()) { - out += "locked"; + if (cloneLimitChanged()) { + out += "cloneLimit"; + } + if (cloneDynamicChanged()) { + out += "cloneDynamic"; + } + if (cloneAvatarEntityChanged()) { + out += "cloneAvatarEntity"; + } + if (cloneOriginIDChanged()) { + out += "cloneOriginID"; + } + + // Scripts + if (scriptChanged()) { + out += "script"; + } + if (scriptTimestampChanged()) { + out += "scriptTimestamp"; + } + if (serverScriptsChanged()) { + out += "serverScripts"; + } + + // Common + if (shapeTypeChanged()) { + out += "shapeType"; + } + if (compoundShapeURLChanged()) { + out += "compoundShapeURL"; + } + if (colorChanged()) { + out += "color"; + } + if (alphaChanged()) { + out += "alpha"; } if (texturesChanged()) { out += "textures"; } - if (userDataChanged()) { - out += "userData"; - } - if (simulationOwnerChanged()) { - out += "simulationOwner"; - } - if (textChanged()) { - out += "text"; - } - if (lineHeightChanged()) { - out += "lineHeight"; - } - if (textColorChanged()) { - out += "textColor"; - } - if (backgroundColorChanged()) { - out += "backgroundColor"; - } - if (shapeTypeChanged()) { - out += "shapeType"; - } + + // Particles if (maxParticlesChanged()) { out += "maxParticles"; } @@ -3848,6 +3955,12 @@ QList EntityItemProperties::listChangedProperties() { if (emitRadiusStartChanged()) { out += "emitRadiusStart"; } + if (emitAccelerationChanged()) { + out += "emitAcceleration"; + } + if (accelerationSpreadChanged()) { + out += "accelerationSpread"; + } if (polarStartChanged()) { out += "polarStart"; } @@ -3860,12 +3973,6 @@ QList EntityItemProperties::listChangedProperties() { if (azimuthFinishChanged()) { out += "azimuthFinish"; } - if (emitAccelerationChanged()) { - out += "emitAcceleration"; - } - if (accelerationSpreadChanged()) { - out += "accelerationSpread"; - } if (particleRadiusChanged()) { out += "particleRadius"; } @@ -3878,6 +3985,27 @@ QList EntityItemProperties::listChangedProperties() { if (radiusFinishChanged()) { out += "radiusFinish"; } + if (colorSpreadChanged()) { + out += "colorSpread"; + } + if (colorStartChanged()) { + out += "colorStart"; + } + if (colorFinishChanged()) { + out += "colorFinish"; + } + if (alphaSpreadChanged()) { + out += "alphaSpread"; + } + if (alphaStartChanged()) { + out += "alphaStart"; + } + if (alphaFinishChanged()) { + out += "alphaFinish"; + } + if (emitterShouldTrailChanged()) { + out += "emitterShouldTrail"; + } if (particleSpinChanged()) { out += "particleSpin"; } @@ -3893,6 +4021,186 @@ QList EntityItemProperties::listChangedProperties() { if (rotateWithEntityChanged()) { out += "rotateWithEntity"; } + + // Model + if (modelURLChanged()) { + out += "modelURL"; + } + if (jointRotationsSetChanged()) { + out += "jointRotationsSet"; + } + if (jointRotationsChanged()) { + out += "jointRotations"; + } + if (jointTranslationsSetChanged()) { + out += "jointTranslationsSet"; + } + if (jointTranslationsChanged()) { + out += "jointTranslations"; + } + if (relayParentJointsChanged()) { + out += "relayParentJoints"; + } + getAnimation().listChangedProperties(out); + + // Light + if (isSpotlightChanged()) { + out += "isSpotlight"; + } + if (intensityChanged()) { + out += "intensity"; + } + if (exponentChanged()) { + out += "exponent"; + } + if (cutoffChanged()) { + out += "cutoff"; + } + if (falloffRadiusChanged()) { + out += "falloffRadius"; + } + + // Text + if (textChanged()) { + out += "text"; + } + if (lineHeightChanged()) { + out += "lineHeight"; + } + if (textColorChanged()) { + out += "textColor"; + } + if (textAlphaChanged()) { + out += "textAlpha"; + } + if (backgroundColorChanged()) { + out += "backgroundColor"; + } + if (backgroundAlphaChanged()) { + out += "backgroundAlpha"; + } + if (billboardModeChanged()) { + out += "billboardMode"; + } + if (leftMarginChanged()) { + out += "leftMargin"; + } + if (rightMarginChanged()) { + out += "rightMargin"; + } + if (topMarginChanged()) { + out += "topMargin"; + } + if (bottomMarginChanged()) { + out += "bottomMargin"; + } + + // Zone + getKeyLight().listChangedProperties(out); + getAmbientLight().listChangedProperties(out); + getSkybox().listChangedProperties(out); + getHaze().listChangedProperties(out); + getBloom().listChangedProperties(out); + if (flyingAllowedChanged()) { + out += "flyingAllowed"; + } + if (ghostingAllowedChanged()) { + out += "ghostingAllowed"; + } + if (filterURLChanged()) { + out += "filterURL"; + } + if (keyLightModeChanged()) { + out += "keyLightMode"; + } + if (ambientLightModeChanged()) { + out += "ambientLightMode"; + } + if (skyboxModeChanged()) { + out += "skyboxMode"; + } + if (hazeModeChanged()) { + out += "hazeMode"; + } + if (bloomModeChanged()) { + out += "bloomMode"; + } + + // Polyvox + if (voxelVolumeSizeChanged()) { + out += "voxelVolumeSize"; + } + if (voxelDataChanged()) { + out += "voxelData"; + } + if (voxelSurfaceStyleChanged()) { + out += "voxelSurfaceStyle"; + } + if (xTextureURLChanged()) { + out += "xTextureURL"; + } + if (yTextureURLChanged()) { + out += "yTextureURL"; + } + if (zTextureURLChanged()) { + out += "zTextureURL"; + } + if (xNNeighborIDChanged()) { + out += "xNNeighborID"; + } + if (yNNeighborIDChanged()) { + out += "yNNeighborID"; + } + if (zNNeighborIDChanged()) { + out += "zNNeighborID"; + } + if (xPNeighborIDChanged()) { + out += "xPNeighborID"; + } + if (yPNeighborIDChanged()) { + out += "yPNeighborID"; + } + if (zPNeighborIDChanged()) { + out += "zPNeighborID"; + } + + // Web + if (sourceUrlChanged()) { + out += "sourceUrl"; + } + if (dpiChanged()) { + out += "dpi"; + } + + // Polyline + if (linePointsChanged()) { + out += "linePoints"; + } + if (strokeWidthsChanged()) { + out += "strokeWidths"; + } + if (normalsChanged()) { + out += "normals"; + } + if (strokeColorsChanged()) { + out += "strokeColors"; + } + if (isUVModeStretchChanged()) { + out += "isUVModeStretch"; + } + if (glowChanged()) { + out += "glow"; + } + if (faceCameraChanged()) { + out += "faceCamera"; + } + + // Shape + if (shapeChanged()) { + out += "shape"; + } + + // Material if (materialURLChanged()) { out += "materialURL"; } @@ -3920,8 +4228,30 @@ QList EntityItemProperties::listChangedProperties() { if (materialRepeatChanged()) { out += "materialRepeat"; } - if (isVisibleInSecondaryCameraChanged()) { - out += "isVisibleInSecondaryCamera"; + + // Image + if (imageURLChanged()) { + out += "imageURL"; + } + if (emissiveChanged()) { + out += "emissive"; + } + if (keepAspectRatioChanged()) { + out += "keepAspectRatio"; + } + if (subImageChanged()) { + out += "subImage"; + } + + // Grid + if (followCameraChanged()) { + out += "followCamera"; + } + if (majorGridEveryChanged()) { + out += "majorGridEvery"; + } + if (minorGridEveryChanged()) { + out += "minorGridEvery"; } // Certifiable Properties @@ -3959,197 +4289,6 @@ QList EntityItemProperties::listChangedProperties() { out += "staticCertificateVersion"; } - if (hazeModeChanged()) { - out += "hazeMode"; - } - if (bloomModeChanged()) { - out += "bloomMode"; - } - if (keyLightModeChanged()) { - out += "keyLightMode"; - } - if (ambientLightModeChanged()) { - out += "ambientLightMode"; - } - if (skyboxModeChanged()) { - out += "skyboxMode"; - } - - if (voxelVolumeSizeChanged()) { - out += "voxelVolumeSize"; - } - if (voxelDataChanged()) { - out += "voxelData"; - } - if (voxelSurfaceStyleChanged()) { - out += "voxelSurfaceStyle"; - } - if (hrefChanged()) { - out += "href"; - } - if (descriptionChanged()) { - out += "description"; - } - if (actionDataChanged()) { - out += "actionData"; - } - if (xTextureURLChanged()) { - out += "xTextureURL"; - } - if (yTextureURLChanged()) { - out += "yTextureURL"; - } - if (zTextureURLChanged()) { - out += "zTextureURL"; - } - if (xNNeighborIDChanged()) { - out += "xNNeighborID"; - } - if (yNNeighborIDChanged()) { - out += "yNNeighborID"; - } - if (zNNeighborIDChanged()) { - out += "zNNeighborID"; - } - if (xPNeighborIDChanged()) { - out += "xPNeighborID"; - } - if (yPNeighborIDChanged()) { - out += "yPNeighborID"; - } - if (zPNeighborIDChanged()) { - out += "zPNeighborID"; - } - if (parentIDChanged()) { - out += "parentID"; - } - if (parentJointIndexChanged()) { - out += "parentJointIndex"; - } - if (jointRotationsSetChanged()) { - out += "jointRotationsSet"; - } - if (jointRotationsChanged()) { - out += "jointRotations"; - } - if (jointTranslationsSetChanged()) { - out += "jointTranslationsSet"; - } - if (jointTranslationsChanged()) { - out += "jointTranslations"; - } - if (relayParentJointsChanged()) { - out += "relayParentJoints"; - } - if (queryAACubeChanged()) { - out += "queryAACube"; - } - - if (entityHostTypeChanged()) { - out += "entityHostType"; - } - if (owningAvatarIDChanged()) { - out += "owningAvatarID"; - } - - if (flyingAllowedChanged()) { - out += "flyingAllowed"; - } - if (ghostingAllowedChanged()) { - out += "ghostingAllowed"; - } - if (filterURLChanged()) { - out += "filterURL"; - } - if (dpiChanged()) { - out += "dpi"; - } - - if (shapeChanged()) { - out += "shape"; - } - - if (strokeColorsChanged()) { - out += "strokeColors"; - } - - if (isUVModeStretchChanged()) { - out += "isUVModeStretch"; - } - - if (cloneableChanged()) { - out += "cloneable"; - } - if (cloneLifetimeChanged()) { - out += "cloneLifetime"; - } - if (cloneLimitChanged()) { - out += "cloneLimit"; - } - if (cloneDynamicChanged()) { - out += "cloneDynamic"; - } - if (cloneAvatarEntityChanged()) { - out += "cloneAvatarEntity"; - } - if (cloneOriginIDChanged()) { - out += "cloneOriginID"; - } - - if (imageURLChanged()) { - out += "imageURL"; - } - if (emissiveChanged()) { - out += "emissive"; - } - if (keepAspectRatioChanged()) { - out += "keepAspectRatio"; - } - if (subImageChanged()) { - out += "subImage"; - } - - if (billboardModeChanged()) { - out += "billboardMode"; - } - - if (followCameraChanged()) { - out += "followCamera"; - } - if (majorGridEveryChanged()) { - out += "majorGridEvery"; - } - if (minorGridEveryChanged()) { - out += "minorGridEvery"; - } - - if (textAlphaChanged()) { - out += "textAlpha"; - } - if (backgroundAlphaChanged()) { - out += "backgroundAlpha"; - } - if (leftMarginChanged()) { - out += "leftMargin"; - } - if (rightMarginChanged()) { - out += "rightMargin"; - } - if (topMarginChanged()) { - out += "topMargin"; - } - if (bottomMarginChanged()) { - out += "bottomMargin"; - } - - getAnimation().listChangedProperties(out); - getKeyLight().listChangedProperties(out); - getAmbientLight().listChangedProperties(out); - getSkybox().listChangedProperties(out); - getHaze().listChangedProperties(out); - getBloom().listChangedProperties(out); - getGrab().listChangedProperties(out); - return out; } diff --git a/libraries/entities/src/EntityItemProperties.h b/libraries/entities/src/EntityItemProperties.h index f9ec0b9605..7cc2429e17 100644 --- a/libraries/entities/src/EntityItemProperties.h +++ b/libraries/entities/src/EntityItemProperties.h @@ -37,7 +37,6 @@ #include "EntityPropertyFlags.h" #include "EntityPsuedoPropertyFlags.h" #include "LightEntityItem.h" -#include "LineEntityItem.h" #include "ParticleEffectEntityItem.h" #include "PolyVoxEntityItem.h" #include "SimulationOwner.h" @@ -78,7 +77,6 @@ class EntityItemProperties { friend class ImageEntityItem; friend class WebEntityItem; friend class ParticleEffectEntityItem; - friend class LineEntityItem; friend class PolyLineEntityItem; friend class PolyVoxEntityItem; friend class GridEntityItem; @@ -181,8 +179,14 @@ public: DEFINE_PROPERTY(PROP_SCRIPT_TIMESTAMP, ScriptTimestamp, scriptTimestamp, quint64, ENTITY_ITEM_DEFAULT_SCRIPT_TIMESTAMP); DEFINE_PROPERTY_REF(PROP_SERVER_SCRIPTS, ServerScripts, serverScripts, QString, ENTITY_ITEM_DEFAULT_SERVER_SCRIPTS); - // Particles + // Common DEFINE_PROPERTY_REF_ENUM(PROP_SHAPE_TYPE, ShapeType, shapeType, ShapeType, SHAPE_TYPE_NONE); + DEFINE_PROPERTY_REF(PROP_COMPOUND_SHAPE_URL, CompoundShapeURL, compoundShapeURL, QString, ""); + DEFINE_PROPERTY_REF(PROP_COLOR, Color, color, u8vec3Color, particle::DEFAULT_COLOR); + DEFINE_PROPERTY(PROP_ALPHA, Alpha, alpha, float, particle::DEFAULT_ALPHA); + DEFINE_PROPERTY_REF(PROP_TEXTURES, Textures, textures, QString, ""); + + // Particles DEFINE_PROPERTY(PROP_MAX_PARTICLES, MaxParticles, maxParticles, quint32, particle::DEFAULT_MAX_PARTICLES); DEFINE_PROPERTY(PROP_LIFESPAN, Lifespan, lifespan, float, particle::DEFAULT_LIFESPAN); DEFINE_PROPERTY(PROP_EMITTING_PARTICLES, IsEmitting, isEmitting, bool, true); @@ -202,15 +206,12 @@ public: DEFINE_PROPERTY(PROP_RADIUS_SPREAD, RadiusSpread, radiusSpread, float, particle::DEFAULT_RADIUS_SPREAD); DEFINE_PROPERTY(PROP_RADIUS_START, RadiusStart, radiusStart, float, particle::DEFAULT_RADIUS_START); DEFINE_PROPERTY(PROP_RADIUS_FINISH, RadiusFinish, radiusFinish, float, particle::DEFAULT_RADIUS_FINISH); - DEFINE_PROPERTY_REF(PROP_COLOR, Color, color, u8vec3Color, particle::DEFAULT_COLOR); DEFINE_PROPERTY_REF(PROP_COLOR_SPREAD, ColorSpread, colorSpread, u8vec3Color, particle::DEFAULT_COLOR_SPREAD); DEFINE_PROPERTY_REF(PROP_COLOR_START, ColorStart, colorStart, glm::vec3, particle::DEFAULT_COLOR_UNINITIALIZED); DEFINE_PROPERTY_REF(PROP_COLOR_FINISH, ColorFinish, colorFinish, glm::vec3, particle::DEFAULT_COLOR_UNINITIALIZED); - DEFINE_PROPERTY(PROP_ALPHA, Alpha, alpha, float, particle::DEFAULT_ALPHA); DEFINE_PROPERTY(PROP_ALPHA_SPREAD, AlphaSpread, alphaSpread, float, particle::DEFAULT_ALPHA_SPREAD); DEFINE_PROPERTY(PROP_ALPHA_START, AlphaStart, alphaStart, float, particle::DEFAULT_ALPHA_START); DEFINE_PROPERTY(PROP_ALPHA_FINISH, AlphaFinish, alphaFinish, float, particle::DEFAULT_ALPHA_FINISH); - DEFINE_PROPERTY_REF(PROP_TEXTURES, Textures, textures, QString, ""); DEFINE_PROPERTY(PROP_EMITTER_SHOULD_TRAIL, EmitterShouldTrail, emitterShouldTrail, bool, particle::DEFAULT_EMITTER_SHOULD_TRAIL); DEFINE_PROPERTY(PROP_PARTICLE_SPIN, ParticleSpin, particleSpin, float, particle::DEFAULT_PARTICLE_SPIN); DEFINE_PROPERTY(PROP_SPIN_SPREAD, SpinSpread, spinSpread, float, particle::DEFAULT_SPIN_SPREAD); @@ -220,7 +221,6 @@ public: // Model DEFINE_PROPERTY_REF(PROP_MODEL_URL, ModelURL, modelURL, QString, ""); - DEFINE_PROPERTY_REF(PROP_COMPOUND_SHAPE_URL, CompoundShapeURL, compoundShapeURL, QString, ""); DEFINE_PROPERTY_REF(PROP_JOINT_ROTATIONS_SET, JointRotationsSet, jointRotationsSet, QVector, QVector()); DEFINE_PROPERTY_REF(PROP_JOINT_ROTATIONS, JointRotations, jointRotations, QVector, QVector()); DEFINE_PROPERTY_REF(PROP_JOINT_TRANSLATIONS_SET, JointTranslationsSet, jointTranslationsSet, QVector, QVector()); @@ -281,15 +281,14 @@ public: DEFINE_PROPERTY_REF(PROP_SOURCE_URL, SourceUrl, sourceUrl, QString, ""); DEFINE_PROPERTY_REF(PROP_DPI, DPI, dpi, uint16_t, ENTITY_ITEM_DEFAULT_DPI); - // Line - DEFINE_PROPERTY(PROP_LINE_WIDTH, LineWidth, lineWidth, float, LineEntityItem::DEFAULT_LINE_WIDTH); - DEFINE_PROPERTY_REF(LINE_POINTS, LinePoints, linePoints, QVector, ENTITY_ITEM_DEFAULT_EMPTY_VEC3_QVEC); - // Polyline - DEFINE_PROPERTY(PROP_NORMALS, Normals, normals, QVector, ENTITY_ITEM_DEFAULT_EMPTY_VEC3_QVEC); - DEFINE_PROPERTY(PROP_STROKE_COLORS, StrokeColors, strokeColors, QVector, ENTITY_ITEM_DEFAULT_EMPTY_VEC3_QVEC); + DEFINE_PROPERTY_REF(PROP_LINE_POINTS, LinePoints, linePoints, QVector, ENTITY_ITEM_DEFAULT_EMPTY_VEC3_QVEC); DEFINE_PROPERTY(PROP_STROKE_WIDTHS, StrokeWidths, strokeWidths, QVector, QVector()); + DEFINE_PROPERTY(PROP_STROKE_NORMALS, Normals, normals, QVector, ENTITY_ITEM_DEFAULT_EMPTY_VEC3_QVEC); + DEFINE_PROPERTY(PROP_STROKE_COLORS, StrokeColors, strokeColors, QVector, ENTITY_ITEM_DEFAULT_EMPTY_VEC3_QVEC); DEFINE_PROPERTY(PROP_IS_UV_MODE_STRETCH, IsUVModeStretch, isUVModeStretch, bool, true); + DEFINE_PROPERTY(PROP_LINE_GLOW, Glow, glow, bool, false); + DEFINE_PROPERTY(PROP_LINE_FACE_CAMERA, FaceCamera, faceCamera, bool, false); // Shape DEFINE_PROPERTY_REF(PROP_SHAPE, Shape, shape, QString, "Sphere"); diff --git a/libraries/entities/src/EntityPropertyFlags.cpp b/libraries/entities/src/EntityPropertyFlags.cpp index dbb8463141..4cc44e8318 100644 --- a/libraries/entities/src/EntityPropertyFlags.cpp +++ b/libraries/entities/src/EntityPropertyFlags.cpp @@ -49,7 +49,6 @@ QDebug& operator<<(QDebug& dbg, const EntityPropertyFlags& f) { result = f.getHasProperty(PROP_LIFESPAN) ? result + "lifespan " : result; result = f.getHasProperty(PROP_EMIT_RATE) ? result + "emitRate " : result; result = f.getHasProperty(PROP_EMIT_SPEED) ? result + "emitSpeed " : result; - result = f.getHasProperty(PROP_EMIT_STRENGTH) ? result + "emitStrength " : result; result = f.getHasProperty(PROP_EMIT_ACCELERATION) ? result + "emitAcceleration " : result; result = f.getHasProperty(PROP_PARTICLE_RADIUS) ? result + "particleRadius " : result; result = f.getHasProperty(PROP_COMPOUND_SHAPE_URL) ? result + "compoundShapeUrl " : result; @@ -63,7 +62,6 @@ QDebug& operator<<(QDebug& dbg, const EntityPropertyFlags& f) { result = f.getHasProperty(PROP_VOXEL_VOLUME_SIZE) ? result + "voxelVolumeSize " : result; result = f.getHasProperty(PROP_VOXEL_DATA) ? result + "voxelData " : result; result = f.getHasProperty(PROP_VOXEL_SURFACE_STYLE) ? result + "voxelSurfaceStyle " : result; - result = f.getHasProperty(PROP_LINE_WIDTH) ? result + "lineWidth " : result; result = f.getHasProperty(PROP_LINE_POINTS) ? result + "linePoints " : result; result = f.getHasProperty(PROP_HREF) ? result + "href " : result; result = f.getHasProperty(PROP_DESCRIPTION) ? result + "description " : result; diff --git a/libraries/entities/src/EntityPropertyFlags.h b/libraries/entities/src/EntityPropertyFlags.h index 864d5efa10..78a15d259a 100644 --- a/libraries/entities/src/EntityPropertyFlags.h +++ b/libraries/entities/src/EntityPropertyFlags.h @@ -18,250 +18,27 @@ enum EntityPropertyList { PROP_PAGED_PROPERTY, PROP_CUSTOM_PROPERTIES_INCLUDED, - // these properties are supported by the EntityItem base class + // Core properties PROP_VISIBLE, - PROP_CAN_CAST_SHADOW, + PROP_NAME, + PROP_LOCKED, + PROP_USER_DATA, + PROP_HREF, + PROP_DESCRIPTION, PROP_POSITION, PROP_DIMENSIONS, PROP_ROTATION, - PROP_DENSITY, - PROP_VELOCITY, - PROP_GRAVITY, - PROP_DAMPING, - PROP_LIFETIME, - PROP_SCRIPT, - - // these properties are supported by some derived classes - PROP_COLOR, - - // these are used by models only - PROP_MODEL_URL, - PROP_ANIMATION_URL, - PROP_ANIMATION_FPS, - PROP_ANIMATION_FRAME_INDEX, - PROP_ANIMATION_PLAYING, - PROP_ANIMATION_ALLOW_TRANSLATION, - PROP_RELAY_PARENT_JOINTS, - - // these properties are supported by the EntityItem base class PROP_REGISTRATION_POINT, - PROP_ANGULAR_VELOCITY, - PROP_ANGULAR_DAMPING, - PROP_COLLISIONLESS, - PROP_DYNAMIC, // 24 - - // property used by Light entity - PROP_IS_SPOTLIGHT, - PROP_DIFFUSE_COLOR, - PROP_AMBIENT_COLOR_UNUSED, // FIXME - No longer used, can remove and bump protocol - PROP_SPECULAR_COLOR_UNUSED, // FIXME - No longer used, can remove and bump protocol - PROP_INTENSITY, // Previously PROP_CONSTANT_ATTENUATION - PROP_LINEAR_ATTENUATION_UNUSED, - PROP_QUADRATIC_ATTENUATION_UNUSED, - PROP_EXPONENT, - PROP_CUTOFF, - - // available to all entities - PROP_LOCKED, // 34 - - PROP_TEXTURES, // used by Model entities - PROP_ANIMATION_SETTINGS_UNUSED, // FIXME - No longer used, can remove and bump protocol - PROP_USER_DATA, // all entities -- 37 - PROP_SHAPE_TYPE, // used by Model + zones entities - - // used by ParticleEffect entities - PROP_MAX_PARTICLES, // 39 - PROP_LIFESPAN, // 40 -- used by all entities - PROP_EMIT_RATE, - PROP_EMIT_SPEED, - PROP_EMIT_STRENGTH, - PROP_EMIT_ACCELERATION, // FIXME - doesn't seem to get set in mark all changed???? - PROP_PARTICLE_RADIUS, // 45!! - - PROP_COMPOUND_SHAPE_URL, // used by Model + zones entities - PROP_MARKETPLACE_ID, // all entities - PROP_ACCELERATION, // all entities - PROP_SIMULATION_OWNER, // formerly known as PROP_SIMULATOR_ID - PROP_NAME, // all entities -- 50 - PROP_COLLISION_SOUND_URL, - PROP_RESTITUTION, - PROP_FRICTION, // 53 - - PROP_VOXEL_VOLUME_SIZE, - PROP_VOXEL_DATA, - PROP_VOXEL_SURFACE_STYLE, - - //for lines - PROP_LINE_WIDTH, - PROP_LINE_POINTS, - - // used by hyperlinks - PROP_HREF, - PROP_DESCRIPTION, // 61 - - PROP_BILLBOARD_MODE, - PROP_SCRIPT_TIMESTAMP, - - PROP_ACTION_DATA, - - PROP_X_TEXTURE_URL, // used by PolyVox - PROP_Y_TEXTURE_URL, // used by PolyVox - PROP_Z_TEXTURE_URL, // used by PolyVox - - // Used by PolyLine entity - PROP_NORMALS, - PROP_STROKE_COLORS, - PROP_STROKE_WIDTHS, - PROP_IS_UV_MODE_STRETCH, - - // used by particles - PROP_SPEED_SPREAD, - PROP_ACCELERATION_SPREAD, - - PROP_X_N_NEIGHBOR_ID, // used by PolyVox - PROP_Y_N_NEIGHBOR_ID, // used by PolyVox - PROP_Z_N_NEIGHBOR_ID, // used by PolyVox - PROP_X_P_NEIGHBOR_ID, // used by PolyVox - PROP_Y_P_NEIGHBOR_ID, // used by PolyVox - PROP_Z_P_NEIGHBOR_ID, // used by PolyVox - - // Used by particles - PROP_RADIUS_SPREAD, - PROP_RADIUS_START, - PROP_RADIUS_FINISH, - - PROP_ALPHA, // Supported by some derived classes - - //Used by particles - PROP_COLOR_SPREAD, - PROP_COLOR_START, - PROP_COLOR_FINISH, - PROP_ALPHA_SPREAD, - PROP_ALPHA_START, - PROP_ALPHA_FINISH, - PROP_EMIT_ORIENTATION, - PROP_EMIT_DIMENSIONS, - PROP_EMIT_RADIUS_START, - PROP_POLAR_START, - PROP_POLAR_FINISH, - PROP_AZIMUTH_START, - PROP_AZIMUTH_FINISH, - - PROP_ANIMATION_LOOP, - PROP_ANIMATION_FIRST_FRAME, - PROP_ANIMATION_LAST_FRAME, - PROP_ANIMATION_HOLD, - PROP_ANIMATION_START_AUTOMATICALLY, - - PROP_EMITTER_SHOULD_TRAIL, - + PROP_CREATED, + PROP_LAST_EDITED_BY, + PROP_ENTITY_HOST_TYPE, // not sent over wire + PROP_OWNING_AVATAR_ID, // not sent over wire PROP_PARENT_ID, PROP_PARENT_JOINT_INDEX, - - PROP_LOCAL_POSITION, // only used to convert values to and from scripts - PROP_LOCAL_ROTATION, // only used to convert values to and from scripts - - PROP_QUERY_AA_CUBE, // how the EntityTree considers the size and position on an entity - - // ModelEntity joint state - PROP_JOINT_ROTATIONS_SET, - PROP_JOINT_ROTATIONS, - PROP_JOINT_TRANSLATIONS_SET, - PROP_JOINT_TRANSLATIONS, - - PROP_COLLISION_MASK, // one byte of collision group flags - - PROP_FALLOFF_RADIUS, // for Light entity - - PROP_FLYING_ALLOWED, // can avatars in a zone fly? - PROP_GHOSTING_ALLOWED, // can avatars in a zone turn off physics? - - PROP_ENTITY_HOST_TYPE, // doesn't go over wire - PROP_OWNING_AVATAR_ID, // doesn't go over wire - - PROP_SHAPE, - PROP_DPI, - - PROP_LOCAL_VELOCITY, // only used to convert values to and from scripts - PROP_LOCAL_ANGULAR_VELOCITY, // only used to convert values to and from scripts - - PROP_LAST_EDITED_BY, - - PROP_SERVER_SCRIPTS, - - PROP_FILTER_URL, - - // Certificable Properties - PROP_ITEM_NAME, - PROP_ITEM_DESCRIPTION, - PROP_ITEM_CATEGORIES, - PROP_ITEM_ARTIST, - PROP_ITEM_LICENSE, - PROP_LIMITED_RUN, - // PROP_MARKETPLACE_ID is above - PROP_EDITION_NUMBER, - PROP_ENTITY_INSTANCE_NUMBER, - PROP_CERTIFICATE_ID, - PROP_STATIC_CERTIFICATE_VERSION, - - PROP_CLONEABLE, - PROP_CLONE_LIFETIME, - PROP_CLONE_LIMIT, - PROP_CLONE_DYNAMIC, - PROP_CLONE_AVATAR_ENTITY, - PROP_CLONE_ORIGIN_ID, - - PROP_HAZE_MODE, - - PROP_KEYLIGHT_COLOR, - PROP_KEYLIGHT_INTENSITY, - PROP_KEYLIGHT_DIRECTION, - PROP_KEYLIGHT_CAST_SHADOW, - - PROP_HAZE_RANGE, - PROP_HAZE_COLOR, - PROP_HAZE_GLARE_COLOR, - PROP_HAZE_ENABLE_GLARE, - PROP_HAZE_GLARE_ANGLE, - - PROP_HAZE_ALTITUDE_EFFECT, - PROP_HAZE_CEILING, - PROP_HAZE_BASE_REF, - - PROP_HAZE_BACKGROUND_BLEND, - - PROP_HAZE_ATTENUATE_KEYLIGHT, - PROP_HAZE_KEYLIGHT_RANGE, - PROP_HAZE_KEYLIGHT_ALTITUDE, - - PROP_KEY_LIGHT_MODE, - PROP_AMBIENT_LIGHT_MODE, - PROP_SKYBOX_MODE, - - PROP_LOCAL_DIMENSIONS, // only used to convert values to and from scripts - - PROP_MATERIAL_URL, - PROP_MATERIAL_MAPPING_MODE, - PROP_MATERIAL_PRIORITY, - PROP_PARENT_MATERIAL_NAME, - PROP_MATERIAL_MAPPING_POS, - PROP_MATERIAL_MAPPING_SCALE, - PROP_MATERIAL_MAPPING_ROT, - PROP_MATERIAL_DATA, - - PROP_VISIBLE_IN_SECONDARY_CAMERA, // not sent over the wire, only used locally - - PROP_PARTICLE_SPIN, - PROP_SPIN_START, - PROP_SPIN_FINISH, - PROP_SPIN_SPREAD, - PROP_PARTICLE_ROTATE_WITH_ENTITY, - - PROP_BLOOM_MODE, - PROP_BLOOM_INTENSITY, - PROP_BLOOM_THRESHOLD, - PROP_BLOOM_SIZE, - + PROP_QUERY_AA_CUBE, + PROP_CAN_CAST_SHADOW, + PROP_VISIBLE_IN_SECONDARY_CAMERA, // not sent over wire + // Grab PROP_GRAB_GRABBABLE, PROP_GRAB_KINEMATIC, PROP_GRAB_FOLLOWS_CONTROLLER, @@ -275,60 +52,271 @@ enum EntityPropertyList { PROP_GRAB_EQUIPPABLE_INDICATOR_SCALE, PROP_GRAB_EQUIPPABLE_INDICATOR_OFFSET, - PROP_MATERIAL_REPEAT, + // Physics + PROP_DENSITY, + PROP_VELOCITY, + PROP_ANGULAR_VELOCITY, + PROP_GRAVITY, + PROP_ACCELERATION, + PROP_DAMPING, + PROP_ANGULAR_DAMPING, + PROP_RESTITUTION, + PROP_FRICTION, + PROP_LIFETIME, + PROP_COLLISIONLESS, + PROP_COLLISION_MASK, + PROP_DYNAMIC, + PROP_SIMULATION_OWNER, + PROP_COLLISION_SOUND_URL, + PROP_ACTION_DATA, - PROP_EMISSIVE, - PROP_SUB_IMAGE, + // Cloning + PROP_CLONEABLE, + PROP_CLONE_LIFETIME, + PROP_CLONE_LIMIT, + PROP_CLONE_DYNAMIC, + PROP_CLONE_AVATAR_ENTITY, + PROP_CLONE_ORIGIN_ID, - PROP_LEFT_MARGIN, - PROP_RIGHT_MARGIN, - PROP_TOP_MARGIN, - PROP_BOTTOM_MARGIN, + // Scripts + PROP_SCRIPT, + PROP_SCRIPT_TIMESTAMP, + PROP_SERVER_SCRIPTS, + + // Certifiable Properties + PROP_ITEM_NAME, + PROP_ITEM_DESCRIPTION, + PROP_ITEM_CATEGORIES, + PROP_ITEM_ARTIST, + PROP_ITEM_LICENSE, + PROP_LIMITED_RUN, + PROP_MARKETPLACE_ID, + PROP_EDITION_NUMBER, + PROP_ENTITY_INSTANCE_NUMBER, + PROP_CERTIFICATE_ID, + PROP_STATIC_CERTIFICATE_VERSION, + + // Used to convert values to and from scripts + PROP_LOCAL_POSITION, + PROP_LOCAL_ROTATION, + PROP_LOCAL_VELOCITY, + PROP_LOCAL_ANGULAR_VELOCITY, + PROP_LOCAL_DIMENSIONS, + + // These properties are used by multiple subtypes but aren't in the base EntityItem + PROP_SHAPE_TYPE, + PROP_COMPOUND_SHAPE_URL, + PROP_COLOR, + PROP_ALPHA, + PROP_TEXTURES, //////////////////////////////////////////////////////////////////////////////////////////////////// - // ATTENTION: add new properties to end of list just ABOVE this line + // ATTENTION: add new shared EntityItem properties to the list ABOVE this line + //////////////////////////////////////////////////////////////////////////////////////////////////// + + // We need as many of these as the number of unique properties of a derived EntityItem class + PROP_DERIVED_0, + PROP_DERIVED_1, + PROP_DERIVED_2, + PROP_DERIVED_3, + PROP_DERIVED_4, + PROP_DERIVED_5, + PROP_DERIVED_6, + PROP_DERIVED_7, + PROP_DERIVED_8, + PROP_DERIVED_9, + PROP_DERIVED_10, + PROP_DERIVED_11, + PROP_DERIVED_12, + PROP_DERIVED_13, + PROP_DERIVED_14, + PROP_DERIVED_15, + PROP_DERIVED_16, + PROP_DERIVED_17, + PROP_DERIVED_18, + PROP_DERIVED_19, + PROP_DERIVED_20, + PROP_DERIVED_21, + PROP_DERIVED_22, + PROP_DERIVED_23, + PROP_DERIVED_24, + PROP_DERIVED_25, + PROP_DERIVED_26, + PROP_DERIVED_27, + PROP_DERIVED_28, + PROP_DERIVED_29, + PROP_DERIVED_30, + PROP_AFTER_LAST_ITEM, - //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// - // WARNING! Do not add props here unless you intentionally mean to reuse PROP_ indexes + // WARNING! Do not add props here unless you intentionally mean to reuse PROP_DERIVED_X indexes // - // These properties of TextEntity piggy back off of properties of ModelEntities, the type doesn't matter - // since the derived class knows how to interpret it's own properties and knows the types it expects - PROP_TEXT_COLOR = PROP_COLOR, - PROP_TEXT_ALPHA = PROP_ALPHA, - PROP_TEXT = PROP_MODEL_URL, - PROP_LINE_HEIGHT = PROP_ANIMATION_URL, - PROP_BACKGROUND_COLOR = PROP_ANIMATION_FPS, - PROP_BACKGROUND_ALPHA = PROP_ALPHA_START, - - // Aliases/Piggyback properties for Zones. These properties intentionally reuse the enum values for - // other properties which will never overlap with each other. We do this so that we don't have to expand + // These properties intentionally reuse the enum values for other properties which will never overlap with each other. We do this so that we don't have to expand // the size of the properties bitflags mask - PROP_SKYBOX_COLOR = PROP_ANIMATION_URL, - PROP_SKYBOX_URL = PROP_ANIMATION_FPS, + // + // Only add properties here that are only used by one subclass. Otherwise, they should go above to prevent collisions - PROP_AMBIENT_LIGHT_INTENSITY = PROP_CUTOFF, - PROP_AMBIENT_LIGHT_URL = PROP_ANIMATION_PLAYING, + // Particles + PROP_MAX_PARTICLES = PROP_DERIVED_0, + PROP_LIFESPAN = PROP_DERIVED_1, + PROP_EMITTING_PARTICLES = PROP_DERIVED_2, + PROP_EMIT_RATE = PROP_DERIVED_3, + PROP_EMIT_SPEED = PROP_DERIVED_4, + PROP_SPEED_SPREAD = PROP_DERIVED_5, + PROP_EMIT_ORIENTATION = PROP_DERIVED_6, + PROP_EMIT_DIMENSIONS = PROP_DERIVED_7, + PROP_EMIT_RADIUS_START = PROP_DERIVED_8, + PROP_EMIT_ACCELERATION = PROP_DERIVED_9, + PROP_ACCELERATION_SPREAD = PROP_DERIVED_10, + PROP_POLAR_START = PROP_DERIVED_11, + PROP_POLAR_FINISH = PROP_DERIVED_12, + PROP_AZIMUTH_START = PROP_DERIVED_13, + PROP_AZIMUTH_FINISH = PROP_DERIVED_14, + PROP_PARTICLE_RADIUS = PROP_DERIVED_15, + PROP_RADIUS_SPREAD = PROP_DERIVED_16, + PROP_RADIUS_START = PROP_DERIVED_17, + PROP_RADIUS_FINISH = PROP_DERIVED_18, + PROP_COLOR_SPREAD = PROP_DERIVED_19, + PROP_COLOR_START = PROP_DERIVED_20, + PROP_COLOR_FINISH = PROP_DERIVED_21, + PROP_ALPHA_SPREAD = PROP_DERIVED_22, + PROP_ALPHA_START = PROP_DERIVED_23, + PROP_ALPHA_FINISH = PROP_DERIVED_24, + PROP_EMITTER_SHOULD_TRAIL = PROP_DERIVED_25, + PROP_PARTICLE_SPIN = PROP_DERIVED_26, + PROP_SPIN_START = PROP_DERIVED_27, + PROP_SPIN_FINISH = PROP_DERIVED_28, + PROP_SPIN_SPREAD = PROP_DERIVED_29, + PROP_PARTICLE_ROTATE_WITH_ENTITY = PROP_DERIVED_30, - // Aliases/Piggyback properties for Web. These properties intentionally reuse the enum values for - // other properties which will never overlap with each other. - PROP_SOURCE_URL = PROP_MODEL_URL, + // Model + PROP_MODEL_URL = PROP_DERIVED_0, + PROP_JOINT_ROTATIONS_SET = PROP_DERIVED_1, + PROP_JOINT_ROTATIONS = PROP_DERIVED_2, + PROP_JOINT_TRANSLATIONS_SET = PROP_DERIVED_3, + PROP_JOINT_TRANSLATIONS = PROP_DERIVED_4, + PROP_RELAY_PARENT_JOINTS = PROP_DERIVED_5, + // Animation + PROP_ANIMATION_URL = PROP_DERIVED_6, + PROP_ANIMATION_ALLOW_TRANSLATION = PROP_DERIVED_7, + PROP_ANIMATION_FPS = PROP_DERIVED_8, + PROP_ANIMATION_FRAME_INDEX = PROP_DERIVED_9, + PROP_ANIMATION_PLAYING = PROP_DERIVED_10, + PROP_ANIMATION_LOOP = PROP_DERIVED_11, + PROP_ANIMATION_FIRST_FRAME = PROP_DERIVED_12, + PROP_ANIMATION_LAST_FRAME = PROP_DERIVED_13, + PROP_ANIMATION_HOLD = PROP_DERIVED_14, - // Aliases/Piggyback properties for Particle Emmitter. These properties intentionally reuse the enum values for - // other properties which will never overlap with each other. - PROP_EMITTING_PARTICLES = PROP_ANIMATION_PLAYING, + // Light + PROP_IS_SPOTLIGHT = PROP_DERIVED_0, + PROP_INTENSITY = PROP_DERIVED_1, + PROP_EXPONENT = PROP_DERIVED_2, + PROP_CUTOFF = PROP_DERIVED_3, + PROP_FALLOFF_RADIUS = PROP_DERIVED_4, - // Aliases/Piggyback properties for Image. These properties intentionally reuse the enum values for - // other properties which will never overlap with each other. - PROP_IMAGE_URL = PROP_MODEL_URL, - PROP_KEEP_ASPECT_RATIO = PROP_ANIMATION_PLAYING, + // Text + PROP_TEXT = PROP_DERIVED_0, + PROP_LINE_HEIGHT = PROP_DERIVED_1, + PROP_TEXT_COLOR = PROP_DERIVED_2, + PROP_TEXT_ALPHA = PROP_DERIVED_3, + PROP_BACKGROUND_COLOR = PROP_DERIVED_4, + PROP_BACKGROUND_ALPHA = PROP_DERIVED_5, + PROP_BILLBOARD_MODE = PROP_DERIVED_6, + PROP_LEFT_MARGIN = PROP_DERIVED_7, + PROP_RIGHT_MARGIN = PROP_DERIVED_8, + PROP_TOP_MARGIN = PROP_DERIVED_9, + PROP_BOTTOM_MARGIN = PROP_DERIVED_10, - // Aliases/Piggyback properties for Grid. These properties intentionally reuse the enum values for - // other properties which will never overlap with each other. - PROP_GRID_FOLLOW_CAMERA = PROP_ANIMATION_PLAYING, - PROP_MAJOR_GRID_EVERY = PROP_ANIMATION_URL, - PROP_MINOR_GRID_EVERY = PROP_ANIMATION_FPS, + // Zone + // Keylight + PROP_KEYLIGHT_COLOR = PROP_DERIVED_0, + PROP_KEYLIGHT_INTENSITY = PROP_DERIVED_1, + PROP_KEYLIGHT_DIRECTION = PROP_DERIVED_2, + PROP_KEYLIGHT_CAST_SHADOW = PROP_DERIVED_3, + // Ambient light + PROP_AMBIENT_LIGHT_INTENSITY = PROP_DERIVED_4, + PROP_AMBIENT_LIGHT_URL = PROP_DERIVED_5, + // Skybox + PROP_SKYBOX_COLOR = PROP_DERIVED_6, + PROP_SKYBOX_URL = PROP_DERIVED_7, + // Haze + PROP_HAZE_RANGE = PROP_DERIVED_8, + PROP_HAZE_COLOR = PROP_DERIVED_9, + PROP_HAZE_GLARE_COLOR = PROP_DERIVED_10, + PROP_HAZE_ENABLE_GLARE = PROP_DERIVED_11, + PROP_HAZE_GLARE_ANGLE = PROP_DERIVED_12, + PROP_HAZE_ALTITUDE_EFFECT = PROP_DERIVED_13, + PROP_HAZE_CEILING = PROP_DERIVED_14, + PROP_HAZE_BASE_REF = PROP_DERIVED_15, + PROP_HAZE_BACKGROUND_BLEND = PROP_DERIVED_16, + PROP_HAZE_ATTENUATE_KEYLIGHT = PROP_DERIVED_17, + PROP_HAZE_KEYLIGHT_RANGE = PROP_DERIVED_18, + PROP_HAZE_KEYLIGHT_ALTITUDE = PROP_DERIVED_19, + // Bloom + PROP_BLOOM_INTENSITY = PROP_DERIVED_20, + PROP_BLOOM_THRESHOLD = PROP_DERIVED_21, + PROP_BLOOM_SIZE = PROP_DERIVED_22, + PROP_FLYING_ALLOWED = PROP_DERIVED_23, + PROP_GHOSTING_ALLOWED = PROP_DERIVED_24, + PROP_FILTER_URL = PROP_DERIVED_25, + PROP_KEY_LIGHT_MODE = PROP_DERIVED_26, + PROP_AMBIENT_LIGHT_MODE = PROP_DERIVED_27, + PROP_SKYBOX_MODE = PROP_DERIVED_28, + PROP_HAZE_MODE = PROP_DERIVED_29, + PROP_BLOOM_MODE = PROP_DERIVED_30, + + // Polyvox + PROP_VOXEL_VOLUME_SIZE = PROP_DERIVED_0, + PROP_VOXEL_DATA = PROP_DERIVED_1, + PROP_VOXEL_SURFACE_STYLE = PROP_DERIVED_2, + PROP_X_TEXTURE_URL = PROP_DERIVED_3, + PROP_Y_TEXTURE_URL = PROP_DERIVED_4, + PROP_Z_TEXTURE_URL = PROP_DERIVED_5, + PROP_X_N_NEIGHBOR_ID = PROP_DERIVED_6, + PROP_Y_N_NEIGHBOR_ID = PROP_DERIVED_7, + PROP_Z_N_NEIGHBOR_ID = PROP_DERIVED_8, + PROP_X_P_NEIGHBOR_ID = PROP_DERIVED_9, + PROP_Y_P_NEIGHBOR_ID = PROP_DERIVED_10, + PROP_Z_P_NEIGHBOR_ID = PROP_DERIVED_11, + + // Web + PROP_SOURCE_URL = PROP_DERIVED_0, + PROP_DPI = PROP_DERIVED_1, + + // Polyline + PROP_LINE_POINTS = PROP_DERIVED_0, + PROP_STROKE_WIDTHS = PROP_DERIVED_1, + PROP_STROKE_NORMALS = PROP_DERIVED_2, + PROP_STROKE_COLORS = PROP_DERIVED_3, + PROP_IS_UV_MODE_STRETCH = PROP_DERIVED_4, + PROP_LINE_GLOW = PROP_DERIVED_5, + PROP_LINE_FACE_CAMERA = PROP_DERIVED_6, + + // Shape + PROP_SHAPE = PROP_DERIVED_0, + + // Material + PROP_MATERIAL_URL = PROP_DERIVED_0, + PROP_MATERIAL_MAPPING_MODE = PROP_DERIVED_1, + PROP_MATERIAL_PRIORITY = PROP_DERIVED_2, + PROP_PARENT_MATERIAL_NAME = PROP_DERIVED_3, + PROP_MATERIAL_MAPPING_POS = PROP_DERIVED_4, + PROP_MATERIAL_MAPPING_SCALE = PROP_DERIVED_5, + PROP_MATERIAL_MAPPING_ROT = PROP_DERIVED_6, + PROP_MATERIAL_DATA = PROP_DERIVED_7, + PROP_MATERIAL_REPEAT = PROP_DERIVED_8, + + // Image + PROP_IMAGE_URL = PROP_DERIVED_0, + PROP_EMISSIVE = PROP_DERIVED_1, + PROP_KEEP_ASPECT_RATIO = PROP_DERIVED_2, + PROP_SUB_IMAGE = PROP_DERIVED_3, + + // Grid + PROP_GRID_FOLLOW_CAMERA = PROP_DERIVED_0, + PROP_MAJOR_GRID_EVERY = PROP_DERIVED_1, + PROP_MINOR_GRID_EVERY = PROP_DERIVED_2, // WARNING!!! DO NOT ADD PROPS_xxx here unless you really really meant to.... Add them UP above }; diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp index 33ec92b8de..02e8682264 100644 --- a/libraries/entities/src/EntityScriptingInterface.cpp +++ b/libraries/entities/src/EntityScriptingInterface.cpp @@ -1519,46 +1519,6 @@ bool EntityScriptingInterface::polyVoxWorker(QUuid entityID, std::function actor) { - PROFILE_RANGE(script_entities, __FUNCTION__); - - if (!_entityTree) { - return false; - } - - EntityItemPointer entity = static_cast(_entityTree->findEntityByEntityItemID(entityID)); - if (!entity) { - qCDebug(entities) << "EntityScriptingInterface::setPoints no entity with ID" << entityID; - } - - EntityTypes::EntityType entityType = entity->getType(); - - if (entityType != EntityTypes::Line) { - return false; - } - - auto now = usecTimestampNow(); - - auto lineEntity = std::static_pointer_cast(entity); - bool success; - _entityTree->withWriteLock([&] { - success = actor(*lineEntity); - entity->setLastEdited(now); - entity->setLastBroadcast(now); - }); - - EntityItemProperties properties; - _entityTree->withReadLock([&] { - properties = entity->getProperties(); - }); - - properties.setLinePointsDirty(); - properties.setLastEdited(now); - - queueEntityMessage(PacketType::EntityEdit, entityID, properties); - return success; -} - bool EntityScriptingInterface::setVoxelSphere(QUuid entityID, const glm::vec3& center, float radius, int value) { PROFILE_RANGE(script_entities, __FUNCTION__); return polyVoxWorker(entityID, [center, radius, value](PolyVoxEntityItem& polyVoxEntity) { @@ -1601,49 +1561,6 @@ bool EntityScriptingInterface::setVoxelsInCuboid(QUuid entityID, const glm::vec3 }); } -bool EntityScriptingInterface::setAllPoints(QUuid entityID, const QVector& points) { - PROFILE_RANGE(script_entities, __FUNCTION__); - - EntityItemPointer entity = static_cast(_entityTree->findEntityByEntityItemID(entityID)); - if (!entity) { - qCDebug(entities) << "EntityScriptingInterface::setPoints no entity with ID" << entityID; - } - - EntityTypes::EntityType entityType = entity->getType(); - - if (entityType == EntityTypes::Line) { - return setPoints(entityID, [points](LineEntityItem& lineEntity) -> bool - { - return (LineEntityItem*)lineEntity.setLinePoints(points); - }); - } - - return false; -} - -bool EntityScriptingInterface::appendPoint(QUuid entityID, const glm::vec3& point) { - PROFILE_RANGE(script_entities, __FUNCTION__); - - EntityItemPointer entity = static_cast(_entityTree->findEntityByEntityItemID(entityID)); - if (!entity) { - qCDebug(entities) << "EntityScriptingInterface::setPoints no entity with ID" << entityID; - // There is no entity - return false; - } - - EntityTypes::EntityType entityType = entity->getType(); - - if (entityType == EntityTypes::Line) { - return setPoints(entityID, [point](LineEntityItem& lineEntity) -> bool - { - return (LineEntityItem*)lineEntity.appendPoint(point); - }); - } - - return false; -} - - bool EntityScriptingInterface::actionWorker(const QUuid& entityID, std::function actor) { if (!_entityTree) { diff --git a/libraries/entities/src/EntityScriptingInterface.h b/libraries/entities/src/EntityScriptingInterface.h index 890c666010..512e88c8e1 100644 --- a/libraries/entities/src/EntityScriptingInterface.h +++ b/libraries/entities/src/EntityScriptingInterface.h @@ -26,7 +26,6 @@ #include #include "PolyVoxEntityItem.h" -#include "LineEntityItem.h" #include "PolyLineEntityItem.h" #include "EntityTree.h" @@ -861,75 +860,12 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE glm::vec3 localCoordsToVoxelCoords(const QUuid& entityID, glm::vec3 localCoords); - /**jsdoc - * Set the linePoints property of a {@link Entities.EntityType|Line} entity. - * @function Entities.setAllPoints - * @param {Uuid} entityID - The ID of the {@link Entities.EntityType|Line} entity. - * @param {Vec3[]} points - The array of points to set the entity's linePoints property to. - * @returns {boolean} true if the entity's property was updated, otherwise false. The property - * may fail to be updated if the entity does not exist, the entity is not a {@link Entities.EntityType|Line} entity, - * one of the points is outside the entity's dimensions, or the number of points is greater than the maximum allowed. - * @example Change the shape of a Line entity. - * // Draw a horizontal line between two points. - * var entity = Entities.addEntity({ - * type: "Line", - * position: Vec3.sum(MyAvatar.position, Vec3.multiplyQbyV(MyAvatar.orientation, { x: 0, y: 0.75, z: -5 })), - * rotation: MyAvatar.orientation, - * dimensions: { x: 2, y: 2, z: 1 }, - * linePoints: [ - * { x: -1, y: 0, z: 0 }, - * { x:1, y: -0, z: 0 } - * ], - * color: { red: 255, green: 0, blue: 0 }, - * lifetime: 300 // Delete after 5 minutes. - * }); - * - * // Change the line to be a "V". - * Script.setTimeout(function () { - * Entities.setAllPoints(entity, [ - * { x: -1, y: 1, z: 0 }, - * { x: 0, y: -1, z: 0 }, - * { x: 1, y: 1, z: 0 }, - * ]); - * }, 2000); - */ - Q_INVOKABLE bool setAllPoints(QUuid entityID, const QVector& points); - - /**jsdoc - * Append a point to a {@link Entities.EntityType|Line} entity. - * @function Entities.appendPoint - * @param {Uuid} entityID - The ID of the {@link Entities.EntityType|Line} entity. - * @param {Vec3} point - The point to add to the line. The coordinates are relative to the entity's position. - * @returns {boolean} true if the point was added to the line, otherwise false. The point may - * fail to be added if the entity does not exist, the entity is not a {@link Entities.EntityType|Line} entity, the - * point is outside the entity's dimensions, or the maximum number of points has been reached. - * @example Append a point to a Line entity. - * // Draw a line between two points. - * var entity = Entities.addEntity({ - * type: "Line", - * position: Vec3.sum(MyAvatar.position, Vec3.multiplyQbyV(MyAvatar.orientation, { x: 0, y: 0.75, z: -5 })), - * rotation: MyAvatar.orientation, - * dimensions: { x: 2, y: 2, z: 1 }, - * linePoints: [ - * { x: -1, y: 1, z: 0 }, - * { x: 0, y: -1, z: 0 } - * ], - * color: { red: 255, green: 0, blue: 0 }, - * lifetime: 300 // Delete after 5 minutes. - * }); - * - * // Add a third point to create a "V". - * Entities.appendPoint(entity, { x: 1, y: 1, z: 0 }); - */ - Q_INVOKABLE bool appendPoint(QUuid entityID, const glm::vec3& point); - /**jsdoc * Dumps debug information about all entities in Interface's local in-memory tree of entities it knows about to the program log. * @function Entities.dumpTree */ Q_INVOKABLE void dumpTree() const; - /**jsdoc * Add an action to an entity. An action is registered with the physics engine and is applied every physics simulation * step. Any entity may have more than one action associated with it, but only as many as will fit in an entity's @@ -1978,7 +1914,6 @@ private slots: private: bool actionWorker(const QUuid& entityID, std::function actor); bool polyVoxWorker(QUuid entityID, std::function actor); - bool setPoints(QUuid entityID, std::function actor); void queueEntityMessage(PacketType packetType, EntityItemID entityID, const EntityItemProperties& properties); bool addLocalEntityCopy(EntityItemProperties& propertiesWithSimID, EntityItemID& id, bool isClone = false); diff --git a/libraries/entities/src/EntityTypes.cpp b/libraries/entities/src/EntityTypes.cpp index e511af83b0..45a1e92073 100644 --- a/libraries/entities/src/EntityTypes.cpp +++ b/libraries/entities/src/EntityTypes.cpp @@ -26,7 +26,6 @@ #include "TextEntityItem.h" #include "ImageEntityItem.h" #include "WebEntityItem.h" -#include "LineEntityItem.h" #include "PolyLineEntityItem.h" #include "PolyVoxEntityItem.h" #include "GridEntityItem.h" @@ -50,7 +49,6 @@ REGISTER_ENTITY_TYPE(Text) REGISTER_ENTITY_TYPE(Image) REGISTER_ENTITY_TYPE(Web) REGISTER_ENTITY_TYPE(ParticleEffect) -REGISTER_ENTITY_TYPE(Line) REGISTER_ENTITY_TYPE(PolyLine) REGISTER_ENTITY_TYPE(PolyVox) REGISTER_ENTITY_TYPE(Grid) diff --git a/libraries/entities/src/EntityTypes.h b/libraries/entities/src/EntityTypes.h index 29a695718e..c9b9558265 100644 --- a/libraries/entities/src/EntityTypes.h +++ b/libraries/entities/src/EntityTypes.h @@ -70,8 +70,6 @@ public: * "ParticleEffect"A particle system that can be used to simulate things such as fire, * smoke, snow, magic spells, etc. * {@link Entities.EntityProperties-ParticleEffect|EntityProperties-ParticleEffect} - * "Line"A sequence of one or more simple straight lines. - * {@link Entities.EntityProperties-Line|EntityProperties-Line} * "PolyLine"A sequence of one or more textured straight lines. * {@link Entities.EntityProperties-PolyLine|EntityProperties-PolyLine} * "PolyVox"A set of textured voxels. @@ -99,7 +97,6 @@ public: Image, Web, ParticleEffect, - Line, PolyLine, PolyVox, Grid, diff --git a/libraries/entities/src/LineEntityItem.cpp b/libraries/entities/src/LineEntityItem.cpp deleted file mode 100644 index 766fd12bbb..0000000000 --- a/libraries/entities/src/LineEntityItem.cpp +++ /dev/null @@ -1,191 +0,0 @@ -// -// LineEntityItem.cpp -// libraries/entities/src -// -// Created by Seth Alves on 5/11/15. -// Copyright 2015 High Fidelity, Inc. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -#include "LineEntityItem.h" - -#include - -#include - -#include "EntitiesLogging.h" -#include "EntityItemProperties.h" -#include "EntityTree.h" -#include "EntityTreeElement.h" -#include "OctreeConstants.h" - -const float LineEntityItem::DEFAULT_LINE_WIDTH = 2.0f; -const int LineEntityItem::MAX_POINTS_PER_LINE = 70; - - -EntityItemPointer LineEntityItem::factory(const EntityItemID& entityID, const EntityItemProperties& properties) { - EntityItemPointer entity(new LineEntityItem(entityID), [](EntityItem* ptr) { ptr->deleteLater(); }); - entity->setProperties(properties); - return entity; -} - -LineEntityItem::LineEntityItem(const EntityItemID& entityItemID) : - EntityItem(entityItemID) -{ - _type = EntityTypes::Line; -} - -EntityItemProperties LineEntityItem::getProperties(const EntityPropertyFlags& desiredProperties, bool allowEmptyDesiredProperties) const { - - EntityItemProperties properties = EntityItem::getProperties(desiredProperties, allowEmptyDesiredProperties); // get the properties from our base class - - COPY_ENTITY_PROPERTY_TO_PROPERTIES(color, getColor); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(lineWidth, getLineWidth); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(linePoints, getLinePoints); - - return properties; -} - -bool LineEntityItem::setProperties(const EntityItemProperties& properties) { - bool somethingChanged = false; - somethingChanged = EntityItem::setProperties(properties); // set the properties in our base class - - SET_ENTITY_PROPERTY_FROM_PROPERTIES(color, setColor); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(lineWidth, setLineWidth); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(linePoints, setLinePoints); - - if (somethingChanged) { - bool wantDebug = false; - if (wantDebug) { - uint64_t now = usecTimestampNow(); - int elapsed = now - getLastEdited(); - qCDebug(entities) << "LineEntityItem::setProperties() AFTER update... edited AGO=" << elapsed << - "now=" << now << " getLastEdited()=" << getLastEdited(); - } - setLastEdited(properties._lastEdited); - } - return somethingChanged; -} - -bool LineEntityItem::appendPoint(const glm::vec3& point) { - if (_points.size() > MAX_POINTS_PER_LINE - 1) { - qCDebug(entities) << "MAX POINTS REACHED!"; - return false; - } - glm::vec3 halfBox = getScaledDimensions() * 0.5f; - if ( (point.x < - halfBox.x || point.x > halfBox.x) || (point.y < -halfBox.y || point.y > halfBox.y) || (point.z < - halfBox.z || point.z > halfBox.z) ) { - qCDebug(entities) << "Point is outside entity's bounding box"; - return false; - } - withWriteLock([&] { - _points << point; - _pointsChanged = true; - }); - return true; -} - -bool LineEntityItem::setLinePoints(const QVector& points) { - if (points.size() > MAX_POINTS_PER_LINE) { - return false; - } - glm::vec3 halfBox = getScaledDimensions() * 0.5f; - for (int i = 0; i < points.size(); i++) { - glm::vec3 point = points.at(i); - if ( (point.x < - halfBox.x || point.x > halfBox.x) || (point.y < -halfBox.y || point.y > halfBox.y) || (point.z < - halfBox.z || point.z > halfBox.z) ) { - qCDebug(entities) << "Point is outside entity's bounding box"; - return false; - } - } - - withWriteLock([&] { - _points = points; - _pointsChanged = true; - }); - return true; -} - -int LineEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* data, int bytesLeftToRead, - ReadBitstreamToTreeParams& args, - EntityPropertyFlags& propertyFlags, bool overwriteLocalData, - bool& somethingChanged) { - - int bytesRead = 0; - const unsigned char* dataAt = data; - - READ_ENTITY_PROPERTY(PROP_COLOR, glm::u8vec3, setColor); - READ_ENTITY_PROPERTY(PROP_LINE_WIDTH, float, setLineWidth); - READ_ENTITY_PROPERTY(PROP_LINE_POINTS, QVector, setLinePoints); - - return bytesRead; -} - - -EntityPropertyFlags LineEntityItem::getEntityProperties(EncodeBitstreamParams& params) const { - EntityPropertyFlags requestedProperties = EntityItem::getEntityProperties(params); - requestedProperties += PROP_COLOR; - requestedProperties += PROP_LINE_WIDTH; - requestedProperties += PROP_LINE_POINTS; - return requestedProperties; -} - -void LineEntityItem::appendSubclassData(OctreePacketData* packetData, EncodeBitstreamParams& params, - EntityTreeElementExtraEncodeDataPointer modelTreeElementExtraEncodeData, - EntityPropertyFlags& requestedProperties, - EntityPropertyFlags& propertyFlags, - EntityPropertyFlags& propertiesDidntFit, - int& propertyCount, - OctreeElement::AppendState& appendState) const { - - bool successPropertyFits = true; - - APPEND_ENTITY_PROPERTY(PROP_COLOR, getColor()); - APPEND_ENTITY_PROPERTY(PROP_LINE_WIDTH, getLineWidth()); - APPEND_ENTITY_PROPERTY(PROP_LINE_POINTS, getLinePoints()); -} - -void LineEntityItem::debugDump() const { - quint64 now = usecTimestampNow(); - qCDebug(entities) << " LINE EntityItem id:" << getEntityItemID() << "---------------------------------------------"; - qCDebug(entities) << " color:" << _color; - qCDebug(entities) << " position:" << debugTreeVector(getWorldPosition()); - qCDebug(entities) << " dimensions:" << debugTreeVector(getScaledDimensions()); - qCDebug(entities) << " getLastEdited:" << debugTime(getLastEdited(), now); -} - -glm::u8vec3 LineEntityItem::getColor() const { - return resultWithReadLock([&] { - return _color; - }); -} - -void LineEntityItem::setColor(const glm::u8vec3& value) { - withWriteLock([&] { - _color = value; - }); -} - -void LineEntityItem::setLineWidth(float lineWidth) { - withWriteLock([&] { - _lineWidth = lineWidth; - }); -} - -float LineEntityItem::getLineWidth() const { - return resultWithReadLock([&] { - return _lineWidth; - }); -} - -QVector LineEntityItem::getLinePoints() const { - return resultWithReadLock>([&] { - return _points; - }); -} - -void LineEntityItem::resetPointsChanged() { - withWriteLock([&] { - _pointsChanged = false; - }); -} diff --git a/libraries/entities/src/LineEntityItem.h b/libraries/entities/src/LineEntityItem.h deleted file mode 100644 index 1ebb248d23..0000000000 --- a/libraries/entities/src/LineEntityItem.h +++ /dev/null @@ -1,82 +0,0 @@ -// -// LineEntityItem.h -// libraries/entities/src -// -// Created by Seth Alves on 5/11/15. -// Copyright 2015 High Fidelity, Inc. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -#ifndef hifi_LineEntityItem_h -#define hifi_LineEntityItem_h - -#include "EntityItem.h" - -class LineEntityItem : public EntityItem { - public: - static EntityItemPointer factory(const EntityItemID& entityID, const EntityItemProperties& properties); - - LineEntityItem(const EntityItemID& entityItemID); - - ALLOW_INSTANTIATION // This class can be instantiated - - // methods for getting/setting all properties of an entity - virtual EntityItemProperties getProperties(const EntityPropertyFlags& desiredProperties, bool allowEmptyDesiredProperties) const override; - virtual bool setProperties(const EntityItemProperties& properties) override; - - virtual EntityPropertyFlags getEntityProperties(EncodeBitstreamParams& params) const override; - - virtual void appendSubclassData(OctreePacketData* packetData, EncodeBitstreamParams& params, - EntityTreeElementExtraEncodeDataPointer modelTreeElementExtraEncodeData, - EntityPropertyFlags& requestedProperties, - EntityPropertyFlags& propertyFlags, - EntityPropertyFlags& propertiesDidntFit, - int& propertyCount, - OctreeElement::AppendState& appendState) const override; - - virtual int readEntitySubclassDataFromBuffer(const unsigned char* data, int bytesLeftToRead, - ReadBitstreamToTreeParams& args, - EntityPropertyFlags& propertyFlags, bool overwriteLocalData, - bool& somethingChanged) override; - - glm::u8vec3 getColor() const; - void setColor(const glm::u8vec3& value); - - void setLineWidth(float lineWidth); - float getLineWidth() const; - - bool setLinePoints(const QVector& points); - bool appendPoint(const glm::vec3& point); - - QVector getLinePoints() const; - - virtual ShapeType getShapeType() const override { return SHAPE_TYPE_NONE; } - - // never have a ray intersection pick a LineEntityItem. - virtual bool supportsDetailedIntersection() const override { return true; } - virtual bool findDetailedRayIntersection(const glm::vec3& origin, const glm::vec3& direction, - OctreeElementPointer& element, float& distance, - BoxFace& face, glm::vec3& surfaceNormal, - QVariantMap& extraInfo, - bool precisionPicking) const override { return false; } - virtual bool findDetailedParabolaIntersection(const glm::vec3& origin, const glm::vec3& velocity, - const glm::vec3& acceleration, OctreeElementPointer& element, float& parabolicDistance, - BoxFace& face, glm::vec3& surfaceNormal, - QVariantMap& extraInfo, - bool precisionPicking) const override { return false; } - bool pointsChanged() const { return _pointsChanged; } - void resetPointsChanged(); - virtual void debugDump() const override; - static const float DEFAULT_LINE_WIDTH; - static const int MAX_POINTS_PER_LINE; - - private: - glm::u8vec3 _color; - float _lineWidth { DEFAULT_LINE_WIDTH }; - QVector _points; - bool _pointsChanged { true }; -}; - -#endif // hifi_LineEntityItem_h diff --git a/libraries/entities/src/PolyLineEntityItem.cpp b/libraries/entities/src/PolyLineEntityItem.cpp index d16a2f93d4..93206165da 100644 --- a/libraries/entities/src/PolyLineEntityItem.cpp +++ b/libraries/entities/src/PolyLineEntityItem.cpp @@ -41,14 +41,15 @@ EntityItemProperties PolyLineEntityItem::getProperties(const EntityPropertyFlags EntityItemProperties properties = EntityItem::getProperties(desiredProperties, allowEmptyDesiredProperties); // get the properties from our base class COPY_ENTITY_PROPERTY_TO_PROPERTIES(color, getColor); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(lineWidth, getLineWidth); COPY_ENTITY_PROPERTY_TO_PROPERTIES(linePoints, getLinePoints); - + COPY_ENTITY_PROPERTY_TO_PROPERTIES(strokeWidths, getStrokeWidths); COPY_ENTITY_PROPERTY_TO_PROPERTIES(normals, getNormals); COPY_ENTITY_PROPERTY_TO_PROPERTIES(strokeColors, getStrokeColors); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(strokeWidths, getStrokeWidths); COPY_ENTITY_PROPERTY_TO_PROPERTIES(textures, getTextures); COPY_ENTITY_PROPERTY_TO_PROPERTIES(isUVModeStretch, getIsUVModeStretch); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(glow, getGlow); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(faceCamera, getFaceCamera); + return properties; } @@ -58,14 +59,14 @@ bool PolyLineEntityItem::setProperties(const EntityItemProperties& properties) { somethingChanged = EntityItem::setProperties(properties); // set the properties in our base class SET_ENTITY_PROPERTY_FROM_PROPERTIES(color, setColor); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(lineWidth, setLineWidth); SET_ENTITY_PROPERTY_FROM_PROPERTIES(linePoints, setLinePoints); - + SET_ENTITY_PROPERTY_FROM_PROPERTIES(strokeWidths, setStrokeWidths); SET_ENTITY_PROPERTY_FROM_PROPERTIES(normals, setNormals); SET_ENTITY_PROPERTY_FROM_PROPERTIES(strokeColors, setStrokeColors); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(strokeWidths, setStrokeWidths); SET_ENTITY_PROPERTY_FROM_PROPERTIES(textures, setTextures); SET_ENTITY_PROPERTY_FROM_PROPERTIES(isUVModeStretch, setIsUVModeStretch); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(glow, setGlow); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(faceCamera, setFaceCamera); if (somethingChanged) { bool wantDebug = false; diff --git a/scripts/developer/tests/avatarToWorldTests.js b/scripts/developer/tests/avatarToWorldTests.js index c2da49cbd4..e27c3c4b5b 100644 --- a/scripts/developer/tests/avatarToWorldTests.js +++ b/scripts/developer/tests/avatarToWorldTests.js @@ -42,52 +42,6 @@ function jointToWorldPointTest_update(deltaTime) { Entities.editEntity(jointToWorldPointTest_sphereEntity, newProperties); } -//jointToWorldDirection -// create line in world space -// each frame calculate world space direction of players head z axis -// update line to match -var jointToWorldDirectionTest_lineEntity; -function jointToWorldDirectionTest() { - var jointIndex = MyAvatar.getJointIndex("Head"); - var avatarPos = MyAvatar.getJointPosition(jointIndex); - - var jointDir = { x: 1, y: 0, z: 1 }; - var worldDir = MyAvatar.jointToWorldDirection(jointDir, jointIndex); - print(worldDir.x); - print(worldDir.y); - print(worldDir.z); - jointToWorldDirectionTest_lineEntity = Entities.addEntity({ - type: "Line", - color: {red: 250, green: 0, blue: 0}, - dimensions: {x: 5, y: 5, z: 5}, - lifetime: 10.0, - linePoints: [{ - x: 0, - y: 0, - z: 0 - }, worldDir - ], - position : avatarPos, - }); -} -function jointToWorldDirection_update(deltaTime) { - var jointIndex = MyAvatar.getJointIndex("Head"); - var avatarPos = MyAvatar.getJointPosition(jointIndex); - var jointDir = { x: 1, y: 0, z: 0 }; - var worldDir = MyAvatar.jointToWorldDirection(jointDir, jointIndex); - var newProperties = { - linePoints: [{ - x: 0, - y: 0, - z: 0 - }, worldDir - ], - position : avatarPos - }; - - Entities.editEntity(jointToWorldDirectionTest_lineEntity, newProperties); -} - //jointToWorldRotation // create box in world space // each frame calculate world space rotation of players head diff --git a/scripts/developer/tests/worldToAvatarTests.js b/scripts/developer/tests/worldToAvatarTests.js index 6f0b19dc2d..e368a5e455 100644 --- a/scripts/developer/tests/worldToAvatarTests.js +++ b/scripts/developer/tests/worldToAvatarTests.js @@ -49,53 +49,6 @@ function worldToJointPointTest() { Entities.addEntity(worldSphereProps); } -//worldToJointDirection -// create line and attach to avatars head -// each frame calculate direction of world x axis in joint space of players head -// update arrow orientation to match -var worldToJointDirectionTest_lineEntity; -function worldToJointDirectionTest() { - var jointIndex = MyAvatar.getJointIndex("Head"); - - var jointPosition_WorldSpace = MyAvatar.getJointPosition(jointIndex); - var jointOffset_WorldSpace = { x: 0, y: 0, z: 0 }; - var jointPosition_WorldSpaceOffset = Vec3.sum(jointPosition_WorldSpace, jointOffset_WorldSpace); - var jointPosition_JointSpaceOffset = MyAvatar.worldToJointPoint(jointPosition_WorldSpaceOffset, jointIndex); - - var worldDir = { x: 1, y: 0, z: 0 }; - var avatarDir = MyAvatar.worldToJointDirection(worldDir, jointIndex); - - worldToJointDirectionTest_lineEntity = Entities.addEntity({ - type: "Line", - color: {red: 200, green: 250, blue: 0}, - dimensions: {x: 5, y: 5, z: 5}, - lifetime: 10.0, - linePoints: [{ - x: 0, - y: 0, - z: 0 - }, avatarDir - ], - localPosition : jointOffset_WorldSpace, - parentID : AVATAR_SELF_ID, - parentJointIndex : jointIndex - }); -} - -function worldToJointDirectionTest_update(deltaTime) { - var jointIndex = MyAvatar.getJointIndex("Head"); - var worldDir = { x: 1, y: 0, z: 0 }; - var avatarDir = MyAvatar.worldToJointDirection(worldDir, jointIndex); - var newProperties = { linePoints: [{ - x: 0, - y: 0, - z: 0 - }, avatarDir - ]}; - - Entities.editEntity(worldToJointDirectionTest_lineEntity, newProperties); -} - //worldToJointRotation // create box and parent to some player joint // convert world identity rotation to joint space rotation From 78c4c2599e007cfec2765b3fff4d1c8a99c73f93 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Thu, 13 Dec 2018 13:22:52 -0800 Subject: [PATCH 011/230] Add start of marketplace uploading and project file list --- .../resources/qml/hifi/AvatarPackager.qml | 7 +- .../qml/hifi/avatarPackager/AvatarProject.qml | 38 ++++++--- interface/src/avatar/AvatarPackager.cpp | 18 +++++ interface/src/avatar/AvatarPackager.h | 13 +++- interface/src/avatar/AvatarProject.cpp | 47 ++++++++++- interface/src/avatar/AvatarProject.h | 36 +++++---- .../src/avatar/MarketplaceItemUploader.cpp | 57 ++++++++++++++ .../src/avatar/MarketplaceItemUploader.h | 55 +++++++++++++ libraries/fbx/src/FST.cpp | 45 +++++++++++ libraries/fbx/src/FST.h | 49 ++++++++++++ libraries/networking/src/AccountManager.cpp | 78 ++++++++++--------- libraries/networking/src/AccountManager.h | 34 ++++---- 12 files changed, 388 insertions(+), 89 deletions(-) create mode 100644 interface/src/avatar/MarketplaceItemUploader.cpp create mode 100644 interface/src/avatar/MarketplaceItemUploader.h create mode 100644 libraries/fbx/src/FST.cpp create mode 100644 libraries/fbx/src/FST.h diff --git a/interface/resources/qml/hifi/AvatarPackager.qml b/interface/resources/qml/hifi/AvatarPackager.qml index 2044529427..434cd4128f 100644 --- a/interface/resources/qml/hifi/AvatarPackager.qml +++ b/interface/resources/qml/hifi/AvatarPackager.qml @@ -23,14 +23,13 @@ Windows.ScrollingWindow { //HifiConstants { id: hifi } Rectangle { - anchors.left: parent.left - anchors.right: parent.right - anchors.top: parent.top - anchors.bottom: parent.bottom + anchors.fill: parent + AvatarProject { id: avatarProject colorScheme: root.colorScheme visible: false + anchors.fill: parent } Rectangle { diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml index 0a6ed6c459..c365d7436e 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -13,26 +13,23 @@ Rectangle { property int colorScheme; + color: "blue" + visible: true - - anchors.left: parent.left - anchors.right: parent.right - anchors.top: parent.top - anchors.bottom: parent.bottom + + anchors.fill: parent RalewaySemiBold { id: avatarProjectLabel size: 24; - anchors.left: parent.left - anchors.top: parent.top + width: parent.width anchors.topMargin: 25 anchors.bottomMargin: 25 text: 'Avatar Project' } HifiControls.Button { id: openFolderButton - anchors.left: parent.left - anchors.right: parent.right + width: parent.width anchors.top: avatarProjectLabel.bottom text: qsTr("Open Project Folder") colorScheme: root.colorScheme @@ -43,15 +40,32 @@ Rectangle { } HifiControls.Button { id: uploadButton - anchors.left: parent.left - anchors.right: parent.right + width: parent.width anchors.top: openFolderButton.bottom text: qsTr("Upload") color: hifi.buttons.blue colorScheme: root.colorScheme height: 30 onClicked: function() { - + } + } + Text { + id: modelText + anchors.top: uploadButton.bottom + height: 30 + text: parent.height + } + Rectangle { + color: 'white' + visible: AvatarPackagerCore.currentAvatarProject !== null + width: parent.width + anchors.top: modelText.bottom + height: 1000 + + ListView { + anchors.fill: parent + model: AvatarPackagerCore.currentAvatarProject === null ? [] : AvatarPackagerCore.currentAvatarProject.projectFiles + delegate: Text { text: 'File: ' + modelData } } } } diff --git a/interface/src/avatar/AvatarPackager.cpp b/interface/src/avatar/AvatarPackager.cpp index 1088c862d4..3fdf193087 100644 --- a/interface/src/avatar/AvatarPackager.cpp +++ b/interface/src/avatar/AvatarPackager.cpp @@ -15,6 +15,18 @@ #include #include +#include "ModelSelector.h" +#include + +#include +#include + +std::once_flag setupQMLTypesFlag; +AvatarPackager::AvatarPackager() { + std::call_once(setupQMLTypesFlag, []() { + qmlRegisterType(); + }); +} bool AvatarPackager::open() { static const QUrl url{ "hifi/AvatarPackager.qml" }; @@ -32,5 +44,11 @@ QObject* AvatarPackager::openAvatarProject(QString avatarProjectFSTPath) { //_currentAvatarProject = nullptr; } _currentAvatarProject = AvatarProject::openAvatarProject(avatarProjectFSTPath); + emit avatarProjectChanged(); return _currentAvatarProject; } + +QObject* AvatarPackager::uploadItem() { + std::vector filePaths; + return new MarketplaceItemUploader(QUuid(), filePaths); +} diff --git a/interface/src/avatar/AvatarPackager.h b/interface/src/avatar/AvatarPackager.h index a8ef6c6421..f002631f17 100644 --- a/interface/src/avatar/AvatarPackager.h +++ b/interface/src/avatar/AvatarPackager.h @@ -21,16 +21,23 @@ class AvatarPackager : public QObject, public Dependency { Q_OBJECT SINGLETON_DEPENDENCY - Q_PROPERTY(QObject* currentAvatarProject READ getAvatarProject) + Q_PROPERTY(QObject* currentAvatarProject READ getAvatarProject NOTIFY avatarProjectChanged) public: + AvatarPackager(); bool open(); Q_INVOKABLE QObject* openAvatarProject(QString avatarProjectFSTPath); +signals: + void avatarProjectChanged(); + private: Q_INVOKABLE AvatarProject* getAvatarProject() const { return _currentAvatarProject; }; - AvatarProject* _currentAvatarProject { nullptr }; + //Q_INVOKABLE QObject* openAvatarProject(); + Q_INVOKABLE QObject* uploadItem(); + + AvatarProject* _currentAvatarProject{ nullptr }; }; -#endif // hifi_AvatarPackager_h +#endif // hifi_AvatarPackager_h diff --git a/interface/src/avatar/AvatarProject.cpp b/interface/src/avatar/AvatarProject.cpp index a3b22ab2c2..32fe4febcd 100644 --- a/interface/src/avatar/AvatarProject.cpp +++ b/interface/src/avatar/AvatarProject.cpp @@ -11,17 +11,56 @@ #include "AvatarProject.h" -AvatarProject* AvatarProject::openAvatarProject(QString path) { +#include + +#include +#include +#include +#include + +AvatarProject* AvatarProject::openAvatarProject(const QString& path) { const auto pathToLower = path.toLower(); if (pathToLower.endsWith(".fst")) { - // TODO: do we open FSTs from any path? - return new AvatarProject(path); + QFile file{ path }; + if (!file.open(QIODevice::ReadOnly)) { + return nullptr; + } + return new AvatarProject(path, file.readAll()); } if (pathToLower.endsWith(".fbx")) { // TODO: Create FST here: - } return nullptr; } + +AvatarProject::AvatarProject(const QString& fstPath, const QByteArray& data) : + _fstPath(fstPath), _fst(fstPath, FSTReader::readMapping(data)) { + + _directory = QFileInfo(_fstPath).absoluteDir(); + + //_projectFiles = _directory.entryList(); + refreshProjectFiles(); + + auto fileInfo = QFileInfo(_fstPath); + _projectPath = fileInfo.absoluteDir().absolutePath(); +} + +void AvatarProject::appendDirectory(QString prefix, QDir dir) { + qDebug() << "Inside of " << prefix << dir.absolutePath(); + auto flags = QDir::Dirs | QDir::Files | QDir::NoSymLinks | QDir::NoDotAndDotDot | QDir::Hidden; + for (auto& entry : dir.entryInfoList({}, flags)) { + if (entry.isFile()) { + _projectFiles.append(prefix + "/" + entry.fileName()); + } else if (entry.isDir()) { + qDebug() << "Found dir " << entry.absoluteFilePath() << " in " << dir.absolutePath(); + appendDirectory(prefix + dir.dirName() + "/", entry.absoluteFilePath()); + } + } +} + +void AvatarProject::refreshProjectFiles() { + _projectFiles.clear(); + appendDirectory("", _directory); +} diff --git a/interface/src/avatar/AvatarProject.h b/interface/src/avatar/AvatarProject.h index 2114b147dd..6dc64cda6f 100644 --- a/interface/src/avatar/AvatarProject.h +++ b/interface/src/avatar/AvatarProject.h @@ -13,12 +13,21 @@ #ifndef hifi_AvatarProject_h #define hifi_AvatarProject_h +#include "FST.h" + +#include #include #include #include +#include +#include class AvatarProject : public QObject { Q_OBJECT + Q_PROPERTY(FST* fst READ getFST) + + Q_PROPERTY(QStringList projectFiles MEMBER _projectFiles) + Q_PROPERTY(QString projectFolderPath READ getProjectPath) Q_PROPERTY(QString projectFSTPath READ getFSTPath) Q_PROPERTY(QString projectFBXPath READ getFBXPath) @@ -37,17 +46,10 @@ public: /** * returns the AvatarProject or a nullptr on failure. */ - static AvatarProject* openAvatarProject(QString path); + static AvatarProject* openAvatarProject(const QString& path); private: - AvatarProject(QString fstPath) : - _fstPath(fstPath) { - auto fileInfo = QFileInfo(_fstPath); - _projectPath = fileInfo.absoluteDir().absolutePath(); - - _fstPath = _projectPath + "TemporaryFBX.fbx"; - - } + AvatarProject(const QString& fstPath, const QByteArray& data); ~AvatarProject() { // TODO: cleanup FST / AvatarProjectUploader etc. @@ -55,13 +57,19 @@ private: Q_INVOKABLE QString getProjectPath() const { return _projectPath; } Q_INVOKABLE QString getFSTPath() const { return _fstPath; } - Q_INVOKABLE QString getFBXPath() const { return _fbxPath; } + Q_INVOKABLE QString getFBXPath() const { return _fst.getModelPath(); } + FST* getFST() { return &_fst; } + + void refreshProjectFiles(); + void appendDirectory(QString prefix, QDir dir); + + FST _fst; + + QDir _directory; + QStringList _projectFiles{}; QString _projectPath; QString _fstPath; - // TODO: handle this in the FST Class - QString _fbxPath; - }; -#endif // hifi_AvatarProject_h +#endif // hifi_AvatarProject_h diff --git a/interface/src/avatar/MarketplaceItemUploader.cpp b/interface/src/avatar/MarketplaceItemUploader.cpp new file mode 100644 index 0000000000..c2671aadec --- /dev/null +++ b/interface/src/avatar/MarketplaceItemUploader.cpp @@ -0,0 +1,57 @@ +// +// MarketplaceItemUploader.cpp +// +// +// Created by Ryan Huffman on 12/10/2018 +// Copyright 2018 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#include "MarketplaceItemUploader.h" + +#include +#include + +#include + +MarketplaceItemUploader::MarketplaceItemUploader(QUuid marketplaceID, std::vector filePaths) + : _filePaths(filePaths), _marketplaceID(marketplaceID) { + +} + +void MarketplaceItemUploader::send() { + auto accountManager = DependencyManager::get(); + auto request = accountManager->createRequest("/marketplace/item", AccountManagerAuth::Required); + + QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); + QByteArray data; + + /* + auto reply = networkAccessManager.post(request, data); + + connect(reply, &QNetworkReply::uploadProgress, this, &MarketplaceItemUploader::uploadProgress); + + connect(reply, &QNetworkReply::finished, this, [this, reply]() { + auto error = reply->error(); + if (error == QNetworkReply::NoError) { + } else { + } + emit complete(); + }); + */ + + QTimer* timer = new QTimer(); + timer->setInterval(1000); + connect(timer, &QTimer::timeout, this, [this, timer]() { + if (progress <= 1.0f) { + progress += 0.1; + emit uploadProgress(progress * 100.0f, 100.0f); + } else { + emit complete(); + timer->stop(); + } + }); + timer->start(); +} diff --git a/interface/src/avatar/MarketplaceItemUploader.h b/interface/src/avatar/MarketplaceItemUploader.h new file mode 100644 index 0000000000..2a3071244e --- /dev/null +++ b/interface/src/avatar/MarketplaceItemUploader.h @@ -0,0 +1,55 @@ +// +// MarketplaceItemUploader.h +// +// +// Created by Ryan Huffman on 12/10/2018 +// Copyright 2018 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#pragma once +#ifndef hifi_MarketplaceItemUploader_h +#define hifi_MarketplaceItemUploader_h + +#include +#include + +class QNetworkReply; + +class MarketplaceItemUploader : public QObject { + Q_OBJECT +public: + enum class Error + { + None, + ItemNotUpdateable, + ItemDoesNotExist, + RequestTimedOut, + Unknown + }; + enum class State + { + Ready, + Sent + }; + + MarketplaceItemUploader(QUuid markertplaceID, std::vector filePaths); + + float progress{ 0.0f }; + + Q_INVOKABLE void send(); + +signals: + void uploadProgress(qint64 bytesSent, qint64 bytesTotal); + void complete(); + +private: + + QNetworkReply* _reply; + QUuid _marketplaceID; + std::vector _filePaths; +}; + +#endif // hifi_MarketplaceItemUploader_h diff --git a/libraries/fbx/src/FST.cpp b/libraries/fbx/src/FST.cpp new file mode 100644 index 0000000000..6574b66e51 --- /dev/null +++ b/libraries/fbx/src/FST.cpp @@ -0,0 +1,45 @@ +// +// FST.cpp +// +// Created by Ryan Huffman on 12/11/15. +// Copyright 2018 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + + +#include "FST.h" + +#include +#include + +FST::FST(QString fstPath, QVariantHash data) : _fstPath(fstPath) { + if (data.contains("name")) { + _name = data["name"].toString(); + data.remove("name"); + } + + if (data.contains("filename")) { + _modelPath = data["filename"].toString(); + data.remove("filename"); + } + + _other = data; +} + +QString FST::absoluteModelPath() const { + QFileInfo fileInfo{ _fstPath }; + QDir dir{ fileInfo.absoluteDir() }; + return dir.absoluteFilePath(_modelPath); +} + +void FST::setName(const QString& name) { + _name = name; + emit nameChanged(name); +} + +void FST::setModelPath(const QString& modelPath) { + _modelPath = modelPath; + emit modelPathChanged(modelPath); +} \ No newline at end of file diff --git a/libraries/fbx/src/FST.h b/libraries/fbx/src/FST.h new file mode 100644 index 0000000000..e8c67c6c6b --- /dev/null +++ b/libraries/fbx/src/FST.h @@ -0,0 +1,49 @@ +// +// FST.h +// +// Created by Ryan Huffman on 12/11/15. +// Copyright 2018 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#ifndef hifi_FST_h +#define hifi_FST_h + +#include +#include + +class FST : public QObject { + Q_OBJECT + Q_PROPERTY(QString name READ getName WRITE setName NOTIFY nameChanged) + Q_PROPERTY(QString modelPath READ getModelPath WRITE setModelPath NOTIFY modelPathChanged) + Q_PROPERTY(QUuid marketplaceID READ getMarketplaceID) +public: + FST(QString fstPath, QVariantHash data); + + QString absoluteModelPath() const; + + QString getName() const { return _name; } + void setName(const QString& name); + + QString getModelPath() const { return _modelPath; } + void setModelPath(const QString& modelPath); + + QUuid getMarketplaceID() const { return _marketplaceID; } + +signals: + void nameChanged(const QString& name); + void modelPathChanged(const QString& modelPath); + +private: + QString _fstPath; + + QString _name{}; + QString _modelPath{}; + QUuid _marketplaceID{}; + + QVariantHash _other{}; +}; + +#endif // hifi_FST_h diff --git a/libraries/networking/src/AccountManager.cpp b/libraries/networking/src/AccountManager.cpp index 5721ac9334..989661cb81 100644 --- a/libraries/networking/src/AccountManager.cpp +++ b/libraries/networking/src/AccountManager.cpp @@ -208,6 +208,44 @@ void AccountManager::setSessionID(const QUuid& sessionID) { } } +QNetworkRequest AccountManager::createRequest(QString path, AccountManagerAuth::Type authType) { + QNetworkRequest networkRequest; + networkRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); + networkRequest.setHeader(QNetworkRequest::UserAgentHeader, _userAgentGetter()); + + networkRequest.setRawHeader(METAVERSE_SESSION_ID_HEADER, + uuidStringWithoutCurlyBraces(_sessionID).toLocal8Bit()); + + QUrl requestURL = _authURL; + + if (requestURL.isEmpty()) { // Assignment client doesn't set _authURL. + requestURL = getMetaverseServerURL(); + } + + if (path.startsWith("/")) { + requestURL.setPath(path); + } else { + requestURL.setPath("/" + path); + } + + if (authType != AccountManagerAuth::None ) { + if (hasValidAccessToken()) { + networkRequest.setRawHeader(ACCESS_TOKEN_AUTHORIZATION_HEADER, + _accountInfo.getAccessToken().authorizationHeaderValue()); + } else { + if (authType == AccountManagerAuth::Required) { + qCDebug(networking) << "No valid access token present. Bailing on invoked request to" + << path << "that requires authentication"; + return QNetworkRequest(); + } + } + } + + networkRequest.setUrl(requestURL); + + return networkRequest; +} + void AccountManager::sendRequest(const QString& path, AccountManagerAuth::Type authType, QNetworkAccessManager::Operation operation, @@ -231,46 +269,10 @@ void AccountManager::sendRequest(const QString& path, QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); - QNetworkRequest networkRequest; - networkRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); - networkRequest.setHeader(QNetworkRequest::UserAgentHeader, _userAgentGetter()); - - networkRequest.setRawHeader(METAVERSE_SESSION_ID_HEADER, - uuidStringWithoutCurlyBraces(_sessionID).toLocal8Bit()); - - QUrl requestURL = _authURL; - - if (requestURL.isEmpty()) { // Assignment client doesn't set _authURL. - requestURL = getMetaverseServerURL(); - } - - if (path.startsWith("/")) { - requestURL.setPath(path); - } else { - requestURL.setPath("/" + path); - } - - if (!query.isEmpty()) { - requestURL.setQuery(query); - } - - if (authType != AccountManagerAuth::None ) { - if (hasValidAccessToken()) { - networkRequest.setRawHeader(ACCESS_TOKEN_AUTHORIZATION_HEADER, - _accountInfo.getAccessToken().authorizationHeaderValue()); - } else { - if (authType == AccountManagerAuth::Required) { - qCDebug(networking) << "No valid access token present. Bailing on invoked request to" - << path << "that requires authentication"; - return; - } - } - } - - networkRequest.setUrl(requestURL); + QNetworkRequest networkRequest = createRequest(path, authType); if (VERBOSE_HTTP_REQUEST_DEBUGGING) { - qCDebug(networking) << "Making a request to" << qPrintable(requestURL.toString()); + qCDebug(networking) << "Making a request to" << qPrintable(networkRequest.url().toString()); if (!dataByteArray.isEmpty()) { qCDebug(networking) << "The POST/PUT body -" << QString(dataByteArray); diff --git a/libraries/networking/src/AccountManager.h b/libraries/networking/src/AccountManager.h index d5406707e7..77f20472fa 100644 --- a/libraries/networking/src/AccountManager.h +++ b/libraries/networking/src/AccountManager.h @@ -28,7 +28,8 @@ class JSONCallbackParameters { public: - JSONCallbackParameters(QObject* callbackReceiver = nullptr, const QString& jsonCallbackMethod = QString(), + JSONCallbackParameters(QObject* callbackReceiver = nullptr, + const QString& jsonCallbackMethod = QString(), const QString& errorCallbackMethod = QString()); bool isEmpty() const { return !callbackReceiver; } @@ -39,11 +40,12 @@ public: }; namespace AccountManagerAuth { - enum Type { - None, - Required, - Optional - }; +enum Type +{ + None, + Required, + Optional +}; } Q_DECLARE_METATYPE(AccountManagerAuth::Type); @@ -60,6 +62,7 @@ class AccountManager : public QObject, public Dependency { public: AccountManager(UserAgentGetter userAgentGetter = DEFAULT_USER_AGENT_GETTER); + QNetworkRequest createRequest(QString path, AccountManagerAuth::Type authType); Q_INVOKABLE void sendRequest(const QString& path, AccountManagerAuth::Type authType, QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, @@ -84,7 +87,7 @@ public: void requestProfile(); DataServerAccountInfo& getAccountInfo() { return _accountInfo; } - void setAccountInfo(const DataServerAccountInfo &newAccountInfo); + void setAccountInfo(const DataServerAccountInfo& newAccountInfo); static QJsonObject dataObjectFromResponse(QNetworkReply* requestReply); @@ -104,7 +107,10 @@ public: public slots: void requestAccessToken(const QString& login, const QString& password); void requestAccessTokenWithSteam(QByteArray authSessionTicket); - void requestAccessTokenWithAuthCode(const QString& authCode, const QString& clientId, const QString& clientSecret, const QString& redirectUri); + void requestAccessTokenWithAuthCode(const QString& authCode, + const QString& clientId, + const QString& clientSecret, + const QString& redirectUri); void refreshAccessToken(); void requestAccessTokenFinished(); @@ -148,15 +154,15 @@ private: QUrl _authURL; DataServerAccountInfo _accountInfo; - bool _isWaitingForTokenRefresh { false }; - bool _isAgent { false }; + bool _isWaitingForTokenRefresh{ false }; + bool _isAgent{ false }; - bool _isWaitingForKeypairResponse { false }; + bool _isWaitingForKeypairResponse{ false }; QByteArray _pendingPrivateKey; - QUuid _sessionID { QUuid::createUuid() }; + QUuid _sessionID{ QUuid::createUuid() }; - bool _limitedCommerce { false }; + bool _limitedCommerce{ false }; }; -#endif // hifi_AccountManager_h +#endif // hifi_AccountManager_h From 2269447741c405d150a38340afaab51bd6040df5 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Thu, 13 Dec 2018 14:52:36 -0800 Subject: [PATCH 012/230] Fix AvatarPackager QML size --- .../resources/qml/hifi/AvatarPackager.qml | 8 ++-- .../qml/hifi/avatarPackager/AvatarProject.qml | 43 +++++++++---------- interface/src/avatar/AvatarProject.cpp | 5 ++- 3 files changed, 30 insertions(+), 26 deletions(-) diff --git a/interface/resources/qml/hifi/AvatarPackager.qml b/interface/resources/qml/hifi/AvatarPackager.qml index 434cd4128f..5a51a3c873 100644 --- a/interface/resources/qml/hifi/AvatarPackager.qml +++ b/interface/resources/qml/hifi/AvatarPackager.qml @@ -21,9 +21,11 @@ Windows.ScrollingWindow { implicitWidth: 384; implicitHeight: 640 minSize: Qt.vector2d(200, 300) + //HifiConstants { id: hifi } - Rectangle { - anchors.fill: parent + Item { + height: pane.height + width: pane.width AvatarProject { id: avatarProject @@ -32,7 +34,7 @@ Windows.ScrollingWindow { anchors.fill: parent } - Rectangle { + Item { id: avatarPackagerMain anchors.left: parent.left anchors.right: parent.right diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml index c365d7436e..085f1acdce 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -6,18 +6,17 @@ import QtGraphicalEffects 1.0 import "../../controlsUit" 1.0 as HifiControls import "../../stylesUit" 1.0 -Rectangle { +Item { id: root HifiConstants { id: hifi } property int colorScheme; - color: "blue" - visible: true anchors.fill: parent + anchors.margins: 10 RalewaySemiBold { id: avatarProjectLabel @@ -26,11 +25,13 @@ Rectangle { anchors.topMargin: 25 anchors.bottomMargin: 25 text: 'Avatar Project' + color: "white" } HifiControls.Button { id: openFolderButton width: parent.width anchors.top: avatarProjectLabel.bottom + anchors.topMargin: 10 text: qsTr("Open Project Folder") colorScheme: root.colorScheme height: 30 @@ -38,28 +39,15 @@ Rectangle { fileDialogHelper.openDirectory(AvatarPackagerCore.currentAvatarProject.projectFolderPath); } } - HifiControls.Button { - id: uploadButton - width: parent.width - anchors.top: openFolderButton.bottom - text: qsTr("Upload") - color: hifi.buttons.blue - colorScheme: root.colorScheme - height: 30 - onClicked: function() { - } - } - Text { - id: modelText - anchors.top: uploadButton.bottom - height: 30 - text: parent.height - } Rectangle { color: 'white' visible: AvatarPackagerCore.currentAvatarProject !== null - width: parent.width - anchors.top: modelText.bottom + anchors.top: openFolderButton.bottom + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: uploadButton.top + anchors.topMargin: 10 + anchors.bottomMargin: 10 height: 1000 ListView { @@ -68,4 +56,15 @@ Rectangle { delegate: Text { text: 'File: ' + modelData } } } + HifiControls.Button { + id: uploadButton + width: parent.width + anchors.bottom: parent.bottom + text: qsTr("Upload") + color: hifi.buttons.blue + colorScheme: root.colorScheme + height: 30 + onClicked: function() { + } + } } diff --git a/interface/src/avatar/AvatarProject.cpp b/interface/src/avatar/AvatarProject.cpp index 32fe4febcd..c7ea7e52ac 100644 --- a/interface/src/avatar/AvatarProject.cpp +++ b/interface/src/avatar/AvatarProject.cpp @@ -17,6 +17,7 @@ #include #include #include +#include AvatarProject* AvatarProject::openAvatarProject(const QString& path) { const auto pathToLower = path.toLower(); @@ -25,7 +26,9 @@ AvatarProject* AvatarProject::openAvatarProject(const QString& path) { if (!file.open(QIODevice::ReadOnly)) { return nullptr; } - return new AvatarProject(path, file.readAll()); + auto project = new AvatarProject(path, file.readAll()); + QQmlEngine::setObjectOwnership(project, QQmlEngine::CppOwnership); + return project; } if (pathToLower.endsWith(".fbx")) { From 5dd00bed1d4ba7356f9004f3264c5cd68f0dc6d2 Mon Sep 17 00:00:00 2001 From: SamGondelman Date: Wed, 12 Dec 2018 17:41:32 -0800 Subject: [PATCH 013/230] new improved polylines --- .../src/RenderableEntityItem.cpp | 5 - .../src/RenderablePolyLineEntityItem.cpp | 344 +++++------ .../src/RenderablePolyLineEntityItem.h | 54 +- .../entities-renderer/src/paintStroke.slf | 32 +- .../entities-renderer/src/paintStroke.slh | 48 ++ .../entities-renderer/src/paintStroke.slv | 46 +- .../src/paintStroke_Shared.slh | 25 + .../src/paintStroke_fade.slf | 52 -- .../src/paintStroke_fade.slv | 43 -- libraries/entities/src/EntityItem.cpp | 489 +++++++-------- .../entities/src/EntityItemProperties.cpp | 560 +++++++++--------- libraries/entities/src/EntityItemProperties.h | 48 +- .../entities/src/EntityItemPropertiesMacros.h | 6 +- .../entities/src/EntityPropertyFlags.cpp | 206 ------- libraries/entities/src/EntityPropertyFlags.h | 22 +- libraries/entities/src/ImageEntityItem.cpp | 30 +- libraries/entities/src/LightEntityItem.cpp | 10 +- libraries/entities/src/ModelEntityItem.cpp | 46 +- .../entities/src/ParticleEffectEntityItem.cpp | 37 +- libraries/entities/src/PolyLineEntityItem.cpp | 219 +++---- libraries/entities/src/PolyLineEntityItem.h | 63 +- libraries/entities/src/ShapeEntityItem.cpp | 12 +- libraries/entities/src/ZoneEntityItem.cpp | 30 +- libraries/render-utils/src/glowLine.slv | 2 +- libraries/shared/src/AABox.cpp | 2 +- 25 files changed, 1079 insertions(+), 1352 deletions(-) create mode 100644 libraries/entities-renderer/src/paintStroke.slh create mode 100644 libraries/entities-renderer/src/paintStroke_Shared.slh delete mode 100644 libraries/entities-renderer/src/paintStroke_fade.slf delete mode 100644 libraries/entities-renderer/src/paintStroke_fade.slv delete mode 100644 libraries/entities/src/EntityPropertyFlags.cpp diff --git a/libraries/entities-renderer/src/RenderableEntityItem.cpp b/libraries/entities-renderer/src/RenderableEntityItem.cpp index 5fb5a15d2c..dec4af2d93 100644 --- a/libraries/entities-renderer/src/RenderableEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableEntityItem.cpp @@ -15,7 +15,6 @@ #include #include "RenderableLightEntityItem.h" -#include "RenderableLineEntityItem.h" #include "RenderableModelEntityItem.h" #include "RenderableParticleEffectEntityItem.h" #include "RenderablePolyVoxEntityItem.h" @@ -248,10 +247,6 @@ EntityRenderer::Pointer EntityRenderer::addToScene(EntityTreeRenderer& renderer, result = make_renderer(entity); break; - case Type::Line: - result = make_renderer(entity); - break; - case Type::PolyLine: result = make_renderer(entity); break; diff --git a/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp b/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp index 0d9e948db8..4a665bf666 100644 --- a/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp @@ -19,66 +19,35 @@ #include #include -//#define POLYLINE_ENTITY_USE_FADE_EFFECT -#ifdef POLYLINE_ENTITY_USE_FADE_EFFECT -# include -#endif +#include "paintStroke_shared.slh" using namespace render; using namespace render::entities; -static uint8_t CUSTOM_PIPELINE_NUMBER { 0 }; -static const int32_t PAINTSTROKE_TEXTURE_SLOT { 0 }; -static gpu::Stream::FormatPointer polylineFormat; -static gpu::PipelinePointer polylinePipeline; -#ifdef POLYLINE_ENTITY_USE_FADE_EFFECT -static gpu::PipelinePointer polylineFadePipeline; -#endif +gpu::PipelinePointer PolyLineEntityRenderer::_pipeline = nullptr; -static render::ShapePipelinePointer shapePipelineFactory(const render::ShapePlumber& plumber, const render::ShapeKey& key, gpu::Batch& batch) { - if (!polylinePipeline) { - gpu::ShaderPointer program = gpu::Shader::createProgram(shader::entities_renderer::program::paintStroke); -#ifdef POLYLINE_ENTITY_USE_FADE_EFFECT - auto fadeVS = gpu::Shader::createVertex(std::string(paintStroke_fade_vert)); - auto fadePS = gpu::Shader::createPixel(std::string(paintStroke_fade_frag)); - gpu::ShaderPointer fadeProgram = gpu::Shader::createProgram(fadeVS, fadePS); -#endif - gpu::StatePointer state = gpu::StatePointer(new gpu::State()); - state->setDepthTest(true, true, gpu::LESS_EQUAL); - PrepareStencil::testMask(*state); - state->setBlendFunction(true, - gpu::State::SRC_ALPHA, gpu::State::BLEND_OP_ADD, gpu::State::INV_SRC_ALPHA, - gpu::State::FACTOR_ALPHA, gpu::State::BLEND_OP_ADD, gpu::State::ONE); - polylinePipeline = gpu::Pipeline::create(program, state); -#ifdef POLYLINE_ENTITY_USE_FADE_EFFECT - _fadePipeline = gpu::Pipeline::create(fadeProgram, state); -#endif - } - -#ifdef POLYLINE_ENTITY_USE_FADE_EFFECT - if (key.isFaded()) { - auto fadeEffect = DependencyManager::get(); - return std::make_shared(_fadePipeline, nullptr, fadeEffect->getBatchSetter(), fadeEffect->getItemUniformSetter()); - } else { -#endif - return std::make_shared(polylinePipeline, nullptr, nullptr, nullptr); -#ifdef POLYLINE_ENTITY_USE_FADE_EFFECT - } -#endif -} +static const QUrl DEFAULT_POLYLINE_TEXTURE = QUrl(PathUtils::resourcesPath() + "images/paintStroke.png"); PolyLineEntityRenderer::PolyLineEntityRenderer(const EntityItemPointer& entity) : Parent(entity) { - static std::once_flag once; - std::call_once(once, [&] { - CUSTOM_PIPELINE_NUMBER = render::ShapePipeline::registerCustomShapePipelineFactory(shapePipelineFactory); - polylineFormat.reset(new gpu::Stream::Format()); - polylineFormat->setAttribute(gpu::Stream::POSITION, 0, gpu::Element(gpu::VEC3, gpu::FLOAT, gpu::XYZ), offsetof(Vertex, position)); - polylineFormat->setAttribute(gpu::Stream::NORMAL, 0, gpu::Element(gpu::VEC3, gpu::FLOAT, gpu::XYZ), offsetof(Vertex, normal)); - polylineFormat->setAttribute(gpu::Stream::TEXCOORD, 0, gpu::Element(gpu::VEC2, gpu::FLOAT, gpu::UV), offsetof(Vertex, uv)); - polylineFormat->setAttribute(gpu::Stream::COLOR, 0, gpu::Element(gpu::VEC3, gpu::FLOAT, gpu::RGB), offsetof(Vertex, color)); - }); + _texture = DependencyManager::get()->getTexture(DEFAULT_POLYLINE_TEXTURE); - _verticesBuffer = std::make_shared(); + _polylineGeometryBuffer = std::make_shared(); + + _polylineDataBuffer = std::make_shared(); + _polylineDataBuffer->resize(sizeof(PolylineData)); +} + +void PolyLineEntityRenderer::buildPipeline() { + // FIXME: opaque pipeline + gpu::ShaderPointer program = gpu::Shader::createProgram(shader::entities_renderer::program::paintStroke); + gpu::StatePointer state = gpu::StatePointer(new gpu::State()); + state->setCullMode(gpu::State::CullMode::CULL_NONE); + state->setDepthTest(true, true, gpu::LESS_EQUAL); + PrepareStencil::testMask(*state); + state->setBlendFunction(true, + gpu::State::SRC_ALPHA, gpu::State::BLEND_OP_ADD, gpu::State::INV_SRC_ALPHA, + gpu::State::FACTOR_ALPHA, gpu::State::BLEND_OP_ADD, gpu::State::ONE); + _pipeline = gpu::Pipeline::create(program, state); } ItemKey PolyLineEntityRenderer::getKey() { @@ -86,152 +55,165 @@ ItemKey PolyLineEntityRenderer::getKey() { } ShapeKey PolyLineEntityRenderer::getShapeKey() { - return ShapeKey::Builder().withCustom(CUSTOM_PIPELINE_NUMBER).build(); + return ShapeKey::Builder().withOwnPipeline().withTranslucent().withoutCullFace(); +} + +bool PolyLineEntityRenderer::needsRenderUpdate() const { + bool textureLoadedChanged = resultWithReadLock([&] { + return (!_textureLoaded && _texture && _texture->isLoaded()); + }); + + if (textureLoadedChanged) { + return true; + } + + return Parent::needsRenderUpdate(); } bool PolyLineEntityRenderer::needsRenderUpdateFromTypedEntity(const TypedEntityPointer& entity) const { return ( entity->pointsChanged() || - entity->strokeWidthsChanged() || + entity->widthsChanged() || entity->normalsChanged() || entity->texturesChanged() || - entity->strokeColorsChanged() + entity->colorsChanged() || + _isUVModeStretch != entity->getIsUVModeStretch() || + _glow != entity->getGlow() || + _faceCamera != entity->getFaceCamera() ); } -void PolyLineEntityRenderer::doRenderUpdateSynchronousTyped(const ScenePointer& scene, Transaction& transaction, const TypedEntityPointer& entity) { - static const QUrl DEFAULT_POLYLINE_TEXTURE = QUrl(PathUtils::resourcesPath() + "images/paintStroke.png"); - QUrl entityTextures = DEFAULT_POLYLINE_TEXTURE; +void PolyLineEntityRenderer::doRenderUpdateAsynchronousTyped(const TypedEntityPointer& entity) { + auto pointsChanged = entity->pointsChanged(); + auto widthsChanged = entity->widthsChanged(); + auto normalsChanged = entity->normalsChanged(); + auto colorsChanged = entity->colorsChanged(); + + bool isUVModeStretch = entity->getIsUVModeStretch(); + bool glow = entity->getGlow(); + bool faceCamera = entity->getFaceCamera(); + + entity->resetPolyLineChanged(); + + // Transform + _renderTransform = Transform(); + _renderTransform.setTranslation(entity->getWorldPosition() - entity->getPolylineCenter()); + _renderTransform.setRotation(entity->getWorldOrientation()); + + // Textures if (entity->texturesChanged()) { entity->resetTexturesChanged(); + QUrl entityTextures = DEFAULT_POLYLINE_TEXTURE; auto textures = entity->getTextures(); if (!textures.isEmpty()) { entityTextures = QUrl(textures); } _texture = DependencyManager::get()->getTexture(entityTextures); + _textureAspectRatio = 1.0f; + _textureLoaded = false; } - - - if (!_texture) { - _texture = DependencyManager::get()->getTexture(entityTextures); + + bool textureChanged = false; + if (!_textureLoaded && _texture && _texture->isLoaded()) { + textureChanged = true; + _textureAspectRatio = (float)_texture->getOriginalHeight() / (float)_texture->getOriginalWidth(); + _textureLoaded = true; } -} - -void PolyLineEntityRenderer::doRenderUpdateAsynchronousTyped(const TypedEntityPointer& entity) { - auto pointsChanged = entity->pointsChanged(); - auto strokeWidthsChanged = entity->strokeWidthsChanged(); - auto normalsChanged = entity->normalsChanged(); - auto strokeColorsChanged = entity->strokeColorsChanged(); - - - bool isUVModeStretch = entity->getIsUVModeStretch(); - entity->resetPolyLineChanged(); - - _polylineTransform = Transform(); - _polylineTransform.setTranslation(entity->getWorldPosition()); - _polylineTransform.setRotation(entity->getWorldOrientation()); + // Geometry if (pointsChanged) { - _lastPoints = entity->getLinePoints(); + _points = entity->getLinePoints(); } - if (strokeWidthsChanged) { - _lastStrokeWidths = entity->getStrokeWidths(); + if (widthsChanged) { + _widths = entity->getStrokeWidths(); } if (normalsChanged) { - _lastNormals = entity->getNormals(); + _normals = entity->getNormals(); } - if (strokeColorsChanged) { - _lastStrokeColors = entity->getStrokeColors(); - _lastStrokeColors = _lastNormals.size() == _lastStrokeColors.size() ? _lastStrokeColors : QVector({ toGlm(entity->getColor()) }); + if (colorsChanged) { + _colors = entity->getStrokeColors(); + _color = toGlm(entity->getColor()); } - if (pointsChanged || strokeWidthsChanged || normalsChanged || strokeColorsChanged) { - _empty = std::min(_lastPoints.size(), std::min(_lastNormals.size(), _lastStrokeWidths.size())) < 2; - if (!_empty) { - updateGeometry(updateVertices(_lastPoints, _lastNormals, _lastStrokeWidths, _lastStrokeColors, isUVModeStretch, _textureAspectRatio)); - } + if (_isUVModeStretch != isUVModeStretch || pointsChanged || widthsChanged || normalsChanged || colorsChanged || textureChanged) { + _isUVModeStretch = isUVModeStretch; + updateGeometry(); + } + + // Data + if (faceCamera != _faceCamera || glow != _glow) { + _faceCamera = faceCamera; + _glow = glow; + updateData(); } } -void PolyLineEntityRenderer::updateGeometry(const std::vector& vertices) { - _numVertices = (uint32_t)vertices.size(); - auto bufferSize = _numVertices * sizeof(Vertex); - if (bufferSize > _verticesBuffer->getSize()) { - _verticesBuffer->resize(bufferSize); - } - _verticesBuffer->setSubData(0, vertices); -} +void PolyLineEntityRenderer::updateGeometry() { + int maxNumVertices = std::min(_points.length(), _normals.length()); -std::vector PolyLineEntityRenderer::updateVertices(const QVector& points, - const QVector& normals, - const QVector& strokeWidths, - const QVector& strokeColors, - const bool isUVModeStretch, - const float textureAspectRatio) { - // Calculate the minimum vector size out of normals, points, and stroke widths - int size = std::min(points.size(), std::min(normals.size(), strokeWidths.size())); - - std::vector vertices; - - // Guard against an empty polyline - if (size <= 0) { - return vertices; - } - - float uCoordInc = 1.0f / size; - float uCoord = 0.0f; - int finalIndex = size - 1; - glm::vec3 binormal; - float accumulatedDistance = 0.0f; - float distanceToLastPoint = 0.0f; - float accumulatedStrokeWidth = 0.0f; - float strokeWidth = 0.0f; bool doesStrokeWidthVary = false; - - - for (int i = 1; i < strokeWidths.size(); i++) { - if (strokeWidths[i] != strokeWidths[i - 1]) { - doesStrokeWidthVary = true; - break; + if (_widths.size() >= 0) { + for (int i = 1; i < maxNumVertices; i++) { + float width = PolyLineEntityItem::DEFAULT_LINE_WIDTH; + if (i < _widths.length()) { + width = _widths[i]; + } + if (width != _widths[i - 1]) { + doesStrokeWidthVary = true; + break; + } } } - for (int i = 0; i <= finalIndex; i++) { - const float& width = strokeWidths.at(i); - const auto& point = points.at(i); - const auto& normal = normals.at(i); - const auto& color = strokeColors.size() == normals.size() ? strokeColors.at(i) : strokeColors.at(0); - int vertexIndex = i * 2; - + float uCoordInc = 1.0f / maxNumVertices; + float uCoord = 0.0f; + float accumulatedDistance = 0.0f; + float accumulatedStrokeWidth = 0.0f; + glm::vec3 binormal; - if (!isUVModeStretch && i >= 1) { - distanceToLastPoint = glm::distance(points.at(i), points.at(i - 1)); - accumulatedDistance += distanceToLastPoint; - strokeWidth = 2 * strokeWidths[i]; + std::vector vertices; + vertices.reserve(maxNumVertices); + for (int i = 0; i < maxNumVertices; i++) { + // Position + glm::vec3 point = _points[i]; - if (doesStrokeWidthVary) { - //If the stroke varies along the line the texture will stretch more or less depending on the speed - //because it looks better than using the same method as below - accumulatedStrokeWidth += strokeWidth; - float increaseValue = 1; - if (accumulatedStrokeWidth != 0) { - float newUcoord = glm::ceil(((1.0f / textureAspectRatio) * accumulatedDistance) / (accumulatedStrokeWidth / i)); - increaseValue = newUcoord - uCoord; + // uCoord + float width = i < _widths.size() ? _widths[i] : PolyLineEntityItem::DEFAULT_LINE_WIDTH; + if (i > 0) { // First uCoord is 0.0f + if (!_isUVModeStretch) { + accumulatedDistance += glm::distance(point, _points[i - 1]); + + if (doesStrokeWidthVary) { + //If the stroke varies along the line the texture will stretch more or less depending on the speed + //because it looks better than using the same method as below + accumulatedStrokeWidth += width; + float increaseValue = 1; + if (accumulatedStrokeWidth != 0) { + float newUcoord = glm::ceil((_textureAspectRatio * accumulatedDistance) / (accumulatedStrokeWidth / i)); + increaseValue = newUcoord - uCoord; + } + + increaseValue = increaseValue > 0 ? increaseValue : 1; + uCoord += increaseValue; + } else { + // If the stroke width is constant then the textures should keep the aspect ratio along the line + uCoord = (_textureAspectRatio * accumulatedDistance) / width; } - - increaseValue = increaseValue > 0 ? increaseValue : 1; - uCoord += increaseValue; } else { - //If the stroke width is constant then the textures should keep the aspect ratio along the line - uCoord = ((1.0f / textureAspectRatio) * accumulatedDistance) / strokeWidth; + uCoord += uCoordInc; } - } else if (vertexIndex >= 2) { - uCoord += uCoordInc; } + // Color + glm::vec3 color = i < _colors.length() ? _colors[i] : _color; + + // Normal + glm::vec3 normal = _normals[i]; + + // Binormal // For last point we can assume binormals are the same since it represents the last two vertices of quad - if (i < finalIndex) { - const auto tangent = points.at(i + 1) - point; - binormal = glm::normalize(glm::cross(tangent, normal)) * width; + if (i < maxNumVertices - 1) { + glm::vec3 tangent = _points[i + 1] - point; + binormal = glm::normalize(glm::cross(tangent, normal)); // Check to make sure binormal is not a NAN. If it is, don't add to vertices vector if (binormal.x != binormal.x) { @@ -239,54 +221,36 @@ std::vector PolyLineEntityRenderer::updateVertic } } - const auto v1 = points.at(i) + binormal; - const auto v2 = points.at(i) - binormal; - vertices.emplace_back(v1, normal, vec2(uCoord, 0.0f), color); - vertices.emplace_back(v2, normal, vec2(uCoord, 1.0f), color); + PolylineVertex vertex = { glm::vec4(point, uCoord), glm::vec4(color, 1.0f), glm::vec4(normal, 0.0f), glm::vec4(binormal, 0.5f * width) }; + vertices.push_back(vertex); } - return vertices; + _numVertices = vertices.size(); + _polylineGeometryBuffer->setData(vertices.size() * sizeof(PolylineVertex), (const gpu::Byte*) vertices.data()); } -scriptable::ScriptableModelBase PolyLineEntityRenderer::getScriptableModel() { - // TODO: adapt polyline into a triangles mesh... - return EntityRenderer::getScriptableModel(); +void PolyLineEntityRenderer::updateData() { + PolylineData data { glm::vec2(_faceCamera, _glow), glm::vec2(0.0f) }; + _polylineDataBuffer->setSubData(0, data); } void PolyLineEntityRenderer::doRender(RenderArgs* args) { - if (_empty) { + if (_numVertices < 2) { return; } PerformanceTimer perfTimer("RenderablePolyLineEntityItem::render"); Q_ASSERT(args->_batch); - gpu::Batch& batch = *args->_batch; - batch.setModelTransform(_polylineTransform); - if (_texture && _texture->isLoaded()) { - batch.setResourceTexture(PAINTSTROKE_TEXTURE_SLOT, _texture->getGPUTexture()); - } else { - batch.setResourceTexture(PAINTSTROKE_TEXTURE_SLOT, DependencyManager::get()->getWhiteTexture()); + if (!_pipeline) { + buildPipeline(); } - float textureWidth = (float)_texture->getOriginalWidth(); - float textureHeight = (float)_texture->getOriginalHeight(); - if (textureWidth != 0 && textureHeight != 0) { - _textureAspectRatio = textureWidth / textureHeight; - } - - batch.setInputFormat(polylineFormat); - batch.setInputBuffer(0, _verticesBuffer, 0, sizeof(Vertex)); - -#ifndef POLYLINE_ENTITY_USE_FADE_EFFECT - // glColor4f must be called after setInputFormat if it must be taken into account - if (_isFading) { - batch._glColor4f(1.0f, 1.0f, 1.0f, Interpolate::calculateFadeRatio(_fadeStartTime)); - } else { - batch._glColor4f(1.0f, 1.0f, 1.0f, 1.0f); - } -#endif - - batch.draw(gpu::TRIANGLE_STRIP, _numVertices, 0); + batch.setPipeline(_pipeline); + batch.setModelTransform(_renderTransform); + batch.setResourceTexture(0, _textureLoaded ? _texture->getGPUTexture() : DependencyManager::get()->getWhiteTexture()); + batch.setResourceBuffer(0, _polylineGeometryBuffer); + batch.setUniformBuffer(0, _polylineDataBuffer); + batch.draw(gpu::TRIANGLE_STRIP, 2 * _numVertices, 0); } diff --git a/libraries/entities-renderer/src/RenderablePolyLineEntityItem.h b/libraries/entities-renderer/src/RenderablePolyLineEntityItem.h index 8130171da8..635a456ac9 100644 --- a/libraries/entities-renderer/src/RenderablePolyLineEntityItem.h +++ b/libraries/entities-renderer/src/RenderablePolyLineEntityItem.h @@ -25,52 +25,40 @@ class PolyLineEntityRenderer : public TypedEntityRenderer { public: PolyLineEntityRenderer(const EntityItemPointer& entity); - virtual scriptable::ScriptableModelBase getScriptableModel() override; + // FIXME: shouldn't always be transparent: take into account texture and glow + virtual bool isTransparent() const override { return true; } + protected: + virtual bool needsRenderUpdate() const override; virtual bool needsRenderUpdateFromTypedEntity(const TypedEntityPointer& entity) const override; - virtual void doRenderUpdateSynchronousTyped(const ScenePointer& scene, - Transaction& transaction, - const TypedEntityPointer& entity) override; virtual void doRenderUpdateAsynchronousTyped(const TypedEntityPointer& entity) override; virtual ItemKey getKey() override; virtual ShapeKey getShapeKey() override; virtual void doRender(RenderArgs* args) override; - virtual bool isTransparent() const override { return true; } + void buildPipeline(); + void updateGeometry(); + void updateData(); - struct Vertex { - Vertex() {} - Vertex(const vec3& position, const vec3& normal, const vec2& uv, const vec3& color) : position(position), - normal(normal), - uv(uv), - color(color) {} - vec3 position; - vec3 normal; - vec2 uv; - vec3 color; - }; + QVector _points; + QVector _normals; + QVector _colors; + glm::vec3 _color; + QVector _widths; - void updateGeometry(const std::vector& vertices); - static std::vector updateVertices(const QVector& points, - const QVector& normals, - const QVector& strokeWidths, - const QVector& strokeColors, - const bool isUVModeStretch, - const float textureAspectRatio); - - Transform _polylineTransform; - QVector _lastPoints; - QVector _lastNormals; - QVector _lastStrokeColors; - QVector _lastStrokeWidths; - gpu::BufferPointer _verticesBuffer; - - uint32_t _numVertices { 0 }; - bool _empty{ true }; NetworkTexturePointer _texture; float _textureAspectRatio { 1.0f }; + bool _textureLoaded { false }; + bool _isUVModeStretch; + bool _faceCamera; + bool _glow; + + int _numVertices; + gpu::BufferPointer _polylineDataBuffer; + gpu::BufferPointer _polylineGeometryBuffer; + static gpu::PipelinePointer _pipeline; }; } } // namespace diff --git a/libraries/entities-renderer/src/paintStroke.slf b/libraries/entities-renderer/src/paintStroke.slf index f2c0d5572d..6ea088751f 100644 --- a/libraries/entities-renderer/src/paintStroke.slf +++ b/libraries/entities-renderer/src/paintStroke.slf @@ -14,21 +14,27 @@ <@include DeferredBufferWrite.slh@> -// the albedo texture -LAYOUT(binding=0) uniform sampler2D originalTexture; +<@include paintStroke.slh@> +<$declarePolyLineBuffers()$> -// the interpolated normal -layout(location=0) in vec3 interpolatedNormal; -layout(location=1) in vec2 varTexcoord; -layout(location=2) in vec4 varColor; +LAYOUT(binding=0) uniform sampler2D _texture; + +layout(location=0) in vec3 _normalWS; +layout(location=1) in vec2 _texCoord; +layout(location=2) in vec4 _color; +layout(location=3) in float _distanceFromCenter; void main(void) { - vec4 texel = texture(originalTexture, varTexcoord); - int frontCondition = 1 -int(gl_FrontFacing) * 2; - vec3 color = varColor.rgb; + vec4 texel = texture(_texture, _texCoord); + int frontCondition = 1 - 2 * int(gl_FrontFacing); + vec3 color = _color.rgb * texel.rgb; + float alpha = texel.a * _color.a; + + alpha *= mix(1.0, pow(1.0 - abs(_distanceFromCenter), 10.0), _polylineData.faceCameraGlow.y); + packDeferredFragmentTranslucent( - float(frontCondition) * interpolatedNormal, - texel.a * varColor.a, - color * texel.rgb, - 10.0); + float(frontCondition) * _normalWS, + alpha, + color, + DEFAULT_ROUGHNESS); } diff --git a/libraries/entities-renderer/src/paintStroke.slh b/libraries/entities-renderer/src/paintStroke.slh new file mode 100644 index 0000000000..6189ac461b --- /dev/null +++ b/libraries/entities-renderer/src/paintStroke.slh @@ -0,0 +1,48 @@ + + +<@if not PAINTSTROKE_SLH@> +<@def PAINTSTROKE_SLH@> + +<@include paintStroke_Shared.slh@> +<@include gpu/ShaderConstants.h@> + +<@func declarePolyLineBuffers() @> + +// Hack comment to absorb the extra '//' scribe prepends + +#if !defined(GPU_SSBO_TRANSFORM_OBJECT) +LAYOUT(binding=GPU_RESOURCE_BUFFER_SLOT0_TEXTURE) uniform samplerBuffer polylineVerticesBuffer; +PolylineVertex getPolylineVertex(int i) { + int offset = 4 * i; + PolylineVertex vertex; + vertex.positionAndUCoord = texelFetch(polylineVerticesBuffer, offset); + vertex.color = texelFetch(polylineVerticesBuffer, offset + 1); + vertex.normal = texelFetch(polylineVerticesBuffer, offset + 2); + vertex.binormalAndHalfWidth = texelFetch(polylineVerticesBuffer, offset + 3); + return vertex; +} +#else +LAYOUT_STD140(binding=GPU_RESOURCE_BUFFER_SLOT0_STORAGE) buffer polylineVerticesBuffer { + PolylineVertex _vertices[]; +}; +PolylineVertex getPolylineVertex(int i) { + PolylineVertex vertex = _vertices[i]; + return vertex; +} +#endif + +LAYOUT_STD140(binding=0) uniform polylineDataBuffer { + PolylineData _polylineData; +}; + +<@endfunc@> + +<@endif@> diff --git a/libraries/entities-renderer/src/paintStroke.slv b/libraries/entities-renderer/src/paintStroke.slv index ecf52d61cf..c033d2c247 100644 --- a/libraries/entities-renderer/src/paintStroke.slv +++ b/libraries/entities-renderer/src/paintStroke.slv @@ -17,23 +17,45 @@ <@include gpu/Transform.slh@> <$declareStandardTransform()$> -// the interpolated normal -layout(location=0) out vec3 interpolatedNormal; +<@include paintStroke.slh@> +<$declarePolyLineBuffers()$> -//the diffuse texture -layout(location=1) out vec2 varTexcoord; - -layout(location=2) out vec4 varColor; +layout(location=0) out vec3 _normalWS; +layout(location=1) out vec2 _texCoord; +layout(location=2) out vec4 _color; +layout(location=3) out float _distanceFromCenter; void main(void) { - varTexcoord = inTexCoord0.st; + PolylineVertex vertex = getPolylineVertex(gl_VertexID / 2); + float evenVertex = float(gl_VertexID % 2 == 0); - // pass along the diffuse color - varColor = color_sRGBAToLinear(inColor); + _texCoord = vec2(vertex.positionAndUCoord.w, mix(1.0, 0.0, evenVertex)); + _color = color_sRGBAToLinear(vertex.color); - // standard transform TransformCamera cam = getTransformCamera(); TransformObject obj = getTransformObject(); - <$transformModelToClipPos(cam, obj, inPosition, gl_Position)$> - <$transformModelToEyeDir(cam, obj, inNormal.xyz, interpolatedNormal)$> + _distanceFromCenter = -1.0 + 2.0 * evenVertex; + vec4 position = vec4(vertex.positionAndUCoord.xyz, 1.0); + vec3 normal = vertex.normal.xyz; + vec3 binormal = vertex.binormalAndHalfWidth.xyz; + if (_polylineData.faceCameraGlow.x != 0.0) { + vec4 posEye; + vec3 normalEye; + vec3 binormalEye; + <$transformModelToEyePos(cam, obj, position, posEye)$> + <$transformModelToEyeDir(cam, obj, normal, normalEye)$> + <$transformModelToEyeDir(cam, obj, binormal, binormalEye)$> + + vec3 tangentEye = cross(binormalEye, normalEye); + // new normal faces the camera + normalEye = normalize(posEye.xyz); + binormalEye = normalize(cross(normalEye, tangentEye)); + posEye.xyz += _distanceFromCenter * vertex.binormalAndHalfWidth.w * binormalEye; + <$transformEyeToClipPos(cam, posEye, gl_Position)$> + <$transformEyeToWorldDir(cam, normalEye, _normalWS)$> + } else { + position.xyz += _distanceFromCenter * vertex.binormalAndHalfWidth.w * binormal; + <$transformModelToClipPos(cam, obj, position, gl_Position)$> + <$transformModelToWorldDir(cam, obj, normal, _normalWS)$> + } } \ No newline at end of file diff --git a/libraries/entities-renderer/src/paintStroke_Shared.slh b/libraries/entities-renderer/src/paintStroke_Shared.slh new file mode 100644 index 0000000000..460f6c6042 --- /dev/null +++ b/libraries/entities-renderer/src/paintStroke_Shared.slh @@ -0,0 +1,25 @@ +// glsl / C++ compatible source as interface for FadeEffect +#ifdef __cplusplus +# define _VEC4 glm::vec4 +# define _VEC2 glm::vec2 +#else +# define _VEC4 vec4 +# define _VEC2 vec2 +#endif + +struct PolylineVertex { + _VEC4 positionAndUCoord; + _VEC4 color; + _VEC4 normal; + _VEC4 binormalAndHalfWidth; +}; + +struct PolylineData { + _VEC2 faceCameraGlow; + _VEC2 spare; +}; + +// <@if 1@> +// Trigger Scribe include +// <@endif@> +// \ No newline at end of file diff --git a/libraries/entities-renderer/src/paintStroke_fade.slf b/libraries/entities-renderer/src/paintStroke_fade.slf deleted file mode 100644 index fa6d0aab75..0000000000 --- a/libraries/entities-renderer/src/paintStroke_fade.slf +++ /dev/null @@ -1,52 +0,0 @@ -<@include gpu/Config.slh@> -<$VERSION_HEADER$> -// Generated on <$_SCRIBE_DATE$> -// -// paintStroke_fade.frag -// fragment shader -// -// Created by Olivier Prat on 19/07/17. -// Copyright 2017 High Fidelity, Inc. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -<@include DeferredBufferWrite.slh@> - -<@include Fade.slh@> -<$declareFadeFragment()$> - -// the albedo texture -LAYOUT(binding=0) uniform sampler2D originalTexture; - -// the interpolated normal -layout(location=0) in vec3 interpolatedNormal; -layout(location=1) in vec2 varTexcoord; -layout(location=2) in vec4 varColor; -layout(location=3) in vec4 _worldPosition; - -struct PolyLineUniforms { - vec3 color; -}; - -LAYOUT(binding=0) uniform polyLineBuffer { - PolyLineUniforms polyline; -}; - -void main(void) { - vec3 fadeEmissive; - FadeObjectParams fadeParams; - - <$fetchFadeObjectParams(fadeParams)$> - applyFade(fadeParams, _worldPosition.xyz, fadeEmissive); - - vec4 texel = texture(originalTexture, varTexcoord); - int frontCondition = 1 -int(gl_FrontFacing) * 2; - vec3 color = varColor.rgb; - packDeferredFragmentTranslucent( - interpolatedNormal * float(frontCondition), - texel.a * varColor.a, - polyline.color * texel.rgb + fadeEmissive, - 10.0); -} diff --git a/libraries/entities-renderer/src/paintStroke_fade.slv b/libraries/entities-renderer/src/paintStroke_fade.slv deleted file mode 100644 index f6fcb18c98..0000000000 --- a/libraries/entities-renderer/src/paintStroke_fade.slv +++ /dev/null @@ -1,43 +0,0 @@ -<@include gpu/Config.slh@> -<$VERSION_HEADER$> -// Generated on <$_SCRIBE_DATE$> -// -// paintStroke_fade.vert -// vertex shader -// -// Created by Olivier Prat on 19/07/17. -// Copyright 2017 High Fidelity, Inc. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -<@include gpu/Inputs.slh@> -<@include gpu/Color.slh@> -<@include gpu/Transform.slh@> -<$declareStandardTransform()$> - -// the interpolated normal -layout(location=0) out vec3 interpolatedNormal; - -//the diffuse texture -layout(location=1) out vec2 varTexcoord; - -layout(location=2) out vec4 varColor; -layout(location=3) out vec4 _worldPosition; - -void main(void) { - - varTexcoord = inTexCoord0.st; - - // pass along the diffuse color - varColor = color_sRGBAToLinear(inColor); - - - // standard transform - TransformCamera cam = getTransformCamera(); - TransformObject obj = getTransformObject(); - <$transformModelToClipPos(cam, obj, inPosition, gl_Position)$> - <$transformModelToEyeDir(cam, obj, inNormal.xyz, interpolatedNormal)$> - <$transformModelToWorldPos(obj, inPosition, _worldPosition)$> -} \ No newline at end of file diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index 8b790f162e..4e6520fca3 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -70,33 +70,60 @@ EntityItem::~EntityItem() { EntityPropertyFlags EntityItem::getEntityProperties(EncodeBitstreamParams& params) const { EntityPropertyFlags requestedProperties; + // Core requestedProperties += PROP_SIMULATION_OWNER; + requestedProperties += PROP_VISIBLE; + requestedProperties += PROP_NAME; + requestedProperties += PROP_LOCKED; + requestedProperties += PROP_USER_DATA; + requestedProperties += PROP_HREF; + requestedProperties += PROP_DESCRIPTION; requestedProperties += PROP_POSITION; + requestedProperties += PROP_DIMENSIONS; requestedProperties += PROP_ROTATION; + requestedProperties += PROP_REGISTRATION_POINT; + // TODO: handle PROP_CREATED? + requestedProperties += PROP_LAST_EDITED_BY; + requestedProperties += PROP_ENTITY_HOST_TYPE; + requestedProperties += PROP_OWNING_AVATAR_ID; + requestedProperties += PROP_PARENT_ID; + requestedProperties += PROP_PARENT_JOINT_INDEX; + requestedProperties += PROP_QUERY_AA_CUBE; + requestedProperties += PROP_CAN_CAST_SHADOW; + // requestedProperties += PROP_VISIBLE_IN_SECONDARY_CAMERA; // not sent over wire + withReadLock([&] { + requestedProperties += _grabProperties.getEntityProperties(params); + }); + + // Physics + requestedProperties += PROP_DENSITY; requestedProperties += PROP_VELOCITY; requestedProperties += PROP_ANGULAR_VELOCITY; - requestedProperties += PROP_ACCELERATION; - - requestedProperties += PROP_DIMENSIONS; - requestedProperties += PROP_DENSITY; requestedProperties += PROP_GRAVITY; + requestedProperties += PROP_ACCELERATION; requestedProperties += PROP_DAMPING; + requestedProperties += PROP_ANGULAR_DAMPING; requestedProperties += PROP_RESTITUTION; requestedProperties += PROP_FRICTION; requestedProperties += PROP_LIFETIME; - requestedProperties += PROP_SCRIPT; - requestedProperties += PROP_SCRIPT_TIMESTAMP; - requestedProperties += PROP_SERVER_SCRIPTS; - requestedProperties += PROP_COLLISION_SOUND_URL; - requestedProperties += PROP_REGISTRATION_POINT; - requestedProperties += PROP_ANGULAR_DAMPING; - requestedProperties += PROP_VISIBLE; - requestedProperties += PROP_CAN_CAST_SHADOW; requestedProperties += PROP_COLLISIONLESS; requestedProperties += PROP_COLLISION_MASK; requestedProperties += PROP_DYNAMIC; - requestedProperties += PROP_LOCKED; - requestedProperties += PROP_USER_DATA; + requestedProperties += PROP_COLLISION_SOUND_URL; + requestedProperties += PROP_ACTION_DATA; + + // Cloning + requestedProperties += PROP_CLONEABLE; + requestedProperties += PROP_CLONE_LIFETIME; + requestedProperties += PROP_CLONE_LIMIT; + requestedProperties += PROP_CLONE_DYNAMIC; + requestedProperties += PROP_CLONE_AVATAR_ENTITY; + requestedProperties += PROP_CLONE_ORIGIN_ID; + + // Scripts + requestedProperties += PROP_SCRIPT; + requestedProperties += PROP_SCRIPT_TIMESTAMP; + requestedProperties += PROP_SERVER_SCRIPTS; // Certifiable properties requestedProperties += PROP_ITEM_NAME; @@ -111,30 +138,6 @@ EntityPropertyFlags EntityItem::getEntityProperties(EncodeBitstreamParams& param requestedProperties += PROP_CERTIFICATE_ID; requestedProperties += PROP_STATIC_CERTIFICATE_VERSION; - requestedProperties += PROP_NAME; - requestedProperties += PROP_HREF; - requestedProperties += PROP_DESCRIPTION; - requestedProperties += PROP_ACTION_DATA; - requestedProperties += PROP_PARENT_ID; - requestedProperties += PROP_PARENT_JOINT_INDEX; - requestedProperties += PROP_QUERY_AA_CUBE; - - requestedProperties += PROP_ENTITY_HOST_TYPE; - requestedProperties += PROP_OWNING_AVATAR_ID; - - requestedProperties += PROP_LAST_EDITED_BY; - - requestedProperties += PROP_CLONEABLE; - requestedProperties += PROP_CLONE_LIFETIME; - requestedProperties += PROP_CLONE_LIMIT; - requestedProperties += PROP_CLONE_DYNAMIC; - requestedProperties += PROP_CLONE_AVATAR_ENTITY; - requestedProperties += PROP_CLONE_ORIGIN_ID; - - withReadLock([&] { - requestedProperties += _grabProperties.getEntityProperties(params); - }); - return requestedProperties; } @@ -245,31 +248,65 @@ OctreeElement::AppendState EntityItem::appendEntityData(OctreePacketData* packet // PROP_CUSTOM_PROPERTIES_INCLUDED, APPEND_ENTITY_PROPERTY(PROP_SIMULATION_OWNER, _simulationOwner.toByteArray()); + APPEND_ENTITY_PROPERTY(PROP_VISIBLE, getVisible()); + APPEND_ENTITY_PROPERTY(PROP_NAME, getName()); + APPEND_ENTITY_PROPERTY(PROP_LOCKED, getLocked()); + APPEND_ENTITY_PROPERTY(PROP_USER_DATA, getUserData()); + APPEND_ENTITY_PROPERTY(PROP_HREF, getHref()); + APPEND_ENTITY_PROPERTY(PROP_DESCRIPTION, getDescription()); APPEND_ENTITY_PROPERTY(PROP_POSITION, getLocalPosition()); + APPEND_ENTITY_PROPERTY(PROP_DIMENSIONS, getUnscaledDimensions()); APPEND_ENTITY_PROPERTY(PROP_ROTATION, getLocalOrientation()); + APPEND_ENTITY_PROPERTY(PROP_REGISTRATION_POINT, getRegistrationPoint()); + // TODO: handle created? + APPEND_ENTITY_PROPERTY(PROP_LAST_EDITED_BY, getLastEditedBy()); + // APPEND_ENTITY_PROPERTY(PROP_ENTITY_HOST_TYPE, getEntityHostType()); // not sent over wire + // APPEND_ENTITY_PROPERTY(PROP_OWNING_AVATAR_ID, getOwningAvatarID()); // not sent over wire + // convert AVATAR_SELF_ID to actual sessionUUID. + QUuid actualParentID = getParentID(); + if (actualParentID == AVATAR_SELF_ID) { + auto nodeList = DependencyManager::get(); + actualParentID = nodeList->getSessionUUID(); + } + APPEND_ENTITY_PROPERTY(PROP_PARENT_ID, actualParentID); + APPEND_ENTITY_PROPERTY(PROP_PARENT_JOINT_INDEX, getParentJointIndex()); + APPEND_ENTITY_PROPERTY(PROP_QUERY_AA_CUBE, getQueryAACube()); + APPEND_ENTITY_PROPERTY(PROP_CAN_CAST_SHADOW, getCanCastShadow()); + // APPEND_ENTITY_PROPERTY(PROP_VISIBLE_IN_SECONDARY_CAMERA, getIsVisibleInSecondaryCamera()); // not sent over wire + withReadLock([&] { + _grabProperties.appendSubclassData(packetData, params, entityTreeElementExtraEncodeData, requestedProperties, + propertyFlags, propertiesDidntFit, propertyCount, appendState); + }); + + // Physics + APPEND_ENTITY_PROPERTY(PROP_DENSITY, getDensity()); APPEND_ENTITY_PROPERTY(PROP_VELOCITY, getLocalVelocity()); APPEND_ENTITY_PROPERTY(PROP_ANGULAR_VELOCITY, getLocalAngularVelocity()); - APPEND_ENTITY_PROPERTY(PROP_ACCELERATION, getAcceleration()); - - APPEND_ENTITY_PROPERTY(PROP_DIMENSIONS, getUnscaledDimensions()); - APPEND_ENTITY_PROPERTY(PROP_DENSITY, getDensity()); APPEND_ENTITY_PROPERTY(PROP_GRAVITY, getGravity()); + APPEND_ENTITY_PROPERTY(PROP_ACCELERATION, getAcceleration()); APPEND_ENTITY_PROPERTY(PROP_DAMPING, getDamping()); + APPEND_ENTITY_PROPERTY(PROP_ANGULAR_DAMPING, getAngularDamping()); APPEND_ENTITY_PROPERTY(PROP_RESTITUTION, getRestitution()); APPEND_ENTITY_PROPERTY(PROP_FRICTION, getFriction()); APPEND_ENTITY_PROPERTY(PROP_LIFETIME, getLifetime()); - APPEND_ENTITY_PROPERTY(PROP_SCRIPT, getScript()); - APPEND_ENTITY_PROPERTY(PROP_SCRIPT_TIMESTAMP, getScriptTimestamp()); - APPEND_ENTITY_PROPERTY(PROP_SERVER_SCRIPTS, getServerScripts()); - APPEND_ENTITY_PROPERTY(PROP_REGISTRATION_POINT, getRegistrationPoint()); - APPEND_ENTITY_PROPERTY(PROP_ANGULAR_DAMPING, getAngularDamping()); - APPEND_ENTITY_PROPERTY(PROP_VISIBLE, getVisible()); - APPEND_ENTITY_PROPERTY(PROP_CAN_CAST_SHADOW, getCanCastShadow()); APPEND_ENTITY_PROPERTY(PROP_COLLISIONLESS, getCollisionless()); APPEND_ENTITY_PROPERTY(PROP_COLLISION_MASK, getCollisionMask()); APPEND_ENTITY_PROPERTY(PROP_DYNAMIC, getDynamic()); - APPEND_ENTITY_PROPERTY(PROP_LOCKED, getLocked()); - APPEND_ENTITY_PROPERTY(PROP_USER_DATA, getUserData()); + APPEND_ENTITY_PROPERTY(PROP_COLLISION_SOUND_URL, getCollisionSoundURL()); + APPEND_ENTITY_PROPERTY(PROP_ACTION_DATA, getDynamicData()); + + // Cloning + APPEND_ENTITY_PROPERTY(PROP_CLONEABLE, getCloneable()); + APPEND_ENTITY_PROPERTY(PROP_CLONE_LIFETIME, getCloneLifetime()); + APPEND_ENTITY_PROPERTY(PROP_CLONE_LIMIT, getCloneLimit()); + APPEND_ENTITY_PROPERTY(PROP_CLONE_DYNAMIC, getCloneDynamic()); + APPEND_ENTITY_PROPERTY(PROP_CLONE_AVATAR_ENTITY, getCloneAvatarEntity()); + APPEND_ENTITY_PROPERTY(PROP_CLONE_ORIGIN_ID, getCloneOriginID()); + + // Scripts + APPEND_ENTITY_PROPERTY(PROP_SCRIPT, getScript()); + APPEND_ENTITY_PROPERTY(PROP_SCRIPT_TIMESTAMP, getScriptTimestamp()); + APPEND_ENTITY_PROPERTY(PROP_SERVER_SCRIPTS, getServerScripts()); // Certifiable Properties APPEND_ENTITY_PROPERTY(PROP_MARKETPLACE_ID, getMarketplaceID()); @@ -284,36 +321,6 @@ OctreeElement::AppendState EntityItem::appendEntityData(OctreePacketData* packet APPEND_ENTITY_PROPERTY(PROP_CERTIFICATE_ID, getCertificateID()); APPEND_ENTITY_PROPERTY(PROP_STATIC_CERTIFICATE_VERSION, getStaticCertificateVersion()); - APPEND_ENTITY_PROPERTY(PROP_NAME, getName()); - APPEND_ENTITY_PROPERTY(PROP_COLLISION_SOUND_URL, getCollisionSoundURL()); - APPEND_ENTITY_PROPERTY(PROP_HREF, getHref()); - APPEND_ENTITY_PROPERTY(PROP_DESCRIPTION, getDescription()); - APPEND_ENTITY_PROPERTY(PROP_ACTION_DATA, getDynamicData()); - - // convert AVATAR_SELF_ID to actual sessionUUID. - QUuid actualParentID = getParentID(); - if (actualParentID == AVATAR_SELF_ID) { - auto nodeList = DependencyManager::get(); - actualParentID = nodeList->getSessionUUID(); - } - APPEND_ENTITY_PROPERTY(PROP_PARENT_ID, actualParentID); - - APPEND_ENTITY_PROPERTY(PROP_PARENT_JOINT_INDEX, getParentJointIndex()); - APPEND_ENTITY_PROPERTY(PROP_QUERY_AA_CUBE, getQueryAACube()); - APPEND_ENTITY_PROPERTY(PROP_LAST_EDITED_BY, getLastEditedBy()); - - APPEND_ENTITY_PROPERTY(PROP_CLONEABLE, getCloneable()); - APPEND_ENTITY_PROPERTY(PROP_CLONE_LIFETIME, getCloneLifetime()); - APPEND_ENTITY_PROPERTY(PROP_CLONE_LIMIT, getCloneLimit()); - APPEND_ENTITY_PROPERTY(PROP_CLONE_DYNAMIC, getCloneDynamic()); - APPEND_ENTITY_PROPERTY(PROP_CLONE_AVATAR_ENTITY, getCloneAvatarEntity()); - APPEND_ENTITY_PROPERTY(PROP_CLONE_ORIGIN_ID, getCloneOriginID()); - - withReadLock([&] { - _grabProperties.appendSubclassData(packetData, params, entityTreeElementExtraEncodeData, requestedProperties, - propertyFlags, propertiesDidntFit, propertyCount, appendState); - }); - appendSubclassData(packetData, params, entityTreeElementExtraEncodeData, requestedProperties, propertyFlags, @@ -766,6 +773,14 @@ int EntityItem::readEntityDataFromBuffer(const unsigned char* data, int bytesLef return otherOverwrites && simulationChanged && (valueChanged || filterRejection); }; + // Core + // PROP_SIMULATION_OWNER handled above + READ_ENTITY_PROPERTY(PROP_VISIBLE, bool, setVisible); + READ_ENTITY_PROPERTY(PROP_NAME, QString, setName); + READ_ENTITY_PROPERTY(PROP_LOCKED, bool, setLocked); + READ_ENTITY_PROPERTY(PROP_USER_DATA, QString, setUserData); + READ_ENTITY_PROPERTY(PROP_HREF, QString, setHref); + READ_ENTITY_PROPERTY(PROP_DESCRIPTION, QString, setDescription); { // When we own the simulation we don't accept updates to the entity's transform/velocities // we also want to ignore any duplicate packets that have the same "recently updated" values // as a packet we've already recieved. This is because we want multiple edits of the same @@ -778,30 +793,68 @@ int EntityItem::readEntityDataFromBuffer(const unsigned char* data, int bytesLef // Note: duplicate packets are expected and not wrong. They may be sent for any number of // reasons and the contract is that the client handles them in an idempotent manner. - auto customUpdatePositionFromNetwork = [this, shouldUpdate, lastEdited](glm::vec3 value){ + auto customUpdatePositionFromNetwork = [this, shouldUpdate, lastEdited](glm::vec3 value) { if (shouldUpdate(_lastUpdatedPositionTimestamp, value != _lastUpdatedPositionValue)) { setPosition(value); _lastUpdatedPositionTimestamp = lastEdited; _lastUpdatedPositionValue = value; } }; - - auto customUpdateRotationFromNetwork = [this, shouldUpdate, lastEdited](glm::quat value){ + READ_ENTITY_PROPERTY(PROP_POSITION, glm::vec3, customUpdatePositionFromNetwork); + } + READ_ENTITY_PROPERTY(PROP_DIMENSIONS, glm::vec3, setUnscaledDimensions); + { // See comment above + auto customUpdateRotationFromNetwork = [this, shouldUpdate, lastEdited](glm::quat value) { if (shouldUpdate(_lastUpdatedRotationTimestamp, value != _lastUpdatedRotationValue)) { setRotation(value); _lastUpdatedRotationTimestamp = lastEdited; _lastUpdatedRotationValue = value; } }; + READ_ENTITY_PROPERTY(PROP_ROTATION, glm::quat, customUpdateRotationFromNetwork); + } + READ_ENTITY_PROPERTY(PROP_REGISTRATION_POINT, glm::vec3, setRegistrationPoint); + // READ_ENTITY_PROPERTY(PROP_CREATED, quint64, setCreated); // not sent over wire + READ_ENTITY_PROPERTY(PROP_LAST_EDITED_BY, QUuid, setLastEditedBy); + // READ_ENTITY_PROPERTY(PROP_ENTITY_HOST_TYPE, entity::HostType, setEntityHostType); // not sent over wire + // READ_ENTITY_PROPERTY(PROP_OWNING_AVATAR_ID, QUuuid, setOwningAvatarID); // not sent over wire + { // parentID and parentJointIndex are protected by simulation ownership + bool oldOverwrite = overwriteLocalData; + overwriteLocalData = overwriteLocalData && !weOwnSimulation; + READ_ENTITY_PROPERTY(PROP_PARENT_ID, QUuid, setParentID); + READ_ENTITY_PROPERTY(PROP_PARENT_JOINT_INDEX, quint16, setParentJointIndex); + overwriteLocalData = oldOverwrite; + } + { // See comment above + auto customUpdateQueryAACubeFromNetwork = [this, shouldUpdate, lastEdited](AACube value) { + if (shouldUpdate(_lastUpdatedQueryAACubeTimestamp, value != _lastUpdatedQueryAACubeValue)) { + setQueryAACube(value); + _lastUpdatedQueryAACubeTimestamp = lastEdited; + _lastUpdatedQueryAACubeValue = value; + } + }; + READ_ENTITY_PROPERTY(PROP_QUERY_AA_CUBE, AACube, customUpdateQueryAACubeFromNetwork); + } + READ_ENTITY_PROPERTY(PROP_CAN_CAST_SHADOW, bool, setCanCastShadow); + // READ_ENTITY_PROPERTY(PROP_VISIBLE_IN_SECONDARY_CAMERA, bool, setIsVisibleInSecondaryCamera); // not sent over wire + withWriteLock([&] { + int bytesFromGrab = _grabProperties.readEntitySubclassDataFromBuffer(dataAt, (bytesLeftToRead - bytesRead), args, + propertyFlags, overwriteLocalData, + somethingChanged); + bytesRead += bytesFromGrab; + dataAt += bytesFromGrab; + }); - auto customUpdateVelocityFromNetwork = [this, shouldUpdate, lastEdited](glm::vec3 value){ - if (shouldUpdate(_lastUpdatedVelocityTimestamp, value != _lastUpdatedVelocityValue)) { + READ_ENTITY_PROPERTY(PROP_DENSITY, float, setDensity); + { + auto customUpdateVelocityFromNetwork = [this, shouldUpdate, lastEdited](glm::vec3 value) { + if (shouldUpdate(_lastUpdatedVelocityTimestamp, value != _lastUpdatedVelocityValue)) { setVelocity(value); _lastUpdatedVelocityTimestamp = lastEdited; _lastUpdatedVelocityValue = value; } }; - + READ_ENTITY_PROPERTY(PROP_VELOCITY, glm::vec3, customUpdateVelocityFromNetwork); auto customUpdateAngularVelocityFromNetwork = [this, shouldUpdate, lastEdited](glm::vec3 value){ if (shouldUpdate(_lastUpdatedAngularVelocityTimestamp, value != _lastUpdatedAngularVelocityValue)) { setAngularVelocity(value); @@ -809,7 +862,8 @@ int EntityItem::readEntityDataFromBuffer(const unsigned char* data, int bytesLef _lastUpdatedAngularVelocityValue = value; } }; - + READ_ENTITY_PROPERTY(PROP_ANGULAR_VELOCITY, glm::vec3, customUpdateAngularVelocityFromNetwork); + READ_ENTITY_PROPERTY(PROP_GRAVITY, glm::vec3, setGravity); auto customSetAcceleration = [this, shouldUpdate, lastEdited](glm::vec3 value){ if (shouldUpdate(_lastUpdatedAccelerationTimestamp, value != _lastUpdatedAccelerationValue)) { setAcceleration(value); @@ -817,48 +871,40 @@ int EntityItem::readEntityDataFromBuffer(const unsigned char* data, int bytesLef _lastUpdatedAccelerationValue = value; } }; - - READ_ENTITY_PROPERTY(PROP_POSITION, glm::vec3, customUpdatePositionFromNetwork); - READ_ENTITY_PROPERTY(PROP_ROTATION, glm::quat, customUpdateRotationFromNetwork); - READ_ENTITY_PROPERTY(PROP_VELOCITY, glm::vec3, customUpdateVelocityFromNetwork); - READ_ENTITY_PROPERTY(PROP_ANGULAR_VELOCITY, glm::vec3, customUpdateAngularVelocityFromNetwork); READ_ENTITY_PROPERTY(PROP_ACCELERATION, glm::vec3, customSetAcceleration); } - - READ_ENTITY_PROPERTY(PROP_DIMENSIONS, glm::vec3, setUnscaledDimensions); - READ_ENTITY_PROPERTY(PROP_DENSITY, float, setDensity); - READ_ENTITY_PROPERTY(PROP_GRAVITY, glm::vec3, setGravity); - READ_ENTITY_PROPERTY(PROP_DAMPING, float, setDamping); + READ_ENTITY_PROPERTY(PROP_ANGULAR_DAMPING, float, setAngularDamping); READ_ENTITY_PROPERTY(PROP_RESTITUTION, float, setRestitution); READ_ENTITY_PROPERTY(PROP_FRICTION, float, setFriction); READ_ENTITY_PROPERTY(PROP_LIFETIME, float, setLifetime); - READ_ENTITY_PROPERTY(PROP_SCRIPT, QString, setScript); - READ_ENTITY_PROPERTY(PROP_SCRIPT_TIMESTAMP, quint64, setScriptTimestamp); - - { - // We use this scope to work around an issue stopping server script changes - // from being received by an entity script server running a script that continously updates an entity. - - // Basically, we'll allow recent changes to the server scripts even if there are local changes to other properties - // that have been made more recently. - - bool overwriteLocalData = !ignoreServerPacket || (lastEditedFromBufferAdjusted > _serverScriptsChangedTimestamp); - - READ_ENTITY_PROPERTY(PROP_SERVER_SCRIPTS, QString, setServerScripts); - } - - READ_ENTITY_PROPERTY(PROP_REGISTRATION_POINT, glm::vec3, setRegistrationPoint); - - READ_ENTITY_PROPERTY(PROP_ANGULAR_DAMPING, float, setAngularDamping); - READ_ENTITY_PROPERTY(PROP_VISIBLE, bool, setVisible); - READ_ENTITY_PROPERTY(PROP_CAN_CAST_SHADOW, bool, setCanCastShadow); READ_ENTITY_PROPERTY(PROP_COLLISIONLESS, bool, setCollisionless); READ_ENTITY_PROPERTY(PROP_COLLISION_MASK, uint16_t, setCollisionMask); READ_ENTITY_PROPERTY(PROP_DYNAMIC, bool, setDynamic); - READ_ENTITY_PROPERTY(PROP_LOCKED, bool, setLocked); - READ_ENTITY_PROPERTY(PROP_USER_DATA, QString, setUserData); + READ_ENTITY_PROPERTY(PROP_COLLISION_SOUND_URL, QString, setCollisionSoundURL); + READ_ENTITY_PROPERTY(PROP_ACTION_DATA, QByteArray, setDynamicData); + // Cloning + READ_ENTITY_PROPERTY(PROP_CLONEABLE, bool, setCloneable); + READ_ENTITY_PROPERTY(PROP_CLONE_LIFETIME, float, setCloneLifetime); + READ_ENTITY_PROPERTY(PROP_CLONE_LIMIT, float, setCloneLimit); + READ_ENTITY_PROPERTY(PROP_CLONE_DYNAMIC, bool, setCloneDynamic); + READ_ENTITY_PROPERTY(PROP_CLONE_AVATAR_ENTITY, bool, setCloneAvatarEntity); + READ_ENTITY_PROPERTY(PROP_CLONE_ORIGIN_ID, QUuid, setCloneOriginID); + + // Scripts + READ_ENTITY_PROPERTY(PROP_SCRIPT, QString, setScript); + READ_ENTITY_PROPERTY(PROP_SCRIPT_TIMESTAMP, quint64, setScriptTimestamp); + { + // We use this scope to work around an issue stopping server script changes + // from being received by an entity script server running a script that continously updates an entity. + // Basically, we'll allow recent changes to the server scripts even if there are local changes to other properties + // that have been made more recently. + bool overwriteLocalData = !ignoreServerPacket || (lastEditedFromBufferAdjusted > _serverScriptsChangedTimestamp); + READ_ENTITY_PROPERTY(PROP_SERVER_SCRIPTS, QString, setServerScripts); + } + + // Certifiable props READ_ENTITY_PROPERTY(PROP_MARKETPLACE_ID, QString, setMarketplaceID); READ_ENTITY_PROPERTY(PROP_ITEM_NAME, QString, setItemName); READ_ENTITY_PROPERTY(PROP_ITEM_DESCRIPTION, QString, setItemDescription); @@ -871,49 +917,6 @@ int EntityItem::readEntityDataFromBuffer(const unsigned char* data, int bytesLef READ_ENTITY_PROPERTY(PROP_CERTIFICATE_ID, QString, setCertificateID); READ_ENTITY_PROPERTY(PROP_STATIC_CERTIFICATE_VERSION, quint32, setStaticCertificateVersion); - READ_ENTITY_PROPERTY(PROP_NAME, QString, setName); - READ_ENTITY_PROPERTY(PROP_COLLISION_SOUND_URL, QString, setCollisionSoundURL); - READ_ENTITY_PROPERTY(PROP_HREF, QString, setHref); - READ_ENTITY_PROPERTY(PROP_DESCRIPTION, QString, setDescription); - READ_ENTITY_PROPERTY(PROP_ACTION_DATA, QByteArray, setDynamicData); - - { // parentID and parentJointIndex are also protected by simulation ownership - bool oldOverwrite = overwriteLocalData; - overwriteLocalData = overwriteLocalData && !weOwnSimulation; - READ_ENTITY_PROPERTY(PROP_PARENT_ID, QUuid, setParentID); - READ_ENTITY_PROPERTY(PROP_PARENT_JOINT_INDEX, quint16, setParentJointIndex); - overwriteLocalData = oldOverwrite; - } - - - { - auto customUpdateQueryAACubeFromNetwork = [this, shouldUpdate, lastEdited](AACube value){ - if (shouldUpdate(_lastUpdatedQueryAACubeTimestamp, value != _lastUpdatedQueryAACubeValue)) { - setQueryAACube(value); - _lastUpdatedQueryAACubeTimestamp = lastEdited; - _lastUpdatedQueryAACubeValue = value; - } - }; - READ_ENTITY_PROPERTY(PROP_QUERY_AA_CUBE, AACube, customUpdateQueryAACubeFromNetwork); - } - - READ_ENTITY_PROPERTY(PROP_LAST_EDITED_BY, QUuid, setLastEditedBy); - - READ_ENTITY_PROPERTY(PROP_CLONEABLE, bool, setCloneable); - READ_ENTITY_PROPERTY(PROP_CLONE_LIFETIME, float, setCloneLifetime); - READ_ENTITY_PROPERTY(PROP_CLONE_LIMIT, float, setCloneLimit); - READ_ENTITY_PROPERTY(PROP_CLONE_DYNAMIC, bool, setCloneDynamic); - READ_ENTITY_PROPERTY(PROP_CLONE_AVATAR_ENTITY, bool, setCloneAvatarEntity); - READ_ENTITY_PROPERTY(PROP_CLONE_ORIGIN_ID, QUuid, setCloneOriginID); - - withWriteLock([&] { - int bytesFromGrab = _grabProperties.readEntitySubclassDataFromBuffer(dataAt, (bytesLeftToRead - bytesRead), args, - propertyFlags, overwriteLocalData, - somethingChanged); - bytesRead += bytesFromGrab; - dataAt += bytesFromGrab; - }); - bytesRead += readEntitySubclassDataFromBuffer(dataAt, (bytesLeftToRead - bytesRead), args, propertyFlags, overwriteLocalData, somethingChanged); @@ -1282,33 +1285,60 @@ EntityItemProperties EntityItem::getProperties(const EntityPropertyFlags& desire properties._type = getType(); + // Core COPY_ENTITY_PROPERTY_TO_PROPERTIES(simulationOwner, getSimulationOwner); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(visible, getVisible); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(name, getName); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(locked, getLocked); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(userData, getUserData); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(href, getHref); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(description, getDescription); COPY_ENTITY_PROPERTY_TO_PROPERTIES(position, getLocalPosition); COPY_ENTITY_PROPERTY_TO_PROPERTIES(dimensions, getUnscaledDimensions); COPY_ENTITY_PROPERTY_TO_PROPERTIES(rotation, getLocalOrientation); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(registrationPoint, getRegistrationPoint); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(created, getCreated); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(lastEditedBy, getLastEditedBy); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(entityHostType, getEntityHostType); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(owningAvatarID, getOwningAvatarID); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(parentID, getParentID); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(parentJointIndex, getParentJointIndex); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(queryAACube, getQueryAACube); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(canCastShadow, getCanCastShadow); + // COPY_ENTITY_PROPERTY_TO_PROPERTIES(isVisibleInSecondaryCamera, getIsVisibleInSecondaryCamera); // not sent over wire + withReadLock([&] { + _grabProperties.getProperties(properties); + }); + + // Physics COPY_ENTITY_PROPERTY_TO_PROPERTIES(density, getDensity); COPY_ENTITY_PROPERTY_TO_PROPERTIES(velocity, getLocalVelocity); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(angularVelocity, getLocalAngularVelocity); COPY_ENTITY_PROPERTY_TO_PROPERTIES(gravity, getGravity); COPY_ENTITY_PROPERTY_TO_PROPERTIES(acceleration, getAcceleration); COPY_ENTITY_PROPERTY_TO_PROPERTIES(damping, getDamping); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(angularDamping, getAngularDamping); COPY_ENTITY_PROPERTY_TO_PROPERTIES(restitution, getRestitution); COPY_ENTITY_PROPERTY_TO_PROPERTIES(friction, getFriction); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(created, getCreated); COPY_ENTITY_PROPERTY_TO_PROPERTIES(lifetime, getLifetime); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(script, getScript); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(scriptTimestamp, getScriptTimestamp); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(serverScripts, getServerScripts); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(collisionSoundURL, getCollisionSoundURL); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(registrationPoint, getRegistrationPoint); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(angularVelocity, getLocalAngularVelocity); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(angularDamping, getAngularDamping); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(visible, getVisible); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(canCastShadow, getCanCastShadow); COPY_ENTITY_PROPERTY_TO_PROPERTIES(collisionless, getCollisionless); COPY_ENTITY_PROPERTY_TO_PROPERTIES(collisionMask, getCollisionMask); COPY_ENTITY_PROPERTY_TO_PROPERTIES(dynamic, getDynamic); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(locked, getLocked); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(userData, getUserData); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(collisionSoundURL, getCollisionSoundURL); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(actionData, getDynamicData); + + // Cloning + COPY_ENTITY_PROPERTY_TO_PROPERTIES(cloneable, getCloneable); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(cloneLifetime, getCloneLifetime); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(cloneLimit, getCloneLimit); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(cloneDynamic, getCloneDynamic); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(cloneAvatarEntity, getCloneAvatarEntity); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(cloneOriginID, getCloneOriginID); + + // Scripts + COPY_ENTITY_PROPERTY_TO_PROPERTIES(script, getScript); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(scriptTimestamp, getScriptTimestamp); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(serverScripts, getServerScripts); // Certifiable Properties COPY_ENTITY_PROPERTY_TO_PROPERTIES(itemName, getItemName); @@ -1323,31 +1353,13 @@ EntityItemProperties EntityItem::getProperties(const EntityPropertyFlags& desire COPY_ENTITY_PROPERTY_TO_PROPERTIES(certificateID, getCertificateID); COPY_ENTITY_PROPERTY_TO_PROPERTIES(staticCertificateVersion, getStaticCertificateVersion); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(name, getName); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(href, getHref); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(description, getDescription); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(actionData, getDynamicData); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(parentID, getParentID); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(parentJointIndex, getParentJointIndex); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(queryAACube, getQueryAACube); + // Script local data COPY_ENTITY_PROPERTY_TO_PROPERTIES(localPosition, getLocalPosition); COPY_ENTITY_PROPERTY_TO_PROPERTIES(localRotation, getLocalOrientation); - - COPY_ENTITY_PROPERTY_TO_PROPERTIES(entityHostType, getEntityHostType); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(owningAvatarID, getOwningAvatarID); - - COPY_ENTITY_PROPERTY_TO_PROPERTIES(lastEditedBy, getLastEditedBy); - - COPY_ENTITY_PROPERTY_TO_PROPERTIES(cloneable, getCloneable); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(cloneLifetime, getCloneLifetime); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(cloneLimit, getCloneLimit); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(cloneDynamic, getCloneDynamic); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(cloneAvatarEntity, getCloneAvatarEntity); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(cloneOriginID, getCloneOriginID); - - withReadLock([&] { - _grabProperties.getProperties(properties); - }); + // FIXME: are these needed? + //COPY_ENTITY_PROPERTY_TO_PROPERTIES(localVelocity, getLocalVelocity); + //COPY_ENTITY_PROPERTY_TO_PROPERTIES(localAngularVelocity, getLocalAngularVelocity); + //COPY_ENTITY_PROPERTY_TO_PROPERTIES(localDimensions, getLocalDimensions); properties._defaultSettings = false; @@ -1417,41 +1429,61 @@ bool EntityItem::stillWaitingToTakeOwnership(uint64_t timestamp) const { bool EntityItem::setProperties(const EntityItemProperties& properties) { bool somethingChanged = false; - // these affect transform and velocity properties + // Core SET_ENTITY_PROPERTY_FROM_PROPERTIES(simulationOwner, setSimulationOwner); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(visible, setVisible); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(name, setName); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(locked, setLocked); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(userData, setUserData); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(href, setHref); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(description, setDescription); SET_ENTITY_PROPERTY_FROM_PROPERTIES(position, setPosition); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(dimensions, setUnscaledDimensions); SET_ENTITY_PROPERTY_FROM_PROPERTIES(rotation, setRotation); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(registrationPoint, setRegistrationPoint); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(created, setCreated); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(lastEditedBy, setLastEditedBy); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(entityHostType, setEntityHostType); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(owningAvatarID, setOwningAvatarID); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(parentID, setParentID); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(parentJointIndex, setParentJointIndex); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(queryAACube, setQueryAACube); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(canCastShadow, setCanCastShadow); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(isVisibleInSecondaryCamera, setIsVisibleInSecondaryCamera); + withWriteLock([&] { + bool grabPropertiesChanged = _grabProperties.setProperties(properties); + somethingChanged |= grabPropertiesChanged; + }); + + // Physics + SET_ENTITY_PROPERTY_FROM_PROPERTIES(density, setDensity); SET_ENTITY_PROPERTY_FROM_PROPERTIES(velocity, setVelocity); SET_ENTITY_PROPERTY_FROM_PROPERTIES(angularVelocity, setAngularVelocity); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(acceleration, setAcceleration); - - // these (along with "position" above) affect tree structure - SET_ENTITY_PROPERTY_FROM_PROPERTIES(dimensions, setUnscaledDimensions); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(registrationPoint, setRegistrationPoint); - - // these (along with all properties above) affect the simulation - SET_ENTITY_PROPERTY_FROM_PROPERTIES(density, setDensity); SET_ENTITY_PROPERTY_FROM_PROPERTIES(gravity, setGravity); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(acceleration, setAcceleration); SET_ENTITY_PROPERTY_FROM_PROPERTIES(damping, setDamping); SET_ENTITY_PROPERTY_FROM_PROPERTIES(angularDamping, setAngularDamping); SET_ENTITY_PROPERTY_FROM_PROPERTIES(restitution, setRestitution); SET_ENTITY_PROPERTY_FROM_PROPERTIES(friction, setFriction); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(lifetime, setLifetime); SET_ENTITY_PROPERTY_FROM_PROPERTIES(collisionless, setCollisionless); SET_ENTITY_PROPERTY_FROM_PROPERTIES(collisionMask, setCollisionMask); SET_ENTITY_PROPERTY_FROM_PROPERTIES(dynamic, setDynamic); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(created, setCreated); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(lifetime, setLifetime); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(locked, setLocked); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(collisionSoundURL, setCollisionSoundURL); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(actionData, setDynamicData); - // non-simulation properties below + // Cloning + SET_ENTITY_PROPERTY_FROM_PROPERTIES(cloneable, setCloneable); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(cloneLifetime, setCloneLifetime); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(cloneLimit, setCloneLimit); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(cloneDynamic, setCloneDynamic); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(cloneAvatarEntity, setCloneAvatarEntity); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(cloneOriginID, setCloneOriginID); + + // Scripts SET_ENTITY_PROPERTY_FROM_PROPERTIES(script, setScript); SET_ENTITY_PROPERTY_FROM_PROPERTIES(scriptTimestamp, setScriptTimestamp); SET_ENTITY_PROPERTY_FROM_PROPERTIES(serverScripts, setServerScripts); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(collisionSoundURL, setCollisionSoundURL); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(visible, setVisible); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(canCastShadow, setCanCastShadow); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(userData, setUserData); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(isVisibleInSecondaryCamera, setIsVisibleInSecondaryCamera); // Certifiable Properties SET_ENTITY_PROPERTY_FROM_PROPERTIES(itemName, setItemName); @@ -1466,31 +1498,6 @@ bool EntityItem::setProperties(const EntityItemProperties& properties) { SET_ENTITY_PROPERTY_FROM_PROPERTIES(certificateID, setCertificateID); SET_ENTITY_PROPERTY_FROM_PROPERTIES(staticCertificateVersion, setStaticCertificateVersion); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(name, setName); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(href, setHref); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(description, setDescription); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(actionData, setDynamicData); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(parentID, setParentID); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(parentJointIndex, setParentJointIndex); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(queryAACube, setQueryAACube); - - SET_ENTITY_PROPERTY_FROM_PROPERTIES(entityHostType, setEntityHostType); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(owningAvatarID, setOwningAvatarID); - - SET_ENTITY_PROPERTY_FROM_PROPERTIES(lastEditedBy, setLastEditedBy); - - SET_ENTITY_PROPERTY_FROM_PROPERTIES(cloneable, setCloneable); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(cloneLifetime, setCloneLifetime); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(cloneLimit, setCloneLimit); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(cloneDynamic, setCloneDynamic); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(cloneAvatarEntity, setCloneAvatarEntity); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(cloneOriginID, setCloneOriginID); - - withWriteLock([&] { - bool grabPropertiesChanged = _grabProperties.setProperties(properties); - somethingChanged |= grabPropertiesChanged; - }); - if (updateQueryAACube()) { somethingChanged = true; } diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 2a7fe1ef77..17dc0cdaba 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -347,6 +347,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { EntityPropertyFlags changedProperties; // Core + CHECK_PROPERTY_CHANGE(PROP_SIMULATION_OWNER, simulationOwner); CHECK_PROPERTY_CHANGE(PROP_VISIBLE, visible); CHECK_PROPERTY_CHANGE(PROP_NAME, name); CHECK_PROPERTY_CHANGE(PROP_LOCKED, locked); @@ -382,7 +383,6 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { CHECK_PROPERTY_CHANGE(PROP_COLLISIONLESS, collisionless); CHECK_PROPERTY_CHANGE(PROP_COLLISION_MASK, collisionMask); CHECK_PROPERTY_CHANGE(PROP_DYNAMIC, dynamic); - CHECK_PROPERTY_CHANGE(PROP_SIMULATION_OWNER, simulationOwner); CHECK_PROPERTY_CHANGE(PROP_COLLISION_SOUND_URL, collisionSoundURL); CHECK_PROPERTY_CHANGE(PROP_ACTION_DATA, actionData); @@ -399,6 +399,26 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { CHECK_PROPERTY_CHANGE(PROP_SCRIPT_TIMESTAMP, scriptTimestamp); CHECK_PROPERTY_CHANGE(PROP_SERVER_SCRIPTS, serverScripts); + // Certifiable Properties + CHECK_PROPERTY_CHANGE(PROP_ITEM_NAME, itemName); + CHECK_PROPERTY_CHANGE(PROP_ITEM_DESCRIPTION, itemDescription); + CHECK_PROPERTY_CHANGE(PROP_ITEM_CATEGORIES, itemCategories); + CHECK_PROPERTY_CHANGE(PROP_ITEM_ARTIST, itemArtist); + CHECK_PROPERTY_CHANGE(PROP_ITEM_LICENSE, itemLicense); + CHECK_PROPERTY_CHANGE(PROP_LIMITED_RUN, limitedRun); + CHECK_PROPERTY_CHANGE(PROP_MARKETPLACE_ID, marketplaceID); + CHECK_PROPERTY_CHANGE(PROP_EDITION_NUMBER, editionNumber); + CHECK_PROPERTY_CHANGE(PROP_ENTITY_INSTANCE_NUMBER, entityInstanceNumber); + CHECK_PROPERTY_CHANGE(PROP_CERTIFICATE_ID, certificateID); + CHECK_PROPERTY_CHANGE(PROP_STATIC_CERTIFICATE_VERSION, staticCertificateVersion); + + // Location data for scripts + CHECK_PROPERTY_CHANGE(PROP_LOCAL_POSITION, localPosition); + CHECK_PROPERTY_CHANGE(PROP_LOCAL_ROTATION, localRotation); + CHECK_PROPERTY_CHANGE(PROP_LOCAL_VELOCITY, localVelocity); + CHECK_PROPERTY_CHANGE(PROP_LOCAL_ANGULAR_VELOCITY, localAngularVelocity); + CHECK_PROPERTY_CHANGE(PROP_LOCAL_DIMENSIONS, localDimensions); + // Common CHECK_PROPERTY_CHANGE(PROP_SHAPE_TYPE, shapeType); CHECK_PROPERTY_CHANGE(PROP_COMPOUND_SHAPE_URL, compoundShapeURL); @@ -416,12 +436,12 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { CHECK_PROPERTY_CHANGE(PROP_EMIT_ORIENTATION, emitOrientation); CHECK_PROPERTY_CHANGE(PROP_EMIT_DIMENSIONS, emitDimensions); CHECK_PROPERTY_CHANGE(PROP_EMIT_RADIUS_START, emitRadiusStart); - CHECK_PROPERTY_CHANGE(PROP_EMIT_ACCELERATION, emitAcceleration); - CHECK_PROPERTY_CHANGE(PROP_ACCELERATION_SPREAD, accelerationSpread); CHECK_PROPERTY_CHANGE(PROP_POLAR_START, polarStart); CHECK_PROPERTY_CHANGE(PROP_POLAR_FINISH, polarFinish); CHECK_PROPERTY_CHANGE(PROP_AZIMUTH_START, azimuthStart); CHECK_PROPERTY_CHANGE(PROP_AZIMUTH_FINISH, azimuthFinish); + CHECK_PROPERTY_CHANGE(PROP_EMIT_ACCELERATION, emitAcceleration); + CHECK_PROPERTY_CHANGE(PROP_ACCELERATION_SPREAD, accelerationSpread); CHECK_PROPERTY_CHANGE(PROP_PARTICLE_RADIUS, particleRadius); CHECK_PROPERTY_CHANGE(PROP_RADIUS_SPREAD, radiusSpread); CHECK_PROPERTY_CHANGE(PROP_RADIUS_START, radiusStart); @@ -535,26 +555,6 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { CHECK_PROPERTY_CHANGE(PROP_MAJOR_GRID_EVERY, majorGridEvery); CHECK_PROPERTY_CHANGE(PROP_MINOR_GRID_EVERY, minorGridEvery); - // Certifiable Properties - CHECK_PROPERTY_CHANGE(PROP_ITEM_NAME, itemName); - CHECK_PROPERTY_CHANGE(PROP_ITEM_DESCRIPTION, itemDescription); - CHECK_PROPERTY_CHANGE(PROP_ITEM_CATEGORIES, itemCategories); - CHECK_PROPERTY_CHANGE(PROP_ITEM_ARTIST, itemArtist); - CHECK_PROPERTY_CHANGE(PROP_ITEM_LICENSE, itemLicense); - CHECK_PROPERTY_CHANGE(PROP_LIMITED_RUN, limitedRun); - CHECK_PROPERTY_CHANGE(PROP_MARKETPLACE_ID, marketplaceID); - CHECK_PROPERTY_CHANGE(PROP_EDITION_NUMBER, editionNumber); - CHECK_PROPERTY_CHANGE(PROP_ENTITY_INSTANCE_NUMBER, entityInstanceNumber); - CHECK_PROPERTY_CHANGE(PROP_CERTIFICATE_ID, certificateID); - CHECK_PROPERTY_CHANGE(PROP_STATIC_CERTIFICATE_VERSION, staticCertificateVersion); - - // Location data for scripts - CHECK_PROPERTY_CHANGE(PROP_LOCAL_POSITION, localPosition); - CHECK_PROPERTY_CHANGE(PROP_LOCAL_ROTATION, localRotation); - CHECK_PROPERTY_CHANGE(PROP_LOCAL_VELOCITY, localVelocity); - CHECK_PROPERTY_CHANGE(PROP_LOCAL_ANGULAR_VELOCITY, localAngularVelocity); - CHECK_PROPERTY_CHANGE(PROP_LOCAL_DIMENSIONS, localDimensions); - return changedProperties; } @@ -1018,9 +1018,9 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * relative to the entity's orientation. Must be specified in order for the entity to render. * @property {number[]} strokeWidths=[] - The widths, in m, of the line at the linePoints. Must be specified in * order for the entity to render. - * @property {Vec3[]} strokeColors=[] - Currently not used. - * @property {Color} color=255,255,255 - The base color of the line, which is multiplied with the color of the texture for - * rendering. + * @property {Vec3[]} strokeColors=[] - The base colors of each point, which are multiplied with the color of the texture, going from 0-1. + * If strokeColors.length < the number of points, color is used for the remaining points. + * @property {Color} color=255,255,255 - Used as the color for each point if strokeColors is too short. * @property {string} textures="" - The URL of a JPG or PNG texture to use for the lines. If you want transparency, use PNG * format. * @property {boolean} isUVModeStretch=true - If true, the texture is stretched to fill the whole line, otherwise @@ -1365,6 +1365,7 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool } // Core properties + //COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SIMULATION_OWNER, simulationOwner); // not exposed yet COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_VISIBLE, visible); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_NAME, name); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCKED, locked); @@ -1419,9 +1420,33 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SCRIPT_TIMESTAMP, scriptTimestamp); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SERVER_SCRIPTS, serverScripts); + // Certifiable Properties + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_NAME, itemName); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_DESCRIPTION, itemDescription); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_CATEGORIES, itemCategories); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_ARTIST, itemArtist); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_LICENSE, itemLicense); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LIMITED_RUN, limitedRun); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_MARKETPLACE_ID, marketplaceID); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_EDITION_NUMBER, editionNumber); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ENTITY_INSTANCE_NUMBER, entityInstanceNumber); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CERTIFICATE_ID, certificateID); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_STATIC_CERTIFICATE_VERSION, staticCertificateVersion); + + // Local props for scripts + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_POSITION, localPosition); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_ROTATION, localRotation); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_VELOCITY, localVelocity); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_ANGULAR_VELOCITY, localAngularVelocity); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_DIMENSIONS, localDimensions); + // Particles only if (_type == EntityTypes::ParticleEffect) { COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_SHAPE_TYPE, shapeType, getShapeTypeAsString()); + COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ALPHA, alpha); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_TEXTURES, textures); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_MAX_PARTICLES, maxParticles); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LIFESPAN, lifespan); @@ -1446,17 +1471,14 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_RADIUS_START, radiusStart); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_RADIUS_FINISH, radiusFinish); - COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR_SPREAD, colorSpread, u8vec3Color); COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR_START, colorStart, vec3Color); COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR_FINISH, colorFinish, vec3Color); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ALPHA, alpha); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ALPHA_SPREAD, alphaSpread); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ALPHA_START, alphaStart); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ALPHA_FINISH, alphaFinish); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_TEXTURES, textures); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_EMITTER_SHOULD_TRAIL, emitterShouldTrail); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_PARTICLE_SPIN, particleSpin); @@ -1468,11 +1490,12 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool // Models only if (_type == EntityTypes::Model) { - COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_MODEL_URL, modelURL); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_COMPOUND_SHAPE_URL, compoundShapeURL); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_TEXTURES, textures); COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_SHAPE_TYPE, shapeType, getShapeTypeAsString()); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_COMPOUND_SHAPE_URL, compoundShapeURL); + COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_TEXTURES, textures); + + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_MODEL_URL, modelURL); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_JOINT_ROTATIONS_SET, jointRotationsSet); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_JOINT_ROTATIONS, jointRotations); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_JOINT_TRANSLATIONS_SET, jointTranslationsSet); @@ -1492,15 +1515,15 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool } if (_type == EntityTypes::Box || _type == EntityTypes::Sphere || _type == EntityTypes::Shape) { - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SHAPE, shape); COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ALPHA, alpha); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SHAPE, shape); } // Lights only if (_type == EntityTypes::Light) { - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_IS_SPOTLIGHT, isSpotlight); COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_IS_SPOTLIGHT, isSpotlight); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_INTENSITY, intensity); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_EXPONENT, exponent); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CUTOFF, cutoff); @@ -1524,6 +1547,9 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool // Zones only if (_type == EntityTypes::Zone) { + COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_SHAPE_TYPE, shapeType, getShapeTypeAsString()); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_COMPOUND_SHAPE_URL, compoundShapeURL); + if (!psuedoPropertyFlagsButDesiredEmpty) { _keyLight.copyToScriptValue(_desiredProperties, properties, engine, skipDefaults, defaultEntityProperties); _ambientLight.copyToScriptValue(_desiredProperties, properties, engine, skipDefaults, defaultEntityProperties); @@ -1531,8 +1557,6 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool _haze.copyToScriptValue(_desiredProperties, properties, engine, skipDefaults, defaultEntityProperties); _bloom.copyToScriptValue(_desiredProperties, properties, engine, skipDefaults, defaultEntityProperties); } - COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_SHAPE_TYPE, shapeType, getShapeTypeAsString()); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_COMPOUND_SHAPE_URL, compoundShapeURL); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_FLYING_ALLOWED, flyingAllowed); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_GHOSTING_ALLOWED, ghostingAllowed); @@ -1572,11 +1596,12 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool // Polylines if (_type == EntityTypes::PolyLine) { COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_TEXTURES, textures); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LINE_POINTS, linePoints); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_STROKE_WIDTHS, strokeWidths); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_STROKE_NORMALS, normals); COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_STROKE_COLORS, strokeColors, qVectorVec3Color); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_TEXTURES, textures); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_IS_UV_MODE_STRETCH, isUVModeStretch); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LINE_GLOW, glow); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LINE_FACE_CAMERA, faceCamera); @@ -1597,15 +1622,15 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool // Image only if (_type == EntityTypes::Image) { + COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ALPHA, alpha); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_IMAGE_URL, imageURL); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_EMISSIVE, emissive); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_KEEP_ASPECT_RATIO, keepAspectRatio); COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_BILLBOARD_MODE, billboardMode, getBillboardModeAsString()); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SUB_IMAGE, subImage); - COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ALPHA, alpha); - // Handle conversions to old 'textures' property from "imageURL" if (((!psuedoPropertyFlagsButDesiredEmpty && _desiredProperties.isEmpty()) || _desiredProperties.getHasProperty(PROP_IMAGE_URL)) && (!skipDefaults || defaultEntityProperties._imageURL != _imageURL)) { @@ -1625,26 +1650,6 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_MINOR_GRID_EVERY, minorGridEvery); } - // Certifiable Properties - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_NAME, itemName); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_DESCRIPTION, itemDescription); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_CATEGORIES, itemCategories); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_ARTIST, itemArtist); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_LICENSE, itemLicense); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LIMITED_RUN, limitedRun); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_MARKETPLACE_ID, marketplaceID); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_EDITION_NUMBER, editionNumber); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ENTITY_INSTANCE_NUMBER, entityInstanceNumber); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CERTIFICATE_ID, certificateID); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_STATIC_CERTIFICATE_VERSION, staticCertificateVersion); - - // Local props for scripts - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_POSITION, localPosition); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_ROTATION, localRotation); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_VELOCITY, localVelocity); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_ANGULAR_VELOCITY, localAngularVelocity); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_DIMENSIONS, localDimensions); - /**jsdoc * The axis-aligned bounding box of an entity. * @typedef {object} Entities.BoundingBox @@ -1739,6 +1744,7 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool } // Core + // simluationOwner above COPY_PROPERTY_FROM_QSCRIPTVALUE(visible, bool, setVisible); COPY_PROPERTY_FROM_QSCRIPTVALUE(name, QString, setName); COPY_PROPERTY_FROM_QSCRIPTVALUE(locked, bool, setLocked); @@ -1777,7 +1783,6 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(collidesWith, CollisionMask); COPY_PROPERTY_FROM_QSCRIPTVALUE_GETTER(collisionsWillMove, bool, setDynamic, getDynamic); // legacy support COPY_PROPERTY_FROM_QSCRIPTVALUE(dynamic, bool, setDynamic); - // simulationOwner is read only COPY_PROPERTY_FROM_QSCRIPTVALUE(collisionSoundURL, QString, setCollisionSoundURL); COPY_PROPERTY_FROM_QSCRIPTVALUE(actionData, QByteArray, setActionData); // TODO: should scripts be able to set this? @@ -1794,6 +1799,26 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool COPY_PROPERTY_FROM_QSCRIPTVALUE(scriptTimestamp, quint64, setScriptTimestamp); COPY_PROPERTY_FROM_QSCRIPTVALUE(serverScripts, QString, setServerScripts); + // Certifiable Properties + COPY_PROPERTY_FROM_QSCRIPTVALUE(itemName, QString, setItemName); + COPY_PROPERTY_FROM_QSCRIPTVALUE(itemDescription, QString, setItemDescription); + COPY_PROPERTY_FROM_QSCRIPTVALUE(itemCategories, QString, setItemCategories); + COPY_PROPERTY_FROM_QSCRIPTVALUE(itemArtist, QString, setItemArtist); + COPY_PROPERTY_FROM_QSCRIPTVALUE(itemLicense, QString, setItemLicense); + COPY_PROPERTY_FROM_QSCRIPTVALUE(limitedRun, quint32, setLimitedRun); + COPY_PROPERTY_FROM_QSCRIPTVALUE(marketplaceID, QString, setMarketplaceID); + COPY_PROPERTY_FROM_QSCRIPTVALUE(editionNumber, quint32, setEditionNumber); + COPY_PROPERTY_FROM_QSCRIPTVALUE(entityInstanceNumber, quint32, setEntityInstanceNumber); + COPY_PROPERTY_FROM_QSCRIPTVALUE(certificateID, QString, setCertificateID); + COPY_PROPERTY_FROM_QSCRIPTVALUE(staticCertificateVersion, quint32, setStaticCertificateVersion); + + // Script location data + COPY_PROPERTY_FROM_QSCRIPTVALUE(localPosition, vec3, setLocalPosition); + COPY_PROPERTY_FROM_QSCRIPTVALUE(localRotation, quat, setLocalRotation); + COPY_PROPERTY_FROM_QSCRIPTVALUE(localVelocity, vec3, setLocalVelocity); + COPY_PROPERTY_FROM_QSCRIPTVALUE(localAngularVelocity, vec3, setLocalAngularVelocity); + COPY_PROPERTY_FROM_QSCRIPTVALUE(localDimensions, vec3, setLocalDimensions); + // Common COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(shapeType, ShapeType); COPY_PROPERTY_FROM_QSCRIPTVALUE(compoundShapeURL, QString, setCompoundShapeURL); @@ -1811,12 +1836,12 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool COPY_PROPERTY_FROM_QSCRIPTVALUE(emitOrientation, quat, setEmitOrientation); COPY_PROPERTY_FROM_QSCRIPTVALUE(emitDimensions, vec3, setEmitDimensions); COPY_PROPERTY_FROM_QSCRIPTVALUE(emitRadiusStart, float, setEmitRadiusStart); - COPY_PROPERTY_FROM_QSCRIPTVALUE(emitAcceleration, vec3, setEmitAcceleration); - COPY_PROPERTY_FROM_QSCRIPTVALUE(accelerationSpread, vec3, setAccelerationSpread); COPY_PROPERTY_FROM_QSCRIPTVALUE(polarStart, float, setPolarStart); COPY_PROPERTY_FROM_QSCRIPTVALUE(polarFinish, float, setPolarFinish); COPY_PROPERTY_FROM_QSCRIPTVALUE(azimuthStart, float, setAzimuthStart); COPY_PROPERTY_FROM_QSCRIPTVALUE(azimuthFinish, float, setAzimuthFinish); + COPY_PROPERTY_FROM_QSCRIPTVALUE(emitAcceleration, vec3, setEmitAcceleration); + COPY_PROPERTY_FROM_QSCRIPTVALUE(accelerationSpread, vec3, setAccelerationSpread); COPY_PROPERTY_FROM_QSCRIPTVALUE(particleRadius, float, setParticleRadius); COPY_PROPERTY_FROM_QSCRIPTVALUE(radiusSpread, float, setRadiusSpread); COPY_PROPERTY_FROM_QSCRIPTVALUE(radiusStart, float, setRadiusStart); @@ -1930,26 +1955,6 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool COPY_PROPERTY_FROM_QSCRIPTVALUE(majorGridEvery, uint32_t, setMajorGridEvery); COPY_PROPERTY_FROM_QSCRIPTVALUE(minorGridEvery, float, setMinorGridEvery); - // Certifiable Properties - COPY_PROPERTY_FROM_QSCRIPTVALUE(itemName, QString, setItemName); - COPY_PROPERTY_FROM_QSCRIPTVALUE(itemDescription, QString, setItemDescription); - COPY_PROPERTY_FROM_QSCRIPTVALUE(itemCategories, QString, setItemCategories); - COPY_PROPERTY_FROM_QSCRIPTVALUE(itemArtist, QString, setItemArtist); - COPY_PROPERTY_FROM_QSCRIPTVALUE(itemLicense, QString, setItemLicense); - COPY_PROPERTY_FROM_QSCRIPTVALUE(limitedRun, quint32, setLimitedRun); - COPY_PROPERTY_FROM_QSCRIPTVALUE(marketplaceID, QString, setMarketplaceID); - COPY_PROPERTY_FROM_QSCRIPTVALUE(editionNumber, quint32, setEditionNumber); - COPY_PROPERTY_FROM_QSCRIPTVALUE(entityInstanceNumber, quint32, setEntityInstanceNumber); - COPY_PROPERTY_FROM_QSCRIPTVALUE(certificateID, QString, setCertificateID); - COPY_PROPERTY_FROM_QSCRIPTVALUE(staticCertificateVersion, quint32, setStaticCertificateVersion); - - // Script location data - COPY_PROPERTY_FROM_QSCRIPTVALUE(localPosition, vec3, setLocalPosition); - COPY_PROPERTY_FROM_QSCRIPTVALUE(localRotation, quat, setLocalRotation); - COPY_PROPERTY_FROM_QSCRIPTVALUE(localVelocity, vec3, setLocalVelocity); - COPY_PROPERTY_FROM_QSCRIPTVALUE(localAngularVelocity, vec3, setLocalAngularVelocity); - COPY_PROPERTY_FROM_QSCRIPTVALUE(localDimensions, vec3, setLocalDimensions); - // Handle conversions from old 'textures' property to "imageURL" { QScriptValue V = object.property("textures"); @@ -1996,6 +2001,7 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool void EntityItemProperties::merge(const EntityItemProperties& other) { // Core + COPY_PROPERTY_IF_CHANGED(simulationOwner); COPY_PROPERTY_IF_CHANGED(visible); COPY_PROPERTY_IF_CHANGED(name); COPY_PROPERTY_IF_CHANGED(locked); @@ -2031,7 +2037,6 @@ void EntityItemProperties::merge(const EntityItemProperties& other) { COPY_PROPERTY_IF_CHANGED(collisionless); COPY_PROPERTY_IF_CHANGED(collisionMask); COPY_PROPERTY_IF_CHANGED(dynamic); - COPY_PROPERTY_IF_CHANGED(simulationOwner); COPY_PROPERTY_IF_CHANGED(collisionSoundURL); COPY_PROPERTY_IF_CHANGED(actionData); @@ -2048,6 +2053,26 @@ void EntityItemProperties::merge(const EntityItemProperties& other) { COPY_PROPERTY_IF_CHANGED(scriptTimestamp); COPY_PROPERTY_IF_CHANGED(serverScripts); + // Certifiable Properties + COPY_PROPERTY_IF_CHANGED(itemName); + COPY_PROPERTY_IF_CHANGED(itemDescription); + COPY_PROPERTY_IF_CHANGED(itemCategories); + COPY_PROPERTY_IF_CHANGED(itemArtist); + COPY_PROPERTY_IF_CHANGED(itemLicense); + COPY_PROPERTY_IF_CHANGED(limitedRun); + COPY_PROPERTY_IF_CHANGED(marketplaceID); + COPY_PROPERTY_IF_CHANGED(editionNumber); + COPY_PROPERTY_IF_CHANGED(entityInstanceNumber); + COPY_PROPERTY_IF_CHANGED(certificateID); + COPY_PROPERTY_IF_CHANGED(staticCertificateVersion); + + // Local props for scripts + COPY_PROPERTY_IF_CHANGED(localPosition); + COPY_PROPERTY_IF_CHANGED(localRotation); + COPY_PROPERTY_IF_CHANGED(localVelocity); + COPY_PROPERTY_IF_CHANGED(localAngularVelocity); + COPY_PROPERTY_IF_CHANGED(localDimensions); + // Common COPY_PROPERTY_IF_CHANGED(shapeType); COPY_PROPERTY_IF_CHANGED(compoundShapeURL); @@ -2065,12 +2090,12 @@ void EntityItemProperties::merge(const EntityItemProperties& other) { COPY_PROPERTY_IF_CHANGED(emitOrientation); COPY_PROPERTY_IF_CHANGED(emitDimensions); COPY_PROPERTY_IF_CHANGED(emitRadiusStart); - COPY_PROPERTY_IF_CHANGED(emitAcceleration); - COPY_PROPERTY_IF_CHANGED(accelerationSpread); COPY_PROPERTY_IF_CHANGED(polarStart); COPY_PROPERTY_IF_CHANGED(polarFinish); COPY_PROPERTY_IF_CHANGED(azimuthStart); COPY_PROPERTY_IF_CHANGED(azimuthFinish); + COPY_PROPERTY_IF_CHANGED(emitAcceleration); + COPY_PROPERTY_IF_CHANGED(accelerationSpread); COPY_PROPERTY_IF_CHANGED(particleRadius); COPY_PROPERTY_IF_CHANGED(radiusSpread); COPY_PROPERTY_IF_CHANGED(radiusStart); @@ -2184,26 +2209,6 @@ void EntityItemProperties::merge(const EntityItemProperties& other) { COPY_PROPERTY_IF_CHANGED(majorGridEvery); COPY_PROPERTY_IF_CHANGED(minorGridEvery); - // Certifiable Properties - COPY_PROPERTY_IF_CHANGED(itemName); - COPY_PROPERTY_IF_CHANGED(itemDescription); - COPY_PROPERTY_IF_CHANGED(itemCategories); - COPY_PROPERTY_IF_CHANGED(itemArtist); - COPY_PROPERTY_IF_CHANGED(itemLicense); - COPY_PROPERTY_IF_CHANGED(limitedRun); - COPY_PROPERTY_IF_CHANGED(marketplaceID); - COPY_PROPERTY_IF_CHANGED(editionNumber); - COPY_PROPERTY_IF_CHANGED(entityInstanceNumber); - COPY_PROPERTY_IF_CHANGED(certificateID); - COPY_PROPERTY_IF_CHANGED(staticCertificateVersion); - - // Local props for scripts - COPY_PROPERTY_IF_CHANGED(localPosition); - COPY_PROPERTY_IF_CHANGED(localRotation); - COPY_PROPERTY_IF_CHANGED(localVelocity); - COPY_PROPERTY_IF_CHANGED(localAngularVelocity); - COPY_PROPERTY_IF_CHANGED(localDimensions); - _lastEdited = usecTimestampNow(); } @@ -2241,6 +2246,7 @@ QScriptValue EntityItemProperties::entityPropertyFlagsToScriptValue(QScriptEngin } static QHash _propertyStringsToEnums; +static QHash _enumsToPropertyStrings; void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue& object, EntityPropertyFlags& flags) { @@ -2248,6 +2254,7 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue std::call_once(initMap, []() { // Core + ADD_PROPERTY_TO_MAP(PROP_SIMULATION_OWNER, SimulationOwner, simulationOwner, SimulationOwner); ADD_PROPERTY_TO_MAP(PROP_VISIBLE, Visible, visible, bool); ADD_PROPERTY_TO_MAP(PROP_NAME, Name, name, QString); ADD_PROPERTY_TO_MAP(PROP_LOCKED, Locked, locked, bool); @@ -2306,7 +2313,6 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue ADD_PROPERTY_TO_MAP(PROP_COLLISION_MASK, unused, collidesWith, unused); ADD_PROPERTY_TO_MAP(PROP_DYNAMIC, unused, collisionsWillMove, unused); // legacy support ADD_PROPERTY_TO_MAP(PROP_DYNAMIC, unused, dynamic, unused); - ADD_PROPERTY_TO_MAP(PROP_SIMULATION_OWNER, SimulationOwner, simulationOwner, SimulationOwner); ADD_PROPERTY_TO_MAP(PROP_COLLISION_SOUND_URL, CollisionSoundURL, collisionSoundURL, QString); ADD_PROPERTY_TO_MAP(PROP_ACTION_DATA, ActionData, actionData, QByteArray); @@ -2323,6 +2329,26 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue ADD_PROPERTY_TO_MAP(PROP_SCRIPT_TIMESTAMP, ScriptTimestamp, scriptTimestamp, quint64); ADD_PROPERTY_TO_MAP(PROP_SERVER_SCRIPTS, ServerScripts, serverScripts, QString); + // Certifiable Properties + ADD_PROPERTY_TO_MAP(PROP_ITEM_NAME, ItemName, itemName, QString); + ADD_PROPERTY_TO_MAP(PROP_ITEM_DESCRIPTION, ItemDescription, itemDescription, QString); + ADD_PROPERTY_TO_MAP(PROP_ITEM_CATEGORIES, ItemCategories, itemCategories, QString); + ADD_PROPERTY_TO_MAP(PROP_ITEM_ARTIST, ItemArtist, itemArtist, QString); + ADD_PROPERTY_TO_MAP(PROP_ITEM_LICENSE, ItemLicense, itemLicense, QString); + ADD_PROPERTY_TO_MAP(PROP_LIMITED_RUN, LimitedRun, limitedRun, quint32); + ADD_PROPERTY_TO_MAP(PROP_MARKETPLACE_ID, MarketplaceID, marketplaceID, QString); + ADD_PROPERTY_TO_MAP(PROP_EDITION_NUMBER, EditionNumber, editionNumber, quint32); + ADD_PROPERTY_TO_MAP(PROP_ENTITY_INSTANCE_NUMBER, EntityInstanceNumber, entityInstanceNumber, quint32); + ADD_PROPERTY_TO_MAP(PROP_CERTIFICATE_ID, CertificateID, certificateID, QString); + ADD_PROPERTY_TO_MAP(PROP_STATIC_CERTIFICATE_VERSION, StaticCertificateVersion, staticCertificateVersion, quint32); + + // Local script props + ADD_PROPERTY_TO_MAP(PROP_LOCAL_POSITION, LocalPosition, localPosition, vec3); + ADD_PROPERTY_TO_MAP(PROP_LOCAL_ROTATION, LocalRotation, localRotation, quat); + ADD_PROPERTY_TO_MAP(PROP_LOCAL_VELOCITY, LocalVelocity, localVelocity, vec3); + ADD_PROPERTY_TO_MAP(PROP_LOCAL_ANGULAR_VELOCITY, LocalAngularVelocity, localAngularVelocity, vec3); + ADD_PROPERTY_TO_MAP(PROP_LOCAL_DIMENSIONS, LocalDimensions, localDimensions, vec3); + // Common ADD_PROPERTY_TO_MAP(PROP_SHAPE_TYPE, ShapeType, shapeType, ShapeType); ADD_PROPERTY_TO_MAP(PROP_COMPOUND_SHAPE_URL, CompoundShapeURL, compoundShapeURL, QString); @@ -2340,12 +2366,12 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue ADD_PROPERTY_TO_MAP(PROP_EMIT_ORIENTATION, EmitOrientation, emitOrientation, quat); ADD_PROPERTY_TO_MAP(PROP_EMIT_DIMENSIONS, EmitDimensions, emitDimensions, vec3); ADD_PROPERTY_TO_MAP(PROP_EMIT_RADIUS_START, EmitRadiusStart, emitRadiusStart, float); - ADD_PROPERTY_TO_MAP(PROP_EMIT_ACCELERATION, EmitAcceleration, emitAcceleration, vec3); - ADD_PROPERTY_TO_MAP(PROP_ACCELERATION_SPREAD, AccelerationSpread, accelerationSpread, vec3); ADD_PROPERTY_TO_MAP(PROP_POLAR_START, EmitPolarStart, polarStart, float); ADD_PROPERTY_TO_MAP(PROP_POLAR_FINISH, EmitPolarFinish, polarFinish, float); ADD_PROPERTY_TO_MAP(PROP_AZIMUTH_START, EmitAzimuthStart, azimuthStart, float); ADD_PROPERTY_TO_MAP(PROP_AZIMUTH_FINISH, EmitAzimuthFinish, azimuthFinish, float); + ADD_PROPERTY_TO_MAP(PROP_EMIT_ACCELERATION, EmitAcceleration, emitAcceleration, vec3); + ADD_PROPERTY_TO_MAP(PROP_ACCELERATION_SPREAD, AccelerationSpread, accelerationSpread, vec3); ADD_PROPERTY_TO_MAP(PROP_PARTICLE_RADIUS, ParticleRadius, particleRadius, float); ADD_PROPERTY_TO_MAP(PROP_RADIUS_SPREAD, RadiusSpread, radiusSpread, float); ADD_PROPERTY_TO_MAP(PROP_RADIUS_START, RadiusStart, radiusStart, float); @@ -2499,39 +2525,19 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue ADD_PROPERTY_TO_MAP(PROP_GRID_FOLLOW_CAMERA, FollowCamera, followCamera, bool); ADD_PROPERTY_TO_MAP(PROP_MAJOR_GRID_EVERY, MajorGridEvery, majorGridEvery, uint32_t); ADD_PROPERTY_TO_MAP(PROP_MINOR_GRID_EVERY, MinorGridEvery, minorGridEvery, float); - - // Certifiable Properties - ADD_PROPERTY_TO_MAP(PROP_ITEM_NAME, ItemName, itemName, QString); - ADD_PROPERTY_TO_MAP(PROP_ITEM_DESCRIPTION, ItemDescription, itemDescription, QString); - ADD_PROPERTY_TO_MAP(PROP_ITEM_CATEGORIES, ItemCategories, itemCategories, QString); - ADD_PROPERTY_TO_MAP(PROP_ITEM_ARTIST, ItemArtist, itemArtist, QString); - ADD_PROPERTY_TO_MAP(PROP_ITEM_LICENSE, ItemLicense, itemLicense, QString); - ADD_PROPERTY_TO_MAP(PROP_LIMITED_RUN, LimitedRun, limitedRun, quint32); - ADD_PROPERTY_TO_MAP(PROP_MARKETPLACE_ID, MarketplaceID, marketplaceID, QString); - ADD_PROPERTY_TO_MAP(PROP_EDITION_NUMBER, EditionNumber, editionNumber, quint32); - ADD_PROPERTY_TO_MAP(PROP_ENTITY_INSTANCE_NUMBER, EntityInstanceNumber, entityInstanceNumber, quint32); - ADD_PROPERTY_TO_MAP(PROP_CERTIFICATE_ID, CertificateID, certificateID, QString); - ADD_PROPERTY_TO_MAP(PROP_STATIC_CERTIFICATE_VERSION, StaticCertificateVersion, staticCertificateVersion, quint32); - - // Local script props - ADD_PROPERTY_TO_MAP(PROP_LOCAL_POSITION, LocalPosition, localPosition, vec3); - ADD_PROPERTY_TO_MAP(PROP_LOCAL_ROTATION, LocalRotation, localRotation, quat); - ADD_PROPERTY_TO_MAP(PROP_LOCAL_VELOCITY, LocalVelocity, localVelocity, vec3); - ADD_PROPERTY_TO_MAP(PROP_LOCAL_ANGULAR_VELOCITY, LocalAngularVelocity, localAngularVelocity, vec3); - ADD_PROPERTY_TO_MAP(PROP_LOCAL_DIMENSIONS, LocalDimensions, localDimensions, vec3); }); if (object.isString()) { auto enumIter = _propertyStringsToEnums.find(object.toString()); if (enumIter != _propertyStringsToEnums.end()) { - flags << enumIter.value; + flags << enumIter.value(); } } else if (object.isArray()) { quint32 length = object.property("length").toInt32(); for (quint32 i = 0; i < length; i++) { auto enumIter = _propertyStringsToEnums.find(object.property(i).toString()); if (enumIter != _propertyStringsToEnums.end()) { - flags << enumIter.value; + flags << enumIter.value(); } } } @@ -2638,6 +2644,7 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy // PROP_CUSTOM_PROPERTIES_INCLUDED, + APPEND_ENTITY_PROPERTY(PROP_SIMULATION_OWNER, properties._simulationOwner.toByteArray()); APPEND_ENTITY_PROPERTY(PROP_VISIBLE, properties.getVisible()); APPEND_ENTITY_PROPERTY(PROP_NAME, properties.getName()); APPEND_ENTITY_PROPERTY(PROP_LOCKED, properties.getLocked()); @@ -2676,7 +2683,6 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy APPEND_ENTITY_PROPERTY(PROP_COLLISIONLESS, properties.getCollisionless()); APPEND_ENTITY_PROPERTY(PROP_COLLISION_MASK, properties.getCollisionMask()); APPEND_ENTITY_PROPERTY(PROP_DYNAMIC, properties.getDynamic()); - APPEND_ENTITY_PROPERTY(PROP_SIMULATION_OWNER, properties._simulationOwner.toByteArray()); APPEND_ENTITY_PROPERTY(PROP_COLLISION_SOUND_URL, properties.getCollisionSoundURL()); APPEND_ENTITY_PROPERTY(PROP_ACTION_DATA, properties.getActionData()); @@ -2693,8 +2699,25 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy APPEND_ENTITY_PROPERTY(PROP_SCRIPT_TIMESTAMP, properties.getScriptTimestamp()); APPEND_ENTITY_PROPERTY(PROP_SERVER_SCRIPTS, properties.getServerScripts()); + // Certifiable Properties + APPEND_ENTITY_PROPERTY(PROP_ITEM_NAME, properties.getItemName()); + APPEND_ENTITY_PROPERTY(PROP_ITEM_DESCRIPTION, properties.getItemDescription()); + APPEND_ENTITY_PROPERTY(PROP_ITEM_CATEGORIES, properties.getItemCategories()); + APPEND_ENTITY_PROPERTY(PROP_ITEM_ARTIST, properties.getItemArtist()); + APPEND_ENTITY_PROPERTY(PROP_ITEM_LICENSE, properties.getItemLicense()); + APPEND_ENTITY_PROPERTY(PROP_LIMITED_RUN, properties.getLimitedRun()); + APPEND_ENTITY_PROPERTY(PROP_MARKETPLACE_ID, properties.getMarketplaceID()); + APPEND_ENTITY_PROPERTY(PROP_EDITION_NUMBER, properties.getEditionNumber()); + APPEND_ENTITY_PROPERTY(PROP_ENTITY_INSTANCE_NUMBER, properties.getEntityInstanceNumber()); + APPEND_ENTITY_PROPERTY(PROP_CERTIFICATE_ID, properties.getCertificateID()); + APPEND_ENTITY_PROPERTY(PROP_STATIC_CERTIFICATE_VERSION, properties.getStaticCertificateVersion()); + if (properties.getType() == EntityTypes::ParticleEffect) { APPEND_ENTITY_PROPERTY(PROP_SHAPE_TYPE, (uint32_t)(properties.getShapeType())); + APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); + APPEND_ENTITY_PROPERTY(PROP_ALPHA, properties.getAlpha()); + APPEND_ENTITY_PROPERTY(PROP_TEXTURES, properties.getTextures()); + APPEND_ENTITY_PROPERTY(PROP_MAX_PARTICLES, properties.getMaxParticles()); APPEND_ENTITY_PROPERTY(PROP_LIFESPAN, properties.getLifespan()); @@ -2719,17 +2742,14 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy APPEND_ENTITY_PROPERTY(PROP_RADIUS_START, properties.getRadiusStart()); APPEND_ENTITY_PROPERTY(PROP_RADIUS_FINISH, properties.getRadiusFinish()); - APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); APPEND_ENTITY_PROPERTY(PROP_COLOR_SPREAD, properties.getColorSpread()); APPEND_ENTITY_PROPERTY(PROP_COLOR_START, properties.getColorStart()); APPEND_ENTITY_PROPERTY(PROP_COLOR_FINISH, properties.getColorFinish()); - APPEND_ENTITY_PROPERTY(PROP_ALPHA, properties.getAlpha()); APPEND_ENTITY_PROPERTY(PROP_ALPHA_SPREAD, properties.getAlphaSpread()); APPEND_ENTITY_PROPERTY(PROP_ALPHA_START, properties.getAlphaStart()); APPEND_ENTITY_PROPERTY(PROP_ALPHA_FINISH, properties.getAlphaFinish()); - APPEND_ENTITY_PROPERTY(PROP_TEXTURES, properties.getTextures()); APPEND_ENTITY_PROPERTY(PROP_EMITTER_SHOULD_TRAIL, properties.getEmitterShouldTrail()); APPEND_ENTITY_PROPERTY(PROP_PARTICLE_SPIN, properties.getParticleSpin()); @@ -2739,9 +2759,26 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy APPEND_ENTITY_PROPERTY(PROP_PARTICLE_ROTATE_WITH_ENTITY, properties.getRotateWithEntity()) } - if (properties.getType() == EntityTypes::Light) { - APPEND_ENTITY_PROPERTY(PROP_IS_SPOTLIGHT, properties.getIsSpotlight()); + if (properties.getType() == EntityTypes::Model) { + APPEND_ENTITY_PROPERTY(PROP_SHAPE_TYPE, (uint32_t)(properties.getShapeType())); + APPEND_ENTITY_PROPERTY(PROP_COMPOUND_SHAPE_URL, properties.getCompoundShapeURL()); APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); + APPEND_ENTITY_PROPERTY(PROP_TEXTURES, properties.getTextures()); + + APPEND_ENTITY_PROPERTY(PROP_MODEL_URL, properties.getModelURL()); + APPEND_ENTITY_PROPERTY(PROP_JOINT_ROTATIONS_SET, properties.getJointRotationsSet()); + APPEND_ENTITY_PROPERTY(PROP_JOINT_ROTATIONS, properties.getJointRotations()); + APPEND_ENTITY_PROPERTY(PROP_JOINT_TRANSLATIONS_SET, properties.getJointTranslationsSet()); + APPEND_ENTITY_PROPERTY(PROP_JOINT_TRANSLATIONS, properties.getJointTranslations()); + APPEND_ENTITY_PROPERTY(PROP_RELAY_PARENT_JOINTS, properties.getRelayParentJoints()); + + _staticAnimation.setProperties(properties); + _staticAnimation.appendToEditPacket(packetData, requestedProperties, propertyFlags, propertiesDidntFit, propertyCount, appendState); + } + + if (properties.getType() == EntityTypes::Light) { + APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); + APPEND_ENTITY_PROPERTY(PROP_IS_SPOTLIGHT, properties.getIsSpotlight()); APPEND_ENTITY_PROPERTY(PROP_INTENSITY, properties.getIntensity()); APPEND_ENTITY_PROPERTY(PROP_EXPONENT, properties.getExponent()); APPEND_ENTITY_PROPERTY(PROP_CUTOFF, properties.getCutoff()); @@ -2762,24 +2799,10 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy APPEND_ENTITY_PROPERTY(PROP_BOTTOM_MARGIN, properties.getBottomMargin()); } - if (properties.getType() == EntityTypes::Model) { - APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); - APPEND_ENTITY_PROPERTY(PROP_MODEL_URL, properties.getModelURL()); - APPEND_ENTITY_PROPERTY(PROP_COMPOUND_SHAPE_URL, properties.getCompoundShapeURL()); - APPEND_ENTITY_PROPERTY(PROP_TEXTURES, properties.getTextures()); - APPEND_ENTITY_PROPERTY(PROP_SHAPE_TYPE, (uint32_t)(properties.getShapeType())); - - APPEND_ENTITY_PROPERTY(PROP_JOINT_ROTATIONS_SET, properties.getJointRotationsSet()); - APPEND_ENTITY_PROPERTY(PROP_JOINT_ROTATIONS, properties.getJointRotations()); - APPEND_ENTITY_PROPERTY(PROP_JOINT_TRANSLATIONS_SET, properties.getJointTranslationsSet()); - APPEND_ENTITY_PROPERTY(PROP_JOINT_TRANSLATIONS, properties.getJointTranslations()); - APPEND_ENTITY_PROPERTY(PROP_RELAY_PARENT_JOINTS, properties.getRelayParentJoints()); - - _staticAnimation.setProperties(properties); - _staticAnimation.appendToEditPacket(packetData, requestedProperties, propertyFlags, propertiesDidntFit, propertyCount, appendState); - } - if (properties.getType() == EntityTypes::Zone) { + APPEND_ENTITY_PROPERTY(PROP_SHAPE_TYPE, (uint32_t)properties.getShapeType()); + APPEND_ENTITY_PROPERTY(PROP_COMPOUND_SHAPE_URL, properties.getCompoundShapeURL()); + _staticKeyLight.setProperties(properties); _staticKeyLight.appendToEditPacket(packetData, requestedProperties, propertyFlags, propertiesDidntFit, propertyCount, appendState); @@ -2795,9 +2818,6 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy _staticBloom.setProperties(properties); _staticBloom.appendToEditPacket(packetData, requestedProperties, propertyFlags, propertiesDidntFit, propertyCount, appendState); - APPEND_ENTITY_PROPERTY(PROP_SHAPE_TYPE, (uint32_t)properties.getShapeType()); - APPEND_ENTITY_PROPERTY(PROP_COMPOUND_SHAPE_URL, properties.getCompoundShapeURL()); - APPEND_ENTITY_PROPERTY(PROP_FLYING_ALLOWED, properties.getFlyingAllowed()); APPEND_ENTITY_PROPERTY(PROP_GHOSTING_ALLOWED, properties.getGhostingAllowed()); APPEND_ENTITY_PROPERTY(PROP_FILTER_URL, properties.getFilterURL()); @@ -2831,11 +2851,12 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy if (properties.getType() == EntityTypes::PolyLine) { APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); + APPEND_ENTITY_PROPERTY(PROP_TEXTURES, properties.getTextures()); + APPEND_ENTITY_PROPERTY(PROP_LINE_POINTS, properties.getLinePoints()); APPEND_ENTITY_PROPERTY(PROP_STROKE_WIDTHS, properties.getStrokeWidths()); APPEND_ENTITY_PROPERTY(PROP_STROKE_NORMALS, properties.getPackedNormals()); APPEND_ENTITY_PROPERTY(PROP_STROKE_COLORS, properties.getPackedStrokeColors()); - APPEND_ENTITY_PROPERTY(PROP_TEXTURES, properties.getTextures()); APPEND_ENTITY_PROPERTY(PROP_IS_UV_MODE_STRETCH, properties.getIsUVModeStretch()); APPEND_ENTITY_PROPERTY(PROP_LINE_GLOW, properties.getGlow()); APPEND_ENTITY_PROPERTY(PROP_LINE_FACE_CAMERA, properties.getFaceCamera()); @@ -2846,9 +2867,9 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy if (properties.getType() == EntityTypes::Shape || properties.getType() == EntityTypes::Box || properties.getType() == EntityTypes::Sphere) { - APPEND_ENTITY_PROPERTY(PROP_SHAPE, properties.getShape()); APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); APPEND_ENTITY_PROPERTY(PROP_ALPHA, properties.getAlpha()); + APPEND_ENTITY_PROPERTY(PROP_SHAPE, properties.getShape()); } // Materials @@ -2866,14 +2887,14 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy // Image if (properties.getType() == EntityTypes::Image) { + APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); + APPEND_ENTITY_PROPERTY(PROP_ALPHA, properties.getAlpha()); + APPEND_ENTITY_PROPERTY(PROP_IMAGE_URL, properties.getImageURL()); APPEND_ENTITY_PROPERTY(PROP_EMISSIVE, properties.getEmissive()); APPEND_ENTITY_PROPERTY(PROP_KEEP_ASPECT_RATIO, properties.getKeepAspectRatio()); APPEND_ENTITY_PROPERTY(PROP_BILLBOARD_MODE, (uint32_t)properties.getBillboardMode()); APPEND_ENTITY_PROPERTY(PROP_SUB_IMAGE, properties.getSubImage()); - - APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); - APPEND_ENTITY_PROPERTY(PROP_ALPHA, properties.getAlpha()); } // Grid @@ -2885,19 +2906,6 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy APPEND_ENTITY_PROPERTY(PROP_MAJOR_GRID_EVERY, properties.getMajorGridEvery()); APPEND_ENTITY_PROPERTY(PROP_MINOR_GRID_EVERY, properties.getMinorGridEvery()); } - - // Certifiable Properties - APPEND_ENTITY_PROPERTY(PROP_ITEM_NAME, properties.getItemName()); - APPEND_ENTITY_PROPERTY(PROP_ITEM_DESCRIPTION, properties.getItemDescription()); - APPEND_ENTITY_PROPERTY(PROP_ITEM_CATEGORIES, properties.getItemCategories()); - APPEND_ENTITY_PROPERTY(PROP_ITEM_ARTIST, properties.getItemArtist()); - APPEND_ENTITY_PROPERTY(PROP_ITEM_LICENSE, properties.getItemLicense()); - APPEND_ENTITY_PROPERTY(PROP_LIMITED_RUN, properties.getLimitedRun()); - APPEND_ENTITY_PROPERTY(PROP_MARKETPLACE_ID, properties.getMarketplaceID()); - APPEND_ENTITY_PROPERTY(PROP_EDITION_NUMBER, properties.getEditionNumber()); - APPEND_ENTITY_PROPERTY(PROP_ENTITY_INSTANCE_NUMBER, properties.getEntityInstanceNumber()); - APPEND_ENTITY_PROPERTY(PROP_CERTIFICATE_ID, properties.getCertificateID()); - APPEND_ENTITY_PROPERTY(PROP_STATIC_CERTIFICATE_VERSION, properties.getStaticCertificateVersion()); } if (propertyCount > 0) { @@ -3076,6 +3084,7 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int dataAt += propertyFlags.getEncodedLength(); processedBytes += propertyFlags.getEncodedLength(); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SIMULATION_OWNER, QByteArray, setSimulationOwner); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_VISIBLE, bool, setVisible); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_NAME, QString, setName); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LOCKED, bool, setLocked); @@ -3112,7 +3121,6 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLLISIONLESS, bool, setCollisionless); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLLISION_MASK, uint16_t, setCollisionMask); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DYNAMIC, bool, setDynamic); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SIMULATION_OWNER, QByteArray, setSimulationOwner); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLLISION_SOUND_URL, QString, setCollisionSoundURL); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ACTION_DATA, QByteArray, setActionData); @@ -3129,8 +3137,25 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SCRIPT_TIMESTAMP, quint64, setScriptTimestamp); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SERVER_SCRIPTS, QString, setServerScripts); + // Certifiable Properties + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_NAME, QString, setItemName); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_DESCRIPTION, QString, setItemDescription); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_CATEGORIES, QString, setItemCategories); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_ARTIST, QString, setItemArtist); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_LICENSE, QString, setItemLicense); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LIMITED_RUN, quint32, setLimitedRun); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_MARKETPLACE_ID, QString, setMarketplaceID); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_EDITION_NUMBER, quint32, setEditionNumber); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ENTITY_INSTANCE_NUMBER, quint32, setEntityInstanceNumber); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CERTIFICATE_ID, QString, setCertificateID); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STATIC_CERTIFICATE_VERSION, quint32, setStaticCertificateVersion); + if (properties.getType() == EntityTypes::ParticleEffect) { READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SHAPE_TYPE, ShapeType, setShapeType); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ALPHA, float, setAlpha); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXTURES, QString, setTextures); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_MAX_PARTICLES, quint32, setMaxParticles); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LIFESPAN, float, setLifespan); @@ -3155,17 +3180,14 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_RADIUS_START, float, setRadiusStart); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_RADIUS_FINISH, float, setRadiusFinish); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR_SPREAD, u8vec3Color, setColorSpread); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR_START, vec3Color, setColorStart); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR_FINISH, vec3Color, setColorFinish); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ALPHA, float, setAlpha); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ALPHA_SPREAD, float, setAlphaSpread); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ALPHA_START, float, setAlphaStart); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ALPHA_FINISH, float, setAlphaFinish); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXTURES, QString, setTextures); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_EMITTER_SHOULD_TRAIL, bool, setEmitterShouldTrail); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_PARTICLE_SPIN, float, setParticleSpin); @@ -3176,12 +3198,12 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int } if (properties.getType() == EntityTypes::Model) { - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_MODEL_URL, QString, setModelURL); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COMPOUND_SHAPE_URL, QString, setCompoundShapeURL); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXTURES, QString, setTextures); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SHAPE_TYPE, ShapeType, setShapeType); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COMPOUND_SHAPE_URL, QString, setCompoundShapeURL); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXTURES, QString, setTextures); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_MODEL_URL, QString, setModelURL); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_JOINT_ROTATIONS_SET, QVector, setJointRotationsSet); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_JOINT_ROTATIONS, QVector, setJointRotations); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_JOINT_TRANSLATIONS_SET, QVector, setJointTranslationsSet); @@ -3192,8 +3214,9 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int } if (properties.getType() == EntityTypes::Light) { - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_IS_SPOTLIGHT, bool, setIsSpotlight); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); + + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_IS_SPOTLIGHT, bool, setIsSpotlight); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_INTENSITY, float, setIntensity); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_EXPONENT, float, setExponent); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CUTOFF, float, setCutoff); @@ -3215,15 +3238,15 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int } if (properties.getType() == EntityTypes::Zone) { + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SHAPE_TYPE, ShapeType, setShapeType); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COMPOUND_SHAPE_URL, QString, setCompoundShapeURL); + properties.getKeyLight().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); properties.getAmbientLight().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); properties.getSkybox().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); properties.getHaze().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); properties.getBloom().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SHAPE_TYPE, ShapeType, setShapeType); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COMPOUND_SHAPE_URL, QString, setCompoundShapeURL); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_FLYING_ALLOWED, bool, setFlyingAllowed); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_GHOSTING_ALLOWED, bool, setGhostingAllowed); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_FILTER_URL, QString, setFilterURL); @@ -3257,11 +3280,12 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int if (properties.getType() == EntityTypes::PolyLine) { READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXTURES, QString, setTextures); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_POINTS, QVector, setLinePoints); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STROKE_WIDTHS, QVector, setStrokeWidths); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STROKE_NORMALS, QByteArray, setPackedNormals); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STROKE_COLORS, QByteArray, setPackedStrokeColors); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXTURES, QString, setTextures); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_IS_UV_MODE_STRETCH, bool, setIsUVModeStretch); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_GLOW, bool, setGlow); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_FACE_CAMERA, bool, setFaceCamera); @@ -3272,9 +3296,9 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int if (properties.getType() == EntityTypes::Shape || properties.getType() == EntityTypes::Box || properties.getType() == EntityTypes::Sphere) { - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SHAPE, QString, setShape); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ALPHA, float, setAlpha); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SHAPE, QString, setShape); } // Materials @@ -3292,14 +3316,14 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int // Image if (properties.getType() == EntityTypes::Image) { + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ALPHA, float, setAlpha); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_IMAGE_URL, QString, setImageURL); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_EMISSIVE, bool, setEmissive); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_KEEP_ASPECT_RATIO, bool, setKeepAspectRatio); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_BILLBOARD_MODE, BillboardMode, setBillboardMode); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SUB_IMAGE, QRect, setSubImage); - - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ALPHA, float, setAlpha); } // Grid @@ -3312,19 +3336,6 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_MINOR_GRID_EVERY, float, setMinorGridEvery); } - // Certifiable Properties - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_NAME, QString, setItemName); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_DESCRIPTION, QString, setItemDescription); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_CATEGORIES, QString, setItemCategories); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_ARTIST, QString, setItemArtist); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_LICENSE, QString, setItemLicense); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LIMITED_RUN, quint32, setLimitedRun); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_MARKETPLACE_ID, QString, setMarketplaceID); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_EDITION_NUMBER, quint32, setEditionNumber); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ENTITY_INSTANCE_NUMBER, quint32, setEntityInstanceNumber); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CERTIFICATE_ID, QString, setCertificateID); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STATIC_CERTIFICATE_VERSION, quint32, setStaticCertificateVersion); - return valid; } @@ -3450,6 +3461,7 @@ bool EntityItemProperties::decodeCloneEntityMessage(const QByteArray& buffer, in void EntityItemProperties::markAllChanged() { // Core + _simulationOwnerChanged = true; _visibleChanged = true; _nameChanged = true; _lockedChanged = true; @@ -3485,7 +3497,6 @@ void EntityItemProperties::markAllChanged() { _collisionlessChanged = true; _collisionMaskChanged = true; _dynamicChanged = true; - _simulationOwnerChanged = true; _collisionSoundURLChanged = true; _actionDataChanged = true; @@ -3502,6 +3513,19 @@ void EntityItemProperties::markAllChanged() { _scriptTimestampChanged = true; _serverScriptsChanged = true; + // Certifiable Properties + _itemNameChanged = true; + _itemDescriptionChanged = true; + _itemCategoriesChanged = true; + _itemArtistChanged = true; + _itemLicenseChanged = true; + _limitedRunChanged = true; + _marketplaceIDChanged = true; + _editionNumberChanged = true; + _entityInstanceNumberChanged = true; + _certificateIDChanged = true; + _staticCertificateVersionChanged = true; + // Common _shapeTypeChanged = true; _colorChanged = true; @@ -3519,12 +3543,12 @@ void EntityItemProperties::markAllChanged() { _emitOrientationChanged = true; _emitDimensionsChanged = true; _emitRadiusStartChanged = true; - _emitAccelerationChanged = true; - _accelerationSpreadChanged = true; _polarStartChanged = true; _polarFinishChanged = true; _azimuthStartChanged = true; _azimuthFinishChanged = true; + _emitAccelerationChanged = true; + _accelerationSpreadChanged = true; _particleRadiusChanged = true; _radiusSpreadChanged = true; _radiusStartChanged = true; @@ -3637,19 +3661,6 @@ void EntityItemProperties::markAllChanged() { _followCameraChanged = true; _majorGridEveryChanged = true; _minorGridEveryChanged = true; - - // Certifiable Properties - _itemNameChanged = true; - _itemDescriptionChanged = true; - _itemCategoriesChanged = true; - _itemArtistChanged = true; - _itemLicenseChanged = true; - _limitedRunChanged = true; - _marketplaceIDChanged = true; - _editionNumberChanged = true; - _entityInstanceNumberChanged = true; - _certificateIDChanged = true; - _staticCertificateVersionChanged = true; } // The minimum bounding box for the entity. @@ -3769,6 +3780,9 @@ QList EntityItemProperties::listChangedProperties() { QList out; // Core + if (simulationOwnerChanged()) { + out += "simulationOwner"; + } if (visibleChanged()) { out += "visible"; } @@ -3869,9 +3883,6 @@ QList EntityItemProperties::listChangedProperties() { if (dynamicChanged()) { out += "dynamic"; } - if (simulationOwnerChanged()) { - out += "simulationOwner"; - } if (collisionSoundURLChanged()) { out += "collisionSoundURL"; } @@ -3910,6 +3921,41 @@ QList EntityItemProperties::listChangedProperties() { out += "serverScripts"; } + // Certifiable Properties + if (itemNameChanged()) { + out += "itemName"; + } + if (itemDescriptionChanged()) { + out += "itemDescription"; + } + if (itemCategoriesChanged()) { + out += "itemCategories"; + } + if (itemArtistChanged()) { + out += "itemArtist"; + } + if (itemLicenseChanged()) { + out += "itemLicense"; + } + if (limitedRunChanged()) { + out += "limitedRun"; + } + if (marketplaceIDChanged()) { + out += "marketplaceID"; + } + if (editionNumberChanged()) { + out += "editionNumber"; + } + if (entityInstanceNumberChanged()) { + out += "entityInstanceNumber"; + } + if (certificateIDChanged()) { + out += "certificateID"; + } + if (staticCertificateVersionChanged()) { + out += "staticCertificateVersion"; + } + // Common if (shapeTypeChanged()) { out += "shapeType"; @@ -3955,12 +4001,6 @@ QList EntityItemProperties::listChangedProperties() { if (emitRadiusStartChanged()) { out += "emitRadiusStart"; } - if (emitAccelerationChanged()) { - out += "emitAcceleration"; - } - if (accelerationSpreadChanged()) { - out += "accelerationSpread"; - } if (polarStartChanged()) { out += "polarStart"; } @@ -3973,6 +4013,12 @@ QList EntityItemProperties::listChangedProperties() { if (azimuthFinishChanged()) { out += "azimuthFinish"; } + if (emitAccelerationChanged()) { + out += "emitAcceleration"; + } + if (accelerationSpreadChanged()) { + out += "accelerationSpread"; + } if (particleRadiusChanged()) { out += "particleRadius"; } @@ -4254,41 +4300,6 @@ QList EntityItemProperties::listChangedProperties() { out += "minorGridEvery"; } - // Certifiable Properties - if (itemNameChanged()) { - out += "itemName"; - } - if (itemDescriptionChanged()) { - out += "itemDescription"; - } - if (itemCategoriesChanged()) { - out += "itemCategories"; - } - if (itemArtistChanged()) { - out += "itemArtist"; - } - if (itemLicenseChanged()) { - out += "itemLicense"; - } - if (limitedRunChanged()) { - out += "limitedRun"; - } - if (marketplaceIDChanged()) { - out += "marketplaceID"; - } - if (editionNumberChanged()) { - out += "editionNumber"; - } - if (entityInstanceNumberChanged()) { - out += "entityInstanceNumber"; - } - if (certificateIDChanged()) { - out += "certificateID"; - } - if (staticCertificateVersionChanged()) { - out += "staticCertificateVersion"; - } - return out; } @@ -4478,4 +4489,19 @@ void EntityItemProperties::convertToCloneProperties(const EntityItemID& entityID setCloneLimit(ENTITY_ITEM_DEFAULT_CLONE_LIMIT); setCloneDynamic(ENTITY_ITEM_DEFAULT_CLONE_DYNAMIC); setCloneAvatarEntity(ENTITY_ITEM_DEFAULT_CLONE_AVATAR_ENTITY); -} \ No newline at end of file +} + +QDebug& operator<<(QDebug& dbg, const EntityPropertyFlags& f) { + QString result = "[ "; + + for (int i = 0; i < PROP_AFTER_LAST_ITEM; i++) { + auto prop = EntityPropertyList(i); + if (f.getHasProperty(prop)) { + result = result + _enumsToPropertyStrings[prop] + " "; + } + } + + result += "]"; + dbg.nospace() << result; + return dbg; +} diff --git a/libraries/entities/src/EntityItemProperties.h b/libraries/entities/src/EntityItemProperties.h index 7cc2429e17..9857878edf 100644 --- a/libraries/entities/src/EntityItemProperties.h +++ b/libraries/entities/src/EntityItemProperties.h @@ -127,6 +127,7 @@ public: // bool _fooChanged { false }; // Core Properties + DEFINE_PROPERTY_REF(PROP_SIMULATION_OWNER, SimulationOwner, simulationOwner, SimulationOwner, SimulationOwner()); DEFINE_PROPERTY(PROP_VISIBLE, Visible, visible, bool, ENTITY_ITEM_DEFAULT_VISIBLE); DEFINE_PROPERTY_REF(PROP_NAME, Name, name, QString, ENTITY_ITEM_DEFAULT_NAME); DEFINE_PROPERTY(PROP_LOCKED, Locked, locked, bool, ENTITY_ITEM_DEFAULT_LOCKED); @@ -162,7 +163,6 @@ public: DEFINE_PROPERTY(PROP_COLLISIONLESS, Collisionless, collisionless, bool, ENTITY_ITEM_DEFAULT_COLLISIONLESS); DEFINE_PROPERTY(PROP_COLLISION_MASK, CollisionMask, collisionMask, uint16_t, ENTITY_COLLISION_MASK_DEFAULT); DEFINE_PROPERTY(PROP_DYNAMIC, Dynamic, dynamic, bool, ENTITY_ITEM_DEFAULT_DYNAMIC); - DEFINE_PROPERTY_REF(PROP_SIMULATION_OWNER, SimulationOwner, simulationOwner, SimulationOwner, SimulationOwner()); DEFINE_PROPERTY_REF(PROP_COLLISION_SOUND_URL, CollisionSoundURL, collisionSoundURL, QString, ENTITY_ITEM_DEFAULT_COLLISION_SOUND_URL); DEFINE_PROPERTY_REF(PROP_ACTION_DATA, ActionData, actionData, QByteArray, QByteArray()); @@ -179,6 +179,26 @@ public: DEFINE_PROPERTY(PROP_SCRIPT_TIMESTAMP, ScriptTimestamp, scriptTimestamp, quint64, ENTITY_ITEM_DEFAULT_SCRIPT_TIMESTAMP); DEFINE_PROPERTY_REF(PROP_SERVER_SCRIPTS, ServerScripts, serverScripts, QString, ENTITY_ITEM_DEFAULT_SERVER_SCRIPTS); + // Certifiable Properties - related to Proof of Purchase certificates + DEFINE_PROPERTY_REF(PROP_ITEM_NAME, ItemName, itemName, QString, ENTITY_ITEM_DEFAULT_ITEM_NAME); + DEFINE_PROPERTY_REF(PROP_ITEM_DESCRIPTION, ItemDescription, itemDescription, QString, ENTITY_ITEM_DEFAULT_ITEM_DESCRIPTION); + DEFINE_PROPERTY_REF(PROP_ITEM_CATEGORIES, ItemCategories, itemCategories, QString, ENTITY_ITEM_DEFAULT_ITEM_CATEGORIES); + DEFINE_PROPERTY_REF(PROP_ITEM_ARTIST, ItemArtist, itemArtist, QString, ENTITY_ITEM_DEFAULT_ITEM_ARTIST); + DEFINE_PROPERTY_REF(PROP_ITEM_LICENSE, ItemLicense, itemLicense, QString, ENTITY_ITEM_DEFAULT_ITEM_LICENSE); + DEFINE_PROPERTY_REF(PROP_LIMITED_RUN, LimitedRun, limitedRun, quint32, ENTITY_ITEM_DEFAULT_LIMITED_RUN); + DEFINE_PROPERTY_REF(PROP_MARKETPLACE_ID, MarketplaceID, marketplaceID, QString, ENTITY_ITEM_DEFAULT_MARKETPLACE_ID); + DEFINE_PROPERTY_REF(PROP_EDITION_NUMBER, EditionNumber, editionNumber, quint32, ENTITY_ITEM_DEFAULT_EDITION_NUMBER); + DEFINE_PROPERTY_REF(PROP_ENTITY_INSTANCE_NUMBER, EntityInstanceNumber, entityInstanceNumber, quint32, ENTITY_ITEM_DEFAULT_ENTITY_INSTANCE_NUMBER); + DEFINE_PROPERTY_REF(PROP_CERTIFICATE_ID, CertificateID, certificateID, QString, ENTITY_ITEM_DEFAULT_CERTIFICATE_ID); + DEFINE_PROPERTY_REF(PROP_STATIC_CERTIFICATE_VERSION, StaticCertificateVersion, staticCertificateVersion, quint32, ENTITY_ITEM_DEFAULT_STATIC_CERTIFICATE_VERSION); + + // these are used when bouncing location data into and out of scripts + DEFINE_PROPERTY_REF(PROP_LOCAL_POSITION, LocalPosition, localPosition, glm::vec3, ENTITY_ITEM_ZERO_VEC3); + DEFINE_PROPERTY_REF(PROP_LOCAL_ROTATION, LocalRotation, localRotation, quat, ENTITY_ITEM_DEFAULT_ROTATION); + DEFINE_PROPERTY_REF(PROP_LOCAL_VELOCITY, LocalVelocity, localVelocity, glm::vec3, ENTITY_ITEM_ZERO_VEC3); + DEFINE_PROPERTY_REF(PROP_LOCAL_ANGULAR_VELOCITY, LocalAngularVelocity, localAngularVelocity, glm::vec3, ENTITY_ITEM_ZERO_VEC3); + DEFINE_PROPERTY_REF(PROP_LOCAL_DIMENSIONS, LocalDimensions, localDimensions, glm::vec3, ENTITY_ITEM_ZERO_VEC3); + // Common DEFINE_PROPERTY_REF_ENUM(PROP_SHAPE_TYPE, ShapeType, shapeType, ShapeType, SHAPE_TYPE_NONE); DEFINE_PROPERTY_REF(PROP_COMPOUND_SHAPE_URL, CompoundShapeURL, compoundShapeURL, QString, ""); @@ -196,12 +216,12 @@ public: DEFINE_PROPERTY_REF(PROP_EMIT_ORIENTATION, EmitOrientation, emitOrientation, glm::quat, particle::DEFAULT_EMIT_ORIENTATION); DEFINE_PROPERTY_REF(PROP_EMIT_DIMENSIONS, EmitDimensions, emitDimensions, glm::vec3, particle::DEFAULT_EMIT_DIMENSIONS); DEFINE_PROPERTY(PROP_EMIT_RADIUS_START, EmitRadiusStart, emitRadiusStart, float, particle::DEFAULT_EMIT_RADIUS_START); - DEFINE_PROPERTY_REF(PROP_EMIT_ACCELERATION, EmitAcceleration, emitAcceleration, glm::vec3, particle::DEFAULT_EMIT_ACCELERATION); - DEFINE_PROPERTY_REF(PROP_ACCELERATION_SPREAD, AccelerationSpread, accelerationSpread, glm::vec3, particle::DEFAULT_ACCELERATION_SPREAD); DEFINE_PROPERTY(PROP_POLAR_START, PolarStart, polarStart, float, particle::DEFAULT_POLAR_START); DEFINE_PROPERTY(PROP_POLAR_FINISH, PolarFinish, polarFinish, float, particle::DEFAULT_POLAR_FINISH); DEFINE_PROPERTY(PROP_AZIMUTH_START, AzimuthStart, azimuthStart, float, particle::DEFAULT_AZIMUTH_START); DEFINE_PROPERTY(PROP_AZIMUTH_FINISH, AzimuthFinish, azimuthFinish, float, particle::DEFAULT_AZIMUTH_FINISH); + DEFINE_PROPERTY_REF(PROP_EMIT_ACCELERATION, EmitAcceleration, emitAcceleration, glm::vec3, particle::DEFAULT_EMIT_ACCELERATION); + DEFINE_PROPERTY_REF(PROP_ACCELERATION_SPREAD, AccelerationSpread, accelerationSpread, glm::vec3, particle::DEFAULT_ACCELERATION_SPREAD); DEFINE_PROPERTY(PROP_PARTICLE_RADIUS, ParticleRadius, particleRadius, float, particle::DEFAULT_PARTICLE_RADIUS); DEFINE_PROPERTY(PROP_RADIUS_SPREAD, RadiusSpread, radiusSpread, float, particle::DEFAULT_RADIUS_SPREAD); DEFINE_PROPERTY(PROP_RADIUS_START, RadiusStart, radiusStart, float, particle::DEFAULT_RADIUS_START); @@ -315,26 +335,6 @@ public: DEFINE_PROPERTY(PROP_MAJOR_GRID_EVERY, MajorGridEvery, majorGridEvery, uint32_t, GridEntityItem::DEFAULT_MAJOR_GRID_EVERY); DEFINE_PROPERTY(PROP_MINOR_GRID_EVERY, MinorGridEvery, minorGridEvery, float, GridEntityItem::DEFAULT_MINOR_GRID_EVERY); - // Certifiable Properties - related to Proof of Purchase certificates - DEFINE_PROPERTY_REF(PROP_ITEM_NAME, ItemName, itemName, QString, ENTITY_ITEM_DEFAULT_ITEM_NAME); - DEFINE_PROPERTY_REF(PROP_ITEM_DESCRIPTION, ItemDescription, itemDescription, QString, ENTITY_ITEM_DEFAULT_ITEM_DESCRIPTION); - DEFINE_PROPERTY_REF(PROP_ITEM_CATEGORIES, ItemCategories, itemCategories, QString, ENTITY_ITEM_DEFAULT_ITEM_CATEGORIES); - DEFINE_PROPERTY_REF(PROP_ITEM_ARTIST, ItemArtist, itemArtist, QString, ENTITY_ITEM_DEFAULT_ITEM_ARTIST); - DEFINE_PROPERTY_REF(PROP_ITEM_LICENSE, ItemLicense, itemLicense, QString, ENTITY_ITEM_DEFAULT_ITEM_LICENSE); - DEFINE_PROPERTY_REF(PROP_LIMITED_RUN, LimitedRun, limitedRun, quint32, ENTITY_ITEM_DEFAULT_LIMITED_RUN); - DEFINE_PROPERTY_REF(PROP_MARKETPLACE_ID, MarketplaceID, marketplaceID, QString, ENTITY_ITEM_DEFAULT_MARKETPLACE_ID); - DEFINE_PROPERTY_REF(PROP_EDITION_NUMBER, EditionNumber, editionNumber, quint32, ENTITY_ITEM_DEFAULT_EDITION_NUMBER); - DEFINE_PROPERTY_REF(PROP_ENTITY_INSTANCE_NUMBER, EntityInstanceNumber, entityInstanceNumber, quint32, ENTITY_ITEM_DEFAULT_ENTITY_INSTANCE_NUMBER); - DEFINE_PROPERTY_REF(PROP_CERTIFICATE_ID, CertificateID, certificateID, QString, ENTITY_ITEM_DEFAULT_CERTIFICATE_ID); - DEFINE_PROPERTY_REF(PROP_STATIC_CERTIFICATE_VERSION, StaticCertificateVersion, staticCertificateVersion, quint32, ENTITY_ITEM_DEFAULT_STATIC_CERTIFICATE_VERSION); - - // these are used when bouncing location data into and out of scripts - DEFINE_PROPERTY_REF(PROP_LOCAL_POSITION, LocalPosition, localPosition, glm::vec3, ENTITY_ITEM_ZERO_VEC3); - DEFINE_PROPERTY_REF(PROP_LOCAL_ROTATION, LocalRotation, localRotation, quat, ENTITY_ITEM_DEFAULT_ROTATION); - DEFINE_PROPERTY_REF(PROP_LOCAL_VELOCITY, LocalVelocity, localVelocity, glm::vec3, ENTITY_ITEM_ZERO_VEC3); - DEFINE_PROPERTY_REF(PROP_LOCAL_ANGULAR_VELOCITY, LocalAngularVelocity, localAngularVelocity, glm::vec3, ENTITY_ITEM_ZERO_VEC3); - DEFINE_PROPERTY_REF(PROP_LOCAL_DIMENSIONS, LocalDimensions, localDimensions, glm::vec3, ENTITY_ITEM_ZERO_VEC3); - static QString getComponentModeAsString(uint32_t mode); std::array::const_iterator findComponent(const QString& mode); @@ -479,6 +479,8 @@ void EntityPropertyFlagsFromScriptValue(const QScriptValue& object, EntityProper inline void EntityItemProperties::setPosition(const glm::vec3& value) { _position = glm::clamp(value, (float)-HALF_TREE_SCALE, (float)HALF_TREE_SCALE); _positionChanged = true; } +QDebug& operator<<(QDebug& dbg, const EntityPropertyFlags& f); + inline QDebug operator<<(QDebug debug, const EntityItemProperties& properties) { debug << "EntityItemProperties[" << "\n"; diff --git a/libraries/entities/src/EntityItemPropertiesMacros.h b/libraries/entities/src/EntityItemPropertiesMacros.h index c963c66187..76723526db 100644 --- a/libraries/entities/src/EntityItemPropertiesMacros.h +++ b/libraries/entities/src/EntityItemPropertiesMacros.h @@ -411,10 +411,12 @@ inline QRect QRect_convertFromScriptValue(const QScriptValue& v, bool& isValid) static T _static##N; #define ADD_PROPERTY_TO_MAP(P, N, n, T) \ - _propertyStringsToEnums[#n] = P; + _propertyStringsToEnums[#n] = P; \ + _enumsToPropertyStrings[P] = #n; #define ADD_GROUP_PROPERTY_TO_MAP(P, G, g, N, n) \ - _propertyStringsToEnums[#g "." #n] = P; + _propertyStringsToEnums[#g "." #n] = P; \ + _enumsToPropertyStrings[P] = #g "." #n; #define DEFINE_CORE(N, n, T, V) \ public: \ diff --git a/libraries/entities/src/EntityPropertyFlags.cpp b/libraries/entities/src/EntityPropertyFlags.cpp deleted file mode 100644 index 4cc44e8318..0000000000 --- a/libraries/entities/src/EntityPropertyFlags.cpp +++ /dev/null @@ -1,206 +0,0 @@ - -#include "EntityPropertyFlags.h" - - -QDebug& operator<<(QDebug& dbg, const EntityPropertyFlags& f) { - QString result = "[ "; - - result = f.getHasProperty(PROP_PAGED_PROPERTY) ? result + "pagedProperty " : result; - result = f.getHasProperty(PROP_CUSTOM_PROPERTIES_INCLUDED) ? result + "customPropertiesIncluded " : result; - result = f.getHasProperty(PROP_VISIBLE) ? result + "visible " : result; - result = f.getHasProperty(PROP_CAN_CAST_SHADOW) ? result + "canCastShadow " : result; - result = f.getHasProperty(PROP_POSITION) ? result + "position " : result; - result = f.getHasProperty(PROP_DIMENSIONS) ? result + "dimensions " : result; - result = f.getHasProperty(PROP_ROTATION) ? result + "rotation " : result; - result = f.getHasProperty(PROP_DENSITY) ? result + "density " : result; - result = f.getHasProperty(PROP_VELOCITY) ? result + "velocity " : result; - result = f.getHasProperty(PROP_GRAVITY) ? result + "gravity " : result; - result = f.getHasProperty(PROP_DAMPING) ? result + "damping " : result; - result = f.getHasProperty(PROP_LIFETIME) ? result + "lifetime " : result; - result = f.getHasProperty(PROP_SCRIPT) ? result + "script " : result; - result = f.getHasProperty(PROP_COLOR) ? result + "color " : result; - result = f.getHasProperty(PROP_MODEL_URL) ? result + "modelUrl " : result; - result = f.getHasProperty(PROP_ANIMATION_URL) ? result + "animationUrl " : result; - result = f.getHasProperty(PROP_ANIMATION_FPS) ? result + "animationFps " : result; - result = f.getHasProperty(PROP_ANIMATION_FRAME_INDEX) ? result + "animationFrameIndex " : result; - result = f.getHasProperty(PROP_ANIMATION_PLAYING) ? result + "animationPlaying " : result; - result = f.getHasProperty(PROP_ANIMATION_ALLOW_TRANSLATION) ? result + "animationAllowTranslation " : result; - result = f.getHasProperty(PROP_RELAY_PARENT_JOINTS) ? result + "relayParentJoints " : result; - result = f.getHasProperty(PROP_REGISTRATION_POINT) ? result + "registrationPoint " : result; - result = f.getHasProperty(PROP_ANGULAR_VELOCITY) ? result + "angularVelocity " : result; - result = f.getHasProperty(PROP_ANGULAR_DAMPING) ? result + "angularDamping " : result; - result = f.getHasProperty(PROP_COLLISIONLESS) ? result + "collisionless " : result; - result = f.getHasProperty(PROP_DYNAMIC) ? result + "dynamic " : result; - result = f.getHasProperty(PROP_IS_SPOTLIGHT) ? result + "isSpotlight " : result; - result = f.getHasProperty(PROP_DIFFUSE_COLOR) ? result + "diffuseColor " : result; - result = f.getHasProperty(PROP_AMBIENT_COLOR_UNUSED) ? result + "ambientColorUnused " : result; - result = f.getHasProperty(PROP_SPECULAR_COLOR_UNUSED) ? result + "specularColorUnused " : result; - result = f.getHasProperty(PROP_INTENSITY) ? result + "intensity " : result; - result = f.getHasProperty(PROP_LINEAR_ATTENUATION_UNUSED) ? result + "linearAttenuationUnused " : result; - result = f.getHasProperty(PROP_QUADRATIC_ATTENUATION_UNUSED) ? result + "quadraticAttenuationUnused " : result; - result = f.getHasProperty(PROP_EXPONENT) ? result + "exponent " : result; - result = f.getHasProperty(PROP_CUTOFF) ? result + "cutoff " : result; - result = f.getHasProperty(PROP_LOCKED) ? result + "locked " : result; - result = f.getHasProperty(PROP_TEXTURES) ? result + "textures " : result; - result = f.getHasProperty(PROP_ANIMATION_SETTINGS_UNUSED) ? result + "animationSettingsUnused " : result; - result = f.getHasProperty(PROP_USER_DATA) ? result + "userData " : result; - result = f.getHasProperty(PROP_SHAPE_TYPE) ? result + "shapeType " : result; - result = f.getHasProperty(PROP_MAX_PARTICLES) ? result + "maxParticles " : result; - result = f.getHasProperty(PROP_LIFESPAN) ? result + "lifespan " : result; - result = f.getHasProperty(PROP_EMIT_RATE) ? result + "emitRate " : result; - result = f.getHasProperty(PROP_EMIT_SPEED) ? result + "emitSpeed " : result; - result = f.getHasProperty(PROP_EMIT_ACCELERATION) ? result + "emitAcceleration " : result; - result = f.getHasProperty(PROP_PARTICLE_RADIUS) ? result + "particleRadius " : result; - result = f.getHasProperty(PROP_COMPOUND_SHAPE_URL) ? result + "compoundShapeUrl " : result; - result = f.getHasProperty(PROP_MARKETPLACE_ID) ? result + "marketplaceID " : result; - result = f.getHasProperty(PROP_ACCELERATION) ? result + "acceleration " : result; - result = f.getHasProperty(PROP_SIMULATION_OWNER) ? result + "simulationOwner " : result; - result = f.getHasProperty(PROP_NAME) ? result + "name " : result; - result = f.getHasProperty(PROP_COLLISION_SOUND_URL) ? result + "collisionSoundUrl " : result; - result = f.getHasProperty(PROP_RESTITUTION) ? result + "restitution " : result; - result = f.getHasProperty(PROP_FRICTION) ? result + "friction " : result; - result = f.getHasProperty(PROP_VOXEL_VOLUME_SIZE) ? result + "voxelVolumeSize " : result; - result = f.getHasProperty(PROP_VOXEL_DATA) ? result + "voxelData " : result; - result = f.getHasProperty(PROP_VOXEL_SURFACE_STYLE) ? result + "voxelSurfaceStyle " : result; - result = f.getHasProperty(PROP_LINE_POINTS) ? result + "linePoints " : result; - result = f.getHasProperty(PROP_HREF) ? result + "href " : result; - result = f.getHasProperty(PROP_DESCRIPTION) ? result + "description " : result; - result = f.getHasProperty(PROP_BILLBOARD_MODE) ? result + "billboardMode " : result; - result = f.getHasProperty(PROP_SCRIPT_TIMESTAMP) ? result + "scriptTimestamp " : result; - result = f.getHasProperty(PROP_ACTION_DATA) ? result + "actionData " : result; - result = f.getHasProperty(PROP_X_TEXTURE_URL) ? result + "xTextureUrl " : result; - result = f.getHasProperty(PROP_Y_TEXTURE_URL) ? result + "yTextureUrl " : result; - result = f.getHasProperty(PROP_Z_TEXTURE_URL) ? result + "zTextureUrl " : result; - result = f.getHasProperty(PROP_NORMALS) ? result + "normals " : result; - result = f.getHasProperty(PROP_STROKE_COLORS) ? result + "strokeColors " : result; - result = f.getHasProperty(PROP_STROKE_WIDTHS) ? result + "strokeWidths " : result; - result = f.getHasProperty(PROP_IS_UV_MODE_STRETCH) ? result + "isUvModeStretch " : result; - result = f.getHasProperty(PROP_SPEED_SPREAD) ? result + "speedSpread " : result; - result = f.getHasProperty(PROP_ACCELERATION_SPREAD) ? result + "accelerationSpread " : result; - result = f.getHasProperty(PROP_X_N_NEIGHBOR_ID) ? result + "xNNeighborID " : result; - result = f.getHasProperty(PROP_Y_N_NEIGHBOR_ID) ? result + "yNNeighborID " : result; - result = f.getHasProperty(PROP_Z_N_NEIGHBOR_ID) ? result + "zNNeighborID " : result; - result = f.getHasProperty(PROP_X_P_NEIGHBOR_ID) ? result + "xPNeighborID " : result; - result = f.getHasProperty(PROP_Y_P_NEIGHBOR_ID) ? result + "yPNeighborID " : result; - result = f.getHasProperty(PROP_Z_P_NEIGHBOR_ID) ? result + "zPNeighborID " : result; - result = f.getHasProperty(PROP_RADIUS_SPREAD) ? result + "radiusSpread " : result; - result = f.getHasProperty(PROP_RADIUS_START) ? result + "radiusStart " : result; - result = f.getHasProperty(PROP_RADIUS_FINISH) ? result + "radiusFinish " : result; - result = f.getHasProperty(PROP_ALPHA) ? result + "alpha " : result; - result = f.getHasProperty(PROP_COLOR_SPREAD) ? result + "colorSpread " : result; - result = f.getHasProperty(PROP_COLOR_START) ? result + "colorStart " : result; - result = f.getHasProperty(PROP_COLOR_FINISH) ? result + "colorFinish " : result; - result = f.getHasProperty(PROP_ALPHA_SPREAD) ? result + "alphaSpread " : result; - result = f.getHasProperty(PROP_ALPHA_START) ? result + "alphaStart " : result; - result = f.getHasProperty(PROP_ALPHA_FINISH) ? result + "alphaFinish " : result; - result = f.getHasProperty(PROP_EMIT_ORIENTATION) ? result + "emitOrientation " : result; - result = f.getHasProperty(PROP_EMIT_DIMENSIONS) ? result + "emitDimensions " : result; - result = f.getHasProperty(PROP_EMIT_RADIUS_START) ? result + "emitRadiusStart " : result; - result = f.getHasProperty(PROP_POLAR_START) ? result + "polarStart " : result; - result = f.getHasProperty(PROP_POLAR_FINISH) ? result + "polarFinish " : result; - result = f.getHasProperty(PROP_AZIMUTH_START) ? result + "azimuthStart " : result; - result = f.getHasProperty(PROP_AZIMUTH_FINISH) ? result + "azimuthFinish " : result; - result = f.getHasProperty(PROP_ANIMATION_LOOP) ? result + "animationLoop " : result; - result = f.getHasProperty(PROP_ANIMATION_FIRST_FRAME) ? result + "animationFirstFrame " : result; - result = f.getHasProperty(PROP_ANIMATION_LAST_FRAME) ? result + "animationLastFrame " : result; - result = f.getHasProperty(PROP_ANIMATION_HOLD) ? result + "animationHold " : result; - result = f.getHasProperty(PROP_ANIMATION_START_AUTOMATICALLY) ? result + "animationStartAutomatically " : result; - result = f.getHasProperty(PROP_EMITTER_SHOULD_TRAIL) ? result + "emitterShouldTrail " : result; - result = f.getHasProperty(PROP_PARENT_ID) ? result + "parentID " : result; - result = f.getHasProperty(PROP_PARENT_JOINT_INDEX) ? result + "parentJointIndex " : result; - result = f.getHasProperty(PROP_LOCAL_POSITION) ? result + "localPosition " : result; - result = f.getHasProperty(PROP_LOCAL_ROTATION) ? result + "localRotation " : result; - result = f.getHasProperty(PROP_QUERY_AA_CUBE) ? result + "queryAaCube " : result; - result = f.getHasProperty(PROP_JOINT_ROTATIONS_SET) ? result + "jointRotationsSet " : result; - result = f.getHasProperty(PROP_JOINT_ROTATIONS) ? result + "jointRotations " : result; - result = f.getHasProperty(PROP_JOINT_TRANSLATIONS_SET) ? result + "jointTranslationsSet " : result; - result = f.getHasProperty(PROP_JOINT_TRANSLATIONS) ? result + "jointTranslations " : result; - result = f.getHasProperty(PROP_COLLISION_MASK) ? result + "collisionMask " : result; - result = f.getHasProperty(PROP_FALLOFF_RADIUS) ? result + "falloffRadius " : result; - result = f.getHasProperty(PROP_FLYING_ALLOWED) ? result + "flyingAllowed " : result; - result = f.getHasProperty(PROP_GHOSTING_ALLOWED) ? result + "ghostingAllowed " : result; - result = f.getHasProperty(PROP_ENTITY_HOST_TYPE) ? result + "entityHostType " : result; - result = f.getHasProperty(PROP_OWNING_AVATAR_ID) ? result + "owningAvatarID " : result; - result = f.getHasProperty(PROP_SHAPE) ? result + "shape " : result; - result = f.getHasProperty(PROP_DPI) ? result + "dpi " : result; - result = f.getHasProperty(PROP_LOCAL_VELOCITY) ? result + "localVelocity " : result; - result = f.getHasProperty(PROP_LOCAL_ANGULAR_VELOCITY) ? result + "localAngularVelocity " : result; - result = f.getHasProperty(PROP_LAST_EDITED_BY) ? result + "lastEditedBy " : result; - result = f.getHasProperty(PROP_SERVER_SCRIPTS) ? result + "serverScripts " : result; - result = f.getHasProperty(PROP_FILTER_URL) ? result + "filterUrl " : result; - result = f.getHasProperty(PROP_ITEM_NAME) ? result + "itemName " : result; - result = f.getHasProperty(PROP_ITEM_DESCRIPTION) ? result + "itemDescription " : result; - result = f.getHasProperty(PROP_ITEM_CATEGORIES) ? result + "itemCategories " : result; - result = f.getHasProperty(PROP_ITEM_ARTIST) ? result + "itemArtist " : result; - result = f.getHasProperty(PROP_ITEM_LICENSE) ? result + "itemLicense " : result; - result = f.getHasProperty(PROP_LIMITED_RUN) ? result + "limitedRun " : result; - result = f.getHasProperty(PROP_EDITION_NUMBER) ? result + "editionNumber " : result; - result = f.getHasProperty(PROP_ENTITY_INSTANCE_NUMBER) ? result + "entityInstanceNumber " : result; - result = f.getHasProperty(PROP_CERTIFICATE_ID) ? result + "certificateID " : result; - result = f.getHasProperty(PROP_STATIC_CERTIFICATE_VERSION) ? result + "staticCertificateVersion " : result; - result = f.getHasProperty(PROP_CLONEABLE) ? result + "cloneable " : result; - result = f.getHasProperty(PROP_CLONE_LIFETIME) ? result + "cloneLifetime " : result; - result = f.getHasProperty(PROP_CLONE_LIMIT) ? result + "cloneLimit " : result; - result = f.getHasProperty(PROP_CLONE_DYNAMIC) ? result + "cloneDynamic " : result; - result = f.getHasProperty(PROP_CLONE_AVATAR_ENTITY) ? result + "cloneAvatarEntity " : result; - result = f.getHasProperty(PROP_CLONE_ORIGIN_ID) ? result + "cloneOriginID " : result; - result = f.getHasProperty(PROP_HAZE_MODE) ? result + "hazeMode " : result; - result = f.getHasProperty(PROP_KEYLIGHT_COLOR) ? result + "keylightColor " : result; - result = f.getHasProperty(PROP_KEYLIGHT_INTENSITY) ? result + "keylightIntensity " : result; - result = f.getHasProperty(PROP_KEYLIGHT_DIRECTION) ? result + "keylightDirection " : result; - result = f.getHasProperty(PROP_KEYLIGHT_CAST_SHADOW) ? result + "keylightCastShadow " : result; - result = f.getHasProperty(PROP_HAZE_RANGE) ? result + "hazeRange " : result; - result = f.getHasProperty(PROP_HAZE_COLOR) ? result + "hazeColor " : result; - result = f.getHasProperty(PROP_HAZE_GLARE_COLOR) ? result + "hazeGlareColor " : result; - result = f.getHasProperty(PROP_HAZE_ENABLE_GLARE) ? result + "hazeEnableGlare " : result; - result = f.getHasProperty(PROP_HAZE_GLARE_ANGLE) ? result + "hazeGlareAngle " : result; - result = f.getHasProperty(PROP_HAZE_ALTITUDE_EFFECT) ? result + "hazeAltitudeEffect " : result; - result = f.getHasProperty(PROP_HAZE_CEILING) ? result + "hazeCeiling " : result; - result = f.getHasProperty(PROP_HAZE_BASE_REF) ? result + "hazeBaseRef " : result; - result = f.getHasProperty(PROP_HAZE_BACKGROUND_BLEND) ? result + "hazeBackgroundBlend " : result; - result = f.getHasProperty(PROP_HAZE_ATTENUATE_KEYLIGHT) ? result + "hazeAttenuateKeylight " : result; - result = f.getHasProperty(PROP_HAZE_KEYLIGHT_RANGE) ? result + "hazeKeylightRange " : result; - result = f.getHasProperty(PROP_HAZE_KEYLIGHT_ALTITUDE) ? result + "hazeKeylightAltitude " : result; - result = f.getHasProperty(PROP_KEY_LIGHT_MODE) ? result + "keyLightMode " : result; - result = f.getHasProperty(PROP_AMBIENT_LIGHT_MODE) ? result + "ambientLightMode " : result; - result = f.getHasProperty(PROP_SKYBOX_MODE) ? result + "skyboxMode " : result; - result = f.getHasProperty(PROP_LOCAL_DIMENSIONS) ? result + "localDimensions " : result; - result = f.getHasProperty(PROP_MATERIAL_URL) ? result + "materialUrl " : result; - result = f.getHasProperty(PROP_MATERIAL_MAPPING_MODE) ? result + "materialMappingMode " : result; - result = f.getHasProperty(PROP_MATERIAL_PRIORITY) ? result + "materialPriority " : result; - result = f.getHasProperty(PROP_PARENT_MATERIAL_NAME) ? result + "parentMaterialName " : result; - result = f.getHasProperty(PROP_MATERIAL_MAPPING_POS) ? result + "materialMappingPos " : result; - result = f.getHasProperty(PROP_MATERIAL_MAPPING_SCALE) ? result + "materialMappingScale " : result; - result = f.getHasProperty(PROP_MATERIAL_MAPPING_ROT) ? result + "materialMappingRot " : result; - result = f.getHasProperty(PROP_MATERIAL_DATA) ? result + "materialData " : result; - result = f.getHasProperty(PROP_MATERIAL_REPEAT) ? result + "materialRepeat " : result; - result = f.getHasProperty(PROP_VISIBLE_IN_SECONDARY_CAMERA) ? result + "visibleInSecondaryCamera " : result; - result = f.getHasProperty(PROP_PARTICLE_SPIN) ? result + "particleSpin " : result; - result = f.getHasProperty(PROP_SPIN_START) ? result + "spinStart " : result; - result = f.getHasProperty(PROP_SPIN_FINISH) ? result + "spinFinish " : result; - result = f.getHasProperty(PROP_SPIN_SPREAD) ? result + "spinSpread " : result; - result = f.getHasProperty(PROP_PARTICLE_ROTATE_WITH_ENTITY) ? result + "particleRotateWithEntity " : result; - result = f.getHasProperty(PROP_BLOOM_INTENSITY) ? result + "bloomIntensity " : result; - result = f.getHasProperty(PROP_BLOOM_THRESHOLD) ? result + "bloomThreshold " : result; - result = f.getHasProperty(PROP_BLOOM_SIZE) ? result + "bloomSize " : result; - result = f.getHasProperty(PROP_GRAB_GRABBABLE) ? result + "grab.Grabbable " : result; - result = f.getHasProperty(PROP_GRAB_KINEMATIC) ? result + "grab.Kinematic " : result; - result = f.getHasProperty(PROP_GRAB_FOLLOWS_CONTROLLER) ? result + "grab.FollowsController " : result; - result = f.getHasProperty(PROP_GRAB_TRIGGERABLE) ? result + "grab.Triggerable " : result; - result = f.getHasProperty(PROP_GRAB_EQUIPPABLE) ? result + "grab.Equippable " : result; - result = - f.getHasProperty(PROP_GRAB_LEFT_EQUIPPABLE_POSITION_OFFSET) ? result + "grab.LeftEquippablePositionOffset " : result; - result = - f.getHasProperty(PROP_GRAB_LEFT_EQUIPPABLE_ROTATION_OFFSET) ? result + "grab.LeftEquippableRotationOffset " : result; - result = - f.getHasProperty(PROP_GRAB_RIGHT_EQUIPPABLE_POSITION_OFFSET) ? result + "grab.RightEquippablePositionOffset " : result; - result = - f.getHasProperty(PROP_GRAB_RIGHT_EQUIPPABLE_ROTATION_OFFSET) ? result + "grab.RightEquippableRotationOffset " : result; - result = f.getHasProperty(PROP_GRAB_EQUIPPABLE_INDICATOR_URL) ? result + "grab.EquippableIndicatorURL " : result; - result = f.getHasProperty(PROP_GRAB_EQUIPPABLE_INDICATOR_SCALE) ? result + "grab.EquippableIndicatorScale " : result; - result = f.getHasProperty(PROP_GRAB_EQUIPPABLE_INDICATOR_OFFSET) ? result + "grab.EquippableIndicatorOffset " : result; - - result += "]"; - dbg.nospace() << result; - return dbg; -} diff --git a/libraries/entities/src/EntityPropertyFlags.h b/libraries/entities/src/EntityPropertyFlags.h index 78a15d259a..812b788b06 100644 --- a/libraries/entities/src/EntityPropertyFlags.h +++ b/libraries/entities/src/EntityPropertyFlags.h @@ -19,6 +19,7 @@ enum EntityPropertyList { PROP_CUSTOM_PROPERTIES_INCLUDED, // Core properties + PROP_SIMULATION_OWNER, PROP_VISIBLE, PROP_NAME, PROP_LOCKED, @@ -66,7 +67,6 @@ enum EntityPropertyList { PROP_COLLISIONLESS, PROP_COLLISION_MASK, PROP_DYNAMIC, - PROP_SIMULATION_OWNER, PROP_COLLISION_SOUND_URL, PROP_ACTION_DATA, @@ -166,13 +166,13 @@ enum EntityPropertyList { PROP_SPEED_SPREAD = PROP_DERIVED_5, PROP_EMIT_ORIENTATION = PROP_DERIVED_6, PROP_EMIT_DIMENSIONS = PROP_DERIVED_7, - PROP_EMIT_RADIUS_START = PROP_DERIVED_8, - PROP_EMIT_ACCELERATION = PROP_DERIVED_9, - PROP_ACCELERATION_SPREAD = PROP_DERIVED_10, - PROP_POLAR_START = PROP_DERIVED_11, - PROP_POLAR_FINISH = PROP_DERIVED_12, - PROP_AZIMUTH_START = PROP_DERIVED_13, - PROP_AZIMUTH_FINISH = PROP_DERIVED_14, + PROP_ACCELERATION_SPREAD = PROP_DERIVED_8, + PROP_POLAR_START = PROP_DERIVED_9, + PROP_POLAR_FINISH = PROP_DERIVED_10, + PROP_AZIMUTH_START = PROP_DERIVED_11, + PROP_AZIMUTH_FINISH = PROP_DERIVED_12, + PROP_EMIT_RADIUS_START = PROP_DERIVED_13, + PROP_EMIT_ACCELERATION = PROP_DERIVED_14, PROP_PARTICLE_RADIUS = PROP_DERIVED_15, PROP_RADIUS_SPREAD = PROP_DERIVED_16, PROP_RADIUS_START = PROP_DERIVED_17, @@ -327,10 +327,4 @@ typedef PropertyFlags EntityPropertyFlags; // one greater than the last item property due to the enum's auto-incrementing. extern EntityPropertyList PROP_LAST_ITEM; -QString EntityPropertyFlagsToString(EntityPropertyFlags propertiesFlags); - - -QDebug& operator<<(QDebug& dbg, const EntityPropertyFlags& f); - - #endif // hifi_EntityPropertyFlags_h diff --git a/libraries/entities/src/ImageEntityItem.cpp b/libraries/entities/src/ImageEntityItem.cpp index 98817a63ba..cdff1b5390 100644 --- a/libraries/entities/src/ImageEntityItem.cpp +++ b/libraries/entities/src/ImageEntityItem.cpp @@ -30,30 +30,30 @@ void ImageEntityItem::setUnscaledDimensions(const glm::vec3& value) { EntityItemProperties ImageEntityItem::getProperties(const EntityPropertyFlags& desiredProperties, bool allowEmptyDesiredProperties) const { EntityItemProperties properties = EntityItem::getProperties(desiredProperties, allowEmptyDesiredProperties); // get the properties from our base class + COPY_ENTITY_PROPERTY_TO_PROPERTIES(color, getColor); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(alpha, getAlpha); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(imageURL, getImageURL); COPY_ENTITY_PROPERTY_TO_PROPERTIES(emissive, getEmissive); COPY_ENTITY_PROPERTY_TO_PROPERTIES(keepAspectRatio, getKeepAspectRatio); COPY_ENTITY_PROPERTY_TO_PROPERTIES(billboardMode, getBillboardMode); COPY_ENTITY_PROPERTY_TO_PROPERTIES(subImage, getSubImage); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(color, getColor); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(alpha, getAlpha); - return properties; } bool ImageEntityItem::setProperties(const EntityItemProperties& properties) { bool somethingChanged = EntityItem::setProperties(properties); // set the properties in our base class + SET_ENTITY_PROPERTY_FROM_PROPERTIES(color, setColor); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(alpha, setAlpha); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(imageURL, setImageURL); SET_ENTITY_PROPERTY_FROM_PROPERTIES(emissive, setEmissive); SET_ENTITY_PROPERTY_FROM_PROPERTIES(keepAspectRatio, setKeepAspectRatio); SET_ENTITY_PROPERTY_FROM_PROPERTIES(billboardMode, setBillboardMode); SET_ENTITY_PROPERTY_FROM_PROPERTIES(subImage, setSubImage); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(color, setColor); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(alpha, setAlpha); - if (somethingChanged) { bool wantDebug = false; if (wantDebug) { @@ -75,30 +75,30 @@ int ImageEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* data, int bytesRead = 0; const unsigned char* dataAt = data; + READ_ENTITY_PROPERTY(PROP_COLOR, u8vec3Color, setColor); + READ_ENTITY_PROPERTY(PROP_ALPHA, float, setAlpha); + READ_ENTITY_PROPERTY(PROP_IMAGE_URL, QString, setImageURL); READ_ENTITY_PROPERTY(PROP_EMISSIVE, bool, setEmissive); READ_ENTITY_PROPERTY(PROP_KEEP_ASPECT_RATIO, bool, setKeepAspectRatio); READ_ENTITY_PROPERTY(PROP_BILLBOARD_MODE, BillboardMode, setBillboardMode); READ_ENTITY_PROPERTY(PROP_SUB_IMAGE, QRect, setSubImage); - READ_ENTITY_PROPERTY(PROP_COLOR, u8vec3Color, setColor); - READ_ENTITY_PROPERTY(PROP_ALPHA, float, setAlpha); - return bytesRead; } EntityPropertyFlags ImageEntityItem::getEntityProperties(EncodeBitstreamParams& params) const { EntityPropertyFlags requestedProperties = EntityItem::getEntityProperties(params); + requestedProperties += PROP_COLOR; + requestedProperties += PROP_ALPHA; + requestedProperties += PROP_IMAGE_URL; requestedProperties += PROP_EMISSIVE; requestedProperties += PROP_KEEP_ASPECT_RATIO; requestedProperties += PROP_BILLBOARD_MODE; requestedProperties += PROP_SUB_IMAGE; - requestedProperties += PROP_COLOR; - requestedProperties += PROP_ALPHA; - return requestedProperties; } @@ -112,14 +112,14 @@ void ImageEntityItem::appendSubclassData(OctreePacketData* packetData, EncodeBit bool successPropertyFits = true; + APPEND_ENTITY_PROPERTY(PROP_COLOR, getColor()); + APPEND_ENTITY_PROPERTY(PROP_ALPHA, getAlpha()); + APPEND_ENTITY_PROPERTY(PROP_IMAGE_URL, getImageURL()); APPEND_ENTITY_PROPERTY(PROP_EMISSIVE, getEmissive()); APPEND_ENTITY_PROPERTY(PROP_KEEP_ASPECT_RATIO, getKeepAspectRatio()); APPEND_ENTITY_PROPERTY(PROP_BILLBOARD_MODE, (uint32_t)getBillboardMode()); APPEND_ENTITY_PROPERTY(PROP_SUB_IMAGE, getSubImage()); - - APPEND_ENTITY_PROPERTY(PROP_COLOR, getColor()); - APPEND_ENTITY_PROPERTY(PROP_ALPHA, getAlpha()); } bool ImageEntityItem::findDetailedRayIntersection(const glm::vec3& origin, const glm::vec3& direction, diff --git a/libraries/entities/src/LightEntityItem.cpp b/libraries/entities/src/LightEntityItem.cpp index e3de5f66f8..185aa70dc0 100644 --- a/libraries/entities/src/LightEntityItem.cpp +++ b/libraries/entities/src/LightEntityItem.cpp @@ -71,8 +71,8 @@ void LightEntityItem::dimensionsChanged() { EntityItemProperties LightEntityItem::getProperties(const EntityPropertyFlags& desiredProperties, bool allowEmptyDesiredProperties) const { EntityItemProperties properties = EntityItem::getProperties(desiredProperties, allowEmptyDesiredProperties); // get the properties from our base class - COPY_ENTITY_PROPERTY_TO_PROPERTIES(isSpotlight, getIsSpotlight); COPY_ENTITY_PROPERTY_TO_PROPERTIES(color, getColor); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(isSpotlight, getIsSpotlight); COPY_ENTITY_PROPERTY_TO_PROPERTIES(intensity, getIntensity); COPY_ENTITY_PROPERTY_TO_PROPERTIES(exponent, getExponent); COPY_ENTITY_PROPERTY_TO_PROPERTIES(cutoff, getCutoff); @@ -155,8 +155,8 @@ bool LightEntityItem::setProperties(const EntityItemProperties& properties) { bool LightEntityItem::setSubClassProperties(const EntityItemProperties& properties) { bool somethingChanged = EntityItem::setSubClassProperties(properties); // set the properties in our base class - SET_ENTITY_PROPERTY_FROM_PROPERTIES(isSpotlight, setIsSpotlight); SET_ENTITY_PROPERTY_FROM_PROPERTIES(color, setColor); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(isSpotlight, setIsSpotlight); SET_ENTITY_PROPERTY_FROM_PROPERTIES(intensity, setIntensity); SET_ENTITY_PROPERTY_FROM_PROPERTIES(exponent, setExponent); SET_ENTITY_PROPERTY_FROM_PROPERTIES(cutoff, setCutoff); @@ -174,8 +174,8 @@ int LightEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* data, int bytesRead = 0; const unsigned char* dataAt = data; - READ_ENTITY_PROPERTY(PROP_IS_SPOTLIGHT, bool, setIsSpotlight); READ_ENTITY_PROPERTY(PROP_COLOR, glm::u8vec3, setColor); + READ_ENTITY_PROPERTY(PROP_IS_SPOTLIGHT, bool, setIsSpotlight); READ_ENTITY_PROPERTY(PROP_INTENSITY, float, setIntensity); READ_ENTITY_PROPERTY(PROP_EXPONENT, float, setExponent); READ_ENTITY_PROPERTY(PROP_CUTOFF, float, setCutoff); @@ -187,8 +187,8 @@ int LightEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* data, EntityPropertyFlags LightEntityItem::getEntityProperties(EncodeBitstreamParams& params) const { EntityPropertyFlags requestedProperties = EntityItem::getEntityProperties(params); - requestedProperties += PROP_IS_SPOTLIGHT; requestedProperties += PROP_COLOR; + requestedProperties += PROP_IS_SPOTLIGHT; requestedProperties += PROP_INTENSITY; requestedProperties += PROP_EXPONENT; requestedProperties += PROP_CUTOFF; @@ -205,8 +205,8 @@ void LightEntityItem::appendSubclassData(OctreePacketData* packetData, EncodeBit OctreeElement::AppendState& appendState) const { bool successPropertyFits = true; - APPEND_ENTITY_PROPERTY(PROP_IS_SPOTLIGHT, getIsSpotlight()); APPEND_ENTITY_PROPERTY(PROP_COLOR, getColor()); + APPEND_ENTITY_PROPERTY(PROP_IS_SPOTLIGHT, getIsSpotlight()); APPEND_ENTITY_PROPERTY(PROP_INTENSITY, getIntensity()); APPEND_ENTITY_PROPERTY(PROP_EXPONENT, getExponent()); APPEND_ENTITY_PROPERTY(PROP_CUTOFF, getCutoff()); diff --git a/libraries/entities/src/ModelEntityItem.cpp b/libraries/entities/src/ModelEntityItem.cpp index 067a9e0b19..55ae1c6c3b 100644 --- a/libraries/entities/src/ModelEntityItem.cpp +++ b/libraries/entities/src/ModelEntityItem.cpp @@ -55,11 +55,13 @@ void ModelEntityItem::setTextures(const QString& textures) { EntityItemProperties ModelEntityItem::getProperties(const EntityPropertyFlags& desiredProperties, bool allowEmptyDesiredProperties) const { EntityItemProperties properties = EntityItem::getProperties(desiredProperties, allowEmptyDesiredProperties); // get the properties from our base class - COPY_ENTITY_PROPERTY_TO_PROPERTIES(color, getColor); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(modelURL, getModelURL); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(compoundShapeURL, getCompoundShapeURL); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(textures, getTextures); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(shapeType, getShapeType); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(compoundShapeURL, getCompoundShapeURL); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(color, getColor); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(textures, getTextures); + + COPY_ENTITY_PROPERTY_TO_PROPERTIES(modelURL, getModelURL); COPY_ENTITY_PROPERTY_TO_PROPERTIES(jointRotationsSet, getJointRotationsSet); COPY_ENTITY_PROPERTY_TO_PROPERTIES(jointRotations, getJointRotations); COPY_ENTITY_PROPERTY_TO_PROPERTIES(jointTranslationsSet, getJointTranslationsSet); @@ -75,11 +77,12 @@ bool ModelEntityItem::setProperties(const EntityItemProperties& properties) { bool somethingChanged = false; somethingChanged = EntityItem::setProperties(properties); // set the properties in our base class - SET_ENTITY_PROPERTY_FROM_PROPERTIES(color, setColor); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(modelURL, setModelURL); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(compoundShapeURL, setCompoundShapeURL); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(textures, setTextures); SET_ENTITY_PROPERTY_FROM_PROPERTIES(shapeType, setShapeType); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(compoundShapeURL, setCompoundShapeURL); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(color, setColor); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(textures, setTextures); + + SET_ENTITY_PROPERTY_FROM_PROPERTIES(modelURL, setModelURL); SET_ENTITY_PROPERTY_FROM_PROPERTIES(jointRotationsSet, setJointRotationsSet); SET_ENTITY_PROPERTY_FROM_PROPERTIES(jointRotations, setJointRotations); SET_ENTITY_PROPERTY_FROM_PROPERTIES(jointTranslationsSet, setJointTranslationsSet); @@ -116,11 +119,12 @@ int ModelEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* data, const unsigned char* dataAt = data; bool animationPropertiesChanged = false; - READ_ENTITY_PROPERTY(PROP_COLOR, glm::u8vec3, setColor); - READ_ENTITY_PROPERTY(PROP_MODEL_URL, QString, setModelURL); - READ_ENTITY_PROPERTY(PROP_COMPOUND_SHAPE_URL, QString, setCompoundShapeURL); - READ_ENTITY_PROPERTY(PROP_TEXTURES, QString, setTextures); READ_ENTITY_PROPERTY(PROP_SHAPE_TYPE, ShapeType, setShapeType); + READ_ENTITY_PROPERTY(PROP_COMPOUND_SHAPE_URL, QString, setCompoundShapeURL); + READ_ENTITY_PROPERTY(PROP_COLOR, glm::u8vec3, setColor); + READ_ENTITY_PROPERTY(PROP_TEXTURES, QString, setTextures); + + READ_ENTITY_PROPERTY(PROP_MODEL_URL, QString, setModelURL); READ_ENTITY_PROPERTY(PROP_JOINT_ROTATIONS_SET, QVector, setJointRotationsSet); READ_ENTITY_PROPERTY(PROP_JOINT_ROTATIONS, QVector, setJointRotations); READ_ENTITY_PROPERTY(PROP_JOINT_TRANSLATIONS_SET, QVector, setJointTranslationsSet); @@ -151,11 +155,12 @@ int ModelEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* data, EntityPropertyFlags ModelEntityItem::getEntityProperties(EncodeBitstreamParams& params) const { EntityPropertyFlags requestedProperties = EntityItem::getEntityProperties(params); - requestedProperties += PROP_COLOR; - requestedProperties += PROP_MODEL_URL; - requestedProperties += PROP_COMPOUND_SHAPE_URL; - requestedProperties += PROP_TEXTURES; requestedProperties += PROP_SHAPE_TYPE; + requestedProperties += PROP_COMPOUND_SHAPE_URL; + requestedProperties += PROP_COLOR; + requestedProperties += PROP_TEXTURES; + + requestedProperties += PROP_MODEL_URL; requestedProperties += PROP_JOINT_ROTATIONS_SET; requestedProperties += PROP_JOINT_ROTATIONS; requestedProperties += PROP_JOINT_TRANSLATIONS_SET; @@ -176,11 +181,12 @@ void ModelEntityItem::appendSubclassData(OctreePacketData* packetData, EncodeBit bool successPropertyFits = true; - APPEND_ENTITY_PROPERTY(PROP_COLOR, getColor()); - APPEND_ENTITY_PROPERTY(PROP_MODEL_URL, getModelURL()); - APPEND_ENTITY_PROPERTY(PROP_COMPOUND_SHAPE_URL, getCompoundShapeURL()); - APPEND_ENTITY_PROPERTY(PROP_TEXTURES, getTextures()); APPEND_ENTITY_PROPERTY(PROP_SHAPE_TYPE, (uint32_t)getShapeType()); + APPEND_ENTITY_PROPERTY(PROP_COMPOUND_SHAPE_URL, getCompoundShapeURL()); + APPEND_ENTITY_PROPERTY(PROP_COLOR, getColor()); + APPEND_ENTITY_PROPERTY(PROP_TEXTURES, getTextures()); + + APPEND_ENTITY_PROPERTY(PROP_MODEL_URL, getModelURL()); APPEND_ENTITY_PROPERTY(PROP_JOINT_ROTATIONS_SET, getJointRotationsSet()); APPEND_ENTITY_PROPERTY(PROP_JOINT_ROTATIONS, getJointRotations()); APPEND_ENTITY_PROPERTY(PROP_JOINT_TRANSLATIONS_SET, getJointTranslationsSet()); diff --git a/libraries/entities/src/ParticleEffectEntityItem.cpp b/libraries/entities/src/ParticleEffectEntityItem.cpp index 2cafbd017e..7426318979 100644 --- a/libraries/entities/src/ParticleEffectEntityItem.cpp +++ b/libraries/entities/src/ParticleEffectEntityItem.cpp @@ -410,6 +410,10 @@ EntityItemProperties ParticleEffectEntityItem::getProperties(const EntityPropert EntityItemProperties properties = EntityItem::getProperties(desiredProperties, allowEmptyDesiredProperties); // get the properties from our base class COPY_ENTITY_PROPERTY_TO_PROPERTIES(shapeType, getShapeType); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(color, getColor); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(alpha, getAlpha); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(textures, getTextures); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(maxParticles, getMaxParticles); COPY_ENTITY_PROPERTY_TO_PROPERTIES(lifespan, getLifespan); @@ -434,17 +438,14 @@ EntityItemProperties ParticleEffectEntityItem::getProperties(const EntityPropert COPY_ENTITY_PROPERTY_TO_PROPERTIES(radiusStart, getRadiusStart); COPY_ENTITY_PROPERTY_TO_PROPERTIES(radiusFinish, getRadiusFinish); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(color, getColor); COPY_ENTITY_PROPERTY_TO_PROPERTIES(colorSpread, getColorSpread); COPY_ENTITY_PROPERTY_TO_PROPERTIES(colorStart, getColorStart); COPY_ENTITY_PROPERTY_TO_PROPERTIES(colorFinish, getColorFinish); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(alpha, getAlpha); COPY_ENTITY_PROPERTY_TO_PROPERTIES(alphaSpread, getAlphaSpread); COPY_ENTITY_PROPERTY_TO_PROPERTIES(alphaStart, getAlphaStart); COPY_ENTITY_PROPERTY_TO_PROPERTIES(alphaFinish, getAlphaFinish); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(textures, getTextures); COPY_ENTITY_PROPERTY_TO_PROPERTIES(emitterShouldTrail, getEmitterShouldTrail); COPY_ENTITY_PROPERTY_TO_PROPERTIES(particleSpin, getParticleSpin); @@ -460,6 +461,10 @@ bool ParticleEffectEntityItem::setProperties(const EntityItemProperties& propert bool somethingChanged = EntityItem::setProperties(properties); // set the properties in our base class SET_ENTITY_PROPERTY_FROM_PROPERTIES(shapeType, setShapeType); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(color, setColor); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(alpha, setAlpha); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(textures, setTextures); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(maxParticles, setMaxParticles); SET_ENTITY_PROPERTY_FROM_PROPERTIES(lifespan, setLifespan); @@ -484,17 +489,14 @@ bool ParticleEffectEntityItem::setProperties(const EntityItemProperties& propert SET_ENTITY_PROPERTY_FROM_PROPERTIES(radiusStart, setRadiusStart); SET_ENTITY_PROPERTY_FROM_PROPERTIES(radiusFinish, setRadiusFinish); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(color, setColor); SET_ENTITY_PROPERTY_FROM_PROPERTIES(colorSpread, setColorSpread); SET_ENTITY_PROPERTY_FROM_PROPERTIES(colorStart, setColorStart); SET_ENTITY_PROPERTY_FROM_PROPERTIES(colorFinish, setColorFinish); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(alpha, setAlpha); SET_ENTITY_PROPERTY_FROM_PROPERTIES(alphaSpread, setAlphaSpread); SET_ENTITY_PROPERTY_FROM_PROPERTIES(alphaStart, setAlphaStart); SET_ENTITY_PROPERTY_FROM_PROPERTIES(alphaFinish, setAlphaFinish); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(textures, setTextures); SET_ENTITY_PROPERTY_FROM_PROPERTIES(emitterShouldTrail, setEmitterShouldTrail); SET_ENTITY_PROPERTY_FROM_PROPERTIES(particleSpin, setParticleSpin); @@ -531,6 +533,10 @@ int ParticleEffectEntityItem::readEntitySubclassDataFromBuffer(const unsigned ch const unsigned char* dataAt = data; READ_ENTITY_PROPERTY(PROP_SHAPE_TYPE, ShapeType, setShapeType); + READ_ENTITY_PROPERTY(PROP_COLOR, u8vec3Color, setColor); + READ_ENTITY_PROPERTY(PROP_ALPHA, float, setAlpha); + READ_ENTITY_PROPERTY(PROP_TEXTURES, QString, setTextures); + READ_ENTITY_PROPERTY(PROP_MAX_PARTICLES, quint32, setMaxParticles); READ_ENTITY_PROPERTY(PROP_LIFESPAN, float, setLifespan); @@ -555,17 +561,14 @@ int ParticleEffectEntityItem::readEntitySubclassDataFromBuffer(const unsigned ch READ_ENTITY_PROPERTY(PROP_RADIUS_START, float, setRadiusStart); READ_ENTITY_PROPERTY(PROP_RADIUS_FINISH, float, setRadiusFinish); - READ_ENTITY_PROPERTY(PROP_COLOR, u8vec3Color, setColor); READ_ENTITY_PROPERTY(PROP_COLOR_SPREAD, u8vec3Color, setColorSpread); READ_ENTITY_PROPERTY(PROP_COLOR_START, vec3Color, setColorStart); READ_ENTITY_PROPERTY(PROP_COLOR_FINISH, vec3Color, setColorFinish); - READ_ENTITY_PROPERTY(PROP_ALPHA, float, setAlpha); READ_ENTITY_PROPERTY(PROP_ALPHA_SPREAD, float, setAlphaSpread); READ_ENTITY_PROPERTY(PROP_ALPHA_START, float, setAlphaStart); READ_ENTITY_PROPERTY(PROP_ALPHA_FINISH, float, setAlphaFinish); - READ_ENTITY_PROPERTY(PROP_TEXTURES, QString, setTextures); READ_ENTITY_PROPERTY(PROP_EMITTER_SHOULD_TRAIL, bool, setEmitterShouldTrail); READ_ENTITY_PROPERTY(PROP_PARTICLE_SPIN, float, setParticleSpin); @@ -581,6 +584,10 @@ EntityPropertyFlags ParticleEffectEntityItem::getEntityProperties(EncodeBitstrea EntityPropertyFlags requestedProperties = EntityItem::getEntityProperties(params); requestedProperties += PROP_SHAPE_TYPE; + requestedProperties += PROP_COLOR; + requestedProperties += PROP_ALPHA; + requestedProperties += PROP_TEXTURES; + requestedProperties += PROP_MAX_PARTICLES; requestedProperties += PROP_LIFESPAN; @@ -605,17 +612,14 @@ EntityPropertyFlags ParticleEffectEntityItem::getEntityProperties(EncodeBitstrea requestedProperties += PROP_RADIUS_START; requestedProperties += PROP_RADIUS_FINISH; - requestedProperties += PROP_COLOR; requestedProperties += PROP_COLOR_SPREAD; requestedProperties += PROP_COLOR_START; requestedProperties += PROP_COLOR_FINISH; - requestedProperties += PROP_ALPHA; requestedProperties += PROP_ALPHA_SPREAD; requestedProperties += PROP_ALPHA_START; requestedProperties += PROP_ALPHA_FINISH; - requestedProperties += PROP_TEXTURES; requestedProperties += PROP_EMITTER_SHOULD_TRAIL; requestedProperties += PROP_PARTICLE_SPIN; @@ -637,10 +641,14 @@ void ParticleEffectEntityItem::appendSubclassData(OctreePacketData* packetData, bool successPropertyFits = true; APPEND_ENTITY_PROPERTY(PROP_SHAPE_TYPE, (uint32_t)getShapeType()); + APPEND_ENTITY_PROPERTY(PROP_COLOR, getColor()); + APPEND_ENTITY_PROPERTY(PROP_ALPHA, getAlpha()); + APPEND_ENTITY_PROPERTY(PROP_TEXTURES, getTextures()); + APPEND_ENTITY_PROPERTY(PROP_MAX_PARTICLES, getMaxParticles()); APPEND_ENTITY_PROPERTY(PROP_LIFESPAN, getLifespan()); - APPEND_ENTITY_PROPERTY(PROP_EMITTING_PARTICLES, getIsEmitting()); + APPEND_ENTITY_PROPERTY(PROP_EMITTING_PARTICLES, getIsEmitting()); APPEND_ENTITY_PROPERTY(PROP_EMIT_RATE, getEmitRate()); APPEND_ENTITY_PROPERTY(PROP_EMIT_SPEED, getEmitSpeed()); APPEND_ENTITY_PROPERTY(PROP_SPEED_SPREAD, getSpeedSpread()); @@ -661,17 +669,14 @@ void ParticleEffectEntityItem::appendSubclassData(OctreePacketData* packetData, APPEND_ENTITY_PROPERTY(PROP_RADIUS_START, getRadiusStart()); APPEND_ENTITY_PROPERTY(PROP_RADIUS_FINISH, getRadiusFinish()); - APPEND_ENTITY_PROPERTY(PROP_COLOR, getColor()); APPEND_ENTITY_PROPERTY(PROP_COLOR_SPREAD, getColorSpread()); APPEND_ENTITY_PROPERTY(PROP_COLOR_START, getColorStart()); APPEND_ENTITY_PROPERTY(PROP_COLOR_FINISH, getColorFinish()); - APPEND_ENTITY_PROPERTY(PROP_ALPHA, getAlpha()); APPEND_ENTITY_PROPERTY(PROP_ALPHA_SPREAD, getAlphaSpread()); APPEND_ENTITY_PROPERTY(PROP_ALPHA_START, getAlphaStart()); APPEND_ENTITY_PROPERTY(PROP_ALPHA_FINISH, getAlphaFinish()); - APPEND_ENTITY_PROPERTY(PROP_TEXTURES, getTextures()); APPEND_ENTITY_PROPERTY(PROP_EMITTER_SHOULD_TRAIL, getEmitterShouldTrail()); APPEND_ENTITY_PROPERTY(PROP_PARTICLE_SPIN, getParticleSpin()); diff --git a/libraries/entities/src/PolyLineEntityItem.cpp b/libraries/entities/src/PolyLineEntityItem.cpp index 93206165da..ee59b5b45a 100644 --- a/libraries/entities/src/PolyLineEntityItem.cpp +++ b/libraries/entities/src/PolyLineEntityItem.cpp @@ -24,7 +24,6 @@ const float PolyLineEntityItem::DEFAULT_LINE_WIDTH = 0.1f; const int PolyLineEntityItem::MAX_POINTS_PER_LINE = 60; - EntityItemPointer PolyLineEntityItem::factory(const EntityItemID& entityID, const EntityItemProperties& properties) { EntityItemPointer entity(new PolyLineEntityItem(entityID), [](EntityItem* ptr) { ptr->deleteLater(); }); entity->setProperties(properties); @@ -37,15 +36,15 @@ PolyLineEntityItem::PolyLineEntityItem(const EntityItemID& entityItemID) : Entit } EntityItemProperties PolyLineEntityItem::getProperties(const EntityPropertyFlags& desiredProperties, bool allowEmptyDesiredProperties) const { - QWriteLocker lock(&_quadReadWriteLock); EntityItemProperties properties = EntityItem::getProperties(desiredProperties, allowEmptyDesiredProperties); // get the properties from our base class COPY_ENTITY_PROPERTY_TO_PROPERTIES(color, getColor); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(textures, getTextures); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(linePoints, getLinePoints); COPY_ENTITY_PROPERTY_TO_PROPERTIES(strokeWidths, getStrokeWidths); COPY_ENTITY_PROPERTY_TO_PROPERTIES(normals, getNormals); COPY_ENTITY_PROPERTY_TO_PROPERTIES(strokeColors, getStrokeColors); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(textures, getTextures); COPY_ENTITY_PROPERTY_TO_PROPERTIES(isUVModeStretch, getIsUVModeStretch); COPY_ENTITY_PROPERTY_TO_PROPERTIES(glow, getGlow); COPY_ENTITY_PROPERTY_TO_PROPERTIES(faceCamera, getFaceCamera); @@ -54,16 +53,16 @@ EntityItemProperties PolyLineEntityItem::getProperties(const EntityPropertyFlags } bool PolyLineEntityItem::setProperties(const EntityItemProperties& properties) { - QWriteLocker lock(&_quadReadWriteLock); bool somethingChanged = false; somethingChanged = EntityItem::setProperties(properties); // set the properties in our base class SET_ENTITY_PROPERTY_FROM_PROPERTIES(color, setColor); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(textures, setTextures); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(linePoints, setLinePoints); SET_ENTITY_PROPERTY_FROM_PROPERTIES(strokeWidths, setStrokeWidths); SET_ENTITY_PROPERTY_FROM_PROPERTIES(normals, setNormals); SET_ENTITY_PROPERTY_FROM_PROPERTIES(strokeColors, setStrokeColors); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(textures, setTextures); SET_ENTITY_PROPERTY_FROM_PROPERTIES(isUVModeStretch, setIsUVModeStretch); SET_ENTITY_PROPERTY_FROM_PROPERTIES(glow, setGlow); SET_ENTITY_PROPERTY_FROM_PROPERTIES(faceCamera, setFaceCamera); @@ -81,137 +80,86 @@ bool PolyLineEntityItem::setProperties(const EntityItemProperties& properties) { return somethingChanged; } - -bool PolyLineEntityItem::appendPoint(const glm::vec3& point) { - if (_points.size() > MAX_POINTS_PER_LINE - 1) { - qCDebug(entities) << "MAX POINTS REACHED!"; - return false; - } - - _points << point; - _pointsChanged = true; - - calculateScaleAndRegistrationPoint(); - - return true; -} - - -bool PolyLineEntityItem::setStrokeWidths(const QVector& strokeWidths) { +void PolyLineEntityItem::setLinePoints(const QVector& points) { withWriteLock([&] { - _strokeWidths = strokeWidths; - _strokeWidthsChanged = true; + _points = points; + _pointsChanged = true; }); - return true; + computeAndUpdateDimensionsAndPosition(); } -bool PolyLineEntityItem::setNormals(const QVector& normals) { +void PolyLineEntityItem::setStrokeWidths(const QVector& strokeWidths) { + withWriteLock([&] { + _widths = strokeWidths; + _widthsChanged = true; + }); + computeAndUpdateDimensionsAndPosition(); +} + +void PolyLineEntityItem::setNormals(const QVector& normals) { withWriteLock([&] { _normals = normals; _normalsChanged = true; }); - return true; } -bool PolyLineEntityItem::setStrokeColors(const QVector& strokeColors) { +void PolyLineEntityItem::setStrokeColors(const QVector& strokeColors) { withWriteLock([&] { - _strokeColors = strokeColors; - _strokeColorsChanged = true; + _colors = strokeColors; + _colorsChanged = true; }); - return true; } +void PolyLineEntityItem::computeAndUpdateDimensionsAndPosition() { + QVector points; + QVector widths; -bool PolyLineEntityItem::setLinePoints(const QVector& points) { - if (points.size() > MAX_POINTS_PER_LINE) { - return false; - } - bool result = false; - withWriteLock([&] { - //Check to see if points actually changed. If they haven't, return before doing anything else - if (points.size() != _points.size()) { - _pointsChanged = true; - } else if (points.size() == _points.size()) { - //same number of points, so now compare every point - for (int i = 0; i < points.size(); i++) { - if (points.at(i) != _points.at(i)) { - _pointsChanged = true; - break; - } - } - } - if (!_pointsChanged) { - return; - } - - _points = points; - - result = true; - }); - - if (result) { - calculateScaleAndRegistrationPoint(); - } - - return result; -} - -void PolyLineEntityItem::calculateScaleAndRegistrationPoint() { - glm::vec3 high(0.0f, 0.0f, 0.0f); - glm::vec3 low(0.0f, 0.0f, 0.0f); - int pointCount = 0; - glm::vec3 firstPoint; withReadLock([&] { - pointCount = _points.size(); - if (pointCount > 0) { - firstPoint = _points.at(0); - } - for (int i = 0; i < pointCount; i++) { - const glm::vec3& point = _points.at(i); - high = glm::max(point, high); - low = glm::min(point, low); - } + points = _points; + widths = _widths; }); - float magnitudeSquared = glm::length2(low - high); - vec3 newScale { 1 }; - vec3 newRegistrationPoint { 0.5f }; + AABox container; + float maxWidth = 0.0f; + if (_points.length() > 0) { + container = AABox(_points[0] - 0.5f * ENTITY_ITEM_DEFAULT_DIMENSIONS, ENTITY_ITEM_DEFAULT_WIDTH); + for (int i = 0; i < points.length(); i++) { + container += points[i]; + maxWidth = glm::max(maxWidth, i < widths.length() ? widths[i] : DEFAULT_LINE_WIDTH); + } + } else { + container = AABox(-0.5f * ENTITY_ITEM_DEFAULT_DIMENSIONS, ENTITY_ITEM_DEFAULT_WIDTH); + } - const float EPSILON = 0.0001f; - const float EPSILON_SQUARED = EPSILON * EPSILON; - const float HALF_LINE_WIDTH = 0.075f; // sadly _strokeWidths() don't seem to correspond to reality, so just use a flat assumption of the stroke width - const vec3 QUARTER_LINE_WIDTH { HALF_LINE_WIDTH * 0.5f }; - if (pointCount > 1 && magnitudeSquared > EPSILON_SQUARED) { - newScale = glm::abs(high) + glm::abs(low) + vec3(HALF_LINE_WIDTH); - // Center the poly line in the bounding box - glm::vec3 startPointInScaleSpace = firstPoint - low; - startPointInScaleSpace += QUARTER_LINE_WIDTH; - newRegistrationPoint = startPointInScaleSpace / newScale; - } + // Adjust the box to account for the line width, assuming the worst case + container.setScaleStayCentered(container.getScale() + 2.0f * maxWidth); - // if Polyline has only one or fewer points, use default dimension settings - setScaledDimensions(newScale); - EntityItem::setRegistrationPoint(newRegistrationPoint); + bool success; + glm::vec3 center = container.calcCenter(); + setWorldPosition(center + getCenterPosition(success)); + setScaledDimensions(container.getScale()); + withWriteLock([&] { + _polylineCenter = center; + }); } int PolyLineEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* data, int bytesLeftToRead, ReadBitstreamToTreeParams& args, EntityPropertyFlags& propertyFlags, bool overwriteLocalData, bool& somethingChanged) { - - QWriteLocker lock(&_quadReadWriteLock); int bytesRead = 0; const unsigned char* dataAt = data; READ_ENTITY_PROPERTY(PROP_COLOR, glm::u8vec3, setColor); - READ_ENTITY_PROPERTY(PROP_LINE_WIDTH, float, setLineWidth); - READ_ENTITY_PROPERTY(PROP_LINE_POINTS, QVector, setLinePoints); - - READ_ENTITY_PROPERTY(PROP_NORMALS, QVector, setNormals); - READ_ENTITY_PROPERTY(PROP_STROKE_COLORS, QVector, setStrokeColors); - READ_ENTITY_PROPERTY(PROP_STROKE_WIDTHS, QVector, setStrokeWidths); READ_ENTITY_PROPERTY(PROP_TEXTURES, QString, setTextures); + + READ_ENTITY_PROPERTY(PROP_LINE_POINTS, QVector, setLinePoints); + READ_ENTITY_PROPERTY(PROP_STROKE_WIDTHS, QVector, setStrokeWidths); + READ_ENTITY_PROPERTY(PROP_STROKE_NORMALS, QVector, setNormals); + READ_ENTITY_PROPERTY(PROP_STROKE_COLORS, QVector, setStrokeColors); READ_ENTITY_PROPERTY(PROP_IS_UV_MODE_STRETCH, bool, setIsUVModeStretch); + READ_ENTITY_PROPERTY(PROP_LINE_GLOW, bool, setGlow); + READ_ENTITY_PROPERTY(PROP_LINE_FACE_CAMERA, bool, setFaceCamera); return bytesRead; } @@ -219,14 +167,15 @@ int PolyLineEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* da EntityPropertyFlags PolyLineEntityItem::getEntityProperties(EncodeBitstreamParams& params) const { EntityPropertyFlags requestedProperties = EntityItem::getEntityProperties(params); requestedProperties += PROP_COLOR; - requestedProperties += PROP_LINE_WIDTH; - requestedProperties += PROP_LINE_POINTS; - - requestedProperties += PROP_NORMALS; - requestedProperties += PROP_STROKE_COLORS; - requestedProperties += PROP_STROKE_WIDTHS; requestedProperties += PROP_TEXTURES; + + requestedProperties += PROP_LINE_POINTS; + requestedProperties += PROP_STROKE_WIDTHS; + requestedProperties += PROP_STROKE_NORMALS; + requestedProperties += PROP_STROKE_COLORS; requestedProperties += PROP_IS_UV_MODE_STRETCH; + requestedProperties += PROP_LINE_GLOW; + requestedProperties += PROP_LINE_FACE_CAMERA; return requestedProperties; } @@ -238,18 +187,18 @@ void PolyLineEntityItem::appendSubclassData(OctreePacketData* packetData, Encode int& propertyCount, OctreeElement::AppendState& appendState) const { - QWriteLocker lock(&_quadReadWriteLock); bool successPropertyFits = true; APPEND_ENTITY_PROPERTY(PROP_COLOR, getColor()); - APPEND_ENTITY_PROPERTY(PROP_LINE_WIDTH, getLineWidth()); - APPEND_ENTITY_PROPERTY(PROP_LINE_POINTS, getLinePoints()); - - APPEND_ENTITY_PROPERTY(PROP_NORMALS, getNormals()); - APPEND_ENTITY_PROPERTY(PROP_STROKE_COLORS, getStrokeColors()); - APPEND_ENTITY_PROPERTY(PROP_STROKE_WIDTHS, getStrokeWidths()); APPEND_ENTITY_PROPERTY(PROP_TEXTURES, getTextures()); + + APPEND_ENTITY_PROPERTY(PROP_LINE_POINTS, getLinePoints()); + APPEND_ENTITY_PROPERTY(PROP_STROKE_WIDTHS, getStrokeWidths()); + APPEND_ENTITY_PROPERTY(PROP_STROKE_NORMALS, getNormals()); + APPEND_ENTITY_PROPERTY(PROP_STROKE_COLORS, getStrokeColors()); APPEND_ENTITY_PROPERTY(PROP_IS_UV_MODE_STRETCH, getIsUVModeStretch()); + APPEND_ENTITY_PROPERTY(PROP_LINE_GLOW, getGlow()); + APPEND_ENTITY_PROPERTY(PROP_LINE_FACE_CAMERA, getFaceCamera()); } void PolyLineEntityItem::debugDump() const { @@ -261,61 +210,49 @@ void PolyLineEntityItem::debugDump() const { qCDebug(entities) << " getLastEdited:" << debugTime(getLastEdited(), now); } - - QVector PolyLineEntityItem::getLinePoints() const { - QVector result; - withReadLock([&] { - result = _points; + return resultWithReadLock>([&] { + return _points; }); - return result; } QVector PolyLineEntityItem::getNormals() const { - QVector result; - withReadLock([&] { - result = _normals; + return resultWithReadLock>([&] { + return _normals; }); - return result; } QVector PolyLineEntityItem::getStrokeColors() const { - QVector result; - withReadLock([&] { - result = _strokeColors; + return resultWithReadLock>([&] { + return _colors; }); - return result; } QVector PolyLineEntityItem::getStrokeWidths() const { - QVector result; - withReadLock([&] { - result = _strokeWidths; + return resultWithReadLock>([&] { + return _widths; }); - return result; } QString PolyLineEntityItem::getTextures() const { - QString result; - withReadLock([&] { - result = _textures; + return resultWithReadLock([&] { + return _textures; }); - return result; } void PolyLineEntityItem::setTextures(const QString& textures) { withWriteLock([&] { if (_textures != textures) { _textures = textures; - _texturesChangedFlag = true; + _texturesChanged = true; } }); } void PolyLineEntityItem::setColor(const glm::u8vec3& value) { withWriteLock([&] { - _strokeColorsChanged = true; _color = value; + _colorsChanged = true; }); } diff --git a/libraries/entities/src/PolyLineEntityItem.h b/libraries/entities/src/PolyLineEntityItem.h index f640bd7a9e..69afaf175c 100644 --- a/libraries/entities/src/PolyLineEntityItem.h +++ b/libraries/entities/src/PolyLineEntityItem.h @@ -44,38 +44,42 @@ class PolyLineEntityItem : public EntityItem { glm::u8vec3 getColor() const; void setColor(const glm::u8vec3& value); - void setLineWidth(float lineWidth){ _lineWidth = lineWidth; } - float getLineWidth() const{ return _lineWidth; } - - bool setLinePoints(const QVector& points); - bool appendPoint(const glm::vec3& point); + static const int MAX_POINTS_PER_LINE; + void setLinePoints(const QVector& points); QVector getLinePoints() const; - bool setNormals(const QVector& normals); + glm::vec3 getPolylineCenter() const { return _polylineCenter; } + + static const float DEFAULT_LINE_WIDTH; + void setStrokeWidths(const QVector& strokeWidths); + QVector getStrokeWidths() const; + + void setNormals(const QVector& normals); QVector getNormals() const; - bool setStrokeColors(const QVector& strokeColors); + void setStrokeColors(const QVector& strokeColors); QVector getStrokeColors() const; - bool setStrokeWidths(const QVector& strokeWidths); - QVector getStrokeWidths() const; - void setIsUVModeStretch(bool isUVModeStretch){ _isUVModeStretch = isUVModeStretch; } bool getIsUVModeStretch() const{ return _isUVModeStretch; } QString getTextures() const; void setTextures(const QString& textures); - virtual ShapeType getShapeType() const override { return SHAPE_TYPE_NONE; } + void setGlow(bool glow) { _glow = glow; } + bool getGlow() const { return _glow; } + + void setFaceCamera(bool faceCamera) { _faceCamera = faceCamera; } + bool getFaceCamera() const { return _faceCamera; } bool pointsChanged() const { return _pointsChanged; } bool normalsChanged() const { return _normalsChanged; } - bool strokeColorsChanged() const { return _strokeColorsChanged; } - bool strokeWidthsChanged() const { return _strokeWidthsChanged; } - bool texturesChanged() const { return _texturesChangedFlag; } - void resetTexturesChanged() { _texturesChangedFlag = false; } - void resetPolyLineChanged() { _strokeColorsChanged = _strokeWidthsChanged = _normalsChanged = _pointsChanged = false; } + bool colorsChanged() const { return _colorsChanged; } + bool widthsChanged() const { return _widthsChanged; } + bool texturesChanged() const { return _texturesChanged; } + void resetTexturesChanged() { _texturesChanged = false; } + void resetPolyLineChanged() { _colorsChanged = _widthsChanged = _normalsChanged = _pointsChanged = false; } // never have a ray intersection pick a PolyLineEntityItem. virtual bool supportsDetailedIntersection() const override { return true; } @@ -88,30 +92,27 @@ class PolyLineEntityItem : public EntityItem { BoxFace& face, glm::vec3& surfaceNormal, QVariantMap& extraInfo, bool precisionPicking) const override { return false; } - // disable these external interfaces as PolyLineEntities caculate their own dimensions based on the points they contain - virtual void setRegistrationPoint(const glm::vec3& value) override {}; // FIXME: this is suspicious! - virtual void debugDump() const override; - static const float DEFAULT_LINE_WIDTH; - static const int MAX_POINTS_PER_LINE; private: - void calculateScaleAndRegistrationPoint(); + void computeAndUpdateDimensionsAndPosition(); protected: glm::u8vec3 _color; - float _lineWidth { DEFAULT_LINE_WIDTH }; - bool _pointsChanged { true }; - bool _normalsChanged { true }; - bool _strokeColorsChanged { true }; - bool _strokeWidthsChanged { true }; QVector _points; + glm::vec3 _polylineCenter; QVector _normals; - QVector _strokeColors; - QVector _strokeWidths; + QVector _colors; + QVector _widths; QString _textures; bool _isUVModeStretch; - bool _texturesChangedFlag { false }; - mutable QReadWriteLock _quadReadWriteLock; + bool _glow; + bool _faceCamera; + + bool _pointsChanged { false }; + bool _normalsChanged { false }; + bool _colorsChanged { false }; + bool _widthsChanged { false }; + bool _texturesChanged { false }; }; #endif // hifi_PolyLineEntityItem_h diff --git a/libraries/entities/src/ShapeEntityItem.cpp b/libraries/entities/src/ShapeEntityItem.cpp index 08af12a289..88612c8be6 100644 --- a/libraries/entities/src/ShapeEntityItem.cpp +++ b/libraries/entities/src/ShapeEntityItem.cpp @@ -118,10 +118,10 @@ ShapeEntityItem::ShapeEntityItem(const EntityItemID& entityItemID) : EntityItem( EntityItemProperties ShapeEntityItem::getProperties(const EntityPropertyFlags& desiredProperties, bool allowEmptyDesiredProperties) const { EntityItemProperties properties = EntityItem::getProperties(desiredProperties, allowEmptyDesiredProperties); // get the properties from our base class - properties.setShape(entity::stringFromShape(getShape())); - properties._shapeChanged = false; COPY_ENTITY_PROPERTY_TO_PROPERTIES(color, getColor); COPY_ENTITY_PROPERTY_TO_PROPERTIES(alpha, getAlpha); + properties.setShape(entity::stringFromShape(getShape())); + properties._shapeChanged = false; return properties; } @@ -158,9 +158,9 @@ void ShapeEntityItem::setShape(const entity::Shape& shape) { bool ShapeEntityItem::setProperties(const EntityItemProperties& properties) { bool somethingChanged = EntityItem::setProperties(properties); // set the properties in our base class - SET_ENTITY_PROPERTY_FROM_PROPERTIES(shape, setShape); SET_ENTITY_PROPERTY_FROM_PROPERTIES(color, setColor); SET_ENTITY_PROPERTY_FROM_PROPERTIES(alpha, setAlpha); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(shape, setShape); if (somethingChanged) { bool wantDebug = false; @@ -183,18 +183,18 @@ int ShapeEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* data, int bytesRead = 0; const unsigned char* dataAt = data; - READ_ENTITY_PROPERTY(PROP_SHAPE, QString, setShape); READ_ENTITY_PROPERTY(PROP_COLOR, glm::u8vec3, setColor); READ_ENTITY_PROPERTY(PROP_ALPHA, float, setAlpha); + READ_ENTITY_PROPERTY(PROP_SHAPE, QString, setShape); return bytesRead; } EntityPropertyFlags ShapeEntityItem::getEntityProperties(EncodeBitstreamParams& params) const { EntityPropertyFlags requestedProperties = EntityItem::getEntityProperties(params); - requestedProperties += PROP_SHAPE; requestedProperties += PROP_COLOR; requestedProperties += PROP_ALPHA; + requestedProperties += PROP_SHAPE; return requestedProperties; } @@ -207,9 +207,9 @@ void ShapeEntityItem::appendSubclassData(OctreePacketData* packetData, EncodeBit OctreeElement::AppendState& appendState) const { bool successPropertyFits = true; - APPEND_ENTITY_PROPERTY(PROP_SHAPE, entity::stringFromShape(getShape())); APPEND_ENTITY_PROPERTY(PROP_COLOR, getColor()); APPEND_ENTITY_PROPERTY(PROP_ALPHA, getAlpha()); + APPEND_ENTITY_PROPERTY(PROP_SHAPE, entity::stringFromShape(getShape())); } void ShapeEntityItem::setColor(const glm::u8vec3& value) { diff --git a/libraries/entities/src/ZoneEntityItem.cpp b/libraries/entities/src/ZoneEntityItem.cpp index ffd1dbba40..a265fe16cd 100644 --- a/libraries/entities/src/ZoneEntityItem.cpp +++ b/libraries/entities/src/ZoneEntityItem.cpp @@ -48,6 +48,9 @@ ZoneEntityItem::ZoneEntityItem(const EntityItemID& entityItemID) : EntityItem(en EntityItemProperties ZoneEntityItem::getProperties(const EntityPropertyFlags& desiredProperties, bool allowEmptyDesiredProperties) const { EntityItemProperties properties = EntityItem::getProperties(desiredProperties, allowEmptyDesiredProperties); // get the properties from our base class + COPY_ENTITY_PROPERTY_TO_PROPERTIES(shapeType, getShapeType); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(compoundShapeURL, getCompoundShapeURL); + // Contain QString properties, must be synchronized withReadLock([&] { _keyLightProperties.getProperties(properties); @@ -57,9 +60,6 @@ EntityItemProperties ZoneEntityItem::getProperties(const EntityPropertyFlags& de _hazeProperties.getProperties(properties); _bloomProperties.getProperties(properties); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(shapeType, getShapeType); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(compoundShapeURL, getCompoundShapeURL); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(flyingAllowed, getFlyingAllowed); COPY_ENTITY_PROPERTY_TO_PROPERTIES(ghostingAllowed, getGhostingAllowed); COPY_ENTITY_PROPERTY_TO_PROPERTIES(filterURL, getFilterURL); @@ -94,6 +94,9 @@ bool ZoneEntityItem::setProperties(const EntityItemProperties& properties) { bool ZoneEntityItem::setSubClassProperties(const EntityItemProperties& properties) { bool somethingChanged = EntityItem::setSubClassProperties(properties); // set the properties in our base class + SET_ENTITY_PROPERTY_FROM_PROPERTIES(shapeType, setShapeType); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(compoundShapeURL, setCompoundShapeURL); + // Contains a QString property, must be synchronized withWriteLock([&] { _keyLightPropertiesChanged = _keyLightProperties.setProperties(properties); @@ -103,9 +106,6 @@ bool ZoneEntityItem::setSubClassProperties(const EntityItemProperties& propertie _hazePropertiesChanged = _hazeProperties.setProperties(properties); _bloomPropertiesChanged = _bloomProperties.setProperties(properties); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(shapeType, setShapeType); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(compoundShapeURL, setCompoundShapeURL); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(flyingAllowed, setFlyingAllowed); SET_ENTITY_PROPERTY_FROM_PROPERTIES(ghostingAllowed, setGhostingAllowed); SET_ENTITY_PROPERTY_FROM_PROPERTIES(filterURL, setFilterURL); @@ -129,6 +129,9 @@ int ZoneEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* data, int bytesRead = 0; const unsigned char* dataAt = data; + READ_ENTITY_PROPERTY(PROP_SHAPE_TYPE, ShapeType, setShapeType); + READ_ENTITY_PROPERTY(PROP_COMPOUND_SHAPE_URL, QString, setCompoundShapeURL); + { int bytesFromKeylight; withWriteLock([&] { @@ -178,9 +181,6 @@ int ZoneEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* data, dataAt += bytesFromBloom; } - READ_ENTITY_PROPERTY(PROP_SHAPE_TYPE, ShapeType, setShapeType); - READ_ENTITY_PROPERTY(PROP_COMPOUND_SHAPE_URL, QString, setCompoundShapeURL); - READ_ENTITY_PROPERTY(PROP_FLYING_ALLOWED, bool, setFlyingAllowed); READ_ENTITY_PROPERTY(PROP_GHOSTING_ALLOWED, bool, setGhostingAllowed); READ_ENTITY_PROPERTY(PROP_FILTER_URL, QString, setFilterURL); @@ -197,15 +197,15 @@ int ZoneEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* data, EntityPropertyFlags ZoneEntityItem::getEntityProperties(EncodeBitstreamParams& params) const { EntityPropertyFlags requestedProperties = EntityItem::getEntityProperties(params); + requestedProperties += PROP_SHAPE_TYPE; + requestedProperties += PROP_COMPOUND_SHAPE_URL; + requestedProperties += _keyLightProperties.getEntityProperties(params); requestedProperties += _ambientLightProperties.getEntityProperties(params); requestedProperties += _skyboxProperties.getEntityProperties(params); requestedProperties += _hazeProperties.getEntityProperties(params); requestedProperties += _bloomProperties.getEntityProperties(params); - requestedProperties += PROP_SHAPE_TYPE; - requestedProperties += PROP_COMPOUND_SHAPE_URL; - requestedProperties += PROP_FLYING_ALLOWED; requestedProperties += PROP_GHOSTING_ALLOWED; requestedProperties += PROP_FILTER_URL; @@ -229,6 +229,9 @@ void ZoneEntityItem::appendSubclassData(OctreePacketData* packetData, EncodeBits bool successPropertyFits = true; + APPEND_ENTITY_PROPERTY(PROP_SHAPE_TYPE, (uint32_t)getShapeType()); + APPEND_ENTITY_PROPERTY(PROP_COMPOUND_SHAPE_URL, getCompoundShapeURL()); + withReadLock([&] { _keyLightProperties.appendSubclassData(packetData, params, modelTreeElementExtraEncodeData, requestedProperties, propertyFlags, propertiesDidntFit, propertyCount, appendState); @@ -242,9 +245,6 @@ void ZoneEntityItem::appendSubclassData(OctreePacketData* packetData, EncodeBits _bloomProperties.appendSubclassData(packetData, params, modelTreeElementExtraEncodeData, requestedProperties, propertyFlags, propertiesDidntFit, propertyCount, appendState); - APPEND_ENTITY_PROPERTY(PROP_SHAPE_TYPE, (uint32_t)getShapeType()); - APPEND_ENTITY_PROPERTY(PROP_COMPOUND_SHAPE_URL, getCompoundShapeURL()); - APPEND_ENTITY_PROPERTY(PROP_FLYING_ALLOWED, getFlyingAllowed()); APPEND_ENTITY_PROPERTY(PROP_GHOSTING_ALLOWED, getGhostingAllowed()); APPEND_ENTITY_PROPERTY(PROP_FILTER_URL, getFilterURL()); diff --git a/libraries/render-utils/src/glowLine.slv b/libraries/render-utils/src/glowLine.slv index 3471bc2f98..1bcb25817c 100644 --- a/libraries/render-utils/src/glowLine.slv +++ b/libraries/render-utils/src/glowLine.slv @@ -49,7 +49,7 @@ void main(void) { vec3 orthogonal = cross(v1, v2) * _lineData.width; // Deteremine which end to emit based on the vertex id (even / odd) - vec4 eye = (0 == gl_VertexID % 2) ? p1eye : p2eye; + vec4 eye = mix(p2eye, p1eye, float(gl_VertexID % 2 == 0)); // Add or subtract the orthogonal vector based on a different vertex ID // calculation diff --git a/libraries/shared/src/AABox.cpp b/libraries/shared/src/AABox.cpp index ff6c2a4e6e..6ff290f9f2 100644 --- a/libraries/shared/src/AABox.cpp +++ b/libraries/shared/src/AABox.cpp @@ -480,7 +480,7 @@ void AABox::embiggen(const glm::vec3& scale) { } void AABox::setScaleStayCentered(const glm::vec3& scale) { - _corner += -0.5f * scale; + _corner -= 0.5f * (scale - _scale); _scale = scale; } From 6094a2f0a06c32e07d8d5fb5b0fb37c90fdb0cae Mon Sep 17 00:00:00 2001 From: SamGondelman Date: Fri, 14 Dec 2018 14:56:44 -0800 Subject: [PATCH 014/230] add back line entities, undo polyline changes temporarily --- .../src/RenderableEntityItem.cpp | 5 + .../src/RenderableLineEntityItem.cpp | 61 +++ .../src/RenderableLineEntityItem.h | 42 ++ .../src/RenderablePolyLineEntityItem.cpp | 362 ++++++++++-------- .../src/RenderablePolyLineEntityItem.h | 54 ++- .../entities-renderer/src/paintStroke.slf | 32 +- .../entities-renderer/src/paintStroke.slh | 48 --- .../entities-renderer/src/paintStroke.slv | 46 +-- .../src/paintStroke_Shared.slh | 25 -- .../src/paintStroke_fade.slf | 52 +++ .../src/paintStroke_fade.slv | 43 +++ .../entities/src/EntityItemProperties.cpp | 71 ++-- libraries/entities/src/EntityItemProperties.h | 4 +- libraries/entities/src/EntityPropertyFlags.h | 2 - .../entities/src/EntityScriptingInterface.cpp | 83 ++++ .../entities/src/EntityScriptingInterface.h | 65 ++++ libraries/entities/src/EntityTypes.cpp | 2 + libraries/entities/src/EntityTypes.h | 3 + libraries/entities/src/LineEntityItem.cpp | 175 +++++++++ libraries/entities/src/LineEntityItem.h | 77 ++++ libraries/entities/src/PolyLineEntityItem.cpp | 179 ++++++--- libraries/entities/src/PolyLineEntityItem.h | 59 ++- .../networking/src/udt/PacketHeaders.cpp | 2 +- libraries/networking/src/udt/PacketHeaders.h | 2 +- 24 files changed, 1061 insertions(+), 433 deletions(-) create mode 100644 libraries/entities-renderer/src/RenderableLineEntityItem.cpp create mode 100644 libraries/entities-renderer/src/RenderableLineEntityItem.h delete mode 100644 libraries/entities-renderer/src/paintStroke.slh delete mode 100644 libraries/entities-renderer/src/paintStroke_Shared.slh create mode 100644 libraries/entities-renderer/src/paintStroke_fade.slf create mode 100644 libraries/entities-renderer/src/paintStroke_fade.slv create mode 100644 libraries/entities/src/LineEntityItem.cpp create mode 100644 libraries/entities/src/LineEntityItem.h diff --git a/libraries/entities-renderer/src/RenderableEntityItem.cpp b/libraries/entities-renderer/src/RenderableEntityItem.cpp index dec4af2d93..5fb5a15d2c 100644 --- a/libraries/entities-renderer/src/RenderableEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableEntityItem.cpp @@ -15,6 +15,7 @@ #include #include "RenderableLightEntityItem.h" +#include "RenderableLineEntityItem.h" #include "RenderableModelEntityItem.h" #include "RenderableParticleEffectEntityItem.h" #include "RenderablePolyVoxEntityItem.h" @@ -247,6 +248,10 @@ EntityRenderer::Pointer EntityRenderer::addToScene(EntityTreeRenderer& renderer, result = make_renderer(entity); break; + case Type::Line: + result = make_renderer(entity); + break; + case Type::PolyLine: result = make_renderer(entity); break; diff --git a/libraries/entities-renderer/src/RenderableLineEntityItem.cpp b/libraries/entities-renderer/src/RenderableLineEntityItem.cpp new file mode 100644 index 0000000000..9c5424950a --- /dev/null +++ b/libraries/entities-renderer/src/RenderableLineEntityItem.cpp @@ -0,0 +1,61 @@ +// +// RenderableLineEntityItem.cpp +// libraries/entities-renderer/src/ +// +// Created by Seth Alves on 5/11/15. +// Copyright 2015 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#include "RenderableLineEntityItem.h" + +#include +#include + +using namespace render; +using namespace render::entities; + +void LineEntityRenderer::onRemoveFromSceneTyped(const TypedEntityPointer& entity) { + if (_lineVerticesID != GeometryCache::UNKNOWN_ID) { + auto geometryCache = DependencyManager::get(); + if (geometryCache) { + geometryCache->releaseID(_lineVerticesID); + } + } +} + +bool LineEntityRenderer::needsRenderUpdateFromTypedEntity(const TypedEntityPointer& entity) const { + return entity->pointsChanged(); +} + +void LineEntityRenderer::doRenderUpdateAsynchronousTyped(const TypedEntityPointer& entity) { + entity->resetPointsChanged(); + _linePoints = entity->getLinePoints(); + auto geometryCache = DependencyManager::get(); + if (_lineVerticesID == GeometryCache::UNKNOWN_ID) { + _lineVerticesID = geometryCache->allocateID(); + } + glm::vec4 lineColor(toGlm(entity->getColor()), 1.0f); + geometryCache->updateVertices(_lineVerticesID, _linePoints, lineColor); +} + +void LineEntityRenderer::doRender(RenderArgs* args) { + if (_lineVerticesID == GeometryCache::UNKNOWN_ID) { + return; + } + + PerformanceTimer perfTimer("RenderableLineEntityItem::render"); + Q_ASSERT(args->_batch); + gpu::Batch& batch = *args->_batch; + const auto& modelTransform = getModelTransform(); + Transform transform = Transform(); + transform.setTranslation(modelTransform.getTranslation()); + transform.setRotation(modelTransform.getRotation()); + batch.setModelTransform(transform); + if (_linePoints.size() > 1) { + DependencyManager::get()->bindSimpleProgram(batch); + DependencyManager::get()->renderVertices(batch, gpu::LINE_STRIP, _lineVerticesID); + } +} diff --git a/libraries/entities-renderer/src/RenderableLineEntityItem.h b/libraries/entities-renderer/src/RenderableLineEntityItem.h new file mode 100644 index 0000000000..799ba5b78c --- /dev/null +++ b/libraries/entities-renderer/src/RenderableLineEntityItem.h @@ -0,0 +1,42 @@ +// +// RenderableLineEntityItem.h +// libraries/entities-renderer/src/ +// +// Created by Seth Alves on 5/11/15. +// Copyright 2015 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#ifndef hifi_RenderableLineEntityItem_h +#define hifi_RenderableLineEntityItem_h + +#include "RenderableEntityItem.h" +#include +#include + + +namespace render { namespace entities { + +class LineEntityRenderer : public TypedEntityRenderer { + using Parent = TypedEntityRenderer; + friend class EntityRenderer; + +public: + LineEntityRenderer(const EntityItemPointer& entity) : Parent(entity) { } + +protected: + virtual void onRemoveFromSceneTyped(const TypedEntityPointer& entity) override; + virtual bool needsRenderUpdateFromTypedEntity(const TypedEntityPointer& entity) const override; + virtual void doRenderUpdateAsynchronousTyped(const TypedEntityPointer& entity) override; + virtual void doRender(RenderArgs* args) override; + +private: + int _lineVerticesID { GeometryCache::UNKNOWN_ID }; + QVector _linePoints; +}; + +} } // namespace + +#endif // hifi_RenderableLineEntityItem_h diff --git a/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp b/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp index 4a665bf666..0d9e948db8 100644 --- a/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp @@ -19,35 +19,66 @@ #include #include -#include "paintStroke_shared.slh" +//#define POLYLINE_ENTITY_USE_FADE_EFFECT +#ifdef POLYLINE_ENTITY_USE_FADE_EFFECT +# include +#endif using namespace render; using namespace render::entities; -gpu::PipelinePointer PolyLineEntityRenderer::_pipeline = nullptr; +static uint8_t CUSTOM_PIPELINE_NUMBER { 0 }; +static const int32_t PAINTSTROKE_TEXTURE_SLOT { 0 }; +static gpu::Stream::FormatPointer polylineFormat; +static gpu::PipelinePointer polylinePipeline; +#ifdef POLYLINE_ENTITY_USE_FADE_EFFECT +static gpu::PipelinePointer polylineFadePipeline; +#endif -static const QUrl DEFAULT_POLYLINE_TEXTURE = QUrl(PathUtils::resourcesPath() + "images/paintStroke.png"); +static render::ShapePipelinePointer shapePipelineFactory(const render::ShapePlumber& plumber, const render::ShapeKey& key, gpu::Batch& batch) { + if (!polylinePipeline) { + gpu::ShaderPointer program = gpu::Shader::createProgram(shader::entities_renderer::program::paintStroke); +#ifdef POLYLINE_ENTITY_USE_FADE_EFFECT + auto fadeVS = gpu::Shader::createVertex(std::string(paintStroke_fade_vert)); + auto fadePS = gpu::Shader::createPixel(std::string(paintStroke_fade_frag)); + gpu::ShaderPointer fadeProgram = gpu::Shader::createProgram(fadeVS, fadePS); +#endif + gpu::StatePointer state = gpu::StatePointer(new gpu::State()); + state->setDepthTest(true, true, gpu::LESS_EQUAL); + PrepareStencil::testMask(*state); + state->setBlendFunction(true, + gpu::State::SRC_ALPHA, gpu::State::BLEND_OP_ADD, gpu::State::INV_SRC_ALPHA, + gpu::State::FACTOR_ALPHA, gpu::State::BLEND_OP_ADD, gpu::State::ONE); + polylinePipeline = gpu::Pipeline::create(program, state); +#ifdef POLYLINE_ENTITY_USE_FADE_EFFECT + _fadePipeline = gpu::Pipeline::create(fadeProgram, state); +#endif + } -PolyLineEntityRenderer::PolyLineEntityRenderer(const EntityItemPointer& entity) : Parent(entity) { - _texture = DependencyManager::get()->getTexture(DEFAULT_POLYLINE_TEXTURE); - - _polylineGeometryBuffer = std::make_shared(); - - _polylineDataBuffer = std::make_shared(); - _polylineDataBuffer->resize(sizeof(PolylineData)); +#ifdef POLYLINE_ENTITY_USE_FADE_EFFECT + if (key.isFaded()) { + auto fadeEffect = DependencyManager::get(); + return std::make_shared(_fadePipeline, nullptr, fadeEffect->getBatchSetter(), fadeEffect->getItemUniformSetter()); + } else { +#endif + return std::make_shared(polylinePipeline, nullptr, nullptr, nullptr); +#ifdef POLYLINE_ENTITY_USE_FADE_EFFECT + } +#endif } -void PolyLineEntityRenderer::buildPipeline() { - // FIXME: opaque pipeline - gpu::ShaderPointer program = gpu::Shader::createProgram(shader::entities_renderer::program::paintStroke); - gpu::StatePointer state = gpu::StatePointer(new gpu::State()); - state->setCullMode(gpu::State::CullMode::CULL_NONE); - state->setDepthTest(true, true, gpu::LESS_EQUAL); - PrepareStencil::testMask(*state); - state->setBlendFunction(true, - gpu::State::SRC_ALPHA, gpu::State::BLEND_OP_ADD, gpu::State::INV_SRC_ALPHA, - gpu::State::FACTOR_ALPHA, gpu::State::BLEND_OP_ADD, gpu::State::ONE); - _pipeline = gpu::Pipeline::create(program, state); +PolyLineEntityRenderer::PolyLineEntityRenderer(const EntityItemPointer& entity) : Parent(entity) { + static std::once_flag once; + std::call_once(once, [&] { + CUSTOM_PIPELINE_NUMBER = render::ShapePipeline::registerCustomShapePipelineFactory(shapePipelineFactory); + polylineFormat.reset(new gpu::Stream::Format()); + polylineFormat->setAttribute(gpu::Stream::POSITION, 0, gpu::Element(gpu::VEC3, gpu::FLOAT, gpu::XYZ), offsetof(Vertex, position)); + polylineFormat->setAttribute(gpu::Stream::NORMAL, 0, gpu::Element(gpu::VEC3, gpu::FLOAT, gpu::XYZ), offsetof(Vertex, normal)); + polylineFormat->setAttribute(gpu::Stream::TEXCOORD, 0, gpu::Element(gpu::VEC2, gpu::FLOAT, gpu::UV), offsetof(Vertex, uv)); + polylineFormat->setAttribute(gpu::Stream::COLOR, 0, gpu::Element(gpu::VEC3, gpu::FLOAT, gpu::RGB), offsetof(Vertex, color)); + }); + + _verticesBuffer = std::make_shared(); } ItemKey PolyLineEntityRenderer::getKey() { @@ -55,165 +86,152 @@ ItemKey PolyLineEntityRenderer::getKey() { } ShapeKey PolyLineEntityRenderer::getShapeKey() { - return ShapeKey::Builder().withOwnPipeline().withTranslucent().withoutCullFace(); -} - -bool PolyLineEntityRenderer::needsRenderUpdate() const { - bool textureLoadedChanged = resultWithReadLock([&] { - return (!_textureLoaded && _texture && _texture->isLoaded()); - }); - - if (textureLoadedChanged) { - return true; - } - - return Parent::needsRenderUpdate(); + return ShapeKey::Builder().withCustom(CUSTOM_PIPELINE_NUMBER).build(); } bool PolyLineEntityRenderer::needsRenderUpdateFromTypedEntity(const TypedEntityPointer& entity) const { return ( entity->pointsChanged() || - entity->widthsChanged() || + entity->strokeWidthsChanged() || entity->normalsChanged() || entity->texturesChanged() || - entity->colorsChanged() || - _isUVModeStretch != entity->getIsUVModeStretch() || - _glow != entity->getGlow() || - _faceCamera != entity->getFaceCamera() + entity->strokeColorsChanged() ); } -void PolyLineEntityRenderer::doRenderUpdateAsynchronousTyped(const TypedEntityPointer& entity) { - auto pointsChanged = entity->pointsChanged(); - auto widthsChanged = entity->widthsChanged(); - auto normalsChanged = entity->normalsChanged(); - auto colorsChanged = entity->colorsChanged(); - - bool isUVModeStretch = entity->getIsUVModeStretch(); - bool glow = entity->getGlow(); - bool faceCamera = entity->getFaceCamera(); - - entity->resetPolyLineChanged(); - - // Transform - _renderTransform = Transform(); - _renderTransform.setTranslation(entity->getWorldPosition() - entity->getPolylineCenter()); - _renderTransform.setRotation(entity->getWorldOrientation()); - - // Textures +void PolyLineEntityRenderer::doRenderUpdateSynchronousTyped(const ScenePointer& scene, Transaction& transaction, const TypedEntityPointer& entity) { + static const QUrl DEFAULT_POLYLINE_TEXTURE = QUrl(PathUtils::resourcesPath() + "images/paintStroke.png"); + QUrl entityTextures = DEFAULT_POLYLINE_TEXTURE; if (entity->texturesChanged()) { entity->resetTexturesChanged(); - QUrl entityTextures = DEFAULT_POLYLINE_TEXTURE; auto textures = entity->getTextures(); if (!textures.isEmpty()) { entityTextures = QUrl(textures); } _texture = DependencyManager::get()->getTexture(entityTextures); - _textureAspectRatio = 1.0f; - _textureLoaded = false; } - - bool textureChanged = false; - if (!_textureLoaded && _texture && _texture->isLoaded()) { - textureChanged = true; - _textureAspectRatio = (float)_texture->getOriginalHeight() / (float)_texture->getOriginalWidth(); - _textureLoaded = true; - } - - // Geometry - if (pointsChanged) { - _points = entity->getLinePoints(); - } - if (widthsChanged) { - _widths = entity->getStrokeWidths(); - } - if (normalsChanged) { - _normals = entity->getNormals(); - } - if (colorsChanged) { - _colors = entity->getStrokeColors(); - _color = toGlm(entity->getColor()); - } - if (_isUVModeStretch != isUVModeStretch || pointsChanged || widthsChanged || normalsChanged || colorsChanged || textureChanged) { - _isUVModeStretch = isUVModeStretch; - updateGeometry(); - } - - // Data - if (faceCamera != _faceCamera || glow != _glow) { - _faceCamera = faceCamera; - _glow = glow; - updateData(); + + + if (!_texture) { + _texture = DependencyManager::get()->getTexture(entityTextures); } } -void PolyLineEntityRenderer::updateGeometry() { - int maxNumVertices = std::min(_points.length(), _normals.length()); +void PolyLineEntityRenderer::doRenderUpdateAsynchronousTyped(const TypedEntityPointer& entity) { + auto pointsChanged = entity->pointsChanged(); + auto strokeWidthsChanged = entity->strokeWidthsChanged(); + auto normalsChanged = entity->normalsChanged(); + auto strokeColorsChanged = entity->strokeColorsChanged(); + + bool isUVModeStretch = entity->getIsUVModeStretch(); + entity->resetPolyLineChanged(); + + _polylineTransform = Transform(); + _polylineTransform.setTranslation(entity->getWorldPosition()); + _polylineTransform.setRotation(entity->getWorldOrientation()); + + if (pointsChanged) { + _lastPoints = entity->getLinePoints(); + } + if (strokeWidthsChanged) { + _lastStrokeWidths = entity->getStrokeWidths(); + } + if (normalsChanged) { + _lastNormals = entity->getNormals(); + } + if (strokeColorsChanged) { + _lastStrokeColors = entity->getStrokeColors(); + _lastStrokeColors = _lastNormals.size() == _lastStrokeColors.size() ? _lastStrokeColors : QVector({ toGlm(entity->getColor()) }); + } + if (pointsChanged || strokeWidthsChanged || normalsChanged || strokeColorsChanged) { + _empty = std::min(_lastPoints.size(), std::min(_lastNormals.size(), _lastStrokeWidths.size())) < 2; + if (!_empty) { + updateGeometry(updateVertices(_lastPoints, _lastNormals, _lastStrokeWidths, _lastStrokeColors, isUVModeStretch, _textureAspectRatio)); + } + } +} + +void PolyLineEntityRenderer::updateGeometry(const std::vector& vertices) { + _numVertices = (uint32_t)vertices.size(); + auto bufferSize = _numVertices * sizeof(Vertex); + if (bufferSize > _verticesBuffer->getSize()) { + _verticesBuffer->resize(bufferSize); + } + _verticesBuffer->setSubData(0, vertices); +} + +std::vector PolyLineEntityRenderer::updateVertices(const QVector& points, + const QVector& normals, + const QVector& strokeWidths, + const QVector& strokeColors, + const bool isUVModeStretch, + const float textureAspectRatio) { + // Calculate the minimum vector size out of normals, points, and stroke widths + int size = std::min(points.size(), std::min(normals.size(), strokeWidths.size())); + + std::vector vertices; + + // Guard against an empty polyline + if (size <= 0) { + return vertices; + } + + float uCoordInc = 1.0f / size; + float uCoord = 0.0f; + int finalIndex = size - 1; + glm::vec3 binormal; + float accumulatedDistance = 0.0f; + float distanceToLastPoint = 0.0f; + float accumulatedStrokeWidth = 0.0f; + float strokeWidth = 0.0f; bool doesStrokeWidthVary = false; - if (_widths.size() >= 0) { - for (int i = 1; i < maxNumVertices; i++) { - float width = PolyLineEntityItem::DEFAULT_LINE_WIDTH; - if (i < _widths.length()) { - width = _widths[i]; - } - if (width != _widths[i - 1]) { - doesStrokeWidthVary = true; - break; - } + + + for (int i = 1; i < strokeWidths.size(); i++) { + if (strokeWidths[i] != strokeWidths[i - 1]) { + doesStrokeWidthVary = true; + break; } } - float uCoordInc = 1.0f / maxNumVertices; - float uCoord = 0.0f; - float accumulatedDistance = 0.0f; - float accumulatedStrokeWidth = 0.0f; - glm::vec3 binormal; + for (int i = 0; i <= finalIndex; i++) { + const float& width = strokeWidths.at(i); + const auto& point = points.at(i); + const auto& normal = normals.at(i); + const auto& color = strokeColors.size() == normals.size() ? strokeColors.at(i) : strokeColors.at(0); + int vertexIndex = i * 2; + - std::vector vertices; - vertices.reserve(maxNumVertices); - for (int i = 0; i < maxNumVertices; i++) { - // Position - glm::vec3 point = _points[i]; + if (!isUVModeStretch && i >= 1) { + distanceToLastPoint = glm::distance(points.at(i), points.at(i - 1)); + accumulatedDistance += distanceToLastPoint; + strokeWidth = 2 * strokeWidths[i]; - // uCoord - float width = i < _widths.size() ? _widths[i] : PolyLineEntityItem::DEFAULT_LINE_WIDTH; - if (i > 0) { // First uCoord is 0.0f - if (!_isUVModeStretch) { - accumulatedDistance += glm::distance(point, _points[i - 1]); - - if (doesStrokeWidthVary) { - //If the stroke varies along the line the texture will stretch more or less depending on the speed - //because it looks better than using the same method as below - accumulatedStrokeWidth += width; - float increaseValue = 1; - if (accumulatedStrokeWidth != 0) { - float newUcoord = glm::ceil((_textureAspectRatio * accumulatedDistance) / (accumulatedStrokeWidth / i)); - increaseValue = newUcoord - uCoord; - } - - increaseValue = increaseValue > 0 ? increaseValue : 1; - uCoord += increaseValue; - } else { - // If the stroke width is constant then the textures should keep the aspect ratio along the line - uCoord = (_textureAspectRatio * accumulatedDistance) / width; + if (doesStrokeWidthVary) { + //If the stroke varies along the line the texture will stretch more or less depending on the speed + //because it looks better than using the same method as below + accumulatedStrokeWidth += strokeWidth; + float increaseValue = 1; + if (accumulatedStrokeWidth != 0) { + float newUcoord = glm::ceil(((1.0f / textureAspectRatio) * accumulatedDistance) / (accumulatedStrokeWidth / i)); + increaseValue = newUcoord - uCoord; } + + increaseValue = increaseValue > 0 ? increaseValue : 1; + uCoord += increaseValue; } else { - uCoord += uCoordInc; + //If the stroke width is constant then the textures should keep the aspect ratio along the line + uCoord = ((1.0f / textureAspectRatio) * accumulatedDistance) / strokeWidth; } + } else if (vertexIndex >= 2) { + uCoord += uCoordInc; } - // Color - glm::vec3 color = i < _colors.length() ? _colors[i] : _color; - - // Normal - glm::vec3 normal = _normals[i]; - - // Binormal // For last point we can assume binormals are the same since it represents the last two vertices of quad - if (i < maxNumVertices - 1) { - glm::vec3 tangent = _points[i + 1] - point; - binormal = glm::normalize(glm::cross(tangent, normal)); + if (i < finalIndex) { + const auto tangent = points.at(i + 1) - point; + binormal = glm::normalize(glm::cross(tangent, normal)) * width; // Check to make sure binormal is not a NAN. If it is, don't add to vertices vector if (binormal.x != binormal.x) { @@ -221,36 +239,54 @@ void PolyLineEntityRenderer::updateGeometry() { } } - PolylineVertex vertex = { glm::vec4(point, uCoord), glm::vec4(color, 1.0f), glm::vec4(normal, 0.0f), glm::vec4(binormal, 0.5f * width) }; - vertices.push_back(vertex); + const auto v1 = points.at(i) + binormal; + const auto v2 = points.at(i) - binormal; + vertices.emplace_back(v1, normal, vec2(uCoord, 0.0f), color); + vertices.emplace_back(v2, normal, vec2(uCoord, 1.0f), color); } - _numVertices = vertices.size(); - _polylineGeometryBuffer->setData(vertices.size() * sizeof(PolylineVertex), (const gpu::Byte*) vertices.data()); + return vertices; } -void PolyLineEntityRenderer::updateData() { - PolylineData data { glm::vec2(_faceCamera, _glow), glm::vec2(0.0f) }; - _polylineDataBuffer->setSubData(0, data); +scriptable::ScriptableModelBase PolyLineEntityRenderer::getScriptableModel() { + // TODO: adapt polyline into a triangles mesh... + return EntityRenderer::getScriptableModel(); } void PolyLineEntityRenderer::doRender(RenderArgs* args) { - if (_numVertices < 2) { + if (_empty) { return; } PerformanceTimer perfTimer("RenderablePolyLineEntityItem::render"); Q_ASSERT(args->_batch); - gpu::Batch& batch = *args->_batch; - if (!_pipeline) { - buildPipeline(); + gpu::Batch& batch = *args->_batch; + batch.setModelTransform(_polylineTransform); + + if (_texture && _texture->isLoaded()) { + batch.setResourceTexture(PAINTSTROKE_TEXTURE_SLOT, _texture->getGPUTexture()); + } else { + batch.setResourceTexture(PAINTSTROKE_TEXTURE_SLOT, DependencyManager::get()->getWhiteTexture()); } - batch.setPipeline(_pipeline); - batch.setModelTransform(_renderTransform); - batch.setResourceTexture(0, _textureLoaded ? _texture->getGPUTexture() : DependencyManager::get()->getWhiteTexture()); - batch.setResourceBuffer(0, _polylineGeometryBuffer); - batch.setUniformBuffer(0, _polylineDataBuffer); - batch.draw(gpu::TRIANGLE_STRIP, 2 * _numVertices, 0); + float textureWidth = (float)_texture->getOriginalWidth(); + float textureHeight = (float)_texture->getOriginalHeight(); + if (textureWidth != 0 && textureHeight != 0) { + _textureAspectRatio = textureWidth / textureHeight; + } + + batch.setInputFormat(polylineFormat); + batch.setInputBuffer(0, _verticesBuffer, 0, sizeof(Vertex)); + +#ifndef POLYLINE_ENTITY_USE_FADE_EFFECT + // glColor4f must be called after setInputFormat if it must be taken into account + if (_isFading) { + batch._glColor4f(1.0f, 1.0f, 1.0f, Interpolate::calculateFadeRatio(_fadeStartTime)); + } else { + batch._glColor4f(1.0f, 1.0f, 1.0f, 1.0f); + } +#endif + + batch.draw(gpu::TRIANGLE_STRIP, _numVertices, 0); } diff --git a/libraries/entities-renderer/src/RenderablePolyLineEntityItem.h b/libraries/entities-renderer/src/RenderablePolyLineEntityItem.h index 635a456ac9..8130171da8 100644 --- a/libraries/entities-renderer/src/RenderablePolyLineEntityItem.h +++ b/libraries/entities-renderer/src/RenderablePolyLineEntityItem.h @@ -25,40 +25,52 @@ class PolyLineEntityRenderer : public TypedEntityRenderer { public: PolyLineEntityRenderer(const EntityItemPointer& entity); - // FIXME: shouldn't always be transparent: take into account texture and glow - virtual bool isTransparent() const override { return true; } - + virtual scriptable::ScriptableModelBase getScriptableModel() override; protected: - virtual bool needsRenderUpdate() const override; virtual bool needsRenderUpdateFromTypedEntity(const TypedEntityPointer& entity) const override; + virtual void doRenderUpdateSynchronousTyped(const ScenePointer& scene, + Transaction& transaction, + const TypedEntityPointer& entity) override; virtual void doRenderUpdateAsynchronousTyped(const TypedEntityPointer& entity) override; virtual ItemKey getKey() override; virtual ShapeKey getShapeKey() override; virtual void doRender(RenderArgs* args) override; - void buildPipeline(); - void updateGeometry(); - void updateData(); + virtual bool isTransparent() const override { return true; } - QVector _points; - QVector _normals; - QVector _colors; - glm::vec3 _color; - QVector _widths; + struct Vertex { + Vertex() {} + Vertex(const vec3& position, const vec3& normal, const vec2& uv, const vec3& color) : position(position), + normal(normal), + uv(uv), + color(color) {} + vec3 position; + vec3 normal; + vec2 uv; + vec3 color; + }; + void updateGeometry(const std::vector& vertices); + static std::vector updateVertices(const QVector& points, + const QVector& normals, + const QVector& strokeWidths, + const QVector& strokeColors, + const bool isUVModeStretch, + const float textureAspectRatio); + + Transform _polylineTransform; + QVector _lastPoints; + QVector _lastNormals; + QVector _lastStrokeColors; + QVector _lastStrokeWidths; + gpu::BufferPointer _verticesBuffer; + + uint32_t _numVertices { 0 }; + bool _empty{ true }; NetworkTexturePointer _texture; float _textureAspectRatio { 1.0f }; - bool _textureLoaded { false }; - bool _isUVModeStretch; - bool _faceCamera; - bool _glow; - - int _numVertices; - gpu::BufferPointer _polylineDataBuffer; - gpu::BufferPointer _polylineGeometryBuffer; - static gpu::PipelinePointer _pipeline; }; } } // namespace diff --git a/libraries/entities-renderer/src/paintStroke.slf b/libraries/entities-renderer/src/paintStroke.slf index 6ea088751f..f2c0d5572d 100644 --- a/libraries/entities-renderer/src/paintStroke.slf +++ b/libraries/entities-renderer/src/paintStroke.slf @@ -14,27 +14,21 @@ <@include DeferredBufferWrite.slh@> -<@include paintStroke.slh@> -<$declarePolyLineBuffers()$> +// the albedo texture +LAYOUT(binding=0) uniform sampler2D originalTexture; -LAYOUT(binding=0) uniform sampler2D _texture; - -layout(location=0) in vec3 _normalWS; -layout(location=1) in vec2 _texCoord; -layout(location=2) in vec4 _color; -layout(location=3) in float _distanceFromCenter; +// the interpolated normal +layout(location=0) in vec3 interpolatedNormal; +layout(location=1) in vec2 varTexcoord; +layout(location=2) in vec4 varColor; void main(void) { - vec4 texel = texture(_texture, _texCoord); - int frontCondition = 1 - 2 * int(gl_FrontFacing); - vec3 color = _color.rgb * texel.rgb; - float alpha = texel.a * _color.a; - - alpha *= mix(1.0, pow(1.0 - abs(_distanceFromCenter), 10.0), _polylineData.faceCameraGlow.y); - + vec4 texel = texture(originalTexture, varTexcoord); + int frontCondition = 1 -int(gl_FrontFacing) * 2; + vec3 color = varColor.rgb; packDeferredFragmentTranslucent( - float(frontCondition) * _normalWS, - alpha, - color, - DEFAULT_ROUGHNESS); + float(frontCondition) * interpolatedNormal, + texel.a * varColor.a, + color * texel.rgb, + 10.0); } diff --git a/libraries/entities-renderer/src/paintStroke.slh b/libraries/entities-renderer/src/paintStroke.slh deleted file mode 100644 index 6189ac461b..0000000000 --- a/libraries/entities-renderer/src/paintStroke.slh +++ /dev/null @@ -1,48 +0,0 @@ - - -<@if not PAINTSTROKE_SLH@> -<@def PAINTSTROKE_SLH@> - -<@include paintStroke_Shared.slh@> -<@include gpu/ShaderConstants.h@> - -<@func declarePolyLineBuffers() @> - -// Hack comment to absorb the extra '//' scribe prepends - -#if !defined(GPU_SSBO_TRANSFORM_OBJECT) -LAYOUT(binding=GPU_RESOURCE_BUFFER_SLOT0_TEXTURE) uniform samplerBuffer polylineVerticesBuffer; -PolylineVertex getPolylineVertex(int i) { - int offset = 4 * i; - PolylineVertex vertex; - vertex.positionAndUCoord = texelFetch(polylineVerticesBuffer, offset); - vertex.color = texelFetch(polylineVerticesBuffer, offset + 1); - vertex.normal = texelFetch(polylineVerticesBuffer, offset + 2); - vertex.binormalAndHalfWidth = texelFetch(polylineVerticesBuffer, offset + 3); - return vertex; -} -#else -LAYOUT_STD140(binding=GPU_RESOURCE_BUFFER_SLOT0_STORAGE) buffer polylineVerticesBuffer { - PolylineVertex _vertices[]; -}; -PolylineVertex getPolylineVertex(int i) { - PolylineVertex vertex = _vertices[i]; - return vertex; -} -#endif - -LAYOUT_STD140(binding=0) uniform polylineDataBuffer { - PolylineData _polylineData; -}; - -<@endfunc@> - -<@endif@> diff --git a/libraries/entities-renderer/src/paintStroke.slv b/libraries/entities-renderer/src/paintStroke.slv index c033d2c247..ecf52d61cf 100644 --- a/libraries/entities-renderer/src/paintStroke.slv +++ b/libraries/entities-renderer/src/paintStroke.slv @@ -17,45 +17,23 @@ <@include gpu/Transform.slh@> <$declareStandardTransform()$> -<@include paintStroke.slh@> -<$declarePolyLineBuffers()$> +// the interpolated normal +layout(location=0) out vec3 interpolatedNormal; -layout(location=0) out vec3 _normalWS; -layout(location=1) out vec2 _texCoord; -layout(location=2) out vec4 _color; -layout(location=3) out float _distanceFromCenter; +//the diffuse texture +layout(location=1) out vec2 varTexcoord; + +layout(location=2) out vec4 varColor; void main(void) { - PolylineVertex vertex = getPolylineVertex(gl_VertexID / 2); - float evenVertex = float(gl_VertexID % 2 == 0); + varTexcoord = inTexCoord0.st; - _texCoord = vec2(vertex.positionAndUCoord.w, mix(1.0, 0.0, evenVertex)); - _color = color_sRGBAToLinear(vertex.color); + // pass along the diffuse color + varColor = color_sRGBAToLinear(inColor); + // standard transform TransformCamera cam = getTransformCamera(); TransformObject obj = getTransformObject(); - _distanceFromCenter = -1.0 + 2.0 * evenVertex; - vec4 position = vec4(vertex.positionAndUCoord.xyz, 1.0); - vec3 normal = vertex.normal.xyz; - vec3 binormal = vertex.binormalAndHalfWidth.xyz; - if (_polylineData.faceCameraGlow.x != 0.0) { - vec4 posEye; - vec3 normalEye; - vec3 binormalEye; - <$transformModelToEyePos(cam, obj, position, posEye)$> - <$transformModelToEyeDir(cam, obj, normal, normalEye)$> - <$transformModelToEyeDir(cam, obj, binormal, binormalEye)$> - - vec3 tangentEye = cross(binormalEye, normalEye); - // new normal faces the camera - normalEye = normalize(posEye.xyz); - binormalEye = normalize(cross(normalEye, tangentEye)); - posEye.xyz += _distanceFromCenter * vertex.binormalAndHalfWidth.w * binormalEye; - <$transformEyeToClipPos(cam, posEye, gl_Position)$> - <$transformEyeToWorldDir(cam, normalEye, _normalWS)$> - } else { - position.xyz += _distanceFromCenter * vertex.binormalAndHalfWidth.w * binormal; - <$transformModelToClipPos(cam, obj, position, gl_Position)$> - <$transformModelToWorldDir(cam, obj, normal, _normalWS)$> - } + <$transformModelToClipPos(cam, obj, inPosition, gl_Position)$> + <$transformModelToEyeDir(cam, obj, inNormal.xyz, interpolatedNormal)$> } \ No newline at end of file diff --git a/libraries/entities-renderer/src/paintStroke_Shared.slh b/libraries/entities-renderer/src/paintStroke_Shared.slh deleted file mode 100644 index 460f6c6042..0000000000 --- a/libraries/entities-renderer/src/paintStroke_Shared.slh +++ /dev/null @@ -1,25 +0,0 @@ -// glsl / C++ compatible source as interface for FadeEffect -#ifdef __cplusplus -# define _VEC4 glm::vec4 -# define _VEC2 glm::vec2 -#else -# define _VEC4 vec4 -# define _VEC2 vec2 -#endif - -struct PolylineVertex { - _VEC4 positionAndUCoord; - _VEC4 color; - _VEC4 normal; - _VEC4 binormalAndHalfWidth; -}; - -struct PolylineData { - _VEC2 faceCameraGlow; - _VEC2 spare; -}; - -// <@if 1@> -// Trigger Scribe include -// <@endif@> -// \ No newline at end of file diff --git a/libraries/entities-renderer/src/paintStroke_fade.slf b/libraries/entities-renderer/src/paintStroke_fade.slf new file mode 100644 index 0000000000..fa6d0aab75 --- /dev/null +++ b/libraries/entities-renderer/src/paintStroke_fade.slf @@ -0,0 +1,52 @@ +<@include gpu/Config.slh@> +<$VERSION_HEADER$> +// Generated on <$_SCRIBE_DATE$> +// +// paintStroke_fade.frag +// fragment shader +// +// Created by Olivier Prat on 19/07/17. +// Copyright 2017 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +<@include DeferredBufferWrite.slh@> + +<@include Fade.slh@> +<$declareFadeFragment()$> + +// the albedo texture +LAYOUT(binding=0) uniform sampler2D originalTexture; + +// the interpolated normal +layout(location=0) in vec3 interpolatedNormal; +layout(location=1) in vec2 varTexcoord; +layout(location=2) in vec4 varColor; +layout(location=3) in vec4 _worldPosition; + +struct PolyLineUniforms { + vec3 color; +}; + +LAYOUT(binding=0) uniform polyLineBuffer { + PolyLineUniforms polyline; +}; + +void main(void) { + vec3 fadeEmissive; + FadeObjectParams fadeParams; + + <$fetchFadeObjectParams(fadeParams)$> + applyFade(fadeParams, _worldPosition.xyz, fadeEmissive); + + vec4 texel = texture(originalTexture, varTexcoord); + int frontCondition = 1 -int(gl_FrontFacing) * 2; + vec3 color = varColor.rgb; + packDeferredFragmentTranslucent( + interpolatedNormal * float(frontCondition), + texel.a * varColor.a, + polyline.color * texel.rgb + fadeEmissive, + 10.0); +} diff --git a/libraries/entities-renderer/src/paintStroke_fade.slv b/libraries/entities-renderer/src/paintStroke_fade.slv new file mode 100644 index 0000000000..f6fcb18c98 --- /dev/null +++ b/libraries/entities-renderer/src/paintStroke_fade.slv @@ -0,0 +1,43 @@ +<@include gpu/Config.slh@> +<$VERSION_HEADER$> +// Generated on <$_SCRIBE_DATE$> +// +// paintStroke_fade.vert +// vertex shader +// +// Created by Olivier Prat on 19/07/17. +// Copyright 2017 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +<@include gpu/Inputs.slh@> +<@include gpu/Color.slh@> +<@include gpu/Transform.slh@> +<$declareStandardTransform()$> + +// the interpolated normal +layout(location=0) out vec3 interpolatedNormal; + +//the diffuse texture +layout(location=1) out vec2 varTexcoord; + +layout(location=2) out vec4 varColor; +layout(location=3) out vec4 _worldPosition; + +void main(void) { + + varTexcoord = inTexCoord0.st; + + // pass along the diffuse color + varColor = color_sRGBAToLinear(inColor); + + + // standard transform + TransformCamera cam = getTransformCamera(); + TransformObject obj = getTransformObject(); + <$transformModelToClipPos(cam, obj, inPosition, gl_Position)$> + <$transformModelToEyeDir(cam, obj, inNormal.xyz, interpolatedNormal)$> + <$transformModelToWorldPos(obj, inPosition, _worldPosition)$> +} \ No newline at end of file diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 17dc0cdaba..86ad35b8f5 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -527,8 +527,6 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { CHECK_PROPERTY_CHANGE(PROP_STROKE_NORMALS, normals); CHECK_PROPERTY_CHANGE(PROP_STROKE_COLORS, strokeColors); CHECK_PROPERTY_CHANGE(PROP_IS_UV_MODE_STRETCH, isUVModeStretch); - CHECK_PROPERTY_CHANGE(PROP_LINE_GLOW, glow); - CHECK_PROPERTY_CHANGE(PROP_LINE_FACE_CAMERA, faceCamera); // Shape CHECK_PROPERTY_CHANGE(PROP_SHAPE, shape); @@ -741,6 +739,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * @see {@link Entities.EntityProperties-Image|EntityProperties-Image} * @see {@link Entities.EntityProperties-Web|EntityProperties-Web} * @see {@link Entities.EntityProperties-ParticleEffect|EntityProperties-ParticleEffect} + * @see {@link Entities.EntityProperties-Line|EntityProperties-Line} * @see {@link Entities.EntityProperties-PolyLine|EntityProperties-PolyLine} * @see {@link Entities.EntityProperties-PolyVox|EntityProperties-PolyVox} * @see {@link Entities.EntityProperties-Grid|EntityProperties-Grid} @@ -786,6 +785,33 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * }); */ +/**jsdoc + * The "Line" {@link Entities.EntityType|EntityType} draws thin, straight lines between a sequence of two or more + * points. Deprecated: Use PolyLines instead. + * It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}. + * @typedef {object} Entities.EntityProperties-Line + * @property {Vec3} dimensions=0.1,0.1,0.1 - The dimensions of the entity. Must be sufficient to contain all the + * linePoints. + * @property {Vec3[]} linePoints=[]] - The sequence of points to draw lines between. The values are relative to the entity's + * position. A maximum of 70 points can be specified. The property's value is set only if all the linePoints + * lie within the entity's dimensions. + * @property {Color} color=255,255,255 - The color of the line. + * @example Draw lines in a "V". + * var entity = Entities.addEntity({ + * type: "Line", + * position: Vec3.sum(MyAvatar.position, Vec3.multiplyQbyV(MyAvatar.orientation, { x: 0, y: 0.75, z: -5 })), + * rotation: MyAvatar.orientation, + * dimensions: { x: 2, y: 2, z: 1 }, + * linePoints: [ + * { x: -1, y: 1, z: 0 }, + * { x: 0, y: -1, z: 0 }, + * { x: 1, y: 1, z: 0 }, + * ], + * color: { red: 255, green: 0, blue: 0 }, + * lifetime: 300 // Delete after 5 minutes. + * }); + */ + /**jsdoc * The "Material" {@link Entities.EntityType|EntityType} modifies the existing materials on * {@link Entities.EntityType|Model} entities, {@link Entities.EntityType|Shape} entities (albedo only), @@ -1025,8 +1051,6 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * format. * @property {boolean} isUVModeStretch=true - If true, the texture is stretched to fill the whole line, otherwise * the texture repeats along the line. - * @property {bool} glow=false - If true, the alpha of the strokes will drop off farther from the center. - * @property {bool} faceCamera=false - If true, each line segment will rotate to face the camera. * @example Draw a textured "V". * var entity = Entities.addEntity({ * type: "PolyLine", @@ -1593,6 +1617,13 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_Z_P_NEIGHBOR_ID, zPNeighborID); } + // Lines + if (_type == EntityTypes::Line) { + COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); + + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LINE_POINTS, linePoints); + } + // Polylines if (_type == EntityTypes::PolyLine) { COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); @@ -1603,8 +1634,6 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_STROKE_NORMALS, normals); COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_STROKE_COLORS, strokeColors, qVectorVec3Color); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_IS_UV_MODE_STRETCH, isUVModeStretch); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LINE_GLOW, glow); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LINE_FACE_CAMERA, faceCamera); } // Materials @@ -1927,8 +1956,6 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool COPY_PROPERTY_FROM_QSCRIPTVALUE(normals, qVectorVec3, setNormals); COPY_PROPERTY_FROM_QSCRIPTVALUE(strokeColors, qVectorVec3, setStrokeColors); COPY_PROPERTY_FROM_QSCRIPTVALUE(isUVModeStretch, bool, setIsUVModeStretch); - COPY_PROPERTY_FROM_QSCRIPTVALUE(glow, bool, setGlow); - COPY_PROPERTY_FROM_QSCRIPTVALUE(faceCamera, bool, setFaceCamera); // Shape COPY_PROPERTY_FROM_QSCRIPTVALUE(shape, QString, setShape); @@ -2181,8 +2208,6 @@ void EntityItemProperties::merge(const EntityItemProperties& other) { COPY_PROPERTY_IF_CHANGED(normals); COPY_PROPERTY_IF_CHANGED(strokeColors); COPY_PROPERTY_IF_CHANGED(isUVModeStretch); - COPY_PROPERTY_IF_CHANGED(glow); - COPY_PROPERTY_IF_CHANGED(faceCamera); // Shape COPY_PROPERTY_IF_CHANGED(shape); @@ -2498,8 +2523,6 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue ADD_PROPERTY_TO_MAP(PROP_STROKE_NORMALS, Normals, normals, QVector); ADD_PROPERTY_TO_MAP(PROP_STROKE_COLORS, StrokeColors, strokeColors, QVector); ADD_PROPERTY_TO_MAP(PROP_IS_UV_MODE_STRETCH, IsUVModeStretch, isUVModeStretch, QVector); - ADD_PROPERTY_TO_MAP(PROP_LINE_GLOW, Glow, glow); - ADD_PROPERTY_TO_MAP(PROP_LINE_FACE_CAMERA, FaceCamera, faceCamera, bool); // Shape ADD_PROPERTY_TO_MAP(PROP_SHAPE, Shape, shape, QString); @@ -2849,6 +2872,12 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy APPEND_ENTITY_PROPERTY(PROP_DPI, properties.getDPI()); } + if (properties.getType() == EntityTypes::Line) { + APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); + + APPEND_ENTITY_PROPERTY(PROP_LINE_POINTS, properties.getLinePoints()); + } + if (properties.getType() == EntityTypes::PolyLine) { APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); APPEND_ENTITY_PROPERTY(PROP_TEXTURES, properties.getTextures()); @@ -2858,8 +2887,6 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy APPEND_ENTITY_PROPERTY(PROP_STROKE_NORMALS, properties.getPackedNormals()); APPEND_ENTITY_PROPERTY(PROP_STROKE_COLORS, properties.getPackedStrokeColors()); APPEND_ENTITY_PROPERTY(PROP_IS_UV_MODE_STRETCH, properties.getIsUVModeStretch()); - APPEND_ENTITY_PROPERTY(PROP_LINE_GLOW, properties.getGlow()); - APPEND_ENTITY_PROPERTY(PROP_LINE_FACE_CAMERA, properties.getFaceCamera()); } // NOTE: Spheres and Boxes are just special cases of Shape, and they need to include their PROP_SHAPE @@ -3278,6 +3305,12 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DPI, uint16_t, setDPI); } + if (properties.getType() == EntityTypes::Line) { + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); + + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_POINTS, QVector, setLinePoints); + } + if (properties.getType() == EntityTypes::PolyLine) { READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXTURES, QString, setTextures); @@ -3287,8 +3320,6 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STROKE_NORMALS, QByteArray, setPackedNormals); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STROKE_COLORS, QByteArray, setPackedStrokeColors); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_IS_UV_MODE_STRETCH, bool, setIsUVModeStretch); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_GLOW, bool, setGlow); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_FACE_CAMERA, bool, setFaceCamera); } // NOTE: Spheres and Boxes are just special cases of Shape, and they need to include their PROP_SHAPE @@ -3634,8 +3665,6 @@ void EntityItemProperties::markAllChanged() { _normalsChanged = true; _strokeColorsChanged = true; _isUVModeStretchChanged = true; - _glowChanged = true; - _faceCameraChanged = true; // Shape _shapeChanged = true; @@ -4234,12 +4263,6 @@ QList EntityItemProperties::listChangedProperties() { if (isUVModeStretchChanged()) { out += "isUVModeStretch"; } - if (glowChanged()) { - out += "glow"; - } - if (faceCameraChanged()) { - out += "faceCamera"; - } // Shape if (shapeChanged()) { diff --git a/libraries/entities/src/EntityItemProperties.h b/libraries/entities/src/EntityItemProperties.h index 9857878edf..fc4848bd20 100644 --- a/libraries/entities/src/EntityItemProperties.h +++ b/libraries/entities/src/EntityItemProperties.h @@ -37,6 +37,7 @@ #include "EntityPropertyFlags.h" #include "EntityPsuedoPropertyFlags.h" #include "LightEntityItem.h" +#include "LineEntityItem.h" #include "ParticleEffectEntityItem.h" #include "PolyVoxEntityItem.h" #include "SimulationOwner.h" @@ -77,6 +78,7 @@ class EntityItemProperties { friend class ImageEntityItem; friend class WebEntityItem; friend class ParticleEffectEntityItem; + friend class LineEntityItem; friend class PolyLineEntityItem; friend class PolyVoxEntityItem; friend class GridEntityItem; @@ -307,8 +309,6 @@ public: DEFINE_PROPERTY(PROP_STROKE_NORMALS, Normals, normals, QVector, ENTITY_ITEM_DEFAULT_EMPTY_VEC3_QVEC); DEFINE_PROPERTY(PROP_STROKE_COLORS, StrokeColors, strokeColors, QVector, ENTITY_ITEM_DEFAULT_EMPTY_VEC3_QVEC); DEFINE_PROPERTY(PROP_IS_UV_MODE_STRETCH, IsUVModeStretch, isUVModeStretch, bool, true); - DEFINE_PROPERTY(PROP_LINE_GLOW, Glow, glow, bool, false); - DEFINE_PROPERTY(PROP_LINE_FACE_CAMERA, FaceCamera, faceCamera, bool, false); // Shape DEFINE_PROPERTY_REF(PROP_SHAPE, Shape, shape, QString, "Sphere"); diff --git a/libraries/entities/src/EntityPropertyFlags.h b/libraries/entities/src/EntityPropertyFlags.h index 812b788b06..e7cccc31df 100644 --- a/libraries/entities/src/EntityPropertyFlags.h +++ b/libraries/entities/src/EntityPropertyFlags.h @@ -290,8 +290,6 @@ enum EntityPropertyList { PROP_STROKE_NORMALS = PROP_DERIVED_2, PROP_STROKE_COLORS = PROP_DERIVED_3, PROP_IS_UV_MODE_STRETCH = PROP_DERIVED_4, - PROP_LINE_GLOW = PROP_DERIVED_5, - PROP_LINE_FACE_CAMERA = PROP_DERIVED_6, // Shape PROP_SHAPE = PROP_DERIVED_0, diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp index 02e8682264..33ec92b8de 100644 --- a/libraries/entities/src/EntityScriptingInterface.cpp +++ b/libraries/entities/src/EntityScriptingInterface.cpp @@ -1519,6 +1519,46 @@ bool EntityScriptingInterface::polyVoxWorker(QUuid entityID, std::function actor) { + PROFILE_RANGE(script_entities, __FUNCTION__); + + if (!_entityTree) { + return false; + } + + EntityItemPointer entity = static_cast(_entityTree->findEntityByEntityItemID(entityID)); + if (!entity) { + qCDebug(entities) << "EntityScriptingInterface::setPoints no entity with ID" << entityID; + } + + EntityTypes::EntityType entityType = entity->getType(); + + if (entityType != EntityTypes::Line) { + return false; + } + + auto now = usecTimestampNow(); + + auto lineEntity = std::static_pointer_cast(entity); + bool success; + _entityTree->withWriteLock([&] { + success = actor(*lineEntity); + entity->setLastEdited(now); + entity->setLastBroadcast(now); + }); + + EntityItemProperties properties; + _entityTree->withReadLock([&] { + properties = entity->getProperties(); + }); + + properties.setLinePointsDirty(); + properties.setLastEdited(now); + + queueEntityMessage(PacketType::EntityEdit, entityID, properties); + return success; +} + bool EntityScriptingInterface::setVoxelSphere(QUuid entityID, const glm::vec3& center, float radius, int value) { PROFILE_RANGE(script_entities, __FUNCTION__); return polyVoxWorker(entityID, [center, radius, value](PolyVoxEntityItem& polyVoxEntity) { @@ -1561,6 +1601,49 @@ bool EntityScriptingInterface::setVoxelsInCuboid(QUuid entityID, const glm::vec3 }); } +bool EntityScriptingInterface::setAllPoints(QUuid entityID, const QVector& points) { + PROFILE_RANGE(script_entities, __FUNCTION__); + + EntityItemPointer entity = static_cast(_entityTree->findEntityByEntityItemID(entityID)); + if (!entity) { + qCDebug(entities) << "EntityScriptingInterface::setPoints no entity with ID" << entityID; + } + + EntityTypes::EntityType entityType = entity->getType(); + + if (entityType == EntityTypes::Line) { + return setPoints(entityID, [points](LineEntityItem& lineEntity) -> bool + { + return (LineEntityItem*)lineEntity.setLinePoints(points); + }); + } + + return false; +} + +bool EntityScriptingInterface::appendPoint(QUuid entityID, const glm::vec3& point) { + PROFILE_RANGE(script_entities, __FUNCTION__); + + EntityItemPointer entity = static_cast(_entityTree->findEntityByEntityItemID(entityID)); + if (!entity) { + qCDebug(entities) << "EntityScriptingInterface::setPoints no entity with ID" << entityID; + // There is no entity + return false; + } + + EntityTypes::EntityType entityType = entity->getType(); + + if (entityType == EntityTypes::Line) { + return setPoints(entityID, [point](LineEntityItem& lineEntity) -> bool + { + return (LineEntityItem*)lineEntity.appendPoint(point); + }); + } + + return false; +} + + bool EntityScriptingInterface::actionWorker(const QUuid& entityID, std::function actor) { if (!_entityTree) { diff --git a/libraries/entities/src/EntityScriptingInterface.h b/libraries/entities/src/EntityScriptingInterface.h index 512e88c8e1..890c666010 100644 --- a/libraries/entities/src/EntityScriptingInterface.h +++ b/libraries/entities/src/EntityScriptingInterface.h @@ -26,6 +26,7 @@ #include #include "PolyVoxEntityItem.h" +#include "LineEntityItem.h" #include "PolyLineEntityItem.h" #include "EntityTree.h" @@ -860,12 +861,75 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE glm::vec3 localCoordsToVoxelCoords(const QUuid& entityID, glm::vec3 localCoords); + /**jsdoc + * Set the linePoints property of a {@link Entities.EntityType|Line} entity. + * @function Entities.setAllPoints + * @param {Uuid} entityID - The ID of the {@link Entities.EntityType|Line} entity. + * @param {Vec3[]} points - The array of points to set the entity's linePoints property to. + * @returns {boolean} true if the entity's property was updated, otherwise false. The property + * may fail to be updated if the entity does not exist, the entity is not a {@link Entities.EntityType|Line} entity, + * one of the points is outside the entity's dimensions, or the number of points is greater than the maximum allowed. + * @example Change the shape of a Line entity. + * // Draw a horizontal line between two points. + * var entity = Entities.addEntity({ + * type: "Line", + * position: Vec3.sum(MyAvatar.position, Vec3.multiplyQbyV(MyAvatar.orientation, { x: 0, y: 0.75, z: -5 })), + * rotation: MyAvatar.orientation, + * dimensions: { x: 2, y: 2, z: 1 }, + * linePoints: [ + * { x: -1, y: 0, z: 0 }, + * { x:1, y: -0, z: 0 } + * ], + * color: { red: 255, green: 0, blue: 0 }, + * lifetime: 300 // Delete after 5 minutes. + * }); + * + * // Change the line to be a "V". + * Script.setTimeout(function () { + * Entities.setAllPoints(entity, [ + * { x: -1, y: 1, z: 0 }, + * { x: 0, y: -1, z: 0 }, + * { x: 1, y: 1, z: 0 }, + * ]); + * }, 2000); + */ + Q_INVOKABLE bool setAllPoints(QUuid entityID, const QVector& points); + + /**jsdoc + * Append a point to a {@link Entities.EntityType|Line} entity. + * @function Entities.appendPoint + * @param {Uuid} entityID - The ID of the {@link Entities.EntityType|Line} entity. + * @param {Vec3} point - The point to add to the line. The coordinates are relative to the entity's position. + * @returns {boolean} true if the point was added to the line, otherwise false. The point may + * fail to be added if the entity does not exist, the entity is not a {@link Entities.EntityType|Line} entity, the + * point is outside the entity's dimensions, or the maximum number of points has been reached. + * @example Append a point to a Line entity. + * // Draw a line between two points. + * var entity = Entities.addEntity({ + * type: "Line", + * position: Vec3.sum(MyAvatar.position, Vec3.multiplyQbyV(MyAvatar.orientation, { x: 0, y: 0.75, z: -5 })), + * rotation: MyAvatar.orientation, + * dimensions: { x: 2, y: 2, z: 1 }, + * linePoints: [ + * { x: -1, y: 1, z: 0 }, + * { x: 0, y: -1, z: 0 } + * ], + * color: { red: 255, green: 0, blue: 0 }, + * lifetime: 300 // Delete after 5 minutes. + * }); + * + * // Add a third point to create a "V". + * Entities.appendPoint(entity, { x: 1, y: 1, z: 0 }); + */ + Q_INVOKABLE bool appendPoint(QUuid entityID, const glm::vec3& point); + /**jsdoc * Dumps debug information about all entities in Interface's local in-memory tree of entities it knows about to the program log. * @function Entities.dumpTree */ Q_INVOKABLE void dumpTree() const; + /**jsdoc * Add an action to an entity. An action is registered with the physics engine and is applied every physics simulation * step. Any entity may have more than one action associated with it, but only as many as will fit in an entity's @@ -1914,6 +1978,7 @@ private slots: private: bool actionWorker(const QUuid& entityID, std::function actor); bool polyVoxWorker(QUuid entityID, std::function actor); + bool setPoints(QUuid entityID, std::function actor); void queueEntityMessage(PacketType packetType, EntityItemID entityID, const EntityItemProperties& properties); bool addLocalEntityCopy(EntityItemProperties& propertiesWithSimID, EntityItemID& id, bool isClone = false); diff --git a/libraries/entities/src/EntityTypes.cpp b/libraries/entities/src/EntityTypes.cpp index 45a1e92073..e511af83b0 100644 --- a/libraries/entities/src/EntityTypes.cpp +++ b/libraries/entities/src/EntityTypes.cpp @@ -26,6 +26,7 @@ #include "TextEntityItem.h" #include "ImageEntityItem.h" #include "WebEntityItem.h" +#include "LineEntityItem.h" #include "PolyLineEntityItem.h" #include "PolyVoxEntityItem.h" #include "GridEntityItem.h" @@ -49,6 +50,7 @@ REGISTER_ENTITY_TYPE(Text) REGISTER_ENTITY_TYPE(Image) REGISTER_ENTITY_TYPE(Web) REGISTER_ENTITY_TYPE(ParticleEffect) +REGISTER_ENTITY_TYPE(Line) REGISTER_ENTITY_TYPE(PolyLine) REGISTER_ENTITY_TYPE(PolyVox) REGISTER_ENTITY_TYPE(Grid) diff --git a/libraries/entities/src/EntityTypes.h b/libraries/entities/src/EntityTypes.h index c9b9558265..29a695718e 100644 --- a/libraries/entities/src/EntityTypes.h +++ b/libraries/entities/src/EntityTypes.h @@ -70,6 +70,8 @@ public: * "ParticleEffect"A particle system that can be used to simulate things such as fire, * smoke, snow, magic spells, etc. * {@link Entities.EntityProperties-ParticleEffect|EntityProperties-ParticleEffect} + * "Line"A sequence of one or more simple straight lines. + * {@link Entities.EntityProperties-Line|EntityProperties-Line} * "PolyLine"A sequence of one or more textured straight lines. * {@link Entities.EntityProperties-PolyLine|EntityProperties-PolyLine} * "PolyVox"A set of textured voxels. @@ -97,6 +99,7 @@ public: Image, Web, ParticleEffect, + Line, PolyLine, PolyVox, Grid, diff --git a/libraries/entities/src/LineEntityItem.cpp b/libraries/entities/src/LineEntityItem.cpp new file mode 100644 index 0000000000..12d1178690 --- /dev/null +++ b/libraries/entities/src/LineEntityItem.cpp @@ -0,0 +1,175 @@ +// +// LineEntityItem.cpp +// libraries/entities/src +// +// Created by Seth Alves on 5/11/15. +// Copyright 2015 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#include "LineEntityItem.h" + +#include + +#include + +#include "EntitiesLogging.h" +#include "EntityItemProperties.h" +#include "EntityTree.h" +#include "EntityTreeElement.h" +#include "OctreeConstants.h" + +const int LineEntityItem::MAX_POINTS_PER_LINE = 70; + + +EntityItemPointer LineEntityItem::factory(const EntityItemID& entityID, const EntityItemProperties& properties) { + EntityItemPointer entity(new LineEntityItem(entityID), [](EntityItem* ptr) { ptr->deleteLater(); }); + entity->setProperties(properties); + return entity; +} + +LineEntityItem::LineEntityItem(const EntityItemID& entityItemID) : + EntityItem(entityItemID) +{ + _type = EntityTypes::Line; +} + +EntityItemProperties LineEntityItem::getProperties(const EntityPropertyFlags& desiredProperties, bool allowEmptyDesiredProperties) const { + + EntityItemProperties properties = EntityItem::getProperties(desiredProperties, allowEmptyDesiredProperties); // get the properties from our base class + + COPY_ENTITY_PROPERTY_TO_PROPERTIES(color, getColor); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(linePoints, getLinePoints); + + return properties; +} + +bool LineEntityItem::setProperties(const EntityItemProperties& properties) { + bool somethingChanged = false; + somethingChanged = EntityItem::setProperties(properties); // set the properties in our base class + + SET_ENTITY_PROPERTY_FROM_PROPERTIES(color, setColor); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(linePoints, setLinePoints); + + if (somethingChanged) { + bool wantDebug = false; + if (wantDebug) { + uint64_t now = usecTimestampNow(); + int elapsed = now - getLastEdited(); + qCDebug(entities) << "LineEntityItem::setProperties() AFTER update... edited AGO=" << elapsed << + "now=" << now << " getLastEdited()=" << getLastEdited(); + } + setLastEdited(properties._lastEdited); + } + return somethingChanged; +} + +bool LineEntityItem::appendPoint(const glm::vec3& point) { + if (_points.size() > MAX_POINTS_PER_LINE - 1) { + qCDebug(entities) << "MAX POINTS REACHED!"; + return false; + } + glm::vec3 halfBox = getScaledDimensions() * 0.5f; + if ( (point.x < - halfBox.x || point.x > halfBox.x) || (point.y < -halfBox.y || point.y > halfBox.y) || (point.z < - halfBox.z || point.z > halfBox.z) ) { + qCDebug(entities) << "Point is outside entity's bounding box"; + return false; + } + withWriteLock([&] { + _points << point; + _pointsChanged = true; + }); + return true; +} + +bool LineEntityItem::setLinePoints(const QVector& points) { + if (points.size() > MAX_POINTS_PER_LINE) { + return false; + } + glm::vec3 halfBox = getScaledDimensions() * 0.5f; + for (int i = 0; i < points.size(); i++) { + glm::vec3 point = points.at(i); + if ( (point.x < - halfBox.x || point.x > halfBox.x) || (point.y < -halfBox.y || point.y > halfBox.y) || (point.z < - halfBox.z || point.z > halfBox.z) ) { + qCDebug(entities) << "Point is outside entity's bounding box"; + return false; + } + } + + withWriteLock([&] { + _points = points; + _pointsChanged = true; + }); + return true; +} + +int LineEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* data, int bytesLeftToRead, + ReadBitstreamToTreeParams& args, + EntityPropertyFlags& propertyFlags, bool overwriteLocalData, + bool& somethingChanged) { + + int bytesRead = 0; + const unsigned char* dataAt = data; + + READ_ENTITY_PROPERTY(PROP_COLOR, glm::u8vec3, setColor); + READ_ENTITY_PROPERTY(PROP_LINE_POINTS, QVector, setLinePoints); + + return bytesRead; +} + + +EntityPropertyFlags LineEntityItem::getEntityProperties(EncodeBitstreamParams& params) const { + EntityPropertyFlags requestedProperties = EntityItem::getEntityProperties(params); + requestedProperties += PROP_COLOR; + requestedProperties += PROP_LINE_POINTS; + return requestedProperties; +} + +void LineEntityItem::appendSubclassData(OctreePacketData* packetData, EncodeBitstreamParams& params, + EntityTreeElementExtraEncodeDataPointer modelTreeElementExtraEncodeData, + EntityPropertyFlags& requestedProperties, + EntityPropertyFlags& propertyFlags, + EntityPropertyFlags& propertiesDidntFit, + int& propertyCount, + OctreeElement::AppendState& appendState) const { + + bool successPropertyFits = true; + + APPEND_ENTITY_PROPERTY(PROP_COLOR, getColor()); + APPEND_ENTITY_PROPERTY(PROP_LINE_POINTS, getLinePoints()); +} + +void LineEntityItem::debugDump() const { + quint64 now = usecTimestampNow(); + qCDebug(entities) << " LINE EntityItem id:" << getEntityItemID() << "---------------------------------------------"; + qCDebug(entities) << " color:" << _color; + qCDebug(entities) << " position:" << debugTreeVector(getWorldPosition()); + qCDebug(entities) << " dimensions:" << debugTreeVector(getScaledDimensions()); + qCDebug(entities) << " getLastEdited:" << debugTime(getLastEdited(), now); +} + +glm::u8vec3 LineEntityItem::getColor() const { + return resultWithReadLock([&] { + return _color; + }); +} + +void LineEntityItem::setColor(const glm::u8vec3& value) { + withWriteLock([&] { + _color = value; + }); +} + +QVector LineEntityItem::getLinePoints() const { + QVector result; + withReadLock([&] { + result = _points; + }); + return result; +} + +void LineEntityItem::resetPointsChanged() { + withWriteLock([&] { + _pointsChanged = false; + }); +} diff --git a/libraries/entities/src/LineEntityItem.h b/libraries/entities/src/LineEntityItem.h new file mode 100644 index 0000000000..86ca6065bb --- /dev/null +++ b/libraries/entities/src/LineEntityItem.h @@ -0,0 +1,77 @@ +// +// LineEntityItem.h +// libraries/entities/src +// +// Created by Seth Alves on 5/11/15. +// Copyright 2015 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#ifndef hifi_LineEntityItem_h +#define hifi_LineEntityItem_h + +#include "EntityItem.h" + +class LineEntityItem : public EntityItem { + public: + static EntityItemPointer factory(const EntityItemID& entityID, const EntityItemProperties& properties); + + LineEntityItem(const EntityItemID& entityItemID); + + ALLOW_INSTANTIATION // This class can be instantiated + + // methods for getting/setting all properties of an entity + virtual EntityItemProperties getProperties(const EntityPropertyFlags& desiredProperties, bool allowEmptyDesiredProperties) const override; + virtual bool setProperties(const EntityItemProperties& properties) override; + + virtual EntityPropertyFlags getEntityProperties(EncodeBitstreamParams& params) const override; + + virtual void appendSubclassData(OctreePacketData* packetData, EncodeBitstreamParams& params, + EntityTreeElementExtraEncodeDataPointer modelTreeElementExtraEncodeData, + EntityPropertyFlags& requestedProperties, + EntityPropertyFlags& propertyFlags, + EntityPropertyFlags& propertiesDidntFit, + int& propertyCount, + OctreeElement::AppendState& appendState) const override; + + virtual int readEntitySubclassDataFromBuffer(const unsigned char* data, int bytesLeftToRead, + ReadBitstreamToTreeParams& args, + EntityPropertyFlags& propertyFlags, bool overwriteLocalData, + bool& somethingChanged) override; + + glm::u8vec3 getColor() const; + void setColor(const glm::u8vec3& value); + + bool setLinePoints(const QVector& points); + bool appendPoint(const glm::vec3& point); + + QVector getLinePoints() const; + + virtual ShapeType getShapeType() const override { return SHAPE_TYPE_NONE; } + + // never have a ray intersection pick a LineEntityItem. + virtual bool supportsDetailedIntersection() const override { return true; } + virtual bool findDetailedRayIntersection(const glm::vec3& origin, const glm::vec3& direction, + OctreeElementPointer& element, float& distance, + BoxFace& face, glm::vec3& surfaceNormal, + QVariantMap& extraInfo, + bool precisionPicking) const override { return false; } + virtual bool findDetailedParabolaIntersection(const glm::vec3& origin, const glm::vec3& velocity, + const glm::vec3& acceleration, OctreeElementPointer& element, float& parabolicDistance, + BoxFace& face, glm::vec3& surfaceNormal, + QVariantMap& extraInfo, + bool precisionPicking) const override { return false; } + bool pointsChanged() const { return _pointsChanged; } + void resetPointsChanged(); + virtual void debugDump() const override; + static const int MAX_POINTS_PER_LINE; + + private: + glm::u8vec3 _color; + QVector _points; + bool _pointsChanged { true }; +}; + +#endif // hifi_LineEntityItem_h diff --git a/libraries/entities/src/PolyLineEntityItem.cpp b/libraries/entities/src/PolyLineEntityItem.cpp index ee59b5b45a..88f2d14ae6 100644 --- a/libraries/entities/src/PolyLineEntityItem.cpp +++ b/libraries/entities/src/PolyLineEntityItem.cpp @@ -24,6 +24,7 @@ const float PolyLineEntityItem::DEFAULT_LINE_WIDTH = 0.1f; const int PolyLineEntityItem::MAX_POINTS_PER_LINE = 60; + EntityItemPointer PolyLineEntityItem::factory(const EntityItemID& entityID, const EntityItemProperties& properties) { EntityItemPointer entity(new PolyLineEntityItem(entityID), [](EntityItem* ptr) { ptr->deleteLater(); }); entity->setProperties(properties); @@ -36,6 +37,7 @@ PolyLineEntityItem::PolyLineEntityItem(const EntityItemID& entityItemID) : Entit } EntityItemProperties PolyLineEntityItem::getProperties(const EntityPropertyFlags& desiredProperties, bool allowEmptyDesiredProperties) const { + QWriteLocker lock(&_quadReadWriteLock); EntityItemProperties properties = EntityItem::getProperties(desiredProperties, allowEmptyDesiredProperties); // get the properties from our base class COPY_ENTITY_PROPERTY_TO_PROPERTIES(color, getColor); @@ -46,13 +48,11 @@ EntityItemProperties PolyLineEntityItem::getProperties(const EntityPropertyFlags COPY_ENTITY_PROPERTY_TO_PROPERTIES(normals, getNormals); COPY_ENTITY_PROPERTY_TO_PROPERTIES(strokeColors, getStrokeColors); COPY_ENTITY_PROPERTY_TO_PROPERTIES(isUVModeStretch, getIsUVModeStretch); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(glow, getGlow); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(faceCamera, getFaceCamera); - return properties; } bool PolyLineEntityItem::setProperties(const EntityItemProperties& properties) { + QWriteLocker lock(&_quadReadWriteLock); bool somethingChanged = false; somethingChanged = EntityItem::setProperties(properties); // set the properties in our base class @@ -64,8 +64,6 @@ bool PolyLineEntityItem::setProperties(const EntityItemProperties& properties) { SET_ENTITY_PROPERTY_FROM_PROPERTIES(normals, setNormals); SET_ENTITY_PROPERTY_FROM_PROPERTIES(strokeColors, setStrokeColors); SET_ENTITY_PROPERTY_FROM_PROPERTIES(isUVModeStretch, setIsUVModeStretch); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(glow, setGlow); - SET_ENTITY_PROPERTY_FROM_PROPERTIES(faceCamera, setFaceCamera); if (somethingChanged) { bool wantDebug = false; @@ -80,73 +78,125 @@ bool PolyLineEntityItem::setProperties(const EntityItemProperties& properties) { return somethingChanged; } -void PolyLineEntityItem::setLinePoints(const QVector& points) { - withWriteLock([&] { - _points = points; - _pointsChanged = true; - }); - computeAndUpdateDimensionsAndPosition(); + +bool PolyLineEntityItem::appendPoint(const glm::vec3& point) { + if (_points.size() > MAX_POINTS_PER_LINE - 1) { + qCDebug(entities) << "MAX POINTS REACHED!"; + return false; + } + + _points << point; + _pointsChanged = true; + + calculateScaleAndRegistrationPoint(); + + return true; } -void PolyLineEntityItem::setStrokeWidths(const QVector& strokeWidths) { + +bool PolyLineEntityItem::setStrokeWidths(const QVector& strokeWidths) { withWriteLock([&] { - _widths = strokeWidths; - _widthsChanged = true; + _strokeWidths = strokeWidths; + _strokeWidthsChanged = true; }); - computeAndUpdateDimensionsAndPosition(); + return true; } -void PolyLineEntityItem::setNormals(const QVector& normals) { +bool PolyLineEntityItem::setNormals(const QVector& normals) { withWriteLock([&] { _normals = normals; _normalsChanged = true; }); + return true; } -void PolyLineEntityItem::setStrokeColors(const QVector& strokeColors) { +bool PolyLineEntityItem::setStrokeColors(const QVector& strokeColors) { withWriteLock([&] { - _colors = strokeColors; - _colorsChanged = true; + _strokeColors = strokeColors; + _strokeColorsChanged = true; }); + return true; } -void PolyLineEntityItem::computeAndUpdateDimensionsAndPosition() { - QVector points; - QVector widths; - withReadLock([&] { - points = _points; - widths = _widths; +bool PolyLineEntityItem::setLinePoints(const QVector& points) { + if (points.size() > MAX_POINTS_PER_LINE) { + return false; + } + bool result = false; + withWriteLock([&] { + //Check to see if points actually changed. If they haven't, return before doing anything else + if (points.size() != _points.size()) { + _pointsChanged = true; + } else if (points.size() == _points.size()) { + //same number of points, so now compare every point + for (int i = 0; i < points.size(); i++) { + if (points.at(i) != _points.at(i)) { + _pointsChanged = true; + break; + } + } + } + if (!_pointsChanged) { + return; + } + + _points = points; + + result = true; }); - AABox container; - float maxWidth = 0.0f; - if (_points.length() > 0) { - container = AABox(_points[0] - 0.5f * ENTITY_ITEM_DEFAULT_DIMENSIONS, ENTITY_ITEM_DEFAULT_WIDTH); - for (int i = 0; i < points.length(); i++) { - container += points[i]; - maxWidth = glm::max(maxWidth, i < widths.length() ? widths[i] : DEFAULT_LINE_WIDTH); - } - } else { - container = AABox(-0.5f * ENTITY_ITEM_DEFAULT_DIMENSIONS, ENTITY_ITEM_DEFAULT_WIDTH); + if (result) { + calculateScaleAndRegistrationPoint(); } - // Adjust the box to account for the line width, assuming the worst case - container.setScaleStayCentered(container.getScale() + 2.0f * maxWidth); + return result; +} - bool success; - glm::vec3 center = container.calcCenter(); - setWorldPosition(center + getCenterPosition(success)); - setScaledDimensions(container.getScale()); - withWriteLock([&] { - _polylineCenter = center; +void PolyLineEntityItem::calculateScaleAndRegistrationPoint() { + glm::vec3 high(0.0f, 0.0f, 0.0f); + glm::vec3 low(0.0f, 0.0f, 0.0f); + int pointCount = 0; + glm::vec3 firstPoint; + withReadLock([&] { + pointCount = _points.size(); + if (pointCount > 0) { + firstPoint = _points.at(0); + } + for (int i = 0; i < pointCount; i++) { + const glm::vec3& point = _points.at(i); + high = glm::max(point, high); + low = glm::min(point, low); + } }); + + float magnitudeSquared = glm::length2(low - high); + vec3 newScale { 1 }; + vec3 newRegistrationPoint { 0.5f }; + + const float EPSILON = 0.0001f; + const float EPSILON_SQUARED = EPSILON * EPSILON; + const float HALF_LINE_WIDTH = 0.075f; // sadly _strokeWidths() don't seem to correspond to reality, so just use a flat assumption of the stroke width + const vec3 QUARTER_LINE_WIDTH { HALF_LINE_WIDTH * 0.5f }; + if (pointCount > 1 && magnitudeSquared > EPSILON_SQUARED) { + newScale = glm::abs(high) + glm::abs(low) + vec3(HALF_LINE_WIDTH); + // Center the poly line in the bounding box + glm::vec3 startPointInScaleSpace = firstPoint - low; + startPointInScaleSpace += QUARTER_LINE_WIDTH; + newRegistrationPoint = startPointInScaleSpace / newScale; + } + + // if Polyline has only one or fewer points, use default dimension settings + setScaledDimensions(newScale); + EntityItem::setRegistrationPoint(newRegistrationPoint); } int PolyLineEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* data, int bytesLeftToRead, ReadBitstreamToTreeParams& args, EntityPropertyFlags& propertyFlags, bool overwriteLocalData, bool& somethingChanged) { + + QWriteLocker lock(&_quadReadWriteLock); int bytesRead = 0; const unsigned char* dataAt = data; @@ -158,8 +208,6 @@ int PolyLineEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* da READ_ENTITY_PROPERTY(PROP_STROKE_NORMALS, QVector, setNormals); READ_ENTITY_PROPERTY(PROP_STROKE_COLORS, QVector, setStrokeColors); READ_ENTITY_PROPERTY(PROP_IS_UV_MODE_STRETCH, bool, setIsUVModeStretch); - READ_ENTITY_PROPERTY(PROP_LINE_GLOW, bool, setGlow); - READ_ENTITY_PROPERTY(PROP_LINE_FACE_CAMERA, bool, setFaceCamera); return bytesRead; } @@ -174,8 +222,6 @@ EntityPropertyFlags PolyLineEntityItem::getEntityProperties(EncodeBitstreamParam requestedProperties += PROP_STROKE_NORMALS; requestedProperties += PROP_STROKE_COLORS; requestedProperties += PROP_IS_UV_MODE_STRETCH; - requestedProperties += PROP_LINE_GLOW; - requestedProperties += PROP_LINE_FACE_CAMERA; return requestedProperties; } @@ -187,6 +233,7 @@ void PolyLineEntityItem::appendSubclassData(OctreePacketData* packetData, Encode int& propertyCount, OctreeElement::AppendState& appendState) const { + QWriteLocker lock(&_quadReadWriteLock); bool successPropertyFits = true; APPEND_ENTITY_PROPERTY(PROP_COLOR, getColor()); @@ -197,8 +244,6 @@ void PolyLineEntityItem::appendSubclassData(OctreePacketData* packetData, Encode APPEND_ENTITY_PROPERTY(PROP_STROKE_NORMALS, getNormals()); APPEND_ENTITY_PROPERTY(PROP_STROKE_COLORS, getStrokeColors()); APPEND_ENTITY_PROPERTY(PROP_IS_UV_MODE_STRETCH, getIsUVModeStretch()); - APPEND_ENTITY_PROPERTY(PROP_LINE_GLOW, getGlow()); - APPEND_ENTITY_PROPERTY(PROP_LINE_FACE_CAMERA, getFaceCamera()); } void PolyLineEntityItem::debugDump() const { @@ -210,49 +255,61 @@ void PolyLineEntityItem::debugDump() const { qCDebug(entities) << " getLastEdited:" << debugTime(getLastEdited(), now); } + + QVector PolyLineEntityItem::getLinePoints() const { - return resultWithReadLock>([&] { - return _points; + QVector result; + withReadLock([&] { + result = _points; }); + return result; } QVector PolyLineEntityItem::getNormals() const { - return resultWithReadLock>([&] { - return _normals; + QVector result; + withReadLock([&] { + result = _normals; }); + return result; } QVector PolyLineEntityItem::getStrokeColors() const { - return resultWithReadLock>([&] { - return _colors; + QVector result; + withReadLock([&] { + result = _strokeColors; }); + return result; } QVector PolyLineEntityItem::getStrokeWidths() const { - return resultWithReadLock>([&] { - return _widths; + QVector result; + withReadLock([&] { + result = _strokeWidths; }); + return result; } QString PolyLineEntityItem::getTextures() const { - return resultWithReadLock([&] { - return _textures; + QString result; + withReadLock([&] { + result = _textures; }); + return result; } void PolyLineEntityItem::setTextures(const QString& textures) { withWriteLock([&] { if (_textures != textures) { _textures = textures; - _texturesChanged = true; + _texturesChangedFlag = true; } }); } void PolyLineEntityItem::setColor(const glm::u8vec3& value) { withWriteLock([&] { + _strokeColorsChanged = true; _color = value; - _colorsChanged = true; }); } diff --git a/libraries/entities/src/PolyLineEntityItem.h b/libraries/entities/src/PolyLineEntityItem.h index 69afaf175c..4420a123c5 100644 --- a/libraries/entities/src/PolyLineEntityItem.h +++ b/libraries/entities/src/PolyLineEntityItem.h @@ -44,42 +44,35 @@ class PolyLineEntityItem : public EntityItem { glm::u8vec3 getColor() const; void setColor(const glm::u8vec3& value); - static const int MAX_POINTS_PER_LINE; - void setLinePoints(const QVector& points); + bool setLinePoints(const QVector& points); + bool appendPoint(const glm::vec3& point); QVector getLinePoints() const; - glm::vec3 getPolylineCenter() const { return _polylineCenter; } - - static const float DEFAULT_LINE_WIDTH; - void setStrokeWidths(const QVector& strokeWidths); - QVector getStrokeWidths() const; - - void setNormals(const QVector& normals); + bool setNormals(const QVector& normals); QVector getNormals() const; - void setStrokeColors(const QVector& strokeColors); + bool setStrokeColors(const QVector& strokeColors); QVector getStrokeColors() const; + bool setStrokeWidths(const QVector& strokeWidths); + QVector getStrokeWidths() const; + void setIsUVModeStretch(bool isUVModeStretch){ _isUVModeStretch = isUVModeStretch; } bool getIsUVModeStretch() const{ return _isUVModeStretch; } QString getTextures() const; void setTextures(const QString& textures); - void setGlow(bool glow) { _glow = glow; } - bool getGlow() const { return _glow; } - - void setFaceCamera(bool faceCamera) { _faceCamera = faceCamera; } - bool getFaceCamera() const { return _faceCamera; } + virtual ShapeType getShapeType() const override { return SHAPE_TYPE_NONE; } bool pointsChanged() const { return _pointsChanged; } bool normalsChanged() const { return _normalsChanged; } - bool colorsChanged() const { return _colorsChanged; } - bool widthsChanged() const { return _widthsChanged; } - bool texturesChanged() const { return _texturesChanged; } + bool strokeColorsChanged() const { return _strokeColorsChanged; } + bool strokeWidthsChanged() const { return _strokeWidthsChanged; } + bool texturesChanged() const { return _texturesChangedFlag; } + void resetTexturesChanged() { _texturesChangedFlag = false; } + void resetPolyLineChanged() { _strokeColorsChanged = _strokeWidthsChanged = _normalsChanged = _pointsChanged = false; } - void resetTexturesChanged() { _texturesChanged = false; } - void resetPolyLineChanged() { _colorsChanged = _widthsChanged = _normalsChanged = _pointsChanged = false; } // never have a ray intersection pick a PolyLineEntityItem. virtual bool supportsDetailedIntersection() const override { return true; } @@ -92,27 +85,29 @@ class PolyLineEntityItem : public EntityItem { BoxFace& face, glm::vec3& surfaceNormal, QVariantMap& extraInfo, bool precisionPicking) const override { return false; } + // disable these external interfaces as PolyLineEntities caculate their own dimensions based on the points they contain + virtual void setRegistrationPoint(const glm::vec3& value) override {}; // FIXME: this is suspicious! + virtual void debugDump() const override; + static const float DEFAULT_LINE_WIDTH; + static const int MAX_POINTS_PER_LINE; private: - void computeAndUpdateDimensionsAndPosition(); + void calculateScaleAndRegistrationPoint(); protected: glm::u8vec3 _color; + bool _pointsChanged { true }; + bool _normalsChanged { true }; + bool _strokeColorsChanged { true }; + bool _strokeWidthsChanged { true }; QVector _points; - glm::vec3 _polylineCenter; QVector _normals; - QVector _colors; - QVector _widths; + QVector _strokeColors; + QVector _strokeWidths; QString _textures; bool _isUVModeStretch; - bool _glow; - bool _faceCamera; - - bool _pointsChanged { false }; - bool _normalsChanged { false }; - bool _colorsChanged { false }; - bool _widthsChanged { false }; - bool _texturesChanged { false }; + bool _texturesChangedFlag { false }; + mutable QReadWriteLock _quadReadWriteLock; }; #endif // hifi_PolyLineEntityItem_h diff --git a/libraries/networking/src/udt/PacketHeaders.cpp b/libraries/networking/src/udt/PacketHeaders.cpp index ebd747fd39..c8e2aaf51e 100644 --- a/libraries/networking/src/udt/PacketHeaders.cpp +++ b/libraries/networking/src/udt/PacketHeaders.cpp @@ -33,7 +33,7 @@ PacketVersion versionForPacketType(PacketType packetType) { case PacketType::EntityEdit: case PacketType::EntityData: case PacketType::EntityPhysics: - return static_cast(EntityVersion::MissingLineProperties); + return static_cast(EntityVersion::MorePropertiesCleanup); case PacketType::EntityQuery: return static_cast(EntityQueryPacketVersion::ConicalFrustums); case PacketType::AvatarIdentity: diff --git a/libraries/networking/src/udt/PacketHeaders.h b/libraries/networking/src/udt/PacketHeaders.h index 1ed2dd83ff..33f3f967c9 100644 --- a/libraries/networking/src/udt/PacketHeaders.h +++ b/libraries/networking/src/udt/PacketHeaders.h @@ -251,7 +251,7 @@ enum class EntityVersion : PacketVersion { ImageEntities, GridEntities, MissingTextProperties, - MissingLineProperties + MorePropertiesCleanup }; enum class EntityScriptCallMethodVersion : PacketVersion { From 0d14e0bcf7be99a345347bbd95c5da2e708b9f5a Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Mon, 17 Dec 2018 14:07:21 -0800 Subject: [PATCH 015/230] Set minimum timeout for retransmits --- libraries/networking/src/udt/SendQueue.cpp | 11 +++++------ libraries/networking/src/udt/SendQueue.h | 3 +++ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/libraries/networking/src/udt/SendQueue.cpp b/libraries/networking/src/udt/SendQueue.cpp index 3178217a36..262b62de12 100644 --- a/libraries/networking/src/udt/SendQueue.cpp +++ b/libraries/networking/src/udt/SendQueue.cpp @@ -61,6 +61,9 @@ private: Mutex2& _mutex2; }; +const microseconds SendQueue::MAXIMUM_ESTIMATED_TIMEOUT = seconds(5); +const microseconds SendQueue::MINIMUM_ESTIMATED_TIMEOUT = milliseconds(10); + std::unique_ptr SendQueue::create(Socket* socket, HifiSockAddr destination, SequenceNumber currentSequenceNumber, MessageNumber currentMessageNumber, bool hasReceivedHandshakeACK) { Q_ASSERT_X(socket, "SendQueue::create", "Must be called with a valid Socket*"); @@ -505,12 +508,8 @@ bool SendQueue::isInactive(bool attemptedToSendPacket) { auto estimatedTimeout = std::chrono::microseconds(_estimatedTimeout); - // cap our maximum estimated timeout to the already unreasonable 5 seconds - const auto MAXIMUM_ESTIMATED_TIMEOUT = std::chrono::seconds(5); - - if (estimatedTimeout > MAXIMUM_ESTIMATED_TIMEOUT) { - estimatedTimeout = MAXIMUM_ESTIMATED_TIMEOUT; - } + // Clamp timeout beween 10 ms and 5 s + estimatedTimeout = std::min(MAXIMUM_ESTIMATED_TIMEOUT, std::max(MINIMUM_ESTIMATED_TIMEOUT, estimatedTimeout)); // use our condition_variable_any to wait auto cvStatus = _emptyCondition.wait_for(locker, estimatedTimeout); diff --git a/libraries/networking/src/udt/SendQueue.h b/libraries/networking/src/udt/SendQueue.h index c1faac3b22..e5c0e370c4 100644 --- a/libraries/networking/src/udt/SendQueue.h +++ b/libraries/networking/src/udt/SendQueue.h @@ -140,6 +140,9 @@ private: std::condition_variable_any _emptyCondition; std::chrono::high_resolution_clock::time_point _lastPacketSentAt; + + static const std::chrono::microseconds MAXIMUM_ESTIMATED_TIMEOUT; + static const std::chrono::microseconds MINIMUM_ESTIMATED_TIMEOUT; }; } From a99ba052b80f37d97cd921c54dd60f8a582a6ed1 Mon Sep 17 00:00:00 2001 From: vladest Date: Tue, 18 Dec 2018 20:30:53 +0100 Subject: [PATCH 016/230] Remove duplicate signals --- .../src/display-plugins/AbstractHMDScriptingInterface.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libraries/display-plugins/src/display-plugins/AbstractHMDScriptingInterface.h b/libraries/display-plugins/src/display-plugins/AbstractHMDScriptingInterface.h index 0c35a5456c..c1253f825f 100644 --- a/libraries/display-plugins/src/display-plugins/AbstractHMDScriptingInterface.h +++ b/libraries/display-plugins/src/display-plugins/AbstractHMDScriptingInterface.h @@ -15,7 +15,7 @@ // These properties have JSDoc documentation in HMDScriptingInterface.h. class AbstractHMDScriptingInterface : public QObject { Q_OBJECT - Q_PROPERTY(bool active READ isHMDMode NOTIFY activeChanged) + Q_PROPERTY(bool active READ isHMDMode NOTIFY mountedChanged) Q_PROPERTY(float ipd READ getIPD) Q_PROPERTY(float eyeHeight READ getEyeHeight) Q_PROPERTY(float playerHeight READ getPlayerHeight) @@ -67,8 +67,6 @@ signals: */ void mountedChanged(); - void activeChanged(); - private: float _IPDScale{ 1.0 }; }; From f23c0577f111ed8baa4a383f06a978159a04c771 Mon Sep 17 00:00:00 2001 From: birarda Date: Tue, 18 Dec 2018 11:55:51 -0800 Subject: [PATCH 017/230] add initial message reconstruction and traits dissection --- tools/dissectors/1-hfudt.lua | 107 +++++++++++++++++++++++++------ tools/dissectors/3-hf-avatar.lua | 101 ++++++++++++++++++++++++++++- 2 files changed, 187 insertions(+), 21 deletions(-) diff --git a/tools/dissectors/1-hfudt.lua b/tools/dissectors/1-hfudt.lua index 3993b2d7a0..8b9251c739 100644 --- a/tools/dissectors/1-hfudt.lua +++ b/tools/dissectors/1-hfudt.lua @@ -151,13 +151,16 @@ local packet_types = { [96] = "OctreeDataFileReply", [97] = "OctreeDataPersist", [98] = "EntityClone", - [99] = "EntityQueryInitialResultsComplete" + [99] = "EntityQueryInitialResultsComplete", + [100] = "BulkAvatarTraits" } local unsourced_packet_types = { ["DomainList"] = true } +local fragments = {} + function p_hfudt.dissector(buf, pinfo, tree) -- make sure this isn't a STUN packet - those don't follow HFUDT format @@ -235,6 +238,10 @@ function p_hfudt.dissector(buf, pinfo, tree) local payload_offset = 4 + local message_number = 0 + local message_part_number = 0 + local message_position = 0 + -- if the message bit is set, handle the second word if message_bit == 1 then payload_offset = 12 @@ -242,7 +249,7 @@ function p_hfudt.dissector(buf, pinfo, tree) local second_word = buf(4, 4):le_uint() -- read message position from upper 2 bits - local message_position = bit32.rshift(second_word, 30) + message_position = bit32.rshift(second_word, 30) local position = subtree:add(f_message_position, message_position) if message_positions[message_position] ~= nil then @@ -251,10 +258,12 @@ function p_hfudt.dissector(buf, pinfo, tree) end -- read message number from lower 30 bits - subtree:add(f_message_number, bit32.band(second_word, 0x3FFFFFFF)) + message_number = bit32.band(second_word, 0x3FFFFFFF) + subtree:add(f_message_number, message_number) -- read the message part number - subtree:add(f_message_part_number, buf(8, 4):le_uint()) + message_part_number = buf(8, 4):le_uint() + subtree:add(f_message_part_number, message_part_number) end -- read the type @@ -283,25 +292,85 @@ function p_hfudt.dissector(buf, pinfo, tree) i = i + 16 end - -- Domain packets - if packet_type_text == "DomainList" then - Dissector.get("hf-domain"):call(buf(i):tvb(), pinfo, tree) + local payload_to_dissect = nil + + -- check if we have part of a message that we need to re-assemble + -- before it can be dissected + if obfuscation_bits == 0 then + if message_bit == 1 and message_position ~= 0 then + if fragments[message_number] == nil then + fragments[message_number] = {} + end + + if fragments[message_number][message_part_number] == nil then + fragments[message_number][message_part_number] = {} + end + + -- set the properties for this fragment + fragments[message_number][message_part_number] = { + payload = buf(i):bytes() + } + + -- if this is the last part, set our maximum part number + if message_position == 1 then + fragments[message_number].last_part_number = message_part_number + end + + -- if we have the last part + -- enumerate our parts for this message and see if everything is present + if fragments[message_number].last_part_number ~= nil then + local i = 0 + local has_all = true + + local finalMessage = ByteArray.new() + local message_complete = true + + while i <= fragments[message_number].last_part_number do + if fragments[message_number][i] ~= nil then + finalMessage = finalMessage .. fragments[message_number][i].payload + else + -- missing this part, have to break until we have it + message_complete = false + end + + i = i + 1 + end + + if message_complete then + debug("Message " .. message_number .. " is " .. finalMessage:len()) + payload_to_dissect = ByteArray.tvb(finalMessage, message_number) + end + end + + else + payload_to_dissect = buf(i):tvb() + end end - -- AvatarData or BulkAvatarDataPacket - if packet_type_text == "AvatarData" or packet_type_text == "BulkAvatarData" then - Dissector.get("hf-avatar"):call(buf(i):tvb(), pinfo, tree) + if payload_to_dissect ~= nil then + -- Domain packets + if packet_type_text == "DomainList" then + Dissector.get("hf-domain"):call(payload_to_dissect, pinfo, tree) + end + + -- AvatarData or BulkAvatarDataPacket + if packet_type_text == "AvatarData" or + packet_type_text == "BulkAvatarData" or + packet_type_text == "BulkAvatarTraits" then + Dissector.get("hf-avatar"):call(payload_to_dissect, pinfo, tree) + end + + if packet_type_text == "EntityEdit" then + Dissector.get("hf-entity"):call(payload_to_dissect, pinfo, tree) + end + + if packet_types[packet_type] == "MicrophoneAudioNoEcho" or + packet_types[packet_type] == "MicrophoneAudioWithEcho" or + packet_types[packet_type] == "SilentAudioFrame" then + Dissector.get("hf-audio"):call(payload_to_dissect, pinfo, tree) + end end - if packet_type_text == "EntityEdit" then - Dissector.get("hf-entity"):call(buf(i):tvb(), pinfo, tree) - end - - if packet_types[packet_type] == "MicrophoneAudioNoEcho" or - packet_types[packet_type] == "MicrophoneAudioWithEcho" or - packet_types[packet_type] == "SilentAudioFrame" then - Dissector.get("hf-audio"):call(buf(i):tvb(), pinfo, tree) - end end -- return the size of the header diff --git a/tools/dissectors/3-hf-avatar.lua b/tools/dissectors/3-hf-avatar.lua index 0fa551c6f8..f4172b01cb 100644 --- a/tools/dissectors/3-hf-avatar.lua +++ b/tools/dissectors/3-hf-avatar.lua @@ -21,13 +21,31 @@ local f_avatar_data_default_rotations = ProtoField.string("hf_avatar.avatar_data local f_avatar_data_default_translations = ProtoField.string("hf_avatar.avatar_data_default_translations", "Valid Default") local f_avatar_data_sizes = ProtoField.string("hf_avatar.avatar_sizes", "Sizes") +-- avatar trait data fields +local f_avatar_trait_data = ProtoField.bytes("hf_avatar.avatar_trait_data", "Avatar Trait Data") + +local f_avatar_trait_id = ProtoField.guid("hf_avatar.trait_avatar_id", "Trait Avatar ID") +local f_avatar_trait_type = ProtoField.int8("hf_avatar.trait_type", "Trait Type") +local f_avatar_trait_version = ProtoField.int32("hf_avatar.trait_version", "Trait Version") +local f_avatar_trait_instance_id = ProtoField.guid("hf_avatar.trait_instance_id", "Trait Instance ID") +local f_avatar_trait_binary = ProtoField.bytes("hf_avatar.trait_binary", "Trait Binary Data") p_hf_avatar.fields = { - f_avatar_id, f_avatar_data_parent_id + f_avatar_id, f_avatar_data_parent_id, + f_avatar_trait_data, + f_avatar_trait_type, f_avatar_trait_id, + f_avatar_trait_version, f_avatar_trait_binary, + f_avatar_trait_instance_id } local packet_type_extractor = Field.new('hfudt.type') +INSTANCED_TYPES = { + [1] = true +} + +TOTAL_TRAIT_TYPES = 2 + function p_hf_avatar.dissector(buf, pinfo, tree) pinfo.cols.protocol = p_hf_avatar.name @@ -52,7 +70,7 @@ function p_hf_avatar.dissector(buf, pinfo, tree) add_avatar_data_subtrees(avatar_data) - else + elseif packet_type == 11 then -- BulkAvatarData packet while i < buf:len() do -- avatar_id is first 16 bytes @@ -65,9 +83,88 @@ function p_hf_avatar.dissector(buf, pinfo, tree) add_avatar_data_subtrees(avatar_data) end + elseif packet_type == 100 then + -- BulkAvatarTraits packet + + -- loop over the packet until we're done reading it + while i < buf:len() do + i = i + read_avatar_trait_data(buf(i)) + end end end +function read_avatar_trait_data(buf) + local i = 0 + + -- avatar_id is first 16 bytes + local avatar_id_bytes = buf(i, 16) + i = i + 16 + + local traits_map = {} + + -- loop over all of the traits for this avatar + while i < buf:len() do + -- pull out this trait type + local trait_type = buf(i, 1):le_int() + i = i + 1 + + debug("The trait type is " .. trait_type) + + -- bail on our while if the trait type is null (-1) + if trait_type == -1 then break end + + local trait_map = {} + + -- pull out the trait version + trait_map.version = buf(i, 4):le_int() + i = i + 4 + + if INSTANCED_TYPES[trait_type] ~= nil then + -- pull out the trait instance ID + trait_map.instance_ID = buf(i, 16) + i = i + 16 + end + + -- pull out the trait binary size + trait_map.binary_size = buf(i, 2):le_int() + i = i + 2 + + -- unpack the binary data as long as this wasn't a delete + if trait_map.binary_size ~= -1 then + -- pull out the binary data for the trait + trait_map.binary_data = buf(i, trait_map.binary_size) + i = i + trait_map.binary_size + end + + traits_map[trait_type] = trait_map + end + + -- add a subtree including all of the data for this avatar + debug("Adding trait data of " .. i .. " bytes to the avatar tree") + local this_avatar_tree = avatar_subtree:add(f_avatar_trait_data, buf(0, i)) + + this_avatar_tree:add(f_avatar_trait_id, avatar_id_bytes) + + -- enumerate the pulled traits and add them to the tree + local trait_type = 0 + while trait_type < TOTAL_TRAIT_TYPES do + trait = traits_map[trait_type] + + if trait ~= nil then + this_avatar_tree:add(f_avatar_trait_type, trait_type) + this_avatar_tree:add(f_avatar_trait_version, trait.version) + this_avatar_tree:add(f_avatar_trait_binary, trait.binary_data) + + if trait.instance_ID ~= nil then + this_avatar_tree:add(f_avatar_trait_instance_id, trait.instance_ID) + end + end + + trait_type = trait_type + 1 + end + + return i +end function add_avatar_data_subtrees(avatar_data) if avatar_data["has_flags"] then From 84fcf5bf8bbd38dc5ab3f7082462c1333b00ba66 Mon Sep 17 00:00:00 2001 From: vladest Date: Tue, 18 Dec 2018 22:07:54 +0100 Subject: [PATCH 018/230] Remove duplicate signals #2 --- interface/src/Application.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 51301d3277..d9c3f1478c 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2815,8 +2815,6 @@ void Application::initializeDisplayPlugins() { auto hmdDisplayPlugin = dynamic_cast(displayPlugin.get()); QObject::connect(hmdDisplayPlugin, &HmdDisplayPlugin::hmdMountedChanged, DependencyManager::get().data(), &HMDScriptingInterface::mountedChanged); - QObject::connect(hmdDisplayPlugin, &HmdDisplayPlugin::hmdMountedChanged, - DependencyManager::get().data(), &HMDScriptingInterface::activeChanged); QObject::connect(hmdDisplayPlugin, &HmdDisplayPlugin::hmdVisibleChanged, this, &Application::hmdVisibleChanged); } } From ad471387f7212559fcbf34d4f37d1cbe0010ed85 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Fri, 14 Dec 2018 16:10:42 -0800 Subject: [PATCH 019/230] Integrate marketplace upload API --- .../resources/qml/controlsUit/Button.qml | 7 + .../resources/qml/hifi/AvatarPackager.qml | 3 +- .../qml/hifi/avatarPackager/AvatarProject.qml | 110 ++++++++- interface/src/Application.cpp | 2 +- interface/src/avatar/AvatarManager.cpp | 4 +- interface/src/avatar/AvatarPackager.cpp | 6 +- interface/src/avatar/AvatarPackager.h | 1 - interface/src/avatar/AvatarProject.cpp | 12 +- interface/src/avatar/AvatarProject.h | 7 +- .../src/avatar/MarketplaceItemUploader.cpp | 225 ++++++++++++++++-- .../src/avatar/MarketplaceItemUploader.h | 52 +++- scripts/system/html/js/entityProperties.js | 9 + 12 files changed, 386 insertions(+), 52 deletions(-) diff --git a/interface/resources/qml/controlsUit/Button.qml b/interface/resources/qml/controlsUit/Button.qml index 6ea7ce4b4c..9d92ff5e9a 100644 --- a/interface/resources/qml/controlsUit/Button.qml +++ b/interface/resources/qml/controlsUit/Button.qml @@ -28,6 +28,10 @@ Original.Button { width: hifi.dimensions.buttonWidth height: hifi.dimensions.controlLineHeight + property size implicitPadding: Qt.size(20, 16) + property int implicitWidth: content.implicitWidth + implicitPadding.width + property int implicitHeight: content.implicitHeight + implicitPadding.height + HifiConstants { id: hifi } onHoveredChanged: { @@ -89,6 +93,9 @@ Original.Button { } contentItem: Item { + id: content + implicitWidth: (buttonGlyph.visible ? buttonGlyph.implicitWidth : 0) + buttonText.implicitWidth + implicitHeight: buttonText.implicitHeight HiFiGlyphs { id: buttonGlyph; visible: control.buttonGlyph !== ""; diff --git a/interface/resources/qml/hifi/AvatarPackager.qml b/interface/resources/qml/hifi/AvatarPackager.qml index 5a51a3c873..d5e21d9653 100644 --- a/interface/resources/qml/hifi/AvatarPackager.qml +++ b/interface/resources/qml/hifi/AvatarPackager.qml @@ -47,7 +47,7 @@ Windows.ScrollingWindow { anchors.top: parent.top anchors.topMargin: 25 anchors.bottomMargin: 25 - text: 'Avatar Packager' + text: 'Avatar Packager ' + parent.width + " " + parent.height } HifiControls.Button { @@ -72,6 +72,7 @@ Windows.ScrollingWindow { height: 30 onClicked: function() { var avatarProjectsPath = fileDialogHelper.standardPath(/*fileDialogHelper.StandardLocation.DocumentsLocation*/ 1) + "/High Fidelity/Avatar Projects"; + var avatarProjectsPath = "C:/Users/ryanh/Documents/High Fidelity Avatars"; console.log("path = " + avatarProjectsPath); // TODO: make the dialog modal diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml index 085f1acdce..4f42927676 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -3,6 +3,8 @@ import QtQuick.Controls 2.2 import QtQuick.Layouts 1.3 import QtGraphicalEffects 1.0 +import QtQuick.Controls 2.2 as Original + import "../../controlsUit" 1.0 as HifiControls import "../../stylesUit" 1.0 @@ -12,6 +14,7 @@ Item { HifiConstants { id: hifi } property int colorScheme; + property var uploader: undefined; visible: true @@ -58,13 +61,118 @@ Item { } HifiControls.Button { id: uploadButton + width: parent.width + height: 30 anchors.bottom: parent.bottom + text: qsTr("Upload") color: hifi.buttons.blue colorScheme: root.colorScheme - height: 30 onClicked: function() { + console.log("Uploading"); + parent.uploader = AvatarPackagerCore.currentAvatarProject.upload(); + console.log("uploader: "+ parent.uploader); + parent.uploader.uploadProgress.connect(function(uploaded, total) { + console.log("Uploader progress: " + uploaded + " / " + total); + }); + parent.uploader.completed.connect(function() { + try { + var response = JSON.parse(parent.uploader.responseData); + console.log("Uploader complete! " + response); + uploadStatus.text = response.status; + } catch (e) { + console.log("Error parsing JSON: " + parent.uploader.reponseData); + } + }); + parent.uploader.send(); } } + + Rectangle { + id: uploadingScreen + + visible: !!root.uploader + anchors.fill: parent + + color: "black" + + Item { + visible: !!root.uploader && !root.uploader.complete + + anchors.fill: parent + + AnimatedImage { + id: uploadSpinner + + anchors { + horizontalCenter: parent.horizontalCenter + verticalCenter: parent.verticalCenter + } + + source: "../../../icons/loader-snake-64-w.gif" + playing: true + z: 10000 + } + } + + Item { + visible: !!root.uploader && root.uploader.complete + + anchors.fill: parent + + HiFiGlyphs { + id: successIcon + + anchors { + horizontalCenter: parent.horizontalCenter + verticalCenter: parent.verticalCenter + } + + size: 128 + text: "\ue01a" + color: "#1FC6A6" + } + + Text { + text: "Congratulations!" + + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: successIcon.bottom + + color: "white" + } + + HifiControls.Button { + width: implicitWidth + height: implicitHeight + + anchors.bottom: parent.bottom + anchors.right: parent.right + + text: "View in Inventory" + + color: hifi.buttons.blue + colorScheme: root.colorScheme + onClicked: function() { + console.log("Opening in inventory"); + } + } + } + + Column { + Text { + id: uploadStatus + + text: "Uploading" + color: "white" + + } + Text { + text: "State: " + (!!root.uploader ? root.uploader.state : " NONE") + color: "white" + } + } + + } } diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 7c4975e7a9..10f8d66855 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -460,7 +460,7 @@ public: // Don't actually crash in debug builds, in case this apparent deadlock is simply from // the developer actively debugging code #ifdef NDEBUG - deadlockDetectionCrash(); + //deadlockDetectionCrash(); #endif } } diff --git a/interface/src/avatar/AvatarManager.cpp b/interface/src/avatar/AvatarManager.cpp index 7ca18ca258..1a6b510ea1 100644 --- a/interface/src/avatar/AvatarManager.cpp +++ b/interface/src/avatar/AvatarManager.cpp @@ -536,6 +536,7 @@ void AvatarManager::handleCollisionEvents(const CollisionEvents& collisionEvents // my avatar. (Other user machines will make a similar analysis and inject sound for their collisions.) if (collision.idA.isNull() || collision.idB.isNull()) { auto myAvatar = getMyAvatar(); + myAvatar->collisionWithEntity(collision); auto collisionSound = myAvatar->getCollisionSound(); if (collisionSound) { const auto characterController = myAvatar->getCharacterController(); @@ -571,9 +572,8 @@ void AvatarManager::handleCollisionEvents(const CollisionEvents& collisionEvents auto injector = AudioInjector::playSoundAndDelete(collisionSound, options); _collisionInjectors.emplace_back(injector); } - myAvatar->collisionWithEntity(collision); - return; } + return; } } } diff --git a/interface/src/avatar/AvatarPackager.cpp b/interface/src/avatar/AvatarPackager.cpp index 3fdf193087..04ecc87067 100644 --- a/interface/src/avatar/AvatarPackager.cpp +++ b/interface/src/avatar/AvatarPackager.cpp @@ -25,6 +25,7 @@ std::once_flag setupQMLTypesFlag; AvatarPackager::AvatarPackager() { std::call_once(setupQMLTypesFlag, []() { qmlRegisterType(); + qmlRegisterType(); }); } @@ -47,8 +48,3 @@ QObject* AvatarPackager::openAvatarProject(QString avatarProjectFSTPath) { emit avatarProjectChanged(); return _currentAvatarProject; } - -QObject* AvatarPackager::uploadItem() { - std::vector filePaths; - return new MarketplaceItemUploader(QUuid(), filePaths); -} diff --git a/interface/src/avatar/AvatarPackager.h b/interface/src/avatar/AvatarPackager.h index f002631f17..def82b6311 100644 --- a/interface/src/avatar/AvatarPackager.h +++ b/interface/src/avatar/AvatarPackager.h @@ -35,7 +35,6 @@ signals: private: Q_INVOKABLE AvatarProject* getAvatarProject() const { return _currentAvatarProject; }; //Q_INVOKABLE QObject* openAvatarProject(); - Q_INVOKABLE QObject* uploadItem(); AvatarProject* _currentAvatarProject{ nullptr }; }; diff --git a/interface/src/avatar/AvatarProject.cpp b/interface/src/avatar/AvatarProject.cpp index c7ea7e52ac..cc23027562 100644 --- a/interface/src/avatar/AvatarProject.cpp +++ b/interface/src/avatar/AvatarProject.cpp @@ -41,6 +41,9 @@ AvatarProject* AvatarProject::openAvatarProject(const QString& path) { AvatarProject::AvatarProject(const QString& fstPath, const QByteArray& data) : _fstPath(fstPath), _fst(fstPath, FSTReader::readMapping(data)) { + _fstFilename = QFileInfo(_fstPath).fileName(); + qDebug() << "Pointers: " << this << &_fst; + _directory = QFileInfo(_fstPath).absoluteDir(); //_projectFiles = _directory.entryList(); @@ -51,13 +54,12 @@ AvatarProject::AvatarProject(const QString& fstPath, const QByteArray& data) : } void AvatarProject::appendDirectory(QString prefix, QDir dir) { - qDebug() << "Inside of " << prefix << dir.absolutePath(); auto flags = QDir::Dirs | QDir::Files | QDir::NoSymLinks | QDir::NoDotAndDotDot | QDir::Hidden; for (auto& entry : dir.entryInfoList({}, flags)) { if (entry.isFile()) { - _projectFiles.append(prefix + "/" + entry.fileName()); + //_projectFiles.append(prefix + "/" + entry.fileName()); + _projectFiles.append(entry.absoluteFilePath()); } else if (entry.isDir()) { - qDebug() << "Found dir " << entry.absoluteFilePath() << " in " << dir.absolutePath(); appendDirectory(prefix + dir.dirName() + "/", entry.absoluteFilePath()); } } @@ -67,3 +69,7 @@ void AvatarProject::refreshProjectFiles() { _projectFiles.clear(); appendDirectory("", _directory); } + +Q_INVOKABLE MarketplaceItemUploader* AvatarProject::upload() { + return new MarketplaceItemUploader("test_avatar", "blank description", _fstFilename, QUuid(), _projectFiles); +} diff --git a/interface/src/avatar/AvatarProject.h b/interface/src/avatar/AvatarProject.h index 6dc64cda6f..1a0ed5cc5e 100644 --- a/interface/src/avatar/AvatarProject.h +++ b/interface/src/avatar/AvatarProject.h @@ -13,6 +13,7 @@ #ifndef hifi_AvatarProject_h #define hifi_AvatarProject_h +#include "MarketplaceItemUploader.h" #include "FST.h" #include @@ -38,10 +39,7 @@ public: return false; } - Q_INVOKABLE QObject* upload() { - // TODO: create new AvatarProjectUploader here, launch it and return it for status tracking in QML - return nullptr; - } + Q_INVOKABLE MarketplaceItemUploader* upload(); /** * returns the AvatarProject or a nullptr on failure. @@ -70,6 +68,7 @@ private: QStringList _projectFiles{}; QString _projectPath; QString _fstPath; + QString _fstFilename; }; #endif // hifi_AvatarProject_h diff --git a/interface/src/avatar/MarketplaceItemUploader.cpp b/interface/src/avatar/MarketplaceItemUploader.cpp index c2671aadec..7a5abacce4 100644 --- a/interface/src/avatar/MarketplaceItemUploader.cpp +++ b/interface/src/avatar/MarketplaceItemUploader.cpp @@ -14,44 +14,221 @@ #include #include -#include - -MarketplaceItemUploader::MarketplaceItemUploader(QUuid marketplaceID, std::vector filePaths) - : _filePaths(filePaths), _marketplaceID(marketplaceID) { +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +MarketplaceItemUploader::MarketplaceItemUploader(QString title, + QString description, + QString rootFilename, + QUuid marketplaceID, + QStringList filePaths) : + _title(title), + _description(description), _rootFilename(rootFilename), _filePaths(filePaths), _marketplaceID(marketplaceID) { + qWarning() << "File paths: " << _filePaths.join(", "); + //_marketplaceID = QUuid::fromString(QLatin1String("{50dbd62f-cb6b-4be4-afb8-1ef8bd2dffa8}")); +} + +void MarketplaceItemUploader::setState(State newState) { + qDebug() << "Setting uploader state to: " << newState; + + _state = newState; + emit stateChanged(newState); + if (newState == State::Complete) { + emit completed(); + } } void MarketplaceItemUploader::send() { + doGetCategories(); +} + +void MarketplaceItemUploader::doGetCategories() { + setState(State::GettingCategories); + + static const QString path = "/api/v1/marketplace/categories"; + auto accountManager = DependencyManager::get(); - auto request = accountManager->createRequest("/marketplace/item", AccountManagerAuth::Required); + auto request = accountManager->createRequest(path, AccountManagerAuth::None); + + qWarning() << "Request url is: " << request.url(); QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); - QByteArray data; - /* - auto reply = networkAccessManager.post(request, data); - - connect(reply, &QNetworkReply::uploadProgress, this, &MarketplaceItemUploader::uploadProgress); + QNetworkReply* reply = networkAccessManager.get(request); connect(reply, &QNetworkReply::finished, this, [this, reply]() { + auto doc = QJsonDocument::fromJson(reply->readAll()); + auto error = reply->error(); if (error == QNetworkReply::NoError) { - } else { - } - emit complete(); - }); - */ + auto extractCategoryID = [&doc]() -> std::pair { + auto items = doc.object()["data"].toObject()["items"]; + if (!items.isArray()) { + qWarning() << "Categories parse error: data.items is not an array"; + return { false, 0 }; + } - QTimer* timer = new QTimer(); - timer->setInterval(1000); - connect(timer, &QTimer::timeout, this, [this, timer]() { - if (progress <= 1.0f) { - progress += 0.1; - emit uploadProgress(progress * 100.0f, 100.0f); + auto itemsArray = items.toArray(); + for (const auto item : itemsArray) { + if (!item.isObject()) { + qWarning() << "Categories parse error: item is not an object"; + return { false, 0 }; + } + + auto itemObject = item.toObject(); + if (itemObject["name"].toString() == "Avatars") { + auto idValue = itemObject["id"]; + if (!idValue.isDouble()) { + qWarning() << "Categories parse error: id is not a number"; + return { false, 0 }; + } + return { true, (int)idValue.toDouble() }; + } + } + + qWarning() << "Categories parse error: could not find a category for 'Avatar'"; + return { false, 0 }; + }; + + bool success; + int id; + std::tie(success, id) = extractCategoryID(); + qDebug() << "Done " << success << id; + if (!success) { + qWarning() << "Failed to find marketplace category id"; + _error = Error::Unknown; + setState(State::Complete); + } else { + doUploadAvatar(); + } } else { - emit complete(); - timer->stop(); + _error = Error::Unknown; + setState(State::Complete); } }); - timer->start(); +} + +void MarketplaceItemUploader::doUploadAvatar() { + QBuffer buffer{ &_fileData }; + //buffer.open(QIODevice::WriteOnly); + QuaZip zip{ &buffer }; + if (!zip.open(QuaZip::Mode::mdAdd)) { + qWarning() << "Failed to open zip!!"; + } + + for (auto& filePath : _filePaths) { + qWarning() << "Zipping: " << filePath; + QFileInfo fileInfo{ filePath }; + + QuaZipFile zipFile{ &zip }; + if (!zipFile.open(QIODevice::WriteOnly, QuaZipNewInfo(fileInfo.fileName()))) { + qWarning() << "Could not open zip file:" << zipFile.getZipError(); + _error = Error::Unknown; + setState(State::Complete); + return; + } + QFile file{ filePath }; + if (file.open(QIODevice::ReadOnly)) { + zipFile.write(file.readAll()); + } else { + qWarning() << "Failed to open: " << filePath; + } + file.close(); + zipFile.close(); + if (zipFile.getZipError() != UNZ_OK) { + qWarning() << "Could not close zip file: " << zipFile.getZipError(); + setState(State::Complete); + return; + } + } + + zip.close(); + + qDebug() << "Finished zipping, size: " << (buffer.size() / (1000.0f)) << "KB"; + + QString path = "/api/v1/marketplace/items"; + bool creating = true; + if (!_marketplaceID.isNull()) { + creating = false; + auto idWithBraces = _marketplaceID.toString(); + auto idWithoutBraces = idWithBraces.mid(1, idWithBraces.length() - 2); + path += "/" + idWithoutBraces; + } + auto accountManager = DependencyManager::get(); + auto request = accountManager->createRequest(path, AccountManagerAuth::Required); + qWarning() << "Request url is: " << request.url(); + + QJsonObject root{ { "marketplace_item", + QJsonObject{ { "title", _title }, + { "description", _description }, + { "root_file_key", _rootFilename }, + { "category_ids", QJsonArray({ 5 }) }, + //{ "attributions", QJsonArray({ QJsonObject{ { "name", "" }, { "link", "" } } }) }, + { "license", 0 }, + { "files", QString::fromLatin1(_fileData.toBase64()) } } } }; + request.setHeader(QNetworkRequest::KnownHeaders::ContentTypeHeader, "application/json"); + QJsonDocument doc{ root }; + + qWarning() << "data: " << doc.toJson(); + + _fileData.toBase64(); + QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); + + QNetworkReply* reply{ nullptr }; + if (creating) { + reply = networkAccessManager.post(request, doc.toJson()); + } else { + reply = networkAccessManager.put(request, doc.toJson()); + } + + connect(reply, &QNetworkReply::uploadProgress, this, &MarketplaceItemUploader::uploadProgress); + + connect(reply, &QNetworkReply::finished, this, [this, reply]() { + _responseData = reply->readAll(); + qWarning() << "Finished request " << _responseData; + auto error = reply->error(); + if (error == QNetworkReply::NoError) { + doWaitForInventory(); + } else { + _error = Error::Unknown; + setState(State::Complete); + } + }); + + setState(State::UploadingAvatar); +} + +void MarketplaceItemUploader::doWaitForInventory() { + static const QString path = "/api/v1/commerce/inventory"; + + auto accountManager = DependencyManager::get(); + auto request = accountManager->createRequest(path, AccountManagerAuth::Required); + + qWarning() << "Request url is: " << request.url(); + + QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); + + QNetworkReply* reply = networkAccessManager.post(request, ""); + + connect(reply, &QNetworkReply::finished, this, [this, reply]() { + auto data = reply->readAll(); + qWarning() << "Finished inventory request " << data; + + auto error = reply->error(); + if (error == QNetworkReply::NoError) { + } else { + _error = Error::Unknown; + } + setState(State::Complete); + }); } diff --git a/interface/src/avatar/MarketplaceItemUploader.h b/interface/src/avatar/MarketplaceItemUploader.h index 2a3071244e..a0ec3f6991 100644 --- a/interface/src/avatar/MarketplaceItemUploader.h +++ b/interface/src/avatar/MarketplaceItemUploader.h @@ -20,36 +20,68 @@ class QNetworkReply; class MarketplaceItemUploader : public QObject { Q_OBJECT + + Q_PROPERTY(bool complete READ getComplete NOTIFY stateChanged) + Q_PROPERTY(State state READ getState NOTIFY stateChanged) + Q_PROPERTY(Error error READ getError) + Q_PROPERTY(QString responseData READ getResponseData) public: enum class Error { None, - ItemNotUpdateable, - ItemDoesNotExist, - RequestTimedOut, Unknown }; + Q_ENUM(Error); + enum class State { - Ready, - Sent + Idle, + GettingCategories, + UploadingAvatar, + WaitingForInventory, + Complete }; + Q_ENUM(State); - MarketplaceItemUploader(QUuid markertplaceID, std::vector filePaths); - - float progress{ 0.0f }; + MarketplaceItemUploader(QString title, + QString description, + QString rootFilename, + QUuid marketplaceID, + QStringList filePaths); Q_INVOKABLE void send(); + QString getResponseData() const { return _responseData; } + void setState(State newState); + State getState() const { return _state; } + bool getComplete() const { return _state == State::Complete; } + + Error getError() const { return _error; } + signals: void uploadProgress(qint64 bytesSent, qint64 bytesTotal); - void complete(); + void completed(); + void stateChanged(State newState); private: + void doGetCategories(); + void doUploadAvatar(); + void doWaitForInventory(); QNetworkReply* _reply; + + State _state{ State::Idle }; + Error _error{ Error::None }; + + QString _title; + QString _description; + QString _rootFilename; QUuid _marketplaceID; - std::vector _filePaths; + + QString _responseData; + + QStringList _filePaths; + QByteArray _fileData; }; #endif // hifi_MarketplaceItemUploader_h diff --git a/scripts/system/html/js/entityProperties.js b/scripts/system/html/js/entityProperties.js index dc304c6803..23c7346df8 100644 --- a/scripts/system/html/js/entityProperties.js +++ b/scripts/system/html/js/entityProperties.js @@ -112,6 +112,15 @@ const GROUPS = [ type: "color", propertyID: "color", }, + { + label: "Alpha", + type: "", + type: "number", + min: 0, + max: 1, + step: 0.001, + propertyID: "alpha", + }, ] }, { From cb74313de8210710e6666836b838e1456786f487 Mon Sep 17 00:00:00 2001 From: Thijs Wenker Date: Wed, 19 Dec 2018 19:23:24 +0100 Subject: [PATCH 020/230] create projects / style changes --- .../resources/qml/hifi/AvatarPackager.qml | 196 ++++++++++++------ .../avatarPackager/AvatarPackagerFooter.qml | 24 +++ .../avatarPackager/AvatarPackagerHeader.qml | 71 +++++++ .../qml/hifi/avatarPackager/AvatarProject.qml | 55 +++-- .../avatarPackager/CreateAvatarProject.qml | 108 ++++++++++ .../avatarPackager/ProjectInputControl.qml | 76 +++++++ interface/src/avatar/AvatarPackager.cpp | 21 +- interface/src/avatar/AvatarPackager.h | 13 +- interface/src/avatar/AvatarProject.cpp | 83 ++++++-- interface/src/avatar/AvatarProject.h | 25 ++- libraries/fbx/src/FST.cpp | 137 +++++++++++- libraries/fbx/src/FST.h | 15 +- 12 files changed, 693 insertions(+), 131 deletions(-) create mode 100644 interface/resources/qml/hifi/avatarPackager/AvatarPackagerFooter.qml create mode 100644 interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml create mode 100644 interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml create mode 100644 interface/resources/qml/hifi/avatarPackager/ProjectInputControl.qml diff --git a/interface/resources/qml/hifi/AvatarPackager.qml b/interface/resources/qml/hifi/AvatarPackager.qml index 5a51a3c873..8eb765716e 100644 --- a/interface/resources/qml/hifi/AvatarPackager.qml +++ b/interface/resources/qml/hifi/AvatarPackager.qml @@ -15,92 +15,160 @@ Windows.ScrollingWindow { width: 480 height: 706 title: "Avatar Packager" - resizable: true + resizable: false opacity: parent.opacity destroyOnHidden: true implicitWidth: 384; implicitHeight: 640 - minSize: Qt.vector2d(200, 300) + minSize: Qt.vector2d(480, 706) + HifiConstants { id: hifi } - //HifiConstants { id: hifi } Item { + id: windowContent height: pane.height width: pane.width + anchors.fill: parent - AvatarProject { - id: avatarProject - colorScheme: root.colorScheme - visible: false + // FIXME: modal overlay does not show + Rectangle { + id: modalOverlay anchors.fill: parent + z: 20000 + color: "#aa031b33" + clip: true + visible: true } - Item { - id: avatarPackagerMain - anchors.left: parent.left - anchors.right: parent.right - anchors.top: parent.top - anchors.bottom: parent.bottom - RalewaySemiBold { - id: avatarPackagerLabel - size: 24; - anchors.left: parent.left - anchors.top: parent.top - anchors.topMargin: 25 - anchors.bottomMargin: 25 - text: 'Avatar Packager' - } + Column { + id: avatarPackager + anchors.fill: parent + state: "main" + states: [ + State { + name: "main" + PropertyChanges { target: avatarPackagerHeader; title: qsTr("Avatar Packager"); faqEnabled: true; backButtonEnabled: false } + PropertyChanges { target: avatarPackagerMain; visible: true } + PropertyChanges { target: avatarPackagerFooter; content: avatarPackagerMain.footer } + }, + State { + name: "createProject" + PropertyChanges { target: avatarPackagerHeader; title: qsTr("Create Project") } + PropertyChanges { target: createAvatarProject; visible: true } + PropertyChanges { target: avatarPackagerFooter; content: createAvatarProject.footer } + }, + State { + name: "project" + PropertyChanges { target: avatarPackagerHeader; title: AvatarPackagerCore.currentAvatarProject.name } + PropertyChanges { target: avatarProject; visible: true } + PropertyChanges { target: avatarPackagerFooter; content: avatarProject.footer } + } + ] - HifiControls.Button { - id: createProjectButton - anchors.left: parent.left - anchors.right: parent.right - anchors.top: avatarPackagerLabel.bottom - text: qsTr("Create Project") - colorScheme: root.colorScheme - height: 30 - onClicked: function() { - + AvatarPackagerHeader { + id: avatarPackagerHeader + onBackButtonClicked: { + avatarPackager.state = "main" } } - HifiControls.Button { - id: openProjectButton - anchors.left: parent.left - anchors.right: parent.right - anchors.top: createProjectButton.bottom - text: qsTr("Open Avatar Project") - colorScheme: root.colorScheme - height: 30 - onClicked: function() { - var avatarProjectsPath = fileDialogHelper.standardPath(/*fileDialogHelper.StandardLocation.DocumentsLocation*/ 1) + "/High Fidelity/Avatar Projects"; - console.log("path = " + avatarProjectsPath); - // TODO: make the dialog modal + Item { + height: pane.height - avatarPackagerHeader.height - avatarPackagerFooter.height + width: pane.width - var browser = desktop.fileDialog({ - selectDirectory: false, - dir: fileDialogHelper.pathToUrl(avatarProjectsPath), - filter: "Avatar Project FST Files (*.fst)", - title: "Open Project (.fst)" - }); + Rectangle { + anchors.fill: parent + color: "#404040" + } - browser.canceled.connect(function() { - - }); + AvatarProject { + id: avatarProject + colorScheme: root.colorScheme + anchors.fill: parent + } - browser.selectedFile.connect(function(fileUrl) { - console.log("FOUND PATH " + fileUrl); - let fstFilePath = fileDialogHelper.urlToPath(fileUrl); - let currentAvatarProject = AvatarPackagerCore.openAvatarProject(fstFilePath); - if (currentAvatarProject) { - console.log("LOAD COMPLETE"); - console.log("file dir = " + AvatarPackagerCore.currentAvatarProject.projectFolderPath); - - avatarPackagerMain.visible = false; - avatarProject.visible = true; + CreateAvatarProject { + id: createAvatarProject + colorScheme: root.colorScheme + anchors.fill: parent + } + + Item { + id: avatarPackagerMain + visible: false + anchors.fill: parent + + property var footer: Item { + anchors.fill: parent + anchors.rightMargin: 17 + HifiControls.Button { + id: createProjectButton + anchors.verticalCenter: parent.verticalCenter + anchors.right: openProjectButton.left + anchors.rightMargin: 22 + height: 40 + width: 134 + text: qsTr("New Project") + colorScheme: root.colorScheme + onClicked: { + avatarPackager.state = "createProject"; + } } - }); + + HifiControls.Button { + id: openProjectButton + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + height: 40 + width: 133 + text: qsTr("Open Project") + color: hifi.buttons.blue + colorScheme: root.colorScheme + onClicked: { + // TODO: make the dialog modal + let browser = desktop.fileDialog({ + selectDirectory: false, + dir: fileDialogHelper.pathToUrl(AvatarPackagerCore.AVATAR_PROJECTS_PATH), + filter: "Avatar Project FST Files (*.fst)", + title: "Open Project (.fst)", + }); + + browser.canceled.connect(function() { + + }); + + browser.selectedFile.connect(function(fileUrl) { + let fstFilePath = fileDialogHelper.urlToPath(fileUrl); + let currentAvatarProject = AvatarPackagerCore.openAvatarProject(fstFilePath); + if (currentAvatarProject) { + avatarPackager.state = "project"; + } + }); + } + } + } + Flow { + anchors { + fill: parent + topMargin: 18 + leftMargin: 16 + rightMargin: 16 + } + RalewayRegular { + size: 20 + color: "white" + text: qsTr("Use a custom avatar to express your identity") + } + RalewayRegular { + size: 20 + color: "white" + text: qsTr("To learn more about using this tool, visit our docs") + } + } } } + AvatarPackagerFooter { + id: avatarPackagerFooter + } } } } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerFooter.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerFooter.qml new file mode 100644 index 0000000000..526a2047e3 --- /dev/null +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerFooter.qml @@ -0,0 +1,24 @@ +import QtQuick 2.6 + +import "../../controlsUit" 1.0 as HifiControls +import "../../stylesUit" 1.0 + +Rectangle { + id: avatarPackagerFooter + + color: "#404040" + height: 74 + width: parent.width + + property var content: Item { } + + children: [background, content] + + property var background: Rectangle { + anchors.fill: parent + color: "#404040" + // TODO Use a shadow instead / border is just here for element debug purposes + border.width: 2; + } + +} diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml new file mode 100644 index 0000000000..6dcb1267d4 --- /dev/null +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml @@ -0,0 +1,71 @@ +import QtQuick 2.6 + +import "../../controlsUit" 1.0 as HifiControls +import "../../stylesUit" 1.0 + +Rectangle { + id: avatarPackagerHeader + + width: parent.width + height: 74 + color: "#252525" + + property alias title: title.text + property alias faqEnabled: faq.visible + property alias backButtonEnabled: back.visible + signal backButtonClicked + + RalewaySemiBold { + id: back + visible: true + size: 28 + anchors.top: parent.top + anchors.bottom: parent.bottom + anchors.left: parent.left + anchors.leftMargin: 16 + anchors.verticalCenter: back.verticalCenter + text: "◀" + color: "white" + MouseArea { + anchors.fill: parent + onClicked: avatarPackagerHeader.backButtonClicked() + hoverEnabled: true + onEntered: { state = "hovering" } + onExited: { state = "" } + states: [ + State { + name: "hovering" + PropertyChanges { + target: back + color: "gray" + } + } + ] + } + } + + RalewaySemiBold { + id: title + size: 28 + anchors.top: parent.top + anchors.bottom: parent.bottom + anchors.left: back.visible ? back.right : parent.left + anchors.leftMargin: back.visible ? 11 : 21 + anchors.verticalCenter: title.verticalCenter + text: qsTr("Avatar Packager") + color: "white" + } + + RalewaySemiBold { + id: faq + visible: false + size: 28 + anchors.top: parent.top + anchors.bottom: parent.bottom + anchors.right: parent.right + anchors.rightMargin: 16 + anchors.verticalCenter: faq.verticalCenter + text: qsTr("FAQ") + color: "white" + } +} diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml index 085f1acdce..1e1d256024 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -11,36 +11,56 @@ Item { HifiConstants { id: hifi } - property int colorScheme; - - visible: true + property int colorScheme + visible: false anchors.fill: parent anchors.margins: 10 + property var footer: Item { + anchors.fill: parent + anchors.rightMargin: 17 + HifiControls.Button { + id: uploadButton + //width: parent.width + //anchors.bottom: parent.bottom + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + text: qsTr("Upload") + color: hifi.buttons.blue + colorScheme: root.colorScheme + width: 133 + height: 40 + onClicked: { + } + } + } + RalewaySemiBold { - id: avatarProjectLabel - size: 24; - width: parent.width + id: avatarFBXNameLabel + size: 14 + anchors.left: parent.left + anchors.top: parent.top anchors.topMargin: 25 anchors.bottomMargin: 25 - text: 'Avatar Project' - color: "white" + text: qsTr("FBX file here") } + HifiControls.Button { id: openFolderButton width: parent.width - anchors.top: avatarProjectLabel.bottom + anchors.top: avatarFBXNameLabel.bottom anchors.topMargin: 10 text: qsTr("Open Project Folder") colorScheme: root.colorScheme height: 30 - onClicked: function() { - fileDialogHelper.openDirectory(AvatarPackagerCore.currentAvatarProject.projectFolderPath); + onClicked: { + fileDialogHelper.openDirectory(fileDialogHelper.pathToUrl(AvatarPackagerCore.currentAvatarProject.projectFolderPath)); } } + Rectangle { - color: 'white' + color: "white" visible: AvatarPackagerCore.currentAvatarProject !== null anchors.top: openFolderButton.bottom anchors.left: parent.left @@ -56,15 +76,4 @@ Item { delegate: Text { text: 'File: ' + modelData } } } - HifiControls.Button { - id: uploadButton - width: parent.width - anchors.bottom: parent.bottom - text: qsTr("Upload") - color: hifi.buttons.blue - colorScheme: root.colorScheme - height: 30 - onClicked: function() { - } - } } diff --git a/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml new file mode 100644 index 0000000000..4d1f745fa5 --- /dev/null +++ b/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml @@ -0,0 +1,108 @@ +import QtQuick 2.6 +import QtQuick.Controls 2.2 +import QtQuick.Layouts 1.3 + +import "../../controlsUit" 1.0 as HifiControls +import "../../stylesUit" 1.0 + +Item { + id: root + + HifiConstants { id: hifi } + + property int colorScheme + + property var footer: Item { + anchors.fill: parent + anchors.rightMargin: 17 + HifiControls.Button { + id: createButton + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + height: 30 + width: 133 + text: qsTr("Create") + onClicked: { + if (!AvatarPackagerCore.createAvatarProject(projectLocation.text, name.text, avatarModel.text, textureFolder.text)) { + Window.alert('Failed to create project') + return; + } + avatarPackager.state = "project"; + } + } + } + + visible: false + anchors.fill: parent + height: parent.height + width: parent.width + + Column { + id: createAvatarColumns + anchors.left: parent.left + anchors.right: parent.right + anchors.margins: 10 + + spacing: 17 + + ProjectInputControl { + id: name + label: "Name" + colorScheme: root.colorScheme + } + + ProjectInputControl { + id: projectLocation + label: "Specify Project Location" + colorScheme: root.colorScheme + browseEnabled: true + browseFolder: true + browseDir: fileDialogHelper.pathToUrl(AvatarPackagerCore.AVATAR_PROJECTS_PATH) + browseTitle: "Project Location" + text: fileDialogHelper.pathToUrl(AvatarPackagerCore.AVATAR_PROJECTS_PATH) + onTextChanged: { + //TODO: valid folder? Does project with name exist here already? + } + } + + ProjectInputControl { + id: avatarModel + label: "Specify Avatar Model (.fbx)" + colorScheme: root.colorScheme + browseEnabled: true + browseFolder: false + browseDir: fileDialogHelper.pathToUrl(AvatarPackagerCore.AVATAR_PROJECTS_PATH) + browseFilter: "Avatar Model File (*.fbx)" + browseTitle: "Open Avatar Model (.fbx)" + onTextChanged: { + //TODO: try to get texture folder from fbx if none is set? + } + } + + ProjectInputControl { + id: textureFolder + label: "Specify Texture Folder" + colorScheme: root.colorScheme + browseEnabled: true + browseFolder: true + browseDir: fileDialogHelper.pathToUrl(AvatarPackagerCore.AVATAR_PROJECTS_PATH) + browseTitle: "Texture Folder" + onTextChanged: { + //TODO: valid folder? + + } + } + } + RalewayRegular { + text: "A folder with that name already exists at that location. Please choose a different project name or location." + color: "#EA4C5F"; + wrapMode: Text.WordWrap + size: 20 + anchors { + top: createAvatarColumns.bottom + bottom: parent.bottom + left: parent.left + right: parent.right + } + } +} diff --git a/interface/resources/qml/hifi/avatarPackager/ProjectInputControl.qml b/interface/resources/qml/hifi/avatarPackager/ProjectInputControl.qml new file mode 100644 index 0000000000..472db47c2f --- /dev/null +++ b/interface/resources/qml/hifi/avatarPackager/ProjectInputControl.qml @@ -0,0 +1,76 @@ +import QtQuick 2.6 + +import "../../controlsUit" 1.0 as HifiControls +import "../../stylesUit" 1.0 + +Column { + id: control + + anchors.left: parent.left + anchors.leftMargin: 21 + anchors.right: parent.right + anchors.rightMargin: 16 + + height: 75 + + spacing: 4 + + property alias label: label.text + property alias browseEnabled: browseButton.visible + property bool browseFolder: false + property string browseFilter: "All Files (*.*)" + property string browseTitle: "Open file" + property string browseDir: "" + property alias text: input.text + + property int colorScheme + + Row { + RalewaySemiBold { + id: label + size: 20 + font.weight: Font.Medium + text: "" + color: "white" + } + } + Row { + width: control.width + spacing: 16 + height: 40 + HifiControls.TextField { + id: input + colorScheme: control.colorScheme + font.family: "Fira Sans" + font.pixelSize: 18 + height: parent.height + width: browseButton.visible ? parent.width - browseButton.width - parent.spacing : parent.width + } + + HifiControls.Button { + id: browseButton + visible: false + height: parent.height + width: 133 + text: qsTr("Browse") + colorScheme: root.colorScheme + onClicked: { + // TODO: make the dialog modal + let browser = desktop.fileDialog({ + selectDirectory: browseFolder, + dir: browseDir, + filter: browseFilter, + title: browseTitle, + }); + + browser.canceled.connect(function() { + + }); + + browser.selectedFile.connect(function(fileUrl) { + input.text = fileDialogHelper.urlToPath(fileUrl); + }); + } + } + } +} diff --git a/interface/src/avatar/AvatarPackager.cpp b/interface/src/avatar/AvatarPackager.cpp index 3fdf193087..8075bc5bdc 100644 --- a/interface/src/avatar/AvatarPackager.cpp +++ b/interface/src/avatar/AvatarPackager.cpp @@ -12,6 +12,7 @@ #include "AvatarPackager.h" #include +#include #include #include @@ -25,6 +26,8 @@ std::once_flag setupQMLTypesFlag; AvatarPackager::AvatarPackager() { std::call_once(setupQMLTypesFlag, []() { qmlRegisterType(); + qRegisterMetaType(); + qRegisterMetaType(); }); } @@ -38,12 +41,24 @@ bool AvatarPackager::open() { return true; } -QObject* AvatarPackager::openAvatarProject(QString avatarProjectFSTPath) { +AvatarProject* AvatarPackager::openAvatarProject(const QString& avatarProjectFSTPath) { if (_currentAvatarProject) { - //_currentAvatarProject->deleteLater(); - //_currentAvatarProject = nullptr; + _currentAvatarProject->deleteLater(); } _currentAvatarProject = AvatarProject::openAvatarProject(avatarProjectFSTPath); + qDebug() << "_currentAvatarProject has" << (QQmlEngine::objectOwnership(_currentAvatarProject) == QQmlEngine::CppOwnership ? "CPP" : "JS") << "OWNERSHIP"; + QQmlEngine::setObjectOwnership(_currentAvatarProject, QQmlEngine::CppOwnership); + emit avatarProjectChanged(); + return _currentAvatarProject; +} + +AvatarProject* AvatarPackager::createAvatarProject(const QString& projectsFolder, const QString& avatarProjectName, const QString& avatarModelPath, const QString& textureFolder) { + if (_currentAvatarProject) { + _currentAvatarProject->deleteLater(); + } + _currentAvatarProject = AvatarProject::createAvatarProject(avatarProjectName, avatarModelPath); + qDebug() << "_currentAvatarProject has" << (QQmlEngine::objectOwnership(_currentAvatarProject) == QQmlEngine::CppOwnership ? "CPP" : "JS") << "OWNERSHIP"; + QQmlEngine::setObjectOwnership(_currentAvatarProject, QQmlEngine::CppOwnership); emit avatarProjectChanged(); return _currentAvatarProject; } diff --git a/interface/src/avatar/AvatarPackager.h b/interface/src/avatar/AvatarPackager.h index f002631f17..e0268747c2 100644 --- a/interface/src/avatar/AvatarPackager.h +++ b/interface/src/avatar/AvatarPackager.h @@ -16,25 +16,28 @@ #include #include +#include "FileDialogHelper.h" + #include "avatar/AvatarProject.h" class AvatarPackager : public QObject, public Dependency { Q_OBJECT SINGLETON_DEPENDENCY - Q_PROPERTY(QObject* currentAvatarProject READ getAvatarProject NOTIFY avatarProjectChanged) - -public: + Q_PROPERTY(AvatarProject* currentAvatarProject READ getAvatarProject NOTIFY avatarProjectChanged) + Q_PROPERTY(QString AVATAR_PROJECTS_PATH READ getAvatarProjectsPath CONSTANT) +public: AvatarPackager(); bool open(); - Q_INVOKABLE QObject* openAvatarProject(QString avatarProjectFSTPath); + Q_INVOKABLE AvatarProject* createAvatarProject(const QString& projectsFolder, const QString& avatarProjectName, const QString& avatarModelPath, const QString& textureFolder); + Q_INVOKABLE AvatarProject* openAvatarProject(const QString& avatarProjectFSTPath); signals: void avatarProjectChanged(); private: Q_INVOKABLE AvatarProject* getAvatarProject() const { return _currentAvatarProject; }; - //Q_INVOKABLE QObject* openAvatarProject(); + Q_INVOKABLE QString getAvatarProjectsPath() const { return AvatarProject::getDefaultProjectsPath(); } Q_INVOKABLE QObject* uploadItem(); AvatarProject* _currentAvatarProject{ nullptr }; diff --git a/interface/src/avatar/AvatarProject.cpp b/interface/src/avatar/AvatarProject.cpp index c7ea7e52ac..4321d2ef40 100644 --- a/interface/src/avatar/AvatarProject.cpp +++ b/interface/src/avatar/AvatarProject.cpp @@ -15,44 +15,93 @@ #include #include -#include #include #include +#include "FBXSerializer.h" AvatarProject* AvatarProject::openAvatarProject(const QString& path) { - const auto pathToLower = path.toLower(); - if (pathToLower.endsWith(".fst")) { - QFile file{ path }; - if (!file.open(QIODevice::ReadOnly)) { - return nullptr; - } - auto project = new AvatarProject(path, file.readAll()); - QQmlEngine::setObjectOwnership(project, QQmlEngine::CppOwnership); - return project; + if (!path.toLower().endsWith(".fst")) { + return nullptr; + } + QFile file{ path }; + if (!file.open(QIODevice::ReadOnly)) { + return nullptr; + } + const auto project = new AvatarProject(path, file.readAll()); + QQmlEngine::setObjectOwnership(project, QQmlEngine::CppOwnership); + return project; +} + +AvatarProject* AvatarProject::createAvatarProject(const QString& avatarProjectName, const QString& avatarModelPath) { + if (!isValidNewProjectName(avatarProjectName)) { + return nullptr; + } + QDir dir(getDefaultProjectsPath() + "/" + avatarProjectName); + if (!dir.mkpath(".")) { + return nullptr; + } + const auto fileName = QFileInfo(avatarModelPath).fileName(); + const auto newModelPath = dir.absoluteFilePath(fileName); + const auto newFSTPath = dir.absoluteFilePath("avatar.fst"); + QFile::copy(avatarModelPath, newModelPath); + + QFileInfo fbxInfo(newModelPath); + QFile fbx(fbxInfo.filePath()); + if (!fbxInfo.exists() || !fbxInfo.isFile() || !fbx.open(QIODevice::ReadOnly)) { + // TODO: Can't open model FBX (throw error here) + return nullptr; } - if (pathToLower.endsWith(".fbx")) { - // TODO: Create FST here: + std::shared_ptr hfmModel; + + + try { + qDebug() << "Reading FBX file : " << fbxInfo.filePath(); + const QByteArray fbxContents = fbx.readAll(); + hfmModel = FBXSerializer().read(fbxContents, QVariantHash(), fbxInfo.filePath()); + } + catch (const QString& error) { + qDebug() << "Error reading: " << error; + return nullptr; + } + //TODO: copy/fix textures here: + + + + FST* fst = FST::createFSTFromModel(newFSTPath, newModelPath, *hfmModel); + + fst->setName(avatarProjectName); + + if (!fst->write()) { + return nullptr; } - return nullptr; + return new AvatarProject(fst); +} + +bool AvatarProject::isValidNewProjectName(const QString& projectName) { + QDir dir(getDefaultProjectsPath() + "/" + projectName); + return !dir.exists(); } AvatarProject::AvatarProject(const QString& fstPath, const QByteArray& data) : - _fstPath(fstPath), _fst(fstPath, FSTReader::readMapping(data)) { + AvatarProject::AvatarProject(new FST(fstPath, FSTReader::readMapping(data))) { - _directory = QFileInfo(_fstPath).absoluteDir(); +} +AvatarProject::AvatarProject(FST* fst) { + _fst = fst; + auto fileInfo = QFileInfo(getFSTPath()); + _directory = fileInfo.absoluteDir(); //_projectFiles = _directory.entryList(); refreshProjectFiles(); - auto fileInfo = QFileInfo(_fstPath); _projectPath = fileInfo.absoluteDir().absolutePath(); } void AvatarProject::appendDirectory(QString prefix, QDir dir) { qDebug() << "Inside of " << prefix << dir.absolutePath(); - auto flags = QDir::Dirs | QDir::Files | QDir::NoSymLinks | QDir::NoDotAndDotDot | QDir::Hidden; + const auto flags = QDir::Dirs | QDir::Files | QDir::NoSymLinks | QDir::NoDotAndDotDot | QDir::Hidden; for (auto& entry : dir.entryInfoList({}, flags)) { if (entry.isFile()) { _projectFiles.append(prefix + "/" + entry.fileName()); diff --git a/interface/src/avatar/AvatarProject.h b/interface/src/avatar/AvatarProject.h index 6dc64cda6f..9708c9fa83 100644 --- a/interface/src/avatar/AvatarProject.h +++ b/interface/src/avatar/AvatarProject.h @@ -21,6 +21,7 @@ #include #include #include +#include class AvatarProject : public QObject { Q_OBJECT @@ -31,6 +32,7 @@ class AvatarProject : public QObject { Q_PROPERTY(QString projectFolderPath READ getProjectPath) Q_PROPERTY(QString projectFSTPath READ getFSTPath) Q_PROPERTY(QString projectFBXPath READ getFBXPath) + Q_PROPERTY(QString name READ getProjectName) public: Q_INVOKABLE bool write() { @@ -38,38 +40,41 @@ public: return false; } - Q_INVOKABLE QObject* upload() { - // TODO: create new AvatarProjectUploader here, launch it and return it for status tracking in QML - return nullptr; - } - /** * returns the AvatarProject or a nullptr on failure. */ static AvatarProject* openAvatarProject(const QString& path); + static AvatarProject* createAvatarProject(const QString& avatarProjectName, const QString& avatarModelPath); + + static bool isValidNewProjectName(const QString& projectName); + + static QString getDefaultProjectsPath() { + return QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation) + "/High Fidelity Projects"; + } private: AvatarProject(const QString& fstPath, const QByteArray& data); + AvatarProject(FST* fst); ~AvatarProject() { // TODO: cleanup FST / AvatarProjectUploader etc. } + Q_INVOKABLE QString getProjectName() const { return _fst->getName(); } Q_INVOKABLE QString getProjectPath() const { return _projectPath; } - Q_INVOKABLE QString getFSTPath() const { return _fstPath; } - Q_INVOKABLE QString getFBXPath() const { return _fst.getModelPath(); } + Q_INVOKABLE QString getFSTPath() const { return _fst->getPath(); } + Q_INVOKABLE QString getFBXPath() const { return _fst->getModelPath(); } - FST* getFST() { return &_fst; } + FST* getFST() { return _fst; } void refreshProjectFiles(); void appendDirectory(QString prefix, QDir dir); - FST _fst; + FST* _fst; QDir _directory; QStringList _projectFiles{}; QString _projectPath; - QString _fstPath; }; #endif // hifi_AvatarProject_h diff --git a/libraries/fbx/src/FST.cpp b/libraries/fbx/src/FST.cpp index 6574b66e51..2631fe951e 100644 --- a/libraries/fbx/src/FST.cpp +++ b/libraries/fbx/src/FST.cpp @@ -13,21 +13,125 @@ #include #include +#include -FST::FST(QString fstPath, QVariantHash data) : _fstPath(fstPath) { - if (data.contains("name")) { - _name = data["name"].toString(); - data.remove("name"); +FST::FST(const QString& fstPath, QVariantHash data) : _fstPath(fstPath) { + if (data.contains(NAME_FIELD)) { + _name = data[NAME_FIELD].toString(); + data.remove(NAME_FIELD); } - if (data.contains("filename")) { - _modelPath = data["filename"].toString(); - data.remove("filename"); + if (data.contains(FILENAME_FIELD)) { + _modelPath = data[FILENAME_FIELD].toString(); + data.remove(FILENAME_FIELD); } _other = data; } +FST* FST::createFSTFromModel(QString fstPath, QString modelFilePath, const hfm::Model& hfmModel) { + QVariantHash mapping; + + // mixamo files - in the event that a mixamo file was edited by some other tool, it's likely the applicationName will + // be rewritten, so we detect the existence of several different blendshapes which indicate we're likely a mixamo file + bool likelyMixamoFile = hfmModel.applicationName == "mixamo.com" || + (hfmModel.blendshapeChannelNames.contains("BrowsDown_Right") && + hfmModel.blendshapeChannelNames.contains("MouthOpen") && + hfmModel.blendshapeChannelNames.contains("Blink_Left") && + hfmModel.blendshapeChannelNames.contains("Blink_Right") && + hfmModel.blendshapeChannelNames.contains("Squint_Right")); + + mapping.insert(NAME_FIELD, QFileInfo(fstPath).baseName()); + QDir root(modelFilePath); + mapping.insert(FILENAME_FIELD, root.relativeFilePath(fstPath)); + mapping.insert(TEXDIR_FIELD, "textures"); + mapping.insert(SCRIPT_FIELD, "scripts"); + + // mixamo/autodesk defaults + mapping.insert(SCALE_FIELD, 1.0); + QVariantHash joints = mapping.value(JOINT_FIELD).toHash(); + joints.insert("jointEyeLeft", hfmModel.jointIndices.contains("jointEyeLeft") ? "jointEyeLeft" : + (hfmModel.jointIndices.contains("EyeLeft") ? "EyeLeft" : "LeftEye")); + + joints.insert("jointEyeRight", hfmModel.jointIndices.contains("jointEyeRight") ? "jointEyeRight" : + hfmModel.jointIndices.contains("EyeRight") ? "EyeRight" : "RightEye"); + + joints.insert("jointNeck", hfmModel.jointIndices.contains("jointNeck") ? "jointNeck" : "Neck"); + joints.insert("jointRoot", "Hips"); + joints.insert("jointLean", "Spine"); + joints.insert("jointLeftHand", "LeftHand"); + joints.insert("jointRightHand", "RightHand"); + + const char* topName = likelyMixamoFile ? "HeadTop_End" : "HeadEnd"; + joints.insert("jointHead", hfmModel.jointIndices.contains(topName) ? topName : "Head"); + + mapping.insert(JOINT_FIELD, joints); + + mapping.insertMulti(FREE_JOINT_FIELD, "LeftArm"); + mapping.insertMulti(FREE_JOINT_FIELD, "LeftForeArm"); + mapping.insertMulti(FREE_JOINT_FIELD, "RightArm"); + mapping.insertMulti(FREE_JOINT_FIELD, "RightForeArm"); + + + // If there are no blendshape mappings, and we detect that this is likely a mixamo file, + // then we can add the default mixamo to "faceshift" mappings + if (likelyMixamoFile) { + QVariantHash blendshapes; + blendshapes.insertMulti("BrowsD_L", QVariantList() << "BrowsDown_Left" << 1.0); + blendshapes.insertMulti("BrowsD_R", QVariantList() << "BrowsDown_Right" << 1.0); + blendshapes.insertMulti("BrowsU_C", QVariantList() << "BrowsUp_Left" << 1.0); + blendshapes.insertMulti("BrowsU_C", QVariantList() << "BrowsUp_Right" << 1.0); + blendshapes.insertMulti("BrowsU_L", QVariantList() << "BrowsUp_Left" << 1.0); + blendshapes.insertMulti("BrowsU_R", QVariantList() << "BrowsUp_Right" << 1.0); + blendshapes.insertMulti("ChinLowerRaise", QVariantList() << "Jaw_Up" << 1.0); + blendshapes.insertMulti("ChinUpperRaise", QVariantList() << "UpperLipUp_Left" << 0.5); + blendshapes.insertMulti("ChinUpperRaise", QVariantList() << "UpperLipUp_Right" << 0.5); + blendshapes.insertMulti("EyeBlink_L", QVariantList() << "Blink_Left" << 1.0); + blendshapes.insertMulti("EyeBlink_R", QVariantList() << "Blink_Right" << 1.0); + blendshapes.insertMulti("EyeOpen_L", QVariantList() << "EyesWide_Left" << 1.0); + blendshapes.insertMulti("EyeOpen_R", QVariantList() << "EyesWide_Right" << 1.0); + blendshapes.insertMulti("EyeSquint_L", QVariantList() << "Squint_Left" << 1.0); + blendshapes.insertMulti("EyeSquint_R", QVariantList() << "Squint_Right" << 1.0); + blendshapes.insertMulti("JawFwd", QVariantList() << "JawForeward" << 1.0); + blendshapes.insertMulti("JawLeft", QVariantList() << "JawRotateY_Left" << 0.5); + blendshapes.insertMulti("JawOpen", QVariantList() << "MouthOpen" << 0.7); + blendshapes.insertMulti("JawRight", QVariantList() << "Jaw_Right" << 1.0); + blendshapes.insertMulti("LipsFunnel", QVariantList() << "JawForeward" << 0.39); + blendshapes.insertMulti("LipsFunnel", QVariantList() << "Jaw_Down" << 0.36); + blendshapes.insertMulti("LipsFunnel", QVariantList() << "MouthNarrow_Left" << 1.0); + blendshapes.insertMulti("LipsFunnel", QVariantList() << "MouthNarrow_Right" << 1.0); + blendshapes.insertMulti("LipsFunnel", QVariantList() << "MouthWhistle_NarrowAdjust_Left" << 0.5); + blendshapes.insertMulti("LipsFunnel", QVariantList() << "MouthWhistle_NarrowAdjust_Right" << 0.5); + blendshapes.insertMulti("LipsFunnel", QVariantList() << "TongueUp" << 1.0); + blendshapes.insertMulti("LipsLowerClose", QVariantList() << "LowerLipIn" << 1.0); + blendshapes.insertMulti("LipsLowerDown", QVariantList() << "LowerLipDown_Left" << 0.7); + blendshapes.insertMulti("LipsLowerDown", QVariantList() << "LowerLipDown_Right" << 0.7); + blendshapes.insertMulti("LipsLowerOpen", QVariantList() << "LowerLipOut" << 1.0); + blendshapes.insertMulti("LipsPucker", QVariantList() << "MouthNarrow_Left" << 1.0); + blendshapes.insertMulti("LipsPucker", QVariantList() << "MouthNarrow_Right" << 1.0); + blendshapes.insertMulti("LipsUpperClose", QVariantList() << "UpperLipIn" << 1.0); + blendshapes.insertMulti("LipsUpperOpen", QVariantList() << "UpperLipOut" << 1.0); + blendshapes.insertMulti("LipsUpperUp", QVariantList() << "UpperLipUp_Left" << 0.7); + blendshapes.insertMulti("LipsUpperUp", QVariantList() << "UpperLipUp_Right" << 0.7); + blendshapes.insertMulti("MouthDimple_L", QVariantList() << "Smile_Left" << 0.25); + blendshapes.insertMulti("MouthDimple_R", QVariantList() << "Smile_Right" << 0.25); + blendshapes.insertMulti("MouthFrown_L", QVariantList() << "Frown_Left" << 1.0); + blendshapes.insertMulti("MouthFrown_R", QVariantList() << "Frown_Right" << 1.0); + blendshapes.insertMulti("MouthLeft", QVariantList() << "Midmouth_Left" << 1.0); + blendshapes.insertMulti("MouthRight", QVariantList() << "Midmouth_Right" << 1.0); + blendshapes.insertMulti("MouthSmile_L", QVariantList() << "Smile_Left" << 1.0); + blendshapes.insertMulti("MouthSmile_R", QVariantList() << "Smile_Right" << 1.0); + blendshapes.insertMulti("Puff", QVariantList() << "CheekPuff_Left" << 1.0); + blendshapes.insertMulti("Puff", QVariantList() << "CheekPuff_Right" << 1.0); + blendshapes.insertMulti("Sneer", QVariantList() << "NoseScrunch_Left" << 0.75); + blendshapes.insertMulti("Sneer", QVariantList() << "NoseScrunch_Right" << 0.75); + blendshapes.insertMulti("Sneer", QVariantList() << "Squint_Left" << 0.5); + blendshapes.insertMulti("Sneer", QVariantList() << "Squint_Right" << 0.5); + mapping.insert(BLENDSHAPE_FIELD, blendshapes); + } + return new FST(fstPath, mapping); +} + QString FST::absoluteModelPath() const { QFileInfo fileInfo{ _fstPath }; QDir dir{ fileInfo.absoluteDir() }; @@ -42,4 +146,21 @@ void FST::setName(const QString& name) { void FST::setModelPath(const QString& modelPath) { _modelPath = modelPath; emit modelPathChanged(modelPath); -} \ No newline at end of file +} + +QVariantHash FST::getMapping() { + QVariantHash mapping; + mapping.insertMulti(NAME_FIELD, _name); + mapping.insertMulti(FILENAME_FIELD, _modelPath); + mapping.unite(_other); + return mapping; +} + +bool FST::write() { + QFile fst(_fstPath); + if (!fst.open(QIODevice::WriteOnly)) { + return false; + } + fst.write(FSTReader::writeMapping(getMapping())); + return true; +} diff --git a/libraries/fbx/src/FST.h b/libraries/fbx/src/FST.h index e8c67c6c6b..524463b721 100644 --- a/libraries/fbx/src/FST.h +++ b/libraries/fbx/src/FST.h @@ -13,6 +13,11 @@ #include #include +#include "FSTReader.h" + +namespace hfm { + class Model; +}; class FST : public QObject { Q_OBJECT @@ -20,7 +25,9 @@ class FST : public QObject { Q_PROPERTY(QString modelPath READ getModelPath WRITE setModelPath NOTIFY modelPathChanged) Q_PROPERTY(QUuid marketplaceID READ getMarketplaceID) public: - FST(QString fstPath, QVariantHash data); + FST(const QString& fstPath, QVariantHash data); + + static FST* createFSTFromModel(QString fstPath, QString modelFilePath, const hfm::Model& hfmModel); QString absoluteModelPath() const; @@ -32,6 +39,12 @@ public: QUuid getMarketplaceID() const { return _marketplaceID; } + QString getPath() { return _fstPath; } + + QVariantHash getMapping(); + + bool write(); + signals: void nameChanged(const QString& name); void modelPathChanged(const QString& modelPath); From c2aca64b11efe5ffc95c961e6f6421fdaa1437a2 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Wed, 19 Dec 2018 11:30:21 -0800 Subject: [PATCH 021/230] Add start of opening uploaded avatar in inventory --- interface/resources/qml/hifi/AvatarPackager.qml | 1 - .../qml/hifi/avatarPackager/AvatarProject.qml | 2 ++ interface/src/avatar/AvatarProject.cpp | 16 ++++++++++++++-- interface/src/avatar/AvatarProject.h | 1 + 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/interface/resources/qml/hifi/AvatarPackager.qml b/interface/resources/qml/hifi/AvatarPackager.qml index d5e21d9653..f0835c56bf 100644 --- a/interface/resources/qml/hifi/AvatarPackager.qml +++ b/interface/resources/qml/hifi/AvatarPackager.qml @@ -72,7 +72,6 @@ Windows.ScrollingWindow { height: 30 onClicked: function() { var avatarProjectsPath = fileDialogHelper.standardPath(/*fileDialogHelper.StandardLocation.DocumentsLocation*/ 1) + "/High Fidelity/Avatar Projects"; - var avatarProjectsPath = "C:/Users/ryanh/Documents/High Fidelity Avatars"; console.log("path = " + avatarProjectsPath); // TODO: make the dialog modal diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml index 4f42927676..1ba41b1de6 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -156,6 +156,8 @@ Item { colorScheme: root.colorScheme onClicked: function() { console.log("Opening in inventory"); + + AvatarPackagerCore.currentAvatarProject.openInInventory(); } } } diff --git a/interface/src/avatar/AvatarProject.cpp b/interface/src/avatar/AvatarProject.cpp index cc23027562..d08eafb43c 100644 --- a/interface/src/avatar/AvatarProject.cpp +++ b/interface/src/avatar/AvatarProject.cpp @@ -19,6 +19,9 @@ #include #include +#include +#include "scripting/HMDScriptingInterface.h" + AvatarProject* AvatarProject::openAvatarProject(const QString& path) { const auto pathToLower = path.toLower(); if (pathToLower.endsWith(".fst")) { @@ -40,7 +43,6 @@ AvatarProject* AvatarProject::openAvatarProject(const QString& path) { AvatarProject::AvatarProject(const QString& fstPath, const QByteArray& data) : _fstPath(fstPath), _fst(fstPath, FSTReader::readMapping(data)) { - _fstFilename = QFileInfo(_fstPath).fileName(); qDebug() << "Pointers: " << this << &_fst; @@ -70,6 +72,16 @@ void AvatarProject::refreshProjectFiles() { appendDirectory("", _directory); } -Q_INVOKABLE MarketplaceItemUploader* AvatarProject::upload() { +MarketplaceItemUploader* AvatarProject::upload() { return new MarketplaceItemUploader("test_avatar", "blank description", _fstFilename, QUuid(), _projectFiles); } + +void AvatarProject::openInInventory() { + auto tablet = dynamic_cast( + DependencyManager::get()->getTablet("com.highfidelity.interface.tablet.system")); + tablet->loadQMLSource("hifi/commerce/wallet/Wallet.qml"); + DependencyManager::get()->openTablet(); + tablet->sendToQml(QVariantMap({ + { "method", "updatePurchases" }, + { "filterText", "filtertext" } })); +} diff --git a/interface/src/avatar/AvatarProject.h b/interface/src/avatar/AvatarProject.h index 1a0ed5cc5e..de7751008f 100644 --- a/interface/src/avatar/AvatarProject.h +++ b/interface/src/avatar/AvatarProject.h @@ -40,6 +40,7 @@ public: } Q_INVOKABLE MarketplaceItemUploader* upload(); + Q_INVOKABLE void openInInventory(); /** * returns the AvatarProject or a nullptr on failure. From 05e0fb464ef700214d521f11638d0d29842a6a27 Mon Sep 17 00:00:00 2001 From: SamGondelman Date: Fri, 14 Dec 2018 15:52:00 -0800 Subject: [PATCH 022/230] new improved polylines --- .../src/RenderablePolyLineEntityItem.cpp | 345 ++++++++---------- .../src/RenderablePolyLineEntityItem.h | 54 ++- .../entities-renderer/src/paintStroke.slf | 32 +- .../entities-renderer/src/paintStroke.slh | 48 +++ .../entities-renderer/src/paintStroke.slv | 46 ++- .../src/paintStroke_Shared.slh | 25 ++ .../src/paintStroke_fade.slf | 52 --- .../src/paintStroke_fade.slv | 43 --- .../entities/src/EntityItemProperties.cpp | 24 ++ libraries/entities/src/EntityItemProperties.h | 2 + libraries/entities/src/EntityPropertyFlags.h | 2 + libraries/entities/src/PolyLineEntityItem.cpp | 173 +++------ libraries/entities/src/PolyLineEntityItem.h | 56 +-- .../networking/src/udt/PacketHeaders.cpp | 2 +- libraries/networking/src/udt/PacketHeaders.h | 3 +- 15 files changed, 414 insertions(+), 493 deletions(-) create mode 100644 libraries/entities-renderer/src/paintStroke.slh create mode 100644 libraries/entities-renderer/src/paintStroke_Shared.slh delete mode 100644 libraries/entities-renderer/src/paintStroke_fade.slf delete mode 100644 libraries/entities-renderer/src/paintStroke_fade.slv diff --git a/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp b/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp index 0d9e948db8..de224103ce 100644 --- a/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp @@ -19,66 +19,39 @@ #include #include -//#define POLYLINE_ENTITY_USE_FADE_EFFECT -#ifdef POLYLINE_ENTITY_USE_FADE_EFFECT -# include -#endif +#include "paintStroke_Shared.slh" using namespace render; using namespace render::entities; -static uint8_t CUSTOM_PIPELINE_NUMBER { 0 }; -static const int32_t PAINTSTROKE_TEXTURE_SLOT { 0 }; -static gpu::Stream::FormatPointer polylineFormat; -static gpu::PipelinePointer polylinePipeline; -#ifdef POLYLINE_ENTITY_USE_FADE_EFFECT -static gpu::PipelinePointer polylineFadePipeline; -#endif +gpu::PipelinePointer PolyLineEntityRenderer::_pipeline = nullptr; -static render::ShapePipelinePointer shapePipelineFactory(const render::ShapePlumber& plumber, const render::ShapeKey& key, gpu::Batch& batch) { - if (!polylinePipeline) { - gpu::ShaderPointer program = gpu::Shader::createProgram(shader::entities_renderer::program::paintStroke); -#ifdef POLYLINE_ENTITY_USE_FADE_EFFECT - auto fadeVS = gpu::Shader::createVertex(std::string(paintStroke_fade_vert)); - auto fadePS = gpu::Shader::createPixel(std::string(paintStroke_fade_frag)); - gpu::ShaderPointer fadeProgram = gpu::Shader::createProgram(fadeVS, fadePS); -#endif - gpu::StatePointer state = gpu::StatePointer(new gpu::State()); - state->setDepthTest(true, true, gpu::LESS_EQUAL); - PrepareStencil::testMask(*state); - state->setBlendFunction(true, - gpu::State::SRC_ALPHA, gpu::State::BLEND_OP_ADD, gpu::State::INV_SRC_ALPHA, - gpu::State::FACTOR_ALPHA, gpu::State::BLEND_OP_ADD, gpu::State::ONE); - polylinePipeline = gpu::Pipeline::create(program, state); -#ifdef POLYLINE_ENTITY_USE_FADE_EFFECT - _fadePipeline = gpu::Pipeline::create(fadeProgram, state); -#endif - } - -#ifdef POLYLINE_ENTITY_USE_FADE_EFFECT - if (key.isFaded()) { - auto fadeEffect = DependencyManager::get(); - return std::make_shared(_fadePipeline, nullptr, fadeEffect->getBatchSetter(), fadeEffect->getItemUniformSetter()); - } else { -#endif - return std::make_shared(polylinePipeline, nullptr, nullptr, nullptr); -#ifdef POLYLINE_ENTITY_USE_FADE_EFFECT - } -#endif -} +static const QUrl DEFAULT_POLYLINE_TEXTURE = QUrl(PathUtils::resourcesPath() + "images/paintStroke.png"); PolyLineEntityRenderer::PolyLineEntityRenderer(const EntityItemPointer& entity) : Parent(entity) { - static std::once_flag once; - std::call_once(once, [&] { - CUSTOM_PIPELINE_NUMBER = render::ShapePipeline::registerCustomShapePipelineFactory(shapePipelineFactory); - polylineFormat.reset(new gpu::Stream::Format()); - polylineFormat->setAttribute(gpu::Stream::POSITION, 0, gpu::Element(gpu::VEC3, gpu::FLOAT, gpu::XYZ), offsetof(Vertex, position)); - polylineFormat->setAttribute(gpu::Stream::NORMAL, 0, gpu::Element(gpu::VEC3, gpu::FLOAT, gpu::XYZ), offsetof(Vertex, normal)); - polylineFormat->setAttribute(gpu::Stream::TEXCOORD, 0, gpu::Element(gpu::VEC2, gpu::FLOAT, gpu::UV), offsetof(Vertex, uv)); - polylineFormat->setAttribute(gpu::Stream::COLOR, 0, gpu::Element(gpu::VEC3, gpu::FLOAT, gpu::RGB), offsetof(Vertex, color)); - }); + _texture = DependencyManager::get()->getTexture(DEFAULT_POLYLINE_TEXTURE); - _verticesBuffer = std::make_shared(); + { // Initialize our buffers + _polylineDataBuffer = std::make_shared(); + _polylineDataBuffer->resize(sizeof(PolylineData)); + PolylineData data { glm::vec2(_faceCamera, _glow), glm::vec2(0.0f) }; + _polylineDataBuffer->setSubData(0, data); + + _polylineGeometryBuffer = std::make_shared(); + } +} + +void PolyLineEntityRenderer::buildPipeline() { + // FIXME: opaque pipeline + gpu::ShaderPointer program = gpu::Shader::createProgram(shader::entities_renderer::program::paintStroke); + gpu::StatePointer state = gpu::StatePointer(new gpu::State()); + state->setCullMode(gpu::State::CullMode::CULL_NONE); + state->setDepthTest(true, true, gpu::LESS_EQUAL); + PrepareStencil::testMask(*state); + state->setBlendFunction(true, + gpu::State::SRC_ALPHA, gpu::State::BLEND_OP_ADD, gpu::State::INV_SRC_ALPHA, + gpu::State::FACTOR_ALPHA, gpu::State::BLEND_OP_ADD, gpu::State::ONE); + _pipeline = gpu::Pipeline::create(program, state); } ItemKey PolyLineEntityRenderer::getKey() { @@ -86,152 +59,164 @@ ItemKey PolyLineEntityRenderer::getKey() { } ShapeKey PolyLineEntityRenderer::getShapeKey() { - return ShapeKey::Builder().withCustom(CUSTOM_PIPELINE_NUMBER).build(); + return ShapeKey::Builder().withOwnPipeline().withTranslucent().withoutCullFace(); +} + +bool PolyLineEntityRenderer::needsRenderUpdate() const { + bool textureLoadedChanged = resultWithReadLock([&] { + return (!_textureLoaded && _texture && _texture->isLoaded()); + }); + + if (textureLoadedChanged) { + return true; + } + + return Parent::needsRenderUpdate(); } bool PolyLineEntityRenderer::needsRenderUpdateFromTypedEntity(const TypedEntityPointer& entity) const { return ( entity->pointsChanged() || - entity->strokeWidthsChanged() || + entity->widthsChanged() || entity->normalsChanged() || entity->texturesChanged() || - entity->strokeColorsChanged() + entity->colorsChanged() || + _isUVModeStretch != entity->getIsUVModeStretch() || + _glow != entity->getGlow() || + _faceCamera != entity->getFaceCamera() ); } -void PolyLineEntityRenderer::doRenderUpdateSynchronousTyped(const ScenePointer& scene, Transaction& transaction, const TypedEntityPointer& entity) { - static const QUrl DEFAULT_POLYLINE_TEXTURE = QUrl(PathUtils::resourcesPath() + "images/paintStroke.png"); - QUrl entityTextures = DEFAULT_POLYLINE_TEXTURE; +void PolyLineEntityRenderer::doRenderUpdateAsynchronousTyped(const TypedEntityPointer& entity) { + auto pointsChanged = entity->pointsChanged(); + auto widthsChanged = entity->widthsChanged(); + auto normalsChanged = entity->normalsChanged(); + auto colorsChanged = entity->colorsChanged(); + + bool isUVModeStretch = entity->getIsUVModeStretch(); + bool glow = entity->getGlow(); + bool faceCamera = entity->getFaceCamera(); + + entity->resetPolyLineChanged(); + + // Transform + updateModelTransformAndBound(); + _renderTransform = getModelTransform(); + + // Textures if (entity->texturesChanged()) { entity->resetTexturesChanged(); + QUrl entityTextures = DEFAULT_POLYLINE_TEXTURE; auto textures = entity->getTextures(); if (!textures.isEmpty()) { entityTextures = QUrl(textures); } _texture = DependencyManager::get()->getTexture(entityTextures); + _textureAspectRatio = 1.0f; + _textureLoaded = false; } - - - if (!_texture) { - _texture = DependencyManager::get()->getTexture(entityTextures); + + bool textureChanged = false; + if (!_textureLoaded && _texture && _texture->isLoaded()) { + textureChanged = true; + _textureAspectRatio = (float)_texture->getOriginalHeight() / (float)_texture->getOriginalWidth(); + _textureLoaded = true; } -} -void PolyLineEntityRenderer::doRenderUpdateAsynchronousTyped(const TypedEntityPointer& entity) { - auto pointsChanged = entity->pointsChanged(); - auto strokeWidthsChanged = entity->strokeWidthsChanged(); - auto normalsChanged = entity->normalsChanged(); - auto strokeColorsChanged = entity->strokeColorsChanged(); - - - bool isUVModeStretch = entity->getIsUVModeStretch(); - entity->resetPolyLineChanged(); - - _polylineTransform = Transform(); - _polylineTransform.setTranslation(entity->getWorldPosition()); - _polylineTransform.setRotation(entity->getWorldOrientation()); + // Data + if (faceCamera != _faceCamera || glow != _glow) { + _faceCamera = faceCamera; + _glow = glow; + updateData(); + } + // Geometry if (pointsChanged) { - _lastPoints = entity->getLinePoints(); + _points = entity->getLinePoints(); } - if (strokeWidthsChanged) { - _lastStrokeWidths = entity->getStrokeWidths(); + if (widthsChanged) { + _widths = entity->getStrokeWidths(); } if (normalsChanged) { - _lastNormals = entity->getNormals(); + _normals = entity->getNormals(); } - if (strokeColorsChanged) { - _lastStrokeColors = entity->getStrokeColors(); - _lastStrokeColors = _lastNormals.size() == _lastStrokeColors.size() ? _lastStrokeColors : QVector({ toGlm(entity->getColor()) }); + if (colorsChanged) { + _colors = entity->getStrokeColors(); + _color = toGlm(entity->getColor()); } - if (pointsChanged || strokeWidthsChanged || normalsChanged || strokeColorsChanged) { - _empty = std::min(_lastPoints.size(), std::min(_lastNormals.size(), _lastStrokeWidths.size())) < 2; - if (!_empty) { - updateGeometry(updateVertices(_lastPoints, _lastNormals, _lastStrokeWidths, _lastStrokeColors, isUVModeStretch, _textureAspectRatio)); - } + if (_isUVModeStretch != isUVModeStretch || pointsChanged || widthsChanged || normalsChanged || colorsChanged || textureChanged) { + _isUVModeStretch = isUVModeStretch; + updateGeometry(); } } -void PolyLineEntityRenderer::updateGeometry(const std::vector& vertices) { - _numVertices = (uint32_t)vertices.size(); - auto bufferSize = _numVertices * sizeof(Vertex); - if (bufferSize > _verticesBuffer->getSize()) { - _verticesBuffer->resize(bufferSize); - } - _verticesBuffer->setSubData(0, vertices); -} +void PolyLineEntityRenderer::updateGeometry() { + int maxNumVertices = std::min(_points.length(), _normals.length()); -std::vector PolyLineEntityRenderer::updateVertices(const QVector& points, - const QVector& normals, - const QVector& strokeWidths, - const QVector& strokeColors, - const bool isUVModeStretch, - const float textureAspectRatio) { - // Calculate the minimum vector size out of normals, points, and stroke widths - int size = std::min(points.size(), std::min(normals.size(), strokeWidths.size())); - - std::vector vertices; - - // Guard against an empty polyline - if (size <= 0) { - return vertices; - } - - float uCoordInc = 1.0f / size; - float uCoord = 0.0f; - int finalIndex = size - 1; - glm::vec3 binormal; - float accumulatedDistance = 0.0f; - float distanceToLastPoint = 0.0f; - float accumulatedStrokeWidth = 0.0f; - float strokeWidth = 0.0f; bool doesStrokeWidthVary = false; - - - for (int i = 1; i < strokeWidths.size(); i++) { - if (strokeWidths[i] != strokeWidths[i - 1]) { - doesStrokeWidthVary = true; - break; + if (_widths.size() >= 0) { + for (int i = 1; i < maxNumVertices; i++) { + float width = PolyLineEntityItem::DEFAULT_LINE_WIDTH; + if (i < _widths.length()) { + width = _widths[i]; + } + if (width != _widths[i - 1]) { + doesStrokeWidthVary = true; + break; + } } } - for (int i = 0; i <= finalIndex; i++) { - const float& width = strokeWidths.at(i); - const auto& point = points.at(i); - const auto& normal = normals.at(i); - const auto& color = strokeColors.size() == normals.size() ? strokeColors.at(i) : strokeColors.at(0); - int vertexIndex = i * 2; - + float uCoordInc = 1.0f / maxNumVertices; + float uCoord = 0.0f; + float accumulatedDistance = 0.0f; + float accumulatedStrokeWidth = 0.0f; + glm::vec3 binormal; - if (!isUVModeStretch && i >= 1) { - distanceToLastPoint = glm::distance(points.at(i), points.at(i - 1)); - accumulatedDistance += distanceToLastPoint; - strokeWidth = 2 * strokeWidths[i]; + std::vector vertices; + vertices.reserve(maxNumVertices); + for (int i = 0; i < maxNumVertices; i++) { + // Position + glm::vec3 point = _points[i]; - if (doesStrokeWidthVary) { - //If the stroke varies along the line the texture will stretch more or less depending on the speed - //because it looks better than using the same method as below - accumulatedStrokeWidth += strokeWidth; - float increaseValue = 1; - if (accumulatedStrokeWidth != 0) { - float newUcoord = glm::ceil(((1.0f / textureAspectRatio) * accumulatedDistance) / (accumulatedStrokeWidth / i)); - increaseValue = newUcoord - uCoord; + // uCoord + float width = i < _widths.size() ? _widths[i] : PolyLineEntityItem::DEFAULT_LINE_WIDTH; + if (i > 0) { // First uCoord is 0.0f + if (!_isUVModeStretch) { + accumulatedDistance += glm::distance(point, _points[i - 1]); + + if (doesStrokeWidthVary) { + //If the stroke varies along the line the texture will stretch more or less depending on the speed + //because it looks better than using the same method as below + accumulatedStrokeWidth += width; + float increaseValue = 1; + if (accumulatedStrokeWidth != 0) { + float newUcoord = glm::ceil((_textureAspectRatio * accumulatedDistance) / (accumulatedStrokeWidth / i)); + increaseValue = newUcoord - uCoord; + } + + increaseValue = increaseValue > 0 ? increaseValue : 1; + uCoord += increaseValue; + } else { + // If the stroke width is constant then the textures should keep the aspect ratio along the line + uCoord = (_textureAspectRatio * accumulatedDistance) / width; } - - increaseValue = increaseValue > 0 ? increaseValue : 1; - uCoord += increaseValue; } else { - //If the stroke width is constant then the textures should keep the aspect ratio along the line - uCoord = ((1.0f / textureAspectRatio) * accumulatedDistance) / strokeWidth; + uCoord += uCoordInc; } - } else if (vertexIndex >= 2) { - uCoord += uCoordInc; } + // Color + glm::vec3 color = i < _colors.length() ? _colors[i] : _color; + + // Normal + glm::vec3 normal = _normals[i]; + + // Binormal // For last point we can assume binormals are the same since it represents the last two vertices of quad - if (i < finalIndex) { - const auto tangent = points.at(i + 1) - point; - binormal = glm::normalize(glm::cross(tangent, normal)) * width; + if (i < maxNumVertices - 1) { + glm::vec3 tangent = _points[i + 1] - point; + binormal = glm::normalize(glm::cross(tangent, normal)); // Check to make sure binormal is not a NAN. If it is, don't add to vertices vector if (binormal.x != binormal.x) { @@ -239,54 +224,36 @@ std::vector PolyLineEntityRenderer::updateVertic } } - const auto v1 = points.at(i) + binormal; - const auto v2 = points.at(i) - binormal; - vertices.emplace_back(v1, normal, vec2(uCoord, 0.0f), color); - vertices.emplace_back(v2, normal, vec2(uCoord, 1.0f), color); + PolylineVertex vertex = { glm::vec4(point, uCoord), glm::vec4(color, 1.0f), glm::vec4(normal, 0.0f), glm::vec4(binormal, 0.5f * width) }; + vertices.push_back(vertex); } - return vertices; + _numVertices = vertices.size(); + _polylineGeometryBuffer->setData(vertices.size() * sizeof(PolylineVertex), (const gpu::Byte*) vertices.data()); } -scriptable::ScriptableModelBase PolyLineEntityRenderer::getScriptableModel() { - // TODO: adapt polyline into a triangles mesh... - return EntityRenderer::getScriptableModel(); +void PolyLineEntityRenderer::updateData() { + PolylineData data { glm::vec2(_faceCamera, _glow), glm::vec2(0.0f) }; + _polylineDataBuffer->setSubData(0, data); } void PolyLineEntityRenderer::doRender(RenderArgs* args) { - if (_empty) { + if (_numVertices < 2) { return; } PerformanceTimer perfTimer("RenderablePolyLineEntityItem::render"); Q_ASSERT(args->_batch); - gpu::Batch& batch = *args->_batch; - batch.setModelTransform(_polylineTransform); - if (_texture && _texture->isLoaded()) { - batch.setResourceTexture(PAINTSTROKE_TEXTURE_SLOT, _texture->getGPUTexture()); - } else { - batch.setResourceTexture(PAINTSTROKE_TEXTURE_SLOT, DependencyManager::get()->getWhiteTexture()); + if (!_pipeline) { + buildPipeline(); } - float textureWidth = (float)_texture->getOriginalWidth(); - float textureHeight = (float)_texture->getOriginalHeight(); - if (textureWidth != 0 && textureHeight != 0) { - _textureAspectRatio = textureWidth / textureHeight; - } - - batch.setInputFormat(polylineFormat); - batch.setInputBuffer(0, _verticesBuffer, 0, sizeof(Vertex)); - -#ifndef POLYLINE_ENTITY_USE_FADE_EFFECT - // glColor4f must be called after setInputFormat if it must be taken into account - if (_isFading) { - batch._glColor4f(1.0f, 1.0f, 1.0f, Interpolate::calculateFadeRatio(_fadeStartTime)); - } else { - batch._glColor4f(1.0f, 1.0f, 1.0f, 1.0f); - } -#endif - - batch.draw(gpu::TRIANGLE_STRIP, _numVertices, 0); + batch.setPipeline(_pipeline); + batch.setModelTransform(_renderTransform); + batch.setResourceTexture(0, _textureLoaded ? _texture->getGPUTexture() : DependencyManager::get()->getWhiteTexture()); + batch.setResourceBuffer(0, _polylineGeometryBuffer); + batch.setUniformBuffer(0, _polylineDataBuffer); + batch.draw(gpu::TRIANGLE_STRIP, (gpu::uint32)(2 * _numVertices), 0); } diff --git a/libraries/entities-renderer/src/RenderablePolyLineEntityItem.h b/libraries/entities-renderer/src/RenderablePolyLineEntityItem.h index 8130171da8..fd37a49598 100644 --- a/libraries/entities-renderer/src/RenderablePolyLineEntityItem.h +++ b/libraries/entities-renderer/src/RenderablePolyLineEntityItem.h @@ -25,52 +25,40 @@ class PolyLineEntityRenderer : public TypedEntityRenderer { public: PolyLineEntityRenderer(const EntityItemPointer& entity); - virtual scriptable::ScriptableModelBase getScriptableModel() override; + // FIXME: shouldn't always be transparent: take into account texture and glow + virtual bool isTransparent() const override { return true; } + protected: + virtual bool needsRenderUpdate() const override; virtual bool needsRenderUpdateFromTypedEntity(const TypedEntityPointer& entity) const override; - virtual void doRenderUpdateSynchronousTyped(const ScenePointer& scene, - Transaction& transaction, - const TypedEntityPointer& entity) override; virtual void doRenderUpdateAsynchronousTyped(const TypedEntityPointer& entity) override; virtual ItemKey getKey() override; virtual ShapeKey getShapeKey() override; virtual void doRender(RenderArgs* args) override; - virtual bool isTransparent() const override { return true; } + void buildPipeline(); + void updateGeometry(); + void updateData(); - struct Vertex { - Vertex() {} - Vertex(const vec3& position, const vec3& normal, const vec2& uv, const vec3& color) : position(position), - normal(normal), - uv(uv), - color(color) {} - vec3 position; - vec3 normal; - vec2 uv; - vec3 color; - }; + QVector _points; + QVector _normals; + QVector _colors; + glm::vec3 _color; + QVector _widths; - void updateGeometry(const std::vector& vertices); - static std::vector updateVertices(const QVector& points, - const QVector& normals, - const QVector& strokeWidths, - const QVector& strokeColors, - const bool isUVModeStretch, - const float textureAspectRatio); - - Transform _polylineTransform; - QVector _lastPoints; - QVector _lastNormals; - QVector _lastStrokeColors; - QVector _lastStrokeWidths; - gpu::BufferPointer _verticesBuffer; - - uint32_t _numVertices { 0 }; - bool _empty{ true }; NetworkTexturePointer _texture; float _textureAspectRatio { 1.0f }; + bool _textureLoaded { false }; + bool _isUVModeStretch; + bool _faceCamera; + bool _glow; + + size_t _numVertices; + gpu::BufferPointer _polylineDataBuffer; + gpu::BufferPointer _polylineGeometryBuffer; + static gpu::PipelinePointer _pipeline; }; } } // namespace diff --git a/libraries/entities-renderer/src/paintStroke.slf b/libraries/entities-renderer/src/paintStroke.slf index f2c0d5572d..6ea088751f 100644 --- a/libraries/entities-renderer/src/paintStroke.slf +++ b/libraries/entities-renderer/src/paintStroke.slf @@ -14,21 +14,27 @@ <@include DeferredBufferWrite.slh@> -// the albedo texture -LAYOUT(binding=0) uniform sampler2D originalTexture; +<@include paintStroke.slh@> +<$declarePolyLineBuffers()$> -// the interpolated normal -layout(location=0) in vec3 interpolatedNormal; -layout(location=1) in vec2 varTexcoord; -layout(location=2) in vec4 varColor; +LAYOUT(binding=0) uniform sampler2D _texture; + +layout(location=0) in vec3 _normalWS; +layout(location=1) in vec2 _texCoord; +layout(location=2) in vec4 _color; +layout(location=3) in float _distanceFromCenter; void main(void) { - vec4 texel = texture(originalTexture, varTexcoord); - int frontCondition = 1 -int(gl_FrontFacing) * 2; - vec3 color = varColor.rgb; + vec4 texel = texture(_texture, _texCoord); + int frontCondition = 1 - 2 * int(gl_FrontFacing); + vec3 color = _color.rgb * texel.rgb; + float alpha = texel.a * _color.a; + + alpha *= mix(1.0, pow(1.0 - abs(_distanceFromCenter), 10.0), _polylineData.faceCameraGlow.y); + packDeferredFragmentTranslucent( - float(frontCondition) * interpolatedNormal, - texel.a * varColor.a, - color * texel.rgb, - 10.0); + float(frontCondition) * _normalWS, + alpha, + color, + DEFAULT_ROUGHNESS); } diff --git a/libraries/entities-renderer/src/paintStroke.slh b/libraries/entities-renderer/src/paintStroke.slh new file mode 100644 index 0000000000..6189ac461b --- /dev/null +++ b/libraries/entities-renderer/src/paintStroke.slh @@ -0,0 +1,48 @@ + + +<@if not PAINTSTROKE_SLH@> +<@def PAINTSTROKE_SLH@> + +<@include paintStroke_Shared.slh@> +<@include gpu/ShaderConstants.h@> + +<@func declarePolyLineBuffers() @> + +// Hack comment to absorb the extra '//' scribe prepends + +#if !defined(GPU_SSBO_TRANSFORM_OBJECT) +LAYOUT(binding=GPU_RESOURCE_BUFFER_SLOT0_TEXTURE) uniform samplerBuffer polylineVerticesBuffer; +PolylineVertex getPolylineVertex(int i) { + int offset = 4 * i; + PolylineVertex vertex; + vertex.positionAndUCoord = texelFetch(polylineVerticesBuffer, offset); + vertex.color = texelFetch(polylineVerticesBuffer, offset + 1); + vertex.normal = texelFetch(polylineVerticesBuffer, offset + 2); + vertex.binormalAndHalfWidth = texelFetch(polylineVerticesBuffer, offset + 3); + return vertex; +} +#else +LAYOUT_STD140(binding=GPU_RESOURCE_BUFFER_SLOT0_STORAGE) buffer polylineVerticesBuffer { + PolylineVertex _vertices[]; +}; +PolylineVertex getPolylineVertex(int i) { + PolylineVertex vertex = _vertices[i]; + return vertex; +} +#endif + +LAYOUT_STD140(binding=0) uniform polylineDataBuffer { + PolylineData _polylineData; +}; + +<@endfunc@> + +<@endif@> diff --git a/libraries/entities-renderer/src/paintStroke.slv b/libraries/entities-renderer/src/paintStroke.slv index ecf52d61cf..c033d2c247 100644 --- a/libraries/entities-renderer/src/paintStroke.slv +++ b/libraries/entities-renderer/src/paintStroke.slv @@ -17,23 +17,45 @@ <@include gpu/Transform.slh@> <$declareStandardTransform()$> -// the interpolated normal -layout(location=0) out vec3 interpolatedNormal; +<@include paintStroke.slh@> +<$declarePolyLineBuffers()$> -//the diffuse texture -layout(location=1) out vec2 varTexcoord; - -layout(location=2) out vec4 varColor; +layout(location=0) out vec3 _normalWS; +layout(location=1) out vec2 _texCoord; +layout(location=2) out vec4 _color; +layout(location=3) out float _distanceFromCenter; void main(void) { - varTexcoord = inTexCoord0.st; + PolylineVertex vertex = getPolylineVertex(gl_VertexID / 2); + float evenVertex = float(gl_VertexID % 2 == 0); - // pass along the diffuse color - varColor = color_sRGBAToLinear(inColor); + _texCoord = vec2(vertex.positionAndUCoord.w, mix(1.0, 0.0, evenVertex)); + _color = color_sRGBAToLinear(vertex.color); - // standard transform TransformCamera cam = getTransformCamera(); TransformObject obj = getTransformObject(); - <$transformModelToClipPos(cam, obj, inPosition, gl_Position)$> - <$transformModelToEyeDir(cam, obj, inNormal.xyz, interpolatedNormal)$> + _distanceFromCenter = -1.0 + 2.0 * evenVertex; + vec4 position = vec4(vertex.positionAndUCoord.xyz, 1.0); + vec3 normal = vertex.normal.xyz; + vec3 binormal = vertex.binormalAndHalfWidth.xyz; + if (_polylineData.faceCameraGlow.x != 0.0) { + vec4 posEye; + vec3 normalEye; + vec3 binormalEye; + <$transformModelToEyePos(cam, obj, position, posEye)$> + <$transformModelToEyeDir(cam, obj, normal, normalEye)$> + <$transformModelToEyeDir(cam, obj, binormal, binormalEye)$> + + vec3 tangentEye = cross(binormalEye, normalEye); + // new normal faces the camera + normalEye = normalize(posEye.xyz); + binormalEye = normalize(cross(normalEye, tangentEye)); + posEye.xyz += _distanceFromCenter * vertex.binormalAndHalfWidth.w * binormalEye; + <$transformEyeToClipPos(cam, posEye, gl_Position)$> + <$transformEyeToWorldDir(cam, normalEye, _normalWS)$> + } else { + position.xyz += _distanceFromCenter * vertex.binormalAndHalfWidth.w * binormal; + <$transformModelToClipPos(cam, obj, position, gl_Position)$> + <$transformModelToWorldDir(cam, obj, normal, _normalWS)$> + } } \ No newline at end of file diff --git a/libraries/entities-renderer/src/paintStroke_Shared.slh b/libraries/entities-renderer/src/paintStroke_Shared.slh new file mode 100644 index 0000000000..52c10df99b --- /dev/null +++ b/libraries/entities-renderer/src/paintStroke_Shared.slh @@ -0,0 +1,25 @@ +// glsl / C++ compatible source as interface for FadeEffect +#ifdef __cplusplus +# define _PL_VEC4 glm::vec4 +# define _PL_VEC2 glm::vec2 +#else +# define _PL_VEC4 vec4 +# define _PL_VEC2 vec2 +#endif + +struct PolylineVertex { + _PL_VEC4 positionAndUCoord; + _PL_VEC4 color; + _PL_VEC4 normal; + _PL_VEC4 binormalAndHalfWidth; +}; + +struct PolylineData { + _PL_VEC2 faceCameraGlow; + _PL_VEC2 spare; +}; + +// <@if 1@> +// Trigger Scribe include +// <@endif@> +// \ No newline at end of file diff --git a/libraries/entities-renderer/src/paintStroke_fade.slf b/libraries/entities-renderer/src/paintStroke_fade.slf deleted file mode 100644 index fa6d0aab75..0000000000 --- a/libraries/entities-renderer/src/paintStroke_fade.slf +++ /dev/null @@ -1,52 +0,0 @@ -<@include gpu/Config.slh@> -<$VERSION_HEADER$> -// Generated on <$_SCRIBE_DATE$> -// -// paintStroke_fade.frag -// fragment shader -// -// Created by Olivier Prat on 19/07/17. -// Copyright 2017 High Fidelity, Inc. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -<@include DeferredBufferWrite.slh@> - -<@include Fade.slh@> -<$declareFadeFragment()$> - -// the albedo texture -LAYOUT(binding=0) uniform sampler2D originalTexture; - -// the interpolated normal -layout(location=0) in vec3 interpolatedNormal; -layout(location=1) in vec2 varTexcoord; -layout(location=2) in vec4 varColor; -layout(location=3) in vec4 _worldPosition; - -struct PolyLineUniforms { - vec3 color; -}; - -LAYOUT(binding=0) uniform polyLineBuffer { - PolyLineUniforms polyline; -}; - -void main(void) { - vec3 fadeEmissive; - FadeObjectParams fadeParams; - - <$fetchFadeObjectParams(fadeParams)$> - applyFade(fadeParams, _worldPosition.xyz, fadeEmissive); - - vec4 texel = texture(originalTexture, varTexcoord); - int frontCondition = 1 -int(gl_FrontFacing) * 2; - vec3 color = varColor.rgb; - packDeferredFragmentTranslucent( - interpolatedNormal * float(frontCondition), - texel.a * varColor.a, - polyline.color * texel.rgb + fadeEmissive, - 10.0); -} diff --git a/libraries/entities-renderer/src/paintStroke_fade.slv b/libraries/entities-renderer/src/paintStroke_fade.slv deleted file mode 100644 index f6fcb18c98..0000000000 --- a/libraries/entities-renderer/src/paintStroke_fade.slv +++ /dev/null @@ -1,43 +0,0 @@ -<@include gpu/Config.slh@> -<$VERSION_HEADER$> -// Generated on <$_SCRIBE_DATE$> -// -// paintStroke_fade.vert -// vertex shader -// -// Created by Olivier Prat on 19/07/17. -// Copyright 2017 High Fidelity, Inc. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -<@include gpu/Inputs.slh@> -<@include gpu/Color.slh@> -<@include gpu/Transform.slh@> -<$declareStandardTransform()$> - -// the interpolated normal -layout(location=0) out vec3 interpolatedNormal; - -//the diffuse texture -layout(location=1) out vec2 varTexcoord; - -layout(location=2) out vec4 varColor; -layout(location=3) out vec4 _worldPosition; - -void main(void) { - - varTexcoord = inTexCoord0.st; - - // pass along the diffuse color - varColor = color_sRGBAToLinear(inColor); - - - // standard transform - TransformCamera cam = getTransformCamera(); - TransformObject obj = getTransformObject(); - <$transformModelToClipPos(cam, obj, inPosition, gl_Position)$> - <$transformModelToEyeDir(cam, obj, inNormal.xyz, interpolatedNormal)$> - <$transformModelToWorldPos(obj, inPosition, _worldPosition)$> -} \ No newline at end of file diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 86ad35b8f5..576f621a53 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -527,6 +527,8 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { CHECK_PROPERTY_CHANGE(PROP_STROKE_NORMALS, normals); CHECK_PROPERTY_CHANGE(PROP_STROKE_COLORS, strokeColors); CHECK_PROPERTY_CHANGE(PROP_IS_UV_MODE_STRETCH, isUVModeStretch); + CHECK_PROPERTY_CHANGE(PROP_LINE_GLOW, glow); + CHECK_PROPERTY_CHANGE(PROP_LINE_FACE_CAMERA, faceCamera); // Shape CHECK_PROPERTY_CHANGE(PROP_SHAPE, shape); @@ -1051,6 +1053,8 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * format. * @property {boolean} isUVModeStretch=true - If true, the texture is stretched to fill the whole line, otherwise * the texture repeats along the line. + * @property {bool} glow=false - If true, the alpha of the strokes will drop off farther from the center. + * @property {bool} faceCamera=false - If true, each line segment will rotate to face the camera. * @example Draw a textured "V". * var entity = Entities.addEntity({ * type: "PolyLine", @@ -1634,6 +1638,8 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_STROKE_NORMALS, normals); COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_STROKE_COLORS, strokeColors, qVectorVec3Color); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_IS_UV_MODE_STRETCH, isUVModeStretch); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LINE_GLOW, glow); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LINE_FACE_CAMERA, faceCamera); } // Materials @@ -1956,6 +1962,8 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool COPY_PROPERTY_FROM_QSCRIPTVALUE(normals, qVectorVec3, setNormals); COPY_PROPERTY_FROM_QSCRIPTVALUE(strokeColors, qVectorVec3, setStrokeColors); COPY_PROPERTY_FROM_QSCRIPTVALUE(isUVModeStretch, bool, setIsUVModeStretch); + COPY_PROPERTY_FROM_QSCRIPTVALUE(glow, bool, setGlow); + COPY_PROPERTY_FROM_QSCRIPTVALUE(faceCamera, bool, setFaceCamera); // Shape COPY_PROPERTY_FROM_QSCRIPTVALUE(shape, QString, setShape); @@ -2208,6 +2216,8 @@ void EntityItemProperties::merge(const EntityItemProperties& other) { COPY_PROPERTY_IF_CHANGED(normals); COPY_PROPERTY_IF_CHANGED(strokeColors); COPY_PROPERTY_IF_CHANGED(isUVModeStretch); + COPY_PROPERTY_IF_CHANGED(glow); + COPY_PROPERTY_IF_CHANGED(faceCamera); // Shape COPY_PROPERTY_IF_CHANGED(shape); @@ -2523,6 +2533,8 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue ADD_PROPERTY_TO_MAP(PROP_STROKE_NORMALS, Normals, normals, QVector); ADD_PROPERTY_TO_MAP(PROP_STROKE_COLORS, StrokeColors, strokeColors, QVector); ADD_PROPERTY_TO_MAP(PROP_IS_UV_MODE_STRETCH, IsUVModeStretch, isUVModeStretch, QVector); + ADD_PROPERTY_TO_MAP(PROP_LINE_GLOW, Glow, glow, bool); + ADD_PROPERTY_TO_MAP(PROP_LINE_FACE_CAMERA, FaceCamera, faceCamera, bool); // Shape ADD_PROPERTY_TO_MAP(PROP_SHAPE, Shape, shape, QString); @@ -2887,6 +2899,8 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy APPEND_ENTITY_PROPERTY(PROP_STROKE_NORMALS, properties.getPackedNormals()); APPEND_ENTITY_PROPERTY(PROP_STROKE_COLORS, properties.getPackedStrokeColors()); APPEND_ENTITY_PROPERTY(PROP_IS_UV_MODE_STRETCH, properties.getIsUVModeStretch()); + APPEND_ENTITY_PROPERTY(PROP_LINE_GLOW, properties.getGlow()); + APPEND_ENTITY_PROPERTY(PROP_LINE_FACE_CAMERA, properties.getFaceCamera()); } // NOTE: Spheres and Boxes are just special cases of Shape, and they need to include their PROP_SHAPE @@ -3320,6 +3334,8 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STROKE_NORMALS, QByteArray, setPackedNormals); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STROKE_COLORS, QByteArray, setPackedStrokeColors); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_IS_UV_MODE_STRETCH, bool, setIsUVModeStretch); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_GLOW, bool, setGlow); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_FACE_CAMERA, bool, setFaceCamera); } // NOTE: Spheres and Boxes are just special cases of Shape, and they need to include their PROP_SHAPE @@ -3665,6 +3681,8 @@ void EntityItemProperties::markAllChanged() { _normalsChanged = true; _strokeColorsChanged = true; _isUVModeStretchChanged = true; + _glowChanged = true; + _faceCameraChanged = true; // Shape _shapeChanged = true; @@ -4263,6 +4281,12 @@ QList EntityItemProperties::listChangedProperties() { if (isUVModeStretchChanged()) { out += "isUVModeStretch"; } + if (glowChanged()) { + out += "glow"; + } + if (faceCameraChanged()) { + out += "faceCamera"; + } // Shape if (shapeChanged()) { diff --git a/libraries/entities/src/EntityItemProperties.h b/libraries/entities/src/EntityItemProperties.h index fc4848bd20..8f74b7072b 100644 --- a/libraries/entities/src/EntityItemProperties.h +++ b/libraries/entities/src/EntityItemProperties.h @@ -309,6 +309,8 @@ public: DEFINE_PROPERTY(PROP_STROKE_NORMALS, Normals, normals, QVector, ENTITY_ITEM_DEFAULT_EMPTY_VEC3_QVEC); DEFINE_PROPERTY(PROP_STROKE_COLORS, StrokeColors, strokeColors, QVector, ENTITY_ITEM_DEFAULT_EMPTY_VEC3_QVEC); DEFINE_PROPERTY(PROP_IS_UV_MODE_STRETCH, IsUVModeStretch, isUVModeStretch, bool, true); + DEFINE_PROPERTY(PROP_LINE_GLOW, Glow, glow, bool, false); + DEFINE_PROPERTY(PROP_LINE_FACE_CAMERA, FaceCamera, faceCamera, bool, false); // Shape DEFINE_PROPERTY_REF(PROP_SHAPE, Shape, shape, QString, "Sphere"); diff --git a/libraries/entities/src/EntityPropertyFlags.h b/libraries/entities/src/EntityPropertyFlags.h index e7cccc31df..812b788b06 100644 --- a/libraries/entities/src/EntityPropertyFlags.h +++ b/libraries/entities/src/EntityPropertyFlags.h @@ -290,6 +290,8 @@ enum EntityPropertyList { PROP_STROKE_NORMALS = PROP_DERIVED_2, PROP_STROKE_COLORS = PROP_DERIVED_3, PROP_IS_UV_MODE_STRETCH = PROP_DERIVED_4, + PROP_LINE_GLOW = PROP_DERIVED_5, + PROP_LINE_FACE_CAMERA = PROP_DERIVED_6, // Shape PROP_SHAPE = PROP_DERIVED_0, diff --git a/libraries/entities/src/PolyLineEntityItem.cpp b/libraries/entities/src/PolyLineEntityItem.cpp index 88f2d14ae6..6ab885b32b 100644 --- a/libraries/entities/src/PolyLineEntityItem.cpp +++ b/libraries/entities/src/PolyLineEntityItem.cpp @@ -24,7 +24,6 @@ const float PolyLineEntityItem::DEFAULT_LINE_WIDTH = 0.1f; const int PolyLineEntityItem::MAX_POINTS_PER_LINE = 60; - EntityItemPointer PolyLineEntityItem::factory(const EntityItemID& entityID, const EntityItemProperties& properties) { EntityItemPointer entity(new PolyLineEntityItem(entityID), [](EntityItem* ptr) { ptr->deleteLater(); }); entity->setProperties(properties); @@ -37,7 +36,6 @@ PolyLineEntityItem::PolyLineEntityItem(const EntityItemID& entityItemID) : Entit } EntityItemProperties PolyLineEntityItem::getProperties(const EntityPropertyFlags& desiredProperties, bool allowEmptyDesiredProperties) const { - QWriteLocker lock(&_quadReadWriteLock); EntityItemProperties properties = EntityItem::getProperties(desiredProperties, allowEmptyDesiredProperties); // get the properties from our base class COPY_ENTITY_PROPERTY_TO_PROPERTIES(color, getColor); @@ -48,11 +46,13 @@ EntityItemProperties PolyLineEntityItem::getProperties(const EntityPropertyFlags COPY_ENTITY_PROPERTY_TO_PROPERTIES(normals, getNormals); COPY_ENTITY_PROPERTY_TO_PROPERTIES(strokeColors, getStrokeColors); COPY_ENTITY_PROPERTY_TO_PROPERTIES(isUVModeStretch, getIsUVModeStretch); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(glow, getGlow); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(faceCamera, getFaceCamera); + return properties; } bool PolyLineEntityItem::setProperties(const EntityItemProperties& properties) { - QWriteLocker lock(&_quadReadWriteLock); bool somethingChanged = false; somethingChanged = EntityItem::setProperties(properties); // set the properties in our base class @@ -64,6 +64,8 @@ bool PolyLineEntityItem::setProperties(const EntityItemProperties& properties) { SET_ENTITY_PROPERTY_FROM_PROPERTIES(normals, setNormals); SET_ENTITY_PROPERTY_FROM_PROPERTIES(strokeColors, setStrokeColors); SET_ENTITY_PROPERTY_FROM_PROPERTIES(isUVModeStretch, setIsUVModeStretch); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(glow, setGlow); + SET_ENTITY_PROPERTY_FROM_PROPERTIES(faceCamera, setFaceCamera); if (somethingChanged) { bool wantDebug = false; @@ -78,125 +80,59 @@ bool PolyLineEntityItem::setProperties(const EntityItemProperties& properties) { return somethingChanged; } - -bool PolyLineEntityItem::appendPoint(const glm::vec3& point) { - if (_points.size() > MAX_POINTS_PER_LINE - 1) { - qCDebug(entities) << "MAX POINTS REACHED!"; - return false; - } - - _points << point; - _pointsChanged = true; - - calculateScaleAndRegistrationPoint(); - - return true; -} - - -bool PolyLineEntityItem::setStrokeWidths(const QVector& strokeWidths) { +void PolyLineEntityItem::setLinePoints(const QVector& points) { withWriteLock([&] { - _strokeWidths = strokeWidths; - _strokeWidthsChanged = true; + _points = points; + _pointsChanged = true; }); - return true; + computeAndUpdateDimensionsAndPosition(); } -bool PolyLineEntityItem::setNormals(const QVector& normals) { +void PolyLineEntityItem::setStrokeWidths(const QVector& strokeWidths) { + withWriteLock([&] { + _widths = strokeWidths; + _widthsChanged = true; + }); + computeAndUpdateDimensionsAndPosition(); +} + +void PolyLineEntityItem::setNormals(const QVector& normals) { withWriteLock([&] { _normals = normals; _normalsChanged = true; }); - return true; } -bool PolyLineEntityItem::setStrokeColors(const QVector& strokeColors) { +void PolyLineEntityItem::setStrokeColors(const QVector& strokeColors) { withWriteLock([&] { - _strokeColors = strokeColors; - _strokeColorsChanged = true; + _colors = strokeColors; + _colorsChanged = true; }); - return true; } +void PolyLineEntityItem::computeAndUpdateDimensionsAndPosition() { + QVector points; + QVector widths; -bool PolyLineEntityItem::setLinePoints(const QVector& points) { - if (points.size() > MAX_POINTS_PER_LINE) { - return false; - } - bool result = false; - withWriteLock([&] { - //Check to see if points actually changed. If they haven't, return before doing anything else - if (points.size() != _points.size()) { - _pointsChanged = true; - } else if (points.size() == _points.size()) { - //same number of points, so now compare every point - for (int i = 0; i < points.size(); i++) { - if (points.at(i) != _points.at(i)) { - _pointsChanged = true; - break; - } - } - } - if (!_pointsChanged) { - return; - } - - _points = points; - - result = true; - }); - - if (result) { - calculateScaleAndRegistrationPoint(); - } - - return result; -} - -void PolyLineEntityItem::calculateScaleAndRegistrationPoint() { - glm::vec3 high(0.0f, 0.0f, 0.0f); - glm::vec3 low(0.0f, 0.0f, 0.0f); - int pointCount = 0; - glm::vec3 firstPoint; withReadLock([&] { - pointCount = _points.size(); - if (pointCount > 0) { - firstPoint = _points.at(0); - } - for (int i = 0; i < pointCount; i++) { - const glm::vec3& point = _points.at(i); - high = glm::max(point, high); - low = glm::min(point, low); - } + points = _points; + widths = _widths; }); - float magnitudeSquared = glm::length2(low - high); - vec3 newScale { 1 }; - vec3 newRegistrationPoint { 0.5f }; + glm::vec3 maxHalfDim(0.5f * ENTITY_ITEM_DEFAULT_WIDTH); + float maxWidth = 0.0f; + for (int i = 0; i < points.length(); i++) { + maxHalfDim = glm::max(maxHalfDim, glm::abs(points[i])); + maxWidth = glm::max(maxWidth, i < widths.length() ? widths[i] : DEFAULT_LINE_WIDTH); + } - const float EPSILON = 0.0001f; - const float EPSILON_SQUARED = EPSILON * EPSILON; - const float HALF_LINE_WIDTH = 0.075f; // sadly _strokeWidths() don't seem to correspond to reality, so just use a flat assumption of the stroke width - const vec3 QUARTER_LINE_WIDTH { HALF_LINE_WIDTH * 0.5f }; - if (pointCount > 1 && magnitudeSquared > EPSILON_SQUARED) { - newScale = glm::abs(high) + glm::abs(low) + vec3(HALF_LINE_WIDTH); - // Center the poly line in the bounding box - glm::vec3 startPointInScaleSpace = firstPoint - low; - startPointInScaleSpace += QUARTER_LINE_WIDTH; - newRegistrationPoint = startPointInScaleSpace / newScale; - } - - // if Polyline has only one or fewer points, use default dimension settings - setScaledDimensions(newScale); - EntityItem::setRegistrationPoint(newRegistrationPoint); + setScaledDimensions(2.0f * (maxHalfDim + maxWidth)); } int PolyLineEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* data, int bytesLeftToRead, ReadBitstreamToTreeParams& args, EntityPropertyFlags& propertyFlags, bool overwriteLocalData, bool& somethingChanged) { - - QWriteLocker lock(&_quadReadWriteLock); int bytesRead = 0; const unsigned char* dataAt = data; @@ -208,6 +144,8 @@ int PolyLineEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* da READ_ENTITY_PROPERTY(PROP_STROKE_NORMALS, QVector, setNormals); READ_ENTITY_PROPERTY(PROP_STROKE_COLORS, QVector, setStrokeColors); READ_ENTITY_PROPERTY(PROP_IS_UV_MODE_STRETCH, bool, setIsUVModeStretch); + READ_ENTITY_PROPERTY(PROP_LINE_GLOW, bool, setGlow); + READ_ENTITY_PROPERTY(PROP_LINE_FACE_CAMERA, bool, setFaceCamera); return bytesRead; } @@ -222,6 +160,8 @@ EntityPropertyFlags PolyLineEntityItem::getEntityProperties(EncodeBitstreamParam requestedProperties += PROP_STROKE_NORMALS; requestedProperties += PROP_STROKE_COLORS; requestedProperties += PROP_IS_UV_MODE_STRETCH; + requestedProperties += PROP_LINE_GLOW; + requestedProperties += PROP_LINE_FACE_CAMERA; return requestedProperties; } @@ -233,7 +173,6 @@ void PolyLineEntityItem::appendSubclassData(OctreePacketData* packetData, Encode int& propertyCount, OctreeElement::AppendState& appendState) const { - QWriteLocker lock(&_quadReadWriteLock); bool successPropertyFits = true; APPEND_ENTITY_PROPERTY(PROP_COLOR, getColor()); @@ -244,6 +183,8 @@ void PolyLineEntityItem::appendSubclassData(OctreePacketData* packetData, Encode APPEND_ENTITY_PROPERTY(PROP_STROKE_NORMALS, getNormals()); APPEND_ENTITY_PROPERTY(PROP_STROKE_COLORS, getStrokeColors()); APPEND_ENTITY_PROPERTY(PROP_IS_UV_MODE_STRETCH, getIsUVModeStretch()); + APPEND_ENTITY_PROPERTY(PROP_LINE_GLOW, getGlow()); + APPEND_ENTITY_PROPERTY(PROP_LINE_FACE_CAMERA, getFaceCamera()); } void PolyLineEntityItem::debugDump() const { @@ -255,61 +196,49 @@ void PolyLineEntityItem::debugDump() const { qCDebug(entities) << " getLastEdited:" << debugTime(getLastEdited(), now); } - - QVector PolyLineEntityItem::getLinePoints() const { - QVector result; - withReadLock([&] { - result = _points; + return resultWithReadLock>([&] { + return _points; }); - return result; } QVector PolyLineEntityItem::getNormals() const { - QVector result; - withReadLock([&] { - result = _normals; + return resultWithReadLock>([&] { + return _normals; }); - return result; } QVector PolyLineEntityItem::getStrokeColors() const { - QVector result; - withReadLock([&] { - result = _strokeColors; + return resultWithReadLock>([&] { + return _colors; }); - return result; } QVector PolyLineEntityItem::getStrokeWidths() const { - QVector result; - withReadLock([&] { - result = _strokeWidths; + return resultWithReadLock>([&] { + return _widths; }); - return result; } QString PolyLineEntityItem::getTextures() const { - QString result; - withReadLock([&] { - result = _textures; + return resultWithReadLock([&] { + return _textures; }); - return result; } void PolyLineEntityItem::setTextures(const QString& textures) { withWriteLock([&] { if (_textures != textures) { _textures = textures; - _texturesChangedFlag = true; + _texturesChanged = true; } }); } void PolyLineEntityItem::setColor(const glm::u8vec3& value) { withWriteLock([&] { - _strokeColorsChanged = true; _color = value; + _colorsChanged = true; }); } diff --git a/libraries/entities/src/PolyLineEntityItem.h b/libraries/entities/src/PolyLineEntityItem.h index 4420a123c5..41acc6d6d8 100644 --- a/libraries/entities/src/PolyLineEntityItem.h +++ b/libraries/entities/src/PolyLineEntityItem.h @@ -44,35 +44,40 @@ class PolyLineEntityItem : public EntityItem { glm::u8vec3 getColor() const; void setColor(const glm::u8vec3& value); - bool setLinePoints(const QVector& points); - bool appendPoint(const glm::vec3& point); + static const int MAX_POINTS_PER_LINE; + void setLinePoints(const QVector& points); QVector getLinePoints() const; - bool setNormals(const QVector& normals); + static const float DEFAULT_LINE_WIDTH; + void setStrokeWidths(const QVector& strokeWidths); + QVector getStrokeWidths() const; + + void setNormals(const QVector& normals); QVector getNormals() const; - bool setStrokeColors(const QVector& strokeColors); + void setStrokeColors(const QVector& strokeColors); QVector getStrokeColors() const; - bool setStrokeWidths(const QVector& strokeWidths); - QVector getStrokeWidths() const; - void setIsUVModeStretch(bool isUVModeStretch){ _isUVModeStretch = isUVModeStretch; } bool getIsUVModeStretch() const{ return _isUVModeStretch; } QString getTextures() const; void setTextures(const QString& textures); - virtual ShapeType getShapeType() const override { return SHAPE_TYPE_NONE; } + void setGlow(bool glow) { _glow = glow; } + bool getGlow() const { return _glow; } + + void setFaceCamera(bool faceCamera) { _faceCamera = faceCamera; } + bool getFaceCamera() const { return _faceCamera; } bool pointsChanged() const { return _pointsChanged; } bool normalsChanged() const { return _normalsChanged; } - bool strokeColorsChanged() const { return _strokeColorsChanged; } - bool strokeWidthsChanged() const { return _strokeWidthsChanged; } - bool texturesChanged() const { return _texturesChangedFlag; } - void resetTexturesChanged() { _texturesChangedFlag = false; } - void resetPolyLineChanged() { _strokeColorsChanged = _strokeWidthsChanged = _normalsChanged = _pointsChanged = false; } + bool colorsChanged() const { return _colorsChanged; } + bool widthsChanged() const { return _widthsChanged; } + bool texturesChanged() const { return _texturesChanged; } + void resetTexturesChanged() { _texturesChanged = false; } + void resetPolyLineChanged() { _colorsChanged = _widthsChanged = _normalsChanged = _pointsChanged = false; } // never have a ray intersection pick a PolyLineEntityItem. virtual bool supportsDetailedIntersection() const override { return true; } @@ -85,29 +90,26 @@ class PolyLineEntityItem : public EntityItem { BoxFace& face, glm::vec3& surfaceNormal, QVariantMap& extraInfo, bool precisionPicking) const override { return false; } - // disable these external interfaces as PolyLineEntities caculate their own dimensions based on the points they contain - virtual void setRegistrationPoint(const glm::vec3& value) override {}; // FIXME: this is suspicious! - virtual void debugDump() const override; - static const float DEFAULT_LINE_WIDTH; - static const int MAX_POINTS_PER_LINE; private: - void calculateScaleAndRegistrationPoint(); + void computeAndUpdateDimensionsAndPosition(); protected: glm::u8vec3 _color; - bool _pointsChanged { true }; - bool _normalsChanged { true }; - bool _strokeColorsChanged { true }; - bool _strokeWidthsChanged { true }; QVector _points; QVector _normals; - QVector _strokeColors; - QVector _strokeWidths; + QVector _colors; + QVector _widths; QString _textures; bool _isUVModeStretch; - bool _texturesChangedFlag { false }; - mutable QReadWriteLock _quadReadWriteLock; + bool _glow; + bool _faceCamera; + + bool _pointsChanged { false }; + bool _normalsChanged { false }; + bool _colorsChanged { false }; + bool _widthsChanged { false }; + bool _texturesChanged { false }; }; #endif // hifi_PolyLineEntityItem_h diff --git a/libraries/networking/src/udt/PacketHeaders.cpp b/libraries/networking/src/udt/PacketHeaders.cpp index c8e2aaf51e..785ac26b36 100644 --- a/libraries/networking/src/udt/PacketHeaders.cpp +++ b/libraries/networking/src/udt/PacketHeaders.cpp @@ -33,7 +33,7 @@ PacketVersion versionForPacketType(PacketType packetType) { case PacketType::EntityEdit: case PacketType::EntityData: case PacketType::EntityPhysics: - return static_cast(EntityVersion::MorePropertiesCleanup); + return static_cast(EntityVersion::UpdatedPolyLines); case PacketType::EntityQuery: return static_cast(EntityQueryPacketVersion::ConicalFrustums); case PacketType::AvatarIdentity: diff --git a/libraries/networking/src/udt/PacketHeaders.h b/libraries/networking/src/udt/PacketHeaders.h index 33f3f967c9..bf58866f97 100644 --- a/libraries/networking/src/udt/PacketHeaders.h +++ b/libraries/networking/src/udt/PacketHeaders.h @@ -251,7 +251,8 @@ enum class EntityVersion : PacketVersion { ImageEntities, GridEntities, MissingTextProperties, - MorePropertiesCleanup + MorePropertiesCleanup, + UpdatedPolyLines }; enum class EntityScriptCallMethodVersion : PacketVersion { From 9cb53af023228cdb4cebcf70c216ea35eaac357e Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Wed, 19 Dec 2018 16:13:12 -0800 Subject: [PATCH 023/230] Correct set avatar-scale timestamp when changing in Avatar class --- libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index b4ea9c20f9..c05b79b8d0 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -295,6 +295,7 @@ void Avatar::setTargetScale(float targetScale) { if (_targetScale != newValue) { _targetScale = newValue; _scaleChanged = usecTimestampNow(); + _avatarScaleChanged = _scaleChanged; _isAnimatingScale = true; emit targetScaleChanged(targetScale); From 556f516be669721be33e9537e930a93017ecb792 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Thu, 20 Dec 2018 16:30:08 -0800 Subject: [PATCH 024/230] Update uploader screen --- .../resources/qml/hifi/AvatarPackager.qml | 25 +- .../avatarPackager/AvatarPackagerFooter.qml | 6 +- .../qml/hifi/avatarPackager/AvatarProject.qml | 223 +++++++++------- interface/src/avatar/AvatarProject.cpp | 39 ++- interface/src/avatar/AvatarProject.h | 2 +- .../src/avatar/MarketplaceItemUploader.cpp | 240 +++++++++++------- .../src/avatar/MarketplaceItemUploader.h | 5 + libraries/fbx/src/FST.h | 2 + 8 files changed, 339 insertions(+), 203 deletions(-) diff --git a/interface/resources/qml/hifi/AvatarPackager.qml b/interface/resources/qml/hifi/AvatarPackager.qml index 8eb765716e..4d27e6fce4 100644 --- a/interface/resources/qml/hifi/AvatarPackager.qml +++ b/interface/resources/qml/hifi/AvatarPackager.qml @@ -8,6 +8,7 @@ import "../stylesUit" 1.0 import "../windows" as Windows import "../dialogs" import "avatarPackager" +import "avatarapp" 1.0 as AvatarApp Windows.ScrollingWindow { id: root @@ -27,18 +28,14 @@ Windows.ScrollingWindow { id: windowContent height: pane.height width: pane.width - anchors.fill: parent - // FIXME: modal overlay does not show - Rectangle { - id: modalOverlay + AvatarApp.MessageBox { + id: popup anchors.fill: parent - z: 20000 - color: "#aa031b33" - clip: true - visible: true + visible: false } + // FIXME: modal overlay does not show Column { id: avatarPackager anchors.fill: parent @@ -61,6 +58,12 @@ Windows.ScrollingWindow { PropertyChanges { target: avatarPackagerHeader; title: AvatarPackagerCore.currentAvatarProject.name } PropertyChanges { target: avatarProject; visible: true } PropertyChanges { target: avatarPackagerFooter; content: avatarProject.footer } + }, + State { + name: "project-upload" + PropertyChanges { target: avatarPackagerHeader; title: AvatarPackagerCore.currentAvatarProject.name } + PropertyChanges { target: avatarUploader; visible: true } + PropertyChanges { target: avatarPackagerFooter; color: "blue"; visible: false } } ] @@ -86,6 +89,12 @@ Windows.ScrollingWindow { anchors.fill: parent } + AvatarProjectUpload { + id: avatarUploader + anchors.fill: parent + root: avatarProject + } + CreateAvatarProject { id: createAvatarProject colorScheme: root.colorScheme diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerFooter.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerFooter.qml index 526a2047e3..8498d20858 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerFooter.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerFooter.qml @@ -7,10 +7,10 @@ Rectangle { id: avatarPackagerFooter color: "#404040" - height: 74 + height: content === defaultContent ? 0 : 74 width: parent.width - property var content: Item { } + property var content: Item { id: defaultContent } children: [background, content] @@ -21,4 +21,4 @@ Rectangle { border.width: 2; } -} +} \ No newline at end of file diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml index 0aca722352..286ebb23ba 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -25,6 +25,7 @@ Item { anchors.rightMargin: 17 HifiControls.Button { id: uploadButton + enabled: Account.loggedIn //width: parent.width //anchors.bottom: parent.bottom anchors.verticalCenter: parent.verticalCenter @@ -35,26 +36,82 @@ Item { width: 133 height: 40 onClicked: function() { - console.log("Uploading"); - root.uploader = AvatarPackagerCore.currentAvatarProject.upload(); - console.log("uploader: "+ root.uploader); - root.uploader.uploadProgress.connect(function(uploaded, total) { - console.log("Uploader progress: " + uploaded + " / " + total); - }); - root.uploader.completed.connect(function() { - try { - var response = JSON.parse(root.uploader.responseData); - console.log("Uploader complete! " + response); - uploadStatus.text = response.status; - } catch (e) { - console.log("Error parsing JSON: " + root.uploader.reponseData); - } - }); - root.uploader.send(); + if (AvatarPackagerCore.currentAvatarProject.fst.hasMarketplaceID()) { + showConfirmUploadPopup(uploadNew, uploadUpdate); + } else { + uploadNew(); + } } } } + function uploadNew() { + console.log("Uploading new"); + upload(false); + } + function uploadUpdate() { + console.log("Uploading update"); + upload(true); + } + + function upload(updateExisting) { + root.uploader = AvatarPackagerCore.currentAvatarProject.upload(updateExisting); + console.log("uploader: "+ root.uploader); + root.uploader.uploadProgress.connect(function(uploaded, total) { + console.log("Uploader progress: " + uploaded + " / " + total); + }); + root.uploader.completed.connect(function() { + try { + var response = JSON.parse(root.uploader.responseData); + console.log("Uploader complete! " + response); + uploadStatus.text = response.status; + } catch (e) { + console.log("Error parsing JSON: " + root.uploader.reponseData); + } + }); + root.uploader.send(); + avatarPackager.state = "project-upload"; + } + + function showConfirmUploadPopup() { + popup.titleText = 'Overwrite Avatar' + popup.bodyText = 'You have previously uploaded the avatar file from this project.' + + ' This will overwrite that avatar and you won’t be able to access the older version.' + + popup.button1text = 'CREATE NEW'; + popup.button2text = 'OVERWRITE'; + + popup.onButton2Clicked = function() { + popup.close(); + uploadUpdate(); + } + popup.onButton1Clicked = function() { + popup.close(); + showConfirmCreateNewPopup(); + }; + + popup.open(); + //popup.forceActiveFocus(); + } + + function showConfirmCreateNewPopup(confirmCallback) { + popup.titleText = 'Create New' + popup.bodyText = 'This will upload your current files with the same avatar name.' + + ' You will lose the ability to update the previously uploaded avatar. Are you sure you want to continue?' + + popup.button1text = 'CANCEL'; + popup.button2text = 'CONFIRM'; + + popup.onButton1Clicked = function() { popup.close() }; + popup.onButton2Clicked = function() { + popup.close(); + uploadNew(); + }; + + popup.open(); + //popup.forceActiveFocus(); + } + RalewaySemiBold { id: avatarFBXNameLabel size: 14 @@ -79,11 +136,15 @@ Item { } Rectangle { + id: fileList + + visible: false + color: "white" - visible: AvatarPackagerCore.currentAvatarProject !== null anchors.top: openFolderButton.bottom anchors.left: parent.left anchors.right: parent.right + anchors.bottom: showFilesText.top //anchors.bottom: uploadButton.top anchors.topMargin: 10 anchors.bottomMargin: 10 @@ -92,96 +153,82 @@ Item { ListView { anchors.fill: parent model: AvatarPackagerCore.currentAvatarProject === null ? [] : AvatarPackagerCore.currentAvatarProject.projectFiles - delegate: Text { text: 'File: ' + modelData } + delegate: Rectangle { + width: parent.width + height: fileText.implicitHeight + 10 + color: (index % 2 == 0) ? "white" : "grey" + Text { + id: fileText + anchors.top: parent.top + 5 + anchors.left: parent.left + 5 + text: modelData + } + } } } + Text { + id: showFilesText + + visible: AvatarPackagerCore.currentAvatarProject !== null + + anchors.bottom: loginRequiredMessage.top + anchors.bottomMargin: 10 + + font.pointSize: 12 + text: AvatarPackagerCore.currentAvatarProject.projectFiles.length + " files in the project. " + (fileList.visible ? "Hide" : "Show") + " list" + + onLinkActivated: fileList.visible = !fileList.visible + } + Rectangle { - id: uploadingScreen + id: loginRequiredMessage - visible: !!root.uploader - anchors.fill: parent + visible: !Account.loggedIn + height: loginRequiredTextRow.height + 20 - color: "black" - - Item { - visible: !!root.uploader && !root.uploader.complete - - anchors.fill: parent - - AnimatedImage { - id: uploadSpinner - - anchors { - horizontalCenter: parent.horizontalCenter - verticalCenter: parent.verticalCenter - } - - source: "../../../icons/loader-snake-64-w.gif" - playing: true - z: 10000 - } + anchors { + bottom: parent.bottom + left: parent.left + right: parent.right } - Item { - visible: !!root.uploader && root.uploader.complete + color: "#FFD6AD" + border.color: "#F39622" + border.width: 2 + radius: 2 + + Item { + id: loginRequiredTextRow + + height: Math.max(loginWarningGlyph.implicitHeight, loginWarningText.implicitHeight) anchors.fill: parent + anchors.margins: 10 HiFiGlyphs { - id: successIcon + id: loginWarningGlyph - anchors { - horizontalCenter: parent.horizontalCenter - verticalCenter: parent.verticalCenter - } + anchors.verticalCenter: parent.verticalCenter + anchors.left: parent.left - size: 128 - text: "\ue01a" - color: "#1FC6A6" - } - - Text { - text: "Congratulations!" - - anchors.horizontalCenter: parent.horizontalCenter - anchors.top: successIcon.bottom - - color: "white" - } - - HifiControls.Button { width: implicitWidth - height: implicitHeight - anchors.bottom: parent.bottom + font.pointSize: 20 + text: "+" + color: "black" + } + Text { + id: loginWarningText + + anchors.verticalCenter: parent.verticalCenter + anchors.left: loginWarningGlyph.right anchors.right: parent.right - text: "View in Inventory" - - color: hifi.buttons.blue - colorScheme: root.colorScheme - onClicked: function() { - console.log("Opening in inventory"); - - AvatarPackagerCore.currentAvatarProject.openInInventory(); - } + text: "Please login to upload your avatar to High Fidelity hosting." + font.pointSize: 12 + wrapMode: Text.Wrap } } - - Column { - Text { - id: uploadStatus - - text: "Uploading" - color: "white" - - } - Text { - text: "State: " + (!!root.uploader ? root.uploader.state : " NONE") - color: "white" - } - } - } } diff --git a/interface/src/avatar/AvatarProject.cpp b/interface/src/avatar/AvatarProject.cpp index 7ba9d395eb..4a14479cce 100644 --- a/interface/src/avatar/AvatarProject.cpp +++ b/interface/src/avatar/AvatarProject.cpp @@ -17,8 +17,9 @@ #include #include #include -#include "FBXSerializer.h" +#include +#include "FBXSerializer.h" #include #include "scripting/HMDScriptingInterface.h" @@ -57,20 +58,16 @@ AvatarProject* AvatarProject::createAvatarProject(const QString& avatarProjectNa std::shared_ptr hfmModel; - try { qDebug() << "Reading FBX file : " << fbxInfo.filePath(); const QByteArray fbxContents = fbx.readAll(); hfmModel = FBXSerializer().read(fbxContents, QVariantHash(), fbxInfo.filePath()); - } - catch (const QString& error) { + } catch (const QString& error) { qDebug() << "Error reading: " << error; return nullptr; } //TODO: copy/fix textures here: - - FST* fst = FST::createFSTFromModel(newFSTPath, newModelPath, *hfmModel); fst->setName(avatarProjectName); @@ -89,7 +86,6 @@ bool AvatarProject::isValidNewProjectName(const QString& projectName) { AvatarProject::AvatarProject(const QString& fstPath, const QByteArray& data) : AvatarProject::AvatarProject(new FST(fstPath, FSTReader::readMapping(data))) { - } AvatarProject::AvatarProject(FST* fst) { _fst = fst; @@ -119,8 +115,22 @@ void AvatarProject::refreshProjectFiles() { appendDirectory("", _directory); } -MarketplaceItemUploader* AvatarProject::upload() { - return new MarketplaceItemUploader("test_avatar", "blank description", QFileInfo(getFSTPath()).fileName(), QUuid(), _projectFiles); +MarketplaceItemUploader* AvatarProject::upload(bool updateExisting) { + QUuid itemID; + if (updateExisting) { + itemID = _fst->getMarketplaceID(); + } + auto uploader = new MarketplaceItemUploader(getProjectName(), "Empty description", QFileInfo(getFSTPath()).fileName(), itemID, + _projectFiles); + connect(uploader, &MarketplaceItemUploader::completed, this, [this, uploader]() { + if (uploader->getError() == MarketplaceItemUploader::Error::None) { + _fst->setMarketplaceID(uploader->getMarketplaceID()); + // TODO(thoys) uncomment this + //_fst->write(); + } + }); + + return uploader; } void AvatarProject::openInInventory() { @@ -128,7 +138,12 @@ void AvatarProject::openInInventory() { DependencyManager::get()->getTablet("com.highfidelity.interface.tablet.system")); tablet->loadQMLSource("hifi/commerce/wallet/Wallet.qml"); DependencyManager::get()->openTablet(); - tablet->sendToQml(QVariantMap({ - { "method", "updatePurchases" }, - { "filterText", "filtertext" } })); + auto name = getProjectName(); + + // I'm not a fan of this, but it's the only current option. + QTimer::singleShot(1000, [name]() { + auto tablet = dynamic_cast( + DependencyManager::get()->getTablet("com.highfidelity.interface.tablet.system")); + tablet->sendToQml(QVariantMap({ { "method", "updatePurchases" }, { "filterText", name } })); + }); } diff --git a/interface/src/avatar/AvatarProject.h b/interface/src/avatar/AvatarProject.h index 023cd7b079..b164e67e0d 100644 --- a/interface/src/avatar/AvatarProject.h +++ b/interface/src/avatar/AvatarProject.h @@ -41,7 +41,7 @@ public: return false; } - Q_INVOKABLE MarketplaceItemUploader* upload(); + Q_INVOKABLE MarketplaceItemUploader* upload(bool updateExisting); Q_INVOKABLE void openInInventory(); /** diff --git a/interface/src/avatar/MarketplaceItemUploader.cpp b/interface/src/avatar/MarketplaceItemUploader.cpp index 7a5abacce4..1559f359a7 100644 --- a/interface/src/avatar/MarketplaceItemUploader.cpp +++ b/interface/src/avatar/MarketplaceItemUploader.cpp @@ -67,10 +67,9 @@ void MarketplaceItemUploader::doGetCategories() { QNetworkReply* reply = networkAccessManager.get(request); connect(reply, &QNetworkReply::finished, this, [this, reply]() { - auto doc = QJsonDocument::fromJson(reply->readAll()); - auto error = reply->error(); if (error == QNetworkReply::NoError) { + auto doc = QJsonDocument::fromJson(reply->readAll()); auto extractCategoryID = [&doc]() -> std::pair { auto items = doc.object()["data"].toObject()["items"]; if (!items.isArray()) { @@ -119,116 +118,175 @@ void MarketplaceItemUploader::doGetCategories() { } void MarketplaceItemUploader::doUploadAvatar() { - QBuffer buffer{ &_fileData }; - //buffer.open(QIODevice::WriteOnly); - QuaZip zip{ &buffer }; - if (!zip.open(QuaZip::Mode::mdAdd)) { - qWarning() << "Failed to open zip!!"; + QBuffer buffer{ &_fileData }; + //buffer.open(QIODevice::WriteOnly); + QuaZip zip{ &buffer }; + if (!zip.open(QuaZip::Mode::mdAdd)) { + qWarning() << "Failed to open zip!!"; + } + + for (auto& filePath : _filePaths) { + qWarning() << "Zipping: " << filePath; + QFileInfo fileInfo{ filePath }; + + QuaZipFile zipFile{ &zip }; + if (!zipFile.open(QIODevice::WriteOnly, QuaZipNewInfo(fileInfo.fileName()))) { + qWarning() << "Could not open zip file:" << zipFile.getZipError(); + _error = Error::Unknown; + setState(State::Complete); + return; } - - for (auto& filePath : _filePaths) { - qWarning() << "Zipping: " << filePath; - QFileInfo fileInfo{ filePath }; - - QuaZipFile zipFile{ &zip }; - if (!zipFile.open(QIODevice::WriteOnly, QuaZipNewInfo(fileInfo.fileName()))) { - qWarning() << "Could not open zip file:" << zipFile.getZipError(); - _error = Error::Unknown; - setState(State::Complete); - return; - } - QFile file{ filePath }; - if (file.open(QIODevice::ReadOnly)) { - zipFile.write(file.readAll()); - } else { - qWarning() << "Failed to open: " << filePath; - } - file.close(); - zipFile.close(); - if (zipFile.getZipError() != UNZ_OK) { - qWarning() << "Could not close zip file: " << zipFile.getZipError(); - setState(State::Complete); - return; - } - } - - zip.close(); - - qDebug() << "Finished zipping, size: " << (buffer.size() / (1000.0f)) << "KB"; - - QString path = "/api/v1/marketplace/items"; - bool creating = true; - if (!_marketplaceID.isNull()) { - creating = false; - auto idWithBraces = _marketplaceID.toString(); - auto idWithoutBraces = idWithBraces.mid(1, idWithBraces.length() - 2); - path += "/" + idWithoutBraces; - } - auto accountManager = DependencyManager::get(); - auto request = accountManager->createRequest(path, AccountManagerAuth::Required); - qWarning() << "Request url is: " << request.url(); - - QJsonObject root{ { "marketplace_item", - QJsonObject{ { "title", _title }, - { "description", _description }, - { "root_file_key", _rootFilename }, - { "category_ids", QJsonArray({ 5 }) }, - //{ "attributions", QJsonArray({ QJsonObject{ { "name", "" }, { "link", "" } } }) }, - { "license", 0 }, - { "files", QString::fromLatin1(_fileData.toBase64()) } } } }; - request.setHeader(QNetworkRequest::KnownHeaders::ContentTypeHeader, "application/json"); - QJsonDocument doc{ root }; - - qWarning() << "data: " << doc.toJson(); - - _fileData.toBase64(); - QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); - - QNetworkReply* reply{ nullptr }; - if (creating) { - reply = networkAccessManager.post(request, doc.toJson()); + QFile file{ filePath }; + if (file.open(QIODevice::ReadOnly)) { + zipFile.write(file.readAll()); } else { - reply = networkAccessManager.put(request, doc.toJson()); + qWarning() << "Failed to open: " << filePath; } + file.close(); + zipFile.close(); + if (zipFile.getZipError() != UNZ_OK) { + qWarning() << "Could not close zip file: " << zipFile.getZipError(); + setState(State::Complete); + return; + } + } - connect(reply, &QNetworkReply::uploadProgress, this, &MarketplaceItemUploader::uploadProgress); + zip.close(); - connect(reply, &QNetworkReply::finished, this, [this, reply]() { + qDebug() << "Finished zipping, size: " << (buffer.size() / (1000.0f)) << "KB"; + + QString path = "/api/v1/marketplace/items"; + bool creating = true; + if (!_marketplaceID.isNull()) { + creating = false; + auto idWithBraces = _marketplaceID.toString(); + auto idWithoutBraces = idWithBraces.mid(1, idWithBraces.length() - 2); + path += "/" + idWithoutBraces; + } + auto accountManager = DependencyManager::get(); + auto request = accountManager->createRequest(path, AccountManagerAuth::Required); + qWarning() << "Request url is: " << request.url(); + + QJsonObject root{ { "marketplace_item", + QJsonObject{ { "title", _title }, + { "description", _description }, + { "root_file_key", _rootFilename }, + { "category_ids", QJsonArray({ 5 }) }, + //{ "attributions", QJsonArray({ QJsonObject{ { "name", "" }, { "link", "" } } }) }, + { "license", 0 }, + { "files", QString::fromLatin1(_fileData.toBase64()) } } } }; + request.setHeader(QNetworkRequest::KnownHeaders::ContentTypeHeader, "application/json"); + QJsonDocument doc{ root }; + + qWarning() << "data: " << doc.toJson(); + + _fileData.toBase64(); + QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); + + QNetworkReply* reply{ nullptr }; + if (creating) { + reply = networkAccessManager.post(request, doc.toJson()); + } else { + reply = networkAccessManager.put(request, doc.toJson()); + } + + connect(reply, &QNetworkReply::uploadProgress, this, &MarketplaceItemUploader::uploadProgress); + + connect(reply, &QNetworkReply::finished, this, [this, reply]() { + //_responseData = reply->readAll(); + auto error = reply->error(); + if (error == QNetworkReply::NoError) { _responseData = reply->readAll(); qWarning() << "Finished request " << _responseData; - auto error = reply->error(); - if (error == QNetworkReply::NoError) { + + auto doc = QJsonDocument::fromJson(_responseData.toLatin1()); + auto status = doc.object()["status"].toString(); + if (status == "success") { + _marketplaceID = QUuid::fromString(doc["data"].toObject()["marketplace_id"].toString()); + _itemVersion = doc["data"].toObject()["version"].toDouble(); doWaitForInventory(); } else { _error = Error::Unknown; setState(State::Complete); } - }); + } else { + _error = Error::Unknown; + setState(State::Complete); + } + }); - setState(State::UploadingAvatar); + setState(State::UploadingAvatar); } void MarketplaceItemUploader::doWaitForInventory() { - static const QString path = "/api/v1/commerce/inventory"; + static const QString path = "/api/v1/commerce/inventory"; - auto accountManager = DependencyManager::get(); - auto request = accountManager->createRequest(path, AccountManagerAuth::Required); + auto accountManager = DependencyManager::get(); + auto request = accountManager->createRequest(path, AccountManagerAuth::Required); - qWarning() << "Request url is: " << request.url(); + QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); - QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); + QNetworkReply* reply = networkAccessManager.post(request, ""); - QNetworkReply* reply = networkAccessManager.post(request, ""); + _numRequestsForInventory++; - connect(reply, &QNetworkReply::finished, this, [this, reply]() { - auto data = reply->readAll(); - qWarning() << "Finished inventory request " << data; + connect(reply, &QNetworkReply::finished, this, [this, reply]() { + auto data = reply->readAll(); - auto error = reply->error(); - if (error == QNetworkReply::NoError) { - } else { - _error = Error::Unknown; - } + bool success = false; + + auto error = reply->error(); + if (error == QNetworkReply::NoError) { + // Parse response data + auto doc = QJsonDocument::fromJson(data); + auto isAssetAvailable = [this, &doc]() -> bool { + if (!doc.isObject()) { + return false; + } + auto root = doc.object(); + auto status = root["status"].toString(); + if (status != "success") { + return false; + } + auto data = root["data"]; + if (!data.isObject()) { + return false; + } + auto assets = data.toObject()["assets"]; + if (!assets.isArray()) { + return false; + } + for (auto asset : assets.toArray()) { + auto assetObject = asset.toObject(); + auto id = QUuid::fromString(assetObject["id"].toString()); + if (id.isNull()) { + continue; + } + if (id == _marketplaceID) { + auto version = assetObject["version"]; + if (version.isDouble()) { + int versionInt = version.toDouble(); + if (versionInt >= _itemVersion) { + return true; + } + } + } + } + return false; + }; + + success = isAssetAvailable(); + } + if (success) { setState(State::Complete); - }); + } else { + qDebug() << "Failed to find item in inventory"; + if (_numRequestsForInventory > 8) { + _error = Error::Unknown; + setState(State::Complete); + } else { + QTimer::singleShot(5000, [this]() { doWaitForInventory(); }); + } + } + }); } diff --git a/interface/src/avatar/MarketplaceItemUploader.h b/interface/src/avatar/MarketplaceItemUploader.h index a0ec3f6991..9cfd531aca 100644 --- a/interface/src/avatar/MarketplaceItemUploader.h +++ b/interface/src/avatar/MarketplaceItemUploader.h @@ -56,6 +56,8 @@ public: State getState() const { return _state; } bool getComplete() const { return _state == State::Complete; } + QUuid getMarketplaceID() const { return _marketplaceID; } + Error getError() const { return _error; } signals: @@ -77,9 +79,12 @@ private: QString _description; QString _rootFilename; QUuid _marketplaceID; + int _itemVersion; QString _responseData; + int _numRequestsForInventory{ 0 }; + QStringList _filePaths; QByteArray _fileData; }; diff --git a/libraries/fbx/src/FST.h b/libraries/fbx/src/FST.h index 524463b721..83bb1e1933 100644 --- a/libraries/fbx/src/FST.h +++ b/libraries/fbx/src/FST.h @@ -37,7 +37,9 @@ public: QString getModelPath() const { return _modelPath; } void setModelPath(const QString& modelPath); + Q_INVOKABLE bool hasMarketplaceID() const { return !_marketplaceID.isNull(); } QUuid getMarketplaceID() const { return _marketplaceID; } + void setMarketplaceID(QUuid marketplaceID) { _marketplaceID = marketplaceID; } QString getPath() { return _fstPath; } From 7602da6f928925afa5eb42aaa76ae31c85f9b355 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Fri, 21 Dec 2018 08:16:18 -0800 Subject: [PATCH 025/230] Add AvatarProjectUpload.qml --- .../avatarPackager/AvatarProjectUpload.qml | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml new file mode 100644 index 0000000000..bbeca6ab3b --- /dev/null +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml @@ -0,0 +1,180 @@ +import QtQuick 2.6 +import QtQuick.Controls 2.2 +import QtQuick.Layouts 1.3 +import QtGraphicalEffects 1.0 + +import QtQuick.Controls 2.2 as Original + +import "../../controlsUit" 1.0 as HifiControls +import "../../stylesUit" 1.0 + + +Item { + id: uploadingScreen + + property var root: undefined + //visible: !!root.uploader + visible: false + anchors.fill: parent + + Timer { + id: backToProjectTimer + interval: 2000 + running: false + repeat: false + onTriggered: avatarPackager.state = "project" + } + + onVisibleChanged: { + console.log("Visibility changed"); + if (visible) { + root.uploader.completed.connect(function() { + console.log("Did complete"); + backToProjectTimer.start(); + }); + } + } + + Item { + visible: !!root.uploader && !root.uploader.complete + + anchors.fill: parent + + AnimatedImage { + id: uploadSpinner + + anchors { + horizontalCenter: parent.horizontalCenter + verticalCenter: parent.verticalCenter + } + + source: "../../../icons/loader-snake-64-w.gif" + playing: true + z: 10000 + } + } + + Item { + id: failureScreen + + visible: !!root.uploader && root.uploader.complete && root.uploader.error !== 0 + + anchors.fill: parent + + HiFiGlyphs { + id: errorIcon + + anchors { + horizontalCenter: parent.horizontalCenter + verticalCenter: parent.verticalCenter + } + + size: 128 + text: "w" + color: "red" + } + + Column { + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: errorIcon.bottom + Text { + anchors.horizontalCenter: parent.horizontalCenter + + text: "Error" + font.pointSize: 24 + + color: "white" + } + Text { + text: "Your avatar has not been uploaded." + font.pointSize: 16 + + anchors.horizontalCenter: parent.horizontalCenter + + color: "white" + } + } + } + + Item { + id: successScreen + + visible: !!root.uploader && root.uploader.complete && root.uploader.error === 0 + + anchors.fill: parent + + HiFiGlyphs { + id: successIcon + + anchors { + horizontalCenter: parent.horizontalCenter + verticalCenter: parent.verticalCenter + } + + size: 128 + text: "\ue01a" + color: "#1FC6A6" + } + + Column { + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: successIcon.bottom + + Text { + id: successText + + anchors.horizontalCenter: parent.horizontalCenter + + text: "Congratulations!" + font.pointSize: 24 + + color: "white" + } + Text { + text: "Your avatar has been uploaded." + font.pointSize: 16 + + anchors.horizontalCenter: parent.horizontalCenter + + color: "white" + } + } + + HifiControls.Button { + width: implicitWidth + height: implicitHeight + + anchors.bottom: parent.bottom + anchors.right: parent.right + + text: "View in Inventory" + + color: hifi.buttons.blue + colorScheme: root.colorScheme + onClicked: function() { + console.log("Opening in inventory"); + + AvatarPackagerCore.currentAvatarProject.openInInventory(); + } + } + } + + Column { + id: debugInfo + + visible: false + + Text { + id: uploadStatus + + text: "Uploading" + color: "white" + + } + Text { + text: "State: " + (!!root.uploader ? root.uploader.state : " NONE") + color: "white" + } + } + +} \ No newline at end of file From ad2d9bc79a9c4a2691468fc7c37ceb8229125370 Mon Sep 17 00:00:00 2001 From: Thijs Wenker Date: Fri, 21 Dec 2018 19:34:54 +0100 Subject: [PATCH 026/230] - fst read/write should work - images are being copied into the correct directory - scripts are added to fst upon project load - modal overlay fix --- .../resources/qml/hifi/AvatarPackager.qml | 35 ++++++--- .../avatarPackager/AvatarPackagerFooter.qml | 1 + .../avatarPackager/AvatarPackagerHeader.qml | 2 +- .../avatarPackager/AvatarPackagerState.qml | 9 +++ .../avatarPackager/CreateAvatarProject.qml | 48 +++++++----- .../avatarPackager/ProjectInputControl.qml | 5 +- .../resources/qml/hifi/avatarPackager/qmldir | 2 + interface/src/avatar/AvatarPackager.cpp | 5 +- interface/src/avatar/AvatarProject.cpp | 76 ++++++++++++++++--- interface/src/avatar/AvatarProject.h | 11 +-- libraries/fbx/src/FST.cpp | 35 ++++++--- libraries/fbx/src/FST.h | 5 ++ libraries/fbx/src/FSTReader.cpp | 2 +- libraries/fbx/src/FSTReader.h | 1 + 14 files changed, 177 insertions(+), 60 deletions(-) create mode 100644 interface/resources/qml/hifi/avatarPackager/AvatarPackagerState.qml create mode 100644 interface/resources/qml/hifi/avatarPackager/qmldir diff --git a/interface/resources/qml/hifi/AvatarPackager.qml b/interface/resources/qml/hifi/AvatarPackager.qml index 4d27e6fce4..3dce2c1126 100644 --- a/interface/resources/qml/hifi/AvatarPackager.qml +++ b/interface/resources/qml/hifi/AvatarPackager.qml @@ -7,7 +7,7 @@ import "../controlsUit" 1.0 as HifiControls import "../stylesUit" 1.0 import "../windows" as Windows import "../dialogs" -import "avatarPackager" +import "./avatarPackager" 1.0 import "avatarapp" 1.0 as AvatarApp Windows.ScrollingWindow { @@ -29,32 +29,46 @@ Windows.ScrollingWindow { height: pane.height width: pane.width + Rectangle { + id: modalOverlay + anchors.fill: parent + z: 20 + color: "#aa031b33" + visible: false + + // This mouse area captures the cursor events while the modalOverlay is active + MouseArea { + anchors.fill: parent + propagateComposedEvents: false; + hoverEnabled: true; + } + } + AvatarApp.MessageBox { id: popup anchors.fill: parent visible: false } - // FIXME: modal overlay does not show Column { id: avatarPackager anchors.fill: parent state: "main" states: [ State { - name: "main" + name: AvatarPackagerState.main PropertyChanges { target: avatarPackagerHeader; title: qsTr("Avatar Packager"); faqEnabled: true; backButtonEnabled: false } PropertyChanges { target: avatarPackagerMain; visible: true } PropertyChanges { target: avatarPackagerFooter; content: avatarPackagerMain.footer } }, State { - name: "createProject" + name: AvatarPackagerState.createProject PropertyChanges { target: avatarPackagerHeader; title: qsTr("Create Project") } PropertyChanges { target: createAvatarProject; visible: true } PropertyChanges { target: avatarPackagerFooter; content: createAvatarProject.footer } }, State { - name: "project" + name: AvatarPackagerState.project PropertyChanges { target: avatarPackagerHeader; title: AvatarPackagerCore.currentAvatarProject.name } PropertyChanges { target: avatarProject; visible: true } PropertyChanges { target: avatarPackagerFooter; content: avatarProject.footer } @@ -67,6 +81,8 @@ Windows.ScrollingWindow { } ] + property alias showModalOverlay: modalOverlay.visible + AvatarPackagerHeader { id: avatarPackagerHeader onBackButtonClicked: { @@ -119,7 +135,7 @@ Windows.ScrollingWindow { text: qsTr("New Project") colorScheme: root.colorScheme onClicked: { - avatarPackager.state = "createProject"; + avatarPackager.state = AvatarPackagerState.createProject; } } @@ -133,7 +149,7 @@ Windows.ScrollingWindow { color: hifi.buttons.blue colorScheme: root.colorScheme onClicked: { - // TODO: make the dialog modal + avatarPackager.showModalOverlay = true; let browser = desktop.fileDialog({ selectDirectory: false, dir: fileDialogHelper.pathToUrl(AvatarPackagerCore.AVATAR_PROJECTS_PATH), @@ -142,14 +158,15 @@ Windows.ScrollingWindow { }); browser.canceled.connect(function() { - + avatarPackager.showModalOverlay = false; }); browser.selectedFile.connect(function(fileUrl) { let fstFilePath = fileDialogHelper.urlToPath(fileUrl); let currentAvatarProject = AvatarPackagerCore.openAvatarProject(fstFilePath); if (currentAvatarProject) { - avatarPackager.state = "project"; + avatarPackager.state = AvatarPackagerState.project; + avatarPackager.showModalOverlay = false; } }); } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerFooter.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerFooter.qml index 8498d20858..d7725b250e 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerFooter.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerFooter.qml @@ -8,6 +8,7 @@ Rectangle { color: "#404040" height: content === defaultContent ? 0 : 74 + visible: content !== defaultContent width: parent.width property var content: Item { id: defaultContent } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml index 6dcb1267d4..84096e352c 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml @@ -65,7 +65,7 @@ Rectangle { anchors.right: parent.right anchors.rightMargin: 16 anchors.verticalCenter: faq.verticalCenter - text: qsTr("FAQ") + text: qsTr("Docs") color: "white" } } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerState.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerState.qml new file mode 100644 index 0000000000..f12edf4952 --- /dev/null +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerState.qml @@ -0,0 +1,9 @@ +pragma Singleton +import QtQuick 2.6 + +Item { + id: singleton + readonly property string main: "main" + readonly property string project: "project" + readonly property string createProject: "createProject" +} diff --git a/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml index 4d1f745fa5..41d33e6058 100644 --- a/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml @@ -27,7 +27,7 @@ Item { Window.alert('Failed to create project') return; } - avatarPackager.state = "project"; + avatarPackager.state = AvatarPackagerState.project; } } } @@ -37,6 +37,26 @@ Item { height: parent.height width: parent.width + + property var errorMessages: QtObject { + readonly property string fileExists: "A folder with that name already exists at that location. Please choose a different project name or location." + } + + RalewayRegular { + id: errorMessage + visible: text !== "" + text: "" + color: "#EA4C5F"; + wrapMode: Text.WordWrap + size: 20 + anchors { + top: createAvatarColumns.bottom + bottom: parent.bottom + left: parent.left + right: parent.right + } + } + Column { id: createAvatarColumns anchors.left: parent.left @@ -45,6 +65,8 @@ Item { spacing: 17 + property string defaultFileBrowserPath: fileDialogHelper.pathToUrl(AvatarPackagerCore.AVATAR_PROJECTS_PATH) + ProjectInputControl { id: name label: "Name" @@ -57,9 +79,8 @@ Item { colorScheme: root.colorScheme browseEnabled: true browseFolder: true - browseDir: fileDialogHelper.pathToUrl(AvatarPackagerCore.AVATAR_PROJECTS_PATH) + browseDir: text !== "" ? fileDialogHelper.pathToUrl(text) : createAvatarColumns.defaultFileBrowserPath browseTitle: "Project Location" - text: fileDialogHelper.pathToUrl(AvatarPackagerCore.AVATAR_PROJECTS_PATH) onTextChanged: { //TODO: valid folder? Does project with name exist here already? } @@ -71,11 +92,13 @@ Item { colorScheme: root.colorScheme browseEnabled: true browseFolder: false - browseDir: fileDialogHelper.pathToUrl(AvatarPackagerCore.AVATAR_PROJECTS_PATH) + browseDir: text !== "" ? fileDialogHelper.pathToUrl(text) : createAvatarColumns.defaultFileBrowserPath browseFilter: "Avatar Model File (*.fbx)" browseTitle: "Open Avatar Model (.fbx)" onTextChanged: { - //TODO: try to get texture folder from fbx if none is set? + if (avatarModel.text !== "") { + textureFolder.browseDir = fileDialogHelper.pathToUrl(avatarModel.text.split('/')[0]); + } } } @@ -85,7 +108,7 @@ Item { colorScheme: root.colorScheme browseEnabled: true browseFolder: true - browseDir: fileDialogHelper.pathToUrl(AvatarPackagerCore.AVATAR_PROJECTS_PATH) + browseDir: text !== "" ? fileDialogHelper.pathToUrl(text) : createAvatarColumns.defaultFileBrowserPath browseTitle: "Texture Folder" onTextChanged: { //TODO: valid folder? @@ -93,16 +116,5 @@ Item { } } } - RalewayRegular { - text: "A folder with that name already exists at that location. Please choose a different project name or location." - color: "#EA4C5F"; - wrapMode: Text.WordWrap - size: 20 - anchors { - top: createAvatarColumns.bottom - bottom: parent.bottom - left: parent.left - right: parent.right - } - } + } diff --git a/interface/resources/qml/hifi/avatarPackager/ProjectInputControl.qml b/interface/resources/qml/hifi/avatarPackager/ProjectInputControl.qml index 472db47c2f..664acd6f22 100644 --- a/interface/resources/qml/hifi/avatarPackager/ProjectInputControl.qml +++ b/interface/resources/qml/hifi/avatarPackager/ProjectInputControl.qml @@ -55,7 +55,7 @@ Column { text: qsTr("Browse") colorScheme: root.colorScheme onClicked: { - // TODO: make the dialog modal + avatarPackager.showModalOverlay = true; let browser = desktop.fileDialog({ selectDirectory: browseFolder, dir: browseDir, @@ -64,11 +64,12 @@ Column { }); browser.canceled.connect(function() { - + avatarPackager.showModalOverlay = false; }); browser.selectedFile.connect(function(fileUrl) { input.text = fileDialogHelper.urlToPath(fileUrl); + avatarPackager.showModalOverlay = false; }); } } diff --git a/interface/resources/qml/hifi/avatarPackager/qmldir b/interface/resources/qml/hifi/avatarPackager/qmldir new file mode 100644 index 0000000000..4204b6d89f --- /dev/null +++ b/interface/resources/qml/hifi/avatarPackager/qmldir @@ -0,0 +1,2 @@ +module AvatarPackager +singleton AvatarPackagerState 1.0 AvatarPackagerState.qml diff --git a/interface/src/avatar/AvatarPackager.cpp b/interface/src/avatar/AvatarPackager.cpp index ba3089aa2f..c7f15d616c 100644 --- a/interface/src/avatar/AvatarPackager.cpp +++ b/interface/src/avatar/AvatarPackager.cpp @@ -30,6 +30,9 @@ AvatarPackager::AvatarPackager() { qRegisterMetaType(); qRegisterMetaType(); }); + + QDir defaultProjectsDir(AvatarProject::getDefaultProjectsPath()); + defaultProjectsDir.mkpath("."); } bool AvatarPackager::open() { @@ -57,7 +60,7 @@ AvatarProject* AvatarPackager::createAvatarProject(const QString& projectsFolder if (_currentAvatarProject) { _currentAvatarProject->deleteLater(); } - _currentAvatarProject = AvatarProject::createAvatarProject(avatarProjectName, avatarModelPath); + _currentAvatarProject = AvatarProject::createAvatarProject(projectsFolder, avatarProjectName, avatarModelPath, textureFolder); qDebug() << "_currentAvatarProject has" << (QQmlEngine::objectOwnership(_currentAvatarProject) == QQmlEngine::CppOwnership ? "CPP" : "JS") << "OWNERSHIP"; QQmlEngine::setObjectOwnership(_currentAvatarProject, QQmlEngine::CppOwnership); emit avatarProjectChanged(); diff --git a/interface/src/avatar/AvatarProject.cpp b/interface/src/avatar/AvatarProject.cpp index 4a14479cce..901c0621fb 100644 --- a/interface/src/avatar/AvatarProject.cpp +++ b/interface/src/avatar/AvatarProject.cpp @@ -21,6 +21,7 @@ #include "FBXSerializer.h" #include +#include #include "scripting/HMDScriptingInterface.h" AvatarProject* AvatarProject::openAvatarProject(const QString& path) { @@ -36,17 +37,25 @@ AvatarProject* AvatarProject::openAvatarProject(const QString& path) { return project; } -AvatarProject* AvatarProject::createAvatarProject(const QString& avatarProjectName, const QString& avatarModelPath) { +AvatarProject* AvatarProject::createAvatarProject(const QString& projectsFolder, const QString& avatarProjectName, const QString& avatarModelPath, const QString& textureFolder) { if (!isValidNewProjectName(avatarProjectName)) { return nullptr; } - QDir dir(getDefaultProjectsPath() + "/" + avatarProjectName); - if (!dir.mkpath(".")) { + QDir projectDir(projectsFolder + "/" + avatarProjectName); + if (!projectDir.mkpath(".")) { + return nullptr; + } + QDir projectTexturesDir(projectDir.path() + "/textures"); + if (!projectTexturesDir.mkpath(".")) { + return nullptr; + } + QDir projectScriptsDir(projectDir.path() + "/scripts"); + if (!projectScriptsDir.mkpath(".")) { return nullptr; } const auto fileName = QFileInfo(avatarModelPath).fileName(); - const auto newModelPath = dir.absoluteFilePath(fileName); - const auto newFSTPath = dir.absoluteFilePath("avatar.fst"); + const auto newModelPath = projectDir.absoluteFilePath(fileName); + const auto newFSTPath = projectDir.absoluteFilePath("avatar.fst"); QFile::copy(avatarModelPath, newModelPath); QFileInfo fbxInfo(newModelPath); @@ -66,10 +75,41 @@ AvatarProject* AvatarProject::createAvatarProject(const QString& avatarProjectNa qDebug() << "Error reading: " << error; return nullptr; } - //TODO: copy/fix textures here: + QStringList textures{}; - FST* fst = FST::createFSTFromModel(newFSTPath, newModelPath, *hfmModel); + auto addTextureToList = [&textures](hfm::Texture texture) mutable { + if (!texture.filename.isEmpty() && texture.content.isEmpty() && !textures.contains(texture.filename)) { + textures << texture.filename; + } + }; + foreach(const HFMMaterial mat, hfmModel->materials) { + addTextureToList(mat.normalTexture); + addTextureToList(mat.albedoTexture); + addTextureToList(mat.opacityTexture); + addTextureToList(mat.glossTexture); + addTextureToList(mat.roughnessTexture); + addTextureToList(mat.specularTexture); + addTextureToList(mat.metallicTexture); + addTextureToList(mat.emissiveTexture); + addTextureToList(mat.occlusionTexture); + addTextureToList(mat.scatteringTexture); + addTextureToList(mat.lightmapTexture); + } + + QDir textureDir(textureFolder.isEmpty() ? fbxInfo.absoluteDir() : textureFolder); + + for (const auto& texture : textures) { + QString sourcePath = textureDir.path() + "/" + texture; + QString targetPath = projectTexturesDir.path() + "/" + texture; + + QFileInfo sourceTexturePath(sourcePath); + if (sourceTexturePath.exists()) { + QFile::copy(sourcePath, targetPath); + } + } + + auto fst = FST::createFSTFromModel(newFSTPath, newModelPath, *hfmModel); fst->setName(avatarProjectName); if (!fst->write()) { @@ -79,6 +119,22 @@ AvatarProject* AvatarProject::createAvatarProject(const QString& avatarProjectNa return new AvatarProject(fst); } +QStringList AvatarProject::getScriptPaths(const QDir& scriptsDir) { + QStringList result{}; + constexpr auto flags = QDir::Files | QDir::NoSymLinks | QDir::NoDotAndDotDot | QDir::Hidden; + if (!scriptsDir.exists()) { + return result; + } + + for (auto& script : scriptsDir.entryInfoList({}, flags)) { + if (script.fileName().endsWith(".js")) { + result.push_back("scripts/" + script.fileName()); + } + } + + return result; +} + bool AvatarProject::isValidNewProjectName(const QString& projectName) { QDir dir(getDefaultProjectsPath() + "/" + projectName); return !dir.exists(); @@ -92,6 +148,9 @@ AvatarProject::AvatarProject(FST* fst) { auto fileInfo = QFileInfo(getFSTPath()); _directory = fileInfo.absoluteDir(); + _fst->setScriptPaths(getScriptPaths(QDir(_directory.path() + "/scripts"))); + _fst->write(); + //_projectFiles = _directory.entryList(); refreshProjectFiles(); @@ -125,8 +184,7 @@ MarketplaceItemUploader* AvatarProject::upload(bool updateExisting) { connect(uploader, &MarketplaceItemUploader::completed, this, [this, uploader]() { if (uploader->getError() == MarketplaceItemUploader::Error::None) { _fst->setMarketplaceID(uploader->getMarketplaceID()); - // TODO(thoys) uncomment this - //_fst->write(); + _fst->write(); } }); diff --git a/interface/src/avatar/AvatarProject.h b/interface/src/avatar/AvatarProject.h index b164e67e0d..07a6713557 100644 --- a/interface/src/avatar/AvatarProject.h +++ b/interface/src/avatar/AvatarProject.h @@ -36,11 +36,6 @@ class AvatarProject : public QObject { Q_PROPERTY(QString name READ getProjectName) public: - Q_INVOKABLE bool write() { - // Write FST here - return false; - } - Q_INVOKABLE MarketplaceItemUploader* upload(bool updateExisting); Q_INVOKABLE void openInInventory(); @@ -48,7 +43,8 @@ public: * returns the AvatarProject or a nullptr on failure. */ static AvatarProject* openAvatarProject(const QString& path); - static AvatarProject* createAvatarProject(const QString& avatarProjectName, const QString& avatarModelPath); + static AvatarProject* createAvatarProject(const QString& projectsFolder, const QString& avatarProjectName, + const QString& avatarModelPath, const QString& textureFolder); static bool isValidNewProjectName(const QString& projectName); @@ -61,7 +57,7 @@ private: AvatarProject(FST* fst); ~AvatarProject() { - // TODO: cleanup FST / AvatarProjectUploader etc. + _fst->deleteLater(); } Q_INVOKABLE QString getProjectName() const { return _fst->getName(); } @@ -73,6 +69,7 @@ private: void refreshProjectFiles(); void appendDirectory(QString prefix, QDir dir); + QStringList getScriptPaths(const QDir& scriptsDir); FST* _fst; diff --git a/libraries/fbx/src/FST.cpp b/libraries/fbx/src/FST.cpp index 2631fe951e..af00428a51 100644 --- a/libraries/fbx/src/FST.cpp +++ b/libraries/fbx/src/FST.cpp @@ -16,14 +16,23 @@ #include FST::FST(const QString& fstPath, QVariantHash data) : _fstPath(fstPath) { - if (data.contains(NAME_FIELD)) { - _name = data[NAME_FIELD].toString(); - data.remove(NAME_FIELD); - } - if (data.contains(FILENAME_FIELD)) { - _modelPath = data[FILENAME_FIELD].toString(); - data.remove(FILENAME_FIELD); + auto setValueFromFSTData = [&data] (const QString& propertyID, auto &targetProperty) mutable { + if (data.contains(propertyID)) { + targetProperty = data[propertyID].toString(); + data.remove(propertyID); + } + }; + setValueFromFSTData(NAME_FIELD, _name); + setValueFromFSTData(FILENAME_FIELD, _modelPath); + setValueFromFSTData(MARKETPLACE_ID_FIELD, _marketplaceID); + + if (data.contains(SCRIPT_FIELD)) { + QVariantList scripts = data.values(SCRIPT_FIELD); + for (const auto& script : scripts) { + _scriptPaths.push_back(script.toString()); + } + data.remove(SCRIPT_FIELD); } _other = data; @@ -42,10 +51,8 @@ FST* FST::createFSTFromModel(QString fstPath, QString modelFilePath, const hfm:: hfmModel.blendshapeChannelNames.contains("Squint_Right")); mapping.insert(NAME_FIELD, QFileInfo(fstPath).baseName()); - QDir root(modelFilePath); - mapping.insert(FILENAME_FIELD, root.relativeFilePath(fstPath)); + mapping.insert(FILENAME_FIELD, QFileInfo(modelFilePath).fileName()); mapping.insert(TEXDIR_FIELD, "textures"); - mapping.insert(SCRIPT_FIELD, "scripts"); // mixamo/autodesk defaults mapping.insert(SCALE_FIELD, 1.0); @@ -150,9 +157,13 @@ void FST::setModelPath(const QString& modelPath) { QVariantHash FST::getMapping() { QVariantHash mapping; - mapping.insertMulti(NAME_FIELD, _name); - mapping.insertMulti(FILENAME_FIELD, _modelPath); mapping.unite(_other); + mapping.insert(NAME_FIELD, _name); + mapping.insert(FILENAME_FIELD, _modelPath); + mapping.insert(MARKETPLACE_ID_FIELD, _marketplaceID); + for (const auto& scriptPath : _scriptPaths) { + mapping.insertMulti(SCRIPT_FIELD, scriptPath); + } return mapping; } diff --git a/libraries/fbx/src/FST.h b/libraries/fbx/src/FST.h index 83bb1e1933..813d4f3bc5 100644 --- a/libraries/fbx/src/FST.h +++ b/libraries/fbx/src/FST.h @@ -41,6 +41,9 @@ public: QUuid getMarketplaceID() const { return _marketplaceID; } void setMarketplaceID(QUuid marketplaceID) { _marketplaceID = marketplaceID; } + QStringList getScriptPaths() const { return _scriptPaths; } + void setScriptPaths(QStringList scriptPaths) { _scriptPaths = scriptPaths; } + QString getPath() { return _fstPath; } QVariantHash getMapping(); @@ -58,6 +61,8 @@ private: QString _modelPath{}; QUuid _marketplaceID{}; + QStringList _scriptPaths{}; + QVariantHash _other{}; }; diff --git a/libraries/fbx/src/FSTReader.cpp b/libraries/fbx/src/FSTReader.cpp index 75596862d2..43806560dc 100644 --- a/libraries/fbx/src/FSTReader.cpp +++ b/libraries/fbx/src/FSTReader.cpp @@ -84,7 +84,7 @@ void FSTReader::writeVariant(QBuffer& buffer, QVariantHash::const_iterator& it) QByteArray FSTReader::writeMapping(const QVariantHash& mapping) { static const QStringList PREFERED_ORDER = QStringList() << NAME_FIELD << TYPE_FIELD << SCALE_FIELD << FILENAME_FIELD - << TEXDIR_FIELD << SCRIPT_FIELD << JOINT_FIELD << FREE_JOINT_FIELD + << MARKETPLACE_ID_FIELD << TEXDIR_FIELD << SCRIPT_FIELD << JOINT_FIELD << FREE_JOINT_FIELD << BLENDSHAPE_FIELD << JOINT_INDEX_FIELD; QBuffer buffer; buffer.open(QIODevice::WriteOnly); diff --git a/libraries/fbx/src/FSTReader.h b/libraries/fbx/src/FSTReader.h index 00244877b3..993d7c3148 100644 --- a/libraries/fbx/src/FSTReader.h +++ b/libraries/fbx/src/FSTReader.h @@ -18,6 +18,7 @@ static const QString NAME_FIELD = "name"; static const QString TYPE_FIELD = "type"; static const QString FILENAME_FIELD = "filename"; +static const QString MARKETPLACE_ID_FIELD = "marketplaceID"; static const QString TEXDIR_FIELD = "texdir"; static const QString LOD_FIELD = "lod"; static const QString JOINT_INDEX_FIELD = "jointIndex"; From 748135eef90174326d5b7ae097511a82bfbdb93b Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Fri, 21 Dec 2018 11:43:20 -0800 Subject: [PATCH 027/230] Fix login-required size and projectFiles warning --- interface/resources/qml/hifi/AvatarPackager.qml | 2 +- interface/resources/qml/hifi/avatarPackager/AvatarProject.qml | 2 +- interface/src/avatar/AvatarProject.h | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/interface/resources/qml/hifi/AvatarPackager.qml b/interface/resources/qml/hifi/AvatarPackager.qml index 4d27e6fce4..7e76418e33 100644 --- a/interface/resources/qml/hifi/AvatarPackager.qml +++ b/interface/resources/qml/hifi/AvatarPackager.qml @@ -63,7 +63,7 @@ Windows.ScrollingWindow { name: "project-upload" PropertyChanges { target: avatarPackagerHeader; title: AvatarPackagerCore.currentAvatarProject.name } PropertyChanges { target: avatarUploader; visible: true } - PropertyChanges { target: avatarPackagerFooter; color: "blue"; visible: false } + PropertyChanges { target: avatarPackagerFooter; visible: false } } ] diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml index 286ebb23ba..5f84452cc1 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -185,7 +185,7 @@ Item { id: loginRequiredMessage visible: !Account.loggedIn - height: loginRequiredTextRow.height + 20 + height: !Account.loggedIn ? loginRequiredTextRow.height + 20 : 0 anchors { bottom: parent.bottom diff --git a/interface/src/avatar/AvatarProject.h b/interface/src/avatar/AvatarProject.h index b164e67e0d..6910e2af10 100644 --- a/interface/src/avatar/AvatarProject.h +++ b/interface/src/avatar/AvatarProject.h @@ -28,7 +28,7 @@ class AvatarProject : public QObject { Q_OBJECT Q_PROPERTY(FST* fst READ getFST) - Q_PROPERTY(QStringList projectFiles MEMBER _projectFiles) + Q_PROPERTY(QStringList projectFiles READ getProjectFiles NOTIFY projectFilesChanged) Q_PROPERTY(QString projectFolderPath READ getProjectPath) Q_PROPERTY(QString projectFSTPath READ getFSTPath) @@ -43,6 +43,7 @@ public: Q_INVOKABLE MarketplaceItemUploader* upload(bool updateExisting); Q_INVOKABLE void openInInventory(); + Q_INVOKABLE QStringList getProjectFiles() const { return _projectFiles; } /** * returns the AvatarProject or a nullptr on failure. From 3a282045ff60d766bc96a5856b32bf147b37ba5d Mon Sep 17 00:00:00 2001 From: Roxanne Skelly Date: Fri, 21 Dec 2018 15:48:58 -0800 Subject: [PATCH 028/230] Checkpoint trait-level flow control --- assignment-client/src/avatars/AvatarMixer.cpp | 1 + .../src/avatars/AvatarMixerClientData.cpp | 26 +++++++++++++++++++ .../src/avatars/AvatarMixerClientData.h | 16 +++++++++++- .../src/avatars/AvatarMixerSlave.cpp | 12 +++++++-- libraries/avatars/src/AvatarHashMap.cpp | 11 ++++++++ libraries/avatars/src/AvatarTraits.h | 4 +++ libraries/networking/src/udt/PacketHeaders.h | 2 +- 7 files changed, 68 insertions(+), 4 deletions(-) diff --git a/assignment-client/src/avatars/AvatarMixer.cpp b/assignment-client/src/avatars/AvatarMixer.cpp index 53fc13e5cf..6b2b60d3fb 100644 --- a/assignment-client/src/avatars/AvatarMixer.cpp +++ b/assignment-client/src/avatars/AvatarMixer.cpp @@ -56,6 +56,7 @@ AvatarMixer::AvatarMixer(ReceivedMessage& message) : packetReceiver.registerListener(PacketType::RequestsDomainListData, this, "handleRequestsDomainListDataPacket"); packetReceiver.registerListener(PacketType::AvatarIdentityRequest, this, "handleAvatarIdentityRequestPacket"); packetReceiver.registerListener(PacketType::SetAvatarTraits, this, "queueIncomingPacket"); + packetReceiver.registerListener(PacketType::BulkAvatarTraitsAck, this, "queueIncomingPacket"); packetReceiver.registerListenerForTypes({ PacketType::ReplicatedAvatarIdentity, diff --git a/assignment-client/src/avatars/AvatarMixerClientData.cpp b/assignment-client/src/avatars/AvatarMixerClientData.cpp index 5e36d8beaf..076f9ea862 100644 --- a/assignment-client/src/avatars/AvatarMixerClientData.cpp +++ b/assignment-client/src/avatars/AvatarMixerClientData.cpp @@ -68,6 +68,9 @@ int AvatarMixerClientData::processPackets(const SlaveSharedData& slaveSharedData case PacketType::SetAvatarTraits: processSetTraitsMessage(*packet, slaveSharedData, *node); break; + case PacketType::BulkAvatarTraitsAck: + processBulkAvatarTraitsAckMessage(*packet); + break; default: Q_UNREACHABLE(); } @@ -179,6 +182,29 @@ void AvatarMixerClientData::processSetTraitsMessage(ReceivedMessage& message, } } +void AvatarMixerClientData::processBulkAvatarTraitsAckMessage(ReceivedMessage& message) { + + // Look up the avatar/trait data associated with this ack and update the 'last ack' list + // with it. + AvatarTraits::TraitMessageSequence seq; + message.readPrimitive(&seq); + auto& sentAvatarTraitVersions = _pendingTraitVersions.find(seq); + if (sentAvatarTraitVersions != _pendingTraitVersions.end()) { + for (auto& nodeTraitVersions : sentAvatarTraitVersions->second) { + auto& nodeId = nodeTraitVersions.first; + auto& versions = nodeTraitVersions.second; + auto simpleReceivedIt = versions.simpleCBegin(); + while (simpleReceivedIt != versions.simpleCEnd()) { + auto traitType = static_cast(std::distance(versions.simpleCBegin(), + simpleReceivedIt)); + _ackedTraitVersions[nodeId][traitType] = *simpleReceivedIt; + } + } + _pendingTraitVersions.erase(sentAvatarTraitVersions); + } +} + + void AvatarMixerClientData::checkSkeletonURLAgainstWhitelist(const SlaveSharedData &slaveSharedData, Node& sendingNode, AvatarTraits::TraitVersion traitVersion) { const auto& whitelist = slaveSharedData.skeletonURLWhitelist; diff --git a/assignment-client/src/avatars/AvatarMixerClientData.h b/assignment-client/src/avatars/AvatarMixerClientData.h index 8a86af384a..f26ce8504b 100644 --- a/assignment-client/src/avatars/AvatarMixerClientData.h +++ b/assignment-client/src/avatars/AvatarMixerClientData.h @@ -42,6 +42,7 @@ public: AvatarMixerClientData(const QUuid& nodeID, Node::LocalID nodeLocalID); virtual ~AvatarMixerClientData() {} using HRCTime = p_high_resolution_clock::time_point; + using NodeTraitVersions = std::unordered_map; int parseData(ReceivedMessage& message) override; AvatarData& getAvatar() { return *_avatar; } @@ -124,6 +125,7 @@ public: int processPackets(const SlaveSharedData& slaveSharedData); // returns number of packets processed void processSetTraitsMessage(ReceivedMessage& message, const SlaveSharedData& slaveSharedData, Node& sendingNode); + void processBulkAvatarTraitsAckMessage(ReceivedMessage& message); void checkSkeletonURLAgainstWhitelist(const SlaveSharedData& slaveSharedData, Node& sendingNode, AvatarTraits::TraitVersion traitVersion); @@ -138,7 +140,14 @@ public: void setLastOtherAvatarTraitsSendPoint(Node::LocalID otherAvatar, TraitsCheckTimestamp sendPoint) { _lastSentTraitsTimestamps[otherAvatar] = sendPoint; } + AvatarTraits::TraitMessageSequence getTraitsMessageSequence() const { return _currentTraitsMessageSequence; } + AvatarTraits::TraitMessageSequence nextTraitsMessageSequence() { return ++_currentTraitsMessageSequence; } + AvatarTraits::TraitVersions& getPendingTraitVersions(AvatarTraits::TraitMessageSequence seq, Node::LocalID otherId) { + return _pendingTraitVersions[seq][otherId]; + } + AvatarTraits::TraitVersions& getLastSentTraitVersions(Node::LocalID otherAvatar) { return _sentTraitVersions[otherAvatar]; } + AvatarTraits::TraitVersions& getLastAckedTraitVersions(Node::LocalID otherAvatar) { return _ackedTraitVersions[otherAvatar]; } void resetSentTraitData(Node::LocalID nodeID); @@ -183,8 +192,13 @@ private: AvatarTraits::TraitVersions _lastReceivedTraitVersions; TraitsCheckTimestamp _lastReceivedTraitsChange; + AvatarTraits::TraitMessageSequence _currentTraitsMessageSequence{ 0 }; + + std::unordered_map _pendingTraitVersions; + std::unordered_map _lastSentTraitsTimestamps; - std::unordered_map _sentTraitVersions; + NodeTraitVersions _sentTraitVersions; + NodeTraitVersions _ackedTraitVersions; std::atomic_bool _isIgnoreRadiusEnabled { false }; }; diff --git a/assignment-client/src/avatars/AvatarMixerSlave.cpp b/assignment-client/src/avatars/AvatarMixerSlave.cpp index cd9d164ef7..b0cda85bec 100644 --- a/assignment-client/src/avatars/AvatarMixerSlave.cpp +++ b/assignment-client/src/avatars/AvatarMixerSlave.cpp @@ -103,6 +103,7 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis // compare trait versions so we can see what exactly needs to go out auto& lastSentVersions = listeningNodeData->getLastSentTraitVersions(otherNodeLocalID); + auto& lastAckedVersions = listeningNodeData->getLastAckedTraitVersions(otherNodeLocalID); const auto& lastReceivedVersions = sendingNodeData->getLastReceivedTraitVersions(); auto simpleReceivedIt = lastReceivedVersions.simpleCBegin(); @@ -112,13 +113,18 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis auto lastReceivedVersion = *simpleReceivedIt; auto& lastSentVersionRef = lastSentVersions[traitType]; + auto& lastAckedVersionRef = lastAckedVersions[traitType]; - if (lastReceivedVersions[traitType] > lastSentVersionRef) { + // hold sending more traits until we've been acked that the last one we sent was received + if (lastAckedVersionRef == lastSentVersionRef && lastReceivedVersions[traitType] > lastSentVersionRef) { // there is an update to this trait, add it to the traits packet bytesWritten += sendingAvatar->packTrait(traitType, traitsPacketList, lastReceivedVersion); - // update the last sent version lastSentVersionRef = lastReceivedVersion; + // Remember which versions we sent in this particular packet + // so we can verify when it's acked. + auto& pendingTraitVersions = listeningNodeData->getPendingTraitVersions(listeningNodeData->getTraitsMessageSequence(), otherNodeLocalID); + pendingTraitVersions[traitType] = lastReceivedVersion; } ++simpleReceivedIt; @@ -419,6 +425,8 @@ void AvatarMixerSlave::broadcastAvatarDataToAgent(const SharedNodePointer& node) int remainingAvatars = (int)sortedAvatars.size(); auto traitsPacketList = NLPacketList::create(PacketType::BulkAvatarTraits, QByteArray(), true, true); + traitsPacketList->writePrimitive(nodeData->nextTraitsMessageSequence()); + auto avatarPacket = NLPacket::create(PacketType::BulkAvatarData); const int avatarPacketCapacity = avatarPacket->getPayloadCapacity(); int avatarSpaceAvailable = avatarPacketCapacity; diff --git a/libraries/avatars/src/AvatarHashMap.cpp b/libraries/avatars/src/AvatarHashMap.cpp index 41ca950b3b..ff902945bc 100644 --- a/libraries/avatars/src/AvatarHashMap.cpp +++ b/libraries/avatars/src/AvatarHashMap.cpp @@ -328,6 +328,17 @@ void AvatarHashMap::processAvatarIdentityPacket(QSharedPointer } void AvatarHashMap::processBulkAvatarTraits(QSharedPointer message, SharedNodePointer sendingNode) { + AvatarTraits::TraitMessageSequence seq; + + message->readPrimitive(&seq); + + // we have a mixer to send to, setup our set traits packet + auto traitsAckPacket = NLPacket::create(PacketType::BulkAvatarTraitsAck, sizeof(AvatarTraits::TraitMessageSequence), true); + traitsAckPacket->writePrimitive(seq); + auto nodeList = DependencyManager::get(); + SharedNodePointer avatarMixer = nodeList->soloNodeOfType(NodeType::AvatarMixer); + nodeList->sendPacket(std::move(traitsAckPacket), *avatarMixer); + while (message->getBytesLeftToRead()) { // read the avatar ID to figure out which avatar this is for diff --git a/libraries/avatars/src/AvatarTraits.h b/libraries/avatars/src/AvatarTraits.h index 5e28515d12..966ae6bdde 100644 --- a/libraries/avatars/src/AvatarTraits.h +++ b/libraries/avatars/src/AvatarTraits.h @@ -41,6 +41,10 @@ namespace AvatarTraits { const TraitWireSize DELETED_TRAIT_SIZE = -1; const TraitWireSize MAXIMUM_TRAIT_SIZE = INT16_MAX; + using TraitMessageSequence = int64_t; + const TraitMessageSequence FIRST_TRAIT_SEQUENCE = 0; + const TraitMessageSequence MAX_TRAIT_SEQUENCE = INT64_MAX; + inline qint64 packInstancedTraitDelete(TraitType traitType, TraitInstanceID instanceID, ExtendedIODevice& destination, TraitVersion traitVersion = NULL_TRAIT_VERSION) { qint64 bytesWritten = 0; diff --git a/libraries/networking/src/udt/PacketHeaders.h b/libraries/networking/src/udt/PacketHeaders.h index b46eb3e9e4..508d46def8 100644 --- a/libraries/networking/src/udt/PacketHeaders.h +++ b/libraries/networking/src/udt/PacketHeaders.h @@ -133,7 +133,7 @@ public: EntityQueryInitialResultsComplete, BulkAvatarTraits, AudioSoloRequest, - + BulkAvatarTraitsAck, NUM_PACKET_TYPE }; From b717188ed08711fb5df08b51262d401bd5571a66 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Sat, 22 Dec 2018 21:57:09 -0800 Subject: [PATCH 029/230] Update avatar project styling --- .../avatarPackager/AvatarPackagerFooter.qml | 21 +++++- .../qml/hifi/avatarPackager/AvatarProject.qml | 69 +++++++++++++------ .../qml/hifi/avatarPackager/Style.qml | 20 ++++++ interface/src/avatar/AvatarProject.cpp | 16 ++++- interface/src/avatar/AvatarProject.h | 18 +++-- libraries/avatars/src/ProjectFile.h | 11 +++ 6 files changed, 123 insertions(+), 32 deletions(-) create mode 100644 interface/resources/qml/hifi/avatarPackager/Style.qml create mode 100644 libraries/avatars/src/ProjectFile.h diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerFooter.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerFooter.qml index d7725b250e..e1d9396e04 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerFooter.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerFooter.qml @@ -18,8 +18,25 @@ Rectangle { property var background: Rectangle { anchors.fill: parent color: "#404040" - // TODO Use a shadow instead / border is just here for element debug purposes - border.width: 2; + + Rectangle { + id: topBorder1 + + anchors.top: parent.top + + color: "#252525" + height: 1 + width: parent.width + } + Rectangle { + id: topBorder2 + + anchors.top: topBorder1.bottom + + color: "#575757" + height: 1 + width: parent.width + } } } \ No newline at end of file diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml index 5f84452cc1..669748e7c9 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -8,11 +8,14 @@ import QtQuick.Controls 2.2 as Original import "../../controlsUit" 1.0 as HifiControls import "../../stylesUit" 1.0 + Item { id: root HifiConstants { id: hifi } + Style { id: style } + property int colorScheme; property var uploader: undefined; @@ -21,6 +24,7 @@ Item { anchors.margins: 10 property var footer: Item { + id: uploadFooter anchors.fill: parent anchors.rightMargin: 17 HifiControls.Button { @@ -91,7 +95,6 @@ Item { }; popup.open(); - //popup.forceActiveFocus(); } function showConfirmCreateNewPopup(confirmCallback) { @@ -102,30 +105,40 @@ Item { popup.button1text = 'CANCEL'; popup.button2text = 'CONFIRM'; - popup.onButton1Clicked = function() { popup.close() }; + popup.onButton1Clicked = function() { + popup.close() + }; popup.onButton2Clicked = function() { popup.close(); uploadNew(); }; popup.open(); - //popup.forceActiveFocus(); } - RalewaySemiBold { - id: avatarFBXNameLabel - size: 14 + RalewayRegular { + id: infoMessage + + color: 'white' + size: 20 + anchors.left: parent.left + anchors.right: parent.right anchors.top: parent.top - anchors.topMargin: 25 - anchors.bottomMargin: 25 - text: qsTr("FBX file here") + + anchors.bottomMargin: 24 + + wrapMode: Text.Wrap + + text: "Click \"Update\" to overwrite the hosted files and update the avatar in your inventory. You will have to “Wear” the avatar again to see changes." } HifiControls.Button { id: openFolderButton + + visible: false width: parent.width - anchors.top: avatarFBXNameLabel.bottom + anchors.top: infoMessage.bottom anchors.topMargin: 10 text: qsTr("Open Project Folder") colorScheme: root.colorScheme @@ -140,7 +153,8 @@ Item { visible: false - color: "white" + color: "#6A6A6A" + anchors.top: openFolderButton.bottom anchors.left: parent.left anchors.right: parent.right @@ -155,27 +169,39 @@ Item { model: AvatarPackagerCore.currentAvatarProject === null ? [] : AvatarPackagerCore.currentAvatarProject.projectFiles delegate: Rectangle { width: parent.width - height: fileText.implicitHeight + 10 - color: (index % 2 == 0) ? "white" : "grey" - Text { + height: fileText.implicitHeight + 8 + color: (index % 2 == 0) ? "#6A6A6A" : "grey" + RalewaySemiBold { id: fileText - anchors.top: parent.top + 5 - anchors.left: parent.left + 5 + size: 16 + elide: Text.ElideLeft + anchors.top: parent.top + anchors.left: parent.left + anchors.right: parent.right + anchors.leftMargin: 16 + anchors.rightMargin: 16 + anchors.topMargin: 4 + width: parent.width - 10 + color: "white" text: modelData } } } } - Text { + RalewayRegular { id: showFilesText + color: 'white' + linkColor: style.colors.blueHighlight + visible: AvatarPackagerCore.currentAvatarProject !== null anchors.bottom: loginRequiredMessage.top anchors.bottomMargin: 10 - font.pointSize: 12 + size: 20 + text: AvatarPackagerCore.currentAvatarProject.projectFiles.length + " files in the project. " + (fileList.visible ? "Hide" : "Show") + " list" onLinkActivated: fileList.visible = !fileList.visible @@ -214,19 +240,20 @@ Item { width: implicitWidth - font.pointSize: 20 + size: 48 text: "+" color: "black" } - Text { + RalewayRegular { id: loginWarningText anchors.verticalCenter: parent.verticalCenter + anchors.leftMargin: 16 anchors.left: loginWarningGlyph.right anchors.right: parent.right text: "Please login to upload your avatar to High Fidelity hosting." - font.pointSize: 12 + size: 18 wrapMode: Text.Wrap } } diff --git a/interface/resources/qml/hifi/avatarPackager/Style.qml b/interface/resources/qml/hifi/avatarPackager/Style.qml new file mode 100644 index 0000000000..a1dcc8f0c1 --- /dev/null +++ b/interface/resources/qml/hifi/avatarPackager/Style.qml @@ -0,0 +1,20 @@ +import QtQuick 2.5 +import QtQuick.Window 2.2 + +import "../../stylesUit" 1.0 + +QtObject { + readonly property QtObject colors: QtObject { + readonly property color lightGrayBackground: "#f2f2f2" + readonly property color black: "#000000" + readonly property color white: "#ffffff" + readonly property color blueHighlight: "#00b4ef" + readonly property color inputFieldBackground: "#d4d4d4" + readonly property color yellowishOrange: "#ffb017" + readonly property color blueAccent: "#0093c5" + readonly property color greenHighlight: "#1fc6a6" + readonly property color lightGray: "#afafaf" + readonly property color redHighlight: "#ea4c5f" + readonly property color orangeAccent: "#ff6309" + } +} diff --git a/interface/src/avatar/AvatarProject.cpp b/interface/src/avatar/AvatarProject.cpp index 901c0621fb..2a2ec7c1cb 100644 --- a/interface/src/avatar/AvatarProject.cpp +++ b/interface/src/avatar/AvatarProject.cpp @@ -162,7 +162,7 @@ void AvatarProject::appendDirectory(QString prefix, QDir dir) { for (auto& entry : dir.entryInfoList({}, flags)) { if (entry.isFile()) { //_projectFiles.append(prefix + "/" + entry.fileName()); - _projectFiles.append(entry.absoluteFilePath()); + _projectFiles.append({ entry.absoluteFilePath(), prefix + "/" + entry.fileName() }); } else if (entry.isDir()) { appendDirectory(prefix + dir.dirName() + "/", entry.absoluteFilePath()); } @@ -174,13 +174,25 @@ void AvatarProject::refreshProjectFiles() { appendDirectory("", _directory); } +QStringList AvatarProject::getProjectFiles() const { + QStringList paths; + for (auto& path : _projectFiles) { + paths.append(path.relativePath); + } + return paths; +} + MarketplaceItemUploader* AvatarProject::upload(bool updateExisting) { QUuid itemID; if (updateExisting) { itemID = _fst->getMarketplaceID(); } + QStringList projectFilePaths; + for (auto& path : _projectFiles) { + projectFilePaths.append(path.absolutePath); + } auto uploader = new MarketplaceItemUploader(getProjectName(), "Empty description", QFileInfo(getFSTPath()).fileName(), itemID, - _projectFiles); + projectFilePaths); connect(uploader, &MarketplaceItemUploader::completed, this, [this, uploader]() { if (uploader->getError() == MarketplaceItemUploader::Error::None) { _fst->setMarketplaceID(uploader->getMarketplaceID()); diff --git a/interface/src/avatar/AvatarProject.h b/interface/src/avatar/AvatarProject.h index 3b4a4b74f9..d5cd7762a1 100644 --- a/interface/src/avatar/AvatarProject.h +++ b/interface/src/avatar/AvatarProject.h @@ -14,6 +14,7 @@ #define hifi_AvatarProject_h #include "MarketplaceItemUploader.h" +#include "ProjectFile.h" #include "FST.h" #include @@ -38,14 +39,16 @@ class AvatarProject : public QObject { public: Q_INVOKABLE MarketplaceItemUploader* upload(bool updateExisting); Q_INVOKABLE void openInInventory(); - Q_INVOKABLE QStringList getProjectFiles() const { return _projectFiles; } + Q_INVOKABLE QStringList getProjectFiles() const; /** * returns the AvatarProject or a nullptr on failure. */ static AvatarProject* openAvatarProject(const QString& path); - static AvatarProject* createAvatarProject(const QString& projectsFolder, const QString& avatarProjectName, - const QString& avatarModelPath, const QString& textureFolder); + static AvatarProject* createAvatarProject(const QString& projectsFolder, + const QString& avatarProjectName, + const QString& avatarModelPath, + const QString& textureFolder); static bool isValidNewProjectName(const QString& projectName); @@ -53,13 +56,14 @@ public: return QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation) + "/High Fidelity Projects"; } +signals: + void projectFilesChanged(); + private: AvatarProject(const QString& fstPath, const QByteArray& data); AvatarProject(FST* fst); - ~AvatarProject() { - _fst->deleteLater(); - } + ~AvatarProject() { _fst->deleteLater(); } Q_INVOKABLE QString getProjectName() const { return _fst->getName(); } Q_INVOKABLE QString getProjectPath() const { return _projectPath; } @@ -75,7 +79,7 @@ private: FST* _fst; QDir _directory; - QStringList _projectFiles{}; + QList _projectFiles{}; QString _projectPath; }; diff --git a/libraries/avatars/src/ProjectFile.h b/libraries/avatars/src/ProjectFile.h new file mode 100644 index 0000000000..df92513a1b --- /dev/null +++ b/libraries/avatars/src/ProjectFile.h @@ -0,0 +1,11 @@ +#ifndef hifi_AvatarProjectFile_h +#define hifi_AvatarProjectFile_h + +class ProjectFilePath { + Q_GADGET; +public: + QString absolutePath; + QString relativePath; +}; + +#endif // hifi_AvatarProjectFile_h \ No newline at end of file From 8c56e35f69f71d0d648cb8b313b2b7407307da1c Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Sun, 23 Dec 2018 00:13:01 -0800 Subject: [PATCH 030/230] Add granular status to avatar upload --- .../qml/hifi/avatarPackager/AvatarProject.qml | 4 +- .../avatarPackager/AvatarProjectUpload.qml | 163 +++++++----------- .../src/avatar/MarketplaceItemUploader.cpp | 29 ++-- .../src/avatar/MarketplaceItemUploader.h | 10 +- 4 files changed, 93 insertions(+), 113 deletions(-) diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml index 669748e7c9..81afacf28c 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -25,8 +25,10 @@ Item { property var footer: Item { id: uploadFooter + anchors.fill: parent anchors.rightMargin: 17 + HifiControls.Button { id: uploadButton enabled: Account.loggedIn @@ -64,7 +66,7 @@ Item { root.uploader.uploadProgress.connect(function(uploaded, total) { console.log("Uploader progress: " + uploaded + " / " + total); }); - root.uploader.completed.connect(function() { + root.uploader.finished.connect(function() { try { var response = JSON.parse(root.uploader.responseData); console.log("Uploader complete! " + response); diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml index bbeca6ab3b..6e011b1ec7 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml @@ -28,7 +28,7 @@ Item { onVisibleChanged: { console.log("Visibility changed"); if (visible) { - root.uploader.completed.connect(function() { + root.uploader.finished.connect(function() { console.log("Did complete"); backToProjectTimer.start(); }); @@ -36,127 +36,94 @@ Item { } Item { - visible: !!root.uploader && !root.uploader.complete + id: uploadStatus + + visible: !!root.uploader anchors.fill: parent - AnimatedImage { - id: uploadSpinner + Item { + id: statusItem - anchors { - horizontalCenter: parent.horizontalCenter - verticalCenter: parent.verticalCenter + width: parent.width + height: 128 + + AnimatedImage { + id: uploadSpinner + + visible: !!root.uploader && !root.uploader.complete + + anchors { + horizontalCenter: parent.horizontalCenter + verticalCenter: parent.verticalCenter + } + + source: "../../../icons/loader-snake-64-w.gif" + playing: true + z: 10000 } - source: "../../../icons/loader-snake-64-w.gif" - playing: true - z: 10000 - } - } + HiFiGlyphs { + id: errorIcon + visible: !!root.uploader && root.uploader.complete && root.uploader.error !== 0 - Item { - id: failureScreen + anchors { + horizontalCenter: parent.horizontalCenter + verticalCenter: parent.verticalCenter + } - visible: !!root.uploader && root.uploader.complete && root.uploader.error !== 0 - - anchors.fill: parent - - HiFiGlyphs { - id: errorIcon - - anchors { - horizontalCenter: parent.horizontalCenter - verticalCenter: parent.verticalCenter + size: 128 + text: "w" + color: "red" } - size: 128 - text: "w" - color: "red" - } + HiFiGlyphs { + id: successIcon - Column { - anchors.horizontalCenter: parent.horizontalCenter - anchors.top: errorIcon.bottom - Text { - anchors.horizontalCenter: parent.horizontalCenter + visible: !!root.uploader && root.uploader.complete && root.uploader.error === 0 - text: "Error" - font.pointSize: 24 + anchors { + horizontalCenter: parent.horizontalCenter + verticalCenter: parent.verticalCenter + } - color: "white" - } - Text { - text: "Your avatar has not been uploaded." - font.pointSize: 16 - - anchors.horizontalCenter: parent.horizontalCenter - - color: "white" + size: 128 + text: "\ue01a" + color: "#1FC6A6" } } - } + Item { + id: statusRows - Item { - id: successScreen + anchors.top: statusItem.bottom - visible: !!root.uploader && root.uploader.complete && root.uploader.error === 0 + AvatarUploadStatusItem { + id: statusCategories + text: "Retreiving categories" - anchors.fill: parent - - HiFiGlyphs { - id: successIcon - - anchors { - horizontalCenter: parent.horizontalCenter - verticalCenter: parent.verticalCenter + state: root.uploader.state == 1 ? "running" : (root.uploader.state > 1 ? "success" : (root.uploader.error ? "fail" : "")) } + AvatarUploadStatusItem { + id: statusUploading + anchors.top: statusCategories.bottom + text: "Uploading data" - size: 128 - text: "\ue01a" - color: "#1FC6A6" - } - - Column { - anchors.horizontalCenter: parent.horizontalCenter - anchors.top: successIcon.bottom - - Text { - id: successText - - anchors.horizontalCenter: parent.horizontalCenter - - text: "Congratulations!" - font.pointSize: 24 - - color: "white" + state: root.uploader.state == 2 ? "running" : (root.uploader.state > 2 ? "success" : (root.uploader.error ? "fail" : "")) } - Text { - text: "Your avatar has been uploaded." - font.pointSize: 16 + // TODO add waiting for response + //AvatarUploadStatusItem { + //id: statusResponse + //text: "Waiting for completion" + //} + AvatarUploadStatusItem { + id: statusInventory + anchors.top: statusUploading.bottom + text: "Waiting for inventory" - anchors.horizontalCenter: parent.horizontalCenter - - color: "white" + state: root.uploader.state == 3 ? "running" : (root.uploader.state > 3 ? "success" : (root.uploader.error ? "fail" : "")) } } - HifiControls.Button { - width: implicitWidth - height: implicitHeight - - anchors.bottom: parent.bottom - anchors.right: parent.right - - text: "View in Inventory" - - color: hifi.buttons.blue - colorScheme: root.colorScheme - onClicked: function() { - console.log("Opening in inventory"); - - AvatarPackagerCore.currentAvatarProject.openInInventory(); - } - } } Column { @@ -165,8 +132,6 @@ Item { visible: false Text { - id: uploadStatus - text: "Uploading" color: "white" diff --git a/interface/src/avatar/MarketplaceItemUploader.cpp b/interface/src/avatar/MarketplaceItemUploader.cpp index 1559f359a7..0a14ea9af4 100644 --- a/interface/src/avatar/MarketplaceItemUploader.cpp +++ b/interface/src/avatar/MarketplaceItemUploader.cpp @@ -39,15 +39,25 @@ MarketplaceItemUploader::MarketplaceItemUploader(QString title, } void MarketplaceItemUploader::setState(State newState) { + Q_ASSERT(newState != _state); qDebug() << "Setting uploader state to: " << newState; _state = newState; emit stateChanged(newState); if (newState == State::Complete) { emit completed(); + emit finished(); } } +void MarketplaceItemUploader::setError(Error error) { + Q_ASSERT(_error == Error::None); + + _error = error; + emit errorChanged(error); + emit finished(); +} + void MarketplaceItemUploader::send() { doGetCategories(); } @@ -105,14 +115,12 @@ void MarketplaceItemUploader::doGetCategories() { qDebug() << "Done " << success << id; if (!success) { qWarning() << "Failed to find marketplace category id"; - _error = Error::Unknown; - setState(State::Complete); + setError(Error::Unknown); } else { doUploadAvatar(); } } else { - _error = Error::Unknown; - setState(State::Complete); + setError(Error::Unknown); } }); } @@ -132,8 +140,7 @@ void MarketplaceItemUploader::doUploadAvatar() { QuaZipFile zipFile{ &zip }; if (!zipFile.open(QIODevice::WriteOnly, QuaZipNewInfo(fileInfo.fileName()))) { qWarning() << "Could not open zip file:" << zipFile.getZipError(); - _error = Error::Unknown; - setState(State::Complete); + setError(Error::Unknown); return; } QFile file{ filePath }; @@ -204,14 +211,13 @@ void MarketplaceItemUploader::doUploadAvatar() { if (status == "success") { _marketplaceID = QUuid::fromString(doc["data"].toObject()["marketplace_id"].toString()); _itemVersion = doc["data"].toObject()["version"].toDouble(); + setState(State::WaitingForInventory); doWaitForInventory(); } else { - _error = Error::Unknown; - setState(State::Complete); + setError(Error::Unknown); } } else { - _error = Error::Unknown; - setState(State::Complete); + setError(Error::Unknown); } }); @@ -282,8 +288,7 @@ void MarketplaceItemUploader::doWaitForInventory() { } else { qDebug() << "Failed to find item in inventory"; if (_numRequestsForInventory > 8) { - _error = Error::Unknown; - setState(State::Complete); + setError(Error::Unknown); } else { QTimer::singleShot(5000, [this]() { doWaitForInventory(); }); } diff --git a/interface/src/avatar/MarketplaceItemUploader.h b/interface/src/avatar/MarketplaceItemUploader.h index 9cfd531aca..1b1589af96 100644 --- a/interface/src/avatar/MarketplaceItemUploader.h +++ b/interface/src/avatar/MarketplaceItemUploader.h @@ -23,7 +23,7 @@ class MarketplaceItemUploader : public QObject { Q_PROPERTY(bool complete READ getComplete NOTIFY stateChanged) Q_PROPERTY(State state READ getState NOTIFY stateChanged) - Q_PROPERTY(Error error READ getError) + Q_PROPERTY(Error error READ getError NOTIFY errorChanged) Q_PROPERTY(QString responseData READ getResponseData) public: enum class Error @@ -51,11 +51,14 @@ public: Q_INVOKABLE void send(); + void setError(Error error); + QString getResponseData() const { return _responseData; } void setState(State newState); State getState() const { return _state; } bool getComplete() const { return _state == State::Complete; } + QUuid getMarketplaceID() const { return _marketplaceID; } Error getError() const { return _error; } @@ -63,7 +66,12 @@ public: signals: void uploadProgress(qint64 bytesSent, qint64 bytesTotal); void completed(); + void stateChanged(State newState); + void errorChanged(Error error); + + // Triggered when the upload has finished, either succesfully completing, or stopping with an error + void finished(); private: void doGetCategories(); From 577b3cbc9058962a8867ee7b6942ed6feb542fbe Mon Sep 17 00:00:00 2001 From: NissimHadar Date: Wed, 26 Dec 2018 09:06:25 -0800 Subject: [PATCH 031/230] Implemented online help. --- tools/nitpick/src/ui/HelpWindow.cpp | 14 --------- tools/nitpick/src/ui/HelpWindow.h | 22 -------------- tools/nitpick/src/ui/HelpWindow.ui | 46 ----------------------------- tools/nitpick/src/ui/Nitpick.cpp | 9 +++--- tools/nitpick/src/ui/Nitpick.h | 3 -- tools/nitpick/src/ui/Nitpick.ui | 4 +-- 6 files changed, 6 insertions(+), 92 deletions(-) delete mode 100644 tools/nitpick/src/ui/HelpWindow.cpp delete mode 100644 tools/nitpick/src/ui/HelpWindow.h delete mode 100644 tools/nitpick/src/ui/HelpWindow.ui diff --git a/tools/nitpick/src/ui/HelpWindow.cpp b/tools/nitpick/src/ui/HelpWindow.cpp deleted file mode 100644 index 21c5d9d375..0000000000 --- a/tools/nitpick/src/ui/HelpWindow.cpp +++ /dev/null @@ -1,14 +0,0 @@ -// -// HelpWindow.cpp -// -// Created by Nissim Hadar on 8 Aug 2017. -// Copyright 2013 High Fidelity, Inc. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// -#include "HelpWindow.h" - -HelpWindow::HelpWindow(QWidget *parent) { - setupUi(this); -} diff --git a/tools/nitpick/src/ui/HelpWindow.h b/tools/nitpick/src/ui/HelpWindow.h deleted file mode 100644 index 5ce91b360d..0000000000 --- a/tools/nitpick/src/ui/HelpWindow.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// HelpWindow.h -// -// Created by Nissim Hadar on 8 Aug 2017. -// Copyright 2013 High Fidelity, Inc. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// -#ifndef hifi_HelpWindow_h -#define hifi_HelpWindow_h - -#include "ui_HelpWindow.h" - -class HelpWindow : public QDialog, public Ui::HelpWindow { - Q_OBJECT - -public: - HelpWindow(QWidget* parent = Q_NULLPTR); -}; - -#endif \ No newline at end of file diff --git a/tools/nitpick/src/ui/HelpWindow.ui b/tools/nitpick/src/ui/HelpWindow.ui deleted file mode 100644 index 1ce6e8c321..0000000000 --- a/tools/nitpick/src/ui/HelpWindow.ui +++ /dev/null @@ -1,46 +0,0 @@ - - - HelpWindow - - - Qt::ApplicationModal - - - - 0 - 0 - 696 - 546 - - - - Nitpick Help - - - - - 50 - 50 - 581 - 381 - - - - - - - 300 - 460 - 93 - 28 - - - - Close - - - - - - - diff --git a/tools/nitpick/src/ui/Nitpick.cpp b/tools/nitpick/src/ui/Nitpick.cpp index cdd2ff89d9..38124e1f39 100644 --- a/tools/nitpick/src/ui/Nitpick.cpp +++ b/tools/nitpick/src/ui/Nitpick.cpp @@ -15,6 +15,8 @@ #include #endif +#include + Nitpick::Nitpick(QWidget* parent) : QMainWindow(parent) { _ui.setupUi(this); @@ -36,10 +38,7 @@ Nitpick::Nitpick(QWidget* parent) : QMainWindow(parent) { _ui.statusLabel->setText(""); _ui.plainTextEdit->setReadOnly(true); - setWindowTitle("Nitpick - v1.2"); - - // Coming soon to a nitpick near you... - //// _helpWindow.textBrowser->setText() + setWindowTitle("Nitpick - v1.3"); } Nitpick::~Nitpick() { @@ -287,7 +286,7 @@ void Nitpick::about() { } void Nitpick::content() { - _helpWindow.show(); + QDesktopServices::openUrl(QUrl("https://github.com/highfidelity/hifi/blob/master/tools/nitpick/README.md")); } void Nitpick::setUserText(const QString& user) { diff --git a/tools/nitpick/src/ui/Nitpick.h b/tools/nitpick/src/ui/Nitpick.h index 21b917654b..08e41e0a90 100644 --- a/tools/nitpick/src/ui/Nitpick.h +++ b/tools/nitpick/src/ui/Nitpick.h @@ -18,7 +18,6 @@ #include "../Downloader.h" #include "../Test.h" -#include "HelpWindow.h" #include "../TestRunner.h" #include "../AWSInterface.h" @@ -116,8 +115,6 @@ private: bool _isRunningFromCommandline{ false }; - HelpWindow _helpWindow; - void* _caller; }; diff --git a/tools/nitpick/src/ui/Nitpick.ui b/tools/nitpick/src/ui/Nitpick.ui index 5e20e75553..78f7dcf2bf 100644 --- a/tools/nitpick/src/ui/Nitpick.ui +++ b/tools/nitpick/src/ui/Nitpick.ui @@ -803,7 +803,7 @@ 0 0 720 - 22 + 21 @@ -843,7 +843,7 @@ - Content + Online readme From 70a2412a71f31508cb330452676c2f8f7eef57c9 Mon Sep 17 00:00:00 2001 From: NissimHadar Date: Wed, 26 Dec 2018 12:23:26 -0800 Subject: [PATCH 032/230] Windows version now deletes entities before starting tests. --- tools/nitpick/src/TestRunner.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/tools/nitpick/src/TestRunner.cpp b/tools/nitpick/src/TestRunner.cpp index 9b99e114a7..bbdd36a12a 100644 --- a/tools/nitpick/src/TestRunner.cpp +++ b/tools/nitpick/src/TestRunner.cpp @@ -469,12 +469,30 @@ void TestRunner::runInterfaceWithTestScript() { url = "hifi://localhost"; } + QString deleteScript = + QString("https://raw.githubusercontent.com/") + _user + "/hifi_tests/" + _branch + "/tests/utils/deleteNearbyEntities.js"; + QString testScript = QString("https://raw.githubusercontent.com/") + _user + "/hifi_tests/" + _branch + "/tests/testRecursive.js"; QString commandLine; #ifdef Q_OS_WIN - QString exeFile = QString("\"") + QDir::toNativeSeparators(_installationFolder) + "\\interface.exe\""; + QString exeFile; + // First, run script to delete any entities in test area + // Note that this will run to completion before continuing + exeFile = QString("\"") + QDir::toNativeSeparators(_installationFolder) + "\\interface.exe\""; + commandLine = "start /wait \"\" " + exeFile + + " --url " + url + + " --no-updater" + + " --no-login-suggestion" + " --testScript " + deleteScript + " quitWhenFinished" + + " --testResultsLocation " + _snapshotFolder; + + + system(commandLine.toStdString().c_str()); + + // Now run the test suite + exeFile = QString("\"") + QDir::toNativeSeparators(_installationFolder) + "\\interface.exe\""; commandLine = exeFile + " --url " + url + " --no-updater" + From da70271acfccdfd32d8d61b39978f8743b993065 Mon Sep 17 00:00:00 2001 From: Roxanne Skelly Date: Wed, 26 Dec 2018 13:46:08 -0800 Subject: [PATCH 033/230] Checkpoint #2 Case20377 - Add Ack for BulkAvatarTraits --- .../src/avatars/AvatarMixerClientData.cpp | 13 ++++++++ .../src/avatars/AvatarMixerSlave.cpp | 33 ++++++++++++++----- .../src/avatars/AvatarMixerSlave.h | 5 +++ .../networking/src/udt/PacketHeaders.cpp | 2 ++ libraries/networking/src/udt/PacketHeaders.h | 3 +- 5 files changed, 46 insertions(+), 10 deletions(-) diff --git a/assignment-client/src/avatars/AvatarMixerClientData.cpp b/assignment-client/src/avatars/AvatarMixerClientData.cpp index 076f9ea862..a20d6504de 100644 --- a/assignment-client/src/avatars/AvatarMixerClientData.cpp +++ b/assignment-client/src/avatars/AvatarMixerClientData.cpp @@ -190,6 +190,10 @@ void AvatarMixerClientData::processBulkAvatarTraitsAckMessage(ReceivedMessage& m message.readPrimitive(&seq); auto& sentAvatarTraitVersions = _pendingTraitVersions.find(seq); if (sentAvatarTraitVersions != _pendingTraitVersions.end()) { + // Note, this is not a simple move of the pending traits + // to the acked traits. Instead, it's a copy where existing + // trait versions in the acked hash are retained for traits not + // included in the pending hash for (auto& nodeTraitVersions : sentAvatarTraitVersions->second) { auto& nodeId = nodeTraitVersions.first; auto& versions = nodeTraitVersions.second; @@ -198,10 +202,19 @@ void AvatarMixerClientData::processBulkAvatarTraitsAckMessage(ReceivedMessage& m auto traitType = static_cast(std::distance(versions.simpleCBegin(), simpleReceivedIt)); _ackedTraitVersions[nodeId][traitType] = *simpleReceivedIt; + simpleReceivedIt++; } } _pendingTraitVersions.erase(sentAvatarTraitVersions); } + else { + // This can happen either the BulkAvatarTraits was sent with no simple traits, + // or if the avatar mixer restarts while there are pending + // BulkAvatarTraits messages in-flight. + if (seq > getTraitsMessageSequence()) { + qWarning() << "Received BulkAvatarTraitsAck with future seq (potential avatar mixer restart) " << seq << " from " << message.getSenderSockAddr(); + } + } } diff --git a/assignment-client/src/avatars/AvatarMixerSlave.cpp b/assignment-client/src/avatars/AvatarMixerSlave.cpp index b0cda85bec..1e84da7e55 100644 --- a/assignment-client/src/avatars/AvatarMixerSlave.cpp +++ b/assignment-client/src/avatars/AvatarMixerSlave.cpp @@ -80,6 +80,21 @@ int AvatarMixerSlave::sendIdentityPacket(NLPacketList& packetList, const AvatarM } } +qint64 AvatarMixerSlave::addTraitsNodeHeader(AvatarMixerClientData* listeningNodeData, + const AvatarMixerClientData* sendingNodeData, + NLPacketList& traitsPacketList, + qint64 bytesWritten) { + if (bytesWritten == 0) { + + if (traitsPacketList.getNumPackets() == 0) { + bytesWritten += traitsPacketList.writePrimitive(listeningNodeData->nextTraitsMessageSequence()); + } + // add the avatar ID to mark the beginning of traits for this avatar + bytesWritten += traitsPacketList.write(sendingNodeData->getNodeID().toRfc4122()); + } + return bytesWritten; +} + qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* listeningNodeData, const AvatarMixerClientData* sendingNodeData, NLPacketList& traitsPacketList) { @@ -96,9 +111,6 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis if (timeOfLastTraitsChange > timeOfLastTraitsSent) { // there is definitely new traits data to send - // add the avatar ID to mark the beginning of traits for this avatar - bytesWritten += traitsPacketList.write(sendingNodeData->getNodeID().toRfc4122()); - auto sendingAvatar = sendingNodeData->getAvatarSharedPointer(); // compare trait versions so we can see what exactly needs to go out @@ -116,7 +128,8 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis auto& lastAckedVersionRef = lastAckedVersions[traitType]; // hold sending more traits until we've been acked that the last one we sent was received - if (lastAckedVersionRef == lastSentVersionRef && lastReceivedVersions[traitType] > lastSentVersionRef) { + if (lastSentVersionRef == lastAckedVersionRef && lastReceivedVersions[traitType] > lastSentVersionRef) { + addTraitsNodeHeader(listeningNodeData, sendingNodeData, traitsPacketList, bytesWritten); // there is an update to this trait, add it to the traits packet bytesWritten += sendingAvatar->packTrait(traitType, traitsPacketList, lastReceivedVersion); // update the last sent version @@ -156,6 +169,7 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis }); if (!isDeleted && (sentInstanceIt == sentIDValuePairs.end() || receivedVersion > sentInstanceIt->value)) { + addTraitsNodeHeader(listeningNodeData, sendingNodeData, traitsPacketList, bytesWritten); // this instance version exists and has never been sent or is newer so we need to send it bytesWritten += sendingAvatar->packTraitInstance(traitType, instanceID, traitsPacketList, receivedVersion); @@ -166,6 +180,7 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis sentIDValuePairs.emplace_back(instanceID, receivedVersion); } } else if (isDeleted && sentInstanceIt != sentIDValuePairs.end() && absoluteReceivedVersion > sentInstanceIt->value) { + addTraitsNodeHeader(listeningNodeData, sendingNodeData, traitsPacketList, bytesWritten); // this instance version was deleted and we haven't sent the delete to this client yet bytesWritten += AvatarTraits::packInstancedTraitDelete(traitType, instanceID, traitsPacketList, absoluteReceivedVersion); @@ -177,10 +192,10 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis ++instancedReceivedIt; } - - // write a null trait type to mark the end of trait data for this avatar - bytesWritten += traitsPacketList.writePrimitive(AvatarTraits::NullTrait); - + if (bytesWritten) { + // write a null trait type to mark the end of trait data for this avatar + bytesWritten += traitsPacketList.writePrimitive(AvatarTraits::NullTrait); + } // since we send all traits for this other avatar, update the time of last traits sent // to match the time of last traits change listeningNodeData->setLastOtherAvatarTraitsSendPoint(otherNodeLocalID, timeOfLastTraitsChange); @@ -425,7 +440,6 @@ void AvatarMixerSlave::broadcastAvatarDataToAgent(const SharedNodePointer& node) int remainingAvatars = (int)sortedAvatars.size(); auto traitsPacketList = NLPacketList::create(PacketType::BulkAvatarTraits, QByteArray(), true, true); - traitsPacketList->writePrimitive(nodeData->nextTraitsMessageSequence()); auto avatarPacket = NLPacket::create(PacketType::BulkAvatarData); const int avatarPacketCapacity = avatarPacket->getPayloadCapacity(); @@ -558,6 +572,7 @@ void AvatarMixerSlave::broadcastAvatarDataToAgent(const SharedNodePointer& node) if (traitsPacketList->getNumPackets() >= 1) { // send the traits packet list + nodeList->sendPacketList(std::move(traitsPacketList), *destinationNode); } diff --git a/assignment-client/src/avatars/AvatarMixerSlave.h b/assignment-client/src/avatars/AvatarMixerSlave.h index 2ef90af38e..56c49b5b2e 100644 --- a/assignment-client/src/avatars/AvatarMixerSlave.h +++ b/assignment-client/src/avatars/AvatarMixerSlave.h @@ -104,6 +104,11 @@ private: int sendIdentityPacket(NLPacketList& packet, const AvatarMixerClientData* nodeData, const Node& destinationNode); int sendReplicatedIdentityPacket(const Node& agentNode, const AvatarMixerClientData* nodeData, const Node& destinationNode); + qint64 addTraitsNodeHeader(AvatarMixerClientData* listeningNodeData, + const AvatarMixerClientData* sendingNodeData, + NLPacketList& traitsPacketList, + qint64 bytesWritten); + qint64 addChangedTraitsToBulkPacket(AvatarMixerClientData* listeningNodeData, const AvatarMixerClientData* sendingNodeData, NLPacketList& traitsPacketList); diff --git a/libraries/networking/src/udt/PacketHeaders.cpp b/libraries/networking/src/udt/PacketHeaders.cpp index fad38d565b..5275c2c78e 100644 --- a/libraries/networking/src/udt/PacketHeaders.cpp +++ b/libraries/networking/src/udt/PacketHeaders.cpp @@ -96,6 +96,8 @@ PacketVersion versionForPacketType(PacketType packetType) { return 22; case PacketType::EntityQueryInitialResultsComplete: return static_cast(EntityVersion::ParticleSpin); + case PacketType::BulkAvatarTraitsAck: + return static_cast(AvatarMixerPacketVersion::AvatarTraitsAck); default: return 22; } diff --git a/libraries/networking/src/udt/PacketHeaders.h b/libraries/networking/src/udt/PacketHeaders.h index 508d46def8..5da3acdef9 100644 --- a/libraries/networking/src/udt/PacketHeaders.h +++ b/libraries/networking/src/udt/PacketHeaders.h @@ -299,7 +299,8 @@ enum class AvatarMixerPacketVersion : PacketVersion { MigrateSkeletonURLToTraits, MigrateAvatarEntitiesToTraits, FarGrabJointsRedux, - JointTransScaled + JointTransScaled, + AvatarTraitsAck }; enum class DomainConnectRequestVersion : PacketVersion { From 1da179dc04973c7c5b3d7d8055d97e55ad46230e Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Thu, 27 Dec 2018 00:13:45 -0800 Subject: [PATCH 034/230] Update avatar packager styling --- .../resources/images/loader-snake-128.png | Bin 0 -> 463 bytes .../resources/qml/hifi/AvatarPackager.qml | 1 + .../qml/hifi/avatarPackager/AvatarProject.qml | 159 +++++++++++++++--- .../avatarPackager/AvatarProjectUpload.qml | 94 +++++++---- .../avatarPackager/AvatarUploadStatusItem.qml | 96 +++++++++++ .../qml/hifi/avatarPackager/LoadingCircle.qml | 20 +++ .../qml/hifi/avatarapp/MessageBox.qml | 16 ++ interface/src/avatar/AvatarProject.h | 3 +- .../src/avatar/MarketplaceItemUploader.cpp | 23 ++- .../src/avatar/MarketplaceItemUploader.h | 6 +- libraries/fbx/src/FST.cpp | 5 + libraries/fbx/src/FST.h | 6 +- 12 files changed, 368 insertions(+), 61 deletions(-) create mode 100644 interface/resources/images/loader-snake-128.png create mode 100644 interface/resources/qml/hifi/avatarPackager/AvatarUploadStatusItem.qml create mode 100644 interface/resources/qml/hifi/avatarPackager/LoadingCircle.qml diff --git a/interface/resources/images/loader-snake-128.png b/interface/resources/images/loader-snake-128.png new file mode 100644 index 0000000000000000000000000000000000000000..b8ee57766488aed3627111d0dd6a1f0bb2a7dbaf GIT binary patch literal 463 zcmV;=0WkiFP)w!o@;$>0gGA+Fq)u?0a-$u1CxnfTGIa^5mSWSEh$GnaXjy&^`e zPrPbH%)n^08iN;ay=%^xyPw!L}2gYuE!%c-{nAkChx8*Uz>Z2ojhOq=5uHLPX`@xu3{>6{a~(gmcGG% zq9U~swXRF%aQMzSpPDWV0wFHD7~H-YW8$pIiA3Vu_ynabg<_e%Q|SNz002ovPDHLk FV1jQ+#bE#d literal 0 HcmV?d00001 diff --git a/interface/resources/qml/hifi/AvatarPackager.qml b/interface/resources/qml/hifi/AvatarPackager.qml index 0dea524991..46fd98daab 100644 --- a/interface/resources/qml/hifi/AvatarPackager.qml +++ b/interface/resources/qml/hifi/AvatarPackager.qml @@ -48,6 +48,7 @@ Windows.ScrollingWindow { id: popup anchors.fill: parent visible: false + closeOnClickOutside: true } Column { diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml index 81afacf28c..d4a67f31fb 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -19,35 +19,130 @@ Item { property int colorScheme; property var uploader: undefined; + property bool hasSuccessfullyUploaded: true; + visible: false anchors.fill: parent anchors.margins: 10 property var footer: Item { - id: uploadFooter - anchors.fill: parent - anchors.rightMargin: 17 - HifiControls.Button { - id: uploadButton - enabled: Account.loggedIn - //width: parent.width - //anchors.bottom: parent.bottom - anchors.verticalCenter: parent.verticalCenter - anchors.right: parent.right - text: qsTr("Upload") - color: hifi.buttons.blue - colorScheme: root.colorScheme - width: 133 - height: 40 - onClicked: function() { - if (AvatarPackagerCore.currentAvatarProject.fst.hasMarketplaceID()) { - showConfirmUploadPopup(uploadNew, uploadUpdate); - } else { + Item { + id: uploadFooter + + visible: !root.uploader || root.finished || root.uploader.state !== 4 + + anchors.fill: parent + anchors.rightMargin: 17 + + HifiControls.Button { + id: uploadButton + + visible: !AvatarPackagerCore.currentAvatarProject.fst.hasMarketplaceID && !root.hasSuccessfullyUploaded + enabled: Account.loggedIn + //width: parent.width + //anchors.bottom: parent.bottom + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + text: qsTr("Upload") + color: hifi.buttons.blue + colorScheme: root.colorScheme + width: 133 + height: 40 + onClicked: function() { uploadNew(); } } + HifiControls.Button { + id: updateButton + + visible: AvatarPackagerCore.currentAvatarProject.fst.hasMarketplaceID && !root.hasSuccessfullyUploaded + enabled: Account.loggedIn + + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + + text: qsTr("Update") + color: hifi.buttons.blue + colorScheme: root.colorScheme + width: 134 + height: 40 + onClicked: function() { + showConfirmUploadPopup(uploadNew, uploadUpdate); + } + } + Item { + anchors.fill: parent + visible: root.hasSuccessfullyUploaded + + HifiControls.Button { + enabled: Account.loggedIn + + anchors.verticalCenter: parent.verticalCenter + anchors.right: viewInInventoryButton.left + anchors.rightMargin: 16 + + text: qsTr("Update") + color: hifi.buttons.white + colorScheme: root.colorScheme + width: 134 + height: 40 + onClicked: function() { + showConfirmUploadPopup(uploadNew, uploadUpdate); + } + } + HifiControls.Button { + id: viewInInventoryButton + + enabled: Account.loggedIn + + width: 168 + height: 40 + + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + + text: qsTr("View in Inventory") + color: hifi.buttons.blue + colorScheme: root.colorScheme + + onClicked: AvatarPackagerCore.currentAvatarProject.openInInventory() + } + } + } + + Rectangle { + id: uploadingItemFooter + + anchors.fill: parent + anchors.topMargin: 1 + visible: !!root.uploader && !root.finished && root.uploader.state === 4 + + color: "#00B4EF" + + LoadingCircle { + id: runningImage + + anchors.verticalCenter: parent.verticalCenter + anchors.left: parent.left + anchors.leftMargin: 16 + + width: 28 + height: 28 + } + RalewayRegular { + id: stepText + + size: 20 + + anchors.verticalCenter: parent.verticalCenter + anchors.left: runningImage.right + anchors.leftMargin: 16 + + text: "Adding item to Inventory" + color: "white" + } } } @@ -66,7 +161,10 @@ Item { root.uploader.uploadProgress.connect(function(uploaded, total) { console.log("Uploader progress: " + uploaded + " / " + total); }); - root.uploader.finished.connect(function() { + root.uploader.completed.connect(function() { + root.hasSuccessfullyUploaded = true; + }); + root.uploader.finishedChanged.connect(function() { try { var response = JSON.parse(root.uploader.responseData); console.log("Uploader complete! " + response); @@ -121,6 +219,25 @@ Item { RalewayRegular { id: infoMessage + states: [ + State { + when: root.hasSuccessfullyUploaded + name: "upload-success" + PropertyChanges { + target: infoMessage + text: "Your avatar has been uploaded to our servers. You can modify the project files and update it again to make changes on the uploaded avatar." + } + }, + State { + name: "has-previous-success" + when: !!AvatarPackagerCore.currentAvatarProject && AvatarPackagerCore.currentAvatarProject.fst.hasMarketplaceID + PropertyChanges { + target: infoMessage + text: "Click \"Update\" to overwrite the hosted files and update the avatar in your inventory. You will have to “Wear” the avatar again to see changes." + } + } + ] + color: 'white' size: 20 @@ -132,7 +249,7 @@ Item { wrapMode: Text.Wrap - text: "Click \"Update\" to overwrite the hosted files and update the avatar in your inventory. You will have to “Wear” the avatar again to see changes." + text: "You can upload your files to our servers to always access them, and to make your avatar visible to other users." } HifiControls.Button { diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml index 6e011b1ec7..8b80df3d95 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml @@ -8,28 +8,35 @@ import QtQuick.Controls 2.2 as Original import "../../controlsUit" 1.0 as HifiControls import "../../stylesUit" 1.0 - Item { id: uploadingScreen property var root: undefined - //visible: !!root.uploader visible: false anchors.fill: parent Timer { id: backToProjectTimer - interval: 2000 + interval: 5000 running: false repeat: false - onTriggered: avatarPackager.state = "project" + onTriggered: { + if (avatarPackager.state =="project-upload") { + avatarPackager.state = "project" + } + } } + function stateChangedCallback(newState) { + if (newState >= 4) { + root.uploader.stateChanged.disconnect(stateChangedCallback) + backToProjectTimer.start(); + } + } onVisibleChanged: { - console.log("Visibility changed"); if (visible) { - root.uploader.finished.connect(function() { - console.log("Did complete"); + root.uploader.stateChanged.connect(stateChangedCallback); + root.uploader.finishedChanged.connect(function() { backToProjectTimer.start(); }); } @@ -46,48 +53,62 @@ Item { id: statusItem width: parent.width - height: 128 + height: 192 - AnimatedImage { + states: [ + State { + name: "success" + when: !!root.uploader && root.uploader.state >= 4 && root.uploader.error === 0 + PropertyChanges { target: uploadSpinner; visible: false } + PropertyChanges { target: errorIcon; visible: false } + PropertyChanges { target: successIcon; visible: true } + }, + State { + name: "error" + when: !!root.uploader && root.uploader.finished && root.uploader.error !== 0 + PropertyChanges { target: uploadSpinner; visible: false } + PropertyChanges { target: errorIcon; visible: true } + PropertyChanges { target: successIcon; visible: false } + } + ] + + LoadingCircle { id: uploadSpinner - visible: !!root.uploader && !root.uploader.complete + visible: true anchors { horizontalCenter: parent.horizontalCenter verticalCenter: parent.verticalCenter } - - source: "../../../icons/loader-snake-64-w.gif" - playing: true - z: 10000 } HiFiGlyphs { id: errorIcon - visible: !!root.uploader && root.uploader.complete && root.uploader.error !== 0 + + visible: false anchors { horizontalCenter: parent.horizontalCenter verticalCenter: parent.verticalCenter } - size: 128 + size: 164 text: "w" - color: "red" + color: "#EA4C5F" } HiFiGlyphs { id: successIcon - visible: !!root.uploader && root.uploader.complete && root.uploader.error === 0 + visible: false anchors { horizontalCenter: parent.horizontalCenter verticalCenter: parent.verticalCenter } - size: 128 + size: 164 text: "\ue01a" color: "#1FC6A6" } @@ -96,34 +117,49 @@ Item { id: statusRows anchors.top: statusItem.bottom + anchors.left: parent.left + anchors.leftMargin: 12 AvatarUploadStatusItem { id: statusCategories + uploader: root.uploader text: "Retreiving categories" - state: root.uploader.state == 1 ? "running" : (root.uploader.state > 1 ? "success" : (root.uploader.error ? "fail" : "")) + uploaderState: 1 } AvatarUploadStatusItem { id: statusUploading + uploader: root.uploader anchors.top: statusCategories.bottom text: "Uploading data" - state: root.uploader.state == 2 ? "running" : (root.uploader.state > 2 ? "success" : (root.uploader.error ? "fail" : "")) + uploaderState: 2 } - // TODO add waiting for response - //AvatarUploadStatusItem { - //id: statusResponse - //text: "Waiting for completion" - //} AvatarUploadStatusItem { - id: statusInventory + id: statusResponse + uploader: root.uploader anchors.top: statusUploading.bottom - text: "Waiting for inventory" + text: "Waiting for response" - state: root.uploader.state == 3 ? "running" : (root.uploader.state > 3 ? "success" : (root.uploader.error ? "fail" : "")) + uploaderState: 3 } } + RalewayRegular { + visible: root.uploader.error + + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: parent.bottom + anchors.leftMargin: 16 + anchors.rightMargin: 16 + anchors.bottomMargin: 16 + + size: 28 + wrapMode: Text.Wrap + color: "white" + text: "We couldn't upload your avatar at this time. Please try again later." + } } Column { diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarUploadStatusItem.qml b/interface/resources/qml/hifi/avatarPackager/AvatarUploadStatusItem.qml new file mode 100644 index 0000000000..d93afbd4e8 --- /dev/null +++ b/interface/resources/qml/hifi/avatarPackager/AvatarUploadStatusItem.qml @@ -0,0 +1,96 @@ +import QtQuick 2.6 +import QtQuick.Controls 2.2 +import QtQuick.Layouts 1.3 + +import "../../controlsUit" 1.0 as HifiControls +import "../../stylesUit" 1.0 + +Item { + id: root + + height: 48 + + property string text: "NO STEP TEXT" + property int uploaderState; + property var uploader; + + state: root.uploader.state > uploaderState + ? "success" + : (root.uploader.error !== 0 ? "fail" : (root.uploader.state === uploaderState ? "running" : "")) + + states: [ + State { + name: "running" + PropertyChanges { target: stepText; color: "white" } + PropertyChanges { target: runningImage; visible: true; playing: true } + }, + State { + name: "fail" + PropertyChanges { target: stepText; color: "#EA4C5F" } + PropertyChanges { target: failGlyph; visible: true } + }, + State { + name: "success" + PropertyChanges { target: stepText; color: "white" } + PropertyChanges { target: successGlyph; visible: true } + } + ] + + Item { + id: statusItem + + width: 48 + height: parent.height + + AnimatedImage { + id: runningImage + + visible: false + + anchors.verticalCenter: parent.verticalCenter + anchors.horizontalCenter: parent.horizontalCenter + + width: 32 + height: 32 + + source: "../../../icons/loader-snake-64-w.gif" + playing: false + } + HiFiGlyphs { + id: successGlyph + + visible: false + + width: implicitWidth + anchors.verticalCenter: parent.verticalCenter + anchors.horizontalCenter: parent.horizontalCenter + + size: 48 + text: "\ue01a" + color: "#1FC6A6" + } + HiFiGlyphs { + id: failGlyph + + visible: false + + width: implicitWidth + anchors.verticalCenter: parent.verticalCenter + anchors.horizontalCenter: parent.horizontalCenter + + size: 48 + text: "+" + color: "#EA4C5F" + } + } + RalewayRegular { + id: stepText + + anchors.left: statusItem.right + anchors.verticalCenter: parent.verticalCenter + + text: root.text + size: 28 + color: "#777777" + } +} \ No newline at end of file diff --git a/interface/resources/qml/hifi/avatarPackager/LoadingCircle.qml b/interface/resources/qml/hifi/avatarPackager/LoadingCircle.qml new file mode 100644 index 0000000000..f6ba81a96f --- /dev/null +++ b/interface/resources/qml/hifi/avatarPackager/LoadingCircle.qml @@ -0,0 +1,20 @@ +import QtQuick 2.6 +import QtQuick.Controls 2.2 +import QtQuick.Layouts 1.3 +import QtGraphicalEffects 1.0 + +Image { + id: root + + width: 128 + height: 128 + + source: "../../../images/loader-snake-128.png" + + RotationAnimation on rotation { + duration: 2000 + loops: Animation.Infinite + from: 0 + to: 360 + } +} \ No newline at end of file diff --git a/interface/resources/qml/hifi/avatarapp/MessageBox.qml b/interface/resources/qml/hifi/avatarapp/MessageBox.qml index 1834364fe4..88f7f888cb 100644 --- a/interface/resources/qml/hifi/avatarapp/MessageBox.qml +++ b/interface/resources/qml/hifi/avatarapp/MessageBox.qml @@ -23,6 +23,8 @@ Rectangle { property string button2color: hifi.buttons.blue; property string button2text: '' + property bool closeOnClickOutside: false; + property var onButton2Clicked; property var onButton1Clicked; property var onLinkClicked; @@ -56,6 +58,11 @@ Rectangle { anchors.fill: parent; propagateComposedEvents: false; hoverEnabled: true; + onClicked: { + if (closeOnClickOutside) { + root.close() + } + } } Rectangle { @@ -68,6 +75,15 @@ Rectangle { console.debug('mainContainer: height = ', height) } + MouseArea { + anchors.fill: parent; + propagateComposedEvents: false; + hoverEnabled: true; + onClicked: function(ev) { + ev.accepted = true; + } + } + anchors.centerIn: parent color: "white" diff --git a/interface/src/avatar/AvatarProject.h b/interface/src/avatar/AvatarProject.h index d5cd7762a1..6da9f710cc 100644 --- a/interface/src/avatar/AvatarProject.h +++ b/interface/src/avatar/AvatarProject.h @@ -34,7 +34,7 @@ class AvatarProject : public QObject { Q_PROPERTY(QString projectFolderPath READ getProjectPath) Q_PROPERTY(QString projectFSTPath READ getFSTPath) Q_PROPERTY(QString projectFBXPath READ getFBXPath) - Q_PROPERTY(QString name READ getProjectName) + Q_PROPERTY(QString name READ getProjectName NOTIFY nameChanged) public: Q_INVOKABLE MarketplaceItemUploader* upload(bool updateExisting); @@ -57,6 +57,7 @@ public: } signals: + void nameChanged(); void projectFilesChanged(); private: diff --git a/interface/src/avatar/MarketplaceItemUploader.cpp b/interface/src/avatar/MarketplaceItemUploader.cpp index 0a14ea9af4..31dcf8e9a0 100644 --- a/interface/src/avatar/MarketplaceItemUploader.cpp +++ b/interface/src/avatar/MarketplaceItemUploader.cpp @@ -39,6 +39,8 @@ MarketplaceItemUploader::MarketplaceItemUploader(QString title, } void MarketplaceItemUploader::setState(State newState) { + Q_ASSERT(_state != State::Complete); + Q_ASSERT(_error == Error::None); Q_ASSERT(newState != _state); qDebug() << "Setting uploader state to: " << newState; @@ -46,16 +48,17 @@ void MarketplaceItemUploader::setState(State newState) { emit stateChanged(newState); if (newState == State::Complete) { emit completed(); - emit finished(); + emit finishedChanged(); } } void MarketplaceItemUploader::setError(Error error) { + Q_ASSERT(_state != State::Complete); Q_ASSERT(_error == Error::None); _error = error; emit errorChanged(error); - emit finished(); + emit finishedChanged(); } void MarketplaceItemUploader::send() { @@ -179,7 +182,6 @@ void MarketplaceItemUploader::doUploadAvatar() { { "description", _description }, { "root_file_key", _rootFilename }, { "category_ids", QJsonArray({ 5 }) }, - //{ "attributions", QJsonArray({ QJsonObject{ { "name", "" }, { "link", "" } } }) }, { "license", 0 }, { "files", QString::fromLatin1(_fileData.toBase64()) } } } }; request.setHeader(QNetworkRequest::KnownHeaders::ContentTypeHeader, "application/json"); @@ -197,14 +199,21 @@ void MarketplaceItemUploader::doUploadAvatar() { reply = networkAccessManager.put(request, doc.toJson()); } - connect(reply, &QNetworkReply::uploadProgress, this, &MarketplaceItemUploader::uploadProgress); + connect(reply, &QNetworkReply::uploadProgress, this, [this](float bytesSent, float bytesTotal) { + if (_state == State::UploadingAvatar) { + emit uploadProgress(bytesSent, bytesTotal); + if (bytesSent >= bytesTotal) { + setState(State::WaitingForUploadResponse); + } + } + }); connect(reply, &QNetworkReply::finished, this, [this, reply]() { - //_responseData = reply->readAll(); + _responseData = reply->readAll(); + qWarning() << "Finished request " << _responseData; + auto error = reply->error(); if (error == QNetworkReply::NoError) { - _responseData = reply->readAll(); - qWarning() << "Finished request " << _responseData; auto doc = QJsonDocument::fromJson(_responseData.toLatin1()); auto status = doc.object()["status"].toString(); diff --git a/interface/src/avatar/MarketplaceItemUploader.h b/interface/src/avatar/MarketplaceItemUploader.h index 1b1589af96..4b8b675255 100644 --- a/interface/src/avatar/MarketplaceItemUploader.h +++ b/interface/src/avatar/MarketplaceItemUploader.h @@ -21,6 +21,8 @@ class QNetworkReply; class MarketplaceItemUploader : public QObject { Q_OBJECT + Q_PROPERTY(bool finished READ getFinished NOTIFY finishedChanged) + Q_PROPERTY(bool complete READ getComplete NOTIFY stateChanged) Q_PROPERTY(State state READ getState NOTIFY stateChanged) Q_PROPERTY(Error error READ getError NOTIFY errorChanged) @@ -38,6 +40,7 @@ public: Idle, GettingCategories, UploadingAvatar, + WaitingForUploadResponse, WaitingForInventory, Complete }; @@ -62,6 +65,7 @@ public: QUuid getMarketplaceID() const { return _marketplaceID; } Error getError() const { return _error; } + bool getFinished() const { return _state == State::Complete || _error != Error::None; } signals: void uploadProgress(qint64 bytesSent, qint64 bytesTotal); @@ -71,7 +75,7 @@ signals: void errorChanged(Error error); // Triggered when the upload has finished, either succesfully completing, or stopping with an error - void finished(); + void finishedChanged(); private: void doGetCategories(); diff --git a/libraries/fbx/src/FST.cpp b/libraries/fbx/src/FST.cpp index af00428a51..f0e444ba33 100644 --- a/libraries/fbx/src/FST.cpp +++ b/libraries/fbx/src/FST.cpp @@ -175,3 +175,8 @@ bool FST::write() { fst.write(FSTReader::writeMapping(getMapping())); return true; } + +void FST::setMarketplaceID(QUuid marketplaceID) { + _marketplaceID = marketplaceID; + emit marketplaceIDChanged(); +} diff --git a/libraries/fbx/src/FST.h b/libraries/fbx/src/FST.h index 813d4f3bc5..6fd654987e 100644 --- a/libraries/fbx/src/FST.h +++ b/libraries/fbx/src/FST.h @@ -24,6 +24,7 @@ class FST : public QObject { Q_PROPERTY(QString name READ getName WRITE setName NOTIFY nameChanged) Q_PROPERTY(QString modelPath READ getModelPath WRITE setModelPath NOTIFY modelPathChanged) Q_PROPERTY(QUuid marketplaceID READ getMarketplaceID) + Q_PROPERTY(bool hasMarketplaceID READ getHasMarketplaceID NOTIFY marketplaceIDChanged) public: FST(const QString& fstPath, QVariantHash data); @@ -37,9 +38,9 @@ public: QString getModelPath() const { return _modelPath; } void setModelPath(const QString& modelPath); - Q_INVOKABLE bool hasMarketplaceID() const { return !_marketplaceID.isNull(); } + Q_INVOKABLE bool getHasMarketplaceID() const { return !_marketplaceID.isNull(); } QUuid getMarketplaceID() const { return _marketplaceID; } - void setMarketplaceID(QUuid marketplaceID) { _marketplaceID = marketplaceID; } + void setMarketplaceID(QUuid marketplaceID); QStringList getScriptPaths() const { return _scriptPaths; } void setScriptPaths(QStringList scriptPaths) { _scriptPaths = scriptPaths; } @@ -53,6 +54,7 @@ public: signals: void nameChanged(const QString& name); void modelPathChanged(const QString& modelPath); + void marketplaceIDChanged(); private: QString _fstPath; From 2f32458f72311a694e479325c2dfe4a2cdaea4c4 Mon Sep 17 00:00:00 2001 From: Thijs Wenker Date: Thu, 27 Dec 2018 19:52:56 +0100 Subject: [PATCH 035/230] recent projects --- .../resources/qml/hifi/AvatarPackager.qml | 29 ++++++- .../avatarPackager/AvatarPackagerHeader.qml | 1 + .../hifi/avatarPackager/AvatarProjectCard.qml | 85 +++++++++++++++++++ .../avatarPackager/AvatarProjectUpload.qml | 2 +- .../avatarPackager/CreateAvatarProject.qml | 50 ++++++----- .../avatarPackager/ProjectInputControl.qml | 1 + interface/src/avatar/AvatarPackager.cpp | 31 +++++++ interface/src/avatar/AvatarPackager.h | 68 +++++++++++++++ interface/src/avatar/AvatarProject.cpp | 11 +-- interface/src/avatar/AvatarProject.h | 15 ++-- .../src/avatar/MarketplaceItemUploader.cpp | 4 +- 11 files changed, 259 insertions(+), 38 deletions(-) create mode 100644 interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml diff --git a/interface/resources/qml/hifi/AvatarPackager.qml b/interface/resources/qml/hifi/AvatarPackager.qml index 46fd98daab..686bdd28da 100644 --- a/interface/resources/qml/hifi/AvatarPackager.qml +++ b/interface/resources/qml/hifi/AvatarPackager.qml @@ -33,7 +33,7 @@ Windows.ScrollingWindow { id: modalOverlay anchors.fill: parent z: 20 - color: "#aa031b33" + color: "#a15d5d5d" visible: false // This mouse area captures the cursor events while the modalOverlay is active @@ -70,7 +70,7 @@ Windows.ScrollingWindow { }, State { name: AvatarPackagerState.project - PropertyChanges { target: avatarPackagerHeader; title: AvatarPackagerCore.currentAvatarProject.name } + PropertyChanges { target: avatarPackagerHeader; title: AvatarPackagerCore.currentAvatarProject.name; canRename: true } PropertyChanges { target: avatarProject; visible: true } PropertyChanges { target: avatarPackagerFooter; content: avatarProject.footer } }, @@ -136,6 +136,7 @@ Windows.ScrollingWindow { text: qsTr("New Project") colorScheme: root.colorScheme onClicked: { + createAvatarProject.clearInputs(); avatarPackager.state = AvatarPackagerState.createProject; } } @@ -173,7 +174,10 @@ Windows.ScrollingWindow { } } } + + Flow { + visible: AvatarPackagerCore.recentProjects.length === 0 anchors { fill: parent topMargin: 18 @@ -190,6 +194,27 @@ Windows.ScrollingWindow { color: "white" text: qsTr("To learn more about using this tool, visit our docs") } + + + } + + Column { + visible: AvatarPackagerCore.recentProjects.length > 0 + anchors { + fill: parent + topMargin: 18 + leftMargin: 16 + rightMargin: 16 + } + spacing: 10 + + Repeater { + model: AvatarPackagerCore.recentProjects + AvatarProjectCard { + title: modelData.name + path: modelData.path + } + } } } } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml index 84096e352c..663d4d0f3a 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml @@ -13,6 +13,7 @@ Rectangle { property alias title: title.text property alias faqEnabled: faq.visible property alias backButtonEnabled: back.visible + property bool canRename: false; signal backButtonClicked RalewaySemiBold { diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml new file mode 100644 index 0000000000..be1363850e --- /dev/null +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml @@ -0,0 +1,85 @@ +import QtQuick 2.0 + +import "../../controlsUit" 1.0 as HifiControls +import "../../stylesUit" 1.0 + + +Item { + id: projectCard + height: 80 + width: parent.width + + property alias title: title.text + property alias path: path.text + + property color textColor: "#E3E3E3" + property color hoverTextColor: "#121212" + property color pressedTextColor: "#121212" + + property color backgroundColor: "#121212" + property color hoverBackgroundColor: "#E3E3E3" + property color pressedBackgroundColor: "#6A6A6A" + + state: mouseArea.pressed ? "pressed" : (mouseArea.containsMouse ? "hover" : "normal") + states: [ + State { + name: "normal" + PropertyChanges { target: background; color: backgroundColor } + PropertyChanges { target: title; color: textColor } + PropertyChanges { target: path; color: textColor } + }, + State { + name: "hover" + PropertyChanges { target: background; color: hoverBackgroundColor } + PropertyChanges { target: title; color: hoverTextColor } + PropertyChanges { target: path; color: hoverTextColor } + }, + State { + name: "pressed" + PropertyChanges { target: background; color: pressedBackgroundColor } + PropertyChanges { target: title; color: pressedTextColor } + PropertyChanges { target: path; color: pressedTextColor } + } + ] + + Rectangle { + id: background + width: parent.width + height: parent.height + color: "#121212" + radius: 4 + + RalewayBold { + id: title + anchors { + top: parent.top + topMargin: 13 + left: parent.left + leftMargin: 16 + } + text: "" + size: 16 + } + + RalewayRegular { + id: path + anchors { + top: title.bottom + left: parent.left + leftMargin: 32 + } + text: "<path missing>" + size: 20 + } + + MouseArea { + id: mouseArea + anchors.fill: parent + hoverEnabled: true + onClicked: { + AvatarPackagerCore.openAvatarProject(path.text); + avatarPackager.state = "project"; + } + } + } +} diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml index 8b80df3d95..e71d8a4f2f 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml @@ -178,4 +178,4 @@ Item { } } -} \ No newline at end of file +} diff --git a/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml index 41d33e6058..a5d335feba 100644 --- a/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml @@ -22,9 +22,10 @@ Item { height: 30 width: 133 text: qsTr("Create") + enabled: false onClicked: { if (!AvatarPackagerCore.createAvatarProject(projectLocation.text, name.text, avatarModel.text, textureFolder.text)) { - Window.alert('Failed to create project') + Window.alert('Failed to create project'); return; } avatarPackager.state = AvatarPackagerState.project; @@ -37,21 +38,39 @@ Item { height: parent.height width: parent.width + function clearInputs() { + name.text = projectLocation.text = avatarModel.text = textureFolder.text = ""; + } - property var errorMessages: QtObject { - readonly property string fileExists: "A folder with that name already exists at that location. Please choose a different project name or location." + function checkErrors() { + let newErrorMessageText = ""; + + let projectName = name.text; + let projectFolder = projectLocation.text; + + let hasProjectNameError = projectName !== "" && projectFolder !== "" && !AvatarPackagerCore.isValidNewProjectName(projectFolder, projectName); + + if (hasProjectNameError) { + newErrorMessageText = "A folder with that name already exists at that location. Please choose a different project name or location."; + } + + name.error = projectLocation.error = hasProjectNameError; + errorMessage.text = newErrorMessageText; + createButton.enabled = newErrorMessageText === "" && requiredFieldsFilledIn(); + } + + function requiredFieldsFilledIn() { + return name.text !== "" && projectLocation.text !== "" && avatarModel.text !== ""; } RalewayRegular { id: errorMessage visible: text !== "" text: "" - color: "#EA4C5F"; + color: "#EA4C5F" wrapMode: Text.WordWrap size: 20 anchors { - top: createAvatarColumns.bottom - bottom: parent.bottom left: parent.left right: parent.right } @@ -59,6 +78,7 @@ Item { Column { id: createAvatarColumns + anchors.top: errorMessage.visible ? errorMessage.bottom : parent.top anchors.left: parent.left anchors.right: parent.right anchors.margins: 10 @@ -71,6 +91,7 @@ Item { id: name label: "Name" colorScheme: root.colorScheme + onTextChanged: checkErrors() } ProjectInputControl { @@ -81,9 +102,7 @@ Item { browseFolder: true browseDir: text !== "" ? fileDialogHelper.pathToUrl(text) : createAvatarColumns.defaultFileBrowserPath browseTitle: "Project Location" - onTextChanged: { - //TODO: valid folder? Does project with name exist here already? - } + onTextChanged: checkErrors() } ProjectInputControl { @@ -95,25 +114,18 @@ Item { browseDir: text !== "" ? fileDialogHelper.pathToUrl(text) : createAvatarColumns.defaultFileBrowserPath browseFilter: "Avatar Model File (*.fbx)" browseTitle: "Open Avatar Model (.fbx)" - onTextChanged: { - if (avatarModel.text !== "") { - textureFolder.browseDir = fileDialogHelper.pathToUrl(avatarModel.text.split('/')[0]); - } - } + onTextChanged: checkErrors() } ProjectInputControl { id: textureFolder - label: "Specify Texture Folder" + label: "Specify Texture Folder <i> - optional</i>" colorScheme: root.colorScheme browseEnabled: true browseFolder: true browseDir: text !== "" ? fileDialogHelper.pathToUrl(text) : createAvatarColumns.defaultFileBrowserPath browseTitle: "Texture Folder" - onTextChanged: { - //TODO: valid folder? - - } + onTextChanged: checkErrors() } } diff --git a/interface/resources/qml/hifi/avatarPackager/ProjectInputControl.qml b/interface/resources/qml/hifi/avatarPackager/ProjectInputControl.qml index 664acd6f22..2ac4a37d02 100644 --- a/interface/resources/qml/hifi/avatarPackager/ProjectInputControl.qml +++ b/interface/resources/qml/hifi/avatarPackager/ProjectInputControl.qml @@ -22,6 +22,7 @@ Column { property string browseTitle: "Open file" property string browseDir: "" property alias text: input.text + property alias error: input.error property int colorScheme diff --git a/interface/src/avatar/AvatarPackager.cpp b/interface/src/avatar/AvatarPackager.cpp index c7f15d616c..d8aadeb4e0 100644 --- a/interface/src/avatar/AvatarPackager.cpp +++ b/interface/src/avatar/AvatarPackager.cpp @@ -31,6 +31,8 @@ AvatarPackager::AvatarPackager() { qRegisterMetaType<AvatarProject*>(); }); + recentProjectsFromVariantList(_recentProjectsSetting.get()); + QDir defaultProjectsDir(AvatarProject::getDefaultProjectsPath()); defaultProjectsDir.mkpath("."); } @@ -50,17 +52,46 @@ AvatarProject* AvatarPackager::openAvatarProject(const QString& avatarProjectFST _currentAvatarProject->deleteLater(); } _currentAvatarProject = AvatarProject::openAvatarProject(avatarProjectFSTPath); + if (_currentAvatarProject) { + addRecentProject(avatarProjectFSTPath, _currentAvatarProject->getProjectName()); + } qDebug() << "_currentAvatarProject has" << (QQmlEngine::objectOwnership(_currentAvatarProject) == QQmlEngine::CppOwnership ? "CPP" : "JS") << "OWNERSHIP"; QQmlEngine::setObjectOwnership(_currentAvatarProject, QQmlEngine::CppOwnership); emit avatarProjectChanged(); return _currentAvatarProject; } +void AvatarPackager::addRecentProject(QString fstPath, QString projectName) { + const int MAX_RECENT_PROJECTS = 5; + auto removeProjects = QVector<RecentAvatarProject>(); + for (auto project : _recentProjects) { + if (project.getProjectFSTPath() == fstPath) { + removeProjects.append(project); + } + } + for (const auto removeProject : removeProjects) { + _recentProjects.removeOne(removeProject); + } + + RecentAvatarProject newRecentProject = RecentAvatarProject(projectName, fstPath); + _recentProjects.prepend(newRecentProject); + + while (_recentProjects.size() > MAX_RECENT_PROJECTS) { + _recentProjects.pop_back(); + } + + _recentProjectsSetting.set(recentProjectsToVariantList()); + emit recentProjectsChanged(); +} + AvatarProject* AvatarPackager::createAvatarProject(const QString& projectsFolder, const QString& avatarProjectName, const QString& avatarModelPath, const QString& textureFolder) { if (_currentAvatarProject) { _currentAvatarProject->deleteLater(); } _currentAvatarProject = AvatarProject::createAvatarProject(projectsFolder, avatarProjectName, avatarModelPath, textureFolder); + if (_currentAvatarProject) { + addRecentProject(_currentAvatarProject->getFSTPath(), _currentAvatarProject->getProjectName()); + } qDebug() << "_currentAvatarProject has" << (QQmlEngine::objectOwnership(_currentAvatarProject) == QQmlEngine::CppOwnership ? "CPP" : "JS") << "OWNERSHIP"; QQmlEngine::setObjectOwnership(_currentAvatarProject, QQmlEngine::CppOwnership); emit avatarProjectChanged(); diff --git a/interface/src/avatar/AvatarPackager.h b/interface/src/avatar/AvatarPackager.h index 13a42a73d0..8cf641dbaa 100644 --- a/interface/src/avatar/AvatarPackager.h +++ b/interface/src/avatar/AvatarPackager.h @@ -19,27 +19,95 @@ #include "FileDialogHelper.h" #include "avatar/AvatarProject.h" +#include "SettingHandle.h" + +class RecentAvatarProject { +public: + RecentAvatarProject() { + + } + + RecentAvatarProject(QString projectName, QString projectFSTPath) { + _projectName = projectName; + _projectFSTPath = projectFSTPath; + } + RecentAvatarProject(const RecentAvatarProject& other) { + _projectName = other._projectName; + _projectFSTPath = other._projectFSTPath; + } + + QString getProjectName() const { return _projectName; } + + QString getProjectFSTPath() const { return _projectFSTPath; } + + bool operator==(const RecentAvatarProject& other) const { + return _projectName == other._projectName && _projectFSTPath == other._projectFSTPath; + } + +private: + QString _projectName; + QString _projectFSTPath; + +}; + +inline QDebug operator<<(QDebug debug, const RecentAvatarProject& recentAvatarProject) { + debug << "[recentAvatarProject:" << recentAvatarProject.getProjectFSTPath() << "]"; + return debug; +} + +Q_DECLARE_METATYPE(RecentAvatarProject); + +Q_DECLARE_METATYPE(QVector<RecentAvatarProject>); class AvatarPackager : public QObject, public Dependency { Q_OBJECT SINGLETON_DEPENDENCY Q_PROPERTY(AvatarProject* currentAvatarProject READ getAvatarProject NOTIFY avatarProjectChanged) Q_PROPERTY(QString AVATAR_PROJECTS_PATH READ getAvatarProjectsPath CONSTANT) + Q_PROPERTY(QVariantList recentProjects READ getRecentProjects NOTIFY recentProjectsChanged) public: AvatarPackager(); bool open(); Q_INVOKABLE AvatarProject* createAvatarProject(const QString& projectsFolder, const QString& avatarProjectName, const QString& avatarModelPath, const QString& textureFolder); Q_INVOKABLE AvatarProject* openAvatarProject(const QString& avatarProjectFSTPath); + Q_INVOKABLE bool isValidNewProjectName(const QString& projectPath, const QString& projectName) { return AvatarProject::isValidNewProjectName(projectPath, projectName); } signals: void avatarProjectChanged(); + void recentProjectsChanged(); private: Q_INVOKABLE AvatarProject* getAvatarProject() const { return _currentAvatarProject; }; Q_INVOKABLE QString getAvatarProjectsPath() const { return AvatarProject::getDefaultProjectsPath(); } + Q_INVOKABLE QVariantList getRecentProjects() { return recentProjectsToVariantList(); } + + void addRecentProject(QString fstPath, QString projectName); AvatarProject* _currentAvatarProject{ nullptr }; + QVector<RecentAvatarProject> _recentProjects; + QVariantList recentProjectsToVariantList() { + QVariantList result; + for (const auto& project : _recentProjects) { + QVariantMap projectVariant; + projectVariant.insert("name", project.getProjectName()); + projectVariant.insert("path", project.getProjectFSTPath()); + result.append(projectVariant); + } + + return result; + } + + void recentProjectsFromVariantList(QVariantList projectsVariant) { + _recentProjects.clear(); + for (const auto& projectVariant : projectsVariant) { + auto map = projectVariant.toMap(); + _recentProjects.append(RecentAvatarProject(map.value("name").toString(), map.value("path").toString())); + } + } + + + Setting::Handle<QVariantList> _recentProjectsSetting{ "io.highfidelity.avatarPackager.recentProjects", QVariantList() }; }; #endif // hifi_AvatarPackager_h diff --git a/interface/src/avatar/AvatarProject.cpp b/interface/src/avatar/AvatarProject.cpp index 2a2ec7c1cb..038ded64d8 100644 --- a/interface/src/avatar/AvatarProject.cpp +++ b/interface/src/avatar/AvatarProject.cpp @@ -15,13 +15,11 @@ #include <QFile> #include <QFileInfo> -#include <QDebug> #include <QQmlEngine> #include <QTimer> #include "FBXSerializer.h" #include <ui/TabletScriptingInterface.h> -#include <graphics/TextureMap.h> #include "scripting/HMDScriptingInterface.h" AvatarProject* AvatarProject::openAvatarProject(const QString& path) { @@ -38,7 +36,7 @@ AvatarProject* AvatarProject::openAvatarProject(const QString& path) { } AvatarProject* AvatarProject::createAvatarProject(const QString& projectsFolder, const QString& avatarProjectName, const QString& avatarModelPath, const QString& textureFolder) { - if (!isValidNewProjectName(avatarProjectName)) { + if (!isValidNewProjectName(projectsFolder, avatarProjectName)) { return nullptr; } QDir projectDir(projectsFolder + "/" + avatarProjectName); @@ -135,8 +133,11 @@ QStringList AvatarProject::getScriptPaths(const QDir& scriptsDir) { return result; } -bool AvatarProject::isValidNewProjectName(const QString& projectName) { - QDir dir(getDefaultProjectsPath() + "/" + projectName); +bool AvatarProject::isValidNewProjectName(const QString& projectPath, const QString& projectName) { + if (projectPath.trimmed().isEmpty() || projectName.trimmed().isEmpty()) { + return false; + } + QDir dir(projectPath + "/" + projectName); return !dir.exists(); } diff --git a/interface/src/avatar/AvatarProject.h b/interface/src/avatar/AvatarProject.h index 6da9f710cc..506dd7d40b 100644 --- a/interface/src/avatar/AvatarProject.h +++ b/interface/src/avatar/AvatarProject.h @@ -17,12 +17,9 @@ #include "ProjectFile.h" #include "FST.h" -#include <QDir> #include <QObject> #include <QDir> -#include <QFileInfo> #include <QVariantHash> -#include <QUuid> #include <QStandardPaths> class AvatarProject : public QObject { @@ -41,6 +38,11 @@ public: Q_INVOKABLE void openInInventory(); Q_INVOKABLE QStringList getProjectFiles() const; + Q_INVOKABLE QString getProjectName() const { return _fst->getName(); } + Q_INVOKABLE QString getProjectPath() const { return _projectPath; } + Q_INVOKABLE QString getFSTPath() const { return _fst->getPath(); } + Q_INVOKABLE QString getFBXPath() const { return _fst->getModelPath(); } + /** * returns the AvatarProject or a nullptr on failure. */ @@ -50,7 +52,7 @@ public: const QString& avatarModelPath, const QString& textureFolder); - static bool isValidNewProjectName(const QString& projectName); + static bool isValidNewProjectName(const QString& projectPath, const QString& projectName); static QString getDefaultProjectsPath() { return QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation) + "/High Fidelity Projects"; @@ -66,11 +68,6 @@ private: ~AvatarProject() { _fst->deleteLater(); } - Q_INVOKABLE QString getProjectName() const { return _fst->getName(); } - Q_INVOKABLE QString getProjectPath() const { return _projectPath; } - Q_INVOKABLE QString getFSTPath() const { return _fst->getPath(); } - Q_INVOKABLE QString getFBXPath() const { return _fst->getModelPath(); } - FST* getFST() { return _fst; } void refreshProjectFiles(); diff --git a/interface/src/avatar/MarketplaceItemUploader.cpp b/interface/src/avatar/MarketplaceItemUploader.cpp index 31dcf8e9a0..ebb3ccdf53 100644 --- a/interface/src/avatar/MarketplaceItemUploader.cpp +++ b/interface/src/avatar/MarketplaceItemUploader.cpp @@ -15,8 +15,8 @@ #include <DependencyManager.h> #include <QBuffer> -#include <quazip5\quazip.h> -#include <quazip5\quazipfile.h> +#include <quazip5/quazip.h> +#include <quazip5/quazipfile.h> #include <qtimer.h> #include <QFile> From af65e59ba3c52c3454584e388e2f31f0228eacd2 Mon Sep 17 00:00:00 2001 From: howard-stearns <howard@highfidelity.io> Date: Thu, 27 Dec 2018 14:34:59 -0500 Subject: [PATCH 036/230] Recognize data: URLs in Web entities. --- libraries/entities-renderer/src/RenderableWebEntityItem.cpp | 1 + libraries/networking/src/NetworkingConstants.h | 1 + 2 files changed, 2 insertions(+) diff --git a/libraries/entities-renderer/src/RenderableWebEntityItem.cpp b/libraries/entities-renderer/src/RenderableWebEntityItem.cpp index 476372160e..2942de0ba4 100644 --- a/libraries/entities-renderer/src/RenderableWebEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableWebEntityItem.cpp @@ -55,6 +55,7 @@ WebEntityRenderer::ContentType WebEntityRenderer::getContentType(const QString& const QUrl url(urlString); auto scheme = url.scheme(); if (scheme == HIFI_URL_SCHEME_ABOUT || scheme == HIFI_URL_SCHEME_HTTP || scheme == HIFI_URL_SCHEME_HTTPS || + scheme == URL_SCHEME_DATA || urlString.toLower().endsWith(".htm") || urlString.toLower().endsWith(".html")) { return ContentType::HtmlContent; } diff --git a/libraries/networking/src/NetworkingConstants.h b/libraries/networking/src/NetworkingConstants.h index 302e0efa02..117a41c976 100644 --- a/libraries/networking/src/NetworkingConstants.h +++ b/libraries/networking/src/NetworkingConstants.h @@ -33,6 +33,7 @@ namespace NetworkingConstants { const QString HIFI_URL_SCHEME_ABOUT = "about"; const QString URL_SCHEME_HIFI = "hifi"; const QString URL_SCHEME_HIFIAPP = "hifiapp"; +const QString URL_SCHEME_DATA = "data"; const QString URL_SCHEME_QRC = "qrc"; const QString HIFI_URL_SCHEME_FILE = "file"; const QString HIFI_URL_SCHEME_HTTP = "http"; From 882975f01ca90aa24ba8012b34b357b41ee61cbf Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Thu, 27 Dec 2018 12:43:43 -0800 Subject: [PATCH 037/230] Update icons in avatar packager --- .../resources/icons/checkmark-stroke.svg | 4 +++ .../resources/icons/loader-snake-256-wf.gif | Bin 0 -> 27304 bytes .../resources/icons/loader-snake-256.gif | Bin 0 -> 26070 bytes .../qml/hifi/avatarPackager/AvatarProject.qml | 8 ++++-- .../hifi/avatarPackager/AvatarProjectCard.qml | 1 + .../avatarPackager/AvatarProjectUpload.qml | 25 +++++++++++------- .../avatarPackager/AvatarUploadStatusItem.qml | 15 +++++------ .../qml/hifi/avatarPackager/LoadingCircle.qml | 14 ++++------ 8 files changed, 37 insertions(+), 30 deletions(-) create mode 100644 interface/resources/icons/checkmark-stroke.svg create mode 100644 interface/resources/icons/loader-snake-256-wf.gif create mode 100644 interface/resources/icons/loader-snake-256.gif diff --git a/interface/resources/icons/checkmark-stroke.svg b/interface/resources/icons/checkmark-stroke.svg new file mode 100644 index 0000000000..cc343c421b --- /dev/null +++ b/interface/resources/icons/checkmark-stroke.svg @@ -0,0 +1,4 @@ +<svg width="149" height="150" viewBox="0 0 149 150" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path fill-rule="evenodd" clip-rule="evenodd" d="M74.3055 0C115.543 0 149 33.5916 149 74.6047C149 116.008 115.543 149.6 74.3055 149.6C33.4569 149.6 0 116.008 0 74.6047C0 33.5916 33.4569 0 74.3055 0ZM74.3055 139.054C109.708 139.054 138.496 110.149 138.496 74.6047C138.496 39.4507 109.708 10.5462 74.3055 10.5462C39.2924 10.5462 10.5039 39.4507 10.5039 74.6047C10.5039 110.149 39.2924 139.054 74.3055 139.054Z" fill="#1FC6A6"/> +<path fill-rule="evenodd" clip-rule="evenodd" d="M65.3575 89.8376L106.595 43.3562C110.874 38.2784 119.044 45.3092 114.376 50.387L70.0259 100.384C68.0807 102.727 64.9684 102.727 63.0233 101.165L35.0128 78.9008C29.9554 74.6042 36.569 66.4016 41.6264 70.6982L65.3575 89.8376Z" fill="#1FC6A6"/> +</svg> diff --git a/interface/resources/icons/loader-snake-256-wf.gif b/interface/resources/icons/loader-snake-256-wf.gif new file mode 100644 index 0000000000000000000000000000000000000000..c0d5eec1ef6b83e3994bdaa1ee6e033e6e32f78d GIT binary patch literal 27304 zcmeIbcUV)~x-Jf=NJmlWU3%{&G!;d<3W#*2rILhR0s^A+4$^z?y%(_o(osNqFCh>J zy+iyxuC?pEd!Mt{x$B(!yXUOrpFGJNb7qe3eaHKaZ#?6j4>i=}<ShvZ2?)0de!hPE z_`z{<ne++)0Rab|=Yb8x+17^L4dM)Dw?%;<KoM&soE?d<gCK0#A8M$v!!2R9jszS( z$aNnW=&Rm+{6IoP>=NP6#y`k4;Fcg;9ZL|z8b$@Ogu^YB#6+Z|f4+bI>JGPOx3P4# zbcfsjP;s}nw1(L_vs>AMAP6PSt(Nzk><}9z&S%m(VmkJ!wqS@l%F$LIrE6e~f?3Pk zaH=S?E4l;R;r4K6OLlj-9l{CVuEc3+gS4^*Ae;bjTW3pAPWE4paE2*y-u?LlyOGXg zc2%UKExWXcjIg!1lmxr1yok7rn7o9P5W9q!xU8s{tf;u8u$VYNOa>q+&;F+ur?R4> z4G^GrU+qtqa<l;|ae|$l?E#{qZf<TOZX!rWkf^x4yu7HGgs6msu%iu7*vSLoZ0RnH zaJtQ@%>K&>?%O(9J3{Q8AxH$fBM@L|g>-RN;^bui@uwSr+w183<-7<dkza1-XOD}z zTiT0?i-?KB;Xm){m)mu6*0cTVzxanoI~my9it5=qAzd7;ZS`z{xBuMM9d7?`U+3q6 z_BuL%M~)B>1Yv1+A8G9Zw?#N>+*jgshue$TKx_a&pq03#xEN5_Qcg}>Sl(JnPS{FX zMpD>DURnw$X(eqfZvE%e{G;YFa+31*BxPmQ?#ldlATItu?%q9l>3iZ*Qupsk+`B6- z_vf}62q$MtgthITFAag%{JE`++Fh9ke`zW4_e}w+j<%N0NJj%C((caycnn55Bb|`; z?5e6i<1NR|_Y8utLAp8d{|wQuw|w8$5#nlVqvnW&v;We^0LVZ12ja4l@-||YR>Bgp zGC*MoODQX1c}Zz;VQXt?F$sBFIU9Ky`9C$c`J2A`6`(dqYlscN9*jgffsytAu^-lQ zHkOvMGQzSzF&SZLnV&srD=sH2XA6{<wUV&1v9z?}6jf$d6#WUqzd_NTztX#}_VeSf zgs^qCRAyKF3#DukHcFh1oGQwMKkyglXQwAehX?z6yF1%kxXlgh`Wj{xy|TQtxG+CA zJ2O2sIWayq`h8@0=-b!9f&RYUp6;$MogM9;KYjf0zU^IWOLJ3WLw#LsO?6deMR{3i zNpVqOL4ICtPIgviMtWLmN^(+SLVVoY*qG?3$cXT;(2(GuzySX@ul-*6`gp(e@<e&K zySchJJ2^VoBN1>r7!(2q0fDwQ)>f7;o?DoknVJ|IJu`f2ps)Aj@grRwZ7od=^@nN? z?yKIrdq+iCNl^hHFDEM_EhQ--E+#4>EF>tv&&SKd&2^iTgPo0)g_((wfu4@`*3BC< z*RN4iQBshTk&;{`zH<2z5g`GA&@Uq#Aps!)5&lhNQST;oPHOFBXw7Wv8Fj#-dOSKf zf4!$3NB(73d+acL^>p9}PfbA<*q*%;q%Dxpm%m3Eu30crd=SzPZI~`UBBu)dvRr)< zrdu+$QGZ4m*}J;md=W8-JvwjuK~2vmr)~sx4@xX->>9@$lQ8hhYZya3f|H7xx+m67 zNErnHnkG<GNOEy=&*b_k8Iz!bmMP3LG^M1acM5w(&Mc&;ZD!{cmRj1{H@$IA!6K}r zV-9~Ao>um*e`fQ7l2t@m*8<@kkzU?5FpI-ev5BfYdXDso%&2%jIJfnKS}gO!tIOn! zia}yopZqD90A3{G+3mqM1x;Fm#B(|e!kHCN=OhxjUC~@x$%?@ec|CDLrp;cYlKFi} zQn1O^V9A1kG)2$Tb5g0ouUYp)8I?k$iiYyEQ+UX(`Lc}^>0_U~3wg>iT4q+0jU}tc zj#b(eMF^W73Qbl*$3mo6Wj31{?N*1bz>Y+oHKOKXu%Sny^Y8qwda{7rVNLCU9pVTI z+|Kt;F*%&&6miuy{jaBnT*v^mm~XjSDazr1y7lj+Og9M#{-Q<yrkwl{*gprh=sz4- zz$QIA)PO=SFQz0!x@5HMX@|oFS-oImrOo>Q!B83OM6KPWQh4a0uvxX^sviriL1?zs z@@V%Rc2jibgCC)j;B*7iV*3;=(<pj;W1-9Rmi{Q<q<XS5Ssa8jquUw&o4}g3SeXA2 z+TY6Ay8mEkF+_5d+gn8jg=hIDFQHq-qeWZws0%VfXkDdEuSp(I25wvno$`)D%is(f z9kC()K-r36Fluji)09qh{=*>gl(3yqc}@G9Byq#(4TtHjm>IqD(nASgjh}2_8v0~& z{41y`x|6J2LcUYmw8fiJp?+hc7B<xuuFw!d^aq1~<Ivpm8^dgUh2+|Hp<eDqyuixp z2&AphVC%^{&8=d?{H=P_N;9s+$i=FcRS6^`JdT7;DX*Yq5Kp0w*h%wAZ24@n$I<E2 zUTnpSnpanuW=)POt%{my6*^n6J4<abx6X>a=;?tUKgyhOqbJI%zB)ul6Q^!SS=tuA z2f)Im88;e+Ux04E>z8coUM8lypj2$!UT6<xQi)J(+Fgkv`-9@YHTDbtZtR`3d<h8M zaObO%eD5>wA6!>LZ58UJ@5hUzt&SA67V6DB$(zI#8|JUpBOa_C2sTw(eu-9M!j(=U zp<^i6R6UbfEpjy`4t9jAZ*{KO3HRKrnEK#%RZEbffzhhv8!ep$+FiW5>uud)ahP#Y zd0%Ri1<ovq4&2kGrX>P5sjM9Fcvh2cx>092R{f5rMEFn!SKQ;O;(|8C)Xb|CZ1VI? zBG;RfK1y#Do3PBKj+B_bk5Fnk+?;Ol{6W=*BK%`G_>IE>{;!Z|B}zO8N!Y%BD|Arh z<uSzCmqdvE)(Y7}Yr6wHN6l7;dB0}f`*xihx)1)AtLY#CZ{FiKNL<SYNQ2^l-%FoV zIlkmSz&@(5dYUdc6(clRwKSS9yeh-f)aW=h<gb+gZ)`<<-0ARiLs)!#y-7>^r2*H_ z9?~L?>)jN$fyW#f9`ZCf)b{}!9MbJJYtYc_hx&q)CXDL?xz7r`(Wmg*@oLa8G5Kb_ zF0lDEC-$8ooqZK|py{TqS8>I%&MWbU>*ps!n4u!7lG!-=!^uzeDO3UPCY(Th@FT;Q zZFSiGLZ#5dvvK?R$}bZR+`%gE@fYXRXJ<dCU-%MHslRwd%=-9`A?2UqXXGY()~7dz zv;b!eE~`D5kW;U<tCB?xA4V&yH-g!@-4aFjFeVkeyZrgB0A00Rk^_r&f~cuqDuX18 zuD`Tp&veoamaicyuMQ17_HFcHw33RM7)O{#@>z=zwWxzNgEZ47D&giELb_Gfb>0Wi zn{cBVkiV<aRq6G{M#s<JxYrNi^3BlUPb+7#i0AJ;3ANs(JhOk%;eTD$^*nKBy2a() zlk&bz2{b%;Cj`qpu?^~926z&KnrqjFXAElwT2an+BjuaT-r<{vKxnhar%`y*5d!?_ zB}`Cxn!z!7G@c2GOZBM5T=UR>u5k`{XgjIOi4|d>JFai;Ojxm<MOW-=zOJee*tl@D z+I=!q@%(}wzl@RHk&VrmaUUj?({cL_P6&5;e=y2uUmcy#XloQV5{<fQ9%LE7i0HBm zWc4Po3gV1Vw+iN=(*Ff#SAHpi{g0S<nA2}x%$O7DT8QADq*HmfW#M!OEOwOHSgG$u zvc1@fdh~woD{@wam~f8L?D5x`yH`lR3u}M<I{o?5b#C3uj~!+n;4d*?;Twg>+no`d z4}mvHC6+th^4+cHI{9X+ohWEKnkyf@(if{B*tYC(1FV~(>YzNrFajD3Qi<cSZLYP{ z$bOKftRwdw^Q4$O+Cn(-DfVuKX$KY8R2<AC>uHu+$0;qsv;@|VS5=_hGOqL7#0`7W zRla-6+Iz~<C%e7i{${DCtmT;5GA?QYtrKP>w$$mgcG%IHRI|`E!=sNcZK_?XK!_F? zDmB%t^ktim8G4;ntPM9mdq&(3ce9*qd$J1T^>W9|bXqR~@vX;>3;mIwbqCG>2eacf zNNo9adH1c!PQf1tZ<Jd%de9n1Eh^`=`yCxP2>gLRJKy)r*@;B<`<y<xo%sNNizHKu z1aP_E4==RzLZ$0I*j)H#3~jG}*-rL?^*d+!uVU<rs(nF34AxeFFS%g$5TSdC*^;+e z)wBGhX&PVnlEi<>a9yfOV0HL<fo6bF$G`CnR2S*CiPcpmwSB9nt6>{wXc251Z-VIN zX1Ve&W0jmhngB@9MDR=XBl!CI&+5m$fU?<EEee@g^>|&9<n`t(4)QM{p*=F%!$-<! z5$cg+=Z}lF7)b%@u7#m-JLOkTmYtu~S=bt{#!vOXw6@%#e}+$c201YKUjA-jr!Upw z{nFm4UfQ?SBVHPexY4*%(73pIBj5f}7d<~|_cP;fL6EFQjk{|n9t@}Anx|hqP(;Pe z(8=bg$HcJ02MQX_u-)ul^!RVBe&9)eQ}u)GubTR|)ek#D60<%y#lN1nk`mAnco2;J z+Mz|gWeeG<wUbP*J6q3?5Ki@YAYcA!Px%^o-EP>Y+u^H`7wgIcH5UQpnNdOe^d8+n zxQDYQ)8nQ6kV26vqs@511H+FRJBiv-8Q<jV5@uX07KBbxEE-gIBrejQFMqjA&qtza z1TORgXVZ76FE)}Gb9$&UKp0*p@ppSHo+R<{PJ*5RR6~-X^<>VgjG$X3dk+QA+)bx) zQe-9+YDrUN%<R0_z5Y|mN%#J7hyDxYB*05D>0$%&UqSrqs>AO-;Er4g_?)>Dbop9n zcfM177;*YYv8F&Bw1K(Qt%ov{ZEp8COy+I>TD=S9)t1#R_tc1^iKCM?d!JQazDp!> z?&Eq!L0v)FjpOvByXyRqi3dgQO_1oMZc?&^69$uHv2{ps@f*!%vdQGr9tJ@LL1R-7 z&m{7u-YN1UCPpE}R^vWb?Ub;(zUkI|ZDt)QO7oZDX{9<WGvTR}th0(#W(aTARNc0L za*MNBR#Bv}8FDLP&i(!19G05ygKyaWb!MCG%*<D0bZBT$5XXI$eI7uV?T%FmK8*2+ z!^YmWb$STrYLw6fnyW`j;92@d%n)T?q7Z1vt7(TPIUZ0qzR|tH`&IZ}VA~E@N_!yp zZnOmV`u^GzQ@s+QveRV&L*6G1jw~y2A)}QKJ7ca49h64bLcjUJO;?4d>l|0{g|H)$ z*;a+V-Hwlkzm)J=1f~-NtUd?Q&5>**UR&sjxuqW<ak3lQmuzm2>-!`Drq6!piLg7B zS|7>Ms?ps!aS0x;esHH;XHf<*RqN*Yb@S}f_B>0#jky=+?g7g^qGCvk1^Io_p@N5n zh&1i3jgbbY_qdA|*RjQ%K+!=01=QvBF*dm^{LPc&Z1k`j!H>4&@2B{W*mdNr4}mN1 zyf6M1nBDv2+gQ3MW%&{Nn?vqKHlLe4vX*|=<5$Q0Zvnyc0gEme4ncM*zC|~F#|A4` zF4Xa&zp#nylCwC}-8xA6UW2uheD-*bqY9CcLGXi5ayC8>IT>v1we-4f#Oj<Laz$uJ z80AG6(=>4>n9tJb1#kKD=LbKx@&J0#1UKbJ!|x?Ug&{x57sT82FcieOpqdK2F^x$D zX)m)UBHz9`J>gCFUr*x82p2G>yb<AjyHGAlO<*lAv4;?yKXh#!l1~%B*io449Wq<= zJgl%-T)7^4HL~)QbE>p<6bLKTMK=dTwW2t%6@{k)rG@SIbyce>=1C~DgzD2Ie^C&s zhfnr9Yw=o|uSF3s`Hr$4+Pxt_@NUJjE73;NdU-FR1=mK7Y~3BuLcTkk4Mnz{;!Kgh z+gywxcfE&rmHf-@bnW5h(CNSt6&1y4KzlZS&}GJiJ{~U8TY!QQ%YA_|XoFbkQ72`n z(wu~QnC_!KyZBQ|mD*KYqmuSu1@62UpE1m<e%VOQeOw<L)HR-0I8N`e-^d4<xU1pO zl=PEwnm;MmBL;vLC;P59HBTm=GBSn&$V~)2J(HN~&O9emu4vn_+v%s4+M5+@P<%KS z5*|~4Q>J+;rIo?Wr{2wwc?&Cxm?Q9|Dc-oAavYwjf`5zod4+Z)vf};oa}3fV&-Vv0 z4Hxm+i|RLI*NLEsTO9WTeR%Xntamum@L}({9H&=ymP$i7k<mgY>s*>f^v|mMmUdS< z6N?RomPdAhMX3OX{*5&!s>dc`fs5ym5t_l=@OTMZgZ-l1LcJ8SGDcE<!}}%;RO{<; z)Z>+|g)z504@xs@p=XtF(?el1IqTJkXxKB#*;er3?yaRG(S#3v7q$GQ31U{fE_9Ec zY$TE{cd7B{^R%NS(my9R7~%SsB*84%4+r_+0OHk=Fv%K(Ir_j_vf9$8NO(dT$64ZL z`fYRS;nuvu;~PI-oXh1e^w@GC%NOLGDTWG63lZiw_cpjIog(Ki&R%aX!t6w;{S;4a zSI0!J;*?*W9e-OLE<pUiADo}!>ppM2C-foEWS{qabPk%oa)syk5}bk<Gygj6K3|p} zxuH6xAAN+|LcsdW5l0XsVw~Nd%WsS$fTMG4JeZ^wV->*DNv|Dps~p1`fn5t?ja>Pt zemhG1l#exfj?^RDSgIP7^G3}vkSq9!=1H!LrU?I1kd{Sop16MTabB#YGR7cbJgl2N z!6?2dKiRbUgeRFez$RbEe8{694c@%QneO>%q98++@n%8#YcfW@Yy%opVK%FTL1E4d ziDbUK$iv~nJXx#cqFhLM4Ih8pY)z4HPK*E#AhwfcUDk$GU!c@UBKA{3Z85=o8ECl> zM$UQ2Nb>Rn@tI&*4P%N9dv(3zo<L1ea<f2Tf+IjUH;rhrIQ4=d85G+;07erv__q+> zTt1cUYr4grgL~sy`@c}G7x^BKC%6AVM6GE5yOEFd@_J7_A=#H*ZAskAvD1O0t5g(Z z=55(K>I?!2cXRi;tu+f&3lC1Spbbw;kIv>pzTB^z(9$h2UOjZ6eBQEJ*J!Rg7>hfv z#fuK{@(~*~iU)PsHiDxu>K*i?JL=tB9uWPai8m8T)ud$09t<WSk^+$8o&b}^)8e6Z zvNM6RhvYD=K&_Ig&XU@%tFTT_B8_v~FwVGAyHlQZuPc;slJK(NcWDp0FJ_*QDn~5n zcw1OTv?(Wb;b$XAR5Ik%eInT--y<^zeN;BsRPGWTT^AyWqQ2)vNH^576qS`0M7s3Y zOKyi#5g)`T`)N&1^mdmE?ZY-f2n|cm+a<$lyOW(2c|{3Oagl}ykFGty&9P-ImiKGs z6qu$%W*;M!qZ!K$*WBPYFxM`ajDbF-9WBi{w?C*mfbmvXRmAXXxlowYK*#C<*hBbK zV|v#R_mv}&{8rQs&3cQQ$h^AO)xlF(;**7TUs}o0rQ;ou_88=oatdQHw7jcqOYjB* z1?DSQBvv`+#94f}SgQu1BP_i!UI9{xhAX6GPY>2_)4n^Cji3A!eoYj&B)7}=F+t%8 zE|nOEQOMU%KwLD3eVeql-x{C*xZjxg!gd4ceg9<N^J~r3D*Vf!<J}hN3O2m5_bv{9 z1k2o-^SQX<{?Y9+tHk^(4X(n>%LFos5#HBOALid!s)ITF+H6VK0+{2M76QZH@Gbf= z#TPCF^Z6Mqgb<gHe|Rm19?lMx&gNSRyI7X91_3&qa)Lzh>bHaM3y3X8YtS?;N9wF& zmZHU#CvHcI>3QVE8AFY&-s+KkwoR}k3(gC_>y24Sco30fX#~YT&QEm6PC}<-^l9*> z!$*tqQ;?@8wvSvtb%Qc}1&qIE`UxZ#riB7d`Eva^C&3wUjEqHj33|;%vCQJ@Lm3&G zi~{+2niEm^ImH4oMP=2f;({W_;;6#I%=L(p8pAb`@<_3w{`hs0Gr_8N_vFn=t6FwZ zQRP(vQ~b3k)?<Of*i&e3nE(|Tx_+8-ZL?uUgadau{w?-}7)H&#r+K4(9znd_*}F)- z|Eu2pm3-RvABow*>_3r-_St`?QZcjo-M9$(3l~Ly<su0c1)1sJb5XPKVEtDvV&_A? z$X7CG>6Qeqx;jt>wyf4R&gc$CS{x}`P$w?Py3>K>?k0}AbrohF8;y67Xf*K^Jxe-q zo5){l>h?I0hccYr4-o*N-cB+$tS<?a5Hm@8_C9TS-K&*nI?N<=An4?|s6k;J7L(Mc z-2=dQDWXgO@5a3HLxlAh)JHdUAaXoZ_q>Z-@X@S*j@g~W>01@zDl;}d8C@3jk*}`Z zks%P>7i`SV{0Jjs60yOESzU(E2<pB8i(3=nRTvc{f|kXX38OewV}vGlxO&0_o|$;9 z3~}`(GJ=LmyEoCjsQ~WX4Tf(#Uo&e1s)e9$`G#_-d?Z*B(M5xKdRb~^lTiYOp0Ij> zk@W-S@yeOzm=)B4U27F|%^!vp6`rm}u7<?IWHXvtosV|E3!;&8W`1c4!W3As#iuTG zSm=ga)m&E$sXkEgWVfX+`MU#dnnVKg_0>bCQ@dv7^%0MoHHdeo2h889EltZQ%cXGB z4Q^Aji%i!x=Yat?e$brBG0yZT93U*t<(-#@3Pi6WUYZ_kJWh0a--c^RSYEXD5Z!vC zh+^p+n*wajo*y2!%n$oSUbJ05IK{_JY(4+tLqL0b-WT5wnwKQu0TcO9MAXc`p18@! z@#eZ=5S2eY(0w6b7mTr_WeI2`4C0EHTMQ=5E6l#aQ-A!}T}+p6DU3r7e4A4g?fxx7 zG2qowB=u!}n@jg;A+ICV0oltjD$Hv(WSb8l%Wn<5FLTEkt3g)cv}L+i;<a4YR${F< z*G!U({MNXVphWZN6i6F{C&fD5*e2C>Kx0+iova&_VRt|Z%Jf_JSji0JEY8bv1T^#J zS_m{_GUNddz*#XonnlTpG^hM&Ss_rvd=~^GPcb}V9a5C9*$vGtPbSmMr&kiVStz`a zELc=$I9XEq{*)0`+#xdwEUI)RDi){~ay%`q)@~)c8$LoLzgee5l~s0G%Q@wZ@;piq z*SOsLqCE6+o+%;u#{Zgo{!=beIJDC|(st;eecr12yRq_TdRqMF^puFO{|KM)fi$q4 zc{@nkFr+VECqYlMK)K)mkPB^KD?Kt@4*7De@}!lsq#IMO@GgRPZolDNxde+n#)GLF zS7jTogS#Fk@;P*o6do6T<qIY$lJnp<k`L<EC@LCdSU+jvh5|GNT$-T?A?;+L>&bMc zp)ym}CD;J+nzN}<7?HLY&pF66+mj+DY_ZP_4EVyBCSGO&f7ebL^3L3~X@V5*3z;x) z6VpJIM|?<MFBj=%em)C+$(HtL&c_SGqNsLGK}tdMIPv3a3fck3E-}5#z#F%dhhO(b zci>5?1t8O1RdI@8?85ZD<5kNYqVLp;Tj%p^dlD8(yK+_a8Dmpg9UaHJB@+iTjQwUA zC-0KniB@;1H=3*|3M^3TSHDGAAdpyM<aS4?TY7^q->M=;Snxn-G7CC(8n#}~Kiz2O zKNJT$LYP;g=2$neN1`v1J+79d!su-l+L`Di>oLdTsvl#ROv}t-B+%UnvZk}^3=(r+ zx1?e_$4+WLd@FwP8nG!VZTGSoH0%xcWWr8Ax85B!Ka<sr|Af3DT5d19>-sT4^2_G* z(>+XbzJ8$11&VWJ^4s052qlGM<>@bH*O7Rt(|w1w8s266#mUlc!*GSlfUNiN5&ozo zaw|jj;tJoq@8yUmv#(6J3g>T9$P~7tuC)=(zo9Y&TfU(Os%O1ohGG^1S=M<uZ_&i7 z_Xh9{ZO?~D)MBzlc{}C$!lYsdmcpe23au$*4(UHd-jVsd6g3zH<_dkl6TB3o?drcA zD*@nNF}P<48HzK~i&~1OcV6Sx76>SM6>l?oe<f);tO%WKSKmaEXkY#ooyzeY!khL4 zeUg{t#mK&zLGq3t19(MChRF&NFyYJbOAf%KdGC@!a=|#rT3#a1<aLe@N|V3PRjsoq zD?0)ukeVA0z~mMh_N?Ej>`Vq1Lpjx8C2ve74a?u5$vR4_@BpEzQbter(h?5=CIQ+H zy7nD4W|LgPwRfH>z@LmapS0H-yJE`{4g3WWH<#lfxF*};e>5Zf7g!nQ(8-AGbNIsQ zL*dxP8L92qy-WMMEy?_n$qM|;WdEd|KQmdUw(K3gzh<(3QctbYU)1w{<%FhgN$;ww z^H24xZoFX4#Ht=Ed;e5VFddlwZsM_9SI|%ObSKg9;B9)A#PF+nt{uoT{#4IqAnNTT zS#$AE^)!|A)G{T1-K&)k8)Dix>y<Ti)H=8H@=I;K3w^sTbiBr;WS&Jz98UQpcx{4( z7(y?Se#iUdC4LXwEP}&pF=Sv;mEq4TR8+cV2P$Z@d?JY2Oz%g%QZe$Tkuh?=mZj=X zDSwa@RA`lh52csXOf@K8x*V}`FGTwu&2&lZgb<-)_s~5}SutyiV|QSl4u!PS`n1RJ zGF{f4*Z6kF+QKJKfiVK+$yzsu3wl!3VpVUw`Oc|d1MLXmDIO~}kM?CTEfsoJ2Uf7F zi_6~>uSYKSa68mrooO*{U$5(R6Pa)ROtdt^^toc;dI(6$BGuJC?Mu{qO<k|1YLcE0 zaxhoZL^bqaO2av&&gu5sx<dUD)=$NCu+FDep-JHkLDCbAkOmUZmZS2y4^1R<ah!v3 z-@feaAaIIu`#ysOyd?;8y1fmeFZL>d7iY!Wi>lG06$1*V*rBl-3R`Wtr^ho>!)z)) zl)aZu@z@mHVAM+jO`<tpsTI(?8VL_cj4uUo_5AB=0KP0u69aX2A9@-0g#c!~g@wQp zf4K!8uJ!8+!8%V0vkipm8_hz*I*%8_3cA2c;f!cGgK))3;9{iu312R?9BsErl=^z% zat!eL8kgB)HTj9R22`MxxIX40+c*VR4Wrl>oiQtkZNZRyYukJVh9J8D`Nb5QY<^xc z*l731G<WESmGt<RYXvWSiBUXhZ(^h|S@7nf!b}#K)8wqE-HFv)iCf^JhbW-txBS$} z`LzO!fk3frZahG@u+S<*ps=8Ry|_59nhbWgI;7dWtf;NHgs|ywaxLdW{ms?N#~*<{ z8<KV0C3ZLZ`~p7L1XZ)cAw5q`8S5tzz3_%vZ*oNAVuTi=37sB_X#U5QoBt3`c{0Kr zdju-9f4^k+54!%}qHBAgB&^=deK&EiMUk9UCz-*vGhhET?QO<-*v*pL$Ru-sl-Nw; zBd6|*7TN9jVq0?2h{>bPrCN{o76Z)k4x^npTduPW%`Ph@jgKajTNPY3=f9}>=;nF3 z?_l1SBq-0ocaLUgV#6QJDV}W{<M*a!2S0k@T}IiYmnp~7ZywzWV)r3{`kKF{5=dmf zK{LwR4!mm7$WGNS-eu{lQ~J;{h_UTjs4ov9cQJ$=j#<<a?&P~2BsC<y6ps2(csoMo zaJ)P6jtuv5l<F-Am!3Kg>4OMu)~4myQaOHGBSpgrt~eu;oRxTewKZ-_>Hx@!hmFOz zl_Z~6Mfujx>YMVD?2`}Bsr=OtUaz$k4N#hw6?!#;ZIK`2<4L=&njB;yyO<4@SqJCF z=xRdp;w?fT`N@bLNI|+c8MH7vLK9k)pB@4&E-vqZmXx=V!Ah$KG+|}+vmvnZW?T=f zq76@GSNVxb%dV=EHPpnex<{nfu4X`)99}!5s|BwcwFrg(pVM{g58?dh!iiO_{6#ng z>>A0kKL?V?KTSP;Vfl-2I{p;SH<9xe!OR+t5qYt6v~h1gSLbQPaafxqPLSs7PzuhB zO!E&f%VgaV-)Al^1_x$53lhl7zo9i!pq0j1rFjclo^M*?_rZj#XskltIGDwB!%nIW zT=VweTOE8-YIL!O8|HR(s>MCfKd+b0$b!-HlAxg3)yf6y*Va-NUdQ6r9Z|ezX&g<C zPkSOHVcuvDk%Yk(xf~LmWZw0DYrTZFK8ku6P08KRq>E-3+_y$I<c?0B8)&8qNv;An z+22~~3XW7CFuUyB(3wN$R<781fc~CmJ*Ru7aDbct9Lx5;_1tCl<#0)Z*R0Ih(e_MD z{i7dE?%#LtdkteTEI05DfoxYVD1%siPa%Ps9#?iPKU||EbDj6I)27e7S>Nc(;lD>X zX8DpL0Q}9HE8coB_*HJ<q83>_U$C7R5$94EY6N^+=N8(XI70ETYcWz?iH|FajdpD~ zLS6ILa?Imn3>TxOnulhrL9+BpoKaihN)&(VSKCCZ2n}EoFg+NU3@z^lrXbo#L8*=d z8lW`S*<esQ3fB$F@WzvZGySME!C3*UA>ix~ksfePgfbcAcVVK;e}IYkzu&^*{|kBt zkqHS`|C{vG*aLSAZuZ9E&t}Rnsmf{e$Vb{;_|K0L-un<-{j{rE`7zUk<c5S%V{w+M zKMnUm5@s{I1OI@Y!{C?nH2fc?r}OIi5&a;ZhO+74ES|*lJ4l+2>>9qn9Q9$or-#F< z@dX_*uF0CW?vF_7S4WHs)P;-{H(8J|Xc5^NF@xWmeE(bzH+jl#+@++}upHXro+dHb z+ptxs@#@uzu-%^6Vj_|*)L^6W_Hx$^UVT@i!|LU}WN}Aa>b4}tC;MS6s~tdUeWc)7 z&8#fCZhgGkbhw<-lmanj<QD3*sgN``e-dzmj_O?Q^Hk57I8tO=e*g7Q!NU>wON)bz z^?Ikdpo=qwt;GXJeidcKQ{3v96XzDI$oaAS_hIU{=lIm~Q+&nb)}yOF1mzDpe2*_c znLh8h8|S<z?s5E*o^sG!Hw1I|)2qFn4*)x37Wml%5-mNsWNa6M+42jsgM{jh7X8FJ z3p>JYw1IP|8PScsL5f3_OOXK!e7VBPv=g_Z)km|IW5k))xX2{bPKa+9WMe+XnIO7t z6D+(*f&bT8cJ1$2#`xs-o!$xloZhkF!b{X1AK|I{NCVsHwu7`yLi*6~f-p^=f#Rof z{ZQ4ha<@jx(A#s>Nz%HJgBvm?l#iNMag8t428XxKqwy7Eyp4oLjj};}mW}j@n8FYA z9><A%kO}n(w<h@n$QRPdwI*5<0YI{C@nk@8?I~bl@{(3B4^}_L)73Nwd)6Vir{Hx< z$V@W^MsX=5yVa|juYt_mivGYP&5IFOyb0o=KkdJwD5s12CXGtMTYjI!&3>%4lYgXc zARL?#xx`xZoS2U25}Dc1;tMhe89zOw@zS++QUH(IxwZK1d-yO$g?oI<;x?CpIkiOC zAwyg}Z@J~G4T9Hfdle=0J4+{acm`6dT%oyZ`Zj}^41qLh;C-+vLNj_4avIBT;ICJ} z>IMB?R91Se#4#=K0Q=O?swhU-bX&;83pz$Ly-q7M-H81BEv^NNFmFM1_iwg{ioSU7 zb@i%<_3_kP`^U?YGU#LRijJ72TjfH662RUd*}0(&`5P-=Bk#nz+MGJ)4HPSxBf^uV z?KG=FUt~aMGPvm=i#_zx*-^pdr>)DPRDp84ay<zp^0-#hJ<O1s{-aA5r*AhVt8}*7 zW&p>+b6;9$kjjdu`>SI$4?kU8l<w}Xwp2V?QT9H=;txHK7Jn{OkYspY?z}ViYJk4* zg%pJhxc~Jvzf1FP&Tm;;iqZg&2LhOfmKFl>6nxpQIpW>#`tdntE`~7HVyr^MI*smn zN%godhO_k--e!<L#1KT@A?9C>q8JA+N2u@w6U1mo7%a!i+~>E2>IoPx#L){Ct=yw` z?asdO!quofapi?2T81>Q2>8J6zgnfp|I8mUz2A#E`9CX|^*<|^skMjUSN8{wl%vSW z0*f+sf>N&~^f8H%hMy*n6zhcaXO~VRo{&?Sw%U{&haujMp=(Y1BJ}6>OV8U%vC+rM z4%CfHvh+8>^s0$LPF-@@$Cx3$HA3SiiC_=QrjxiehL24r^6S?aHA6yP^du!Wqb5&J z$e2RqVI~S5p(#_1y;Dq$^t((9t!{NsOP!`$tFX-BJA&qAP0%!R!qS<G51TA)>;e|b z2uOOlZ~3gn1Ql|do|;-?tK9v$N@3*I*!wNE56*9hX>NkI+0);kkHv+?Ryo>(XgZ#h zVm3L|@NjZjVC&M3b!rsnMAQcHu1)=0fs$?rWRtru@is^;7BXzyp9;{~-DpCCYSQj` zUKcj$<<-l%n;;>)B$Y5!Se~p0w>=OjE;4!Ou({4JI9~bq3xeA^-e98E=38|?*I}7x zgQH7XnZg*kMGNXkGaGyKb>@TbB2BsEaV6`A5V|9H*oL@GdkpV;4Lb%(bf2Y+6Y=L` z$<&@~g;<d?ZYiij!82>fCLm;e{4sDCed(<J`c$*eHg0A~*8Xl&;EgRSGnw6GjW?2k z3+E@nm?5pl6}Un<S6j3CN5;4d_mpkP^4P5x_;bn4b(LJCO1P32)z&I97OA3oaZYn~ zxEDA-=aV<j%YKEB)}6|oL@#^Z4<n7qB)+P~NB!z%vE_n4scS*j8wS_Ho<MfPu7#kn zx8UqooDp&y{=#a<i+<^OT_3`v%4@6w#d{KSB9x$w)~{q{-F+?ZFCOQFY6y@nL^EY$ zY{Kv2WpiVnnly36E<HHuk2muhYEL-2;6Nwdd&}^g3cSABo{TM;N54*M|F1~!VCuhH zwI6Z?(^HRYxw0$t`7nHyt^cTwih>N;W`zvW7EtQsfs=-7-Wn)IhV-LLrwb0rm0iBf zR-UACl=xukr>Y{}uR5!qTMVXbxxe%2p)1^d7{o<ylt|+2UWhsVG=40{Ps^_!EN{h- zG|^qvy~dwR1eHgTJ%NVwG-ozXFv5<S1wu8+p(W(Ly$vl>Er$w<OdIzV?d<%+O3m8) zHu^5H2rH?YZ-%9nwNeUi&P=lm=xA9WymjqLBdDg@(y7>f03KC9Gt4r4ehgFyZe<92 z5fRb|$yMIG_qvI;M-Q`Y`8lYJN6*G~XR!z$#`wTtW4xP9J+e+Mf(9aSqvvg+X0-vs zx@}jY1b<WM35G}afs`BCX1Rv@Yo-eK^%ePjz9B8m1PQoFA+LdwM!{(jG_LqtsmXPR zcg+V_=2EM<H^SHeArmRkSULpj8adVo$ryS`euRi`MOBS&lA}dm2>V?<OM@laFSI{7 zmXN7Eu8Qf3;W#U%AQ4A%zm*jo+K?y3d{qU+@<^Q4QVkb#<RQXOB{tYgK^2AYmY9uc zQ`fzSnN?YP`A>o5f{079j@Nn;Bt14;FYjZLz4T?jouiW1CNoU8L^u_W$risn;zKGE zo$gbQ)*$Ec?*wtX-NO|=cxCT{(~F~qAGo<I7gxIOco8yU*!<4;gV<gl$n&wi+0c+% z@V%^Ox!_OoIFU7QNj{&$i`7ro%8ffY(K4ttmwqvL>{X!^5wwGkGnB6RI6M6ECv|Ia z08fy$v*MwgbtFA;({z*+Eo7NcTW0OH?_)K7?zeh6Yq>Gv$`i|RM&&^^F)BEtl>~zb zOCBGaT>e*#cIbw_l$!<|y!>h-{PVZm(Z-$WuGI^m|BT6y5b*b#)co5Uo_YA@!!#ef z5^xUbH!L+PJ4%@k`Djyi>?K^1fZ02JY1g~poatpTh{d_T^Xa5JmK~=7s|N*HH73Sm zFdyBI<+`sosRu(WyAvlEsu<Szn+X^JC=;j$Ai20Xd4lXzlR;1cYXtMuN;GXw8Hb(r zGI_~Um<hRuC3-c4O@$p&uqessn9aEKr_MBPj%{90&MHNi!<CKFz0>>f4fygv5tT>J zGu$E{6}<mJyD9p-#@B_IW_cCI&itBeOw7)Rhoe2Hg9l#%jt*<bhdmc_yu7rNlMuyO z6(uCU!qvm~(J*3TWr(6LksmZ<1KG=uO$8*?ZZyU6e&xCs*x7ActMM)OL6pSP>U~I5 zq2A_5amX8iQC8gsnzeP8uJ4u4zr>`G9hOGcLYq3Fq4l@SN*q_qU&6+OXImA<cgq%z zL@8_hkk>>g+(j4LUFalrSH|s^x_ocy2RIy8hxR2K+v7?XCBYBk9|nrRllPZL3OH&G z!%n41zg4S#Ex%Zh!BI84Au*e#svGlBhBpS4&KtLvd&CKl$_w)QkNOJqqYyKMhZ_|2 zPS55q6#TXqDWgPvEWA#)zW2gpaTcFYxV@UO25%pfH|A_7<wyn3=DXQ(b=LQC1Ze&h zn%n)w3$hrR7xvdrWjOpPWZXGk-C9J?za~NOnFg}55?H~x+jtg(Op4q&Vf?5@&M;AB zxg0<7Nu%2V!V!nVLD$gqbKw9SiAkh#0EbPKh5#uSN{zK?K1Nrwdp7oQ@$!<|V<KPM zcteCnp6C7ic#en^JB>6!a6Y6j*$%LTcIjznU`ciE;qOnQTP|9q9o=sN-SYjNN(arb z-%U^cZHD}7mH;ZmhbL{eZ1cSIgk7@kg^x*sy1<!6<8sG^^b@ig#vX3+Ng53v6AVX9 z45u=hCe5y=Ny+u7N$4Sf(Nspul*u(T1zSfxHFeO!*eXq77UrUzYF8IFZFbPdD6AB2 zqT@oDT=p(}Lg|2#l~tO`Si}X9h-jNF$5T;rtNbuP&N-()QW@BKv-LdYB~j8fp~7YM zdt7*0Dm%>M!G<8}h9@@Qo$TxQAjUxL4fW;Q>X8f&$*x0oulBrEGOV`q*yN6ik??3N z4SvltzzlGkZCs008_c|CO|v4u$v2d%38#RQE%6)BsTB+qLZyjEOGWD)^LqASW0h7P zl?4?Jg(hh&#?ryq`peUeTwOyiOAbXsnoug+n^Oy-^OSy9L40<{M2qdWXeIMs968Ll z#wgt{FI|uTQY6d%$l8#X#C#1&h(?Q@IxmeBb2}q0=A}1?t3kZQaHdz*Q;kk+m`x@E z`?=3fbgTV<WB70n2Xn>+v#ay>maIoA=H{m^LldTM1?jCPTic88t>;)L72WpJzc;wO zXHW*7>`i=Wc%ISfSk(XhReXUcgD>HtEc>glld%lns{&wpzq6gA%vZs8=~G|d(gUaZ zcUd-Oy?O1xHS5j{mCbfzbj5JIV8^?026Ly6ak`6tlCwsU`O`o46SQ#8iI8p^yB(=O z)1b@FK}KiuMrHCiJD5Tyaq&$bi^i0gLFZv_+?(m_Jf{lhHAcx7sNnuYQ%5Tv8*sin zp}bvvQ&);lS2x4|NpVf&ze*?mH5UAf#u(6RVvN@W)HI=F0m;S99U<$*S9%3t542!f z{^TW09idq4<vzjI`(}1wZzxL5+O;<nFZT;k-Ve9ie4SP{^O<F{|I(~bxoWyy`fJwG zwgC$)o@!3ONA)@K`Rj}d(a$P98I-<6S9b-~FTLP@^Mgtv?C!RuDvE|<v4rF{XD6PP zO12t<dE(z0#eXM8(Q-F8I8;EZ+OBDryN`w+6c7c`zdVr2?z+1_zsDPxd{6e8a54v< z9))It33&Z2(MTapzFzp9o#H3%CJm08JyL?>1y)})g<<sqleO1MtCi*tg?$?x$9mu| zj&Odhs2kgx<VS)pT79n45evDCz5e`?0qf#Lw`<yL$6pYqC|_muK3VoEaMc63`ZZB7 z^3d#bcdftZi;2wHqzkOF3NnZ@VLF0#G}NIFXU^7<3m=Q9B2hOT916Zfi-Pc85T~`_ z(1`oyGbrcW34b1+b0x>4j0J4`prZ1s$M95l#j`Z;{7+w<D)ziZncl-MK2)CEIQsG2 zOPIg*8f-7xHS^V>bo~5FN`WKx*O#s6vfOV7G-mqWN_NY#yi9!AGLQp7GWT=i9H%=U zZDCgM?HD7@FmYfIYq)TI0juvtmMR-4^B{;I@{YirfvD`e*2`8STtzmr+N=`;v2Rv5 zS1uVCuH6wes{cM1@9y#2i(kna|GygM|3!fRd(JO*^w+KlNqLzuJ1eH1*Mv=%?wvD- zOX`^GI4Pyg+-s#An0`rPL8YW?RjwPB-o`qM!?&@hNKij#b9|IRUF|dTXzsl&;RPj^ zQRU~mcBHaGieryItGZt2RxZVCb9Uk>Zpb=rV0J#;58>bq6M_(OX~r@>(|o)}L)4c@ z1st;bx(n=21<;Le1kdw6zH~2;_6n*Nq?e|ZB*GlB$8V6KSHLq5xkX@DqJu=FnMh+_ zRXpxyq!b)2)vMF}=IC-pi!g3-q7I?dJSv@OxxdGG(BdlkyxxLzc!Tjql~#u!LyoiA z(6;3VfBr}HsYbh2{o(Qt12(Sjt9{E+^66}4IIteN{xIfpZ*$#RR25UYwx<FNF;hq0 z+;+xvWEa+Ac|=98h}%JxKgY6&v>ZEONK^LW@pPW^E1Ss*a|0}CZYv94Jbrk~d$?j< zzBkyan0rEx=U3d6->2g}FOq@=bDnR``P5$FdjY<T3w&-%$eH-UhdkeH-s>{0(YH4@ z;}6+iuRM*l^zvh9$a3chIp(nEPIjk$PPUQ5`4n4=$(9$BU|$M*LTIz3D~EQ!eP3}X z=xZc(&~2M&HP&F87|nmYPw(%myAyZ*I|BFLwk*<Ny2iTAA|WE8JL}NKnqK~qY70m3 z=(*_J<Ba#-gPB_@1IUjmF9~l^^gR>%c-NDZS}1qy>w>E5bxQ4Aqn*Vzd>G?5hYb=j z&MwzmgkcmD+cp|;YzpPfCp0$N3Bu9?wZ?mkI%)E}xc!N}g-2O;>8PYl_UE7EX<QX? znH-rL_R-H%s}rC>KlL-c?rNL(6lhe%Ul-Bg5f3u1A$^oBggF#!uf4NIQx|$ubhyrD zp>sv+My1I|m#JzguW{s}ug~=w+i4?*=Ut&&O)q=5BrI!_q!qk{wj|JB)A^sd@}l-$ z^cLx4@bD(vtPYhzViD$3uFd1sPxjKo&s^=tTOWD~Qh6QkEOs`D)3Gw4_GkK1KqZI^ z#>0)#di^hWxPlvW@ykO&B%a}Pe_&L>?MIuJ?D1a5jjKLCnvly)hPSmc&e=faq<qGf zD2Jyp8YNF%bp41oSJ;UR9*jpmyGbTB=6?&3%c0EdisAUvM&|S&s}O<mE~`+HHWKSF zi2-%%aGBX4>j(g@%Q{jSKd$ya4~GBTIZNe6<yPBI=PdU3u0-Ty8z8YP6+g0D5_aGy zmivKN9<{gN9rjLq7y+B3S>w*qhY-%YF+vO<a@6D4j2)em#BDT^1RrJRP7DEc(&Rnb z_D}R#G-KBSB7~qfL64o)BGX}HQb2=H%{($4)Ga~%LgPT)G^04^Sc)}>^Lz8HP5pAn z_jp)xwcTKy-C8rtRoU{Hmc`wk8Hh;5Y=iyaD7RT-+1NX;kEE<&&%~BGf-Veoy-w^K zzeKS(QJvE}gB?>9d<1nEUDgL*YNg=Nfa>-B^5?J;I1>|YddzjNynf2be!T4w9WU-o zwsu+9Me-SLLw+APl=7%VInCGwG1Z_XtIT|Ew@_-DkPvQM3)~0(Fp*X~Dp7Oau^h;_ zy2JXwi;i#aO5fGL_%Q^%@FNrHdhwb{nZ)u9jjp<-Kdr^j{q&kfzgO-1cbR|vPQv_e zk8l4RSpUG1?H&&yBat16c=mly8bOoPE?jmeK4en{^(Jv=sWXC8IzY%{hf6a8YnX4h z7L(VUDDmxEsRs^tKM`=Lu=OMs_%%_{b6|s1f<-UzVL0uT$&sS|Jmol%mt-#MPfJYe zH2WuR*%>(*l!UM-l$RP;8#HC>n2rkSH9hYw$}@eII$5`TnEsM{Ky<3b^~%vquPpQ8 zr+@_-<!PfGtFGvG9KiKP$A;d-OHR6do01rKHn)#VKZ6UjH~XPAY{r<$ZtOd7I3IZC zT05QM0qSL$V%(k|3gArxdKGLhx2K6Cslrc?OS!KC>-(GQK%2#EZb&T#Me7f9{%X>Z zE_n+3TV?~Q##`2H(R&VypBu$~8htSQozcf%fVKX+t)l!lMbiIn?w5uqV7}ydKJLKQ z6@99ftjNI5+7rjNP~|n@$fBJn0ctY<#R8jCg<!ji!F#+tnfG*Pgc)zJ=;df8_$jVC z7YrAy=IfO~rEP~x^_r{>pdzrY3d06JZeCZrrdpG+d~Q=2A=4)0%s`zWEz;s0=yTOm z?2+hP+bo`l7}O}d*uF%=hDIAXSbllMFIs;tylZWj%#FluBuQcrnX=CWSx%iHU4{Bu zFgSqGZfp?v#R90nUpL(lxzk3r*?^n;1Q8TOgg1c4Gm>C19h8f6e;lPO(Cb3PWb?KE zsacN*v?Y7jd!PpL2!zT!S3kv;iMO4f>|>|iNB&|NL-r>m2^jn_2>nyHn1A96dHOdS z`J*qBuy1qq_y{~bgpuyqv?YpfeQVX&%GXWWc0F}ol?1nB-hY-ZsCkn`FH184r@gvg z)KsWfpw|I8fcBS~n6hp*$1#srE_KG-0*#i8*NXI3!A%d#p42+d^rW3_idfjAmSzvm zWK%8Dy{?k8wz@GbwolSZwxJuht&kC<vgO)MyGxK{StpzqgERQsDByD`@U*mcq#&m% zzv;9NYFk|eD4}FxMAVhL<s4p|Ny|)37zy$yp&Wtjft0d7Fgn1q%Ev_&HQs5^M+Lhf zleOX0UhV|xTFEMr%I{7OHl|v9s8xQ2PQtH_FaJpf1phrfL~(zEmA`t34v~wA`D!QP zfs@N1N#1@>fXgCwqK5Tx=3W3zI7q6fC0Bb&9G;9T8Y$GvNG~y|V;(J9u6Lwd{SF<g z)a;1%Cp)w=wug>+!(dXv(>ci1p#z{Bc&1hPXtzK32>BS{clCzI^fM-_&l9w~ZRlh1 z<t|@d{c^?4-I=~*Zdq)pEF<P?pIVL%(4@3_1o5n9wsoTpG*%4?DHql^*@RY?y{n%# z7RSJoFF1iM<E1akeEL`NCgWL*bB#lbz2&DYToZmVD^qSg-dXNV`4ubI{&iE3KRjmt z<S{$_5ApF=QxGp2_SN^PikFVD-LY(6(@z7a-hoE=-sNhqioZO?6&Yk~<m;M)zC)W! zjr$!gG;xAP4ptq0f~JQ|CN(po)idbBvie5r)uEN1O_5nU6xIUUGRFAg{Ws#?G+?5A zO*@2KQn_?vXR<41ji<yeNdj2gC*y?MkQc*zeU=d&A9B3^1X}!x454#S2W`vU3qZ6O zmn}O)ekM{oVsf8$jm^1NZqm#O^(sdKe5jO~_t*YnW=Bf?hqC-uWf}T+(C{b6Vd~2y z1ly~FnfG4p3Ys{x>E)ipi`1=33A`&bSbFjfTFWw8V$y(kx+=ZVRB6*2t)w8uY*ITn z+N@KuxjAL$h&3sJ9f?>p4ISb(v2<HCA6~^>SEd-FU;G?EcV>=mv|sA-;?OU*JCQI2 zB@e1$g$^ab<-=;v@_@<w^&`Otez?O)Q;>ahx4euXL)r`1M300tI@J1bj<F}>ueO$b zDGEQ);QaFc$>RFIS9|;&r#Sz6V)|RGO>3<PUJ-^635C?M4dtmGh}(v26^)?uN@V;& z(t@L<hEom~s9P*Xm8+e}+#nhFI1>8Z6-F*wRNv@4rdAR<hN#Z+IO}<emfe1C<ws7< z3X~JCZhu86Inc7<FawNPP%haxlt5Pu%Q(fOn~LkcKB|b8Ne-8i9h?;ij1?-kpJ-bL zk0F?--Eif)S;YT~wdv<S)ZjPs|HHq=|Gzkn^AnTMv#)*g)=b%jt>0uDDbm6|$pdT^ z8@ijc@VKmghc#E)#H9;{))zO_+P#Ou$m!PW8l6`FC80;_HLYGbGFbBQ&FT-nKWNaf zW3k!xkTnTJpR4F{{a2oxJfOT?T_0-I@eq4bV*<+<1LBE2m@S?CjlaA+Vys7driD)a zbT7uuw0fT5DHR*-AN;}g-yHFV-x%>wMkSQg9Rgp?xI-A3%i6m_gS^QSMi<u6vY%}K zX=Gfm)R~;eh%22e9UE<)nLI2rtN)IkghMxRGp(r2(M_xy<NSvq;=v1;yYON=v`E|) zd%QEz5mRMV()W}JSU4lIv}tC{Z0!_0xM}-PZo>wZ6y5xHe$_a!KLY)m16}dk105n& zq$fw1OnkgrThvx)kTF{l@-xtS6Al-e(k$auPd-K~ogFYu);;}R{c<Xf$*ge}JroB^ zfH$<Fc6J|Nk3=Uv_<f`iNi}3zteK*vHryB&TkbNY){js)ag^&{;!HWiN+Vm^b~;6r zetnq0pN+}o{usM|bAXHgLjfMjyM0OSVpR%C@KUctHx48X`|f7aqA9#8UHZ()su%H7 zw+(8c!_{z@E3;YMBD$FpBr7u8YK7h1B*%%)BmF+(gr}v&7Te#@!Jcl63oLg%XVUjZ z$?Z;k!pN1Rgu00R{X+%3UuOT3m;Vp)ZT&xg5=h>EFt*w$5@ZC@AKn!jl-&Czwk{?u z(3N#*JA+EAj$*+-Jqg4Wjy)7?ZnPNw_EO=f+{_7e6pu}j7M(Bix_Sc-OI&Yi5Bws| hYI<B{&>nM}sos+TXHp7GL*Xg@_DLYbR|p6c{y&#!T`K?p literal 0 HcmV?d00001 diff --git a/interface/resources/icons/loader-snake-256.gif b/interface/resources/icons/loader-snake-256.gif new file mode 100644 index 0000000000000000000000000000000000000000..ebcbf54bd7759edfde7cab91d0a3e1be78c8390e GIT binary patch literal 26070 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 aJ^ES?TC8C)Fcoo0^4Grm_&0EHWd8?&-`BDL literal 0 HcmV?d00001 diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml index d4a67f31fb..babe3cda84 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -25,6 +25,8 @@ Item { anchors.fill: parent anchors.margins: 10 + function reset() { hasSuccessfullyUploaded = false } + property var footer: Item { anchors.fill: parent @@ -41,10 +43,10 @@ Item { visible: !AvatarPackagerCore.currentAvatarProject.fst.hasMarketplaceID && !root.hasSuccessfullyUploaded enabled: Account.loggedIn - //width: parent.width - //anchors.bottom: parent.bottom + anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right + text: qsTr("Upload") color: hifi.buttons.blue colorScheme: root.colorScheme @@ -130,6 +132,8 @@ Item { width: 28 height: 28 + + white: true } RalewayRegular { id: stepText diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml index be1363850e..e31115efe5 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml @@ -78,6 +78,7 @@ Item { hoverEnabled: true onClicked: { AvatarPackagerCore.openAvatarProject(path.text); + avatarProject.reset(); avatarPackager.state = "project"; } } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml index e71d8a4f2f..f02dc5a218 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml @@ -72,7 +72,7 @@ Item { } ] - LoadingCircle { + AnimatedImage { id: uploadSpinner visible: true @@ -81,6 +81,12 @@ Item { horizontalCenter: parent.horizontalCenter verticalCenter: parent.verticalCenter } + + width: 164 + height: 164 + + source: "../../../icons/loader-snake-256.gif" + playing: true } HiFiGlyphs { @@ -94,23 +100,22 @@ Item { } size: 164 - text: "w" + text: "+" color: "#EA4C5F" } - HiFiGlyphs { + Image { id: successIcon visible: false - anchors { - horizontalCenter: parent.horizontalCenter - verticalCenter: parent.verticalCenter - } + anchors.verticalCenter: parent.verticalCenter + anchors.horizontalCenter: parent.horizontalCenter - size: 164 - text: "\ue01a" - color: "#1FC6A6" + width: 148 + height: 148 + + source: "../../../icons/checkmark-stroke.svg" } } Item { diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarUploadStatusItem.qml b/interface/resources/qml/hifi/avatarPackager/AvatarUploadStatusItem.qml index d93afbd4e8..ca01e453e9 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarUploadStatusItem.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarUploadStatusItem.qml @@ -42,7 +42,7 @@ Item { width: 48 height: parent.height - AnimatedImage { + LoadingCircle { id: runningImage visible: false @@ -52,22 +52,19 @@ Item { width: 32 height: 32 - - source: "../../../icons/loader-snake-64-w.gif" - playing: false } - HiFiGlyphs { + Image { id: successGlyph visible: false - width: implicitWidth anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter - size: 48 - text: "\ue01a" - color: "#1FC6A6" + width: 30 + height: 30 + + source: "../../../icons/checkmark-stroke.svg" } HiFiGlyphs { id: failGlyph diff --git a/interface/resources/qml/hifi/avatarPackager/LoadingCircle.qml b/interface/resources/qml/hifi/avatarPackager/LoadingCircle.qml index f6ba81a96f..a1fac72ae4 100644 --- a/interface/resources/qml/hifi/avatarPackager/LoadingCircle.qml +++ b/interface/resources/qml/hifi/avatarPackager/LoadingCircle.qml @@ -3,18 +3,14 @@ import QtQuick.Controls 2.2 import QtQuick.Layouts 1.3 import QtGraphicalEffects 1.0 -Image { +AnimatedImage { id: root width: 128 height: 128 - source: "../../../images/loader-snake-128.png" + property bool white: false - RotationAnimation on rotation { - duration: 2000 - loops: Animation.Infinite - from: 0 - to: 360 - } -} \ No newline at end of file + source: white ? "../../../icons/loader-snake-256-wf.gif" : "../../../icons/loader-snake-256.gif" + playing: true +} From 1a38abe23014f924cd74989df6883b56f89563f2 Mon Sep 17 00:00:00 2001 From: Thijs Wenker <me@thoys.nl> Date: Thu, 27 Dec 2018 21:47:10 +0100 Subject: [PATCH 038/230] - add jointIndexes to new - attempt to fix OSX / linux build - ability to actually load a recent project (previously was only able to load the top recent project) --- interface/resources/qml/hifi/AvatarPackager.qml | 9 ++++++--- .../hifi/avatarPackager/AvatarProjectCard.qml | 5 +++-- interface/src/avatar/AvatarPackager.h | 16 ++++------------ interface/src/avatar/AvatarProject.h | 2 +- interface/src/avatar/MarketplaceItemUploader.cpp | 2 +- libraries/fbx/src/FST.cpp | 6 ++++++ 6 files changed, 21 insertions(+), 19 deletions(-) diff --git a/interface/resources/qml/hifi/AvatarPackager.qml b/interface/resources/qml/hifi/AvatarPackager.qml index 686bdd28da..79c130fadb 100644 --- a/interface/resources/qml/hifi/AvatarPackager.qml +++ b/interface/resources/qml/hifi/AvatarPackager.qml @@ -84,6 +84,11 @@ Windows.ScrollingWindow { property alias showModalOverlay: modalOverlay.visible + function openProject(path) { + AvatarPackagerCore.openAvatarProject(path); + avatarPackager.state = "project"; + } + AvatarPackagerHeader { id: avatarPackagerHeader onBackButtonClicked: { @@ -175,7 +180,6 @@ Windows.ScrollingWindow { } } - Flow { visible: AvatarPackagerCore.recentProjects.length === 0 anchors { @@ -194,8 +198,6 @@ Windows.ScrollingWindow { color: "white" text: qsTr("To learn more about using this tool, visit our docs") } - - } Column { @@ -213,6 +215,7 @@ Windows.ScrollingWindow { AvatarProjectCard { title: modelData.name path: modelData.path + onOpen: avatarPackager.openProject(modelData.path) } } } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml index be1363850e..7c29991792 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml @@ -20,6 +20,8 @@ Item { property color hoverBackgroundColor: "#E3E3E3" property color pressedBackgroundColor: "#6A6A6A" + signal open; + state: mouseArea.pressed ? "pressed" : (mouseArea.containsMouse ? "hover" : "normal") states: [ State { @@ -77,8 +79,7 @@ Item { anchors.fill: parent hoverEnabled: true onClicked: { - AvatarPackagerCore.openAvatarProject(path.text); - avatarPackager.state = "project"; + open(); } } } diff --git a/interface/src/avatar/AvatarPackager.h b/interface/src/avatar/AvatarPackager.h index 8cf641dbaa..57cbf046a7 100644 --- a/interface/src/avatar/AvatarPackager.h +++ b/interface/src/avatar/AvatarPackager.h @@ -23,9 +23,8 @@ class RecentAvatarProject { public: - RecentAvatarProject() { - - } + RecentAvatarProject() = default; + RecentAvatarProject(QString projectName, QString projectFSTPath) { _projectName = projectName; @@ -36,6 +35,8 @@ public: _projectFSTPath = other._projectFSTPath; } + ~RecentAvatarProject() = default; + QString getProjectName() const { return _projectName; } QString getProjectFSTPath() const { return _projectFSTPath; } @@ -50,15 +51,6 @@ private: }; -inline QDebug operator<<(QDebug debug, const RecentAvatarProject& recentAvatarProject) { - debug << "[recentAvatarProject:" << recentAvatarProject.getProjectFSTPath() << "]"; - return debug; -} - -Q_DECLARE_METATYPE(RecentAvatarProject); - -Q_DECLARE_METATYPE(QVector<RecentAvatarProject>); - class AvatarPackager : public QObject, public Dependency { Q_OBJECT SINGLETON_DEPENDENCY diff --git a/interface/src/avatar/AvatarProject.h b/interface/src/avatar/AvatarProject.h index 506dd7d40b..e950fd7379 100644 --- a/interface/src/avatar/AvatarProject.h +++ b/interface/src/avatar/AvatarProject.h @@ -24,7 +24,7 @@ class AvatarProject : public QObject { Q_OBJECT - Q_PROPERTY(FST* fst READ getFST) + Q_PROPERTY(FST* fst READ getFST CONSTANT) Q_PROPERTY(QStringList projectFiles READ getProjectFiles NOTIFY projectFilesChanged) diff --git a/interface/src/avatar/MarketplaceItemUploader.cpp b/interface/src/avatar/MarketplaceItemUploader.cpp index ebb3ccdf53..6bc499c0fb 100644 --- a/interface/src/avatar/MarketplaceItemUploader.cpp +++ b/interface/src/avatar/MarketplaceItemUploader.cpp @@ -33,7 +33,7 @@ MarketplaceItemUploader::MarketplaceItemUploader(QString title, QUuid marketplaceID, QStringList filePaths) : _title(title), - _description(description), _rootFilename(rootFilename), _filePaths(filePaths), _marketplaceID(marketplaceID) { + _description(description), _rootFilename(rootFilename), _marketplaceID(marketplaceID), _filePaths(filePaths) { qWarning() << "File paths: " << _filePaths.join(", "); //_marketplaceID = QUuid::fromString(QLatin1String("{50dbd62f-cb6b-4be4-afb8-1ef8bd2dffa8}")); } diff --git a/libraries/fbx/src/FST.cpp b/libraries/fbx/src/FST.cpp index f0e444ba33..5d3737319f 100644 --- a/libraries/fbx/src/FST.cpp +++ b/libraries/fbx/src/FST.cpp @@ -74,6 +74,12 @@ FST* FST::createFSTFromModel(QString fstPath, QString modelFilePath, const hfm:: mapping.insert(JOINT_FIELD, joints); + QVariantHash jointIndices; + for (int i = 0; i < hfmModel.joints.size(); i++) { + jointIndices.insert(hfmModel.joints.at(i).name, QString::number(i)); + } + mapping.insert(JOINT_INDEX_FIELD, jointIndices); + mapping.insertMulti(FREE_JOINT_FIELD, "LeftArm"); mapping.insertMulti(FREE_JOINT_FIELD, "LeftForeArm"); mapping.insertMulti(FREE_JOINT_FIELD, "RightArm"); From 89b03a3cdcce5fdee5282fc29f0fe171df8a1867 Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Thu, 27 Dec 2018 14:30:44 -0800 Subject: [PATCH 039/230] Add info popup box for avatar project files --- .../resources/qml/hifi/AvatarPackager.qml | 42 +++++++ .../qml/hifi/avatarPackager/AvatarProject.qml | 45 +------ .../qml/hifi/avatarPackager/InfoBox.qml | 112 ++++++++++++++++++ 3 files changed, 156 insertions(+), 43 deletions(-) create mode 100644 interface/resources/qml/hifi/avatarPackager/InfoBox.qml diff --git a/interface/resources/qml/hifi/AvatarPackager.qml b/interface/resources/qml/hifi/AvatarPackager.qml index cd1bfb34f1..b3535395db 100644 --- a/interface/resources/qml/hifi/AvatarPackager.qml +++ b/interface/resources/qml/hifi/AvatarPackager.qml @@ -29,6 +29,48 @@ Windows.ScrollingWindow { height: pane.height width: pane.width + InfoBox { + id: fileListPopup + + title: "List of Files" + + content: Rectangle { + id: fileList + + color: "#404040" + + anchors.fill: parent + anchors.topMargin: 10 + anchors.bottomMargin: 10 + anchors.leftMargin: 29 + anchors.rightMargin: 29 + + ListView { + anchors.fill: parent + model: AvatarPackagerCore.currentAvatarProject === null ? [] : AvatarPackagerCore.currentAvatarProject.projectFiles + delegate: Rectangle { + width: parent.width + height: fileText.implicitHeight + 8 + color: "#404040" + RalewaySemiBold { + id: fileText + size: 16 + elide: Text.ElideLeft + anchors.top: parent.top + anchors.left: parent.left + anchors.right: parent.right + anchors.leftMargin: 16 + anchors.rightMargin: 16 + anchors.topMargin: 4 + width: parent.width - 10 + color: "white" + text: modelData + } + } + } + } + } + Rectangle { id: modalOverlay anchors.fill: parent diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml index babe3cda84..ffe012258a 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -271,47 +271,6 @@ Item { } } - Rectangle { - id: fileList - - visible: false - - color: "#6A6A6A" - - anchors.top: openFolderButton.bottom - anchors.left: parent.left - anchors.right: parent.right - anchors.bottom: showFilesText.top - //anchors.bottom: uploadButton.top - anchors.topMargin: 10 - anchors.bottomMargin: 10 - height: 1000 - - ListView { - anchors.fill: parent - model: AvatarPackagerCore.currentAvatarProject === null ? [] : AvatarPackagerCore.currentAvatarProject.projectFiles - delegate: Rectangle { - width: parent.width - height: fileText.implicitHeight + 8 - color: (index % 2 == 0) ? "#6A6A6A" : "grey" - RalewaySemiBold { - id: fileText - size: 16 - elide: Text.ElideLeft - anchors.top: parent.top - anchors.left: parent.left - anchors.right: parent.right - anchors.leftMargin: 16 - anchors.rightMargin: 16 - anchors.topMargin: 4 - width: parent.width - 10 - color: "white" - text: modelData - } - } - } - } - RalewayRegular { id: showFilesText @@ -325,9 +284,9 @@ Item { size: 20 - text: AvatarPackagerCore.currentAvatarProject.projectFiles.length + " files in the project. <a href='toggle'>" + (fileList.visible ? "Hide" : "Show") + " list</a>" + text: AvatarPackagerCore.currentAvatarProject.projectFiles.length + " files in project. <a href='toggle'>Show list</a>" - onLinkActivated: fileList.visible = !fileList.visible + onLinkActivated: fileListPopup.open() } Rectangle { diff --git a/interface/resources/qml/hifi/avatarPackager/InfoBox.qml b/interface/resources/qml/hifi/avatarPackager/InfoBox.qml new file mode 100644 index 0000000000..89f5d5c7f8 --- /dev/null +++ b/interface/resources/qml/hifi/avatarPackager/InfoBox.qml @@ -0,0 +1,112 @@ +import Hifi 1.0 as Hifi +import QtQuick 2.5 +import stylesUit 1.0 +import controlsUit 1.0 as HifiControlsUit +import "../../controls" as HifiControls + +Rectangle { + id: root; + visible: false; + color: Qt.rgba(.34, .34, .34, 0.6); + z: 999; + + anchors.fill: parent + + property alias title: titleText.text + property alias content: loader.sourceComponent + + property bool closeOnClickOutside: false; + + function open() { + visible = true; + } + + function close() { + visible = false; + } + + HifiConstants { + id: hifi + } + + // This object is always used in a popup. + // This MouseArea is used to prevent a user from being + // able to click on a button/mouseArea underneath the popup. + MouseArea { + anchors.fill: parent; + propagateComposedEvents: false; + hoverEnabled: true; + onClicked: { + if (closeOnClickOutside) { + root.close() + } + } + } + + Rectangle { + id: mainContainer; + + width: Math.max(parent.width * 0.8, 400) + height: parent.height * 0.6 + + MouseArea { + anchors.fill: parent; + propagateComposedEvents: false; + hoverEnabled: true; + onClicked: function(ev) { + ev.accepted = true; + } + } + + anchors.centerIn: parent + + color: "#252525" + + // TextStyle1 + RalewaySemiBold { + id: titleText + size: 24 + color: "white" + + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: parent.top + anchors.topMargin: 30 + + text: "Title not defined" + } + + Item { + anchors.topMargin: 10 + anchors.top: titleText.bottom + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: button.top + + Loader { + id: loader + anchors.fill: parent + } + } + + Item { + id: button + + height: 40 + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: parent.bottom + anchors.bottomMargin: 12 + + HifiControlsUit.Button { + anchors.centerIn: parent + + text: "CLOSE" + onClicked: close() + + color: hifi.buttons.noneBorderlessWhite; + colorScheme: hifi.colorSchemes.dark; + } + } + + } +} From 9e7f89e2b0cee6943130358fc57cdc8abf2bd7d1 Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Thu, 27 Dec 2018 14:38:46 -0800 Subject: [PATCH 040/230] Update link text for avatar project files --- interface/resources/qml/hifi/avatarPackager/AvatarProject.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml index ffe012258a..96daf2c0ca 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -284,7 +284,7 @@ Item { size: 20 - text: AvatarPackagerCore.currentAvatarProject.projectFiles.length + " files in project. <a href='toggle'>Show list</a>" + text: AvatarPackagerCore.currentAvatarProject.projectFiles.length + " files in project. <a href='toggle'>See list</a>" onLinkActivated: fileListPopup.open() } From a79bf783d2445c0616c81d64448dfd40cef6f5fd Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Mon, 17 Dec 2018 11:07:45 -0800 Subject: [PATCH 041/230] Fix MyAvatar::collisionWithEntity not firing --- interface/src/avatar/AvatarManager.cpp | 76 ++++++++++++++------------ 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/interface/src/avatar/AvatarManager.cpp b/interface/src/avatar/AvatarManager.cpp index 7ca18ca258..8583a8a1d1 100644 --- a/interface/src/avatar/AvatarManager.cpp +++ b/interface/src/avatar/AvatarManager.cpp @@ -28,7 +28,6 @@ #pragma GCC diagnostic pop #endif - #include <shared/QtHelpers.h> #include <AvatarData.h> #include <PerfStat.h> @@ -529,6 +528,7 @@ void AvatarManager::handleChangedMotionStates(const VectorOfMotionStates& motion } void AvatarManager::handleCollisionEvents(const CollisionEvents& collisionEvents) { + bool playedCollisionSound { false }; for (Collision collision : collisionEvents) { // TODO: The plan is to handle MOTIONSTATE_TYPE_AVATAR, and then MOTIONSTATE_TYPE_MYAVATAR. As it is, other // people's avatars will have an id that doesn't match any entities, and one's own avatar will have @@ -536,43 +536,47 @@ void AvatarManager::handleCollisionEvents(const CollisionEvents& collisionEvents // my avatar. (Other user machines will make a similar analysis and inject sound for their collisions.) if (collision.idA.isNull() || collision.idB.isNull()) { auto myAvatar = getMyAvatar(); - auto collisionSound = myAvatar->getCollisionSound(); - if (collisionSound) { - const auto characterController = myAvatar->getCharacterController(); - const float avatarVelocityChange = (characterController ? glm::length(characterController->getVelocityChange()) : 0.0f); - const float velocityChange = glm::length(collision.velocityChange) + avatarVelocityChange; - const float MIN_AVATAR_COLLISION_ACCELERATION = 2.4f; // walking speed - const bool isSound = (collision.type == CONTACT_EVENT_TYPE_START) && (velocityChange > MIN_AVATAR_COLLISION_ACCELERATION); + myAvatar->collisionWithEntity(collision); - if (!isSound) { - return; // No sense iterating for others. We only have one avatar. + if (!playedCollisionSound) { + playedCollisionSound = true; + auto collisionSound = myAvatar->getCollisionSound(); + if (collisionSound) { + const auto characterController = myAvatar->getCharacterController(); + const float avatarVelocityChange = + (characterController ? glm::length(characterController->getVelocityChange()) : 0.0f); + const float velocityChange = glm::length(collision.velocityChange) + avatarVelocityChange; + const float MIN_AVATAR_COLLISION_ACCELERATION = 2.4f; // walking speed + const bool isSound = + (collision.type == CONTACT_EVENT_TYPE_START) && (velocityChange > MIN_AVATAR_COLLISION_ACCELERATION); + + if (!isSound) { + return; // No sense iterating for others. We only have one avatar. + } + // Your avatar sound is personal to you, so let's say the "mass" part of the kinetic energy is already accounted for. + const float energy = velocityChange * velocityChange; + const float COLLISION_ENERGY_AT_FULL_VOLUME = 10.0f; + const float energyFactorOfFull = fmin(1.0f, energy / COLLISION_ENERGY_AT_FULL_VOLUME); + + // For general entity collisionSoundURL, playSound supports changing the pitch for the sound based on the size of the object, + // but most avatars are roughly the same size, so let's not be so fancy yet. + const float AVATAR_STRETCH_FACTOR = 1.0f; + + _collisionInjectors.remove_if( + [](const AudioInjectorPointer& injector) { return !injector || injector->isFinished(); }); + + static const int MAX_INJECTOR_COUNT = 3; + if (_collisionInjectors.size() < MAX_INJECTOR_COUNT) { + AudioInjectorOptions options; + options.stereo = collisionSound->isStereo(); + options.position = myAvatar->getWorldPosition(); + options.volume = energyFactorOfFull; + options.pitch = 1.0f / AVATAR_STRETCH_FACTOR; + + auto injector = AudioInjector::playSoundAndDelete(collisionSound, options); + _collisionInjectors.emplace_back(injector); + } } - // Your avatar sound is personal to you, so let's say the "mass" part of the kinetic energy is already accounted for. - const float energy = velocityChange * velocityChange; - const float COLLISION_ENERGY_AT_FULL_VOLUME = 10.0f; - const float energyFactorOfFull = fmin(1.0f, energy / COLLISION_ENERGY_AT_FULL_VOLUME); - - // For general entity collisionSoundURL, playSound supports changing the pitch for the sound based on the size of the object, - // but most avatars are roughly the same size, so let's not be so fancy yet. - const float AVATAR_STRETCH_FACTOR = 1.0f; - - _collisionInjectors.remove_if([](const AudioInjectorPointer& injector) { - return !injector || injector->isFinished(); - }); - - static const int MAX_INJECTOR_COUNT = 3; - if (_collisionInjectors.size() < MAX_INJECTOR_COUNT) { - AudioInjectorOptions options; - options.stereo = collisionSound->isStereo(); - options.position = myAvatar->getWorldPosition(); - options.volume = energyFactorOfFull; - options.pitch = 1.0f / AVATAR_STRETCH_FACTOR; - - auto injector = AudioInjector::playSoundAndDelete(collisionSound, options); - _collisionInjectors.emplace_back(injector); - } - myAvatar->collisionWithEntity(collision); - return; } } } From c21d0378005f98cef70ea5fef8903b63f804dc83 Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Thu, 27 Dec 2018 17:51:27 -0800 Subject: [PATCH 042/230] Fix marketplace uploader not working with projects larger than 128MB --- .../resources/qml/hifi/AvatarPackager.qml | 12 ++-- interface/src/avatar/AvatarProject.cpp | 13 ++--- .../src/avatar/MarketplaceItemUploader.cpp | 56 +++++++++---------- .../src/avatar/MarketplaceItemUploader.h | 8 ++- libraries/avatars/src/ProjectFile.h | 2 + 5 files changed, 45 insertions(+), 46 deletions(-) diff --git a/interface/resources/qml/hifi/AvatarPackager.qml b/interface/resources/qml/hifi/AvatarPackager.qml index b3535395db..ff275923ac 100644 --- a/interface/resources/qml/hifi/AvatarPackager.qml +++ b/interface/resources/qml/hifi/AvatarPackager.qml @@ -127,9 +127,12 @@ Windows.ScrollingWindow { property alias showModalOverlay: modalOverlay.visible function openProject(path) { - AvatarPackagerCore.openAvatarProject(path); - avatarProject.reset(); - avatarPackager.state = "project"; + let project = AvatarPackagerCore.openAvatarProject(path); + if (project) { + avatarProject.reset(); + avatarPackager.state = "project"; + } + return project; } AvatarPackagerHeader { @@ -213,9 +216,8 @@ Windows.ScrollingWindow { browser.selectedFile.connect(function(fileUrl) { let fstFilePath = fileDialogHelper.urlToPath(fileUrl); - let currentAvatarProject = AvatarPackagerCore.openAvatarProject(fstFilePath); + let currentAvatarProject = avatarPackager.openProject(fstFilePath); if (currentAvatarProject) { - avatarPackager.state = AvatarPackagerState.project; avatarPackager.showModalOverlay = false; } }); diff --git a/interface/src/avatar/AvatarProject.cpp b/interface/src/avatar/AvatarProject.cpp index 038ded64d8..17ed4b6921 100644 --- a/interface/src/avatar/AvatarProject.cpp +++ b/interface/src/avatar/AvatarProject.cpp @@ -162,10 +162,9 @@ void AvatarProject::appendDirectory(QString prefix, QDir dir) { constexpr auto flags = QDir::Dirs | QDir::Files | QDir::NoSymLinks | QDir::NoDotAndDotDot | QDir::Hidden; for (auto& entry : dir.entryInfoList({}, flags)) { if (entry.isFile()) { - //_projectFiles.append(prefix + "/" + entry.fileName()); - _projectFiles.append({ entry.absoluteFilePath(), prefix + "/" + entry.fileName() }); + _projectFiles.append({ entry.absoluteFilePath(), prefix + entry.fileName() }); } else if (entry.isDir()) { - appendDirectory(prefix + dir.dirName() + "/", entry.absoluteFilePath()); + appendDirectory(prefix + entry.fileName() + "/", entry.absoluteFilePath()); } } } @@ -188,12 +187,8 @@ MarketplaceItemUploader* AvatarProject::upload(bool updateExisting) { if (updateExisting) { itemID = _fst->getMarketplaceID(); } - QStringList projectFilePaths; - for (auto& path : _projectFiles) { - projectFilePaths.append(path.absolutePath); - } - auto uploader = new MarketplaceItemUploader(getProjectName(), "Empty description", QFileInfo(getFSTPath()).fileName(), itemID, - projectFilePaths); + auto uploader = new MarketplaceItemUploader(getProjectName(), "Empty description", QFileInfo(getFSTPath()).fileName(), + itemID, _projectFiles); connect(uploader, &MarketplaceItemUploader::completed, this, [this, uploader]() { if (uploader->getError() == MarketplaceItemUploader::Error::None) { _fst->setMarketplaceID(uploader->getMarketplaceID()); diff --git a/interface/src/avatar/MarketplaceItemUploader.cpp b/interface/src/avatar/MarketplaceItemUploader.cpp index 6bc499c0fb..33cfb85c8e 100644 --- a/interface/src/avatar/MarketplaceItemUploader.cpp +++ b/interface/src/avatar/MarketplaceItemUploader.cpp @@ -31,18 +31,15 @@ MarketplaceItemUploader::MarketplaceItemUploader(QString title, QString description, QString rootFilename, QUuid marketplaceID, - QStringList filePaths) : + QList<ProjectFilePath> filePaths) : _title(title), _description(description), _rootFilename(rootFilename), _marketplaceID(marketplaceID), _filePaths(filePaths) { - qWarning() << "File paths: " << _filePaths.join(", "); - //_marketplaceID = QUuid::fromString(QLatin1String("{50dbd62f-cb6b-4be4-afb8-1ef8bd2dffa8}")); } void MarketplaceItemUploader::setState(State newState) { Q_ASSERT(_state != State::Complete); Q_ASSERT(_error == Error::None); Q_ASSERT(newState != _state); - qDebug() << "Setting uploader state to: " << newState; _state = newState; emit stateChanged(newState); @@ -113,13 +110,12 @@ void MarketplaceItemUploader::doGetCategories() { }; bool success; - int id; - std::tie(success, id) = extractCategoryID(); - qDebug() << "Done " << success << id; + std::tie(success, _categoryID) = extractCategoryID(); if (!success) { qWarning() << "Failed to find marketplace category id"; setError(Error::Unknown); } else { + qDebug() << "Marketplace Avatar category ID is" << _categoryID; doUploadAvatar(); } } else { @@ -133,24 +129,26 @@ void MarketplaceItemUploader::doUploadAvatar() { //buffer.open(QIODevice::WriteOnly); QuaZip zip{ &buffer }; if (!zip.open(QuaZip::Mode::mdAdd)) { - qWarning() << "Failed to open zip!!"; + qWarning() << "Failed to open zip"; + setError(Error::Unknown); + return; } for (auto& filePath : _filePaths) { - qWarning() << "Zipping: " << filePath; - QFileInfo fileInfo{ filePath }; + qWarning() << "Zipping: " << filePath.absolutePath << filePath.relativePath; + QFileInfo fileInfo{ filePath.absolutePath }; QuaZipFile zipFile{ &zip }; - if (!zipFile.open(QIODevice::WriteOnly, QuaZipNewInfo(fileInfo.fileName()))) { + if (!zipFile.open(QIODevice::WriteOnly, QuaZipNewInfo(filePath.relativePath))) { qWarning() << "Could not open zip file:" << zipFile.getZipError(); setError(Error::Unknown); return; } - QFile file{ filePath }; + QFile file{ filePath.absolutePath }; if (file.open(QIODevice::ReadOnly)) { zipFile.write(file.readAll()); } else { - qWarning() << "Failed to open: " << filePath; + qWarning() << "Failed to open: " << filePath.absolutePath; } file.close(); zipFile.close(); @@ -175,28 +173,26 @@ void MarketplaceItemUploader::doUploadAvatar() { } auto accountManager = DependencyManager::get<AccountManager>(); auto request = accountManager->createRequest(path, AccountManagerAuth::Required); - qWarning() << "Request url is: " << request.url(); - - QJsonObject root{ { "marketplace_item", - QJsonObject{ { "title", _title }, - { "description", _description }, - { "root_file_key", _rootFilename }, - { "category_ids", QJsonArray({ 5 }) }, - { "license", 0 }, - { "files", QString::fromLatin1(_fileData.toBase64()) } } } }; request.setHeader(QNetworkRequest::KnownHeaders::ContentTypeHeader, "application/json"); - QJsonDocument doc{ root }; - qWarning() << "data: " << doc.toJson(); + // TODO(huffman) add JSON escaping + auto escapeJson = [](QString str) -> QString { return str; }; + + QString jsonString = "{\"marketplace_item\":{"; + jsonString += "\"title\":\"" + escapeJson(_title) + "\""; + jsonString += ",\"description\":\"" + escapeJson(_description) + "\""; + jsonString += ",\"root_file_key\":\"" + escapeJson(_rootFilename) + "\""; + jsonString += ",\"category_ids\":[" + QStringLiteral("%1").arg(_categoryID) + "]"; + jsonString += ",\"license\":0"; + jsonString += ",\"files\":\"" + QString::fromLatin1(_fileData.toBase64()) + "\"}}"; - _fileData.toBase64(); QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); QNetworkReply* reply{ nullptr }; if (creating) { - reply = networkAccessManager.post(request, doc.toJson()); + reply = networkAccessManager.post(request, jsonString.toUtf8()); } else { - reply = networkAccessManager.put(request, doc.toJson()); + reply = networkAccessManager.put(request, jsonString.toUtf8()); } connect(reply, &QNetworkReply::uploadProgress, this, [this](float bytesSent, float bytesTotal) { @@ -210,11 +206,9 @@ void MarketplaceItemUploader::doUploadAvatar() { connect(reply, &QNetworkReply::finished, this, [this, reply]() { _responseData = reply->readAll(); - qWarning() << "Finished request " << _responseData; auto error = reply->error(); if (error == QNetworkReply::NoError) { - auto doc = QJsonDocument::fromJson(_responseData.toLatin1()); auto status = doc.object()["status"].toString(); if (status == "success") { @@ -223,9 +217,11 @@ void MarketplaceItemUploader::doUploadAvatar() { setState(State::WaitingForInventory); doWaitForInventory(); } else { + qWarning() << "Got error response while uploading avatar: " << _responseData; setError(Error::Unknown); } } else { + qWarning() << "Got error while uploading avatar: " << reply->error() << reply->errorString() << _responseData; setError(Error::Unknown); } }); @@ -265,7 +261,7 @@ void MarketplaceItemUploader::doWaitForInventory() { } auto data = root["data"]; if (!data.isObject()) { - return false; + return false; } auto assets = data.toObject()["assets"]; if (!assets.isArray()) { diff --git a/interface/src/avatar/MarketplaceItemUploader.h b/interface/src/avatar/MarketplaceItemUploader.h index 4b8b675255..4fb1713b7d 100644 --- a/interface/src/avatar/MarketplaceItemUploader.h +++ b/interface/src/avatar/MarketplaceItemUploader.h @@ -13,6 +13,8 @@ #ifndef hifi_MarketplaceItemUploader_h #define hifi_MarketplaceItemUploader_h +#include "ProjectFile.h" + #include <QObject> #include <QUuid> @@ -50,7 +52,7 @@ public: QString description, QString rootFilename, QUuid marketplaceID, - QStringList filePaths); + QList<ProjectFilePath> filePaths); Q_INVOKABLE void send(); @@ -91,13 +93,15 @@ private: QString _description; QString _rootFilename; QUuid _marketplaceID; + int _categoryID; int _itemVersion; QString _responseData; int _numRequestsForInventory{ 0 }; - QStringList _filePaths; + QString _rootFilePath; + QList<ProjectFilePath> _filePaths; QByteArray _fileData; }; diff --git a/libraries/avatars/src/ProjectFile.h b/libraries/avatars/src/ProjectFile.h index df92513a1b..82930a3464 100644 --- a/libraries/avatars/src/ProjectFile.h +++ b/libraries/avatars/src/ProjectFile.h @@ -1,6 +1,8 @@ #ifndef hifi_AvatarProjectFile_h #define hifi_AvatarProjectFile_h +#include <QObject> + class ProjectFilePath { Q_GADGET; public: From 2355499ae110bdadf202d44277f75b5295237276 Mon Sep 17 00:00:00 2001 From: Brad Davis <bdavis@saintandreas.org> Date: Thu, 27 Dec 2018 18:16:03 -0800 Subject: [PATCH 043/230] Fix version code for android APKs --- android/build_android.sh | 4 ++-- android/containerized_build.sh | 23 ++++++++++++++--------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/android/build_android.sh b/android/build_android.sh index f98bd1a4b2..189e6099a8 100755 --- a/android/build_android.sh +++ b/android/build_android.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -xeuo pipefail -./gradlew -PHIFI_ANDROID_PRECOMPILED=${HIFI_ANDROID_PRECOMPILED} -PRELEASE_NUMBER=${RELEASE_NUMBER} -PRELEASE_TYPE=${RELEASE_TYPE} setupDependencies -./gradlew -PHIFI_ANDROID_PRECOMPILED=${HIFI_ANDROID_PRECOMPILED} -PRELEASE_NUMBER=${RELEASE_NUMBER} -PRELEASE_TYPE=${RELEASE_TYPE} app:${ANDROID_BUILD_TARGET} \ No newline at end of file +./gradlew -PHIFI_ANDROID_PRECOMPILED=${HIFI_ANDROID_PRECOMPILED} -PVERSION_CODE=${VERSION_CODE} -PRELEASE_NUMBER=${RELEASE_NUMBER} -PRELEASE_TYPE=${RELEASE_TYPE} setupDependencies +./gradlew -PHIFI_ANDROID_PRECOMPILED=${HIFI_ANDROID_PRECOMPILED} -PVERSION_CODE=${VERSION_CODE} -PRELEASE_NUMBER=${RELEASE_NUMBER} -PRELEASE_TYPE=${RELEASE_TYPE} app:${ANDROID_BUILD_TARGET} \ No newline at end of file diff --git a/android/containerized_build.sh b/android/containerized_build.sh index cd6f15a92e..e5ec895146 100755 --- a/android/containerized_build.sh +++ b/android/containerized_build.sh @@ -9,14 +9,19 @@ docker run \ --rm \ --security-opt seccomp:unconfined \ -v "${WORKSPACE}":/home/jenkins/hifi \ - -e "RELEASE_NUMBER=${RELEASE_NUMBER}" \ - -e "RELEASE_TYPE=${RELEASE_TYPE}" \ - -e "ANDROID_BUILD_TARGET=assembleDebug" \ - -e "CMAKE_BACKTRACE_URL=${CMAKE_BACKTRACE_URL}" \ - -e "CMAKE_BACKTRACE_TOKEN=${CMAKE_BACKTRACE_TOKEN}" \ - -e "CMAKE_BACKTRACE_SYMBOLS_TOKEN=${CMAKE_BACKTRACE_SYMBOLS_TOKEN}" \ - -e "GA_TRACKING_ID=${GA_TRACKING_ID}" \ - -e "GIT_PR_COMMIT=${GIT_PR_COMMIT}" \ - -e "VERSION_CODE=${VERSION_CODE}" \ + -e RELEASE_NUMBER \ + -e RELEASE_TYPE \ + -e ANDROID_BUILD_TARGET \ + -e ANDROID_BUILD_DIR \ + -e CMAKE_BACKTRACE_URL \ + -e CMAKE_BACKTRACE_TOKEN \ + -e CMAKE_BACKTRACE_SYMBOLS_TOKEN \ + -e GA_TRACKING_ID \ + -e OAUTH_CLIENT_SECRET \ + -e OAUTH_CLIENT_ID \ + -e OAUTH_REDIRECT_URI \ + -e VERSION_CODE \ "${DOCKER_IMAGE_NAME}" \ sh -c "./build_android.sh" + + From 83a60a541b14723e542da8544607db5f5744121e Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Thu, 27 Dec 2018 18:53:07 -0800 Subject: [PATCH 044/230] Fix styling and flow issues in avatar uploader --- .../resources/qml/hifi/AvatarPackager.qml | 2 + .../qml/hifi/avatarPackager/AvatarProject.qml | 2 +- .../avatarPackager/AvatarProjectUpload.qml | 46 ++++++++++++++++--- 3 files changed, 42 insertions(+), 8 deletions(-) diff --git a/interface/resources/qml/hifi/AvatarPackager.qml b/interface/resources/qml/hifi/AvatarPackager.qml index ff275923ac..1300184591 100644 --- a/interface/resources/qml/hifi/AvatarPackager.qml +++ b/interface/resources/qml/hifi/AvatarPackager.qml @@ -45,6 +45,8 @@ Windows.ScrollingWindow { anchors.leftMargin: 29 anchors.rightMargin: 29 + clip: true + ListView { anchors.fill: parent model: AvatarPackagerCore.currentAvatarProject === null ? [] : AvatarPackagerCore.currentAvatarProject.projectFiles diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml index 96daf2c0ca..c94c9570ae 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -229,7 +229,7 @@ Item { name: "upload-success" PropertyChanges { target: infoMessage - text: "Your avatar has been uploaded to our servers. You can modify the project files and update it again to make changes on the uploaded avatar." + text: "Your avatar has been successfully uploaded to our servers. Make changes to your avatar by editing and uploading the project files." } }, State { diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml index f02dc5a218..b21bd38070 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml @@ -17,7 +17,7 @@ Item { Timer { id: backToProjectTimer - interval: 5000 + interval: 2000 running: false repeat: false onTriggered: { @@ -37,7 +37,9 @@ Item { if (visible) { root.uploader.stateChanged.connect(stateChangedCallback); root.uploader.finishedChanged.connect(function() { - backToProjectTimer.start(); + if (root.uploader.error === 0) { + backToProjectTimer.start(); + } }); } } @@ -53,7 +55,7 @@ Item { id: statusItem width: parent.width - height: 192 + height: 256 states: [ State { @@ -69,6 +71,8 @@ Item { PropertyChanges { target: uploadSpinner; visible: false } PropertyChanges { target: errorIcon; visible: true } PropertyChanges { target: successIcon; visible: false } + PropertyChanges { target: errorFooter; visible: true } + PropertyChanges { target: errorMessage; visible: true } } ] @@ -99,7 +103,7 @@ Item { verticalCenter: parent.verticalCenter } - size: 164 + size: 315 text: "+" color: "#EA4C5F" } @@ -151,20 +155,48 @@ Item { } RalewayRegular { - visible: root.uploader.error + id: errorMessage + + visible: false anchors.left: parent.left anchors.right: parent.right - anchors.bottom: parent.bottom + anchors.bottom: errorFooter.top anchors.leftMargin: 16 anchors.rightMargin: 16 - anchors.bottomMargin: 16 + anchors.bottomMargin: 32 size: 28 wrapMode: Text.Wrap color: "white" text: "We couldn't upload your avatar at this time. Please try again later." } + AvatarPackagerFooter { + id: errorFooter + + anchors.bottom: parent.bottom + visible: false + + content: Item { + anchors.fill: parent + anchors.rightMargin: 17 + HifiControls.Button { + id: backButton + + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + + text: qsTr("Back") + color: hifi.buttons.blue + colorScheme: root.colorScheme + width: 133 + height: 40 + onClicked: function() { + avatarPackager.state = "project" + } + } + } + } } Column { From 8f70865cf71df1cbcec7fc73d91f084a3bd0e5e2 Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Thu, 27 Dec 2018 21:02:56 -0800 Subject: [PATCH 045/230] Fix marketplace upload finishing before inventory item is valid --- interface/src/avatar/MarketplaceItemUploader.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/interface/src/avatar/MarketplaceItemUploader.cpp b/interface/src/avatar/MarketplaceItemUploader.cpp index 33cfb85c8e..45a13f04c4 100644 --- a/interface/src/avatar/MarketplaceItemUploader.cpp +++ b/interface/src/avatar/MarketplaceItemUploader.cpp @@ -275,9 +275,10 @@ void MarketplaceItemUploader::doWaitForInventory() { } if (id == _marketplaceID) { auto version = assetObject["version"]; - if (version.isDouble()) { + auto valid = assetObject["valid"]; + if (version.isDouble() && valid.isBool()) { int versionInt = version.toDouble(); - if (versionInt >= _itemVersion) { + if ((int)version.toDouble() >= _itemVersion && valid.toBool()) { return true; } } From 24aaeee5fd82d7f29fe00c9986ccdd487c54ab40 Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Thu, 27 Dec 2018 22:55:54 -0800 Subject: [PATCH 046/230] Disable back button on avatar upload page --- .../resources/qml/hifi/AvatarPackager.qml | 4 ++-- .../avatarPackager/AvatarPackagerHeader.qml | 13 ++++++----- .../avatarPackager/AvatarProjectUpload.qml | 23 ++----------------- interface/src/avatar/AvatarProject.cpp | 2 +- 4 files changed, 12 insertions(+), 30 deletions(-) diff --git a/interface/resources/qml/hifi/AvatarPackager.qml b/interface/resources/qml/hifi/AvatarPackager.qml index 1300184591..2492746627 100644 --- a/interface/resources/qml/hifi/AvatarPackager.qml +++ b/interface/resources/qml/hifi/AvatarPackager.qml @@ -102,7 +102,7 @@ Windows.ScrollingWindow { states: [ State { name: AvatarPackagerState.main - PropertyChanges { target: avatarPackagerHeader; title: qsTr("Avatar Packager"); faqEnabled: true; backButtonEnabled: false } + PropertyChanges { target: avatarPackagerHeader; title: qsTr("Avatar Packager"); faqEnabled: true; backButtonVisible: false } PropertyChanges { target: avatarPackagerMain; visible: true } PropertyChanges { target: avatarPackagerFooter; content: avatarPackagerMain.footer } }, @@ -120,7 +120,7 @@ Windows.ScrollingWindow { }, State { name: "project-upload" - PropertyChanges { target: avatarPackagerHeader; title: AvatarPackagerCore.currentAvatarProject.name } + PropertyChanges { target: avatarPackagerHeader; title: AvatarPackagerCore.currentAvatarProject.name; backButtonEnabled: false } PropertyChanges { target: avatarUploader; visible: true } PropertyChanges { target: avatarPackagerFooter; visible: false } } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml index 663d4d0f3a..5b01005edd 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml @@ -4,7 +4,7 @@ import "../../controlsUit" 1.0 as HifiControls import "../../stylesUit" 1.0 Rectangle { - id: avatarPackagerHeader + id: root width: parent.width height: 74 @@ -12,13 +12,14 @@ Rectangle { property alias title: title.text property alias faqEnabled: faq.visible - property alias backButtonEnabled: back.visible + property bool backButtonVisible: true // If false, is not visible and does not take up space + property bool backButtonEnabled: true // If false, is not visible but does not affect space property bool canRename: false; signal backButtonClicked RalewaySemiBold { id: back - visible: true + visible: backButtonEnabled && backButtonVisible size: 28 anchors.top: parent.top anchors.bottom: parent.bottom @@ -29,7 +30,7 @@ Rectangle { color: "white" MouseArea { anchors.fill: parent - onClicked: avatarPackagerHeader.backButtonClicked() + onClicked: root.backButtonClicked() hoverEnabled: true onEntered: { state = "hovering" } onExited: { state = "" } @@ -50,8 +51,8 @@ Rectangle { size: 28 anchors.top: parent.top anchors.bottom: parent.bottom - anchors.left: back.visible ? back.right : parent.left - anchors.leftMargin: back.visible ? 11 : 21 + anchors.left: root.backButtonVisible ? back.right : parent.left + anchors.leftMargin: root.backButtonVisible ? 11 : 21 anchors.verticalCenter: title.verticalCenter text: qsTr("Avatar Packager") color: "white" diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml index b21bd38070..2031392ca2 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml @@ -47,8 +47,6 @@ Item { Item { id: uploadStatus - visible: !!root.uploader - anchors.fill: parent Item { @@ -60,14 +58,14 @@ Item { states: [ State { name: "success" - when: !!root.uploader && root.uploader.state >= 4 && root.uploader.error === 0 + when: root.uploader.state >= 4 && root.uploader.error === 0 PropertyChanges { target: uploadSpinner; visible: false } PropertyChanges { target: errorIcon; visible: false } PropertyChanges { target: successIcon; visible: true } }, State { name: "error" - when: !!root.uploader && root.uploader.finished && root.uploader.error !== 0 + when: root.uploader.finished && root.uploader.error !== 0 PropertyChanges { target: uploadSpinner; visible: false } PropertyChanges { target: errorIcon; visible: true } PropertyChanges { target: successIcon; visible: false } @@ -198,21 +196,4 @@ Item { } } } - - Column { - id: debugInfo - - visible: false - - Text { - text: "Uploading" - color: "white" - - } - Text { - text: "State: " + (!!root.uploader ? root.uploader.state : " NONE") - color: "white" - } - } - } diff --git a/interface/src/avatar/AvatarProject.cpp b/interface/src/avatar/AvatarProject.cpp index 17ed4b6921..09d60163b6 100644 --- a/interface/src/avatar/AvatarProject.cpp +++ b/interface/src/avatar/AvatarProject.cpp @@ -187,7 +187,7 @@ MarketplaceItemUploader* AvatarProject::upload(bool updateExisting) { if (updateExisting) { itemID = _fst->getMarketplaceID(); } - auto uploader = new MarketplaceItemUploader(getProjectName(), "Empty description", QFileInfo(getFSTPath()).fileName(), + auto uploader = new MarketplaceItemUploader(getProjectName(), "", QFileInfo(getFSTPath()).fileName(), itemID, _projectFiles); connect(uploader, &MarketplaceItemUploader::completed, this, [this, uploader]() { if (uploader->getError() == MarketplaceItemUploader::Error::None) { From 493a05f905504a3357c89ef4f28bc52a143ba7ef Mon Sep 17 00:00:00 2001 From: NissimHadar <nissim.hadar@gmail.com> Date: Fri, 28 Dec 2018 08:45:45 -0800 Subject: [PATCH 047/230] Remove bad comment. --- tools/nitpick/src/TestRunner.cpp | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/tools/nitpick/src/TestRunner.cpp b/tools/nitpick/src/TestRunner.cpp index bbdd36a12a..9aca2bf3e6 100644 --- a/tools/nitpick/src/TestRunner.cpp +++ b/tools/nitpick/src/TestRunner.cpp @@ -485,9 +485,7 @@ void TestRunner::runInterfaceWithTestScript() { " --url " + url + " --no-updater" + " --no-login-suggestion" - " --testScript " + deleteScript + " quitWhenFinished" + - " --testResultsLocation " + _snapshotFolder; - + " --testScript " + deleteScript + " quitWhenFinished"; system(commandLine.toStdString().c_str()); @@ -503,10 +501,6 @@ void TestRunner::runInterfaceWithTestScript() { _interfaceWorker->setCommandLine(commandLine); emit startInterface(); #elif defined Q_OS_MAC - // On The Mac, we need to resize Interface. The Interface window opens a few seconds after the process - // has started. - // Before starting interface, start a process that will resize interface 10s after it opens - // This is performed by creating a bash script that runs to processes QFile script; script.setFileName(_workingFolder + "/runInterfaceTests.sh"); if (!script.open(QIODevice::WriteOnly | QIODevice::Text)) { @@ -516,7 +510,20 @@ void TestRunner::runInterfaceWithTestScript() { } script.write("#!/bin/sh\n\n"); - + + // First, run script to delete any entities in test area + commandLine = + "open -W \"" +_installationFolder + "/interface.app\" --args" + + " --url " + url + + " --no-updater" + + " --no-login-suggestion" + " --testScript " + deleteScript + " quitWhenFinished\n"; + + script.write(commandLine.toStdString().c_str()); + + // On The Mac, we need to resize Interface. The Interface window opens a few seconds after the process + // has started. + // Before starting interface, start a process that will resize interface 10s after it opens commandLine = _workingFolder +"/waitForStart.sh interface && sleep 10 && " + _workingFolder +"/setInterfaceSizeAndPosition.sh &\n"; script.write(commandLine.toStdString().c_str()); @@ -527,7 +534,7 @@ void TestRunner::runInterfaceWithTestScript() { " --no-login-suggestion" " --testScript " + testScript + " quitWhenFinished" + " --testResultsLocation " + _snapshotFolder + - " && " + _workingFolder +"/waitForFinish.sh interface"; + " && " + _workingFolder +"/waitForFinish.sh interface\n"; script.write(commandLine.toStdString().c_str()); From c28167f7973ae3de14e8f24f2d8faabb3777b3b7 Mon Sep 17 00:00:00 2001 From: NissimHadar <nissim.hadar@gmail.com> Date: Fri, 28 Dec 2018 14:24:19 -0800 Subject: [PATCH 048/230] Initial creation of class - has COPY of getOperatingSystemType(). --- .../PlatformInfoScriptingInterface.cpp | 23 ++++++++++++++ .../PlatformInfoScriptingInterface.h | 30 +++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 interface/src/scripting/PlatformInfoScriptingInterface.cpp create mode 100644 interface/src/scripting/PlatformInfoScriptingInterface.h diff --git a/interface/src/scripting/PlatformInfoScriptingInterface.cpp b/interface/src/scripting/PlatformInfoScriptingInterface.cpp new file mode 100644 index 0000000000..e2fea92ed3 --- /dev/null +++ b/interface/src/scripting/PlatformInfoScriptingInterface.cpp @@ -0,0 +1,23 @@ +// +// Created by Nissim Hadar on 2018/12/28 +// Copyright 2013-2016 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// +#include "PlatformInfoScriptingInterface.h" + +PlatformInfoScriptingInterface* PlatformInfoScriptingInterface::getInstance() { + static PlatformInfoScriptingInterface sharedInstance; + return &sharedInstance; +} + +QString PlatformInfoScriptingInterface::getOperatingSystemType() { +#ifdef Q_OS_WIN + return "WINDOWS"; +#elif defined Q_OS_MAC + return "MACOS"; +#else + return "UNKNOWN"; +#endif +} diff --git a/interface/src/scripting/PlatformInfoScriptingInterface.h b/interface/src/scripting/PlatformInfoScriptingInterface.h new file mode 100644 index 0000000000..b30af12071 --- /dev/null +++ b/interface/src/scripting/PlatformInfoScriptingInterface.h @@ -0,0 +1,30 @@ +// +// Created by Nissim Hadar on 2018/12/28 +// Copyright 2013-2016 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#ifndef hifi_PlatformInfoScriptingInterface_h +#define hifi_PlatformInfoScriptingInterface_h + +#include <QtCore/QObject> + +class QScriptValue; + +class PlatformInfoScriptingInterface : public QObject { + Q_OBJECT + +public slots: + static PlatformInfoScriptingInterface* getInstance(); + + /**jsdoc + * Returns the Operating Sytem type + * @function Test.getOperatingSystemType + * @returns {string} "WINDOWS", "MACOS" or "UNKNOWN" + */ + QString getOperatingSystemType(); +}; + +#endif // hifi_PlatformInfoScriptingInterface_h From 246c4dab9474a94dae6a14d27f7717fcfd251aa4 Mon Sep 17 00:00:00 2001 From: NissimHadar <nissim.hadar@gmail.com> Date: Fri, 28 Dec 2018 14:41:55 -0800 Subject: [PATCH 049/230] Created the PlatformInfo scripting object. --- interface/src/Application.cpp | 2 ++ interface/src/scripting/PlatformInfoScriptingInterface.h | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 5e41530d93..56130160c4 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -170,6 +170,7 @@ #include "scripting/Audio.h" #include "networking/CloseEventSender.h" #include "scripting/TestScriptingInterface.h" +#include "scripting/PlatformInfoScriptingInterface.h" #include "scripting/AssetMappingsScriptingInterface.h" #include "scripting/ClipboardScriptingInterface.h" #include "scripting/DesktopScriptingInterface.h" @@ -6994,6 +6995,7 @@ void Application::registerScriptEngineWithApplicationServices(ScriptEnginePointe scriptEngine->registerGlobalObject("Test", TestScriptingInterface::getInstance()); } + scriptEngine->registerGlobalObject("PlatformInfo", PlatformInfoScriptingInterface::getInstance()); scriptEngine->registerGlobalObject("Rates", new RatesScriptingInterface(this)); // hook our avatar and avatar hash map object into this script engine diff --git a/interface/src/scripting/PlatformInfoScriptingInterface.h b/interface/src/scripting/PlatformInfoScriptingInterface.h index b30af12071..dc88e1963f 100644 --- a/interface/src/scripting/PlatformInfoScriptingInterface.h +++ b/interface/src/scripting/PlatformInfoScriptingInterface.h @@ -25,6 +25,10 @@ public slots: * @returns {string} "WINDOWS", "MACOS" or "UNKNOWN" */ QString getOperatingSystemType(); + + /**jsdoc + * Returns the CPU brand + */ }; #endif // hifi_PlatformInfoScriptingInterface_h From cb33a91a34366f04ac286cb342ea63cff4b3d2ca Mon Sep 17 00:00:00 2001 From: Thijs Wenker <me@thoys.nl> Date: Sat, 29 Dec 2018 03:31:56 +0100 Subject: [PATCH 050/230] - rename functionality - avatar packager works in tablet now --- .../resources/qml/hifi/AvatarPackager.qml | 276 ----------------- .../qml/hifi/AvatarPackagerWindow.qml | 32 ++ .../hifi/avatarPackager/AvatarPackagerApp.qml | 288 ++++++++++++++++++ .../avatarPackager/AvatarPackagerHeader.qml | 102 ++++++- .../avatarPackager/AvatarPackagerState.qml | 1 + .../qml/hifi/avatarPackager/AvatarProject.qml | 2 +- .../hifi/avatarPackager/AvatarProjectCard.qml | 7 + .../avatarPackager/AvatarProjectUpload.qml | 10 +- .../avatarPackager/AvatarUploadStatusItem.qml | 8 +- .../avatarPackager/CreateAvatarProject.qml | 3 +- .../avatarPackager/ProjectInputControl.qml | 2 +- .../qml/hifi/tablet/AvatarPackager.qml | 15 + interface/src/avatar/AvatarPackager.cpp | 88 ++++-- interface/src/avatar/AvatarPackager.h | 33 +- interface/src/avatar/AvatarProject.cpp | 25 +- interface/src/avatar/AvatarProject.h | 15 +- libraries/fbx/src/FST.cpp | 4 +- libraries/fbx/src/FST.h | 4 +- 18 files changed, 543 insertions(+), 372 deletions(-) delete mode 100644 interface/resources/qml/hifi/AvatarPackager.qml create mode 100644 interface/resources/qml/hifi/AvatarPackagerWindow.qml create mode 100644 interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml create mode 100644 interface/resources/qml/hifi/tablet/AvatarPackager.qml diff --git a/interface/resources/qml/hifi/AvatarPackager.qml b/interface/resources/qml/hifi/AvatarPackager.qml deleted file mode 100644 index 2492746627..0000000000 --- a/interface/resources/qml/hifi/AvatarPackager.qml +++ /dev/null @@ -1,276 +0,0 @@ -import QtQuick 2.6 -import QtQuick.Controls 2.2 -import QtQuick.Layouts 1.3 -import QtQml.Models 2.1 -import QtGraphicalEffects 1.0 -import "../controlsUit" 1.0 as HifiControls -import "../stylesUit" 1.0 -import "../windows" as Windows -import "../dialogs" -import "./avatarPackager" 1.0 -import "avatarapp" 1.0 as AvatarApp - -Windows.ScrollingWindow { - id: root - objectName: "AvatarPackager" - width: 480 - height: 706 - title: "Avatar Packager" - resizable: false - opacity: parent.opacity - destroyOnHidden: true - implicitWidth: 384; implicitHeight: 640 - minSize: Qt.vector2d(480, 706) - - HifiConstants { id: hifi } - - Item { - id: windowContent - height: pane.height - width: pane.width - - InfoBox { - id: fileListPopup - - title: "List of Files" - - content: Rectangle { - id: fileList - - color: "#404040" - - anchors.fill: parent - anchors.topMargin: 10 - anchors.bottomMargin: 10 - anchors.leftMargin: 29 - anchors.rightMargin: 29 - - clip: true - - ListView { - anchors.fill: parent - model: AvatarPackagerCore.currentAvatarProject === null ? [] : AvatarPackagerCore.currentAvatarProject.projectFiles - delegate: Rectangle { - width: parent.width - height: fileText.implicitHeight + 8 - color: "#404040" - RalewaySemiBold { - id: fileText - size: 16 - elide: Text.ElideLeft - anchors.top: parent.top - anchors.left: parent.left - anchors.right: parent.right - anchors.leftMargin: 16 - anchors.rightMargin: 16 - anchors.topMargin: 4 - width: parent.width - 10 - color: "white" - text: modelData - } - } - } - } - } - - Rectangle { - id: modalOverlay - anchors.fill: parent - z: 20 - color: "#a15d5d5d" - visible: false - - // This mouse area captures the cursor events while the modalOverlay is active - MouseArea { - anchors.fill: parent - propagateComposedEvents: false; - hoverEnabled: true; - } - } - - AvatarApp.MessageBox { - id: popup - anchors.fill: parent - visible: false - closeOnClickOutside: true - } - - Column { - id: avatarPackager - anchors.fill: parent - state: "main" - states: [ - State { - name: AvatarPackagerState.main - PropertyChanges { target: avatarPackagerHeader; title: qsTr("Avatar Packager"); faqEnabled: true; backButtonVisible: false } - PropertyChanges { target: avatarPackagerMain; visible: true } - PropertyChanges { target: avatarPackagerFooter; content: avatarPackagerMain.footer } - }, - State { - name: AvatarPackagerState.createProject - PropertyChanges { target: avatarPackagerHeader; title: qsTr("Create Project") } - PropertyChanges { target: createAvatarProject; visible: true } - PropertyChanges { target: avatarPackagerFooter; content: createAvatarProject.footer } - }, - State { - name: AvatarPackagerState.project - PropertyChanges { target: avatarPackagerHeader; title: AvatarPackagerCore.currentAvatarProject.name; canRename: true } - PropertyChanges { target: avatarProject; visible: true } - PropertyChanges { target: avatarPackagerFooter; content: avatarProject.footer } - }, - State { - name: "project-upload" - PropertyChanges { target: avatarPackagerHeader; title: AvatarPackagerCore.currentAvatarProject.name; backButtonEnabled: false } - PropertyChanges { target: avatarUploader; visible: true } - PropertyChanges { target: avatarPackagerFooter; visible: false } - } - ] - - property alias showModalOverlay: modalOverlay.visible - - function openProject(path) { - let project = AvatarPackagerCore.openAvatarProject(path); - if (project) { - avatarProject.reset(); - avatarPackager.state = "project"; - } - return project; - } - - AvatarPackagerHeader { - id: avatarPackagerHeader - onBackButtonClicked: { - avatarPackager.state = "main" - } - } - - Item { - height: pane.height - avatarPackagerHeader.height - avatarPackagerFooter.height - width: pane.width - - Rectangle { - anchors.fill: parent - color: "#404040" - } - - AvatarProject { - id: avatarProject - colorScheme: root.colorScheme - anchors.fill: parent - } - - AvatarProjectUpload { - id: avatarUploader - anchors.fill: parent - root: avatarProject - } - - CreateAvatarProject { - id: createAvatarProject - colorScheme: root.colorScheme - anchors.fill: parent - } - - Item { - id: avatarPackagerMain - visible: false - anchors.fill: parent - - property var footer: Item { - anchors.fill: parent - anchors.rightMargin: 17 - HifiControls.Button { - id: createProjectButton - anchors.verticalCenter: parent.verticalCenter - anchors.right: openProjectButton.left - anchors.rightMargin: 22 - height: 40 - width: 134 - text: qsTr("New Project") - colorScheme: root.colorScheme - onClicked: { - createAvatarProject.clearInputs(); - avatarPackager.state = AvatarPackagerState.createProject; - } - } - - HifiControls.Button { - id: openProjectButton - anchors.verticalCenter: parent.verticalCenter - anchors.right: parent.right - height: 40 - width: 133 - text: qsTr("Open Project") - color: hifi.buttons.blue - colorScheme: root.colorScheme - onClicked: { - avatarPackager.showModalOverlay = true; - let browser = desktop.fileDialog({ - selectDirectory: false, - dir: fileDialogHelper.pathToUrl(AvatarPackagerCore.AVATAR_PROJECTS_PATH), - filter: "Avatar Project FST Files (*.fst)", - title: "Open Project (.fst)", - }); - - browser.canceled.connect(function() { - avatarPackager.showModalOverlay = false; - }); - - browser.selectedFile.connect(function(fileUrl) { - let fstFilePath = fileDialogHelper.urlToPath(fileUrl); - let currentAvatarProject = avatarPackager.openProject(fstFilePath); - if (currentAvatarProject) { - avatarPackager.showModalOverlay = false; - } - }); - } - } - } - - Flow { - visible: AvatarPackagerCore.recentProjects.length === 0 - anchors { - fill: parent - topMargin: 18 - leftMargin: 16 - rightMargin: 16 - } - RalewayRegular { - size: 20 - color: "white" - text: qsTr("Use a custom avatar to express your identity") - } - RalewayRegular { - size: 20 - color: "white" - text: qsTr("To learn more about using this tool, visit our docs") - } - } - - Column { - visible: AvatarPackagerCore.recentProjects.length > 0 - anchors { - fill: parent - topMargin: 18 - leftMargin: 16 - rightMargin: 16 - } - spacing: 10 - - Repeater { - model: AvatarPackagerCore.recentProjects - AvatarProjectCard { - title: modelData.name - path: modelData.path - onOpen: avatarPackager.openProject(modelData.path) - } - } - } - } - } - AvatarPackagerFooter { - id: avatarPackagerFooter - } - } - } -} diff --git a/interface/resources/qml/hifi/AvatarPackagerWindow.qml b/interface/resources/qml/hifi/AvatarPackagerWindow.qml new file mode 100644 index 0000000000..9d434ef97c --- /dev/null +++ b/interface/resources/qml/hifi/AvatarPackagerWindow.qml @@ -0,0 +1,32 @@ +import QtQuick 2.6 +import QtQuick.Controls 2.2 +import QtQuick.Layouts 1.3 +import QtQml.Models 2.1 +import QtGraphicalEffects 1.0 +import "../controlsUit" 1.0 as HifiControls +import "../stylesUit" 1.0 +import "../windows" as Windows +import "../controls" 1.0 +import "../dialogs" +import "avatarPackager" 1.0 +import "avatarapp" 1.0 as AvatarApp + +Windows.ScrollingWindow { + id: root + objectName: "AvatarPackager" + width: 480 + height: 706 + title: "Avatar Packager" + resizable: false + opacity: parent.opacity + destroyOnHidden: true + implicitWidth: 384; implicitHeight: 640 + minSize: Qt.vector2d(480, 706) + + HifiConstants { id: hifi } + + AvatarPackagerApp { + height: pane.height + width: pane.width + } +} diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml new file mode 100644 index 0000000000..2b21b4d938 --- /dev/null +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml @@ -0,0 +1,288 @@ +import QtQuick 2.6 +import QtQuick.Controls 2.2 +import QtQuick.Layouts 1.3 +import QtQml.Models 2.1 +import QtGraphicalEffects 1.0 +import "../../controlsUit" 1.0 as HifiControls +import "../../stylesUit" 1.0 +import "../../windows" as Windows +import "../../controls" 1.0 +import "../../dialogs" +import "../avatarapp" 1.0 as AvatarApp + +Item { + HifiConstants { id: hifi } + + property alias desktopObject: avatarPackager.desktopObject + + id: windowContent + // height: pane ? pane.height : parent.width + // width: pane ? pane.width : parent.width + + + MouseArea { + anchors.fill: parent + onClicked: { + unfocusser.forceActiveFocus(); + } + Item { + id: unfocusser + visible: false + } + } + + InfoBox { + id: fileListPopup + + title: "List of Files" + + content: Rectangle { + id: fileList + + color: "#404040" + + anchors.fill: parent + anchors.topMargin: 10 + anchors.bottomMargin: 10 + anchors.leftMargin: 29 + anchors.rightMargin: 29 + + clip: true + + ListView { + anchors.fill: parent + model: AvatarPackagerCore.currentAvatarProject === null ? [] : AvatarPackagerCore.currentAvatarProject.projectFiles + delegate: Rectangle { + width: parent.width + height: fileText.implicitHeight + 8 + color: "#404040" + RalewaySemiBold { + id: fileText + size: 16 + elide: Text.ElideLeft + anchors.top: parent.top + anchors.left: parent.left + anchors.right: parent.right + anchors.leftMargin: 16 + anchors.rightMargin: 16 + anchors.topMargin: 4 + width: parent.width - 10 + color: "white" + text: modelData + } + } + } + } + } + + Rectangle { + id: modalOverlay + anchors.fill: parent + z: 20 + color: "#a15d5d5d" + visible: false + + // This mouse area captures the cursor events while the modalOverlay is active + MouseArea { + anchors.fill: parent + propagateComposedEvents: false; + hoverEnabled: true; + } + } + + AvatarApp.MessageBox { + id: popup + anchors.fill: parent + visible: false + closeOnClickOutside: true + } + + Column { + id: avatarPackager + anchors.fill: parent + state: "main" + states: [ + State { + name: AvatarPackagerState.main + PropertyChanges { target: avatarPackagerHeader; title: qsTr("Avatar Packager"); docsEnabled: true; backButtonVisible: false } + PropertyChanges { target: avatarPackagerMain; visible: true } + PropertyChanges { target: avatarPackagerFooter; content: avatarPackagerMain.footer } + }, + State { + name: AvatarPackagerState.createProject + PropertyChanges { target: avatarPackagerHeader; title: qsTr("Create Project") } + PropertyChanges { target: createAvatarProject; visible: true } + PropertyChanges { target: avatarPackagerFooter; content: createAvatarProject.footer } + }, + State { + name: AvatarPackagerState.project + PropertyChanges { target: avatarPackagerHeader; title: AvatarPackagerCore.currentAvatarProject.name; canRename: true } + PropertyChanges { target: avatarProject; visible: true } + PropertyChanges { target: avatarPackagerFooter; content: avatarProject.footer } + }, + State { + name: AvatarPackagerState.projectUpload + PropertyChanges { target: avatarPackagerHeader; title: AvatarPackagerCore.currentAvatarProject.name; backButtonEnabled: false } + PropertyChanges { target: avatarUploader; visible: true } + PropertyChanges { target: avatarPackagerFooter; visible: false } + } + ] + + property alias showModalOverlay: modalOverlay.visible + + property var desktopObject: desktop + + function openProject(path) { + let project = AvatarPackagerCore.openAvatarProject(path); + if (project) { + avatarProject.reset(); + avatarPackager.state = AvatarPackagerState.project; + } + return project; + } + + function openDocs() { + Qt.openUrlExternally("https://docs.highfidelity.com/create/avatars/create-avatars#how-to-package-your-avatar"); + } + + AvatarPackagerHeader { + id: avatarPackagerHeader + colorScheme: root.colorScheme + onBackButtonClicked: { + avatarPackager.state = AvatarPackagerState.main; + } + onDocsButtonClicked: { + avatarPackager.openDocs(); + } + } + + Item { + height: windowContent.height - avatarPackagerHeader.height - avatarPackagerFooter.height + width: windowContent.width + + Rectangle { + anchors.fill: parent + color: "#404040" + } + + AvatarProject { + id: avatarProject + colorScheme: root.colorScheme + anchors.fill: parent + } + + AvatarProjectUpload { + id: avatarUploader + anchors.fill: parent + root: avatarProject + } + + CreateAvatarProject { + id: createAvatarProject + colorScheme: root.colorScheme + anchors.fill: parent + } + + Item { + id: avatarPackagerMain + visible: false + anchors.fill: parent + + property var footer: Item { + anchors.fill: parent + anchors.rightMargin: 17 + HifiControls.Button { + id: createProjectButton + anchors.verticalCenter: parent.verticalCenter + anchors.right: openProjectButton.left + anchors.rightMargin: 22 + height: 40 + width: 134 + text: qsTr("New Project") + colorScheme: root.colorScheme + onClicked: { + createAvatarProject.clearInputs(); + avatarPackager.state = AvatarPackagerState.createProject; + } + } + + HifiControls.Button { + id: openProjectButton + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + height: 40 + width: 133 + text: qsTr("Open Project") + color: hifi.buttons.blue + colorScheme: root.colorScheme + onClicked: { + avatarPackager.showModalOverlay = true; + + let browser = avatarPackager.desktopObject.fileDialog({ + selectDirectory: false, + dir: fileDialogHelper.pathToUrl(AvatarPackagerCore.AVATAR_PROJECTS_PATH), + filter: "Avatar Project FST Files (*.fst)", + title: "Open Project (.fst)", + }); + + browser.canceled.connect(function() { + avatarPackager.showModalOverlay = false; + }); + + browser.selectedFile.connect(function(fileUrl) { + let fstFilePath = fileDialogHelper.urlToPath(fileUrl); + let currentAvatarProject = avatarPackager.openProject(fstFilePath); + if (currentAvatarProject) { + avatarPackager.showModalOverlay = false; + } + }); + } + } + } + + Flow { + visible: AvatarPackagerCore.recentProjects.length === 0 + anchors { + fill: parent + topMargin: 18 + leftMargin: 16 + rightMargin: 16 + } + RalewayRegular { + size: 20 + color: "white" + text: qsTr("Use a custom avatar to express your identity") + } + RalewayRegular { + size: 20 + color: "white" + text: qsTr("To learn more about using this tool, visit our docs") + } + } + + Column { + visible: AvatarPackagerCore.recentProjects.length > 0 + anchors { + fill: parent + topMargin: 18 + leftMargin: 16 + rightMargin: 16 + } + spacing: 10 + + Repeater { + model: AvatarPackagerCore.recentProjects + AvatarProjectCard { + title: modelData.name + path: modelData.projectPath + onOpen: avatarPackager.openProject(modelData.path) + } + } + } + } + } + AvatarPackagerFooter { + id: avatarPackagerFooter + } + } +} diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml index 5b01005edd..7037aa9d92 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml @@ -11,11 +11,18 @@ Rectangle { color: "#252525" property alias title: title.text - property alias faqEnabled: faq.visible + property alias docsEnabled: docs.visible property bool backButtonVisible: true // If false, is not visible and does not take up space property bool backButtonEnabled: true // If false, is not visible but does not affect space - property bool canRename: false; + property bool canRename: false + property int colorScheme + + property color textColor: "white" + property color hoverTextColor: "gray" + property color pressedTextColor: "#6A6A6A" + signal backButtonClicked + signal docsButtonClicked RalewaySemiBold { id: back @@ -27,7 +34,7 @@ Rectangle { anchors.leftMargin: 16 anchors.verticalCenter: back.verticalCenter text: "◀" - color: "white" + color: textColor MouseArea { anchors.fill: parent onClicked: root.backButtonClicked() @@ -37,37 +44,102 @@ Rectangle { states: [ State { name: "hovering" - PropertyChanges { - target: back - color: "gray" - } + PropertyChanges { target: back; color: hoverTextColor } } ] } } - - RalewaySemiBold { - id: title - size: 28 + Item { + id: titleArea anchors.top: parent.top anchors.bottom: parent.bottom anchors.left: root.backButtonVisible ? back.right : parent.left anchors.leftMargin: root.backButtonVisible ? 11 : 21 anchors.verticalCenter: title.verticalCenter - text: qsTr("Avatar Packager") - color: "white" + anchors.right: docs.left + states: [ + State { + name: "renaming" + PropertyChanges { target: title; visible: false } + PropertyChanges { target: titleInputArea; visible: true } + } + ] + + RalewaySemiBold { + id: title + size: 28 + anchors.fill: parent + text: qsTr("Avatar Packager") + color: "white" + + MouseArea { + anchors.fill: parent + onClicked: { + if (!root.canRename || AvatarPackagerCore.currentAvatarProject === null) { + return; + } + + titleArea.state = "renaming"; + titleInput.text = AvatarPackagerCore.currentAvatarProject.name; + titleInput.selectAll(); + titleInput.forceActiveFocus(Qt.MouseFocusReason); + } + } + } + Item { + id: titleInputArea + visible: false + anchors.fill: parent + + HifiControls.TextField { + id: titleInput + anchors.fill: parent + text: "" + colorScheme: root.colorScheme + font.family: "Fira Sans" + font.pixelSize: 28 + z: 200 + onFocusChanged: { + if (titleArea.state === "renaming" && !titleArea.focus) { + //titleArea.state = ""; + accepted(); + } + } + Keys.onPressed: { + if (event.key === Qt.Key_Escape) { + titleArea.state = ""; + } + } + onAccepted: { + if (acceptableInput) { + //AvatarPackagerCore.renameProject(text); + console.warn(text); + AvatarPackagerCore.currentAvatarProject.name = text; + console.warn(AvatarPackagerCore.currentAvatarProject.name); + + } + titleArea.state = ""; + } + } + } } RalewaySemiBold { - id: faq + id: docs visible: false size: 28 anchors.top: parent.top anchors.bottom: parent.bottom anchors.right: parent.right anchors.rightMargin: 16 - anchors.verticalCenter: faq.verticalCenter + anchors.verticalCenter: docs.verticalCenter text: qsTr("Docs") color: "white" + MouseArea { + anchors.fill: parent + onClicked: { + docsButtonClicked(); + } + } } } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerState.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerState.qml index f12edf4952..c81173a080 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerState.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerState.qml @@ -6,4 +6,5 @@ Item { readonly property string main: "main" readonly property string project: "project" readonly property string createProject: "createProject" + readonly property string projectUpload: "projectUpload" } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml index c94c9570ae..a5a2263346 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -178,7 +178,7 @@ Item { } }); root.uploader.send(); - avatarPackager.state = "project-upload"; + avatarPackager.state = AvatarPackagerState.projectUpload; } function showConfirmUploadPopup() { diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml index 736de2019c..5496711d44 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml @@ -53,11 +53,14 @@ Item { RalewayBold { id: title + elide: "ElideRight" anchors { top: parent.top topMargin: 13 left: parent.left leftMargin: 16 + right: parent.right + rightMargin: 16 } text: "<title missing>" size: 16 @@ -69,7 +72,11 @@ Item { top: title.bottom left: parent.left leftMargin: 32 + right: background.right + rightMargin: 16 } + elide: "ElideLeft" + horizontalAlignment: Text.AlignRight text: "<path missing>" size: 20 } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml index 2031392ca2..c1d1a98158 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml @@ -21,8 +21,8 @@ Item { running: false repeat: false onTriggered: { - if (avatarPackager.state =="project-upload") { - avatarPackager.state = "project" + if (avatarPackager.state === AvatarPackagerState.projectUpload) { + avatarPackager.state = AvatarPackagerState.project; } } } @@ -130,7 +130,7 @@ Item { AvatarUploadStatusItem { id: statusCategories uploader: root.uploader - text: "Retreiving categories" + text: "Retrieving categories" uploaderState: 1 } @@ -189,8 +189,8 @@ Item { colorScheme: root.colorScheme width: 133 height: 40 - onClicked: function() { - avatarPackager.state = "project" + onClicked: { + avatarPackager.state = AvatarPackagerState.project; } } } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarUploadStatusItem.qml b/interface/resources/qml/hifi/avatarPackager/AvatarUploadStatusItem.qml index ca01e453e9..4749e912c6 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarUploadStatusItem.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarUploadStatusItem.qml @@ -14,9 +14,9 @@ Item { property int uploaderState; property var uploader; - state: root.uploader.state > uploaderState - ? "success" - : (root.uploader.error !== 0 ? "fail" : (root.uploader.state === uploaderState ? "running" : "")) + state: root.uploader === undefined ? "" : + (root.uploader.state > uploaderState ? "success" + : (root.uploader.error !== 0 ? "fail" : (root.uploader.state === uploaderState ? "running" : ""))) states: [ State { @@ -90,4 +90,4 @@ Item { size: 28 color: "#777777" } -} \ No newline at end of file +} diff --git a/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml index a5d335feba..d6f530a196 100644 --- a/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml @@ -119,7 +119,7 @@ Item { ProjectInputControl { id: textureFolder - label: "Specify Texture Folder <i> - optional</i>" + label: "Specify Texture Folder - <i>Optional</i>" colorScheme: root.colorScheme browseEnabled: true browseFolder: true @@ -128,5 +128,4 @@ Item { onTextChanged: checkErrors() } } - } diff --git a/interface/resources/qml/hifi/avatarPackager/ProjectInputControl.qml b/interface/resources/qml/hifi/avatarPackager/ProjectInputControl.qml index 2ac4a37d02..f0a3aac8a7 100644 --- a/interface/resources/qml/hifi/avatarPackager/ProjectInputControl.qml +++ b/interface/resources/qml/hifi/avatarPackager/ProjectInputControl.qml @@ -57,7 +57,7 @@ Column { colorScheme: root.colorScheme onClicked: { avatarPackager.showModalOverlay = true; - let browser = desktop.fileDialog({ + let browser = avatarPackager.desktopObject.fileDialog({ selectDirectory: browseFolder, dir: browseDir, filter: browseFilter, diff --git a/interface/resources/qml/hifi/tablet/AvatarPackager.qml b/interface/resources/qml/hifi/tablet/AvatarPackager.qml new file mode 100644 index 0000000000..c1c234dd73 --- /dev/null +++ b/interface/resources/qml/hifi/tablet/AvatarPackager.qml @@ -0,0 +1,15 @@ +import QtQuick 2.0 +import "../avatarPackager" 1.0 + +Item { + id: root + width: 480 + height: 706 + + AvatarPackagerApp { + width: parent.width + height: parent.height + + desktopObject: tabletRoot + } +} diff --git a/interface/src/avatar/AvatarPackager.cpp b/interface/src/avatar/AvatarPackager.cpp index d8aadeb4e0..eef574a8b5 100644 --- a/interface/src/avatar/AvatarPackager.cpp +++ b/interface/src/avatar/AvatarPackager.cpp @@ -11,6 +11,8 @@ #include "AvatarPackager.h" +#include "Application.h" + #include <QQmlContext> #include <QQmlEngine> #include <QUrl> @@ -19,8 +21,9 @@ #include "ModelSelector.h" #include <avatar/MarketplaceItemUploader.h> -#include <thread> #include <mutex> +#include "scripting/HMDScriptingInterface.h" +#include "ui/TabletScriptingInterface.h" std::once_flag setupQMLTypesFlag; AvatarPackager::AvatarPackager() { @@ -38,31 +41,32 @@ AvatarPackager::AvatarPackager() { } bool AvatarPackager::open() { - static const QUrl url{ "hifi/AvatarPackager.qml" }; + static const QUrl url{ "hifi/AvatarPackagerWindow.qml" }; const auto packageModelDialogCreated = [=](QQmlContext* context, QObject* newObject) { context->setContextProperty("AvatarPackagerCore", this); }; - DependencyManager::get<OffscreenUi>()->show(url, "AvatarPackager", packageModelDialogCreated); + + static const QString SYSTEM_TABLET = "com.highfidelity.interface.tablet.system"; + auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>(); + auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet(SYSTEM_TABLET)); + auto hmd = DependencyManager::get<HMDScriptingInterface>(); + + if (tablet->getToolbarMode()) { + DependencyManager::get<OffscreenUi>()->show(url, "AvatarPackager", packageModelDialogCreated); + } else { + static const QUrl url("hifi/tablet/AvatarPackager.qml"); + if (!tablet->isPathLoaded(url)) { + tablet->getTabletSurface()->getSurfaceContext()->setContextProperty("AvatarPackagerCore", this); + tablet->pushOntoStack(url); + } + } return true; } -AvatarProject* AvatarPackager::openAvatarProject(const QString& avatarProjectFSTPath) { - if (_currentAvatarProject) { - _currentAvatarProject->deleteLater(); - } - _currentAvatarProject = AvatarProject::openAvatarProject(avatarProjectFSTPath); - if (_currentAvatarProject) { - addRecentProject(avatarProjectFSTPath, _currentAvatarProject->getProjectName()); - } - qDebug() << "_currentAvatarProject has" << (QQmlEngine::objectOwnership(_currentAvatarProject) == QQmlEngine::CppOwnership ? "CPP" : "JS") << "OWNERSHIP"; - QQmlEngine::setObjectOwnership(_currentAvatarProject, QQmlEngine::CppOwnership); - emit avatarProjectChanged(); - return _currentAvatarProject; -} - -void AvatarPackager::addRecentProject(QString fstPath, QString projectName) { +void AvatarPackager::addCurrentProjectToRecentProjects() { const int MAX_RECENT_PROJECTS = 5; + const QString& fstPath = _currentAvatarProject->getFSTPath(); auto removeProjects = QVector<RecentAvatarProject>(); for (auto project : _recentProjects) { if (project.getProjectFSTPath() == fstPath) { @@ -73,27 +77,61 @@ void AvatarPackager::addRecentProject(QString fstPath, QString projectName) { _recentProjects.removeOne(removeProject); } - RecentAvatarProject newRecentProject = RecentAvatarProject(projectName, fstPath); + const auto newRecentProject = RecentAvatarProject(_currentAvatarProject->getProjectName(), fstPath); _recentProjects.prepend(newRecentProject); while (_recentProjects.size() > MAX_RECENT_PROJECTS) { _recentProjects.pop_back(); } - _recentProjectsSetting.set(recentProjectsToVariantList()); + _recentProjectsSetting.set(recentProjectsToVariantList(false)); emit recentProjectsChanged(); } +QVariantList AvatarPackager::recentProjectsToVariantList(bool includeProjectPaths) { + QVariantList result; + for (const auto& project : _recentProjects) { + QVariantMap projectVariant; + projectVariant.insert("name", project.getProjectName()); + projectVariant.insert("path", project.getProjectFSTPath()); + if (includeProjectPaths) { + projectVariant.insert("projectPath", project.getProjectPath()); + } + result.append(projectVariant); + } + + return result; +} +void AvatarPackager::recentProjectsFromVariantList(QVariantList projectsVariant) { + _recentProjects.clear(); + for (const auto& projectVariant : projectsVariant) { + auto map = projectVariant.toMap(); + _recentProjects.append(RecentAvatarProject(map.value("name").toString(), map.value("path").toString())); + } +} + +AvatarProject* AvatarPackager::openAvatarProject(const QString& avatarProjectFSTPath) { + setAvatarProject(AvatarProject::openAvatarProject(avatarProjectFSTPath)); + return _currentAvatarProject; +} + AvatarProject* AvatarPackager::createAvatarProject(const QString& projectsFolder, const QString& avatarProjectName, const QString& avatarModelPath, const QString& textureFolder) { + setAvatarProject(AvatarProject::createAvatarProject(projectsFolder, avatarProjectName, avatarModelPath, textureFolder)); + return _currentAvatarProject; +} + +void AvatarPackager::setAvatarProject(AvatarProject* avatarProject) { + if (avatarProject == _currentAvatarProject) { + return; + } if (_currentAvatarProject) { _currentAvatarProject->deleteLater(); } - _currentAvatarProject = AvatarProject::createAvatarProject(projectsFolder, avatarProjectName, avatarModelPath, textureFolder); + _currentAvatarProject = avatarProject; if (_currentAvatarProject) { - addRecentProject(_currentAvatarProject->getFSTPath(), _currentAvatarProject->getProjectName()); + addCurrentProjectToRecentProjects(); + connect(_currentAvatarProject, &AvatarProject::nameChanged, this, &AvatarPackager::addCurrentProjectToRecentProjects); + QQmlEngine::setObjectOwnership(_currentAvatarProject, QQmlEngine::CppOwnership); } - qDebug() << "_currentAvatarProject has" << (QQmlEngine::objectOwnership(_currentAvatarProject) == QQmlEngine::CppOwnership ? "CPP" : "JS") << "OWNERSHIP"; - QQmlEngine::setObjectOwnership(_currentAvatarProject, QQmlEngine::CppOwnership); emit avatarProjectChanged(); - return _currentAvatarProject; } diff --git a/interface/src/avatar/AvatarPackager.h b/interface/src/avatar/AvatarPackager.h index 57cbf046a7..343176497f 100644 --- a/interface/src/avatar/AvatarPackager.h +++ b/interface/src/avatar/AvatarPackager.h @@ -35,12 +35,14 @@ public: _projectFSTPath = other._projectFSTPath; } - ~RecentAvatarProject() = default; - QString getProjectName() const { return _projectName; } QString getProjectFSTPath() const { return _projectFSTPath; } + QString getProjectPath() const { + return QFileInfo(_projectFSTPath).absoluteDir().absolutePath(); + } + bool operator==(const RecentAvatarProject& other) const { return _projectName == other._projectName && _projectFSTPath == other._projectFSTPath; } @@ -72,31 +74,18 @@ signals: private: Q_INVOKABLE AvatarProject* getAvatarProject() const { return _currentAvatarProject; }; Q_INVOKABLE QString getAvatarProjectsPath() const { return AvatarProject::getDefaultProjectsPath(); } - Q_INVOKABLE QVariantList getRecentProjects() { return recentProjectsToVariantList(); } + Q_INVOKABLE QVariantList getRecentProjects() { return recentProjectsToVariantList(true); } - void addRecentProject(QString fstPath, QString projectName); + void setAvatarProject(AvatarProject* avatarProject); + + void addCurrentProjectToRecentProjects(); AvatarProject* _currentAvatarProject{ nullptr }; QVector<RecentAvatarProject> _recentProjects; - QVariantList recentProjectsToVariantList() { - QVariantList result; - for (const auto& project : _recentProjects) { - QVariantMap projectVariant; - projectVariant.insert("name", project.getProjectName()); - projectVariant.insert("path", project.getProjectFSTPath()); - result.append(projectVariant); - } - - return result; - } - void recentProjectsFromVariantList(QVariantList projectsVariant) { - _recentProjects.clear(); - for (const auto& projectVariant : projectsVariant) { - auto map = projectVariant.toMap(); - _recentProjects.append(RecentAvatarProject(map.value("name").toString(), map.value("path").toString())); - } - } + QVariantList recentProjectsToVariantList(bool includeProjectPaths); + + void recentProjectsFromVariantList(QVariantList projectsVariant); Setting::Handle<QVariantList> _recentProjectsSetting{ "io.highfidelity.avatarPackager.recentProjects", QVariantList() }; diff --git a/interface/src/avatar/AvatarProject.cpp b/interface/src/avatar/AvatarProject.cpp index 09d60163b6..0c29bcf906 100644 --- a/interface/src/avatar/AvatarProject.cpp +++ b/interface/src/avatar/AvatarProject.cpp @@ -81,18 +81,18 @@ AvatarProject* AvatarProject::createAvatarProject(const QString& projectsFolder, } }; - foreach(const HFMMaterial mat, hfmModel->materials) { - addTextureToList(mat.normalTexture); - addTextureToList(mat.albedoTexture); - addTextureToList(mat.opacityTexture); - addTextureToList(mat.glossTexture); - addTextureToList(mat.roughnessTexture); - addTextureToList(mat.specularTexture); - addTextureToList(mat.metallicTexture); - addTextureToList(mat.emissiveTexture); - addTextureToList(mat.occlusionTexture); - addTextureToList(mat.scatteringTexture); - addTextureToList(mat.lightmapTexture); + foreach(const HFMMaterial material, hfmModel->materials) { + addTextureToList(material.normalTexture); + addTextureToList(material.albedoTexture); + addTextureToList(material.opacityTexture); + addTextureToList(material.glossTexture); + addTextureToList(material.roughnessTexture); + addTextureToList(material.specularTexture); + addTextureToList(material.metallicTexture); + addTextureToList(material.emissiveTexture); + addTextureToList(material.occlusionTexture); + addTextureToList(material.scatteringTexture); + addTextureToList(material.lightmapTexture); } QDir textureDir(textureFolder.isEmpty() ? fbxInfo.absoluteDir() : textureFolder); @@ -152,7 +152,6 @@ AvatarProject::AvatarProject(FST* fst) { _fst->setScriptPaths(getScriptPaths(QDir(_directory.path() + "/scripts"))); _fst->write(); - //_projectFiles = _directory.entryList(); refreshProjectFiles(); _projectPath = fileInfo.absoluteDir().absolutePath(); diff --git a/interface/src/avatar/AvatarProject.h b/interface/src/avatar/AvatarProject.h index e950fd7379..469324004d 100644 --- a/interface/src/avatar/AvatarProject.h +++ b/interface/src/avatar/AvatarProject.h @@ -28,10 +28,10 @@ class AvatarProject : public QObject { Q_PROPERTY(QStringList projectFiles READ getProjectFiles NOTIFY projectFilesChanged) - Q_PROPERTY(QString projectFolderPath READ getProjectPath) - Q_PROPERTY(QString projectFSTPath READ getFSTPath) - Q_PROPERTY(QString projectFBXPath READ getFBXPath) - Q_PROPERTY(QString name READ getProjectName NOTIFY nameChanged) + Q_PROPERTY(QString projectFolderPath READ getProjectPath CONSTANT) + Q_PROPERTY(QString projectFSTPath READ getFSTPath CONSTANT) + Q_PROPERTY(QString projectFBXPath READ getFBXPath CONSTANT) + Q_PROPERTY(QString name READ getProjectName WRITE setProjectName NOTIFY nameChanged) public: Q_INVOKABLE MarketplaceItemUploader* upload(bool updateExisting); @@ -39,6 +39,13 @@ public: Q_INVOKABLE QStringList getProjectFiles() const; Q_INVOKABLE QString getProjectName() const { return _fst->getName(); } + Q_INVOKABLE void setProjectName(const QString& newProjectName) { + if (newProjectName.trimmed().length() > 0) { + _fst->setName(newProjectName); + _fst->write(); + emit nameChanged(); + } + } Q_INVOKABLE QString getProjectPath() const { return _projectPath; } Q_INVOKABLE QString getFSTPath() const { return _fst->getPath(); } Q_INVOKABLE QString getFBXPath() const { return _fst->getModelPath(); } diff --git a/libraries/fbx/src/FST.cpp b/libraries/fbx/src/FST.cpp index 5d3737319f..9510ca5962 100644 --- a/libraries/fbx/src/FST.cpp +++ b/libraries/fbx/src/FST.cpp @@ -15,7 +15,7 @@ #include <QFileInfo> #include <hfm/HFM.h> -FST::FST(const QString& fstPath, QVariantHash data) : _fstPath(fstPath) { +FST::FST(QString fstPath, QVariantHash data) : _fstPath(std::move(fstPath)) { auto setValueFromFSTData = [&data] (const QString& propertyID, auto &targetProperty) mutable { if (data.contains(propertyID)) { @@ -38,7 +38,7 @@ FST::FST(const QString& fstPath, QVariantHash data) : _fstPath(fstPath) { _other = data; } -FST* FST::createFSTFromModel(QString fstPath, QString modelFilePath, const hfm::Model& hfmModel) { +FST* FST::createFSTFromModel(const QString& fstPath, const QString& modelFilePath, const hfm::Model& hfmModel) { QVariantHash mapping; // mixamo files - in the event that a mixamo file was edited by some other tool, it's likely the applicationName will diff --git a/libraries/fbx/src/FST.h b/libraries/fbx/src/FST.h index 6fd654987e..6104130512 100644 --- a/libraries/fbx/src/FST.h +++ b/libraries/fbx/src/FST.h @@ -26,9 +26,9 @@ class FST : public QObject { Q_PROPERTY(QUuid marketplaceID READ getMarketplaceID) Q_PROPERTY(bool hasMarketplaceID READ getHasMarketplaceID NOTIFY marketplaceIDChanged) public: - FST(const QString& fstPath, QVariantHash data); + FST(QString fstPath, QVariantHash data); - static FST* createFSTFromModel(QString fstPath, QString modelFilePath, const hfm::Model& hfmModel); + static FST* createFSTFromModel(const QString& fstPath, const QString& modelFilePath, const hfm::Model& hfmModel); QString absoluteModelPath() const; From 63ea3009217957aff86d0a70593662003658381e Mon Sep 17 00:00:00 2001 From: NissimHadar <nissim.hadar@gmail.com> Date: Sat, 29 Dec 2018 17:24:44 -0800 Subject: [PATCH 051/230] Can get CPU brand. --- .../PlatformInfoScriptingInterface.cpp | 34 +++++++++++++++++++ .../PlatformInfoScriptingInterface.h | 3 ++ 2 files changed, 37 insertions(+) diff --git a/interface/src/scripting/PlatformInfoScriptingInterface.cpp b/interface/src/scripting/PlatformInfoScriptingInterface.cpp index e2fea92ed3..a6ef660b27 100644 --- a/interface/src/scripting/PlatformInfoScriptingInterface.cpp +++ b/interface/src/scripting/PlatformInfoScriptingInterface.cpp @@ -21,3 +21,37 @@ QString PlatformInfoScriptingInterface::getOperatingSystemType() { return "UNKNOWN"; #endif } + +QString PlatformInfoScriptingInterface::getCPUBrand() { + int CPUInfo[4] = { -1 }; + unsigned nExIds, i = 0; + char CPUBrandString[0x40]; + // Get the information associated with each extended ID. + __cpuid(CPUInfo, 0x80000000); + nExIds = CPUInfo[0]; + for (i = 0x80000000; i <= nExIds; ++i) { + __cpuid(CPUInfo, i); + // Interpret CPU brand string + if (i == 0x80000002) { + memcpy(CPUBrandString, CPUInfo, sizeof(CPUInfo)); + } else if (i == 0x80000003) { + memcpy(CPUBrandString + 16, CPUInfo, sizeof(CPUInfo)); + } else if (i == 0x80000004) { + memcpy(CPUBrandString + 32, CPUInfo, sizeof(CPUInfo)); + } + } + + return CPUBrandString; + //////string includes manufacturer, model and clockspeed + ////cout << "CPU Type: " << CPUBrandString << endl; + + + ////SYSTEM_INFO sysInfo; + ////GetSystemInfo(&sysInfo); + ////cout << "Number of Cores: " << sysInfo.dwNumberOfProcessors << endl; + + ////MEMORYSTATUSEX statex; + ////statex.dwLength = sizeof (statex); + ////GlobalMemoryStatusEx(&statex); + ////cout << "Total System Memory: " << (statex.ullTotalPhys / 1024) / 1024 << "MB" << endl; +} \ No newline at end of file diff --git a/interface/src/scripting/PlatformInfoScriptingInterface.h b/interface/src/scripting/PlatformInfoScriptingInterface.h index dc88e1963f..d8cba43884 100644 --- a/interface/src/scripting/PlatformInfoScriptingInterface.h +++ b/interface/src/scripting/PlatformInfoScriptingInterface.h @@ -28,7 +28,10 @@ public slots: /**jsdoc * Returns the CPU brand + *function PlatformInfo.getCPUBrand() + * @returns {string} brand of CPU */ + QString getCPUBrand(); }; #endif // hifi_PlatformInfoScriptingInterface_h From 3a9214747a99f379341b35beb92a71c56309880f Mon Sep 17 00:00:00 2001 From: NissimHadar <nissim.hadar@gmail.com> Date: Sat, 29 Dec 2018 20:49:54 -0800 Subject: [PATCH 052/230] Can read number of logical processors --- .../PlatformInfoScriptingInterface.cpp | 26 +++++++++++++------ .../PlatformInfoScriptingInterface.h | 7 +++++ 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/interface/src/scripting/PlatformInfoScriptingInterface.cpp b/interface/src/scripting/PlatformInfoScriptingInterface.cpp index a6ef660b27..647262c547 100644 --- a/interface/src/scripting/PlatformInfoScriptingInterface.cpp +++ b/interface/src/scripting/PlatformInfoScriptingInterface.cpp @@ -7,6 +7,10 @@ // #include "PlatformInfoScriptingInterface.h" +#ifdef Q_OS_WIN +#include <Windows.h> +#endif + PlatformInfoScriptingInterface* PlatformInfoScriptingInterface::getInstance() { static PlatformInfoScriptingInterface sharedInstance; return &sharedInstance; @@ -23,6 +27,7 @@ QString PlatformInfoScriptingInterface::getOperatingSystemType() { } QString PlatformInfoScriptingInterface::getCPUBrand() { +#ifdef Q_OS_WIN int CPUInfo[4] = { -1 }; unsigned nExIds, i = 0; char CPUBrandString[0x40]; @@ -42,16 +47,21 @@ QString PlatformInfoScriptingInterface::getCPUBrand() { } return CPUBrandString; - //////string includes manufacturer, model and clockspeed - ////cout << "CPU Type: " << CPUBrandString << endl; - - - ////SYSTEM_INFO sysInfo; - ////GetSystemInfo(&sysInfo); - ////cout << "Number of Cores: " << sysInfo.dwNumberOfProcessors << endl; - +#else + return "NOT IMPLEMENTED"; +#endif +} ////MEMORYSTATUSEX statex; ////statex.dwLength = sizeof (statex); ////GlobalMemoryStatusEx(&statex); ////cout << "Total System Memory: " << (statex.ullTotalPhys / 1024) / 1024 << "MB" << endl; + +int PlatformInfoScriptingInterface::getNumCores() { +#ifdef Q_OS_WIN + SYSTEM_INFO sysInfo; + GetSystemInfo(&sysInfo); + return sysInfo.dwNumberOfProcessors; +#else + return -1; +#endif } \ No newline at end of file diff --git a/interface/src/scripting/PlatformInfoScriptingInterface.h b/interface/src/scripting/PlatformInfoScriptingInterface.h index d8cba43884..47c8401455 100644 --- a/interface/src/scripting/PlatformInfoScriptingInterface.h +++ b/interface/src/scripting/PlatformInfoScriptingInterface.h @@ -32,6 +32,13 @@ public slots: * @returns {string} brand of CPU */ QString getCPUBrand(); + + /**jsdoc + * Returns the number of CPU cores + *function PlatformInfo.getNumCores() + * @returns {int} number of CPU cores + */ + int getNumCores(); }; #endif // hifi_PlatformInfoScriptingInterface_h From 6debd996c5a7d02c8e19bec3e28146661e064955 Mon Sep 17 00:00:00 2001 From: NissimHadar <nissim.hadar@gmail.com> Date: Sat, 29 Dec 2018 21:59:18 -0800 Subject: [PATCH 053/230] Added method to get total system memory in MB. --- .../PlatformInfoScriptingInterface.cpp | 21 ++++++++++++------- .../PlatformInfoScriptingInterface.h | 15 +++++++++---- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/interface/src/scripting/PlatformInfoScriptingInterface.cpp b/interface/src/scripting/PlatformInfoScriptingInterface.cpp index 647262c547..3ffb00e4b8 100644 --- a/interface/src/scripting/PlatformInfoScriptingInterface.cpp +++ b/interface/src/scripting/PlatformInfoScriptingInterface.cpp @@ -7,6 +7,8 @@ // #include "PlatformInfoScriptingInterface.h" +# include <thread> + #ifdef Q_OS_WIN #include <Windows.h> #endif @@ -34,6 +36,7 @@ QString PlatformInfoScriptingInterface::getCPUBrand() { // Get the information associated with each extended ID. __cpuid(CPUInfo, 0x80000000); nExIds = CPUInfo[0]; + for (i = 0x80000000; i <= nExIds; ++i) { __cpuid(CPUInfo, i); // Interpret CPU brand string @@ -51,16 +54,18 @@ QString PlatformInfoScriptingInterface::getCPUBrand() { return "NOT IMPLEMENTED"; #endif } - ////MEMORYSTATUSEX statex; - ////statex.dwLength = sizeof (statex); - ////GlobalMemoryStatusEx(&statex); - ////cout << "Total System Memory: " << (statex.ullTotalPhys / 1024) / 1024 << "MB" << endl; -int PlatformInfoScriptingInterface::getNumCores() { +unsigned int PlatformInfoScriptingInterface::getNumLogicalCores() { + + return std::thread::hardware_concurrency(); +} + +int PlatformInfoScriptingInterface::getTotalSystemMemoryMB() { #ifdef Q_OS_WIN - SYSTEM_INFO sysInfo; - GetSystemInfo(&sysInfo); - return sysInfo.dwNumberOfProcessors; + MEMORYSTATUSEX statex; + statex.dwLength = sizeof (statex); + GlobalMemoryStatusEx(&statex); + return statex.ullTotalPhys / 1024 / 1024; #else return -1; #endif diff --git a/interface/src/scripting/PlatformInfoScriptingInterface.h b/interface/src/scripting/PlatformInfoScriptingInterface.h index 47c8401455..f0b8122fa5 100644 --- a/interface/src/scripting/PlatformInfoScriptingInterface.h +++ b/interface/src/scripting/PlatformInfoScriptingInterface.h @@ -34,11 +34,18 @@ public slots: QString getCPUBrand(); /**jsdoc - * Returns the number of CPU cores - *function PlatformInfo.getNumCores() - * @returns {int} number of CPU cores + * Returns the number of logical CPU cores + *function PlatformInfo.getNumLogicalCores() + * @returns {int} number of logical CPU cores */ - int getNumCores(); + unsigned int getNumLogicalCores(); + + /**jsdoc + * Returns the total system memory in megabyte + *function PlatformInfo.getTotalSystemMemory() + * @returns {int} size of memory in megabytes + */ + int getTotalSystemMemoryMB(); }; #endif // hifi_PlatformInfoScriptingInterface_h From 40e6f1cad5237dcde77df83906fbd3c69722e4e5 Mon Sep 17 00:00:00 2001 From: David Rowe <david@ctrlaltstudio.com> Date: Wed, 19 Dec 2018 17:14:30 +1300 Subject: [PATCH 054/230] Fix Controller mouse move missing values during rapid movement --- .../src/input-plugins/KeyboardMouseDevice.cpp | 15 ++++++++------- .../src/input-plugins/KeyboardMouseDevice.h | 1 + 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp index ddd51e9b9b..2ff0e0ca16 100755 --- a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp +++ b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp @@ -29,6 +29,14 @@ void KeyboardMouseDevice::pluginUpdate(float deltaTime, const controller::InputC _inputDevice->_axisStateMap[MOUSE_AXIS_X] = _lastCursor.x(); _inputDevice->_axisStateMap[MOUSE_AXIS_Y] = _lastCursor.y(); + + QPoint currentMove = _lastCursor - _previousCursor; + _inputDevice->_axisStateMap[MOUSE_AXIS_X_POS] = (currentMove.x() > 0 ? currentMove.x() : 0.0f); + _inputDevice->_axisStateMap[MOUSE_AXIS_X_NEG] = (currentMove.x() < 0 ? -currentMove.x() : 0.0f); + // Y mouse is inverted positive is pointing up the screen + _inputDevice->_axisStateMap[MOUSE_AXIS_Y_POS] = (currentMove.y() < 0 ? -currentMove.y() : 0.0f); + _inputDevice->_axisStateMap[MOUSE_AXIS_Y_NEG] = (currentMove.y() > 0 ? currentMove.y() : 0.0f); + _previousCursor = _lastCursor; }); // For touch event, we need to check that the last event is not too long ago @@ -102,13 +110,6 @@ void KeyboardMouseDevice::eraseMouseClicked() { void KeyboardMouseDevice::mouseMoveEvent(QMouseEvent* event) { QPoint currentPos = event->pos(); - QPoint currentMove = currentPos - _lastCursor; - - _inputDevice->_axisStateMap[MOUSE_AXIS_X_POS] = (currentMove.x() > 0 ? currentMove.x() : 0.0f); - _inputDevice->_axisStateMap[MOUSE_AXIS_X_NEG] = (currentMove.x() < 0 ? -currentMove.x() : 0.0f); - // Y mouse is inverted positive is pointing up the screen - _inputDevice->_axisStateMap[MOUSE_AXIS_Y_POS] = (currentMove.y() < 0 ? -currentMove.y() : 0.0f); - _inputDevice->_axisStateMap[MOUSE_AXIS_Y_NEG] = (currentMove.y() > 0 ? currentMove.y() : 0.0f); // FIXME - this has the characteristic that it will show large jumps when you move the cursor // outside of the application window, because we don't get MouseEvents when the cursor is outside diff --git a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.h b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.h index b94acb8b71..0b0ae5a5bb 100644 --- a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.h +++ b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.h @@ -118,6 +118,7 @@ public: protected: QPoint _lastCursor; + QPoint _previousCursor; QPoint _mousePressPos; quint64 _mousePressTime; bool _mouseMoved; From 4aa26715c0f85d34fc793e66bf77e31cc5cabe85 Mon Sep 17 00:00:00 2001 From: David Rowe <david@ctrlaltstudio.com> Date: Wed, 19 Dec 2018 17:21:48 +1300 Subject: [PATCH 055/230] Remove unused variable --- .../input-plugins/src/input-plugins/KeyboardMouseDevice.cpp | 3 --- .../input-plugins/src/input-plugins/KeyboardMouseDevice.h | 1 - 2 files changed, 4 deletions(-) diff --git a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp index 2ff0e0ca16..c14db86ae9 100755 --- a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp +++ b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp @@ -81,7 +81,6 @@ void KeyboardMouseDevice::mousePressEvent(QMouseEvent* event) { } _lastCursor = event->pos(); _mousePressTime = usecTimestampNow(); - _mouseMoved = false; _mousePressPos = event->pos(); _clickDeadspotActive = true; @@ -116,8 +115,6 @@ void KeyboardMouseDevice::mouseMoveEvent(QMouseEvent* event) { // of the application window. _lastCursor = currentPos; - _mouseMoved = true; - const int CLICK_EVENT_DEADSPOT = 6; // pixels if (_clickDeadspotActive && (_mousePressPos - currentPos).manhattanLength() > CLICK_EVENT_DEADSPOT) { _clickDeadspotActive = false; diff --git a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.h b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.h index 0b0ae5a5bb..45ca496c11 100644 --- a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.h +++ b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.h @@ -121,7 +121,6 @@ protected: QPoint _previousCursor; QPoint _mousePressPos; quint64 _mousePressTime; - bool _mouseMoved; bool _clickDeadspotActive; glm::vec2 _lastTouch; std::shared_ptr<InputDevice> _inputDevice { std::make_shared<InputDevice>() }; From 84c6bb47976da7a2725582c68064d0ec9765783a Mon Sep 17 00:00:00 2001 From: David Rowe <david@ctrlaltstudio.com> Date: Thu, 20 Dec 2018 14:34:12 +1300 Subject: [PATCH 056/230] Introduce optional timestamp into internal Controller axis values This can be used to determine if consecutive identifical values should be output. --- .../controllers/src/controllers/AxisValue.cpp | 18 +++++++++++ .../controllers/src/controllers/AxisValue.h | 31 +++++++++++++++++++ .../src/controllers/InputDevice.cpp | 6 ++-- .../controllers/src/controllers/InputDevice.h | 5 +-- .../src/input-plugins/KeyboardMouseDevice.cpp | 30 +++++++++--------- .../src/input-plugins/TouchscreenDevice.cpp | 13 ++++---- .../TouchscreenVirtualPadDevice.cpp | 18 ++++++----- plugins/hifiSdl2/src/Joystick.cpp | 6 ++-- .../oculus/src/OculusControllerManager.cpp | 16 +++++----- plugins/openvr/src/ViveControllerManager.cpp | 14 ++++----- 10 files changed, 106 insertions(+), 51 deletions(-) create mode 100644 libraries/controllers/src/controllers/AxisValue.cpp create mode 100644 libraries/controllers/src/controllers/AxisValue.h diff --git a/libraries/controllers/src/controllers/AxisValue.cpp b/libraries/controllers/src/controllers/AxisValue.cpp new file mode 100644 index 0000000000..49201dbf7a --- /dev/null +++ b/libraries/controllers/src/controllers/AxisValue.cpp @@ -0,0 +1,18 @@ +// +// AxisValue.cpp +// +// Created by David Rowe on 14 Dec 2018. +// Copyright 2018 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#include "AxisValue.h" + +namespace controller { + + AxisValue::AxisValue(const float value, const quint64 timestamp) : + value(value), timestamp(timestamp) { } + +} diff --git a/libraries/controllers/src/controllers/AxisValue.h b/libraries/controllers/src/controllers/AxisValue.h new file mode 100644 index 0000000000..67fd5736b8 --- /dev/null +++ b/libraries/controllers/src/controllers/AxisValue.h @@ -0,0 +1,31 @@ +// +// AxisValue.h +// +// Created by David Rowe on 13 Dec 2018. +// Copyright 2018 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#pragma once +#ifndef hifi_controllers_AxisValue_h +#define hifi_controllers_AxisValue_h + +#include <QtCore/qglobal.h> + +namespace controller { + + struct AxisValue { + public: + float value { 0.0f }; + // The value can be timestamped to determine if consecutive identical values should be output (e.g., mouse movement). + quint64 timestamp { 0 }; + + AxisValue() {} + AxisValue(const float value, const quint64 timestamp); + }; + +} + +#endif // hifi_controllers_AxisValue_h diff --git a/libraries/controllers/src/controllers/InputDevice.cpp b/libraries/controllers/src/controllers/InputDevice.cpp index a907842a17..e46bb3c8b5 100644 --- a/libraries/controllers/src/controllers/InputDevice.cpp +++ b/libraries/controllers/src/controllers/InputDevice.cpp @@ -26,12 +26,12 @@ namespace controller { return 0.0f; } - float InputDevice::getAxis(int channel) const { + AxisValue InputDevice::getAxis(int channel) const { auto axis = _axisStateMap.find(channel); if (axis != _axisStateMap.end()) { return (*axis).second; } else { - return 0.0f; + return AxisValue(); } } @@ -71,7 +71,7 @@ namespace controller { float InputDevice::getValue(ChannelType channelType, uint16_t channel) const { switch (channelType) { case ChannelType::AXIS: - return getAxis(channel); + return getAxis(channel).value; case ChannelType::BUTTON: return getButton(channel); diff --git a/libraries/controllers/src/controllers/InputDevice.h b/libraries/controllers/src/controllers/InputDevice.h index 7479ef7b75..1d4ab1c5d8 100644 --- a/libraries/controllers/src/controllers/InputDevice.h +++ b/libraries/controllers/src/controllers/InputDevice.h @@ -16,6 +16,7 @@ #include <QtCore/QString> +#include "AxisValue.h" #include "Pose.h" #include "Input.h" #include "StandardControls.h" @@ -103,12 +104,12 @@ public: using Pointer = std::shared_ptr<InputDevice>; typedef std::unordered_set<int> ButtonPressedMap; - typedef std::map<int, float> AxisStateMap; + typedef std::map<int, AxisValue> AxisStateMap; typedef std::map<int, Pose> PoseStateMap; // Get current state for each channel float getButton(int channel) const; - float getAxis(int channel) const; + AxisValue getAxis(int channel) const; Pose getPose(int channel) const; float getValue(const Input& input) const; diff --git a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp index c14db86ae9..ebc5a5cd3e 100755 --- a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp +++ b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp @@ -27,15 +27,15 @@ void KeyboardMouseDevice::pluginUpdate(float deltaTime, const controller::InputC _inputDevice->update(deltaTime, inputCalibrationData); eraseMouseClicked(); - _inputDevice->_axisStateMap[MOUSE_AXIS_X] = _lastCursor.x(); - _inputDevice->_axisStateMap[MOUSE_AXIS_Y] = _lastCursor.y(); + _inputDevice->_axisStateMap[MOUSE_AXIS_X].value = _lastCursor.x(); + _inputDevice->_axisStateMap[MOUSE_AXIS_Y].value = _lastCursor.y(); QPoint currentMove = _lastCursor - _previousCursor; - _inputDevice->_axisStateMap[MOUSE_AXIS_X_POS] = (currentMove.x() > 0 ? currentMove.x() : 0.0f); - _inputDevice->_axisStateMap[MOUSE_AXIS_X_NEG] = (currentMove.x() < 0 ? -currentMove.x() : 0.0f); + _inputDevice->_axisStateMap[MOUSE_AXIS_X_POS].value = (currentMove.x() > 0 ? currentMove.x() : 0.0f); + _inputDevice->_axisStateMap[MOUSE_AXIS_X_NEG].value = (currentMove.x() < 0 ? -currentMove.x() : 0.0f); // Y mouse is inverted positive is pointing up the screen - _inputDevice->_axisStateMap[MOUSE_AXIS_Y_POS] = (currentMove.y() < 0 ? -currentMove.y() : 0.0f); - _inputDevice->_axisStateMap[MOUSE_AXIS_Y_NEG] = (currentMove.y() > 0 ? currentMove.y() : 0.0f); + _inputDevice->_axisStateMap[MOUSE_AXIS_Y_POS].value = (currentMove.y() < 0 ? -currentMove.y() : 0.0f); + _inputDevice->_axisStateMap[MOUSE_AXIS_Y_NEG].value = (currentMove.y() > 0 ? currentMove.y() : 0.0f); _previousCursor = _lastCursor; }); @@ -124,10 +124,11 @@ void KeyboardMouseDevice::mouseMoveEvent(QMouseEvent* event) { void KeyboardMouseDevice::wheelEvent(QWheelEvent* event) { auto currentMove = event->angleDelta() / 120.0f; - _inputDevice->_axisStateMap[_inputDevice->makeInput(MOUSE_AXIS_WHEEL_X_POS).getChannel()] = (currentMove.x() > 0 ? currentMove.x() : 0.0f); - _inputDevice->_axisStateMap[_inputDevice->makeInput(MOUSE_AXIS_WHEEL_X_NEG).getChannel()] = (currentMove.x() < 0 ? -currentMove.x() : 0.0f); - _inputDevice->_axisStateMap[_inputDevice->makeInput(MOUSE_AXIS_WHEEL_Y_POS).getChannel()] = (currentMove.y() > 0 ? currentMove.y() : 0.0f); - _inputDevice->_axisStateMap[_inputDevice->makeInput(MOUSE_AXIS_WHEEL_Y_NEG).getChannel()] = (currentMove.y() < 0 ? -currentMove.y() : 0.0f); + // ####### TODO: Use AxisValue timestamps? + _inputDevice->_axisStateMap[_inputDevice->makeInput(MOUSE_AXIS_WHEEL_X_POS).getChannel()].value = (currentMove.x() > 0 ? currentMove.x() : 0, 0); + _inputDevice->_axisStateMap[_inputDevice->makeInput(MOUSE_AXIS_WHEEL_X_NEG).getChannel()].value = (currentMove.x() < 0 ? -currentMove.x() : 0, 0); + _inputDevice->_axisStateMap[_inputDevice->makeInput(MOUSE_AXIS_WHEEL_Y_POS).getChannel()].value = (currentMove.y() > 0 ? currentMove.y() : 0); + _inputDevice->_axisStateMap[_inputDevice->makeInput(MOUSE_AXIS_WHEEL_Y_NEG).getChannel()].value = (currentMove.y() < 0 ? -currentMove.y() : 0); } glm::vec2 evalAverageTouchPoints(const QList<QTouchEvent::TouchPoint>& points) { @@ -167,11 +168,12 @@ void KeyboardMouseDevice::touchUpdateEvent(const QTouchEvent* event) { } else { auto currentMove = currentPos - _lastTouch; - _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_AXIS_X_POS).getChannel()] = (currentMove.x > 0 ? currentMove.x : 0.0f); - _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_AXIS_X_NEG).getChannel()] = (currentMove.x < 0 ? -currentMove.x : 0.0f); + // ####### TODO: Use AxisValue timestamp fields? + _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_AXIS_X_POS).getChannel()].value = (currentMove.x > 0 ? currentMove.x : 0.0f); + _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_AXIS_X_NEG).getChannel()].value = (currentMove.x < 0 ? -currentMove.x : 0.0f); // Y mouse is inverted positive is pointing up the screen - _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_AXIS_Y_POS).getChannel()] = (currentMove.y < 0 ? -currentMove.y : 0.0f); - _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_AXIS_Y_NEG).getChannel()] = (currentMove.y > 0 ? currentMove.y : 0.0f); + _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_AXIS_Y_POS).getChannel()].value = (currentMove.y < 0 ? -currentMove.y : 0.0f); + _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_AXIS_Y_NEG).getChannel()].value = (currentMove.y > 0 ? currentMove.y : 0.0f); } _lastTouch = currentPos; diff --git a/libraries/input-plugins/src/input-plugins/TouchscreenDevice.cpp b/libraries/input-plugins/src/input-plugins/TouchscreenDevice.cpp index 20952df4d7..804ab3585b 100644 --- a/libraries/input-plugins/src/input-plugins/TouchscreenDevice.cpp +++ b/libraries/input-plugins/src/input-plugins/TouchscreenDevice.cpp @@ -38,28 +38,29 @@ void TouchscreenDevice::pluginUpdate(float deltaTime, const controller::InputCal _inputDevice->update(deltaTime, inputCalibrationData); }); + // ####### TODO: Use AxisValue timestamp fields? float distanceScaleX, distanceScaleY; if (_touchPointCount == 1) { if (_firstTouchVec.x < _currentTouchVec.x) { distanceScaleX = (_currentTouchVec.x - _firstTouchVec.x) / _screenDPIScale.x; - _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_AXIS_X_POS).getChannel()] = distanceScaleX; + _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_AXIS_X_POS).getChannel()].value = distanceScaleX; } else if (_firstTouchVec.x > _currentTouchVec.x) { distanceScaleX = (_firstTouchVec.x - _currentTouchVec.x) / _screenDPIScale.x; - _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_AXIS_X_NEG).getChannel()] = distanceScaleX; + _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_AXIS_X_NEG).getChannel()].value = distanceScaleX; } // Y axis is inverted, positive is pointing up the screen if (_firstTouchVec.y > _currentTouchVec.y) { distanceScaleY = (_firstTouchVec.y - _currentTouchVec.y) / _screenDPIScale.y; - _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_AXIS_Y_POS).getChannel()] = distanceScaleY; + _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_AXIS_Y_POS).getChannel()].value = distanceScaleY; } else if (_firstTouchVec.y < _currentTouchVec.y) { distanceScaleY = (_currentTouchVec.y - _firstTouchVec.y) / _screenDPIScale.y; - _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_AXIS_Y_NEG).getChannel()] = distanceScaleY; + _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_AXIS_Y_NEG).getChannel()].value = distanceScaleY; } } else if (_touchPointCount == 2) { if (_pinchScale > _lastPinchScale && _pinchScale != 0) { - _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_GESTURE_PINCH_POS).getChannel()] = 1.0f; + _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_GESTURE_PINCH_POS).getChannel()].value = 1.0f; } else if (_pinchScale != 0) { - _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_GESTURE_PINCH_NEG).getChannel()] = 1.0f; + _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_GESTURE_PINCH_NEG).getChannel()].value = 1.0; } _lastPinchScale = _pinchScale; } diff --git a/libraries/input-plugins/src/input-plugins/TouchscreenVirtualPadDevice.cpp b/libraries/input-plugins/src/input-plugins/TouchscreenVirtualPadDevice.cpp index 32194e1b84..247f484c95 100644 --- a/libraries/input-plugins/src/input-plugins/TouchscreenVirtualPadDevice.cpp +++ b/libraries/input-plugins/src/input-plugins/TouchscreenVirtualPadDevice.cpp @@ -135,8 +135,8 @@ glm::vec2 TouchscreenVirtualPadDevice::clippedPointInCircle(float radius, glm::v void TouchscreenVirtualPadDevice::processInputDeviceForMove(VirtualPad::Manager& virtualPadManager) { vec2 clippedPoint = clippedPointInCircle(_fixedRadiusForCalc, _moveRefTouchPoint, _moveCurrentTouchPoint); - _inputDevice->_axisStateMap[controller::LX] = (clippedPoint.x - _moveRefTouchPoint.x) / _fixedRadiusForCalc; - _inputDevice->_axisStateMap[controller::LY] = (clippedPoint.y - _moveRefTouchPoint.y) / _fixedRadiusForCalc; + _inputDevice->_axisStateMap[controller::LX].value = (clippedPoint.x - _moveRefTouchPoint.x) / _fixedRadiusForCalc; + _inputDevice->_axisStateMap[controller::LY].value = (clippedPoint.y - _moveRefTouchPoint.y) / _fixedRadiusForCalc; virtualPadManager.getLeftVirtualPad()->setFirstTouch(_moveRefTouchPoint); virtualPadManager.getLeftVirtualPad()->setCurrentTouch(clippedPoint); @@ -148,8 +148,10 @@ void TouchscreenVirtualPadDevice::processInputDeviceForView() { // We use average across how many times we've got touchUpdate events. // Using the average instead of the full deltaX and deltaY, makes deltaTime in MyAvatar dont't accelerate rotation when there is a low touchUpdate rate (heavier domains). // (Because it multiplies this input value by deltaTime (with a coefficient)). - _inputDevice->_axisStateMap[controller::RX] = _viewTouchUpdateCount == 0 ? 0 : (_viewCurrentTouchPoint.x - _viewRefTouchPoint.x) / _viewTouchUpdateCount; - _inputDevice->_axisStateMap[controller::RY] = _viewTouchUpdateCount == 0 ? 0 : (_viewCurrentTouchPoint.y - _viewRefTouchPoint.y) / _viewTouchUpdateCount; + _inputDevice->_axisStateMap[controller::RX].value = + _viewTouchUpdateCount == 0 ? 0 : (_viewCurrentTouchPoint.x - _viewRefTouchPoint.x) / _viewTouchUpdateCount; + _inputDevice->_axisStateMap[controller::RY].value = + _viewTouchUpdateCount == 0 ? 0 : (_viewCurrentTouchPoint.y - _viewRefTouchPoint.y) / _viewTouchUpdateCount; // after use, save last touch point as ref _viewRefTouchPoint = _viewCurrentTouchPoint; @@ -442,8 +444,8 @@ void TouchscreenVirtualPadDevice::moveTouchUpdate(glm::vec2 touchPoint) { void TouchscreenVirtualPadDevice::moveTouchEnd() { if (_moveHasValidTouch) { // do stuff once _moveHasValidTouch = false; - _inputDevice->_axisStateMap[controller::LX] = 0; - _inputDevice->_axisStateMap[controller::LY] = 0; + _inputDevice->_axisStateMap[controller::LX].value = 0; + _inputDevice->_axisStateMap[controller::LY].value = 0; } } @@ -465,8 +467,8 @@ void TouchscreenVirtualPadDevice::viewTouchUpdate(glm::vec2 touchPoint) { void TouchscreenVirtualPadDevice::viewTouchEnd() { if (_viewHasValidTouch) { // do stuff once _viewHasValidTouch = false; - _inputDevice->_axisStateMap[controller::RX] = 0; - _inputDevice->_axisStateMap[controller::RY] = 0; + _inputDevice->_axisStateMap[controller::RX].value = 0; + _inputDevice->_axisStateMap[controller::RY].value = 0; } } diff --git a/plugins/hifiSdl2/src/Joystick.cpp b/plugins/hifiSdl2/src/Joystick.cpp index be4ad6e4ee..ad0b459544 100644 --- a/plugins/hifiSdl2/src/Joystick.cpp +++ b/plugins/hifiSdl2/src/Joystick.cpp @@ -46,8 +46,8 @@ void Joystick::closeJoystick() { void Joystick::update(float deltaTime, const controller::InputCalibrationData& inputCalibrationData) { for (auto axisState : _axisStateMap) { - if (fabsf(axisState.second) < CONTROLLER_THRESHOLD) { - _axisStateMap[axisState.first] = 0.0f; + if (fabsf(axisState.second.value) < CONTROLLER_THRESHOLD) { + _axisStateMap[axisState.first].value = 0.0f; } } } @@ -59,7 +59,7 @@ void Joystick::focusOutEvent() { void Joystick::handleAxisEvent(const SDL_ControllerAxisEvent& event) { SDL_GameControllerAxis axis = (SDL_GameControllerAxis) event.axis; - _axisStateMap[makeInput((controller::StandardAxisChannel)axis).getChannel()] = (float)event.value / MAX_AXIS; + _axisStateMap[makeInput((controller::StandardAxisChannel)axis).getChannel()].value = (float)event.value / MAX_AXIS; } void Joystick::handleButtonEvent(const SDL_ControllerButtonEvent& event) { diff --git a/plugins/oculus/src/OculusControllerManager.cpp b/plugins/oculus/src/OculusControllerManager.cpp index 392d990638..76ff4a1755 100644 --- a/plugins/oculus/src/OculusControllerManager.cpp +++ b/plugins/oculus/src/OculusControllerManager.cpp @@ -258,15 +258,15 @@ void OculusControllerManager::TouchDevice::update(float deltaTime, using namespace controller; // Axes const auto& inputState = _parent._touchInputState; - _axisStateMap[LX] = inputState.Thumbstick[ovrHand_Left].x; - _axisStateMap[LY] = inputState.Thumbstick[ovrHand_Left].y; - _axisStateMap[LT] = inputState.IndexTrigger[ovrHand_Left]; - _axisStateMap[LEFT_GRIP] = inputState.HandTrigger[ovrHand_Left]; + _axisStateMap[LX].value = inputState.Thumbstick[ovrHand_Left].x; + _axisStateMap[LY].value = inputState.Thumbstick[ovrHand_Left].y; + _axisStateMap[LT].value = inputState.IndexTrigger[ovrHand_Left]; + _axisStateMap[LEFT_GRIP].value = inputState.HandTrigger[ovrHand_Left]; - _axisStateMap[RX] = inputState.Thumbstick[ovrHand_Right].x; - _axisStateMap[RY] = inputState.Thumbstick[ovrHand_Right].y; - _axisStateMap[RT] = inputState.IndexTrigger[ovrHand_Right]; - _axisStateMap[RIGHT_GRIP] = inputState.HandTrigger[ovrHand_Right]; + _axisStateMap[RX].value = inputState.Thumbstick[ovrHand_Right].x; + _axisStateMap[RY].value = inputState.Thumbstick[ovrHand_Right].y; + _axisStateMap[RT].value = inputState.IndexTrigger[ovrHand_Right]; + _axisStateMap[RIGHT_GRIP].value = inputState.HandTrigger[ovrHand_Right]; // Buttons for (const auto& pair : BUTTON_MAP) { diff --git a/plugins/openvr/src/ViveControllerManager.cpp b/plugins/openvr/src/ViveControllerManager.cpp index 53c23403a5..3aea5f1ce0 100644 --- a/plugins/openvr/src/ViveControllerManager.cpp +++ b/plugins/openvr/src/ViveControllerManager.cpp @@ -928,8 +928,8 @@ void ViveControllerManager::InputDevice::partitionTouchpad(int sButton, int xAxi const float CENTER_DEADBAND = 0.6f; const float DIAGONAL_DIVIDE_IN_RADIANS = PI / 4.0f; if (_buttonPressedMap.find(sButton) != _buttonPressedMap.end()) { - float absX = abs(_axisStateMap[xAxis]); - float absY = abs(_axisStateMap[yAxis]); + float absX = abs(_axisStateMap[xAxis].value); + float absY = abs(_axisStateMap[yAxis].value); glm::vec2 cartesianQuadrantI(absX, absY); float angle = glm::atan(cartesianQuadrantI.y / cartesianQuadrantI.x); float radius = glm::length(cartesianQuadrantI); @@ -956,10 +956,10 @@ void ViveControllerManager::InputDevice::handleAxisEvent(float deltaTime, uint32 } else { stick = _filteredRightStick.process(deltaTime, stick); } - _axisStateMap[isLeftHand ? LX : RX] = stick.x; - _axisStateMap[isLeftHand ? LY : RY] = stick.y; + _axisStateMap[isLeftHand ? LX : RX].value = stick.x; + _axisStateMap[isLeftHand ? LY : RY].value = stick.y; } else if (axis == vr::k_EButton_SteamVR_Trigger) { - _axisStateMap[isLeftHand ? LT : RT] = x; + _axisStateMap[isLeftHand ? LT : RT].value = x; // The click feeling on the Vive controller trigger represents a value of *precisely* 1.0, // so we can expose that as an additional button if (x >= 1.0f) { @@ -1000,7 +1000,7 @@ void ViveControllerManager::InputDevice::handleButtonEvent(float deltaTime, uint if (button == vr::k_EButton_ApplicationMenu) { _buttonPressedMap.insert(isLeftHand ? LEFT_APP_MENU : RIGHT_APP_MENU); } else if (button == vr::k_EButton_Grip) { - _axisStateMap[isLeftHand ? LEFT_GRIP : RIGHT_GRIP] = 1.0f; + _axisStateMap[isLeftHand ? LEFT_GRIP : RIGHT_GRIP].value = 1.0f; } else if (button == vr::k_EButton_SteamVR_Trigger) { _buttonPressedMap.insert(isLeftHand ? LT : RT); } else if (button == vr::k_EButton_SteamVR_Touchpad) { @@ -1008,7 +1008,7 @@ void ViveControllerManager::InputDevice::handleButtonEvent(float deltaTime, uint } } else { if (button == vr::k_EButton_Grip) { - _axisStateMap[isLeftHand ? LEFT_GRIP : RIGHT_GRIP] = 0.0f; + _axisStateMap[isLeftHand ? LEFT_GRIP : RIGHT_GRIP].value = 0.0f; } } From d12b504a8842b478ad4c184d235dcfff09e14e3d Mon Sep 17 00:00:00 2001 From: David Rowe <david@ctrlaltstudio.com> Date: Mon, 31 Dec 2018 11:55:02 +1300 Subject: [PATCH 057/230] Use Controller axis value timestamp for mouse movement Controller events --- interface/src/raypick/PathPointer.cpp | 2 +- .../controllers/src/controllers/AxisValue.cpp | 3 +++ .../controllers/src/controllers/AxisValue.h | 3 +++ .../src/controllers/InputDevice.cpp | 13 +++++------ .../controllers/src/controllers/InputDevice.h | 4 ++-- .../src/controllers/ScriptingInterface.cpp | 6 ++--- .../src/controllers/UserInputMapper.cpp | 20 ++++++++--------- .../src/controllers/UserInputMapper.h | 6 ++--- .../src/controllers/impl/Endpoint.h | 22 ++++++++++--------- .../controllers/src/controllers/impl/Filter.h | 3 ++- .../impl/conditionals/EndpointConditional.h | 2 +- .../impl/endpoints/ActionEndpoint.cpp | 12 +++++----- .../impl/endpoints/ActionEndpoint.h | 6 ++--- .../impl/endpoints/AnyEndpoint.cpp | 18 +++++++-------- .../controllers/impl/endpoints/AnyEndpoint.h | 6 ++--- .../impl/endpoints/ArrayEndpoint.h | 4 ++-- .../impl/endpoints/CompositeEndpoint.cpp | 10 ++++----- .../impl/endpoints/CompositeEndpoint.h | 6 ++--- .../impl/endpoints/InputEndpoint.cpp | 8 +++---- .../impl/endpoints/InputEndpoint.h | 7 +++--- .../controllers/impl/endpoints/JSEndpoint.cpp | 10 ++++----- .../controllers/impl/endpoints/JSEndpoint.h | 4 ++-- .../impl/endpoints/ScriptEndpoint.cpp | 10 ++++----- .../impl/endpoints/ScriptEndpoint.h | 7 +++--- .../impl/endpoints/StandardEndpoint.h | 8 +++---- .../impl/filters/AccelerationLimiterFilter.h | 2 +- .../controllers/impl/filters/ClampFilter.h | 4 ++-- .../impl/filters/ConstrainToIntegerFilter.h | 4 ++-- .../ConstrainToPositiveIntegerFilter.h | 4 ++-- .../impl/filters/DeadZoneFilter.cpp | 10 ++++----- .../controllers/impl/filters/DeadZoneFilter.h | 2 +- .../impl/filters/ExponentialSmoothingFilter.h | 2 +- .../impl/filters/HysteresisFilter.cpp | 8 +++---- .../impl/filters/HysteresisFilter.h | 2 +- .../impl/filters/LowVelocityFilter.h | 2 +- .../controllers/impl/filters/NotFilter.cpp | 4 ++-- .../src/controllers/impl/filters/NotFilter.h | 2 +- .../impl/filters/PostTransformFilter.h | 2 +- .../controllers/impl/filters/PulseFilter.cpp | 8 +++---- .../controllers/impl/filters/PulseFilter.h | 2 +- .../controllers/impl/filters/RotateFilter.h | 2 +- .../controllers/impl/filters/ScaleFilter.h | 4 ++-- .../impl/filters/TransformFilter.h | 2 +- .../impl/filters/TranslateFilter.h | 2 +- .../src/input-plugins/KeyboardMouseDevice.cpp | 15 +++++++++---- .../src/input-plugins/KeyboardMouseDevice.h | 3 +++ 46 files changed, 152 insertions(+), 134 deletions(-) diff --git a/interface/src/raypick/PathPointer.cpp b/interface/src/raypick/PathPointer.cpp index 00ab32bde4..8a6995936f 100644 --- a/interface/src/raypick/PathPointer.cpp +++ b/interface/src/raypick/PathPointer.cpp @@ -223,7 +223,7 @@ Pointer::Buttons PathPointer::getPressedButtons(const PickResultPointer& pickRes std::string button = trigger.getButton(); TriggerState& state = _states[button]; // TODO: right now, LaserPointers don't support axes, only on/off buttons - if (trigger.getEndpoint()->peek() >= 1.0f) { + if (trigger.getEndpoint()->peek().value >= 1.0f) { toReturn.insert(button); if (_previousButtons.find(button) == _previousButtons.end()) { diff --git a/libraries/controllers/src/controllers/AxisValue.cpp b/libraries/controllers/src/controllers/AxisValue.cpp index 49201dbf7a..4b7913754c 100644 --- a/libraries/controllers/src/controllers/AxisValue.cpp +++ b/libraries/controllers/src/controllers/AxisValue.cpp @@ -15,4 +15,7 @@ namespace controller { AxisValue::AxisValue(const float value, const quint64 timestamp) : value(value), timestamp(timestamp) { } + bool AxisValue::operator==(const AxisValue& right) const { + return value == right.value && timestamp == right.timestamp; + } } diff --git a/libraries/controllers/src/controllers/AxisValue.h b/libraries/controllers/src/controllers/AxisValue.h index 67fd5736b8..e4bc20f7d2 100644 --- a/libraries/controllers/src/controllers/AxisValue.h +++ b/libraries/controllers/src/controllers/AxisValue.h @@ -24,6 +24,9 @@ namespace controller { AxisValue() {} AxisValue(const float value, const quint64 timestamp); + + bool operator ==(const AxisValue& right) const; + bool operator !=(const AxisValue& right) const { return !(*this == right); } }; } diff --git a/libraries/controllers/src/controllers/InputDevice.cpp b/libraries/controllers/src/controllers/InputDevice.cpp index e46bb3c8b5..dd430263fa 100644 --- a/libraries/controllers/src/controllers/InputDevice.cpp +++ b/libraries/controllers/src/controllers/InputDevice.cpp @@ -68,26 +68,25 @@ namespace controller { return Input::NamedPair(makeInput(pose), name); } - float InputDevice::getValue(ChannelType channelType, uint16_t channel) const { + AxisValue InputDevice::getValue(ChannelType channelType, uint16_t channel) const { switch (channelType) { case ChannelType::AXIS: - return getAxis(channel).value; + return getAxis(channel); case ChannelType::BUTTON: - return getButton(channel); + return { getButton(channel), 0 }; case ChannelType::POSE: - return getPose(channel).valid ? 1.0f : 0.0f; + return { getPose(channel).valid ? 1.0f : 0.0f, 0 }; default: break; } - return 0.0f; + return { 0.0f, 0 }; } - - float InputDevice::getValue(const Input& input) const { + AxisValue InputDevice::getValue(const Input& input) const { return getValue(input.getType(), input.channel); } diff --git a/libraries/controllers/src/controllers/InputDevice.h b/libraries/controllers/src/controllers/InputDevice.h index 1d4ab1c5d8..7c3c31cb38 100644 --- a/libraries/controllers/src/controllers/InputDevice.h +++ b/libraries/controllers/src/controllers/InputDevice.h @@ -112,8 +112,8 @@ public: AxisValue getAxis(int channel) const; Pose getPose(int channel) const; - float getValue(const Input& input) const; - float getValue(ChannelType channelType, uint16_t channel) const; + AxisValue getValue(const Input& input) const; + AxisValue getValue(ChannelType channelType, uint16_t channel) const; Pose getPoseValue(uint16_t channel) const; const QString& getName() const { return _name; } diff --git a/libraries/controllers/src/controllers/ScriptingInterface.cpp b/libraries/controllers/src/controllers/ScriptingInterface.cpp index ce730bffa8..07c59e1aaa 100644 --- a/libraries/controllers/src/controllers/ScriptingInterface.cpp +++ b/libraries/controllers/src/controllers/ScriptingInterface.cpp @@ -89,17 +89,17 @@ namespace controller { float ScriptingInterface::getValue(const int& source) const { auto userInputMapper = DependencyManager::get<UserInputMapper>(); - return userInputMapper->getValue(Input((uint32_t)source)); + return userInputMapper->getValue(Input((uint32_t)source)).value; } float ScriptingInterface::getAxisValue(int source) const { auto userInputMapper = DependencyManager::get<UserInputMapper>(); - return userInputMapper->getValue(Input((uint32_t)source)); + return userInputMapper->getValue(Input((uint32_t)source)).value; } Pose ScriptingInterface::getPoseValue(const int& source) const { auto userInputMapper = DependencyManager::get<UserInputMapper>(); - return userInputMapper->getPose(Input((uint32_t)source)); + return userInputMapper->getPose(Input((uint32_t)source)); } QVector<Action> ScriptingInterface::getAllActions() { diff --git a/libraries/controllers/src/controllers/UserInputMapper.cpp b/libraries/controllers/src/controllers/UserInputMapper.cpp index 307064c073..e8503d8d1e 100755 --- a/libraries/controllers/src/controllers/UserInputMapper.cpp +++ b/libraries/controllers/src/controllers/UserInputMapper.cpp @@ -290,17 +290,17 @@ void UserInputMapper::update(float deltaTime) { if ((int)_lastStandardStates.size() != standardInputs.size()) { _lastStandardStates.resize(standardInputs.size()); for (auto& lastValue : _lastStandardStates) { - lastValue = 0; + lastValue = AxisValue(); } } for (int i = 0; i < standardInputs.size(); ++i) { const auto& input = standardInputs[i].first; - float value = getValue(input); - float& oldValue = _lastStandardStates[i]; + AxisValue value = getValue(input); + AxisValue& oldValue = _lastStandardStates[i]; if (value != oldValue) { oldValue = value; - emit inputEvent(input.id, value); + emit inputEvent(input.id, value.value); } } inputRecorder->frameTick(); @@ -604,10 +604,10 @@ bool UserInputMapper::applyRoute(const Route::Pointer& route, bool force) { destination->apply(value, source); } else { // Fetch the value, may have been overriden by previous loopback routes - float value = getValue(source, route->peek); + auto value = getValue(source, route->peek); if (debugRoutes && route->debug) { - qCDebug(controllers) << "Value was " << value; + qCDebug(controllers) << "Value was " << value.value << value.timestamp; } // Apply each of the filters. for (const auto& filter : route->filters) { @@ -615,7 +615,7 @@ bool UserInputMapper::applyRoute(const Route::Pointer& route, bool force) { } if (debugRoutes && route->debug) { - qCDebug(controllers) << "Filtered value was " << value; + qCDebug(controllers) << "Filtered value was " << value.value << value.timestamp; } destination->apply(value, source); @@ -741,15 +741,15 @@ void UserInputMapper::enableMapping(const QString& mappingName, bool enable) { } } -float UserInputMapper::getValue(const Endpoint::Pointer& endpoint, bool peek) { +AxisValue UserInputMapper::getValue(const Endpoint::Pointer& endpoint, bool peek) { return peek ? endpoint->peek() : endpoint->value(); } -float UserInputMapper::getValue(const Input& input) const { +AxisValue UserInputMapper::getValue(const Input& input) const { Locker locker(_lock); auto endpoint = endpointFor(input); if (!endpoint) { - return 0; + return AxisValue(); } return endpoint->value(); } diff --git a/libraries/controllers/src/controllers/UserInputMapper.h b/libraries/controllers/src/controllers/UserInputMapper.h index 5fd21e6299..2b3c947491 100644 --- a/libraries/controllers/src/controllers/UserInputMapper.h +++ b/libraries/controllers/src/controllers/UserInputMapper.h @@ -121,7 +121,7 @@ namespace controller { void unloadMappings(const QStringList& jsonFiles); void unloadMapping(const QString& jsonFile); - float getValue(const Input& input) const; + AxisValue getValue(const Input& input) const; Pose getPose(const Input& input) const; // perform an action when the UserInputMapper mutex is acquired. @@ -147,9 +147,9 @@ namespace controller { std::vector<float> _actionScales = std::vector<float>(toInt(Action::NUM_ACTIONS), 1.0f); std::vector<float> _lastActionStates = std::vector<float>(toInt(Action::NUM_ACTIONS), 0.0f); std::vector<Pose> _poseStates = std::vector<Pose>(toInt(Action::NUM_ACTIONS)); - std::vector<float> _lastStandardStates = std::vector<float>(); + std::vector<AxisValue> _lastStandardStates = std::vector<AxisValue>(); - static float getValue(const EndpointPointer& endpoint, bool peek = false); + static AxisValue getValue(const EndpointPointer& endpoint, bool peek = false); static Pose getPose(const EndpointPointer& endpoint, bool peek = false); friend class RouteBuilderProxy; diff --git a/libraries/controllers/src/controllers/impl/Endpoint.h b/libraries/controllers/src/controllers/impl/Endpoint.h index a938dd30b6..29ba7c97f0 100644 --- a/libraries/controllers/src/controllers/impl/Endpoint.h +++ b/libraries/controllers/src/controllers/impl/Endpoint.h @@ -16,6 +16,7 @@ #include <QtCore/QObject> +#include "../AxisValue.h" #include "../Input.h" #include "../Pose.h" @@ -36,12 +37,13 @@ namespace controller { using WriteLambda = std::function<void(float)>; Endpoint(const Input& input) : _input(input) {} - virtual float value() { return peek(); } - virtual float peek() const = 0; - virtual void apply(float value, const Pointer& source) = 0; + virtual AxisValue value() { return peek(); } + virtual AxisValue peek() const = 0; + virtual void apply(AxisValue value, const Pointer& source) = 0; virtual Pose peekPose() const { return Pose(); }; virtual Pose pose() { return peekPose(); } virtual void apply(const Pose& value, const Pointer& source) {} + virtual bool isAxis() const { return _input.isAxis(); } virtual bool isPose() const { return _input.isPose(); } virtual bool writeable() const { return true; } virtual bool readable() const { return true; } @@ -59,8 +61,8 @@ namespace controller { LambdaEndpoint(ReadLambda readLambda, WriteLambda writeLambda = [](float) {}) : Endpoint(Input::INVALID_INPUT), _readLambda(readLambda), _writeLambda(writeLambda) { } - virtual float peek() const override { return _readLambda(); } - virtual void apply(float value, const Pointer& source) override { _writeLambda(value); } + virtual AxisValue peek() const override { return AxisValue(_readLambda(), 0); } + virtual void apply(AxisValue value, const Pointer& source) override { _writeLambda(value.value); } private: ReadLambda _readLambda; @@ -76,8 +78,8 @@ namespace controller { : Endpoint(Input::INVALID_INPUT), _readLambda(readLambda), _writeLambda(writeLambda) { } - virtual float peek() const override { return _readLambda(); } - virtual void apply(float value, const Pointer& source) override { _writeLambda(value); } + virtual AxisValue peek() const override { return AxisValue(_readLambda(), 0); } + virtual void apply(AxisValue value, const Pointer& source) override { _writeLambda(value.value); } private: const ReadLambda& _readLambda; @@ -91,15 +93,15 @@ namespace controller { : Endpoint(id) { } - virtual float peek() const override { return _currentValue; } - virtual void apply(float value, const Pointer& source) override { _currentValue = value; } + virtual AxisValue peek() const override { return _currentValue; } + virtual void apply(AxisValue value, const Pointer& source) override { _currentValue = value; } virtual Pose peekPose() const override { return _currentPose; } virtual void apply(const Pose& value, const Pointer& source) override { _currentPose = value; } protected: - float _currentValue { 0.0f }; + AxisValue _currentValue { 0.0f, 0 }; Pose _currentPose {}; }; diff --git a/libraries/controllers/src/controllers/impl/Filter.h b/libraries/controllers/src/controllers/impl/Filter.h index 7afabb4bcb..5c88a5be58 100644 --- a/libraries/controllers/src/controllers/impl/Filter.h +++ b/libraries/controllers/src/controllers/impl/Filter.h @@ -21,6 +21,7 @@ #include <QtCore/QEasingCurve> +#include "../AxisValue.h" #include "../Pose.h" class QJsonValue; @@ -37,7 +38,7 @@ namespace controller { virtual ~Filter() = default; - virtual float apply(float value) const = 0; + virtual AxisValue apply(AxisValue value) const = 0; virtual Pose apply(Pose value) const = 0; // Factory features diff --git a/libraries/controllers/src/controllers/impl/conditionals/EndpointConditional.h b/libraries/controllers/src/controllers/impl/conditionals/EndpointConditional.h index 0ba1347087..50a33471e7 100644 --- a/libraries/controllers/src/controllers/impl/conditionals/EndpointConditional.h +++ b/libraries/controllers/src/controllers/impl/conditionals/EndpointConditional.h @@ -18,7 +18,7 @@ namespace controller { class EndpointConditional : public Conditional { public: EndpointConditional(Endpoint::Pointer endpoint) : _endpoint(endpoint) {} - virtual bool satisfied() override { return _endpoint && _endpoint->peek() != 0.0f; } + virtual bool satisfied() override { return _endpoint && _endpoint->peek().value != 0.0f; } private: Endpoint::Pointer _endpoint; }; diff --git a/libraries/controllers/src/controllers/impl/endpoints/ActionEndpoint.cpp b/libraries/controllers/src/controllers/impl/endpoints/ActionEndpoint.cpp index f73268b41f..122af5a30c 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/ActionEndpoint.cpp +++ b/libraries/controllers/src/controllers/impl/endpoints/ActionEndpoint.cpp @@ -15,22 +15,22 @@ using namespace controller; -void ActionEndpoint::apply(float newValue, const Pointer& source) { +void ActionEndpoint::apply(AxisValue newValue, const Pointer& source) { auto userInputMapper = DependencyManager::get<UserInputMapper>(); InputRecorder* inputRecorder = InputRecorder::getInstance(); QString actionName; if (inputRecorder->isPlayingback() || inputRecorder->isRecording()) { actionName = userInputMapper->getActionName(Action(_input.getChannel())); if (inputRecorder->isPlayingback()) { - newValue = inputRecorder->getActionState(actionName); + newValue = AxisValue(inputRecorder->getActionState(actionName), 0); } } - _currentValue += newValue; + _currentValue.value += newValue.value; if (_input != Input::INVALID_INPUT) { - userInputMapper->deltaActionState(Action(_input.getChannel()), newValue); + userInputMapper->deltaActionState(Action(_input.getChannel()), newValue.value); } - inputRecorder->setActionState(actionName, newValue); + inputRecorder->setActionState(actionName, newValue.value); } void ActionEndpoint::apply(const Pose& value, const Pointer& source) { @@ -51,7 +51,7 @@ void ActionEndpoint::apply(const Pose& value, const Pointer& source) { } void ActionEndpoint::reset() { - _currentValue = 0.0f; + _currentValue = AxisValue(); _currentPose = Pose(); } diff --git a/libraries/controllers/src/controllers/impl/endpoints/ActionEndpoint.h b/libraries/controllers/src/controllers/impl/endpoints/ActionEndpoint.h index 1073dc6593..94da4663aa 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/ActionEndpoint.h +++ b/libraries/controllers/src/controllers/impl/endpoints/ActionEndpoint.h @@ -23,8 +23,8 @@ class ActionEndpoint : public Endpoint { public: ActionEndpoint(const Input& id = Input::INVALID_INPUT) : Endpoint(id) { } - virtual float peek() const override { return _currentValue; } - virtual void apply(float newValue, const Pointer& source) override; + virtual AxisValue peek() const override { return _currentValue; } + virtual void apply(AxisValue newValue, const Pointer& source) override; virtual Pose peekPose() const override { return _currentPose; } virtual void apply(const Pose& value, const Pointer& source) override; @@ -32,7 +32,7 @@ public: virtual void reset() override; private: - float _currentValue{ 0.0f }; + AxisValue _currentValue { 0.0f, 0 }; Pose _currentPose{}; }; diff --git a/libraries/controllers/src/controllers/impl/endpoints/AnyEndpoint.cpp b/libraries/controllers/src/controllers/impl/endpoints/AnyEndpoint.cpp index 598dfb6ee8..75acdd9d13 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/AnyEndpoint.cpp +++ b/libraries/controllers/src/controllers/impl/endpoints/AnyEndpoint.cpp @@ -27,13 +27,13 @@ AnyEndpoint::AnyEndpoint(Endpoint::List children) : Endpoint(Input::INVALID_INPU } } -// The value of an any-point is considered to be the maxiumum absolute value, +// The value of an any-point is considered to be the maximum absolute value, // this handles any's of multiple axis values as well as single values as well -float AnyEndpoint::peek() const { - float result = 0.0f; +AxisValue AnyEndpoint::peek() const { + auto result = AxisValue(); for (auto& child : _children) { auto childValue = child->peek(); - if (std::abs(childValue) > std::abs(result)) { + if (std::abs(childValue.value) > std::abs(result.value)) { result = childValue; } } @@ -41,18 +41,18 @@ float AnyEndpoint::peek() const { } // Fetching the value must trigger any necessary side effects of value() on ALL the children. -float AnyEndpoint::value() { - float result = 0.0f; +AxisValue AnyEndpoint::value() { + auto result = AxisValue(); for (auto& child : _children) { auto childValue = child->value(); - if (std::abs(childValue) > std::abs(result)) { - result = childValue; + if (std::abs(childValue.value) > std::abs(result.value)) { + result.value = childValue.value; } } return result; } -void AnyEndpoint::apply(float newValue, const Endpoint::Pointer& source) { +void AnyEndpoint::apply(AxisValue newValue, const Endpoint::Pointer& source) { qFatal("AnyEndpoint is read only"); } diff --git a/libraries/controllers/src/controllers/impl/endpoints/AnyEndpoint.h b/libraries/controllers/src/controllers/impl/endpoints/AnyEndpoint.h index 8947eb675f..a9634f10d8 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/AnyEndpoint.h +++ b/libraries/controllers/src/controllers/impl/endpoints/AnyEndpoint.h @@ -19,9 +19,9 @@ class AnyEndpoint : public Endpoint { public: using Endpoint::apply; AnyEndpoint(Endpoint::List children); - virtual float peek() const override; - virtual float value() override; - virtual void apply(float newValue, const Endpoint::Pointer& source) override; + virtual AxisValue peek() const override; + virtual AxisValue value() override; + virtual void apply(AxisValue newValue, const Endpoint::Pointer& source) override; virtual bool writeable() const override; virtual bool readable() const override; diff --git a/libraries/controllers/src/controllers/impl/endpoints/ArrayEndpoint.h b/libraries/controllers/src/controllers/impl/endpoints/ArrayEndpoint.h index 34d30a2e97..f928a4f568 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/ArrayEndpoint.h +++ b/libraries/controllers/src/controllers/impl/endpoints/ArrayEndpoint.h @@ -21,9 +21,9 @@ public: using Pointer = std::shared_ptr<ArrayEndpoint>; ArrayEndpoint() : Endpoint(Input::INVALID_INPUT) { } - virtual float peek() const override { return 0.0f; } + virtual AxisValue peek() const override { return AxisValue(); } - virtual void apply(float value, const Endpoint::Pointer& source) override { + virtual void apply(AxisValue value, const Endpoint::Pointer& source) override { for (auto& child : _children) { if (child->writeable()) { child->apply(value, source); diff --git a/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.cpp b/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.cpp index 1bd27489f8..bd75c97dd7 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.cpp +++ b/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.cpp @@ -24,18 +24,18 @@ bool CompositeEndpoint::readable() const { return first->readable() && second->readable(); } -float CompositeEndpoint::peek() const { - float result = first->peek() * -1.0f + second->peek(); +AxisValue CompositeEndpoint::peek() const { + auto result = AxisValue(first->peek().value * -1.0f + second->peek().value, 0); return result; } // Fetching via value() must trigger any side effects of value() on the children -float CompositeEndpoint::value() { - float result = first->value() * -1.0f + second->value(); +AxisValue CompositeEndpoint::value() { + auto result = AxisValue(first->value().value * -1.0f + second->value().value, 0); return result; } -void CompositeEndpoint::apply(float newValue, const Pointer& source) { +void CompositeEndpoint::apply(AxisValue newValue, const Pointer& source) { // Composites are read only } diff --git a/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.h b/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.h index 3249aa1d37..004df36273 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.h +++ b/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.h @@ -18,9 +18,9 @@ namespace controller { using Endpoint::apply; CompositeEndpoint(Endpoint::Pointer first, Endpoint::Pointer second); - virtual float peek() const override; - virtual float value() override; - virtual void apply(float newValue, const Pointer& source) override; + virtual AxisValue peek() const override; + virtual AxisValue value() override; + virtual void apply(AxisValue newValue, const Pointer& source) override; virtual bool readable() const override; }; diff --git a/libraries/controllers/src/controllers/impl/endpoints/InputEndpoint.cpp b/libraries/controllers/src/controllers/impl/endpoints/InputEndpoint.cpp index ce58c948d1..3755d860b6 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/InputEndpoint.cpp +++ b/libraries/controllers/src/controllers/impl/endpoints/InputEndpoint.cpp @@ -14,19 +14,19 @@ using namespace controller; -float InputEndpoint::peek() const { +AxisValue InputEndpoint::peek() const { if (isPose()) { - return peekPose().valid ? 1.0f : 0.0f; + return peekPose().valid ? AxisValue(1.0f, 0) : AxisValue(0.0f, 0); } auto userInputMapper = DependencyManager::get<UserInputMapper>(); auto deviceProxy = userInputMapper->getDevice(_input); if (!deviceProxy) { - return 0.0f; + return AxisValue(); } return deviceProxy->getValue(_input); } -float InputEndpoint::value(){ +AxisValue InputEndpoint::value() { _read = true; return peek(); } diff --git a/libraries/controllers/src/controllers/impl/endpoints/InputEndpoint.h b/libraries/controllers/src/controllers/impl/endpoints/InputEndpoint.h index 7e4560dcf9..9581228cef 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/InputEndpoint.h +++ b/libraries/controllers/src/controllers/impl/endpoints/InputEndpoint.h @@ -20,10 +20,11 @@ public: : Endpoint(id) { } - virtual float peek() const override; - virtual float value() override; + virtual AxisValue peek() const override; + virtual AxisValue value() override; // FIXME need support for writing back to vibration / force feedback effects - virtual void apply(float newValue, const Pointer& source) override {} + virtual void apply(AxisValue newValue, const Pointer& source) override {} + virtual Pose peekPose() const override; virtual Pose pose() override; virtual void apply(const Pose& value, const Pointer& source) override { } diff --git a/libraries/controllers/src/controllers/impl/endpoints/JSEndpoint.cpp b/libraries/controllers/src/controllers/impl/endpoints/JSEndpoint.cpp index 2f20cd82c6..c01b67f1bc 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/JSEndpoint.cpp +++ b/libraries/controllers/src/controllers/impl/endpoints/JSEndpoint.cpp @@ -30,18 +30,18 @@ QString formatException(const QJSValue& exception) { return result; } -float JSEndpoint::peek() const { +AxisValue JSEndpoint::peek() const { QJSValue result = _callable.call(); if (result.isError()) { qCDebug(controllers).noquote() << formatException(result); - return 0.0f; + return AxisValue(); } else { - return (float)result.toNumber(); + return AxisValue((float)result.toNumber(), 0); } } -void JSEndpoint::apply(float newValue, const Pointer& source) { - QJSValue result = _callable.call(QJSValueList({ QJSValue(newValue) })); +void JSEndpoint::apply(AxisValue newValue, const Pointer& source) { + QJSValue result = _callable.call(QJSValueList({ QJSValue(newValue.value) })); if (result.isError()) { qCDebug(controllers).noquote() << formatException(result); } diff --git a/libraries/controllers/src/controllers/impl/endpoints/JSEndpoint.h b/libraries/controllers/src/controllers/impl/endpoints/JSEndpoint.h index 4d179da8e6..6c953399dd 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/JSEndpoint.h +++ b/libraries/controllers/src/controllers/impl/endpoints/JSEndpoint.h @@ -24,8 +24,8 @@ public: : Endpoint(Input::INVALID_INPUT), _callable(callable) { } - virtual float peek() const override; - virtual void apply(float newValue, const Pointer& source) override; + virtual AxisValue peek() const override; + virtual void apply(AxisValue newValue, const Pointer& source) override; private: mutable QJSValue _callable; diff --git a/libraries/controllers/src/controllers/impl/endpoints/ScriptEndpoint.cpp b/libraries/controllers/src/controllers/impl/endpoints/ScriptEndpoint.cpp index e2c48d776f..9f971d2f04 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/ScriptEndpoint.cpp +++ b/libraries/controllers/src/controllers/impl/endpoints/ScriptEndpoint.cpp @@ -34,9 +34,9 @@ QString formatException(const QScriptValue& exception) { return result; } -float ScriptEndpoint::peek() const { +AxisValue ScriptEndpoint::peek() const { const_cast<ScriptEndpoint*>(this)->updateValue(); - return _lastValueRead; + return AxisValue(_lastValueRead, 0); } void ScriptEndpoint::updateValue() { @@ -58,15 +58,15 @@ void ScriptEndpoint::updateValue() { } } -void ScriptEndpoint::apply(float value, const Pointer& source) { +void ScriptEndpoint::apply(AxisValue value, const Pointer& source) { if (value == _lastValueWritten) { return; } - internalApply(value, source->getInput().getID()); + _lastValueWritten = value; + internalApply(value.value, source->getInput().getID()); } void ScriptEndpoint::internalApply(float value, int sourceID) { - _lastValueWritten = value; if (QThread::currentThread() != thread()) { QMetaObject::invokeMethod(this, "internalApply", Qt::QueuedConnection, Q_ARG(float, value), diff --git a/libraries/controllers/src/controllers/impl/endpoints/ScriptEndpoint.h b/libraries/controllers/src/controllers/impl/endpoints/ScriptEndpoint.h index 00439f5560..e739ab0b01 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/ScriptEndpoint.h +++ b/libraries/controllers/src/controllers/impl/endpoints/ScriptEndpoint.h @@ -24,9 +24,8 @@ public: : Endpoint(Input::INVALID_INPUT), _callable(callable) { } - virtual float peek() const override; - virtual void apply(float newValue, const Pointer& source) override; - + virtual AxisValue peek() const override; + virtual void apply(AxisValue newValue, const Pointer& source) override; virtual Pose peekPose() const override; virtual void apply(const Pose& newValue, const Pointer& source) override; @@ -42,7 +41,7 @@ protected: private: QScriptValue _callable; float _lastValueRead { 0.0f }; - float _lastValueWritten { 0.0f }; + AxisValue _lastValueWritten { 0.0f, 0 }; bool _returnPose { false }; Pose _lastPoseRead; diff --git a/libraries/controllers/src/controllers/impl/endpoints/StandardEndpoint.h b/libraries/controllers/src/controllers/impl/endpoints/StandardEndpoint.h index 2006809fed..26a8063cdc 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/StandardEndpoint.h +++ b/libraries/controllers/src/controllers/impl/endpoints/StandardEndpoint.h @@ -25,19 +25,19 @@ public: virtual bool writeable() const override { return !_written; } virtual bool readable() const override { return !_read; } virtual void reset() override { - apply(0.0f, Endpoint::Pointer()); + apply(AxisValue(), Endpoint::Pointer()); apply(Pose(), Endpoint::Pointer()); _written = _read = false; } - virtual float value() override { + virtual AxisValue value() override { _read = true; return VirtualEndpoint::value(); } - virtual void apply(float value, const Pointer& source) override { + virtual void apply(AxisValue value, const Pointer& source) override { // For standard endpoints, the first NON-ZERO write counts. - if (value != 0.0f) { + if (value != AxisValue()) { _written = true; } VirtualEndpoint::apply(value, source); diff --git a/libraries/controllers/src/controllers/impl/filters/AccelerationLimiterFilter.h b/libraries/controllers/src/controllers/impl/filters/AccelerationLimiterFilter.h index 269fd54102..15653a7df6 100644 --- a/libraries/controllers/src/controllers/impl/filters/AccelerationLimiterFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/AccelerationLimiterFilter.h @@ -19,7 +19,7 @@ namespace controller { public: AccelerationLimiterFilter() {} - float apply(float value) const override { return value; } + AxisValue apply(AxisValue value) const override { return value; } Pose apply(Pose value) const override; bool parseParameters(const QJsonValue& parameters) override; diff --git a/libraries/controllers/src/controllers/impl/filters/ClampFilter.h b/libraries/controllers/src/controllers/impl/filters/ClampFilter.h index b06a43515f..04684655c9 100644 --- a/libraries/controllers/src/controllers/impl/filters/ClampFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/ClampFilter.h @@ -18,8 +18,8 @@ class ClampFilter : public Filter { REGISTER_FILTER_CLASS(ClampFilter); public: ClampFilter(float min = 0.0, float max = 1.0) : _min(min), _max(max) {}; - virtual float apply(float value) const override { - return glm::clamp(value, _min, _max); + virtual AxisValue apply(AxisValue value) const override { + return { glm::clamp(value.value, _min, _max), value.timestamp }; } virtual Pose apply(Pose value) const override { return value; } diff --git a/libraries/controllers/src/controllers/impl/filters/ConstrainToIntegerFilter.h b/libraries/controllers/src/controllers/impl/filters/ConstrainToIntegerFilter.h index 129e08741d..2cce5f828d 100644 --- a/libraries/controllers/src/controllers/impl/filters/ConstrainToIntegerFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/ConstrainToIntegerFilter.h @@ -19,8 +19,8 @@ class ConstrainToIntegerFilter : public Filter { public: ConstrainToIntegerFilter() = default; - virtual float apply(float value) const override { - return glm::sign(value); + virtual AxisValue apply(AxisValue value) const override { + return { glm::sign(value.value), value.timestamp }; } virtual Pose apply(Pose value) const override { return value; } diff --git a/libraries/controllers/src/controllers/impl/filters/ConstrainToPositiveIntegerFilter.h b/libraries/controllers/src/controllers/impl/filters/ConstrainToPositiveIntegerFilter.h index 8f2140721a..07dd6654f1 100644 --- a/libraries/controllers/src/controllers/impl/filters/ConstrainToPositiveIntegerFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/ConstrainToPositiveIntegerFilter.h @@ -19,8 +19,8 @@ class ConstrainToPositiveIntegerFilter : public Filter { public: ConstrainToPositiveIntegerFilter() = default; - virtual float apply(float value) const override { - return (value <= 0.0f) ? 0.0f : 1.0f; + virtual AxisValue apply(AxisValue value) const override { + return { (value.value <= 0.0f) ? 0.0f : 1.0f, value.timestamp }; } virtual Pose apply(Pose value) const override { return value; } diff --git a/libraries/controllers/src/controllers/impl/filters/DeadZoneFilter.cpp b/libraries/controllers/src/controllers/impl/filters/DeadZoneFilter.cpp index f07ef25976..84d3b9de60 100644 --- a/libraries/controllers/src/controllers/impl/filters/DeadZoneFilter.cpp +++ b/libraries/controllers/src/controllers/impl/filters/DeadZoneFilter.cpp @@ -12,13 +12,13 @@ #include <QtCore/QJsonArray> using namespace controller; -float DeadZoneFilter::apply(float value) const { - float scale = ((value < 0.0f) ? -1.0f : 1.0f) / (1.0f - _min); - float magnitude = std::abs(value); +AxisValue DeadZoneFilter::apply(AxisValue value) const { + float scale = ((value.value < 0.0f) ? -1.0f : 1.0f) / (1.0f - _min); + float magnitude = std::abs(value.value); if (magnitude < _min) { - return 0.0f; + return { 0.0f, value.timestamp }; } - return (magnitude - _min) * scale; + return { (magnitude - _min) * scale, value.timestamp }; } bool DeadZoneFilter::parseParameters(const QJsonValue& parameters) { diff --git a/libraries/controllers/src/controllers/impl/filters/DeadZoneFilter.h b/libraries/controllers/src/controllers/impl/filters/DeadZoneFilter.h index d898647126..7ac1e8a51d 100644 --- a/libraries/controllers/src/controllers/impl/filters/DeadZoneFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/DeadZoneFilter.h @@ -19,7 +19,7 @@ class DeadZoneFilter : public Filter { public: DeadZoneFilter(float min = 0.0) : _min(min) {}; - virtual float apply(float value) const override; + virtual AxisValue apply(AxisValue value) const override; virtual Pose apply(Pose value) const override { return value; } diff --git a/libraries/controllers/src/controllers/impl/filters/ExponentialSmoothingFilter.h b/libraries/controllers/src/controllers/impl/filters/ExponentialSmoothingFilter.h index 134f57243e..e0135a8f68 100644 --- a/libraries/controllers/src/controllers/impl/filters/ExponentialSmoothingFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/ExponentialSmoothingFilter.h @@ -21,7 +21,7 @@ namespace controller { ExponentialSmoothingFilter(float rotationConstant, float translationConstant) : _translationConstant(translationConstant), _rotationConstant(rotationConstant) {} - float apply(float value) const override { return value; } + AxisValue apply(AxisValue value) const override { return value; } Pose apply(Pose value) const override; bool parseParameters(const QJsonValue& parameters) override; diff --git a/libraries/controllers/src/controllers/impl/filters/HysteresisFilter.cpp b/libraries/controllers/src/controllers/impl/filters/HysteresisFilter.cpp index a7f22e1de4..91e59a39b9 100644 --- a/libraries/controllers/src/controllers/impl/filters/HysteresisFilter.cpp +++ b/libraries/controllers/src/controllers/impl/filters/HysteresisFilter.cpp @@ -20,17 +20,17 @@ HysteresisFilter::HysteresisFilter(float min, float max) : _min(min), _max(max) }; -float HysteresisFilter::apply(float value) const { +AxisValue HysteresisFilter::apply(AxisValue value) const { if (_signaled) { - if (value <= _min) { + if (value.value <= _min) { _signaled = false; } } else { - if (value >= _max) { + if (value.value >= _max) { _signaled = true; } } - return _signaled ? 1.0f : 0.0f; + return { _signaled ? 1.0f : 0.0f, value.timestamp }; } bool HysteresisFilter::parseParameters(const QJsonValue& parameters) { diff --git a/libraries/controllers/src/controllers/impl/filters/HysteresisFilter.h b/libraries/controllers/src/controllers/impl/filters/HysteresisFilter.h index 4eb563754f..c7c817ecfa 100644 --- a/libraries/controllers/src/controllers/impl/filters/HysteresisFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/HysteresisFilter.h @@ -18,7 +18,7 @@ class HysteresisFilter : public Filter { REGISTER_FILTER_CLASS(HysteresisFilter); public: HysteresisFilter(float min = 0.25, float max = 0.75); - virtual float apply(float value) const override; + virtual AxisValue apply(AxisValue value) const override; virtual Pose apply(Pose value) const override { return value; } diff --git a/libraries/controllers/src/controllers/impl/filters/LowVelocityFilter.h b/libraries/controllers/src/controllers/impl/filters/LowVelocityFilter.h index ac5299dc6f..eb4f53797f 100644 --- a/libraries/controllers/src/controllers/impl/filters/LowVelocityFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/LowVelocityFilter.h @@ -21,7 +21,7 @@ namespace controller { LowVelocityFilter(float rotationConstant, float translationConstant) : _translationConstant(translationConstant), _rotationConstant(rotationConstant) {} - float apply(float value) const override { return value; } + AxisValue apply(AxisValue value) const override { return value; } Pose apply(Pose newPose) const override; bool parseParameters(const QJsonValue& parameters) override; diff --git a/libraries/controllers/src/controllers/impl/filters/NotFilter.cpp b/libraries/controllers/src/controllers/impl/filters/NotFilter.cpp index 73460aed91..c0396857e5 100644 --- a/libraries/controllers/src/controllers/impl/filters/NotFilter.cpp +++ b/libraries/controllers/src/controllers/impl/filters/NotFilter.cpp @@ -5,6 +5,6 @@ using namespace controller; NotFilter::NotFilter() { } -float NotFilter::apply(float value) const { - return (value == 0.0f) ? 1.0f : 0.0f; +AxisValue NotFilter::apply(AxisValue value) const { + return { (value.value == 0.0f) ? 1.0f : 0.0f, value.timestamp }; } diff --git a/libraries/controllers/src/controllers/impl/filters/NotFilter.h b/libraries/controllers/src/controllers/impl/filters/NotFilter.h index ceb7d29de3..d68a9feff7 100644 --- a/libraries/controllers/src/controllers/impl/filters/NotFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/NotFilter.h @@ -11,7 +11,7 @@ class NotFilter : public Filter { public: NotFilter(); - virtual float apply(float value) const override; + virtual AxisValue apply(AxisValue value) const override; virtual Pose apply(Pose value) const override { return value; } }; diff --git a/libraries/controllers/src/controllers/impl/filters/PostTransformFilter.h b/libraries/controllers/src/controllers/impl/filters/PostTransformFilter.h index 3c1cb4f80c..aeb24cc3f8 100644 --- a/libraries/controllers/src/controllers/impl/filters/PostTransformFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/PostTransformFilter.h @@ -21,7 +21,7 @@ class PostTransformFilter : public Filter { public: PostTransformFilter() = default; PostTransformFilter(glm::mat4 transform) : _transform(transform) {} - virtual float apply(float value) const override { return value; } + virtual AxisValue apply(AxisValue value) const override { return value; } virtual Pose apply(Pose value) const override { return value.postTransform(_transform); } virtual bool parseParameters(const QJsonValue& parameters) override { return parseMat4Parameter(parameters, _transform); } private: diff --git a/libraries/controllers/src/controllers/impl/filters/PulseFilter.cpp b/libraries/controllers/src/controllers/impl/filters/PulseFilter.cpp index 6ef9d40802..d37eb99ca9 100644 --- a/libraries/controllers/src/controllers/impl/filters/PulseFilter.cpp +++ b/libraries/controllers/src/controllers/impl/filters/PulseFilter.cpp @@ -15,21 +15,21 @@ using namespace controller; const float PulseFilter::DEFAULT_LAST_EMIT_TIME = -::std::numeric_limits<float>::max(); -float PulseFilter::apply(float value) const { +AxisValue PulseFilter::apply(AxisValue value) const { float result = 0.0f; - if (0.0f != value) { + if (0.0f != value.value) { float now = secTimestampNow(); float delta = now - _lastEmitTime; if (delta >= _interval) { _lastEmitTime = now; - result = value; + result = value.value; } } else if (_resetOnZero) { _lastEmitTime = DEFAULT_LAST_EMIT_TIME; } - return result; + return { result, value.timestamp }; } bool PulseFilter::parseParameters(const QJsonValue& parameters) { diff --git a/libraries/controllers/src/controllers/impl/filters/PulseFilter.h b/libraries/controllers/src/controllers/impl/filters/PulseFilter.h index 2e0da0efa9..dc56b3c6c9 100644 --- a/libraries/controllers/src/controllers/impl/filters/PulseFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/PulseFilter.h @@ -21,7 +21,7 @@ public: PulseFilter() = default; PulseFilter(float interval) : _interval(interval) {} - virtual float apply(float value) const override; + virtual AxisValue apply(AxisValue value) const override; virtual Pose apply(Pose value) const override { return value; } diff --git a/libraries/controllers/src/controllers/impl/filters/RotateFilter.h b/libraries/controllers/src/controllers/impl/filters/RotateFilter.h index c6735f6aa9..d1f1f2d269 100644 --- a/libraries/controllers/src/controllers/impl/filters/RotateFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/RotateFilter.h @@ -22,7 +22,7 @@ public: RotateFilter() = default; RotateFilter(glm::quat rotation) : _rotation(rotation) {} - virtual float apply(float value) const override { return value; } + virtual AxisValue apply(AxisValue value) const override { return value; } virtual Pose apply(Pose value) const override { return value.transform(glm::mat4(glm::quat(_rotation))); diff --git a/libraries/controllers/src/controllers/impl/filters/ScaleFilter.h b/libraries/controllers/src/controllers/impl/filters/ScaleFilter.h index 936498a7a1..3eb58e7f47 100644 --- a/libraries/controllers/src/controllers/impl/filters/ScaleFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/ScaleFilter.h @@ -22,8 +22,8 @@ public: ScaleFilter() = default; ScaleFilter(float scale) : _scale(scale) {} - virtual float apply(float value) const override { - return value * _scale; + virtual AxisValue apply(AxisValue value) const override { + return { value.value * _scale, value.timestamp }; } virtual Pose apply(Pose value) const override { diff --git a/libraries/controllers/src/controllers/impl/filters/TransformFilter.h b/libraries/controllers/src/controllers/impl/filters/TransformFilter.h index a34edaa337..c81af2ef17 100644 --- a/libraries/controllers/src/controllers/impl/filters/TransformFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/TransformFilter.h @@ -22,7 +22,7 @@ public: TransformFilter() = default; TransformFilter(glm::mat4 transform) : _transform(transform) {} - virtual float apply(float value) const override { return value; } + virtual AxisValue apply(AxisValue value) const override { return value; } virtual Pose apply(Pose value) const override { return value.transform(_transform); } virtual bool parseParameters(const QJsonValue& parameters) override { return parseMat4Parameter(parameters, _transform); } diff --git a/libraries/controllers/src/controllers/impl/filters/TranslateFilter.h b/libraries/controllers/src/controllers/impl/filters/TranslateFilter.h index ced9cbc689..476481807d 100644 --- a/libraries/controllers/src/controllers/impl/filters/TranslateFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/TranslateFilter.h @@ -22,7 +22,7 @@ public: TranslateFilter() = default; TranslateFilter(glm::vec3 translate) : _translate(translate) {} - virtual float apply(float value) const override { return value; } + virtual AxisValue apply(AxisValue value) const override { return value; } virtual Pose apply(Pose value) const override { return value.transform(glm::translate(_translate)); } virtual bool parseParameters(const QJsonValue& parameters) override { return parseVec3Parameter(parameters, _translate); } diff --git a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp index ebc5a5cd3e..df58ea81c2 100755 --- a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp +++ b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp @@ -21,6 +21,13 @@ const char* KeyboardMouseDevice::NAME = "Keyboard/Mouse"; bool KeyboardMouseDevice::_enableTouch = true; +void KeyboardMouseDevice::updateDeltaAxisValue(int channel, float value) { + // Use timestamps for delta values so that consecutive identical values can be output. + if (value != 0.0f || _inputDevice->_axisStateMap[channel].value != 0) { + _inputDevice->_axisStateMap[channel] = { value, usecTimestampNow() }; + } +} + void KeyboardMouseDevice::pluginUpdate(float deltaTime, const controller::InputCalibrationData& inputCalibrationData) { auto userInputMapper = DependencyManager::get<controller::UserInputMapper>(); userInputMapper->withLock([&, this]() { @@ -31,11 +38,11 @@ void KeyboardMouseDevice::pluginUpdate(float deltaTime, const controller::InputC _inputDevice->_axisStateMap[MOUSE_AXIS_Y].value = _lastCursor.y(); QPoint currentMove = _lastCursor - _previousCursor; - _inputDevice->_axisStateMap[MOUSE_AXIS_X_POS].value = (currentMove.x() > 0 ? currentMove.x() : 0.0f); - _inputDevice->_axisStateMap[MOUSE_AXIS_X_NEG].value = (currentMove.x() < 0 ? -currentMove.x() : 0.0f); + updateDeltaAxisValue(MOUSE_AXIS_X_POS, currentMove.x() > 0 ? currentMove.x() : 0.0f); + updateDeltaAxisValue(MOUSE_AXIS_X_NEG, currentMove.x() < 0 ? -currentMove.x() : 0.0f); // Y mouse is inverted positive is pointing up the screen - _inputDevice->_axisStateMap[MOUSE_AXIS_Y_POS].value = (currentMove.y() < 0 ? -currentMove.y() : 0.0f); - _inputDevice->_axisStateMap[MOUSE_AXIS_Y_NEG].value = (currentMove.y() > 0 ? currentMove.y() : 0.0f); + updateDeltaAxisValue(MOUSE_AXIS_Y_POS, currentMove.y() < 0 ? -currentMove.y() : 0.0f); + updateDeltaAxisValue(MOUSE_AXIS_Y_NEG, currentMove.y() > 0 ? currentMove.y() : 0.0f); _previousCursor = _lastCursor; }); diff --git a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.h b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.h index 45ca496c11..f6921c8e23 100644 --- a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.h +++ b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.h @@ -130,6 +130,9 @@ protected: std::chrono::high_resolution_clock::time_point _lastTouchTime; static bool _enableTouch; + +private: + void updateDeltaAxisValue(int channel, float value); }; #endif // hifi_KeyboardMouseDevice_h From f381361c8231f94d354e142f0a04f50f95f6effc Mon Sep 17 00:00:00 2001 From: David Rowe <david@ctrlaltstudio.com> Date: Mon, 31 Dec 2018 13:53:59 +1300 Subject: [PATCH 058/230] Fix typos --- .../src/input-plugins/KeyboardMouseDevice.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp index df58ea81c2..ad24ffba5e 100755 --- a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp +++ b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp @@ -132,10 +132,10 @@ void KeyboardMouseDevice::wheelEvent(QWheelEvent* event) { auto currentMove = event->angleDelta() / 120.0f; // ####### TODO: Use AxisValue timestamps? - _inputDevice->_axisStateMap[_inputDevice->makeInput(MOUSE_AXIS_WHEEL_X_POS).getChannel()].value = (currentMove.x() > 0 ? currentMove.x() : 0, 0); - _inputDevice->_axisStateMap[_inputDevice->makeInput(MOUSE_AXIS_WHEEL_X_NEG).getChannel()].value = (currentMove.x() < 0 ? -currentMove.x() : 0, 0); - _inputDevice->_axisStateMap[_inputDevice->makeInput(MOUSE_AXIS_WHEEL_Y_POS).getChannel()].value = (currentMove.y() > 0 ? currentMove.y() : 0); - _inputDevice->_axisStateMap[_inputDevice->makeInput(MOUSE_AXIS_WHEEL_Y_NEG).getChannel()].value = (currentMove.y() < 0 ? -currentMove.y() : 0); + _inputDevice->_axisStateMap[_inputDevice->makeInput(MOUSE_AXIS_WHEEL_X_POS).getChannel()].value = currentMove.x() > 0 ? currentMove.x() : 0; + _inputDevice->_axisStateMap[_inputDevice->makeInput(MOUSE_AXIS_WHEEL_X_NEG).getChannel()].value = currentMove.x() < 0 ? -currentMove.x() : 0; + _inputDevice->_axisStateMap[_inputDevice->makeInput(MOUSE_AXIS_WHEEL_Y_POS).getChannel()].value = currentMove.y() > 0 ? currentMove.y() : 0; + _inputDevice->_axisStateMap[_inputDevice->makeInput(MOUSE_AXIS_WHEEL_Y_NEG).getChannel()].value = currentMove.y() < 0 ? -currentMove.y() : 0; } glm::vec2 evalAverageTouchPoints(const QList<QTouchEvent::TouchPoint>& points) { From 76ce63da64be5360fa25401789b14a6cceacb0e8 Mon Sep 17 00:00:00 2001 From: NissimHadar <nissim.hadar@gmail.com> Date: Sun, 30 Dec 2018 20:24:00 -0800 Subject: [PATCH 059/230] Can read graphics card type. --- interface/src/Application.cpp | 4 ++++ interface/src/Application.h | 3 ++- interface/src/scripting/PlatformInfoScriptingInterface.cpp | 7 ++++++- interface/src/scripting/PlatformInfoScriptingInterface.h | 7 +++++++ 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 56130160c4..503e974f24 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -8931,6 +8931,10 @@ void Application::copyToClipboard(const QString& text) { QApplication::clipboard()->setText(text); } +QString Application::getGraphicsCardType() { + return GPUIdent::getInstance()->getName(); +} + #if defined(Q_OS_ANDROID) void Application::beforeEnterBackground() { auto nodeList = DependencyManager::get<NodeList>(); diff --git a/interface/src/Application.h b/interface/src/Application.h index fd45a594b5..66667518fc 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -459,6 +459,8 @@ public slots: void changeViewAsNeeded(float boomLength); + QString Application::getGraphicsCardType(); + private slots: void onDesktopRootItemCreated(QQuickItem* qmlContext); void onDesktopRootContextCreated(QQmlContext* qmlContext); @@ -787,6 +789,5 @@ private: bool _showTrackedObjects { false }; bool _prevShowTrackedObjects { false }; - }; #endif // hifi_Application_h diff --git a/interface/src/scripting/PlatformInfoScriptingInterface.cpp b/interface/src/scripting/PlatformInfoScriptingInterface.cpp index 3ffb00e4b8..7f5ee3e08a 100644 --- a/interface/src/scripting/PlatformInfoScriptingInterface.cpp +++ b/interface/src/scripting/PlatformInfoScriptingInterface.cpp @@ -6,8 +6,9 @@ // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // #include "PlatformInfoScriptingInterface.h" +#include "Application.h" -# include <thread> +#include <thread> #ifdef Q_OS_WIN #include <Windows.h> @@ -69,4 +70,8 @@ int PlatformInfoScriptingInterface::getTotalSystemMemoryMB() { #else return -1; #endif +} + +QString PlatformInfoScriptingInterface::getGraphicsCardType() { + return qApp->getGraphicsCardType(); } \ No newline at end of file diff --git a/interface/src/scripting/PlatformInfoScriptingInterface.h b/interface/src/scripting/PlatformInfoScriptingInterface.h index f0b8122fa5..903658cc20 100644 --- a/interface/src/scripting/PlatformInfoScriptingInterface.h +++ b/interface/src/scripting/PlatformInfoScriptingInterface.h @@ -46,6 +46,13 @@ public slots: * @returns {int} size of memory in megabytes */ int getTotalSystemMemoryMB(); + + /**jsdoc + * Returns the graphics card type + * @function Test.getGraphicsCardType + * @returns {string} graphics card type + */ + QString getGraphicsCardType(); }; #endif // hifi_PlatformInfoScriptingInterface_h From bb54353644d5d99f4b2415113d26ca8f7884d72b Mon Sep 17 00:00:00 2001 From: NissimHadar <nissim.hadar@gmail.com> Date: Sun, 30 Dec 2018 22:36:15 -0800 Subject: [PATCH 060/230] Compilation error. --- interface/src/Application.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/Application.h b/interface/src/Application.h index a41c9f39f2..f8f78cc46a 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -459,7 +459,7 @@ public slots: void changeViewAsNeeded(float boomLength); - QString Application::getGraphicsCardType(); + QString getGraphicsCardType(); private slots: void onDesktopRootItemCreated(QQuickItem* qmlContext); From 95c93e59a74d6d5c24253aab25e63864fcd5fe29 Mon Sep 17 00:00:00 2001 From: Anthony Thibault <tony@highfidelity.io> Date: Mon, 31 Dec 2018 09:23:33 -0800 Subject: [PATCH 061/230] Make the Out of Range Strategy drop down wider So the "DropAfterDelay" item is not cut off on the Settings > Controlls > Calibration screen. --- interface/resources/qml/hifi/tablet/OpenVrConfiguration.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/resources/qml/hifi/tablet/OpenVrConfiguration.qml b/interface/resources/qml/hifi/tablet/OpenVrConfiguration.qml index b7d01a62e0..a2104826c3 100644 --- a/interface/resources/qml/hifi/tablet/OpenVrConfiguration.qml +++ b/interface/resources/qml/hifi/tablet/OpenVrConfiguration.qml @@ -869,7 +869,7 @@ Flickable { id: outOfRangeDataStrategyComboBox height: 25 - width: 100 + width: 150 editable: true colorScheme: hifi.colorSchemes.dark From 9c00bdcddbccb174bb279591b9f916f2eb2ce722 Mon Sep 17 00:00:00 2001 From: NissimHadar <nissim.hadar@gmail.com> Date: Mon, 31 Dec 2018 11:00:29 -0800 Subject: [PATCH 062/230] getCPUBrand works on Mac --- .../PlatformInfoScriptingInterface.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/interface/src/scripting/PlatformInfoScriptingInterface.cpp b/interface/src/scripting/PlatformInfoScriptingInterface.cpp index 7f5ee3e08a..33b349e032 100644 --- a/interface/src/scripting/PlatformInfoScriptingInterface.cpp +++ b/interface/src/scripting/PlatformInfoScriptingInterface.cpp @@ -12,6 +12,8 @@ #ifdef Q_OS_WIN #include <Windows.h> +#elif defined Q_OS_MAC +#include <sstream> #endif PlatformInfoScriptingInterface* PlatformInfoScriptingInterface::getInstance() { @@ -51,8 +53,17 @@ QString PlatformInfoScriptingInterface::getCPUBrand() { } return CPUBrandString; -#else - return "NOT IMPLEMENTED"; +#elif defined Q_OS_MAC + FILE* stream = popen("sysctl -n machdep.cpu.brand_string", "r"); + + std::ostringstream hostStream; + while (!feof(stream) && !ferror(stream)) { + char buf[128]; + int bytesRead = fread(buf, 1, 128, stream); + hostStream.write(buf, bytesRead); + } + + return QString::fromStdString(hostStream.str()); #endif } @@ -74,4 +85,4 @@ int PlatformInfoScriptingInterface::getTotalSystemMemoryMB() { QString PlatformInfoScriptingInterface::getGraphicsCardType() { return qApp->getGraphicsCardType(); -} \ No newline at end of file +} From a3dde612d1a4417cafa7b16bc06a1b63b886e676 Mon Sep 17 00:00:00 2001 From: NissimHadar <nissim.hadar@gmail.com> Date: Mon, 31 Dec 2018 11:56:27 -0800 Subject: [PATCH 063/230] Can get total memory on Mac --- .../scripting/PlatformInfoScriptingInterface.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/interface/src/scripting/PlatformInfoScriptingInterface.cpp b/interface/src/scripting/PlatformInfoScriptingInterface.cpp index 33b349e032..bcf4e79d76 100644 --- a/interface/src/scripting/PlatformInfoScriptingInterface.cpp +++ b/interface/src/scripting/PlatformInfoScriptingInterface.cpp @@ -78,8 +78,19 @@ int PlatformInfoScriptingInterface::getTotalSystemMemoryMB() { statex.dwLength = sizeof (statex); GlobalMemoryStatusEx(&statex); return statex.ullTotalPhys / 1024 / 1024; -#else - return -1; +#elif defined Q_OS_MAC + FILE* stream = popen("sysctl -a | grep hw.memsize", "r"); + + std::ostringstream hostStream; + while (!feof(stream) && !ferror(stream)) { + char buf[128]; + int bytesRead = fread(buf, 1, 128, stream); + hostStream.write(buf, bytesRead); + } + + QString result = QString::fromStdString(hostStream.str()); + QStringList parts = result.split(' '); + return (int)(parts[1].toDouble() / 1024 / 1024); #endif } From d87bc3e898140cd494779b53a37b1d8e7c60b0f4 Mon Sep 17 00:00:00 2001 From: Anthony Thibault <tony@highfidelity.io> Date: Mon, 31 Dec 2018 13:37:22 -0800 Subject: [PATCH 064/230] Update eye look at interest calculation This now takes distance, your facing toward them, and their facing toward you into the interest calculation. Also, separate the logic for myAvatar look at from other avatars snapping their gaze toward myAvatar. Previously these two separate elements where merged together in a single loop. --- interface/src/avatar/MyAvatar.cpp | 91 +++++++++++++------ interface/src/avatar/MyAvatar.h | 2 + .../src/avatars-renderer/Avatar.h | 4 - 3 files changed, 65 insertions(+), 32 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 397817cf60..e6b11ce9d4 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1565,35 +1565,61 @@ ScriptAvatarData* MyAvatar::getTargetAvatar() const { } } -void MyAvatar::updateLookAtTargetAvatar() { - // - // Look at the avatar whose eyes are closest to the ray in direction of my avatar's head - // And set the correctedLookAt for all (nearby) avatars that are looking at me. - _lookAtTargetAvatar.reset(); - _targetAvatarPosition = glm::vec3(0.0f); +static float lookAtCostFunction(const glm::vec3& myForward, const glm::vec3& myPosition, const glm::vec3& otherForward, const glm::vec3& otherPosition) { + const float DISTANCE_FACTOR = 3.14f; + const float MY_ANGLE_FACTOR = 1.0f; + const float OTHER_ANGLE_FACTOR = 1.0f; + const float GREATEST_LOOKING_AT_DISTANCE = 10.0f; // meters - glm::vec3 lookForward = getHead()->getFinalOrientationInWorldFrame() * IDENTITY_FORWARD; - glm::vec3 cameraPosition = qApp->getCamera().getPosition(); + glm::vec3 d = otherPosition - myPosition; + float distance = glm::length(d); + glm::vec3 dUnit = d / distance; + float myAngle = acosf(glm::dot(myForward, dUnit)); + float otherAngle = acosf(glm::dot(otherForward, -dUnit)); - float smallestAngleTo = glm::radians(DEFAULT_FIELD_OF_VIEW_DEGREES) / 2.0f; - const float KEEP_LOOKING_AT_CURRENT_ANGLE_FACTOR = 1.3f; - const float GREATEST_LOOKING_AT_DISTANCE = 10.0f; + if (distance > GREATEST_LOOKING_AT_DISTANCE) { + return FLT_MAX; + } else { + return DISTANCE_FACTOR * distance + MY_ANGLE_FACTOR * myAngle + OTHER_ANGLE_FACTOR * otherAngle; + } +} - AvatarHash hash = DependencyManager::get<AvatarManager>()->getHashCopy(); +void MyAvatar::computeMyLookAtTarget(const AvatarHash& hash) { + glm::vec3 myForward = getHead()->getFinalOrientationInWorldFrame() * IDENTITY_FORWARD; + glm::vec3 myPosition = qApp->getCamera().getPosition(); + float bestCost = FLT_MAX; + std::shared_ptr<Avatar> bestAvatar; - foreach (const AvatarSharedPointer& avatarPointer, hash) { - auto avatar = static_pointer_cast<Avatar>(avatarPointer); - bool isCurrentTarget = avatar->getIsLookAtTarget(); - float distanceTo = glm::length(avatar->getHead()->getEyePosition() - cameraPosition); - avatar->setIsLookAtTarget(false); - if (!avatar->isMyAvatar() && avatar->isInitialized() && - (distanceTo < GREATEST_LOOKING_AT_DISTANCE * getModelScale())) { - float radius = glm::length(avatar->getHead()->getEyePosition() - avatar->getHead()->getRightEyePosition()); - float angleTo = coneSphereAngle(getHead()->getEyePosition(), lookForward, avatar->getHead()->getEyePosition(), radius); - if (angleTo < (smallestAngleTo * (isCurrentTarget ? KEEP_LOOKING_AT_CURRENT_ANGLE_FACTOR : 1.0f))) { - _lookAtTargetAvatar = avatarPointer; - _targetAvatarPosition = avatarPointer->getWorldPosition(); + foreach (const AvatarSharedPointer& avatarData, hash) { + std::shared_ptr<Avatar> avatar = std::static_pointer_cast<Avatar>(avatarData); + if (!avatar->isMyAvatar() && avatar->isInitialized()) { + glm::vec3 otherForward = avatar->getHead()->getForwardDirection(); + glm::vec3 otherPosition = avatar->getHead()->getEyePosition(); + float cost = lookAtCostFunction(myForward, myPosition, otherForward, otherPosition); + if (_lookAtTargetAvatar.lock().get() == avatar.get()) { + const float COST_HYSTERESIS = 0.1f; + cost += COST_HYSTERESIS; } + + if (cost < bestCost) { + bestCost = cost; + bestAvatar = avatar; + } + } + } + + if (bestAvatar) { + _lookAtTargetAvatar = bestAvatar; + _targetAvatarPosition = bestAvatar->getWorldPosition(); + } else { + _lookAtTargetAvatar.reset(); + } +} + +void MyAvatar::snapOtherAvatarLookAtTargetsToMe(const AvatarHash& hash) { + foreach (const AvatarSharedPointer& avatarData, hash) { + std::shared_ptr<Avatar> avatar = std::static_pointer_cast<Avatar>(avatarData); + if (!avatar->isMyAvatar() && avatar->isInitialized()) { if (_lookAtSnappingEnabled && avatar->getLookAtSnappingEnabled() && isLookingAtMe(avatar)) { // Alter their gaze to look directly at my camera; this looks more natural than looking at my avatar's face. @@ -1648,10 +1674,19 @@ void MyAvatar::updateLookAtTargetAvatar() { avatar->getHead()->clearCorrectedLookAtPosition(); } } - auto avatarPointer = _lookAtTargetAvatar.lock(); - if (avatarPointer) { - static_pointer_cast<Avatar>(avatarPointer)->setIsLookAtTarget(true); - } +} + +void MyAvatar::updateLookAtTargetAvatar() { + + // The AvatarManager is a mutable class shared by many threads. We make a thread-safe deep copy of it, + // to avoid having to hold a lock while we iterate over all the avatars within. + AvatarHash hash = DependencyManager::get<AvatarManager>()->getHashCopy(); + + // determine what the best look at target for my avatar should be. + computeMyLookAtTarget(hash); + + // snap look at position for avatars that are looking at me. + snapOtherAvatarLookAtTargetsToMe(hash); } void MyAvatar::clearLookAtTargetAvatar() { diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index b2381366bb..9a399c43c7 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -832,6 +832,8 @@ public: AvatarWeakPointer getLookAtTargetAvatar() const { return _lookAtTargetAvatar; } void updateLookAtTargetAvatar(); + void computeMyLookAtTarget(const AvatarHash& hash); + void snapOtherAvatarLookAtTargetsToMe(const AvatarHash& hash); void clearLookAtTargetAvatar(); virtual void setJointRotations(const QVector<glm::quat>& jointRotations) override; diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h index 8f70b12122..1164e0902a 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h @@ -156,9 +156,6 @@ public: virtual void postUpdate(float deltaTime, const render::ScenePointer& scene); - //setters - void setIsLookAtTarget(const bool isLookAtTarget) { _isLookAtTarget = isLookAtTarget; } - bool getIsLookAtTarget() const { return _isLookAtTarget; } //getters bool isInitialized() const { return _initialized; } SkeletonModelPointer getSkeletonModel() { return _skeletonModel; } @@ -592,7 +589,6 @@ protected: int _rightPointerGeometryID { 0 }; int _nameRectGeometryID { 0 }; bool _initialized { false }; - bool _isLookAtTarget { false }; bool _isAnimatingScale { false }; bool _mustFadeIn { false }; bool _isFading { false }; From c0a784fa9474ab00e678cb8278ecf3aa05e0dcfb Mon Sep 17 00:00:00 2001 From: NissimHadar <nissim.hadar@gmail.com> Date: Tue, 1 Jan 2019 12:44:09 -0800 Subject: [PATCH 065/230] Get graphics card type works on Mac laptop --- .../PlatformInfoScriptingInterface.cpp | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/interface/src/scripting/PlatformInfoScriptingInterface.cpp b/interface/src/scripting/PlatformInfoScriptingInterface.cpp index bcf4e79d76..b965eb4331 100644 --- a/interface/src/scripting/PlatformInfoScriptingInterface.cpp +++ b/interface/src/scripting/PlatformInfoScriptingInterface.cpp @@ -95,5 +95,27 @@ int PlatformInfoScriptingInterface::getTotalSystemMemoryMB() { } QString PlatformInfoScriptingInterface::getGraphicsCardType() { +#ifdef Q_OS_WIN return qApp->getGraphicsCardType(); +#elif defined Q_OS_MAC + FILE* stream = popen("system_profiler SPDisplaysDataType | grep Chipset", "r"); + + std::ostringstream hostStream; + while (!feof(stream) && !ferror(stream)) { + char buf[128]; + int bytesRead = fread(buf, 1, 128, stream); + hostStream.write(buf, bytesRead); + } + + QString result = QString::fromStdString(hostStream.str()); + QStringList parts = result.split('\n'); + for (int i = 0; i < parts.size(); ++i) { + if (parts[i].toLower().contains("radeon") || parts[i].toLower().contains("nvidia")) { + return parts[i]; + } + } + + return "UNKNOWN"; +#endif + } From d073dc22ac4131955bccb71a72519401be83c671 Mon Sep 17 00:00:00 2001 From: David Rowe <david@ctrlaltstudio.com> Date: Wed, 2 Jan 2019 13:39:31 +1300 Subject: [PATCH 066/230] Misc fixes --- libraries/controllers/src/controllers/impl/Endpoint.h | 1 - .../src/controllers/impl/endpoints/AnyEndpoint.cpp | 2 +- .../src/controllers/impl/endpoints/CompositeEndpoint.cpp | 8 ++++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/libraries/controllers/src/controllers/impl/Endpoint.h b/libraries/controllers/src/controllers/impl/Endpoint.h index 29ba7c97f0..bcf71f3094 100644 --- a/libraries/controllers/src/controllers/impl/Endpoint.h +++ b/libraries/controllers/src/controllers/impl/Endpoint.h @@ -43,7 +43,6 @@ namespace controller { virtual Pose peekPose() const { return Pose(); }; virtual Pose pose() { return peekPose(); } virtual void apply(const Pose& value, const Pointer& source) {} - virtual bool isAxis() const { return _input.isAxis(); } virtual bool isPose() const { return _input.isPose(); } virtual bool writeable() const { return true; } virtual bool readable() const { return true; } diff --git a/libraries/controllers/src/controllers/impl/endpoints/AnyEndpoint.cpp b/libraries/controllers/src/controllers/impl/endpoints/AnyEndpoint.cpp index 75acdd9d13..7f0f0fec48 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/AnyEndpoint.cpp +++ b/libraries/controllers/src/controllers/impl/endpoints/AnyEndpoint.cpp @@ -46,7 +46,7 @@ AxisValue AnyEndpoint::value() { for (auto& child : _children) { auto childValue = child->value(); if (std::abs(childValue.value) > std::abs(result.value)) { - result.value = childValue.value; + result = childValue; } } return result; diff --git a/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.cpp b/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.cpp index bd75c97dd7..f54c786a33 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.cpp +++ b/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.cpp @@ -25,13 +25,17 @@ bool CompositeEndpoint::readable() const { } AxisValue CompositeEndpoint::peek() const { - auto result = AxisValue(first->peek().value * -1.0f + second->peek().value, 0); + auto negative = first->peek(); + auto positive = second->peek(); + auto result = AxisValue(positive.value - negative.value, std::max(positive.timestamp, negative.timestamp)); return result; } // Fetching via value() must trigger any side effects of value() on the children AxisValue CompositeEndpoint::value() { - auto result = AxisValue(first->value().value * -1.0f + second->value().value, 0); + auto negative = first->value(); + auto positive = second->value(); + auto result = AxisValue(positive.value - negative.value, std::max(positive.timestamp, negative.timestamp)); return result; } From 3b531f3c99b3a64a1d69001e3ca8d4d33718d8d2 Mon Sep 17 00:00:00 2001 From: David Rowe <david@ctrlaltstudio.com> Date: Wed, 2 Jan 2019 13:41:55 +1300 Subject: [PATCH 067/230] Update JSDoc --- .../scripting/ControllerScriptingInterface.h | 2 +- .../src/input-plugins/KeyboardMouseDevice.cpp | 27 ++++++++++++------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/interface/src/scripting/ControllerScriptingInterface.h b/interface/src/scripting/ControllerScriptingInterface.h index 051a372aad..b063e98992 100644 --- a/interface/src/scripting/ControllerScriptingInterface.h +++ b/interface/src/scripting/ControllerScriptingInterface.h @@ -104,7 +104,7 @@ class ScriptEngine; * <ul> * <li>{@link Controller.getValue|getValue}</li> * <li>{@link Controller.getAxisValue|getAxisValue}</li> - * <li>{@link Controller.getPoseValue|getgetPoseValue}</li> + * <li>{@link Controller.getPoseValue|getPoseValue}</li> * <li>{@link Controller.getActionValue|getActionValue}</li> * </ul> * diff --git a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp index ad24ffba5e..c819aaeacf 100755 --- a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp +++ b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp @@ -254,16 +254,23 @@ controller::Input KeyboardMouseDevice::InputDevice::makeInput(KeyboardMouseDevic * </td></tr> * <tr><td><code>PgDown</code></td><td>number</td><td>number</td><td>The page down key on the keyboard or keypad is pressed. * </td></tr> - * <tr><td><code>LeftMouseButton</code></td><td>number</td><td>number</td><td>The left mouse button pressed.</td></tr> - * <tr><td><code>MiddleMouseButton</code></td><td>number</td><td>number</td><td>The middle mouse button pressed.</td></tr> - * <tr><td><code>RightMouseButton</code></td><td>number</td><td>number</td><td>The right mouse button pressed.</td></tr> - * <tr><td><code>LeftMouseClicked</code></td><td>number</td><td>number</td><td>The left mouse button clicked.</td></tr> - * <tr><td><code>MiddleMouseClicked</code></td><td>number</td><td>number</td><td>The middle mouse button clicked.</td></tr> - * <tr><td><code>RightMouseClicked</code></td><td>number</td><td>number</td><td>The right mouse button clicked.</td></tr> - * <tr><td><code>MouseMoveRight</code></td><td>number</td><td>number</td><td>The mouse moved right.</td></tr> - * <tr><td><code>MouseMoveLeft</code></td><td>number</td><td>number</td><td>The mouse moved left.</td></tr> - * <tr><td><code>MouseMoveUp</code></td><td>number</td><td>number</td><td>The mouse moved up.</td></tr> - * <tr><td><code>MouseMoveDown</code></td><td>number</td><td>number</td><td>The mouse moved down.</td></tr> + * <tr><td><code>LeftMouseButton</code></td><td>number</td><td>number</td><td>The left mouse button is pressed.</td></tr> + * <tr><td><code>MiddleMouseButton</code></td><td>number</td><td>number</td><td>The middle mouse button is pressed. + * </td></tr> + * <tr><td><code>RightMouseButton</code></td><td>number</td><td>number</td><td>The right mouse button is pressed.</td></tr> + * <tr><td><code>LeftMouseClicked</code></td><td>number</td><td>number</td><td>The left mouse button was clicked.</td></tr> + * <tr><td><code>MiddleMouseClicked</code></td><td>number</td><td>number</td><td>The middle mouse button was clicked. + * </td></tr> + * <tr><td><code>RightMouseClicked</code></td><td>number</td><td>number</td><td>The right mouse button was clicked. + * </td></tr> + * <tr><td><code>MouseMoveRight</code></td><td>number</td><td>number</td><td>The mouse moved right. The data value is how + * far it moved.</td></tr> + * <tr><td><code>MouseMoveLeft</code></td><td>number</td><td>number</td><td>The mouse moved left. The data value is how far + * it moved.</td></tr> + * <tr><td><code>MouseMoveUp</code></td><td>number</td><td>number</td><td>The mouse moved up. The data value is how far it + * moved.</td></tr> + * <tr><td><code>MouseMoveDown</code></td><td>number</td><td>number</td><td>The mouse moved down. The data value is how far + * it moved.</td></tr> * <tr><td><code>MouseX</code></td><td>number</td><td>number</td><td>The mouse x-coordinate changed. The data value is its * new x-coordinate value.</td></tr> * <tr><td><code>MouseY</code></td><td>number</td><td>number</td><td>The mouse y-coordinate changed. The data value is its From 2e457e2212ef0e7dec1c6719adcfb06442d5326a Mon Sep 17 00:00:00 2001 From: Roxanne Skelly <roxanne@roxiware.com> Date: Tue, 1 Jan 2019 20:50:46 -0800 Subject: [PATCH 068/230] Checkpoint trait flow control --- .../src/avatars/AvatarMixerClientData.cpp | 69 +++++++++++-------- .../src/avatars/AvatarMixerSlave.cpp | 24 ++++++- 2 files changed, 64 insertions(+), 29 deletions(-) diff --git a/assignment-client/src/avatars/AvatarMixerClientData.cpp b/assignment-client/src/avatars/AvatarMixerClientData.cpp index a20d6504de..b2b09df6d2 100644 --- a/assignment-client/src/avatars/AvatarMixerClientData.cpp +++ b/assignment-client/src/avatars/AvatarMixerClientData.cpp @@ -19,9 +19,7 @@ #include "AvatarMixerSlave.h" -AvatarMixerClientData::AvatarMixerClientData(const QUuid& nodeID, Node::LocalID nodeLocalID) : - NodeData(nodeID, nodeLocalID) -{ +AvatarMixerClientData::AvatarMixerClientData(const QUuid& nodeID, Node::LocalID nodeLocalID) : NodeData(nodeID, nodeLocalID) { // in case somebody calls getSessionUUID on the AvatarData instance, make sure it has the right ID _avatar->setID(nodeID); } @@ -82,12 +80,11 @@ int AvatarMixerClientData::processPackets(const SlaveSharedData& slaveSharedData } int AvatarMixerClientData::parseData(ReceivedMessage& message) { - // pull the sequence number from the data first uint16_t sequenceNumber; message.readPrimitive(&sequenceNumber); - + if (sequenceNumber < _lastReceivedSequenceNumber && _lastReceivedSequenceNumber != UINT16_MAX) { incrementNumOutOfOrderSends(); } @@ -98,7 +95,8 @@ int AvatarMixerClientData::parseData(ReceivedMessage& message) { } void AvatarMixerClientData::processSetTraitsMessage(ReceivedMessage& message, - const SlaveSharedData& slaveSharedData, Node& sendingNode) { + const SlaveSharedData& slaveSharedData, + Node& sendingNode) { // pull the trait version from the message AvatarTraits::TraitVersion packetTraitVersion; message.readPrimitive(&packetTraitVersion); @@ -137,7 +135,7 @@ void AvatarMixerClientData::processSetTraitsMessage(ReceivedMessage& message, AvatarTraits::TraitInstanceID instanceID = QUuid::fromRfc4122(message.readWithoutCopy(NUM_BYTES_RFC4122_UUID)); if (message.getBytesLeftToRead() == 0) { - qWarning () << "Received an instanced trait with no size from" << message.getSenderSockAddr(); + qWarning() << "Received an instanced trait with no size from" << message.getSenderSockAddr(); break; } @@ -145,7 +143,8 @@ void AvatarMixerClientData::processSetTraitsMessage(ReceivedMessage& message, message.readPrimitive(&traitSize); if (traitSize < -1 || traitSize > message.getBytesLeftToRead()) { - qWarning() << "Refusing to process instanced trait of size" << traitSize << "from" << message.getSenderSockAddr(); + qWarning() << "Refusing to process instanced trait of size" << traitSize << "from" + << message.getSenderSockAddr(); break; } @@ -171,7 +170,8 @@ void AvatarMixerClientData::processSetTraitsMessage(ReceivedMessage& message, message.seek(message.getPosition() + traitSize); } } else { - qWarning() << "Refusing to process traits packet with instanced trait of unprocessable type from" << message.getSenderSockAddr(); + qWarning() << "Refusing to process traits packet with instanced trait of unprocessable type from" + << message.getSenderSockAddr(); break; } } @@ -183,42 +183,56 @@ void AvatarMixerClientData::processSetTraitsMessage(ReceivedMessage& message, } void AvatarMixerClientData::processBulkAvatarTraitsAckMessage(ReceivedMessage& message) { - // Look up the avatar/trait data associated with this ack and update the 'last ack' list // with it. AvatarTraits::TraitMessageSequence seq; message.readPrimitive(&seq); - auto& sentAvatarTraitVersions = _pendingTraitVersions.find(seq); + auto sentAvatarTraitVersions = _pendingTraitVersions.find(seq); if (sentAvatarTraitVersions != _pendingTraitVersions.end()) { // Note, this is not a simple move of the pending traits // to the acked traits. Instead, it's a copy where existing - // trait versions in the acked hash are retained for traits not - // included in the pending hash + // trait versions in the acked hash are retained for traits not + // included in the pending hash for (auto& nodeTraitVersions : sentAvatarTraitVersions->second) { auto& nodeId = nodeTraitVersions.first; auto& versions = nodeTraitVersions.second; auto simpleReceivedIt = versions.simpleCBegin(); while (simpleReceivedIt != versions.simpleCEnd()) { - auto traitType = static_cast<AvatarTraits::TraitType>(std::distance(versions.simpleCBegin(), - simpleReceivedIt)); + auto traitType = static_cast<AvatarTraits::TraitType>(std::distance(versions.simpleCBegin(), simpleReceivedIt)); _ackedTraitVersions[nodeId][traitType] = *simpleReceivedIt; simpleReceivedIt++; } + + // enumerate the sent instanced trait versions + auto instancedSentIt = versions.instancedCBegin(); + while (instancedSentIt != versions.instancedCEnd()) { + auto traitType = instancedSentIt->traitType; + // get or create the sent trait versions for this trait type + auto& sentIDValuePairs = versions.getInstanceIDValuePairs(traitType); + + // enumerate each sent instance + for (auto& sentInstance : instancedSentIt->instances) { + auto instanceID = sentInstance.id; + const auto sentVersion = sentInstance.value; + _ackedTraitVersions[nodeId].instanceInsert(traitType, instanceID, sentVersion); + } + instancedSentIt++; + } } _pendingTraitVersions.erase(sentAvatarTraitVersions); - } - else { + } else { // This can happen either the BulkAvatarTraits was sent with no simple traits, // or if the avatar mixer restarts while there are pending // BulkAvatarTraits messages in-flight. if (seq > getTraitsMessageSequence()) { - qWarning() << "Received BulkAvatarTraitsAck with future seq (potential avatar mixer restart) " << seq << " from " << message.getSenderSockAddr(); + qWarning() << "Received BulkAvatarTraitsAck with future seq (potential avatar mixer restart) " << seq << " from " + << message.getSenderSockAddr(); } } } - -void AvatarMixerClientData::checkSkeletonURLAgainstWhitelist(const SlaveSharedData &slaveSharedData, Node& sendingNode, +void AvatarMixerClientData::checkSkeletonURLAgainstWhitelist(const SlaveSharedData& slaveSharedData, + Node& sendingNode, AvatarTraits::TraitVersion traitVersion) { const auto& whitelist = slaveSharedData.skeletonURLWhitelist; @@ -244,8 +258,8 @@ void AvatarMixerClientData::checkSkeletonURLAgainstWhitelist(const SlaveSharedDa // make sure we're not unecessarily overriding the default avatar with the default avatar if (_avatar->getWireSafeSkeletonModelURL() != slaveSharedData.skeletonReplacementURL) { // we need to change this avatar's skeleton URL, and send them a traits packet informing them of the change - qDebug() << "Overwriting avatar URL" << _avatar->getWireSafeSkeletonModelURL() - << "to replacement" << slaveSharedData.skeletonReplacementURL << "for" << sendingNode.getUUID(); + qDebug() << "Overwriting avatar URL" << _avatar->getWireSafeSkeletonModelURL() << "to replacement" + << slaveSharedData.skeletonReplacementURL << "for" << sendingNode.getUUID(); _avatar->setSkeletonModelURL(slaveSharedData.skeletonReplacementURL); auto packet = NLPacket::create(PacketType::SetAvatarTraits, -1, true); @@ -327,7 +341,7 @@ void AvatarMixerClientData::readViewFrustumPacket(const QByteArray& message) { _currentViewFrustums.clear(); auto sourceBuffer = reinterpret_cast<const unsigned char*>(message.constData()); - + uint8_t numFrustums = 0; memcpy(&numFrustums, sourceBuffer, sizeof(numFrustums)); sourceBuffer += sizeof(numFrustums); @@ -342,9 +356,7 @@ void AvatarMixerClientData::readViewFrustumPacket(const QByteArray& message) { bool AvatarMixerClientData::otherAvatarInView(const AABox& otherAvatarBox) { return std::any_of(std::begin(_currentViewFrustums), std::end(_currentViewFrustums), - [&](const ConicalViewFrustum& viewFrustum) { - return viewFrustum.intersects(otherAvatarBox); - }); + [&](const ConicalViewFrustum& viewFrustum) { return viewFrustum.intersects(otherAvatarBox); }); } void AvatarMixerClientData::loadJSONStats(QJsonObject& jsonObject) const { @@ -355,14 +367,15 @@ void AvatarMixerClientData::loadJSONStats(QJsonObject& jsonObject) const { jsonObject["total_num_out_of_order_sends"] = _numOutOfOrderSends; jsonObject[OUTBOUND_AVATAR_DATA_STATS_KEY] = getOutboundAvatarDataKbps(); - jsonObject[INBOUND_AVATAR_DATA_STATS_KEY] = _avatar->getAverageBytesReceivedPerSecond() / (float) BYTES_PER_KILOBIT; + jsonObject[INBOUND_AVATAR_DATA_STATS_KEY] = _avatar->getAverageBytesReceivedPerSecond() / (float)BYTES_PER_KILOBIT; jsonObject["av_data_receive_rate"] = _avatar->getReceiveRate(); jsonObject["recent_other_av_in_view"] = _recentOtherAvatarsInView; jsonObject["recent_other_av_out_of_view"] = _recentOtherAvatarsOutOfView; } -AvatarMixerClientData::TraitsCheckTimestamp AvatarMixerClientData::getLastOtherAvatarTraitsSendPoint(Node::LocalID otherAvatar) const { +AvatarMixerClientData::TraitsCheckTimestamp AvatarMixerClientData::getLastOtherAvatarTraitsSendPoint( + Node::LocalID otherAvatar) const { auto it = _lastSentTraitsTimestamps.find(otherAvatar); if (it != _lastSentTraitsTimestamps.end()) { diff --git a/assignment-client/src/avatars/AvatarMixerSlave.cpp b/assignment-client/src/avatars/AvatarMixerSlave.cpp index 1e84da7e55..5ed10dad98 100644 --- a/assignment-client/src/avatars/AvatarMixerSlave.cpp +++ b/assignment-client/src/avatars/AvatarMixerSlave.cpp @@ -150,6 +150,7 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis // get or create the sent trait versions for this trait type auto& sentIDValuePairs = lastSentVersions.getInstanceIDValuePairs(traitType); + auto& ackIDValuePairs = lastAckedVersions.getInstanceIDValuePairs(traitType); // enumerate each received instance for (auto& receivedInstance : instancedReceivedIt->instances) { @@ -167,7 +168,16 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis { return sentInstance.id == instanceID; }); - + // look for existing acked version for this instance + auto ackedInstanceIt = std::find_if(ackIDValuePairs.begin(), ackIDValuePairs.end(), + [instanceID](auto& ackInstance) { return ackInstance.id == instanceID; }); + + // if we have a sent version, then we must have an acked instance of the same trait with the same + // version to go on, otherwise we drop the received trait + if (sentInstanceIt != sentIDValuePairs.end() && + (ackedInstanceIt == ackIDValuePairs.end() || sentInstanceIt->value != ackedInstanceIt->value)) { + continue; + } if (!isDeleted && (sentInstanceIt == sentIDValuePairs.end() || receivedVersion > sentInstanceIt->value)) { addTraitsNodeHeader(listeningNodeData, sendingNodeData, traitsPacketList, bytesWritten); @@ -179,6 +189,12 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis } else { sentIDValuePairs.emplace_back(instanceID, receivedVersion); } + + auto& pendingTraitVersions = + listeningNodeData->getPendingTraitVersions(listeningNodeData->getTraitsMessageSequence(), + otherNodeLocalID); + pendingTraitVersions.instanceInsert(traitType, instanceID, receivedVersion); + } else if (isDeleted && sentInstanceIt != sentIDValuePairs.end() && absoluteReceivedVersion > sentInstanceIt->value) { addTraitsNodeHeader(listeningNodeData, sendingNodeData, traitsPacketList, bytesWritten); @@ -187,6 +203,12 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis // update the last sent version for this trait instance to the absolute value of the deleted version sentInstanceIt->value = absoluteReceivedVersion; + + auto& pendingTraitVersions = + listeningNodeData->getPendingTraitVersions(listeningNodeData->getTraitsMessageSequence(), + otherNodeLocalID); + pendingTraitVersions.instanceInsert(traitType, instanceID, absoluteReceivedVersion); + } } From 71991c2e2f1eed2b0d985791efcdcf37d0e8cf17 Mon Sep 17 00:00:00 2001 From: Anthony Thibault <tony@highfidelity.io> Date: Wed, 2 Jan 2019 11:05:01 -0800 Subject: [PATCH 069/230] Added max angles and isTalking into the lookAtCostFunction --- interface/src/avatar/MyAvatar.cpp | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index e6b11ce9d4..e168e182e9 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1565,11 +1565,17 @@ ScriptAvatarData* MyAvatar::getTargetAvatar() const { } } -static float lookAtCostFunction(const glm::vec3& myForward, const glm::vec3& myPosition, const glm::vec3& otherForward, const glm::vec3& otherPosition) { +static float lookAtCostFunction(const glm::vec3& myForward, const glm::vec3& myPosition, const glm::vec3& otherForward, const glm::vec3& otherPosition, + bool otherIsTalking, bool lookingAtOtherAlready) { const float DISTANCE_FACTOR = 3.14f; const float MY_ANGLE_FACTOR = 1.0f; const float OTHER_ANGLE_FACTOR = 1.0f; + const float OTHER_IS_TALKING_TERM = otherIsTalking ? 1.0f : 0.0f; + const float LOOKING_AT_OTHER_ALREADY_TERM = lookingAtOtherAlready ? -0.2f : 0.0f; + const float GREATEST_LOOKING_AT_DISTANCE = 10.0f; // meters + const float MAX_MY_ANGLE = PI / 8.0f; // 22.5 degrees, Don't look too far away from the head facing. + const float MAX_OTHER_ANGLE = (3.0f * PI) / 4.0f; // 135 degrees, Don't stare at the back of another avatars head. glm::vec3 d = otherPosition - myPosition; float distance = glm::length(d); @@ -1577,10 +1583,14 @@ static float lookAtCostFunction(const glm::vec3& myForward, const glm::vec3& myP float myAngle = acosf(glm::dot(myForward, dUnit)); float otherAngle = acosf(glm::dot(otherForward, -dUnit)); - if (distance > GREATEST_LOOKING_AT_DISTANCE) { + if (distance > GREATEST_LOOKING_AT_DISTANCE || myAngle > MAX_MY_ANGLE || otherAngle > MAX_OTHER_ANGLE) { return FLT_MAX; } else { - return DISTANCE_FACTOR * distance + MY_ANGLE_FACTOR * myAngle + OTHER_ANGLE_FACTOR * otherAngle; + return (DISTANCE_FACTOR * distance + + MY_ANGLE_FACTOR * myAngle + + OTHER_ANGLE_FACTOR * otherAngle + + OTHER_IS_TALKING_TERM + + LOOKING_AT_OTHER_ALREADY_TERM); } } @@ -1595,12 +1605,10 @@ void MyAvatar::computeMyLookAtTarget(const AvatarHash& hash) { if (!avatar->isMyAvatar() && avatar->isInitialized()) { glm::vec3 otherForward = avatar->getHead()->getForwardDirection(); glm::vec3 otherPosition = avatar->getHead()->getEyePosition(); - float cost = lookAtCostFunction(myForward, myPosition, otherForward, otherPosition); - if (_lookAtTargetAvatar.lock().get() == avatar.get()) { - const float COST_HYSTERESIS = 0.1f; - cost += COST_HYSTERESIS; - } - + const float TIME_WITHOUT_TALKING_THRESHOLD = 1.0f; + bool otherIsTalking = avatar->getHead()->getTimeWithoutTalking() <= TIME_WITHOUT_TALKING_THRESHOLD; + bool lookingAtOtherAlready = _lookAtTargetAvatar.lock().get() == avatar.get(); + float cost = lookAtCostFunction(myForward, myPosition, otherForward, otherPosition, otherIsTalking, lookingAtOtherAlready); if (cost < bestCost) { bestCost = cost; bestAvatar = avatar; From f8f13e974d2b7337bb18d13d83f9dd90458a1c20 Mon Sep 17 00:00:00 2001 From: unknown <davidback3@gmail.com> Date: Thu, 27 Dec 2018 19:52:21 -0800 Subject: [PATCH 070/230] property range audit - add range info via macros accessible via API, tweak min/max/steps in entityProperties --- libraries/entities/src/EntityItem.cpp | 7 +- .../entities/src/EntityItemProperties.cpp | 175 ++++++++----- libraries/entities/src/EntityItemProperties.h | 16 ++ .../src/EntityItemPropertiesDefaults.h | 5 + .../entities/src/EntityItemPropertiesMacros.h | 22 +- .../entities/src/EntityScriptingInterface.cpp | 53 ++++ .../entities/src/EntityScriptingInterface.h | 36 +++ libraries/entities/src/LightEntityItem.cpp | 4 +- libraries/entities/src/LightEntityItem.h | 2 + libraries/script-engine/src/ScriptEngine.cpp | 1 + scripts/system/edit.js | 11 +- scripts/system/html/js/draggableNumber.js | 27 +- scripts/system/html/js/entityProperties.js | 240 ++++++++++-------- .../system/libraries/entitySelectionTool.js | 10 +- 14 files changed, 418 insertions(+), 191 deletions(-) diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index 94d0024fd5..cd0f550a05 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -1693,7 +1693,8 @@ float EntityItem::getVolumeEstimate() const { void EntityItem::setRegistrationPoint(const glm::vec3& value) { if (value != _registrationPoint) { withWriteLock([&] { - _registrationPoint = glm::clamp(value, 0.0f, 1.0f); + _registrationPoint = glm::clamp(value, glm::vec3(ENTITY_ITEM_MIN_REGISTRATION_POINT), + glm::vec3(ENTITY_ITEM_MAX_REGISTRATION_POINT)); }); dimensionsChanged(); // Registration Point affects the bounding box markDirtyFlags(Simulation::DIRTY_SHAPE); @@ -1858,7 +1859,7 @@ void EntityItem::setVelocity(const glm::vec3& value) { } void EntityItem::setDamping(float value) { - auto clampedDamping = glm::clamp(value, 0.0f, 1.0f); + auto clampedDamping = glm::clamp(value, ENTITY_ITEM_MIN_DAMPING, ENTITY_ITEM_MAX_DAMPING); withWriteLock([&] { if (_damping != clampedDamping) { _damping = clampedDamping; @@ -1913,7 +1914,7 @@ void EntityItem::setAngularVelocity(const glm::vec3& value) { } void EntityItem::setAngularDamping(float value) { - auto clampedDamping = glm::clamp(value, 0.0f, 1.0f); + auto clampedDamping = glm::clamp(value, ENTITY_ITEM_MIN_DAMPING, ENTITY_ITEM_MAX_DAMPING); withWriteLock([&] { if (_angularDamping != clampedDamping) { _angularDamping = clampedDamping; diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 3eb193f1bd..5616d04ea4 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -2158,8 +2158,6 @@ void EntityItemPropertiesFromScriptValueHonorReadOnly(const QScriptValue &object QScriptValue EntityPropertyFlagsToScriptValue(QScriptEngine* engine, const EntityPropertyFlags& flags) { return EntityItemProperties::entityPropertyFlagsToScriptValue(engine, flags); - QScriptValue result = engine->newObject(); - return result; } void EntityPropertyFlagsFromScriptValue(const QScriptValue& object, EntityPropertyFlags& flags) { @@ -2172,25 +2170,48 @@ QScriptValue EntityItemProperties::entityPropertyFlagsToScriptValue(QScriptEngin return result; } -static QHash<QString, EntityPropertyList> _propertyStringsToEnums; - void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue& object, EntityPropertyFlags& flags) { + if (object.isString()) { + EntityPropertyInfo propertyInfo; + if (getPropertyInfo(object.toString(), propertyInfo)) { + flags << propertyInfo.propertyEnum; + } + } + else if (object.isArray()) { + quint32 length = object.property("length").toInt32(); + for (quint32 i = 0; i < length; i++) { + QString propertyName = object.property(i).toString(); + EntityPropertyInfo propertyInfo; + if (getPropertyInfo(propertyName, propertyInfo)) { + flags << propertyInfo.propertyEnum; + } + } + } +} + +static QHash<QString, EntityPropertyInfo> _propertyInfos; + +bool EntityItemProperties::getPropertyInfo(const QString& propertyName, EntityPropertyInfo& propertyInfo) { static std::once_flag initMap; - + std::call_once(initMap, []() { ADD_PROPERTY_TO_MAP(PROP_VISIBLE, Visible, visible, bool); ADD_PROPERTY_TO_MAP(PROP_CAN_CAST_SHADOW, CanCastShadow, canCastShadow, bool); ADD_PROPERTY_TO_MAP(PROP_POSITION, Position, position, vec3); - ADD_PROPERTY_TO_MAP(PROP_DIMENSIONS, Dimensions, dimensions, vec3); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_DIMENSIONS, Dimensions, dimensions, vec3, ENTITY_ITEM_MIN_DIMENSION, FLT_MAX); ADD_PROPERTY_TO_MAP(PROP_ROTATION, Rotation, rotation, quat); - ADD_PROPERTY_TO_MAP(PROP_DENSITY, Density, density, float); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_DENSITY, Density, density, float, + ENTITY_ITEM_MIN_DENSITY, ENTITY_ITEM_MAX_DENSITY); ADD_PROPERTY_TO_MAP(PROP_VELOCITY, Velocity, velocity, vec3); ADD_PROPERTY_TO_MAP(PROP_GRAVITY, Gravity, gravity, vec3); ADD_PROPERTY_TO_MAP(PROP_ACCELERATION, Acceleration, acceleration, vec3); - ADD_PROPERTY_TO_MAP(PROP_DAMPING, Damping, damping, float); - ADD_PROPERTY_TO_MAP(PROP_RESTITUTION, Restitution, restitution, float); - ADD_PROPERTY_TO_MAP(PROP_FRICTION, Friction, friction, float); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_DAMPING, Damping, damping, float, + ENTITY_ITEM_MIN_DAMPING, ENTITY_ITEM_MAX_DAMPING); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_RESTITUTION, Restitution, restitution, float, + ENTITY_ITEM_MIN_RESTITUTION, ENTITY_ITEM_MAX_RESTITUTION); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_FRICTION, Friction, friction, float, + ENTITY_ITEM_MIN_FRICTION, ENTITY_ITEM_MAX_FRICTION); ADD_PROPERTY_TO_MAP(PROP_LIFETIME, Lifetime, lifetime, float); ADD_PROPERTY_TO_MAP(PROP_SCRIPT, Script, script, QString); ADD_PROPERTY_TO_MAP(PROP_SCRIPT_TIMESTAMP, ScriptTimestamp, scriptTimestamp, quint64); @@ -2200,16 +2221,21 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue ADD_PROPERTY_TO_MAP(PROP_COLOR_SPREAD, ColorSpread, colorSpread, u8vec3Color); ADD_PROPERTY_TO_MAP(PROP_COLOR_START, ColorStart, colorStart, vec3Color); ADD_PROPERTY_TO_MAP(PROP_COLOR_FINISH, ColorFinish, colorFinish, vec3Color); - ADD_PROPERTY_TO_MAP(PROP_ALPHA, Alpha, alpha, float); - ADD_PROPERTY_TO_MAP(PROP_ALPHA_SPREAD, AlphaSpread, alphaSpread, float); - ADD_PROPERTY_TO_MAP(PROP_ALPHA_START, AlphaStart, alphaStart, float); - ADD_PROPERTY_TO_MAP(PROP_ALPHA_FINISH, AlphaFinish, alphaFinish, float); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_ALPHA, Alpha, alpha, float, particle::MINIMUM_ALPHA, particle::MAXIMUM_ALPHA); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_ALPHA_SPREAD, AlphaSpread, alphaSpread, float, + particle::MINIMUM_ALPHA, particle::MAXIMUM_ALPHA); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_ALPHA_START, AlphaStart, alphaStart, float, + particle::MINIMUM_ALPHA, particle::MAXIMUM_ALPHA); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_ALPHA_FINISH, AlphaFinish, alphaFinish, float, + particle::MINIMUM_ALPHA, particle::MAXIMUM_ALPHA); ADD_PROPERTY_TO_MAP(PROP_EMITTER_SHOULD_TRAIL, EmitterShouldTrail, emitterShouldTrail, bool); ADD_PROPERTY_TO_MAP(PROP_MODEL_URL, ModelURL, modelURL, QString); ADD_PROPERTY_TO_MAP(PROP_COMPOUND_SHAPE_URL, CompoundShapeURL, compoundShapeURL, QString); - ADD_PROPERTY_TO_MAP(PROP_REGISTRATION_POINT, RegistrationPoint, registrationPoint, vec3); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_REGISTRATION_POINT, RegistrationPoint, registrationPoint, vec3, + ENTITY_ITEM_MIN_REGISTRATION_POINT, ENTITY_ITEM_MAX_REGISTRATION_POINT); ADD_PROPERTY_TO_MAP(PROP_ANGULAR_VELOCITY, AngularVelocity, angularVelocity, vec3); - ADD_PROPERTY_TO_MAP(PROP_ANGULAR_DAMPING, AngularDamping, angularDamping, float); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_ANGULAR_DAMPING, AngularDamping, angularDamping, float, + ENTITY_ITEM_MIN_DAMPING, ENTITY_ITEM_MAX_DAMPING); ADD_PROPERTY_TO_MAP(PROP_COLLISIONLESS, Collisionless, collisionless, bool); ADD_PROPERTY_TO_MAP(PROP_COLLISIONLESS, unused, ignoreForCollisions, unused); // legacy support ADD_PROPERTY_TO_MAP(PROP_COLLISION_MASK, unused, collisionMask, unused); @@ -2220,7 +2246,8 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue ADD_PROPERTY_TO_MAP(PROP_INTENSITY, Intensity, intensity, float); ADD_PROPERTY_TO_MAP(PROP_FALLOFF_RADIUS, FalloffRadius, falloffRadius, float); ADD_PROPERTY_TO_MAP(PROP_EXPONENT, Exponent, exponent, float); - ADD_PROPERTY_TO_MAP(PROP_CUTOFF, Cutoff, cutoff, float); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_CUTOFF, Cutoff, cutoff, float, + LightEntityItem::MIN_CUTOFF, LightEntityItem::MAX_CUTOFF); ADD_PROPERTY_TO_MAP(PROP_LOCKED, Locked, locked, bool); ADD_PROPERTY_TO_MAP(PROP_TEXTURES, Textures, textures, QString); ADD_PROPERTY_TO_MAP(PROP_USER_DATA, UserData, userData, QString); @@ -2230,25 +2257,42 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue ADD_PROPERTY_TO_MAP(PROP_TEXT_COLOR, TextColor, textColor, u8vec3Color); ADD_PROPERTY_TO_MAP(PROP_BACKGROUND_COLOR, BackgroundColor, backgroundColor, u8vec3Color); ADD_PROPERTY_TO_MAP(PROP_SHAPE_TYPE, ShapeType, shapeType, ShapeType); - ADD_PROPERTY_TO_MAP(PROP_MAX_PARTICLES, MaxParticles, maxParticles, quint32); - ADD_PROPERTY_TO_MAP(PROP_LIFESPAN, Lifespan, lifespan, float); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_MAX_PARTICLES, MaxParticles, maxParticles, quint32, + particle::MINIMUM_MAX_PARTICLES, particle::MAXIMUM_MAX_PARTICLES); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_LIFESPAN, Lifespan, lifespan, float, + particle::MINIMUM_LIFESPAN, particle::MAXIMUM_LIFESPAN); ADD_PROPERTY_TO_MAP(PROP_EMITTING_PARTICLES, IsEmitting, isEmitting, bool); - ADD_PROPERTY_TO_MAP(PROP_EMIT_RATE, EmitRate, emitRate, float); - ADD_PROPERTY_TO_MAP(PROP_EMIT_SPEED, EmitSpeed, emitSpeed, vec3); - ADD_PROPERTY_TO_MAP(PROP_SPEED_SPREAD, SpeedSpread, speedSpread, vec3); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_EMIT_RATE, EmitRate, emitRate, float, + particle::MINIMUM_EMIT_RATE, particle::MAXIMUM_EMIT_RATE); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_EMIT_SPEED, EmitSpeed, emitSpeed, vec3, + particle::MINIMUM_EMIT_SPEED, particle::MAXIMUM_EMIT_SPEED); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_SPEED_SPREAD, SpeedSpread, speedSpread, vec3, + particle::MINIMUM_EMIT_SPEED, particle::MAXIMUM_EMIT_SPEED); ADD_PROPERTY_TO_MAP(PROP_EMIT_ORIENTATION, EmitOrientation, emitOrientation, quat); - ADD_PROPERTY_TO_MAP(PROP_EMIT_DIMENSIONS, EmitDimensions, emitDimensions, vec3); - ADD_PROPERTY_TO_MAP(PROP_EMIT_RADIUS_START, EmitRadiusStart, emitRadiusStart, float); - ADD_PROPERTY_TO_MAP(PROP_POLAR_START, EmitPolarStart, polarStart, float); - ADD_PROPERTY_TO_MAP(PROP_POLAR_FINISH, EmitPolarFinish, polarFinish, float); - ADD_PROPERTY_TO_MAP(PROP_AZIMUTH_START, EmitAzimuthStart, azimuthStart, float); - ADD_PROPERTY_TO_MAP(PROP_AZIMUTH_FINISH, EmitAzimuthFinish, azimuthFinish, float); - ADD_PROPERTY_TO_MAP(PROP_EMIT_ACCELERATION, EmitAcceleration, emitAcceleration, vec3); - ADD_PROPERTY_TO_MAP(PROP_ACCELERATION_SPREAD, AccelerationSpread, accelerationSpread, vec3); - ADD_PROPERTY_TO_MAP(PROP_PARTICLE_RADIUS, ParticleRadius, particleRadius, float); - ADD_PROPERTY_TO_MAP(PROP_RADIUS_SPREAD, RadiusSpread, radiusSpread, float); - ADD_PROPERTY_TO_MAP(PROP_RADIUS_START, RadiusStart, radiusStart, float); - ADD_PROPERTY_TO_MAP(PROP_RADIUS_FINISH, RadiusFinish, radiusFinish, float); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_EMIT_DIMENSIONS, EmitDimensions, emitDimensions, vec3, + particle::MINIMUM_EMIT_DIMENSION, particle::MAXIMUM_EMIT_DIMENSION); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_EMIT_RADIUS_START, EmitRadiusStart, emitRadiusStart, float, + particle::MINIMUM_EMIT_RADIUS_START, particle::MAXIMUM_EMIT_RADIUS_START); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_POLAR_START, EmitPolarStart, polarStart, float, + particle::MINIMUM_POLAR, particle::MAXIMUM_POLAR); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_POLAR_FINISH, EmitPolarFinish, polarFinish, float, + particle::MINIMUM_POLAR, particle::MAXIMUM_POLAR); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_AZIMUTH_START, EmitAzimuthStart, azimuthStart, float, + particle::MINIMUM_AZIMUTH, particle::MAXIMUM_AZIMUTH); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_AZIMUTH_FINISH, EmitAzimuthFinish, azimuthFinish, float, + particle::MINIMUM_AZIMUTH, particle::MAXIMUM_AZIMUTH); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_EMIT_ACCELERATION, EmitAcceleration, emitAcceleration, vec3, + particle::MINIMUM_EMIT_ACCELERATION, particle::MAXIMUM_EMIT_ACCELERATION); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_ACCELERATION_SPREAD, AccelerationSpread, accelerationSpread, vec3, + particle::MINIMUM_ACCELERATION_SPREAD, particle::MAXIMUM_ACCELERATION_SPREAD); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_PARTICLE_RADIUS, ParticleRadius, particleRadius, float, + particle::MINIMUM_PARTICLE_RADIUS, particle::MAXIMUM_PARTICLE_RADIUS); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_RADIUS_SPREAD, RadiusSpread, radiusSpread, float, + particle::MINIMUM_PARTICLE_RADIUS, particle::MAXIMUM_PARTICLE_RADIUS); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_RADIUS_START, RadiusStart, radiusStart, float, + particle::MINIMUM_PARTICLE_RADIUS, particle::MAXIMUM_PARTICLE_RADIUS); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_RADIUS_FINISH, RadiusFinish, radiusFinish, float, + particle::MINIMUM_PARTICLE_RADIUS, particle::MAXIMUM_PARTICLE_RADIUS); ADD_PROPERTY_TO_MAP(PROP_MATERIAL_URL, MaterialURL, materialURL, QString); ADD_PROPERTY_TO_MAP(PROP_MATERIAL_MAPPING_MODE, MaterialMappingMode, materialMappingMode, MaterialMappingMode); @@ -2262,10 +2306,14 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue ADD_PROPERTY_TO_MAP(PROP_VISIBLE_IN_SECONDARY_CAMERA, IsVisibleInSecondaryCamera, isVisibleInSecondaryCamera, bool); - ADD_PROPERTY_TO_MAP(PROP_PARTICLE_SPIN, ParticleSpin, particleSpin, float); - ADD_PROPERTY_TO_MAP(PROP_SPIN_SPREAD, SpinSpread, spinSpread, float); - ADD_PROPERTY_TO_MAP(PROP_SPIN_START, SpinStart, spinStart, float); - ADD_PROPERTY_TO_MAP(PROP_SPIN_FINISH, SpinFinish, spinFinish, float); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_PARTICLE_SPIN, ParticleSpin, particleSpin, float, + particle::MINIMUM_PARTICLE_SPIN, particle::MAXIMUM_PARTICLE_SPIN); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_SPIN_SPREAD, SpinSpread, spinSpread, float, -120.2365895, 1563.2556); + //particle::MINIMUM_PARTICLE_SPIN, particle::MAXIMUM_PARTICLE_SPIN); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_SPIN_START, SpinStart, spinStart, float, + particle::MINIMUM_PARTICLE_SPIN, particle::MAXIMUM_PARTICLE_SPIN); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_SPIN_FINISH, SpinFinish, spinFinish, float, + particle::MINIMUM_PARTICLE_SPIN, particle::MAXIMUM_PARTICLE_SPIN); ADD_PROPERTY_TO_MAP(PROP_PARTICLE_ROTATE_WITH_ENTITY, RotateWithEntity, rotateWithEntity, float); // Certifiable Properties @@ -2318,7 +2366,8 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue ADD_PROPERTY_TO_MAP(PROP_LOCAL_ROTATION, LocalRotation, localRotation, quat); ADD_PROPERTY_TO_MAP(PROP_LOCAL_VELOCITY, LocalVelocity, localVelocity, vec3); ADD_PROPERTY_TO_MAP(PROP_LOCAL_ANGULAR_VELOCITY, LocalAngularVelocity, localAngularVelocity, vec3); - ADD_PROPERTY_TO_MAP(PROP_LOCAL_DIMENSIONS, LocalDimensions, localDimensions, vec3); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_LOCAL_DIMENSIONS, LocalDimensions, localDimensions, vec3, + ENTITY_ITEM_MIN_DIMENSION, FLT_MAX); ADD_PROPERTY_TO_MAP(PROP_JOINT_ROTATIONS_SET, JointRotationsSet, jointRotationsSet, QVector<bool>); ADD_PROPERTY_TO_MAP(PROP_JOINT_ROTATIONS, JointRotations, jointRotations, QVector<quat>); @@ -2387,19 +2436,19 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_TRIGGERABLE, Grab, grab, Triggerable, triggerable); ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE, Grab, grab, Equippable, equippable); ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_LEFT_EQUIPPABLE_POSITION_OFFSET, Grab, grab, - EquippableLeftPosition, equippableLeftPosition); + EquippableLeftPosition, equippableLeftPosition); ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_LEFT_EQUIPPABLE_ROTATION_OFFSET, Grab, grab, - EquippableLeftRotation, equippableLeftRotation); + EquippableLeftRotation, equippableLeftRotation); ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_RIGHT_EQUIPPABLE_POSITION_OFFSET, Grab, grab, - EquippableRightPosition, equippableRightPosition); + EquippableRightPosition, equippableRightPosition); ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_RIGHT_EQUIPPABLE_ROTATION_OFFSET, Grab, grab, - EquippableRightRotation, equippableRightRotation); + EquippableRightRotation, equippableRightRotation); ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE_INDICATOR_URL, Grab, grab, - EquippableIndicatorURL, equippableIndicatorURL); + EquippableIndicatorURL, equippableIndicatorURL); ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE_INDICATOR_SCALE, Grab, grab, - EquippableIndicatorScale, equippableIndicatorScale); + EquippableIndicatorScale, equippableIndicatorScale); ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE_INDICATOR_OFFSET, Grab, grab, - EquippableIndicatorOffset, equippableIndicatorOffset); + EquippableIndicatorOffset, equippableIndicatorOffset); ADD_PROPERTY_TO_MAP(PROP_IMAGE_URL, ImageURL, imageURL, QString); ADD_PROPERTY_TO_MAP(PROP_EMISSIVE, Emissive, emissive, bool); @@ -2415,21 +2464,27 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue }); - if (object.isString()) { - // TODO: figure out how to do this without a double lookup in the map - if (_propertyStringsToEnums.contains(object.toString())) { - flags << _propertyStringsToEnums[object.toString()]; - } - } else if (object.isArray()) { - quint32 length = object.property("length").toInt32(); - for (quint32 i = 0; i < length; i++) { - QString propertyName = object.property(i).toString(); - // TODO: figure out how to do this without a double lookup in the map - if (_propertyStringsToEnums.contains(propertyName)) { - flags << _propertyStringsToEnums[propertyName]; - } - } + auto iter = _propertyInfos.find(propertyName); + if (iter != _propertyInfos.end()) { + propertyInfo = *iter; + return true; } + + return false; +} + +QScriptValue EntityPropertyInfoToScriptValue(QScriptEngine* engine, const EntityPropertyInfo& propertyInfo) { + QScriptValue obj = engine->newObject(); + obj.setProperty("propertyEnum", propertyInfo.propertyEnum); + obj.setProperty("minimum", propertyInfo.minimum.toString()); + obj.setProperty("maximum", propertyInfo.maximum.toString()); + return obj; +} + +void EntityPropertyInfoFromScriptValue(const QScriptValue& object, EntityPropertyInfo& propertyInfo) { + propertyInfo.propertyEnum = (EntityPropertyList)object.property("propertyEnum").toVariant().toUInt(); + propertyInfo.minimum = object.property("minimum").toVariant(); + propertyInfo.maximum = object.property("maximum").toVariant(); } // TODO: Implement support for edit packets that can span an MTU sized buffer. We need to implement a mechanism for the diff --git a/libraries/entities/src/EntityItemProperties.h b/libraries/entities/src/EntityItemProperties.h index 6fe7907777..33858c6a7f 100644 --- a/libraries/entities/src/EntityItemProperties.h +++ b/libraries/entities/src/EntityItemProperties.h @@ -63,6 +63,17 @@ const std::array<ComponentPair, COMPONENT_MODE_ITEM_COUNT> COMPONENT_MODES = { { using vec3Color = glm::vec3; using u8vec3Color = glm::u8vec3; +struct EntityPropertyInfo { + EntityPropertyInfo(EntityPropertyList propEnum) : + propertyEnum(propEnum) {} + EntityPropertyInfo(EntityPropertyList propEnum, QVariant min, QVariant max) : + propertyEnum(propEnum), minimum(min), maximum(max) {} + EntityPropertyInfo() = default; + EntityPropertyList propertyEnum; + QVariant minimum; + QVariant maximum; +}; + /// A collection of properties of an entity item used in the scripting API. Translates between the actual properties of an /// entity and a JavaScript style hash/QScriptValue storing a set of properties. Used in scripting to set/get the complete /// set of entity item properties via JavaScript hashes/QScriptValues @@ -101,6 +112,8 @@ public: static QScriptValue entityPropertyFlagsToScriptValue(QScriptEngine* engine, const EntityPropertyFlags& flags); static void entityPropertyFlagsFromScriptValue(const QScriptValue& object, EntityPropertyFlags& flags); + static bool getPropertyInfo(const QString& propertyName, EntityPropertyInfo& propertyInfo); + // editing related features supported by all entities quint64 getLastEdited() const { return _lastEdited; } float getEditedAgo() const /// Elapsed seconds since this entity was last edited @@ -458,6 +471,9 @@ Q_DECLARE_METATYPE(EntityPropertyFlags); QScriptValue EntityPropertyFlagsToScriptValue(QScriptEngine* engine, const EntityPropertyFlags& flags); void EntityPropertyFlagsFromScriptValue(const QScriptValue& object, EntityPropertyFlags& flags); +Q_DECLARE_METATYPE(EntityPropertyInfo); +QScriptValue EntityPropertyInfoToScriptValue(QScriptEngine* engine, const EntityPropertyInfo& propertyInfo); +void EntityPropertyInfoFromScriptValue(const QScriptValue& object, EntityPropertyInfo& propertyInfo); // define these inline here so the macros work inline void EntityItemProperties::setPosition(const glm::vec3& value) diff --git a/libraries/entities/src/EntityItemPropertiesDefaults.h b/libraries/entities/src/EntityItemPropertiesDefaults.h index 6c39e90c91..85f04b9a6b 100644 --- a/libraries/entities/src/EntityItemPropertiesDefaults.h +++ b/libraries/entities/src/EntityItemPropertiesDefaults.h @@ -53,6 +53,9 @@ const QString ENTITY_ITEM_DEFAULT_SCRIPT = QString(""); const quint64 ENTITY_ITEM_DEFAULT_SCRIPT_TIMESTAMP = 0; const QString ENTITY_ITEM_DEFAULT_SERVER_SCRIPTS = QString(""); const QString ENTITY_ITEM_DEFAULT_COLLISION_SOUND_URL = QString(""); + +const float ENTITY_ITEM_MIN_REGISTRATION_POINT = 0.0f; +const float ENTITY_ITEM_MAX_REGISTRATION_POINT = 1.0f; const glm::vec3 ENTITY_ITEM_DEFAULT_REGISTRATION_POINT = ENTITY_ITEM_HALF_VEC3; // center const float ENTITY_ITEM_IMMORTAL_LIFETIME = -1.0f; /// special lifetime which means the entity lives for ever @@ -75,6 +78,8 @@ const glm::vec3 ENTITY_ITEM_DEFAULT_VELOCITY = ENTITY_ITEM_ZERO_VEC3; const glm::vec3 ENTITY_ITEM_DEFAULT_ANGULAR_VELOCITY = ENTITY_ITEM_ZERO_VEC3; const glm::vec3 ENTITY_ITEM_DEFAULT_GRAVITY = ENTITY_ITEM_ZERO_VEC3; const glm::vec3 ENTITY_ITEM_DEFAULT_ACCELERATION = ENTITY_ITEM_ZERO_VEC3; +const float ENTITY_ITEM_MIN_DAMPING = 0.0f; +const float ENTITY_ITEM_MAX_DAMPING = 1.0f; const float ENTITY_ITEM_DEFAULT_DAMPING = 0.39347f; // approx timescale = 2.0 sec (see damping timescale formula in header) const float ENTITY_ITEM_DEFAULT_ANGULAR_DAMPING = 0.39347f; // approx timescale = 2.0 sec (see damping timescale formula in header) diff --git a/libraries/entities/src/EntityItemPropertiesMacros.h b/libraries/entities/src/EntityItemPropertiesMacros.h index c963c66187..b8c15823f9 100644 --- a/libraries/entities/src/EntityItemPropertiesMacros.h +++ b/libraries/entities/src/EntityItemPropertiesMacros.h @@ -411,10 +411,28 @@ inline QRect QRect_convertFromScriptValue(const QScriptValue& v, bool& isValid) static T _static##N; #define ADD_PROPERTY_TO_MAP(P, N, n, T) \ - _propertyStringsToEnums[#n] = P; + { \ + EntityPropertyInfo propertyInfo = EntityPropertyInfo(P); \ + _propertyInfos[#n] = propertyInfo; \ + } + +#define ADD_PROPERTY_TO_MAP_WITH_RANGE(P, N, n, T, M, X) \ + { \ + EntityPropertyInfo propertyInfo = EntityPropertyInfo(P, M, X); \ + _propertyInfos[#n] = propertyInfo; \ + } #define ADD_GROUP_PROPERTY_TO_MAP(P, G, g, N, n) \ - _propertyStringsToEnums[#g "." #n] = P; + { \ + EntityPropertyInfo propertyInfo = EntityPropertyInfo(P); \ + _propertyInfos[#g "." #n] = propertyInfo; \ + } + +#define ADD_GROUP_PROPERTY_TO_MAP_WITH_RANGE(P, G, g, N, n, M, X) \ + { \ + EntityPropertyInfo propertyInfo = EntityPropertyInfo(P, M, X); \ + _propertyInfos[#g "." #n] = propertyInfo; \ + } #define DEFINE_CORE(N, n, T, V) \ public: \ diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp index 303e6d54c4..f9f1cb0a06 100644 --- a/libraries/entities/src/EntityScriptingInterface.cpp +++ b/libraries/entities/src/EntityScriptingInterface.cpp @@ -1089,6 +1089,9 @@ QUuid EntityScriptingInterface::findClosestEntity(const glm::vec3& center, float _entityTree->withReadLock([&] { result = _entityTree->evalClosestEntity(center, radius, PickFilter(searchFilter)); }); + if (closestEntity) { + result = closestEntity->getEntityItemID(); + } } return result; } @@ -1111,6 +1114,10 @@ QVector<QUuid> EntityScriptingInterface::findEntities(const glm::vec3& center, f _entityTree->withReadLock([&] { _entityTree->evalEntitiesInSphere(center, radius, PickFilter(searchFilter), result); }); + + foreach (EntityItemPointer entity, entities) { + result << entity->getEntityItemID(); + } } return result; } @@ -1125,6 +1132,10 @@ QVector<QUuid> EntityScriptingInterface::findEntitiesInBox(const glm::vec3& corn AABox box(corner, dimensions); _entityTree->evalEntitiesInBox(box, PickFilter(searchFilter), result); }); + + foreach (EntityItemPointer entity, entities) { + result << entity->getEntityItemID(); + } } return result; } @@ -1163,6 +1174,10 @@ QVector<QUuid> EntityScriptingInterface::findEntitiesInFrustum(QVariantMap frust _entityTree->withReadLock([&] { _entityTree->evalEntitiesInFrustum(viewFrustum, PickFilter(searchFilter), result); }); + + foreach(EntityItemPointer entity, entities) { + result << entity->getEntityItemID(); + } } } @@ -1178,6 +1193,12 @@ QVector<QUuid> EntityScriptingInterface::findEntitiesByType(const QString entity _entityTree->withReadLock([&] { _entityTree->evalEntitiesInSphereWithType(center, radius, type, PickFilter(searchFilter), result); }); + + foreach(EntityItemPointer entity, entities) { + if (entity->getType() == type) { + result << entity->getEntityItemID().toString(); + } + } } return result; } @@ -1189,6 +1210,24 @@ QVector<QUuid> EntityScriptingInterface::findEntitiesByName(const QString entity unsigned int searchFilter = PickFilter::getBitMask(PickFilter::FlagBit::DOMAIN_ENTITIES) | PickFilter::getBitMask(PickFilter::FlagBit::AVATAR_ENTITIES); _entityTree->evalEntitiesInSphereWithName(center, radius, entityName, caseSensitiveSearch, PickFilter(searchFilter), result); }); + + if (caseSensitiveSearch) { + foreach(EntityItemPointer entity, entities) { + if (entity->getName() == entityName) { + result << entity->getEntityItemID(); + } + } + + } else { + QString entityNameLowerCase = entityName.toLower(); + + foreach(EntityItemPointer entity, entities) { + QString entityItemLowerCase = entity->getName().toLower(); + if (entityItemLowerCase == entityNameLowerCase) { + result << entity->getEntityItemID(); + } + } + } } return result; } @@ -1223,6 +1262,13 @@ RayToEntityIntersectionResult EntityScriptingInterface::evalRayIntersectionVecto return evalRayIntersectionWorker(ray, Octree::Lock, searchFilter, entityIdsToInclude, entityIdsToDiscard); } +RayToEntityIntersectionResult EntityScriptingInterface::evalRayIntersectionVector(const PickRay& ray, PickFilter searchFilter, + const QVector<EntityItemID>& entityIdsToInclude, const QVector<EntityItemID>& entityIdsToDiscard) { + PROFILE_RANGE(script_entities, __FUNCTION__); + + return evalRayIntersectionWorker(ray, Octree::Lock, searchFilter, entityIdsToInclude, entityIdsToDiscard); +} + RayToEntityIntersectionResult EntityScriptingInterface::evalRayIntersectionWorker(const PickRay& ray, Octree::lockType lockType, PickFilter searchFilter, const QVector<EntityItemID>& entityIdsToInclude, const QVector<EntityItemID>& entityIdsToDiscard) const { @@ -2268,3 +2314,10 @@ bool EntityScriptingInterface::verifyStaticCertificateProperties(const QUuid& en } return result; } + +const EntityPropertyInfo EntityScriptingInterface::getPropertyInfo(const QScriptValue& property) const { + const QString name = property.toString(); + EntityPropertyInfo propertyInfo; + EntityItemProperties::getPropertyInfo(name, propertyInfo); + return propertyInfo; +} diff --git a/libraries/entities/src/EntityScriptingInterface.h b/libraries/entities/src/EntityScriptingInterface.h index 1398c2ad1c..389b5e629b 100644 --- a/libraries/entities/src/EntityScriptingInterface.h +++ b/libraries/entities/src/EntityScriptingInterface.h @@ -513,6 +513,32 @@ public slots: const QScriptValue& entityIdsToInclude = QScriptValue(), const QScriptValue& entityIdsToDiscard = QScriptValue(), bool visibleOnly = false, bool collidableOnly = false) const; + /// Same as above but with QVectors + RayToEntityIntersectionResult findRayIntersectionVector(const PickRay& ray, bool precisionPicking, + const QVector<EntityItemID>& entityIdsToInclude, const QVector<EntityItemID>& entityIdsToDiscard, + bool visibleOnly, bool collidableOnly); + + /**jsdoc + * Find the first entity intersected by a {@link PickRay}. <code>Light</code> and <code>Zone</code> entities are not + * intersected unless they've been configured as pickable using {@link Entities.setLightsArePickable|setLightsArePickable} + * and {@link Entities.setZonesArePickable|setZonesArePickable}, respectively.<br /> + * This is a synonym for {@link Entities.findRayIntersection|findRayIntersection}. + * @function Entities.findRayIntersectionBlocking + * @param {PickRay} pickRay - The PickRay to use for finding entities. + * @param {boolean} [precisionPicking=false] - If <code>true</code> and the intersected entity is a <code>Model</code> + * entity, the result's <code>extraInfo</code> property includes more information than it otherwise would. + * @param {Uuid[]} [entitiesToInclude=[]] - If not empty then the search is restricted to these entities. + * @param {Uuid[]} [entitiesToDiscard=[]] - Entities to ignore during the search. + * @deprecated This function is deprecated and will soon be removed. Use + * {@link Entities.findRayIntersection|findRayIntersection} instead; it blocks and performs the same function. + */ + /// If the scripting context has visible entities, this will determine a ray intersection, and will block in + /// order to return an accurate result + Q_INVOKABLE RayToEntityIntersectionResult findRayIntersectionBlocking(const PickRay& ray, bool precisionPicking = false, + const QScriptValue& entityIdsToInclude = QScriptValue(), const QScriptValue& entityIdsToDiscard = QScriptValue()); + +>>>>>>> property range audit - add range info via macros accessible via API, tweak min/max/steps in entityProperties + /**jsdoc * Reloads an entity's server entity script such that the latest version re-downloaded. * @function Entities.reloadServerScripts @@ -1592,6 +1618,16 @@ public slots: */ Q_INVOKABLE bool verifyStaticCertificateProperties(const QUuid& entityID); + /**jsdoc + * Get information about entity properties including a minimum to maximum range for numerical properties + * as well as property enum value. + * @function Entities.getPropertyInfo + * @param {string} property - The property name to get the information for. + * @returns {Entities.EntityPropertyInfo} The information data including propertyEnum, minimum, and maximum + * if the property can be found, otherwise an empty object. + */ + Q_INVOKABLE const EntityPropertyInfo getPropertyInfo(const QScriptValue& property) const; + signals: /**jsdoc * Triggered on the client that is the physics simulation owner during the collision of two entities. Note: Isn't triggered diff --git a/libraries/entities/src/LightEntityItem.cpp b/libraries/entities/src/LightEntityItem.cpp index e3de5f66f8..dbb55c7329 100644 --- a/libraries/entities/src/LightEntityItem.cpp +++ b/libraries/entities/src/LightEntityItem.cpp @@ -25,6 +25,8 @@ const bool LightEntityItem::DEFAULT_IS_SPOTLIGHT = false; const float LightEntityItem::DEFAULT_INTENSITY = 1.0f; const float LightEntityItem::DEFAULT_FALLOFF_RADIUS = 0.1f; const float LightEntityItem::DEFAULT_EXPONENT = 0.0f; +const float LightEntityItem::MIN_CUTOFF = 0.0f; +const float LightEntityItem::MAX_CUTOFF = 90.0f; const float LightEntityItem::DEFAULT_CUTOFF = PI / 2.0f; bool LightEntityItem::_lightsArePickable = false; @@ -115,7 +117,7 @@ void LightEntityItem::setIsSpotlight(bool value) { } void LightEntityItem::setCutoff(float value) { - value = glm::clamp(value, 0.0f, 90.0f); + value = glm::clamp(value, MIN_CUTOFF, MAX_CUTOFF); if (value == getCutoff()) { return; } diff --git a/libraries/entities/src/LightEntityItem.h b/libraries/entities/src/LightEntityItem.h index 813333d534..26b74f02cd 100644 --- a/libraries/entities/src/LightEntityItem.h +++ b/libraries/entities/src/LightEntityItem.h @@ -20,6 +20,8 @@ public: static const float DEFAULT_INTENSITY; static const float DEFAULT_FALLOFF_RADIUS; static const float DEFAULT_EXPONENT; + static const float MIN_CUTOFF; + static const float MAX_CUTOFF; static const float DEFAULT_CUTOFF; static EntityItemPointer factory(const EntityItemID& entityID, const EntityItemProperties& properties); diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 6f98dd2864..8dad5932be 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -670,6 +670,7 @@ void ScriptEngine::init() { qScriptRegisterMetaType(this, EntityPropertyFlagsToScriptValue, EntityPropertyFlagsFromScriptValue); qScriptRegisterMetaType(this, EntityItemPropertiesToScriptValue, EntityItemPropertiesFromScriptValueHonorReadOnly); + qScriptRegisterMetaType(this, EntityPropertyInfoToScriptValue, EntityPropertyInfoFromScriptValue); qScriptRegisterMetaType(this, EntityItemIDtoScriptValue, EntityItemIDfromScriptValue); qScriptRegisterMetaType(this, RayToEntityIntersectionResultToScriptValue, RayToEntityIntersectionResultFromScriptValue); qScriptRegisterMetaType(this, RayToAvatarIntersectionResultToScriptValue, RayToAvatarIntersectionResultFromScriptValue); diff --git a/scripts/system/edit.js b/scripts/system/edit.js index 36f9af0ea7..3ff91dbda3 100644 --- a/scripts/system/edit.js +++ b/scripts/system/edit.js @@ -453,7 +453,7 @@ const DEFAULT_ENTITY_PROPERTIES = { spinSpread: 0, rotateWithEntity: false, polarStart: 0, - polarFinish: 0, + polarFinish: Math.PI, azimuthStart: -Math.PI, azimuthFinish: Math.PI }, @@ -2479,6 +2479,15 @@ var PropertiesTool = function (opts) { tooltips: Script.require('./assets/data/createAppTooltips.json'), hmdActive: HMD.active, }); + } else if (data.type === "propertyRangeRequest") { + var propertyRanges = {}; + data.properties.forEach(function (property) { + propertyRanges[property] = Entities.getPropertyInfo(property); + }); + emitScriptEvent({ + type: 'propertyRangeReply', + propertyRanges: propertyRanges, + }); } }; diff --git a/scripts/system/html/js/draggableNumber.js b/scripts/system/html/js/draggableNumber.js index 4e3a32b0f2..b1039ed37b 100644 --- a/scripts/system/html/js/draggableNumber.js +++ b/scripts/system/html/js/draggableNumber.js @@ -139,7 +139,14 @@ DraggableNumber.prototype = { }, inputChange: function() { - this.setValue(this.elInput.value); + let value = this.elInput.value; + if (this.max !== undefined) { + value = Math.min(this.max, value); + } + if (this.min !== undefined) { + value = Math.max(this.min, value); + } + this.setValue(value); }, inputBlur: function(ev) { @@ -156,6 +163,17 @@ DraggableNumber.prototype = { return this.elText.getAttribute("disabled") === "disabled"; }, + updateMinMax: function(min, max) { + this.min = min; + this.max = max; + if (this.min !== undefined) { + this.elInput.setAttribute("min", this.min); + } + if (this.max !== undefined) { + this.elInput.setAttribute("max", this.max); + } + }, + initialize: function() { this.onMouseDown = this.mouseDown.bind(this); this.onMouseUp = this.mouseUp.bind(this); @@ -189,12 +207,7 @@ DraggableNumber.prototype = { this.elInput = document.createElement('input'); this.elInput.className = "input"; this.elInput.setAttribute("type", "number"); - if (this.min !== undefined) { - this.elInput.setAttribute("min", this.min); - } - if (this.max !== undefined) { - this.elInput.setAttribute("max", this.max); - } + this.updateMinMax(this.min, this.max); if (this.step !== undefined) { this.elInput.setAttribute("step", this.step); } diff --git a/scripts/system/html/js/entityProperties.js b/scripts/system/html/js/entityProperties.js index 78ef8ac313..16b83285b9 100644 --- a/scripts/system/html/js/entityProperties.js +++ b/scripts/system/html/js/entityProperties.js @@ -75,7 +75,7 @@ const GROUPS = [ }, { label: "Parent Joint Index", - type: "number-draggable", + type: "number", propertyID: "parentJointIndex", }, { @@ -137,7 +137,7 @@ const GROUPS = [ label: "Line Height", type: "number-draggable", min: 0, - step: 0.005, + step: 0.001, decimals: 4, unit: "m", propertyID: "lineHeight" @@ -185,8 +185,8 @@ const GROUPS = [ label: "Light Intensity", type: "number-draggable", min: 0, - max: 10, - step: 0.1, + max: 40, + step: 0.01, decimals: 2, propertyID: "keyLight.intensity", showPropertyRule: { "keyLightMode": "enabled" }, @@ -194,6 +194,7 @@ const GROUPS = [ { label: "Light Horizontal Angle", type: "number-draggable", + step: 0.1, multiplier: DEGREES_TO_RADIANS, decimals: 2, unit: "deg", @@ -203,6 +204,7 @@ const GROUPS = [ { label: "Light Vertical Angle", type: "number-draggable", + step: 0.1, multiplier: DEGREES_TO_RADIANS, decimals: 2, unit: "deg", @@ -243,7 +245,7 @@ const GROUPS = [ label: "Ambient Intensity", type: "number-draggable", min: 0, - max: 10, + max: 200, step: 0.1, decimals: 2, propertyID: "ambientLight.ambientIntensity", @@ -271,9 +273,9 @@ const GROUPS = [ { label: "Range", type: "number-draggable", - min: 5, + min: 1, max: 10000, - step: 5, + step: 1, decimals: 0, unit: "m", propertyID: "haze.hazeRange", @@ -290,7 +292,7 @@ const GROUPS = [ type: "number-draggable", min: -1000, max: 1000, - step: 10, + step: 1, decimals: 0, unit: "m", propertyID: "haze.hazeBaseRef", @@ -301,7 +303,7 @@ const GROUPS = [ type: "number-draggable", min: -1000, max: 5000, - step: 10, + step: 1, decimals: 0, unit: "m", propertyID: "haze.hazeCeiling", @@ -318,8 +320,8 @@ const GROUPS = [ type: "number-draggable", min: 0, max: 1, - step: 0.01, - decimals: 2, + step: 0.001, + decimals: 3, propertyID: "haze.hazeBackgroundBlend", showPropertyRule: { "hazeMode": "enabled" }, }, @@ -356,8 +358,8 @@ const GROUPS = [ type: "number-draggable", min: 0, max: 1, - step: 0.01, - decimals: 2, + step: 0.001, + decimals: 3, propertyID: "bloom.bloomIntensity", showPropertyRule: { "bloomMode": "enabled" }, }, @@ -366,8 +368,8 @@ const GROUPS = [ type: "number-draggable", min: 0, max: 1, - step: 0.01, - decimals: 2, + step: 0.001, + decimals: 3, propertyID: "bloom.bloomThreshold", showPropertyRule: { "bloomMode": "enabled" }, }, @@ -376,8 +378,8 @@ const GROUPS = [ type: "number-draggable", min: 0, max: 2, - step: 0.01, - decimals: 2, + step: 0.001, + decimals: 3, propertyID: "bloom.bloomSize", showPropertyRule: { "bloomMode": "enabled" }, }, @@ -510,16 +512,18 @@ const GROUPS = [ label: "Intensity", type: "number-draggable", min: 0, + max: 10000, step: 0.1, - decimals: 1, + decimals: 2, propertyID: "intensity", }, { label: "Fall-Off Radius", type: "number-draggable", min: 0, + max: 10000, step: 0.1, - decimals: 1, + decimals: 2, unit: "m", propertyID: "falloffRadius", }, @@ -531,6 +535,7 @@ const GROUPS = [ { label: "Spotlight Exponent", type: "number-draggable", + min: 0, step: 0.01, decimals: 2, propertyID: "exponent", @@ -643,8 +648,6 @@ const GROUPS = [ label: "Lifespan", type: "number-draggable", unit: "s", - min: 0.01, - max: 10, step: 0.01, decimals: 2, propertyID: "lifespan", @@ -652,8 +655,6 @@ const GROUPS = [ { label: "Max Particles", type: "number-draggable", - min: 1, - max: 10000, step: 1, propertyID: "maxParticles", }, @@ -673,26 +674,20 @@ const GROUPS = [ { label: "Emit Rate", type: "number-draggable", - min: 1, - max: 1000, step: 1, propertyID: "emitRate", }, { label: "Emit Speed", type: "number-draggable", - min: 0, - max: 5, - step: 0.01, + step: 0.1, decimals: 2, propertyID: "emitSpeed", }, { label: "Speed Spread", type: "number-draggable", - min: 0, - max: 5, - step: 0.01, + step: 0.1, decimals: 2, propertyID: "speedSpread", }, @@ -700,7 +695,6 @@ const GROUPS = [ label: "Emit Dimensions", type: "vec3", vec3Type: "xyz", - min: 0, step: 0.01, round: 100, subLabels: [ "x", "y", "z" ], @@ -709,10 +703,8 @@ const GROUPS = [ { label: "Emit Radius Start", type: "number-draggable", - min: 0, - max: 1, - step: 0.01, - decimals: 2, + step: 0.001, + decimals: 3, propertyID: "emitRadiusStart" }, { @@ -745,8 +737,6 @@ const GROUPS = [ { label: "Start", type: "number-draggable", - min: 0, - max: 4, step: 0.01, decimals: 2, propertyID: "radiusStart", @@ -755,8 +745,6 @@ const GROUPS = [ { label: "Middle", type: "number-draggable", - min: 0, - max: 4, step: 0.01, decimals: 2, propertyID: "particleRadius", @@ -764,8 +752,6 @@ const GROUPS = [ { label: "Finish", type: "number-draggable", - min: 0, - max: 4, step: 0.01, decimals: 2, propertyID: "radiusFinish", @@ -776,8 +762,6 @@ const GROUPS = [ { label: "Size Spread", type: "number-draggable", - min: 0, - max: 4, step: 0.01, decimals: 2, propertyID: "radiusSpread", @@ -834,29 +818,23 @@ const GROUPS = [ { label: "Start", type: "number-draggable", - min: 0, - max: 1, - step: 0.01, - decimals: 2, + step: 0.001, + decimals: 3, propertyID: "alphaStart", fallbackProperty: "alpha", }, { label: "Middle", type: "number-draggable", - min: 0, - max: 1, - step: 0.01, - decimals: 2, + step: 0.001, + decimals: 3, propertyID: "alpha", }, { label: "Finish", type: "number-draggable", - min: 0, - max: 1, - step: 0.01, - decimals: 2, + step: 0.001, + decimals: 3, propertyID: "alphaFinish", fallbackProperty: "alpha", }, @@ -865,10 +843,8 @@ const GROUPS = [ { label: "Alpha Spread", type: "number-draggable", - min: 0, - max: 1, - step: 0.01, - decimals: 2, + step: 0.001, + decimals: 3, propertyID: "alphaSpread", }, ] @@ -911,10 +887,8 @@ const GROUPS = [ { label: "Start", type: "number-draggable", - min: -360, - max: 360, - step: 1, - decimals: 0, + step: 0.1, + decimals: 2, multiplier: DEGREES_TO_RADIANS, unit: "deg", propertyID: "spinStart", @@ -923,10 +897,8 @@ const GROUPS = [ { label: "Middle", type: "number-draggable", - min: -360, - max: 360, - step: 1, - decimals: 0, + step: 0.1, + decimals: 2, multiplier: DEGREES_TO_RADIANS, unit: "deg", propertyID: "particleSpin", @@ -934,10 +906,8 @@ const GROUPS = [ { label: "Finish", type: "number-draggable", - min: -360, - max: 360, - step: 1, - decimals: 0, + step: 0.1, + decimals: 2, multiplier: DEGREES_TO_RADIANS, unit: "deg", propertyID: "spinFinish", @@ -948,10 +918,8 @@ const GROUPS = [ { label: "Spin Spread", type: "number-draggable", - min: 0, - max: 360, - step: 1, - decimals: 0, + step: 0.1, + decimals: 2, multiplier: DEGREES_TO_RADIANS, unit: "deg", propertyID: "spinSpread", @@ -976,10 +944,8 @@ const GROUPS = [ { label: "Start", type: "number-draggable", - min: 0, - max: 180, - step: 1, - decimals: 0, + step: 0.1, + decimals: 2, multiplier: DEGREES_TO_RADIANS, unit: "deg", propertyID: "polarStart", @@ -987,10 +953,8 @@ const GROUPS = [ { label: "Finish", type: "number-draggable", - min: 0, - max: 180, - step: 1, - decimals: 0, + step: 0.1, + decimals: 2, multiplier: DEGREES_TO_RADIANS, unit: "deg", propertyID: "polarFinish", @@ -1005,10 +969,8 @@ const GROUPS = [ { label: "Start", type: "number-draggable", - min: -180, - max: 180, - step: 1, - decimals: 0, + step: 0.1, + decimals: 2, multiplier: DEGREES_TO_RADIANS, unit: "deg", propertyID: "azimuthStart", @@ -1016,10 +978,8 @@ const GROUPS = [ { label: "Finish", type: "number-draggable", - min: -180, - max: 180, - step: 1, - decimals: 0, + step: 0.1, + decimals: 2, multiplier: DEGREES_TO_RADIANS, unit: "deg", propertyID: "azimuthFinish", @@ -1036,6 +996,7 @@ const GROUPS = [ label: "Position", type: "vec3", vec3Type: "xyz", + step: 0.1, decimals: 4, subLabels: [ "x", "y", "z" ], unit: "m", @@ -1046,6 +1007,7 @@ const GROUPS = [ label: "Local Position", type: "vec3", vec3Type: "xyz", + step: 0.1, decimals: 4, subLabels: [ "x", "y", "z" ], unit: "m", @@ -1078,8 +1040,7 @@ const GROUPS = [ label: "Dimensions", type: "vec3", vec3Type: "xyz", - min: 0, - step: 0.1, + step: 0.01, decimals: 4, subLabels: [ "x", "y", "z" ], unit: "m", @@ -1090,8 +1051,7 @@ const GROUPS = [ label: "Local Dimensions", type: "vec3", vec3Type: "xyz", - min: 0, - step: 0.1, + step: 0.01, decimals: 4, subLabels: [ "x", "y", "z" ], unit: "m", @@ -1111,7 +1071,7 @@ const GROUPS = [ label: "Pivot", type: "vec3", vec3Type: "xyz", - step: 0.1, + step: 0.001, decimals: 4, subLabels: [ "x", "y", "z" ], unit: "(ratio of dimension)", @@ -1143,6 +1103,7 @@ const GROUPS = [ { label: "Clone Lifetime", type: "number-draggable", + min: -1, unit: "s", propertyID: "cloneLifetime", showPropertyRule: { "cloneable": "true" }, @@ -1150,6 +1111,7 @@ const GROUPS = [ { label: "Clone Limit", type: "number-draggable", + min: 0, propertyID: "cloneLimit", showPropertyRule: { "cloneable": "true" }, }, @@ -1296,7 +1258,7 @@ const GROUPS = [ label: "Linear Velocity", type: "vec3", vec3Type: "xyz", - step: 0.1, + step: 0.01, decimals: 4, subLabels: [ "x", "y", "z" ], unit: "m/s", @@ -1307,8 +1269,8 @@ const GROUPS = [ type: "number-draggable", min: 0, max: 1, - step: 0.01, - decimals: 2, + step: 0.001, + decimals: 4, propertyID: "damping", }, { @@ -1326,33 +1288,27 @@ const GROUPS = [ type: "number-draggable", min: 0, max: 1, - step: 0.01, + step: 0.001, decimals: 4, propertyID: "angularDamping", }, { label: "Bounciness", type: "number-draggable", - min: 0, - max: 1, - step: 0.01, + step: 0.001, decimals: 4, propertyID: "restitution", }, { label: "Friction", type: "number-draggable", - min: 0, - max: 10, - step: 0.1, + step: 0.01, decimals: 4, propertyID: "friction", }, { label: "Density", type: "number-draggable", - min: 100, - max: 10000, step: 1, decimals: 4, propertyID: "density", @@ -1372,6 +1328,7 @@ const GROUPS = [ type: "vec3", vec3Type: "xyz", subLabels: [ "x", "y", "z" ], + step: 0.1, decimals: 4, unit: "m/s<sup>2</sup>", propertyID: "acceleration", @@ -1446,6 +1403,7 @@ const JSON_EDITOR_ROW_DIV_INDEX = 2; let elGroups = {}; let properties = {}; +let propertyRangeRequests = []; let colorPickers = {}; let particlePropertyUpdates = {}; let selectedEntityProperties; @@ -1922,6 +1880,17 @@ function createNumberProperty(property, elProperty) { return elInput; } +function updateNumberMinMax(property) { + let propertyData = property.data; + let elInput = property.elInput; + if (propertyData.min !== undefined) { + elInput.setAttribute("min", propertyData.min); + } + if (propertyData.max !== undefined) { + elInput.setAttribute("max", propertyData.max); + } +} + function createNumberDraggableProperty(property, elProperty) { let elementID = property.elementID; let propertyData = property.data; @@ -1951,6 +1920,11 @@ function createNumberDraggableProperty(property, elProperty) { return elDraggableNumber; } +function updateNumberDraggableMinMax(property) { + let propertyData = property.data; + property.elNumber.updateMinMax(propertyData.min, propertyData.max); +} + function createVec3Property(property, elProperty) { let propertyData = property.data; @@ -2000,6 +1974,15 @@ function createVec2Property(property, elProperty) { return elResult; } +function updateVectorMinMax(property) { + let propertyData = property.data; + property.elNumberX.updateMinMax(propertyData.min, propertyData.max); + property.elNumberY.updateMinMax(propertyData.min, propertyData.max); + if (property.elNumberZ) { + property.elNumberZ.updateMinMax(propertyData.min, propertyData.max); + } +} + function createColorProperty(property, elProperty) { let propertyName = property.name; let elementID = property.elementID; @@ -2046,7 +2029,6 @@ function createColorProperty(property, elProperty) { color: '000000', submit: false, // We don't want to have a submission button onShow: function(colpick) { - console.log("Showing"); $(colorPickerID).attr('active', 'true'); // The original color preview within the picker needs to be updated on show because // prior to the picker being shown we don't have access to the selections' starting color. @@ -2986,6 +2968,9 @@ function loaded() { if (property.type !== 'placeholder') { properties[propertyID] = property; } + if (innerPropertyData.type === 'number' || innerPropertyData.type === 'number-draggable') { + propertyRangeRequests.push(propertyID); + } } } else { let property = createProperty(propertyData, propertyElementID, propertyName, propertyID, elProperty); @@ -2995,6 +2980,10 @@ function loaded() { if (property.type !== 'placeholder') { properties[propertyID] = property; + } + if (propertyData.type === 'number' || propertyData.type === 'number-draggable' || + propertyData.type === 'vec2' || propertyData.type === 'vec3') { + propertyRangeRequests.push(propertyID); } let showPropertyRule = propertyData.showPropertyRule; @@ -3346,11 +3335,40 @@ function loaded() { } else if (data.type === 'setSpaceMode') { currentSpaceMode = data.spaceMode === "local" ? PROPERTY_SPACE_MODE.LOCAL : PROPERTY_SPACE_MODE.WORLD; updateVisibleSpaceModeProperties(); + } else if (data.type === 'propertyRangeReply') { + let propertyRanges = data.propertyRanges; + for (let property in propertyRanges) { + let propertyRange = propertyRanges[property]; + if (propertyRange !== undefined) { + let propertyData = properties[property].data; + let multiplier = propertyData.multiplier; + if (propertyData.min === undefined && propertyRange.minimum != "") { + propertyData.min = propertyRange.minimum; + if (multiplier !== undefined) { + propertyData.min /= multiplier; + } + } + if (propertyData.max === undefined && propertyRange.maximum != "") { + propertyData.max = propertyRange.maximum; + if (multiplier !== undefined) { + propertyData.max /= multiplier; + } + } + if (propertyData.type === 'number') { + updateNumberMinMax(properties[property]); + } else if (propertyData.type === 'number-draggable') { + updateNumberDraggableMinMax(properties[property]); + } else if (propertyData.type === 'vec2' || propertyData.type === 'vec3') { + updateVectorMinMax(properties[property]); + } + } + } } }); - // Request tooltips as soon as we can process a reply: + // Request tooltips and property ranges as soon as we can process a reply: EventBridge.emitWebEvent(JSON.stringify({ type: 'tooltipsRequest' })); + EventBridge.emitWebEvent(JSON.stringify({ type: 'propertyRangeRequest', properties: propertyRangeRequests })); } // Server Script Status diff --git a/scripts/system/libraries/entitySelectionTool.js b/scripts/system/libraries/entitySelectionTool.js index 164899ef86..83cd010337 100644 --- a/scripts/system/libraries/entitySelectionTool.js +++ b/scripts/system/libraries/entitySelectionTool.js @@ -599,12 +599,10 @@ SelectionDisplay = (function() { const STRETCH_CUBE_OFFSET = 0.06; const STRETCH_CUBE_CAMERA_DISTANCE_MULTIPLE = 0.02; - const STRETCH_MINIMUM_DIMENSION = 0.001; const STRETCH_PANEL_WIDTH = 0.01; const SCALE_OVERLAY_CAMERA_DISTANCE_MULTIPLE = 0.02; const SCALE_DIMENSIONS_CAMERA_DISTANCE_MULTIPLE = 0.5; - const SCALE_MINIMUM_DIMENSION = 0.01; const BOUNDING_EDGE_OFFSET = 0.5; @@ -1543,7 +1541,7 @@ SelectionDisplay = (function() { print(" SpaceMode: " + spaceMode); print(" DisplayMode: " + getMode()); } - + if (SelectionManager.selections.length === 0) { that.setOverlaysVisible(false); that.clearDebugPickPlane(); @@ -1574,7 +1572,7 @@ SelectionDisplay = (function() { dimensions: dimensions }; var isCameraInsideBox = isPointInsideBox(Camera.position, selectionBoxGeometry); - + // in HMD if outside the bounding box clamp the overlays to the bounding box for now so lasers can hit them var maxHandleDimension = 0; if (HMD.active && !isCameraInsideBox) { @@ -2515,7 +2513,7 @@ SelectionDisplay = (function() { var newDimensions = Vec3.sum(initialDimensions, changeInDimensions); - var minimumDimension = STRETCH_MINIMUM_DIMENSION; + var minimumDimension = Entities.getPropertyInfo("dimensions").minimum; if (newDimensions.x < minimumDimension) { newDimensions.x = minimumDimension; changeInDimensions.x = minimumDimension - initialDimensions.x; @@ -2634,7 +2632,7 @@ SelectionDisplay = (function() { newDimensions.y = Math.abs(newDimensions.y); newDimensions.z = Math.abs(newDimensions.z); - var minimumDimension = SCALE_MINIMUM_DIMENSION; + var minimumDimension = Entities.getPropertyInfo("dimensions").minimum; if (newDimensions.x < minimumDimension) { newDimensions.x = minimumDimension; changeInDimensions.x = minimumDimension - initialDimensions.x; From dde7fbdfce1cfbf74494773652fbea0db260b1b1 Mon Sep 17 00:00:00 2001 From: unknown <davidback3@gmail.com> Date: Thu, 27 Dec 2018 19:58:35 -0800 Subject: [PATCH 071/230] how did these happen --- .../entities/src/EntityItemProperties.cpp | 14 ++++---- .../entities/src/EntityScriptingInterface.cpp | 31 ------------------ .../entities/src/EntityScriptingInterface.h | 32 ++----------------- 3 files changed, 10 insertions(+), 67 deletions(-) diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 5616d04ea4..229e5068d0 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -2436,19 +2436,19 @@ bool EntityItemProperties::getPropertyInfo(const QString& propertyName, EntityPr ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_TRIGGERABLE, Grab, grab, Triggerable, triggerable); ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE, Grab, grab, Equippable, equippable); ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_LEFT_EQUIPPABLE_POSITION_OFFSET, Grab, grab, - EquippableLeftPosition, equippableLeftPosition); + EquippableLeftPosition, equippableLeftPosition); ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_LEFT_EQUIPPABLE_ROTATION_OFFSET, Grab, grab, - EquippableLeftRotation, equippableLeftRotation); + EquippableLeftRotation, equippableLeftRotation); ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_RIGHT_EQUIPPABLE_POSITION_OFFSET, Grab, grab, - EquippableRightPosition, equippableRightPosition); + EquippableRightPosition, equippableRightPosition); ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_RIGHT_EQUIPPABLE_ROTATION_OFFSET, Grab, grab, - EquippableRightRotation, equippableRightRotation); + EquippableRightRotation, equippableRightRotation); ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE_INDICATOR_URL, Grab, grab, - EquippableIndicatorURL, equippableIndicatorURL); + EquippableIndicatorURL, equippableIndicatorURL); ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE_INDICATOR_SCALE, Grab, grab, - EquippableIndicatorScale, equippableIndicatorScale); + EquippableIndicatorScale, equippableIndicatorScale); ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE_INDICATOR_OFFSET, Grab, grab, - EquippableIndicatorOffset, equippableIndicatorOffset); + EquippableIndicatorOffset, equippableIndicatorOffset); ADD_PROPERTY_TO_MAP(PROP_IMAGE_URL, ImageURL, imageURL, QString); ADD_PROPERTY_TO_MAP(PROP_EMISSIVE, Emissive, emissive, bool); diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp index f9f1cb0a06..314604a9da 100644 --- a/libraries/entities/src/EntityScriptingInterface.cpp +++ b/libraries/entities/src/EntityScriptingInterface.cpp @@ -1193,12 +1193,6 @@ QVector<QUuid> EntityScriptingInterface::findEntitiesByType(const QString entity _entityTree->withReadLock([&] { _entityTree->evalEntitiesInSphereWithType(center, radius, type, PickFilter(searchFilter), result); }); - - foreach(EntityItemPointer entity, entities) { - if (entity->getType() == type) { - result << entity->getEntityItemID().toString(); - } - } } return result; } @@ -1210,24 +1204,6 @@ QVector<QUuid> EntityScriptingInterface::findEntitiesByName(const QString entity unsigned int searchFilter = PickFilter::getBitMask(PickFilter::FlagBit::DOMAIN_ENTITIES) | PickFilter::getBitMask(PickFilter::FlagBit::AVATAR_ENTITIES); _entityTree->evalEntitiesInSphereWithName(center, radius, entityName, caseSensitiveSearch, PickFilter(searchFilter), result); }); - - if (caseSensitiveSearch) { - foreach(EntityItemPointer entity, entities) { - if (entity->getName() == entityName) { - result << entity->getEntityItemID(); - } - } - - } else { - QString entityNameLowerCase = entityName.toLower(); - - foreach(EntityItemPointer entity, entities) { - QString entityItemLowerCase = entity->getName().toLower(); - if (entityItemLowerCase == entityNameLowerCase) { - result << entity->getEntityItemID(); - } - } - } } return result; } @@ -1262,13 +1238,6 @@ RayToEntityIntersectionResult EntityScriptingInterface::evalRayIntersectionVecto return evalRayIntersectionWorker(ray, Octree::Lock, searchFilter, entityIdsToInclude, entityIdsToDiscard); } -RayToEntityIntersectionResult EntityScriptingInterface::evalRayIntersectionVector(const PickRay& ray, PickFilter searchFilter, - const QVector<EntityItemID>& entityIdsToInclude, const QVector<EntityItemID>& entityIdsToDiscard) { - PROFILE_RANGE(script_entities, __FUNCTION__); - - return evalRayIntersectionWorker(ray, Octree::Lock, searchFilter, entityIdsToInclude, entityIdsToDiscard); -} - RayToEntityIntersectionResult EntityScriptingInterface::evalRayIntersectionWorker(const PickRay& ray, Octree::lockType lockType, PickFilter searchFilter, const QVector<EntityItemID>& entityIdsToInclude, const QVector<EntityItemID>& entityIdsToDiscard) const { diff --git a/libraries/entities/src/EntityScriptingInterface.h b/libraries/entities/src/EntityScriptingInterface.h index 389b5e629b..7b8378f6ce 100644 --- a/libraries/entities/src/EntityScriptingInterface.h +++ b/libraries/entities/src/EntityScriptingInterface.h @@ -427,7 +427,7 @@ public slots: * @function Entities.findEntitiesInBox * @param {Vec3} corner - The corner of the search AA box with minimum co-ordinate values. * @param {Vec3} dimensions - The dimensions of the search AA box. - * @returns {Uuid[]} An array of entity IDs whose AA boxes intersect the search AA box. The array is empty if no entities + * @returns {Uuid[]} An array of entity IDs whose AA boxes intersect the search AA box. The array is empty if no entities * could be found. */ /// this function will not find any models in script engine contexts which don't have access to models @@ -438,7 +438,7 @@ public slots: * @function Entities.findEntitiesInFrustum * @param {ViewFrustum} frustum - The frustum to search in. The <code>position</code>, <code>orientation</code>, * <code>projection</code>, and <code>centerRadius</code> properties must be specified. - * @returns {Uuid[]} An array of entity IDs axis-aligned boxes intersect the frustum. The array is empty if no entities + * @returns {Uuid[]} An array of entity IDs axis-aligned boxes intersect the frustum. The array is empty if no entities * could be found. * @example <caption>Report the number of entities in view.</caption> * var entityIDs = Entities.findEntitiesInFrustum(Camera.frustum); @@ -453,7 +453,7 @@ public slots: * @param {Entities.EntityType} entityType - The type of entity to search for. * @param {Vec3} center - The point about which to search. * @param {number} radius - The radius within which to search. - * @returns {Uuid[]} An array of entity IDs of the specified type that intersect the search sphere. The array is empty if + * @returns {Uuid[]} An array of entity IDs of the specified type that intersect the search sphere. The array is empty if * no entities could be found. * @example <caption>Report the number of Model entities within 10m of your avatar.</caption> * var entityIDs = Entities.findEntitiesByType("Model", MyAvatar.position, 10); @@ -513,32 +513,6 @@ public slots: const QScriptValue& entityIdsToInclude = QScriptValue(), const QScriptValue& entityIdsToDiscard = QScriptValue(), bool visibleOnly = false, bool collidableOnly = false) const; - /// Same as above but with QVectors - RayToEntityIntersectionResult findRayIntersectionVector(const PickRay& ray, bool precisionPicking, - const QVector<EntityItemID>& entityIdsToInclude, const QVector<EntityItemID>& entityIdsToDiscard, - bool visibleOnly, bool collidableOnly); - - /**jsdoc - * Find the first entity intersected by a {@link PickRay}. <code>Light</code> and <code>Zone</code> entities are not - * intersected unless they've been configured as pickable using {@link Entities.setLightsArePickable|setLightsArePickable} - * and {@link Entities.setZonesArePickable|setZonesArePickable}, respectively.<br /> - * This is a synonym for {@link Entities.findRayIntersection|findRayIntersection}. - * @function Entities.findRayIntersectionBlocking - * @param {PickRay} pickRay - The PickRay to use for finding entities. - * @param {boolean} [precisionPicking=false] - If <code>true</code> and the intersected entity is a <code>Model</code> - * entity, the result's <code>extraInfo</code> property includes more information than it otherwise would. - * @param {Uuid[]} [entitiesToInclude=[]] - If not empty then the search is restricted to these entities. - * @param {Uuid[]} [entitiesToDiscard=[]] - Entities to ignore during the search. - * @deprecated This function is deprecated and will soon be removed. Use - * {@link Entities.findRayIntersection|findRayIntersection} instead; it blocks and performs the same function. - */ - /// If the scripting context has visible entities, this will determine a ray intersection, and will block in - /// order to return an accurate result - Q_INVOKABLE RayToEntityIntersectionResult findRayIntersectionBlocking(const PickRay& ray, bool precisionPicking = false, - const QScriptValue& entityIdsToInclude = QScriptValue(), const QScriptValue& entityIdsToDiscard = QScriptValue()); - ->>>>>>> property range audit - add range info via macros accessible via API, tweak min/max/steps in entityProperties - /**jsdoc * Reloads an entity's server entity script such that the latest version re-downloaded. * @function Entities.reloadServerScripts From b92beca7d150ae4ff8bee4b12b1b460003061cb2 Mon Sep 17 00:00:00 2001 From: David Back <davidback@highfidelity.io> Date: Wed, 2 Jan 2019 11:26:38 -0800 Subject: [PATCH 072/230] bad merge --- .../entities/src/EntityScriptingInterface.cpp | 15 --------------- libraries/entities/src/EntityScriptingInterface.h | 6 +++--- 2 files changed, 3 insertions(+), 18 deletions(-) diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp index 314604a9da..709e7f4508 100644 --- a/libraries/entities/src/EntityScriptingInterface.cpp +++ b/libraries/entities/src/EntityScriptingInterface.cpp @@ -1089,9 +1089,6 @@ QUuid EntityScriptingInterface::findClosestEntity(const glm::vec3& center, float _entityTree->withReadLock([&] { result = _entityTree->evalClosestEntity(center, radius, PickFilter(searchFilter)); }); - if (closestEntity) { - result = closestEntity->getEntityItemID(); - } } return result; } @@ -1114,10 +1111,6 @@ QVector<QUuid> EntityScriptingInterface::findEntities(const glm::vec3& center, f _entityTree->withReadLock([&] { _entityTree->evalEntitiesInSphere(center, radius, PickFilter(searchFilter), result); }); - - foreach (EntityItemPointer entity, entities) { - result << entity->getEntityItemID(); - } } return result; } @@ -1132,10 +1125,6 @@ QVector<QUuid> EntityScriptingInterface::findEntitiesInBox(const glm::vec3& corn AABox box(corner, dimensions); _entityTree->evalEntitiesInBox(box, PickFilter(searchFilter), result); }); - - foreach (EntityItemPointer entity, entities) { - result << entity->getEntityItemID(); - } } return result; } @@ -1174,10 +1163,6 @@ QVector<QUuid> EntityScriptingInterface::findEntitiesInFrustum(QVariantMap frust _entityTree->withReadLock([&] { _entityTree->evalEntitiesInFrustum(viewFrustum, PickFilter(searchFilter), result); }); - - foreach(EntityItemPointer entity, entities) { - result << entity->getEntityItemID(); - } } } diff --git a/libraries/entities/src/EntityScriptingInterface.h b/libraries/entities/src/EntityScriptingInterface.h index 7b8378f6ce..1f09198f0f 100644 --- a/libraries/entities/src/EntityScriptingInterface.h +++ b/libraries/entities/src/EntityScriptingInterface.h @@ -427,7 +427,7 @@ public slots: * @function Entities.findEntitiesInBox * @param {Vec3} corner - The corner of the search AA box with minimum co-ordinate values. * @param {Vec3} dimensions - The dimensions of the search AA box. - * @returns {Uuid[]} An array of entity IDs whose AA boxes intersect the search AA box. The array is empty if no entities + * @returns {Uuid[]} An array of entity IDs whose AA boxes intersect the search AA box. The array is empty if no entities * could be found. */ /// this function will not find any models in script engine contexts which don't have access to models @@ -438,7 +438,7 @@ public slots: * @function Entities.findEntitiesInFrustum * @param {ViewFrustum} frustum - The frustum to search in. The <code>position</code>, <code>orientation</code>, * <code>projection</code>, and <code>centerRadius</code> properties must be specified. - * @returns {Uuid[]} An array of entity IDs axis-aligned boxes intersect the frustum. The array is empty if no entities + * @returns {Uuid[]} An array of entity IDs axis-aligned boxes intersect the frustum. The array is empty if no entities * could be found. * @example <caption>Report the number of entities in view.</caption> * var entityIDs = Entities.findEntitiesInFrustum(Camera.frustum); @@ -453,7 +453,7 @@ public slots: * @param {Entities.EntityType} entityType - The type of entity to search for. * @param {Vec3} center - The point about which to search. * @param {number} radius - The radius within which to search. - * @returns {Uuid[]} An array of entity IDs of the specified type that intersect the search sphere. The array is empty if + * @returns {Uuid[]} An array of entity IDs of the specified type that intersect the search sphere. The array is empty if * no entities could be found. * @example <caption>Report the number of Model entities within 10m of your avatar.</caption> * var entityIDs = Entities.findEntitiesByType("Model", MyAvatar.position, 10); From 56ee91dc606235d7f8230e8f44ca2718d611586f Mon Sep 17 00:00:00 2001 From: NissimHadar <nissim.hadar@gmail.com> Date: Wed, 2 Jan 2019 13:23:20 -0800 Subject: [PATCH 073/230] Fixed Ubuntu warnings. --- .../src/scripting/PlatformInfoScriptingInterface.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/interface/src/scripting/PlatformInfoScriptingInterface.cpp b/interface/src/scripting/PlatformInfoScriptingInterface.cpp index b965eb4331..bcbf87689e 100644 --- a/interface/src/scripting/PlatformInfoScriptingInterface.cpp +++ b/interface/src/scripting/PlatformInfoScriptingInterface.cpp @@ -64,6 +64,8 @@ QString PlatformInfoScriptingInterface::getCPUBrand() { } return QString::fromStdString(hostStream.str()); +#else + return QString("NO IMPLEMENTED"); #endif } @@ -91,6 +93,8 @@ int PlatformInfoScriptingInterface::getTotalSystemMemoryMB() { QString result = QString::fromStdString(hostStream.str()); QStringList parts = result.split(' '); return (int)(parts[1].toDouble() / 1024 / 1024); +#else + return -1; #endif } @@ -115,7 +119,9 @@ QString PlatformInfoScriptingInterface::getGraphicsCardType() { } } + // unkown graphics card return "UNKNOWN"; +#else + return QString("NO IMPLEMENTED"); #endif - } From 3d8a323fae7dcb97e672d27c6be1d4e957eb6207 Mon Sep 17 00:00:00 2001 From: Roxanne Skelly <roxanne@highfidelity.io> Date: Wed, 2 Jan 2019 14:17:06 -0800 Subject: [PATCH 074/230] Remove unused variable --- .../src/avatars/AvatarMixerClientData.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/assignment-client/src/avatars/AvatarMixerClientData.cpp b/assignment-client/src/avatars/AvatarMixerClientData.cpp index b2b09df6d2..37f71103d2 100644 --- a/assignment-client/src/avatars/AvatarMixerClientData.cpp +++ b/assignment-client/src/avatars/AvatarMixerClientData.cpp @@ -19,7 +19,8 @@ #include "AvatarMixerSlave.h" -AvatarMixerClientData::AvatarMixerClientData(const QUuid& nodeID, Node::LocalID nodeLocalID) : NodeData(nodeID, nodeLocalID) { +AvatarMixerClientData::AvatarMixerClientData(const QUuid& nodeID, Node::LocalID nodeLocalID) : + NodeData(nodeID, nodeLocalID) { // in case somebody calls getSessionUUID on the AvatarData instance, make sure it has the right ID _avatar->setID(nodeID); } @@ -208,7 +209,6 @@ void AvatarMixerClientData::processBulkAvatarTraitsAckMessage(ReceivedMessage& m while (instancedSentIt != versions.instancedCEnd()) { auto traitType = instancedSentIt->traitType; // get or create the sent trait versions for this trait type - auto& sentIDValuePairs = versions.getInstanceIDValuePairs(traitType); // enumerate each sent instance for (auto& sentInstance : instancedSentIt->instances) { @@ -258,8 +258,8 @@ void AvatarMixerClientData::checkSkeletonURLAgainstWhitelist(const SlaveSharedDa // make sure we're not unecessarily overriding the default avatar with the default avatar if (_avatar->getWireSafeSkeletonModelURL() != slaveSharedData.skeletonReplacementURL) { // we need to change this avatar's skeleton URL, and send them a traits packet informing them of the change - qDebug() << "Overwriting avatar URL" << _avatar->getWireSafeSkeletonModelURL() << "to replacement" - << slaveSharedData.skeletonReplacementURL << "for" << sendingNode.getUUID(); + qDebug() << "Overwriting avatar URL" << _avatar->getWireSafeSkeletonModelURL() + << "to replacement" << slaveSharedData.skeletonReplacementURL << "for" << sendingNode.getUUID(); _avatar->setSkeletonModelURL(slaveSharedData.skeletonReplacementURL); auto packet = NLPacket::create(PacketType::SetAvatarTraits, -1, true); @@ -356,7 +356,9 @@ void AvatarMixerClientData::readViewFrustumPacket(const QByteArray& message) { bool AvatarMixerClientData::otherAvatarInView(const AABox& otherAvatarBox) { return std::any_of(std::begin(_currentViewFrustums), std::end(_currentViewFrustums), - [&](const ConicalViewFrustum& viewFrustum) { return viewFrustum.intersects(otherAvatarBox); }); + [&](const ConicalViewFrustum& viewFrustum) { + return viewFrustum.intersects(otherAvatarBox); + }); } void AvatarMixerClientData::loadJSONStats(QJsonObject& jsonObject) const { @@ -367,15 +369,14 @@ void AvatarMixerClientData::loadJSONStats(QJsonObject& jsonObject) const { jsonObject["total_num_out_of_order_sends"] = _numOutOfOrderSends; jsonObject[OUTBOUND_AVATAR_DATA_STATS_KEY] = getOutboundAvatarDataKbps(); - jsonObject[INBOUND_AVATAR_DATA_STATS_KEY] = _avatar->getAverageBytesReceivedPerSecond() / (float)BYTES_PER_KILOBIT; + jsonObject[INBOUND_AVATAR_DATA_STATS_KEY] = _avatar->getAverageBytesReceivedPerSecond() / (float) BYTES_PER_KILOBIT; jsonObject["av_data_receive_rate"] = _avatar->getReceiveRate(); jsonObject["recent_other_av_in_view"] = _recentOtherAvatarsInView; jsonObject["recent_other_av_out_of_view"] = _recentOtherAvatarsOutOfView; } -AvatarMixerClientData::TraitsCheckTimestamp AvatarMixerClientData::getLastOtherAvatarTraitsSendPoint( - Node::LocalID otherAvatar) const { +AvatarMixerClientData::TraitsCheckTimestamp AvatarMixerClientData::getLastOtherAvatarTraitsSendPoint(Node::LocalID otherAvatar) const { auto it = _lastSentTraitsTimestamps.find(otherAvatar); if (it != _lastSentTraitsTimestamps.end()) { From d29233872e147c47983c737b996b781caa425568 Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Wed, 2 Jan 2019 14:59:47 -0800 Subject: [PATCH 075/230] Remove avatar packager from Android builds --- interface/src/Menu.cpp | 2 ++ interface/src/avatar/MarketplaceItemUploader.cpp | 14 +++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 8b43753cad..87b1542648 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -150,10 +150,12 @@ Menu::Menu() { qApp, SLOT(packageModel())); // Edit > Avatar Packager +#ifndef Q_OS_ANDROID action = addActionToQMenuAndActionHash(editMenu, MenuOption::AvatarPackager); connect(action, &QAction::triggered, [] { DependencyManager::get<AvatarPackager>()->open(); }); +#endif // Edit > Reload All Content addActionToQMenuAndActionHash(editMenu, MenuOption::ReloadContent, 0, qApp, SLOT(reloadResourceCaches())); diff --git a/interface/src/avatar/MarketplaceItemUploader.cpp b/interface/src/avatar/MarketplaceItemUploader.cpp index 45a13f04c4..00c8299c62 100644 --- a/interface/src/avatar/MarketplaceItemUploader.cpp +++ b/interface/src/avatar/MarketplaceItemUploader.cpp @@ -14,11 +14,14 @@ #include <AccountManager.h> #include <DependencyManager.h> -#include <QBuffer> +#ifndef Q_OS_ANDROID #include <quazip5/quazip.h> #include <quazip5/quazipfile.h> +#endif + +#include <QTimer> +#include <QBuffer> -#include <qtimer.h> #include <QFile> #include <QFileInfo> @@ -125,8 +128,12 @@ void MarketplaceItemUploader::doGetCategories() { } void MarketplaceItemUploader::doUploadAvatar() { +#ifdef Q_OS_ANDROID + qWarning() << "Marketplace uploading is not supported on Android"; + setError(Error::Unknown); + return; +#else QBuffer buffer{ &_fileData }; - //buffer.open(QIODevice::WriteOnly); QuaZip zip{ &buffer }; if (!zip.open(QuaZip::Mode::mdAdd)) { qWarning() << "Failed to open zip"; @@ -227,6 +234,7 @@ void MarketplaceItemUploader::doUploadAvatar() { }); setState(State::UploadingAvatar); +#endif } void MarketplaceItemUploader::doWaitForInventory() { From 41effbf8624a1d7ea0d13b18ee0e638b443aa34e Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Wed, 2 Jan 2019 15:01:00 -0800 Subject: [PATCH 076/230] Remove unused variable in MarketplaceItemUploader.cpp --- interface/src/avatar/MarketplaceItemUploader.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/interface/src/avatar/MarketplaceItemUploader.cpp b/interface/src/avatar/MarketplaceItemUploader.cpp index 00c8299c62..8b97358ba4 100644 --- a/interface/src/avatar/MarketplaceItemUploader.cpp +++ b/interface/src/avatar/MarketplaceItemUploader.cpp @@ -285,7 +285,6 @@ void MarketplaceItemUploader::doWaitForInventory() { auto version = assetObject["version"]; auto valid = assetObject["valid"]; if (version.isDouble() && valid.isBool()) { - int versionInt = version.toDouble(); if ((int)version.toDouble() >= _itemVersion && valid.toBool()) { return true; } From 2ccef09d007a957e3842cb13b256da9f04a18637 Mon Sep 17 00:00:00 2001 From: David Rowe <david@ctrlaltstudio.com> Date: Thu, 3 Jan 2019 12:35:44 +1300 Subject: [PATCH 077/230] Make operation clearer --- .../input-plugins/src/input-plugins/KeyboardMouseDevice.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp index c819aaeacf..91b737ee40 100755 --- a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp +++ b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp @@ -22,10 +22,8 @@ const char* KeyboardMouseDevice::NAME = "Keyboard/Mouse"; bool KeyboardMouseDevice::_enableTouch = true; void KeyboardMouseDevice::updateDeltaAxisValue(int channel, float value) { - // Use timestamps for delta values so that consecutive identical values can be output. - if (value != 0.0f || _inputDevice->_axisStateMap[channel].value != 0) { - _inputDevice->_axisStateMap[channel] = { value, usecTimestampNow() }; - } + // Associate timestamps with non-zero delta values so that consecutive identical values can be output. + _inputDevice->_axisStateMap[channel] = { value, value != 0.0f ? usecTimestampNow() : 0 }; } void KeyboardMouseDevice::pluginUpdate(float deltaTime, const controller::InputCalibrationData& inputCalibrationData) { From dc4be42b207c83fa38983d5c4500ff434e6e7467 Mon Sep 17 00:00:00 2001 From: NissimHadar <nissim.hadar@gmail.com> Date: Wed, 2 Jan 2019 16:14:05 -0800 Subject: [PATCH 078/230] Corrected AWS update for text results. --- tools/nitpick/src/AWSInterface.cpp | 87 ++++++++++++++++++------------ tools/nitpick/src/ui/Nitpick.cpp | 2 +- 2 files changed, 53 insertions(+), 36 deletions(-) diff --git a/tools/nitpick/src/AWSInterface.cpp b/tools/nitpick/src/AWSInterface.cpp index 0b93ce44e5..59be26c383 100644 --- a/tools/nitpick/src/AWSInterface.cpp +++ b/tools/nitpick/src/AWSInterface.cpp @@ -476,24 +476,33 @@ void AWSInterface::updateAWS() { QStringList parts = nextDirectory.split('/'); QString filename = parts[parts.length() - 3] + "/" + parts[parts.length() - 2] + "/" + parts[parts.length() - 1]; - stream << "data = open('" << _workingDirectory << "/" << filename << "/" - << "Actual Image.png" - << "', 'rb')\n"; - - stream << "s3.Bucket('hifi-content').put_object(Bucket='" << AWS_BUCKET << "', Key='" << filename << "/" << "Actual Image.png" << "', Body=data)\n\n"; - - stream << "data = open('" << _workingDirectory << "/" << filename << "/" - << "Expected Image.png" - << "', 'rb')\n"; - - stream << "s3.Bucket('hifi-content').put_object(Bucket='" << AWS_BUCKET << "', Key='" << filename << "/" << "Expected Image.png" << "', Body=data)\n\n"; - - if (QFile::exists(_htmlFailuresFolder + "/" + parts[parts.length() - 1] + "/Difference Image.png")) { + // The directory may contain either 'Result.txt', or 3 images (and a text file named 'TestResults.txt' that is not used) + if (QFile::exists(_htmlFailuresFolder + "/" + parts[parts.length() - 1] + "/Result.txt")) { stream << "data = open('" << _workingDirectory << "/" << filename << "/" - << "Difference Image.png" - << "', 'rb')\n"; + << "Result.txt" + << "', 'rb')\n"; - stream << "s3.Bucket('hifi-content').put_object(Bucket='" << AWS_BUCKET << "', Key='" << filename << "/" << "Difference Image.png" << "', Body=data)\n\n"; + stream << "s3.Bucket('hifi-content').put_object(Bucket='" << AWS_BUCKET << "', Key='" << filename << "/" << "Result.txt" << "', Body=data)\n\n"; + } else { + stream << "data = open('" << _workingDirectory << "/" << filename << "/" + << "Actual Image.png" + << "', 'rb')\n"; + + stream << "s3.Bucket('hifi-content').put_object(Bucket='" << AWS_BUCKET << "', Key='" << filename << "/" << "Actual Image.png" << "', Body=data)\n\n"; + + stream << "data = open('" << _workingDirectory << "/" << filename << "/" + << "Expected Image.png" + << "', 'rb')\n"; + + stream << "s3.Bucket('hifi-content').put_object(Bucket='" << AWS_BUCKET << "', Key='" << filename << "/" << "Expected Image.png" << "', Body=data)\n\n"; + + if (QFile::exists(_htmlFailuresFolder + "/" + parts[parts.length() - 1] + "/Difference Image.png")) { + stream << "data = open('" << _workingDirectory << "/" << filename << "/" + << "Difference Image.png" + << "', 'rb')\n"; + + stream << "s3.Bucket('hifi-content').put_object(Bucket='" << AWS_BUCKET << "', Key='" << filename << "/" << "Difference Image.png" << "', Body=data)\n\n"; + } } } @@ -510,31 +519,39 @@ void AWSInterface::updateAWS() { // We need to concatenate the last 3 components, to get `TestResults--2018-10-02_16-54-11(9426)[DESKTOP-PMKNLSQ]/successes/engine.render.effect.bloom.00000` QStringList parts = nextDirectory.split('/'); QString filename = parts[parts.length() - 3] + "/" + parts[parts.length() - 2] + "/" + parts[parts.length() - 1]; - - stream << "data = open('" << _workingDirectory << "/" << filename << "/" - << "Actual Image.png" - << "', 'rb')\n"; - - stream << "s3.Bucket('hifi-content').put_object(Bucket='" << AWS_BUCKET << "', Key='" << filename << "/" << "Actual Image.png" << "', Body=data)\n\n"; - - stream << "data = open('" << _workingDirectory << "/" << filename << "/" - << "Expected Image.png" - << "', 'rb')\n"; - - stream << "s3.Bucket('hifi-content').put_object(Bucket='" << AWS_BUCKET << "', Key='" << filename << "/" << "Expected Image.png" << "', Body=data)\n\n"; - - if (QFile::exists(_htmlSuccessesFolder + "/" + parts[parts.length() - 1] + "/Difference Image.png")) { + // The directory may contain either 'Result.txt', or 3 images (and a text file named 'TestResults.txt' that is not used) + if (QFile::exists(_htmlSuccessesFolder + "/" + parts[parts.length() - 1] + "/Result.txt")) { stream << "data = open('" << _workingDirectory << "/" << filename << "/" - << "Difference Image.png" - << "', 'rb')\n"; + << "Result.txt" + << "', 'rb')\n"; - stream << "s3.Bucket('hifi-content').put_object(Bucket='" << AWS_BUCKET << "', Key='" << filename << "/" << "Difference Image.png" << "', Body=data)\n\n"; + stream << "s3.Bucket('hifi-content').put_object(Bucket='" << AWS_BUCKET << "', Key='" << filename << "/" << "Result.txt" << "', Body=data)\n\n"; + } else { + stream << "data = open('" << _workingDirectory << "/" << filename << "/" + << "Actual Image.png" + << "', 'rb')\n"; + + stream << "s3.Bucket('hifi-content').put_object(Bucket='" << AWS_BUCKET << "', Key='" << filename << "/" << "Actual Image.png" << "', Body=data)\n\n"; + + stream << "data = open('" << _workingDirectory << "/" << filename << "/" + << "Expected Image.png" + << "', 'rb')\n"; + + stream << "s3.Bucket('hifi-content').put_object(Bucket='" << AWS_BUCKET << "', Key='" << filename << "/" << "Expected Image.png" << "', Body=data)\n\n"; + + if (QFile::exists(_htmlSuccessesFolder + "/" + parts[parts.length() - 1] + "/Difference Image.png")) { + stream << "data = open('" << _workingDirectory << "/" << filename << "/" + << "Difference Image.png" + << "', 'rb')\n"; + + stream << "s3.Bucket('hifi-content').put_object(Bucket='" << AWS_BUCKET << "', Key='" << filename << "/" << "Difference Image.png" << "', Body=data)\n\n"; + } } } stream << "data = open('" << _workingDirectory << "/" << _resultsFolder << "/" << HTML_FILENAME << "', 'rb')\n"; stream << "s3.Bucket('hifi-content').put_object(Bucket='" << AWS_BUCKET << "', Key='" << _resultsFolder << "/" - << HTML_FILENAME << "', Body=data, ContentType='text/html')\n"; + << HTML_FILENAME << "', Body=data, ContentType='text/html')\n"; file.close(); @@ -548,7 +565,7 @@ void AWSInterface::updateAWS() { connect(process, &QProcess::started, this, [=]() { _busyWindow.exec(); }); connect(process, SIGNAL(finished(int)), process, SLOT(deleteLater())); connect(process, static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished), this, - [=](int exitCode, QProcess::ExitStatus exitStatus) { _busyWindow.hide(); }); + [=](int exitCode, QProcess::ExitStatus exitStatus) { _busyWindow.hide(); }); #ifdef Q_OS_WIN QStringList parameters = QStringList() << filename; diff --git a/tools/nitpick/src/ui/Nitpick.cpp b/tools/nitpick/src/ui/Nitpick.cpp index 38124e1f39..0bd397715b 100644 --- a/tools/nitpick/src/ui/Nitpick.cpp +++ b/tools/nitpick/src/ui/Nitpick.cpp @@ -38,7 +38,7 @@ Nitpick::Nitpick(QWidget* parent) : QMainWindow(parent) { _ui.statusLabel->setText(""); _ui.plainTextEdit->setReadOnly(true); - setWindowTitle("Nitpick - v1.3"); + setWindowTitle("Nitpick - v1.3.2"); } Nitpick::~Nitpick() { From 61ac9d005045c560b324c1c954d1fee711270c37 Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Wed, 2 Jan 2019 16:47:09 -0800 Subject: [PATCH 079/230] Update various styling in Avatar Packager --- .../hifi/avatarPackager/AvatarPackagerApp.qml | 59 ++++++++++++++----- .../avatarPackager/AvatarPackagerHeader.qml | 35 ++++------- .../hifi/avatarPackager/AvatarProjectCard.qml | 13 +++- 3 files changed, 69 insertions(+), 38 deletions(-) diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml index 2b21b4d938..0a678dafee 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml @@ -146,6 +146,8 @@ Item { } AvatarPackagerHeader { + z: 100 + id: avatarPackagerHeader colorScheme: root.colorScheme onBackButtonClicked: { @@ -260,22 +262,49 @@ Item { } } - Column { - visible: AvatarPackagerCore.recentProjects.length > 0 - anchors { - fill: parent - topMargin: 18 - leftMargin: 16 - rightMargin: 16 - } - spacing: 10 + Item { + anchors.fill: parent - Repeater { - model: AvatarPackagerCore.recentProjects - AvatarProjectCard { - title: modelData.name - path: modelData.projectPath - onOpen: avatarPackager.openProject(modelData.path) + visible: AvatarPackagerCore.recentProjects.length > 0 + + RalewayRegular { + id: recentProjectsText + + color: 'white' + + visible: AvatarPackagerCore.currentAvatarProject !== null + + anchors.top: parent.top + anchors.left: parent.left + anchors.topMargin: 16 + anchors.leftMargin: 16 + + size: 20 + + text: "Recent Projects" + + onLinkActivated: fileListPopup.open() + } + + Column { + anchors { + left: parent.left + right: parent.right + bottom: parent.bottom + top: recentProjectsText.bottom + topMargin: 16 + leftMargin: 16 + rightMargin: 16 + } + spacing: 10 + + Repeater { + model: AvatarPackagerCore.recentProjects + AvatarProjectCard { + title: modelData.name + path: modelData.projectPath + onOpen: avatarPackager.openProject(modelData.path) + } } } } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml index 7037aa9d92..d0b06ea15f 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml @@ -2,8 +2,9 @@ import QtQuick 2.6 import "../../controlsUit" 1.0 as HifiControls import "../../stylesUit" 1.0 +import "../avatarapp" 1.0 -Rectangle { +ShadowRectangle { id: root width: parent.width @@ -24,30 +25,21 @@ Rectangle { signal backButtonClicked signal docsButtonClicked - RalewaySemiBold { + RalewayButton { id: back + visible: backButtonEnabled && backButtonVisible + size: 28 anchors.top: parent.top anchors.bottom: parent.bottom anchors.left: parent.left anchors.leftMargin: 16 anchors.verticalCenter: back.verticalCenter + text: "◀" - color: textColor - MouseArea { - anchors.fill: parent - onClicked: root.backButtonClicked() - hoverEnabled: true - onEntered: { state = "hovering" } - onExited: { state = "" } - states: [ - State { - name: "hovering" - PropertyChanges { target: back; color: hoverTextColor } - } - ] - } + + onClicked: root.backButtonClicked() } Item { id: titleArea @@ -124,7 +116,7 @@ Rectangle { } } - RalewaySemiBold { + RalewayButton { id: docs visible: false size: 28 @@ -133,13 +125,12 @@ Rectangle { anchors.right: parent.right anchors.rightMargin: 16 anchors.verticalCenter: docs.verticalCenter + text: qsTr("Docs") color: "white" - MouseArea { - anchors.fill: parent - onClicked: { - docsButtonClicked(); - } + + onClicked: { + docsButtonClicked(); } } } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml index 5496711d44..a758d3936a 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml @@ -1,4 +1,5 @@ import QtQuick 2.0 +import QtGraphicalEffects 1.0 import "../../controlsUit" 1.0 as HifiControls import "../../stylesUit" 1.0 @@ -63,7 +64,7 @@ Item { rightMargin: 16 } text: "<title missing>" - size: 16 + size: 24 } RalewayRegular { @@ -88,4 +89,14 @@ Item { onClicked: open() } } + + DropShadow { + id: shadow + anchors.fill: background + radius: 4 + horizontalOffset: 0 + verticalOffset: 4 + color: Qt.rgba(0, 0, 0, 0.25) + source: background + } } From 65d975fe5bf47b65dafdc4f98104dd0448dd0748 Mon Sep 17 00:00:00 2001 From: NissimHadar <nissim.hadar@gmail.com> Date: Wed, 2 Jan 2019 16:53:38 -0800 Subject: [PATCH 080/230] Added detection of Rift and Vive controllers. --- interface/src/Application.cpp | 8 ++++++++ interface/src/Application.h | 4 ++++ .../src/scripting/PlatformInfoScriptingInterface.cpp | 8 ++++++++ .../src/scripting/PlatformInfoScriptingInterface.h | 12 ++++++++++++ 4 files changed, 32 insertions(+) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 06362e8885..0dc7253ba6 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -8711,6 +8711,14 @@ void Application::updateLoginDialogOverlayPosition() { } } +bool Application::hasRiftControllers() { + return PluginUtils::isOculusTouchControllerAvailable(); +} + +bool Application::hasViveControllers() { + return PluginUtils::isViveControllerAvailable(); +} + void Application::onDismissedLoginDialog() { _loginDialogPoppedUp = false; loginDialogPoppedUp.set(false); diff --git a/interface/src/Application.h b/interface/src/Application.h index b70d5e72b9..dc30c3c22c 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -326,6 +326,10 @@ public: void createLoginDialogOverlay(); void updateLoginDialogOverlayPosition(); + // Check if a headset is connected + bool hasRiftControllers(); + bool hasViveControllers(); + #if defined(Q_OS_ANDROID) void beforeEnterBackground(); void enterBackground(); diff --git a/interface/src/scripting/PlatformInfoScriptingInterface.cpp b/interface/src/scripting/PlatformInfoScriptingInterface.cpp index bcbf87689e..b6e4df0d40 100644 --- a/interface/src/scripting/PlatformInfoScriptingInterface.cpp +++ b/interface/src/scripting/PlatformInfoScriptingInterface.cpp @@ -125,3 +125,11 @@ QString PlatformInfoScriptingInterface::getGraphicsCardType() { return QString("NO IMPLEMENTED"); #endif } + +bool PlatformInfoScriptingInterface::hasRiftControllers() { + return qApp->hasRiftControllers(); +} + +bool PlatformInfoScriptingInterface::hasViveControllers() { + return qApp->hasViveControllers(); +} diff --git a/interface/src/scripting/PlatformInfoScriptingInterface.h b/interface/src/scripting/PlatformInfoScriptingInterface.h index 903658cc20..3ed57965c9 100644 --- a/interface/src/scripting/PlatformInfoScriptingInterface.h +++ b/interface/src/scripting/PlatformInfoScriptingInterface.h @@ -53,6 +53,18 @@ public slots: * @returns {string} graphics card type */ QString getGraphicsCardType(); + + /**jsdoc + * Returns true if Oculus Rift is connected (looks for hand controllers) + * @function Window.hasRift + * @returns {boolean} <code>true</code> if running on Windows, otherwise <code>false</code>.*/ + bool hasRiftControllers(); + + /**jsdoc + * Returns true if HTC Vive is connected (looks for hand controllers) + * @function Window.hasRift + * @returns {boolean} <code>true</code> if running on Windows, otherwise <code>false</code>.*/ + bool hasViveControllers(); }; #endif // hifi_PlatformInfoScriptingInterface_h From 0e89e37c8edb94ca2131cfd71c2914da13278b23 Mon Sep 17 00:00:00 2001 From: David Back <davidback@highfidelity.io> Date: Wed, 2 Jan 2019 17:40:00 -0800 Subject: [PATCH 081/230] fix thumb rotations, fix text height, adjust readme --- .gitignore | 1 + .../unity-avatar-exporter/Assets/Editor.meta | 2 +- .../Assets/Editor/AvatarExporter.cs | 14 ++++++++------ .../Assets/Editor/AvatarExporter.cs.meta | 2 +- tools/unity-avatar-exporter/Assets/README.txt | 14 +++++++++----- .../Assets/README.txt.meta | 2 +- .../avatarExporter.unitypackage | Bin 8711 -> 8794 bytes tools/unity-avatar-exporter/packager.bat | 2 +- 8 files changed, 22 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index bbb79ad6a9..f5605d7090 100644 --- a/.gitignore +++ b/.gitignore @@ -98,6 +98,7 @@ tools/jsdoc/package-lock.json # ignore unneeded unity project files for avatar exporter tools/unity-avatar-exporter/Library +tools/unity-avatar-exporter/Logs tools/unity-avatar-exporter/Packages tools/unity-avatar-exporter/ProjectSettings tools/unity-avatar-exporter/Temp diff --git a/tools/unity-avatar-exporter/Assets/Editor.meta b/tools/unity-avatar-exporter/Assets/Editor.meta index aac82b4258..cf7dcf12dd 100644 --- a/tools/unity-avatar-exporter/Assets/Editor.meta +++ b/tools/unity-avatar-exporter/Assets/Editor.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 51b3237a2992bd449a58ade16e52d0e0 +guid: 02111c50e71dd664da8ad5c6a6eca767 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/tools/unity-avatar-exporter/Assets/Editor/AvatarExporter.cs b/tools/unity-avatar-exporter/Assets/Editor/AvatarExporter.cs index 18916267f0..b6470a7551 100644 --- a/tools/unity-avatar-exporter/Assets/Editor/AvatarExporter.cs +++ b/tools/unity-avatar-exporter/Assets/Editor/AvatarExporter.cs @@ -85,9 +85,9 @@ class AvatarExporter : MonoBehaviour { {"LeftHandRing3", new Quaternion(-0.4936301f, 0.5097645f, -0.5061787f, -0.4901562f)}, {"LeftHandRing2", new Quaternion(-0.5089865f, 0.4943658f, -0.4909532f, -0.5054707f)}, {"LeftHandRing1", new Quaternion(-0.5020972f, 0.5005084f, -0.4979034f, -0.4994819f)}, - {"LeftHandThumb3", new Quaternion(-0.7228092f, 0.2988393f, -0.4472938f, -0.4337862f)}, - {"LeftHandThumb2", new Quaternion(-0.7554525f, 0.2018595f, -0.3871402f, -0.4885356f)}, - {"LeftHandThumb1", new Quaternion(-0.7276843f, 0.2878546f, -0.439926f, -0.4405459f)}, + {"LeftHandThumb3", new Quaternion(-0.6617184f, 0.2884935f, -0.3604706f, -0.5907297f)}, + {"LeftHandThumb2", new Quaternion(-0.6935627f, 0.1995147f, -0.2805665f, -0.6328092f)}, + {"LeftHandThumb1", new Quaternion(-0.6663674f, 0.278572f, -0.3507071f, -0.5961183f)}, {"LeftEye", new Quaternion(-2.509889e-9f, -3.379446e-12f, 2.306033e-13f, 1f)}, {"LeftFoot", new Quaternion(0.009215056f, 0.3612514f, 0.9323555f, -0.01121602f)}, {"LeftHand", new Quaternion(-0.4797408f, 0.5195366f, -0.5279632f, -0.4703038f)}, @@ -110,9 +110,9 @@ class AvatarExporter : MonoBehaviour { {"RightHandRing3", new Quaternion(0.4933217f, 0.5102056f, -0.5064691f, 0.4897075f)}, {"RightHandRing2", new Quaternion(0.5085972f, 0.494844f, -0.4913519f, 0.505007f)}, {"RightHandRing1", new Quaternion(0.502959f, 0.4996676f, -0.4970418f, 0.5003144f)}, - {"RightHandThumb3", new Quaternion(0.7221864f, 0.3001843f, -0.4482129f, 0.4329457f)}, - {"RightHandThumb2", new Quaternion(0.755621f, 0.20102f, -0.386691f, 0.4889769f)}, - {"RightHandThumb1", new Quaternion(0.7277303f, 0.2876409f, -0.4398623f, 0.4406733f)}, + {"RightHandThumb3", new Quaternion(0.6611374f, 0.2896575f, -0.3616535f, 0.5900872f)}, + {"RightHandThumb2", new Quaternion(0.6937408f, 0.1986776f, -0.279922f, 0.6331626f)}, + {"RightHandThumb1", new Quaternion(0.6664271f, 0.2783172f, -0.3505667f, 0.596253f)}, {"RightEye", new Quaternion(-2.509889e-9f, -3.379446e-12f, 2.306033e-13f, 1f)}, {"RightFoot", new Quaternion(-0.009482829f, 0.3612484f, 0.9323512f, 0.01144584f)}, {"RightHand", new Quaternion(0.4797273f, 0.5195542f, -0.5279628f, 0.4702987f)}, @@ -482,6 +482,7 @@ class ExportProjectWindow : EditorWindow { const int BUTTON_FONT_SIZE = 16; const int LABEL_FONT_SIZE = 16; const int TEXT_FIELD_FONT_SIZE = 14; + const int TEXT_FIELD_HEIGHT = 20; const int ERROR_FONT_SIZE = 12; string projectName = ""; @@ -508,6 +509,7 @@ class ExportProjectWindow : EditorWindow { labelStyle.fontSize = LABEL_FONT_SIZE; GUIStyle textStyle = new GUIStyle(GUI.skin.textField); textStyle.fontSize = TEXT_FIELD_FONT_SIZE; + textStyle.fixedHeight = TEXT_FIELD_HEIGHT; GUIStyle errorStyle = new GUIStyle(GUI.skin.label); errorStyle.fontSize = ERROR_FONT_SIZE; errorStyle.normal.textColor = Color.red; diff --git a/tools/unity-avatar-exporter/Assets/Editor/AvatarExporter.cs.meta b/tools/unity-avatar-exporter/Assets/Editor/AvatarExporter.cs.meta index c71e4c396d..373aecc6a8 100644 --- a/tools/unity-avatar-exporter/Assets/Editor/AvatarExporter.cs.meta +++ b/tools/unity-avatar-exporter/Assets/Editor/AvatarExporter.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c7a34be82b3ae554ea097963914b083f +guid: 00403fdc52187214c8418bc0a7f387e2 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/tools/unity-avatar-exporter/Assets/README.txt b/tools/unity-avatar-exporter/Assets/README.txt index 034ec23982..3ca4dbb1ee 100644 --- a/tools/unity-avatar-exporter/Assets/README.txt +++ b/tools/unity-avatar-exporter/Assets/README.txt @@ -1,15 +1,19 @@ +Note: It is recommended to use Unity versions between 2017.4.17f1 and 2018.2.12f1 for this Avatar Exporter. + To create a new avatar project: -1. Import your .fbx avatar model into Unity Assets (drag and drop file into Assets window or use Assets menu > Import New Assets). -2. Select the .fbx avatar that you imported in the Assets window, and in the Rig section of the Inspector window set the Animation Type to Humanoid and choose Apply. -3. With the .fbx avatar still selected, select High Fidelity menu > Export New Avatar. +1. Import your .fbx avatar model into your Unity project's Assets by either dragging and dropping the file into the Assets window or by using Assets menu > Import New Assets. +2. Select the .fbx avatar that you imported in step 1 in the Assets window, and in the Rig section of the Inspector window set the Animation Type to Humanoid and choose Apply. +3. With the .fbx avatar still selected in the Assets window, choose High Fidelity menu > Export New Avatar. 4. Select a name for your avatar project (this will be used to create a directory with that name), as well as the target location for your project folder. 5. Once it is exported, your project directory will open in File Explorer. To update an existing avatar project: 1. Select the existing .fbx avatar in the Assets window that you would like to re-export. -2. Select High Fidelity menu > Update Existing Avatar and choose the .fst file you would like to update. -3. If the .fbx file in your Unity Assets folder is newer than the existing .fbx file in your avatar project or vice-versa, you will be prompted if you wish to replace the older file with the newer file. +2. Choose High Fidelity menu > Update Existing Avatar and browse to the .fst file you would like to update. +3. If the .fbx file in your Unity Assets folder is newer than the existing .fbx file in your selected avatar project or vice-versa, you will be prompted if you wish to replace the older file with the newer file before performing the update. 4. Once it is updated, your project directory will open in File Explorer. * WARNING * If you are using any external textures as part of your .fbx model, be sure they are copied into the textures folder that is created in the project folder after exporting a new avatar. + +For further details including troubleshooting tips, see the full documentation at https://docs.highfidelity.com/create-and-explore/avatars/create-avatars/unity-extension diff --git a/tools/unity-avatar-exporter/Assets/README.txt.meta b/tools/unity-avatar-exporter/Assets/README.txt.meta index d8bc5b9b66..148fd21fdd 100644 --- a/tools/unity-avatar-exporter/Assets/README.txt.meta +++ b/tools/unity-avatar-exporter/Assets/README.txt.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 71e72751b2810fc4993ff53291c430b6 +guid: 30b2b6221fd08234eb07c4d6d525d32e TextScriptImporter: externalObjects: {} userData: diff --git a/tools/unity-avatar-exporter/avatarExporter.unitypackage b/tools/unity-avatar-exporter/avatarExporter.unitypackage index f333aecb1299cfa8553a0d4a8d9d657e9ef36bec..28052efea5971fbd5c100a1b48b25c69d5ba1ef0 100644 GIT binary patch literal 8794 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 Q&%fmP6Y8m0TmZ5F066O3H2?qr literal 8711 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 diff --git a/tools/unity-avatar-exporter/packager.bat b/tools/unity-avatar-exporter/packager.bat index 55b59a9db6..66629783af 100644 --- a/tools/unity-avatar-exporter/packager.bat +++ b/tools/unity-avatar-exporter/packager.bat @@ -1 +1 @@ -"C:\Program Files\Unity\Editor\Unity.exe" -quit -batchmode -projectPath %CD% -exportPackage "Assets" "avatarExporter.unitypackage" +Unity -quit -batchmode -projectPath %CD% -exportPackage "Assets" "avatarExporter.unitypackage" From 36da8bfa588895f74b21e3255ce181874636787a Mon Sep 17 00:00:00 2001 From: David Rowe <david@ctrlaltstudio.com> Date: Thu, 3 Jan 2019 15:05:21 +1300 Subject: [PATCH 082/230] Remove TODOs --- .../input-plugins/src/input-plugins/KeyboardMouseDevice.cpp | 4 ---- .../input-plugins/src/input-plugins/TouchscreenDevice.cpp | 1 - 2 files changed, 5 deletions(-) diff --git a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp index 91b737ee40..3383d71a52 100755 --- a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp +++ b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp @@ -128,8 +128,6 @@ void KeyboardMouseDevice::mouseMoveEvent(QMouseEvent* event) { void KeyboardMouseDevice::wheelEvent(QWheelEvent* event) { auto currentMove = event->angleDelta() / 120.0f; - - // ####### TODO: Use AxisValue timestamps? _inputDevice->_axisStateMap[_inputDevice->makeInput(MOUSE_AXIS_WHEEL_X_POS).getChannel()].value = currentMove.x() > 0 ? currentMove.x() : 0; _inputDevice->_axisStateMap[_inputDevice->makeInput(MOUSE_AXIS_WHEEL_X_NEG).getChannel()].value = currentMove.x() < 0 ? -currentMove.x() : 0; _inputDevice->_axisStateMap[_inputDevice->makeInput(MOUSE_AXIS_WHEEL_Y_POS).getChannel()].value = currentMove.y() > 0 ? currentMove.y() : 0; @@ -172,8 +170,6 @@ void KeyboardMouseDevice::touchUpdateEvent(const QTouchEvent* event) { _isTouching = event->touchPointStates().testFlag(Qt::TouchPointPressed); } else { auto currentMove = currentPos - _lastTouch; - - // ####### TODO: Use AxisValue timestamp fields? _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_AXIS_X_POS).getChannel()].value = (currentMove.x > 0 ? currentMove.x : 0.0f); _inputDevice->_axisStateMap[_inputDevice->makeInput(TOUCH_AXIS_X_NEG).getChannel()].value = (currentMove.x < 0 ? -currentMove.x : 0.0f); // Y mouse is inverted positive is pointing up the screen diff --git a/libraries/input-plugins/src/input-plugins/TouchscreenDevice.cpp b/libraries/input-plugins/src/input-plugins/TouchscreenDevice.cpp index 804ab3585b..807d7f0ef9 100644 --- a/libraries/input-plugins/src/input-plugins/TouchscreenDevice.cpp +++ b/libraries/input-plugins/src/input-plugins/TouchscreenDevice.cpp @@ -38,7 +38,6 @@ void TouchscreenDevice::pluginUpdate(float deltaTime, const controller::InputCal _inputDevice->update(deltaTime, inputCalibrationData); }); - // ####### TODO: Use AxisValue timestamp fields? float distanceScaleX, distanceScaleY; if (_touchPointCount == 1) { if (_firstTouchVec.x < _currentTouchVec.x) { From 937aa718aef5243801f0eefeb993deaacafeec73 Mon Sep 17 00:00:00 2001 From: David Back <davidback@highfidelity.io> Date: Wed, 2 Jan 2019 18:22:55 -0800 Subject: [PATCH 083/230] remove selected particle property defaults --- scripts/system/edit.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/scripts/system/edit.js b/scripts/system/edit.js index 3ff91dbda3..b9c26201b5 100644 --- a/scripts/system/edit.js +++ b/scripts/system/edit.js @@ -420,7 +420,6 @@ const DEFAULT_ENTITY_PROPERTIES = { emitOrientation: { x: 0, y: 0, z: 0, w: 1 }, emitterShouldTrail: true, particleRadius: 0.25, - radiusStart: 0, radiusFinish: 0.1, radiusSpread: 0, particleColor: { @@ -435,7 +434,6 @@ const DEFAULT_ENTITY_PROPERTIES = { }, alpha: 0, alphaStart: 1, - alphaFinish: 0, alphaSpread: 0, emitAcceleration: { x: 0, @@ -448,8 +446,6 @@ const DEFAULT_ENTITY_PROPERTIES = { z: 0 }, particleSpin: 0, - spinStart: 0, - spinFinish: 0, spinSpread: 0, rotateWithEntity: false, polarStart: 0, From 14d39d174756145377c6af6dba275b9dce40ab46 Mon Sep 17 00:00:00 2001 From: David Rowe <david@ctrlaltstudio.com> Date: Thu, 3 Jan 2019 15:53:37 +1300 Subject: [PATCH 084/230] Make mouselook yaw and pitch directly proportional to mouse movement --- .../resources/controllers/keyboardMouse.json | 25 ++++++++----------- interface/src/Application.cpp | 2 ++ interface/src/avatar/MyAvatar.cpp | 6 +++-- interface/src/avatar/MyAvatar.h | 2 ++ .../controllers/src/controllers/Actions.cpp | 17 ++++++++++--- .../controllers/src/controllers/Actions.h | 4 +++ 6 files changed, 35 insertions(+), 21 deletions(-) diff --git a/interface/resources/controllers/keyboardMouse.json b/interface/resources/controllers/keyboardMouse.json index 2ad07911c6..74c11203ef 100644 --- a/interface/resources/controllers/keyboardMouse.json +++ b/interface/resources/controllers/keyboardMouse.json @@ -123,7 +123,16 @@ { "from": { "makeAxis" : ["Keyboard.MouseMoveLeft", "Keyboard.MouseMoveRight"] }, "when": "Keyboard.RightMouseButton", - "to": "Actions.Yaw", + "to": "Actions.DeltaYaw", + "filters": + [ + { "type": "scale", "scale": 0.6 } + ] + }, + + { "from": { "makeAxis" : ["Keyboard.MouseMoveUp", "Keyboard.MouseMoveDown"] }, + "when": "Keyboard.RightMouseButton", + "to": "Actions.DeltaPitch", "filters": [ { "type": "scale", "scale": 0.6 } @@ -144,20 +153,6 @@ { "from": "Keyboard.PgDown", "to": "Actions.VERTICAL_DOWN" }, { "from": "Keyboard.PgUp", "to": "Actions.VERTICAL_UP" }, - { "from": "Keyboard.MouseMoveUp", "when": "Keyboard.RightMouseButton", "to": "Actions.PITCH_UP", - "filters": - [ - { "type": "scale", "scale": 0.6 } - ] - - }, - { "from": "Keyboard.MouseMoveDown", "when": "Keyboard.RightMouseButton", "to": "Actions.PITCH_DOWN", - "filters": - [ - { "type": "scale", "scale": 0.6 } - ] - }, - { "from": "Keyboard.TouchpadDown", "to": "Actions.PITCH_DOWN" }, { "from": "Keyboard.TouchpadUp", "to": "Actions.PITCH_UP" }, diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index a5c1ad6cf0..dfd9873352 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -5970,6 +5970,8 @@ void Application::update(float deltaTime) { if (deltaTime > FLT_EPSILON) { myAvatar->setDriveKey(MyAvatar::PITCH, -1.0f * userInputMapper->getActionState(controller::Action::PITCH)); myAvatar->setDriveKey(MyAvatar::YAW, -1.0f * userInputMapper->getActionState(controller::Action::YAW)); + myAvatar->setDriveKey(MyAvatar::DELTA_PITCH, -1.0f * userInputMapper->getActionState(controller::Action::DELTA_PITCH)); + myAvatar->setDriveKey(MyAvatar::DELTA_YAW, -1.0f * userInputMapper->getActionState(controller::Action::DELTA_YAW)); myAvatar->setDriveKey(MyAvatar::STEP_YAW, -1.0f * userInputMapper->getActionState(controller::Action::STEP_YAW)); } } diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 397817cf60..50e4ad8b9d 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -2696,9 +2696,10 @@ void MyAvatar::updateOrientation(float deltaTime) { _bodyYawDelta = 0.0f; } } - float totalBodyYaw = _bodyYawDelta * deltaTime; + // Rotate directly proportional to delta yaw and delta pitch from right-click mouse movement. + totalBodyYaw += getDriveKey(DELTA_YAW) * _yawSpeed / YAW_SPEED_DEFAULT; // Comfort Mode: If you press any of the left/right rotation drive keys or input, you'll // get an instantaneous 15 degree turn. If you keep holding the key down you'll get another @@ -2766,7 +2767,8 @@ void MyAvatar::updateOrientation(float deltaTime) { head->setBaseRoll(ROLL(euler)); } else { head->setBaseYaw(0.0f); - head->setBasePitch(getHead()->getBasePitch() + getDriveKey(PITCH) * _pitchSpeed * deltaTime); + head->setBasePitch(getHead()->getBasePitch() + getDriveKey(PITCH) * _pitchSpeed * deltaTime + + getDriveKey(DELTA_PITCH) * _pitchSpeed / PITCH_SPEED_DEFAULT); head->setBaseRoll(0.0f); } } diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index b2381366bb..134aca645c 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -264,6 +264,8 @@ public: STEP_YAW, PITCH, ZOOM, + DELTA_YAW, + DELTA_PITCH, MAX_DRIVE_KEYS }; Q_ENUM(DriveKeys) diff --git a/libraries/controllers/src/controllers/Actions.cpp b/libraries/controllers/src/controllers/Actions.cpp index 6923ef4b98..5a396231b6 100644 --- a/libraries/controllers/src/controllers/Actions.cpp +++ b/libraries/controllers/src/controllers/Actions.cpp @@ -52,11 +52,17 @@ namespace controller { * <tr><td><code>TranslateZ</code></td><td>number</td><td>number</td><td>Move the user's avatar in the direction of its * z-axis, if the camera isn't in independent or mirror modes.</td></tr> * <tr><td><code>Pitch</code></td><td>number</td><td>number</td><td>Rotate the user's avatar head and attached camera - * about its negative x-axis (i.e., positive values pitch down), if the camera isn't in HMD, independent, or mirror - * modes.</td></tr> - * <tr><td><code>Yaw</code></td><td>number</td><td>number</td><td>Rotate the user's avatar about its y-axis, if the - * camera isn't in independent or mirror modes.</td></tr> + * about its negative x-axis (i.e., positive values pitch down) at a rate proportional to the control value, if the + * camera isn't in HMD, independent, or mirror modes.</td></tr> + * <tr><td><code>Yaw</code></td><td>number</td><td>number</td><td>Rotate the user's avatar about its y-axis at a rate + * proportional to the control value, if the camera isn't in independent or mirror modes.</td></tr> * <tr><td><code>Roll</code></td><td>number</td><td>number</td><td>No action.</td></tr> + * <tr><td><code>DeltaPitch</code></td><td>number</td><td>number</td><td>Rotate the user's avatar head and attached + * camera about its negative x-axis (i.e., positive values pitch down) by an amount proportional to the control value, + * if the camera isn't in HMD, independent, or mirror modes.</td></tr> + * <tr><td><code>DeltaYaw</code></td><td>number</td><td>number</td><td>Rotate the user's avatar about its y-axis by an + * amount proportional to the control value, if the camera isn't in independent or mirror modes.</td></tr> + * <tr><td><code>DeltaRoll</code></td><td>number</td><td>number</td><td>No action.</td></tr> * <tr><td><code>StepTranslateX</code></td><td>number</td><td>number</td><td>No action.</td></tr> * <tr><td><code>StepTranslateY</code></td><td>number</td><td>number</td><td>No action.</td></tr> * <tr><td><code>StepTranslateZ</code></td><td>number</td><td>number</td><td>No action.</td></tr> @@ -318,6 +324,9 @@ namespace controller { makeAxisPair(Action::ROLL, "Roll"), makeAxisPair(Action::PITCH, "Pitch"), makeAxisPair(Action::YAW, "Yaw"), + makeAxisPair(Action::DELTA_YAW, "DeltaYaw"), + makeAxisPair(Action::DELTA_PITCH, "DeltaPitch"), + makeAxisPair(Action::DELTA_ROLL, "DeltaRoll"), makeAxisPair(Action::STEP_YAW, "StepYaw"), makeAxisPair(Action::STEP_PITCH, "StepPitch"), makeAxisPair(Action::STEP_ROLL, "StepRoll"), diff --git a/libraries/controllers/src/controllers/Actions.h b/libraries/controllers/src/controllers/Actions.h index 0c77d63863..a12a3d60a9 100644 --- a/libraries/controllers/src/controllers/Actions.h +++ b/libraries/controllers/src/controllers/Actions.h @@ -27,6 +27,10 @@ enum class Action { ROTATE_Y, YAW = ROTATE_Y, ROTATE_Z, ROLL = ROTATE_Z, + DELTA_PITCH, + DELTA_YAW, + DELTA_ROLL, + STEP_YAW, // FIXME does this have a use case? STEP_PITCH, From fdd86876cb219b9f073d4b101941c3e6c44be412 Mon Sep 17 00:00:00 2001 From: Ken Cooke <ken@highfidelity.io> Date: Thu, 3 Jan 2019 08:17:28 -0800 Subject: [PATCH 085/230] Fix the distance attenuation of stereo local injectors --- libraries/audio-client/src/AudioClient.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libraries/audio-client/src/AudioClient.cpp b/libraries/audio-client/src/AudioClient.cpp index 9bad7e2f45..36fb701168 100644 --- a/libraries/audio-client/src/AudioClient.cpp +++ b/libraries/audio-client/src/AudioClient.cpp @@ -1333,8 +1333,12 @@ bool AudioClient::mixLocalAudioInjectors(float* mixBuffer) { } else if (injector->isStereo()) { + // calculate distance, gain + glm::vec3 relativePosition = injector->getPosition() - _positionGetter(); + float distance = glm::max(glm::length(relativePosition), EPSILON); + float gain = gainForSource(distance, injector->getVolume()); + // stereo gets directly mixed into mixBuffer - float gain = injector->getVolume(); for (int i = 0; i < AudioConstants::NETWORK_FRAME_SAMPLES_STEREO; i++) { mixBuffer[i] += convertToFloat(_localScratchBuffer[i]) * gain; } From 9c96f7bd01107a13c879bd5b88d6357668f3adfe Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Thu, 3 Jan 2019 08:21:52 -0800 Subject: [PATCH 086/230] Add RalewayButton --- .../qml/hifi/avatarPackager/RalewayButton.qml | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 interface/resources/qml/hifi/avatarPackager/RalewayButton.qml diff --git a/interface/resources/qml/hifi/avatarPackager/RalewayButton.qml b/interface/resources/qml/hifi/avatarPackager/RalewayButton.qml new file mode 100644 index 0000000000..e7134b6934 --- /dev/null +++ b/interface/resources/qml/hifi/avatarPackager/RalewayButton.qml @@ -0,0 +1,68 @@ +import QtQuick 2.6 + +import "../../controlsUit" 1.0 as HifiControls +import "../../stylesUit" 1.0 + +import TabletScriptingInterface 1.0 + +RalewaySemiBold { + id: root + + text: "no text" + + signal clicked() + + color: "white" + + property var hoverColor: "#AFAFAF" + property var pressedColor: "#575757" + + MouseArea { + id: mouseArea + + anchors.fill: parent + + hoverEnabled: true + + onClicked: { + Tablet.playSound(TabletEnums.ButtonClick); + root.clicked() + } + + property string lastState: "" + + states: [ + State { + name: "" + StateChangeScript { + script: { + mouseArea.lastState = mouseArea.state + } + } + }, + State { + name: "pressed" + when: mouseArea.containsMouse && mouseArea.pressed + PropertyChanges { target: root; color: pressedColor } + StateChangeScript { + script: { + mouseArea.lastState = mouseArea.state + } + } + }, + State { + name: "hovering" + when: mouseArea.containsMouse + PropertyChanges { target: root; color: hoverColor } + StateChangeScript { + script: { + if (mouseArea.lastState == "") { + Tablet.playSound(TabletEnums.ButtonHover); + } + mouseArea.lastState = mouseArea.state + } + } + } + ] + } +} \ No newline at end of file From c5b60594b64089d780426ea27961bfe0c8376227 Mon Sep 17 00:00:00 2001 From: Clement <clement.brisset@gmail.com> Date: Fri, 7 Dec 2018 12:07:35 -0800 Subject: [PATCH 087/230] Record more detailed stats on Retransmit/duplicate --- assignment-client/src/assets/AssetServer.cpp | 4 +- libraries/networking/src/LimitedNodeList.h | 2 - libraries/networking/src/udt/Connection.cpp | 7 ++-- libraries/networking/src/udt/Connection.h | 2 +- .../networking/src/udt/ConnectionStats.cpp | 26 ++++++++++++- .../networking/src/udt/ConnectionStats.h | 38 ++++++++++++------- libraries/networking/src/udt/SendQueue.cpp | 4 +- libraries/networking/src/udt/SendQueue.h | 2 +- tools/udt-test/src/UDTTest.cpp | 2 +- 9 files changed, 60 insertions(+), 27 deletions(-) diff --git a/assignment-client/src/assets/AssetServer.cpp b/assignment-client/src/assets/AssetServer.cpp index 41aeaba468..e0772c7aea 100644 --- a/assignment-client/src/assets/AssetServer.cpp +++ b/assignment-client/src/assets/AssetServer.cpp @@ -945,14 +945,14 @@ void AssetServer::sendStatsPacket() { upstreamStats["2. Sent Packets"] = stat.second.sentPackets; upstreamStats["3. Recvd ACK"] = events[Events::ReceivedACK]; upstreamStats["4. Procd ACK"] = events[Events::ProcessedACK]; - upstreamStats["5. Retransmitted"] = events[Events::Retransmission]; + upstreamStats["5. Retransmitted"] = stat.second.retransmittedPackets; nodeStats["Upstream Stats"] = upstreamStats; QJsonObject downstreamStats; downstreamStats["1. Recvd (P/s)"] = stat.second.receiveRate; downstreamStats["2. Recvd Packets"] = stat.second.receivedPackets; downstreamStats["3. Sent ACK"] = events[Events::SentACK]; - downstreamStats["4. Duplicates"] = events[Events::Duplicate]; + downstreamStats["4. Duplicates"] = stat.second.duplicatePackets; nodeStats["Downstream Stats"] = downstreamStats; QString uuid; diff --git a/libraries/networking/src/LimitedNodeList.h b/libraries/networking/src/LimitedNodeList.h index 33a4a7e0b4..5be9ff477c 100644 --- a/libraries/networking/src/LimitedNodeList.h +++ b/libraries/networking/src/LimitedNodeList.h @@ -372,8 +372,6 @@ protected: qint64 sendPacket(std::unique_ptr<NLPacket> packet, const Node& destinationNode, const HifiSockAddr& overridenSockAddr); - qint64 writePacket(const NLPacket& packet, const HifiSockAddr& destinationSockAddr, - const QUuid& connectionSecret = QUuid()); void collectPacketStats(const NLPacket& packet); void fillPacketHeader(const NLPacket& packet, HMACAuth* hmacAuth = nullptr); diff --git a/libraries/networking/src/udt/Connection.cpp b/libraries/networking/src/udt/Connection.cpp index 4798288a18..d87f6fd35d 100644 --- a/libraries/networking/src/udt/Connection.cpp +++ b/libraries/networking/src/udt/Connection.cpp @@ -192,8 +192,9 @@ void Connection::recordSentPackets(int wireSize, int payloadSize, _congestionControl->onPacketSent(wireSize, seqNum, timePoint); } -void Connection::recordRetransmission(int wireSize, SequenceNumber seqNum, p_high_resolution_clock::time_point timePoint) { - _stats.record(ConnectionStats::Stats::Retransmission); +void Connection::recordRetransmission(int wireSize, int payloadSize, + SequenceNumber seqNum, p_high_resolution_clock::time_point timePoint) { + _stats.recordRetransmittedPackets(payloadSize, wireSize); _congestionControl->onPacketReSent(wireSize, seqNum, timePoint); } @@ -270,7 +271,7 @@ bool Connection::processReceivedSequenceNumber(SequenceNumber sequenceNumber, in sendACK(); if (wasDuplicate) { - _stats.record(ConnectionStats::Stats::Duplicate); + _stats.recordDuplicatePackets(payloadSize, packetSize); } else { _stats.recordReceivedPackets(payloadSize, packetSize); } diff --git a/libraries/networking/src/udt/Connection.h b/libraries/networking/src/udt/Connection.h index 17e8a9b1f9..5a482dd200 100644 --- a/libraries/networking/src/udt/Connection.h +++ b/libraries/networking/src/udt/Connection.h @@ -80,7 +80,7 @@ signals: private slots: void recordSentPackets(int wireSize, int payloadSize, SequenceNumber seqNum, p_high_resolution_clock::time_point timePoint); - void recordRetransmission(int wireSize, SequenceNumber sequenceNumber, p_high_resolution_clock::time_point timePoint); + void recordRetransmission(int wireSize, int payloadSize, SequenceNumber sequenceNumber, p_high_resolution_clock::time_point timePoint); void queueInactive(); void queueTimeout(); diff --git a/libraries/networking/src/udt/ConnectionStats.cpp b/libraries/networking/src/udt/ConnectionStats.cpp index e30c588dba..f0bfbde067 100644 --- a/libraries/networking/src/udt/ConnectionStats.cpp +++ b/libraries/networking/src/udt/ConnectionStats.cpp @@ -60,6 +60,28 @@ void ConnectionStats::recordReceivedPackets(int payload, int total) { _total.receivedBytes += total; } +void ConnectionStats::recordRetransmittedPackets(int payload, int total) { + ++_currentSample.retransmittedPackets; + ++_total.retransmittedPackets; + + _currentSample.retransmittedUtilBytes += payload; + _total.retransmittedUtilBytes += payload; + + _currentSample.retransmittedBytes += total; + _total.retransmittedBytes += total; +} + +void ConnectionStats::recordDuplicatePackets(int payload, int total) { + ++_currentSample.duplicatePackets; + ++_total.duplicatePackets; + + _currentSample.duplicateUtilBytes += payload; + _total.duplicateUtilBytes += payload; + + _currentSample.duplicateBytes += total; + _total.duplicateBytes += total; +} + void ConnectionStats::recordUnreliableSentPackets(int payload, int total) { ++_currentSample.sentUnreliablePackets; ++_total.sentUnreliablePackets; @@ -117,13 +139,13 @@ QDebug& operator<<(QDebug&& debug, const udt::ConnectionStats::Stats& stats) { HIFI_LOG_EVENT(SentACK) HIFI_LOG_EVENT(ReceivedACK) HIFI_LOG_EVENT(ProcessedACK) - HIFI_LOG_EVENT(Retransmission) - HIFI_LOG_EVENT(Duplicate) ; #undef HIFI_LOG_EVENT debug << " Sent packets: " << stats.sentPackets; + debug << "\n Retransmitted packets: " << stats.retransmittedPackets; debug << "\n Received packets: " << stats.receivedPackets; + debug << "\n Duplicate packets: " << stats.duplicatePackets; debug << "\n Sent util bytes: " << stats.sentUtilBytes; debug << "\n Sent bytes: " << stats.sentBytes; debug << "\n Received bytes: " << stats.receivedBytes << "\n"; diff --git a/libraries/networking/src/udt/ConnectionStats.h b/libraries/networking/src/udt/ConnectionStats.h index 0fdd1636b3..0be4778323 100644 --- a/libraries/networking/src/udt/ConnectionStats.h +++ b/libraries/networking/src/udt/ConnectionStats.h @@ -14,6 +14,7 @@ #include <chrono> #include <array> +#include <stdint.h> namespace udt { @@ -24,8 +25,6 @@ public: SentACK, ReceivedACK, ProcessedACK, - Retransmission, - Duplicate, NumEvents }; @@ -40,19 +39,27 @@ public: Events events; // packet counts and sizes - int sentPackets { 0 }; - int receivedPackets { 0 }; - int sentUtilBytes { 0 }; - int receivedUtilBytes { 0 }; - int sentBytes { 0 }; - int receivedBytes { 0 }; + uint32_t sentPackets { 0 }; + uint32_t receivedPackets { 0 }; + uint32_t retransmittedPackets { 0 }; + uint32_t duplicatePackets { 0 }; + + uint64_t sentUtilBytes { 0 }; + uint64_t receivedUtilBytes { 0 }; + uint64_t retransmittedUtilBytes { 0 }; + uint64_t duplicateUtilBytes { 0 }; + + uint64_t sentBytes { 0 }; + uint64_t receivedBytes { 0 }; + uint64_t retransmittedBytes { 0 }; + uint64_t duplicateBytes { 0 }; - int sentUnreliablePackets { 0 }; - int receivedUnreliablePackets { 0 }; - int sentUnreliableUtilBytes { 0 }; - int receivedUnreliableUtilBytes { 0 }; - int sentUnreliableBytes { 0 }; - int receivedUnreliableBytes { 0 }; + uint32_t sentUnreliablePackets { 0 }; + uint32_t receivedUnreliablePackets { 0 }; + uint64_t sentUnreliableUtilBytes { 0 }; + uint64_t receivedUnreliableUtilBytes { 0 }; + uint64_t sentUnreliableBytes { 0 }; + uint64_t receivedUnreliableBytes { 0 }; // the following stats are trailing averages in the result, not totals int sendRate { 0 }; @@ -75,6 +82,9 @@ public: void recordSentPackets(int payload, int total); void recordReceivedPackets(int payload, int total); + + void recordRetransmittedPackets(int payload, int total); + void recordDuplicatePackets(int payload, int total); void recordUnreliableSentPackets(int payload, int total); void recordUnreliableReceivedPackets(int payload, int total); diff --git a/libraries/networking/src/udt/SendQueue.cpp b/libraries/networking/src/udt/SendQueue.cpp index 3178217a36..b507f0921d 100644 --- a/libraries/networking/src/udt/SendQueue.cpp +++ b/libraries/networking/src/udt/SendQueue.cpp @@ -404,6 +404,7 @@ bool SendQueue::maybeResendPacket() { Packet::ObfuscationLevel level = (Packet::ObfuscationLevel)(entry.first < 2 ? 0 : (entry.first - 2) % 4); auto wireSize = resendPacket.getWireSize(); + auto payloadSize = resendPacket.getPayloadSize(); auto sequenceNumber = it->first; if (level != Packet::NoObfuscation) { @@ -439,7 +440,8 @@ bool SendQueue::maybeResendPacket() { sentLocker.unlock(); } - emit packetRetransmitted(wireSize, sequenceNumber, p_high_resolution_clock::now()); + emit packetRetransmitted(wireSize, payloadSize, sequenceNumber, + p_high_resolution_clock::now()); // Signal that we did resend a packet return true; diff --git a/libraries/networking/src/udt/SendQueue.h b/libraries/networking/src/udt/SendQueue.h index c1faac3b22..148d813fc1 100644 --- a/libraries/networking/src/udt/SendQueue.h +++ b/libraries/networking/src/udt/SendQueue.h @@ -78,7 +78,7 @@ public slots: signals: void packetSent(int wireSize, int payloadSize, SequenceNumber seqNum, p_high_resolution_clock::time_point timePoint); - void packetRetransmitted(int wireSize, SequenceNumber seqNum, p_high_resolution_clock::time_point timePoint); + void packetRetransmitted(int wireSize, int payloadSize, SequenceNumber seqNum, p_high_resolution_clock::time_point timePoint); void queueInactive(); diff --git a/tools/udt-test/src/UDTTest.cpp b/tools/udt-test/src/UDTTest.cpp index 46e7ed0be0..65bf2c7ebd 100644 --- a/tools/udt-test/src/UDTTest.cpp +++ b/tools/udt-test/src/UDTTest.cpp @@ -386,7 +386,7 @@ void UDTTest::sampleStats() { QString::number(stats.events[udt::ConnectionStats::Stats::ReceivedACK]).rightJustified(CLIENT_STATS_TABLE_HEADERS[++headerIndex].size()), QString::number(stats.events[udt::ConnectionStats::Stats::ProcessedACK]).rightJustified(CLIENT_STATS_TABLE_HEADERS[++headerIndex].size()), QString::number(stats.sentPackets).rightJustified(CLIENT_STATS_TABLE_HEADERS[++headerIndex].size()), - QString::number(stats.events[udt::ConnectionStats::Stats::Retransmission]).rightJustified(CLIENT_STATS_TABLE_HEADERS[++headerIndex].size()) + QString::number(stats.retransmittedPackets).rightJustified(CLIENT_STATS_TABLE_HEADERS[++headerIndex].size()) }; // output this line of values From f163bbc0d5c792576ca47d52280c20fcd728aaf1 Mon Sep 17 00:00:00 2001 From: Clement <clement.brisset@gmail.com> Date: Wed, 12 Dec 2018 12:15:44 -0800 Subject: [PATCH 088/230] Sample connections stats every seconds --- assignment-client/src/assets/AssetServer.cpp | 49 ++--- assignment-client/src/audio/AudioMixer.cpp | 2 +- assignment-client/src/avatars/AvatarMixer.cpp | 4 +- .../src/messages/MessagesMixer.cpp | 4 +- interface/resources/qml/+android/Stats.qml | 8 +- interface/resources/qml/Stats.qml | 8 +- interface/src/Application.cpp | 22 +- interface/src/ui/Stats.cpp | 52 ++--- .../networking/src/BandwidthRecorder.cpp | 190 ------------------ libraries/networking/src/BandwidthRecorder.h | 75 ------- libraries/networking/src/LimitedNodeList.cpp | 68 +++++-- libraries/networking/src/LimitedNodeList.h | 16 +- libraries/networking/src/NetworkPeer.cpp | 16 -- libraries/networking/src/NetworkPeer.h | 9 - libraries/networking/src/Node.cpp | 34 ++++ libraries/networking/src/Node.h | 13 ++ libraries/networking/src/PacketReceiver.cpp | 4 - libraries/networking/src/udt/Connection.cpp | 8 + libraries/networking/src/udt/Connection.h | 4 + .../networking/src/udt/ConnectionStats.cpp | 54 +---- .../networking/src/udt/ConnectionStats.h | 7 +- libraries/networking/src/udt/Socket.cpp | 12 +- 22 files changed, 204 insertions(+), 455 deletions(-) delete mode 100644 libraries/networking/src/BandwidthRecorder.cpp delete mode 100644 libraries/networking/src/BandwidthRecorder.h diff --git a/assignment-client/src/assets/AssetServer.cpp b/assignment-client/src/assets/AssetServer.cpp index e0772c7aea..cad6a852cb 100644 --- a/assignment-client/src/assets/AssetServer.cpp +++ b/assignment-client/src/assets/AssetServer.cpp @@ -915,59 +915,52 @@ void AssetServer::handleAssetUpload(QSharedPointer<ReceivedMessage> message, Sha void AssetServer::sendStatsPacket() { QJsonObject serverStats; - auto stats = DependencyManager::get<NodeList>()->sampleStatsForAllConnections(); + auto nodeList = DependencyManager::get<NodeList>(); + nodeList->eachNode([&](auto& node) { + auto& stats = node->getConnectionStats(); - for (const auto& stat : stats) { QJsonObject nodeStats; - auto endTimeMs = std::chrono::duration_cast<std::chrono::milliseconds>(stat.second.endTime); + auto endTimeMs = std::chrono::duration_cast<std::chrono::milliseconds>(stats.endTime); QDateTime date = QDateTime::fromMSecsSinceEpoch(endTimeMs.count()); static const float USEC_PER_SEC = 1000000.0f; static const float MEGABITS_PER_BYTE = 8.0f / 1000000.0f; // Bytes => Mbits - float elapsed = (float)(stat.second.endTime - stat.second.startTime).count() / USEC_PER_SEC; // sec + float elapsed = (float)(stats.endTime - stats.startTime).count() / USEC_PER_SEC; // sec float megabitsPerSecPerByte = MEGABITS_PER_BYTE / elapsed; // Bytes => Mb/s QJsonObject connectionStats; connectionStats["1. Last Heard"] = date.toString(); - connectionStats["2. Est. Max (P/s)"] = stat.second.estimatedBandwith; - connectionStats["3. RTT (ms)"] = stat.second.rtt; - connectionStats["4. CW (P)"] = stat.second.congestionWindowSize; - connectionStats["5. Period (us)"] = stat.second.packetSendPeriod; - connectionStats["6. Up (Mb/s)"] = stat.second.sentBytes * megabitsPerSecPerByte; - connectionStats["7. Down (Mb/s)"] = stat.second.receivedBytes * megabitsPerSecPerByte; + connectionStats["2. Est. Max (P/s)"] = stats.estimatedBandwith; + connectionStats["3. RTT (ms)"] = stats.rtt; + connectionStats["4. CW (P)"] = stats.congestionWindowSize; + connectionStats["5. Period (us)"] = stats.packetSendPeriod; + connectionStats["6. Up (Mb/s)"] = stats.sentBytes * megabitsPerSecPerByte; + connectionStats["7. Down (Mb/s)"] = stats.receivedBytes * megabitsPerSecPerByte; nodeStats["Connection Stats"] = connectionStats; using Events = udt::ConnectionStats::Stats::Event; - const auto& events = stat.second.events; + const auto& events = stats.events; QJsonObject upstreamStats; - upstreamStats["1. Sent (P/s)"] = stat.second.sendRate; - upstreamStats["2. Sent Packets"] = stat.second.sentPackets; + upstreamStats["1. Sent (P/s)"] = stats.sendRate; + upstreamStats["2. Sent Packets"] = (int)stats.sentPackets; upstreamStats["3. Recvd ACK"] = events[Events::ReceivedACK]; upstreamStats["4. Procd ACK"] = events[Events::ProcessedACK]; - upstreamStats["5. Retransmitted"] = stat.second.retransmittedPackets; + upstreamStats["5. Retransmitted"] = (int)stats.retransmittedPackets; nodeStats["Upstream Stats"] = upstreamStats; QJsonObject downstreamStats; - downstreamStats["1. Recvd (P/s)"] = stat.second.receiveRate; - downstreamStats["2. Recvd Packets"] = stat.second.receivedPackets; + downstreamStats["1. Recvd (P/s)"] = stats.receiveRate; + downstreamStats["2. Recvd Packets"] = (int)stats.receivedPackets; downstreamStats["3. Sent ACK"] = events[Events::SentACK]; - downstreamStats["4. Duplicates"] = stat.second.duplicatePackets; + downstreamStats["4. Duplicates"] = (int)stats.duplicatePackets; nodeStats["Downstream Stats"] = downstreamStats; - QString uuid; - auto nodelist = DependencyManager::get<NodeList>(); - if (stat.first == nodelist->getDomainHandler().getSockAddr()) { - uuid = uuidStringWithoutCurlyBraces(nodelist->getDomainHandler().getUUID()); - nodeStats[USERNAME_UUID_REPLACEMENT_STATS_KEY] = "DomainServer"; - } else { - auto node = nodelist->findNodeWithAddr(stat.first); - uuid = uuidStringWithoutCurlyBraces(node ? node->getUUID() : QUuid()); - nodeStats[USERNAME_UUID_REPLACEMENT_STATS_KEY] = uuid; - } + QString uuid = uuidStringWithoutCurlyBraces(node->getUUID()); + nodeStats[USERNAME_UUID_REPLACEMENT_STATS_KEY] = uuid; serverStats[uuid] = nodeStats; - } + }); // send off the stats packets ThreadedAssignment::addPacketStatsAndSendStatsPacket(serverStats); diff --git a/assignment-client/src/audio/AudioMixer.cpp b/assignment-client/src/audio/AudioMixer.cpp index 77f416f31e..004e4ad2ea 100644 --- a/assignment-client/src/audio/AudioMixer.cpp +++ b/assignment-client/src/audio/AudioMixer.cpp @@ -338,7 +338,7 @@ void AudioMixer::sendStatsPacket() { QJsonObject nodeStats; QString uuidString = uuidStringWithoutCurlyBraces(node->getUUID()); - nodeStats["outbound_kbps"] = node->getOutboundBandwidth(); + nodeStats["outbound_kbps"] = node->getOutboundKbps(); nodeStats[USERNAME_UUID_REPLACEMENT_STATS_KEY] = uuidString; nodeStats["jitter"] = clientData->getAudioStreamStats(); diff --git a/assignment-client/src/avatars/AvatarMixer.cpp b/assignment-client/src/avatars/AvatarMixer.cpp index 53fc13e5cf..5b72616e5f 100644 --- a/assignment-client/src/avatars/AvatarMixer.cpp +++ b/assignment-client/src/avatars/AvatarMixer.cpp @@ -839,8 +839,8 @@ void AvatarMixer::sendStatsPacket() { // add the key to ask the domain-server for a username replacement, if it has it avatarStats[USERNAME_UUID_REPLACEMENT_STATS_KEY] = uuidStringWithoutCurlyBraces(node->getUUID()); - avatarStats[NODE_OUTBOUND_KBPS_STAT_KEY] = node->getOutboundBandwidth(); - avatarStats[NODE_INBOUND_KBPS_STAT_KEY] = node->getInboundBandwidth(); + avatarStats[NODE_OUTBOUND_KBPS_STAT_KEY] = node->getOutboundKbps(); + avatarStats[NODE_INBOUND_KBPS_STAT_KEY] = node->getInboundKbps(); AvatarMixerClientData* clientData = static_cast<AvatarMixerClientData*>(node->getLinkedData()); if (clientData) { diff --git a/assignment-client/src/messages/MessagesMixer.cpp b/assignment-client/src/messages/MessagesMixer.cpp index c11c8f40a0..d2127835f9 100644 --- a/assignment-client/src/messages/MessagesMixer.cpp +++ b/assignment-client/src/messages/MessagesMixer.cpp @@ -75,8 +75,8 @@ void MessagesMixer::sendStatsPacket() { DependencyManager::get<NodeList>()->eachNode([&](const SharedNodePointer& node) { QJsonObject clientStats; clientStats[USERNAME_UUID_REPLACEMENT_STATS_KEY] = uuidStringWithoutCurlyBraces(node->getUUID()); - clientStats["outbound_kbps"] = node->getOutboundBandwidth(); - clientStats["inbound_kbps"] = node->getInboundBandwidth(); + clientStats["outbound_kbps"] = node->getOutboundKbps(); + clientStats["inbound_kbps"] = node->getInboundKbps(); messagesMixerObject[uuidStringWithoutCurlyBraces(node->getUUID())] = clientStats; }); diff --git a/interface/resources/qml/+android/Stats.qml b/interface/resources/qml/+android/Stats.qml index e9a2aa47eb..fe56f3797b 100644 --- a/interface/resources/qml/+android/Stats.qml +++ b/interface/resources/qml/+android/Stats.qml @@ -192,13 +192,13 @@ Item { } StatText { visible: root.expanded; - text: "Audio In Audio: " + root.audioAudioInboundPPS + " pps, " + - "Silent: " + root.audioSilentInboundPPS + " pps"; + text: "Audio Mixer Out: " + root.audioMixerOutKbps + " kbps, " + + root.audioMixerOutPps + "pps"; } StatText { visible: root.expanded; - text: "Audio Mixer Out: " + root.audioMixerOutKbps + " kbps, " + - root.audioMixerOutPps + "pps"; + text: "Audio In Audio: " + root.audioAudioInboundPPS + " pps, " + + "Silent: " + root.audioSilentInboundPPS + " pps"; } StatText { visible: root.expanded; diff --git a/interface/resources/qml/Stats.qml b/interface/resources/qml/Stats.qml index 1a29ce87df..a65170ee3b 100644 --- a/interface/resources/qml/Stats.qml +++ b/interface/resources/qml/Stats.qml @@ -210,13 +210,13 @@ Item { } StatText { visible: root.expanded; - text: "Audio In Audio: " + root.audioAudioInboundPPS + " pps, " + - "Silent: " + root.audioSilentInboundPPS + " pps"; + text: "Audio Mixer Out: " + root.audioMixerOutKbps + " kbps, " + + root.audioMixerOutPps + "pps"; } StatText { visible: root.expanded; - text: "Audio Mixer Out: " + root.audioMixerOutKbps + " kbps, " + - root.audioMixerOutPps + "pps"; + text: "Audio In Audio: " + root.audioAudioInboundPPS + " pps, " + + "Silent: " + root.audioSilentInboundPPS + " pps"; } StatText { visible: root.expanded; diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 182ff77098..e5739fd91e 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -859,7 +859,6 @@ bool setupEssentials(int& argc, char** argv, bool runningMarkerExisted) { DependencyManager::set<LODManager>(); DependencyManager::set<StandAloneJSConsole>(); DependencyManager::set<DialogsManager>(); - DependencyManager::set<BandwidthRecorder>(); DependencyManager::set<ResourceCacheSharedItems>(); DependencyManager::set<DesktopScriptingInterface>(); DependencyManager::set<EntityScriptingInterface>(true); @@ -1574,13 +1573,6 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo connect(this, SIGNAL(aboutToQuit()), this, SLOT(onAboutToQuit())); - // hook up bandwidth estimator - QSharedPointer<BandwidthRecorder> bandwidthRecorder = DependencyManager::get<BandwidthRecorder>(); - connect(nodeList.data(), &LimitedNodeList::dataSent, - bandwidthRecorder.data(), &BandwidthRecorder::updateOutboundData); - connect(nodeList.data(), &LimitedNodeList::dataReceived, - bandwidthRecorder.data(), &BandwidthRecorder::updateInboundData); - // FIXME -- I'm a little concerned about this. connect(myAvatar->getSkeletonModel().get(), &SkeletonModel::skeletonLoaded, this, &Application::checkSkeleton, Qt::QueuedConnection); @@ -2046,15 +2038,12 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo properties["deadlock_watchdog_maxElapsed"] = (int)DeadlockWatchdogThread::_maxElapsed; properties["deadlock_watchdog_maxElapsedAverage"] = (int)DeadlockWatchdogThread::_maxElapsedAverage; - auto bandwidthRecorder = DependencyManager::get<BandwidthRecorder>(); - properties["packet_rate_in"] = bandwidthRecorder->getCachedTotalAverageInputPacketsPerSecond(); - properties["packet_rate_out"] = bandwidthRecorder->getCachedTotalAverageOutputPacketsPerSecond(); - properties["kbps_in"] = bandwidthRecorder->getCachedTotalAverageInputKilobitsPerSecond(); - properties["kbps_out"] = bandwidthRecorder->getCachedTotalAverageOutputKilobitsPerSecond(); - - properties["atp_in_kbps"] = bandwidthRecorder->getAverageInputKilobitsPerSecond(NodeType::AssetServer); - auto nodeList = DependencyManager::get<NodeList>(); + properties["packet_rate_in"] = nodeList->getInboundPPS(); + properties["packet_rate_out"] = nodeList->getOutboundPPS(); + properties["kbps_in"] = nodeList->getInboundKbps(); + properties["kbps_out"] = nodeList->getOutboundKbps(); + SharedNodePointer entityServerNode = nodeList->soloNodeOfType(NodeType::EntityServer); SharedNodePointer audioMixerNode = nodeList->soloNodeOfType(NodeType::AudioMixer); SharedNodePointer avatarMixerNode = nodeList->soloNodeOfType(NodeType::AvatarMixer); @@ -2065,6 +2054,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo properties["avatar_ping"] = avatarMixerNode ? avatarMixerNode->getPingMs() : -1; properties["asset_ping"] = assetServerNode ? assetServerNode->getPingMs() : -1; properties["messages_ping"] = messagesMixerNode ? messagesMixerNode->getPingMs() : -1; + properties["atp_in_kbps"] = messagesMixerNode ? assetServerNode->getInboundKbps() : 0.0f; auto loadingRequests = ResourceCache::getLoadingRequests(); diff --git a/interface/src/ui/Stats.cpp b/interface/src/ui/Stats.cpp index 495e29f986..cb204c9772 100644 --- a/interface/src/ui/Stats.cpp +++ b/interface/src/ui/Stats.cpp @@ -30,7 +30,6 @@ #include <gl/Context.h> -#include "BandwidthRecorder.h" #include "Menu.h" #include "Util.h" #include "SequenceNumberStats.h" @@ -166,20 +165,25 @@ void Stats::updateStats(bool force) { STAT_UPDATE(collisionPicksUpdated, updatedPicks[PickQuery::Collision]); } - auto bandwidthRecorder = DependencyManager::get<BandwidthRecorder>(); - STAT_UPDATE(packetInCount, (int)bandwidthRecorder->getCachedTotalAverageInputPacketsPerSecond()); - STAT_UPDATE(packetOutCount, (int)bandwidthRecorder->getCachedTotalAverageOutputPacketsPerSecond()); - STAT_UPDATE_FLOAT(mbpsIn, (float)bandwidthRecorder->getCachedTotalAverageInputKilobitsPerSecond() / 1000.0f, 0.01f); - STAT_UPDATE_FLOAT(mbpsOut, (float)bandwidthRecorder->getCachedTotalAverageOutputKilobitsPerSecond() / 1000.0f, 0.01f); + STAT_UPDATE(packetInCount, nodeList->getInboundPPS()); + STAT_UPDATE(packetOutCount, nodeList->getOutboundPPS()); + STAT_UPDATE_FLOAT(mbpsIn, nodeList->getInboundKbps() / 1000.0f, 0.01f); + STAT_UPDATE_FLOAT(mbpsOut, nodeList->getOutboundKbps() / 1000.0f, 0.01f); - STAT_UPDATE_FLOAT(assetMbpsIn, (float)bandwidthRecorder->getAverageInputKilobitsPerSecond(NodeType::AssetServer) / 1000.0f, 0.01f); - STAT_UPDATE_FLOAT(assetMbpsOut, (float)bandwidthRecorder->getAverageOutputKilobitsPerSecond(NodeType::AssetServer) / 1000.0f, 0.01f); - - // Second column: ping SharedNodePointer audioMixerNode = nodeList->soloNodeOfType(NodeType::AudioMixer); SharedNodePointer avatarMixerNode = nodeList->soloNodeOfType(NodeType::AvatarMixer); SharedNodePointer assetServerNode = nodeList->soloNodeOfType(NodeType::AssetServer); SharedNodePointer messageMixerNode = nodeList->soloNodeOfType(NodeType::MessagesMixer); + + if (assetServerNode) { + STAT_UPDATE_FLOAT(assetMbpsIn, assetServerNode->getInboundKbps() / 1000.0f, 0.01f); + STAT_UPDATE_FLOAT(assetMbpsOut, assetServerNode->getOutboundKbps() / 1000.0f, 0.01f); + } else { + STAT_UPDATE_FLOAT(assetMbpsIn, 0.0f, 0.01f); + STAT_UPDATE_FLOAT(assetMbpsOut, 0.0f, 0.01f); + } + + // Second column: ping STAT_UPDATE(audioPing, audioMixerNode ? audioMixerNode->getPingMs() : -1); const int mixerLossRate = (int)roundf(_audioStats->data()->getMixerStream()->lossRateWindow() * 100.0f); const int clientLossRate = (int)roundf(_audioStats->data()->getClientStream()->lossRateWindow() * 100.0f); @@ -198,7 +202,7 @@ void Stats::updateStats(bool force) { // TODO: this should also support entities if (node->getType() == NodeType::EntityServer) { totalPingOctree += node->getPingMs(); - totalEntityKbps += node->getInboundBandwidth(); + totalEntityKbps += node->getInboundKbps(); octreeServerCount++; if (pingOctreeMax < node->getPingMs()) { pingOctreeMax = node->getPingMs(); @@ -218,10 +222,10 @@ void Stats::updateStats(bool force) { if (_expanded || force) { SharedNodePointer avatarMixer = nodeList->soloNodeOfType(NodeType::AvatarMixer); if (avatarMixer) { - STAT_UPDATE(avatarMixerInKbps, (int)roundf(bandwidthRecorder->getAverageInputKilobitsPerSecond(NodeType::AvatarMixer))); - STAT_UPDATE(avatarMixerInPps, (int)roundf(bandwidthRecorder->getAverageInputPacketsPerSecond(NodeType::AvatarMixer))); - STAT_UPDATE(avatarMixerOutKbps, (int)roundf(bandwidthRecorder->getAverageOutputKilobitsPerSecond(NodeType::AvatarMixer))); - STAT_UPDATE(avatarMixerOutPps, (int)roundf(bandwidthRecorder->getAverageOutputPacketsPerSecond(NodeType::AvatarMixer))); + STAT_UPDATE(avatarMixerInKbps, (int)roundf(avatarMixer->getInboundKbps())); + STAT_UPDATE(avatarMixerInPps, avatarMixer->getInboundPPS()); + STAT_UPDATE(avatarMixerOutKbps, (int)roundf(avatarMixer->getOutboundKbps())); + STAT_UPDATE(avatarMixerOutPps, avatarMixer->getOutboundPPS()); } else { STAT_UPDATE(avatarMixerInKbps, -1); STAT_UPDATE(avatarMixerInPps, -1); @@ -233,17 +237,15 @@ void Stats::updateStats(bool force) { SharedNodePointer audioMixerNode = nodeList->soloNodeOfType(NodeType::AudioMixer); auto audioClient = DependencyManager::get<AudioClient>().data(); if (audioMixerNode || force) { - STAT_UPDATE(audioMixerKbps, (int)roundf( - bandwidthRecorder->getAverageInputKilobitsPerSecond(NodeType::AudioMixer) + - bandwidthRecorder->getAverageOutputKilobitsPerSecond(NodeType::AudioMixer))); - STAT_UPDATE(audioMixerPps, (int)roundf( - bandwidthRecorder->getAverageInputPacketsPerSecond(NodeType::AudioMixer) + - bandwidthRecorder->getAverageOutputPacketsPerSecond(NodeType::AudioMixer))); + STAT_UPDATE(audioMixerKbps, (int)roundf(audioMixerNode->getInboundKbps() + + audioMixerNode->getOutboundKbps())); + STAT_UPDATE(audioMixerPps, audioMixerNode->getInboundPPS() + + audioMixerNode->getOutboundPPS()); - STAT_UPDATE(audioMixerInKbps, (int)roundf(bandwidthRecorder->getAverageInputKilobitsPerSecond(NodeType::AudioMixer))); - STAT_UPDATE(audioMixerInPps, (int)roundf(bandwidthRecorder->getAverageInputPacketsPerSecond(NodeType::AudioMixer))); - STAT_UPDATE(audioMixerOutKbps, (int)roundf(bandwidthRecorder->getAverageOutputKilobitsPerSecond(NodeType::AudioMixer))); - STAT_UPDATE(audioMixerOutPps, (int)roundf(bandwidthRecorder->getAverageOutputPacketsPerSecond(NodeType::AudioMixer))); + STAT_UPDATE(audioMixerInKbps, (int)roundf(audioMixerNode->getInboundKbps())); + STAT_UPDATE(audioMixerInPps, audioMixerNode->getInboundPPS()); + STAT_UPDATE(audioMixerOutKbps, (int)roundf(audioMixerNode->getOutboundKbps())); + STAT_UPDATE(audioMixerOutPps, audioMixerNode->getOutboundPPS()); STAT_UPDATE(audioAudioInboundPPS, (int)audioClient->getAudioInboundPPS()); STAT_UPDATE(audioSilentInboundPPS, (int)audioClient->getSilentInboundPPS()); STAT_UPDATE(audioOutboundPPS, (int)audioClient->getAudioOutboundPPS()); diff --git a/libraries/networking/src/BandwidthRecorder.cpp b/libraries/networking/src/BandwidthRecorder.cpp deleted file mode 100644 index 80276dba5a..0000000000 --- a/libraries/networking/src/BandwidthRecorder.cpp +++ /dev/null @@ -1,190 +0,0 @@ -// -// BandwidthMeter.cpp -// interface/src/ui -// -// Created by Seth Alves on 2015-1-30 -// Copyright 2015 High Fidelity, Inc. -// -// Based on code by Tobias Schwinger -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -#include "BandwidthRecorder.h" - -#include <QDateTime> - -BandwidthRecorder::Channel::Channel() { -} - -float BandwidthRecorder::Channel::getAverageInputPacketsPerSecond() const { - float averageTimeBetweenPackets = _input.getEventDeltaAverage(); - if (averageTimeBetweenPackets > 0.0f) { - return (1.0f / averageTimeBetweenPackets); - } - return 0.0f; -} - -float BandwidthRecorder::Channel::getAverageOutputPacketsPerSecond() const { - float averageTimeBetweenPackets = _output.getEventDeltaAverage(); - if (averageTimeBetweenPackets > 0.0f) { - return (1.0f / averageTimeBetweenPackets); - } - return 0.0f; -} - -float BandwidthRecorder::Channel::getAverageInputKilobitsPerSecond() const { - return (_input.getAverageSampleValuePerSecond() * (8.0f / 1000)); -} - -float BandwidthRecorder::Channel::getAverageOutputKilobitsPerSecond() const { - return (_output.getAverageSampleValuePerSecond() * (8.0f / 1000)); -} - - -void BandwidthRecorder::Channel::updateInputAverage(const float sample) { - _input.updateAverage(sample); -} - -void BandwidthRecorder::Channel::updateOutputAverage(const float sample) { - _output.updateAverage(sample); -} - -BandwidthRecorder::BandwidthRecorder() { - for (uint i=0; i<CHANNEL_COUNT; i++) { - _channels[ i ] = NULL; - } -} - -BandwidthRecorder::~BandwidthRecorder() { - for (uint i=0; i<CHANNEL_COUNT; i++) { - delete _channels[ i ]; - } -} - -void BandwidthRecorder::updateInboundData(const quint8 channelType, const int sample) { - if (! _channels[channelType]) { - _channels[channelType] = new Channel(); - } - _channels[channelType]->updateInputAverage(sample); -} - -void BandwidthRecorder::updateOutboundData(const quint8 channelType, const int sample) { - if (! _channels[channelType]) { - _channels[channelType] = new Channel(); - } - _channels[channelType]->updateOutputAverage(sample); -} - -float BandwidthRecorder::getAverageInputPacketsPerSecond(const quint8 channelType) const { - if (! _channels[channelType]) { - return 0.0f; - } - return _channels[channelType]->getAverageInputPacketsPerSecond(); -} - -float BandwidthRecorder::getAverageOutputPacketsPerSecond(const quint8 channelType) const { - if (! _channels[channelType]) { - return 0.0f; - } - return _channels[channelType]->getAverageOutputPacketsPerSecond(); -} - -float BandwidthRecorder::getAverageInputKilobitsPerSecond(const quint8 channelType) const { - if (! _channels[channelType]) { - return 0.0f; - } - return _channels[channelType]->getAverageInputKilobitsPerSecond(); -} - -float BandwidthRecorder::getAverageOutputKilobitsPerSecond(const quint8 channelType) const { - if (! _channels[channelType]) { - return 0.0f; - } - return _channels[channelType]->getAverageOutputKilobitsPerSecond(); -} - -float BandwidthRecorder::getTotalAverageInputPacketsPerSecond() const { - float result = 0.0f; - for (uint i=0; i<CHANNEL_COUNT; i++) { - if (_channels[i]) { - result += _channels[i]->getAverageInputPacketsPerSecond(); - } - } - return result; -} - -float BandwidthRecorder::getTotalAverageOutputPacketsPerSecond() const { - float result = 0.0f; - for (uint i=0; i<CHANNEL_COUNT; i++) { - if (_channels[i]) { - result += _channels[i]->getAverageOutputPacketsPerSecond(); - } - } - return result; -} - -float BandwidthRecorder::getTotalAverageInputKilobitsPerSecond() const { - float result = 0.0f; - for (uint i=0; i<CHANNEL_COUNT; i++) { - if (_channels[i]) { - result += _channels[i]->getAverageInputKilobitsPerSecond(); - } - } - return result; -} - -float BandwidthRecorder::getTotalAverageOutputKilobitsPerSecond() const { - float result = 0.0f; - for (uint i=0; i<CHANNEL_COUNT; i++) { - if (_channels[i]) { - result += _channels[i]->getAverageOutputKilobitsPerSecond(); - } - } - return result; -} - -float BandwidthRecorder::getCachedTotalAverageInputPacketsPerSecond() const { - static qint64 lastCalculated = 0; - static float cachedValue = 0.0f; - qint64 now = QDateTime::currentMSecsSinceEpoch(); - if (now - lastCalculated > 1000.0f) { - lastCalculated = now; - cachedValue = getTotalAverageInputPacketsPerSecond(); - } - return cachedValue; -} - -float BandwidthRecorder::getCachedTotalAverageOutputPacketsPerSecond() const { - static qint64 lastCalculated = 0; - static float cachedValue = 0.0f; - qint64 now = QDateTime::currentMSecsSinceEpoch(); - if (now - lastCalculated > 1000.0f) { - lastCalculated = now; - cachedValue = getTotalAverageOutputPacketsPerSecond(); - } - return cachedValue; -} - -float BandwidthRecorder::getCachedTotalAverageInputKilobitsPerSecond() const { - static qint64 lastCalculated = 0; - static float cachedValue = 0.0f; - qint64 now = QDateTime::currentMSecsSinceEpoch(); - if (now - lastCalculated > 1000.0f) { - lastCalculated = now; - cachedValue = getTotalAverageInputKilobitsPerSecond(); - } - return cachedValue; -} - -float BandwidthRecorder::getCachedTotalAverageOutputKilobitsPerSecond() const { - static qint64 lastCalculated = 0; - static float cachedValue = 0.0f; - qint64 now = QDateTime::currentMSecsSinceEpoch(); - if (now - lastCalculated > 1000.0f) { - lastCalculated = now; - cachedValue = getTotalAverageOutputKilobitsPerSecond(); - } - return cachedValue; -} diff --git a/libraries/networking/src/BandwidthRecorder.h b/libraries/networking/src/BandwidthRecorder.h deleted file mode 100644 index b1cee570f2..0000000000 --- a/libraries/networking/src/BandwidthRecorder.h +++ /dev/null @@ -1,75 +0,0 @@ -// -// BandwidthRecorder.h -// -// Created by Seth Alves on 2015-1-30 -// Copyright 2015 High Fidelity, Inc. -// -// Based on code by Tobias Schwinger -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - - -#ifndef hifi_BandwidthRecorder_h -#define hifi_BandwidthRecorder_h - -#include <QObject> -#include <QElapsedTimer> -#include "DependencyManager.h" -#include "SimpleMovingAverage.h" - - -class BandwidthRecorder : public QObject, public Dependency { - Q_OBJECT - SINGLETON_DEPENDENCY - -public: - BandwidthRecorder(); - ~BandwidthRecorder(); - - // keep track of data rate in two directions as well as units and style to use during display - class Channel { - public: - Channel(); - float getAverageInputPacketsPerSecond() const; - float getAverageOutputPacketsPerSecond() const; - float getAverageInputKilobitsPerSecond() const; - float getAverageOutputKilobitsPerSecond() const; - - void updateInputAverage(const float sample); - void updateOutputAverage(const float sample); - - private: - SimpleMovingAverage _input; - SimpleMovingAverage _output; - }; - - float getAverageInputPacketsPerSecond(const quint8 channelType) const; - float getAverageOutputPacketsPerSecond(const quint8 channelType) const; - float getAverageInputKilobitsPerSecond(const quint8 channelType) const; - float getAverageOutputKilobitsPerSecond(const quint8 channelType) const; - - float getTotalAverageInputPacketsPerSecond() const; - float getTotalAverageOutputPacketsPerSecond() const; - float getTotalAverageInputKilobitsPerSecond() const; - float getTotalAverageOutputKilobitsPerSecond() const; - - float getCachedTotalAverageInputPacketsPerSecond() const; - float getCachedTotalAverageOutputPacketsPerSecond() const; - float getCachedTotalAverageInputKilobitsPerSecond() const; - float getCachedTotalAverageOutputKilobitsPerSecond() const; - - -private: - // one for each possible Node type - static const unsigned int CHANNEL_COUNT = 256; - Channel* _channels[CHANNEL_COUNT]; - - -public slots: - void updateInboundData(const quint8 channelType, const int bytes); - void updateOutboundData(const quint8 channelType, const int bytes); -}; - -#endif diff --git a/libraries/networking/src/LimitedNodeList.cpp b/libraries/networking/src/LimitedNodeList.cpp index a1137b785a..063885e782 100644 --- a/libraries/networking/src/LimitedNodeList.cpp +++ b/libraries/networking/src/LimitedNodeList.cpp @@ -83,6 +83,11 @@ LimitedNodeList::LimitedNodeList(int socketListenPort, int dtlsListenPort) : connect(silentNodeTimer, &QTimer::timeout, this, &LimitedNodeList::removeSilentNodes); silentNodeTimer->start(NODE_SILENCE_THRESHOLD_MSECS); + const int CONNECTION_STATS_SAMPLE_INTERVAL_MSECS = 1000; + QTimer* statsSampleTimer = new QTimer(this); + connect(statsSampleTimer, &QTimer::timeout, this, &LimitedNodeList::sampleConnectionStats); + statsSampleTimer->start(CONNECTION_STATS_SAMPLE_INTERVAL_MSECS); + // check the local socket right now updateLocalSocket(); @@ -295,7 +300,6 @@ bool LimitedNodeList::packetSourceAndHashMatchAndTrackBandwidth(const udt::Packe }); if (sendingNodeType != NodeType::Unassigned) { - emit dataReceived(sendingNodeType, packet.getPayloadSize()); return true; } else { HIFI_FCDEBUG(networking(), "Replicated packet of type" << headerType @@ -303,9 +307,7 @@ bool LimitedNodeList::packetSourceAndHashMatchAndTrackBandwidth(const udt::Packe return false; } - } else { - emit dataReceived(NodeType::Unassigned, packet.getPayloadSize()); return true; } } else { @@ -328,8 +330,6 @@ bool LimitedNodeList::packetSourceAndHashMatchAndTrackBandwidth(const udt::Packe packet.getSenderSockAddr() == getDomainSockAddr() && PacketTypeEnum::getDomainSourcedPackets().contains(headerType)) { // This is a packet sourced by the domain server - - emit dataReceived(NodeType::Unassigned, packet.getPayloadSize()); return true; } @@ -367,8 +367,6 @@ bool LimitedNodeList::packetSourceAndHashMatchAndTrackBandwidth(const udt::Packe // from this sending node sourceNode->setLastHeardMicrostamp(usecTimestampNow()); - emit dataReceived(sourceNode->getType(), packet.getPayloadSize()); - return true; } else { @@ -407,9 +405,6 @@ qint64 LimitedNodeList::sendUnreliablePacket(const NLPacket& packet, const Node& return 0; } - emit dataSent(destinationNode.getType(), packet.getDataSize()); - destinationNode.recordBytesSent(packet.getDataSize()); - return sendUnreliablePacket(packet, *destinationNode.getActiveSocket(), destinationNode.getAuthenticateHash()); } @@ -430,9 +425,6 @@ qint64 LimitedNodeList::sendPacket(std::unique_ptr<NLPacket> packet, const Node& auto activeSocket = destinationNode.getActiveSocket(); if (activeSocket) { - emit dataSent(destinationNode.getType(), packet->getDataSize()); - destinationNode.recordBytesSent(packet->getDataSize()); - return sendPacket(std::move(packet), *activeSocket, destinationNode.getAuthenticateHash()); } else { qCDebug(networking) << "LimitedNodeList::sendPacket called without active socket for node" << destinationNode << "- not sending"; @@ -470,8 +462,6 @@ qint64 LimitedNodeList::sendUnreliableUnorderedPacketList(NLPacketList& packetLi bytesSent += sendPacket(packetList.takeFront<NLPacket>(), *activeSocket, connectionHash); } - - emit dataSent(destinationNode.getType(), bytesSent); return bytesSent; } else { qCDebug(networking) << "LimitedNodeList::sendPacketList called without active socket for node" << destinationNode @@ -887,10 +877,56 @@ void LimitedNodeList::removeSilentNodes() { } } +void LimitedNodeList::sampleConnectionStats() { + uint32_t packetsIn { 0 }; + uint32_t packetsOut { 0 }; + uint64_t bytesIn { 0 }; + uint64_t bytesOut { 0 }; + int elapsedSum { 0 }; + int elapsedCount { 0 }; + + auto allStats = _nodeSocket.sampleStatsForAllConnections(); + for (const auto& stats : allStats) { + auto node = findNodeWithAddr(stats.first); + if (node && node->getActiveSocket() && + *node->getActiveSocket() == stats.first) { + node->updateStats(stats.second); + } + + packetsIn += stats.second.receivedPackets; + packetsIn += stats.second.receivedUnreliablePackets; + packetsOut += stats.second.sentPackets; + packetsOut += stats.second.sentUnreliablePackets; + bytesIn += stats.second.receivedBytes; + bytesIn += stats.second.receivedUnreliableBytes; + bytesOut += stats.second.sentBytes; + bytesOut += stats.second.sentUnreliableBytes; + elapsedSum += (stats.second.endTime - stats.second.startTime).count(); + elapsedCount++; + } + + if (elapsedCount > 0) { + float elapsedAvg = (float)elapsedSum / elapsedCount; + float factor = USECS_PER_SECOND / elapsedAvg; + + float kilobitsReceived = (float)bytesIn * BITS_IN_BYTE / BYTES_PER_KILOBYTE; + float kilobitsSent = (float)bytesOut * BITS_IN_BYTE / BYTES_PER_KILOBYTE; + + _inboundPPS = packetsIn * factor; + _outboundPPS = packetsOut * factor; + _inboundKbps = kilobitsReceived * factor; + _outboundKbps = kilobitsSent * factor; + } else { + _inboundPPS = 0; + _outboundPPS = 0; + _inboundKbps = 0.0f; + _outboundKbps = 0.0f; + } +} + const uint32_t RFC_5389_MAGIC_COOKIE = 0x2112A442; const int NUM_BYTES_STUN_HEADER = 20; - void LimitedNodeList::makeSTUNRequestPacket(char* stunRequestPacket) { int packetIndex = 0; diff --git a/libraries/networking/src/LimitedNodeList.h b/libraries/networking/src/LimitedNodeList.h index 5be9ff477c..78d4d5810f 100644 --- a/libraries/networking/src/LimitedNodeList.h +++ b/libraries/networking/src/LimitedNodeList.h @@ -319,6 +319,11 @@ public: void sendFakedHandshakeRequestToNode(SharedNodePointer node); #endif + int getInboundPPS() const { return _inboundPPS; } + int getOutboundPPS() const { return _outboundPPS; } + float getInboundKbps() const { return _inboundKbps; } + float getOutboundKbps() const { return _outboundKbps; } + public slots: void reset(); void eraseAllNodes(); @@ -332,10 +337,10 @@ public slots: bool killNodeWithUUID(const QUuid& nodeUUID, ConnectionID newConnectionID = NULL_CONNECTION_ID); -signals: - void dataSent(quint8 channelType, int bytes); - void dataReceived(quint8 channelType, int bytes); +private slots: + void sampleConnectionStats(); +signals: // QUuid might be zero for non-sourced packet types. void packetVersionMismatch(PacketType type, const HifiSockAddr& senderSockAddr, const QUuid& senderUUID); @@ -442,6 +447,11 @@ private: LocalIDMapping _localIDMap; Node::LocalID _sessionLocalID { 0 }; bool _flagTimeForConnectionStep { false }; // only keep track in interface + + int _inboundPPS { 0 }; + int _outboundPPS { 0 }; + float _inboundKbps { 0.0f }; + float _outboundKbps { 0.0f }; }; #endif // hifi_LimitedNodeList_h diff --git a/libraries/networking/src/NetworkPeer.cpp b/libraries/networking/src/NetworkPeer.cpp index 35956c4789..4e0a82ba0e 100644 --- a/libraries/networking/src/NetworkPeer.cpp +++ b/libraries/networking/src/NetworkPeer.cpp @@ -228,19 +228,3 @@ QDebug operator<<(QDebug debug, const NetworkPeer &peer) { << "- local:" << peer.getLocalSocket(); return debug; } - -void NetworkPeer::recordBytesSent(int count) const { - _bandwidthRecorder.updateOutboundData(0, count); -} - -void NetworkPeer::recordBytesReceived(int count) const { - _bandwidthRecorder.updateInboundData(0, count); -} - -float NetworkPeer::getOutboundBandwidth() const { - return _bandwidthRecorder.getAverageOutputKilobitsPerSecond(0); -} - -float NetworkPeer::getInboundBandwidth() const { - return _bandwidthRecorder.getAverageInputKilobitsPerSecond(0); -} diff --git a/libraries/networking/src/NetworkPeer.h b/libraries/networking/src/NetworkPeer.h index 4688498a96..b75d2f8b86 100644 --- a/libraries/networking/src/NetworkPeer.h +++ b/libraries/networking/src/NetworkPeer.h @@ -18,7 +18,6 @@ #include <QtCore/QTimer> #include <QtCore/QUuid> -#include "BandwidthRecorder.h" #include "HifiSockAddr.h" #include "UUID.h" @@ -78,12 +77,6 @@ public: void incrementConnectionAttempts() { ++_connectionAttempts; } void resetConnectionAttempts() { _connectionAttempts = 0; } - void recordBytesSent(int count) const; - void recordBytesReceived(int count) const; - - float getOutboundBandwidth() const; // in kbps - float getInboundBandwidth() const; // in kbps - // Typically the LimitedNodeList removes nodes after they are "silent" // meaning that we have not received any packets (including simple keepalive pings) from them for a set interval. // The _isForcedNeverSilent flag tells the LimitedNodeList that a Node should never be killed by removeSilentNodes() @@ -114,8 +107,6 @@ protected: HifiSockAddr _symmetricSocket; HifiSockAddr* _activeSocket; - mutable BandwidthRecorder _bandwidthRecorder; - quint64 _wakeTimestamp; std::atomic_ullong _lastHeardMicrostamp; diff --git a/libraries/networking/src/Node.cpp b/libraries/networking/src/Node.cpp index 9421e1da44..a2bd60914a 100644 --- a/libraries/networking/src/Node.cpp +++ b/libraries/networking/src/Node.cpp @@ -219,3 +219,37 @@ void Node::setConnectionSecret(const QUuid& connectionSecret) { _connectionSecret = connectionSecret; _authenticateHash->setKey(_connectionSecret); } + +void Node::updateStats(Stats stats) { + _stats = stats; +} + +const Node::Stats& Node::getConnectionStats() const { + return _stats; +} + +float Node::getInboundKbps() const { + float bitsReceived = (_stats.receivedBytes + _stats.receivedUnreliableBytes) * BITS_IN_BYTE; + auto elapsed = _stats.endTime - _stats.startTime; + auto bps = (bitsReceived * USECS_PER_SECOND) / elapsed.count(); + return bps / BYTES_PER_KILOBYTE; +} + +float Node::getOutboundKbps() const { + float bitsSent = (_stats.sentBytes + _stats.sentUnreliableBytes) * BITS_IN_BYTE; + auto elapsed = _stats.endTime - _stats.startTime; + auto bps = (bitsSent * USECS_PER_SECOND) / elapsed.count(); + return bps / BYTES_PER_KILOBYTE; +} + +int Node::getInboundPPS() const { + float packetsReceived = _stats.receivedPackets + _stats.receivedUnreliablePackets; + auto elapsed = _stats.endTime - _stats.startTime; + return (packetsReceived * USECS_PER_SECOND) / elapsed.count(); +} + +int Node::getOutboundPPS() const { + float packetsSent = _stats.sentPackets + _stats.sentUnreliablePackets; + auto elapsed = _stats.endTime - _stats.startTime; + return (packetsSent * USECS_PER_SECOND) / elapsed.count(); +} diff --git a/libraries/networking/src/Node.h b/libraries/networking/src/Node.h index 6c5a56c94e..fe3177d785 100644 --- a/libraries/networking/src/Node.h +++ b/libraries/networking/src/Node.h @@ -35,10 +35,13 @@ #include "MovingPercentile.h" #include "NodePermissions.h" #include "HMACAuth.h" +#include "udt/ConnectionStats.h" +#include "NumericalConstants.h" class Node : public NetworkPeer { Q_OBJECT public: + using Stats = udt::ConnectionStats::Stats; Node(const QUuid& uuid, NodeType_t type, const HifiSockAddr& publicSocket, const HifiSockAddr& localSocket, @@ -94,6 +97,14 @@ public: friend QDataStream& operator<<(QDataStream& out, const Node& node); friend QDataStream& operator>>(QDataStream& in, Node& node); + void updateStats(Stats stats); + const Stats& getConnectionStats() const; + + int getInboundPPS() const; + int getOutboundPPS() const; + float getInboundKbps() const; + float getOutboundKbps() const; + private: // privatize copy and assignment operator to disallow Node copying Node(const Node &otherNode); @@ -115,6 +126,8 @@ private: IgnoredNodeIDs _ignoredNodeIDs; mutable QReadWriteLock _ignoredNodeIDSetLock; std::vector<QString> _replicatedUsernames { }; + + Stats _stats; }; Q_DECLARE_METATYPE(Node*) diff --git a/libraries/networking/src/PacketReceiver.cpp b/libraries/networking/src/PacketReceiver.cpp index fe2a273d61..83be481914 100644 --- a/libraries/networking/src/PacketReceiver.cpp +++ b/libraries/networking/src/PacketReceiver.cpp @@ -284,10 +284,6 @@ void PacketReceiver::handleVerifiedMessage(QSharedPointer<ReceivedMessage> recei connectionType = _directlyConnectedObjects.contains(listener.object) ? Qt::DirectConnection : Qt::AutoConnection; } - if (matchingNode) { - matchingNode->recordBytesReceived(receivedMessage->getSize()); - } - QMetaMethod metaMethod = listener.method; static const QByteArray QSHAREDPOINTER_NODE_NORMALIZED = QMetaObject::normalizedType("QSharedPointer<Node>"); diff --git a/libraries/networking/src/udt/Connection.cpp b/libraries/networking/src/udt/Connection.cpp index d87f6fd35d..317c5e6255 100644 --- a/libraries/networking/src/udt/Connection.cpp +++ b/libraries/networking/src/udt/Connection.cpp @@ -199,6 +199,14 @@ void Connection::recordRetransmission(int wireSize, int payloadSize, _congestionControl->onPacketReSent(wireSize, seqNum, timePoint); } +void Connection::recordSentUnreliablePackets(int wireSize, int payloadSize) { + _stats.recordUnreliableSentPackets(payloadSize, wireSize); +} + +void Connection::recordRecievedUnreliablePackets(int wireSize, int payloadSize) { + _stats.recordUnreliableReceivedPackets(payloadSize, wireSize); +} + void Connection::sendACK() { SequenceNumber nextACKNumber = nextACK(); diff --git a/libraries/networking/src/udt/Connection.h b/libraries/networking/src/udt/Connection.h index 5a482dd200..34b01c3394 100644 --- a/libraries/networking/src/udt/Connection.h +++ b/libraries/networking/src/udt/Connection.h @@ -73,6 +73,9 @@ public: void setMaxBandwidth(int maxBandwidth); void sendHandshakeRequest(); + + void recordSentUnreliablePackets(int wireSize, int payloadSize); + void recordRecievedUnreliablePackets(int wireSize, int payloadSize); signals: void packetSent(); @@ -81,6 +84,7 @@ signals: private slots: void recordSentPackets(int wireSize, int payloadSize, SequenceNumber seqNum, p_high_resolution_clock::time_point timePoint); void recordRetransmission(int wireSize, int payloadSize, SequenceNumber sequenceNumber, p_high_resolution_clock::time_point timePoint); + void queueInactive(); void queueTimeout(); diff --git a/libraries/networking/src/udt/ConnectionStats.cpp b/libraries/networking/src/udt/ConnectionStats.cpp index f0bfbde067..4f0722edd3 100644 --- a/libraries/networking/src/udt/ConnectionStats.cpp +++ b/libraries/networking/src/udt/ConnectionStats.cpp @@ -19,7 +19,6 @@ using namespace std::chrono; ConnectionStats::ConnectionStats() { auto now = duration_cast<microseconds>(system_clock::now().time_since_epoch()); _currentSample.startTime = now; - _total.startTime = now; } ConnectionStats::Stats ConnectionStats::sample() { @@ -35,101 +34,50 @@ ConnectionStats::Stats ConnectionStats::sample() { void ConnectionStats::record(Stats::Event event) { ++_currentSample.events[(int) event]; - ++_total.events[(int) event]; } void ConnectionStats::recordSentPackets(int payload, int total) { ++_currentSample.sentPackets; - ++_total.sentPackets; - _currentSample.sentUtilBytes += payload; - _total.sentUtilBytes += payload; - _currentSample.sentBytes += total; - _total.sentBytes += total; } void ConnectionStats::recordReceivedPackets(int payload, int total) { ++_currentSample.receivedPackets; - ++_total.receivedPackets; - _currentSample.receivedUtilBytes += payload; - _total.receivedUtilBytes += payload; - _currentSample.receivedBytes += total; - _total.receivedBytes += total; } void ConnectionStats::recordRetransmittedPackets(int payload, int total) { ++_currentSample.retransmittedPackets; - ++_total.retransmittedPackets; - _currentSample.retransmittedUtilBytes += payload; - _total.retransmittedUtilBytes += payload; - _currentSample.retransmittedBytes += total; - _total.retransmittedBytes += total; } void ConnectionStats::recordDuplicatePackets(int payload, int total) { ++_currentSample.duplicatePackets; - ++_total.duplicatePackets; - _currentSample.duplicateUtilBytes += payload; - _total.duplicateUtilBytes += payload; - _currentSample.duplicateBytes += total; - _total.duplicateBytes += total; } void ConnectionStats::recordUnreliableSentPackets(int payload, int total) { ++_currentSample.sentUnreliablePackets; - ++_total.sentUnreliablePackets; - _currentSample.sentUnreliableUtilBytes += payload; - _total.sentUnreliableUtilBytes += payload; - _currentSample.sentUnreliableBytes += total; - _total.sentUnreliableBytes += total; } void ConnectionStats::recordUnreliableReceivedPackets(int payload, int total) { ++_currentSample.receivedUnreliablePackets; - ++_total.receivedUnreliablePackets; - _currentSample.receivedUnreliableUtilBytes += payload; - _total.receivedUnreliableUtilBytes += payload; - - _currentSample.sentUnreliableBytes += total; - _total.receivedUnreliableBytes += total; -} - -static const double EWMA_CURRENT_SAMPLE_WEIGHT = 0.125; -static const double EWMA_PREVIOUS_SAMPLES_WEIGHT = 1.0 - EWMA_CURRENT_SAMPLE_WEIGHT; - -void ConnectionStats::recordSendRate(int sample) { - _currentSample.sendRate = sample; - _total.sendRate = (int)((_total.sendRate * EWMA_PREVIOUS_SAMPLES_WEIGHT) + (sample * EWMA_CURRENT_SAMPLE_WEIGHT)); -} - -void ConnectionStats::recordReceiveRate(int sample) { - _currentSample.receiveRate = sample; - _total.receiveRate = (int)((_total.receiveRate * EWMA_PREVIOUS_SAMPLES_WEIGHT) + (sample * EWMA_CURRENT_SAMPLE_WEIGHT)); -} - -void ConnectionStats::recordRTT(int sample) { - _currentSample.rtt = sample; - _total.rtt = (int)((_total.rtt * EWMA_PREVIOUS_SAMPLES_WEIGHT) + (sample * EWMA_CURRENT_SAMPLE_WEIGHT)); + _currentSample.receivedUnreliableBytes += total; } void ConnectionStats::recordCongestionWindowSize(int sample) { _currentSample.congestionWindowSize = sample; - _total.congestionWindowSize = (int)((_total.congestionWindowSize * EWMA_PREVIOUS_SAMPLES_WEIGHT) + (sample * EWMA_CURRENT_SAMPLE_WEIGHT)); } void ConnectionStats::recordPacketSendPeriod(int sample) { _currentSample.packetSendPeriod = sample; - _total.packetSendPeriod = (int)((_total.packetSendPeriod * EWMA_PREVIOUS_SAMPLES_WEIGHT) + (sample * EWMA_CURRENT_SAMPLE_WEIGHT)); } QDebug& operator<<(QDebug&& debug, const udt::ConnectionStats::Stats& stats) { diff --git a/libraries/networking/src/udt/ConnectionStats.h b/libraries/networking/src/udt/ConnectionStats.h index 0be4778323..b7350d4341 100644 --- a/libraries/networking/src/udt/ConnectionStats.h +++ b/libraries/networking/src/udt/ConnectionStats.h @@ -76,7 +76,6 @@ public: ConnectionStats(); Stats sample(); - Stats getTotalStats(); void record(Stats::Event event); @@ -88,16 +87,12 @@ public: void recordUnreliableSentPackets(int payload, int total); void recordUnreliableReceivedPackets(int payload, int total); - - void recordSendRate(int sample); - void recordReceiveRate(int sample); - void recordRTT(int sample); + void recordCongestionWindowSize(int sample); void recordPacketSendPeriod(int sample); private: Stats _currentSample; - Stats _total; }; } diff --git a/libraries/networking/src/udt/Socket.cpp b/libraries/networking/src/udt/Socket.cpp index 25e6fae023..d01fe71486 100644 --- a/libraries/networking/src/udt/Socket.cpp +++ b/libraries/networking/src/udt/Socket.cpp @@ -129,6 +129,12 @@ qint64 Socket::writePacket(const Packet& packet, const HifiSockAddr& sockAddr) { sequenceNumber = ++_unreliableSequenceNumbers[sockAddr]; } + auto connection = findOrCreateConnection(sockAddr, true); + if (connection) { + connection->recordSentUnreliablePackets(packet.getWireSize(), + packet.getPayloadSize()); + } + // write the correct sequence number to the Packet here packet.writeSequenceNumber(sequenceNumber); @@ -392,9 +398,10 @@ void Socket::readPendingDatagrams() { // call our verification operator to see if this packet is verified if (!_packetFilterOperator || _packetFilterOperator(*packet)) { + auto connection = findOrCreateConnection(senderSockAddr, true); + if (packet->isReliable()) { // if this was a reliable packet then signal the matching connection with the sequence number - auto connection = findOrCreateConnection(senderSockAddr, true); if (!connection || !connection->processReceivedSequenceNumber(packet->getSequenceNumber(), packet->getDataSize(), @@ -406,6 +413,9 @@ void Socket::readPendingDatagrams() { #endif continue; } + } else if (connection) { + connection->recordRecievedUnreliablePackets(packet->getWireSize(), + packet->getPayloadSize()); } if (packet->isPartOfMessage()) { From 9475a31f1bf2e8fd3a3f0b00bdb125d57092640c Mon Sep 17 00:00:00 2001 From: Clement <clement.brisset@gmail.com> Date: Thu, 13 Dec 2018 14:17:38 -0800 Subject: [PATCH 089/230] Record ACK data in stats --- libraries/networking/src/udt/Connection.cpp | 4 ++-- libraries/networking/src/udt/ConnectionStats.cpp | 10 ++++++++++ libraries/networking/src/udt/ConnectionStats.h | 5 ++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/libraries/networking/src/udt/Connection.cpp b/libraries/networking/src/udt/Connection.cpp index 317c5e6255..2d5ac0218f 100644 --- a/libraries/networking/src/udt/Connection.cpp +++ b/libraries/networking/src/udt/Connection.cpp @@ -221,7 +221,7 @@ void Connection::sendACK() { // have the socket send off our packet _parentSocket->writeBasePacket(*_ackPacket, _destination); - _stats.record(ConnectionStats::Stats::SentACK); + _stats.recordSentACK(_ackPacket->getWireSize()); } SequenceNumber Connection::nextACK() const { @@ -327,7 +327,7 @@ void Connection::processACK(ControlPacketPointer controlPacket) { controlPacket->readPrimitive(&ack); // update the total count of received ACKs - _stats.record(ConnectionStats::Stats::ReceivedACK); + _stats.recordReceivedACK(controlPacket->getWireSize()); // validate that this isn't a BS ACK if (ack > getSendQueue().getCurrentSequenceNumber()) { diff --git a/libraries/networking/src/udt/ConnectionStats.cpp b/libraries/networking/src/udt/ConnectionStats.cpp index 4f0722edd3..188cc3114d 100644 --- a/libraries/networking/src/udt/ConnectionStats.cpp +++ b/libraries/networking/src/udt/ConnectionStats.cpp @@ -36,6 +36,16 @@ void ConnectionStats::record(Stats::Event event) { ++_currentSample.events[(int) event]; } +void ConnectionStats::recordSentACK(int size) { + record(Stats::SentACK); + recordSentPackets(0, size); +} + +void ConnectionStats::recordReceivedACK(int size) { + record(Stats::ReceivedACK); + recordReceivedPackets(0, size); +} + void ConnectionStats::recordSentPackets(int payload, int total) { ++_currentSample.sentPackets; _currentSample.sentUtilBytes += payload; diff --git a/libraries/networking/src/udt/ConnectionStats.h b/libraries/networking/src/udt/ConnectionStats.h index b7350d4341..8ff0ec90fd 100644 --- a/libraries/networking/src/udt/ConnectionStats.h +++ b/libraries/networking/src/udt/ConnectionStats.h @@ -78,7 +78,10 @@ public: Stats sample(); void record(Stats::Event event); - + + void recordSentACK(int size); + void recordReceivedACK(int size); + void recordSentPackets(int payload, int total); void recordReceivedPackets(int payload, int total); From a0ede77e4f7ee9a5d91bb2f48e51d4f202b0a8eb Mon Sep 17 00:00:00 2001 From: Clement <clement.brisset@gmail.com> Date: Thu, 3 Jan 2019 10:04:27 -0800 Subject: [PATCH 090/230] Fix typo --- libraries/networking/src/udt/Connection.cpp | 2 +- libraries/networking/src/udt/Connection.h | 2 +- libraries/networking/src/udt/Socket.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/networking/src/udt/Connection.cpp b/libraries/networking/src/udt/Connection.cpp index 2d5ac0218f..418dc8f417 100644 --- a/libraries/networking/src/udt/Connection.cpp +++ b/libraries/networking/src/udt/Connection.cpp @@ -203,7 +203,7 @@ void Connection::recordSentUnreliablePackets(int wireSize, int payloadSize) { _stats.recordUnreliableSentPackets(payloadSize, wireSize); } -void Connection::recordRecievedUnreliablePackets(int wireSize, int payloadSize) { +void Connection::recordReceivedUnreliablePackets(int wireSize, int payloadSize) { _stats.recordUnreliableReceivedPackets(payloadSize, wireSize); } diff --git a/libraries/networking/src/udt/Connection.h b/libraries/networking/src/udt/Connection.h index 34b01c3394..938ec36860 100644 --- a/libraries/networking/src/udt/Connection.h +++ b/libraries/networking/src/udt/Connection.h @@ -75,7 +75,7 @@ public: void sendHandshakeRequest(); void recordSentUnreliablePackets(int wireSize, int payloadSize); - void recordRecievedUnreliablePackets(int wireSize, int payloadSize); + void recordReceivedUnreliablePackets(int wireSize, int payloadSize); signals: void packetSent(); diff --git a/libraries/networking/src/udt/Socket.cpp b/libraries/networking/src/udt/Socket.cpp index d01fe71486..358acce694 100644 --- a/libraries/networking/src/udt/Socket.cpp +++ b/libraries/networking/src/udt/Socket.cpp @@ -414,7 +414,7 @@ void Socket::readPendingDatagrams() { continue; } } else if (connection) { - connection->recordRecievedUnreliablePackets(packet->getWireSize(), + connection->recordReceivedUnreliablePackets(packet->getWireSize(), packet->getPayloadSize()); } From c13badcbc8f32eec08fb5456187c44e58a215933 Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Thu, 3 Jan 2019 10:20:13 -0800 Subject: [PATCH 091/230] Fix project rename focus and create project not initializing --- .../hifi/avatarPackager/AvatarPackagerApp.qml | 3 +- .../avatarPackager/AvatarPackagerHeader.qml | 8 +-- .../qml/hifi/avatarPackager/ClickableArea.qml | 63 +++++++++++++++++++ .../avatarPackager/CreateAvatarProject.qml | 1 + .../qml/hifi/avatarPackager/InfoBox.qml | 6 ++ .../qml/hifi/avatarPackager/RalewayButton.qml | 56 +++-------------- 6 files changed, 80 insertions(+), 57 deletions(-) create mode 100644 interface/resources/qml/hifi/avatarPackager/ClickableArea.qml diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml index 0a678dafee..6e2e352b51 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml @@ -22,6 +22,7 @@ Item { MouseArea { anchors.fill: parent + onClicked: { unfocusser.forceActiveFocus(); } @@ -272,8 +273,6 @@ Item { color: 'white' - visible: AvatarPackagerCore.currentAvatarProject !== null - anchors.top: parent.top anchors.left: parent.left anchors.topMargin: 16 diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml index d0b06ea15f..b40e9cc264 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml @@ -92,8 +92,7 @@ ShadowRectangle { font.pixelSize: 28 z: 200 onFocusChanged: { - if (titleArea.state === "renaming" && !titleArea.focus) { - //titleArea.state = ""; + if (titleArea.state === "renaming" && !focus) { accepted(); } } @@ -104,11 +103,7 @@ ShadowRectangle { } onAccepted: { if (acceptableInput) { - //AvatarPackagerCore.renameProject(text); - console.warn(text); AvatarPackagerCore.currentAvatarProject.name = text; - console.warn(AvatarPackagerCore.currentAvatarProject.name); - } titleArea.state = ""; } @@ -127,7 +122,6 @@ ShadowRectangle { anchors.verticalCenter: docs.verticalCenter text: qsTr("Docs") - color: "white" onClicked: { docsButtonClicked(); diff --git a/interface/resources/qml/hifi/avatarPackager/ClickableArea.qml b/interface/resources/qml/hifi/avatarPackager/ClickableArea.qml new file mode 100644 index 0000000000..f49c98bc6a --- /dev/null +++ b/interface/resources/qml/hifi/avatarPackager/ClickableArea.qml @@ -0,0 +1,63 @@ +import QtQuick 2.6 + +import "../../controlsUit" 1.0 as HifiControls +import "../../stylesUit" 1.0 + +import TabletScriptingInterface 1.0 + +Item { + id: root + + readonly property bool pressed: mouseArea.state == "pressed" + readonly property bool hovered: mouseArea.state == "hovering" + + signal clicked() + + MouseArea { + id: mouseArea + + anchors.fill: parent + + hoverEnabled: true + + onClicked: { + root.focus = true + Tablet.playSound(TabletEnums.ButtonClick); + root.clicked() + } + + property string lastState: "" + + states: [ + State { + name: "" + StateChangeScript { + script: { + mouseArea.lastState = mouseArea.state + } + } + }, + State { + name: "pressed" + when: mouseArea.containsMouse && mouseArea.pressed + StateChangeScript { + script: { + mouseArea.lastState = mouseArea.state + } + } + }, + State { + name: "hovering" + when: mouseArea.containsMouse + StateChangeScript { + script: { + if (mouseArea.lastState == "") { + Tablet.playSound(TabletEnums.ButtonHover); + } + mouseArea.lastState = mouseArea.state + } + } + } + ] + } +} \ No newline at end of file diff --git a/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml index d6f530a196..b72cbd42df 100644 --- a/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml @@ -28,6 +28,7 @@ Item { Window.alert('Failed to create project'); return; } + avatarProject.reset(); avatarPackager.state = AvatarPackagerState.project; } } diff --git a/interface/resources/qml/hifi/avatarPackager/InfoBox.qml b/interface/resources/qml/hifi/avatarPackager/InfoBox.qml index 89f5d5c7f8..4c7718c2ac 100644 --- a/interface/resources/qml/hifi/avatarPackager/InfoBox.qml +++ b/interface/resources/qml/hifi/avatarPackager/InfoBox.qml @@ -17,6 +17,12 @@ Rectangle { property bool closeOnClickOutside: false; + onVisibleChanged: { + if (visible) { + focus = true; + } + } + function open() { visible = true; } diff --git a/interface/resources/qml/hifi/avatarPackager/RalewayButton.qml b/interface/resources/qml/hifi/avatarPackager/RalewayButton.qml index e7134b6934..edbc31b24f 100644 --- a/interface/resources/qml/hifi/avatarPackager/RalewayButton.qml +++ b/interface/resources/qml/hifi/avatarPackager/RalewayButton.qml @@ -8,61 +8,21 @@ import TabletScriptingInterface 1.0 RalewaySemiBold { id: root - text: "no text" - - signal clicked() - - color: "white" + anchors.fill: textItem + property var idleColor: "white" property var hoverColor: "#AFAFAF" property var pressedColor: "#575757" - MouseArea { - id: mouseArea + color: clickable.hovered ? root.hoverColor : (clickable.pressed ? root.pressedColor : root.idleColor); - anchors.fill: parent + signal clicked() - hoverEnabled: true + ClickableArea { + id: clickable - onClicked: { - Tablet.playSound(TabletEnums.ButtonClick); - root.clicked() - } + anchors.fill: root - property string lastState: "" - - states: [ - State { - name: "" - StateChangeScript { - script: { - mouseArea.lastState = mouseArea.state - } - } - }, - State { - name: "pressed" - when: mouseArea.containsMouse && mouseArea.pressed - PropertyChanges { target: root; color: pressedColor } - StateChangeScript { - script: { - mouseArea.lastState = mouseArea.state - } - } - }, - State { - name: "hovering" - when: mouseArea.containsMouse - PropertyChanges { target: root; color: hoverColor } - StateChangeScript { - script: { - if (mouseArea.lastState == "") { - Tablet.playSound(TabletEnums.ButtonHover); - } - mouseArea.lastState = mouseArea.state - } - } - } - ] + onClicked: root.clicked() } } \ No newline at end of file From 443b54d931a1850ae1714a68ed267ba03138fcae Mon Sep 17 00:00:00 2001 From: Roxanne Skelly <roxanne@highfidelity.io> Date: Thu, 3 Jan 2019 11:25:39 -0800 Subject: [PATCH 092/230] comment and naming cleanup --- .../src/avatars/AvatarMixerClientData.cpp | 49 ++++++++++--------- .../src/avatars/AvatarMixerClientData.h | 14 +++--- .../src/avatars/AvatarMixerSlave.cpp | 10 +++- libraries/avatars/src/AvatarHashMap.cpp | 8 +-- 4 files changed, 47 insertions(+), 34 deletions(-) diff --git a/assignment-client/src/avatars/AvatarMixerClientData.cpp b/assignment-client/src/avatars/AvatarMixerClientData.cpp index 37f71103d2..1da592b640 100644 --- a/assignment-client/src/avatars/AvatarMixerClientData.cpp +++ b/assignment-client/src/avatars/AvatarMixerClientData.cpp @@ -184,42 +184,47 @@ void AvatarMixerClientData::processSetTraitsMessage(ReceivedMessage& message, } void AvatarMixerClientData::processBulkAvatarTraitsAckMessage(ReceivedMessage& message) { + // Avatar Traits flow control marks each outgoing avatar traits packet with a + // sequence number. The mixer caches the traits sent in the traits packet. + // Until an ack with the sequence number comes back, all updates to _traits + // in that packet_ are ignored. Updates to traits not in that packet will + // be sent. + // Look up the avatar/trait data associated with this ack and update the 'last ack' list // with it. AvatarTraits::TraitMessageSequence seq; message.readPrimitive(&seq); - auto sentAvatarTraitVersions = _pendingTraitVersions.find(seq); - if (sentAvatarTraitVersions != _pendingTraitVersions.end()) { - // Note, this is not a simple move of the pending traits - // to the acked traits. Instead, it's a copy where existing - // trait versions in the acked hash are retained for traits not - // included in the pending hash - for (auto& nodeTraitVersions : sentAvatarTraitVersions->second) { - auto& nodeId = nodeTraitVersions.first; - auto& versions = nodeTraitVersions.second; - auto simpleReceivedIt = versions.simpleCBegin(); - while (simpleReceivedIt != versions.simpleCEnd()) { - auto traitType = static_cast<AvatarTraits::TraitType>(std::distance(versions.simpleCBegin(), simpleReceivedIt)); - _ackedTraitVersions[nodeId][traitType] = *simpleReceivedIt; + auto sentAvatarTraitVersions = _perNodePendingTraitVersions.find(seq); + if (sentAvatarTraitVersions != _perNodePendingTraitVersions.end()) { + for (auto& perNodeTraitVersions : sentAvatarTraitVersions->second) { + auto& nodeId = perNodeTraitVersions.first; + auto& traitVersions = perNodeTraitVersions.second; + // For each trait that was sent in the traits packet, + // update the 'acked' trait version. Traits not + // sent in the traits packet keep their version. + + // process simple traits + auto simpleReceivedIt = traitVersions.simpleCBegin(); + while (simpleReceivedIt != traitVersions.simpleCEnd()) { + auto traitType = static_cast<AvatarTraits::TraitType>(std::distance(traitVersions.simpleCBegin(), simpleReceivedIt)); + _perNodeAckedTraitVersions[nodeId][traitType] = *simpleReceivedIt; simpleReceivedIt++; } - // enumerate the sent instanced trait versions - auto instancedSentIt = versions.instancedCBegin(); - while (instancedSentIt != versions.instancedCEnd()) { + // process instanced traits + auto instancedSentIt = traitVersions.instancedCBegin(); + while (instancedSentIt != traitVersions.instancedCEnd()) { auto traitType = instancedSentIt->traitType; - // get or create the sent trait versions for this trait type - // enumerate each sent instance for (auto& sentInstance : instancedSentIt->instances) { auto instanceID = sentInstance.id; const auto sentVersion = sentInstance.value; - _ackedTraitVersions[nodeId].instanceInsert(traitType, instanceID, sentVersion); + _perNodeAckedTraitVersions[nodeId].instanceInsert(traitType, instanceID, sentVersion); } instancedSentIt++; } } - _pendingTraitVersions.erase(sentAvatarTraitVersions); + _perNodePendingTraitVersions.erase(sentAvatarTraitVersions); } else { // This can happen either the BulkAvatarTraits was sent with no simple traits, // or if the avatar mixer restarts while there are pending @@ -334,7 +339,7 @@ void AvatarMixerClientData::removeFromRadiusIgnoringSet(const QUuid& other) { void AvatarMixerClientData::resetSentTraitData(Node::LocalID nodeLocalID) { _lastSentTraitsTimestamps[nodeLocalID] = TraitsCheckTimestamp(); - _sentTraitVersions[nodeLocalID].reset(); + _perNodeSentTraitVersions[nodeLocalID].reset(); } void AvatarMixerClientData::readViewFrustumPacket(const QByteArray& message) { @@ -390,5 +395,5 @@ void AvatarMixerClientData::cleanupKilledNode(const QUuid&, Node::LocalID nodeLo removeLastBroadcastSequenceNumber(nodeLocalID); removeLastBroadcastTime(nodeLocalID); _lastSentTraitsTimestamps.erase(nodeLocalID); - _sentTraitVersions.erase(nodeLocalID); + _perNodeSentTraitVersions.erase(nodeLocalID); } diff --git a/assignment-client/src/avatars/AvatarMixerClientData.h b/assignment-client/src/avatars/AvatarMixerClientData.h index f26ce8504b..16054e3458 100644 --- a/assignment-client/src/avatars/AvatarMixerClientData.h +++ b/assignment-client/src/avatars/AvatarMixerClientData.h @@ -42,7 +42,7 @@ public: AvatarMixerClientData(const QUuid& nodeID, Node::LocalID nodeLocalID); virtual ~AvatarMixerClientData() {} using HRCTime = p_high_resolution_clock::time_point; - using NodeTraitVersions = std::unordered_map<Node::LocalID, AvatarTraits::TraitVersions>; + using PerNodeTraitVersions = std::unordered_map<Node::LocalID, AvatarTraits::TraitVersions>; int parseData(ReceivedMessage& message) override; AvatarData& getAvatar() { return *_avatar; } @@ -143,11 +143,11 @@ public: AvatarTraits::TraitMessageSequence getTraitsMessageSequence() const { return _currentTraitsMessageSequence; } AvatarTraits::TraitMessageSequence nextTraitsMessageSequence() { return ++_currentTraitsMessageSequence; } AvatarTraits::TraitVersions& getPendingTraitVersions(AvatarTraits::TraitMessageSequence seq, Node::LocalID otherId) { - return _pendingTraitVersions[seq][otherId]; + return _perNodePendingTraitVersions[seq][otherId]; } - AvatarTraits::TraitVersions& getLastSentTraitVersions(Node::LocalID otherAvatar) { return _sentTraitVersions[otherAvatar]; } - AvatarTraits::TraitVersions& getLastAckedTraitVersions(Node::LocalID otherAvatar) { return _ackedTraitVersions[otherAvatar]; } + AvatarTraits::TraitVersions& getLastSentTraitVersions(Node::LocalID otherAvatar) { return _perNodeSentTraitVersions[otherAvatar]; } + AvatarTraits::TraitVersions& getLastAckedTraitVersions(Node::LocalID otherAvatar) { return _perNodeAckedTraitVersions[otherAvatar]; } void resetSentTraitData(Node::LocalID nodeID); @@ -194,11 +194,11 @@ private: AvatarTraits::TraitMessageSequence _currentTraitsMessageSequence{ 0 }; - std::unordered_map<AvatarTraits::TraitMessageSequence, NodeTraitVersions> _pendingTraitVersions; + std::unordered_map<AvatarTraits::TraitMessageSequence, PerNodeTraitVersions> _perNodePendingTraitVersions; std::unordered_map<Node::LocalID, TraitsCheckTimestamp> _lastSentTraitsTimestamps; - NodeTraitVersions _sentTraitVersions; - NodeTraitVersions _ackedTraitVersions; + PerNodeTraitVersions _perNodeSentTraitVersions; + PerNodeTraitVersions _perNodeAckedTraitVersions; std::atomic_bool _isIgnoreRadiusEnabled { false }; }; diff --git a/assignment-client/src/avatars/AvatarMixerSlave.cpp b/assignment-client/src/avatars/AvatarMixerSlave.cpp index 5ed10dad98..5f24ae1b64 100644 --- a/assignment-client/src/avatars/AvatarMixerSlave.cpp +++ b/assignment-client/src/avatars/AvatarMixerSlave.cpp @@ -85,11 +85,11 @@ qint64 AvatarMixerSlave::addTraitsNodeHeader(AvatarMixerClientData* listeningNod NLPacketList& traitsPacketList, qint64 bytesWritten) { if (bytesWritten == 0) { - if (traitsPacketList.getNumPackets() == 0) { + // This is the beginning of the traits packet, write out the sequence number. bytesWritten += traitsPacketList.writePrimitive(listeningNodeData->nextTraitsMessageSequence()); } - // add the avatar ID to mark the beginning of traits for this avatar + // This is the beginning of the traits for a node, write out the node id bytesWritten += traitsPacketList.write(sendingNodeData->getNodeID().toRfc4122()); } return bytesWritten; @@ -99,6 +99,12 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis const AvatarMixerClientData* sendingNodeData, NLPacketList& traitsPacketList) { + // Avatar Traits flow control marks each outgoing avatar traits packet with a + // sequence number. The mixer caches the traits sent in the traits packet. + // Until an ack with the sequence number comes back, all updates to _traits + // in that packet_ are ignored. Updates to traits not in that packet will + // be sent. + auto otherNodeLocalID = sendingNodeData->getNodeLocalID(); // Perform a simple check with two server clock time points diff --git a/libraries/avatars/src/AvatarHashMap.cpp b/libraries/avatars/src/AvatarHashMap.cpp index ff902945bc..6a67ef6638 100644 --- a/libraries/avatars/src/AvatarHashMap.cpp +++ b/libraries/avatars/src/AvatarHashMap.cpp @@ -332,13 +332,15 @@ void AvatarHashMap::processBulkAvatarTraits(QSharedPointer<ReceivedMessage> mess message->readPrimitive(&seq); - // we have a mixer to send to, setup our set traits packet auto traitsAckPacket = NLPacket::create(PacketType::BulkAvatarTraitsAck, sizeof(AvatarTraits::TraitMessageSequence), true); traitsAckPacket->writePrimitive(seq); auto nodeList = DependencyManager::get<LimitedNodeList>(); SharedNodePointer avatarMixer = nodeList->soloNodeOfType(NodeType::AvatarMixer); - nodeList->sendPacket(std::move(traitsAckPacket), *avatarMixer); - + if (!avatarMixer.isNull()) { + // we have a mixer to send to, acknowledge that we received these + // traits. + nodeList->sendPacket(std::move(traitsAckPacket), *avatarMixer); + } while (message->getBytesLeftToRead()) { // read the avatar ID to figure out which avatar this is for From fe1a8a6b765103d97843a0b3b8c0389337213b10 Mon Sep 17 00:00:00 2001 From: Dante Ruiz <danteruiz102@gmail.com> Date: Thu, 3 Jan 2019 11:46:03 -0800 Subject: [PATCH 093/230] omit unknown device names from clear story --- libraries/networking/src/UserActivityLogger.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libraries/networking/src/UserActivityLogger.cpp b/libraries/networking/src/UserActivityLogger.cpp index c05daf0217..e743518965 100644 --- a/libraries/networking/src/UserActivityLogger.cpp +++ b/libraries/networking/src/UserActivityLogger.cpp @@ -139,11 +139,10 @@ void UserActivityLogger::connectedDevice(QString typeOfDevice, QString deviceNam "NullDisplayPlugin", "3D TV - Side by Side Stereo", "3D TV - Interleaved", - "Keyboard/Mouse" }; - if (DEVICE_BLACKLIST.contains(deviceName)) { + if (DEVICE_BLACKLIST.contains(deviceName) || deviceName.isEmpty()) { return; } @@ -151,7 +150,7 @@ void UserActivityLogger::connectedDevice(QString typeOfDevice, QString deviceNam QJsonObject actionDetails; const QString TYPE_OF_DEVICE = "type_of_device"; const QString DEVICE_NAME = "device_name"; - + qDebug() << "UserActivityLogger::connectedDevice -> type: " << typeOfDevice << " - deviceName: " << deviceName; actionDetails.insert(TYPE_OF_DEVICE, typeOfDevice); actionDetails.insert(DEVICE_NAME, deviceName); From 7953507cb8dbb1b06abfd471557124dcfe3cd7ad Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Thu, 3 Jan 2019 11:59:16 -0800 Subject: [PATCH 094/230] Update avatar project rename to have audio and highlighting --- .../hifi/avatarPackager/AvatarPackagerApp.qml | 7 ++--- .../avatarPackager/AvatarPackagerHeader.qml | 29 +++++++++++++++---- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml index 6e2e352b51..ee78f4f934 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml @@ -11,15 +11,12 @@ import "../../dialogs" import "../avatarapp" 1.0 as AvatarApp Item { + id: windowContent + HifiConstants { id: hifi } property alias desktopObject: avatarPackager.desktopObject - id: windowContent - // height: pane ? pane.height : parent.width - // width: pane ? pane.width : parent.width - - MouseArea { anchors.fill: parent diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml index b40e9cc264..845fdeb99f 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml @@ -11,7 +11,7 @@ ShadowRectangle { height: 74 color: "#252525" - property alias title: title.text + property string title: qsTr("Avatar Packager") property alias docsEnabled: docs.visible property bool backButtonVisible: true // If false, is not visible and does not take up space property bool backButtonEnabled: true // If false, is not visible but does not affect space @@ -43,6 +43,7 @@ ShadowRectangle { } Item { id: titleArea + anchors.top: parent.top anchors.bottom: parent.bottom anchors.left: root.backButtonVisible ? back.right : parent.left @@ -57,15 +58,31 @@ ShadowRectangle { } ] - RalewaySemiBold { + Item { id: title - size: 28 anchors.fill: parent - text: qsTr("Avatar Packager") - color: "white" - MouseArea { + RalewaySemiBold { + id: titleNotRenameable + + visible: !root.canRename + + size: 28 anchors.fill: parent + text: root.title + color: "white" + } + + RalewayButton { + id: titleRenameable + + visible: root.canRename + enabled: root.canRename + + size: 28 + anchors.fill: parent + text: root.title + onClicked: { if (!root.canRename || AvatarPackagerCore.currentAvatarProject === null) { return; From ecc578c2dd4979a97cc4505a9e407178e4971693 Mon Sep 17 00:00:00 2001 From: Thijs Wenker <me@thoys.nl> Date: Thu, 3 Jan 2019 22:00:22 +0100 Subject: [PATCH 095/230] - error messages - style changes --- .../qml/hifi/AvatarPackagerWindow.qml | 8 -- .../hifi/avatarPackager/AvatarPackagerApp.qml | 114 +++++++++++++++--- .../avatarPackager/AvatarPackagerFooter.qml | 3 +- .../avatarPackager/AvatarPackagerHeader.qml | 5 - .../qml/hifi/avatarPackager/AvatarProject.qml | 6 +- .../avatarPackager/AvatarProjectUpload.qml | 5 +- .../avatarPackager/CreateAvatarProject.qml | 7 +- .../qml/hifi/avatarPackager/InfoBox.qml | 18 +-- interface/src/avatar/AvatarPackager.cpp | 54 +++++---- interface/src/avatar/AvatarPackager.h | 8 +- interface/src/avatar/AvatarProject.cpp | 65 ++++++++-- interface/src/avatar/AvatarProject.h | 32 ++++- 12 files changed, 242 insertions(+), 83 deletions(-) diff --git a/interface/resources/qml/hifi/AvatarPackagerWindow.qml b/interface/resources/qml/hifi/AvatarPackagerWindow.qml index 9d434ef97c..82bcd3fa40 100644 --- a/interface/resources/qml/hifi/AvatarPackagerWindow.qml +++ b/interface/resources/qml/hifi/AvatarPackagerWindow.qml @@ -1,15 +1,7 @@ import QtQuick 2.6 -import QtQuick.Controls 2.2 -import QtQuick.Layouts 1.3 -import QtQml.Models 2.1 -import QtGraphicalEffects 1.0 -import "../controlsUit" 1.0 as HifiControls import "../stylesUit" 1.0 import "../windows" as Windows -import "../controls" 1.0 -import "../dialogs" import "avatarPackager" 1.0 -import "avatarapp" 1.0 as AvatarApp Windows.ScrollingWindow { id: root diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml index 0a678dafee..fb7987ca76 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml @@ -3,9 +3,9 @@ import QtQuick.Controls 2.2 import QtQuick.Layouts 1.3 import QtQml.Models 2.1 import QtGraphicalEffects 1.0 +import Hifi.AvatarPackager.AvatarProjectStatus 1.0 import "../../controlsUit" 1.0 as HifiControls import "../../stylesUit" 1.0 -import "../../windows" as Windows import "../../controls" 1.0 import "../../dialogs" import "../avatarapp" 1.0 as AvatarApp @@ -16,9 +16,6 @@ Item { property alias desktopObject: avatarPackager.desktopObject id: windowContent - // height: pane ? pane.height : parent.width - // width: pane ? pane.width : parent.width - MouseArea { anchors.fill: parent @@ -75,6 +72,37 @@ Item { } } + InfoBox { + id: errorPopup + + property string errorMessage; + + boxWidth: 380 + boxHeight: 293 + + content: RalewayRegular { + + id: bodyMessage + + anchors.fill: parent + anchors.bottomMargin: 10 + anchors.leftMargin: 29 + anchors.rightMargin: 29 + + size: 20 + color: "white" + text: errorPopup.errorMessage + width: parent.width + wrapMode: Text.WordWrap + } + + function show(title, message) { + errorPopup.title = title; + errorMessage = message; + errorPopup.open(); + } + } + Rectangle { id: modalOverlay anchors.fill: parent @@ -85,8 +113,8 @@ Item { // This mouse area captures the cursor events while the modalOverlay is active MouseArea { anchors.fill: parent - propagateComposedEvents: false; - hoverEnabled: true; + propagateComposedEvents: false + hoverEnabled: true } } @@ -133,12 +161,58 @@ Item { property var desktopObject: desktop function openProject(path) { - let project = AvatarPackagerCore.openAvatarProject(path); - if (project) { - avatarProject.reset(); - avatarPackager.state = AvatarPackagerState.project; + let status = AvatarPackagerCore.openAvatarProject(path); + if (status !== AvatarProjectStatus.SUCCESS) { + displayErrorMessage(status); + return status; } - return project; + avatarProject.reset(); + avatarPackager.state = AvatarPackagerState.project; + return status; + } + + function displayErrorMessage(status) { + if (status === AvatarProjectStatus.SUCCESS) { + return; + } + switch (status) { + case AvatarProjectStatus.ERROR_CREATE_PROJECT_NAME: + errorPopup.show("Project Folder Already Exists", "A folder with that name already exists at that location. Please choose a different project name or location."); + break; + case AvatarProjectStatus.ERROR_CREATE_CREATING_DIRECTORIES: + errorPopup.show("Project Folders Creation Error", "There was a problem during the creation of the Avatar Project directories. Please select a project location with write permissions."); + break; + case AvatarProjectStatus.ERROR_CREATE_FIND_MODEL: + errorPopup.show("Cannot Find Model File", "There was a problem while trying to find the specified model file. Please verify if it exist at the specified location."); + break; + case AvatarProjectStatus.ERROR_CREATE_OPEN_MODEL: + errorPopup.show("Cannot Open Model File", "There was a problem while trying to open the specified model file. Please verify if you have read permissions at the specified location."); + break; + case AvatarProjectStatus.ERROR_CREATE_READ_MODEL: + errorPopup.show("Error Read Model File", "There was a problem while trying to read the specified model file. Please verify if the model file is supported by High Fidelity."); + break; + case AvatarProjectStatus.ERROR_CREATE_WRITE_FST: + errorPopup.show("Error Writing Project File", "There was a problem while trying to write the FST file."); + break; + case AvatarProjectStatus.ERROR_OPEN_INVALID_FILE_TYPE: + errorPopup.show("Invalid Project Path", "The avatar packager can only open FST files."); + break; + case AvatarProjectStatus.ERROR_OPEN_PROJECT_FOLDER: + errorPopup.show("Project Missing", "Project folder cannot be found. Please locate the folder and copy/move it to its original location."); + break; + case AvatarProjectStatus.ERROR_OPEN_FIND_FST: + errorPopup.show("File Missing", "We cannot find the project file (avatar.fst) in the folder. Please locate it and move to the project folder."); + break; + case AvatarProjectStatus.ERROR_OPEN_OPEN_FST: + errorPopup.show("File Read Error", "We cannot read the project file (avatar.fst). Please make sure that it is not in use by another program."); + break; + case AvatarProjectStatus.ERROR_OPEN_FIND_MODEL: + errorPopup.show("File Missing", "We cannot find the avatar model file (.fbx) in the folder. Please locate it and move to the project folder."); + break; + default: + errorPopup.show("Error Message Missing", "Error message missing for status " + status); + } + } function openDocs() { @@ -233,10 +307,8 @@ Item { browser.selectedFile.connect(function(fileUrl) { let fstFilePath = fileDialogHelper.urlToPath(fileUrl); - let currentAvatarProject = avatarPackager.openProject(fstFilePath); - if (currentAvatarProject) { - avatarPackager.showModalOverlay = false; - } + avatarPackager.showModalOverlay = false; + avatarPackager.openProject(fstFilePath); }); } } @@ -253,12 +325,20 @@ Item { RalewayRegular { size: 20 color: "white" - text: qsTr("Use a custom avatar to express your identity") + text: "Use a custom avatar of your choice." + width: parent.width + wrapMode: Text.WordWrap } RalewayRegular { size: 20 color: "white" - text: qsTr("To learn more about using this tool, visit our docs") + text: "<a href='javascript:void'>Visit our docs</a> to learn more about using the packager." + linkColor: "#00B4EF" + width: parent.width + wrapMode: Text.WordWrap + onLinkActivated: { + avatarPackager.openDocs(); + } } } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerFooter.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerFooter.qml index e1d9396e04..31e05672d2 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerFooter.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerFooter.qml @@ -38,5 +38,4 @@ Rectangle { width: parent.width } } - -} \ No newline at end of file +} diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml index d0b06ea15f..cd6fdb72fe 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml @@ -93,7 +93,6 @@ ShadowRectangle { z: 200 onFocusChanged: { if (titleArea.state === "renaming" && !titleArea.focus) { - //titleArea.state = ""; accepted(); } } @@ -104,11 +103,7 @@ ShadowRectangle { } onAccepted: { if (acceptableInput) { - //AvatarPackagerCore.renameProject(text); - console.warn(text); AvatarPackagerCore.currentAvatarProject.name = text; - console.warn(AvatarPackagerCore.currentAvatarProject.name); - } titleArea.state = ""; } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml index a5a2263346..8f7a4be481 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -52,7 +52,7 @@ Item { colorScheme: root.colorScheme width: 133 height: 40 - onClicked: function() { + onClicked: { uploadNew(); } } @@ -70,7 +70,7 @@ Item { colorScheme: root.colorScheme width: 134 height: 40 - onClicked: function() { + onClicked: { showConfirmUploadPopup(uploadNew, uploadUpdate); } } @@ -90,7 +90,7 @@ Item { colorScheme: root.colorScheme width: 134 height: 40 - onClicked: function() { + onClicked: { showConfirmUploadPopup(uploadNew, uploadUpdate); } } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml index c1d1a98158..68f465f514 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProjectUpload.qml @@ -29,10 +29,11 @@ Item { function stateChangedCallback(newState) { if (newState >= 4) { - root.uploader.stateChanged.disconnect(stateChangedCallback) + root.uploader.stateChanged.disconnect(stateChangedCallback); backToProjectTimer.start(); } } + onVisibleChanged: { if (visible) { root.uploader.stateChanged.connect(stateChangedCallback); @@ -120,6 +121,7 @@ Item { source: "../../../icons/checkmark-stroke.svg" } } + Item { id: statusRows @@ -169,6 +171,7 @@ Item { color: "white" text: "We couldn't upload your avatar at this time. Please try again later." } + AvatarPackagerFooter { id: errorFooter diff --git a/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml index d6f530a196..1e9a3d9e84 100644 --- a/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml @@ -2,6 +2,8 @@ import QtQuick 2.6 import QtQuick.Controls 2.2 import QtQuick.Layouts 1.3 +import Hifi.AvatarPackager.AvatarProjectStatus 1.0 + import "../../controlsUit" 1.0 as HifiControls import "../../stylesUit" 1.0 @@ -24,8 +26,9 @@ Item { text: qsTr("Create") enabled: false onClicked: { - if (!AvatarPackagerCore.createAvatarProject(projectLocation.text, name.text, avatarModel.text, textureFolder.text)) { - Window.alert('Failed to create project'); + let status = AvatarPackagerCore.createAvatarProject(projectLocation.text, name.text, avatarModel.text, textureFolder.text); + if (status !== AvatarProjectStatus.SUCCESS) { + avatarPackager.displayErrorMessage(status); return; } avatarPackager.state = AvatarPackagerState.project; diff --git a/interface/resources/qml/hifi/avatarPackager/InfoBox.qml b/interface/resources/qml/hifi/avatarPackager/InfoBox.qml index 89f5d5c7f8..301386acfa 100644 --- a/interface/resources/qml/hifi/avatarPackager/InfoBox.qml +++ b/interface/resources/qml/hifi/avatarPackager/InfoBox.qml @@ -5,9 +5,9 @@ import controlsUit 1.0 as HifiControlsUit import "../../controls" as HifiControls Rectangle { - id: root; - visible: false; - color: Qt.rgba(.34, .34, .34, 0.6); + id: root + visible: false + color: Qt.rgba(.34, .34, .34, 0.6) z: 999; anchors.fill: parent @@ -17,6 +17,9 @@ Rectangle { property bool closeOnClickOutside: false; + property alias boxWidth: mainContainer.width + property alias boxHeight: mainContainer.height + function open() { visible = true; } @@ -44,15 +47,15 @@ Rectangle { } Rectangle { - id: mainContainer; + id: mainContainer width: Math.max(parent.width * 0.8, 400) height: parent.height * 0.6 MouseArea { - anchors.fill: parent; - propagateComposedEvents: false; - hoverEnabled: true; + anchors.fill: parent + propagateComposedEvents: false + hoverEnabled: true onClicked: function(ev) { ev.accepted = true; } @@ -107,6 +110,5 @@ Rectangle { colorScheme: hifi.colorSchemes.dark; } } - } } diff --git a/interface/src/avatar/AvatarPackager.cpp b/interface/src/avatar/AvatarPackager.cpp index eef574a8b5..941aff6943 100644 --- a/interface/src/avatar/AvatarPackager.cpp +++ b/interface/src/avatar/AvatarPackager.cpp @@ -22,7 +22,6 @@ #include <avatar/MarketplaceItemUploader.h> #include <mutex> -#include "scripting/HMDScriptingInterface.h" #include "ui/TabletScriptingInterface.h" std::once_flag setupQMLTypesFlag; @@ -32,6 +31,14 @@ AvatarPackager::AvatarPackager() { qmlRegisterType<MarketplaceItemUploader>(); qRegisterMetaType<AvatarPackager*>(); qRegisterMetaType<AvatarProject*>(); + qRegisterMetaType<AvatarProjectStatus::AvatarProjectStatus>(); + qmlRegisterUncreatableMetaObject( + AvatarProjectStatus::staticMetaObject, + "Hifi.AvatarPackager.AvatarProjectStatus", + 1, 0, + "AvatarProjectStatus", + "Error: only enums" + ); }); recentProjectsFromVariantList(_recentProjectsSetting.get()); @@ -41,39 +48,39 @@ AvatarPackager::AvatarPackager() { } bool AvatarPackager::open() { - static const QUrl url{ "hifi/AvatarPackagerWindow.qml" }; - const auto packageModelDialogCreated = [=](QQmlContext* context, QObject* newObject) { context->setContextProperty("AvatarPackagerCore", this); }; static const QString SYSTEM_TABLET = "com.highfidelity.interface.tablet.system"; - auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>(); - auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet(SYSTEM_TABLET)); - auto hmd = DependencyManager::get<HMDScriptingInterface>(); + auto tablet = dynamic_cast<TabletProxy*>(DependencyManager::get<TabletScriptingInterface>()->getTablet(SYSTEM_TABLET)); if (tablet->getToolbarMode()) { + static const QUrl url{ "hifi/AvatarPackagerWindow.qml" }; DependencyManager::get<OffscreenUi>()->show(url, "AvatarPackager", packageModelDialogCreated); - } else { - static const QUrl url("hifi/tablet/AvatarPackager.qml"); - if (!tablet->isPathLoaded(url)) { - tablet->getTabletSurface()->getSurfaceContext()->setContextProperty("AvatarPackagerCore", this); - tablet->pushOntoStack(url); - } + return true; } - return true; + + static const QUrl url{ "hifi/tablet/AvatarPackager.qml" }; + if (!tablet->isPathLoaded(url)) { + tablet->getTabletSurface()->getSurfaceContext()->setContextProperty("AvatarPackagerCore", this); + tablet->pushOntoStack(url); + return true; + } + + return false; } void AvatarPackager::addCurrentProjectToRecentProjects() { const int MAX_RECENT_PROJECTS = 5; const QString& fstPath = _currentAvatarProject->getFSTPath(); auto removeProjects = QVector<RecentAvatarProject>(); - for (auto project : _recentProjects) { + for (const auto& project : _recentProjects) { if (project.getProjectFSTPath() == fstPath) { removeProjects.append(project); } } - for (const auto removeProject : removeProjects) { + for (const auto& removeProject : removeProjects) { _recentProjects.removeOne(removeProject); } @@ -110,14 +117,19 @@ void AvatarPackager::recentProjectsFromVariantList(QVariantList projectsVariant) } } -AvatarProject* AvatarPackager::openAvatarProject(const QString& avatarProjectFSTPath) { - setAvatarProject(AvatarProject::openAvatarProject(avatarProjectFSTPath)); - return _currentAvatarProject; +AvatarProjectStatus::AvatarProjectStatus AvatarPackager::openAvatarProject(const QString& avatarProjectFSTPath) { + AvatarProjectStatus::AvatarProjectStatus status; + setAvatarProject(AvatarProject::openAvatarProject(avatarProjectFSTPath, status)); + return status; } -AvatarProject* AvatarPackager::createAvatarProject(const QString& projectsFolder, const QString& avatarProjectName, const QString& avatarModelPath, const QString& textureFolder) { - setAvatarProject(AvatarProject::createAvatarProject(projectsFolder, avatarProjectName, avatarModelPath, textureFolder)); - return _currentAvatarProject; +AvatarProjectStatus::AvatarProjectStatus AvatarPackager::createAvatarProject(const QString& projectsFolder, + const QString& avatarProjectName, + const QString& avatarModelPath, + const QString& textureFolder) { + AvatarProjectStatus::AvatarProjectStatus status; + setAvatarProject(AvatarProject::createAvatarProject(projectsFolder, avatarProjectName, avatarModelPath, textureFolder, status)); + return status; } void AvatarPackager::setAvatarProject(AvatarProject* avatarProject) { diff --git a/interface/src/avatar/AvatarPackager.h b/interface/src/avatar/AvatarPackager.h index 343176497f..c9c5b9d312 100644 --- a/interface/src/avatar/AvatarPackager.h +++ b/interface/src/avatar/AvatarPackager.h @@ -63,8 +63,12 @@ public: AvatarPackager(); bool open(); - Q_INVOKABLE AvatarProject* createAvatarProject(const QString& projectsFolder, const QString& avatarProjectName, const QString& avatarModelPath, const QString& textureFolder); - Q_INVOKABLE AvatarProject* openAvatarProject(const QString& avatarProjectFSTPath); + Q_INVOKABLE AvatarProjectStatus::AvatarProjectStatus createAvatarProject(const QString& projectsFolder, + const QString& avatarProjectName, + const QString& avatarModelPath, + const QString& textureFolder); + + Q_INVOKABLE AvatarProjectStatus::AvatarProjectStatus openAvatarProject(const QString& avatarProjectFSTPath); Q_INVOKABLE bool isValidNewProjectName(const QString& projectPath, const QString& projectName) { return AvatarProject::isValidNewProjectName(projectPath, projectName); } signals: diff --git a/interface/src/avatar/AvatarProject.cpp b/interface/src/avatar/AvatarProject.cpp index 0c29bcf906..e049dc0ba3 100644 --- a/interface/src/avatar/AvatarProject.cpp +++ b/interface/src/avatar/AvatarProject.cpp @@ -22,55 +22,98 @@ #include <ui/TabletScriptingInterface.h> #include "scripting/HMDScriptingInterface.h" -AvatarProject* AvatarProject::openAvatarProject(const QString& path) { +AvatarProject* AvatarProject::openAvatarProject(const QString& path, AvatarProjectStatus::AvatarProjectStatus& status) { + status = AvatarProjectStatus::NONE; + if (!path.toLower().endsWith(".fst")) { + status = AvatarProjectStatus::ERROR_OPEN_INVALID_FILE_TYPE; return nullptr; } - QFile file{ path }; + + QFileInfo fstFileInfo{ path }; + if (!fstFileInfo.absoluteDir().exists()) { + status = AvatarProjectStatus::ERROR_OPEN_PROJECT_FOLDER; + return nullptr; + } + + if (!fstFileInfo.exists()) { + status = AvatarProjectStatus::ERROR_OPEN_FIND_FST; + return nullptr; + } + + QFile file{ fstFileInfo.filePath() }; if (!file.open(QIODevice::ReadOnly)) { + status = AvatarProjectStatus::ERROR_OPEN_OPEN_FST; return nullptr; } + const auto project = new AvatarProject(path, file.readAll()); + + QFileInfo fbxFileInfo{ project->getFBXPath() }; + if (!fbxFileInfo.exists()) { + project->deleteLater(); + status = AvatarProjectStatus::ERROR_OPEN_FIND_MODEL; + return nullptr; + } + QQmlEngine::setObjectOwnership(project, QQmlEngine::CppOwnership); + status = AvatarProjectStatus::SUCCESS; return project; } -AvatarProject* AvatarProject::createAvatarProject(const QString& projectsFolder, const QString& avatarProjectName, const QString& avatarModelPath, const QString& textureFolder) { +AvatarProject* AvatarProject::createAvatarProject(const QString& projectsFolder, const QString& avatarProjectName, + const QString& avatarModelPath, const QString& textureFolder, + AvatarProjectStatus::AvatarProjectStatus& status) { + status = AvatarProjectStatus::NONE; + if (!isValidNewProjectName(projectsFolder, avatarProjectName)) { + status = AvatarProjectStatus::ERROR_CREATE_PROJECT_NAME; return nullptr; } + QDir projectDir(projectsFolder + "/" + avatarProjectName); if (!projectDir.mkpath(".")) { + status = AvatarProjectStatus::ERROR_CREATE_CREATING_DIRECTORIES; return nullptr; } + QDir projectTexturesDir(projectDir.path() + "/textures"); if (!projectTexturesDir.mkpath(".")) { + status = AvatarProjectStatus::ERROR_CREATE_CREATING_DIRECTORIES; return nullptr; } + QDir projectScriptsDir(projectDir.path() + "/scripts"); if (!projectScriptsDir.mkpath(".")) { + status = AvatarProjectStatus::ERROR_CREATE_CREATING_DIRECTORIES; return nullptr; } + const auto fileName = QFileInfo(avatarModelPath).fileName(); const auto newModelPath = projectDir.absoluteFilePath(fileName); const auto newFSTPath = projectDir.absoluteFilePath("avatar.fst"); QFile::copy(avatarModelPath, newModelPath); - QFileInfo fbxInfo(newModelPath); - QFile fbx(fbxInfo.filePath()); - if (!fbxInfo.exists() || !fbxInfo.isFile() || !fbx.open(QIODevice::ReadOnly)) { - // TODO: Can't open model FBX (throw error here) + QFileInfo fbxInfo{ newModelPath }; + if (!fbxInfo.exists() || !fbxInfo.isFile()) { + status = AvatarProjectStatus::ERROR_CREATE_FIND_MODEL; + return nullptr; + } + + QFile fbx{ fbxInfo.filePath() }; + if (!fbx.open(QIODevice::ReadOnly)) { + status = AvatarProjectStatus::ERROR_CREATE_OPEN_MODEL; return nullptr; } std::shared_ptr<hfm::Model> hfmModel; try { - qDebug() << "Reading FBX file : " << fbxInfo.filePath(); const QByteArray fbxContents = fbx.readAll(); hfmModel = FBXSerializer().read(fbxContents, QVariantHash(), fbxInfo.filePath()); } catch (const QString& error) { - qDebug() << "Error reading: " << error; + Q_UNUSED(error) + status = AvatarProjectStatus::ERROR_CREATE_READ_MODEL; return nullptr; } QStringList textures{}; @@ -111,9 +154,11 @@ AvatarProject* AvatarProject::createAvatarProject(const QString& projectsFolder, fst->setName(avatarProjectName); if (!fst->write()) { + status = AvatarProjectStatus::ERROR_CREATE_WRITE_FST; return nullptr; } + status = AvatarProjectStatus::SUCCESS; return new AvatarProject(fst); } @@ -157,7 +202,7 @@ AvatarProject::AvatarProject(FST* fst) { _projectPath = fileInfo.absoluteDir().absolutePath(); } -void AvatarProject::appendDirectory(QString prefix, QDir dir) { +void AvatarProject::appendDirectory(const QString& prefix, const QDir& dir) { constexpr auto flags = QDir::Dirs | QDir::Files | QDir::NoSymLinks | QDir::NoDotAndDotDot | QDir::Hidden; for (auto& entry : dir.entryInfoList({}, flags)) { if (entry.isFile()) { diff --git a/interface/src/avatar/AvatarProject.h b/interface/src/avatar/AvatarProject.h index 469324004d..c422c14d62 100644 --- a/interface/src/avatar/AvatarProject.h +++ b/interface/src/avatar/AvatarProject.h @@ -22,6 +22,27 @@ #include <QVariantHash> #include <QStandardPaths> +namespace AvatarProjectStatus { + Q_NAMESPACE + enum AvatarProjectStatus { + NONE, + SUCCESS, + ERROR_CREATE_PROJECT_NAME, + ERROR_CREATE_CREATING_DIRECTORIES, + ERROR_CREATE_FIND_MODEL, + ERROR_CREATE_OPEN_MODEL, + ERROR_CREATE_READ_MODEL, + ERROR_CREATE_WRITE_FST, + ERROR_OPEN_INVALID_FILE_TYPE, + ERROR_OPEN_PROJECT_FOLDER, + ERROR_OPEN_FIND_FST, + ERROR_OPEN_OPEN_FST, + ERROR_OPEN_FIND_MODEL + }; + Q_ENUM_NS(AvatarProjectStatus) +} + + class AvatarProject : public QObject { Q_OBJECT Q_PROPERTY(FST* fst READ getFST CONSTANT) @@ -48,16 +69,19 @@ public: } Q_INVOKABLE QString getProjectPath() const { return _projectPath; } Q_INVOKABLE QString getFSTPath() const { return _fst->getPath(); } - Q_INVOKABLE QString getFBXPath() const { return _fst->getModelPath(); } + Q_INVOKABLE QString getFBXPath() const { + return QDir::cleanPath(QDir(_projectPath).absoluteFilePath(_fst->getModelPath())); + } /** * returns the AvatarProject or a nullptr on failure. */ - static AvatarProject* openAvatarProject(const QString& path); + static AvatarProject* openAvatarProject(const QString& path, AvatarProjectStatus::AvatarProjectStatus& status); static AvatarProject* createAvatarProject(const QString& projectsFolder, const QString& avatarProjectName, const QString& avatarModelPath, - const QString& textureFolder); + const QString& textureFolder, + AvatarProjectStatus::AvatarProjectStatus& status); static bool isValidNewProjectName(const QString& projectPath, const QString& projectName); @@ -78,7 +102,7 @@ private: FST* getFST() { return _fst; } void refreshProjectFiles(); - void appendDirectory(QString prefix, QDir dir); + void appendDirectory(const QString& prefix, const QDir& dir); QStringList getScriptPaths(const QDir& scriptsDir); FST* _fst; From f5de217b4c72cafc05c31c1eea29e9bf6cca9fc2 Mon Sep 17 00:00:00 2001 From: Dante Ruiz <danteruiz102@gmail.com> Date: Thu, 3 Jan 2019 13:40:44 -0800 Subject: [PATCH 096/230] removing debug statment --- libraries/networking/src/UserActivityLogger.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/networking/src/UserActivityLogger.cpp b/libraries/networking/src/UserActivityLogger.cpp index e743518965..948acd3d78 100644 --- a/libraries/networking/src/UserActivityLogger.cpp +++ b/libraries/networking/src/UserActivityLogger.cpp @@ -150,7 +150,7 @@ void UserActivityLogger::connectedDevice(QString typeOfDevice, QString deviceNam QJsonObject actionDetails; const QString TYPE_OF_DEVICE = "type_of_device"; const QString DEVICE_NAME = "device_name"; - qDebug() << "UserActivityLogger::connectedDevice -> type: " << typeOfDevice << " - deviceName: " << deviceName; + actionDetails.insert(TYPE_OF_DEVICE, typeOfDevice); actionDetails.insert(DEVICE_NAME, deviceName); From 7ca7e0f2345744c86af72805dece85de57744935 Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Thu, 3 Jan 2019 13:45:00 -0800 Subject: [PATCH 097/230] Revert unintended changes in avatar packager --- interface/src/Application.cpp | 2 +- interface/src/avatar/AvatarManager.cpp | 4 ++-- scripts/system/html/js/entityProperties.js | 9 --------- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index b8324874b1..a0edc7f5ff 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -466,7 +466,7 @@ public: // Don't actually crash in debug builds, in case this apparent deadlock is simply from // the developer actively debugging code #ifdef NDEBUG - //deadlockDetectionCrash(); + deadlockDetectionCrash(); #endif } } diff --git a/interface/src/avatar/AvatarManager.cpp b/interface/src/avatar/AvatarManager.cpp index 1a6b510ea1..7ca18ca258 100644 --- a/interface/src/avatar/AvatarManager.cpp +++ b/interface/src/avatar/AvatarManager.cpp @@ -536,7 +536,6 @@ void AvatarManager::handleCollisionEvents(const CollisionEvents& collisionEvents // my avatar. (Other user machines will make a similar analysis and inject sound for their collisions.) if (collision.idA.isNull() || collision.idB.isNull()) { auto myAvatar = getMyAvatar(); - myAvatar->collisionWithEntity(collision); auto collisionSound = myAvatar->getCollisionSound(); if (collisionSound) { const auto characterController = myAvatar->getCharacterController(); @@ -572,8 +571,9 @@ void AvatarManager::handleCollisionEvents(const CollisionEvents& collisionEvents auto injector = AudioInjector::playSoundAndDelete(collisionSound, options); _collisionInjectors.emplace_back(injector); } + myAvatar->collisionWithEntity(collision); + return; } - return; } } } diff --git a/scripts/system/html/js/entityProperties.js b/scripts/system/html/js/entityProperties.js index d4b60f1814..78ef8ac313 100644 --- a/scripts/system/html/js/entityProperties.js +++ b/scripts/system/html/js/entityProperties.js @@ -112,15 +112,6 @@ const GROUPS = [ type: "color", propertyID: "color", }, - { - label: "Alpha", - type: "", - type: "number", - min: 0, - max: 1, - step: 0.001, - propertyID: "alpha", - }, ] }, { From 847496048fda4ecc623028efda5490bb4dd88d75 Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Thu, 3 Jan 2019 13:51:45 -0800 Subject: [PATCH 098/230] Fix waiting-for-inventory sticking around on avatar uploader --- .../qml/hifi/avatarPackager/AvatarProject.qml | 31 +++++++------------ 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml index a5a2263346..7a0f7b6750 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -17,7 +17,7 @@ Item { Style { id: style } property int colorScheme; - property var uploader: undefined; + property var uploader: null; property bool hasSuccessfullyUploaded: true; @@ -25,7 +25,10 @@ Item { anchors.fill: parent anchors.margins: 10 - function reset() { hasSuccessfullyUploaded = false } + function reset() { + hasSuccessfullyUploaded = false; + uploader = null; + } property var footer: Item { anchors.fill: parent @@ -151,32 +154,22 @@ Item { } function uploadNew() { - console.log("Uploading new"); upload(false); } function uploadUpdate() { - console.log("Uploading update"); upload(true); } + Connections { + target: root.uploader + onStateChanged: { + root.hasSuccessfullyUploaded = newState >= 4; + } + } + function upload(updateExisting) { root.uploader = AvatarPackagerCore.currentAvatarProject.upload(updateExisting); console.log("uploader: "+ root.uploader); - root.uploader.uploadProgress.connect(function(uploaded, total) { - console.log("Uploader progress: " + uploaded + " / " + total); - }); - root.uploader.completed.connect(function() { - root.hasSuccessfullyUploaded = true; - }); - root.uploader.finishedChanged.connect(function() { - try { - var response = JSON.parse(root.uploader.responseData); - console.log("Uploader complete! " + response); - uploadStatus.text = response.status; - } catch (e) { - console.log("Error parsing JSON: " + root.uploader.reponseData); - } - }); root.uploader.send(); avatarPackager.state = AvatarPackagerState.projectUpload; } From 0e6eecc64b3232aa7961a52f0b54906a951a9c17 Mon Sep 17 00:00:00 2001 From: Sam Gondelman <samuel_gondelman@alumni.brown.edu> Date: Thu, 3 Jan 2019 15:20:55 -0800 Subject: [PATCH 099/230] Update PacketHeaders.h --- libraries/networking/src/udt/PacketHeaders.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/networking/src/udt/PacketHeaders.h b/libraries/networking/src/udt/PacketHeaders.h index 765d320490..1b031e80dc 100644 --- a/libraries/networking/src/udt/PacketHeaders.h +++ b/libraries/networking/src/udt/PacketHeaders.h @@ -252,7 +252,7 @@ enum class EntityVersion : PacketVersion { GridEntities, MissingTextProperties, GrabTraits, - MorePropertiesCleanup + MorePropertiesCleanup, UpdatedPolyLines }; From 7e68f539d323bccfe81e52d880a6db3295c5ac53 Mon Sep 17 00:00:00 2001 From: Anthony Thibault <tony@highfidelity.io> Date: Thu, 3 Jan 2019 15:27:44 -0800 Subject: [PATCH 100/230] Only use the camera position for lookAt in first person. --- interface/src/avatar/MyAvatar.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 17361c9e5d..aecfb687e4 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1562,7 +1562,12 @@ static float lookAtCostFunction(const glm::vec3& myForward, const glm::vec3& myP void MyAvatar::computeMyLookAtTarget(const AvatarHash& hash) { glm::vec3 myForward = getHead()->getFinalOrientationInWorldFrame() * IDENTITY_FORWARD; - glm::vec3 myPosition = qApp->getCamera().getPosition(); + glm::vec3 myPosition = getHead()->getEyePosition(); + CameraMode mode = qApp->getCamera().getMode(); + if (mode == CAMERA_MODE_FIRST_PERSON) { + myPosition = qApp->getCamera().getPosition(); + } + float bestCost = FLT_MAX; std::shared_ptr<Avatar> bestAvatar; From 65a7e15f5d1615044c1cc6157e3b66f3ad56253f Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Thu, 20 Dec 2018 14:49:03 -0800 Subject: [PATCH 101/230] don't send AvatarEntity updates when not necessary --- interface/src/AvatarBookmarks.cpp | 1 - interface/src/ui/overlays/Base3DOverlay.cpp | 7 +++++++ interface/src/ui/overlays/Base3DOverlay.h | 1 + .../src/avatars-renderer/Avatar.cpp | 4 ---- libraries/entities/src/EntityItemProperties.h | 12 +++++++++++- libraries/entities/src/SimulationOwner.h | 2 +- libraries/physics/src/EntityMotionState.cpp | 16 +++++++++------- 7 files changed, 29 insertions(+), 14 deletions(-) diff --git a/interface/src/AvatarBookmarks.cpp b/interface/src/AvatarBookmarks.cpp index ee639f602d..1d003f19c1 100644 --- a/interface/src/AvatarBookmarks.cpp +++ b/interface/src/AvatarBookmarks.cpp @@ -60,7 +60,6 @@ void addAvatarEntities(const QVariantList& avatarEntities) { entityProperties.setParentID(myNodeID); entityProperties.setEntityHostType(entity::HostType::AVATAR); entityProperties.setOwningAvatarID(myNodeID); - entityProperties.setSimulationOwner(myNodeID, AVATAR_ENTITY_SIMULATION_PRIORITY); entityProperties.markAllChanged(); EntityItemID id = EntityItemID(QUuid::createUuid()); diff --git a/interface/src/ui/overlays/Base3DOverlay.cpp b/interface/src/ui/overlays/Base3DOverlay.cpp index eab7a96a4b..eb43e8cf45 100644 --- a/interface/src/ui/overlays/Base3DOverlay.cpp +++ b/interface/src/ui/overlays/Base3DOverlay.cpp @@ -27,6 +27,9 @@ Base3DOverlay::Base3DOverlay() : _drawInFront(false), _drawHUDLayer(false) { + // HACK: queryAACube stuff not actually relevant for 3DOverlays, and by setting _queryAACubeSet true here + // we can avoid incorrect evaluation for sending updates for entities with 3DOverlays children. + _queryAACubeSet = true; } Base3DOverlay::Base3DOverlay(const Base3DOverlay* base3DOverlay) : @@ -41,6 +44,9 @@ Base3DOverlay::Base3DOverlay(const Base3DOverlay* base3DOverlay) : _isVisibleInSecondaryCamera(base3DOverlay->_isVisibleInSecondaryCamera) { setTransform(base3DOverlay->getTransform()); + // HACK: queryAACube stuff not actually relevant for 3DOverlays, and by setting _queryAACubeSet true here + // we can avoid incorrect evaluation for sending updates for entities with 3DOverlays children. + _queryAACubeSet = true; } QVariantMap convertOverlayLocationFromScriptSemantics(const QVariantMap& properties, bool scalesWithParent) { @@ -209,6 +215,7 @@ void Base3DOverlay::setProperties(const QVariantMap& originalProperties) { transaction.updateItem(itemID); scene->enqueueTransaction(transaction); } + _queryAACubeSet = true; // HACK: just in case some SpatiallyNestable code accidentally set it false } } diff --git a/interface/src/ui/overlays/Base3DOverlay.h b/interface/src/ui/overlays/Base3DOverlay.h index 6cc5182b56..daf15e676f 100644 --- a/interface/src/ui/overlays/Base3DOverlay.h +++ b/interface/src/ui/overlays/Base3DOverlay.h @@ -25,6 +25,7 @@ public: Base3DOverlay(const Base3DOverlay* base3DOverlay); void setVisible(bool visible) override; + bool queryAACubeNeedsUpdate() const override { return false; } // HACK: queryAACube not relevant for Overlays virtual OverlayID getOverlayID() const override { return OverlayID(getID().toString()); } void setOverlayID(OverlayID overlayID) override { setID(overlayID); } diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index 50d3c568d9..598f552bcd 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -393,10 +393,6 @@ void Avatar::updateAvatarEntities() { properties.setEntityHostType(entity::HostType::AVATAR); properties.setOwningAvatarID(getID()); - // there's no entity-server to tell us we're the simulation owner, so always set the - // simulationOwner to the owningAvatarID and a high priority. - properties.setSimulationOwner(getID(), AVATAR_ENTITY_SIMULATION_PRIORITY); - if (properties.getParentID() == AVATAR_SELF_ID) { properties.setParentID(getID()); } diff --git a/libraries/entities/src/EntityItemProperties.h b/libraries/entities/src/EntityItemProperties.h index b741bb8ca4..9f635057d2 100644 --- a/libraries/entities/src/EntityItemProperties.h +++ b/libraries/entities/src/EntityItemProperties.h @@ -143,7 +143,7 @@ public: DEFINE_PROPERTY(PROP_CREATED, Created, created, quint64, UNKNOWN_CREATED_TIME); DEFINE_PROPERTY_REF(PROP_LAST_EDITED_BY, LastEditedBy, lastEditedBy, QUuid, ENTITY_ITEM_DEFAULT_LAST_EDITED_BY); DEFINE_PROPERTY_REF_ENUM(PROP_ENTITY_HOST_TYPE, EntityHostType, entityHostType, entity::HostType, entity::HostType::DOMAIN); - DEFINE_PROPERTY_REF(PROP_OWNING_AVATAR_ID, OwningAvatarID, owningAvatarID, QUuid, UNKNOWN_ENTITY_ID); + DEFINE_PROPERTY_REF_WITH_SETTER(PROP_OWNING_AVATAR_ID, OwningAvatarID, owningAvatarID, QUuid, UNKNOWN_ENTITY_ID); DEFINE_PROPERTY_REF(PROP_PARENT_ID, ParentID, parentID, QUuid, UNKNOWN_ENTITY_ID); DEFINE_PROPERTY_REF(PROP_PARENT_JOINT_INDEX, ParentJointIndex, parentJointIndex, quint16, -1); DEFINE_PROPERTY_REF(PROP_QUERY_AA_CUBE, QueryAACube, queryAACube, AACube, AACube()); @@ -482,6 +482,16 @@ void EntityPropertyFlagsFromScriptValue(const QScriptValue& object, EntityProper inline void EntityItemProperties::setPosition(const glm::vec3& value) { _position = glm::clamp(value, (float)-HALF_TREE_SCALE, (float)HALF_TREE_SCALE); _positionChanged = true; } +inline void EntityItemProperties::setOwningAvatarID(const QUuid& id) { + _owningAvatarID = id; + if (!_owningAvatarID.isNull()) { + // for AvatarEntities there's no entity-server to tell us we're the simulation owner, + // so always set the simulationOwner to the owningAvatarID and a high priority. + setSimulationOwner(_owningAvatarID, AVATAR_ENTITY_SIMULATION_PRIORITY); + } + _owningAvatarIDChanged = true; +} + QDebug& operator<<(QDebug& dbg, const EntityPropertyFlags& f); inline QDebug operator<<(QDebug debug, const EntityItemProperties& properties) { diff --git a/libraries/entities/src/SimulationOwner.h b/libraries/entities/src/SimulationOwner.h index 353255728c..bd444d28dd 100644 --- a/libraries/entities/src/SimulationOwner.h +++ b/libraries/entities/src/SimulationOwner.h @@ -96,7 +96,7 @@ const uint8_t RECRUIT_SIMULATION_PRIORITY = VOLUNTEER_SIMULATION_PRIORITY + 1; // When poking objects with scripts an observer will bid at SCRIPT_EDIT priority. const uint8_t SCRIPT_GRAB_SIMULATION_PRIORITY = 128; const uint8_t SCRIPT_POKE_SIMULATION_PRIORITY = SCRIPT_GRAB_SIMULATION_PRIORITY - 1; -const uint8_t AVATAR_ENTITY_SIMULATION_PRIORITY = SCRIPT_GRAB_SIMULATION_PRIORITY + 1; +const uint8_t AVATAR_ENTITY_SIMULATION_PRIORITY = 255; // PERSONAL priority (needs a better name) is the level at which a simulation observer owns its own avatar // which really just means: things that collide with it will be bid at a priority level one lower diff --git a/libraries/physics/src/EntityMotionState.cpp b/libraries/physics/src/EntityMotionState.cpp index 4b635ef0be..cf098136d3 100644 --- a/libraries/physics/src/EntityMotionState.cpp +++ b/libraries/physics/src/EntityMotionState.cpp @@ -307,6 +307,8 @@ const btCollisionShape* EntityMotionState::computeNewShape() { return getShapeManager()->getShape(shapeInfo); } +const uint8_t MAX_NUM_INACTIVE_UPDATES = 20; + bool EntityMotionState::remoteSimulationOutOfSync(uint32_t simulationStep) { // NOTE: this method is only ever called when the entity simulation is locally owned DETAILED_PROFILE_RANGE(simulation_physics, "CheckOutOfSync"); @@ -316,15 +318,10 @@ bool EntityMotionState::remoteSimulationOutOfSync(uint32_t simulationStep) { // TODO: need to be able to detect when logic dictates we *decrease* priority // WIP: print info whenever _bidPriority mismatches what is known to the entity - if (_entity->dynamicDataNeedsTransmit()) { - return true; - } - int numSteps = simulationStep - _lastStep; float dt = (float)(numSteps) * PHYSICS_ENGINE_FIXED_SUBSTEP; if (_numInactiveUpdates > 0) { - const uint8_t MAX_NUM_INACTIVE_UPDATES = 20; if (_numInactiveUpdates > MAX_NUM_INACTIVE_UPDATES) { // clear local ownership (stop sending updates) and let the server clear itself _entity->clearSimulationOwnership(); @@ -452,8 +449,13 @@ void EntityMotionState::updateSendVelocities() { if (!_body->isKinematicObject()) { clearObjectVelocities(); } - // we pretend we sent the inactive update for this object - _numInactiveUpdates = 1; + if (_entity->getEntityHostType() == entity::HostType::AVATAR) { + // AvatarEntities only ever need to send one update (their updates are sent over a lossless protocol) + // so we set the count to the max to prevent resends + _numInactiveUpdates = MAX_NUM_INACTIVE_UPDATES; + } else { + ++_numInactiveUpdates; + } } else { glm::vec3 gravity = _entity->getGravity(); From f27ee1767cca4b790734473246239ce9b8b44d81 Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Fri, 4 Jan 2019 08:43:43 -0800 Subject: [PATCH 102/230] Fix rename not working correctly in AvatarPackager --- .../resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml index 04a4d2e41a..845fdeb99f 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml @@ -109,7 +109,7 @@ ShadowRectangle { font.pixelSize: 28 z: 200 onFocusChanged: { - if (titleArea.state === "renaming" && !titleArea.focus) { + if (titleArea.state === "renaming" && !focus) { accepted(); } } From c2ceeb3d7696a4d982ecf3b7327da8b56114b691 Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Fri, 4 Jan 2019 09:41:31 -0800 Subject: [PATCH 103/230] Apply AvatarPackager code review cleanup --- .../avatarPackager/AvatarUploadStatusItem.qml | 17 +++++++++++++---- .../qml/hifi/avatarPackager/ClickableArea.qml | 2 +- .../qml/hifi/avatarPackager/RalewayButton.qml | 2 +- interface/src/avatar/AvatarProject.cpp | 8 ++++---- interface/src/avatar/AvatarProject.h | 2 +- .../src/avatar/MarketplaceItemUploader.cpp | 11 ++++++++--- interface/src/avatar/MarketplaceItemUploader.h | 17 +++++++---------- libraries/fbx/src/FST.cpp | 6 ++++-- libraries/fbx/src/FST.h | 4 ++-- libraries/networking/src/AccountManager.h | 7 +++---- 10 files changed, 44 insertions(+), 32 deletions(-) diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarUploadStatusItem.qml b/interface/resources/qml/hifi/avatarPackager/AvatarUploadStatusItem.qml index 4749e912c6..1e48264b3a 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarUploadStatusItem.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarUploadStatusItem.qml @@ -14,25 +14,34 @@ Item { property int uploaderState; property var uploader; +/* state: root.uploader === undefined ? "" : (root.uploader.state > uploaderState ? "success" : (root.uploader.error !== 0 ? "fail" : (root.uploader.state === uploaderState ? "running" : ""))) + */ states: [ State { - name: "running" + name: "" + when: root.uploader === null + }, + State { + name: "success" + when: root.uploader.state > uploaderState PropertyChanges { target: stepText; color: "white" } - PropertyChanges { target: runningImage; visible: true; playing: true } + PropertyChanges { target: successGlyph; visible: true } }, State { name: "fail" + when: root.uploader.error !== 0 PropertyChanges { target: stepText; color: "#EA4C5F" } PropertyChanges { target: failGlyph; visible: true } }, State { - name: "success" + name: "running" + when: root.uploader.state === uploaderState PropertyChanges { target: stepText; color: "white" } - PropertyChanges { target: successGlyph; visible: true } + PropertyChanges { target: runningImage; visible: true; playing: true } } ] diff --git a/interface/resources/qml/hifi/avatarPackager/ClickableArea.qml b/interface/resources/qml/hifi/avatarPackager/ClickableArea.qml index ebe38364ec..0f7b201f72 100644 --- a/interface/resources/qml/hifi/avatarPackager/ClickableArea.qml +++ b/interface/resources/qml/hifi/avatarPackager/ClickableArea.qml @@ -60,4 +60,4 @@ Item { } ] } -} \ No newline at end of file +} diff --git a/interface/resources/qml/hifi/avatarPackager/RalewayButton.qml b/interface/resources/qml/hifi/avatarPackager/RalewayButton.qml index edbc31b24f..18cce8138f 100644 --- a/interface/resources/qml/hifi/avatarPackager/RalewayButton.qml +++ b/interface/resources/qml/hifi/avatarPackager/RalewayButton.qml @@ -25,4 +25,4 @@ RalewaySemiBold { onClicked: root.clicked() } -} \ No newline at end of file +} diff --git a/interface/src/avatar/AvatarProject.cpp b/interface/src/avatar/AvatarProject.cpp index e049dc0ba3..34da80587b 100644 --- a/interface/src/avatar/AvatarProject.cpp +++ b/interface/src/avatar/AvatarProject.cpp @@ -162,7 +162,7 @@ AvatarProject* AvatarProject::createAvatarProject(const QString& projectsFolder, return new AvatarProject(fst); } -QStringList AvatarProject::getScriptPaths(const QDir& scriptsDir) { +QStringList AvatarProject::getScriptPaths(const QDir& scriptsDir) const { QStringList result{}; constexpr auto flags = QDir::Files | QDir::NoSymLinks | QDir::NoDotAndDotDot | QDir::Hidden; if (!scriptsDir.exists()) { @@ -244,6 +244,8 @@ MarketplaceItemUploader* AvatarProject::upload(bool updateExisting) { } void AvatarProject::openInInventory() { + constexpr int TIME_TO_WAIT_FOR_INVENTORY_TO_OPEN_MS { 1000 }; + auto tablet = dynamic_cast<TabletProxy*>( DependencyManager::get<TabletScriptingInterface>()->getTablet("com.highfidelity.interface.tablet.system")); tablet->loadQMLSource("hifi/commerce/wallet/Wallet.qml"); @@ -251,9 +253,7 @@ void AvatarProject::openInInventory() { auto name = getProjectName(); // I'm not a fan of this, but it's the only current option. - QTimer::singleShot(1000, [name]() { - auto tablet = dynamic_cast<TabletProxy*>( - DependencyManager::get<TabletScriptingInterface>()->getTablet("com.highfidelity.interface.tablet.system")); + QTimer::singleShot(TIME_TO_WAIT_FOR_INVENTORY_TO_OPEN_MS, [name, tablet]() { tablet->sendToQml(QVariantMap({ { "method", "updatePurchases" }, { "filterText", name } })); }); } diff --git a/interface/src/avatar/AvatarProject.h b/interface/src/avatar/AvatarProject.h index c422c14d62..2a655409e1 100644 --- a/interface/src/avatar/AvatarProject.h +++ b/interface/src/avatar/AvatarProject.h @@ -103,7 +103,7 @@ private: void refreshProjectFiles(); void appendDirectory(const QString& prefix, const QDir& dir); - QStringList getScriptPaths(const QDir& scriptsDir); + QStringList getScriptPaths(const QDir& scriptsDir) const; FST* _fst; diff --git a/interface/src/avatar/MarketplaceItemUploader.cpp b/interface/src/avatar/MarketplaceItemUploader.cpp index 8b97358ba4..543617fc56 100644 --- a/interface/src/avatar/MarketplaceItemUploader.cpp +++ b/interface/src/avatar/MarketplaceItemUploader.cpp @@ -36,7 +36,10 @@ MarketplaceItemUploader::MarketplaceItemUploader(QString title, QUuid marketplaceID, QList<ProjectFilePath> filePaths) : _title(title), - _description(description), _rootFilename(rootFilename), _marketplaceID(marketplaceID), _filePaths(filePaths) { + _description(description), + _rootFilename(rootFilename), + _marketplaceID(marketplaceID), + _filePaths(filePaths) { } void MarketplaceItemUploader::setState(State newState) { @@ -299,11 +302,13 @@ void MarketplaceItemUploader::doWaitForInventory() { if (success) { setState(State::Complete); } else { + constexpr int MAX_INVENTORY_REQUESTS { 8 }; + constexpr int TIME_BETWEEN_INVENTORY_REQUESTS_MS { 5000 }; qDebug() << "Failed to find item in inventory"; - if (_numRequestsForInventory > 8) { + if (_numRequestsForInventory > MAX_INVENTORY_REQUESTS) { setError(Error::Unknown); } else { - QTimer::singleShot(5000, [this]() { doWaitForInventory(); }); + QTimer::singleShot(TIME_BETWEEN_INVENTORY_REQUESTS_MS, [this]() { doWaitForInventory(); }); } } }); diff --git a/interface/src/avatar/MarketplaceItemUploader.h b/interface/src/avatar/MarketplaceItemUploader.h index 4fb1713b7d..998413da88 100644 --- a/interface/src/avatar/MarketplaceItemUploader.h +++ b/interface/src/avatar/MarketplaceItemUploader.h @@ -30,21 +30,19 @@ class MarketplaceItemUploader : public QObject { Q_PROPERTY(Error error READ getError NOTIFY errorChanged) Q_PROPERTY(QString responseData READ getResponseData) public: - enum class Error - { + enum class Error { None, - Unknown + Unknown, }; Q_ENUM(Error); - enum class State - { + enum class State { Idle, GettingCategories, UploadingAvatar, WaitingForUploadResponse, WaitingForInventory, - Complete + Complete, }; Q_ENUM(State); @@ -63,7 +61,6 @@ public: State getState() const { return _state; } bool getComplete() const { return _state == State::Complete; } - QUuid getMarketplaceID() const { return _marketplaceID; } Error getError() const { return _error; } @@ -86,8 +83,8 @@ private: QNetworkReply* _reply; - State _state{ State::Idle }; - Error _error{ Error::None }; + State _state { State::Idle }; + Error _error { Error::None }; QString _title; QString _description; @@ -98,7 +95,7 @@ private: QString _responseData; - int _numRequestsForInventory{ 0 }; + int _numRequestsForInventory { 0 }; QString _rootFilePath; QList<ProjectFilePath> _filePaths; diff --git a/libraries/fbx/src/FST.cpp b/libraries/fbx/src/FST.cpp index 9510ca5962..7828037c74 100644 --- a/libraries/fbx/src/FST.cpp +++ b/libraries/fbx/src/FST.cpp @@ -15,6 +15,8 @@ #include <QFileInfo> #include <hfm/HFM.h> +constexpr float DEFAULT_SCALE { 1.0f }; + FST::FST(QString fstPath, QVariantHash data) : _fstPath(std::move(fstPath)) { auto setValueFromFSTData = [&data] (const QString& propertyID, auto &targetProperty) mutable { @@ -55,7 +57,7 @@ FST* FST::createFSTFromModel(const QString& fstPath, const QString& modelFilePat mapping.insert(TEXDIR_FIELD, "textures"); // mixamo/autodesk defaults - mapping.insert(SCALE_FIELD, 1.0); + mapping.insert(SCALE_FIELD, DEFAULT_SCALE); QVariantHash joints = mapping.value(JOINT_FIELD).toHash(); joints.insert("jointEyeLeft", hfmModel.jointIndices.contains("jointEyeLeft") ? "jointEyeLeft" : (hfmModel.jointIndices.contains("EyeLeft") ? "EyeLeft" : "LeftEye")); @@ -161,7 +163,7 @@ void FST::setModelPath(const QString& modelPath) { emit modelPathChanged(modelPath); } -QVariantHash FST::getMapping() { +QVariantHash FST::getMapping() const { QVariantHash mapping; mapping.unite(_other); mapping.insert(NAME_FIELD, _name); diff --git a/libraries/fbx/src/FST.h b/libraries/fbx/src/FST.h index 6104130512..0f4c1ecd3a 100644 --- a/libraries/fbx/src/FST.h +++ b/libraries/fbx/src/FST.h @@ -45,9 +45,9 @@ public: QStringList getScriptPaths() const { return _scriptPaths; } void setScriptPaths(QStringList scriptPaths) { _scriptPaths = scriptPaths; } - QString getPath() { return _fstPath; } + QString getPath() const { return _fstPath; } - QVariantHash getMapping(); + QVariantHash getMapping() const; bool write(); diff --git a/libraries/networking/src/AccountManager.h b/libraries/networking/src/AccountManager.h index 77f20472fa..b8c3bf0cc4 100644 --- a/libraries/networking/src/AccountManager.h +++ b/libraries/networking/src/AccountManager.h @@ -40,11 +40,10 @@ public: }; namespace AccountManagerAuth { -enum Type -{ +enum Type { None, Required, - Optional + Optional, }; } @@ -157,7 +156,7 @@ private: bool _isWaitingForTokenRefresh{ false }; bool _isAgent{ false }; - bool _isWaitingForKeypairResponse{ false }; + bool _isWaitingForKeypairResponse { false }; QByteArray _pendingPrivateKey; QUuid _sessionID{ QUuid::createUuid() }; From f38a469e659db7a96a9864a1e2052549c4b92891 Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Fri, 4 Jan 2019 09:55:21 -0800 Subject: [PATCH 104/230] Update avatar packager to force focus on inventory when opened --- interface/src/avatar/AvatarProject.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/interface/src/avatar/AvatarProject.cpp b/interface/src/avatar/AvatarProject.cpp index 34da80587b..20556ce5ed 100644 --- a/interface/src/avatar/AvatarProject.cpp +++ b/interface/src/avatar/AvatarProject.cpp @@ -250,10 +250,12 @@ void AvatarProject::openInInventory() { DependencyManager::get<TabletScriptingInterface>()->getTablet("com.highfidelity.interface.tablet.system")); tablet->loadQMLSource("hifi/commerce/wallet/Wallet.qml"); DependencyManager::get<HMDScriptingInterface>()->openTablet(); + tablet->getTabletRoot()->forceActiveFocus(); auto name = getProjectName(); // I'm not a fan of this, but it's the only current option. QTimer::singleShot(TIME_TO_WAIT_FOR_INVENTORY_TO_OPEN_MS, [name, tablet]() { tablet->sendToQml(QVariantMap({ { "method", "updatePurchases" }, { "filterText", name } })); + }); } From b680e9c52ae175497ad7892884dfb331853a37d8 Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Fri, 4 Jan 2019 09:59:17 -0800 Subject: [PATCH 105/230] Update avatar packager with CR feedback --- interface/src/avatar/MarketplaceItemUploader.cpp | 2 +- libraries/avatars/src/ProjectFile.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/src/avatar/MarketplaceItemUploader.cpp b/interface/src/avatar/MarketplaceItemUploader.cpp index 543617fc56..938485353c 100644 --- a/interface/src/avatar/MarketplaceItemUploader.cpp +++ b/interface/src/avatar/MarketplaceItemUploader.cpp @@ -173,7 +173,7 @@ void MarketplaceItemUploader::doUploadAvatar() { qDebug() << "Finished zipping, size: " << (buffer.size() / (1000.0f)) << "KB"; - QString path = "/api/v1/marketplace/items"; + static const QString path = "/api/v1/marketplace/items"; bool creating = true; if (!_marketplaceID.isNull()) { creating = false; diff --git a/libraries/avatars/src/ProjectFile.h b/libraries/avatars/src/ProjectFile.h index 82930a3464..4040eb1ce5 100644 --- a/libraries/avatars/src/ProjectFile.h +++ b/libraries/avatars/src/ProjectFile.h @@ -10,4 +10,4 @@ public: QString relativePath; }; -#endif // hifi_AvatarProjectFile_h \ No newline at end of file +#endif // hifi_AvatarProjectFile_h From 6d5b9a88e416360b192886207c70a721b2ea43f2 Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Fri, 4 Jan 2019 11:29:07 -0800 Subject: [PATCH 106/230] Remove dead code in AvatarUploadStatusItem --- .../qml/hifi/avatarPackager/AvatarUploadStatusItem.qml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarUploadStatusItem.qml b/interface/resources/qml/hifi/avatarPackager/AvatarUploadStatusItem.qml index 1e48264b3a..70a0ea0672 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarUploadStatusItem.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarUploadStatusItem.qml @@ -14,12 +14,6 @@ Item { property int uploaderState; property var uploader; -/* - state: root.uploader === undefined ? "" : - (root.uploader.state > uploaderState ? "success" - : (root.uploader.error !== 0 ? "fail" : (root.uploader.state === uploaderState ? "running" : ""))) - */ - states: [ State { name: "" From ad25d50934c73a10ff36fb2b0f2edfdea15db267 Mon Sep 17 00:00:00 2001 From: David Back <davidback@highfidelity.io> Date: Fri, 4 Jan 2019 11:09:09 -0800 Subject: [PATCH 107/230] follow-up merge from PR 14585 --- .../entities/src/EntityItemProperties.cpp | 2629 +++++++++-------- 1 file changed, 1450 insertions(+), 1179 deletions(-) diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 229e5068d0..82fc056f5b 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -50,10 +50,6 @@ EntityItemProperties::EntityItemProperties(EntityPropertyFlags desiredProperties _lastEdited(0), _type(EntityTypes::Unknown), - _localRenderAlpha(1.0f), - - _localRenderAlphaChanged(false), - _defaultSettings(true), _naturalDimensions(1.0f, 1.0f, 1.0f), _naturalPosition(0.0f, 0.0f, 0.0f), @@ -350,58 +346,90 @@ void EntityItemProperties::setBillboardModeFromString(const QString& materialMap EntityPropertyFlags EntityItemProperties::getChangedProperties() const { EntityPropertyFlags changedProperties; - CHECK_PROPERTY_CHANGE(PROP_LAST_EDITED_BY, lastEditedBy); + // Core + CHECK_PROPERTY_CHANGE(PROP_SIMULATION_OWNER, simulationOwner); + CHECK_PROPERTY_CHANGE(PROP_VISIBLE, visible); + CHECK_PROPERTY_CHANGE(PROP_NAME, name); + CHECK_PROPERTY_CHANGE(PROP_LOCKED, locked); + CHECK_PROPERTY_CHANGE(PROP_USER_DATA, userData); + CHECK_PROPERTY_CHANGE(PROP_HREF, href); + CHECK_PROPERTY_CHANGE(PROP_DESCRIPTION, description); CHECK_PROPERTY_CHANGE(PROP_POSITION, position); CHECK_PROPERTY_CHANGE(PROP_DIMENSIONS, dimensions); CHECK_PROPERTY_CHANGE(PROP_ROTATION, rotation); + CHECK_PROPERTY_CHANGE(PROP_REGISTRATION_POINT, registrationPoint); + //CHECK_PROPERTY_CHANGE(PROP_CREATED, created); // can't change + CHECK_PROPERTY_CHANGE(PROP_LAST_EDITED_BY, lastEditedBy); + CHECK_PROPERTY_CHANGE(PROP_ENTITY_HOST_TYPE, entityHostType); + CHECK_PROPERTY_CHANGE(PROP_OWNING_AVATAR_ID, owningAvatarID); + CHECK_PROPERTY_CHANGE(PROP_PARENT_ID, parentID); + CHECK_PROPERTY_CHANGE(PROP_PARENT_JOINT_INDEX, parentJointIndex); + CHECK_PROPERTY_CHANGE(PROP_QUERY_AA_CUBE, queryAACube); + CHECK_PROPERTY_CHANGE(PROP_CAN_CAST_SHADOW, canCastShadow); + CHECK_PROPERTY_CHANGE(PROP_VISIBLE_IN_SECONDARY_CAMERA, isVisibleInSecondaryCamera); + changedProperties += _grab.getChangedProperties(); + + // Physics CHECK_PROPERTY_CHANGE(PROP_DENSITY, density); CHECK_PROPERTY_CHANGE(PROP_VELOCITY, velocity); + CHECK_PROPERTY_CHANGE(PROP_ANGULAR_VELOCITY, angularVelocity); CHECK_PROPERTY_CHANGE(PROP_GRAVITY, gravity); CHECK_PROPERTY_CHANGE(PROP_ACCELERATION, acceleration); CHECK_PROPERTY_CHANGE(PROP_DAMPING, damping); + CHECK_PROPERTY_CHANGE(PROP_ANGULAR_DAMPING, angularDamping); CHECK_PROPERTY_CHANGE(PROP_RESTITUTION, restitution); CHECK_PROPERTY_CHANGE(PROP_FRICTION, friction); CHECK_PROPERTY_CHANGE(PROP_LIFETIME, lifetime); - CHECK_PROPERTY_CHANGE(PROP_SCRIPT, script); - CHECK_PROPERTY_CHANGE(PROP_SCRIPT_TIMESTAMP, scriptTimestamp); - CHECK_PROPERTY_CHANGE(PROP_SERVER_SCRIPTS, serverScripts); - CHECK_PROPERTY_CHANGE(PROP_COLLISION_SOUND_URL, collisionSoundURL); - CHECK_PROPERTY_CHANGE(PROP_COLOR, color); - CHECK_PROPERTY_CHANGE(PROP_COLOR_SPREAD, colorSpread); - CHECK_PROPERTY_CHANGE(PROP_COLOR_START, colorStart); - CHECK_PROPERTY_CHANGE(PROP_COLOR_FINISH, colorFinish); - CHECK_PROPERTY_CHANGE(PROP_ALPHA, alpha); - CHECK_PROPERTY_CHANGE(PROP_ALPHA_SPREAD, alphaSpread); - CHECK_PROPERTY_CHANGE(PROP_ALPHA_START, alphaStart); - CHECK_PROPERTY_CHANGE(PROP_ALPHA_FINISH, alphaFinish); - CHECK_PROPERTY_CHANGE(PROP_EMITTER_SHOULD_TRAIL, emitterShouldTrail); - CHECK_PROPERTY_CHANGE(PROP_MODEL_URL, modelURL); - CHECK_PROPERTY_CHANGE(PROP_COMPOUND_SHAPE_URL, compoundShapeURL); - CHECK_PROPERTY_CHANGE(PROP_VISIBLE, visible); - CHECK_PROPERTY_CHANGE(PROP_CAN_CAST_SHADOW, canCastShadow); - CHECK_PROPERTY_CHANGE(PROP_REGISTRATION_POINT, registrationPoint); - CHECK_PROPERTY_CHANGE(PROP_ANGULAR_VELOCITY, angularVelocity); - CHECK_PROPERTY_CHANGE(PROP_ANGULAR_DAMPING, angularDamping); CHECK_PROPERTY_CHANGE(PROP_COLLISIONLESS, collisionless); CHECK_PROPERTY_CHANGE(PROP_COLLISION_MASK, collisionMask); CHECK_PROPERTY_CHANGE(PROP_DYNAMIC, dynamic); - CHECK_PROPERTY_CHANGE(PROP_IS_SPOTLIGHT, isSpotlight); - CHECK_PROPERTY_CHANGE(PROP_INTENSITY, intensity); - CHECK_PROPERTY_CHANGE(PROP_FALLOFF_RADIUS, falloffRadius); - CHECK_PROPERTY_CHANGE(PROP_EXPONENT, exponent); - CHECK_PROPERTY_CHANGE(PROP_CUTOFF, cutoff); - CHECK_PROPERTY_CHANGE(PROP_LOCKED, locked); - CHECK_PROPERTY_CHANGE(PROP_TEXTURES, textures); - CHECK_PROPERTY_CHANGE(PROP_USER_DATA, userData); - CHECK_PROPERTY_CHANGE(PROP_SIMULATION_OWNER, simulationOwner); - CHECK_PROPERTY_CHANGE(PROP_TEXT, text); - CHECK_PROPERTY_CHANGE(PROP_LINE_HEIGHT, lineHeight); - CHECK_PROPERTY_CHANGE(PROP_TEXT_COLOR, textColor); - CHECK_PROPERTY_CHANGE(PROP_BACKGROUND_COLOR, backgroundColor); + CHECK_PROPERTY_CHANGE(PROP_COLLISION_SOUND_URL, collisionSoundURL); + CHECK_PROPERTY_CHANGE(PROP_ACTION_DATA, actionData); + + // Cloning + CHECK_PROPERTY_CHANGE(PROP_CLONEABLE, cloneable); + CHECK_PROPERTY_CHANGE(PROP_CLONE_LIFETIME, cloneLifetime); + CHECK_PROPERTY_CHANGE(PROP_CLONE_LIMIT, cloneLimit); + CHECK_PROPERTY_CHANGE(PROP_CLONE_DYNAMIC, cloneDynamic); + CHECK_PROPERTY_CHANGE(PROP_CLONE_AVATAR_ENTITY, cloneAvatarEntity); + CHECK_PROPERTY_CHANGE(PROP_CLONE_ORIGIN_ID, cloneOriginID); + + // Scripts + CHECK_PROPERTY_CHANGE(PROP_SCRIPT, script); + CHECK_PROPERTY_CHANGE(PROP_SCRIPT_TIMESTAMP, scriptTimestamp); + CHECK_PROPERTY_CHANGE(PROP_SERVER_SCRIPTS, serverScripts); + + // Certifiable Properties + CHECK_PROPERTY_CHANGE(PROP_ITEM_NAME, itemName); + CHECK_PROPERTY_CHANGE(PROP_ITEM_DESCRIPTION, itemDescription); + CHECK_PROPERTY_CHANGE(PROP_ITEM_CATEGORIES, itemCategories); + CHECK_PROPERTY_CHANGE(PROP_ITEM_ARTIST, itemArtist); + CHECK_PROPERTY_CHANGE(PROP_ITEM_LICENSE, itemLicense); + CHECK_PROPERTY_CHANGE(PROP_LIMITED_RUN, limitedRun); + CHECK_PROPERTY_CHANGE(PROP_MARKETPLACE_ID, marketplaceID); + CHECK_PROPERTY_CHANGE(PROP_EDITION_NUMBER, editionNumber); + CHECK_PROPERTY_CHANGE(PROP_ENTITY_INSTANCE_NUMBER, entityInstanceNumber); + CHECK_PROPERTY_CHANGE(PROP_CERTIFICATE_ID, certificateID); + CHECK_PROPERTY_CHANGE(PROP_STATIC_CERTIFICATE_VERSION, staticCertificateVersion); + + // Location data for scripts + CHECK_PROPERTY_CHANGE(PROP_LOCAL_POSITION, localPosition); + CHECK_PROPERTY_CHANGE(PROP_LOCAL_ROTATION, localRotation); + CHECK_PROPERTY_CHANGE(PROP_LOCAL_VELOCITY, localVelocity); + CHECK_PROPERTY_CHANGE(PROP_LOCAL_ANGULAR_VELOCITY, localAngularVelocity); + CHECK_PROPERTY_CHANGE(PROP_LOCAL_DIMENSIONS, localDimensions); + + // Common CHECK_PROPERTY_CHANGE(PROP_SHAPE_TYPE, shapeType); - CHECK_PROPERTY_CHANGE(PROP_EMITTING_PARTICLES, isEmitting); + CHECK_PROPERTY_CHANGE(PROP_COMPOUND_SHAPE_URL, compoundShapeURL); + CHECK_PROPERTY_CHANGE(PROP_COLOR, color); + CHECK_PROPERTY_CHANGE(PROP_ALPHA, alpha); + CHECK_PROPERTY_CHANGE(PROP_TEXTURES, textures); + + // Particles CHECK_PROPERTY_CHANGE(PROP_MAX_PARTICLES, maxParticles); CHECK_PROPERTY_CHANGE(PROP_LIFESPAN, lifespan); + CHECK_PROPERTY_CHANGE(PROP_EMITTING_PARTICLES, isEmitting); CHECK_PROPERTY_CHANGE(PROP_EMIT_RATE, emitRate); CHECK_PROPERTY_CHANGE(PROP_EMIT_SPEED, emitSpeed); CHECK_PROPERTY_CHANGE(PROP_SPEED_SPREAD, speedSpread); @@ -418,66 +446,67 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { CHECK_PROPERTY_CHANGE(PROP_RADIUS_SPREAD, radiusSpread); CHECK_PROPERTY_CHANGE(PROP_RADIUS_START, radiusStart); CHECK_PROPERTY_CHANGE(PROP_RADIUS_FINISH, radiusFinish); - CHECK_PROPERTY_CHANGE(PROP_MATERIAL_URL, materialURL); - CHECK_PROPERTY_CHANGE(PROP_MATERIAL_MAPPING_MODE, materialMappingMode); - CHECK_PROPERTY_CHANGE(PROP_MATERIAL_PRIORITY, priority); - CHECK_PROPERTY_CHANGE(PROP_PARENT_MATERIAL_NAME, parentMaterialName); - CHECK_PROPERTY_CHANGE(PROP_MATERIAL_MAPPING_POS, materialMappingPos); - CHECK_PROPERTY_CHANGE(PROP_MATERIAL_MAPPING_SCALE, materialMappingScale); - CHECK_PROPERTY_CHANGE(PROP_MATERIAL_MAPPING_ROT, materialMappingRot); - CHECK_PROPERTY_CHANGE(PROP_MATERIAL_DATA, materialData); - CHECK_PROPERTY_CHANGE(PROP_MATERIAL_REPEAT, materialRepeat); - CHECK_PROPERTY_CHANGE(PROP_VISIBLE_IN_SECONDARY_CAMERA, isVisibleInSecondaryCamera); + CHECK_PROPERTY_CHANGE(PROP_COLOR_SPREAD, colorSpread); + CHECK_PROPERTY_CHANGE(PROP_COLOR_START, colorStart); + CHECK_PROPERTY_CHANGE(PROP_COLOR_FINISH, colorFinish); + CHECK_PROPERTY_CHANGE(PROP_ALPHA_SPREAD, alphaSpread); + CHECK_PROPERTY_CHANGE(PROP_ALPHA_START, alphaStart); + CHECK_PROPERTY_CHANGE(PROP_ALPHA_FINISH, alphaFinish); + CHECK_PROPERTY_CHANGE(PROP_EMITTER_SHOULD_TRAIL, emitterShouldTrail); CHECK_PROPERTY_CHANGE(PROP_PARTICLE_SPIN, particleSpin); CHECK_PROPERTY_CHANGE(PROP_SPIN_SPREAD, spinSpread); CHECK_PROPERTY_CHANGE(PROP_SPIN_START, spinStart); CHECK_PROPERTY_CHANGE(PROP_SPIN_FINISH, spinFinish); CHECK_PROPERTY_CHANGE(PROP_PARTICLE_ROTATE_WITH_ENTITY, rotateWithEntity); - CHECK_PROPERTY_CHANGE(PROP_IMAGE_URL, imageURL); - CHECK_PROPERTY_CHANGE(PROP_EMISSIVE, emissive); - CHECK_PROPERTY_CHANGE(PROP_KEEP_ASPECT_RATIO, keepAspectRatio); - CHECK_PROPERTY_CHANGE(PROP_SUB_IMAGE, subImage); + // Model + CHECK_PROPERTY_CHANGE(PROP_MODEL_URL, modelURL); + CHECK_PROPERTY_CHANGE(PROP_JOINT_ROTATIONS_SET, jointRotationsSet); + CHECK_PROPERTY_CHANGE(PROP_JOINT_ROTATIONS, jointRotations); + CHECK_PROPERTY_CHANGE(PROP_JOINT_TRANSLATIONS_SET, jointTranslationsSet); + CHECK_PROPERTY_CHANGE(PROP_JOINT_TRANSLATIONS, jointTranslations); + CHECK_PROPERTY_CHANGE(PROP_RELAY_PARENT_JOINTS, relayParentJoints); + changedProperties += _animation.getChangedProperties(); - CHECK_PROPERTY_CHANGE(PROP_GRID_FOLLOW_CAMERA, followCamera); - CHECK_PROPERTY_CHANGE(PROP_MAJOR_GRID_EVERY, majorGridEvery); - CHECK_PROPERTY_CHANGE(PROP_MINOR_GRID_EVERY, minorGridEvery); + // Light + CHECK_PROPERTY_CHANGE(PROP_IS_SPOTLIGHT, isSpotlight); + CHECK_PROPERTY_CHANGE(PROP_INTENSITY, intensity); + CHECK_PROPERTY_CHANGE(PROP_EXPONENT, exponent); + CHECK_PROPERTY_CHANGE(PROP_CUTOFF, cutoff); + CHECK_PROPERTY_CHANGE(PROP_FALLOFF_RADIUS, falloffRadius); - // Certifiable Properties - CHECK_PROPERTY_CHANGE(PROP_ITEM_NAME, itemName); - CHECK_PROPERTY_CHANGE(PROP_ITEM_DESCRIPTION, itemDescription); - CHECK_PROPERTY_CHANGE(PROP_ITEM_CATEGORIES, itemCategories); - CHECK_PROPERTY_CHANGE(PROP_ITEM_ARTIST, itemArtist); - CHECK_PROPERTY_CHANGE(PROP_ITEM_LICENSE, itemLicense); - CHECK_PROPERTY_CHANGE(PROP_LIMITED_RUN, limitedRun); - CHECK_PROPERTY_CHANGE(PROP_MARKETPLACE_ID, marketplaceID); - CHECK_PROPERTY_CHANGE(PROP_EDITION_NUMBER, editionNumber); - CHECK_PROPERTY_CHANGE(PROP_ENTITY_INSTANCE_NUMBER, entityInstanceNumber); - CHECK_PROPERTY_CHANGE(PROP_CERTIFICATE_ID, certificateID); - CHECK_PROPERTY_CHANGE(PROP_STATIC_CERTIFICATE_VERSION, staticCertificateVersion); + // Text + CHECK_PROPERTY_CHANGE(PROP_TEXT, text); + CHECK_PROPERTY_CHANGE(PROP_LINE_HEIGHT, lineHeight); + CHECK_PROPERTY_CHANGE(PROP_TEXT_COLOR, textColor); + CHECK_PROPERTY_CHANGE(PROP_TEXT_ALPHA, textAlpha); + CHECK_PROPERTY_CHANGE(PROP_BACKGROUND_COLOR, backgroundColor); + CHECK_PROPERTY_CHANGE(PROP_BACKGROUND_ALPHA, backgroundAlpha); + CHECK_PROPERTY_CHANGE(PROP_BILLBOARD_MODE, billboardMode); + CHECK_PROPERTY_CHANGE(PROP_LEFT_MARGIN, leftMargin); + CHECK_PROPERTY_CHANGE(PROP_RIGHT_MARGIN, rightMargin); + CHECK_PROPERTY_CHANGE(PROP_TOP_MARGIN, topMargin); + CHECK_PROPERTY_CHANGE(PROP_BOTTOM_MARGIN, bottomMargin); - CHECK_PROPERTY_CHANGE(PROP_NAME, name); - - CHECK_PROPERTY_CHANGE(PROP_HAZE_MODE, hazeMode); + // Zone + changedProperties += _keyLight.getChangedProperties(); + changedProperties += _ambientLight.getChangedProperties(); + changedProperties += _skybox.getChangedProperties(); + changedProperties += _haze.getChangedProperties(); + changedProperties += _bloom.getChangedProperties(); + CHECK_PROPERTY_CHANGE(PROP_FLYING_ALLOWED, flyingAllowed); + CHECK_PROPERTY_CHANGE(PROP_GHOSTING_ALLOWED, ghostingAllowed); + CHECK_PROPERTY_CHANGE(PROP_FILTER_URL, filterURL); CHECK_PROPERTY_CHANGE(PROP_KEY_LIGHT_MODE, keyLightMode); CHECK_PROPERTY_CHANGE(PROP_AMBIENT_LIGHT_MODE, ambientLightMode); CHECK_PROPERTY_CHANGE(PROP_SKYBOX_MODE, skyboxMode); + CHECK_PROPERTY_CHANGE(PROP_HAZE_MODE, hazeMode); CHECK_PROPERTY_CHANGE(PROP_BLOOM_MODE, bloomMode); - CHECK_PROPERTY_CHANGE(PROP_SOURCE_URL, sourceUrl); + // Polyvox CHECK_PROPERTY_CHANGE(PROP_VOXEL_VOLUME_SIZE, voxelVolumeSize); CHECK_PROPERTY_CHANGE(PROP_VOXEL_DATA, voxelData); CHECK_PROPERTY_CHANGE(PROP_VOXEL_SURFACE_STYLE, voxelSurfaceStyle); - CHECK_PROPERTY_CHANGE(PROP_LINE_WIDTH, lineWidth); - CHECK_PROPERTY_CHANGE(PROP_LINE_POINTS, linePoints); - CHECK_PROPERTY_CHANGE(PROP_HREF, href); - CHECK_PROPERTY_CHANGE(PROP_DESCRIPTION, description); - CHECK_PROPERTY_CHANGE(PROP_BILLBOARD_MODE, billboardMode); - CHECK_PROPERTY_CHANGE(PROP_ACTION_DATA, actionData); - CHECK_PROPERTY_CHANGE(PROP_NORMALS, normals); - CHECK_PROPERTY_CHANGE(PROP_STROKE_COLORS, strokeColors); - CHECK_PROPERTY_CHANGE(PROP_STROKE_WIDTHS, strokeWidths); - CHECK_PROPERTY_CHANGE(PROP_IS_UV_MODE_STRETCH, isUVModeStretch); CHECK_PROPERTY_CHANGE(PROP_X_TEXTURE_URL, xTextureURL); CHECK_PROPERTY_CHANGE(PROP_Y_TEXTURE_URL, yTextureURL); CHECK_PROPERTY_CHANGE(PROP_Z_TEXTURE_URL, zTextureURL); @@ -487,44 +516,42 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { CHECK_PROPERTY_CHANGE(PROP_X_P_NEIGHBOR_ID, xPNeighborID); CHECK_PROPERTY_CHANGE(PROP_Y_P_NEIGHBOR_ID, yPNeighborID); CHECK_PROPERTY_CHANGE(PROP_Z_P_NEIGHBOR_ID, zPNeighborID); - CHECK_PROPERTY_CHANGE(PROP_PARENT_ID, parentID); - CHECK_PROPERTY_CHANGE(PROP_PARENT_JOINT_INDEX, parentJointIndex); - CHECK_PROPERTY_CHANGE(PROP_JOINT_ROTATIONS_SET, jointRotationsSet); - CHECK_PROPERTY_CHANGE(PROP_JOINT_ROTATIONS, jointRotations); - CHECK_PROPERTY_CHANGE(PROP_JOINT_TRANSLATIONS_SET, jointTranslationsSet); - CHECK_PROPERTY_CHANGE(PROP_JOINT_TRANSLATIONS, jointTranslations); - CHECK_PROPERTY_CHANGE(PROP_QUERY_AA_CUBE, queryAACube); - CHECK_PROPERTY_CHANGE(PROP_LOCAL_POSITION, localPosition); - CHECK_PROPERTY_CHANGE(PROP_LOCAL_ROTATION, localRotation); - CHECK_PROPERTY_CHANGE(PROP_LOCAL_VELOCITY, localVelocity); - CHECK_PROPERTY_CHANGE(PROP_LOCAL_ANGULAR_VELOCITY, localAngularVelocity); - CHECK_PROPERTY_CHANGE(PROP_LOCAL_DIMENSIONS, localDimensions); - CHECK_PROPERTY_CHANGE(PROP_FLYING_ALLOWED, flyingAllowed); - CHECK_PROPERTY_CHANGE(PROP_GHOSTING_ALLOWED, ghostingAllowed); - CHECK_PROPERTY_CHANGE(PROP_FILTER_URL, filterURL); - - CHECK_PROPERTY_CHANGE(PROP_ENTITY_HOST_TYPE, entityHostType); - CHECK_PROPERTY_CHANGE(PROP_OWNING_AVATAR_ID, owningAvatarID); - - CHECK_PROPERTY_CHANGE(PROP_SHAPE, shape); + // Web + CHECK_PROPERTY_CHANGE(PROP_SOURCE_URL, sourceUrl); CHECK_PROPERTY_CHANGE(PROP_DPI, dpi); - CHECK_PROPERTY_CHANGE(PROP_RELAY_PARENT_JOINTS, relayParentJoints); - CHECK_PROPERTY_CHANGE(PROP_CLONEABLE, cloneable); - CHECK_PROPERTY_CHANGE(PROP_CLONE_LIFETIME, cloneLifetime); - CHECK_PROPERTY_CHANGE(PROP_CLONE_LIMIT, cloneLimit); - CHECK_PROPERTY_CHANGE(PROP_CLONE_DYNAMIC, cloneDynamic); - CHECK_PROPERTY_CHANGE(PROP_CLONE_AVATAR_ENTITY, cloneAvatarEntity); - CHECK_PROPERTY_CHANGE(PROP_CLONE_ORIGIN_ID, cloneOriginID); + // Polyline + CHECK_PROPERTY_CHANGE(PROP_LINE_POINTS, linePoints); + CHECK_PROPERTY_CHANGE(PROP_STROKE_WIDTHS, strokeWidths); + CHECK_PROPERTY_CHANGE(PROP_STROKE_NORMALS, normals); + CHECK_PROPERTY_CHANGE(PROP_STROKE_COLORS, strokeColors); + CHECK_PROPERTY_CHANGE(PROP_IS_UV_MODE_STRETCH, isUVModeStretch); - changedProperties += _animation.getChangedProperties(); - changedProperties += _keyLight.getChangedProperties(); - changedProperties += _ambientLight.getChangedProperties(); - changedProperties += _skybox.getChangedProperties(); - changedProperties += _haze.getChangedProperties(); - changedProperties += _bloom.getChangedProperties(); - changedProperties += _grab.getChangedProperties(); + // Shape + CHECK_PROPERTY_CHANGE(PROP_SHAPE, shape); + + // Material + CHECK_PROPERTY_CHANGE(PROP_MATERIAL_URL, materialURL); + CHECK_PROPERTY_CHANGE(PROP_MATERIAL_MAPPING_MODE, materialMappingMode); + CHECK_PROPERTY_CHANGE(PROP_MATERIAL_PRIORITY, priority); + CHECK_PROPERTY_CHANGE(PROP_PARENT_MATERIAL_NAME, parentMaterialName); + CHECK_PROPERTY_CHANGE(PROP_MATERIAL_MAPPING_POS, materialMappingPos); + CHECK_PROPERTY_CHANGE(PROP_MATERIAL_MAPPING_SCALE, materialMappingScale); + CHECK_PROPERTY_CHANGE(PROP_MATERIAL_MAPPING_ROT, materialMappingRot); + CHECK_PROPERTY_CHANGE(PROP_MATERIAL_DATA, materialData); + CHECK_PROPERTY_CHANGE(PROP_MATERIAL_REPEAT, materialRepeat); + + // Image + CHECK_PROPERTY_CHANGE(PROP_IMAGE_URL, imageURL); + CHECK_PROPERTY_CHANGE(PROP_EMISSIVE, emissive); + CHECK_PROPERTY_CHANGE(PROP_KEEP_ASPECT_RATIO, keepAspectRatio); + CHECK_PROPERTY_CHANGE(PROP_SUB_IMAGE, subImage); + + // Grid + CHECK_PROPERTY_CHANGE(PROP_GRID_FOLLOW_CAMERA, followCamera); + CHECK_PROPERTY_CHANGE(PROP_MAJOR_GRID_EVERY, majorGridEvery); + CHECK_PROPERTY_CHANGE(PROP_MINOR_GRID_EVERY, minorGridEvery); return changedProperties; } @@ -619,16 +646,14 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * mass in the application of physics. * * @property {boolean} collisionless=false - Whether or not the entity should collide with items per its - * <code>collisionMask<code> property. If <code>true</code> then the entity does not collide. - * @property {boolean} ignoreForCollisions=false - Synonym for <code>collisionless</code>. + * <code>collisionMask<code> property. If <code>true</code> then the entity does not collide. A synonym is <code>ignoreForCollisions</code>. * @property {Entities.CollisionMask} collisionMask=31 - What types of items the entity should collide with. * @property {string} collidesWith="static,dynamic,kinematic,myAvatar,otherAvatar," - Synonym for <code>collisionMask</code>, * in text format. * @property {string} collisionSoundURL="" - The sound to play when the entity experiences a collision. Valid file formats are * as per the {@link SoundCache} object. * @property {boolean} dynamic=false - Whether or not the entity should be affected by collisions. If <code>true</code> then - * the entity's movement is affected by collisions. - * @property {boolean} collisionsWillMove=false - Synonym for <code>dynamic</code>. + * the entity's movement is affected by collisions. A synonym is <code>collisionsWillMove</code>. * * @property {string} href="" - A "hifi://" metaverse address that a user is taken to when they click on the entity. * @property {string} description="" - A description of the <code>href</code> property value. @@ -674,8 +699,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * is typically not used in scripts directly; rather, functions that manipulate an entity's actions update it. * The size of this property increases with the number of actions. Because this property value has to fit within a High * Fidelity datagram packet there is a limit to the number of actions that an entity can have, and edits which would result - * in overflow are rejected. - * <em>Read-only.</em> + * in overflow are rejected. <em>Read-only.</em> * @property {Entities.RenderInfo} renderInfo - Information on the cost of rendering the entity. Currently information is only * provided for <code>Model</code> entities. <em>Read-only.</em> * @@ -762,16 +786,15 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { */ /**jsdoc - * The <code>"Line"</code> {@link Entities.EntityType|EntityType} draws thin, straight lines between a sequence of two or more - * points. + * The <code>"Line"</code> {@link Entities.EntityType|EntityType} draws thin, straight lines between a sequence of two or more + * points. Deprecated: Use PolyLines instead. * It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}. * @typedef {object} Entities.EntityProperties-Line - * @property {Vec3} dimensions=0.1,0.1,0.1 - The dimensions of the entity. Must be sufficient to contain all the + * @property {Vec3} dimensions=0.1,0.1,0.1 - The dimensions of the entity. Must be sufficient to contain all the * <code>linePoints</code>. * @property {Vec3[]} linePoints=[]] - The sequence of points to draw lines between. The values are relative to the entity's - * position. A maximum of 70 points can be specified. The property's value is set only if all the <code>linePoints</code> + * position. A maximum of 70 points can be specified. The property's value is set only if all the <code>linePoints</code> * lie within the entity's <code>dimensions</code>. - * @property {number} lineWidth=2 - <em>Currently not used.</em> * @property {Color} color=255,255,255 - The color of the line. * @example <caption>Draw lines in a "V".</caption> * var entity = Entities.addEntity({ @@ -872,22 +895,22 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * * @property {Entities.AnimationProperties} animation - An animation to play on the model. * - * @property {Quat[]} jointRotations=[]] - Joint rotations applied to the model; <code>[]</code> if none are applied or the + * @property {Quat[]} jointRotations=[] - Joint rotations applied to the model; <code>[]</code> if none are applied or the * model hasn't loaded. The array indexes are per {@link Entities.getJointIndex|getJointIndex}. Rotations are relative to * each joint's parent.<br /> * Joint rotations can be set by {@link Entities.setLocalJointRotation|setLocalJointRotation} and similar functions, or by * setting the value of this property. If you set a joint rotation using this property you also need to set the * corresponding <code>jointRotationsSet</code> value to <code>true</code>. - * @property {boolean[]} jointRotationsSet=[]] - <code>true</code> values for joints that have had rotations applied, + * @property {boolean[]} jointRotationsSet=[] - <code>true</code> values for joints that have had rotations applied, * <code>false</code> otherwise; <code>[]</code> if none are applied or the model hasn't loaded. The array indexes are per * {@link Entities.getJointIndex|getJointIndex}. - * @property {Vec3[]} jointTranslations=[]] - Joint translations applied to the model; <code>[]</code> if none are applied or + * @property {Vec3[]} jointTranslations=[] - Joint translations applied to the model; <code>[]</code> if none are applied or * the model hasn't loaded. The array indexes are per {@link Entities.getJointIndex|getJointIndex}. Rotations are relative * to each joint's parent.<br /> * Joint translations can be set by {@link Entities.setLocalJointTranslation|setLocalJointTranslation} and similar * functions, or by setting the value of this property. If you set a joint translation using this property you also need to * set the corresponding <code>jointTranslationsSet</code> value to <code>true</code>. - * @property {boolean[]} jointTranslationsSet=[]] - <code>true</code> values for joints that have had translations applied, + * @property {boolean[]} jointTranslationsSet=[] - <code>true</code> values for joints that have had translations applied, * <code>false</code> otherwise; <code>[]</code> if none are applied or the model hasn't loaded. The array indexes are per * {@link Entities.getJointIndex|getJointIndex}. * @property {boolean} relayParentJoints=false - If <code>true</code> and the entity is parented to an avatar, then the @@ -1015,16 +1038,15 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * @typedef {object} Entities.EntityProperties-PolyLine * @property {Vec3} dimensions=1,1,1 - The dimensions of the entity, i.e., the size of the bounding box that contains the * lines drawn. - * @property {Vec3[]} linePoints=[]] - The sequence of points to draw lines between. The values are relative to the entity's + * @property {Vec3[]} linePoints=[] - The sequence of points to draw lines between. The values are relative to the entity's * position. A maximum of 70 points can be specified. Must be specified in order for the entity to render. - * @property {Vec3[]} normals=[]] - The normal vectors for the line's surface at the <code>linePoints</code>. The values are + * @property {Vec3[]} normals=[] - The normal vectors for the line's surface at the <code>linePoints</code>. The values are * relative to the entity's orientation. Must be specified in order for the entity to render. - * @property {number[]} strokeWidths=[]] - The widths, in m, of the line at the <code>linePoints</code>. Must be specified in + * @property {number[]} strokeWidths=[] - The widths, in m, of the line at the <code>linePoints</code>. Must be specified in * order for the entity to render. - * @property {number} lineWidth=2 - <em>Currently not used.</code> - * @property {Vec3[]} strokeColors=[]] - <em>Currently not used.</em> - * @property {Color} color=255,255,255 - The base color of the line, which is multiplied with the color of the texture for - * rendering. + * @property {Vec3[]} strokeColors=[] - The base colors of each point, which are multiplied with the color of the texture, going from 0-1. + * If strokeColors.length < the number of points, <code>color</code> is used for the remaining points. + * @property {Color} color=255,255,255 - Used as the color for each point if <code>strokeColors</code> is too short. * @property {string} textures="" - The URL of a JPG or PNG texture to use for the lines. If you want transparency, use PNG * format. * @property {boolean} isUVModeStretch=true - If <code>true</code>, the texture is stretched to fill the whole line, otherwise @@ -1141,11 +1163,17 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * created using <code>\n</code>. Overflowing lines are not displayed. * @property {number} lineHeight=0.1 - The height of each line of text (thus determining the font size). * @property {Color} textColor=255,255,255 - The color of the text. + * @property {number} textAlpha=1.0 - The text alpha. * @property {Color} backgroundColor=0,0,0 - The color of the background rectangle. + * @property {number} backgroundAlpha=1.0 - The background alpha. * @property {BillboardMode} billboardMode="none" - If <code>"none"</code>, the entity is not billboarded. If <code>"yaw"</code>, the entity will be * oriented to follow your camera around the y-axis. If <code>"full"</code> the entity will be oriented to face your camera. The following deprecated * behavior is also supported: you can also set <code>"faceCamera"</code> to <code>true</code> to set <code>billboardMode</code> to "yaw", and you can set * <code>"isFacingAvatar"</code> to <code>true</code> to set <code>billboardMode</code> to "full". Setting either to <code>false</code> sets the mode to "none" + * @property {number} leftMargin=0.0 - The left margin, in meters. + * @property {number} rightMargin=0.0 - The right margin, in meters. + * @property {number} topMargin=0.0 - The top margin, in meters. + * @property {number} bottomMargin=0.0 - The bottom margin, in meters. * @example <caption>Create a text entity.</caption> * var text = Entities.addEntity({ * type: "Text", @@ -1344,7 +1372,6 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool created.setTimeSpec(Qt::OffsetFromUTC); COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER_ALWAYS(created, created.toString(Qt::ISODate)); } - if ((!skipDefaults || _lifetime != defaultEntityProperties._lifetime) && !strictSemantics) { if (!psuedoPropertyFlagsActive || psueudoPropertyFlags.test(EntityPsuedoPropertyFlag::Age)) { COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER_NO_SKIP(age, getAge()); // gettable, but not settable @@ -1353,46 +1380,69 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER_NO_SKIP(ageAsText, formatSecondsElapsed(getAge())); // gettable, but not settable } } - if (!psuedoPropertyFlagsActive || psueudoPropertyFlags.test(EntityPsuedoPropertyFlag::LastEdited)) { properties.setProperty("lastEdited", convertScriptValue(engine, _lastEdited)); } - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LAST_EDITED_BY, lastEditedBy); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_POSITION, position); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DIMENSIONS, dimensions); if (!skipDefaults) { COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DIMENSIONS, naturalDimensions); // gettable, but not settable COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_POSITION, naturalPosition); } + + // Core properties + //COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SIMULATION_OWNER, simulationOwner); // not exposed yet + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_VISIBLE, visible); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_NAME, name); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCKED, locked); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_USER_DATA, userData); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_HREF, href); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DESCRIPTION, description); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_POSITION, position); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DIMENSIONS, dimensions); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ROTATION, rotation); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_REGISTRATION_POINT, registrationPoint); + //COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CREATED, created); // handled above + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LAST_EDITED_BY, lastEditedBy); + COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_ENTITY_HOST_TYPE, entityHostType, getEntityHostTypeAsString()); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_OWNING_AVATAR_ID, owningAvatarID); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_PARENT_ID, parentID); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_PARENT_JOINT_INDEX, parentJointIndex); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_QUERY_AA_CUBE, queryAACube); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CAN_CAST_SHADOW, canCastShadow); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_VISIBLE_IN_SECONDARY_CAMERA, isVisibleInSecondaryCamera); + _grab.copyToScriptValue(_desiredProperties, properties, engine, skipDefaults, defaultEntityProperties); + + // Physics + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DENSITY, density); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_VELOCITY, velocity); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ANGULAR_VELOCITY, angularVelocity); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_GRAVITY, gravity); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ACCELERATION, acceleration); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DAMPING, damping); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ANGULAR_DAMPING, angularDamping); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_RESTITUTION, restitution); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_FRICTION, friction); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DENSITY, density); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LIFETIME, lifetime); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SCRIPT, script); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SCRIPT_TIMESTAMP, scriptTimestamp); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SERVER_SCRIPTS, serverScripts); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_REGISTRATION_POINT, registrationPoint); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ANGULAR_VELOCITY, angularVelocity); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ANGULAR_DAMPING, angularDamping); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_VISIBLE, visible); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CAN_CAST_SHADOW, canCastShadow); // Relevant to Shape and Model entities only. COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_COLLISIONLESS, collisionless); COPY_PROXY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_COLLISIONLESS, collisionless, ignoreForCollisions, getCollisionless()); // legacy support COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_COLLISION_MASK, collisionMask); COPY_PROXY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_COLLISION_MASK, collisionMask, collidesWith, getCollisionMaskAsString()); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DYNAMIC, dynamic); COPY_PROXY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_DYNAMIC, dynamic, collisionsWillMove, getDynamic()); // legacy support - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_HREF, href); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DESCRIPTION, description); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_COLLISION_SOUND_URL, collisionSoundURL); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ACTION_DATA, actionData); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCKED, locked); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_USER_DATA, userData); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_VISIBLE_IN_SECONDARY_CAMERA, isVisibleInSecondaryCamera); + + // Cloning + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONEABLE, cloneable); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONE_LIFETIME, cloneLifetime); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONE_LIMIT, cloneLimit); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONE_DYNAMIC, cloneDynamic); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONE_AVATAR_ENTITY, cloneAvatarEntity); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONE_ORIGIN_ID, cloneOriginID); + + // Scripts + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SCRIPT, script); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SCRIPT_TIMESTAMP, scriptTimestamp); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SERVER_SCRIPTS, serverScripts); // Certifiable Properties COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ITEM_NAME, itemName); @@ -1407,12 +1457,20 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CERTIFICATE_ID, certificateID); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_STATIC_CERTIFICATE_VERSION, staticCertificateVersion); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_NAME, name); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_COLLISION_SOUND_URL, collisionSoundURL); + // Local props for scripts + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_POSITION, localPosition); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_ROTATION, localRotation); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_VELOCITY, localVelocity); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_ANGULAR_VELOCITY, localAngularVelocity); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_DIMENSIONS, localDimensions); // Particles only if (_type == EntityTypes::ParticleEffect) { COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_SHAPE_TYPE, shapeType, getShapeTypeAsString()); + COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ALPHA, alpha); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_TEXTURES, textures); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_MAX_PARTICLES, maxParticles); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LIFESPAN, lifespan); @@ -1437,17 +1495,14 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_RADIUS_START, radiusStart); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_RADIUS_FINISH, radiusFinish); - COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR_SPREAD, colorSpread, u8vec3Color); COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR_START, colorStart, vec3Color); COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR_FINISH, colorFinish, vec3Color); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ALPHA, alpha); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ALPHA_SPREAD, alphaSpread); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ALPHA_START, alphaStart); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ALPHA_FINISH, alphaFinish); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_TEXTURES, textures); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_EMITTER_SHOULD_TRAIL, emitterShouldTrail); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_PARTICLE_SPIN, particleSpin); @@ -1459,11 +1514,12 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool // Models only if (_type == EntityTypes::Model) { - COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_MODEL_URL, modelURL); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_COMPOUND_SHAPE_URL, compoundShapeURL); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_TEXTURES, textures); COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_SHAPE_TYPE, shapeType, getShapeTypeAsString()); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_COMPOUND_SHAPE_URL, compoundShapeURL); + COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_TEXTURES, textures); + + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_MODEL_URL, modelURL); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_JOINT_ROTATIONS_SET, jointRotationsSet); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_JOINT_ROTATIONS, jointRotations); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_JOINT_TRANSLATIONS_SET, jointTranslationsSet); @@ -1483,15 +1539,15 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool } if (_type == EntityTypes::Box || _type == EntityTypes::Sphere || _type == EntityTypes::Shape) { - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SHAPE, shape); COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ALPHA, alpha); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SHAPE, shape); } // Lights only if (_type == EntityTypes::Light) { - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_IS_SPOTLIGHT, isSpotlight); COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_IS_SPOTLIGHT, isSpotlight); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_INTENSITY, intensity); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_EXPONENT, exponent); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CUTOFF, cutoff); @@ -1503,12 +1559,21 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_TEXT, text); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LINE_HEIGHT, lineHeight); COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER_TYPED(PROP_TEXT_COLOR, textColor, getTextColor(), u8vec3Color); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_TEXT_ALPHA, textAlpha); COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER_TYPED(PROP_BACKGROUND_COLOR, backgroundColor, getBackgroundColor(), u8vec3Color); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_BACKGROUND_ALPHA, backgroundAlpha); COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_BILLBOARD_MODE, billboardMode, getBillboardModeAsString()); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LEFT_MARGIN, leftMargin); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_RIGHT_MARGIN, rightMargin); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_TOP_MARGIN, topMargin); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_BOTTOM_MARGIN, bottomMargin); } // Zones only if (_type == EntityTypes::Zone) { + COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_SHAPE_TYPE, shapeType, getShapeTypeAsString()); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_COMPOUND_SHAPE_URL, compoundShapeURL); + if (!psuedoPropertyFlagsButDesiredEmpty) { _keyLight.copyToScriptValue(_desiredProperties, properties, engine, skipDefaults, defaultEntityProperties); _ambientLight.copyToScriptValue(_desiredProperties, properties, engine, skipDefaults, defaultEntityProperties); @@ -1516,8 +1581,6 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool _haze.copyToScriptValue(_desiredProperties, properties, engine, skipDefaults, defaultEntityProperties); _bloom.copyToScriptValue(_desiredProperties, properties, engine, skipDefaults, defaultEntityProperties); } - COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_SHAPE_TYPE, shapeType, getShapeTypeAsString()); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_COMPOUND_SHAPE_URL, compoundShapeURL); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_FLYING_ALLOWED, flyingAllowed); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_GHOSTING_ALLOWED, ghostingAllowed); @@ -1554,22 +1617,22 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_Z_P_NEIGHBOR_ID, zPNeighborID); } - // Lines & PolyLines + // Lines if (_type == EntityTypes::Line) { COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LINE_WIDTH, lineWidth); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LINE_POINTS, linePoints); } + // Polylines if (_type == EntityTypes::PolyLine) { COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LINE_WIDTH, lineWidth); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LINE_POINTS, linePoints); - - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_NORMALS, normals); - COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_STROKE_COLORS, strokeColors, qVectorVec3Color); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_STROKE_WIDTHS, strokeWidths); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_TEXTURES, textures); + + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LINE_POINTS, linePoints); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_STROKE_WIDTHS, strokeWidths); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_STROKE_NORMALS, normals); + COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_STROKE_COLORS, strokeColors, qVectorVec3Color); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_IS_UV_MODE_STRETCH, isUVModeStretch); } @@ -1588,15 +1651,15 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool // Image only if (_type == EntityTypes::Image) { + COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ALPHA, alpha); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_IMAGE_URL, imageURL); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_EMISSIVE, emissive); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_KEEP_ASPECT_RATIO, keepAspectRatio); COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_BILLBOARD_MODE, billboardMode, getBillboardModeAsString()); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SUB_IMAGE, subImage); - COPY_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_COLOR, color, u8vec3Color); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ALPHA, alpha); - // Handle conversions to old 'textures' property from "imageURL" if (((!psuedoPropertyFlagsButDesiredEmpty && _desiredProperties.isEmpty()) || _desiredProperties.getHasProperty(PROP_IMAGE_URL)) && (!skipDefaults || defaultEntityProperties._imageURL != _imageURL)) { @@ -1645,29 +1708,6 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER_NO_SKIP(originalTextures, textureNamesStr); // gettable, but not settable } - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_PARENT_ID, parentID); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_PARENT_JOINT_INDEX, parentJointIndex); - - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_QUERY_AA_CUBE, queryAACube); - - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_POSITION, localPosition); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_ROTATION, localRotation); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_VELOCITY, localVelocity); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_ANGULAR_VELOCITY, localAngularVelocity); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LOCAL_DIMENSIONS, localDimensions); - - COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_ENTITY_HOST_TYPE, entityHostType, getEntityHostTypeAsString()); // Gettable but not settable except at entity creation - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_OWNING_AVATAR_ID, owningAvatarID); // Gettable but not settable - - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONEABLE, cloneable); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONE_LIFETIME, cloneLifetime); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONE_LIMIT, cloneLimit); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONE_DYNAMIC, cloneDynamic); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONE_AVATAR_ENTITY, cloneAvatarEntity); - COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CLONE_ORIGIN_ID, cloneOriginID); - - _grab.copyToScriptValue(_desiredProperties, properties, engine, skipDefaults, defaultEntityProperties); - // Rendering info if (!skipDefaults && !strictSemantics && (!psuedoPropertyFlagsActive || psueudoPropertyFlags.test(EntityPsuedoPropertyFlag::RenderInfo))) { @@ -1713,9 +1753,6 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool properties.setProperty("isFacingAvatar", convertScriptValue(engine, getBillboardMode() == BillboardMode::FULL)); } - // FIXME - I don't think these properties are supported any more - //COPY_PROPERTY_TO_QSCRIPTVALUE(localRenderAlpha); - return properties; } @@ -1725,57 +1762,100 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool setType(typeScriptValue.toVariant().toString()); } - COPY_PROPERTY_FROM_QSCRIPTVALUE(lastEditedBy, QUuid, setLastEditedBy); + if (!honorReadOnly) { + // this is used by the json reader to set things that we don't want javascript to able to affect. + COPY_PROPERTY_FROM_QSCRIPTVALUE_GETTER(created, QDateTime, setCreated, [this]() { + auto result = QDateTime::fromMSecsSinceEpoch(_created / 1000, Qt::UTC); // usec per msec + return result; + }); + // TODO: expose this to QScriptValue for JSON saves? + //COPY_PROPERTY_FROM_QSCRIPTVALUE(simulationOwner, ???, setSimulatorPriority); + } + + // Core + // simluationOwner above + COPY_PROPERTY_FROM_QSCRIPTVALUE(visible, bool, setVisible); + COPY_PROPERTY_FROM_QSCRIPTVALUE(name, QString, setName); + COPY_PROPERTY_FROM_QSCRIPTVALUE(locked, bool, setLocked); + COPY_PROPERTY_FROM_QSCRIPTVALUE(userData, QString, setUserData); + COPY_PROPERTY_FROM_QSCRIPTVALUE(href, QString, setHref); + COPY_PROPERTY_FROM_QSCRIPTVALUE(description, QString, setDescription); COPY_PROPERTY_FROM_QSCRIPTVALUE(position, vec3, setPosition); COPY_PROPERTY_FROM_QSCRIPTVALUE(dimensions, vec3, setDimensions); COPY_PROPERTY_FROM_QSCRIPTVALUE(rotation, quat, setRotation); + COPY_PROPERTY_FROM_QSCRIPTVALUE(registrationPoint, vec3, setRegistrationPoint); + // created is read only + COPY_PROPERTY_FROM_QSCRIPTVALUE(lastEditedBy, QUuid, setLastEditedBy); + COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(entityHostType, EntityHostType); + COPY_PROPERTY_FROM_QSCRIPTVALUE(owningAvatarID, QUuid, setOwningAvatarID); + COPY_PROPERTY_FROM_QSCRIPTVALUE(parentID, QUuid, setParentID); + COPY_PROPERTY_FROM_QSCRIPTVALUE(parentJointIndex, quint16, setParentJointIndex); + COPY_PROPERTY_FROM_QSCRIPTVALUE(queryAACube, AACube, setQueryAACube); // TODO: should scripts be able to set this? + COPY_PROPERTY_FROM_QSCRIPTVALUE(canCastShadow, bool, setCanCastShadow); + COPY_PROPERTY_FROM_QSCRIPTVALUE(isVisibleInSecondaryCamera, bool, setIsVisibleInSecondaryCamera); + _grab.copyFromScriptValue(object, _defaultSettings); + + // Physics COPY_PROPERTY_FROM_QSCRIPTVALUE(density, float, setDensity); COPY_PROPERTY_FROM_QSCRIPTVALUE(velocity, vec3, setVelocity); + COPY_PROPERTY_FROM_QSCRIPTVALUE(angularVelocity, vec3, setAngularVelocity); COPY_PROPERTY_FROM_QSCRIPTVALUE(gravity, vec3, setGravity); COPY_PROPERTY_FROM_QSCRIPTVALUE(acceleration, vec3, setAcceleration); COPY_PROPERTY_FROM_QSCRIPTVALUE(damping, float, setDamping); + COPY_PROPERTY_FROM_QSCRIPTVALUE(angularDamping, float, setAngularDamping); COPY_PROPERTY_FROM_QSCRIPTVALUE(restitution, float, setRestitution); COPY_PROPERTY_FROM_QSCRIPTVALUE(friction, float, setFriction); COPY_PROPERTY_FROM_QSCRIPTVALUE(lifetime, float, setLifetime); - COPY_PROPERTY_FROM_QSCRIPTVALUE(script, QString, setScript); - COPY_PROPERTY_FROM_QSCRIPTVALUE(scriptTimestamp, quint64, setScriptTimestamp); - COPY_PROPERTY_FROM_QSCRIPTVALUE(serverScripts, QString, setServerScripts); - COPY_PROPERTY_FROM_QSCRIPTVALUE(registrationPoint, vec3, setRegistrationPoint); - COPY_PROPERTY_FROM_QSCRIPTVALUE(angularVelocity, vec3, setAngularVelocity); - COPY_PROPERTY_FROM_QSCRIPTVALUE(angularDamping, float, setAngularDamping); - COPY_PROPERTY_FROM_QSCRIPTVALUE(visible, bool, setVisible); - COPY_PROPERTY_FROM_QSCRIPTVALUE(canCastShadow, bool, setCanCastShadow); - COPY_PROPERTY_FROM_QSCRIPTVALUE(color, u8vec3Color, setColor); - COPY_PROPERTY_FROM_QSCRIPTVALUE(colorSpread, u8vec3Color, setColorSpread); - COPY_PROPERTY_FROM_QSCRIPTVALUE(colorStart, vec3Color, setColorStart); - COPY_PROPERTY_FROM_QSCRIPTVALUE(colorFinish, vec3Color, setColorFinish); - COPY_PROPERTY_FROM_QSCRIPTVALUE(alpha, float, setAlpha); - COPY_PROPERTY_FROM_QSCRIPTVALUE(alphaSpread, float, setAlphaSpread); - COPY_PROPERTY_FROM_QSCRIPTVALUE(alphaStart, float, setAlphaStart); - COPY_PROPERTY_FROM_QSCRIPTVALUE(alphaFinish, float, setAlphaFinish); - COPY_PROPERTY_FROM_QSCRIPTVALUE(emitterShouldTrail, bool, setEmitterShouldTrail); - COPY_PROPERTY_FROM_QSCRIPTVALUE(modelURL, QString, setModelURL); - COPY_PROPERTY_FROM_QSCRIPTVALUE(compoundShapeURL, QString, setCompoundShapeURL); - COPY_PROPERTY_FROM_QSCRIPTVALUE(localRenderAlpha, float, setLocalRenderAlpha); COPY_PROPERTY_FROM_QSCRIPTVALUE(collisionless, bool, setCollisionless); COPY_PROPERTY_FROM_QSCRIPTVALUE_GETTER(ignoreForCollisions, bool, setCollisionless, getCollisionless); // legacy support COPY_PROPERTY_FROM_QSCRIPTVALUE(collisionMask, uint16_t, setCollisionMask); COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(collidesWith, CollisionMask); COPY_PROPERTY_FROM_QSCRIPTVALUE_GETTER(collisionsWillMove, bool, setDynamic, getDynamic); // legacy support COPY_PROPERTY_FROM_QSCRIPTVALUE(dynamic, bool, setDynamic); - COPY_PROPERTY_FROM_QSCRIPTVALUE(isSpotlight, bool, setIsSpotlight); - COPY_PROPERTY_FROM_QSCRIPTVALUE(intensity, float, setIntensity); - COPY_PROPERTY_FROM_QSCRIPTVALUE(falloffRadius, float, setFalloffRadius); - COPY_PROPERTY_FROM_QSCRIPTVALUE(exponent, float, setExponent); - COPY_PROPERTY_FROM_QSCRIPTVALUE(cutoff, float, setCutoff); - COPY_PROPERTY_FROM_QSCRIPTVALUE(locked, bool, setLocked); - COPY_PROPERTY_FROM_QSCRIPTVALUE(textures, QString, setTextures); - COPY_PROPERTY_FROM_QSCRIPTVALUE(userData, QString, setUserData); - COPY_PROPERTY_FROM_QSCRIPTVALUE(text, QString, setText); - COPY_PROPERTY_FROM_QSCRIPTVALUE(lineHeight, float, setLineHeight); - COPY_PROPERTY_FROM_QSCRIPTVALUE(textColor, u8vec3Color, setTextColor); - COPY_PROPERTY_FROM_QSCRIPTVALUE(backgroundColor, u8vec3Color, setBackgroundColor); + COPY_PROPERTY_FROM_QSCRIPTVALUE(collisionSoundURL, QString, setCollisionSoundURL); + COPY_PROPERTY_FROM_QSCRIPTVALUE(actionData, QByteArray, setActionData); // TODO: should scripts be able to set this? + + // Cloning + COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneable, bool, setCloneable); + COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneLifetime, float, setCloneLifetime); + COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneLimit, float, setCloneLimit); + COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneDynamic, bool, setCloneDynamic); + COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneAvatarEntity, bool, setCloneAvatarEntity); + COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneOriginID, QUuid, setCloneOriginID); + + // Scripts + COPY_PROPERTY_FROM_QSCRIPTVALUE(script, QString, setScript); + COPY_PROPERTY_FROM_QSCRIPTVALUE(scriptTimestamp, quint64, setScriptTimestamp); + COPY_PROPERTY_FROM_QSCRIPTVALUE(serverScripts, QString, setServerScripts); + + // Certifiable Properties + COPY_PROPERTY_FROM_QSCRIPTVALUE(itemName, QString, setItemName); + COPY_PROPERTY_FROM_QSCRIPTVALUE(itemDescription, QString, setItemDescription); + COPY_PROPERTY_FROM_QSCRIPTVALUE(itemCategories, QString, setItemCategories); + COPY_PROPERTY_FROM_QSCRIPTVALUE(itemArtist, QString, setItemArtist); + COPY_PROPERTY_FROM_QSCRIPTVALUE(itemLicense, QString, setItemLicense); + COPY_PROPERTY_FROM_QSCRIPTVALUE(limitedRun, quint32, setLimitedRun); + COPY_PROPERTY_FROM_QSCRIPTVALUE(marketplaceID, QString, setMarketplaceID); + COPY_PROPERTY_FROM_QSCRIPTVALUE(editionNumber, quint32, setEditionNumber); + COPY_PROPERTY_FROM_QSCRIPTVALUE(entityInstanceNumber, quint32, setEntityInstanceNumber); + COPY_PROPERTY_FROM_QSCRIPTVALUE(certificateID, QString, setCertificateID); + COPY_PROPERTY_FROM_QSCRIPTVALUE(staticCertificateVersion, quint32, setStaticCertificateVersion); + + // Script location data + COPY_PROPERTY_FROM_QSCRIPTVALUE(localPosition, vec3, setLocalPosition); + COPY_PROPERTY_FROM_QSCRIPTVALUE(localRotation, quat, setLocalRotation); + COPY_PROPERTY_FROM_QSCRIPTVALUE(localVelocity, vec3, setLocalVelocity); + COPY_PROPERTY_FROM_QSCRIPTVALUE(localAngularVelocity, vec3, setLocalAngularVelocity); + COPY_PROPERTY_FROM_QSCRIPTVALUE(localDimensions, vec3, setLocalDimensions); + + // Common COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(shapeType, ShapeType); + COPY_PROPERTY_FROM_QSCRIPTVALUE(compoundShapeURL, QString, setCompoundShapeURL); + COPY_PROPERTY_FROM_QSCRIPTVALUE(color, u8vec3Color, setColor); + COPY_PROPERTY_FROM_QSCRIPTVALUE(alpha, float, setAlpha); + COPY_PROPERTY_FROM_QSCRIPTVALUE(textures, QString, setTextures); + + // Particles COPY_PROPERTY_FROM_QSCRIPTVALUE(maxParticles, quint32, setMaxParticles); COPY_PROPERTY_FROM_QSCRIPTVALUE(lifespan, float, setLifespan); COPY_PROPERTY_FROM_QSCRIPTVALUE(isEmitting, bool, setIsEmitting); @@ -1795,7 +1875,92 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool COPY_PROPERTY_FROM_QSCRIPTVALUE(radiusSpread, float, setRadiusSpread); COPY_PROPERTY_FROM_QSCRIPTVALUE(radiusStart, float, setRadiusStart); COPY_PROPERTY_FROM_QSCRIPTVALUE(radiusFinish, float, setRadiusFinish); + COPY_PROPERTY_FROM_QSCRIPTVALUE(colorSpread, u8vec3Color, setColorSpread); + COPY_PROPERTY_FROM_QSCRIPTVALUE(colorStart, vec3Color, setColorStart); + COPY_PROPERTY_FROM_QSCRIPTVALUE(colorFinish, vec3Color, setColorFinish); + COPY_PROPERTY_FROM_QSCRIPTVALUE(alphaSpread, float, setAlphaSpread); + COPY_PROPERTY_FROM_QSCRIPTVALUE(alphaStart, float, setAlphaStart); + COPY_PROPERTY_FROM_QSCRIPTVALUE(alphaFinish, float, setAlphaFinish); + COPY_PROPERTY_FROM_QSCRIPTVALUE(emitterShouldTrail, bool, setEmitterShouldTrail); + COPY_PROPERTY_FROM_QSCRIPTVALUE(particleSpin, float, setParticleSpin); + COPY_PROPERTY_FROM_QSCRIPTVALUE(spinSpread, float, setSpinSpread); + COPY_PROPERTY_FROM_QSCRIPTVALUE(spinStart, float, setSpinStart); + COPY_PROPERTY_FROM_QSCRIPTVALUE(spinFinish, float, setSpinFinish); + COPY_PROPERTY_FROM_QSCRIPTVALUE(rotateWithEntity, bool, setRotateWithEntity); + + // Model + COPY_PROPERTY_FROM_QSCRIPTVALUE(modelURL, QString, setModelURL); + COPY_PROPERTY_FROM_QSCRIPTVALUE(jointRotationsSet, qVectorBool, setJointRotationsSet); + COPY_PROPERTY_FROM_QSCRIPTVALUE(jointRotations, qVectorQuat, setJointRotations); + COPY_PROPERTY_FROM_QSCRIPTVALUE(jointTranslationsSet, qVectorBool, setJointTranslationsSet); + COPY_PROPERTY_FROM_QSCRIPTVALUE(jointTranslations, qVectorVec3, setJointTranslations); COPY_PROPERTY_FROM_QSCRIPTVALUE(relayParentJoints, bool, setRelayParentJoints); + _animation.copyFromScriptValue(object, _defaultSettings); + + // Light + COPY_PROPERTY_FROM_QSCRIPTVALUE(isSpotlight, bool, setIsSpotlight); + COPY_PROPERTY_FROM_QSCRIPTVALUE(intensity, float, setIntensity); + COPY_PROPERTY_FROM_QSCRIPTVALUE(exponent, float, setExponent); + COPY_PROPERTY_FROM_QSCRIPTVALUE(cutoff, float, setCutoff); + COPY_PROPERTY_FROM_QSCRIPTVALUE(falloffRadius, float, setFalloffRadius); + + // Text + COPY_PROPERTY_FROM_QSCRIPTVALUE(text, QString, setText); + COPY_PROPERTY_FROM_QSCRIPTVALUE(lineHeight, float, setLineHeight); + COPY_PROPERTY_FROM_QSCRIPTVALUE(textColor, u8vec3Color, setTextColor); + COPY_PROPERTY_FROM_QSCRIPTVALUE(textAlpha, float, setTextAlpha); + COPY_PROPERTY_FROM_QSCRIPTVALUE(backgroundColor, u8vec3Color, setBackgroundColor); + COPY_PROPERTY_FROM_QSCRIPTVALUE(backgroundAlpha, float, setBackgroundAlpha); + COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(billboardMode, BillboardMode); + COPY_PROPERTY_FROM_QSCRIPTVALUE(leftMargin, float, setLeftMargin); + COPY_PROPERTY_FROM_QSCRIPTVALUE(rightMargin, float, setRightMargin); + COPY_PROPERTY_FROM_QSCRIPTVALUE(topMargin, float, setTopMargin); + COPY_PROPERTY_FROM_QSCRIPTVALUE(bottomMargin, float, setBottomMargin); + + // Zone + _keyLight.copyFromScriptValue(object, _defaultSettings); + _ambientLight.copyFromScriptValue(object, _defaultSettings); + _skybox.copyFromScriptValue(object, _defaultSettings); + _haze.copyFromScriptValue(object, _defaultSettings); + _bloom.copyFromScriptValue(object, _defaultSettings); + COPY_PROPERTY_FROM_QSCRIPTVALUE(flyingAllowed, bool, setFlyingAllowed); + COPY_PROPERTY_FROM_QSCRIPTVALUE(ghostingAllowed, bool, setGhostingAllowed); + COPY_PROPERTY_FROM_QSCRIPTVALUE(filterURL, QString, setFilterURL); + COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(keyLightMode, KeyLightMode); + COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(ambientLightMode, AmbientLightMode); + COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(skyboxMode, SkyboxMode); + COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(hazeMode, HazeMode); + COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(bloomMode, BloomMode); + + // Polyvox + COPY_PROPERTY_FROM_QSCRIPTVALUE(voxelVolumeSize, vec3, setVoxelVolumeSize); + COPY_PROPERTY_FROM_QSCRIPTVALUE(voxelData, QByteArray, setVoxelData); + COPY_PROPERTY_FROM_QSCRIPTVALUE(voxelSurfaceStyle, uint16_t, setVoxelSurfaceStyle); + COPY_PROPERTY_FROM_QSCRIPTVALUE(xTextureURL, QString, setXTextureURL); + COPY_PROPERTY_FROM_QSCRIPTVALUE(yTextureURL, QString, setYTextureURL); + COPY_PROPERTY_FROM_QSCRIPTVALUE(zTextureURL, QString, setZTextureURL); + COPY_PROPERTY_FROM_QSCRIPTVALUE(xNNeighborID, EntityItemID, setXNNeighborID); + COPY_PROPERTY_FROM_QSCRIPTVALUE(yNNeighborID, EntityItemID, setYNNeighborID); + COPY_PROPERTY_FROM_QSCRIPTVALUE(zNNeighborID, EntityItemID, setZNNeighborID); + COPY_PROPERTY_FROM_QSCRIPTVALUE(xPNeighborID, EntityItemID, setXPNeighborID); + COPY_PROPERTY_FROM_QSCRIPTVALUE(yPNeighborID, EntityItemID, setYPNeighborID); + COPY_PROPERTY_FROM_QSCRIPTVALUE(zPNeighborID, EntityItemID, setZPNeighborID); + + // Web + COPY_PROPERTY_FROM_QSCRIPTVALUE(sourceUrl, QString, setSourceUrl); + COPY_PROPERTY_FROM_QSCRIPTVALUE(dpi, uint16_t, setDPI); + + // Polyline + COPY_PROPERTY_FROM_QSCRIPTVALUE(linePoints, qVectorVec3, setLinePoints); + COPY_PROPERTY_FROM_QSCRIPTVALUE(strokeWidths, qVectorFloat, setStrokeWidths); + COPY_PROPERTY_FROM_QSCRIPTVALUE(normals, qVectorVec3, setNormals); + COPY_PROPERTY_FROM_QSCRIPTVALUE(strokeColors, qVectorVec3, setStrokeColors); + COPY_PROPERTY_FROM_QSCRIPTVALUE(isUVModeStretch, bool, setIsUVModeStretch); + + // Shape + COPY_PROPERTY_FROM_QSCRIPTVALUE(shape, QString, setShape); + + // Material COPY_PROPERTY_FROM_QSCRIPTVALUE(materialURL, QString, setMaterialURL); COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(materialMappingMode, MaterialMappingMode); COPY_PROPERTY_FROM_QSCRIPTVALUE(priority, quint16, setPriority); @@ -1805,121 +1970,18 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool COPY_PROPERTY_FROM_QSCRIPTVALUE(materialMappingRot, float, setMaterialMappingRot); COPY_PROPERTY_FROM_QSCRIPTVALUE(materialData, QString, setMaterialData); COPY_PROPERTY_FROM_QSCRIPTVALUE(materialRepeat, bool, setMaterialRepeat); - COPY_PROPERTY_FROM_QSCRIPTVALUE(isVisibleInSecondaryCamera, bool, setIsVisibleInSecondaryCamera); - COPY_PROPERTY_FROM_QSCRIPTVALUE(particleSpin, float, setParticleSpin); - COPY_PROPERTY_FROM_QSCRIPTVALUE(spinSpread, float, setSpinSpread); - COPY_PROPERTY_FROM_QSCRIPTVALUE(spinStart, float, setSpinStart); - COPY_PROPERTY_FROM_QSCRIPTVALUE(spinFinish, float, setSpinFinish); - COPY_PROPERTY_FROM_QSCRIPTVALUE(rotateWithEntity, bool, setRotateWithEntity); - - // Certifiable Properties - COPY_PROPERTY_FROM_QSCRIPTVALUE(itemName, QString, setItemName); - COPY_PROPERTY_FROM_QSCRIPTVALUE(itemDescription, QString, setItemDescription); - COPY_PROPERTY_FROM_QSCRIPTVALUE(itemCategories, QString, setItemCategories); - COPY_PROPERTY_FROM_QSCRIPTVALUE(itemArtist, QString, setItemArtist); - COPY_PROPERTY_FROM_QSCRIPTVALUE(itemLicense, QString, setItemLicense); - COPY_PROPERTY_FROM_QSCRIPTVALUE(limitedRun, quint32, setLimitedRun); - COPY_PROPERTY_FROM_QSCRIPTVALUE(marketplaceID, QString, setMarketplaceID); - COPY_PROPERTY_FROM_QSCRIPTVALUE(editionNumber, quint32, setEditionNumber); - COPY_PROPERTY_FROM_QSCRIPTVALUE(entityInstanceNumber, quint32, setEntityInstanceNumber); - COPY_PROPERTY_FROM_QSCRIPTVALUE(certificateID, QString, setCertificateID); - COPY_PROPERTY_FROM_QSCRIPTVALUE(staticCertificateVersion, quint32, setStaticCertificateVersion); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(name, QString, setName); - COPY_PROPERTY_FROM_QSCRIPTVALUE(collisionSoundURL, QString, setCollisionSoundURL); - - COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(hazeMode, HazeMode); - COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(keyLightMode, KeyLightMode); - COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(ambientLightMode, AmbientLightMode); - COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(skyboxMode, SkyboxMode); - COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(bloomMode, BloomMode); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(sourceUrl, QString, setSourceUrl); - COPY_PROPERTY_FROM_QSCRIPTVALUE(voxelVolumeSize, vec3, setVoxelVolumeSize); - COPY_PROPERTY_FROM_QSCRIPTVALUE(voxelData, QByteArray, setVoxelData); - COPY_PROPERTY_FROM_QSCRIPTVALUE(voxelSurfaceStyle, uint16_t, setVoxelSurfaceStyle); - COPY_PROPERTY_FROM_QSCRIPTVALUE(lineWidth, float, setLineWidth); - COPY_PROPERTY_FROM_QSCRIPTVALUE(linePoints, qVectorVec3, setLinePoints); - COPY_PROPERTY_FROM_QSCRIPTVALUE(href, QString, setHref); - COPY_PROPERTY_FROM_QSCRIPTVALUE(description, QString, setDescription); - COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(billboardMode, BillboardMode); - COPY_PROPERTY_FROM_QSCRIPTVALUE(actionData, QByteArray, setActionData); - COPY_PROPERTY_FROM_QSCRIPTVALUE(normals, qVectorVec3, setNormals); - COPY_PROPERTY_FROM_QSCRIPTVALUE(strokeColors, qVectorVec3, setStrokeColors); - COPY_PROPERTY_FROM_QSCRIPTVALUE(strokeWidths, qVectorFloat, setStrokeWidths); - COPY_PROPERTY_FROM_QSCRIPTVALUE(isUVModeStretch, bool, setIsUVModeStretch); + // Image COPY_PROPERTY_FROM_QSCRIPTVALUE(imageURL, QString, setImageURL); COPY_PROPERTY_FROM_QSCRIPTVALUE(emissive, bool, setEmissive); COPY_PROPERTY_FROM_QSCRIPTVALUE(keepAspectRatio, bool, setKeepAspectRatio); COPY_PROPERTY_FROM_QSCRIPTVALUE(subImage, QRect, setSubImage); + // Grid COPY_PROPERTY_FROM_QSCRIPTVALUE(followCamera, bool, setFollowCamera); COPY_PROPERTY_FROM_QSCRIPTVALUE(majorGridEvery, uint32_t, setMajorGridEvery); COPY_PROPERTY_FROM_QSCRIPTVALUE(minorGridEvery, float, setMinorGridEvery); - if (!honorReadOnly) { - // this is used by the json reader to set things that we don't want javascript to able to affect. - COPY_PROPERTY_FROM_QSCRIPTVALUE_GETTER(created, QDateTime, setCreated, [this]() { - auto result = QDateTime::fromMSecsSinceEpoch(_created / 1000, Qt::UTC); // usec per msec - return result; - }); - // TODO: expose this to QScriptValue for JSON saves? - //COPY_PROPERTY_FROM_QSCRIPTVALUE(simulationOwner, ???, setSimulatorPriority); - } - - _animation.copyFromScriptValue(object, _defaultSettings); - _keyLight.copyFromScriptValue(object, _defaultSettings); - _ambientLight.copyFromScriptValue(object, _defaultSettings); - _skybox.copyFromScriptValue(object, _defaultSettings); - _haze.copyFromScriptValue(object, _defaultSettings); - _bloom.copyFromScriptValue(object, _defaultSettings); - _grab.copyFromScriptValue(object, _defaultSettings); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(xTextureURL, QString, setXTextureURL); - COPY_PROPERTY_FROM_QSCRIPTVALUE(yTextureURL, QString, setYTextureURL); - COPY_PROPERTY_FROM_QSCRIPTVALUE(zTextureURL, QString, setZTextureURL); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(xNNeighborID, EntityItemID, setXNNeighborID); - COPY_PROPERTY_FROM_QSCRIPTVALUE(yNNeighborID, EntityItemID, setYNNeighborID); - COPY_PROPERTY_FROM_QSCRIPTVALUE(zNNeighborID, EntityItemID, setZNNeighborID); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(xPNeighborID, EntityItemID, setXPNeighborID); - COPY_PROPERTY_FROM_QSCRIPTVALUE(yPNeighborID, EntityItemID, setYPNeighborID); - COPY_PROPERTY_FROM_QSCRIPTVALUE(zPNeighborID, EntityItemID, setZPNeighborID); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(parentID, QUuid, setParentID); - COPY_PROPERTY_FROM_QSCRIPTVALUE(parentJointIndex, quint16, setParentJointIndex); - COPY_PROPERTY_FROM_QSCRIPTVALUE(queryAACube, AACube, setQueryAACube); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(localPosition, vec3, setLocalPosition); - COPY_PROPERTY_FROM_QSCRIPTVALUE(localRotation, quat, setLocalRotation); - COPY_PROPERTY_FROM_QSCRIPTVALUE(localVelocity, vec3, setLocalVelocity); - COPY_PROPERTY_FROM_QSCRIPTVALUE(localAngularVelocity, vec3, setLocalAngularVelocity); - COPY_PROPERTY_FROM_QSCRIPTVALUE(localDimensions, vec3, setLocalDimensions); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(jointRotationsSet, qVectorBool, setJointRotationsSet); - COPY_PROPERTY_FROM_QSCRIPTVALUE(jointRotations, qVectorQuat, setJointRotations); - COPY_PROPERTY_FROM_QSCRIPTVALUE(jointTranslationsSet, qVectorBool, setJointTranslationsSet); - COPY_PROPERTY_FROM_QSCRIPTVALUE(jointTranslations, qVectorVec3, setJointTranslations); - COPY_PROPERTY_FROM_QSCRIPTVALUE(shape, QString, setShape); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(flyingAllowed, bool, setFlyingAllowed); - COPY_PROPERTY_FROM_QSCRIPTVALUE(ghostingAllowed, bool, setGhostingAllowed); - COPY_PROPERTY_FROM_QSCRIPTVALUE(filterURL, QString, setFilterURL); - - COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(entityHostType, EntityHostType); - COPY_PROPERTY_FROM_QSCRIPTVALUE(owningAvatarID, QUuid, setOwningAvatarID); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(dpi, uint16_t, setDPI); - - COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneable, bool, setCloneable); - COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneLifetime, float, setCloneLifetime); - COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneLimit, float, setCloneLimit); - COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneDynamic, bool, setCloneDynamic); - COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneAvatarEntity, bool, setCloneAvatarEntity); - COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneOriginID, QUuid, setCloneOriginID); - // Handle conversions from old 'textures' property to "imageURL" { QScriptValue V = object.property("textures"); @@ -1965,53 +2027,87 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool } void EntityItemProperties::merge(const EntityItemProperties& other) { - COPY_PROPERTY_IF_CHANGED(lastEditedBy); + // Core + COPY_PROPERTY_IF_CHANGED(simulationOwner); + COPY_PROPERTY_IF_CHANGED(visible); + COPY_PROPERTY_IF_CHANGED(name); + COPY_PROPERTY_IF_CHANGED(locked); + COPY_PROPERTY_IF_CHANGED(userData); + COPY_PROPERTY_IF_CHANGED(href); + COPY_PROPERTY_IF_CHANGED(description); COPY_PROPERTY_IF_CHANGED(position); COPY_PROPERTY_IF_CHANGED(dimensions); COPY_PROPERTY_IF_CHANGED(rotation); + COPY_PROPERTY_IF_CHANGED(registrationPoint); + COPY_PROPERTY_IF_CHANGED(created); + COPY_PROPERTY_IF_CHANGED(lastEditedBy); + COPY_PROPERTY_IF_CHANGED(entityHostType); + COPY_PROPERTY_IF_CHANGED(owningAvatarID); + COPY_PROPERTY_IF_CHANGED(parentID); + COPY_PROPERTY_IF_CHANGED(parentJointIndex); + COPY_PROPERTY_IF_CHANGED(queryAACube); + COPY_PROPERTY_IF_CHANGED(canCastShadow); + COPY_PROPERTY_IF_CHANGED(isVisibleInSecondaryCamera); + _grab.merge(other._grab); + + // Physics COPY_PROPERTY_IF_CHANGED(density); COPY_PROPERTY_IF_CHANGED(velocity); + COPY_PROPERTY_IF_CHANGED(angularVelocity); COPY_PROPERTY_IF_CHANGED(gravity); COPY_PROPERTY_IF_CHANGED(acceleration); COPY_PROPERTY_IF_CHANGED(damping); + COPY_PROPERTY_IF_CHANGED(angularDamping); COPY_PROPERTY_IF_CHANGED(restitution); COPY_PROPERTY_IF_CHANGED(friction); COPY_PROPERTY_IF_CHANGED(lifetime); - COPY_PROPERTY_IF_CHANGED(script); - COPY_PROPERTY_IF_CHANGED(scriptTimestamp); - COPY_PROPERTY_IF_CHANGED(registrationPoint); - COPY_PROPERTY_IF_CHANGED(angularVelocity); - COPY_PROPERTY_IF_CHANGED(angularDamping); - COPY_PROPERTY_IF_CHANGED(visible); - COPY_PROPERTY_IF_CHANGED(canCastShadow); - COPY_PROPERTY_IF_CHANGED(color); - COPY_PROPERTY_IF_CHANGED(colorSpread); - COPY_PROPERTY_IF_CHANGED(colorStart); - COPY_PROPERTY_IF_CHANGED(colorFinish); - COPY_PROPERTY_IF_CHANGED(alpha); - COPY_PROPERTY_IF_CHANGED(alphaSpread); - COPY_PROPERTY_IF_CHANGED(alphaStart); - COPY_PROPERTY_IF_CHANGED(alphaFinish); - COPY_PROPERTY_IF_CHANGED(emitterShouldTrail); - COPY_PROPERTY_IF_CHANGED(modelURL); - COPY_PROPERTY_IF_CHANGED(compoundShapeURL); - COPY_PROPERTY_IF_CHANGED(localRenderAlpha); COPY_PROPERTY_IF_CHANGED(collisionless); COPY_PROPERTY_IF_CHANGED(collisionMask); COPY_PROPERTY_IF_CHANGED(dynamic); - COPY_PROPERTY_IF_CHANGED(isSpotlight); - COPY_PROPERTY_IF_CHANGED(intensity); - COPY_PROPERTY_IF_CHANGED(falloffRadius); - COPY_PROPERTY_IF_CHANGED(exponent); - COPY_PROPERTY_IF_CHANGED(cutoff); - COPY_PROPERTY_IF_CHANGED(locked); - COPY_PROPERTY_IF_CHANGED(textures); - COPY_PROPERTY_IF_CHANGED(userData); - COPY_PROPERTY_IF_CHANGED(text); - COPY_PROPERTY_IF_CHANGED(lineHeight); - COPY_PROPERTY_IF_CHANGED(textColor); - COPY_PROPERTY_IF_CHANGED(backgroundColor); + COPY_PROPERTY_IF_CHANGED(collisionSoundURL); + COPY_PROPERTY_IF_CHANGED(actionData); + + // Cloning + COPY_PROPERTY_IF_CHANGED(cloneable); + COPY_PROPERTY_IF_CHANGED(cloneLifetime); + COPY_PROPERTY_IF_CHANGED(cloneLimit); + COPY_PROPERTY_IF_CHANGED(cloneDynamic); + COPY_PROPERTY_IF_CHANGED(cloneAvatarEntity); + COPY_PROPERTY_IF_CHANGED(cloneOriginID); + + // Scripts + COPY_PROPERTY_IF_CHANGED(script); + COPY_PROPERTY_IF_CHANGED(scriptTimestamp); + COPY_PROPERTY_IF_CHANGED(serverScripts); + + // Certifiable Properties + COPY_PROPERTY_IF_CHANGED(itemName); + COPY_PROPERTY_IF_CHANGED(itemDescription); + COPY_PROPERTY_IF_CHANGED(itemCategories); + COPY_PROPERTY_IF_CHANGED(itemArtist); + COPY_PROPERTY_IF_CHANGED(itemLicense); + COPY_PROPERTY_IF_CHANGED(limitedRun); + COPY_PROPERTY_IF_CHANGED(marketplaceID); + COPY_PROPERTY_IF_CHANGED(editionNumber); + COPY_PROPERTY_IF_CHANGED(entityInstanceNumber); + COPY_PROPERTY_IF_CHANGED(certificateID); + COPY_PROPERTY_IF_CHANGED(staticCertificateVersion); + + // Local props for scripts + COPY_PROPERTY_IF_CHANGED(localPosition); + COPY_PROPERTY_IF_CHANGED(localRotation); + COPY_PROPERTY_IF_CHANGED(localVelocity); + COPY_PROPERTY_IF_CHANGED(localAngularVelocity); + COPY_PROPERTY_IF_CHANGED(localDimensions); + + // Common COPY_PROPERTY_IF_CHANGED(shapeType); + COPY_PROPERTY_IF_CHANGED(compoundShapeURL); + COPY_PROPERTY_IF_CHANGED(color); + COPY_PROPERTY_IF_CHANGED(alpha); + COPY_PROPERTY_IF_CHANGED(textures); + + // Particles COPY_PROPERTY_IF_CHANGED(maxParticles); COPY_PROPERTY_IF_CHANGED(lifespan); COPY_PROPERTY_IF_CHANGED(isEmitting); @@ -2031,110 +2127,112 @@ void EntityItemProperties::merge(const EntityItemProperties& other) { COPY_PROPERTY_IF_CHANGED(radiusSpread); COPY_PROPERTY_IF_CHANGED(radiusStart); COPY_PROPERTY_IF_CHANGED(radiusFinish); + COPY_PROPERTY_IF_CHANGED(colorSpread); + COPY_PROPERTY_IF_CHANGED(colorStart); + COPY_PROPERTY_IF_CHANGED(colorFinish); + COPY_PROPERTY_IF_CHANGED(alphaSpread); + COPY_PROPERTY_IF_CHANGED(alphaStart); + COPY_PROPERTY_IF_CHANGED(alphaFinish); + COPY_PROPERTY_IF_CHANGED(emitterShouldTrail); COPY_PROPERTY_IF_CHANGED(particleSpin); COPY_PROPERTY_IF_CHANGED(spinSpread); COPY_PROPERTY_IF_CHANGED(spinStart); COPY_PROPERTY_IF_CHANGED(spinFinish); COPY_PROPERTY_IF_CHANGED(rotateWithEntity); - COPY_PROPERTY_IF_CHANGED(imageURL); - COPY_PROPERTY_IF_CHANGED(emissive); - COPY_PROPERTY_IF_CHANGED(keepAspectRatio); - COPY_PROPERTY_IF_CHANGED(subImage); - - COPY_PROPERTY_IF_CHANGED(followCamera); - COPY_PROPERTY_IF_CHANGED(majorGridEvery); - COPY_PROPERTY_IF_CHANGED(minorGridEvery); - - // Certifiable Properties - COPY_PROPERTY_IF_CHANGED(itemName); - COPY_PROPERTY_IF_CHANGED(itemDescription); - COPY_PROPERTY_IF_CHANGED(itemCategories); - COPY_PROPERTY_IF_CHANGED(itemArtist); - COPY_PROPERTY_IF_CHANGED(itemLicense); - COPY_PROPERTY_IF_CHANGED(limitedRun); - COPY_PROPERTY_IF_CHANGED(marketplaceID); - COPY_PROPERTY_IF_CHANGED(editionNumber); - COPY_PROPERTY_IF_CHANGED(entityInstanceNumber); - COPY_PROPERTY_IF_CHANGED(certificateID); - COPY_PROPERTY_IF_CHANGED(staticCertificateVersion); - - COPY_PROPERTY_IF_CHANGED(name); - COPY_PROPERTY_IF_CHANGED(collisionSoundURL); - - COPY_PROPERTY_IF_CHANGED(hazeMode); - COPY_PROPERTY_IF_CHANGED(keyLightMode); - COPY_PROPERTY_IF_CHANGED(ambientLightMode); - COPY_PROPERTY_IF_CHANGED(skyboxMode); - COPY_PROPERTY_IF_CHANGED(bloomMode); - - COPY_PROPERTY_IF_CHANGED(sourceUrl); - COPY_PROPERTY_IF_CHANGED(voxelVolumeSize); - COPY_PROPERTY_IF_CHANGED(voxelData); - COPY_PROPERTY_IF_CHANGED(voxelSurfaceStyle); - COPY_PROPERTY_IF_CHANGED(lineWidth); - COPY_PROPERTY_IF_CHANGED(linePoints); - COPY_PROPERTY_IF_CHANGED(href); - COPY_PROPERTY_IF_CHANGED(description); - COPY_PROPERTY_IF_CHANGED(billboardMode); - COPY_PROPERTY_IF_CHANGED(actionData); - COPY_PROPERTY_IF_CHANGED(normals); - COPY_PROPERTY_IF_CHANGED(strokeColors); - COPY_PROPERTY_IF_CHANGED(strokeWidths); - COPY_PROPERTY_IF_CHANGED(isUVModeStretch); - COPY_PROPERTY_IF_CHANGED(created); - + // Model + COPY_PROPERTY_IF_CHANGED(modelURL); + COPY_PROPERTY_IF_CHANGED(jointRotationsSet); + COPY_PROPERTY_IF_CHANGED(jointRotations); + COPY_PROPERTY_IF_CHANGED(jointTranslationsSet); + COPY_PROPERTY_IF_CHANGED(jointTranslations); + COPY_PROPERTY_IF_CHANGED(relayParentJoints); _animation.merge(other._animation); + + // Light + COPY_PROPERTY_IF_CHANGED(isSpotlight); + COPY_PROPERTY_IF_CHANGED(intensity); + COPY_PROPERTY_IF_CHANGED(exponent); + COPY_PROPERTY_IF_CHANGED(cutoff); + COPY_PROPERTY_IF_CHANGED(falloffRadius); + + // Text + COPY_PROPERTY_IF_CHANGED(text); + COPY_PROPERTY_IF_CHANGED(lineHeight); + COPY_PROPERTY_IF_CHANGED(textColor); + COPY_PROPERTY_IF_CHANGED(textAlpha); + COPY_PROPERTY_IF_CHANGED(backgroundColor); + COPY_PROPERTY_IF_CHANGED(backgroundAlpha); + COPY_PROPERTY_IF_CHANGED(billboardMode); + COPY_PROPERTY_IF_CHANGED(leftMargin); + COPY_PROPERTY_IF_CHANGED(rightMargin); + COPY_PROPERTY_IF_CHANGED(topMargin); + COPY_PROPERTY_IF_CHANGED(bottomMargin); + + // Zone _keyLight.merge(other._keyLight); _ambientLight.merge(other._ambientLight); _skybox.merge(other._skybox); _haze.merge(other._haze); _bloom.merge(other._bloom); - _grab.merge(other._grab); + COPY_PROPERTY_IF_CHANGED(flyingAllowed); + COPY_PROPERTY_IF_CHANGED(ghostingAllowed); + COPY_PROPERTY_IF_CHANGED(filterURL); + COPY_PROPERTY_IF_CHANGED(keyLightMode); + COPY_PROPERTY_IF_CHANGED(ambientLightMode); + COPY_PROPERTY_IF_CHANGED(skyboxMode); + COPY_PROPERTY_IF_CHANGED(hazeMode); + COPY_PROPERTY_IF_CHANGED(bloomMode); + // Polyvox + COPY_PROPERTY_IF_CHANGED(voxelVolumeSize); + COPY_PROPERTY_IF_CHANGED(voxelData); + COPY_PROPERTY_IF_CHANGED(voxelSurfaceStyle); COPY_PROPERTY_IF_CHANGED(xTextureURL); COPY_PROPERTY_IF_CHANGED(yTextureURL); COPY_PROPERTY_IF_CHANGED(zTextureURL); - COPY_PROPERTY_IF_CHANGED(xNNeighborID); COPY_PROPERTY_IF_CHANGED(yNNeighborID); COPY_PROPERTY_IF_CHANGED(zNNeighborID); - COPY_PROPERTY_IF_CHANGED(xPNeighborID); COPY_PROPERTY_IF_CHANGED(yPNeighborID); COPY_PROPERTY_IF_CHANGED(zPNeighborID); - COPY_PROPERTY_IF_CHANGED(parentID); - COPY_PROPERTY_IF_CHANGED(parentJointIndex); - COPY_PROPERTY_IF_CHANGED(queryAACube); - - COPY_PROPERTY_IF_CHANGED(localPosition); - COPY_PROPERTY_IF_CHANGED(localRotation); - COPY_PROPERTY_IF_CHANGED(localVelocity); - COPY_PROPERTY_IF_CHANGED(localAngularVelocity); - COPY_PROPERTY_IF_CHANGED(localDimensions); - - COPY_PROPERTY_IF_CHANGED(jointRotationsSet); - COPY_PROPERTY_IF_CHANGED(jointRotations); - COPY_PROPERTY_IF_CHANGED(jointTranslationsSet); - COPY_PROPERTY_IF_CHANGED(jointTranslations); - COPY_PROPERTY_IF_CHANGED(shape); - - COPY_PROPERTY_IF_CHANGED(flyingAllowed); - COPY_PROPERTY_IF_CHANGED(ghostingAllowed); - COPY_PROPERTY_IF_CHANGED(filterURL); - - COPY_PROPERTY_IF_CHANGED(entityHostType); - COPY_PROPERTY_IF_CHANGED(owningAvatarID); - + // Web + COPY_PROPERTY_IF_CHANGED(sourceUrl); COPY_PROPERTY_IF_CHANGED(dpi); - COPY_PROPERTY_IF_CHANGED(cloneable); - COPY_PROPERTY_IF_CHANGED(cloneLifetime); - COPY_PROPERTY_IF_CHANGED(cloneLimit); - COPY_PROPERTY_IF_CHANGED(cloneDynamic); - COPY_PROPERTY_IF_CHANGED(cloneAvatarEntity); - COPY_PROPERTY_IF_CHANGED(cloneOriginID); + // Polyline + COPY_PROPERTY_IF_CHANGED(linePoints); + COPY_PROPERTY_IF_CHANGED(strokeWidths); + COPY_PROPERTY_IF_CHANGED(normals); + COPY_PROPERTY_IF_CHANGED(strokeColors); + COPY_PROPERTY_IF_CHANGED(isUVModeStretch); + + // Shape + COPY_PROPERTY_IF_CHANGED(shape); + + // Material + COPY_PROPERTY_IF_CHANGED(materialURL); + COPY_PROPERTY_IF_CHANGED(materialMappingMode); + COPY_PROPERTY_IF_CHANGED(priority); + COPY_PROPERTY_IF_CHANGED(parentMaterialName); + COPY_PROPERTY_IF_CHANGED(materialMappingPos); + COPY_PROPERTY_IF_CHANGED(materialMappingScale); + COPY_PROPERTY_IF_CHANGED(materialMappingRot); + COPY_PROPERTY_IF_CHANGED(materialData); + COPY_PROPERTY_IF_CHANGED(materialRepeat); + + // Image + COPY_PROPERTY_IF_CHANGED(imageURL); + COPY_PROPERTY_IF_CHANGED(emissive); + COPY_PROPERTY_IF_CHANGED(keepAspectRatio); + COPY_PROPERTY_IF_CHANGED(subImage); + + // Grid + COPY_PROPERTY_IF_CHANGED(followCamera); + COPY_PROPERTY_IF_CHANGED(majorGridEvery); + COPY_PROPERTY_IF_CHANGED(minorGridEvery); _lastEdited = usecTimestampNow(); } @@ -2190,73 +2288,125 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue } static QHash<QString, EntityPropertyInfo> _propertyInfos; +static QHash<EntityPropertyList, QString> _enumsToPropertyStrings; bool EntityItemProperties::getPropertyInfo(const QString& propertyName, EntityPropertyInfo& propertyInfo) { static std::once_flag initMap; - + std::call_once(initMap, []() { + // Core + ADD_PROPERTY_TO_MAP(PROP_SIMULATION_OWNER, SimulationOwner, simulationOwner, SimulationOwner); ADD_PROPERTY_TO_MAP(PROP_VISIBLE, Visible, visible, bool); - ADD_PROPERTY_TO_MAP(PROP_CAN_CAST_SHADOW, CanCastShadow, canCastShadow, bool); + ADD_PROPERTY_TO_MAP(PROP_NAME, Name, name, QString); + ADD_PROPERTY_TO_MAP(PROP_LOCKED, Locked, locked, bool); + ADD_PROPERTY_TO_MAP(PROP_USER_DATA, UserData, userData, QString); + ADD_PROPERTY_TO_MAP(PROP_HREF, Href, href, QString); + ADD_PROPERTY_TO_MAP(PROP_DESCRIPTION, Description, description, QString); ADD_PROPERTY_TO_MAP(PROP_POSITION, Position, position, vec3); ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_DIMENSIONS, Dimensions, dimensions, vec3, ENTITY_ITEM_MIN_DIMENSION, FLT_MAX); ADD_PROPERTY_TO_MAP(PROP_ROTATION, Rotation, rotation, quat); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_REGISTRATION_POINT, RegistrationPoint, registrationPoint, vec3, + ENTITY_ITEM_MIN_REGISTRATION_POINT, ENTITY_ITEM_MAX_REGISTRATION_POINT); + //ADD_PROPERTY_TO_MAP(PROP_CREATED, Created, created, quint64); // not yet handled + //ADD_PROPERTY_TO_MAP(PROP_LAST_EDITED_BY, LastEditedBy, lastEditedBy, QUuid); // not yet handled + ADD_PROPERTY_TO_MAP(PROP_ENTITY_HOST_TYPE, EntityHostType, entityHostType, entity::HostType); + ADD_PROPERTY_TO_MAP(PROP_OWNING_AVATAR_ID, OwningAvatarID, owningAvatarID, QUuid); + ADD_PROPERTY_TO_MAP(PROP_PARENT_ID, ParentID, parentID, QUuid); + ADD_PROPERTY_TO_MAP(PROP_PARENT_JOINT_INDEX, ParentJointIndex, parentJointIndex, uint16_t); + //ADD_PROPERTY_TO_MAP(PROP_QUERY_AA_CUBE, QueryAACube, queryAACube, AACube); // not yet handled + ADD_PROPERTY_TO_MAP(PROP_CAN_CAST_SHADOW, CanCastShadow, canCastShadow, bool); + ADD_PROPERTY_TO_MAP(PROP_VISIBLE_IN_SECONDARY_CAMERA, IsVisibleInSecondaryCamera, isVisibleInSecondaryCamera, bool); + { // Grab + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_GRABBABLE, Grab, grab, Grabbable, grabbable); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_KINEMATIC, Grab, grab, GrabKinematic, grabKinematic); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_FOLLOWS_CONTROLLER, Grab, grab, GrabFollowsController, grabFollowsController); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_TRIGGERABLE, Grab, grab, Triggerable, triggerable); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE, Grab, grab, Equippable, equippable); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_DELEGATE_TO_PARENT, Grab, grab, GrabDelegateToParent, grabDelegateToParent); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_LEFT_EQUIPPABLE_POSITION_OFFSET, Grab, grab, + EquippableLeftPosition, equippableLeftPosition); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_LEFT_EQUIPPABLE_ROTATION_OFFSET, Grab, grab, + EquippableLeftRotation, equippableLeftRotation); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_RIGHT_EQUIPPABLE_POSITION_OFFSET, Grab, grab, + EquippableRightPosition, equippableRightPosition); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_RIGHT_EQUIPPABLE_ROTATION_OFFSET, Grab, grab, + EquippableRightRotation, equippableRightRotation); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE_INDICATOR_URL, Grab, grab, + EquippableIndicatorURL, equippableIndicatorURL); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE_INDICATOR_SCALE, Grab, grab, + EquippableIndicatorScale, equippableIndicatorScale); + ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE_INDICATOR_OFFSET, Grab, grab, + EquippableIndicatorOffset, equippableIndicatorOffset); + } + + // Physics ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_DENSITY, Density, density, float, ENTITY_ITEM_MIN_DENSITY, ENTITY_ITEM_MAX_DENSITY); ADD_PROPERTY_TO_MAP(PROP_VELOCITY, Velocity, velocity, vec3); + ADD_PROPERTY_TO_MAP(PROP_ANGULAR_VELOCITY, AngularVelocity, angularVelocity, vec3); ADD_PROPERTY_TO_MAP(PROP_GRAVITY, Gravity, gravity, vec3); ADD_PROPERTY_TO_MAP(PROP_ACCELERATION, Acceleration, acceleration, vec3); ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_DAMPING, Damping, damping, float, ENTITY_ITEM_MIN_DAMPING, ENTITY_ITEM_MAX_DAMPING); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_ANGULAR_DAMPING, AngularDamping, angularDamping, float, + ENTITY_ITEM_MIN_DAMPING, ENTITY_ITEM_MAX_DAMPING); ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_RESTITUTION, Restitution, restitution, float, ENTITY_ITEM_MIN_RESTITUTION, ENTITY_ITEM_MAX_RESTITUTION); ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_FRICTION, Friction, friction, float, ENTITY_ITEM_MIN_FRICTION, ENTITY_ITEM_MAX_FRICTION); ADD_PROPERTY_TO_MAP(PROP_LIFETIME, Lifetime, lifetime, float); - ADD_PROPERTY_TO_MAP(PROP_SCRIPT, Script, script, QString); - ADD_PROPERTY_TO_MAP(PROP_SCRIPT_TIMESTAMP, ScriptTimestamp, scriptTimestamp, quint64); - ADD_PROPERTY_TO_MAP(PROP_SERVER_SCRIPTS, ServerScripts, serverScripts, QString); - ADD_PROPERTY_TO_MAP(PROP_COLLISION_SOUND_URL, CollisionSoundURL, collisionSoundURL, QString); - ADD_PROPERTY_TO_MAP(PROP_COLOR, Color, color, u8vec3Color); - ADD_PROPERTY_TO_MAP(PROP_COLOR_SPREAD, ColorSpread, colorSpread, u8vec3Color); - ADD_PROPERTY_TO_MAP(PROP_COLOR_START, ColorStart, colorStart, vec3Color); - ADD_PROPERTY_TO_MAP(PROP_COLOR_FINISH, ColorFinish, colorFinish, vec3Color); - ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_ALPHA, Alpha, alpha, float, particle::MINIMUM_ALPHA, particle::MAXIMUM_ALPHA); - ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_ALPHA_SPREAD, AlphaSpread, alphaSpread, float, - particle::MINIMUM_ALPHA, particle::MAXIMUM_ALPHA); - ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_ALPHA_START, AlphaStart, alphaStart, float, - particle::MINIMUM_ALPHA, particle::MAXIMUM_ALPHA); - ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_ALPHA_FINISH, AlphaFinish, alphaFinish, float, - particle::MINIMUM_ALPHA, particle::MAXIMUM_ALPHA); - ADD_PROPERTY_TO_MAP(PROP_EMITTER_SHOULD_TRAIL, EmitterShouldTrail, emitterShouldTrail, bool); - ADD_PROPERTY_TO_MAP(PROP_MODEL_URL, ModelURL, modelURL, QString); - ADD_PROPERTY_TO_MAP(PROP_COMPOUND_SHAPE_URL, CompoundShapeURL, compoundShapeURL, QString); - ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_REGISTRATION_POINT, RegistrationPoint, registrationPoint, vec3, - ENTITY_ITEM_MIN_REGISTRATION_POINT, ENTITY_ITEM_MAX_REGISTRATION_POINT); - ADD_PROPERTY_TO_MAP(PROP_ANGULAR_VELOCITY, AngularVelocity, angularVelocity, vec3); - ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_ANGULAR_DAMPING, AngularDamping, angularDamping, float, - ENTITY_ITEM_MIN_DAMPING, ENTITY_ITEM_MAX_DAMPING); ADD_PROPERTY_TO_MAP(PROP_COLLISIONLESS, Collisionless, collisionless, bool); ADD_PROPERTY_TO_MAP(PROP_COLLISIONLESS, unused, ignoreForCollisions, unused); // legacy support ADD_PROPERTY_TO_MAP(PROP_COLLISION_MASK, unused, collisionMask, unused); ADD_PROPERTY_TO_MAP(PROP_COLLISION_MASK, unused, collidesWith, unused); ADD_PROPERTY_TO_MAP(PROP_DYNAMIC, unused, collisionsWillMove, unused); // legacy support ADD_PROPERTY_TO_MAP(PROP_DYNAMIC, unused, dynamic, unused); - ADD_PROPERTY_TO_MAP(PROP_IS_SPOTLIGHT, IsSpotlight, isSpotlight, bool); - ADD_PROPERTY_TO_MAP(PROP_INTENSITY, Intensity, intensity, float); - ADD_PROPERTY_TO_MAP(PROP_FALLOFF_RADIUS, FalloffRadius, falloffRadius, float); - ADD_PROPERTY_TO_MAP(PROP_EXPONENT, Exponent, exponent, float); - ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_CUTOFF, Cutoff, cutoff, float, - LightEntityItem::MIN_CUTOFF, LightEntityItem::MAX_CUTOFF); - ADD_PROPERTY_TO_MAP(PROP_LOCKED, Locked, locked, bool); - ADD_PROPERTY_TO_MAP(PROP_TEXTURES, Textures, textures, QString); - ADD_PROPERTY_TO_MAP(PROP_USER_DATA, UserData, userData, QString); - ADD_PROPERTY_TO_MAP(PROP_SIMULATION_OWNER, SimulationOwner, simulationOwner, SimulationOwner); - ADD_PROPERTY_TO_MAP(PROP_TEXT, Text, text, QString); - ADD_PROPERTY_TO_MAP(PROP_LINE_HEIGHT, LineHeight, lineHeight, float); - ADD_PROPERTY_TO_MAP(PROP_TEXT_COLOR, TextColor, textColor, u8vec3Color); - ADD_PROPERTY_TO_MAP(PROP_BACKGROUND_COLOR, BackgroundColor, backgroundColor, u8vec3Color); + ADD_PROPERTY_TO_MAP(PROP_COLLISION_SOUND_URL, CollisionSoundURL, collisionSoundURL, QString); + ADD_PROPERTY_TO_MAP(PROP_ACTION_DATA, ActionData, actionData, QByteArray); + + // Cloning + ADD_PROPERTY_TO_MAP(PROP_CLONEABLE, Cloneable, cloneable, bool); + ADD_PROPERTY_TO_MAP(PROP_CLONE_LIFETIME, CloneLifetime, cloneLifetime, float); + ADD_PROPERTY_TO_MAP(PROP_CLONE_LIMIT, CloneLimit, cloneLimit, float); + ADD_PROPERTY_TO_MAP(PROP_CLONE_DYNAMIC, CloneDynamic, cloneDynamic, bool); + ADD_PROPERTY_TO_MAP(PROP_CLONE_AVATAR_ENTITY, CloneAvatarEntity, cloneAvatarEntity, bool); + ADD_PROPERTY_TO_MAP(PROP_CLONE_ORIGIN_ID, CloneOriginID, cloneOriginID, QUuid); + + // Scripts + ADD_PROPERTY_TO_MAP(PROP_SCRIPT, Script, script, QString); + ADD_PROPERTY_TO_MAP(PROP_SCRIPT_TIMESTAMP, ScriptTimestamp, scriptTimestamp, quint64); + ADD_PROPERTY_TO_MAP(PROP_SERVER_SCRIPTS, ServerScripts, serverScripts, QString); + + // Certifiable Properties + ADD_PROPERTY_TO_MAP(PROP_ITEM_NAME, ItemName, itemName, QString); + ADD_PROPERTY_TO_MAP(PROP_ITEM_DESCRIPTION, ItemDescription, itemDescription, QString); + ADD_PROPERTY_TO_MAP(PROP_ITEM_CATEGORIES, ItemCategories, itemCategories, QString); + ADD_PROPERTY_TO_MAP(PROP_ITEM_ARTIST, ItemArtist, itemArtist, QString); + ADD_PROPERTY_TO_MAP(PROP_ITEM_LICENSE, ItemLicense, itemLicense, QString); + ADD_PROPERTY_TO_MAP(PROP_LIMITED_RUN, LimitedRun, limitedRun, quint32); + ADD_PROPERTY_TO_MAP(PROP_MARKETPLACE_ID, MarketplaceID, marketplaceID, QString); + ADD_PROPERTY_TO_MAP(PROP_EDITION_NUMBER, EditionNumber, editionNumber, quint32); + ADD_PROPERTY_TO_MAP(PROP_ENTITY_INSTANCE_NUMBER, EntityInstanceNumber, entityInstanceNumber, quint32); + ADD_PROPERTY_TO_MAP(PROP_CERTIFICATE_ID, CertificateID, certificateID, QString); + ADD_PROPERTY_TO_MAP(PROP_STATIC_CERTIFICATE_VERSION, StaticCertificateVersion, staticCertificateVersion, quint32); + + // Local script props + ADD_PROPERTY_TO_MAP(PROP_LOCAL_POSITION, LocalPosition, localPosition, vec3); + ADD_PROPERTY_TO_MAP(PROP_LOCAL_ROTATION, LocalRotation, localRotation, quat); + ADD_PROPERTY_TO_MAP(PROP_LOCAL_VELOCITY, LocalVelocity, localVelocity, vec3); + ADD_PROPERTY_TO_MAP(PROP_LOCAL_ANGULAR_VELOCITY, LocalAngularVelocity, localAngularVelocity, vec3); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_LOCAL_DIMENSIONS, LocalDimensions, localDimensions, vec3, + ENTITY_ITEM_MIN_DIMENSION, FLT_MAX); + + // Common ADD_PROPERTY_TO_MAP(PROP_SHAPE_TYPE, ShapeType, shapeType, ShapeType); + ADD_PROPERTY_TO_MAP(PROP_COMPOUND_SHAPE_URL, CompoundShapeURL, compoundShapeURL, QString); + ADD_PROPERTY_TO_MAP(PROP_COLOR, Color, color, u8vec3Color); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_ALPHA, Alpha, alpha, float, particle::MINIMUM_ALPHA, particle::MAXIMUM_ALPHA); + ADD_PROPERTY_TO_MAP(PROP_TEXTURES, Textures, textures, QString); + + // Particles ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_MAX_PARTICLES, MaxParticles, maxParticles, quint32, particle::MINIMUM_MAX_PARTICLES, particle::MAXIMUM_MAX_PARTICLES); ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_LIFESPAN, Lifespan, lifespan, float, @@ -2293,62 +2443,116 @@ bool EntityItemProperties::getPropertyInfo(const QString& propertyName, EntityPr particle::MINIMUM_PARTICLE_RADIUS, particle::MAXIMUM_PARTICLE_RADIUS); ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_RADIUS_FINISH, RadiusFinish, radiusFinish, float, particle::MINIMUM_PARTICLE_RADIUS, particle::MAXIMUM_PARTICLE_RADIUS); - - ADD_PROPERTY_TO_MAP(PROP_MATERIAL_URL, MaterialURL, materialURL, QString); - ADD_PROPERTY_TO_MAP(PROP_MATERIAL_MAPPING_MODE, MaterialMappingMode, materialMappingMode, MaterialMappingMode); - ADD_PROPERTY_TO_MAP(PROP_MATERIAL_PRIORITY, Priority, priority, quint16); - ADD_PROPERTY_TO_MAP(PROP_PARENT_MATERIAL_NAME, ParentMaterialName, parentMaterialName, QString); - ADD_PROPERTY_TO_MAP(PROP_MATERIAL_MAPPING_POS, MaterialMappingPos, materialMappingPos, vec2); - ADD_PROPERTY_TO_MAP(PROP_MATERIAL_MAPPING_SCALE, MaterialMappingScale, materialMappingScale, vec2); - ADD_PROPERTY_TO_MAP(PROP_MATERIAL_MAPPING_ROT, MaterialMappingRot, materialMappingRot, float); - ADD_PROPERTY_TO_MAP(PROP_MATERIAL_DATA, MaterialData, materialData, QString); - ADD_PROPERTY_TO_MAP(PROP_MATERIAL_REPEAT, MaterialRepeat, materialRepeat, bool); - - ADD_PROPERTY_TO_MAP(PROP_VISIBLE_IN_SECONDARY_CAMERA, IsVisibleInSecondaryCamera, isVisibleInSecondaryCamera, bool); - + ADD_PROPERTY_TO_MAP(PROP_COLOR_SPREAD, ColorSpread, colorSpread, u8vec3Color); + ADD_PROPERTY_TO_MAP(PROP_COLOR_START, ColorStart, colorStart, vec3Color); + ADD_PROPERTY_TO_MAP(PROP_COLOR_FINISH, ColorFinish, colorFinish, vec3Color); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_ALPHA_SPREAD, AlphaSpread, alphaSpread, float, + particle::MINIMUM_ALPHA, particle::MAXIMUM_ALPHA); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_ALPHA_START, AlphaStart, alphaStart, float, + particle::MINIMUM_ALPHA, particle::MAXIMUM_ALPHA); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_ALPHA_FINISH, AlphaFinish, alphaFinish, float, + particle::MINIMUM_ALPHA, particle::MAXIMUM_ALPHA); + ADD_PROPERTY_TO_MAP(PROP_EMITTER_SHOULD_TRAIL, EmitterShouldTrail, emitterShouldTrail, bool); ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_PARTICLE_SPIN, ParticleSpin, particleSpin, float, particle::MINIMUM_PARTICLE_SPIN, particle::MAXIMUM_PARTICLE_SPIN); - ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_SPIN_SPREAD, SpinSpread, spinSpread, float, -120.2365895, 1563.2556); - //particle::MINIMUM_PARTICLE_SPIN, particle::MAXIMUM_PARTICLE_SPIN); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_SPIN_SPREAD, SpinSpread, spinSpread, float, + particle::MINIMUM_PARTICLE_SPIN, particle::MAXIMUM_PARTICLE_SPIN); ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_SPIN_START, SpinStart, spinStart, float, particle::MINIMUM_PARTICLE_SPIN, particle::MAXIMUM_PARTICLE_SPIN); ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_SPIN_FINISH, SpinFinish, spinFinish, float, particle::MINIMUM_PARTICLE_SPIN, particle::MAXIMUM_PARTICLE_SPIN); ADD_PROPERTY_TO_MAP(PROP_PARTICLE_ROTATE_WITH_ENTITY, RotateWithEntity, rotateWithEntity, float); - // Certifiable Properties - ADD_PROPERTY_TO_MAP(PROP_ITEM_NAME, ItemName, itemName, QString); - ADD_PROPERTY_TO_MAP(PROP_ITEM_DESCRIPTION, ItemDescription, itemDescription, QString); - ADD_PROPERTY_TO_MAP(PROP_ITEM_CATEGORIES, ItemCategories, itemCategories, QString); - ADD_PROPERTY_TO_MAP(PROP_ITEM_ARTIST, ItemArtist, itemArtist, QString); - ADD_PROPERTY_TO_MAP(PROP_ITEM_LICENSE, ItemLicense, itemLicense, QString); - ADD_PROPERTY_TO_MAP(PROP_LIMITED_RUN, LimitedRun, limitedRun, quint32); - ADD_PROPERTY_TO_MAP(PROP_MARKETPLACE_ID, MarketplaceID, marketplaceID, QString); - ADD_PROPERTY_TO_MAP(PROP_EDITION_NUMBER, EditionNumber, editionNumber, quint32); - ADD_PROPERTY_TO_MAP(PROP_ENTITY_INSTANCE_NUMBER, EntityInstanceNumber, entityInstanceNumber, quint32); - ADD_PROPERTY_TO_MAP(PROP_CERTIFICATE_ID, CertificateID, certificateID, QString); - ADD_PROPERTY_TO_MAP(PROP_STATIC_CERTIFICATE_VERSION, StaticCertificateVersion, staticCertificateVersion, quint32); + // Model + ADD_PROPERTY_TO_MAP(PROP_MODEL_URL, ModelURL, modelURL, QString); + ADD_PROPERTY_TO_MAP(PROP_JOINT_ROTATIONS_SET, JointRotationsSet, jointRotationsSet, QVector<bool>); + ADD_PROPERTY_TO_MAP(PROP_JOINT_ROTATIONS, JointRotations, jointRotations, QVector<quat>); + ADD_PROPERTY_TO_MAP(PROP_JOINT_TRANSLATIONS_SET, JointTranslationsSet, jointTranslationsSet, QVector<bool>); + ADD_PROPERTY_TO_MAP(PROP_JOINT_TRANSLATIONS, JointTranslations, jointTranslations, QVector<vec3>); + ADD_PROPERTY_TO_MAP(PROP_RELAY_PARENT_JOINTS, RelayParentJoints, relayParentJoints, bool); + { // Animation + ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_URL, Animation, animation, URL, url); + ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_ALLOW_TRANSLATION, Animation, animation, AllowTranslation, allowTranslation); + ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_FPS, Animation, animation, FPS, fps); + ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_FRAME_INDEX, Animation, animation, CurrentFrame, currentFrame); + ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_PLAYING, Animation, animation, Running, running); + ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_LOOP, Animation, animation, Loop, loop); + ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_FIRST_FRAME, Animation, animation, FirstFrame, firstFrame); + ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_LAST_FRAME, Animation, animation, LastFrame, lastFrame); + ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_HOLD, Animation, animation, Hold, hold); + } - ADD_PROPERTY_TO_MAP(PROP_KEYLIGHT_COLOR, KeyLightColor, keyLightColor, u8vec3Color); - ADD_PROPERTY_TO_MAP(PROP_KEYLIGHT_INTENSITY, KeyLightIntensity, keyLightIntensity, float); - ADD_PROPERTY_TO_MAP(PROP_KEYLIGHT_DIRECTION, KeyLightDirection, keyLightDirection, vec3); - ADD_PROPERTY_TO_MAP(PROP_KEYLIGHT_CAST_SHADOW, KeyLightCastShadows, keyLightCastShadows, bool); + // Light + ADD_PROPERTY_TO_MAP(PROP_IS_SPOTLIGHT, IsSpotlight, isSpotlight, bool); + ADD_PROPERTY_TO_MAP(PROP_INTENSITY, Intensity, intensity, float); + ADD_PROPERTY_TO_MAP(PROP_EXPONENT, Exponent, exponent, float); + ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_CUTOFF, Cutoff, cutoff, float, + LightEntityItem::MIN_CUTOFF, LightEntityItem::MAX_CUTOFF); + ADD_PROPERTY_TO_MAP(PROP_FALLOFF_RADIUS, FalloffRadius, falloffRadius, float); + // Text + ADD_PROPERTY_TO_MAP(PROP_TEXT, Text, text, QString); + ADD_PROPERTY_TO_MAP(PROP_LINE_HEIGHT, LineHeight, lineHeight, float); + ADD_PROPERTY_TO_MAP(PROP_TEXT_COLOR, TextColor, textColor, u8vec3Color); + ADD_PROPERTY_TO_MAP(PROP_TEXT_ALPHA, TextAlpha, textAlpha, float); + ADD_PROPERTY_TO_MAP(PROP_BACKGROUND_COLOR, BackgroundColor, backgroundColor, u8vec3Color); + ADD_PROPERTY_TO_MAP(PROP_BACKGROUND_ALPHA, BackgroundAlpha, backgroundAlpha, float); + ADD_PROPERTY_TO_MAP(PROP_BILLBOARD_MODE, BillboardMode, billboardMode, BillboardMode); + ADD_PROPERTY_TO_MAP(PROP_LEFT_MARGIN, LeftMargin, leftMargin, float); + ADD_PROPERTY_TO_MAP(PROP_RIGHT_MARGIN, RightMargin, rightMargin, float); + ADD_PROPERTY_TO_MAP(PROP_TOP_MARGIN, TopMargin, topMargin, float); + ADD_PROPERTY_TO_MAP(PROP_BOTTOM_MARGIN, BottomMargin, bottomMargin, float); + + // Zone + { // Keylight + ADD_GROUP_PROPERTY_TO_MAP(PROP_KEYLIGHT_COLOR, KeyLight, keyLight, Color, color); + ADD_GROUP_PROPERTY_TO_MAP(PROP_KEYLIGHT_INTENSITY, KeyLight, keyLight, Intensity, intensity); + ADD_GROUP_PROPERTY_TO_MAP(PROP_KEYLIGHT_DIRECTION, KeyLight, keylight, Direction, direction); + ADD_GROUP_PROPERTY_TO_MAP(PROP_KEYLIGHT_CAST_SHADOW, KeyLight, keyLight, CastShadows, castShadows); + } + { // Ambient light + ADD_GROUP_PROPERTY_TO_MAP(PROP_AMBIENT_LIGHT_INTENSITY, AmbientLight, ambientLight, Intensity, intensity); + ADD_GROUP_PROPERTY_TO_MAP(PROP_AMBIENT_LIGHT_URL, AmbientLight, ambientLight, URL, url); + } + { // Skybox + ADD_GROUP_PROPERTY_TO_MAP(PROP_SKYBOX_COLOR, Skybox, skybox, Color, color); + ADD_GROUP_PROPERTY_TO_MAP(PROP_SKYBOX_URL, Skybox, skybox, URL, url); + } + { // Haze + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_RANGE, Haze, haze, HazeRange, hazeRange); + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_COLOR, Haze, haze, HazeColor, hazeColor); + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_GLARE_COLOR, Haze, haze, HazeGlareColor, hazeGlareColor); + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_ENABLE_GLARE, Haze, haze, HazeEnableGlare, hazeEnableGlare); + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_GLARE_ANGLE, Haze, haze, HazeGlareAngle, hazeGlareAngle); + + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_ALTITUDE_EFFECT, Haze, haze, HazeAltitudeEffect, hazeAltitudeEfect); + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_CEILING, Haze, haze, HazeCeiling, hazeCeiling); + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_BASE_REF, Haze, haze, HazeBaseRef, hazeBaseRef); + + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_BACKGROUND_BLEND, Haze, haze, HazeBackgroundBlend, hazeBackgroundBlend); + + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_ATTENUATE_KEYLIGHT, Haze, haze, HazeAttenuateKeyLight, hazeAttenuateKeyLight); + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_KEYLIGHT_RANGE, Haze, haze, HazeKeyLightRange, hazeKeyLightRange); + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_KEYLIGHT_ALTITUDE, Haze, haze, HazeKeyLightAltitude, hazeKeyLightAltitude); + } + { // Bloom + ADD_GROUP_PROPERTY_TO_MAP(PROP_BLOOM_INTENSITY, Bloom, bloom, BloomIntensity, bloomIntensity); + ADD_GROUP_PROPERTY_TO_MAP(PROP_BLOOM_THRESHOLD, Bloom, bloom, BloomThreshold, bloomThreshold); + ADD_GROUP_PROPERTY_TO_MAP(PROP_BLOOM_SIZE, Bloom, bloom, BloomSize, bloomSize); + } + ADD_PROPERTY_TO_MAP(PROP_FLYING_ALLOWED, FlyingAllowed, flyingAllowed, bool); + ADD_PROPERTY_TO_MAP(PROP_GHOSTING_ALLOWED, GhostingAllowed, ghostingAllowed, bool); + ADD_PROPERTY_TO_MAP(PROP_FILTER_URL, FilterURL, filterURL, QString); + ADD_PROPERTY_TO_MAP(PROP_KEY_LIGHT_MODE, KeyLightMode, keyLightMode, uint32_t); + ADD_PROPERTY_TO_MAP(PROP_AMBIENT_LIGHT_MODE, AmbientLightMode, ambientLightMode, uint32_t); + ADD_PROPERTY_TO_MAP(PROP_SKYBOX_MODE, SkyboxMode, skyboxMode, uint32_t); + ADD_PROPERTY_TO_MAP(PROP_HAZE_MODE, HazeMode, hazeMode, uint32_t); + ADD_PROPERTY_TO_MAP(PROP_BLOOM_MODE, BloomMode, bloomMode, uint32_t); + + // Polyvox ADD_PROPERTY_TO_MAP(PROP_VOXEL_VOLUME_SIZE, VoxelVolumeSize, voxelVolumeSize, vec3); ADD_PROPERTY_TO_MAP(PROP_VOXEL_DATA, VoxelData, voxelData, QByteArray); ADD_PROPERTY_TO_MAP(PROP_VOXEL_SURFACE_STYLE, VoxelSurfaceStyle, voxelSurfaceStyle, uint16_t); - ADD_PROPERTY_TO_MAP(PROP_NAME, Name, name, QString); - ADD_PROPERTY_TO_MAP(PROP_SOURCE_URL, SourceUrl, sourceUrl, QString); - ADD_PROPERTY_TO_MAP(PROP_LINE_WIDTH, LineWidth, lineWidth, float); - ADD_PROPERTY_TO_MAP(PROP_LINE_POINTS, LinePoints, linePoints, QVector<vec3>); - ADD_PROPERTY_TO_MAP(PROP_HREF, Href, href, QString); - ADD_PROPERTY_TO_MAP(PROP_DESCRIPTION, Description, description, QString); - ADD_PROPERTY_TO_MAP(PROP_BILLBOARD_MODE, BillboardMode, billboardMode, BillboardMode); - ADD_PROPERTY_TO_MAP(PROP_ACTION_DATA, ActionData, actionData, QByteArray); - ADD_PROPERTY_TO_MAP(PROP_NORMALS, Normals, normals, QVector<vec3>); - ADD_PROPERTY_TO_MAP(PROP_STROKE_COLORS, StrokeColors, strokeColors, QVector<vec3>); - ADD_PROPERTY_TO_MAP(PROP_STROKE_WIDTHS, StrokeWidths, strokeWidths, QVector<float>); - ADD_PROPERTY_TO_MAP(PROP_IS_UV_MODE_STRETCH, IsUVModeStretch, isUVModeStretch, QVector<float>); ADD_PROPERTY_TO_MAP(PROP_X_TEXTURE_URL, XTextureURL, xTextureURL, QString); ADD_PROPERTY_TO_MAP(PROP_Y_TEXTURE_URL, YTextureURL, yTextureURL, QString); ADD_PROPERTY_TO_MAP(PROP_Z_TEXTURE_URL, ZTextureURL, zTextureURL, QString); @@ -2359,109 +2563,41 @@ bool EntityItemProperties::getPropertyInfo(const QString& propertyName, EntityPr ADD_PROPERTY_TO_MAP(PROP_Y_P_NEIGHBOR_ID, YPNeighborID, yPNeighborID, EntityItemID); ADD_PROPERTY_TO_MAP(PROP_Z_P_NEIGHBOR_ID, ZPNeighborID, zPNeighborID, EntityItemID); - ADD_PROPERTY_TO_MAP(PROP_PARENT_ID, ParentID, parentID, QUuid); - ADD_PROPERTY_TO_MAP(PROP_PARENT_JOINT_INDEX, ParentJointIndex, parentJointIndex, uint16_t); - - ADD_PROPERTY_TO_MAP(PROP_LOCAL_POSITION, LocalPosition, localPosition, vec3); - ADD_PROPERTY_TO_MAP(PROP_LOCAL_ROTATION, LocalRotation, localRotation, quat); - ADD_PROPERTY_TO_MAP(PROP_LOCAL_VELOCITY, LocalVelocity, localVelocity, vec3); - ADD_PROPERTY_TO_MAP(PROP_LOCAL_ANGULAR_VELOCITY, LocalAngularVelocity, localAngularVelocity, vec3); - ADD_PROPERTY_TO_MAP_WITH_RANGE(PROP_LOCAL_DIMENSIONS, LocalDimensions, localDimensions, vec3, - ENTITY_ITEM_MIN_DIMENSION, FLT_MAX); - - ADD_PROPERTY_TO_MAP(PROP_JOINT_ROTATIONS_SET, JointRotationsSet, jointRotationsSet, QVector<bool>); - ADD_PROPERTY_TO_MAP(PROP_JOINT_ROTATIONS, JointRotations, jointRotations, QVector<quat>); - ADD_PROPERTY_TO_MAP(PROP_JOINT_TRANSLATIONS_SET, JointTranslationsSet, jointTranslationsSet, QVector<bool>); - ADD_PROPERTY_TO_MAP(PROP_JOINT_TRANSLATIONS, JointTranslations, jointTranslations, QVector<vec3>); - ADD_PROPERTY_TO_MAP(PROP_RELAY_PARENT_JOINTS, RelayParentJoints, relayParentJoints, bool); - - ADD_PROPERTY_TO_MAP(PROP_SHAPE, Shape, shape, QString); - - ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_URL, Animation, animation, URL, url); - ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_FPS, Animation, animation, FPS, fps); - ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_FRAME_INDEX, Animation, animation, CurrentFrame, currentFrame); - ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_PLAYING, Animation, animation, Running, running); - ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_LOOP, Animation, animation, Loop, loop); - ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_FIRST_FRAME, Animation, animation, FirstFrame, firstFrame); - ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_LAST_FRAME, Animation, animation, LastFrame, lastFrame); - ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_HOLD, Animation, animation, Hold, hold); - ADD_GROUP_PROPERTY_TO_MAP(PROP_ANIMATION_ALLOW_TRANSLATION, Animation, animation, AllowTranslation, allowTranslation); - - ADD_GROUP_PROPERTY_TO_MAP(PROP_SKYBOX_COLOR, Skybox, skybox, Color, color); - ADD_GROUP_PROPERTY_TO_MAP(PROP_SKYBOX_URL, Skybox, skybox, URL, url); - - ADD_PROPERTY_TO_MAP(PROP_FLYING_ALLOWED, FlyingAllowed, flyingAllowed, bool); - ADD_PROPERTY_TO_MAP(PROP_GHOSTING_ALLOWED, GhostingAllowed, ghostingAllowed, bool); - ADD_PROPERTY_TO_MAP(PROP_FILTER_URL, FilterURL, filterURL, QString); - - ADD_PROPERTY_TO_MAP(PROP_HAZE_MODE, HazeMode, hazeMode, uint32_t); - - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_RANGE, Haze, haze, HazeRange, hazeRange); - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_COLOR, Haze, haze, HazeColor, hazeColor); - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_GLARE_COLOR, Haze, haze, HazeGlareColor, hazeGlareColor); - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_ENABLE_GLARE, Haze, haze, HazeEnableGlare, hazeEnableGlare); - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_GLARE_ANGLE, Haze, haze, HazeGlareAngle, hazeGlareAngle); - - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_ALTITUDE_EFFECT, Haze, haze, HazeAltitudeEffect, hazeAltitudeEfect); - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_CEILING, Haze, haze, HazeCeiling, hazeCeiling); - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_BASE_REF, Haze, haze, HazeBaseRef, hazeBaseRef); - - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_BACKGROUND_BLEND, Haze, haze, HazeBackgroundBlend, hazeBackgroundBlend); - - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_ATTENUATE_KEYLIGHT, Haze, haze, HazeAttenuateKeyLight, hazeAttenuateKeyLight); - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_KEYLIGHT_RANGE, Haze, haze, HazeKeyLightRange, hazeKeyLightRange); - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_KEYLIGHT_ALTITUDE, Haze, haze, HazeKeyLightAltitude, hazeKeyLightAltitude); - - ADD_PROPERTY_TO_MAP(PROP_BLOOM_MODE, BloomMode, bloomMode, uint32_t); - ADD_GROUP_PROPERTY_TO_MAP(PROP_BLOOM_INTENSITY, Bloom, bloom, BloomIntensity, bloomIntensity); - ADD_GROUP_PROPERTY_TO_MAP(PROP_BLOOM_THRESHOLD, Bloom, bloom, BloomThreshold, bloomThreshold); - ADD_GROUP_PROPERTY_TO_MAP(PROP_BLOOM_SIZE, Bloom, bloom, BloomSize, bloomSize); - - ADD_PROPERTY_TO_MAP(PROP_KEY_LIGHT_MODE, KeyLightMode, keyLightMode, uint32_t); - ADD_PROPERTY_TO_MAP(PROP_AMBIENT_LIGHT_MODE, AmbientLightMode, ambientLightMode, uint32_t); - ADD_PROPERTY_TO_MAP(PROP_SKYBOX_MODE, SkyboxMode, skyboxMode, uint32_t); - + // Web + ADD_PROPERTY_TO_MAP(PROP_SOURCE_URL, SourceUrl, sourceUrl, QString); ADD_PROPERTY_TO_MAP(PROP_DPI, DPI, dpi, uint16_t); - ADD_PROPERTY_TO_MAP(PROP_CLONEABLE, Cloneable, cloneable, bool); - ADD_PROPERTY_TO_MAP(PROP_CLONE_LIFETIME, CloneLifetime, cloneLifetime, float); - ADD_PROPERTY_TO_MAP(PROP_CLONE_LIMIT, CloneLimit, cloneLimit, float); - ADD_PROPERTY_TO_MAP(PROP_CLONE_DYNAMIC, CloneDynamic, cloneDynamic, bool); - ADD_PROPERTY_TO_MAP(PROP_CLONE_AVATAR_ENTITY, CloneAvatarEntity, cloneAvatarEntity, bool); - ADD_PROPERTY_TO_MAP(PROP_CLONE_ORIGIN_ID, CloneOriginID, cloneOriginID, QUuid); + // Polyline + ADD_PROPERTY_TO_MAP(PROP_LINE_POINTS, LinePoints, linePoints, QVector<vec3>); + ADD_PROPERTY_TO_MAP(PROP_STROKE_WIDTHS, StrokeWidths, strokeWidths, QVector<float>); + ADD_PROPERTY_TO_MAP(PROP_STROKE_NORMALS, Normals, normals, QVector<vec3>); + ADD_PROPERTY_TO_MAP(PROP_STROKE_COLORS, StrokeColors, strokeColors, QVector<vec3>); + ADD_PROPERTY_TO_MAP(PROP_IS_UV_MODE_STRETCH, IsUVModeStretch, isUVModeStretch, QVector<float>); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_GRABBABLE, Grab, grab, Grabbable, grabbable); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_KINEMATIC, Grab, grab, GrabKinematic, grabKinematic); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_FOLLOWS_CONTROLLER, Grab, grab, GrabFollowsController, grabFollowsController); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_TRIGGERABLE, Grab, grab, Triggerable, triggerable); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE, Grab, grab, Equippable, equippable); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_LEFT_EQUIPPABLE_POSITION_OFFSET, Grab, grab, - EquippableLeftPosition, equippableLeftPosition); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_LEFT_EQUIPPABLE_ROTATION_OFFSET, Grab, grab, - EquippableLeftRotation, equippableLeftRotation); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_RIGHT_EQUIPPABLE_POSITION_OFFSET, Grab, grab, - EquippableRightPosition, equippableRightPosition); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_RIGHT_EQUIPPABLE_ROTATION_OFFSET, Grab, grab, - EquippableRightRotation, equippableRightRotation); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE_INDICATOR_URL, Grab, grab, - EquippableIndicatorURL, equippableIndicatorURL); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE_INDICATOR_SCALE, Grab, grab, - EquippableIndicatorScale, equippableIndicatorScale); - ADD_GROUP_PROPERTY_TO_MAP(PROP_GRAB_EQUIPPABLE_INDICATOR_OFFSET, Grab, grab, - EquippableIndicatorOffset, equippableIndicatorOffset); + // Shape + ADD_PROPERTY_TO_MAP(PROP_SHAPE, Shape, shape, QString); + // Material + ADD_PROPERTY_TO_MAP(PROP_MATERIAL_URL, MaterialURL, materialURL, QString); + ADD_PROPERTY_TO_MAP(PROP_MATERIAL_MAPPING_MODE, MaterialMappingMode, materialMappingMode, MaterialMappingMode); + ADD_PROPERTY_TO_MAP(PROP_MATERIAL_PRIORITY, Priority, priority, quint16); + ADD_PROPERTY_TO_MAP(PROP_PARENT_MATERIAL_NAME, ParentMaterialName, parentMaterialName, QString); + ADD_PROPERTY_TO_MAP(PROP_MATERIAL_MAPPING_POS, MaterialMappingPos, materialMappingPos, vec2); + ADD_PROPERTY_TO_MAP(PROP_MATERIAL_MAPPING_SCALE, MaterialMappingScale, materialMappingScale, vec2); + ADD_PROPERTY_TO_MAP(PROP_MATERIAL_MAPPING_ROT, MaterialMappingRot, materialMappingRot, float); + ADD_PROPERTY_TO_MAP(PROP_MATERIAL_DATA, MaterialData, materialData, QString); + ADD_PROPERTY_TO_MAP(PROP_MATERIAL_REPEAT, MaterialRepeat, materialRepeat, bool); + + // Image ADD_PROPERTY_TO_MAP(PROP_IMAGE_URL, ImageURL, imageURL, QString); ADD_PROPERTY_TO_MAP(PROP_EMISSIVE, Emissive, emissive, bool); ADD_PROPERTY_TO_MAP(PROP_KEEP_ASPECT_RATIO, KeepAspectRatio, keepAspectRatio, bool); ADD_PROPERTY_TO_MAP(PROP_SUB_IMAGE, SubImage, subImage, QRect); + // Grid ADD_PROPERTY_TO_MAP(PROP_GRID_FOLLOW_CAMERA, FollowCamera, followCamera, bool); ADD_PROPERTY_TO_MAP(PROP_MAJOR_GRID_EVERY, MajorGridEvery, majorGridEvery, uint32_t); ADD_PROPERTY_TO_MAP(PROP_MINOR_GRID_EVERY, MinorGridEvery, minorGridEvery, float); - - // FIXME - these are not yet handled - //ADD_PROPERTY_TO_MAP(PROP_CREATED, Created, created, quint64); - }); auto iter = _propertyInfos.find(propertyName); @@ -2587,78 +2723,81 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy // PROP_PAGED_PROPERTY, // PROP_CUSTOM_PROPERTIES_INCLUDED, + APPEND_ENTITY_PROPERTY(PROP_SIMULATION_OWNER, properties._simulationOwner.toByteArray()); - APPEND_ENTITY_PROPERTY(PROP_POSITION, properties.getPosition()); - APPEND_ENTITY_PROPERTY(PROP_DIMENSIONS, properties.getDimensions()); - APPEND_ENTITY_PROPERTY(PROP_ROTATION, properties.getRotation()); - APPEND_ENTITY_PROPERTY(PROP_DENSITY, properties.getDensity()); - APPEND_ENTITY_PROPERTY(PROP_VELOCITY, properties.getVelocity()); - APPEND_ENTITY_PROPERTY(PROP_GRAVITY, properties.getGravity()); - APPEND_ENTITY_PROPERTY(PROP_ACCELERATION, properties.getAcceleration()); - APPEND_ENTITY_PROPERTY(PROP_DAMPING, properties.getDamping()); - APPEND_ENTITY_PROPERTY(PROP_RESTITUTION, properties.getRestitution()); - APPEND_ENTITY_PROPERTY(PROP_FRICTION, properties.getFriction()); - APPEND_ENTITY_PROPERTY(PROP_LIFETIME, properties.getLifetime()); - APPEND_ENTITY_PROPERTY(PROP_SCRIPT, properties.getScript()); - APPEND_ENTITY_PROPERTY(PROP_SCRIPT_TIMESTAMP, properties.getScriptTimestamp()); - APPEND_ENTITY_PROPERTY(PROP_SERVER_SCRIPTS, properties.getServerScripts()); - APPEND_ENTITY_PROPERTY(PROP_REGISTRATION_POINT, properties.getRegistrationPoint()); - APPEND_ENTITY_PROPERTY(PROP_ANGULAR_VELOCITY, properties.getAngularVelocity()); - APPEND_ENTITY_PROPERTY(PROP_ANGULAR_DAMPING, properties.getAngularDamping()); APPEND_ENTITY_PROPERTY(PROP_VISIBLE, properties.getVisible()); - APPEND_ENTITY_PROPERTY(PROP_CAN_CAST_SHADOW, properties.getCanCastShadow()); - APPEND_ENTITY_PROPERTY(PROP_COLLISIONLESS, properties.getCollisionless()); - APPEND_ENTITY_PROPERTY(PROP_COLLISION_MASK, properties.getCollisionMask()); - APPEND_ENTITY_PROPERTY(PROP_DYNAMIC, properties.getDynamic()); + APPEND_ENTITY_PROPERTY(PROP_NAME, properties.getName()); APPEND_ENTITY_PROPERTY(PROP_LOCKED, properties.getLocked()); APPEND_ENTITY_PROPERTY(PROP_USER_DATA, properties.getUserData()); APPEND_ENTITY_PROPERTY(PROP_HREF, properties.getHref()); APPEND_ENTITY_PROPERTY(PROP_DESCRIPTION, properties.getDescription()); + APPEND_ENTITY_PROPERTY(PROP_POSITION, properties.getPosition()); + APPEND_ENTITY_PROPERTY(PROP_DIMENSIONS, properties.getDimensions()); + APPEND_ENTITY_PROPERTY(PROP_ROTATION, properties.getRotation()); + APPEND_ENTITY_PROPERTY(PROP_REGISTRATION_POINT, properties.getRegistrationPoint()); + // FIXME: deal with these + // APPEND_ENTITY_PROPERTY(PROP_CREATED, properties.getCreated()); + // APPEND_ENTITY_PROPERTY(PROP_LAST_EDITED_BY, properties.getLastEditedBy()); + // APPEND_ENTITY_PROPERTY(PROP_ENTITY_HOST_TYPE, (uint32_t)properties.getEntityHostType()); + // APPEND_ENTITY_PROPERTY(PROP_OWNING_AVATAR_ID, properties.getOwningAvatarID()); APPEND_ENTITY_PROPERTY(PROP_PARENT_ID, properties.getParentID()); APPEND_ENTITY_PROPERTY(PROP_PARENT_JOINT_INDEX, properties.getParentJointIndex()); APPEND_ENTITY_PROPERTY(PROP_QUERY_AA_CUBE, properties.getQueryAACube()); + APPEND_ENTITY_PROPERTY(PROP_CAN_CAST_SHADOW, properties.getCanCastShadow()); + // APPEND_ENTITY_PROPERTY(PROP_VISIBLE_IN_SECONDARY_CAMERA, properties.getIsVisibleInSecondaryCamera()); // Not sent over the wire + _staticGrab.setProperties(properties); + _staticGrab.appendToEditPacket(packetData, requestedProperties, propertyFlags, + propertiesDidntFit, propertyCount, appendState); - if (properties.getType() == EntityTypes::Web) { - APPEND_ENTITY_PROPERTY(PROP_SOURCE_URL, properties.getSourceUrl()); - APPEND_ENTITY_PROPERTY(PROP_DPI, properties.getDPI()); - } + // Physics + APPEND_ENTITY_PROPERTY(PROP_DENSITY, properties.getDensity()); + APPEND_ENTITY_PROPERTY(PROP_VELOCITY, properties.getVelocity()); + APPEND_ENTITY_PROPERTY(PROP_ANGULAR_VELOCITY, properties.getAngularVelocity()); + APPEND_ENTITY_PROPERTY(PROP_GRAVITY, properties.getGravity()); + APPEND_ENTITY_PROPERTY(PROP_ACCELERATION, properties.getAcceleration()); + APPEND_ENTITY_PROPERTY(PROP_DAMPING, properties.getDamping()); + APPEND_ENTITY_PROPERTY(PROP_ANGULAR_DAMPING, properties.getAngularDamping()); + APPEND_ENTITY_PROPERTY(PROP_RESTITUTION, properties.getRestitution()); + APPEND_ENTITY_PROPERTY(PROP_FRICTION, properties.getFriction()); + APPEND_ENTITY_PROPERTY(PROP_LIFETIME, properties.getLifetime()); + APPEND_ENTITY_PROPERTY(PROP_COLLISIONLESS, properties.getCollisionless()); + APPEND_ENTITY_PROPERTY(PROP_COLLISION_MASK, properties.getCollisionMask()); + APPEND_ENTITY_PROPERTY(PROP_DYNAMIC, properties.getDynamic()); + APPEND_ENTITY_PROPERTY(PROP_COLLISION_SOUND_URL, properties.getCollisionSoundURL()); + APPEND_ENTITY_PROPERTY(PROP_ACTION_DATA, properties.getActionData()); - if (properties.getType() == EntityTypes::Text) { - APPEND_ENTITY_PROPERTY(PROP_TEXT, properties.getText()); - APPEND_ENTITY_PROPERTY(PROP_LINE_HEIGHT, properties.getLineHeight()); - APPEND_ENTITY_PROPERTY(PROP_TEXT_COLOR, properties.getTextColor()); - APPEND_ENTITY_PROPERTY(PROP_BACKGROUND_COLOR, properties.getBackgroundColor()); - APPEND_ENTITY_PROPERTY(PROP_BILLBOARD_MODE, (uint32_t)properties.getBillboardMode()); - } + // Cloning + APPEND_ENTITY_PROPERTY(PROP_CLONEABLE, properties.getCloneable()); + APPEND_ENTITY_PROPERTY(PROP_CLONE_LIFETIME, properties.getCloneLifetime()); + APPEND_ENTITY_PROPERTY(PROP_CLONE_LIMIT, properties.getCloneLimit()); + APPEND_ENTITY_PROPERTY(PROP_CLONE_DYNAMIC, properties.getCloneDynamic()); + APPEND_ENTITY_PROPERTY(PROP_CLONE_AVATAR_ENTITY, properties.getCloneAvatarEntity()); + APPEND_ENTITY_PROPERTY(PROP_CLONE_ORIGIN_ID, properties.getCloneOriginID()); - if (properties.getType() == EntityTypes::Model) { - APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); - APPEND_ENTITY_PROPERTY(PROP_MODEL_URL, properties.getModelURL()); - APPEND_ENTITY_PROPERTY(PROP_COMPOUND_SHAPE_URL, properties.getCompoundShapeURL()); - APPEND_ENTITY_PROPERTY(PROP_TEXTURES, properties.getTextures()); - APPEND_ENTITY_PROPERTY(PROP_SHAPE_TYPE, (uint32_t)(properties.getShapeType())); + // Scripts + APPEND_ENTITY_PROPERTY(PROP_SCRIPT, properties.getScript()); + APPEND_ENTITY_PROPERTY(PROP_SCRIPT_TIMESTAMP, properties.getScriptTimestamp()); + APPEND_ENTITY_PROPERTY(PROP_SERVER_SCRIPTS, properties.getServerScripts()); - APPEND_ENTITY_PROPERTY(PROP_JOINT_ROTATIONS_SET, properties.getJointRotationsSet()); - APPEND_ENTITY_PROPERTY(PROP_JOINT_ROTATIONS, properties.getJointRotations()); - APPEND_ENTITY_PROPERTY(PROP_JOINT_TRANSLATIONS_SET, properties.getJointTranslationsSet()); - APPEND_ENTITY_PROPERTY(PROP_JOINT_TRANSLATIONS, properties.getJointTranslations()); - APPEND_ENTITY_PROPERTY(PROP_RELAY_PARENT_JOINTS, properties.getRelayParentJoints()); - - _staticAnimation.setProperties(properties); - _staticAnimation.appendToEditPacket(packetData, requestedProperties, propertyFlags, propertiesDidntFit, propertyCount, appendState); - } - - if (properties.getType() == EntityTypes::Light) { - APPEND_ENTITY_PROPERTY(PROP_IS_SPOTLIGHT, properties.getIsSpotlight()); - APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); - APPEND_ENTITY_PROPERTY(PROP_INTENSITY, properties.getIntensity()); - APPEND_ENTITY_PROPERTY(PROP_EXPONENT, properties.getExponent()); - APPEND_ENTITY_PROPERTY(PROP_CUTOFF, properties.getCutoff()); - APPEND_ENTITY_PROPERTY(PROP_FALLOFF_RADIUS, properties.getFalloffRadius()); - } + // Certifiable Properties + APPEND_ENTITY_PROPERTY(PROP_ITEM_NAME, properties.getItemName()); + APPEND_ENTITY_PROPERTY(PROP_ITEM_DESCRIPTION, properties.getItemDescription()); + APPEND_ENTITY_PROPERTY(PROP_ITEM_CATEGORIES, properties.getItemCategories()); + APPEND_ENTITY_PROPERTY(PROP_ITEM_ARTIST, properties.getItemArtist()); + APPEND_ENTITY_PROPERTY(PROP_ITEM_LICENSE, properties.getItemLicense()); + APPEND_ENTITY_PROPERTY(PROP_LIMITED_RUN, properties.getLimitedRun()); + APPEND_ENTITY_PROPERTY(PROP_MARKETPLACE_ID, properties.getMarketplaceID()); + APPEND_ENTITY_PROPERTY(PROP_EDITION_NUMBER, properties.getEditionNumber()); + APPEND_ENTITY_PROPERTY(PROP_ENTITY_INSTANCE_NUMBER, properties.getEntityInstanceNumber()); + APPEND_ENTITY_PROPERTY(PROP_CERTIFICATE_ID, properties.getCertificateID()); + APPEND_ENTITY_PROPERTY(PROP_STATIC_CERTIFICATE_VERSION, properties.getStaticCertificateVersion()); if (properties.getType() == EntityTypes::ParticleEffect) { APPEND_ENTITY_PROPERTY(PROP_SHAPE_TYPE, (uint32_t)(properties.getShapeType())); + APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); + APPEND_ENTITY_PROPERTY(PROP_ALPHA, properties.getAlpha()); + APPEND_ENTITY_PROPERTY(PROP_TEXTURES, properties.getTextures()); + APPEND_ENTITY_PROPERTY(PROP_MAX_PARTICLES, properties.getMaxParticles()); APPEND_ENTITY_PROPERTY(PROP_LIFESPAN, properties.getLifespan()); @@ -2683,17 +2822,14 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy APPEND_ENTITY_PROPERTY(PROP_RADIUS_START, properties.getRadiusStart()); APPEND_ENTITY_PROPERTY(PROP_RADIUS_FINISH, properties.getRadiusFinish()); - APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); APPEND_ENTITY_PROPERTY(PROP_COLOR_SPREAD, properties.getColorSpread()); APPEND_ENTITY_PROPERTY(PROP_COLOR_START, properties.getColorStart()); APPEND_ENTITY_PROPERTY(PROP_COLOR_FINISH, properties.getColorFinish()); - APPEND_ENTITY_PROPERTY(PROP_ALPHA, properties.getAlpha()); APPEND_ENTITY_PROPERTY(PROP_ALPHA_SPREAD, properties.getAlphaSpread()); APPEND_ENTITY_PROPERTY(PROP_ALPHA_START, properties.getAlphaStart()); APPEND_ENTITY_PROPERTY(PROP_ALPHA_FINISH, properties.getAlphaFinish()); - APPEND_ENTITY_PROPERTY(PROP_TEXTURES, properties.getTextures()); APPEND_ENTITY_PROPERTY(PROP_EMITTER_SHOULD_TRAIL, properties.getEmitterShouldTrail()); APPEND_ENTITY_PROPERTY(PROP_PARTICLE_SPIN, properties.getParticleSpin()); @@ -2703,7 +2839,50 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy APPEND_ENTITY_PROPERTY(PROP_PARTICLE_ROTATE_WITH_ENTITY, properties.getRotateWithEntity()) } + if (properties.getType() == EntityTypes::Model) { + APPEND_ENTITY_PROPERTY(PROP_SHAPE_TYPE, (uint32_t)(properties.getShapeType())); + APPEND_ENTITY_PROPERTY(PROP_COMPOUND_SHAPE_URL, properties.getCompoundShapeURL()); + APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); + APPEND_ENTITY_PROPERTY(PROP_TEXTURES, properties.getTextures()); + + APPEND_ENTITY_PROPERTY(PROP_MODEL_URL, properties.getModelURL()); + APPEND_ENTITY_PROPERTY(PROP_JOINT_ROTATIONS_SET, properties.getJointRotationsSet()); + APPEND_ENTITY_PROPERTY(PROP_JOINT_ROTATIONS, properties.getJointRotations()); + APPEND_ENTITY_PROPERTY(PROP_JOINT_TRANSLATIONS_SET, properties.getJointTranslationsSet()); + APPEND_ENTITY_PROPERTY(PROP_JOINT_TRANSLATIONS, properties.getJointTranslations()); + APPEND_ENTITY_PROPERTY(PROP_RELAY_PARENT_JOINTS, properties.getRelayParentJoints()); + + _staticAnimation.setProperties(properties); + _staticAnimation.appendToEditPacket(packetData, requestedProperties, propertyFlags, propertiesDidntFit, propertyCount, appendState); + } + + if (properties.getType() == EntityTypes::Light) { + APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); + APPEND_ENTITY_PROPERTY(PROP_IS_SPOTLIGHT, properties.getIsSpotlight()); + APPEND_ENTITY_PROPERTY(PROP_INTENSITY, properties.getIntensity()); + APPEND_ENTITY_PROPERTY(PROP_EXPONENT, properties.getExponent()); + APPEND_ENTITY_PROPERTY(PROP_CUTOFF, properties.getCutoff()); + APPEND_ENTITY_PROPERTY(PROP_FALLOFF_RADIUS, properties.getFalloffRadius()); + } + + if (properties.getType() == EntityTypes::Text) { + APPEND_ENTITY_PROPERTY(PROP_TEXT, properties.getText()); + APPEND_ENTITY_PROPERTY(PROP_LINE_HEIGHT, properties.getLineHeight()); + APPEND_ENTITY_PROPERTY(PROP_TEXT_COLOR, properties.getTextColor()); + APPEND_ENTITY_PROPERTY(PROP_TEXT_ALPHA, properties.getTextAlpha()); + APPEND_ENTITY_PROPERTY(PROP_BACKGROUND_COLOR, properties.getBackgroundColor()); + APPEND_ENTITY_PROPERTY(PROP_BACKGROUND_ALPHA, properties.getBackgroundAlpha()); + APPEND_ENTITY_PROPERTY(PROP_BILLBOARD_MODE, (uint32_t)properties.getBillboardMode()); + APPEND_ENTITY_PROPERTY(PROP_LEFT_MARGIN, properties.getLeftMargin()); + APPEND_ENTITY_PROPERTY(PROP_RIGHT_MARGIN, properties.getRightMargin()); + APPEND_ENTITY_PROPERTY(PROP_TOP_MARGIN, properties.getTopMargin()); + APPEND_ENTITY_PROPERTY(PROP_BOTTOM_MARGIN, properties.getBottomMargin()); + } + if (properties.getType() == EntityTypes::Zone) { + APPEND_ENTITY_PROPERTY(PROP_SHAPE_TYPE, (uint32_t)properties.getShapeType()); + APPEND_ENTITY_PROPERTY(PROP_COMPOUND_SHAPE_URL, properties.getCompoundShapeURL()); + _staticKeyLight.setProperties(properties); _staticKeyLight.appendToEditPacket(packetData, requestedProperties, propertyFlags, propertiesDidntFit, propertyCount, appendState); @@ -2719,9 +2898,6 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy _staticBloom.setProperties(properties); _staticBloom.appendToEditPacket(packetData, requestedProperties, propertyFlags, propertiesDidntFit, propertyCount, appendState); - APPEND_ENTITY_PROPERTY(PROP_SHAPE_TYPE, (uint32_t)properties.getShapeType()); - APPEND_ENTITY_PROPERTY(PROP_COMPOUND_SHAPE_URL, properties.getCompoundShapeURL()); - APPEND_ENTITY_PROPERTY(PROP_FLYING_ALLOWED, properties.getFlyingAllowed()); APPEND_ENTITY_PROPERTY(PROP_GHOSTING_ALLOWED, properties.getGhostingAllowed()); APPEND_ENTITY_PROPERTY(PROP_FILTER_URL, properties.getFilterURL()); @@ -2748,30 +2924,36 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy APPEND_ENTITY_PROPERTY(PROP_Z_P_NEIGHBOR_ID, properties.getZPNeighborID()); } + if (properties.getType() == EntityTypes::Web) { + APPEND_ENTITY_PROPERTY(PROP_SOURCE_URL, properties.getSourceUrl()); + APPEND_ENTITY_PROPERTY(PROP_DPI, properties.getDPI()); + } + if (properties.getType() == EntityTypes::Line) { APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); - APPEND_ENTITY_PROPERTY(PROP_LINE_WIDTH, properties.getLineWidth()); + APPEND_ENTITY_PROPERTY(PROP_LINE_POINTS, properties.getLinePoints()); } if (properties.getType() == EntityTypes::PolyLine) { APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); - APPEND_ENTITY_PROPERTY(PROP_LINE_WIDTH, properties.getLineWidth()); - APPEND_ENTITY_PROPERTY(PROP_LINE_POINTS, properties.getLinePoints()); - APPEND_ENTITY_PROPERTY(PROP_NORMALS, properties.getPackedNormals()); - APPEND_ENTITY_PROPERTY(PROP_STROKE_COLORS, properties.getPackedStrokeColors()); - APPEND_ENTITY_PROPERTY(PROP_STROKE_WIDTHS, properties.getStrokeWidths()); APPEND_ENTITY_PROPERTY(PROP_TEXTURES, properties.getTextures()); + + APPEND_ENTITY_PROPERTY(PROP_LINE_POINTS, properties.getLinePoints()); + APPEND_ENTITY_PROPERTY(PROP_STROKE_WIDTHS, properties.getStrokeWidths()); + APPEND_ENTITY_PROPERTY(PROP_STROKE_NORMALS, properties.getPackedNormals()); + APPEND_ENTITY_PROPERTY(PROP_STROKE_COLORS, properties.getPackedStrokeColors()); APPEND_ENTITY_PROPERTY(PROP_IS_UV_MODE_STRETCH, properties.getIsUVModeStretch()); } + // NOTE: Spheres and Boxes are just special cases of Shape, and they need to include their PROP_SHAPE // when encoding/decoding edits because otherwise they can't polymorph to other shape types if (properties.getType() == EntityTypes::Shape || properties.getType() == EntityTypes::Box || properties.getType() == EntityTypes::Sphere) { - APPEND_ENTITY_PROPERTY(PROP_SHAPE, properties.getShape()); APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); APPEND_ENTITY_PROPERTY(PROP_ALPHA, properties.getAlpha()); + APPEND_ENTITY_PROPERTY(PROP_SHAPE, properties.getShape()); } // Materials @@ -2789,14 +2971,14 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy // Image if (properties.getType() == EntityTypes::Image) { + APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); + APPEND_ENTITY_PROPERTY(PROP_ALPHA, properties.getAlpha()); + APPEND_ENTITY_PROPERTY(PROP_IMAGE_URL, properties.getImageURL()); APPEND_ENTITY_PROPERTY(PROP_EMISSIVE, properties.getEmissive()); APPEND_ENTITY_PROPERTY(PROP_KEEP_ASPECT_RATIO, properties.getKeepAspectRatio()); APPEND_ENTITY_PROPERTY(PROP_BILLBOARD_MODE, (uint32_t)properties.getBillboardMode()); APPEND_ENTITY_PROPERTY(PROP_SUB_IMAGE, properties.getSubImage()); - - APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor()); - APPEND_ENTITY_PROPERTY(PROP_ALPHA, properties.getAlpha()); } // Grid @@ -2808,33 +2990,6 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy APPEND_ENTITY_PROPERTY(PROP_MAJOR_GRID_EVERY, properties.getMajorGridEvery()); APPEND_ENTITY_PROPERTY(PROP_MINOR_GRID_EVERY, properties.getMinorGridEvery()); } - - APPEND_ENTITY_PROPERTY(PROP_NAME, properties.getName()); - APPEND_ENTITY_PROPERTY(PROP_COLLISION_SOUND_URL, properties.getCollisionSoundURL()); - APPEND_ENTITY_PROPERTY(PROP_ACTION_DATA, properties.getActionData()); - - // Certifiable Properties - APPEND_ENTITY_PROPERTY(PROP_ITEM_NAME, properties.getItemName()); - APPEND_ENTITY_PROPERTY(PROP_ITEM_DESCRIPTION, properties.getItemDescription()); - APPEND_ENTITY_PROPERTY(PROP_ITEM_CATEGORIES, properties.getItemCategories()); - APPEND_ENTITY_PROPERTY(PROP_ITEM_ARTIST, properties.getItemArtist()); - APPEND_ENTITY_PROPERTY(PROP_ITEM_LICENSE, properties.getItemLicense()); - APPEND_ENTITY_PROPERTY(PROP_LIMITED_RUN, properties.getLimitedRun()); - APPEND_ENTITY_PROPERTY(PROP_MARKETPLACE_ID, properties.getMarketplaceID()); - APPEND_ENTITY_PROPERTY(PROP_EDITION_NUMBER, properties.getEditionNumber()); - APPEND_ENTITY_PROPERTY(PROP_ENTITY_INSTANCE_NUMBER, properties.getEntityInstanceNumber()); - APPEND_ENTITY_PROPERTY(PROP_CERTIFICATE_ID, properties.getCertificateID()); - APPEND_ENTITY_PROPERTY(PROP_STATIC_CERTIFICATE_VERSION, properties.getStaticCertificateVersion()); - - APPEND_ENTITY_PROPERTY(PROP_CLONEABLE, properties.getCloneable()); - APPEND_ENTITY_PROPERTY(PROP_CLONE_LIFETIME, properties.getCloneLifetime()); - APPEND_ENTITY_PROPERTY(PROP_CLONE_LIMIT, properties.getCloneLimit()); - APPEND_ENTITY_PROPERTY(PROP_CLONE_DYNAMIC, properties.getCloneDynamic()); - APPEND_ENTITY_PROPERTY(PROP_CLONE_AVATAR_ENTITY, properties.getCloneAvatarEntity()); - - _staticGrab.setProperties(properties); - _staticGrab.appendToEditPacket(packetData, requestedProperties, propertyFlags, - propertiesDidntFit, propertyCount, appendState); } if (propertyCount > 0) { @@ -3014,76 +3169,77 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int processedBytes += propertyFlags.getEncodedLength(); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SIMULATION_OWNER, QByteArray, setSimulationOwner); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_POSITION, vec3, setPosition); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DIMENSIONS, vec3, setDimensions); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ROTATION, quat, setRotation); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DENSITY, float, setDensity); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_VELOCITY, vec3, setVelocity); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_GRAVITY, vec3, setGravity); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ACCELERATION, vec3, setAcceleration); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DAMPING, float, setDamping); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_RESTITUTION, float, setRestitution); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_FRICTION, float, setFriction); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LIFETIME, float, setLifetime); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SCRIPT, QString, setScript); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SCRIPT_TIMESTAMP, quint64, setScriptTimestamp); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SERVER_SCRIPTS, QString, setServerScripts); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_REGISTRATION_POINT, vec3, setRegistrationPoint); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ANGULAR_VELOCITY, vec3, setAngularVelocity); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ANGULAR_DAMPING, float, setAngularDamping); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_VISIBLE, bool, setVisible); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CAN_CAST_SHADOW, bool, setCanCastShadow); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLLISIONLESS, bool, setCollisionless); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLLISION_MASK, uint16_t, setCollisionMask); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DYNAMIC, bool, setDynamic); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_NAME, QString, setName); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LOCKED, bool, setLocked); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_USER_DATA, QString, setUserData); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_HREF, QString, setHref); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DESCRIPTION, QString, setDescription); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_POSITION, vec3, setPosition); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DIMENSIONS, vec3, setDimensions); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ROTATION, quat, setRotation); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_REGISTRATION_POINT, vec3, setRegistrationPoint); + // FIXME: deal with these + // READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CREATED, quint64, setCreated); + // READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LAST_EDITED_BY, QUuid, setLastEditedBy); + // READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ENTITY_HOST_TYPE, entity::HostType, setEntityHostType); + // READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_OWNING_AVATAR_ID, QUuid, setOwningAvatarID); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_PARENT_ID, QUuid, setParentID); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_PARENT_JOINT_INDEX, quint16, setParentJointIndex); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_QUERY_AA_CUBE, AACube, setQueryAACube); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CAN_CAST_SHADOW, bool, setCanCastShadow); + // READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_VISIBLE_IN_SECONDARY_CAMERA, bool, setIsVisibleInSecondaryCamera); // Not sent over the wire + properties.getGrab().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); - if (properties.getType() == EntityTypes::Web) { - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SOURCE_URL, QString, setSourceUrl); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DPI, uint16_t, setDPI); - } + // Physics + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DENSITY, float, setDensity); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_VELOCITY, vec3, setVelocity); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ANGULAR_VELOCITY, vec3, setAngularVelocity); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_GRAVITY, vec3, setGravity); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ACCELERATION, vec3, setAcceleration); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DAMPING, float, setDamping); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ANGULAR_DAMPING, float, setAngularDamping); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_RESTITUTION, float, setRestitution); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_FRICTION, float, setFriction); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LIFETIME, float, setLifetime); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLLISIONLESS, bool, setCollisionless); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLLISION_MASK, uint16_t, setCollisionMask); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DYNAMIC, bool, setDynamic); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLLISION_SOUND_URL, QString, setCollisionSoundURL); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ACTION_DATA, QByteArray, setActionData); - if (properties.getType() == EntityTypes::Text) { - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXT, QString, setText); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_HEIGHT, float, setLineHeight); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXT_COLOR, u8vec3Color, setTextColor); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_BACKGROUND_COLOR, u8vec3Color, setBackgroundColor); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_BILLBOARD_MODE, BillboardMode, setBillboardMode); - } + // Cloning + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONEABLE, bool, setCloneable); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONE_LIFETIME, float, setCloneLifetime); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONE_LIMIT, float, setCloneLimit); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONE_DYNAMIC, bool, setCloneDynamic); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONE_AVATAR_ENTITY, bool, setCloneAvatarEntity); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONE_ORIGIN_ID, QUuid, setCloneOriginID); - if (properties.getType() == EntityTypes::Model) { - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_MODEL_URL, QString, setModelURL); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COMPOUND_SHAPE_URL, QString, setCompoundShapeURL); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXTURES, QString, setTextures); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SHAPE_TYPE, ShapeType, setShapeType); + // Scripts + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SCRIPT, QString, setScript); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SCRIPT_TIMESTAMP, quint64, setScriptTimestamp); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SERVER_SCRIPTS, QString, setServerScripts); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_JOINT_ROTATIONS_SET, QVector<bool>, setJointRotationsSet); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_JOINT_ROTATIONS, QVector<quat>, setJointRotations); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_JOINT_TRANSLATIONS_SET, QVector<bool>, setJointTranslationsSet); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_JOINT_TRANSLATIONS, QVector<vec3>, setJointTranslations); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_RELAY_PARENT_JOINTS, bool, setRelayParentJoints); - - properties.getAnimation().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); - } - - if (properties.getType() == EntityTypes::Light) { - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_IS_SPOTLIGHT, bool, setIsSpotlight); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_INTENSITY, float, setIntensity); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_EXPONENT, float, setExponent); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CUTOFF, float, setCutoff); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_FALLOFF_RADIUS, float, setFalloffRadius); - } + // Certifiable Properties + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_NAME, QString, setItemName); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_DESCRIPTION, QString, setItemDescription); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_CATEGORIES, QString, setItemCategories); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_ARTIST, QString, setItemArtist); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_LICENSE, QString, setItemLicense); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LIMITED_RUN, quint32, setLimitedRun); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_MARKETPLACE_ID, QString, setMarketplaceID); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_EDITION_NUMBER, quint32, setEditionNumber); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ENTITY_INSTANCE_NUMBER, quint32, setEntityInstanceNumber); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CERTIFICATE_ID, QString, setCertificateID); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STATIC_CERTIFICATE_VERSION, quint32, setStaticCertificateVersion); if (properties.getType() == EntityTypes::ParticleEffect) { READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SHAPE_TYPE, ShapeType, setShapeType); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ALPHA, float, setAlpha); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXTURES, QString, setTextures); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_MAX_PARTICLES, quint32, setMaxParticles); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LIFESPAN, float, setLifespan); @@ -3108,17 +3264,14 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_RADIUS_START, float, setRadiusStart); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_RADIUS_FINISH, float, setRadiusFinish); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR_SPREAD, u8vec3Color, setColorSpread); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR_START, vec3Color, setColorStart); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR_FINISH, vec3Color, setColorFinish); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ALPHA, float, setAlpha); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ALPHA_SPREAD, float, setAlphaSpread); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ALPHA_START, float, setAlphaStart); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ALPHA_FINISH, float, setAlphaFinish); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXTURES, QString, setTextures); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_EMITTER_SHOULD_TRAIL, bool, setEmitterShouldTrail); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_PARTICLE_SPIN, float, setParticleSpin); @@ -3128,16 +3281,56 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_PARTICLE_ROTATE_WITH_ENTITY, bool, setRotateWithEntity); } + if (properties.getType() == EntityTypes::Model) { + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SHAPE_TYPE, ShapeType, setShapeType); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COMPOUND_SHAPE_URL, QString, setCompoundShapeURL); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXTURES, QString, setTextures); + + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_MODEL_URL, QString, setModelURL); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_JOINT_ROTATIONS_SET, QVector<bool>, setJointRotationsSet); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_JOINT_ROTATIONS, QVector<quat>, setJointRotations); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_JOINT_TRANSLATIONS_SET, QVector<bool>, setJointTranslationsSet); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_JOINT_TRANSLATIONS, QVector<vec3>, setJointTranslations); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_RELAY_PARENT_JOINTS, bool, setRelayParentJoints); + + properties.getAnimation().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); + } + + if (properties.getType() == EntityTypes::Light) { + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); + + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_IS_SPOTLIGHT, bool, setIsSpotlight); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_INTENSITY, float, setIntensity); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_EXPONENT, float, setExponent); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CUTOFF, float, setCutoff); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_FALLOFF_RADIUS, float, setFalloffRadius); + } + + if (properties.getType() == EntityTypes::Text) { + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXT, QString, setText); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_HEIGHT, float, setLineHeight); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXT_COLOR, u8vec3Color, setTextColor); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXT_ALPHA, float, setTextAlpha); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_BACKGROUND_COLOR, u8vec3Color, setBackgroundColor); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_BACKGROUND_ALPHA, float, setBackgroundAlpha); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_BILLBOARD_MODE, BillboardMode, setBillboardMode); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LEFT_MARGIN, float, setLeftMargin); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_RIGHT_MARGIN, float, setRightMargin); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TOP_MARGIN, float, setTopMargin); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_BOTTOM_MARGIN, float, setBottomMargin); + } + if (properties.getType() == EntityTypes::Zone) { + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SHAPE_TYPE, ShapeType, setShapeType); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COMPOUND_SHAPE_URL, QString, setCompoundShapeURL); + properties.getKeyLight().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); properties.getAmbientLight().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); properties.getSkybox().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); properties.getHaze().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); properties.getBloom().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SHAPE_TYPE, ShapeType, setShapeType); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COMPOUND_SHAPE_URL, QString, setCompoundShapeURL); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_FLYING_ALLOWED, bool, setFlyingAllowed); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_GHOSTING_ALLOWED, bool, setGhostingAllowed); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_FILTER_URL, QString, setFilterURL); @@ -3164,21 +3357,25 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_Z_P_NEIGHBOR_ID, EntityItemID, setZPNeighborID); } + if (properties.getType() == EntityTypes::Web) { + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SOURCE_URL, QString, setSourceUrl); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DPI, uint16_t, setDPI); + } + if (properties.getType() == EntityTypes::Line) { READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_WIDTH, float, setLineWidth); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_POINTS, QVector<vec3>, setLinePoints); } - if (properties.getType() == EntityTypes::PolyLine) { READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_WIDTH, float, setLineWidth); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_POINTS, QVector<vec3>, setLinePoints); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_NORMALS, QByteArray, setPackedNormals); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STROKE_COLORS, QByteArray, setPackedStrokeColors); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STROKE_WIDTHS, QVector<float>, setStrokeWidths); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_TEXTURES, QString, setTextures); + + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LINE_POINTS, QVector<vec3>, setLinePoints); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STROKE_WIDTHS, QVector<float>, setStrokeWidths); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STROKE_NORMALS, QByteArray, setPackedNormals); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STROKE_COLORS, QByteArray, setPackedStrokeColors); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_IS_UV_MODE_STRETCH, bool, setIsUVModeStretch); } @@ -3187,9 +3384,9 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int if (properties.getType() == EntityTypes::Shape || properties.getType() == EntityTypes::Box || properties.getType() == EntityTypes::Sphere) { - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SHAPE, QString, setShape); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ALPHA, float, setAlpha); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SHAPE, QString, setShape); } // Materials @@ -3207,14 +3404,14 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int // Image if (properties.getType() == EntityTypes::Image) { + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ALPHA, float, setAlpha); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_IMAGE_URL, QString, setImageURL); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_EMISSIVE, bool, setEmissive); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_KEEP_ASPECT_RATIO, bool, setKeepAspectRatio); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_BILLBOARD_MODE, BillboardMode, setBillboardMode); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SUB_IMAGE, QRect, setSubImage); - - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, u8vec3Color, setColor); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ALPHA, float, setAlpha); } // Grid @@ -3227,31 +3424,6 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_MINOR_GRID_EVERY, float, setMinorGridEvery); } - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_NAME, QString, setName); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLLISION_SOUND_URL, QString, setCollisionSoundURL); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ACTION_DATA, QByteArray, setActionData); - - // Certifiable Properties - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_NAME, QString, setItemName); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_DESCRIPTION, QString, setItemDescription); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_CATEGORIES, QString, setItemCategories); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_ARTIST, QString, setItemArtist); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ITEM_LICENSE, QString, setItemLicense); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LIMITED_RUN, quint32, setLimitedRun); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_MARKETPLACE_ID, QString, setMarketplaceID); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_EDITION_NUMBER, quint32, setEditionNumber); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ENTITY_INSTANCE_NUMBER, quint32, setEntityInstanceNumber); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CERTIFICATE_ID, QString, setCertificateID); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_STATIC_CERTIFICATE_VERSION, quint32, setStaticCertificateVersion); - - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONEABLE, bool, setCloneable); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONE_LIFETIME, float, setCloneLifetime); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONE_LIMIT, float, setCloneLimit); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONE_DYNAMIC, bool, setCloneDynamic); - READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CLONE_AVATAR_ENTITY, bool, setCloneAvatarEntity); - - properties.getGrab().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); - return valid; } @@ -3376,94 +3548,58 @@ bool EntityItemProperties::decodeCloneEntityMessage(const QByteArray& buffer, in } void EntityItemProperties::markAllChanged() { - _lastEditedByChanged = true; + // Core _simulationOwnerChanged = true; + _visibleChanged = true; + _nameChanged = true; + _lockedChanged = true; + _userDataChanged = true; + _hrefChanged = true; + _descriptionChanged = true; _positionChanged = true; _dimensionsChanged = true; _rotationChanged = true; + _registrationPointChanged = true; + _createdChanged = true; + _lastEditedByChanged = true; + _entityHostTypeChanged = true; + _owningAvatarIDChanged = true; + _parentIDChanged = true; + _parentJointIndexChanged = true; + _queryAACubeChanged = true; + _canCastShadowChanged = true; + _isVisibleInSecondaryCameraChanged = true; + _grab.markAllChanged(); + + // Physics _densityChanged = true; _velocityChanged = true; + _angularVelocityChanged = true; _gravityChanged = true; _accelerationChanged = true; _dampingChanged = true; + _angularDampingChanged = true; _restitutionChanged = true; _frictionChanged = true; _lifetimeChanged = true; - _userDataChanged = true; - _scriptChanged = true; - _scriptTimestampChanged = true; - _serverScriptsChanged = true; - _collisionSoundURLChanged = true; - _registrationPointChanged = true; - _angularVelocityChanged = true; - _angularDampingChanged = true; - _nameChanged = true; - _visibleChanged = true; - _canCastShadowChanged = true; - _colorChanged = true; - _alphaChanged = true; - _modelURLChanged = true; - _compoundShapeURLChanged = true; - _localRenderAlphaChanged = true; - _isSpotlightChanged = true; _collisionlessChanged = true; _collisionMaskChanged = true; _dynamicChanged = true; + _collisionSoundURLChanged = true; + _actionDataChanged = true; - _intensityChanged = true; - _falloffRadiusChanged = true; - _exponentChanged = true; - _cutoffChanged = true; - _lockedChanged = true; - _texturesChanged = true; + // Cloning + _cloneableChanged = true; + _cloneLifetimeChanged = true; + _cloneLimitChanged = true; + _cloneDynamicChanged = true; + _cloneAvatarEntityChanged = true; + _cloneOriginIDChanged = true; - _textChanged = true; - _lineHeightChanged = true; - _textColorChanged = true; - _backgroundColorChanged = true; - _shapeTypeChanged = true; - - _isEmittingChanged = true; - _emitterShouldTrailChanged = true; - _maxParticlesChanged = true; - _lifespanChanged = true; - _emitRateChanged = true; - _emitSpeedChanged = true; - _speedSpreadChanged = true; - _emitOrientationChanged = true; - _emitDimensionsChanged = true; - _emitRadiusStartChanged = true; - _polarStartChanged = true; - _polarFinishChanged = true; - _azimuthStartChanged = true; - _azimuthFinishChanged = true; - _emitAccelerationChanged = true; - _accelerationSpreadChanged = true; - _particleRadiusChanged = true; - _radiusSpreadChanged = true; - _colorSpreadChanged = true; - _alphaSpreadChanged = true; - _radiusStartChanged = true; - _radiusFinishChanged = true; - _colorStartChanged = true; - _colorFinishChanged = true; - _alphaStartChanged = true; - _alphaFinishChanged = true; - _particleSpinChanged = true; - _spinStartChanged = true; - _spinFinishChanged = true; - _spinSpreadChanged = true; - _rotateWithEntityChanged = true; - - _materialURLChanged = true; - _materialMappingModeChanged = true; - _priorityChanged = true; - _parentMaterialNameChanged = true; - _materialMappingPosChanged = true; - _materialMappingScaleChanged = true; - _materialMappingRotChanged = true; - _materialDataChanged = true; - _materialRepeatChanged = true; + // Scripts + _scriptChanged = true; + _scriptTimestampChanged = true; + _serverScriptsChanged = true; // Certifiable Properties _itemNameChanged = true; @@ -3478,88 +3614,136 @@ void EntityItemProperties::markAllChanged() { _certificateIDChanged = true; _staticCertificateVersionChanged = true; - _keyLight.markAllChanged(); - _ambientLight.markAllChanged(); - _skybox.markAllChanged(); + // Common + _shapeTypeChanged = true; + _colorChanged = true; + _alphaChanged = true; + _texturesChanged = true; + _compoundShapeURLChanged = true; - _keyLightModeChanged = true; - _skyboxModeChanged = true; - _ambientLightModeChanged = true; - _hazeModeChanged = true; - _bloomModeChanged = true; - - _animation.markAllChanged(); - _skybox.markAllChanged(); - _haze.markAllChanged(); - _bloom.markAllChanged(); - _grab.markAllChanged(); - - _sourceUrlChanged = true; - _voxelVolumeSizeChanged = true; - _voxelDataChanged = true; - _voxelSurfaceStyleChanged = true; - - _lineWidthChanged = true; - _linePointsChanged = true; - - _hrefChanged = true; - _descriptionChanged = true; - _billboardModeChanged = true; - _actionDataChanged = true; - - _normalsChanged = true; - _strokeColorsChanged = true; - _strokeWidthsChanged = true; - _isUVModeStretchChanged = true; - - _xTextureURLChanged = true; - _yTextureURLChanged = true; - _zTextureURLChanged = true; - - _xNNeighborIDChanged = true; - _yNNeighborIDChanged = true; - _zNNeighborIDChanged = true; - - _xPNeighborIDChanged = true; - _yPNeighborIDChanged = true; - _zPNeighborIDChanged = true; - - _parentIDChanged = true; - _parentJointIndexChanged = true; + // Particles + _maxParticlesChanged = true; + _lifespanChanged = true; + _isEmittingChanged = true; + _emitRateChanged = true; + _emitSpeedChanged = true; + _speedSpreadChanged = true; + _emitOrientationChanged = true; + _emitDimensionsChanged = true; + _emitRadiusStartChanged = true; + _polarStartChanged = true; + _polarFinishChanged = true; + _azimuthStartChanged = true; + _azimuthFinishChanged = true; + _emitAccelerationChanged = true; + _accelerationSpreadChanged = true; + _particleRadiusChanged = true; + _radiusSpreadChanged = true; + _radiusStartChanged = true; + _radiusFinishChanged = true; + _colorSpreadChanged = true; + _colorStartChanged = true; + _colorFinishChanged = true; + _alphaSpreadChanged = true; + _alphaStartChanged = true; + _alphaFinishChanged = true; + _emitterShouldTrailChanged = true; + _particleSpinChanged = true; + _spinStartChanged = true; + _spinFinishChanged = true; + _spinSpreadChanged = true; + _rotateWithEntityChanged = true; + // Model + _modelURLChanged = true; _jointRotationsSetChanged = true; _jointRotationsChanged = true; _jointTranslationsSetChanged = true; _jointTranslationsChanged = true; + _relayParentJointsChanged = true; + _animation.markAllChanged(); - _queryAACubeChanged = true; + // Light + _isSpotlightChanged = true; + _intensityChanged = true; + _exponentChanged = true; + _cutoffChanged = true; + _falloffRadiusChanged = true; - _shapeChanged = true; + // Text + _textChanged = true; + _lineHeightChanged = true; + _textColorChanged = true; + _textAlphaChanged = true; + _backgroundColorChanged = true; + _backgroundAlphaChanged = true; + _billboardModeChanged = true; + _leftMarginChanged = true; + _rightMarginChanged = true; + _topMarginChanged = true; + _bottomMarginChanged = true; + // Zone + _keyLight.markAllChanged(); + _ambientLight.markAllChanged(); + _skybox.markAllChanged(); + _haze.markAllChanged(); + _bloom.markAllChanged(); _flyingAllowedChanged = true; _ghostingAllowedChanged = true; _filterURLChanged = true; + _keyLightModeChanged = true; + _ambientLightModeChanged = true; + _skyboxModeChanged = true; + _hazeModeChanged = true; + _bloomModeChanged = true; - _entityHostTypeChanged = true; - _owningAvatarIDChanged = true; + // Polyvox + _voxelVolumeSizeChanged = true; + _voxelDataChanged = true; + _voxelSurfaceStyleChanged = true; + _xTextureURLChanged = true; + _yTextureURLChanged = true; + _zTextureURLChanged = true; + _xNNeighborIDChanged = true; + _yNNeighborIDChanged = true; + _zNNeighborIDChanged = true; + _xPNeighborIDChanged = true; + _yPNeighborIDChanged = true; + _zPNeighborIDChanged = true; + // Web + _sourceUrlChanged = true; _dpiChanged = true; - _relayParentJointsChanged = true; - _cloneableChanged = true; - _cloneLifetimeChanged = true; - _cloneLimitChanged = true; - _cloneDynamicChanged = true; - _cloneAvatarEntityChanged = true; - _cloneOriginIDChanged = true; + // Polyline + _linePointsChanged = true; + _strokeWidthsChanged = true; + _normalsChanged = true; + _strokeColorsChanged = true; + _isUVModeStretchChanged = true; - _isVisibleInSecondaryCameraChanged = true; + // Shape + _shapeChanged = true; + // Material + _materialURLChanged = true; + _materialMappingModeChanged = true; + _priorityChanged = true; + _parentMaterialNameChanged = true; + _materialMappingPosChanged = true; + _materialMappingScaleChanged = true; + _materialMappingRotChanged = true; + _materialDataChanged = true; + _materialRepeatChanged = true; + + // Image _imageURLChanged = true; _emissiveChanged = true; _keepAspectRatioChanged = true; _subImageChanged = true; + // Grid _followCameraChanged = true; _majorGridEveryChanged = true; _minorGridEveryChanged = true; @@ -3590,6 +3774,18 @@ bool EntityItemProperties::hasTransformOrVelocityChanges() const { || _accelerationChanged; } +void EntityItemProperties::clearTransformOrVelocityChanges() { + _positionChanged = false; + _localPositionChanged = false; + _rotationChanged = false; + _localRotationChanged = false; + _velocityChanged = false; + _localVelocityChanged = false; + _angularVelocityChanged = false; + _localAngularVelocityChanged = false; + _accelerationChanged = false; +} + bool EntityItemProperties::hasMiscPhysicsChanges() const { return _gravityChanged || _dimensionsChanged || _densityChanged || _frictionChanged || _restitutionChanged || _dampingChanged || _angularDampingChanged || _registrationPointChanged || @@ -3600,6 +3796,7 @@ bool EntityItemProperties::hasSimulationRestrictedChanges() const { return _positionChanged || _localPositionChanged || _rotationChanged || _localRotationChanged || _velocityChanged || _localVelocityChanged + || _localDimensionsChanged || _dimensionsChanged || _angularVelocityChanged || _localAngularVelocityChanged || _accelerationChanged || _parentIDChanged || _parentJointIndexChanged; @@ -3680,30 +3877,81 @@ uint8_t EntityItemProperties::computeSimulationBidPriority() const { QList<QString> EntityItemProperties::listChangedProperties() { QList<QString> out; + + // Core + if (simulationOwnerChanged()) { + out += "simulationOwner"; + } + if (visibleChanged()) { + out += "visible"; + } + if (nameChanged()) { + out += "name"; + } + if (lockedChanged()) { + out += "locked"; + } + if (userDataChanged()) { + out += "userData"; + } + if (hrefChanged()) { + out += "href"; + } + if (descriptionChanged()) { + out += "description"; + } if (containsPositionChange()) { out += "position"; } if (dimensionsChanged()) { out += "dimensions"; } - if (velocityChanged()) { - out += "velocity"; + if (rotationChanged()) { + out += "rotation"; } - if (nameChanged()) { - out += "name"; + if (registrationPointChanged()) { + out += "registrationPoint"; } - if (visibleChanged()) { - out += "visible"; + // FIXME: handle these + //if (createdChanged()) { + // out += "created"; + //} + //if (lastEditedByChanged()) { + // out += "lastEditedBy"; + //} + if (entityHostTypeChanged()) { + out += "entityHostType"; + } + if (owningAvatarIDChanged()) { + out += "owningAvatarID"; + } + if (parentIDChanged()) { + out += "parentID"; + } + if (parentJointIndexChanged()) { + out += "parentJointIndex"; + } + if (queryAACubeChanged()) { + out += "queryAACube"; } if (canCastShadowChanged()) { out += "canCastShadow"; } - if (rotationChanged()) { - out += "rotation"; + if (isVisibleInSecondaryCameraChanged()) { + out += "isVisibleInSecondaryCamera"; } + getGrab().listChangedProperties(out); + + // Physics if (densityChanged()) { out += "density"; } + if (velocityChanged()) { + out += "velocity"; + } + if (angularVelocityChanged()) { + out += "angularVelocity"; + } if (gravityChanged()) { out += "gravity"; } @@ -3713,6 +3961,9 @@ QList<QString> EntityItemProperties::listChangedProperties() { if (dampingChanged()) { out += "damping"; } + if (angularDampingChanged()) { + out += "angularDamping"; + } if (restitutionChanged()) { out += "restitution"; } @@ -3722,60 +3973,6 @@ QList<QString> EntityItemProperties::listChangedProperties() { if (lifetimeChanged()) { out += "lifetime"; } - if (scriptChanged()) { - out += "script"; - } - if (scriptTimestampChanged()) { - out += "scriptTimestamp"; - } - if (serverScriptsChanged()) { - out += "serverScripts"; - } - if (collisionSoundURLChanged()) { - out += "collisionSoundURL"; - } - if (colorChanged()) { - out += "color"; - } - if (colorSpreadChanged()) { - out += "colorSpread"; - } - if (colorStartChanged()) { - out += "colorStart"; - } - if (colorFinishChanged()) { - out += "colorFinish"; - } - if (alphaChanged()) { - out += "alpha"; - } - if (alphaSpreadChanged()) { - out += "alphaSpread"; - } - if (alphaStartChanged()) { - out += "alphaStart"; - } - if (alphaFinishChanged()) { - out += "alphaFinish"; - } - if (emitterShouldTrailChanged()) { - out += "emitterShouldTrail"; - } - if (modelURLChanged()) { - out += "modelURL"; - } - if (compoundShapeURLChanged()) { - out += "compoundShapeURL"; - } - if (registrationPointChanged()) { - out += "registrationPoint"; - } - if (angularVelocityChanged()) { - out += "angularVelocity"; - } - if (angularDampingChanged()) { - out += "angularDamping"; - } if (collisionlessChanged()) { out += "collisionless"; } @@ -3785,48 +3982,97 @@ QList<QString> EntityItemProperties::listChangedProperties() { if (dynamicChanged()) { out += "dynamic"; } - if (isSpotlightChanged()) { - out += "isSpotlight"; + if (collisionSoundURLChanged()) { + out += "collisionSoundURL"; } - if (intensityChanged()) { - out += "intensity"; + if (actionDataChanged()) { + out += "actionData"; } - if (falloffRadiusChanged()) { - out += "falloffRadius"; + + // Cloning + if (cloneableChanged()) { + out += "cloneable"; } - if (exponentChanged()) { - out += "exponent"; + if (cloneLifetimeChanged()) { + out += "cloneLifetime"; } - if (cutoffChanged()) { - out += "cutoff"; + if (cloneLimitChanged()) { + out += "cloneLimit"; } - if (lockedChanged()) { - out += "locked"; + if (cloneDynamicChanged()) { + out += "cloneDynamic"; + } + if (cloneAvatarEntityChanged()) { + out += "cloneAvatarEntity"; + } + if (cloneOriginIDChanged()) { + out += "cloneOriginID"; + } + + // Scripts + if (scriptChanged()) { + out += "script"; + } + if (scriptTimestampChanged()) { + out += "scriptTimestamp"; + } + if (serverScriptsChanged()) { + out += "serverScripts"; + } + + // Certifiable Properties + if (itemNameChanged()) { + out += "itemName"; + } + if (itemDescriptionChanged()) { + out += "itemDescription"; + } + if (itemCategoriesChanged()) { + out += "itemCategories"; + } + if (itemArtistChanged()) { + out += "itemArtist"; + } + if (itemLicenseChanged()) { + out += "itemLicense"; + } + if (limitedRunChanged()) { + out += "limitedRun"; + } + if (marketplaceIDChanged()) { + out += "marketplaceID"; + } + if (editionNumberChanged()) { + out += "editionNumber"; + } + if (entityInstanceNumberChanged()) { + out += "entityInstanceNumber"; + } + if (certificateIDChanged()) { + out += "certificateID"; + } + if (staticCertificateVersionChanged()) { + out += "staticCertificateVersion"; + } + + // Common + if (shapeTypeChanged()) { + out += "shapeType"; + } + if (compoundShapeURLChanged()) { + out += "compoundShapeURL"; + } + if (colorChanged()) { + out += "color"; + } + if (alphaChanged()) { + out += "alpha"; } if (texturesChanged()) { out += "textures"; } - if (userDataChanged()) { - out += "userData"; - } - if (simulationOwnerChanged()) { - out += "simulationOwner"; - } - if (textChanged()) { - out += "text"; - } - if (lineHeightChanged()) { - out += "lineHeight"; - } - if (textColorChanged()) { - out += "textColor"; - } - if (backgroundColorChanged()) { - out += "backgroundColor"; - } - if (shapeTypeChanged()) { - out += "shapeType"; - } + + // Particles if (maxParticlesChanged()) { out += "maxParticles"; } @@ -3884,6 +4130,27 @@ QList<QString> EntityItemProperties::listChangedProperties() { if (radiusFinishChanged()) { out += "radiusFinish"; } + if (colorSpreadChanged()) { + out += "colorSpread"; + } + if (colorStartChanged()) { + out += "colorStart"; + } + if (colorFinishChanged()) { + out += "colorFinish"; + } + if (alphaSpreadChanged()) { + out += "alphaSpread"; + } + if (alphaStartChanged()) { + out += "alphaStart"; + } + if (alphaFinishChanged()) { + out += "alphaFinish"; + } + if (emitterShouldTrailChanged()) { + out += "emitterShouldTrail"; + } if (particleSpinChanged()) { out += "particleSpin"; } @@ -3899,77 +4166,94 @@ QList<QString> EntityItemProperties::listChangedProperties() { if (rotateWithEntityChanged()) { out += "rotateWithEntity"; } - if (materialURLChanged()) { - out += "materialURL"; + + // Model + if (modelURLChanged()) { + out += "modelURL"; } - if (materialMappingModeChanged()) { - out += "materialMappingMode"; + if (jointRotationsSetChanged()) { + out += "jointRotationsSet"; } - if (priorityChanged()) { - out += "priority"; + if (jointRotationsChanged()) { + out += "jointRotations"; } - if (parentMaterialNameChanged()) { - out += "parentMaterialName"; + if (jointTranslationsSetChanged()) { + out += "jointTranslationsSet"; } - if (materialMappingPosChanged()) { - out += "materialMappingPos"; + if (jointTranslationsChanged()) { + out += "jointTranslations"; } - if (materialMappingScaleChanged()) { - out += "materialMappingScale"; + if (relayParentJointsChanged()) { + out += "relayParentJoints"; } - if (materialMappingRotChanged()) { - out += "materialMappingRot"; + getAnimation().listChangedProperties(out); + + // Light + if (isSpotlightChanged()) { + out += "isSpotlight"; } - if (materialDataChanged()) { - out += "materialData"; + if (intensityChanged()) { + out += "intensity"; } - if (materialRepeatChanged()) { - out += "materialRepeat"; + if (exponentChanged()) { + out += "exponent"; } - if (isVisibleInSecondaryCameraChanged()) { - out += "isVisibleInSecondaryCamera"; + if (cutoffChanged()) { + out += "cutoff"; + } + if (falloffRadiusChanged()) { + out += "falloffRadius"; } - // Certifiable Properties - if (itemNameChanged()) { - out += "itemName"; + // Text + if (textChanged()) { + out += "text"; } - if (itemDescriptionChanged()) { - out += "itemDescription"; + if (lineHeightChanged()) { + out += "lineHeight"; } - if (itemCategoriesChanged()) { - out += "itemCategories"; + if (textColorChanged()) { + out += "textColor"; } - if (itemArtistChanged()) { - out += "itemArtist"; + if (textAlphaChanged()) { + out += "textAlpha"; } - if (itemLicenseChanged()) { - out += "itemLicense"; + if (backgroundColorChanged()) { + out += "backgroundColor"; } - if (limitedRunChanged()) { - out += "limitedRun"; + if (backgroundAlphaChanged()) { + out += "backgroundAlpha"; } - if (marketplaceIDChanged()) { - out += "marketplaceID"; + if (billboardModeChanged()) { + out += "billboardMode"; } - if (editionNumberChanged()) { - out += "editionNumber"; + if (leftMarginChanged()) { + out += "leftMargin"; } - if (entityInstanceNumberChanged()) { - out += "entityInstanceNumber"; + if (rightMarginChanged()) { + out += "rightMargin"; } - if (certificateIDChanged()) { - out += "certificateID"; + if (topMarginChanged()) { + out += "topMargin"; } - if (staticCertificateVersionChanged()) { - out += "staticCertificateVersion"; + if (bottomMarginChanged()) { + out += "bottomMargin"; } - if (hazeModeChanged()) { - out += "hazeMode"; + // Zone + getKeyLight().listChangedProperties(out); + getAmbientLight().listChangedProperties(out); + getSkybox().listChangedProperties(out); + getHaze().listChangedProperties(out); + getBloom().listChangedProperties(out); + if (flyingAllowedChanged()) { + out += "flyingAllowed"; } - if (bloomModeChanged()) { - out += "bloomMode"; + if (ghostingAllowedChanged()) { + out += "ghostingAllowed"; + } + if (filterURLChanged()) { + out += "filterURL"; } if (keyLightModeChanged()) { out += "keyLightMode"; @@ -3980,7 +4264,14 @@ QList<QString> EntityItemProperties::listChangedProperties() { if (skyboxModeChanged()) { out += "skyboxMode"; } + if (hazeModeChanged()) { + out += "hazeMode"; + } + if (bloomModeChanged()) { + out += "bloomMode"; + } + // Polyvox if (voxelVolumeSizeChanged()) { out += "voxelVolumeSize"; } @@ -3990,15 +4281,6 @@ QList<QString> EntityItemProperties::listChangedProperties() { if (voxelSurfaceStyleChanged()) { out += "voxelSurfaceStyle"; } - if (hrefChanged()) { - out += "href"; - } - if (descriptionChanged()) { - out += "description"; - } - if (actionDataChanged()) { - out += "actionData"; - } if (xTextureURLChanged()) { out += "xTextureURL"; } @@ -4026,82 +4308,67 @@ QList<QString> EntityItemProperties::listChangedProperties() { if (zPNeighborIDChanged()) { out += "zPNeighborID"; } - if (parentIDChanged()) { - out += "parentID"; - } - if (parentJointIndexChanged()) { - out += "parentJointIndex"; - } - if (jointRotationsSetChanged()) { - out += "jointRotationsSet"; - } - if (jointRotationsChanged()) { - out += "jointRotations"; - } - if (jointTranslationsSetChanged()) { - out += "jointTranslationsSet"; - } - if (jointTranslationsChanged()) { - out += "jointTranslations"; - } - if (relayParentJointsChanged()) { - out += "relayParentJoints"; - } - if (queryAACubeChanged()) { - out += "queryAACube"; - } - if (entityHostTypeChanged()) { - out += "entityHostType"; - } - if (owningAvatarIDChanged()) { - out += "owningAvatarID"; - } - - if (flyingAllowedChanged()) { - out += "flyingAllowed"; - } - if (ghostingAllowedChanged()) { - out += "ghostingAllowed"; - } - if (filterURLChanged()) { - out += "filterURL"; + // Web + if (sourceUrlChanged()) { + out += "sourceUrl"; } if (dpiChanged()) { out += "dpi"; } - if (shapeChanged()) { - out += "shape"; + // Polyline + if (linePointsChanged()) { + out += "linePoints"; + } + if (strokeWidthsChanged()) { + out += "strokeWidths"; + } + if (normalsChanged()) { + out += "normals"; } - if (strokeColorsChanged()) { out += "strokeColors"; } - if (isUVModeStretchChanged()) { out += "isUVModeStretch"; } - if (cloneableChanged()) { - out += "cloneable"; - } - if (cloneLifetimeChanged()) { - out += "cloneLifetime"; - } - if (cloneLimitChanged()) { - out += "cloneLimit"; - } - if (cloneDynamicChanged()) { - out += "cloneDynamic"; - } - if (cloneAvatarEntityChanged()) { - out += "cloneAvatarEntity"; - } - if (cloneOriginIDChanged()) { - out += "cloneOriginID"; + // Shape + if (shapeChanged()) { + out += "shape"; } + // Material + if (materialURLChanged()) { + out += "materialURL"; + } + if (materialMappingModeChanged()) { + out += "materialMappingMode"; + } + if (priorityChanged()) { + out += "priority"; + } + if (parentMaterialNameChanged()) { + out += "parentMaterialName"; + } + if (materialMappingPosChanged()) { + out += "materialMappingPos"; + } + if (materialMappingScaleChanged()) { + out += "materialMappingScale"; + } + if (materialMappingRotChanged()) { + out += "materialMappingRot"; + } + if (materialDataChanged()) { + out += "materialData"; + } + if (materialRepeatChanged()) { + out += "materialRepeat"; + } + + // Image if (imageURLChanged()) { out += "imageURL"; } @@ -4115,10 +4382,7 @@ QList<QString> EntityItemProperties::listChangedProperties() { out += "subImage"; } - if (billboardModeChanged()) { - out += "billboardMode"; - } - + // Grid if (followCameraChanged()) { out += "followCamera"; } @@ -4129,14 +4393,6 @@ QList<QString> EntityItemProperties::listChangedProperties() { out += "minorGridEvery"; } - getAnimation().listChangedProperties(out); - getKeyLight().listChangedProperties(out); - getAmbientLight().listChangedProperties(out); - getSkybox().listChangedProperties(out); - getHaze().listChangedProperties(out); - getBloom().listChangedProperties(out); - getGrab().listChangedProperties(out); - return out; } @@ -4326,4 +4582,19 @@ void EntityItemProperties::convertToCloneProperties(const EntityItemID& entityID setCloneLimit(ENTITY_ITEM_DEFAULT_CLONE_LIMIT); setCloneDynamic(ENTITY_ITEM_DEFAULT_CLONE_DYNAMIC); setCloneAvatarEntity(ENTITY_ITEM_DEFAULT_CLONE_AVATAR_ENTITY); -} \ No newline at end of file +} + +QDebug& operator<<(QDebug& dbg, const EntityPropertyFlags& f) { + QString result = "[ "; + + for (int i = 0; i < PROP_AFTER_LAST_ITEM; i++) { + auto prop = EntityPropertyList(i); + if (f.getHasProperty(prop)) { + result = result + _enumsToPropertyStrings[prop] + " "; + } + } + + result += "]"; + dbg.nospace() << result; + return dbg; +} From 51ce19e026fd0ec9677aedfe46ef8b867145c6d1 Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Fri, 4 Jan 2019 12:08:23 -0800 Subject: [PATCH 108/230] Fix modified const var in MarketplaceItemUploader --- interface/src/avatar/MarketplaceItemUploader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/avatar/MarketplaceItemUploader.cpp b/interface/src/avatar/MarketplaceItemUploader.cpp index 938485353c..543617fc56 100644 --- a/interface/src/avatar/MarketplaceItemUploader.cpp +++ b/interface/src/avatar/MarketplaceItemUploader.cpp @@ -173,7 +173,7 @@ void MarketplaceItemUploader::doUploadAvatar() { qDebug() << "Finished zipping, size: " << (buffer.size() / (1000.0f)) << "KB"; - static const QString path = "/api/v1/marketplace/items"; + QString path = "/api/v1/marketplace/items"; bool creating = true; if (!_marketplaceID.isNull()) { creating = false; From 0072684d98c5037e5aad89b61dc6e70eba53bd1a Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Mon, 19 Nov 2018 17:26:00 -0800 Subject: [PATCH 109/230] remove cruft and fix error in transform to mesh frame --- .../src/RenderableModelEntityItem.cpp | 4 +- libraries/render-utils/src/Model.cpp | 57 ++----------------- libraries/render-utils/src/Model.h | 2 +- 3 files changed, 9 insertions(+), 54 deletions(-) diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp index dcad562ba7..3c4aeb2686 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp @@ -726,7 +726,9 @@ int RenderableModelEntityItem::avatarJointIndex(int modelJointIndex) { bool RenderableModelEntityItem::contains(const glm::vec3& point) const { auto model = getModel(); if (EntityItem::contains(point) && model && _compoundShapeResource && _compoundShapeResource->isLoaded()) { - return _compoundShapeResource->getHFMModel().convexHullContains(worldToEntity(point)); + glm::mat4 worldToHFMMatrix = model->getWorldToHFMMatrix(); + glm::vec3 hfmPoint = worldToHFMMatrix * glm::vec4(point, 1.0f); + return _compoundShapeResource->getHFMModel().convexHullContains(hfmPoint); } return false; diff --git a/libraries/render-utils/src/Model.cpp b/libraries/render-utils/src/Model.cpp index 9cefbf65a8..ec29fb009e 100644 --- a/libraries/render-utils/src/Model.cpp +++ b/libraries/render-utils/src/Model.cpp @@ -614,58 +614,11 @@ bool Model::findParabolaIntersectionAgainstSubMeshes(const glm::vec3& origin, co return intersectedSomething; } -bool Model::convexHullContains(glm::vec3 point) { - // if we aren't active, we can't compute that yet... - if (!isActive()) { - return false; - } - - // extents is the entity relative, scaled, centered extents of the entity - glm::vec3 position = _translation; - glm::mat4 rotation = glm::mat4_cast(_rotation); - glm::mat4 translation = glm::translate(position); - glm::mat4 modelToWorldMatrix = translation * rotation; - glm::mat4 worldToModelMatrix = glm::inverse(modelToWorldMatrix); - - Extents modelExtents = getMeshExtents(); // NOTE: unrotated - - glm::vec3 dimensions = modelExtents.maximum - modelExtents.minimum; - glm::vec3 corner = -(dimensions * _registrationPoint); - AABox modelFrameBox(corner, dimensions); - - glm::vec3 modelFramePoint = glm::vec3(worldToModelMatrix * glm::vec4(point, 1.0f)); - - // we can use the AABox's contains() by mapping our point into the model frame - // and testing there. - if (modelFrameBox.contains(modelFramePoint)){ - QMutexLocker locker(&_mutex); - - if (!_triangleSetsValid) { - calculateTriangleSets(getHFMModel()); - } - - // If we are inside the models box, then consider the submeshes... - glm::mat4 meshToModelMatrix = glm::scale(_scale) * glm::translate(_offset); - glm::mat4 meshToWorldMatrix = createMatFromQuatAndPos(_rotation, _translation) * meshToModelMatrix; - glm::mat4 worldToMeshMatrix = glm::inverse(meshToWorldMatrix); - glm::vec3 meshFramePoint = glm::vec3(worldToMeshMatrix * glm::vec4(point, 1.0f)); - - for (auto& meshTriangleSets : _modelSpaceMeshTriangleSets) { - for (auto &partTriangleSet : meshTriangleSets) { - const AABox& box = partTriangleSet.getBounds(); - if (box.contains(meshFramePoint)) { - if (partTriangleSet.convexHullContains(meshFramePoint)) { - // It's inside this mesh, return true. - return true; - } - } - } - } - - - } - // It wasn't in any mesh, return false. - return false; +glm::mat4 Model::getWorldToHFMMatrix() const { + glm::mat4 hfmToModelMatrix = glm::scale(_scale) * glm::translate(_offset); + glm::mat4 modelToWorldMatrix = createMatFromQuatAndPos(_rotation, _translation); + glm::mat4 worldToHFMMatrix = glm::inverse(modelToWorldMatrix * hfmToModelMatrix); + return worldToHFMMatrix; } // TODO: deprecate and remove diff --git a/libraries/render-utils/src/Model.h b/libraries/render-utils/src/Model.h index 93a0626d28..0f8eb782c3 100644 --- a/libraries/render-utils/src/Model.h +++ b/libraries/render-utils/src/Model.h @@ -192,7 +192,7 @@ public: bool didVisualGeometryRequestFail() const { return _visualGeometryRequestFailed; } bool didCollisionGeometryRequestFail() const { return _collisionGeometryRequestFailed; } - bool convexHullContains(glm::vec3 point); + glm::mat4 getWorldToHFMMatrix() const; QStringList getJointNames() const; From 1fabaf0db43b3f1d5a64502ab76dc64bf6938eb7 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Mon, 19 Nov 2018 17:27:18 -0800 Subject: [PATCH 110/230] rename getCollisionGeometryResource to fetchCollisionGeometryResource --- .../src/RenderableModelEntityItem.cpp | 10 +++++----- .../entities-renderer/src/RenderableModelEntityItem.h | 3 +-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp index 3c4aeb2686..5693778e3a 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp @@ -279,7 +279,7 @@ bool RenderableModelEntityItem::findDetailedParabolaIntersection(const glm::vec3 face, surfaceNormal, extraInfo, precisionPicking, false); } -void RenderableModelEntityItem::getCollisionGeometryResource() { +void RenderableModelEntityItem::fetchCollisionGeometryResource() { QUrl hullURL(getCollisionShapeURL()); QUrlQuery queryArgs(hullURL); queryArgs.addQueryItem("collision-hull", ""); @@ -289,7 +289,7 @@ void RenderableModelEntityItem::getCollisionGeometryResource() { bool RenderableModelEntityItem::computeShapeFailedToLoad() { if (!_compoundShapeResource) { - getCollisionGeometryResource(); + fetchCollisionGeometryResource(); } return (_compoundShapeResource && _compoundShapeResource->isFailed()); @@ -300,7 +300,7 @@ void RenderableModelEntityItem::setShapeType(ShapeType type) { auto shapeType = getShapeType(); if (shapeType == SHAPE_TYPE_COMPOUND || shapeType == SHAPE_TYPE_SIMPLE_COMPOUND) { if (!_compoundShapeResource && !getCollisionShapeURL().isEmpty()) { - getCollisionGeometryResource(); + fetchCollisionGeometryResource(); } } else if (_compoundShapeResource && !getCompoundShapeURL().isEmpty()) { // the compoundURL has been set but the shapeType does not agree @@ -317,7 +317,7 @@ void RenderableModelEntityItem::setCompoundShapeURL(const QString& url) { ModelEntityItem::setCompoundShapeURL(url); if (getCompoundShapeURL() != currentCompoundShapeURL || !getModel()) { if (getShapeType() == SHAPE_TYPE_COMPOUND) { - getCollisionGeometryResource(); + fetchCollisionGeometryResource(); } } } @@ -340,7 +340,7 @@ bool RenderableModelEntityItem::isReadyToComputeShape() const { if (model->isLoaded()) { if (!shapeURL.isEmpty() && !_compoundShapeResource) { - const_cast<RenderableModelEntityItem*>(this)->getCollisionGeometryResource(); + const_cast<RenderableModelEntityItem*>(this)->fetchCollisionGeometryResource(); } if (_compoundShapeResource && _compoundShapeResource->isLoaded()) { diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.h b/libraries/entities-renderer/src/RenderableModelEntityItem.h index ba185dee96..725c1d96c3 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.h +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.h @@ -122,7 +122,7 @@ private: void autoResizeJointArrays(); void copyAnimationJointDataToModel(); bool readyToAnimate() const; - void getCollisionGeometryResource(); + void fetchCollisionGeometryResource(); GeometryResource::Pointer _compoundShapeResource; std::vector<int> _jointMap; @@ -179,7 +179,6 @@ private: bool _hasModel { false }; ModelPointer _model; - GeometryResource::Pointer _compoundShapeResource; QString _lastTextures; bool _texturesLoaded { false }; int _lastKnownCurrentFrame { -1 }; From b4807204095dffc31752f15d05cacc9a4c50f810 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Mon, 19 Nov 2018 17:32:28 -0800 Subject: [PATCH 111/230] proper shape support for EntityItem::contains(point) --- libraries/entities/src/EntityItem.cpp | 57 ++++++++++++++++++++++----- 1 file changed, 48 insertions(+), 9 deletions(-) diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index bfa238d695..5000a8c2ea 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -1680,15 +1680,54 @@ void EntityItem::adjustShapeInfoByRegistration(ShapeInfo& info) const { } bool EntityItem::contains(const glm::vec3& point) const { - if (getShapeType() == SHAPE_TYPE_COMPOUND) { - bool success; - bool result = getAABox(success).contains(point); - return result && success; - } else { - ShapeInfo info; - info.setParams(getShapeType(), glm::vec3(0.5f)); - adjustShapeInfoByRegistration(info); - return info.contains(worldToEntity(point)); + // we transform into the "normalized entity-frame" where the bounding box is centered on the origin + // and has dimensions <1,1,1> + glm::vec3 localPoint = glm::vec3(glm::inverse(getEntityToWorldMatrix()) * glm::vec4(point, 1.0f)); + + const float NORMALIZED_HALF_SIDE = 0.5f; + const float NORMALIZED_RADIUS_SQUARED = NORMALIZED_HALF_SIDE * NORMALIZED_HALF_SIDE; + ShapeType shapeType = getShapeType(); + switch(shapeType) { + case SHAPE_TYPE_NONE: + return false; + case SHAPE_TYPE_CAPSULE_X: + case SHAPE_TYPE_CAPSULE_Y: + case SHAPE_TYPE_CAPSULE_Z: + case SHAPE_TYPE_HULL: + case SHAPE_TYPE_PLANE: + case SHAPE_TYPE_COMPOUND: + case SHAPE_TYPE_SIMPLE_HULL: + case SHAPE_TYPE_SIMPLE_COMPOUND: + case SHAPE_TYPE_STATIC_MESH: + case SHAPE_TYPE_CIRCLE: + // the above cases not yet supported --> fall through to BOX case + case SHAPE_TYPE_BOX: { + localPoint = glm::abs(localPoint); + return localPoint.x <= NORMALIZED_HALF_SIDE && + localPoint.y <= NORMALIZED_HALF_SIDE && + localPoint.z <= NORMALIZED_HALF_SIDE; + } + case SHAPE_TYPE_SPHERE: + case SHAPE_TYPE_ELLIPSOID: { + return glm::length2(localPoint) <= NORMALIZED_RADIUS_SQUARED; + } + case SHAPE_TYPE_CYLINDER_X: + if (fabsf(localPoint.x) <= NORMALIZED_HALF_SIDE) { + return (localPoint.y * localPoint.y + localPoint.z * localPoint.z <= NORMALIZED_RADIUS_SQUARED); + } + return false; + case SHAPE_TYPE_CYLINDER_Y: + if (fabsf(localPoint.x) <= NORMALIZED_HALF_SIDE) { + return (localPoint.z * localPoint.z + localPoint.x * localPoint.x <= NORMALIZED_RADIUS_SQUARED); + } + return false; + case SHAPE_TYPE_CYLINDER_Z: + if (fabsf(localPoint.x) <= NORMALIZED_HALF_SIDE) { + return (localPoint.x * localPoint.x + localPoint.y * localPoint.y <= NORMALIZED_RADIUS_SQUARED); + } + return false; + default: + return false; } } From bb15b3a5d594fa96b558cdc38871b16ef89ce52d Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Mon, 19 Nov 2018 17:33:45 -0800 Subject: [PATCH 112/230] remove ShapeInfo::contains() which was a Bad Idea --- libraries/shared/src/ShapeInfo.cpp | 44 ------------------------------ libraries/shared/src/ShapeInfo.h | 4 --- 2 files changed, 48 deletions(-) diff --git a/libraries/shared/src/ShapeInfo.cpp b/libraries/shared/src/ShapeInfo.cpp index df8e61114d..3118fce891 100644 --- a/libraries/shared/src/ShapeInfo.cpp +++ b/libraries/shared/src/ShapeInfo.cpp @@ -250,50 +250,6 @@ float ShapeInfo::computeVolume() const { return volume; } -bool ShapeInfo::contains(const glm::vec3& point) const { - switch(_type) { - case SHAPE_TYPE_SPHERE: - return glm::length(point) <= _halfExtents.x; - case SHAPE_TYPE_CYLINDER_X: - return glm::length(glm::vec2(point.y, point.z)) <= _halfExtents.z; - case SHAPE_TYPE_CYLINDER_Y: - return glm::length(glm::vec2(point.x, point.z)) <= _halfExtents.x; - case SHAPE_TYPE_CYLINDER_Z: - return glm::length(glm::vec2(point.x, point.y)) <= _halfExtents.y; - case SHAPE_TYPE_CAPSULE_X: { - if (glm::abs(point.x) <= _halfExtents.x - _halfExtents.y) { - return glm::length(glm::vec2(point.y, point.z)) <= _halfExtents.y; - } else { - glm::vec3 absPoint = glm::abs(point) - glm::vec3(_halfExtents.x, 0.0f, 0.0f); - return glm::length(absPoint) <= _halfExtents.y; - } - } - case SHAPE_TYPE_CAPSULE_Y: { - if (glm::abs(point.y) <= _halfExtents.y - _halfExtents.z) { - return glm::length(glm::vec2(point.x, point.z)) <= _halfExtents.z; - } else { - glm::vec3 absPoint = glm::abs(point) - glm::vec3(0.0f, _halfExtents.y, 0.0f); - return glm::length(absPoint) <= _halfExtents.z; - } - } - case SHAPE_TYPE_CAPSULE_Z: { - if (glm::abs(point.z) <= _halfExtents.z - _halfExtents.x) { - return glm::length(glm::vec2(point.x, point.y)) <= _halfExtents.x; - } else { - glm::vec3 absPoint = glm::abs(point) - glm::vec3(0.0f, 0.0f, _halfExtents.z); - return glm::length(absPoint) <= _halfExtents.x; - } - } - case SHAPE_TYPE_BOX: - default: { - glm::vec3 absPoint = glm::abs(point); - return absPoint.x <= _halfExtents.x - && absPoint.y <= _halfExtents.y - && absPoint.z <= _halfExtents.z; - } - } -} - const HashKey& ShapeInfo::getHash() const { // NOTE: we cache the key so we only ever need to compute it once for any valid ShapeInfo instance. if (_hashKey.isNull() && _type != SHAPE_TYPE_NONE) { diff --git a/libraries/shared/src/ShapeInfo.h b/libraries/shared/src/ShapeInfo.h index 16e260d9db..a2092c7f00 100644 --- a/libraries/shared/src/ShapeInfo.h +++ b/libraries/shared/src/ShapeInfo.h @@ -86,10 +86,6 @@ public: float computeVolume() const; - /// Returns whether point is inside the shape - /// For compound shapes it will only return whether it is inside the bounding box - bool contains(const glm::vec3& point) const; - const HashKey& getHash() const; protected: From a8325b5c00d850f8f91c76b3fc200cb635328e5d Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Mon, 19 Nov 2018 17:35:35 -0800 Subject: [PATCH 113/230] add ZoneEntityItem::contains() and support for shapes --- assignment-client/CMakeLists.txt | 1 + .../src/entities/EntityServer.cpp | 1 + libraries/entities/CMakeLists.txt | 2 +- libraries/entities/src/ZoneEntityItem.cpp | 87 ++++++++++++++++--- libraries/entities/src/ZoneEntityItem.h | 13 ++- libraries/physics/CMakeLists.txt | 7 +- 6 files changed, 94 insertions(+), 17 deletions(-) diff --git a/assignment-client/CMakeLists.txt b/assignment-client/CMakeLists.txt index 229e3641d0..f28dc90b7d 100644 --- a/assignment-client/CMakeLists.txt +++ b/assignment-client/CMakeLists.txt @@ -14,6 +14,7 @@ link_hifi_libraries( audio avatars octree gpu graphics shaders fbx hfm entities networking animation recording shared script-engine embedded-webserver controllers physics plugins midi image + model-networking ktx shaders ) add_dependencies(${TARGET_NAME} oven) diff --git a/assignment-client/src/entities/EntityServer.cpp b/assignment-client/src/entities/EntityServer.cpp index 089fb3e52f..22308071eb 100644 --- a/assignment-client/src/entities/EntityServer.cpp +++ b/assignment-client/src/entities/EntityServer.cpp @@ -45,6 +45,7 @@ EntityServer::EntityServer(ReceivedMessage& message) : DependencyManager::registerInheritance<EntityDynamicFactoryInterface, AssignmentDynamicFactory>(); DependencyManager::set<AssignmentDynamicFactory>(); + DependencyManager::set<ModelCache>(); auto& packetReceiver = DependencyManager::get<NodeList>()->getPacketReceiver(); packetReceiver.registerListenerForTypes({ PacketType::EntityAdd, diff --git a/libraries/entities/CMakeLists.txt b/libraries/entities/CMakeLists.txt index c51ae28d5f..542f6eb0e2 100644 --- a/libraries/entities/CMakeLists.txt +++ b/libraries/entities/CMakeLists.txt @@ -6,4 +6,4 @@ include_hifi_library_headers(fbx) include_hifi_library_headers(gpu) include_hifi_library_headers(image) include_hifi_library_headers(ktx) -link_hifi_libraries(shared shaders networking octree avatars graphics model-networking) \ No newline at end of file +link_hifi_libraries(shared shaders networking octree model-networking avatars graphics model-networking) diff --git a/libraries/entities/src/ZoneEntityItem.cpp b/libraries/entities/src/ZoneEntityItem.cpp index a265fe16cd..4c379f7290 100644 --- a/libraries/entities/src/ZoneEntityItem.cpp +++ b/libraries/entities/src/ZoneEntityItem.cpp @@ -11,7 +11,9 @@ #include "ZoneEntityItem.h" +#include <glm/gtx/transform.hpp> #include <QDebug> +#include <QUrlQuery> #include <ByteCountCoding.h> @@ -275,22 +277,53 @@ void ZoneEntityItem::debugDump() const { _bloomProperties.debugDump(); } -ShapeType ZoneEntityItem::getShapeType() const { - // Zones are not allowed to have a SHAPE_TYPE_NONE... they are always at least a SHAPE_TYPE_BOX - if (_shapeType == SHAPE_TYPE_COMPOUND) { - return hasCompoundShapeURL() ? SHAPE_TYPE_COMPOUND : DEFAULT_SHAPE_TYPE; +void ZoneEntityItem::setShapeType(ShapeType type) { + //ShapeType typeArgument = type; + ShapeType oldShapeType = _shapeType; + switch(type) { + case SHAPE_TYPE_NONE: + case SHAPE_TYPE_CAPSULE_X: + case SHAPE_TYPE_CAPSULE_Y: + case SHAPE_TYPE_CAPSULE_Z: + case SHAPE_TYPE_HULL: + case SHAPE_TYPE_PLANE: + case SHAPE_TYPE_SIMPLE_HULL: + case SHAPE_TYPE_SIMPLE_COMPOUND: + case SHAPE_TYPE_STATIC_MESH: + case SHAPE_TYPE_CIRCLE: + // these types are unsupported for ZoneEntity + type = DEFAULT_SHAPE_TYPE; + break; + default: + break; + } + _shapeType = type; + + if (type == SHAPE_TYPE_COMPOUND) { + if (type != oldShapeType) { + fetchCollisionGeometryResource(); + } } else { - return _shapeType == SHAPE_TYPE_NONE ? DEFAULT_SHAPE_TYPE : _shapeType; + _shapeResource.reset(); } } +ShapeType ZoneEntityItem::getShapeType() const { + return _shapeType; +} + void ZoneEntityItem::setCompoundShapeURL(const QString& url) { + QString oldCompoundShapeURL = _compoundShapeURL; withWriteLock([&] { _compoundShapeURL = url; - if (_compoundShapeURL.isEmpty() && _shapeType == SHAPE_TYPE_COMPOUND) { - _shapeType = DEFAULT_SHAPE_TYPE; - } }); + if (oldCompoundShapeURL != url) { + if (_shapeType == SHAPE_TYPE_COMPOUND) { + fetchCollisionGeometryResource(); + } else { + _shapeResource.reset(); + } + } } bool ZoneEntityItem::findDetailedRayIntersection(const glm::vec3& origin, const glm::vec3& direction, @@ -307,6 +340,28 @@ bool ZoneEntityItem::findDetailedParabolaIntersection(const glm::vec3& origin, c return _zonesArePickable; } +bool ZoneEntityItem::contains(const glm::vec3& point) const { + GeometryResource::Pointer resource = _shapeResource; + if (_shapeType == SHAPE_TYPE_COMPOUND && resource) { + if (resource->isLoaded()) { + const HFMModel& hfmModel = resource->getHFMModel(); + + glm::vec3 minimum = glm::vec3(hfmModel.offset * glm::vec4(hfmModel.meshExtents.minimum, 1.0f)); + glm::vec3 maximum = glm::vec3(hfmModel.offset * glm::vec4(hfmModel.meshExtents.maximum, 1.0f)); + glm::vec3 modelExtentsDiagonal = maximum - minimum; + glm::vec3 offset = -minimum - (modelExtentsDiagonal * getRegistrationPoint()); + glm::vec3 scale(getScaledDimensions() / modelExtentsDiagonal); + + glm::mat4 hfmToEntityMatrix = glm::scale(scale) * glm::translate(offset); + glm::mat4 entityToWorldMatrix = getTransform().getMatrix(); + glm::mat4 worldToHFMMatrix = glm::inverse(entityToWorldMatrix * hfmToEntityMatrix); + + return hfmModel.convexHullContains(glm::vec3(worldToHFMMatrix * glm::vec4(point, 1.0f))); + } + } + return EntityItem::contains(point); +} + void ZoneEntityItem::setFilterURL(QString url) { withWriteLock([&] { _filterURL = url; @@ -326,10 +381,6 @@ QString ZoneEntityItem::getFilterURL() const { return result; } -bool ZoneEntityItem::hasCompoundShapeURL() const { - return !getCompoundShapeURL().isEmpty(); -} - QString ZoneEntityItem::getCompoundShapeURL() const { QString result; withReadLock([&] { @@ -403,3 +454,15 @@ void ZoneEntityItem::setSkyboxMode(const uint32_t value) { uint32_t ZoneEntityItem::getSkyboxMode() const { return _skyboxMode; } + +void ZoneEntityItem::fetchCollisionGeometryResource() { + QUrl hullURL(getCompoundShapeURL()); + if (hullURL.isEmpty()) { + _shapeResource.reset(); + } else { + QUrlQuery queryArgs(hullURL); + queryArgs.addQueryItem("collision-hull", ""); + hullURL.setQuery(queryArgs); + _shapeResource = DependencyManager::get<ModelCache>()->getCollisionGeometryResource(hullURL); + } +} diff --git a/libraries/entities/src/ZoneEntityItem.h b/libraries/entities/src/ZoneEntityItem.h index c2f4542aa6..813115add9 100644 --- a/libraries/entities/src/ZoneEntityItem.h +++ b/libraries/entities/src/ZoneEntityItem.h @@ -12,6 +12,9 @@ #ifndef hifi_ZoneEntityItem_h #define hifi_ZoneEntityItem_h +#include <ComponentMode.h> +#include <model-networking/ModelCache.h> + #include "KeyLightPropertyGroup.h" #include "AmbientLightPropertyGroup.h" #include "EntityItem.h" @@ -19,7 +22,6 @@ #include "SkyboxPropertyGroup.h" #include "HazePropertyGroup.h" #include "BloomPropertyGroup.h" -#include <ComponentMode.h> class ZoneEntityItem : public EntityItem { public: @@ -58,10 +60,9 @@ public: static void setDrawZoneBoundaries(bool value) { _drawZoneBoundaries = value; } virtual bool isReadyToComputeShape() const override { return false; } - void setShapeType(ShapeType type) override { withWriteLock([&] { _shapeType = type; }); } + virtual void setShapeType(ShapeType type) override; virtual ShapeType getShapeType() const override; - virtual bool hasCompoundShapeURL() const; QString getCompoundShapeURL() const; virtual void setCompoundShapeURL(const QString& url); @@ -115,6 +116,8 @@ public: BoxFace& face, glm::vec3& surfaceNormal, QVariantMap& extraInfo, bool precisionPicking) const override; + bool contains(const glm::vec3& point) const override; + virtual void debugDump() const override; static const ShapeType DEFAULT_SHAPE_TYPE; @@ -156,6 +159,10 @@ protected: static bool _drawZoneBoundaries; static bool _zonesArePickable; + + void fetchCollisionGeometryResource(); + GeometryResource::Pointer _shapeResource; + }; #endif // hifi_ZoneEntityItem_h diff --git a/libraries/physics/CMakeLists.txt b/libraries/physics/CMakeLists.txt index 96a55c8477..5249ed2950 100644 --- a/libraries/physics/CMakeLists.txt +++ b/libraries/physics/CMakeLists.txt @@ -1,11 +1,16 @@ set(TARGET_NAME physics) setup_hifi_library() -link_hifi_libraries(shared task workload fbx entities graphics) +link_hifi_libraries(shared task workload fbx entities graphics shaders) include_hifi_library_headers(networking) include_hifi_library_headers(gpu) include_hifi_library_headers(avatars) include_hifi_library_headers(audio) include_hifi_library_headers(octree) include_hifi_library_headers(animation) +include_hifi_library_headers(model-networking) +include_hifi_library_headers(image) +include_hifi_library_headers(ktx) +include_hifi_library_headers(gpu) +include_hifi_library_headers(hfm) target_bullet() From 7625aebaa8be5aed5c1e2ec0aa3f5bd982f1ad56 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Wed, 21 Nov 2018 12:09:07 -0800 Subject: [PATCH 114/230] remove reduntant model-networking link dependency --- libraries/entities/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/entities/CMakeLists.txt b/libraries/entities/CMakeLists.txt index 542f6eb0e2..fcbe563f88 100644 --- a/libraries/entities/CMakeLists.txt +++ b/libraries/entities/CMakeLists.txt @@ -6,4 +6,4 @@ include_hifi_library_headers(fbx) include_hifi_library_headers(gpu) include_hifi_library_headers(image) include_hifi_library_headers(ktx) -link_hifi_libraries(shared shaders networking octree model-networking avatars graphics model-networking) +link_hifi_libraries(shared shaders networking octree avatars graphics model-networking) From 65e920039c04b4224453ffcbe24adeaec3f6c6ee Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Wed, 21 Nov 2018 12:30:30 -0800 Subject: [PATCH 115/230] cleaner return logic for EntityItem::contains() cylinder cases --- libraries/entities/src/EntityItem.cpp | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index 5000a8c2ea..0b6f4c0cf5 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -1712,20 +1712,14 @@ bool EntityItem::contains(const glm::vec3& point) const { return glm::length2(localPoint) <= NORMALIZED_RADIUS_SQUARED; } case SHAPE_TYPE_CYLINDER_X: - if (fabsf(localPoint.x) <= NORMALIZED_HALF_SIDE) { - return (localPoint.y * localPoint.y + localPoint.z * localPoint.z <= NORMALIZED_RADIUS_SQUARED); - } - return false; + return fabsf(localPoint.x) <= NORMALIZED_HALF_SIDE && + localPoint.y * localPoint.y + localPoint.z * localPoint.z <= NORMALIZED_RADIUS_SQUARED; case SHAPE_TYPE_CYLINDER_Y: - if (fabsf(localPoint.x) <= NORMALIZED_HALF_SIDE) { - return (localPoint.z * localPoint.z + localPoint.x * localPoint.x <= NORMALIZED_RADIUS_SQUARED); - } - return false; + return fabsf(localPoint.x) <= NORMALIZED_HALF_SIDE && + localPoint.z * localPoint.z + localPoint.x * localPoint.x <= NORMALIZED_RADIUS_SQUARED; case SHAPE_TYPE_CYLINDER_Z: - if (fabsf(localPoint.x) <= NORMALIZED_HALF_SIDE) { - return (localPoint.x * localPoint.x + localPoint.y * localPoint.y <= NORMALIZED_RADIUS_SQUARED); - } - return false; + return fabsf(localPoint.x) <= NORMALIZED_HALF_SIDE && + localPoint.x * localPoint.x + localPoint.y * localPoint.y <= NORMALIZED_RADIUS_SQUARED; default: return false; } From a656ea723e0fc9c0ecd60038269a5e1379200b28 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Mon, 26 Nov 2018 09:14:08 -0800 Subject: [PATCH 116/230] special handling of SPHERE case in EntityItem::contains() --- libraries/entities/src/EntityItem.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index 0b6f4c0cf5..76dd130f70 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -1680,13 +1680,24 @@ void EntityItem::adjustShapeInfoByRegistration(ShapeInfo& info) const { } bool EntityItem::contains(const glm::vec3& point) const { + ShapeType shapeType = getShapeType(); + + if (shapeType == SHAPE_TYPE_SPHERE) { + // SPHERE case is special: + // anything with shapeType == SPHERE must collide as a bounding sphere in the world-frame regardless of dimensions + // therefore we must do math using an unscaled localPoint relative to sphere center + glm::vec3 dimensions = getScaledDimensions(); + glm::vec3 localPoint = point - (getWorldPosition() + getWorldOrientation() * (dimensions * (ENTITY_ITEM_DEFAULT_REGISTRATION_POINT - getRegistrationPoint()))); + const float HALF_SQUARED = 0.25f; + return glm::length2(localPoint) < HALF_SQUARED * glm::length2(dimensions); + } + // we transform into the "normalized entity-frame" where the bounding box is centered on the origin // and has dimensions <1,1,1> glm::vec3 localPoint = glm::vec3(glm::inverse(getEntityToWorldMatrix()) * glm::vec4(point, 1.0f)); const float NORMALIZED_HALF_SIDE = 0.5f; const float NORMALIZED_RADIUS_SQUARED = NORMALIZED_HALF_SIDE * NORMALIZED_HALF_SIDE; - ShapeType shapeType = getShapeType(); switch(shapeType) { case SHAPE_TYPE_NONE: return false; @@ -1707,8 +1718,8 @@ bool EntityItem::contains(const glm::vec3& point) const { localPoint.y <= NORMALIZED_HALF_SIDE && localPoint.z <= NORMALIZED_HALF_SIDE; } - case SHAPE_TYPE_SPHERE: case SHAPE_TYPE_ELLIPSOID: { + // since we've transformed into the normalized space this is just a sphere-point intersection test return glm::length2(localPoint) <= NORMALIZED_RADIUS_SQUARED; } case SHAPE_TYPE_CYLINDER_X: From a642af23b79b5deaf229a9baedde36e28435947a Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Tue, 27 Nov 2018 08:44:40 -0800 Subject: [PATCH 117/230] enable shapeType=ellipsoid and expose zone shapeType to UI --- .../entities/src/EntityItemProperties.cpp | 1 + libraries/entities/src/ZoneEntityItem.cpp | 1 - libraries/shared/src/ShapeInfo.cpp | 3 ++- scripts/system/edit.js | 1 + scripts/system/html/js/entityProperties.js | 20 ++++++++++++++++++- 5 files changed, 23 insertions(+), 3 deletions(-) diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 1745658cf1..282e86c4d4 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -117,6 +117,7 @@ void buildStringToShapeTypeLookup() { addShapeType(SHAPE_TYPE_SIMPLE_HULL); addShapeType(SHAPE_TYPE_SIMPLE_COMPOUND); addShapeType(SHAPE_TYPE_STATIC_MESH); + addShapeType(SHAPE_TYPE_ELLIPSOID); } QHash<QString, MaterialMappingMode> stringToMaterialMappingModeLookup; diff --git a/libraries/entities/src/ZoneEntityItem.cpp b/libraries/entities/src/ZoneEntityItem.cpp index 4c379f7290..61f07808f6 100644 --- a/libraries/entities/src/ZoneEntityItem.cpp +++ b/libraries/entities/src/ZoneEntityItem.cpp @@ -278,7 +278,6 @@ void ZoneEntityItem::debugDump() const { } void ZoneEntityItem::setShapeType(ShapeType type) { - //ShapeType typeArgument = type; ShapeType oldShapeType = _shapeType; switch(type) { case SHAPE_TYPE_NONE: diff --git a/libraries/shared/src/ShapeInfo.cpp b/libraries/shared/src/ShapeInfo.cpp index 3118fce891..3426a79782 100644 --- a/libraries/shared/src/ShapeInfo.cpp +++ b/libraries/shared/src/ShapeInfo.cpp @@ -58,7 +58,8 @@ const char* shapeTypeNames[] = { "compound", "simple-hull", "simple-compound", - "static-mesh" + "static-mesh", + "ellipsoid" }; static const size_t SHAPETYPE_NAME_COUNT = (sizeof(shapeTypeNames) / sizeof((shapeTypeNames)[0])); diff --git a/scripts/system/edit.js b/scripts/system/edit.js index 36f9af0ea7..28309ee98d 100644 --- a/scripts/system/edit.js +++ b/scripts/system/edit.js @@ -372,6 +372,7 @@ const DEFAULT_ENTITY_PROPERTIES = { blue: 179 }, }, + shapeType: "box", bloomMode: "inherit" }, Model: { diff --git a/scripts/system/html/js/entityProperties.js b/scripts/system/html/js/entityProperties.js index 78ef8ac313..3554b7e5bf 100644 --- a/scripts/system/html/js/entityProperties.js +++ b/scripts/system/html/js/entityProperties.js @@ -1288,6 +1288,24 @@ const GROUPS = [ }, ] }, + { + id: "zone_shape", + label: "ZONE SHAPE", + properties: [ + { + label: "Shape Type", + type: "dropdown", + options: { "box": "Box", "sphere": "Sphere", "ellipsoid": "Ellipsoid", + "cylinder-y": "Cylinder", "compound": "Use Compound Shape URL" }, + propertyID: "shapeType", + }, + { + label: "Compound Shape URL", + type: "string", + propertyID: "compoundShapeURL", + }, + ] + }, { id: "physics", label: "PHYSICS", @@ -1384,7 +1402,7 @@ const GROUPS_PER_TYPE = { None: [ 'base', 'spatial', 'behavior', 'collision', 'physics' ], Shape: [ 'base', 'shape', 'spatial', 'behavior', 'collision', 'physics' ], Text: [ 'base', 'text', 'spatial', 'behavior', 'collision', 'physics' ], - Zone: [ 'base', 'zone', 'spatial', 'behavior', 'collision', 'physics' ], + Zone: [ 'base', 'zone', 'spatial', 'behavior', 'zone_shape', 'physics' ], Model: [ 'base', 'model', 'spatial', 'behavior', 'collision', 'physics' ], Image: [ 'base', 'image', 'spatial', 'behavior', 'collision', 'physics' ], Web: [ 'base', 'web', 'spatial', 'behavior', 'collision', 'physics' ], From 13a3982b5af70df361c607feb2331e3b17ead418 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Fri, 4 Jan 2019 12:31:29 -0800 Subject: [PATCH 118/230] fix ZoneEntityItem::contains() for model shapes --- .../src/RenderableModelEntityItem.cpp | 21 +++++++++++-------- .../src/RenderableZoneEntityItem.cpp | 19 ----------------- libraries/entities/src/ZoneEntityItem.cpp | 9 ++++---- libraries/hfm/src/hfm/HFM.cpp | 9 +++----- libraries/hfm/src/hfm/HFM.h | 1 + libraries/physics/src/EntityMotionState.cpp | 1 - 6 files changed, 20 insertions(+), 40 deletions(-) diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp index 5693778e3a..aa449b8919 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp @@ -367,8 +367,6 @@ void RenderableModelEntityItem::computeShapeInfo(ShapeInfo& shapeInfo) { const uint32_t QUAD_STRIDE = 4; ShapeType type = getShapeType(); - glm::vec3 dimensions = getScaledDimensions(); - auto model = getModel(); if (type == SHAPE_TYPE_COMPOUND) { updateModelBounds(); @@ -450,6 +448,11 @@ void RenderableModelEntityItem::computeShapeInfo(ShapeInfo& shapeInfo) { // to the visual model and apply them to the collision model (without regard for the // collision model's extents). + auto model = getModel(); + // assert we never fall in here when model not fully loaded + assert(model && model->isLoaded()); + + glm::vec3 dimensions = getScaledDimensions(); glm::vec3 scaleToFit = dimensions / model->getHFMModel().getUnscaledMeshExtents().size(); // multiply each point by scale before handing the point-set off to the physics engine. // also determine the extents of the collision model. @@ -461,11 +464,12 @@ void RenderableModelEntityItem::computeShapeInfo(ShapeInfo& shapeInfo) { } } shapeInfo.setParams(type, dimensions, getCompoundShapeURL()); + adjustShapeInfoByRegistration(shapeInfo); } else if (type >= SHAPE_TYPE_SIMPLE_HULL && type <= SHAPE_TYPE_STATIC_MESH) { - // TODO: assert we never fall in here when model not fully loaded - // assert(_model && _model->isLoaded()); - updateModelBounds(); + auto model = getModel(); + // assert we never fall in here when model not fully loaded + assert(model && model->isLoaded()); model->updateGeometry(); // compute meshPart local transforms @@ -473,6 +477,7 @@ void RenderableModelEntityItem::computeShapeInfo(ShapeInfo& shapeInfo) { const HFMModel& hfmModel = model->getHFMModel(); int numHFMMeshes = hfmModel.meshes.size(); int totalNumVertices = 0; + glm::vec3 dimensions = getScaledDimensions(); glm::mat4 invRegistraionOffset = glm::translate(dimensions * (getRegistrationPoint() - ENTITY_ITEM_DEFAULT_REGISTRATION_POINT)); for (int i = 0; i < numHFMMeshes; i++) { const HFMMesh& mesh = hfmModel.meshes.at(i); @@ -695,12 +700,10 @@ void RenderableModelEntityItem::computeShapeInfo(ShapeInfo& shapeInfo) { } shapeInfo.setParams(type, 0.5f * dimensions, getModelURL()); + adjustShapeInfoByRegistration(shapeInfo); } else { - ModelEntityItem::computeShapeInfo(shapeInfo); - shapeInfo.setParams(type, 0.5f * dimensions); + EntityItem::computeShapeInfo(shapeInfo); } - // finally apply the registration offset to the shapeInfo - adjustShapeInfoByRegistration(shapeInfo); } void RenderableModelEntityItem::setJointMap(std::vector<int> jointMap) { diff --git a/libraries/entities-renderer/src/RenderableZoneEntityItem.cpp b/libraries/entities-renderer/src/RenderableZoneEntityItem.cpp index 232e6efa67..57ff8ed8c2 100644 --- a/libraries/entities-renderer/src/RenderableZoneEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableZoneEntityItem.cpp @@ -546,22 +546,3 @@ void ZoneEntityRenderer::setProceduralUserData(const QString& userData) { } } -#if 0 -bool RenderableZoneEntityItem::contains(const glm::vec3& point) const { - if (getShapeType() != SHAPE_TYPE_COMPOUND) { - return EntityItem::contains(point); - } - const_cast<RenderableZoneEntityItem*>(this)->updateGeometry(); - - if (_model && _model->isActive() && EntityItem::contains(point)) { - return _model->convexHullContains(point); - } - - return false; -} - -void RenderableZoneEntityItem::notifyBoundChanged() { - notifyChangedRenderItem(); -} - -#endif diff --git a/libraries/entities/src/ZoneEntityItem.cpp b/libraries/entities/src/ZoneEntityItem.cpp index 61f07808f6..7f7f6170d4 100644 --- a/libraries/entities/src/ZoneEntityItem.cpp +++ b/libraries/entities/src/ZoneEntityItem.cpp @@ -345,11 +345,10 @@ bool ZoneEntityItem::contains(const glm::vec3& point) const { if (resource->isLoaded()) { const HFMModel& hfmModel = resource->getHFMModel(); - glm::vec3 minimum = glm::vec3(hfmModel.offset * glm::vec4(hfmModel.meshExtents.minimum, 1.0f)); - glm::vec3 maximum = glm::vec3(hfmModel.offset * glm::vec4(hfmModel.meshExtents.maximum, 1.0f)); - glm::vec3 modelExtentsDiagonal = maximum - minimum; - glm::vec3 offset = -minimum - (modelExtentsDiagonal * getRegistrationPoint()); - glm::vec3 scale(getScaledDimensions() / modelExtentsDiagonal); + Extents meshExtents = hfmModel.getMeshExtents(); + glm::vec3 meshExtentsDiagonal = meshExtents.maximum - meshExtents.minimum; + glm::vec3 offset = -meshExtents.minimum- (meshExtentsDiagonal * getRegistrationPoint()); + glm::vec3 scale(getScaledDimensions() / meshExtentsDiagonal); glm::mat4 hfmToEntityMatrix = glm::scale(scale) * glm::translate(offset); glm::mat4 entityToWorldMatrix = getTransform().getMatrix(); diff --git a/libraries/hfm/src/hfm/HFM.cpp b/libraries/hfm/src/hfm/HFM.cpp index 8f01956f17..b9e630456d 100644 --- a/libraries/hfm/src/hfm/HFM.cpp +++ b/libraries/hfm/src/hfm/HFM.cpp @@ -189,20 +189,17 @@ bool HFMModel::hasBlendedMeshes() const { } Extents HFMModel::getUnscaledMeshExtents() const { - const Extents& extents = meshExtents; - // even though our caller asked for "unscaled" we need to include any fst scaling, translation, and rotation, which // is captured in the offset matrix - glm::vec3 minimum = glm::vec3(offset * glm::vec4(extents.minimum, 1.0f)); - glm::vec3 maximum = glm::vec3(offset * glm::vec4(extents.maximum, 1.0f)); + glm::vec3 minimum = glm::vec3(offset * glm::vec4(meshExtents.minimum, 1.0f)); + glm::vec3 maximum = glm::vec3(offset * glm::vec4(meshExtents.maximum, 1.0f)); Extents scaledExtents = { minimum, maximum }; - return scaledExtents; } // TODO: Move to graphics::Mesh when Sam's ready bool HFMModel::convexHullContains(const glm::vec3& point) const { - if (!getUnscaledMeshExtents().containsPoint(point)) { + if (!meshExtents.containsPoint(point)) { return false; } diff --git a/libraries/hfm/src/hfm/HFM.h b/libraries/hfm/src/hfm/HFM.h index 9846e7e891..78f608d72e 100644 --- a/libraries/hfm/src/hfm/HFM.h +++ b/libraries/hfm/src/hfm/HFM.h @@ -310,6 +310,7 @@ public: /// Returns the unscaled extents of the model's mesh Extents getUnscaledMeshExtents() const; + const Extents& getMeshExtents() const { return meshExtents; } bool convexHullContains(const glm::vec3& point) const; diff --git a/libraries/physics/src/EntityMotionState.cpp b/libraries/physics/src/EntityMotionState.cpp index 4b635ef0be..dd906fe5c1 100644 --- a/libraries/physics/src/EntityMotionState.cpp +++ b/libraries/physics/src/EntityMotionState.cpp @@ -91,7 +91,6 @@ EntityMotionState::EntityMotionState(btCollisionShape* shape, EntityItemPointer _serverRotation = localTransform.getRotation(); _serverAcceleration = _entity->getAcceleration(); _serverActionData = _entity->getDynamicData(); - } EntityMotionState::~EntityMotionState() { From 3303bb70170c673f08d8749b4f38d4b72fa1068f Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Fri, 4 Jan 2019 12:36:45 -0800 Subject: [PATCH 119/230] EntityServer now depends on ModelFormatRegistry --- assignment-client/src/entities/EntityServer.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/assignment-client/src/entities/EntityServer.cpp b/assignment-client/src/entities/EntityServer.cpp index 22308071eb..581d854909 100644 --- a/assignment-client/src/entities/EntityServer.cpp +++ b/assignment-client/src/entities/EntityServer.cpp @@ -23,6 +23,7 @@ #include <EntityEditFilters.h> #include <NetworkingConstants.h> #include <AddressManager.h> +#include <hfm/ModelFormatRegistry.h> #include "../AssignmentDynamicFactory.h" #include "AssignmentParentFinder.h" @@ -45,6 +46,7 @@ EntityServer::EntityServer(ReceivedMessage& message) : DependencyManager::registerInheritance<EntityDynamicFactoryInterface, AssignmentDynamicFactory>(); DependencyManager::set<AssignmentDynamicFactory>(); + DependencyManager::set<ModelFormatRegistry>(); // ModelFormatRegistry must be defined before ModelCache. See the ModelCache ctor DependencyManager::set<ModelCache>(); auto& packetReceiver = DependencyManager::get<NodeList>()->getPacketReceiver(); From 63172ec87ba3116c574e70e0b2fa3458525059c1 Mon Sep 17 00:00:00 2001 From: Ryan Huffman <ryanhuffman@gmail.com> Date: Fri, 4 Jan 2019 14:21:10 -0800 Subject: [PATCH 120/230] Fix marketplace item update failing on submitted items --- interface/src/avatar/AvatarProject.cpp | 1 - interface/src/avatar/MarketplaceItemUploader.cpp | 10 ++++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/interface/src/avatar/AvatarProject.cpp b/interface/src/avatar/AvatarProject.cpp index 20556ce5ed..a38bdcd693 100644 --- a/interface/src/avatar/AvatarProject.cpp +++ b/interface/src/avatar/AvatarProject.cpp @@ -256,6 +256,5 @@ void AvatarProject::openInInventory() { // I'm not a fan of this, but it's the only current option. QTimer::singleShot(TIME_TO_WAIT_FOR_INVENTORY_TO_OPEN_MS, [name, tablet]() { tablet->sendToQml(QVariantMap({ { "method", "updatePurchases" }, { "filterText", name } })); - }); } diff --git a/interface/src/avatar/MarketplaceItemUploader.cpp b/interface/src/avatar/MarketplaceItemUploader.cpp index 543617fc56..53b37eba4f 100644 --- a/interface/src/avatar/MarketplaceItemUploader.cpp +++ b/interface/src/avatar/MarketplaceItemUploader.cpp @@ -190,7 +190,12 @@ void MarketplaceItemUploader::doUploadAvatar() { QString jsonString = "{\"marketplace_item\":{"; jsonString += "\"title\":\"" + escapeJson(_title) + "\""; - jsonString += ",\"description\":\"" + escapeJson(_description) + "\""; + + // Items cannot have their description updated after they have been submitted. + if (creating) { + jsonString += ",\"description\":\"" + escapeJson(_description) + "\""; + } + jsonString += ",\"root_file_key\":\"" + escapeJson(_rootFilename) + "\""; jsonString += ",\"category_ids\":[" + QStringLiteral("%1").arg(_categoryID) + "]"; jsonString += ",\"license\":0"; @@ -300,12 +305,13 @@ void MarketplaceItemUploader::doWaitForInventory() { success = isAssetAvailable(); } if (success) { + qDebug() << "Found item in inventory"; setState(State::Complete); } else { constexpr int MAX_INVENTORY_REQUESTS { 8 }; constexpr int TIME_BETWEEN_INVENTORY_REQUESTS_MS { 5000 }; - qDebug() << "Failed to find item in inventory"; if (_numRequestsForInventory > MAX_INVENTORY_REQUESTS) { + qDebug() << "Failed to find item in inventory"; setError(Error::Unknown); } else { QTimer::singleShot(TIME_BETWEEN_INVENTORY_REQUESTS_MS, [this]() { doWaitForInventory(); }); From 1452d237e2b327a6bbddd3d2916fe40791420875 Mon Sep 17 00:00:00 2001 From: SamGondelman <samuel_gondelman@alumni.brown.edu> Date: Fri, 4 Jan 2019 11:32:16 -0800 Subject: [PATCH 121/230] trying to fix avatar entity issue --- .../entities/src/AnimationPropertyGroup.cpp | 28 +++++++++--- libraries/entities/src/EntityItem.cpp | 33 +++++++------- .../entities/src/EntityItemProperties.cpp | 43 +++++++++---------- libraries/entities/src/EntityPropertyFlags.h | 6 +-- libraries/entities/src/GrabPropertyGroup.cpp | 8 ++++ .../networking/src/udt/PacketHeaders.cpp | 2 +- libraries/networking/src/udt/PacketHeaders.h | 3 +- 7 files changed, 70 insertions(+), 53 deletions(-) diff --git a/libraries/entities/src/AnimationPropertyGroup.cpp b/libraries/entities/src/AnimationPropertyGroup.cpp index cf031f2d0f..7e97787ff2 100644 --- a/libraries/entities/src/AnimationPropertyGroup.cpp +++ b/libraries/entities/src/AnimationPropertyGroup.cpp @@ -182,14 +182,29 @@ void AnimationPropertyGroup::listChangedProperties(QList<QString>& out) { if (urlChanged()) { out << "animation-url"; } + if (allowTranslationChanged()) { + out << "animation-allowTranslation"; + } if (fpsChanged()) { out << "animation-fps"; } if (currentFrameChanged()) { out << "animation-currentFrame"; } - if (allowTranslationChanged()) { - out << "animation-allowTranslation"; + if (runningChanged()) { + out << "animation-running"; + } + if (loopChanged()) { + out << "animation-loop"; + } + if (firstFrameChanged()) { + out << "animation-firstFrame"; + } + if (lastFrameChanged()) { + out << "animation-lastFrame"; + } + if (holdChanged()) { + out << "animation-hold"; } } @@ -224,7 +239,6 @@ bool AnimationPropertyGroup::decodeFromEditPacket(EntityPropertyFlags& propertyF READ_ENTITY_PROPERTY(PROP_ANIMATION_URL, QString, setURL); READ_ENTITY_PROPERTY(PROP_ANIMATION_ALLOW_TRANSLATION, bool, setAllowTranslation); - READ_ENTITY_PROPERTY(PROP_ANIMATION_FPS, float, setFPS); READ_ENTITY_PROPERTY(PROP_ANIMATION_FRAME_INDEX, float, setCurrentFrame); READ_ENTITY_PROPERTY(PROP_ANIMATION_PLAYING, bool, setRunning); @@ -234,6 +248,7 @@ bool AnimationPropertyGroup::decodeFromEditPacket(EntityPropertyFlags& propertyF READ_ENTITY_PROPERTY(PROP_ANIMATION_HOLD, bool, setHold); DECODE_GROUP_PROPERTY_HAS_CHANGED(PROP_ANIMATION_URL, URL); + DECODE_GROUP_PROPERTY_HAS_CHANGED(PROP_ANIMATION_ALLOW_TRANSLATION, AllowTranslation); DECODE_GROUP_PROPERTY_HAS_CHANGED(PROP_ANIMATION_FPS, FPS); DECODE_GROUP_PROPERTY_HAS_CHANGED(PROP_ANIMATION_FRAME_INDEX, CurrentFrame); DECODE_GROUP_PROPERTY_HAS_CHANGED(PROP_ANIMATION_PLAYING, Running); @@ -241,7 +256,6 @@ bool AnimationPropertyGroup::decodeFromEditPacket(EntityPropertyFlags& propertyF DECODE_GROUP_PROPERTY_HAS_CHANGED(PROP_ANIMATION_FIRST_FRAME, FirstFrame); DECODE_GROUP_PROPERTY_HAS_CHANGED(PROP_ANIMATION_LAST_FRAME, LastFrame); DECODE_GROUP_PROPERTY_HAS_CHANGED(PROP_ANIMATION_HOLD, Hold); - DECODE_GROUP_PROPERTY_HAS_CHANGED(PROP_ANIMATION_ALLOW_TRANSLATION, AllowTranslation); processedBytes += bytesRead; @@ -252,6 +266,7 @@ bool AnimationPropertyGroup::decodeFromEditPacket(EntityPropertyFlags& propertyF void AnimationPropertyGroup::markAllChanged() { _urlChanged = true; + _allowTranslationChanged = true; _fpsChanged = true; _currentFrameChanged = true; _runningChanged = true; @@ -259,13 +274,13 @@ void AnimationPropertyGroup::markAllChanged() { _firstFrameChanged = true; _lastFrameChanged = true; _holdChanged = true; - _allowTranslationChanged = true; } EntityPropertyFlags AnimationPropertyGroup::getChangedProperties() const { EntityPropertyFlags changedProperties; CHECK_PROPERTY_CHANGE(PROP_ANIMATION_URL, url); + CHECK_PROPERTY_CHANGE(PROP_ANIMATION_ALLOW_TRANSLATION, allowTranslation); CHECK_PROPERTY_CHANGE(PROP_ANIMATION_FPS, fps); CHECK_PROPERTY_CHANGE(PROP_ANIMATION_FRAME_INDEX, currentFrame); CHECK_PROPERTY_CHANGE(PROP_ANIMATION_PLAYING, running); @@ -273,7 +288,6 @@ EntityPropertyFlags AnimationPropertyGroup::getChangedProperties() const { CHECK_PROPERTY_CHANGE(PROP_ANIMATION_FIRST_FRAME, firstFrame); CHECK_PROPERTY_CHANGE(PROP_ANIMATION_LAST_FRAME, lastFrame); CHECK_PROPERTY_CHANGE(PROP_ANIMATION_HOLD, hold); - CHECK_PROPERTY_CHANGE(PROP_ANIMATION_ALLOW_TRANSLATION, allowTranslation); return changedProperties; } @@ -309,6 +323,7 @@ EntityPropertyFlags AnimationPropertyGroup::getEntityProperties(EncodeBitstreamP EntityPropertyFlags requestedProperties; requestedProperties += PROP_ANIMATION_URL; + requestedProperties += PROP_ANIMATION_ALLOW_TRANSLATION; requestedProperties += PROP_ANIMATION_FPS; requestedProperties += PROP_ANIMATION_FRAME_INDEX; requestedProperties += PROP_ANIMATION_PLAYING; @@ -316,7 +331,6 @@ EntityPropertyFlags AnimationPropertyGroup::getEntityProperties(EncodeBitstreamP requestedProperties += PROP_ANIMATION_FIRST_FRAME; requestedProperties += PROP_ANIMATION_LAST_FRAME; requestedProperties += PROP_ANIMATION_HOLD; - requestedProperties += PROP_ANIMATION_ALLOW_TRANSLATION; return requestedProperties; } diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index bfa238d695..77ec215783 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -85,15 +85,15 @@ EntityPropertyFlags EntityItem::getEntityProperties(EncodeBitstreamParams& param requestedProperties += PROP_DIMENSIONS; requestedProperties += PROP_ROTATION; requestedProperties += PROP_REGISTRATION_POINT; - // TODO: handle PROP_CREATED? + requestedProperties += PROP_CREATED; requestedProperties += PROP_LAST_EDITED_BY; - requestedProperties += PROP_ENTITY_HOST_TYPE; - requestedProperties += PROP_OWNING_AVATAR_ID; + //requestedProperties += PROP_ENTITY_HOST_TYPE; // not sent over the wire + //requestedProperties += PROP_OWNING_AVATAR_ID; // not sent over the wire requestedProperties += PROP_PARENT_ID; requestedProperties += PROP_PARENT_JOINT_INDEX; requestedProperties += PROP_QUERY_AA_CUBE; requestedProperties += PROP_CAN_CAST_SHADOW; - // requestedProperties += PROP_VISIBLE_IN_SECONDARY_CAMERA; // not sent over wire + // requestedProperties += PROP_VISIBLE_IN_SECONDARY_CAMERA; // not sent over the wire withReadLock([&] { requestedProperties += _grabProperties.getEntityProperties(params); }); @@ -178,9 +178,6 @@ OctreeElement::AppendState EntityItem::appendEntityData(OctreePacketData* packet EntityPropertyFlags propertyFlags(PROP_LAST_ITEM); EntityPropertyFlags requestedProperties = getEntityProperties(params); - requestedProperties -= PROP_ENTITY_HOST_TYPE; - requestedProperties -= PROP_OWNING_AVATAR_ID; - // If we are being called for a subsequent pass at appendEntityData() that failed to completely encode this item, // then our entityTreeElementExtraEncodeData should include data about which properties we need to append. if (entityTreeElementExtraEncodeData && entityTreeElementExtraEncodeData->entities.contains(getEntityItemID())) { @@ -263,10 +260,10 @@ OctreeElement::AppendState EntityItem::appendEntityData(OctreePacketData* packet APPEND_ENTITY_PROPERTY(PROP_DIMENSIONS, getUnscaledDimensions()); APPEND_ENTITY_PROPERTY(PROP_ROTATION, getLocalOrientation()); APPEND_ENTITY_PROPERTY(PROP_REGISTRATION_POINT, getRegistrationPoint()); - // TODO: handle created? + APPEND_ENTITY_PROPERTY(PROP_CREATED, getCreated()); APPEND_ENTITY_PROPERTY(PROP_LAST_EDITED_BY, getLastEditedBy()); - // APPEND_ENTITY_PROPERTY(PROP_ENTITY_HOST_TYPE, getEntityHostType()); // not sent over wire - // APPEND_ENTITY_PROPERTY(PROP_OWNING_AVATAR_ID, getOwningAvatarID()); // not sent over wire + // APPEND_ENTITY_PROPERTY(PROP_ENTITY_HOST_TYPE, getEntityHostType()); // not sent over the wire + // APPEND_ENTITY_PROPERTY(PROP_OWNING_AVATAR_ID, getOwningAvatarID()); // not sent over the wire // convert AVATAR_SELF_ID to actual sessionUUID. QUuid actualParentID = getParentID(); if (actualParentID == AVATAR_SELF_ID) { @@ -277,7 +274,7 @@ OctreeElement::AppendState EntityItem::appendEntityData(OctreePacketData* packet APPEND_ENTITY_PROPERTY(PROP_PARENT_JOINT_INDEX, getParentJointIndex()); APPEND_ENTITY_PROPERTY(PROP_QUERY_AA_CUBE, getQueryAACube()); APPEND_ENTITY_PROPERTY(PROP_CAN_CAST_SHADOW, getCanCastShadow()); - // APPEND_ENTITY_PROPERTY(PROP_VISIBLE_IN_SECONDARY_CAMERA, getIsVisibleInSecondaryCamera()); // not sent over wire + // APPEND_ENTITY_PROPERTY(PROP_VISIBLE_IN_SECONDARY_CAMERA, getIsVisibleInSecondaryCamera()); // not sent over the wire withReadLock([&] { _grabProperties.appendSubclassData(packetData, params, entityTreeElementExtraEncodeData, requestedProperties, propertyFlags, propertiesDidntFit, propertyCount, appendState); @@ -314,13 +311,13 @@ OctreeElement::AppendState EntityItem::appendEntityData(OctreePacketData* packet APPEND_ENTITY_PROPERTY(PROP_SERVER_SCRIPTS, getServerScripts()); // Certifiable Properties - APPEND_ENTITY_PROPERTY(PROP_MARKETPLACE_ID, getMarketplaceID()); APPEND_ENTITY_PROPERTY(PROP_ITEM_NAME, getItemName()); APPEND_ENTITY_PROPERTY(PROP_ITEM_DESCRIPTION, getItemDescription()); APPEND_ENTITY_PROPERTY(PROP_ITEM_CATEGORIES, getItemCategories()); APPEND_ENTITY_PROPERTY(PROP_ITEM_ARTIST, getItemArtist()); APPEND_ENTITY_PROPERTY(PROP_ITEM_LICENSE, getItemLicense()); APPEND_ENTITY_PROPERTY(PROP_LIMITED_RUN, getLimitedRun()); + APPEND_ENTITY_PROPERTY(PROP_MARKETPLACE_ID, getMarketplaceID()); APPEND_ENTITY_PROPERTY(PROP_EDITION_NUMBER, getEditionNumber()); APPEND_ENTITY_PROPERTY(PROP_ENTITY_INSTANCE_NUMBER, getEntityInstanceNumber()); APPEND_ENTITY_PROPERTY(PROP_CERTIFICATE_ID, getCertificateID()); @@ -818,10 +815,10 @@ int EntityItem::readEntityDataFromBuffer(const unsigned char* data, int bytesLef READ_ENTITY_PROPERTY(PROP_ROTATION, glm::quat, customUpdateRotationFromNetwork); } READ_ENTITY_PROPERTY(PROP_REGISTRATION_POINT, glm::vec3, setRegistrationPoint); - // READ_ENTITY_PROPERTY(PROP_CREATED, quint64, setCreated); // not sent over wire + READ_ENTITY_PROPERTY(PROP_CREATED, quint64, setCreated); READ_ENTITY_PROPERTY(PROP_LAST_EDITED_BY, QUuid, setLastEditedBy); - // READ_ENTITY_PROPERTY(PROP_ENTITY_HOST_TYPE, entity::HostType, setEntityHostType); // not sent over wire - // READ_ENTITY_PROPERTY(PROP_OWNING_AVATAR_ID, QUuuid, setOwningAvatarID); // not sent over wire + // READ_ENTITY_PROPERTY(PROP_ENTITY_HOST_TYPE, entity::HostType, setEntityHostType); // not sent over the wire + // READ_ENTITY_PROPERTY(PROP_OWNING_AVATAR_ID, QUuuid, setOwningAvatarID); // not sent over the wire { // parentID and parentJointIndex are protected by simulation ownership bool oldOverwrite = overwriteLocalData; overwriteLocalData = overwriteLocalData && !weOwnSimulation; @@ -840,7 +837,7 @@ int EntityItem::readEntityDataFromBuffer(const unsigned char* data, int bytesLef READ_ENTITY_PROPERTY(PROP_QUERY_AA_CUBE, AACube, customUpdateQueryAACubeFromNetwork); } READ_ENTITY_PROPERTY(PROP_CAN_CAST_SHADOW, bool, setCanCastShadow); - // READ_ENTITY_PROPERTY(PROP_VISIBLE_IN_SECONDARY_CAMERA, bool, setIsVisibleInSecondaryCamera); // not sent over wire + // READ_ENTITY_PROPERTY(PROP_VISIBLE_IN_SECONDARY_CAMERA, bool, setIsVisibleInSecondaryCamera); // not sent over the wire withWriteLock([&] { int bytesFromGrab = _grabProperties.readEntitySubclassDataFromBuffer(dataAt, (bytesLeftToRead - bytesRead), args, propertyFlags, overwriteLocalData, @@ -909,13 +906,13 @@ int EntityItem::readEntityDataFromBuffer(const unsigned char* data, int bytesLef } // Certifiable props - READ_ENTITY_PROPERTY(PROP_MARKETPLACE_ID, QString, setMarketplaceID); READ_ENTITY_PROPERTY(PROP_ITEM_NAME, QString, setItemName); READ_ENTITY_PROPERTY(PROP_ITEM_DESCRIPTION, QString, setItemDescription); READ_ENTITY_PROPERTY(PROP_ITEM_CATEGORIES, QString, setItemCategories); READ_ENTITY_PROPERTY(PROP_ITEM_ARTIST, QString, setItemArtist); READ_ENTITY_PROPERTY(PROP_ITEM_LICENSE, QString, setItemLicense); READ_ENTITY_PROPERTY(PROP_LIMITED_RUN, quint32, setLimitedRun); + READ_ENTITY_PROPERTY(PROP_MARKETPLACE_ID, QString, setMarketplaceID); READ_ENTITY_PROPERTY(PROP_EDITION_NUMBER, quint32, setEditionNumber); READ_ENTITY_PROPERTY(PROP_ENTITY_INSTANCE_NUMBER, quint32, setEntityInstanceNumber); READ_ENTITY_PROPERTY(PROP_CERTIFICATE_ID, QString, setCertificateID); @@ -1309,7 +1306,7 @@ EntityItemProperties EntityItem::getProperties(const EntityPropertyFlags& desire COPY_ENTITY_PROPERTY_TO_PROPERTIES(parentJointIndex, getParentJointIndex); COPY_ENTITY_PROPERTY_TO_PROPERTIES(queryAACube, getQueryAACube); COPY_ENTITY_PROPERTY_TO_PROPERTIES(canCastShadow, getCanCastShadow); - // COPY_ENTITY_PROPERTY_TO_PROPERTIES(isVisibleInSecondaryCamera, getIsVisibleInSecondaryCamera); // not sent over wire + COPY_ENTITY_PROPERTY_TO_PROPERTIES(isVisibleInSecondaryCamera, isVisibleInSecondaryCamera); withReadLock([&] { _grabProperties.getProperties(properties); }); diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 1745658cf1..334b61d1b0 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -358,7 +358,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { CHECK_PROPERTY_CHANGE(PROP_DIMENSIONS, dimensions); CHECK_PROPERTY_CHANGE(PROP_ROTATION, rotation); CHECK_PROPERTY_CHANGE(PROP_REGISTRATION_POINT, registrationPoint); - //CHECK_PROPERTY_CHANGE(PROP_CREATED, created); // can't change + CHECK_PROPERTY_CHANGE(PROP_CREATED, created); CHECK_PROPERTY_CHANGE(PROP_LAST_EDITED_BY, lastEditedBy); CHECK_PROPERTY_CHANGE(PROP_ENTITY_HOST_TYPE, entityHostType); CHECK_PROPERTY_CHANGE(PROP_OWNING_AVATAR_ID, owningAvatarID); @@ -2290,13 +2290,13 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue ADD_PROPERTY_TO_MAP(PROP_DIMENSIONS, Dimensions, dimensions, vec3); ADD_PROPERTY_TO_MAP(PROP_ROTATION, Rotation, rotation, quat); ADD_PROPERTY_TO_MAP(PROP_REGISTRATION_POINT, RegistrationPoint, registrationPoint, vec3); - //ADD_PROPERTY_TO_MAP(PROP_CREATED, Created, created, quint64); // not yet handled - //ADD_PROPERTY_TO_MAP(PROP_LAST_EDITED_BY, LastEditedBy, lastEditedBy, QUuid); // not yet handled + ADD_PROPERTY_TO_MAP(PROP_CREATED, Created, created, quint64); + ADD_PROPERTY_TO_MAP(PROP_LAST_EDITED_BY, LastEditedBy, lastEditedBy, QUuid); ADD_PROPERTY_TO_MAP(PROP_ENTITY_HOST_TYPE, EntityHostType, entityHostType, entity::HostType); ADD_PROPERTY_TO_MAP(PROP_OWNING_AVATAR_ID, OwningAvatarID, owningAvatarID, QUuid); ADD_PROPERTY_TO_MAP(PROP_PARENT_ID, ParentID, parentID, QUuid); ADD_PROPERTY_TO_MAP(PROP_PARENT_JOINT_INDEX, ParentJointIndex, parentJointIndex, uint16_t); - //ADD_PROPERTY_TO_MAP(PROP_QUERY_AA_CUBE, QueryAACube, queryAACube, AACube); // not yet handled + ADD_PROPERTY_TO_MAP(PROP_QUERY_AA_CUBE, QueryAACube, queryAACube, AACube); ADD_PROPERTY_TO_MAP(PROP_CAN_CAST_SHADOW, CanCastShadow, canCastShadow, bool); ADD_PROPERTY_TO_MAP(PROP_VISIBLE_IN_SECONDARY_CAMERA, IsVisibleInSecondaryCamera, isVisibleInSecondaryCamera, bool); { // Grab @@ -2679,16 +2679,15 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy APPEND_ENTITY_PROPERTY(PROP_DIMENSIONS, properties.getDimensions()); APPEND_ENTITY_PROPERTY(PROP_ROTATION, properties.getRotation()); APPEND_ENTITY_PROPERTY(PROP_REGISTRATION_POINT, properties.getRegistrationPoint()); - // FIXME: deal with these - // APPEND_ENTITY_PROPERTY(PROP_CREATED, properties.getCreated()); - // APPEND_ENTITY_PROPERTY(PROP_LAST_EDITED_BY, properties.getLastEditedBy()); - // APPEND_ENTITY_PROPERTY(PROP_ENTITY_HOST_TYPE, (uint32_t)properties.getEntityHostType()); - // APPEND_ENTITY_PROPERTY(PROP_OWNING_AVATAR_ID, properties.getOwningAvatarID()); + APPEND_ENTITY_PROPERTY(PROP_CREATED, properties.getCreated()); + APPEND_ENTITY_PROPERTY(PROP_LAST_EDITED_BY, properties.getLastEditedBy()); + // APPEND_ENTITY_PROPERTY(PROP_ENTITY_HOST_TYPE, (uint32_t)properties.getEntityHostType()); // not sent over the wire + // APPEND_ENTITY_PROPERTY(PROP_OWNING_AVATAR_ID, properties.getOwningAvatarID()); // not sent over the wire APPEND_ENTITY_PROPERTY(PROP_PARENT_ID, properties.getParentID()); APPEND_ENTITY_PROPERTY(PROP_PARENT_JOINT_INDEX, properties.getParentJointIndex()); APPEND_ENTITY_PROPERTY(PROP_QUERY_AA_CUBE, properties.getQueryAACube()); APPEND_ENTITY_PROPERTY(PROP_CAN_CAST_SHADOW, properties.getCanCastShadow()); - // APPEND_ENTITY_PROPERTY(PROP_VISIBLE_IN_SECONDARY_CAMERA, properties.getIsVisibleInSecondaryCamera()); // Not sent over the wire + // APPEND_ENTITY_PROPERTY(PROP_VISIBLE_IN_SECONDARY_CAMERA, properties.getIsVisibleInSecondaryCamera()); // not sent over the wire _staticGrab.setProperties(properties); _staticGrab.appendToEditPacket(packetData, requestedProperties, propertyFlags, propertiesDidntFit, propertyCount, appendState); @@ -3123,16 +3122,15 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_DIMENSIONS, vec3, setDimensions); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ROTATION, quat, setRotation); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_REGISTRATION_POINT, vec3, setRegistrationPoint); - // FIXME: deal with these - // READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CREATED, quint64, setCreated); - // READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LAST_EDITED_BY, QUuid, setLastEditedBy); - // READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ENTITY_HOST_TYPE, entity::HostType, setEntityHostType); - // READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_OWNING_AVATAR_ID, QUuid, setOwningAvatarID); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CREATED, quint64, setCreated); + READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_LAST_EDITED_BY, QUuid, setLastEditedBy); + // READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_ENTITY_HOST_TYPE, entity::HostType, setEntityHostType); // not sent over the wire + // READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_OWNING_AVATAR_ID, QUuid, setOwningAvatarID); // not sent over the wire READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_PARENT_ID, QUuid, setParentID); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_PARENT_JOINT_INDEX, quint16, setParentJointIndex); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_QUERY_AA_CUBE, AACube, setQueryAACube); READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CAN_CAST_SHADOW, bool, setCanCastShadow); - // READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_VISIBLE_IN_SECONDARY_CAMERA, bool, setIsVisibleInSecondaryCamera); // Not sent over the wire + // READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_VISIBLE_IN_SECONDARY_CAMERA, bool, setIsVisibleInSecondaryCamera); // not sent over the wire properties.getGrab().decodeFromEditPacket(propertyFlags, dataAt, processedBytes); // Physics @@ -3856,13 +3854,12 @@ QList<QString> EntityItemProperties::listChangedProperties() { if (registrationPointChanged()) { out += "registrationPoint"; } - // FIXME: handle these - //if (createdChanged()) { - // out += "created"; - //} - //if (lastEditedByChanged()) { - // out += "lastEditedBy"; - //} + if (createdChanged()) { + out += "created"; + } + if (lastEditedByChanged()) { + out += "lastEditedBy"; + } if (entityHostTypeChanged()) { out += "entityHostType"; } diff --git a/libraries/entities/src/EntityPropertyFlags.h b/libraries/entities/src/EntityPropertyFlags.h index 8e0f5eb387..c63c34f542 100644 --- a/libraries/entities/src/EntityPropertyFlags.h +++ b/libraries/entities/src/EntityPropertyFlags.h @@ -32,13 +32,13 @@ enum EntityPropertyList { PROP_REGISTRATION_POINT, PROP_CREATED, PROP_LAST_EDITED_BY, - PROP_ENTITY_HOST_TYPE, // not sent over wire - PROP_OWNING_AVATAR_ID, // not sent over wire + PROP_ENTITY_HOST_TYPE, // not sent over the wire + PROP_OWNING_AVATAR_ID, // not sent over the wire PROP_PARENT_ID, PROP_PARENT_JOINT_INDEX, PROP_QUERY_AA_CUBE, PROP_CAN_CAST_SHADOW, - PROP_VISIBLE_IN_SECONDARY_CAMERA, // not sent over wire + PROP_VISIBLE_IN_SECONDARY_CAMERA, // not sent over the wire // Grab PROP_GRAB_GRABBABLE, PROP_GRAB_KINEMATIC, diff --git a/libraries/entities/src/GrabPropertyGroup.cpp b/libraries/entities/src/GrabPropertyGroup.cpp index 73bc1ed2d0..7a9ba147d9 100644 --- a/libraries/entities/src/GrabPropertyGroup.cpp +++ b/libraries/entities/src/GrabPropertyGroup.cpp @@ -49,6 +49,7 @@ void GrabPropertyGroup::copyFromScriptValue(const QScriptValue& object, bool& _d COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(grab, grabFollowsController, bool, setGrabFollowsController); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(grab, triggerable, bool, setTriggerable); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(grab, equippable, bool, setEquippable); + COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(grab, grabDelegateToParent, bool, setGrabDelegateToParent); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(grab, equippableLeftPosition, vec3, setEquippableLeftPosition); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(grab, equippableLeftRotation, quat, setEquippableLeftRotation); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(grab, equippableRightPosition, vec3, setEquippableRightPosition); @@ -64,6 +65,7 @@ void GrabPropertyGroup::merge(const GrabPropertyGroup& other) { COPY_PROPERTY_IF_CHANGED(grabFollowsController); COPY_PROPERTY_IF_CHANGED(triggerable); COPY_PROPERTY_IF_CHANGED(equippable); + COPY_PROPERTY_IF_CHANGED(grabDelegateToParent); COPY_PROPERTY_IF_CHANGED(equippableLeftPosition); COPY_PROPERTY_IF_CHANGED(equippableLeftRotation); COPY_PROPERTY_IF_CHANGED(equippableRightPosition); @@ -106,6 +108,9 @@ void GrabPropertyGroup::listChangedProperties(QList<QString>& out) { if (equippableChanged()) { out << "grab-equippable"; } + if (grabDelegateToParentChanged()) { + out << "grab-grabDelegateToParent"; + } if (equippableLeftPositionChanged()) { out << "grab-equippableLeftPosition"; } @@ -203,6 +208,7 @@ void GrabPropertyGroup::markAllChanged() { _grabFollowsControllerChanged = true; _triggerableChanged = true; _equippableChanged = true; + _grabDelegateToParentChanged = true; _equippableLeftPositionChanged = true; _equippableLeftRotationChanged = true; _equippableRightPositionChanged = true; @@ -238,6 +244,7 @@ void GrabPropertyGroup::getProperties(EntityItemProperties& properties) const { COPY_ENTITY_GROUP_PROPERTY_TO_PROPERTIES(Grab, GrabFollowsController, getGrabFollowsController); COPY_ENTITY_GROUP_PROPERTY_TO_PROPERTIES(Grab, Triggerable, getTriggerable); COPY_ENTITY_GROUP_PROPERTY_TO_PROPERTIES(Grab, Equippable, getEquippable); + COPY_ENTITY_GROUP_PROPERTY_TO_PROPERTIES(Grab, GrabDelegateToParent, getGrabDelegateToParent); COPY_ENTITY_GROUP_PROPERTY_TO_PROPERTIES(Grab, EquippableLeftPosition, getEquippableLeftPosition); COPY_ENTITY_GROUP_PROPERTY_TO_PROPERTIES(Grab, EquippableLeftRotation, getEquippableLeftRotation); COPY_ENTITY_GROUP_PROPERTY_TO_PROPERTIES(Grab, EquippableRightPosition, getEquippableRightPosition); @@ -255,6 +262,7 @@ bool GrabPropertyGroup::setProperties(const EntityItemProperties& properties) { SET_ENTITY_GROUP_PROPERTY_FROM_PROPERTIES(Grab, GrabFollowsController, grabFollowsController, setGrabFollowsController); SET_ENTITY_GROUP_PROPERTY_FROM_PROPERTIES(Grab, Triggerable, triggerable, setTriggerable); SET_ENTITY_GROUP_PROPERTY_FROM_PROPERTIES(Grab, Equippable, equippable, setEquippable); + SET_ENTITY_GROUP_PROPERTY_FROM_PROPERTIES(Grab, GrabDelegateToParent, grabDelegateToParent, setGrabDelegateToParent); SET_ENTITY_GROUP_PROPERTY_FROM_PROPERTIES(Grab, EquippableLeftPosition, equippableLeftPosition, setEquippableLeftPosition); SET_ENTITY_GROUP_PROPERTY_FROM_PROPERTIES(Grab, EquippableLeftRotation, equippableLeftRotation, setEquippableLeftRotation); SET_ENTITY_GROUP_PROPERTY_FROM_PROPERTIES(Grab, EquippableRightPosition, equippableRightPosition, diff --git a/libraries/networking/src/udt/PacketHeaders.cpp b/libraries/networking/src/udt/PacketHeaders.cpp index 6273c61762..e7554804a1 100644 --- a/libraries/networking/src/udt/PacketHeaders.cpp +++ b/libraries/networking/src/udt/PacketHeaders.cpp @@ -33,7 +33,7 @@ PacketVersion versionForPacketType(PacketType packetType) { case PacketType::EntityEdit: case PacketType::EntityData: case PacketType::EntityPhysics: - return static_cast<PacketVersion>(EntityVersion::MorePropertiesCleanup); + return static_cast<PacketVersion>(EntityVersion::FixPropertiesFromCleanup); case PacketType::EntityQuery: return static_cast<PacketVersion>(EntityQueryPacketVersion::ConicalFrustums); case PacketType::AvatarIdentity: diff --git a/libraries/networking/src/udt/PacketHeaders.h b/libraries/networking/src/udt/PacketHeaders.h index c1d91681df..47d51462cb 100644 --- a/libraries/networking/src/udt/PacketHeaders.h +++ b/libraries/networking/src/udt/PacketHeaders.h @@ -252,7 +252,8 @@ enum class EntityVersion : PacketVersion { GridEntities, MissingTextProperties, GrabTraits, - MorePropertiesCleanup + MorePropertiesCleanup, + FixPropertiesFromCleanup }; enum class EntityScriptCallMethodVersion : PacketVersion { From 5d40e1e4801e2a4e4f2eca034b5f7d0590aa7543 Mon Sep 17 00:00:00 2001 From: Thijs Wenker <me@thoys.nl> Date: Fri, 4 Jan 2019 23:39:04 +0100 Subject: [PATCH 122/230] - CR/style fixes - Moved the old Avatar Packager tool to Developer -> Avatar -> .. --- .../hifi/avatarPackager/AvatarPackagerApp.qml | 16 +++++++------- .../avatarPackager/AvatarPackagerHeader.qml | 3 --- .../qml/hifi/avatarPackager/AvatarProject.qml | 22 +++++++++---------- .../hifi/avatarPackager/AvatarProjectCard.qml | 2 +- .../qml/hifi/avatarPackager/RalewayButton.qml | 10 ++++----- interface/src/Menu.cpp | 6 ++--- interface/src/avatar/AvatarPackager.cpp | 2 +- interface/src/avatar/AvatarPackager.h | 12 +++++----- interface/src/avatar/AvatarProject.cpp | 7 +++--- interface/src/avatar/AvatarProject.h | 2 +- 10 files changed, 38 insertions(+), 44 deletions(-) diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml index 9d3a347a11..b4293d5eee 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml @@ -76,7 +76,7 @@ Item { InfoBox { id: errorPopup - property string errorMessage; + property string errorMessage boxWidth: 380 boxHeight: 293 @@ -181,16 +181,16 @@ Item { errorPopup.show("Project Folder Already Exists", "A folder with that name already exists at that location. Please choose a different project name or location."); break; case AvatarProjectStatus.ERROR_CREATE_CREATING_DIRECTORIES: - errorPopup.show("Project Folders Creation Error", "There was a problem during the creation of the Avatar Project directories. Please select a project location with write permissions."); + errorPopup.show("Project Folders Creation Error", "There was a problem creating the Avatar Project directory. Please check the project location and try again."); break; case AvatarProjectStatus.ERROR_CREATE_FIND_MODEL: - errorPopup.show("Cannot Find Model File", "There was a problem while trying to find the specified model file. Please verify if it exist at the specified location."); + errorPopup.show("Cannot Find Model File", "There was a problem while trying to find the specified model file. Please verify that it exists at the specified location."); break; case AvatarProjectStatus.ERROR_CREATE_OPEN_MODEL: - errorPopup.show("Cannot Open Model File", "There was a problem while trying to open the specified model file. Please verify if you have read permissions at the specified location."); + errorPopup.show("Cannot Open Model File", "There was a problem while trying to open the specified model file."); break; case AvatarProjectStatus.ERROR_CREATE_READ_MODEL: - errorPopup.show("Error Read Model File", "There was a problem while trying to read the specified model file. Please verify if the model file is supported by High Fidelity."); + errorPopup.show("Error Read Model File", "There was a problem while trying to read the specified model file. Please check that the file is a valid FBX file and try again."); break; case AvatarProjectStatus.ERROR_CREATE_WRITE_FST: errorPopup.show("Error Writing Project File", "There was a problem while trying to write the FST file."); @@ -202,13 +202,13 @@ Item { errorPopup.show("Project Missing", "Project folder cannot be found. Please locate the folder and copy/move it to its original location."); break; case AvatarProjectStatus.ERROR_OPEN_FIND_FST: - errorPopup.show("File Missing", "We cannot find the project file (avatar.fst) in the folder. Please locate it and move to the project folder."); + errorPopup.show("File Missing", "We cannot find the project file (.fst) in the project folder. Please locate it and move it to the project folder."); break; case AvatarProjectStatus.ERROR_OPEN_OPEN_FST: - errorPopup.show("File Read Error", "We cannot read the project file (avatar.fst). Please make sure that it is not in use by another program."); + errorPopup.show("File Read Error", "We cannot read the project file (.fst)."); break; case AvatarProjectStatus.ERROR_OPEN_FIND_MODEL: - errorPopup.show("File Missing", "We cannot find the avatar model file (.fbx) in the folder. Please locate it and move to the project folder."); + errorPopup.show("File Missing", "We cannot find the avatar model file (.fbx) in the project folder. Please locate it and move it to the project folder."); break; default: errorPopup.show("Error Message Missing", "Error message missing for status " + status); diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml index 845fdeb99f..25201bf81e 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml @@ -35,7 +35,6 @@ ShadowRectangle { anchors.bottom: parent.bottom anchors.left: parent.left anchors.leftMargin: 16 - anchors.verticalCenter: back.verticalCenter text: "◀" @@ -48,7 +47,6 @@ ShadowRectangle { anchors.bottom: parent.bottom anchors.left: root.backButtonVisible ? back.right : parent.left anchors.leftMargin: root.backButtonVisible ? 11 : 21 - anchors.verticalCenter: title.verticalCenter anchors.right: docs.left states: [ State { @@ -136,7 +134,6 @@ ShadowRectangle { anchors.bottom: parent.bottom anchors.right: parent.right anchors.rightMargin: 16 - anchors.verticalCenter: docs.verticalCenter text: qsTr("Docs") diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml index 59dd1ac5c9..85ef821a4a 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -16,10 +16,10 @@ Item { Style { id: style } - property int colorScheme; - property var uploader: null; + property int colorScheme + property var uploader: null - property bool hasSuccessfullyUploaded: true; + property bool hasSuccessfullyUploaded: true visible: false anchors.fill: parent @@ -44,7 +44,7 @@ Item { HifiControls.Button { id: uploadButton - visible: !AvatarPackagerCore.currentAvatarProject.fst.hasMarketplaceID && !root.hasSuccessfullyUploaded + visible: AvatarPackagerCore.currentAvatarProject && !AvatarPackagerCore.currentAvatarProject.fst.hasMarketplaceID && !root.hasSuccessfullyUploaded enabled: Account.loggedIn anchors.verticalCenter: parent.verticalCenter @@ -62,7 +62,7 @@ Item { HifiControls.Button { id: updateButton - visible: AvatarPackagerCore.currentAvatarProject.fst.hasMarketplaceID && !root.hasSuccessfullyUploaded + visible: AvatarPackagerCore.currentAvatarProject && AvatarPackagerCore.currentAvatarProject.fst.hasMarketplaceID && !root.hasSuccessfullyUploaded enabled: Account.loggedIn anchors.verticalCenter: parent.verticalCenter @@ -175,9 +175,9 @@ Item { } function showConfirmUploadPopup() { - popup.titleText = 'Overwrite Avatar' + popup.titleText = 'Overwrite Avatar'; popup.bodyText = 'You have previously uploaded the avatar file from this project.' + - ' This will overwrite that avatar and you won’t be able to access the older version.' + ' This will overwrite that avatar and you won’t be able to access the older version.'; popup.button1text = 'CREATE NEW'; popup.button2text = 'OVERWRITE'; @@ -185,7 +185,7 @@ Item { popup.onButton2Clicked = function() { popup.close(); uploadUpdate(); - } + }; popup.onButton1Clicked = function() { popup.close(); showConfirmCreateNewPopup(); @@ -195,9 +195,9 @@ Item { } function showConfirmCreateNewPopup(confirmCallback) { - popup.titleText = 'Create New' + popup.titleText = 'Create New'; popup.bodyText = 'This will upload your current files with the same avatar name.' + - ' You will lose the ability to update the previously uploaded avatar. Are you sure you want to continue?' + ' You will lose the ability to update the previously uploaded avatar. Are you sure you want to continue?'; popup.button1text = 'CANCEL'; popup.button2text = 'CONFIRM'; @@ -277,7 +277,7 @@ Item { size: 20 - text: AvatarPackagerCore.currentAvatarProject.projectFiles.length + " files in project. <a href='toggle'>See list</a>" + text: AvatarPackagerCore.currentAvatarProject ? AvatarPackagerCore.currentAvatarProject.projectFiles.length + " files in project. <a href='toggle'>See list</a>" : "" onLinkActivated: fileListPopup.open() } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml index a758d3936a..25222c814c 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProjectCard.qml @@ -21,7 +21,7 @@ Item { property color hoverBackgroundColor: "#E3E3E3" property color pressedBackgroundColor: "#6A6A6A" - signal open; + signal open state: mouseArea.pressed ? "pressed" : (mouseArea.containsMouse ? "hover" : "normal") states: [ diff --git a/interface/resources/qml/hifi/avatarPackager/RalewayButton.qml b/interface/resources/qml/hifi/avatarPackager/RalewayButton.qml index 18cce8138f..86742ddccd 100644 --- a/interface/resources/qml/hifi/avatarPackager/RalewayButton.qml +++ b/interface/resources/qml/hifi/avatarPackager/RalewayButton.qml @@ -8,13 +8,11 @@ import TabletScriptingInterface 1.0 RalewaySemiBold { id: root - anchors.fill: textItem + property color idleColor: "white" + property color hoverColor: "#AFAFAF" + property color pressedColor: "#575757" - property var idleColor: "white" - property var hoverColor: "#AFAFAF" - property var pressedColor: "#575757" - - color: clickable.hovered ? root.hoverColor : (clickable.pressed ? root.pressedColor : root.idleColor); + color: clickable.hovered ? root.hoverColor : (clickable.pressed ? root.pressedColor : root.idleColor) signal clicked() diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 87b1542648..810e21daf5 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -145,10 +145,6 @@ Menu::Menu() { assetServerAction->setEnabled(nodeList->getThisNodeCanWriteAssets()); } - // Edit > Package Avatar as .fst... - addActionToQMenuAndActionHash(editMenu, MenuOption::PackageModel, 0, - qApp, SLOT(packageModel())); - // Edit > Avatar Packager #ifndef Q_OS_ANDROID action = addActionToQMenuAndActionHash(editMenu, MenuOption::AvatarPackager); @@ -654,6 +650,8 @@ Menu::Menu() { addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::ShowTrackedObjects, 0, false, qApp, SLOT(setShowTrackedObjects(bool))); + addActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::PackageModel, 0, qApp, SLOT(packageModel())); + // Developer > Hands >>> MenuWrapper* handOptionsMenu = developerMenu->addMenu("Hands"); addCheckableActionToQMenuAndActionHash(handOptionsMenu, MenuOption::DisplayHandTargets, 0, false, diff --git a/interface/src/avatar/AvatarPackager.cpp b/interface/src/avatar/AvatarPackager.cpp index 941aff6943..fa70eee374 100644 --- a/interface/src/avatar/AvatarPackager.cpp +++ b/interface/src/avatar/AvatarPackager.cpp @@ -95,7 +95,7 @@ void AvatarPackager::addCurrentProjectToRecentProjects() { emit recentProjectsChanged(); } -QVariantList AvatarPackager::recentProjectsToVariantList(bool includeProjectPaths) { +QVariantList AvatarPackager::recentProjectsToVariantList(bool includeProjectPaths) const { QVariantList result; for (const auto& project : _recentProjects) { QVariantMap projectVariant; diff --git a/interface/src/avatar/AvatarPackager.h b/interface/src/avatar/AvatarPackager.h index c9c5b9d312..4416ec5806 100644 --- a/interface/src/avatar/AvatarPackager.h +++ b/interface/src/avatar/AvatarPackager.h @@ -69,7 +69,9 @@ public: const QString& textureFolder); Q_INVOKABLE AvatarProjectStatus::AvatarProjectStatus openAvatarProject(const QString& avatarProjectFSTPath); - Q_INVOKABLE bool isValidNewProjectName(const QString& projectPath, const QString& projectName) { return AvatarProject::isValidNewProjectName(projectPath, projectName); } + Q_INVOKABLE bool isValidNewProjectName(const QString& projectPath, const QString& projectName) { + return AvatarProject::isValidNewProjectName(projectPath, projectName); + } signals: void avatarProjectChanged(); @@ -78,21 +80,21 @@ signals: private: Q_INVOKABLE AvatarProject* getAvatarProject() const { return _currentAvatarProject; }; Q_INVOKABLE QString getAvatarProjectsPath() const { return AvatarProject::getDefaultProjectsPath(); } - Q_INVOKABLE QVariantList getRecentProjects() { return recentProjectsToVariantList(true); } + Q_INVOKABLE QVariantList getRecentProjects() const { return recentProjectsToVariantList(true); } void setAvatarProject(AvatarProject* avatarProject); void addCurrentProjectToRecentProjects(); - AvatarProject* _currentAvatarProject{ nullptr }; + AvatarProject* _currentAvatarProject { nullptr }; QVector<RecentAvatarProject> _recentProjects; - QVariantList recentProjectsToVariantList(bool includeProjectPaths); + QVariantList recentProjectsToVariantList(bool includeProjectPaths) const; void recentProjectsFromVariantList(QVariantList projectsVariant); - Setting::Handle<QVariantList> _recentProjectsSetting{ "io.highfidelity.avatarPackager.recentProjects", QVariantList() }; + Setting::Handle<QVariantList> _recentProjectsSetting { "io.highfidelity.avatarPackager.recentProjects", QVariantList() }; }; #endif // hifi_AvatarPackager_h diff --git a/interface/src/avatar/AvatarProject.cpp b/interface/src/avatar/AvatarProject.cpp index 20556ce5ed..728917e673 100644 --- a/interface/src/avatar/AvatarProject.cpp +++ b/interface/src/avatar/AvatarProject.cpp @@ -169,8 +169,8 @@ QStringList AvatarProject::getScriptPaths(const QDir& scriptsDir) const { return result; } - for (auto& script : scriptsDir.entryInfoList({}, flags)) { - if (script.fileName().endsWith(".js")) { + for (const auto& script : scriptsDir.entryInfoList({}, flags)) { + if (script.fileName().toLower().endsWith(".js")) { result.push_back("scripts/" + script.fileName()); } } @@ -243,7 +243,7 @@ MarketplaceItemUploader* AvatarProject::upload(bool updateExisting) { return uploader; } -void AvatarProject::openInInventory() { +void AvatarProject::openInInventory() const { constexpr int TIME_TO_WAIT_FOR_INVENTORY_TO_OPEN_MS { 1000 }; auto tablet = dynamic_cast<TabletProxy*>( @@ -256,6 +256,5 @@ void AvatarProject::openInInventory() { // I'm not a fan of this, but it's the only current option. QTimer::singleShot(TIME_TO_WAIT_FOR_INVENTORY_TO_OPEN_MS, [name, tablet]() { tablet->sendToQml(QVariantMap({ { "method", "updatePurchases" }, { "filterText", name } })); - }); } diff --git a/interface/src/avatar/AvatarProject.h b/interface/src/avatar/AvatarProject.h index 2a655409e1..1710282a3e 100644 --- a/interface/src/avatar/AvatarProject.h +++ b/interface/src/avatar/AvatarProject.h @@ -56,7 +56,7 @@ class AvatarProject : public QObject { public: Q_INVOKABLE MarketplaceItemUploader* upload(bool updateExisting); - Q_INVOKABLE void openInInventory(); + Q_INVOKABLE void openInInventory() const; Q_INVOKABLE QStringList getProjectFiles() const; Q_INVOKABLE QString getProjectName() const { return _fst->getName(); } From cfbb4e29d1b0c0eab163b27e44bc998909253f5e Mon Sep 17 00:00:00 2001 From: Clement <clement.brisset@gmail.com> Date: Fri, 4 Jan 2019 13:44:38 -0800 Subject: [PATCH 123/230] Only keep aggregated thread stats --- assignment-client/src/avatars/AvatarMixer.cpp | 45 ++----------------- libraries/networking/src/LimitedNodeList.cpp | 29 ------------ libraries/networking/src/LimitedNodeList.h | 8 ---- libraries/networking/src/PacketReceiver.cpp | 6 --- libraries/networking/src/PacketReceiver.h | 8 +--- .../networking/src/ThreadedAssignment.cpp | 12 ++--- 6 files changed, 8 insertions(+), 100 deletions(-) diff --git a/assignment-client/src/avatars/AvatarMixer.cpp b/assignment-client/src/avatars/AvatarMixer.cpp index 5b72616e5f..cb2f0636b9 100644 --- a/assignment-client/src/avatars/AvatarMixer.cpp +++ b/assignment-client/src/avatars/AvatarMixer.cpp @@ -746,65 +746,27 @@ void AvatarMixer::sendStatsPacket() { AvatarMixerSlaveStats aggregateStats; - QJsonObject slavesObject; - float secondsSinceLastStats = (float)(start - _lastStatsTime) / (float)USECS_PER_SECOND; // gather stats - int slaveNumber = 1; _slavePool.each([&](AvatarMixerSlave& slave) { - QJsonObject slaveObject; AvatarMixerSlaveStats stats; slave.harvestStats(stats); - slaveObject["recevied_1_nodesProcessed"] = TIGHT_LOOP_STAT(stats.nodesProcessed); - slaveObject["received_2_numPacketsReceived"] = TIGHT_LOOP_STAT(stats.packetsProcessed); - - slaveObject["sent_1_nodesBroadcastedTo"] = TIGHT_LOOP_STAT(stats.nodesBroadcastedTo); - slaveObject["sent_2_numBytesSent"] = TIGHT_LOOP_STAT(stats.numBytesSent); - slaveObject["sent_3_numPacketsSent"] = TIGHT_LOOP_STAT(stats.numPacketsSent); - slaveObject["sent_4_numIdentityPackets"] = TIGHT_LOOP_STAT(stats.numIdentityPackets); - - float averageNodes = ((float)stats.nodesBroadcastedTo / (float)tightLoopFrames); - float averageOutboundAvatarKbps = averageNodes ? ((stats.numBytesSent / secondsSinceLastStats) / BYTES_PER_KILOBIT) / averageNodes : 0.0f; - slaveObject["sent_5_averageOutboundAvatarKbps"] = averageOutboundAvatarKbps; - - float averageOthersIncluded = averageNodes ? stats.numOthersIncluded / averageNodes : 0.0f; - slaveObject["sent_6_averageOthersIncluded"] = TIGHT_LOOP_STAT(averageOthersIncluded); - - float averageOverBudgetAvatars = averageNodes ? stats.overBudgetAvatars / averageNodes : 0.0f; - slaveObject["sent_7_averageOverBudgetAvatars"] = TIGHT_LOOP_STAT(averageOverBudgetAvatars); - - slaveObject["timing_1_processIncomingPackets"] = TIGHT_LOOP_STAT_UINT64(stats.processIncomingPacketsElapsedTime); - slaveObject["timing_2_ignoreCalculation"] = TIGHT_LOOP_STAT_UINT64(stats.ignoreCalculationElapsedTime); - slaveObject["timing_3_toByteArray"] = TIGHT_LOOP_STAT_UINT64(stats.toByteArrayElapsedTime); - slaveObject["timing_4_avatarDataPacking"] = TIGHT_LOOP_STAT_UINT64(stats.avatarDataPackingElapsedTime); - slaveObject["timing_5_packetSending"] = TIGHT_LOOP_STAT_UINT64(stats.packetSendingElapsedTime); - slaveObject["timing_6_jobElapsedTime"] = TIGHT_LOOP_STAT_UINT64(stats.jobElapsedTime); - - slavesObject[QString::number(slaveNumber)] = slaveObject; - slaveNumber++; - aggregateStats += stats; }); QJsonObject slavesAggregatObject; - slavesAggregatObject["recevied_1_nodesProcessed"] = TIGHT_LOOP_STAT(aggregateStats.nodesProcessed); - slavesAggregatObject["received_2_numPacketsReceived"] = TIGHT_LOOP_STAT(aggregateStats.packetsProcessed); + slavesAggregatObject["received_1_nodesProcessed"] = TIGHT_LOOP_STAT(aggregateStats.nodesProcessed); slavesAggregatObject["sent_1_nodesBroadcastedTo"] = TIGHT_LOOP_STAT(aggregateStats.nodesBroadcastedTo); - slavesAggregatObject["sent_2_numBytesSent"] = TIGHT_LOOP_STAT(aggregateStats.numBytesSent); - slavesAggregatObject["sent_3_numPacketsSent"] = TIGHT_LOOP_STAT(aggregateStats.numPacketsSent); - slavesAggregatObject["sent_4_numIdentityPackets"] = TIGHT_LOOP_STAT(aggregateStats.numIdentityPackets); float averageNodes = ((float)aggregateStats.nodesBroadcastedTo / (float)tightLoopFrames); - float averageOutboundAvatarKbps = averageNodes ? ((aggregateStats.numBytesSent / secondsSinceLastStats) / BYTES_PER_KILOBIT) / averageNodes : 0.0f; - slavesAggregatObject["sent_5_averageOutboundAvatarKbps"] = averageOutboundAvatarKbps; float averageOthersIncluded = averageNodes ? aggregateStats.numOthersIncluded / averageNodes : 0.0f; - slavesAggregatObject["sent_6_averageOthersIncluded"] = TIGHT_LOOP_STAT(averageOthersIncluded); + slavesAggregatObject["sent_2_averageOthersIncluded"] = TIGHT_LOOP_STAT(averageOthersIncluded); float averageOverBudgetAvatars = averageNodes ? aggregateStats.overBudgetAvatars / averageNodes : 0.0f; - slavesAggregatObject["sent_7_averageOverBudgetAvatars"] = TIGHT_LOOP_STAT(averageOverBudgetAvatars); + slavesAggregatObject["sent_3_averageOverBudgetAvatars"] = TIGHT_LOOP_STAT(averageOverBudgetAvatars); slavesAggregatObject["timing_1_processIncomingPackets"] = TIGHT_LOOP_STAT_UINT64(aggregateStats.processIncomingPacketsElapsedTime); slavesAggregatObject["timing_2_ignoreCalculation"] = TIGHT_LOOP_STAT_UINT64(aggregateStats.ignoreCalculationElapsedTime); @@ -814,7 +776,6 @@ void AvatarMixer::sendStatsPacket() { slavesAggregatObject["timing_6_jobElapsedTime"] = TIGHT_LOOP_STAT_UINT64(aggregateStats.jobElapsedTime); statsObject["slaves_aggregate"] = slavesAggregatObject; - statsObject["slaves_individual"] = slavesObject; _handleViewFrustumPacketElapsedTime = 0; _handleAvatarIdentityPacketElapsedTime = 0; diff --git a/libraries/networking/src/LimitedNodeList.cpp b/libraries/networking/src/LimitedNodeList.cpp index 063885e782..8b9e37569c 100644 --- a/libraries/networking/src/LimitedNodeList.cpp +++ b/libraries/networking/src/LimitedNodeList.cpp @@ -113,8 +113,6 @@ LimitedNodeList::LimitedNodeList(int socketListenPort, int dtlsListenPort) : // handle when a socket connection has its receiver side reset - might need to emit clientConnectionToNodeReset connect(&_nodeSocket, &udt::Socket::clientHandshakeRequestComplete, this, &LimitedNodeList::clientConnectionToSockAddrReset); - _packetStatTimer.start(); - if (_stunSockAddr.getAddress().isNull()) { // we don't know the stun server socket yet, add it to unfiltered once known connect(&_stunSockAddr, &HifiSockAddr::lookupCompleted, this, &LimitedNodeList::addSTUNHandlerToUnfiltered); @@ -378,12 +376,6 @@ bool LimitedNodeList::packetSourceAndHashMatchAndTrackBandwidth(const udt::Packe return false; } -void LimitedNodeList::collectPacketStats(const NLPacket& packet) { - // stat collection for packets - ++_numCollectedPackets; - _numCollectedBytes += packet.getDataSize(); -} - void LimitedNodeList::fillPacketHeader(const NLPacket& packet, HMACAuth* hmacAuth) { if (!PacketTypeEnum::getNonSourcedPackets().contains(packet.getType())) { packet.writeSourceID(getSessionLocalID()); @@ -414,7 +406,6 @@ qint64 LimitedNodeList::sendUnreliablePacket(const NLPacket& packet, const HifiS Q_ASSERT_X(!packet.isReliable(), "LimitedNodeList::sendUnreliablePacket", "Trying to send a reliable packet unreliably."); - collectPacketStats(packet); fillPacketHeader(packet, hmacAuth); return _nodeSocket.writePacket(packet, sockAddr); @@ -436,7 +427,6 @@ qint64 LimitedNodeList::sendPacket(std::unique_ptr<NLPacket> packet, const HifiS HMACAuth* hmacAuth) { Q_ASSERT(!packet->isPartOfMessage()); if (packet->isReliable()) { - collectPacketStats(*packet); fillPacketHeader(*packet, hmacAuth); auto size = packet->getDataSize(); @@ -490,7 +480,6 @@ qint64 LimitedNodeList::sendPacketList(std::unique_ptr<NLPacketList> packetList, for (std::unique_ptr<udt::Packet>& packet : packetList->_packets) { NLPacket* nlPacket = static_cast<NLPacket*>(packet.get()); - collectPacketStats(*nlPacket); fillPacketHeader(*nlPacket); } @@ -505,7 +494,6 @@ qint64 LimitedNodeList::sendPacketList(std::unique_ptr<NLPacketList> packetList, for (std::unique_ptr<udt::Packet>& packet : packetList->_packets) { NLPacket* nlPacket = static_cast<NLPacket*>(packet.get()); - collectPacketStats(*nlPacket); fillPacketHeader(*nlPacket, destinationNode.getAuthenticateHash()); } @@ -832,23 +820,6 @@ SharedNodePointer LimitedNodeList::soloNodeOfType(NodeType_t nodeType) { }); } -void LimitedNodeList::getPacketStats(float& packetsInPerSecond, float& bytesInPerSecond, float& packetsOutPerSecond, float& bytesOutPerSecond) { - packetsInPerSecond = (float) getPacketReceiver().getInPacketCount() / ((float) _packetStatTimer.elapsed() / 1000.0f); - bytesInPerSecond = (float) getPacketReceiver().getInByteCount() / ((float) _packetStatTimer.elapsed() / 1000.0f); - - packetsOutPerSecond = (float) _numCollectedPackets / ((float) _packetStatTimer.elapsed() / 1000.0f); - bytesOutPerSecond = (float) _numCollectedBytes / ((float) _packetStatTimer.elapsed() / 1000.0f); -} - -void LimitedNodeList::resetPacketStats() { - getPacketReceiver().resetCounters(); - - _numCollectedPackets = 0; - _numCollectedBytes = 0; - - _packetStatTimer.restart(); -} - void LimitedNodeList::removeSilentNodes() { QSet<SharedNodePointer> killedNodes; diff --git a/libraries/networking/src/LimitedNodeList.h b/libraries/networking/src/LimitedNodeList.h index 78d4d5810f..450fad96a9 100644 --- a/libraries/networking/src/LimitedNodeList.h +++ b/libraries/networking/src/LimitedNodeList.h @@ -183,9 +183,6 @@ public: unsigned int broadcastToNodes(std::unique_ptr<NLPacket> packet, const NodeSet& destinationNodeTypes); SharedNodePointer soloNodeOfType(NodeType_t nodeType); - void getPacketStats(float& packetsInPerSecond, float& bytesInPerSecond, float& packetsOutPerSecond, float& bytesOutPerSecond); - void resetPacketStats(); - std::unique_ptr<NLPacket> constructPingPacket(const QUuid& nodeId, PingType_t pingType = PingType::Agnostic); std::unique_ptr<NLPacket> constructPingReplyPacket(ReceivedMessage& message); @@ -377,7 +374,6 @@ protected: qint64 sendPacket(std::unique_ptr<NLPacket> packet, const Node& destinationNode, const HifiSockAddr& overridenSockAddr); - void collectPacketStats(const NLPacket& packet); void fillPacketHeader(const NLPacket& packet, HMACAuth* hmacAuth = nullptr); void setLocalSocket(const HifiSockAddr& sockAddr); @@ -406,10 +402,6 @@ protected: PacketReceiver* _packetReceiver; - std::atomic<int> _numCollectedPackets { 0 }; - std::atomic<int> _numCollectedBytes { 0 }; - - QElapsedTimer _packetStatTimer; NodePermissions _permissions; QPointer<QTimer> _initialSTUNTimer; diff --git a/libraries/networking/src/PacketReceiver.cpp b/libraries/networking/src/PacketReceiver.cpp index 83be481914..962ceab00f 100644 --- a/libraries/networking/src/PacketReceiver.cpp +++ b/libraries/networking/src/PacketReceiver.cpp @@ -212,18 +212,12 @@ void PacketReceiver::handleVerifiedPacket(std::unique_ptr<udt::Packet> packet) { auto nlPacket = NLPacket::fromBase(std::move(packet)); auto receivedMessage = QSharedPointer<ReceivedMessage>::create(*nlPacket); - _inPacketCount += 1; - _inByteCount += nlPacket->size(); - handleVerifiedMessage(receivedMessage, true); } void PacketReceiver::handleVerifiedMessagePacket(std::unique_ptr<udt::Packet> packet) { auto nlPacket = NLPacket::fromBase(std::move(packet)); - _inPacketCount += 1; - _inByteCount += nlPacket->size(); - auto key = std::pair<HifiSockAddr, udt::Packet::MessageNumber>(nlPacket->getSenderSockAddr(), nlPacket->getMessageNumber()); auto it = _pendingMessages.find(key); QSharedPointer<ReceivedMessage> message; diff --git a/libraries/networking/src/PacketReceiver.h b/libraries/networking/src/PacketReceiver.h index 4b4d260409..e29a0d6e5a 100644 --- a/libraries/networking/src/PacketReceiver.h +++ b/libraries/networking/src/PacketReceiver.h @@ -49,13 +49,8 @@ public: PacketReceiver(const PacketReceiver&) = delete; PacketReceiver& operator=(const PacketReceiver&) = delete; - - int getInPacketCount() const { return _inPacketCount; } - int getInByteCount() const { return _inByteCount; } void setShouldDropPackets(bool shouldDropPackets) { _shouldDropPackets = shouldDropPackets; } - - void resetCounters() { _inPacketCount = 0; _inByteCount = 0; } // If deliverPending is false, ReceivedMessage will only be delivered once all packets for the message have // been received. If deliverPending is true, ReceivedMessage will be delivered as soon as the first packet @@ -87,8 +82,7 @@ private: QMutex _packetListenerLock; QHash<PacketType, Listener> _messageListenerMap; - int _inPacketCount = 0; - int _inByteCount = 0; + bool _shouldDropPackets = false; QMutex _directConnectSetMutex; QSet<QObject*> _directlyConnectedObjects; diff --git a/libraries/networking/src/ThreadedAssignment.cpp b/libraries/networking/src/ThreadedAssignment.cpp index 13d4e0bf8b..bdba47f0ed 100644 --- a/libraries/networking/src/ThreadedAssignment.cpp +++ b/libraries/networking/src/ThreadedAssignment.cpp @@ -94,15 +94,11 @@ void ThreadedAssignment::commonInit(const QString& targetName, NodeType_t nodeTy void ThreadedAssignment::addPacketStatsAndSendStatsPacket(QJsonObject statsObject) { auto nodeList = DependencyManager::get<NodeList>(); - float packetsInPerSecond, bytesInPerSecond, packetsOutPerSecond, bytesOutPerSecond; - nodeList->getPacketStats(packetsInPerSecond, bytesInPerSecond, packetsOutPerSecond, bytesOutPerSecond); - nodeList->resetPacketStats(); - QJsonObject ioStats; - ioStats["inbound_bytes_per_s"] = bytesInPerSecond; - ioStats["inbound_packets_per_s"] = packetsInPerSecond; - ioStats["outbound_bytes_per_s"] = bytesOutPerSecond; - ioStats["outbound_packets_per_s"] = packetsOutPerSecond; + ioStats["inbound_kbps"] = nodeList->getInboundKbps(); + ioStats["inbound_pps"] = nodeList->getInboundPPS(); + ioStats["outbound_kbps"] = nodeList->getOutboundKbps(); + ioStats["outbound_pps"] = nodeList->getOutboundPPS(); statsObject["io_stats"] = ioStats; From 94146ab997daba74c94b09392e914fbfc484454b Mon Sep 17 00:00:00 2001 From: Thijs Wenker <me@thoys.nl> Date: Fri, 4 Jan 2019 23:59:22 +0100 Subject: [PATCH 124/230] CR fixes --- interface/src/avatar/AvatarPackager.h | 2 +- libraries/networking/src/AccountManager.h | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/interface/src/avatar/AvatarPackager.h b/interface/src/avatar/AvatarPackager.h index 4416ec5806..ec954a60d7 100644 --- a/interface/src/avatar/AvatarPackager.h +++ b/interface/src/avatar/AvatarPackager.h @@ -69,7 +69,7 @@ public: const QString& textureFolder); Q_INVOKABLE AvatarProjectStatus::AvatarProjectStatus openAvatarProject(const QString& avatarProjectFSTPath); - Q_INVOKABLE bool isValidNewProjectName(const QString& projectPath, const QString& projectName) { + Q_INVOKABLE bool isValidNewProjectName(const QString& projectPath, const QString& projectName) const { return AvatarProject::isValidNewProjectName(projectPath, projectName); } diff --git a/libraries/networking/src/AccountManager.h b/libraries/networking/src/AccountManager.h index b8c3bf0cc4..ca2b826c98 100644 --- a/libraries/networking/src/AccountManager.h +++ b/libraries/networking/src/AccountManager.h @@ -153,15 +153,15 @@ private: QUrl _authURL; DataServerAccountInfo _accountInfo; - bool _isWaitingForTokenRefresh{ false }; - bool _isAgent{ false }; + bool _isWaitingForTokenRefresh { false }; + bool _isAgent { false }; bool _isWaitingForKeypairResponse { false }; QByteArray _pendingPrivateKey; - QUuid _sessionID{ QUuid::createUuid() }; + QUuid _sessionID { QUuid::createUuid() }; - bool _limitedCommerce{ false }; + bool _limitedCommerce { false }; }; #endif // hifi_AccountManager_h From d630fe9dbdeb476356b73c8094ba1732d6bcfd92 Mon Sep 17 00:00:00 2001 From: luiscuenca <luiscuenca@outboxcode.com> Date: Fri, 4 Jan 2019 16:38:48 -0700 Subject: [PATCH 125/230] Add menu checkbox to toggle collisions with other avatars --- interface/resources/qml/hifi/AvatarApp.qml | 3 +- .../resources/qml/hifi/avatarapp/Settings.qml | 73 ++++++++----------- interface/src/avatar/AvatarManager.cpp | 1 + interface/src/avatar/AvatarMotionState.cpp | 5 +- interface/src/avatar/AvatarMotionState.h | 5 +- interface/src/avatar/MyAvatar.cpp | 15 +++- interface/src/avatar/MyAvatar.h | 21 ++++++ interface/src/avatar/OtherAvatar.cpp | 16 +++- interface/src/avatar/OtherAvatar.h | 2 + .../src/avatars-renderer/Avatar.h | 1 + libraries/avatars/src/AvatarData.cpp | 11 ++- libraries/avatars/src/AvatarData.h | 2 + .../networking/src/udt/PacketHeaders.cpp | 1 + libraries/networking/src/udt/PacketHeaders.h | 3 +- scripts/system/avatarapp.js | 13 +++- 15 files changed, 120 insertions(+), 52 deletions(-) diff --git a/interface/resources/qml/hifi/AvatarApp.qml b/interface/resources/qml/hifi/AvatarApp.qml index 57e4db062a..bfa37385a5 100644 --- a/interface/resources/qml/hifi/AvatarApp.qml +++ b/interface/resources/qml/hifi/AvatarApp.qml @@ -254,7 +254,8 @@ Rectangle { onSaveClicked: function() { var avatarSettings = { dominantHand : settings.dominantHandIsLeft ? 'left' : 'right', - collisionsEnabled : settings.avatarCollisionsOn, + collisionsEnabled : settings.environmentCollisionsOn, + otherAvatarsCollisionsEnabled : settings.otherAvatarsCollisionsOn, animGraphOverrideUrl : settings.avatarAnimationOverrideJSON, collisionSoundUrl : settings.avatarCollisionSoundUrl }; diff --git a/interface/resources/qml/hifi/avatarapp/Settings.qml b/interface/resources/qml/hifi/avatarapp/Settings.qml index cd892c17b1..d212186c5e 100644 --- a/interface/resources/qml/hifi/avatarapp/Settings.qml +++ b/interface/resources/qml/hifi/avatarapp/Settings.qml @@ -35,7 +35,8 @@ Rectangle { property real scaleValue: scaleSlider.value / 10 property alias dominantHandIsLeft: leftHandRadioButton.checked - property alias avatarCollisionsOn: collisionsEnabledRadiobutton.checked + property alias otherAvatarsCollisionsOn: otherAvatarsCollisionsEnabledCheckBox.checked + property alias environmentCollisionsOn: environmentCollisionsEnabledCheckBox.checked property alias avatarAnimationOverrideJSON: avatarAnimationUrlInputText.text property alias avatarAnimationJSON: avatarAnimationUrlInputText.placeholderText property alias avatarCollisionSoundUrl: avatarCollisionSoundUrlInputText.text @@ -54,11 +55,11 @@ Rectangle { } else { rightHandRadioButton.checked = true; } - + if (settings.otherAvatarsCollisionsEnabled) { + otherAvatarsCollisionsEnabledCheckBox.checked = true; + } if (settings.collisionsEnabled) { - collisionsEnabledRadiobutton.checked = true; - } else { - collisionsDisabledRadioButton.checked = true; + environmentCollisionsEnabledCheckBox.checked = true; } avatarAnimationJSON = settings.animGraphUrl; @@ -255,55 +256,43 @@ Rectangle { text: "Right" boxSize: 20 } + + HifiConstants { + id: hifi + } // TextStyle9 RalewaySemiBold { size: 17; Layout.row: 1 Layout.column: 0 - - text: "Avatar Collisions" + text: "Avatar collides with other avatars" } - ButtonGroup { - id: onOff - } - - HifiControlsUit.RadioButton { - id: collisionsEnabledRadiobutton - - Layout.row: 1 - Layout.column: 1 - Layout.leftMargin: -40 - ButtonGroup.group: onOff - - colorScheme: hifi.colorSchemes.light - fontSize: 17 - letterSpacing: 1.4 - checked: true - - text: "ON" - boxSize: 20 - } - - HifiConstants { - id: hifi - } - - HifiControlsUit.RadioButton { - id: collisionsDisabledRadioButton - + HifiControlsUit.CheckBox { + id: otherAvatarsCollisionsEnabledCheckBox; + boxSize: 20; Layout.row: 1 Layout.column: 2 - Layout.rightMargin: 20 - - ButtonGroup.group: onOff + Layout.leftMargin: 60 colorScheme: hifi.colorSchemes.light - fontSize: 17 - letterSpacing: 1.4 + } - text: "OFF" - boxSize: 20 + // TextStyle9 + RalewaySemiBold { + size: 17; + Layout.row: 2 + Layout.column: 0 + text: "Avatar collides with environment" + } + + HifiControlsUit.CheckBox { + id: environmentCollisionsEnabledCheckBox; + boxSize: 20; + Layout.row: 2 + Layout.column: 2 + Layout.leftMargin: 60 + colorScheme: hifi.colorSchemes.light } } diff --git a/interface/src/avatar/AvatarManager.cpp b/interface/src/avatar/AvatarManager.cpp index 21e59c06d8..1508581e42 100644 --- a/interface/src/avatar/AvatarManager.cpp +++ b/interface/src/avatar/AvatarManager.cpp @@ -268,6 +268,7 @@ void AvatarManager::updateOtherAvatars(float deltaTime) { if (avatar->getSkeletonModel()->isLoaded()) { // remove the orb if it is there avatar->removeOrb(); + avatar->updateCollisionGroup(_myAvatar->getOtherAvatarsCollisionsEnabled()); if (avatar->needsPhysicsUpdate()) { _avatarsToChangeInPhysics.insert(avatar); } diff --git a/interface/src/avatar/AvatarMotionState.cpp b/interface/src/avatar/AvatarMotionState.cpp index ca67f634c8..3fa59ea967 100644 --- a/interface/src/avatar/AvatarMotionState.cpp +++ b/interface/src/avatar/AvatarMotionState.cpp @@ -19,6 +19,7 @@ AvatarMotionState::AvatarMotionState(OtherAvatarPointer avatar, const btCollisionShape* shape) : ObjectMotionState(shape), _avatar(avatar) { assert(_avatar); _type = MOTIONSTATE_TYPE_AVATAR; + _collisionGroup = BULLET_COLLISION_GROUP_OTHER_AVATAR; cacheShapeDiameter(); } @@ -170,8 +171,8 @@ QUuid AvatarMotionState::getSimulatorID() const { // virtual void AvatarMotionState::computeCollisionGroupAndMask(int32_t& group, int32_t& mask) const { - group = BULLET_COLLISION_GROUP_OTHER_AVATAR; - mask = Physics::getDefaultCollisionMask(group); + group = _collisionGroup; + mask = _collisionGroup == BULLET_COLLISION_GROUP_COLLISIONLESS ? 0 : Physics::getDefaultCollisionMask(group); } // virtual diff --git a/interface/src/avatar/AvatarMotionState.h b/interface/src/avatar/AvatarMotionState.h index 2533c11d56..9d9a6fba2f 100644 --- a/interface/src/avatar/AvatarMotionState.h +++ b/interface/src/avatar/AvatarMotionState.h @@ -66,6 +66,9 @@ public: void addDirtyFlags(uint32_t flags) { _dirtyFlags |= flags; } + void setCollisionGroup(int32_t group) { _collisionGroup = group; } + int32_t getCollisionGroup() { return _collisionGroup; } + virtual void computeCollisionGroupAndMask(int32_t& group, int32_t& mask) const override; virtual float getMass() const override; @@ -87,7 +90,7 @@ protected: OtherAvatarPointer _avatar; float _diameter { 0.0f }; - + uint32_t _collisionGroup; uint32_t _dirtyFlags; }; diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 1f63a904bb..70970e245f 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -3326,7 +3326,6 @@ void MyAvatar::setCollisionsEnabled(bool enabled) { QMetaObject::invokeMethod(this, "setCollisionsEnabled", Q_ARG(bool, enabled)); return; } - _characterController.setCollisionless(!enabled); emit collisionsEnabledChanged(enabled); } @@ -3337,6 +3336,20 @@ bool MyAvatar::getCollisionsEnabled() { return _characterController.computeCollisionGroup() != BULLET_COLLISION_GROUP_COLLISIONLESS; } +void MyAvatar::setOtherAvatarsCollisionsEnabled(bool enabled) { + + if (QThread::currentThread() != thread()) { + QMetaObject::invokeMethod(this, "setOtherAvatarsCollisionsEnabled", Q_ARG(bool, enabled)); + return; + } + _collideWithOtherAvatars = enabled; + emit otherAvatarsCollisionsEnabledChanged(enabled); +} + +bool MyAvatar::getOtherAvatarsCollisionsEnabled() { + return _collideWithOtherAvatars; +} + void MyAvatar::updateCollisionCapsuleCache() { glm::vec3 start, end; float radius; diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 92fe6d4f4a..845f6398a3 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -225,6 +225,7 @@ class MyAvatar : public Avatar { Q_PROPERTY(bool centerOfGravityModelEnabled READ getCenterOfGravityModelEnabled WRITE setCenterOfGravityModelEnabled) Q_PROPERTY(bool hmdLeanRecenterEnabled READ getHMDLeanRecenterEnabled WRITE setHMDLeanRecenterEnabled) Q_PROPERTY(bool collisionsEnabled READ getCollisionsEnabled WRITE setCollisionsEnabled) + Q_PROPERTY(bool otherAvatarsCollisionsEnabled READ getOtherAvatarsCollisionsEnabled WRITE setOtherAvatarsCollisionsEnabled) Q_PROPERTY(bool characterControllerEnabled READ getCharacterControllerEnabled WRITE setCharacterControllerEnabled) Q_PROPERTY(bool useAdvancedMovementControls READ useAdvancedMovementControls WRITE setUseAdvancedMovementControls) Q_PROPERTY(bool showPlayArea READ getShowPlayArea WRITE setShowPlayArea) @@ -1062,6 +1063,18 @@ public: */ Q_INVOKABLE bool getCollisionsEnabled(); + /**jsdoc + * @function MyAvatar.setOtherAvatarsCollisionsEnabled + * @param {boolean} enabled + */ + Q_INVOKABLE void setOtherAvatarsCollisionsEnabled(bool enabled); + + /**jsdoc + * @function MyAvatar.getOtherAvatarsCollisionsEnabled + * @returns {boolean} + */ + Q_INVOKABLE bool getOtherAvatarsCollisionsEnabled(); + /**jsdoc * @function MyAvatar.getCollisionCapsule * @returns {object} @@ -1489,6 +1502,14 @@ signals: */ void collisionsEnabledChanged(bool enabled); + /**jsdoc + * Triggered when collisions with other avatars enabled or disabled + * @function MyAvatar.otherAvatarsCollisionsEnabledChanged + * @param {boolean} enabled + * @returns {Signal} + */ + void otherAvatarsCollisionsEnabledChanged(bool enabled); + /**jsdoc * Triggered when avatar's animation url changes * @function MyAvatar.animGraphUrlChanged diff --git a/interface/src/avatar/OtherAvatar.cpp b/interface/src/avatar/OtherAvatar.cpp index c2687fd525..a71d2478ad 100644 --- a/interface/src/avatar/OtherAvatar.cpp +++ b/interface/src/avatar/OtherAvatar.cpp @@ -120,7 +120,7 @@ bool OtherAvatar::shouldBeInPhysicsSimulation() const { } bool OtherAvatar::needsPhysicsUpdate() const { - constexpr uint32_t FLAGS_OF_INTEREST = Simulation::DIRTY_SHAPE | Simulation::DIRTY_MASS | Simulation::DIRTY_POSITION; + constexpr uint32_t FLAGS_OF_INTEREST = Simulation::DIRTY_SHAPE | Simulation::DIRTY_MASS | Simulation::DIRTY_POSITION | Simulation::DIRTY_COLLISION_GROUP; return (_motionState && (bool)(_motionState->getIncomingDirtyFlags() & FLAGS_OF_INTEREST)); } @@ -129,3 +129,17 @@ void OtherAvatar::rebuildCollisionShape() { _motionState->addDirtyFlags(Simulation::DIRTY_SHAPE | Simulation::DIRTY_MASS); } } + +void OtherAvatar::updateCollisionGroup(bool myAvatarCollide) { + if (_motionState) { + bool collides = _motionState->getCollisionGroup() == BULLET_COLLISION_GROUP_OTHER_AVATAR && myAvatarCollide; + if (_collideWithOtherAvatars != collides) { + if (!myAvatarCollide) { + _collideWithOtherAvatars = false; + } + auto newCollisionGroup = _collideWithOtherAvatars ? BULLET_COLLISION_GROUP_OTHER_AVATAR : BULLET_COLLISION_GROUP_COLLISIONLESS; + _motionState->setCollisionGroup(newCollisionGroup); + _motionState->addDirtyFlags(Simulation::DIRTY_COLLISION_GROUP); + } + } +} \ No newline at end of file diff --git a/interface/src/avatar/OtherAvatar.h b/interface/src/avatar/OtherAvatar.h index 5b72815757..48402fe55c 100644 --- a/interface/src/avatar/OtherAvatar.h +++ b/interface/src/avatar/OtherAvatar.h @@ -45,6 +45,8 @@ public: bool shouldBeInPhysicsSimulation() const; bool needsPhysicsUpdate() const; + void updateCollisionGroup(bool myAvatarCollide); + friend AvatarManager; protected: diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h index a54a74fb93..dffaadf862 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h @@ -552,6 +552,7 @@ protected: glm::vec3 getBodyRightDirection() const { return getWorldOrientation() * IDENTITY_RIGHT; } glm::vec3 getBodyUpDirection() const { return getWorldOrientation() * IDENTITY_UP; } void measureMotionDerivatives(float deltaTime); + bool getCollideWithOtherAvatars() const { return _collideWithOtherAvatars; } float getSkeletonHeight() const; float getHeadHeight() const; diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index ae72725e2e..e72fa3a6eb 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -540,6 +540,10 @@ QByteArray AvatarData::toByteArray(AvatarDataDetail dataDetail, quint64 lastSent if (_headData->getHasProceduralBlinkFaceMovement()) { setAtBit16(flags, PROCEDURAL_BLINK_FACE_MOVEMENT); } + // avatar collisions enabled + if (_collideWithOtherAvatars) { + setAtBit16(flags, COLLIDE_WITH_OTHER_AVATARS); + } data->flags = flags; destinationBuffer += sizeof(AvatarDataPacket::AdditionalFlags); @@ -1116,7 +1120,7 @@ int AvatarData::parseDataFromBuffer(const QByteArray& buffer) { auto newHasAudioEnabledFaceMovement = oneAtBit16(bitItems, AUDIO_ENABLED_FACE_MOVEMENT); auto newHasProceduralEyeFaceMovement = oneAtBit16(bitItems, PROCEDURAL_EYE_FACE_MOVEMENT); auto newHasProceduralBlinkFaceMovement = oneAtBit16(bitItems, PROCEDURAL_BLINK_FACE_MOVEMENT); - + auto newCollideWithOtherAvatars = oneAtBit16(bitItems, COLLIDE_WITH_OTHER_AVATARS); bool keyStateChanged = (_keyState != newKeyState); bool handStateChanged = (_handState != newHandState); @@ -1125,7 +1129,9 @@ int AvatarData::parseDataFromBuffer(const QByteArray& buffer) { bool audioEnableFaceMovementChanged = (_headData->getHasAudioEnabledFaceMovement() != newHasAudioEnabledFaceMovement); bool proceduralEyeFaceMovementChanged = (_headData->getHasProceduralEyeFaceMovement() != newHasProceduralEyeFaceMovement); bool proceduralBlinkFaceMovementChanged = (_headData->getHasProceduralBlinkFaceMovement() != newHasProceduralBlinkFaceMovement); - bool somethingChanged = keyStateChanged || handStateChanged || faceStateChanged || eyeStateChanged || audioEnableFaceMovementChanged || proceduralEyeFaceMovementChanged || proceduralBlinkFaceMovementChanged; + bool collideWithOtherAvatarsChanged = (_collideWithOtherAvatars != newCollideWithOtherAvatars); + bool somethingChanged = keyStateChanged || handStateChanged || faceStateChanged || eyeStateChanged || audioEnableFaceMovementChanged || + proceduralEyeFaceMovementChanged || proceduralBlinkFaceMovementChanged || collideWithOtherAvatarsChanged; _keyState = newKeyState; _handState = newHandState; @@ -1134,6 +1140,7 @@ int AvatarData::parseDataFromBuffer(const QByteArray& buffer) { _headData->setHasAudioEnabledFaceMovement(newHasAudioEnabledFaceMovement); _headData->setHasProceduralEyeFaceMovement(newHasProceduralEyeFaceMovement); _headData->setHasProceduralBlinkFaceMovement(newHasProceduralBlinkFaceMovement); + _collideWithOtherAvatars = newCollideWithOtherAvatars; sourceBuffer += sizeof(AvatarDataPacket::AdditionalFlags); diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index 64b8814149..b42c387f61 100644 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -110,6 +110,7 @@ const int HAND_STATE_FINGER_POINTING_BIT = 7; // 8th bit const int AUDIO_ENABLED_FACE_MOVEMENT = 8; // 9th bit const int PROCEDURAL_EYE_FACE_MOVEMENT = 9; // 10th bit const int PROCEDURAL_BLINK_FACE_MOVEMENT = 10; // 11th bit +const int COLLIDE_WITH_OTHER_AVATARS = 11; // 12th bit const char HAND_STATE_NULL = 0; @@ -1495,6 +1496,7 @@ protected: int _replicaIndex { 0 }; bool _isNewAvatar { true }; bool _isClientAvatar { false }; + bool _collideWithOtherAvatars { true }; // null unless MyAvatar or ScriptableAvatar sending traits data to mixer std::unique_ptr<ClientTraitsHandler, LaterDeleter> _clientTraitsHandler; diff --git a/libraries/networking/src/udt/PacketHeaders.cpp b/libraries/networking/src/udt/PacketHeaders.cpp index 2cc5804d10..736bf6ae8e 100644 --- a/libraries/networking/src/udt/PacketHeaders.cpp +++ b/libraries/networking/src/udt/PacketHeaders.cpp @@ -38,6 +38,7 @@ PacketVersion versionForPacketType(PacketType packetType) { return static_cast<PacketVersion>(EntityQueryPacketVersion::ConicalFrustums); case PacketType::AvatarIdentity: case PacketType::AvatarData: + return static_cast<PacketVersion>(AvatarMixerPacketVersion::CollisionFlag); case PacketType::BulkAvatarData: case PacketType::KillAvatar: return static_cast<PacketVersion>(AvatarMixerPacketVersion::GrabTraits); diff --git a/libraries/networking/src/udt/PacketHeaders.h b/libraries/networking/src/udt/PacketHeaders.h index 62549a7562..2ca8f0240a 100644 --- a/libraries/networking/src/udt/PacketHeaders.h +++ b/libraries/networking/src/udt/PacketHeaders.h @@ -305,7 +305,8 @@ enum class AvatarMixerPacketVersion : PacketVersion { MigrateAvatarEntitiesToTraits, FarGrabJointsRedux, JointTransScaled, - GrabTraits + GrabTraits, + CollisionFlag }; enum class DomainConnectRequestVersion : PacketVersion { diff --git a/scripts/system/avatarapp.js b/scripts/system/avatarapp.js index 65abf791a5..2b9a738202 100644 --- a/scripts/system/avatarapp.js +++ b/scripts/system/avatarapp.js @@ -62,7 +62,8 @@ function getMyAvatar() { function getMyAvatarSettings() { return { dominantHand: MyAvatar.getDominantHand(), - collisionsEnabled : MyAvatar.getCollisionsEnabled(), + collisionsEnabled: MyAvatar.getCollisionsEnabled(), + otherAvatarsCollisionsEnabled: MyAvatar.getOtherAvatarsCollisionsEnabled(), collisionSoundUrl : MyAvatar.collisionSoundURL, animGraphUrl: MyAvatar.getAnimGraphUrl(), animGraphOverrideUrl : MyAvatar.getAnimGraphOverrideUrl(), @@ -135,6 +136,13 @@ function onCollisionsEnabledChanged(enabled) { } } +function onOtherAvatarsCollisionsEnabledChanged(enabled) { + if (currentAvatarSettings.otherAvatarsCollisionsEnabled !== enabled) { + currentAvatarSettings.otherAvatarsCollisionsEnabled = enabled; + sendToQml({ 'method': 'settingChanged', 'name': 'otherAvatarsCollisionsEnabled', 'value': enabled }) + } +} + function onNewCollisionSoundUrl(url) { if(currentAvatarSettings.collisionSoundUrl !== url) { currentAvatarSettings.collisionSoundUrl = url; @@ -323,6 +331,7 @@ function fromQml(message) { // messages are {method, params}, like json-rpc. See currentAvatar.avatarScale = message.avatarScale; MyAvatar.setDominantHand(message.settings.dominantHand); + MyAvatar.setOtherAvatarsCollisionsEnabled(message.settings.otherAvatarsCollisionsEnabled); MyAvatar.setCollisionsEnabled(message.settings.collisionsEnabled); MyAvatar.collisionSoundURL = message.settings.collisionSoundUrl; MyAvatar.setAnimGraphOverrideUrl(message.settings.animGraphOverrideUrl); @@ -513,6 +522,7 @@ function off() { MyAvatar.skeletonModelURLChanged.disconnect(onSkeletonModelURLChanged); MyAvatar.dominantHandChanged.disconnect(onDominantHandChanged); MyAvatar.collisionsEnabledChanged.disconnect(onCollisionsEnabledChanged); + MyAvatar.otherAvatarsCollisionsEnabledChanged.disconnect(onOtherAvatarsCollisionsEnabledChanged); MyAvatar.newCollisionSoundURL.disconnect(onNewCollisionSoundUrl); MyAvatar.animGraphUrlChanged.disconnect(onAnimGraphUrlChanged); MyAvatar.targetScaleChanged.disconnect(onTargetScaleChanged); @@ -533,6 +543,7 @@ function on() { MyAvatar.skeletonModelURLChanged.connect(onSkeletonModelURLChanged); MyAvatar.dominantHandChanged.connect(onDominantHandChanged); MyAvatar.collisionsEnabledChanged.connect(onCollisionsEnabledChanged); + MyAvatar.otherAvatarsCollisionsEnabledChanged.connect(onOtherAvatarsCollisionsEnabledChanged); MyAvatar.newCollisionSoundURL.connect(onNewCollisionSoundUrl); MyAvatar.animGraphUrlChanged.connect(onAnimGraphUrlChanged); MyAvatar.targetScaleChanged.connect(onTargetScaleChanged); From 5ea84fb9527b89d19f531d010ff1d54ee2ec628b Mon Sep 17 00:00:00 2001 From: David Back <davidback@highfidelity.io> Date: Fri, 4 Jan 2019 15:39:27 -0800 Subject: [PATCH 126/230] CR fixes --- libraries/entities/src/EntityScriptingInterface.cpp | 5 ++--- libraries/entities/src/EntityScriptingInterface.h | 4 ++-- scripts/system/edit.js | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp index f8e58a38fb..5e4168382e 100644 --- a/libraries/entities/src/EntityScriptingInterface.cpp +++ b/libraries/entities/src/EntityScriptingInterface.cpp @@ -2273,10 +2273,9 @@ bool EntityScriptingInterface::verifyStaticCertificateProperties(const QUuid& en return result; } -const EntityPropertyInfo EntityScriptingInterface::getPropertyInfo(const QScriptValue& property) const { - const QString name = property.toString(); +const EntityPropertyInfo EntityScriptingInterface::getPropertyInfo(const QString& propertyName) const { EntityPropertyInfo propertyInfo; - EntityItemProperties::getPropertyInfo(name, propertyInfo); + EntityItemProperties::getPropertyInfo(propertyName, propertyInfo); return propertyInfo; } diff --git a/libraries/entities/src/EntityScriptingInterface.h b/libraries/entities/src/EntityScriptingInterface.h index 025c52eadf..0e96cb2d25 100644 --- a/libraries/entities/src/EntityScriptingInterface.h +++ b/libraries/entities/src/EntityScriptingInterface.h @@ -1699,11 +1699,11 @@ public slots: * Get information about entity properties including a minimum to maximum range for numerical properties * as well as property enum value. * @function Entities.getPropertyInfo - * @param {string} property - The property name to get the information for. + * @param {string} propertyName - The name of the property to get the information for. * @returns {Entities.EntityPropertyInfo} The information data including propertyEnum, minimum, and maximum * if the property can be found, otherwise an empty object. */ - Q_INVOKABLE const EntityPropertyInfo getPropertyInfo(const QScriptValue& property) const; + Q_INVOKABLE const EntityPropertyInfo getPropertyInfo(const QString& propertyName) const; signals: /**jsdoc diff --git a/scripts/system/edit.js b/scripts/system/edit.js index b9c26201b5..aec3d8bc0b 100644 --- a/scripts/system/edit.js +++ b/scripts/system/edit.js @@ -420,7 +420,7 @@ const DEFAULT_ENTITY_PROPERTIES = { emitOrientation: { x: 0, y: 0, z: 0, w: 1 }, emitterShouldTrail: true, particleRadius: 0.25, - radiusFinish: 0.1, + radiusStart: 0, radiusSpread: 0, particleColor: { red: 255, From b5b7574c482ad2fbbeb30fe190297d46e8dda7cd Mon Sep 17 00:00:00 2001 From: SamGondelman <samuel_gondelman@alumni.brown.edu> Date: Fri, 4 Jan 2019 15:17:08 -0800 Subject: [PATCH 127/230] set created --- .../src/avatars-renderer/Avatar.cpp | 2 +- .../entities/src/EntityItemProperties.cpp | 53 ++++++++----------- libraries/entities/src/EntityItemProperties.h | 2 +- .../entities/src/EntityPsuedoPropertyFlags.h | 2 - .../entities/src/EntityScriptingInterface.cpp | 9 +--- libraries/entities/src/EntityTree.cpp | 1 - 6 files changed, 26 insertions(+), 43 deletions(-) diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index 50c6301c7f..0676454b29 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -390,7 +390,7 @@ void Avatar::updateAvatarEntities() { QVariantMap asMap = variantProperties.toMap(); QScriptValue scriptProperties = variantMapToScriptValue(asMap, scriptEngine); EntityItemProperties properties; - EntityItemPropertiesFromScriptValueHonorReadOnly(scriptProperties, properties); + EntityItemPropertiesFromScriptValueIgnoreReadOnly(scriptProperties, properties); properties.setEntityHostType(entity::HostType::AVATAR); properties.setOwningAvatarID(getID()); diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 334b61d1b0..d5965311f8 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -63,10 +63,6 @@ void EntityItemProperties::calculateNaturalPosition(const vec3& min, const vec3& _naturalPosition = max - halfDimension; } -void EntityItemProperties::setCreated(QDateTime &v) { - _created = v.toMSecsSinceEpoch() * 1000; // usec per msec -} - void EntityItemProperties::debugDump() const { qCDebug(entities) << "EntityItemProperties..."; qCDebug(entities) << " _type=" << EntityTypes::getEntityTypeName(_type); @@ -1367,11 +1363,6 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool if (!psuedoPropertyFlagsActive || psueudoPropertyFlags.test(EntityPsuedoPropertyFlag::Type)) { COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER_ALWAYS(type, EntityTypes::getEntityTypeName(_type)); } - if (!psuedoPropertyFlagsActive || psueudoPropertyFlags.test(EntityPsuedoPropertyFlag::Created)) { - auto created = QDateTime::fromMSecsSinceEpoch(getCreated() / 1000.0f, Qt::UTC); // usec per msec - created.setTimeSpec(Qt::OffsetFromUTC); - COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER_ALWAYS(created, created.toString(Qt::ISODate)); - } if ((!skipDefaults || _lifetime != defaultEntityProperties._lifetime) && !strictSemantics) { if (!psuedoPropertyFlagsActive || psueudoPropertyFlags.test(EntityPsuedoPropertyFlag::Age)) { COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER_NO_SKIP(age, getAge()); // gettable, but not settable @@ -1400,7 +1391,13 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DIMENSIONS, dimensions); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ROTATION, rotation); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_REGISTRATION_POINT, registrationPoint); - //COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CREATED, created); // handled above + { + COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_CREATED, created, [this]() { + auto created = QDateTime::fromMSecsSinceEpoch(getCreated() / 1000.0f, Qt::UTC); // usec per msec + created.setTimeSpec(Qt::OffsetFromUTC); + return created.toString(Qt::ISODate); + }()); + } COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LAST_EDITED_BY, lastEditedBy); COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_ENTITY_HOST_TYPE, entityHostType, getEntityHostTypeAsString()); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_OWNING_AVATAR_ID, owningAvatarID); @@ -1762,18 +1759,11 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool setType(typeScriptValue.toVariant().toString()); } - if (!honorReadOnly) { - // this is used by the json reader to set things that we don't want javascript to able to affect. - COPY_PROPERTY_FROM_QSCRIPTVALUE_GETTER(created, QDateTime, setCreated, [this]() { - auto result = QDateTime::fromMSecsSinceEpoch(_created / 1000, Qt::UTC); // usec per msec - return result; - }); - // TODO: expose this to QScriptValue for JSON saves? - //COPY_PROPERTY_FROM_QSCRIPTVALUE(simulationOwner, ???, setSimulatorPriority); - } - // Core - // simluationOwner above + if (!honorReadOnly) { + // not handled yet + // COPY_PROPERTY_FROM_QSCRIPTVALUE(simulationOwner, SimulationOwner, setSimulationOwner); + } COPY_PROPERTY_FROM_QSCRIPTVALUE(visible, bool, setVisible); COPY_PROPERTY_FROM_QSCRIPTVALUE(name, QString, setName); COPY_PROPERTY_FROM_QSCRIPTVALUE(locked, bool, setLocked); @@ -1784,10 +1774,15 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool COPY_PROPERTY_FROM_QSCRIPTVALUE(dimensions, vec3, setDimensions); COPY_PROPERTY_FROM_QSCRIPTVALUE(rotation, quat, setRotation); COPY_PROPERTY_FROM_QSCRIPTVALUE(registrationPoint, vec3, setRegistrationPoint); - // created is read only - COPY_PROPERTY_FROM_QSCRIPTVALUE(lastEditedBy, QUuid, setLastEditedBy); - COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(entityHostType, EntityHostType); - COPY_PROPERTY_FROM_QSCRIPTVALUE(owningAvatarID, QUuid, setOwningAvatarID); + if (!honorReadOnly) { + COPY_PROPERTY_FROM_QSCRIPTVALUE_GETTER(created, QDateTime, setCreated, [this]() { + auto result = QDateTime::fromMSecsSinceEpoch(_created / 1000, Qt::UTC); // usec per msec + return result; + }); + COPY_PROPERTY_FROM_QSCRIPTVALUE(lastEditedBy, QUuid, setLastEditedBy); + COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(entityHostType, EntityHostType); + COPY_PROPERTY_FROM_QSCRIPTVALUE(owningAvatarID, QUuid, setOwningAvatarID); + } COPY_PROPERTY_FROM_QSCRIPTVALUE(parentID, QUuid, setParentID); COPY_PROPERTY_FROM_QSCRIPTVALUE(parentJointIndex, quint16, setParentJointIndex); COPY_PROPERTY_FROM_QSCRIPTVALUE(queryAACube, AACube, setQueryAACube); // TODO: should scripts be able to set this? @@ -1813,7 +1808,9 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool COPY_PROPERTY_FROM_QSCRIPTVALUE_GETTER(collisionsWillMove, bool, setDynamic, getDynamic); // legacy support COPY_PROPERTY_FROM_QSCRIPTVALUE(dynamic, bool, setDynamic); COPY_PROPERTY_FROM_QSCRIPTVALUE(collisionSoundURL, QString, setCollisionSoundURL); - COPY_PROPERTY_FROM_QSCRIPTVALUE(actionData, QByteArray, setActionData); // TODO: should scripts be able to set this? + if (!honorReadOnly) { + COPY_PROPERTY_FROM_QSCRIPTVALUE(actionData, QByteArray, setActionData); + } // Cloning COPY_PROPERTY_FROM_QSCRIPTVALUE(cloneable, bool, setCloneable); @@ -3069,10 +3066,6 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int processedBytes += sizeof(lastEdited); properties.setLastEdited(lastEdited); - // NOTE: We intentionally do not send "created" times in edit messages. This is because: - // 1) if the edit is to an existing entity, the created time can not be changed - // 2) if the edit is to a new entity, the created time is the last edited time - // encoded id QUuid editID = QUuid::fromRfc4122(QByteArray::fromRawData(reinterpret_cast<const char*>(dataAt), NUM_BYTES_RFC4122_UUID)); dataAt += NUM_BYTES_RFC4122_UUID; diff --git a/libraries/entities/src/EntityItemProperties.h b/libraries/entities/src/EntityItemProperties.h index b741bb8ca4..05f5cd4b10 100644 --- a/libraries/entities/src/EntityItemProperties.h +++ b/libraries/entities/src/EntityItemProperties.h @@ -381,7 +381,7 @@ public: void setLocationDirty() { _positionChanged = true; _rotationChanged = true; } - void setCreated(QDateTime& v); + void setCreated(QDateTime& v) { _created = v.toMSecsSinceEpoch() * 1000; } bool hasTransformOrVelocityChanges() const; void clearTransformOrVelocityChanges(); diff --git a/libraries/entities/src/EntityPsuedoPropertyFlags.h b/libraries/entities/src/EntityPsuedoPropertyFlags.h index d0af945215..d6326ee1f5 100644 --- a/libraries/entities/src/EntityPsuedoPropertyFlags.h +++ b/libraries/entities/src/EntityPsuedoPropertyFlags.h @@ -23,7 +23,6 @@ namespace EntityPsuedoPropertyFlag { FlagsActive, ID, Type, - Created, Age, AgeAsText, LastEdited, @@ -31,7 +30,6 @@ namespace EntityPsuedoPropertyFlag { OriginalTextures, RenderInfo, ClientOnly, - OwningAvatarID, AvatarEntity, LocalEntity, FaceCamera, diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp index cdeaf120ce..42fb2d23c4 100644 --- a/libraries/entities/src/EntityScriptingInterface.cpp +++ b/libraries/entities/src/EntityScriptingInterface.cpp @@ -492,10 +492,9 @@ QUuid EntityScriptingInterface::addEntity(const EntityItemProperties& properties propertiesWithSimID.setCollisionless(true); } + // the created time will be set in EntityTree::addEntity by recordCreationTime() propertiesWithSimID.setLastEditedBy(sessionID); - propertiesWithSimID.setActionData(QByteArray()); - bool scalesWithParent = propertiesWithSimID.getScalesWithParent(); propertiesWithSimID = convertPropertiesFromScriptSemantics(propertiesWithSimID, scalesWithParent); @@ -676,8 +675,6 @@ QScriptValue EntityScriptingInterface::getMultipleEntityPropertiesInternal(QScri psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::ID); } else if (extendedPropertyString == "type") { psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::Type); - } else if (extendedPropertyString == "created") { - psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::Created); } else if (extendedPropertyString == "age") { psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::Age); } else if (extendedPropertyString == "ageAsText") { @@ -692,8 +689,6 @@ QScriptValue EntityScriptingInterface::getMultipleEntityPropertiesInternal(QScri psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::RenderInfo); } else if (extendedPropertyString == "clientOnly") { psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::ClientOnly); - } else if (extendedPropertyString == "owningAvatarID") { - psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::OwningAvatarID); } else if (extendedPropertyString == "avatarEntity") { psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::AvatarEntity); } else if (extendedPropertyString == "localEntity") { @@ -859,8 +854,6 @@ QUuid EntityScriptingInterface::editEntity(QUuid id, const EntityItemProperties& } properties.setOwningAvatarID(entity->getOwningAvatarID()); - properties.setActionData(entity->getDynamicData()); - // make sure the properties has a type, so that the encode can know which properties to include properties.setType(entity->getType()); diff --git a/libraries/entities/src/EntityTree.cpp b/libraries/entities/src/EntityTree.cpp index c9e855f606..39337e1f37 100644 --- a/libraries/entities/src/EntityTree.cpp +++ b/libraries/entities/src/EntityTree.cpp @@ -1828,7 +1828,6 @@ int EntityTree::processEditPacketData(ReceivedMessage& message, const unsigned c } // this is a new entity... assign a new entityID - properties.setCreated(properties.getLastEdited()); properties.setLastEditedBy(senderNode->getUUID()); startCreate = usecTimestampNow(); EntityItemPointer newEntity = addEntity(entityItemID, properties); From 48dc7ee938eaaca0eacc273a314d58045b90fefc Mon Sep 17 00:00:00 2001 From: Thijs Wenker <me@thoys.nl> Date: Sat, 5 Jan 2019 01:56:28 +0100 Subject: [PATCH 128/230] New color/text entity properties --- scripts/system/html/css/edit-style.css | 12 +- scripts/system/html/js/entityProperties.js | 129 ++++++++++++++++++++- 2 files changed, 132 insertions(+), 9 deletions(-) diff --git a/scripts/system/html/css/edit-style.css b/scripts/system/html/css/edit-style.css index c5979c41e2..6a0e7c8343 100644 --- a/scripts/system/html/css/edit-style.css +++ b/scripts/system/html/css/edit-style.css @@ -956,12 +956,12 @@ div.refresh input[type="button"] { } .draggable-number .left-arrow { top: 3px; - left: 0px; + left: 0; transform: rotate(180deg); } .draggable-number .right-arrow { top: 3px; - right: 0px; + right: 0; } .draggable-number input[type=number] { position: absolute; @@ -995,6 +995,10 @@ div.refresh input[type="button"] { font-size: 15px; } +.rect .rect-row { + margin-bottom: 8px; +} + .row .property { width: auto; display: inline-block; @@ -1602,10 +1606,10 @@ input.rename-entity { margin-left: 4px; margin-right: 10px; } -.fstuple label.red, .fstuple label.x { +.fstuple label.red, .fstuple label.x, .fstuple label.w { color: #C62147; } -.fstuple label.green, .fstuple label.y { +.fstuple label.green, .fstuple label.y, .fstuple label.h { color: #359D85; } .fstuple label.blue, .fstuple label.z { diff --git a/scripts/system/html/js/entityProperties.js b/scripts/system/html/js/entityProperties.js index 78ef8ac313..66dcecc83e 100644 --- a/scripts/system/html/js/entityProperties.js +++ b/scripts/system/html/js/entityProperties.js @@ -140,12 +140,14 @@ const GROUPS = [ step: 0.005, decimals: 4, unit: "m", - propertyID: "lineHeight" + propertyID: "lineHeight", }, { - label: "Face Camera", - type: "bool", - propertyID: "faceCamera" + label: "Billboard Mode", + type: "dropdown", + options: { none: "None", yaw: "Yaw", full: "Full"}, + propertyID: "textBillboardMode", + propertyName: "billboardMode", // actual entity property name }, ] }, @@ -478,6 +480,37 @@ const GROUPS = [ placeholder: "URL", propertyID: "imageURL", }, + { + label: "Color", + type: "color", + propertyID: "imageColor", + propertyName: "color", // actual entity property name + }, + { + label: "Emissive", + type: "bool", + propertyID: "emissive", + }, + { + label: "Sub Image", + type: "rect", + min: 0, + step: 1, + subLabels: [ "x", "y", "w", "h" ], + propertyID: "subImage", + }, + { + label: "Billboard Mode", + type: "dropdown", + options: { none: "None", yaw: "Yaw", full: "Full"}, + propertyID: "imageBillboardMode", + propertyName: "billboardMode", // actual entity property name + }, + { + label: "Keep Aspect Ratio", + type: "bool", + propertyID: "keepAspectRatio", + }, ] }, { @@ -1424,6 +1457,13 @@ const PROPERTY_NAME_DIVISION = { SUBPROPERTY: 2, }; +const RECT_ELEMENTS = { + X_NUMBER: 0, + Y_NUMBER: 1, + WIDTH_NUMBER: 2, + HEIGHT_NUMBER: 3, +}; + const VECTOR_ELEMENTS = { X_NUMBER: 0, Y_NUMBER: 1, @@ -1475,6 +1515,13 @@ function getPropertyInputElement(propertyID) { return property.elInput; case 'number-draggable': return property.elNumber.elInput; + case 'rect': + return { + x: property.elNumberX.elInput, + y: property.elNumberY.elInput, + width: property.elNumberWidth.elInput, + height: property.elNumberHeight.elInput + }; case 'vec3': case 'vec2': return { x: property.elNumberX.elInput, y: property.elNumberY.elInput, z: property.elNumberZ.elInput }; @@ -1564,6 +1611,13 @@ function resetProperties() { } break; } + case 'rect': { + property.elNumberX.setValue(""); + property.elNumberY.setValue(""); + property.elNumberWidth.setValue(""); + property.elNumberHeight.setValue(""); + break; + } case 'vec3': case 'vec2': { property.elNumberX.setValue(""); @@ -1748,7 +1802,7 @@ function createDragStartFunction(property) { function createDragEndFunction(property) { return function() { property.dragging = false; - // send an additonal update post-dragging to consider whole property change from dragStart to dragEnd to be 1 action + // send an additional update post-dragging to consider whole property change from dragStart to dragEnd to be 1 action this.valueChangeFunction(); }; } @@ -1793,6 +1847,18 @@ function createEmitVec3PropertyUpdateFunction(property) { }; } +function createEmitRectPropertyUpdateFunction(property) { + return function() { + let newValue = { + x: property.elNumberX.elInput.value, + y: property.elNumberY.elInput.value, + width: property.elNumberWidth.elInput.value, + height: property.elNumberHeight.elInput.value, + }; + updateProperty(property.name, newValue, property.isParticleProperty); + }; +} + function createEmitColorPropertyUpdateFunction(property) { return function() { emitColorPropertyUpdate(property.name, property.elNumberR.elInput.value, property.elNumberG.elInput.value, @@ -1951,6 +2017,44 @@ function createNumberDraggableProperty(property, elProperty) { return elDraggableNumber; } +function createRectProperty(property, elProperty) { + let propertyData = property.data; + + elProperty.className = "rect"; + + let elXYRow = document.createElement('div'); + elXYRow.className = "rect-row fstuple"; + elProperty.appendChild(elXYRow); + + let elWidthHeightRow = document.createElement('div'); + elWidthHeightRow.className = "rect-row fstuple"; + elProperty.appendChild(elWidthHeightRow); + + + let elNumberX = createTupleNumberInput(property, propertyData.subLabels[RECT_ELEMENTS.X_NUMBER]); + let elNumberY = createTupleNumberInput(property, propertyData.subLabels[RECT_ELEMENTS.Y_NUMBER]); + let elNumberWidth = createTupleNumberInput(property, propertyData.subLabels[RECT_ELEMENTS.WIDTH_NUMBER]); + let elNumberHeight = createTupleNumberInput(property, propertyData.subLabels[RECT_ELEMENTS.HEIGHT_NUMBER]); + + elXYRow.appendChild(elNumberX.elDiv); + elXYRow.appendChild(elNumberY.elDiv); + elWidthHeightRow.appendChild(elNumberWidth.elDiv); + elWidthHeightRow.appendChild(elNumberHeight.elDiv); + + let valueChangeFunction = createEmitRectPropertyUpdateFunction(property); + elNumberX.setValueChangeFunction(valueChangeFunction); + elNumberY.setValueChangeFunction(valueChangeFunction); + elNumberWidth.setValueChangeFunction(valueChangeFunction); + elNumberHeight.setValueChangeFunction(valueChangeFunction); + + let elResult = []; + elResult[RECT_ELEMENTS.X_NUMBER] = elNumberX; + elResult[RECT_ELEMENTS.Y_NUMBER] = elNumberY; + elResult[RECT_ELEMENTS.WIDTH_NUMBER] = elNumberWidth; + elResult[RECT_ELEMENTS.HEIGHT_NUMBER] = elNumberHeight; + return elResult; +} + function createVec3Property(property, elProperty) { let propertyData = property.data; @@ -2273,6 +2377,14 @@ function createProperty(propertyData, propertyElementID, propertyName, propertyI property.elNumber = createNumberDraggableProperty(property, elProperty); break; } + case 'rect': { + let elRect = createRectProperty(property, elProperty); + property.elNumberX = elRect[RECT_ELEMENTS.X_NUMBER]; + property.elNumberY = elRect[RECT_ELEMENTS.Y_NUMBER]; + property.elNumberWidth = elRect[RECT_ELEMENTS.WIDTH_NUMBER]; + property.elNumberHeight = elRect[RECT_ELEMENTS.HEIGHT_NUMBER]; + break; + } case 'vec3': { let elVec3 = createVec3Property(property, elProperty); property.elNumberX = elVec3[VECTOR_ELEMENTS.X_NUMBER]; @@ -3160,6 +3272,7 @@ function loaded() { case 'number-draggable': isPropertyNotNumber = isNaN(propertyValue) || propertyValue === null; break; + case 'rect': case 'vec3': case 'vec2': isPropertyNotNumber = isNaN(propertyValue.x) || propertyValue.x === null; @@ -3202,6 +3315,12 @@ function loaded() { property.elNumber.setValue(value); break; } + case 'rect': + property.elNumberX.setValue(propertyValue.x); + property.elNumberY.setValue(propertyValue.y); + property.elNumberWidth.setValue(propertyValue.width); + property.elNumberHeight.setValue(propertyValue.height); + break; case 'vec3': case 'vec2': { let multiplier = propertyData.multiplier !== undefined ? propertyData.multiplier : 1; From 2a367509cd897f9463083754e1a742ecbad03752 Mon Sep 17 00:00:00 2001 From: luiscuenca <luiscuenca@outboxcode.com> Date: Fri, 4 Jan 2019 18:02:18 -0700 Subject: [PATCH 129/230] Fix warnings --- interface/src/avatar/AvatarMotionState.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/avatar/AvatarMotionState.h b/interface/src/avatar/AvatarMotionState.h index 9d9a6fba2f..3103341622 100644 --- a/interface/src/avatar/AvatarMotionState.h +++ b/interface/src/avatar/AvatarMotionState.h @@ -90,7 +90,7 @@ protected: OtherAvatarPointer _avatar; float _diameter { 0.0f }; - uint32_t _collisionGroup; + int32_t _collisionGroup; uint32_t _dirtyFlags; }; From 26f46e87a3f917477aab8639cbf1ec49012fa35d Mon Sep 17 00:00:00 2001 From: Thijs Wenker <me@thoys.nl> Date: Sat, 5 Jan 2019 02:16:12 +0100 Subject: [PATCH 130/230] new property tooltips --- .../system/assets/data/createAppTooltips.json | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/scripts/system/assets/data/createAppTooltips.json b/scripts/system/assets/data/createAppTooltips.json index 9f77a86dc9..56341acc90 100644 --- a/scripts/system/assets/data/createAppTooltips.json +++ b/scripts/system/assets/data/createAppTooltips.json @@ -20,6 +20,10 @@ "faceCamera": { "tooltip": "If enabled, the entity follows the camera of each user, creating a billboard effect." }, + "textBillboardMode": { + "tooltip": "If enabled, determines how the entity will face the camera.", + "jsPropertyName": "billboardMode" + }, "flyingAllowed": { "tooltip": "If enabled, users can fly in the zone." }, @@ -149,9 +153,25 @@ "originalTextures": { "tooltip": "A JSON string containing the original texture used on the model." }, - "image": { - "tooltip": "The URL for the image source.", - "jsPropertyName": "textures" + "imageURL": { + "tooltip": "The URL for the image source." + }, + "imageColor": { + "tooltip": "The tint to be applied to the image.", + "jsPropertyName": "color" + }, + "emissive": { + "tooltip": "If enabled, the image will display at full brightness." + }, + "subImage": { + "tooltip": "The area of the image that is displayed." + }, + "imageBillboardMode": { + "tooltip": "If enabled, determines how the entity will face the camera.", + "jsPropertyName": "billboardMode" + }, + "keepAspectRatio": { + "tooltip": "If enabled, the image will maintain its original aspect ratio." }, "sourceUrl": { "tooltip": "The URL for the web page source." From 0dc5e7743f2c6fed5f8c71178b7f8832105a916d Mon Sep 17 00:00:00 2001 From: Dante Ruiz <danteruiz102@gmail.com> Date: Fri, 4 Jan 2019 17:49:38 -0800 Subject: [PATCH 131/230] allow mouse pointer to pick against collidable entities --- interface/src/Application.cpp | 3 ++- scripts/system/controllers/controllerDispatcher.js | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index b6b4e8e2a1..a447b369e0 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2284,7 +2284,8 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo // Setup the mouse ray pick and related operators { - auto mouseRayPick = std::make_shared<RayPick>(Vectors::ZERO, Vectors::UP, PickFilter(PickScriptingInterface::PICK_ENTITIES() | PickScriptingInterface::PICK_INCLUDE_NONCOLLIDABLE()), 0.0f, true); + auto mouseRayPick = std::make_shared<RayPick>(Vectors::ZERO, Vectors::UP, PickFilter(PickScriptingInterface::PICK_ENTITIES() | PickScriptingInterface::PICK_INCLUDE_NONCOLLIDABLE() | + PickScriptingInterface::PICK_INCLUDE_COLLIDABLE()), 0.0f, true); mouseRayPick->parentTransform = std::make_shared<MouseTransformNode>(); mouseRayPick->setJointState(PickQuery::JOINT_STATE_MOUSE); auto mouseRayPickID = DependencyManager::get<PickManager>()->addPick(PickQuery::Ray, mouseRayPick); diff --git a/scripts/system/controllers/controllerDispatcher.js b/scripts/system/controllers/controllerDispatcher.js index 2a5cf5a727..edf11647a2 100644 --- a/scripts/system/controllers/controllerDispatcher.js +++ b/scripts/system/controllers/controllerDispatcher.js @@ -455,7 +455,7 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js"); this.leftPointer = this.pointerManager.createPointer(false, PickType.Ray, { joint: "_CAMERA_RELATIVE_CONTROLLER_LEFTHAND", - filter: Picks.PICK_OVERLAYS | Picks.PICK_ENTITIES | Picks.PICK_INCLUDE_NONCOLLIDABLE, + filter: Picks.PICK_OVERLAYS | Picks.PICK_ENTITIES | Picks.PICK_INCLUDE_NONCOLLIDABLE | Picks.PICK_INCLUDE_COLLIDABLE, triggers: [{action: Controller.Standard.LTClick, button: "Focus"}, {action: Controller.Standard.LTClick, button: "Primary"}], posOffset: getGrabPointSphereOffset(Controller.Standard.LeftHand, true), hover: true, @@ -466,7 +466,7 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js"); Keyboard.setLeftHandLaser(this.leftPointer); this.rightPointer = this.pointerManager.createPointer(false, PickType.Ray, { joint: "_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND", - filter: Picks.PICK_OVERLAYS | Picks.PICK_ENTITIES | Picks.PICK_INCLUDE_NONCOLLIDABLE, + filter: Picks.PICK_OVERLAYS | Picks.PICK_ENTITIES | Picks.PICK_INCLUDE_NONCOLLIDABLE | Picks.PICK_INCLUDE_COLLIDABLE, triggers: [{action: Controller.Standard.RTClick, button: "Focus"}, {action: Controller.Standard.RTClick, button: "Primary"}], posOffset: getGrabPointSphereOffset(Controller.Standard.RightHand, true), hover: true, From 6d791a80c28ebd22cd9f596647fed282164fd161 Mon Sep 17 00:00:00 2001 From: Roxanne Skelly <roxanne@highfidelity.io> Date: Fri, 4 Jan 2019 19:04:01 -0800 Subject: [PATCH 132/230] Bump protocol version for BulkAvatarTraits and add some guard code around packet parsing. --- interface/src/Application.cpp | 2 +- libraries/avatars/src/AvatarHashMap.cpp | 29 ++++++++++++------- .../networking/src/udt/PacketHeaders.cpp | 1 + 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 6d870b58d6..04adc376e6 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2057,7 +2057,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo properties["avatar_ping"] = avatarMixerNode ? avatarMixerNode->getPingMs() : -1; properties["asset_ping"] = assetServerNode ? assetServerNode->getPingMs() : -1; properties["messages_ping"] = messagesMixerNode ? messagesMixerNode->getPingMs() : -1; - properties["atp_in_kbps"] = messagesMixerNode ? assetServerNode->getInboundKbps() : 0.0f; + properties["atp_in_kbps"] = assetServerNode ? assetServerNode->getInboundKbps() : 0.0f; auto loadingRequests = ResourceCache::getLoadingRequests(); diff --git a/libraries/avatars/src/AvatarHashMap.cpp b/libraries/avatars/src/AvatarHashMap.cpp index 6a67ef6638..b3add74f9c 100644 --- a/libraries/avatars/src/AvatarHashMap.cpp +++ b/libraries/avatars/src/AvatarHashMap.cpp @@ -330,19 +330,25 @@ void AvatarHashMap::processAvatarIdentityPacket(QSharedPointer<ReceivedMessage> void AvatarHashMap::processBulkAvatarTraits(QSharedPointer<ReceivedMessage> message, SharedNodePointer sendingNode) { AvatarTraits::TraitMessageSequence seq; - message->readPrimitive(&seq); + if (message->getBytesLeftToRead() > sizeof(AvatarTraits::TraitMessageSequence)) { + message->readPrimitive(&seq); - auto traitsAckPacket = NLPacket::create(PacketType::BulkAvatarTraitsAck, sizeof(AvatarTraits::TraitMessageSequence), true); - traitsAckPacket->writePrimitive(seq); - auto nodeList = DependencyManager::get<LimitedNodeList>(); - SharedNodePointer avatarMixer = nodeList->soloNodeOfType(NodeType::AvatarMixer); - if (!avatarMixer.isNull()) { - // we have a mixer to send to, acknowledge that we received these - // traits. - nodeList->sendPacket(std::move(traitsAckPacket), *avatarMixer); + auto traitsAckPacket = NLPacket::create(PacketType::BulkAvatarTraitsAck, sizeof(AvatarTraits::TraitMessageSequence), true); + traitsAckPacket->writePrimitive(seq); + auto nodeList = DependencyManager::get<LimitedNodeList>(); + SharedNodePointer avatarMixer = nodeList->soloNodeOfType(NodeType::AvatarMixer); + if (!avatarMixer.isNull()) { + // we have a mixer to send to, acknowledge that we received these + // traits. + nodeList->sendPacket(std::move(traitsAckPacket), *avatarMixer); + } + } + else { + qWarning() << "No BulkAvatarTraits packet sequence number."; + return; } - while (message->getBytesLeftToRead()) { + while (message->getBytesLeftToRead() >= NUM_BYTES_RFC4122_UUID + sizeof(AvatarTraits::TraitType)) { // read the avatar ID to figure out which avatar this is for auto avatarID = QUuid::fromRfc4122(message->readWithoutCopy(NUM_BYTES_RFC4122_UUID)); @@ -407,6 +413,9 @@ void AvatarHashMap::processBulkAvatarTraits(QSharedPointer<ReceivedMessage> mess message->readPrimitive(&traitType); } } + if (message->getBytesLeftToRead() > 0) { + qWarning() << "Leftover bytes in BulkAvatarTraits message"; + } } void AvatarHashMap::processKillAvatar(QSharedPointer<ReceivedMessage> message, SharedNodePointer sendingNode) { diff --git a/libraries/networking/src/udt/PacketHeaders.cpp b/libraries/networking/src/udt/PacketHeaders.cpp index 45aa0c2b22..a94d45efc9 100644 --- a/libraries/networking/src/udt/PacketHeaders.cpp +++ b/libraries/networking/src/udt/PacketHeaders.cpp @@ -97,6 +97,7 @@ PacketVersion versionForPacketType(PacketType packetType) { case PacketType::EntityQueryInitialResultsComplete: return static_cast<PacketVersion>(EntityVersion::ParticleSpin); case PacketType::BulkAvatarTraitsAck: + case PacketType::BulkAvatarTraits: return static_cast<PacketVersion>(AvatarMixerPacketVersion::AvatarTraitsAck); default: return 22; From 5c750b40c9ee6049f6f0a18d577f9cbd39dbb353 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Sat, 5 Jan 2019 08:03:29 -0800 Subject: [PATCH 133/230] fix copy-n-paste errors in EntityItem::contains() for cylinders --- libraries/entities/src/EntityItem.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index 76dd130f70..d05f087fdb 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -20,6 +20,7 @@ #include <QtNetwork/QNetworkRequest> #include <glm/gtx/transform.hpp> +#include <glm/gtx/component_wise.hpp> #include <BufferParser.h> #include <ByteCountCoding.h> @@ -1714,9 +1715,7 @@ bool EntityItem::contains(const glm::vec3& point) const { // the above cases not yet supported --> fall through to BOX case case SHAPE_TYPE_BOX: { localPoint = glm::abs(localPoint); - return localPoint.x <= NORMALIZED_HALF_SIDE && - localPoint.y <= NORMALIZED_HALF_SIDE && - localPoint.z <= NORMALIZED_HALF_SIDE; + return glm::any(glm::lessThanEqual(localPoint, glm::vec3(NORMALIZED_HALF_SIDE))); } case SHAPE_TYPE_ELLIPSOID: { // since we've transformed into the normalized space this is just a sphere-point intersection test @@ -1726,10 +1725,10 @@ bool EntityItem::contains(const glm::vec3& point) const { return fabsf(localPoint.x) <= NORMALIZED_HALF_SIDE && localPoint.y * localPoint.y + localPoint.z * localPoint.z <= NORMALIZED_RADIUS_SQUARED; case SHAPE_TYPE_CYLINDER_Y: - return fabsf(localPoint.x) <= NORMALIZED_HALF_SIDE && + return fabsf(localPoint.y) <= NORMALIZED_HALF_SIDE && localPoint.z * localPoint.z + localPoint.x * localPoint.x <= NORMALIZED_RADIUS_SQUARED; case SHAPE_TYPE_CYLINDER_Z: - return fabsf(localPoint.x) <= NORMALIZED_HALF_SIDE && + return fabsf(localPoint.z) <= NORMALIZED_HALF_SIDE && localPoint.x * localPoint.x + localPoint.y * localPoint.y <= NORMALIZED_RADIUS_SQUARED; default: return false; From 9e887585fae85fe957fe5f8f39a128858e2294b5 Mon Sep 17 00:00:00 2001 From: Roxanne Skelly <roxanne@roxiware.com> Date: Sat, 5 Jan 2019 13:49:33 -0800 Subject: [PATCH 134/230] Bad write length calculation was causing faults. --- assignment-client/src/avatars/AvatarMixerSlave.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/assignment-client/src/avatars/AvatarMixerSlave.cpp b/assignment-client/src/avatars/AvatarMixerSlave.cpp index 5f24ae1b64..6ad5a4dbf1 100644 --- a/assignment-client/src/avatars/AvatarMixerSlave.cpp +++ b/assignment-client/src/avatars/AvatarMixerSlave.cpp @@ -135,7 +135,7 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis // hold sending more traits until we've been acked that the last one we sent was received if (lastSentVersionRef == lastAckedVersionRef && lastReceivedVersions[traitType] > lastSentVersionRef) { - addTraitsNodeHeader(listeningNodeData, sendingNodeData, traitsPacketList, bytesWritten); + bytesWritten += addTraitsNodeHeader(listeningNodeData, sendingNodeData, traitsPacketList, bytesWritten); // there is an update to this trait, add it to the traits packet bytesWritten += sendingAvatar->packTrait(traitType, traitsPacketList, lastReceivedVersion); // update the last sent version @@ -185,7 +185,7 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis continue; } if (!isDeleted && (sentInstanceIt == sentIDValuePairs.end() || receivedVersion > sentInstanceIt->value)) { - addTraitsNodeHeader(listeningNodeData, sendingNodeData, traitsPacketList, bytesWritten); + bytesWritten += addTraitsNodeHeader(listeningNodeData, sendingNodeData, traitsPacketList, bytesWritten); // this instance version exists and has never been sent or is newer so we need to send it bytesWritten += sendingAvatar->packTraitInstance(traitType, instanceID, traitsPacketList, receivedVersion); @@ -202,7 +202,7 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis pendingTraitVersions.instanceInsert(traitType, instanceID, receivedVersion); } else if (isDeleted && sentInstanceIt != sentIDValuePairs.end() && absoluteReceivedVersion > sentInstanceIt->value) { - addTraitsNodeHeader(listeningNodeData, sendingNodeData, traitsPacketList, bytesWritten); + bytesWritten += addTraitsNodeHeader(listeningNodeData, sendingNodeData, traitsPacketList, bytesWritten); // this instance version was deleted and we haven't sent the delete to this client yet bytesWritten += AvatarTraits::packInstancedTraitDelete(traitType, instanceID, traitsPacketList, absoluteReceivedVersion); From 0a76554d572bb193d4b89461ab4957d4f9849f44 Mon Sep 17 00:00:00 2001 From: Roxanne Skelly <roxanne@roxiware.com> Date: Sat, 5 Jan 2019 14:04:26 -0800 Subject: [PATCH 135/230] Remove debugging code --- libraries/avatars/src/AvatarHashMap.cpp | 29 +++++++++---------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/libraries/avatars/src/AvatarHashMap.cpp b/libraries/avatars/src/AvatarHashMap.cpp index b3add74f9c..6a67ef6638 100644 --- a/libraries/avatars/src/AvatarHashMap.cpp +++ b/libraries/avatars/src/AvatarHashMap.cpp @@ -330,25 +330,19 @@ void AvatarHashMap::processAvatarIdentityPacket(QSharedPointer<ReceivedMessage> void AvatarHashMap::processBulkAvatarTraits(QSharedPointer<ReceivedMessage> message, SharedNodePointer sendingNode) { AvatarTraits::TraitMessageSequence seq; - if (message->getBytesLeftToRead() > sizeof(AvatarTraits::TraitMessageSequence)) { - message->readPrimitive(&seq); + message->readPrimitive(&seq); - auto traitsAckPacket = NLPacket::create(PacketType::BulkAvatarTraitsAck, sizeof(AvatarTraits::TraitMessageSequence), true); - traitsAckPacket->writePrimitive(seq); - auto nodeList = DependencyManager::get<LimitedNodeList>(); - SharedNodePointer avatarMixer = nodeList->soloNodeOfType(NodeType::AvatarMixer); - if (!avatarMixer.isNull()) { - // we have a mixer to send to, acknowledge that we received these - // traits. - nodeList->sendPacket(std::move(traitsAckPacket), *avatarMixer); - } - } - else { - qWarning() << "No BulkAvatarTraits packet sequence number."; - return; + auto traitsAckPacket = NLPacket::create(PacketType::BulkAvatarTraitsAck, sizeof(AvatarTraits::TraitMessageSequence), true); + traitsAckPacket->writePrimitive(seq); + auto nodeList = DependencyManager::get<LimitedNodeList>(); + SharedNodePointer avatarMixer = nodeList->soloNodeOfType(NodeType::AvatarMixer); + if (!avatarMixer.isNull()) { + // we have a mixer to send to, acknowledge that we received these + // traits. + nodeList->sendPacket(std::move(traitsAckPacket), *avatarMixer); } - while (message->getBytesLeftToRead() >= NUM_BYTES_RFC4122_UUID + sizeof(AvatarTraits::TraitType)) { + while (message->getBytesLeftToRead()) { // read the avatar ID to figure out which avatar this is for auto avatarID = QUuid::fromRfc4122(message->readWithoutCopy(NUM_BYTES_RFC4122_UUID)); @@ -413,9 +407,6 @@ void AvatarHashMap::processBulkAvatarTraits(QSharedPointer<ReceivedMessage> mess message->readPrimitive(&traitType); } } - if (message->getBytesLeftToRead() > 0) { - qWarning() << "Leftover bytes in BulkAvatarTraits message"; - } } void AvatarHashMap::processKillAvatar(QSharedPointer<ReceivedMessage> message, SharedNodePointer sendingNode) { From 4b99a795dd78b1d3d4b7daae6d13574768cb5761 Mon Sep 17 00:00:00 2001 From: Dante Ruiz <danteruiz102@gmail.com> Date: Mon, 7 Jan 2019 08:36:23 -0800 Subject: [PATCH 136/230] code review changes --- interface/src/Application.cpp | 3 +-- scripts/system/controllers/controllerDispatcher.js | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index a447b369e0..4dd8595dab 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2284,8 +2284,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo // Setup the mouse ray pick and related operators { - auto mouseRayPick = std::make_shared<RayPick>(Vectors::ZERO, Vectors::UP, PickFilter(PickScriptingInterface::PICK_ENTITIES() | PickScriptingInterface::PICK_INCLUDE_NONCOLLIDABLE() | - PickScriptingInterface::PICK_INCLUDE_COLLIDABLE()), 0.0f, true); + auto mouseRayPick = std::make_shared<RayPick>(Vectors::ZERO, Vectors::UP, PickFilter(PickScriptingInterface::PICK_ENTITIES()), 0.0f, true); mouseRayPick->parentTransform = std::make_shared<MouseTransformNode>(); mouseRayPick->setJointState(PickQuery::JOINT_STATE_MOUSE); auto mouseRayPickID = DependencyManager::get<PickManager>()->addPick(PickQuery::Ray, mouseRayPick); diff --git a/scripts/system/controllers/controllerDispatcher.js b/scripts/system/controllers/controllerDispatcher.js index edf11647a2..2a5cf5a727 100644 --- a/scripts/system/controllers/controllerDispatcher.js +++ b/scripts/system/controllers/controllerDispatcher.js @@ -455,7 +455,7 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js"); this.leftPointer = this.pointerManager.createPointer(false, PickType.Ray, { joint: "_CAMERA_RELATIVE_CONTROLLER_LEFTHAND", - filter: Picks.PICK_OVERLAYS | Picks.PICK_ENTITIES | Picks.PICK_INCLUDE_NONCOLLIDABLE | Picks.PICK_INCLUDE_COLLIDABLE, + filter: Picks.PICK_OVERLAYS | Picks.PICK_ENTITIES | Picks.PICK_INCLUDE_NONCOLLIDABLE, triggers: [{action: Controller.Standard.LTClick, button: "Focus"}, {action: Controller.Standard.LTClick, button: "Primary"}], posOffset: getGrabPointSphereOffset(Controller.Standard.LeftHand, true), hover: true, @@ -466,7 +466,7 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js"); Keyboard.setLeftHandLaser(this.leftPointer); this.rightPointer = this.pointerManager.createPointer(false, PickType.Ray, { joint: "_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND", - filter: Picks.PICK_OVERLAYS | Picks.PICK_ENTITIES | Picks.PICK_INCLUDE_NONCOLLIDABLE | Picks.PICK_INCLUDE_COLLIDABLE, + filter: Picks.PICK_OVERLAYS | Picks.PICK_ENTITIES | Picks.PICK_INCLUDE_NONCOLLIDABLE, triggers: [{action: Controller.Standard.RTClick, button: "Focus"}, {action: Controller.Standard.RTClick, button: "Primary"}], posOffset: getGrabPointSphereOffset(Controller.Standard.RightHand, true), hover: true, From d57e3b57aa4eacd1b0d71718e1cf1bb64edf04dc Mon Sep 17 00:00:00 2001 From: SamGondelman <samuel_gondelman@alumni.brown.edu> Date: Mon, 7 Jan 2019 11:10:36 -0800 Subject: [PATCH 137/230] possible fix for created to/from string --- .../entities/src/EntityItemProperties.cpp | 19 ++++++++----------- libraries/entities/src/EntityItemProperties.h | 3 ++- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index d5965311f8..3e1538e797 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -339,6 +339,12 @@ void EntityItemProperties::setBillboardModeFromString(const QString& materialMap } } +QString EntityItemProperties::getCreatedAsString() const { + auto created = QDateTime::fromMSecsSinceEpoch(getCreated() / 1000.0f, Qt::UTC); // usec per msec + created.setTimeSpec(Qt::OffsetFromUTC); + return created.toString(Qt::ISODate); +} + EntityPropertyFlags EntityItemProperties::getChangedProperties() const { EntityPropertyFlags changedProperties; @@ -1391,13 +1397,7 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DIMENSIONS, dimensions); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ROTATION, rotation); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_REGISTRATION_POINT, registrationPoint); - { - COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_CREATED, created, [this]() { - auto created = QDateTime::fromMSecsSinceEpoch(getCreated() / 1000.0f, Qt::UTC); // usec per msec - created.setTimeSpec(Qt::OffsetFromUTC); - return created.toString(Qt::ISODate); - }()); - } + COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_CREATED, created, getCreatedAsString()); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LAST_EDITED_BY, lastEditedBy); COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_ENTITY_HOST_TYPE, entityHostType, getEntityHostTypeAsString()); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_OWNING_AVATAR_ID, owningAvatarID); @@ -1775,10 +1775,7 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool COPY_PROPERTY_FROM_QSCRIPTVALUE(rotation, quat, setRotation); COPY_PROPERTY_FROM_QSCRIPTVALUE(registrationPoint, vec3, setRegistrationPoint); if (!honorReadOnly) { - COPY_PROPERTY_FROM_QSCRIPTVALUE_GETTER(created, QDateTime, setCreated, [this]() { - auto result = QDateTime::fromMSecsSinceEpoch(_created / 1000, Qt::UTC); // usec per msec - return result; - }); + COPY_PROPERTY_FROM_QSCRIPTVALUE_GETTER(created, QString, setCreatedFromString, getCreatedAsString); COPY_PROPERTY_FROM_QSCRIPTVALUE(lastEditedBy, QUuid, setLastEditedBy); COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(entityHostType, EntityHostType); COPY_PROPERTY_FROM_QSCRIPTVALUE(owningAvatarID, QUuid, setOwningAvatarID); diff --git a/libraries/entities/src/EntityItemProperties.h b/libraries/entities/src/EntityItemProperties.h index 05f5cd4b10..14742a924c 100644 --- a/libraries/entities/src/EntityItemProperties.h +++ b/libraries/entities/src/EntityItemProperties.h @@ -381,7 +381,8 @@ public: void setLocationDirty() { _positionChanged = true; _rotationChanged = true; } - void setCreated(QDateTime& v) { _created = v.toMSecsSinceEpoch() * 1000; } + void setCreatedFromString(QString& v) { _created = QDateTime::fromString(v, Qt::ISODate).toMSecsSinceEpoch() * 1000; } + QString getCreatedAsString() const; bool hasTransformOrVelocityChanges() const; void clearTransformOrVelocityChanges(); From 2f99729905a733df7c39acd1ae0216b28c97282b Mon Sep 17 00:00:00 2001 From: David Back <davidback@highfidelity.io> Date: Mon, 7 Jan 2019 11:31:04 -0800 Subject: [PATCH 138/230] add rect case, fix step rounding --- scripts/system/html/js/draggableNumber.js | 7 ++- scripts/system/html/js/entityProperties.js | 53 +++++++++++++++------- 2 files changed, 41 insertions(+), 19 deletions(-) diff --git a/scripts/system/html/js/draggableNumber.js b/scripts/system/html/js/draggableNumber.js index b1039ed37b..b63b6e4688 100644 --- a/scripts/system/html/js/draggableNumber.js +++ b/scripts/system/html/js/draggableNumber.js @@ -106,7 +106,7 @@ DraggableNumber.prototype = { stepUp: function() { if (!this.isDisabled()) { - this.elInput.stepUp(); + this.elInput.value = parseFloat(this.elInput.value) + this.step; this.inputChange(); if (this.valueChangeFunction) { this.valueChangeFunction(); @@ -116,7 +116,7 @@ DraggableNumber.prototype = { stepDown: function() { if (!this.isDisabled()) { - this.elInput.stepDown(); + this.elInput.value = parseFloat(this.elInput.value) - this.step; this.inputChange(); if (this.valueChangeFunction) { this.valueChangeFunction(); @@ -139,6 +139,7 @@ DraggableNumber.prototype = { }, inputChange: function() { + console.log("DBACK TEST inputChange1 elInput " + this.elInput.value + " elText " + this.elText.firstChild.data + " min " + this.min + " max " + this.max + " step " + this.step); let value = this.elInput.value; if (this.max !== undefined) { value = Math.min(this.max, value); @@ -146,7 +147,9 @@ DraggableNumber.prototype = { if (this.min !== undefined) { value = Math.max(this.min, value); } + console.log("DBACK TEST inputChange2 elInput " + this.elInput.value + " elText " + this.elText.firstChild.data + " min " + this.min + " max " + this.max + " step " + this.step); this.setValue(value); + console.log("DBACK TEST inputChange3 elInput " + this.elInput.value + " elText " + this.elText.firstChild.data + " min " + this.min + " max " + this.max + " step " + this.step); }, inputBlur: function(ev) { diff --git a/scripts/system/html/js/entityProperties.js b/scripts/system/html/js/entityProperties.js index a6c9bde84d..2a1e4d0a4e 100644 --- a/scripts/system/html/js/entityProperties.js +++ b/scripts/system/html/js/entityProperties.js @@ -1947,13 +1947,14 @@ function createNumberProperty(property, elProperty) { } function updateNumberMinMax(property) { - let propertyData = property.data; let elInput = property.elInput; - if (propertyData.min !== undefined) { - elInput.setAttribute("min", propertyData.min); + let min = property.data.min; + let max = property.data.max; + if (min !== undefined) { + elInput.setAttribute("min", min); } - if (propertyData.max !== undefined) { - elInput.setAttribute("max", propertyData.max); + if (max !== undefined) { + elInput.setAttribute("max", max); } } @@ -2029,6 +2030,15 @@ function createRectProperty(property, elProperty) { return elResult; } +function updateRectMinMax(property) { + let min = property.data.min; + let max = property.data.max; + property.elNumberX.updateMinMax(min, max); + property.elNumberY.updateMinMax(min, max); + property.elNumberWidth.updateMinMax(min, max); + property.elNumberHeight.updateMinMax(min, max); +} + function createVec3Property(property, elProperty) { let propertyData = property.data; @@ -2079,11 +2089,12 @@ function createVec2Property(property, elProperty) { } function updateVectorMinMax(property) { - let propertyData = property.data; - property.elNumberX.updateMinMax(propertyData.min, propertyData.max); - property.elNumberY.updateMinMax(propertyData.min, propertyData.max); + let min = property.data.min; + let max = property.data.max; + property.elNumberX.updateMinMax(min, max); + property.elNumberY.updateMinMax(min, max); if (property.elNumberZ) { - property.elNumberZ.updateMinMax(propertyData.min, propertyData.max); + property.elNumberZ.updateMinMax(min, max); } } @@ -3094,7 +3105,7 @@ function loaded() { properties[propertyID] = property; } if (propertyData.type === 'number' || propertyData.type === 'number-draggable' || - propertyData.type === 'vec2' || propertyData.type === 'vec3') { + propertyData.type === 'vec2' || propertyData.type === 'vec3' || propertyData.type === 'rect') { propertyRangeRequests.push(propertyID); } @@ -3473,13 +3484,21 @@ function loaded() { propertyData.max /= multiplier; } } - if (propertyData.type === 'number') { - updateNumberMinMax(properties[property]); - } else if (propertyData.type === 'number-draggable') { - updateNumberDraggableMinMax(properties[property]); - } else if (propertyData.type === 'vec2' || propertyData.type === 'vec3') { - updateVectorMinMax(properties[property]); - } + switch (propertyData.type) { + case 'number': + updateNumberMinMax(properties[property]); + break; + case 'number-draggable': + updateNumberDraggableMinMax(properties[property]); + break; + case 'vec3': + case 'vec2': + updateVectorMinMax(properties[property]); + break; + case 'rect': + updateRectMinMax(properties[property]); + break; + } } } } From 5aa5b997fe9dc785614bf61929c7e7de931af6ab Mon Sep 17 00:00:00 2001 From: David Back <davidback@highfidelity.io> Date: Mon, 7 Jan 2019 11:33:08 -0800 Subject: [PATCH 139/230] remove logs --- scripts/system/html/js/draggableNumber.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/scripts/system/html/js/draggableNumber.js b/scripts/system/html/js/draggableNumber.js index b63b6e4688..0d6af01ebd 100644 --- a/scripts/system/html/js/draggableNumber.js +++ b/scripts/system/html/js/draggableNumber.js @@ -139,7 +139,6 @@ DraggableNumber.prototype = { }, inputChange: function() { - console.log("DBACK TEST inputChange1 elInput " + this.elInput.value + " elText " + this.elText.firstChild.data + " min " + this.min + " max " + this.max + " step " + this.step); let value = this.elInput.value; if (this.max !== undefined) { value = Math.min(this.max, value); @@ -147,9 +146,7 @@ DraggableNumber.prototype = { if (this.min !== undefined) { value = Math.max(this.min, value); } - console.log("DBACK TEST inputChange2 elInput " + this.elInput.value + " elText " + this.elText.firstChild.data + " min " + this.min + " max " + this.max + " step " + this.step); this.setValue(value); - console.log("DBACK TEST inputChange3 elInput " + this.elInput.value + " elText " + this.elText.firstChild.data + " min " + this.min + " max " + this.max + " step " + this.step); }, inputBlur: function(ev) { From 7d9cad3e8e8e53e620862c2789328846fb481977 Mon Sep 17 00:00:00 2001 From: Thijs Wenker <me@thoys.nl> Date: Mon, 7 Jan 2019 20:35:09 +0100 Subject: [PATCH 140/230] CreateApp - Fix active colorPicker to update on selection update --- scripts/system/html/js/entityProperties.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/scripts/system/html/js/entityProperties.js b/scripts/system/html/js/entityProperties.js index 66dcecc83e..5c63e6dd99 100644 --- a/scripts/system/html/js/entityProperties.js +++ b/scripts/system/html/js/entityProperties.js @@ -2151,7 +2151,6 @@ function createColorProperty(property, elProperty) { submit: false, // We don't want to have a submission button onShow: function(colpick) { console.log("Showing"); - $(colorPickerID).attr('active', 'true'); // The original color preview within the picker needs to be updated on show because // prior to the picker being shown we don't have access to the selections' starting color. colorPickers[colorPickerID].colpickSetColor({ @@ -2159,13 +2158,17 @@ function createColorProperty(property, elProperty) { "g": elNumberG.elInput.value, "b": elNumberB.elInput.value }); + + $(colorPickerID).attr('active', 'true'); }, onHide: function(colpick) { $(colorPickerID).attr('active', 'false'); }, onChange: function(hsb, hex, rgb, el) { $(el).css('background-color', '#' + hex); - emitColorPropertyUpdate(propertyName, rgb.r, rgb.g, rgb.b); + if ($(colorPickerID).attr('active') === 'true') { + emitColorPropertyUpdate(propertyName, rgb.r, rgb.g, rgb.b); + } } }); @@ -3351,6 +3354,16 @@ function loaded() { property.elColorPicker.style.backgroundColor = "rgb(" + propertyValue.red + "," + propertyValue.green + "," + propertyValue.blue + ")"; + if ($(property.elColorPicker).attr('active') === 'true') { + $(property.elColorPicker).attr('active', 'false'); + colorPickers['#' + property.elementID].colpickSetColor({ + "r": propertyValue.red, + "g": propertyValue.green, + "b": propertyValue.blue + }); + $(property.elColorPicker).attr('active', 'true'); + } + property.elNumberR.setValue(propertyValue.red); property.elNumberG.setValue(propertyValue.green); property.elNumberB.setValue(propertyValue.blue); From 5cded6938b1af548798783ea856d063ec4e3d2b5 Mon Sep 17 00:00:00 2001 From: SamGondelman <samuel_gondelman@alumni.brown.edu> Date: Mon, 7 Jan 2019 11:55:34 -0800 Subject: [PATCH 141/230] possible fix for texture path --- .../entities-renderer/src/RenderablePolyLineEntityItem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp b/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp index de224103ce..d4a10e551d 100644 --- a/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp @@ -26,7 +26,7 @@ using namespace render::entities; gpu::PipelinePointer PolyLineEntityRenderer::_pipeline = nullptr; -static const QUrl DEFAULT_POLYLINE_TEXTURE = QUrl(PathUtils::resourcesPath() + "images/paintStroke.png"); +static const QUrl DEFAULT_POLYLINE_TEXTURE = PathUtils::resourcesUrl("images/paintStroke.png"); PolyLineEntityRenderer::PolyLineEntityRenderer(const EntityItemPointer& entity) : Parent(entity) { _texture = DependencyManager::get<TextureCache>()->getTexture(DEFAULT_POLYLINE_TEXTURE); From 7823b3d4a3b530e319cfc3d44259fbbe8265185c Mon Sep 17 00:00:00 2001 From: Thijs Wenker <me@thoys.nl> Date: Mon, 7 Jan 2019 21:08:41 +0100 Subject: [PATCH 142/230] clarifying comments --- scripts/system/html/js/entityProperties.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/system/html/js/entityProperties.js b/scripts/system/html/js/entityProperties.js index 5c63e6dd99..3ccc5359ff 100644 --- a/scripts/system/html/js/entityProperties.js +++ b/scripts/system/html/js/entityProperties.js @@ -2159,6 +2159,7 @@ function createColorProperty(property, elProperty) { "b": elNumberB.elInput.value }); + // Set the color picker active after setting the color, otherwise an update will be sent on open. $(colorPickerID).attr('active', 'true'); }, onHide: function(colpick) { @@ -3355,6 +3356,8 @@ function loaded() { propertyValue.green + "," + propertyValue.blue + ")"; if ($(property.elColorPicker).attr('active') === 'true') { + // Set the color picker inactive before setting the color, + // otherwise an update will be sent directly after setting it here. $(property.elColorPicker).attr('active', 'false'); colorPickers['#' + property.elementID].colpickSetColor({ "r": propertyValue.red, From 683e63346964197b77aa57ed0c627305d37032b1 Mon Sep 17 00:00:00 2001 From: David Rowe <david@ctrlaltstudio.com> Date: Tue, 8 Jan 2019 09:18:53 +1300 Subject: [PATCH 143/230] Fix play back of input recording's numeric values --- .../controllers/src/controllers/InputRecorder.cpp | 7 +++++++ .../controllers/src/controllers/InputRecorder.h | 1 + .../src/controllers/UserInputMapper.cpp | 15 +++++++++++++++ .../controllers/impl/endpoints/ActionEndpoint.cpp | 9 +++------ 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/libraries/controllers/src/controllers/InputRecorder.cpp b/libraries/controllers/src/controllers/InputRecorder.cpp index 54d1aaf131..928dbf0521 100644 --- a/libraries/controllers/src/controllers/InputRecorder.cpp +++ b/libraries/controllers/src/controllers/InputRecorder.cpp @@ -297,6 +297,13 @@ namespace controller { return 0.0f; } + InputRecorder::ActionStates InputRecorder::getActionstates() { + if (_actionStateList.size() > 0) { + return _actionStateList[_playCount]; + } + return {}; + } + controller::Pose InputRecorder::getPoseState(const QString& action) { if (_poseStateList.size() > 0) { return _poseStateList[_playCount][action]; diff --git a/libraries/controllers/src/controllers/InputRecorder.h b/libraries/controllers/src/controllers/InputRecorder.h index 9adb8e386f..a0fcb2e87e 100644 --- a/libraries/controllers/src/controllers/InputRecorder.h +++ b/libraries/controllers/src/controllers/InputRecorder.h @@ -45,6 +45,7 @@ namespace controller { void setActionState(const QString& action, float value); void setActionState(const QString& action, const controller::Pose& pose); float getActionState(const QString& action); + ActionStates getActionstates(); controller::Pose getPoseState(const QString& action); QString getSaveDirectory(); void frameTick(); diff --git a/libraries/controllers/src/controllers/UserInputMapper.cpp b/libraries/controllers/src/controllers/UserInputMapper.cpp index e8503d8d1e..33dc37312e 100755 --- a/libraries/controllers/src/controllers/UserInputMapper.cpp +++ b/libraries/controllers/src/controllers/UserInputMapper.cpp @@ -489,6 +489,21 @@ void UserInputMapper::runMappings() { } applyRoutes(_standardRoutes); + InputRecorder* inputRecorder = InputRecorder::getInstance(); + if (inputRecorder->isPlayingback()) { + if (debugRoutes) { + qCDebug(controllers) << "Playing back recording actions"; + } + + // Play back each numeric action even if there is no current route active for the action. + auto actionStates = inputRecorder->getActionstates(); + for (InputRecorder::ActionStates::iterator it = actionStates.begin(); it != actionStates.end(); ++it) { + setActionState((Action)findAction(it->first), it->second); + } + + // Poses are played back in StandardEndpoint. + } + if (debugRoutes) { qCDebug(controllers) << "Done with mappings"; } diff --git a/libraries/controllers/src/controllers/impl/endpoints/ActionEndpoint.cpp b/libraries/controllers/src/controllers/impl/endpoints/ActionEndpoint.cpp index 122af5a30c..58744c468c 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/ActionEndpoint.cpp +++ b/libraries/controllers/src/controllers/impl/endpoints/ActionEndpoint.cpp @@ -18,19 +18,16 @@ using namespace controller; void ActionEndpoint::apply(AxisValue newValue, const Pointer& source) { auto userInputMapper = DependencyManager::get<UserInputMapper>(); InputRecorder* inputRecorder = InputRecorder::getInstance(); - QString actionName; if (inputRecorder->isPlayingback() || inputRecorder->isRecording()) { - actionName = userInputMapper->getActionName(Action(_input.getChannel())); - if (inputRecorder->isPlayingback()) { - newValue = AxisValue(inputRecorder->getActionState(actionName), 0); - } + QString actionName = userInputMapper->getActionName(Action(_input.getChannel())); + inputRecorder->setActionState(actionName, newValue.value); } _currentValue.value += newValue.value; + if (_input != Input::INVALID_INPUT) { userInputMapper->deltaActionState(Action(_input.getChannel()), newValue.value); } - inputRecorder->setActionState(actionName, newValue.value); } void ActionEndpoint::apply(const Pose& value, const Pointer& source) { From fa66ed766dae10acbbf1fb444a435681152409d4 Mon Sep 17 00:00:00 2001 From: SamGondelman <samuel_gondelman@alumni.brown.edu> Date: Mon, 7 Jan 2019 12:31:52 -0800 Subject: [PATCH 144/230] one more try --- libraries/entities/src/EntityItem.cpp | 4 +++- libraries/entities/src/EntityItemProperties.cpp | 1 - libraries/entities/src/EntityItemProperties.h | 3 ++- libraries/entities/src/EntityItemPropertiesMacros.h | 10 ---------- 4 files changed, 5 insertions(+), 13 deletions(-) diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index 77ec215783..8c71499b78 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -901,8 +901,10 @@ int EntityItem::readEntityDataFromBuffer(const unsigned char* data, int bytesLef // from being received by an entity script server running a script that continously updates an entity. // Basically, we'll allow recent changes to the server scripts even if there are local changes to other properties // that have been made more recently. - bool overwriteLocalData = !ignoreServerPacket || (lastEditedFromBufferAdjusted > _serverScriptsChangedTimestamp); + bool oldOverwrite = overwriteLocalData; + overwriteLocalData = !ignoreServerPacket || (lastEditedFromBufferAdjusted > _serverScriptsChangedTimestamp); READ_ENTITY_PROPERTY(PROP_SERVER_SCRIPTS, QString, setServerScripts); + overwriteLocalData = oldOverwrite; } // Certifiable props diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 3e1538e797..4c06d7516c 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -341,7 +341,6 @@ void EntityItemProperties::setBillboardModeFromString(const QString& materialMap QString EntityItemProperties::getCreatedAsString() const { auto created = QDateTime::fromMSecsSinceEpoch(getCreated() / 1000.0f, Qt::UTC); // usec per msec - created.setTimeSpec(Qt::OffsetFromUTC); return created.toString(Qt::ISODate); } diff --git a/libraries/entities/src/EntityItemProperties.h b/libraries/entities/src/EntityItemProperties.h index 14742a924c..58cd78a4ec 100644 --- a/libraries/entities/src/EntityItemProperties.h +++ b/libraries/entities/src/EntityItemProperties.h @@ -21,6 +21,7 @@ #include <QtCore/QObject> #include <QVector> #include <QString> +#include <QDateTime> #include <AACube.h> #include <NumericalConstants.h> @@ -381,7 +382,7 @@ public: void setLocationDirty() { _positionChanged = true; _rotationChanged = true; } - void setCreatedFromString(QString& v) { _created = QDateTime::fromString(v, Qt::ISODate).toMSecsSinceEpoch() * 1000; } + void setCreatedFromString(QString& v) { _created = QDateTime::fromString(v.trimmed(), Qt::ISODate).toMSecsSinceEpoch() * 1000; } QString getCreatedAsString() const; bool hasTransformOrVelocityChanges() const; diff --git a/libraries/entities/src/EntityItemPropertiesMacros.h b/libraries/entities/src/EntityItemPropertiesMacros.h index 76723526db..90dbd68f9f 100644 --- a/libraries/entities/src/EntityItemPropertiesMacros.h +++ b/libraries/entities/src/EntityItemPropertiesMacros.h @@ -13,8 +13,6 @@ #ifndef hifi_EntityItemPropertiesMacros_h #define hifi_EntityItemPropertiesMacros_h -#include <QDateTime> - #include "EntityItemID.h" #include <RegisteredMetaTypes.h> @@ -234,14 +232,6 @@ inline QString QString_convertFromScriptValue(const QScriptValue& v, bool& isVal inline QUuid QUuid_convertFromScriptValue(const QScriptValue& v, bool& isValid) { isValid = true; return v.toVariant().toUuid(); } inline EntityItemID EntityItemID_convertFromScriptValue(const QScriptValue& v, bool& isValid) { isValid = true; return v.toVariant().toUuid(); } - -inline QDateTime QDateTime_convertFromScriptValue(const QScriptValue& v, bool& isValid) { - isValid = true; - auto result = QDateTime::fromString(v.toVariant().toString().trimmed(), Qt::ISODate); - // result.setTimeSpec(Qt::OffsetFromUTC); - return result; -} - inline QByteArray QByteArray_convertFromScriptValue(const QScriptValue& v, bool& isValid) { isValid = true; QString b64 = v.toVariant().toString().trimmed(); From 4210d4a7cd7ab5356dd8629ecdd890703a7fb0a7 Mon Sep 17 00:00:00 2001 From: SamGondelman <samuel_gondelman@alumni.brown.edu> Date: Mon, 7 Jan 2019 13:24:38 -0800 Subject: [PATCH 145/230] write created as quint64 --- libraries/entities/src/EntityItemProperties.cpp | 9 ++------- libraries/entities/src/EntityItemProperties.h | 3 --- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 4c06d7516c..6e12f0a143 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -339,11 +339,6 @@ void EntityItemProperties::setBillboardModeFromString(const QString& materialMap } } -QString EntityItemProperties::getCreatedAsString() const { - auto created = QDateTime::fromMSecsSinceEpoch(getCreated() / 1000.0f, Qt::UTC); // usec per msec - return created.toString(Qt::ISODate); -} - EntityPropertyFlags EntityItemProperties::getChangedProperties() const { EntityPropertyFlags changedProperties; @@ -1396,7 +1391,7 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_DIMENSIONS, dimensions); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_ROTATION, rotation); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_REGISTRATION_POINT, registrationPoint); - COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_CREATED, created, getCreatedAsString()); + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_CREATED, created); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LAST_EDITED_BY, lastEditedBy); COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_ENTITY_HOST_TYPE, entityHostType, getEntityHostTypeAsString()); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_OWNING_AVATAR_ID, owningAvatarID); @@ -1774,7 +1769,7 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool COPY_PROPERTY_FROM_QSCRIPTVALUE(rotation, quat, setRotation); COPY_PROPERTY_FROM_QSCRIPTVALUE(registrationPoint, vec3, setRegistrationPoint); if (!honorReadOnly) { - COPY_PROPERTY_FROM_QSCRIPTVALUE_GETTER(created, QString, setCreatedFromString, getCreatedAsString); + COPY_PROPERTY_FROM_QSCRIPTVALUE(created, quint64, setCreated); COPY_PROPERTY_FROM_QSCRIPTVALUE(lastEditedBy, QUuid, setLastEditedBy); COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(entityHostType, EntityHostType); COPY_PROPERTY_FROM_QSCRIPTVALUE(owningAvatarID, QUuid, setOwningAvatarID); diff --git a/libraries/entities/src/EntityItemProperties.h b/libraries/entities/src/EntityItemProperties.h index 58cd78a4ec..4f7b94edc8 100644 --- a/libraries/entities/src/EntityItemProperties.h +++ b/libraries/entities/src/EntityItemProperties.h @@ -382,9 +382,6 @@ public: void setLocationDirty() { _positionChanged = true; _rotationChanged = true; } - void setCreatedFromString(QString& v) { _created = QDateTime::fromString(v.trimmed(), Qt::ISODate).toMSecsSinceEpoch() * 1000; } - QString getCreatedAsString() const; - bool hasTransformOrVelocityChanges() const; void clearTransformOrVelocityChanges(); bool hasMiscPhysicsChanges() const; From 62dbca6ce7a19a56721913c48dfc18b926cab679 Mon Sep 17 00:00:00 2001 From: SamGondelman <samuel_gondelman@alumni.brown.edu> Date: Mon, 7 Jan 2019 14:08:52 -0800 Subject: [PATCH 146/230] fix export entities --- interface/src/scripting/ClipboardScriptingInterface.cpp | 4 ++-- interface/src/scripting/ClipboardScriptingInterface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/interface/src/scripting/ClipboardScriptingInterface.cpp b/interface/src/scripting/ClipboardScriptingInterface.cpp index c14f4ea895..c0a6b64421 100644 --- a/interface/src/scripting/ClipboardScriptingInterface.cpp +++ b/interface/src/scripting/ClipboardScriptingInterface.cpp @@ -25,12 +25,12 @@ float ClipboardScriptingInterface::getClipboardContentsLargestDimension() { return qApp->getEntityClipboard()->getContentsLargestDimension(); } -bool ClipboardScriptingInterface::exportEntities(const QString& filename, const QVector<EntityItemID>& entityIDs) { +bool ClipboardScriptingInterface::exportEntities(const QString& filename, const QVector<QUuid>& entityIDs) { bool retVal; BLOCKING_INVOKE_METHOD(qApp, "exportEntities", Q_RETURN_ARG(bool, retVal), Q_ARG(const QString&, filename), - Q_ARG(const QVector<EntityItemID>&, entityIDs)); + Q_ARG(const QVector<QUuid>&, entityIDs)); return retVal; } diff --git a/interface/src/scripting/ClipboardScriptingInterface.h b/interface/src/scripting/ClipboardScriptingInterface.h index 60b6ca2e03..f6a0b29779 100644 --- a/interface/src/scripting/ClipboardScriptingInterface.h +++ b/interface/src/scripting/ClipboardScriptingInterface.h @@ -63,7 +63,7 @@ public: * @param {Uuid[]} entityIDs Array of IDs of the entities to export. * @returns {boolean} <code>true</code> if the export was successful, otherwise <code>false</code>. */ - Q_INVOKABLE bool exportEntities(const QString& filename, const QVector<EntityItemID>& entityIDs); + Q_INVOKABLE bool exportEntities(const QString& filename, const QVector<QUuid>& entityIDs); /**jsdoc * Export the entities with centers within a cube to a JSON file. From 791257bd0a63f7e3c9261868f8235671ae0037d4 Mon Sep 17 00:00:00 2001 From: SamGondelman <samuel_gondelman@alumni.brown.edu> Date: Mon, 7 Jan 2019 14:17:01 -0800 Subject: [PATCH 147/230] convert old created to quint --- libraries/entities/src/EntityTree.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libraries/entities/src/EntityTree.cpp b/libraries/entities/src/EntityTree.cpp index 39337e1f37..0957b226e9 100644 --- a/libraries/entities/src/EntityTree.cpp +++ b/libraries/entities/src/EntityTree.cpp @@ -2830,6 +2830,13 @@ bool EntityTree::readFromMap(QVariantMap& map) { properties.setColorSpread({0, 0, 0}); } + if (contentVersion < (int)EntityVersion::FixPropertiesFromCleanup) { + if (entityMap.contains("created")) { + quint64 created = QDateTime::fromString(entityMap["created"].toString().trimmed(), Qt::ISODate).toMSecsSinceEpoch() * 1000; + properties.setCreated(created); + } + } + EntityItemPointer entity = addEntity(entityItemID, properties); if (!entity) { qCDebug(entities) << "adding Entity failed:" << entityItemID << properties.getType(); From f60b272f1134e5a82158ff45bac039cc364b75a4 Mon Sep 17 00:00:00 2001 From: SamGondelman <samuel_gondelman@alumni.brown.edu> Date: Mon, 7 Jan 2019 17:19:18 -0800 Subject: [PATCH 148/230] fix crash --- libraries/networking/src/udt/PacketHeaders.cpp | 2 +- libraries/networking/src/udt/PacketHeaders.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/libraries/networking/src/udt/PacketHeaders.cpp b/libraries/networking/src/udt/PacketHeaders.cpp index cd15e97739..114a0bc930 100644 --- a/libraries/networking/src/udt/PacketHeaders.cpp +++ b/libraries/networking/src/udt/PacketHeaders.cpp @@ -33,7 +33,7 @@ PacketVersion versionForPacketType(PacketType packetType) { case PacketType::EntityEdit: case PacketType::EntityData: case PacketType::EntityPhysics: - return static_cast<PacketVersion>(EntityVersion::FixPropertiesFromCleanup); + return static_cast<PacketVersion>(EntityVersion::FixProtocolVersionBumpMismatch); case PacketType::EntityQuery: return static_cast<PacketVersion>(EntityQueryPacketVersion::ConicalFrustums); case PacketType::AvatarIdentity: diff --git a/libraries/networking/src/udt/PacketHeaders.h b/libraries/networking/src/udt/PacketHeaders.h index 48f4905915..88b52ec4fb 100644 --- a/libraries/networking/src/udt/PacketHeaders.h +++ b/libraries/networking/src/udt/PacketHeaders.h @@ -254,7 +254,8 @@ enum class EntityVersion : PacketVersion { GrabTraits, MorePropertiesCleanup, FixPropertiesFromCleanup, - UpdatedPolyLines + UpdatedPolyLines, + FixProtocolVersionBumpMismatch }; enum class EntityScriptCallMethodVersion : PacketVersion { From 9013eee352c01047d4e7c4a06ea9faf6b42d3ece Mon Sep 17 00:00:00 2001 From: David Back <davidback@highfidelity.io> Date: Fri, 4 Jan 2019 18:31:23 -0800 Subject: [PATCH 149/230] add grid entities to create - icons pending --- .../resources/qml/hifi/tablet/EditTabView.qml | 12 +++++ .../qml/hifi/tablet/EditToolsTabView.qml | 12 +++++ scripts/system/edit.js | 6 +++ scripts/system/html/entityList.html | 1 + scripts/system/html/entityProperties.html | 1 + scripts/system/html/js/entityList.js | 17 +----- scripts/system/html/js/entityProperties.js | 52 ++++++++++++------- scripts/system/html/js/includes.js | 27 ++++++++++ 8 files changed, 95 insertions(+), 33 deletions(-) create mode 100644 scripts/system/html/js/includes.js diff --git a/interface/resources/qml/hifi/tablet/EditTabView.qml b/interface/resources/qml/hifi/tablet/EditTabView.qml index 5959725a6a..21c8756d9a 100644 --- a/interface/resources/qml/hifi/tablet/EditTabView.qml +++ b/interface/resources/qml/hifi/tablet/EditTabView.qml @@ -189,6 +189,18 @@ TabBar { }); editTabView.currentIndex = 2 } + } + + NewEntityButton { + icon: "icons/create-icons/21-cube-01.svg" + text: "GRID" + onClicked: { + editRoot.sendToScript({ + method: "newEntityButtonClicked", + params: { buttonName: "newGridButton" } + }); + editTabView.currentIndex = 2 + } } } diff --git a/interface/resources/qml/hifi/tablet/EditToolsTabView.qml b/interface/resources/qml/hifi/tablet/EditToolsTabView.qml index 6b64520feb..dc062910ca 100644 --- a/interface/resources/qml/hifi/tablet/EditToolsTabView.qml +++ b/interface/resources/qml/hifi/tablet/EditToolsTabView.qml @@ -195,6 +195,18 @@ TabBar { }); editTabView.currentIndex = tabIndex.properties } + } + + NewEntityButton { + icon: "icons/create-icons/21-cube-01.svg" + text: "GRID" + onClicked: { + editRoot.sendToScript({ + method: "newEntityButtonClicked", + params: { buttonName: "newGridButton" } + }); + editTabView.currentIndex = tabIndex.properties + } } } diff --git a/scripts/system/edit.js b/scripts/system/edit.js index 36f9af0ea7..94fca20a9d 100644 --- a/scripts/system/edit.js +++ b/scripts/system/edit.js @@ -892,6 +892,12 @@ var toolBar = (function () { }); addButton("newMaterialButton", createNewEntityDialogButtonCallback("Material")); + + addButton("newGridButton", function () { + createNewEntity({ + type: "Grid", + }); + }); var deactivateCreateIfDesktopWindowsHidden = function() { if (!shouldUseEditTabletApp() && !entityListTool.isVisible() && !createToolsWindow.isVisible()) { diff --git a/scripts/system/html/entityList.html b/scripts/system/html/entityList.html index f9948bc8b0..f525c84cbc 100644 --- a/scripts/system/html/entityList.html +++ b/scripts/system/html/entityList.html @@ -19,6 +19,7 @@ <script type="text/javascript" src="js/listView.js"></script> <script type="text/javascript" src="js/entityListContextMenu.js"></script> <script type="text/javascript" src="js/utils.js"></script> + <script type="text/javascript" src="js/includes.js"></script> <script type="text/javascript" src="js/entityList.js"></script> </head> <body onload='loaded();' id="entity-list-body"> diff --git a/scripts/system/html/entityProperties.html b/scripts/system/html/entityProperties.html index a8bcabbfea..67f03a33a2 100644 --- a/scripts/system/html/entityProperties.html +++ b/scripts/system/html/entityProperties.html @@ -24,6 +24,7 @@ <script type="text/javascript" src="js/createAppTooltip.js"></script> <script type="text/javascript" src="js/draggableNumber.js"></script> <script type="text/javascript" src="js/utils.js"></script> + <script type="text/javascript" src="js/includes.js"></script> <script type="text/javascript" src="js/entityProperties.js"></script> <script src="js/jsoneditor.min.js"></script> </head> diff --git a/scripts/system/html/js/entityList.js b/scripts/system/html/js/entityList.js index 156006619d..12ea6c91d0 100644 --- a/scripts/system/html/js/entityList.js +++ b/scripts/system/html/js/entityList.js @@ -153,22 +153,9 @@ const FILTER_TYPES = [ "PolyLine", "PolyVox", "Text", + "Grid", ]; -const ICON_FOR_TYPE = { - Shape: "n", - Model: "", - Image: "", - Light: "p", - Zone: "o", - Web: "q", - Material: "", - ParticleEffect: "", - PolyLine: "", - PolyVox: "", - Text: "l", -}; - const DOUBLE_CLICK_TIMEOUT = 300; // ms const RENAME_COOLDOWN = 400; // ms @@ -325,7 +312,7 @@ function loaded() { let elSpan = document.createElement('span'); elSpan.setAttribute("class", "typeIcon"); - elSpan.innerHTML = ICON_FOR_TYPE[type]; + elSpan.innerHTML = ENTITY_TYPE_ICON[type]; elLabel.insertBefore(elSpan, elLabel.childNodes[0]); diff --git a/scripts/system/html/js/entityProperties.js b/scripts/system/html/js/entityProperties.js index 3ccc5359ff..863a179d17 100644 --- a/scripts/system/html/js/entityProperties.js +++ b/scripts/system/html/js/entityProperties.js @@ -9,23 +9,6 @@ /* global alert, augmentSpinButtons, clearTimeout, console, document, Element, EventBridge, JSONEditor, openEventBridge, setTimeout, window, _ $ */ - -const ICON_FOR_TYPE = { - Box: "V", - Sphere: "n", - Shape: "n", - ParticleEffect: "", - Model: "", - Web: "q", - Image: "", - Text: "l", - Light: "p", - Zone: "o", - PolyVox: "", - Multiple: "", - PolyLine: "", - Material: "" -}; const DEGREES_TO_RADIANS = Math.PI / 180.0; @@ -44,7 +27,7 @@ const GROUPS = [ { label: NO_SELECTION, type: "icon", - icons: ICON_FOR_TYPE, + icons: ENTITY_TYPE_ICON, propertyID: "type", replaceID: "placeholder-property-type", }, @@ -662,6 +645,38 @@ const GROUPS = [ propertyID: "materialRepeat", }, ] + }, + { + id: "grid", + addToGroup: "base", + properties: [ + { + label: "Color", + type: "color", + propertyID: "color", + }, + { + label: "Follow Camera", + type: "bool", + propertyID: "followCamera", + }, + { + label: "Major Grid Every", + type: "number-draggable", + min: 0, + step: 1, + decimals: 0, + propertyID: "majorGridEvery", + }, + { + label: "Minor Grid Every", + type: "number-draggable", + min: 0, + step: 0.01, + decimals: 2, + propertyID: "minorGridEvery", + }, + ] }, { id: "particles", @@ -1427,6 +1442,7 @@ const GROUPS_PER_TYPE = { 'particles_acceleration', 'particles_spin', 'particles_constraints', 'spatial', 'behavior', 'physics' ], PolyLine: [ 'base', 'spatial', 'behavior', 'collision', 'physics' ], PolyVox: [ 'base', 'spatial', 'behavior', 'collision', 'physics' ], + Grid: [ 'base', 'grid', 'spatial', 'behavior', 'physics' ], Multiple: [ 'base', 'spatial', 'behavior', 'collision', 'physics' ], }; diff --git a/scripts/system/html/js/includes.js b/scripts/system/html/js/includes.js new file mode 100644 index 0000000000..02af65b691 --- /dev/null +++ b/scripts/system/html/js/includes.js @@ -0,0 +1,27 @@ +// +// includes.js +// +// Created by David Back on 3 Jan 2019 +// Copyright 2016 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +const ENTITY_TYPE_ICON = { + Box: "m", + Grid: "V", + Image: "", + Light: "p", + Material: "", + Model: "", + ParticleEffect: "", + PolyVox: "", + PolyLine: "", + Shape: "n", + Sphere: "n", + Text: "l", + Web: "q", + Zone: "o", + Multiple: "", +}; From e0e9a7de15abb7e91e0e96e638d81a4097199b18 Mon Sep 17 00:00:00 2001 From: David Back <davidback@highfidelity.io> Date: Fri, 4 Jan 2019 18:35:00 -0800 Subject: [PATCH 150/230] tabs --- .../resources/qml/hifi/tablet/EditTabView.qml | 4 ++-- .../qml/hifi/tablet/EditToolsTabView.qml | 4 ++-- scripts/system/edit.js | 4 ++-- scripts/system/html/js/entityList.js | 2 +- scripts/system/html/js/entityProperties.js | 16 +++++++-------- scripts/system/html/js/includes.js | 20 +++++++++---------- 6 files changed, 25 insertions(+), 25 deletions(-) diff --git a/interface/resources/qml/hifi/tablet/EditTabView.qml b/interface/resources/qml/hifi/tablet/EditTabView.qml index 21c8756d9a..c6b66ae24d 100644 --- a/interface/resources/qml/hifi/tablet/EditTabView.qml +++ b/interface/resources/qml/hifi/tablet/EditTabView.qml @@ -190,8 +190,8 @@ TabBar { editTabView.currentIndex = 2 } } - - NewEntityButton { + + NewEntityButton { icon: "icons/create-icons/21-cube-01.svg" text: "GRID" onClicked: { diff --git a/interface/resources/qml/hifi/tablet/EditToolsTabView.qml b/interface/resources/qml/hifi/tablet/EditToolsTabView.qml index dc062910ca..9db09cd229 100644 --- a/interface/resources/qml/hifi/tablet/EditToolsTabView.qml +++ b/interface/resources/qml/hifi/tablet/EditToolsTabView.qml @@ -196,8 +196,8 @@ TabBar { editTabView.currentIndex = tabIndex.properties } } - - NewEntityButton { + + NewEntityButton { icon: "icons/create-icons/21-cube-01.svg" text: "GRID" onClicked: { diff --git a/scripts/system/edit.js b/scripts/system/edit.js index 94fca20a9d..2bbbd60c23 100644 --- a/scripts/system/edit.js +++ b/scripts/system/edit.js @@ -892,8 +892,8 @@ var toolBar = (function () { }); addButton("newMaterialButton", createNewEntityDialogButtonCallback("Material")); - - addButton("newGridButton", function () { + + addButton("newGridButton", function () { createNewEntity({ type: "Grid", }); diff --git a/scripts/system/html/js/entityList.js b/scripts/system/html/js/entityList.js index 12ea6c91d0..fdf0993235 100644 --- a/scripts/system/html/js/entityList.js +++ b/scripts/system/html/js/entityList.js @@ -153,7 +153,7 @@ const FILTER_TYPES = [ "PolyLine", "PolyVox", "Text", - "Grid", + "Grid", ]; const DOUBLE_CLICK_TIMEOUT = 300; // ms diff --git a/scripts/system/html/js/entityProperties.js b/scripts/system/html/js/entityProperties.js index 863a179d17..662d883bd2 100644 --- a/scripts/system/html/js/entityProperties.js +++ b/scripts/system/html/js/entityProperties.js @@ -646,7 +646,7 @@ const GROUPS = [ }, ] }, - { + { id: "grid", addToGroup: "base", properties: [ @@ -663,17 +663,17 @@ const GROUPS = [ { label: "Major Grid Every", type: "number-draggable", - min: 0, - step: 1, - decimals: 0, + min: 0, + step: 1, + decimals: 0, propertyID: "majorGridEvery", }, - { + { label: "Minor Grid Every", type: "number-draggable", - min: 0, - step: 0.01, - decimals: 2, + min: 0, + step: 0.01, + decimals: 2, propertyID: "minorGridEvery", }, ] diff --git a/scripts/system/html/js/includes.js b/scripts/system/html/js/includes.js index 02af65b691..4d2c7f2e15 100644 --- a/scripts/system/html/js/includes.js +++ b/scripts/system/html/js/includes.js @@ -10,17 +10,17 @@ const ENTITY_TYPE_ICON = { Box: "m", - Grid: "V", - Image: "", - Light: "p", - Material: "", - Model: "", - ParticleEffect: "", - PolyVox: "", - PolyLine: "", - Shape: "n", + Grid: "V", + Image: "", + Light: "p", + Material: "", + Model: "", + ParticleEffect: "", + PolyVox: "", + PolyLine: "", + Shape: "n", Sphere: "n", - Text: "l", + Text: "l", Web: "q", Zone: "o", Multiple: "", From 7581c77be877bf56f4e1c8bde76b2f170bf90513 Mon Sep 17 00:00:00 2001 From: David Back <davidback@highfidelity.io> Date: Mon, 7 Jan 2019 12:17:40 -0800 Subject: [PATCH 151/230] update tooltips, use Cube icon for now --- scripts/system/assets/data/createAppTooltips.json | 12 +++++++++--- scripts/system/html/js/includes.js | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/scripts/system/assets/data/createAppTooltips.json b/scripts/system/assets/data/createAppTooltips.json index 56341acc90..98e9088e1d 100644 --- a/scripts/system/assets/data/createAppTooltips.json +++ b/scripts/system/assets/data/createAppTooltips.json @@ -17,9 +17,6 @@ "lineHeight": { "tooltip": "The height of each line of text. This determines the size of the text." }, - "faceCamera": { - "tooltip": "If enabled, the entity follows the camera of each user, creating a billboard effect." - }, "textBillboardMode": { "tooltip": "If enabled, determines how the entity will face the camera.", "jsPropertyName": "billboardMode" @@ -356,6 +353,15 @@ "materialMappingRot": { "tooltip": "How much to rotate the material within the parent's UV-space, in degrees." }, + "followCamera": { + "tooltip": "If enabled, the grid is always visible even as the camera moves to another position." + }, + "majorGridEvery": { + "tooltip": "The number of \"Minor Grid Every\" intervals at which to draw a thick grid line." + }, + "minorGridEvery": { + "tooltip": "The real number of meters at which to draw thin grid lines." + }, "id": { "tooltip": "The unique identifier of this entity." }, diff --git a/scripts/system/html/js/includes.js b/scripts/system/html/js/includes.js index 4d2c7f2e15..01fce937bf 100644 --- a/scripts/system/html/js/includes.js +++ b/scripts/system/html/js/includes.js @@ -10,7 +10,7 @@ const ENTITY_TYPE_ICON = { Box: "m", - Grid: "V", + Grid: "m", Image: "", Light: "p", Material: "", From 90e2feb9772829cb5631fcb5e6d7ec16ce6be938 Mon Sep 17 00:00:00 2001 From: David Back <davidback@highfidelity.io> Date: Mon, 7 Jan 2019 14:04:11 -0800 Subject: [PATCH 152/230] replace placeholder icon with real icon from Alan --- interface/resources/fonts/hifi-glyphs.ttf | Bin 33952 -> 34396 bytes .../icons/create-icons/142-grid-01.svg | 12 ++++++++++++ .../resources/qml/hifi/tablet/EditTabView.qml | 2 +- .../qml/hifi/tablet/EditToolsTabView.qml | 2 +- scripts/system/html/js/includes.js | 2 +- 5 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 interface/resources/icons/create-icons/142-grid-01.svg diff --git a/interface/resources/fonts/hifi-glyphs.ttf b/interface/resources/fonts/hifi-glyphs.ttf index c27553333bda29cdfd06e4c1ebdd964b83ff6175..aaeb1d2ace9c0f76f01de9035c05cf1af5f44df3 100644 GIT binary patch delta 935 zcmZ8fOK4L;6g~IlWy~|$p*BgYR&5iTUkx^SdHLA-S=826gMz6jeo9DUUeneTjao}% zsz|L=5qwxbxNuQ$BUOp$Mi4i;QK_yJU39G?-BiSl@|qyxz?^en=AL_oJ9jS$pDznV z5P;<vg8_RwI^wa>`N<hzd>erJ&i3sccm)QGHvnkZy?0|^_p@CEfc68}mmEwC-Fxt$ z2N1pi!dND8V(9m87=ZCQ0H(~qnWI;vrfz^u1E)8r=|rmfo#zvP&j3QInl2{97McUd z0${y5m>+Juzv>1+4*_Z$$R!hB_r09}i~|6L1{1?W_(?|qis*rkB?i;|u5(X-!mM61 zlsl1E7Uq8e#W8^0Tznh>_WGrkUf#9<vjBa4IFQekS;*(E(Pp}>ZK1;yDczwM$ua2W zhRUvAGy#pku&C-G>H%Pa31zplbCFV=p_2?ZajSGhj0j?@t#zt2#U@Ys42Yqdp3-Af zVHISc$?jBw;gB4twOK7on8D7h7F!^s1YOQ0+Vf0ZI|)0pO1LW)3@YKS)_D9>-0SHP zT_%fZMUBN>Q@y@}31W5ivZ`p6(4CESDM~1)BelmjwZ-GnHgEH^HlJBp1dNElPqXwI z2hocpGUx}I^k&VZ$Q2Gc9riWkP=XFS`-k;htz>oBtrpuqY_Z9K%_RTN6)%_7p*Uo# z!>Y*EqU=y)dch>__39uop5{zaIg>n0;vNr|SQ#Y7Rf+MG#CS84c=OuSxT>n>Q>pI~ z<5`Ju{l44HB~}KB@&1aFd-3Ei=uQ*aY*w!q0Bzl<+vUW?@&qBmjF%N{gc)Bdn!!v} z+Og3_*Dgf$DT@+B*f3MkM%eJaq8V)Xq47ek_GYw~hv9=CJ_OJLKcd>!LW3#n^ZNoV z{;2k-;MA@bc4!|94RpKotI$FsU8kv%x46+*vplJ$ll{JA-|^%?IwfX~_ocK$7uL`% OZREmg^WX28&;0>Eq`H{^ delta 552 zcmY+CKWGzC9LGPu%jK*D6>Ev2Q4$g35|X<ireJl^)WOn#T12$rX#OFM4K|gE$z6pY zYMnf!85~R&2SJ4sCqWmtinvI?4s{X1#YHEfa+h0t@O$qA@4YX-&*N=8RG!{fYy{ZB z3Ly&l{DrAjvoZ>u4iK9>eJ0NbH0YFo`1JX-G5z-3ZIDaA%v{}UJd3_?LHPknt7<Mb zwzddC=L#@VoxfGtR(OyAtqV){YGt#u`=WXZ*Z{J%TG=+$jBJ980Y_@}=5nIAzX<XQ zBsae>XTE&z+<<Ti#HgFg4gScix92r<-K>|dRYpHTD-QCev9Q=&d;Tp9?Ez?ad^v&d zk7vFXcb)i6M8O+_17>fyDrWDIOi0%`DOV-yK9MO&;~DrB^8=8ZgnWvj%4N@t5r#?D zX4Z{`CdI9)#}&7)tu8sA+eeefSRGzPCBk~ZVIuqrSR*21&LJz2EHLiHtJ_hD@;cx! zQ3e5PMEUEyv-Ub|tGLHNCx!0M1{rj6&QB{IG4zzKr;LoABRIR$8Mn_mwtZN-Zr{#` g`(-5^_S~F(cMm4l5L5_6yl=qzME}$O?_>7<0Uo1uSpWb4 diff --git a/interface/resources/icons/create-icons/142-grid-01.svg b/interface/resources/icons/create-icons/142-grid-01.svg new file mode 100644 index 0000000000..b4353c1caa --- /dev/null +++ b/interface/resources/icons/create-icons/142-grid-01.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> +<path d="M448.8,273.5c8.3,0,15-6.7,15-15s-6.7-15-15-15h-42.3V137.5h42.3c8.3,0,15-6.7,15-15s-6.7-15-15-15h-42.3V67.1 + c0-8.3-6.7-15-15-15s-15,6.7-15,15v40.3H276.3V67.1c0-8.3-6.7-15-15-15s-15,6.7-15,15v40.3H142.2V67.1c0-8.3-6.7-15-15-15 + s-15,6.7-15,15v40.3H70.9c-8.3,0-15,6.7-15,15s6.7,15,15,15h41.3v106.1H70.9c-8.3,0-15,6.7-15,15s6.7,15,15,15h41.3v104.1H70.9 + c-8.3,0-15,6.7-15,15s6.7,15,15,15h41.3V448c0,8.3,6.7,15,15,15s15-6.7,15-15v-40.3h104.1V448c0,8.3,6.7,15,15,15s15-6.7,15-15 + v-40.3h100.1V448c0,8.3,6.7,15,15,15s15-6.7,15-15v-40.3h42.3c8.3,0,15-6.7,15-15s-6.7-15-15-15h-42.3V273.5H448.8z M376.4,137.5 + v106.1H276.3V137.5H376.4z M142.2,137.5h104.1v106.1H142.2V137.5z M142.2,377.7V273.5h104.1v104.1H142.2z M376.4,377.7H276.3V273.5 + h100.1V377.7z"/> +</svg> diff --git a/interface/resources/qml/hifi/tablet/EditTabView.qml b/interface/resources/qml/hifi/tablet/EditTabView.qml index c6b66ae24d..122d87250c 100644 --- a/interface/resources/qml/hifi/tablet/EditTabView.qml +++ b/interface/resources/qml/hifi/tablet/EditTabView.qml @@ -192,7 +192,7 @@ TabBar { } NewEntityButton { - icon: "icons/create-icons/21-cube-01.svg" + icon: "icons/create-icons/142-grid-01.svg" text: "GRID" onClicked: { editRoot.sendToScript({ diff --git a/interface/resources/qml/hifi/tablet/EditToolsTabView.qml b/interface/resources/qml/hifi/tablet/EditToolsTabView.qml index 9db09cd229..8da2e839ce 100644 --- a/interface/resources/qml/hifi/tablet/EditToolsTabView.qml +++ b/interface/resources/qml/hifi/tablet/EditToolsTabView.qml @@ -198,7 +198,7 @@ TabBar { } NewEntityButton { - icon: "icons/create-icons/21-cube-01.svg" + icon: "icons/create-icons/142-grid-01.svg" text: "GRID" onClicked: { editRoot.sendToScript({ diff --git a/scripts/system/html/js/includes.js b/scripts/system/html/js/includes.js index 01fce937bf..c604115f91 100644 --- a/scripts/system/html/js/includes.js +++ b/scripts/system/html/js/includes.js @@ -10,7 +10,7 @@ const ENTITY_TYPE_ICON = { Box: "m", - Grid: "m", + Grid: "", Image: "", Light: "p", Material: "", From d9e229d38e72a253fc82bee0932869ed48632fd0 Mon Sep 17 00:00:00 2001 From: David Back <davidback@highfidelity.io> Date: Mon, 7 Jan 2019 17:07:28 -0800 Subject: [PATCH 153/230] remove add Grid entity button, fix color --- .../resources/icons/create-icons/142-grid-01.svg | 12 ------------ interface/resources/qml/hifi/tablet/EditTabView.qml | 12 ------------ .../resources/qml/hifi/tablet/EditToolsTabView.qml | 12 ------------ scripts/system/edit.js | 6 ------ scripts/system/html/js/entityProperties.js | 3 ++- 5 files changed, 2 insertions(+), 43 deletions(-) delete mode 100644 interface/resources/icons/create-icons/142-grid-01.svg diff --git a/interface/resources/icons/create-icons/142-grid-01.svg b/interface/resources/icons/create-icons/142-grid-01.svg deleted file mode 100644 index b4353c1caa..0000000000 --- a/interface/resources/icons/create-icons/142-grid-01.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M448.8,273.5c8.3,0,15-6.7,15-15s-6.7-15-15-15h-42.3V137.5h42.3c8.3,0,15-6.7,15-15s-6.7-15-15-15h-42.3V67.1 - c0-8.3-6.7-15-15-15s-15,6.7-15,15v40.3H276.3V67.1c0-8.3-6.7-15-15-15s-15,6.7-15,15v40.3H142.2V67.1c0-8.3-6.7-15-15-15 - s-15,6.7-15,15v40.3H70.9c-8.3,0-15,6.7-15,15s6.7,15,15,15h41.3v106.1H70.9c-8.3,0-15,6.7-15,15s6.7,15,15,15h41.3v104.1H70.9 - c-8.3,0-15,6.7-15,15s6.7,15,15,15h41.3V448c0,8.3,6.7,15,15,15s15-6.7,15-15v-40.3h104.1V448c0,8.3,6.7,15,15,15s15-6.7,15-15 - v-40.3h100.1V448c0,8.3,6.7,15,15,15s15-6.7,15-15v-40.3h42.3c8.3,0,15-6.7,15-15s-6.7-15-15-15h-42.3V273.5H448.8z M376.4,137.5 - v106.1H276.3V137.5H376.4z M142.2,137.5h104.1v106.1H142.2V137.5z M142.2,377.7V273.5h104.1v104.1H142.2z M376.4,377.7H276.3V273.5 - h100.1V377.7z"/> -</svg> diff --git a/interface/resources/qml/hifi/tablet/EditTabView.qml b/interface/resources/qml/hifi/tablet/EditTabView.qml index 122d87250c..5959725a6a 100644 --- a/interface/resources/qml/hifi/tablet/EditTabView.qml +++ b/interface/resources/qml/hifi/tablet/EditTabView.qml @@ -190,18 +190,6 @@ TabBar { editTabView.currentIndex = 2 } } - - NewEntityButton { - icon: "icons/create-icons/142-grid-01.svg" - text: "GRID" - onClicked: { - editRoot.sendToScript({ - method: "newEntityButtonClicked", - params: { buttonName: "newGridButton" } - }); - editTabView.currentIndex = 2 - } - } } HifiControls.Button { diff --git a/interface/resources/qml/hifi/tablet/EditToolsTabView.qml b/interface/resources/qml/hifi/tablet/EditToolsTabView.qml index 8da2e839ce..6b64520feb 100644 --- a/interface/resources/qml/hifi/tablet/EditToolsTabView.qml +++ b/interface/resources/qml/hifi/tablet/EditToolsTabView.qml @@ -196,18 +196,6 @@ TabBar { editTabView.currentIndex = tabIndex.properties } } - - NewEntityButton { - icon: "icons/create-icons/142-grid-01.svg" - text: "GRID" - onClicked: { - editRoot.sendToScript({ - method: "newEntityButtonClicked", - params: { buttonName: "newGridButton" } - }); - editTabView.currentIndex = tabIndex.properties - } - } } HifiControls.Button { diff --git a/scripts/system/edit.js b/scripts/system/edit.js index 2bbbd60c23..36f9af0ea7 100644 --- a/scripts/system/edit.js +++ b/scripts/system/edit.js @@ -892,12 +892,6 @@ var toolBar = (function () { }); addButton("newMaterialButton", createNewEntityDialogButtonCallback("Material")); - - addButton("newGridButton", function () { - createNewEntity({ - type: "Grid", - }); - }); var deactivateCreateIfDesktopWindowsHidden = function() { if (!shouldUseEditTabletApp() && !entityListTool.isVisible() && !createToolsWindow.isVisible()) { diff --git a/scripts/system/html/js/entityProperties.js b/scripts/system/html/js/entityProperties.js index 662d883bd2..b7d64e4009 100644 --- a/scripts/system/html/js/entityProperties.js +++ b/scripts/system/html/js/entityProperties.js @@ -653,7 +653,8 @@ const GROUPS = [ { label: "Color", type: "color", - propertyID: "color", + propertyID: "gridColor", + propertyName: "color", // actual entity property name }, { label: "Follow Camera", From 963269f3f6fc57227745a64ec24b7da3636d9ef2 Mon Sep 17 00:00:00 2001 From: Ken Cooke <ken@highfidelity.io> Date: Tue, 8 Jan 2019 10:50:11 -0800 Subject: [PATCH 154/230] Apply master volume to audio streams when solo is active --- assignment-client/src/audio/AudioMixerSlave.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assignment-client/src/audio/AudioMixerSlave.cpp b/assignment-client/src/audio/AudioMixerSlave.cpp index 7a6ab9c3e2..681d822e11 100644 --- a/assignment-client/src/audio/AudioMixerSlave.cpp +++ b/assignment-client/src/audio/AudioMixerSlave.cpp @@ -504,7 +504,7 @@ void AudioMixerSlave::addStream(AudioMixerClientData::MixableStream& mixableStre float distance = glm::max(glm::length(relativePosition), EPSILON); float azimuth = isEcho ? 0.0f : computeAzimuth(listeningNodeStream, listeningNodeStream, relativePosition); - float gain = 1.0f; + float gain = masterListenerGain; if (!isSoloing) { gain = computeGain(masterListenerGain, listeningNodeStream, *streamToAdd, relativePosition, distance, isEcho); } From 0297d337d57cdb52075b337732a864961ff68162 Mon Sep 17 00:00:00 2001 From: Roxanne Skelly <roxanne@highfidelity.io> Date: Tue, 8 Jan 2019 10:50:16 -0800 Subject: [PATCH 155/230] Add some comments as per CR request --- .../src/avatars/AvatarMixerClientData.h | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/assignment-client/src/avatars/AvatarMixerClientData.h b/assignment-client/src/avatars/AvatarMixerClientData.h index 16054e3458..d1d6dd4d69 100644 --- a/assignment-client/src/avatars/AvatarMixerClientData.h +++ b/assignment-client/src/avatars/AvatarMixerClientData.h @@ -194,12 +194,26 @@ private: AvatarTraits::TraitMessageSequence _currentTraitsMessageSequence{ 0 }; + // Cache of trait versions sent in a given packet (indexed by sequence number) + // When an ack is received, the sequence number in the ack is used to look up + // the sent trait versions and they are copied to _perNodeAckedTraitVersions. + // We remember the data in _perNodePendingTraitVersions instead of requiring + // the client to return all of the versions for each trait it received in a given packet, + // reducing the size of the ack packet. std::unordered_map<AvatarTraits::TraitMessageSequence, PerNodeTraitVersions> _perNodePendingTraitVersions; - std::unordered_map<Node::LocalID, TraitsCheckTimestamp> _lastSentTraitsTimestamps; - PerNodeTraitVersions _perNodeSentTraitVersions; + // Versions of traits that have been acked, which will be compared to incoming + // trait updates. Incoming updates going to a given node will be ignored if + // the ack for the previous packet (containing those versions) has not been + // received. PerNodeTraitVersions _perNodeAckedTraitVersions; + std::unordered_map<Node::LocalID, TraitsCheckTimestamp> _lastSentTraitsTimestamps; + + // cache of traits sent to a node which are compared to incoming traits to + // prevent sending traits that have already been sent. + PerNodeTraitVersions _perNodeSentTraitVersions; + std::atomic_bool _isIgnoreRadiusEnabled { false }; }; From 24022f0ccc8477c2601f35d898c561ecea736906 Mon Sep 17 00:00:00 2001 From: Thijs Wenker <me@thoys.nl> Date: Tue, 8 Jan 2019 20:37:42 +0100 Subject: [PATCH 156/230] add missing Text properties to Create App --- .../system/assets/data/createAppTooltips.json | 18 ++++++++ scripts/system/html/js/entityProperties.js | 46 +++++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/scripts/system/assets/data/createAppTooltips.json b/scripts/system/assets/data/createAppTooltips.json index 98e9088e1d..cb194c9d66 100644 --- a/scripts/system/assets/data/createAppTooltips.json +++ b/scripts/system/assets/data/createAppTooltips.json @@ -11,9 +11,15 @@ "textColor": { "tooltip": "The color of the text." }, + "textAlpha": { + "tooltip": "The alpha of the text." + }, "backgroundColor": { "tooltip": "The color of the background." }, + "backgroundAlpha": { + "tooltip": "The alpha of the background." + }, "lineHeight": { "tooltip": "The height of each line of text. This determines the size of the text." }, @@ -21,6 +27,18 @@ "tooltip": "If enabled, determines how the entity will face the camera.", "jsPropertyName": "billboardMode" }, + "topMargin": { + "tooltip": "The top margin, in meters." + }, + "rightMargin": { + "tooltip": "The right margin, in meters." + }, + "bottomMargin": { + "tooltip": "The bottom margin, in meters." + }, + "leftMargin": { + "tooltip": "The left margin, in meters." + }, "flyingAllowed": { "tooltip": "If enabled, users can fly in the zone." }, diff --git a/scripts/system/html/js/entityProperties.js b/scripts/system/html/js/entityProperties.js index a4322c0941..8b7264eeb1 100644 --- a/scripts/system/html/js/entityProperties.js +++ b/scripts/system/html/js/entityProperties.js @@ -111,11 +111,29 @@ const GROUPS = [ type: "color", propertyID: "textColor", }, + { + label: "Text Alpha", + type: "number-draggable", + min: 0, + max: 1, + step: 0.01, + decimals: 2, + propertyID: "textAlpha", + }, { label: "Background Color", type: "color", propertyID: "backgroundColor", }, + { + label: "Background Alpha", + type: "number-draggable", + min: 0, + max: 1, + step: 0.01, + decimals: 2, + propertyID: "backgroundAlpha", + }, { label: "Line Height", type: "number-draggable", @@ -132,6 +150,34 @@ const GROUPS = [ propertyID: "textBillboardMode", propertyName: "billboardMode", // actual entity property name }, + { + label: "Top Margin", + type: "number-draggable", + step: 0.01, + decimals: 2, + propertyID: "topMargin", + }, + { + label: "Right Margin", + type: "number-draggable", + step: 0.01, + decimals: 2, + propertyID: "rightMargin", + }, + { + label: "Bottom Margin", + type: "number-draggable", + step: 0.01, + decimals: 2, + propertyID: "bottomMargin", + }, + { + label: "Left Margin", + type: "number-draggable", + step: 0.01, + decimals: 2, + propertyID: "leftMargin", + }, ] }, { From 928ea55d9586085c810dd959b4a96f4d6d4b562f Mon Sep 17 00:00:00 2001 From: SamGondelman <samuel_gondelman@alumni.brown.edu> Date: Tue, 8 Jan 2019 11:47:28 -0800 Subject: [PATCH 157/230] fix light crash? --- .../render-utils/src/RenderShadowTask.cpp | 143 +++++++++--------- libraries/render-utils/src/RenderShadowTask.h | 4 +- 2 files changed, 72 insertions(+), 75 deletions(-) diff --git a/libraries/render-utils/src/RenderShadowTask.cpp b/libraries/render-utils/src/RenderShadowTask.cpp index bfa6f5e5d1..5456453d8a 100644 --- a/libraries/render-utils/src/RenderShadowTask.cpp +++ b/libraries/render-utils/src/RenderShadowTask.cpp @@ -61,12 +61,11 @@ void RenderShadowTask::build(JobModel& task, const render::Varying& input, rende // FIXME: calling this here before the zones/lights are drawn during the deferred/forward passes means we're actually using the frames from the previous draw // Fetch the current frame stacks from all the stages // Starting with the Light Frame genreated in previous tasks - - const auto& lightFrame = input.getN<Input>(0); const auto setupOutput = task.addJob<RenderShadowSetup>("ShadowSetup", input); const auto queryResolution = setupOutput.getN<RenderShadowSetup::Output>(1); const auto shadowFrame = setupOutput.getN<RenderShadowSetup::Output>(3); + const auto currentKeyLight = setupOutput.getN<RenderShadowSetup::Output>(4); // Fetch and cull the items from the scene static const auto shadowCasterReceiverFilter = ItemFilter::Builder::visibleWorldItems().withTypeShape().withOpaque().withoutLayered().withTagBits(tagBits, tagMask); @@ -108,7 +107,7 @@ void RenderShadowTask::build(JobModel& task, const render::Varying& input, rende antiFrustum = cascadeFrustums[i - 2]; } - const auto cullInputs = CullShadowBounds::Inputs(sortedShapes, shadowFilter, antiFrustum, lightFrame, cascadeSetupOutput.getN<RenderShadowCascadeSetup::Outputs>(2)).asVarying(); + const auto cullInputs = CullShadowBounds::Inputs(sortedShapes, shadowFilter, antiFrustum, currentKeyLight, cascadeSetupOutput.getN<RenderShadowCascadeSetup::Outputs>(2)).asVarying(); sprintf(jobName, "CullShadowCascade%d", i); const auto culledShadowItemsAndBounds = task.addJob<CullShadowBounds>(jobName, cullInputs); @@ -356,16 +355,17 @@ void RenderShadowSetup::run(const render::RenderContextPointer& renderContext, c _shadowFrameCache->_objects.clear(); output.edit3() = _shadowFrameCache; - if (!lightingModel->isShadowEnabled() || !lightStage->getCurrentKeyLight(lightFrame) || !lightStage->getCurrentKeyLight(lightFrame)->getCastShadows()) { + const auto currentKeyLight = lightStage->getCurrentKeyLight(lightFrame); + if (!lightingModel->isShadowEnabled() || !currentKeyLight || !currentKeyLight->getCastShadows()) { renderContext->taskFlow.abortTask(); return; } + output.edit4() = currentKeyLight; // Cache old render args RenderArgs* args = renderContext->args; output.edit0() = args->_renderMode; - output.edit1() = glm::ivec2(0, 0); // Save main camera frustum *_cameraFrustum = args->getViewFrustum(); output.edit2() = _cameraFrustum; @@ -373,75 +373,72 @@ void RenderShadowSetup::run(const render::RenderContextPointer& renderContext, c if (!_globalShadowObject) { _globalShadowObject = std::make_shared<LightStage::Shadow>(graphics::LightPointer(), SHADOW_MAX_DISTANCE, SHADOW_CASCADE_COUNT); } - - const auto theGlobalLight = lightStage->getCurrentKeyLight(lightFrame); - if (theGlobalLight && theGlobalLight->getCastShadows()) { - _globalShadowObject->setLight(theGlobalLight); - _globalShadowObject->setKeylightFrustum(args->getViewFrustum(), SHADOW_FRUSTUM_NEAR, SHADOW_FRUSTUM_FAR); - auto& firstCascade = _globalShadowObject->getCascade(0); - auto& firstCascadeFrustum = firstCascade.getFrustum(); - unsigned int cascadeIndex; + _globalShadowObject->setLight(currentKeyLight); + _globalShadowObject->setKeylightFrustum(args->getViewFrustum(), SHADOW_FRUSTUM_NEAR, SHADOW_FRUSTUM_FAR); - // Adjust each cascade frustum - for (cascadeIndex = 0; cascadeIndex < _globalShadowObject->getCascadeCount(); ++cascadeIndex) { - auto& bias = _bias[cascadeIndex]; - _globalShadowObject->setKeylightCascadeFrustum(cascadeIndex, args->getViewFrustum(), - SHADOW_FRUSTUM_NEAR, SHADOW_FRUSTUM_FAR, - bias._constant, bias._slope); - } + auto& firstCascade = _globalShadowObject->getCascade(0); + auto& firstCascadeFrustum = firstCascade.getFrustum(); + unsigned int cascadeIndex; - _shadowFrameCache->pushShadow(_globalShadowObject); - - // Now adjust coarse frustum bounds - auto frustumPosition = firstCascadeFrustum->getPosition(); - auto farTopLeft = firstCascadeFrustum->getFarTopLeft() - frustumPosition; - auto farBottomRight = firstCascadeFrustum->getFarBottomRight() - frustumPosition; - - auto left = glm::dot(farTopLeft, firstCascadeFrustum->getRight()); - auto right = glm::dot(farBottomRight, firstCascadeFrustum->getRight()); - auto top = glm::dot(farTopLeft, firstCascadeFrustum->getUp()); - auto bottom = glm::dot(farBottomRight, firstCascadeFrustum->getUp()); - auto near = firstCascadeFrustum->getNearClip(); - auto far = firstCascadeFrustum->getFarClip(); - - for (cascadeIndex = 1; cascadeIndex < _globalShadowObject->getCascadeCount(); ++cascadeIndex) { - auto& cascadeFrustum = _globalShadowObject->getCascade(cascadeIndex).getFrustum(); - - farTopLeft = cascadeFrustum->getFarTopLeft() - frustumPosition; - farBottomRight = cascadeFrustum->getFarBottomRight() - frustumPosition; - - auto cascadeLeft = glm::dot(farTopLeft, cascadeFrustum->getRight()); - auto cascadeRight = glm::dot(farBottomRight, cascadeFrustum->getRight()); - auto cascadeTop = glm::dot(farTopLeft, cascadeFrustum->getUp()); - auto cascadeBottom = glm::dot(farBottomRight, cascadeFrustum->getUp()); - auto cascadeNear = cascadeFrustum->getNearClip(); - auto cascadeFar = cascadeFrustum->getFarClip(); - left = glm::min(left, cascadeLeft); - right = glm::max(right, cascadeRight); - bottom = glm::min(bottom, cascadeBottom); - top = glm::max(top, cascadeTop); - near = glm::min(near, cascadeNear); - far = glm::max(far, cascadeFar); - } - - _coarseShadowFrustum->setPosition(firstCascadeFrustum->getPosition()); - _coarseShadowFrustum->setOrientation(firstCascadeFrustum->getOrientation()); - _coarseShadowFrustum->setProjection(glm::ortho<float>(left, right, bottom, top, near, far)); - _coarseShadowFrustum->calculate(); - - // Push frustum for further culling and selection - args->pushViewFrustum(*_coarseShadowFrustum); - - args->_renderMode = RenderArgs::SHADOW_RENDER_MODE; - - // We want for the octree query enough resolution to catch the details in the lowest cascade. So compute - // the desired resolution for the first cascade frustum and extrapolate it to the coarse frustum. - glm::ivec2 queryResolution = firstCascade.framebuffer->getSize(); - queryResolution.x = int(queryResolution.x * _coarseShadowFrustum->getWidth() / firstCascadeFrustum->getWidth()); - queryResolution.y = int(queryResolution.y * _coarseShadowFrustum->getHeight() / firstCascadeFrustum->getHeight()); - output.edit1() = queryResolution; + // Adjust each cascade frustum + for (cascadeIndex = 0; cascadeIndex < _globalShadowObject->getCascadeCount(); ++cascadeIndex) { + auto& bias = _bias[cascadeIndex]; + _globalShadowObject->setKeylightCascadeFrustum(cascadeIndex, args->getViewFrustum(), + SHADOW_FRUSTUM_NEAR, SHADOW_FRUSTUM_FAR, + bias._constant, bias._slope); } + + _shadowFrameCache->pushShadow(_globalShadowObject); + + // Now adjust coarse frustum bounds + auto frustumPosition = firstCascadeFrustum->getPosition(); + auto farTopLeft = firstCascadeFrustum->getFarTopLeft() - frustumPosition; + auto farBottomRight = firstCascadeFrustum->getFarBottomRight() - frustumPosition; + + auto left = glm::dot(farTopLeft, firstCascadeFrustum->getRight()); + auto right = glm::dot(farBottomRight, firstCascadeFrustum->getRight()); + auto top = glm::dot(farTopLeft, firstCascadeFrustum->getUp()); + auto bottom = glm::dot(farBottomRight, firstCascadeFrustum->getUp()); + auto near = firstCascadeFrustum->getNearClip(); + auto far = firstCascadeFrustum->getFarClip(); + + for (cascadeIndex = 1; cascadeIndex < _globalShadowObject->getCascadeCount(); ++cascadeIndex) { + auto& cascadeFrustum = _globalShadowObject->getCascade(cascadeIndex).getFrustum(); + + farTopLeft = cascadeFrustum->getFarTopLeft() - frustumPosition; + farBottomRight = cascadeFrustum->getFarBottomRight() - frustumPosition; + + auto cascadeLeft = glm::dot(farTopLeft, cascadeFrustum->getRight()); + auto cascadeRight = glm::dot(farBottomRight, cascadeFrustum->getRight()); + auto cascadeTop = glm::dot(farTopLeft, cascadeFrustum->getUp()); + auto cascadeBottom = glm::dot(farBottomRight, cascadeFrustum->getUp()); + auto cascadeNear = cascadeFrustum->getNearClip(); + auto cascadeFar = cascadeFrustum->getFarClip(); + left = glm::min(left, cascadeLeft); + right = glm::max(right, cascadeRight); + bottom = glm::min(bottom, cascadeBottom); + top = glm::max(top, cascadeTop); + near = glm::min(near, cascadeNear); + far = glm::max(far, cascadeFar); + } + + _coarseShadowFrustum->setPosition(firstCascadeFrustum->getPosition()); + _coarseShadowFrustum->setOrientation(firstCascadeFrustum->getOrientation()); + _coarseShadowFrustum->setProjection(glm::ortho<float>(left, right, bottom, top, near, far)); + _coarseShadowFrustum->calculate(); + + // Push frustum for further culling and selection + args->pushViewFrustum(*_coarseShadowFrustum); + + args->_renderMode = RenderArgs::SHADOW_RENDER_MODE; + + // We want for the octree query enough resolution to catch the details in the lowest cascade. So compute + // the desired resolution for the first cascade frustum and extrapolate it to the coarse frustum. + glm::ivec2 queryResolution = firstCascade.framebuffer->getSize(); + queryResolution.x = int(queryResolution.x * _coarseShadowFrustum->getWidth() / firstCascadeFrustum->getWidth()); + queryResolution.y = int(queryResolution.y * _coarseShadowFrustum->getHeight() / firstCascadeFrustum->getHeight()); + output.edit1() = queryResolution; } void RenderShadowCascadeSetup::run(const render::RenderContextPointer& renderContext, const Inputs& input, Outputs& output) { @@ -539,20 +536,20 @@ void CullShadowBounds::run(const render::RenderContextPointer& renderContext, co outShapes.clear(); outBounds = AABox(); - const auto& lightFrame = *inputs.get3(); + const auto currentKeyLight = inputs.get3(); auto cullFunctor = inputs.get4(); render::CullFunctor shadowCullFunctor = [cullFunctor](const RenderArgs* args, const AABox& bounds) { return cullFunctor(args, bounds); }; - if (!filter.selectsNothing()) { + if (!filter.selectsNothing() && currentKeyLight) { auto& details = args->_details.edit(RenderDetails::SHADOW); render::CullTest test(shadowCullFunctor, args, details, antiFrustum); auto scene = args->_scene; auto lightStage = renderContext->_scene->getStage<LightStage>(); assert(lightStage); - const auto globalLightDir = lightStage->getCurrentKeyLight(lightFrame)->getDirection(); + const auto globalLightDir = currentKeyLight->getDirection(); auto castersFilter = render::ItemFilter::Builder(filter).withShadowCaster().build(); const auto& receiversFilter = filter; diff --git a/libraries/render-utils/src/RenderShadowTask.h b/libraries/render-utils/src/RenderShadowTask.h index 271c3e8200..7e7d59763e 100644 --- a/libraries/render-utils/src/RenderShadowTask.h +++ b/libraries/render-utils/src/RenderShadowTask.h @@ -104,7 +104,7 @@ signals: class RenderShadowSetup { public: using Input = RenderShadowTask::Input; - using Output = render::VaryingSet4<RenderArgs::RenderMode, glm::ivec2, ViewFrustumPointer, LightStage::ShadowFramePointer>; + using Output = render::VaryingSet5<RenderArgs::RenderMode, glm::ivec2, ViewFrustumPointer, LightStage::ShadowFramePointer, graphics::LightPointer>; using Config = RenderShadowSetupConfig; using JobModel = render::Job::ModelIO<RenderShadowSetup, Input, Output, Config>; @@ -161,7 +161,7 @@ public: class CullShadowBounds { public: - using Inputs = render::VaryingSet5<render::ShapeBounds, render::ItemFilter, ViewFrustumPointer, LightStage::FramePointer, RenderShadowTask::CullFunctor>; + using Inputs = render::VaryingSet5<render::ShapeBounds, render::ItemFilter, ViewFrustumPointer, graphics::LightPointer, RenderShadowTask::CullFunctor>; using Outputs = render::VaryingSet2<render::ShapeBounds, AABox>; using JobModel = render::Job::ModelIO<CullShadowBounds, Inputs, Outputs>; From 73d688610fc53c16d2ebf553d6fbebd9e3be4011 Mon Sep 17 00:00:00 2001 From: Simon Walton <simon@highfidelity.io> Date: Tue, 8 Jan 2019 18:33:00 -0800 Subject: [PATCH 158/230] Track stats for total AvatarData bytes, traits bytes and identity bytes --- assignment-client/src/avatars/AvatarMixer.cpp | 5 +++- .../src/avatars/AvatarMixerSlave.cpp | 17 ++++++----- .../src/avatars/AvatarMixerSlave.h | 28 +++++++++++++------ libraries/avatars/src/AvatarData.cpp | 4 +-- 4 files changed, 35 insertions(+), 19 deletions(-) diff --git a/assignment-client/src/avatars/AvatarMixer.cpp b/assignment-client/src/avatars/AvatarMixer.cpp index cb2f0636b9..8ace26f2e2 100644 --- a/assignment-client/src/avatars/AvatarMixer.cpp +++ b/assignment-client/src/avatars/AvatarMixer.cpp @@ -767,6 +767,9 @@ void AvatarMixer::sendStatsPacket() { float averageOverBudgetAvatars = averageNodes ? aggregateStats.overBudgetAvatars / averageNodes : 0.0f; slavesAggregatObject["sent_3_averageOverBudgetAvatars"] = TIGHT_LOOP_STAT(averageOverBudgetAvatars); + slavesAggregatObject["sent_4_averageDataBytes"] = TIGHT_LOOP_STAT(aggregateStats.numDataBytesSent); + slavesAggregatObject["sent_5_averageAvatarEntityBytes"] = TIGHT_LOOP_STAT(aggregateStats.numTraitsBytesSent); + slavesAggregatObject["sent_4_averageIdentityBytes"] = TIGHT_LOOP_STAT(aggregateStats.numIdentityBytesSent); slavesAggregatObject["timing_1_processIncomingPackets"] = TIGHT_LOOP_STAT_UINT64(aggregateStats.processIncomingPacketsElapsedTime); slavesAggregatObject["timing_2_ignoreCalculation"] = TIGHT_LOOP_STAT_UINT64(aggregateStats.ignoreCalculationElapsedTime); @@ -775,7 +778,7 @@ void AvatarMixer::sendStatsPacket() { slavesAggregatObject["timing_5_packetSending"] = TIGHT_LOOP_STAT_UINT64(aggregateStats.packetSendingElapsedTime); slavesAggregatObject["timing_6_jobElapsedTime"] = TIGHT_LOOP_STAT_UINT64(aggregateStats.jobElapsedTime); - statsObject["slaves_aggregate"] = slavesAggregatObject; + statsObject["slaves_aggregate (per frame)"] = slavesAggregatObject; _handleViewFrustumPacketElapsedTime = 0; _handleAvatarIdentityPacketElapsedTime = 0; diff --git a/assignment-client/src/avatars/AvatarMixerSlave.cpp b/assignment-client/src/avatars/AvatarMixerSlave.cpp index cd9d164ef7..22a393a06c 100644 --- a/assignment-client/src/avatars/AvatarMixerSlave.cpp +++ b/assignment-client/src/avatars/AvatarMixerSlave.cpp @@ -73,7 +73,8 @@ int AvatarMixerSlave::sendIdentityPacket(NLPacketList& packetList, const AvatarM QByteArray individualData = nodeData->getConstAvatarData()->identityByteArray(); individualData.replace(0, NUM_BYTES_RFC4122_UUID, nodeData->getNodeID().toRfc4122()); // FIXME, this looks suspicious packetList.write(individualData); - _stats.numIdentityPackets++; + _stats.numIdentityPacketsSent++; + _stats.numIdentityBytesSent += individualData.size(); return individualData.size(); } else { return 0; @@ -109,7 +110,6 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis while (simpleReceivedIt != lastReceivedVersions.simpleCEnd()) { auto traitType = static_cast<AvatarTraits::TraitType>(std::distance(lastReceivedVersions.simpleCBegin(), simpleReceivedIt)); - auto lastReceivedVersion = *simpleReceivedIt; auto& lastSentVersionRef = lastSentVersions[traitType]; @@ -191,7 +191,8 @@ int AvatarMixerSlave::sendReplicatedIdentityPacket(const Node& agentNode, const auto identityPacket = NLPacketList::create(PacketType::ReplicatedAvatarIdentity, QByteArray(), true, true); identityPacket->write(individualData); DependencyManager::get<NodeList>()->sendPacketList(std::move(identityPacket), destinationNode); - _stats.numIdentityPackets++; + _stats.numIdentityPacketsSent++; + _stats.numIdentityBytesSent += individualData.size(); return individualData.size(); } else { return 0; @@ -539,8 +540,8 @@ void AvatarMixerSlave::broadcastAvatarDataToAgent(const SharedNodePointer& node) ++numPacketsSent; } - _stats.numPacketsSent += numPacketsSent; - _stats.numBytesSent += numAvatarDataBytes; + _stats.numDataPacketsSent += numPacketsSent; + _stats.numDataBytesSent += numAvatarDataBytes; // record the bytes sent for other avatar data in the AvatarMixerClientData nodeData->recordSentAvatarData(numAvatarDataBytes); @@ -550,6 +551,8 @@ void AvatarMixerSlave::broadcastAvatarDataToAgent(const SharedNodePointer& node) if (traitsPacketList->getNumPackets() >= 1) { // send the traits packet list + _stats.numTraitsBytesSent += traitBytesSent; + _stats.numTraitsPacketsSent += (int) traitsPacketList->getNumPackets(); nodeList->sendPacketList(std::move(traitsPacketList), *destinationNode); } @@ -685,8 +688,8 @@ void AvatarMixerSlave::broadcastAvatarDataToDownstreamMixer(const SharedNodePoin // close the current packet so that we're always sending something avatarPacketList->closeCurrentPacket(true); - _stats.numPacketsSent += (int)avatarPacketList->getNumPackets(); - _stats.numBytesSent += numAvatarDataBytes; + _stats.numDataPacketsSent += (int)avatarPacketList->getNumPackets(); + _stats.numDataBytesSent += numAvatarDataBytes; // send the replicated bulk avatar data auto nodeList = DependencyManager::get<NodeList>(); diff --git a/assignment-client/src/avatars/AvatarMixerSlave.h b/assignment-client/src/avatars/AvatarMixerSlave.h index 2ef90af38e..5c38cda590 100644 --- a/assignment-client/src/avatars/AvatarMixerSlave.h +++ b/assignment-client/src/avatars/AvatarMixerSlave.h @@ -24,9 +24,12 @@ public: int nodesBroadcastedTo { 0 }; int downstreamMixersBroadcastedTo { 0 }; - int numPacketsSent { 0 }; - int numBytesSent { 0 }; - int numIdentityPackets { 0 }; + int numDataBytesSent { 0 }; + int numTraitsBytesSent { 0 }; + int numIdentityBytesSent { 0 }; + int numDataPacketsSent { 0 }; + int numTraitsPacketsSent { 0 }; + int numIdentityPacketsSent { 0 }; int numOthersIncluded { 0 }; int overBudgetAvatars { 0 }; @@ -45,9 +48,13 @@ public: // sending job stats nodesBroadcastedTo = 0; downstreamMixersBroadcastedTo = 0; - numPacketsSent = 0; - numBytesSent = 0; - numIdentityPackets = 0; + + numDataBytesSent = 0; + numTraitsBytesSent = 0; + numIdentityBytesSent = 0; + numDataPacketsSent = 0; + numTraitsPacketsSent = 0; + numIdentityPacketsSent = 0; numOthersIncluded = 0; overBudgetAvatars = 0; @@ -65,9 +72,12 @@ public: nodesBroadcastedTo += rhs.nodesBroadcastedTo; downstreamMixersBroadcastedTo += rhs.downstreamMixersBroadcastedTo; - numPacketsSent += rhs.numPacketsSent; - numBytesSent += rhs.numBytesSent; - numIdentityPackets += rhs.numIdentityPackets; + numDataBytesSent += rhs.numDataBytesSent; + numTraitsBytesSent += rhs.numTraitsBytesSent; + numIdentityBytesSent += rhs.numIdentityBytesSent; + numDataPacketsSent += rhs.numDataPacketsSent; + numTraitsPacketsSent += rhs.numTraitsPacketsSent; + numIdentityPacketsSent += rhs.numIdentityPacketsSent; numOthersIncluded += rhs.numOthersIncluded; overBudgetAvatars += rhs.overBudgetAvatars; diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index e72fa3a6eb..2f1c8d3d82 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -1987,9 +1987,9 @@ qint64 AvatarData::packTraitInstance(AvatarTraits::TraitType traitType, AvatarTr qint64 bytesWritten = 0; if (traitType == AvatarTraits::AvatarEntity) { - packAvatarEntityTraitInstance(traitType, traitInstanceID, destination, traitVersion); + bytesWritten += packAvatarEntityTraitInstance(traitType, traitInstanceID, destination, traitVersion); } else if (traitType == AvatarTraits::Grab) { - packGrabTraitInstance(traitType, traitInstanceID, destination, traitVersion); + bytesWritten += packGrabTraitInstance(traitType, traitInstanceID, destination, traitVersion); } return bytesWritten; From cb6b86a236f8612eb4cdeeb451cf2628b7c59d32 Mon Sep 17 00:00:00 2001 From: Simon Walton <simon@highfidelity.io> Date: Wed, 9 Jan 2019 09:36:17 -0800 Subject: [PATCH 159/230] Tweak web display --- assignment-client/src/avatars/AvatarMixer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assignment-client/src/avatars/AvatarMixer.cpp b/assignment-client/src/avatars/AvatarMixer.cpp index 8ace26f2e2..1415db7a27 100644 --- a/assignment-client/src/avatars/AvatarMixer.cpp +++ b/assignment-client/src/avatars/AvatarMixer.cpp @@ -768,8 +768,8 @@ void AvatarMixer::sendStatsPacket() { float averageOverBudgetAvatars = averageNodes ? aggregateStats.overBudgetAvatars / averageNodes : 0.0f; slavesAggregatObject["sent_3_averageOverBudgetAvatars"] = TIGHT_LOOP_STAT(averageOverBudgetAvatars); slavesAggregatObject["sent_4_averageDataBytes"] = TIGHT_LOOP_STAT(aggregateStats.numDataBytesSent); - slavesAggregatObject["sent_5_averageAvatarEntityBytes"] = TIGHT_LOOP_STAT(aggregateStats.numTraitsBytesSent); - slavesAggregatObject["sent_4_averageIdentityBytes"] = TIGHT_LOOP_STAT(aggregateStats.numIdentityBytesSent); + slavesAggregatObject["sent_5_averageTraitsBytes"] = TIGHT_LOOP_STAT(aggregateStats.numTraitsBytesSent); + slavesAggregatObject["sent_6_averageIdentityBytes"] = TIGHT_LOOP_STAT(aggregateStats.numIdentityBytesSent); slavesAggregatObject["timing_1_processIncomingPackets"] = TIGHT_LOOP_STAT_UINT64(aggregateStats.processIncomingPacketsElapsedTime); slavesAggregatObject["timing_2_ignoreCalculation"] = TIGHT_LOOP_STAT_UINT64(aggregateStats.ignoreCalculationElapsedTime); From b854840f4349dcb3ceb2c7f3a3d62ee2bc59603e Mon Sep 17 00:00:00 2001 From: Ken Cooke <ken@highfidelity.io> Date: Wed, 9 Jan 2019 10:03:35 -0800 Subject: [PATCH 160/230] Fix ASAN warnings due to mixed signed/unsigned arithmetic --- libraries/audio/src/AudioFOA.cpp | 8 ++++---- libraries/audio/src/avx2/AudioFOA_avx2.cpp | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/libraries/audio/src/AudioFOA.cpp b/libraries/audio/src/AudioFOA.cpp index 16c0721047..30d29b72b7 100644 --- a/libraries/audio/src/AudioFOA.cpp +++ b/libraries/audio/src/AudioFOA.cpp @@ -695,7 +695,7 @@ static void ifft_radix8_first(complex_t* x, complex_t* y, int n, int p) { // n >= 4 static void rfft_post(complex_t* x, const complex_t* w, int n) { - size_t t = n/4; + int t = n/4; assert(t >= 1); // NOTE: x[n/2].re is packed into x[0].im @@ -707,7 +707,7 @@ static void rfft_post(complex_t* x, const complex_t* w, int n) { complex_t* xp0 = &x[1]; complex_t* xp1 = &x[n/2 - 1]; - for (size_t i = 0; i < t; i++) { + for (int i = 0; i < t; i++) { float ar = xp0[i].re; float ai = xp0[i].im; @@ -743,7 +743,7 @@ static void rfft_post(complex_t* x, const complex_t* w, int n) { // n >= 4 static void rifft_pre(complex_t* x, const complex_t* w, int n) { - size_t t = n/4; + int t = n/4; assert(t >= 1); // NOTE: x[n/2].re is packed into x[0].im @@ -755,7 +755,7 @@ static void rifft_pre(complex_t* x, const complex_t* w, int n) { complex_t* xp0 = &x[1]; complex_t* xp1 = &x[n/2 - 1]; - for (size_t i = 0; i < t; i++) { + for (int i = 0; i < t; i++) { float ar = xp0[i].re; float ai = xp0[i].im; diff --git a/libraries/audio/src/avx2/AudioFOA_avx2.cpp b/libraries/audio/src/avx2/AudioFOA_avx2.cpp index 880f40b185..70f9b0e5f6 100644 --- a/libraries/audio/src/avx2/AudioFOA_avx2.cpp +++ b/libraries/audio/src/avx2/AudioFOA_avx2.cpp @@ -973,8 +973,8 @@ FORCEINLINE static void ifft_radix8_first(complex_t* x, complex_t* y, int n, int // n >= 32 static void rfft_post(complex_t* x, const complex_t* w, int n) { - size_t t = n/4; - assert(n/4 >= 8); // SIMD8 + int t = n/4; + assert(t >= 8); // SIMD8 // NOTE: x[n/2].re is packed into x[0].im float tr = x[0].re; @@ -985,7 +985,7 @@ static void rfft_post(complex_t* x, const complex_t* w, int n) { complex_t* xp0 = &x[1]; complex_t* xp1 = &x[n/2 - 8]; - for (size_t i = 0; i < t; i += 8) { + for (int i = 0; i < t; i += 8) { __m256 z0 = _mm256_loadu_ps(&xp0[i+0].re); __m256 z1 = _mm256_loadu_ps(&xp0[i+4].re); @@ -1033,8 +1033,8 @@ static void rfft_post(complex_t* x, const complex_t* w, int n) { // n >= 32 static void rifft_pre(complex_t* x, const complex_t* w, int n) { - size_t t = n/4; - assert(n/4 >= 8); // SIMD8 + int t = n/4; + assert(t >= 8); // SIMD8 // NOTE: x[n/2].re is packed into x[0].im float tr = x[0].re; @@ -1045,7 +1045,7 @@ static void rifft_pre(complex_t* x, const complex_t* w, int n) { complex_t* xp0 = &x[1]; complex_t* xp1 = &x[n/2 - 8]; - for (size_t i = 0; i < t; i += 8) { + for (int i = 0; i < t; i += 8) { __m256 z0 = _mm256_loadu_ps(&xp0[i+0].re); __m256 z1 = _mm256_loadu_ps(&xp0[i+4].re); From 3c6b7e3bd005d0a77ee6f94709b3c0f4f7485fa2 Mon Sep 17 00:00:00 2001 From: birarda <commit@birarda.com> Date: Tue, 18 Dec 2018 13:17:37 -0800 Subject: [PATCH 161/230] add a cap to cycled message channels in SendQueue --- libraries/networking/src/udt/PacketQueue.cpp | 46 +++++++++++++------- libraries/networking/src/udt/PacketQueue.h | 14 +++--- 2 files changed, 39 insertions(+), 21 deletions(-) diff --git a/libraries/networking/src/udt/PacketQueue.cpp b/libraries/networking/src/udt/PacketQueue.cpp index 0560855ecb..b2e3000f74 100644 --- a/libraries/networking/src/udt/PacketQueue.cpp +++ b/libraries/networking/src/udt/PacketQueue.cpp @@ -16,7 +16,8 @@ using namespace udt; PacketQueue::PacketQueue(MessageNumber messageNumber) : _currentMessageNumber(messageNumber) { - _channels.emplace_back(new std::list<PacketPointer>()); + _channels.emplace_front(new std::list<PacketPointer>()); + _currentChannel = _channels.begin(); } MessageNumber PacketQueue::getNextMessageNumber() { @@ -27,21 +28,28 @@ MessageNumber PacketQueue::getNextMessageNumber() { bool PacketQueue::isEmpty() const { LockGuard locker(_packetsLock); + // Only the main channel and it is empty - return (_channels.size() == 1) && _channels.front()->empty(); + return _channels.size() == 1 && _channels.front()->empty(); } PacketQueue::PacketPointer PacketQueue::takePacket() { LockGuard locker(_packetsLock); + if (isEmpty()) { return PacketPointer(); } - // Find next non empty channel - if (_channels[nextIndex()]->empty()) { - nextIndex(); + // handle the case where we are looking at the first channel and it is empty + if (_currentChannel == _channels.begin() && (*_currentChannel)->empty()) { + ++_currentChannel; } - auto& channel = _channels[_currentIndex]; + + // at this point the current channel should always not be at the end and should also not be empty + Q_ASSERT(_currentChannel != _channels.end()); + + auto& channel = *_currentChannel; + Q_ASSERT(!channel->empty()); // Take front packet @@ -49,20 +57,28 @@ PacketQueue::PacketPointer PacketQueue::takePacket() { channel->pop_front(); // Remove now empty channel (Don't remove the main channel) - if (channel->empty() && _currentIndex != 0) { - channel->swap(*_channels.back()); - _channels.pop_back(); - --_currentIndex; + if (channel->empty() && _currentChannel != _channels.begin()) { + // erase the current channel and slide the iterator to the next channel + _currentChannel = _channels.erase(_currentChannel); + } else { + ++_currentChannel; + } + + // push forward our number of channels taken from + ++_channelsVisitedCount; + + // check if we need to restart back at the front channel (main) + // to respect our capped number of channels considered concurrently + static const int MAX_CHANNELS_SENT_CONCURRENTLY = 16; + + if (_currentChannel == _channels.end() || _channelsVisitedCount >= MAX_CHANNELS_SENT_CONCURRENTLY) { + _channelsVisitedCount = 0; + _currentChannel = _channels.begin(); } return packet; } -unsigned int PacketQueue::nextIndex() { - _currentIndex = (_currentIndex + 1) % _channels.size(); - return _currentIndex; -} - void PacketQueue::queuePacket(PacketPointer packet) { LockGuard locker(_packetsLock); _channels.front()->push_back(std::move(packet)); diff --git a/libraries/networking/src/udt/PacketQueue.h b/libraries/networking/src/udt/PacketQueue.h index bc4c5e3432..f696864e6b 100644 --- a/libraries/networking/src/udt/PacketQueue.h +++ b/libraries/networking/src/udt/PacketQueue.h @@ -30,8 +30,9 @@ class PacketQueue { using LockGuard = std::lock_guard<Mutex>; using PacketPointer = std::unique_ptr<Packet>; using PacketListPointer = std::unique_ptr<PacketList>; - using Channel = std::unique_ptr<std::list<PacketPointer>>; - using Channels = std::vector<Channel>; + using RawChannel = std::list<PacketPointer>; + using Channel = std::unique_ptr<RawChannel>; + using Channels = std::list<Channel>; public: PacketQueue(MessageNumber messageNumber = 0); @@ -47,16 +48,17 @@ public: private: MessageNumber getNextMessageNumber(); - unsigned int nextIndex(); - + MessageNumber _currentMessageNumber { 0 }; mutable Mutex _packetsLock; // Protects the packets to be sent. Channels _channels; // One channel per packet list + Main channel - unsigned int _currentIndex { 0 }; + + Channels::iterator _currentChannel; + unsigned int _channelsVisitedCount { 0 }; }; } -#endif // hifi_PacketQueue_h \ No newline at end of file +#endif // hifi_PacketQueue_h From 5bcdf143b9d01f459c689a18a0634225dbf836d1 Mon Sep 17 00:00:00 2001 From: Simon Walton <simon@highfidelity.io> Date: Wed, 9 Jan 2019 13:45:07 -0800 Subject: [PATCH 162/230] Add per-destination-avatar traits-rate stats --- assignment-client/src/avatars/AvatarMixer.cpp | 5 +++-- assignment-client/src/avatars/AvatarMixerClientData.cpp | 3 ++- assignment-client/src/avatars/AvatarMixerClientData.h | 9 ++++++++- assignment-client/src/avatars/AvatarMixerSlave.cpp | 7 ++++--- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/assignment-client/src/avatars/AvatarMixer.cpp b/assignment-client/src/avatars/AvatarMixer.cpp index 1415db7a27..62b58f3d73 100644 --- a/assignment-client/src/avatars/AvatarMixer.cpp +++ b/assignment-client/src/avatars/AvatarMixer.cpp @@ -803,7 +803,8 @@ void AvatarMixer::sendStatsPacket() { // add the key to ask the domain-server for a username replacement, if it has it avatarStats[USERNAME_UUID_REPLACEMENT_STATS_KEY] = uuidStringWithoutCurlyBraces(node->getUUID()); - avatarStats[NODE_OUTBOUND_KBPS_STAT_KEY] = node->getOutboundKbps(); + float outboundAvatarDataKbps = node->getOutboundKbps(); + avatarStats[NODE_OUTBOUND_KBPS_STAT_KEY] = outboundAvatarDataKbps; avatarStats[NODE_INBOUND_KBPS_STAT_KEY] = node->getInboundKbps(); AvatarMixerClientData* clientData = static_cast<AvatarMixerClientData*>(node->getLinkedData()); @@ -814,7 +815,7 @@ void AvatarMixer::sendStatsPacket() { // add the diff between the full outbound bandwidth and the measured bandwidth for AvatarData send only avatarStats["delta_full_vs_avatar_data_kbps"] = - avatarStats[NODE_OUTBOUND_KBPS_STAT_KEY].toDouble() - avatarStats[OUTBOUND_AVATAR_DATA_STATS_KEY].toDouble(); + (double)outboundAvatarDataKbps - avatarStats[OUTBOUND_AVATAR_DATA_STATS_KEY].toDouble(); } } diff --git a/assignment-client/src/avatars/AvatarMixerClientData.cpp b/assignment-client/src/avatars/AvatarMixerClientData.cpp index f215fd4448..7313634cff 100644 --- a/assignment-client/src/avatars/AvatarMixerClientData.cpp +++ b/assignment-client/src/avatars/AvatarMixerClientData.cpp @@ -317,7 +317,8 @@ void AvatarMixerClientData::loadJSONStats(QJsonObject& jsonObject) const { jsonObject["total_num_out_of_order_sends"] = _numOutOfOrderSends; jsonObject[OUTBOUND_AVATAR_DATA_STATS_KEY] = getOutboundAvatarDataKbps(); - jsonObject[INBOUND_AVATAR_DATA_STATS_KEY] = _avatar->getAverageBytesReceivedPerSecond() / (float) BYTES_PER_KILOBIT; + jsonObject[OUTBOUND_AVATAR_TRAITS_STATS_KEY] = getOutboundAvatarTraitsKbps(); + jsonObject[INBOUND_AVATAR_DATA_STATS_KEY] = _avatar->getAverageBytesReceivedPerSecond() / (float)BYTES_PER_KILOBIT; jsonObject["av_data_receive_rate"] = _avatar->getReceiveRate(); jsonObject["recent_other_av_in_view"] = _recentOtherAvatarsInView; diff --git a/assignment-client/src/avatars/AvatarMixerClientData.h b/assignment-client/src/avatars/AvatarMixerClientData.h index 8a86af384a..18144b1e01 100644 --- a/assignment-client/src/avatars/AvatarMixerClientData.h +++ b/assignment-client/src/avatars/AvatarMixerClientData.h @@ -32,6 +32,7 @@ #include <shared/ConicalViewFrustum.h> const QString OUTBOUND_AVATAR_DATA_STATS_KEY = "outbound_av_data_kbps"; +const QString OUTBOUND_AVATAR_TRAITS_STATS_KEY = "outbound_av_traits_kbps"; const QString INBOUND_AVATAR_DATA_STATS_KEY = "inbound_av_data_kbps"; struct SlaveSharedData; @@ -85,10 +86,15 @@ public: void incrementNumFramesSinceFRDAdjustment() { ++_numFramesSinceAdjustment; } void resetNumFramesSinceFRDAdjustment() { _numFramesSinceAdjustment = 0; } - void recordSentAvatarData(int numBytes) { _avgOtherAvatarDataRate.updateAverage((float) numBytes); } + void recordSentAvatarData(int numDataBytes, int numTraitsBytes = 0) { + _avgOtherAvatarDataRate.updateAverage(numDataBytes); + _avgOtherAvatarTraitsRate.updateAverage(numTraitsBytes); + } float getOutboundAvatarDataKbps() const { return _avgOtherAvatarDataRate.getAverageSampleValuePerSecond() / (float) BYTES_PER_KILOBIT; } + float getOutboundAvatarTraitsKbps() const + { return _avgOtherAvatarTraitsRate.getAverageSampleValuePerSecond() / BYTES_PER_KILOBIT; } void loadJSONStats(QJsonObject& jsonObject) const; @@ -171,6 +177,7 @@ private: int _numOutOfOrderSends = 0; SimpleMovingAverage _avgOtherAvatarDataRate; + SimpleMovingAverage _avgOtherAvatarTraitsRate; std::vector<QUuid> _radiusIgnoredOthers; ConicalViewFrustums _currentViewFrustums; diff --git a/assignment-client/src/avatars/AvatarMixerSlave.cpp b/assignment-client/src/avatars/AvatarMixerSlave.cpp index 22a393a06c..0460407f01 100644 --- a/assignment-client/src/avatars/AvatarMixerSlave.cpp +++ b/assignment-client/src/avatars/AvatarMixerSlave.cpp @@ -543,9 +543,6 @@ void AvatarMixerSlave::broadcastAvatarDataToAgent(const SharedNodePointer& node) _stats.numDataPacketsSent += numPacketsSent; _stats.numDataBytesSent += numAvatarDataBytes; - // record the bytes sent for other avatar data in the AvatarMixerClientData - nodeData->recordSentAvatarData(numAvatarDataBytes); - // close the current traits packet list traitsPacketList->closeCurrentPacket(); @@ -562,6 +559,10 @@ void AvatarMixerSlave::broadcastAvatarDataToAgent(const SharedNodePointer& node) nodeList->sendPacketList(std::move(identityPacketList), *destinationNode); } + // record the bytes sent for other avatar data in the AvatarMixerClientData + nodeData->recordSentAvatarData(numAvatarDataBytes, traitBytesSent); + + // record the number of avatars held back this frame nodeData->recordNumOtherAvatarStarves(numAvatarsHeldBack); nodeData->recordNumOtherAvatarSkips(numAvatarsWithSkippedFrames); From d3fea94540a618d3de276a54dbcc3402d248e044 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Mon, 3 Dec 2018 18:13:31 -0800 Subject: [PATCH 163/230] send AvatarEntities via raw data packet --- .../src/avatars-renderer/Avatar.cpp | 25 ++++++++------- .../entities/src/EntityEditPacketSender.cpp | 24 ++++++-------- libraries/entities/src/EntityItem.cpp | 5 +++ libraries/octree/src/OctreePacketData.cpp | 31 ++++++++++++------- libraries/octree/src/OctreePacketData.h | 4 +++ 5 files changed, 53 insertions(+), 36 deletions(-) diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index dbf5899386..2c52bc69ea 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -378,19 +378,22 @@ void Avatar::updateAvatarEntities() { } ++dataItr; - // see EntityEditPacketSender::queueEditEntityMessage for the other end of this. unpack properties - // and either add or update the entity. - QJsonDocument jsonProperties = QJsonDocument::fromBinaryData(data); - if (!jsonProperties.isObject()) { - qCDebug(avatars_renderer) << "got bad avatarEntity json" << QString(data.toHex()); - continue; + EntityItemProperties properties; + { + // create a temporary EntityItem to unpack the data + int32_t bytesLeftToRead = data.size(); + unsigned char* dataAt = (unsigned char*)(data.data()); + ReadBitstreamToTreeParams args; + EntityItemPointer tempEntity = EntityTypes::constructEntityItem(dataAt, bytesLeftToRead, args); + if (!tempEntity) { + continue; + } + tempEntity->readEntityDataFromBuffer(dataAt, bytesLeftToRead, args); + + // extract the properties from tempEntity + properties = tempEntity->getProperties(); } - QVariant variantProperties = jsonProperties.toVariant(); - QVariantMap asMap = variantProperties.toMap(); - QScriptValue scriptProperties = variantMapToScriptValue(asMap, scriptEngine); - EntityItemProperties properties; - EntityItemPropertiesFromScriptValueIgnoreReadOnly(scriptProperties, properties); properties.setEntityHostType(entity::HostType::AVATAR); properties.setOwningAvatarID(getID()); diff --git a/libraries/entities/src/EntityEditPacketSender.cpp b/libraries/entities/src/EntityEditPacketSender.cpp index c414a7a4ac..8d0348bae6 100644 --- a/libraries/entities/src/EntityEditPacketSender.cpp +++ b/libraries/entities/src/EntityEditPacketSender.cpp @@ -54,27 +54,23 @@ void EntityEditPacketSender::queueEditAvatarEntityMessage(PacketType type, return; } - // the properties that get serialized into the avatar identity packet should be the entire set + // serialize ALL properties in an "AvatarEntity" packet // rather than just the ones being edited. EntityItemProperties entityProperties = entity->getProperties(); entityProperties.merge(properties); - std::lock_guard<std::mutex> lock(_mutex); - QScriptValue scriptProperties = EntityItemNonDefaultPropertiesToScriptValue(&_scriptEngine, entityProperties); - QVariant variantProperties = scriptProperties.toVariant(); - QJsonDocument jsonProperties = QJsonDocument::fromVariant(variantProperties); + OctreePacketData packetData(false, AvatarTraits::MAXIMUM_TRAIT_SIZE); + EncodeBitstreamParams params; + EntityTreeElementExtraEncodeDataPointer extra { nullptr }; + OctreeElement::AppendState appendState = entity->appendEntityData(&packetData, params, extra); - // the ID of the parent/avatar changes from session to session. use a special UUID to indicate the avatar - QJsonObject jsonObject = jsonProperties.object(); - if (jsonObject.contains("parentID")) { - if (QUuid(jsonObject["parentID"].toString()) == _myAvatar->getID()) { - jsonObject["parentID"] = AVATAR_SELF_ID.toString(); - } + if (appendState != OctreeElement::COMPLETED) { + // this entity is too big + return; } - jsonProperties = QJsonDocument(jsonObject); - QByteArray binaryProperties = jsonProperties.toBinaryData(); - _myAvatar->updateAvatarEntity(entityItemID, binaryProperties); + packetData.shrinkByteArrays(); + _myAvatar->updateAvatarEntity(entityItemID, packetData.getUncompressedByteArray()); entity->setLastBroadcast(usecTimestampNow()); } diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index 498f0ff066..5b7a152318 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -179,6 +179,11 @@ OctreeElement::AppendState EntityItem::appendEntityData(OctreePacketData* packet EntityPropertyFlags propertyFlags(PROP_LAST_ITEM); EntityPropertyFlags requestedProperties = getEntityProperties(params); + // the values of these two properties are known to the receiver by context + // therefore they don't need to be packed + requestedProperties -= PROP_ENTITY_HOST_TYPE; + requestedProperties -= PROP_OWNING_AVATAR_ID; + // If we are being called for a subsequent pass at appendEntityData() that failed to completely encode this item, // then our entityTreeElementExtraEncodeData should include data about which properties we need to append. if (entityTreeElementExtraEncodeData && entityTreeElementExtraEncodeData->entities.contains(getEntityItemID())) { diff --git a/libraries/octree/src/OctreePacketData.cpp b/libraries/octree/src/OctreePacketData.cpp index 6c0bba5ec6..60b0e6fbad 100644 --- a/libraries/octree/src/OctreePacketData.cpp +++ b/libraries/octree/src/OctreePacketData.cpp @@ -38,7 +38,11 @@ void OctreePacketData::changeSettings(bool enableCompression, unsigned int targe _enableCompression = enableCompression; _targetSize = targetSize; _uncompressedByteArray.resize(_targetSize); - _compressedByteArray.resize(_targetSize); + if (_enableCompression) { + _compressedByteArray.resize(_targetSize); + } else { + _compressedByteArray.resize(0); + } _uncompressed = (unsigned char*)_uncompressedByteArray.data(); _compressed = (unsigned char*)_compressedByteArray.data(); @@ -586,13 +590,10 @@ bool OctreePacketData::appendRawData(QByteArray data) { AtomicUIntStat OctreePacketData::_compressContentTime { 0 }; AtomicUIntStat OctreePacketData::_compressContentCalls { 0 }; -bool OctreePacketData::compressContent() { +bool OctreePacketData::compressContent() { PerformanceWarning warn(false, "OctreePacketData::compressContent()", false, &_compressContentTime, &_compressContentCalls); - - // without compression, we always pass... - if (!_enableCompression) { - return true; - } + assert(_dirty); + assert(_enableCompression); _bytesInUseLastCheck = _bytesInUse; @@ -605,13 +606,13 @@ bool OctreePacketData::compressContent() { QByteArray compressedData = qCompress(uncompressedData, uncompressedSize, MAX_COMPRESSION); - if (compressedData.size() < (int)MAX_OCTREE_PACKET_DATA_SIZE) { + if (compressedData.size() < _compressedByteArray.size()) { _compressedBytes = compressedData.size(); memcpy(_compressed, compressedData.constData(), _compressedBytes); _dirty = false; success = true; } else { - qCWarning(octree) << "OctreePacketData::compressContent -- compressedData.size >= MAX_OCTREE_PACKET_DATA_SIZE"; + qCWarning(octree) << "OctreePacketData::compressContent -- compressedData.size >= " << _compressedByteArray.size(); assert(false); } return success; @@ -644,8 +645,7 @@ void OctreePacketData::loadFinalizedContent(const unsigned char* data, int lengt memcpy(_uncompressed, uncompressedData.constData(), _bytesInUse); } else { memcpy(_uncompressed, data, length); - memcpy(_compressed, data, length); - _bytesInUse = _compressedBytes = length; + _bytesInUse = length; } } else { if (_debug) { @@ -654,6 +654,15 @@ void OctreePacketData::loadFinalizedContent(const unsigned char* data, int lengt } } +void OctreePacketData::shrinkByteArrays() { + _uncompressedByteArray.resize(_bytesInUse); + _compressedByteArray.resize(_compressedBytes); + // if you call this method then you are expected to be done packing to raw pointers + // and you just want the ByteArrays + // therefore we reset + reset(); +} + void OctreePacketData::debugContent() { qCDebug(octree, "OctreePacketData::debugContent()... COMPRESSED DATA.... size=%d",_compressedBytes); int perline=0; diff --git a/libraries/octree/src/OctreePacketData.h b/libraries/octree/src/OctreePacketData.h index bd1abf8744..cca78e19b3 100644 --- a/libraries/octree/src/OctreePacketData.h +++ b/libraries/octree/src/OctreePacketData.h @@ -220,6 +220,8 @@ public: /// get pointer to the uncompressed stream buffer at the byteOffset const unsigned char* getUncompressedData(int byteOffset = 0) { return &_uncompressed[byteOffset]; } + const QByteArray& getUncompressedByteArray() { return _uncompressedByteArray; } + /// the size of the packet in uncompressed form int getUncompressedSize() { return _bytesInUse; } @@ -243,6 +245,8 @@ public: int getBytesAvailable() { return _bytesAvailable; } + void shrinkByteArrays(); + /// displays contents for debugging void debugContent(); void debugBytes(); From d1927340f5a64d67c4e023418f73e9473c2ea448 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Tue, 4 Dec 2018 18:07:53 -0800 Subject: [PATCH 164/230] remove redundant addToNeedsParentFixupList() --- libraries/entities/src/EntityTree.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/libraries/entities/src/EntityTree.cpp b/libraries/entities/src/EntityTree.cpp index 0957b226e9..0590eac09c 100644 --- a/libraries/entities/src/EntityTree.cpp +++ b/libraries/entities/src/EntityTree.cpp @@ -531,10 +531,6 @@ EntityItemPointer EntityTree::addEntity(const EntityItemID& entityID, const Enti // Recurse the tree and store the entity in the correct tree element AddEntityOperator theOperator(getThisPointer(), result); recurseTreeWithOperator(&theOperator); - if (!result->getParentID().isNull()) { - addToNeedsParentFixupList(result); - } - postAddEntity(result); } return result; From 01fc4426955e6934476a5a0c7ad4b15dc69df25c Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Tue, 4 Dec 2018 18:08:54 -0800 Subject: [PATCH 165/230] save AvatarEntities settings as strings --- interface/src/avatar/MyAvatar.cpp | 72 ++++++++++++------- interface/src/avatar/MyAvatar.h | 4 +- .../src/avatars-renderer/Avatar.cpp | 10 +-- .../entities/src/EntityItemProperties.cpp | 10 +++ libraries/entities/src/EntityItemProperties.h | 2 + 5 files changed, 63 insertions(+), 35 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index e40fc7f9dd..0e17fa8fbe 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1263,11 +1263,11 @@ void MyAvatar::resizeAvatarEntitySettingHandles(unsigned int avatarEntityIndex) // Create Setting::Handles to mimic this. while (_avatarEntityIDSettings.size() <= avatarEntityIndex) { - Setting::Handle<QUuid> idHandle(QStringList() << AVATAR_SETTINGS_GROUP_NAME << "avatarEntityData" - << QString::number(avatarEntityIndex + 1) << "id", QUuid()); + Setting::Handle<QString> idHandle(QStringList() << AVATAR_SETTINGS_GROUP_NAME << "avatarEntityData" + << QString::number(avatarEntityIndex + 1) << "id", QUuid().toString()); _avatarEntityIDSettings.push_back(idHandle); - Setting::Handle<QByteArray> dataHandle(QStringList() << AVATAR_SETTINGS_GROUP_NAME << "avatarEntityData" - << QString::number(avatarEntityIndex + 1) << "properties", QByteArray()); + Setting::Handle<QString> dataHandle(QStringList() << AVATAR_SETTINGS_GROUP_NAME << "avatarEntityData" + << QString::number(avatarEntityIndex + 1) << "properties", QString()); _avatarEntityDataSettings.push_back(dataHandle); } } @@ -1299,23 +1299,46 @@ void MyAvatar::saveData() { auto hmdInterface = DependencyManager::get<HMDScriptingInterface>(); _avatarEntitiesLock.withReadLock([&] { - QList<QUuid> avatarEntityIDs = _avatarEntityData.keys(); - unsigned int avatarEntityCount = avatarEntityIDs.size(); - unsigned int previousAvatarEntityCount = _avatarEntityCountSetting.get(0); - resizeAvatarEntitySettingHandles(std::max<unsigned int>(avatarEntityCount, previousAvatarEntityCount)); - _avatarEntityCountSetting.set(avatarEntityCount); + uint32_t numEntities = _avatarEntityData.size(); + uint32_t prevNumEntities = _avatarEntityCountSetting.get(0); + resizeAvatarEntitySettingHandles(std::max<uint32_t>(numEntities, prevNumEntities)); - unsigned int avatarEntityIndex = 0; - for (auto entityID : avatarEntityIDs) { - _avatarEntityIDSettings[avatarEntityIndex].set(entityID); - _avatarEntityDataSettings[avatarEntityIndex].set(_avatarEntityData.value(entityID)); - avatarEntityIndex++; + // Note: this roundabout path from AvatarEntityData to JSON string is NOT efficient + QScriptEngine engine; + QScriptValue toStringMethod = engine.evaluate("(function() { return JSON.stringify(this) })"); + AvatarEntityMap::const_iterator itr = _avatarEntityData.begin(); + numEntities = 0; + while (itr != _avatarEntityData.end()) { + EntityItemProperties properties; + QByteArray buffer = itr.value(); + if (properties.constructFromBuffer((uint8_t*)buffer.data(), buffer.size())) { + if (properties.getParentID() == getSessionUUID()) { + properties.setParentID(AVATAR_SELF_ID); + } + QScriptValue scriptValue = EntityItemPropertiesToScriptValue(&engine, properties); + scriptValue.setProperty("toString", toStringMethod); + _avatarEntityDataSettings[numEntities].set(scriptValue.toString()); + _avatarEntityIDSettings[numEntities].set(itr.key().toString()); + ++numEntities; + } else { + // buffer is corrupt --> skip it + } + ++itr; } + _avatarEntityCountSetting.set(numEntities); - // clean up any left-over (due to the list shrinking) slots - for (; avatarEntityIndex < previousAvatarEntityCount; avatarEntityIndex++) { - _avatarEntityIDSettings[avatarEntityIndex].remove(); - _avatarEntityDataSettings[avatarEntityIndex].remove(); + if (numEntities < prevNumEntities) { + uint32_t numEntitiesToRemove = prevNumEntities - numEntities; + for (uint32_t i = 0; i < numEntitiesToRemove; ++i) { + if (_avatarEntityIDSettings.size() > numEntities) { + _avatarEntityIDSettings.back().remove(); + _avatarEntityIDSettings.pop_back(); + } + if (_avatarEntityDataSettings.size() > numEntities) { + _avatarEntityDataSettings.back().remove(); + _avatarEntityDataSettings.pop_back(); + } + } } }); } @@ -1426,13 +1449,14 @@ void MyAvatar::loadData() { useFullAvatarURL(_fullAvatarURLFromPreferences, _fullAvatarModelName); - int avatarEntityCount = _avatarEntityCountSetting.get(0); - for (int i = 0; i < avatarEntityCount; i++) { + int numEntities = _avatarEntityCountSetting.get(0); + + for (int i = 0; i < numEntities; i++) { resizeAvatarEntitySettingHandles(i); - // QUuid entityID = QUuid::createUuid(); // generate a new ID - QUuid entityID = _avatarEntityIDSettings[i].get(QUuid()); - QByteArray properties = _avatarEntityDataSettings[i].get(); - updateAvatarEntity(entityID, properties); + QUuid entityID = QUuid::createUuid(); // generate a new ID + QString propertiesString = _avatarEntityDataSettings[i].get(); + // TODO: convert propertiesString to EntityItemProperties + //updateAvatarEntity(entityID, properties); } // Flying preferences must be loaded before calling setFlyingEnabled() diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 17b71153ea..1984ea9766 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -1936,8 +1936,8 @@ private: Setting::Handle<bool> _flyingHMDSetting; Setting::Handle<int> _avatarEntityCountSetting; Setting::Handle<bool> _allowTeleportingSetting { "allowTeleporting", true }; - std::vector<Setting::Handle<QUuid>> _avatarEntityIDSettings; - std::vector<Setting::Handle<QByteArray>> _avatarEntityDataSettings; + std::vector<Setting::Handle<QString>> _avatarEntityIDSettings; + std::vector<Setting::Handle<QString>> _avatarEntityDataSettings; }; QScriptValue audioListenModeToScriptValue(QScriptEngine* engine, const AudioListenerMode& audioListenerMode); diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index 2c52bc69ea..23093028b1 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -383,15 +383,7 @@ void Avatar::updateAvatarEntities() { // create a temporary EntityItem to unpack the data int32_t bytesLeftToRead = data.size(); unsigned char* dataAt = (unsigned char*)(data.data()); - ReadBitstreamToTreeParams args; - EntityItemPointer tempEntity = EntityTypes::constructEntityItem(dataAt, bytesLeftToRead, args); - if (!tempEntity) { - continue; - } - tempEntity->readEntityDataFromBuffer(dataAt, bytesLeftToRead, args); - - // extract the properties from tempEntity - properties = tempEntity->getProperties(); + properties.constructFromBuffer(dataAt, bytesLeftToRead); } properties.setEntityHostType(entity::HostType::AVATAR); diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 26bb450b2e..0badd00bc3 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -90,6 +90,16 @@ void EntityItemProperties::setLastEdited(quint64 usecTime) { _lastEdited = usecTime > _created ? usecTime : _created; } +bool EntityItemProperties::constructFromBuffer(const unsigned char* data, int dataLength) { + ReadBitstreamToTreeParams args; + EntityItemPointer tempEntity = EntityTypes::constructEntityItem(data, dataLength, args); + if (!tempEntity) { + return false; + } + tempEntity->readEntityDataFromBuffer(data, dataLength, args); + (*this) = tempEntity->getProperties(); + return true; +} QHash<QString, ShapeType> stringToShapeTypeLookup; diff --git a/libraries/entities/src/EntityItemProperties.h b/libraries/entities/src/EntityItemProperties.h index 17ec83be78..4a9729f5fe 100644 --- a/libraries/entities/src/EntityItemProperties.h +++ b/libraries/entities/src/EntityItemProperties.h @@ -135,6 +135,8 @@ public: EntityPropertyFlags getDesiredProperties() { return _desiredProperties; } void setDesiredProperties(EntityPropertyFlags properties) { _desiredProperties = properties; } + bool constructFromBuffer(const unsigned char* data, int dataLength); + // Note: DEFINE_PROPERTY(PROP_FOO, Foo, foo, type, value) creates the following methods and variables: // type getFoo() const; // void setFoo(type); From e4cc3fa976463c0969125198cd8ae018588beee6 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Wed, 5 Dec 2018 14:32:42 -0800 Subject: [PATCH 166/230] minor cleanup --- libraries/entities/src/EntityTree.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libraries/entities/src/EntityTree.cpp b/libraries/entities/src/EntityTree.cpp index 0590eac09c..3f0b5249ec 100644 --- a/libraries/entities/src/EntityTree.cpp +++ b/libraries/entities/src/EntityTree.cpp @@ -490,7 +490,6 @@ bool EntityTree::updateEntity(EntityItemPointer entity, const EntityItemProperti } EntityItemPointer EntityTree::addEntity(const EntityItemID& entityID, const EntityItemProperties& properties, bool isClone) { - EntityItemPointer result = NULL; EntityItemProperties props = properties; auto nodeList = DependencyManager::get<NodeList>(); @@ -517,12 +516,12 @@ EntityItemPointer EntityTree::addEntity(const EntityItemID& entityID, const Enti if (containingElement) { qCWarning(entities) << "EntityTree::addEntity() on existing entity item with entityID=" << entityID << "containingElement=" << containingElement.get(); - return result; + return nullptr; } // construct the instance of the entity EntityTypes::EntityType type = props.getType(); - result = EntityTypes::constructEntityItem(type, entityID, props); + EntityItemPointer result = EntityTypes::constructEntityItem(type, entityID, props); if (result) { if (recordCreationTime) { From 263d6cb7adf4b8cd308eb8c80c459644060bb662 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Wed, 5 Dec 2018 14:34:20 -0800 Subject: [PATCH 167/230] only change parentID=AVATAR_SELF_ID for non-clientOnly case --- libraries/entities/src/EntityItem.cpp | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index 5b7a152318..f402aae7d0 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -329,6 +329,36 @@ OctreeElement::AppendState EntityItem::appendEntityData(OctreePacketData* packet APPEND_ENTITY_PROPERTY(PROP_CERTIFICATE_ID, getCertificateID()); APPEND_ENTITY_PROPERTY(PROP_STATIC_CERTIFICATE_VERSION, getStaticCertificateVersion()); + APPEND_ENTITY_PROPERTY(PROP_NAME, getName()); + APPEND_ENTITY_PROPERTY(PROP_COLLISION_SOUND_URL, getCollisionSoundURL()); + APPEND_ENTITY_PROPERTY(PROP_HREF, getHref()); + APPEND_ENTITY_PROPERTY(PROP_DESCRIPTION, getDescription()); + APPEND_ENTITY_PROPERTY(PROP_ACTION_DATA, getDynamicData()); + + QUuid actualParentID = getParentID(); + if (!getClientOnly() && actualParentID == AVATAR_SELF_ID) { + // convert AVATAR_SELF_ID to actual sessionUUID. + auto nodeList = DependencyManager::get<NodeList>(); + actualParentID = nodeList->getSessionUUID(); + } + APPEND_ENTITY_PROPERTY(PROP_PARENT_ID, actualParentID); + + APPEND_ENTITY_PROPERTY(PROP_PARENT_JOINT_INDEX, getParentJointIndex()); + APPEND_ENTITY_PROPERTY(PROP_QUERY_AA_CUBE, getQueryAACube()); + APPEND_ENTITY_PROPERTY(PROP_LAST_EDITED_BY, getLastEditedBy()); + + APPEND_ENTITY_PROPERTY(PROP_CLONEABLE, getCloneable()); + APPEND_ENTITY_PROPERTY(PROP_CLONE_LIFETIME, getCloneLifetime()); + APPEND_ENTITY_PROPERTY(PROP_CLONE_LIMIT, getCloneLimit()); + APPEND_ENTITY_PROPERTY(PROP_CLONE_DYNAMIC, getCloneDynamic()); + APPEND_ENTITY_PROPERTY(PROP_CLONE_AVATAR_ENTITY, getCloneAvatarEntity()); + APPEND_ENTITY_PROPERTY(PROP_CLONE_ORIGIN_ID, getCloneOriginID()); + + withReadLock([&] { + _grabProperties.appendSubclassData(packetData, params, entityTreeElementExtraEncodeData, requestedProperties, + propertyFlags, propertiesDidntFit, propertyCount, appendState); + }); + appendSubclassData(packetData, params, entityTreeElementExtraEncodeData, requestedProperties, propertyFlags, From 026c6301a61cda663aa799958f116a0ca2f73ccf Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Wed, 5 Dec 2018 14:34:43 -0800 Subject: [PATCH 168/230] correctly load AvatarEntities from settings --- interface/src/avatar/MyAvatar.cpp | 61 +++++++++++++++++-- interface/src/avatar/MyAvatar.h | 3 + libraries/avatars/src/AvatarData.cpp | 15 +++-- libraries/avatars/src/AvatarData.h | 3 +- .../entities/src/EntityEditPacketSender.cpp | 13 ++-- .../entities/src/EntityEditPacketSender.h | 2 +- 6 files changed, 76 insertions(+), 21 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 0e17fa8fbe..197bfcdca5 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -50,6 +50,7 @@ #include <RecordingScriptingInterface.h> #include <trackers/FaceTracker.h> #include <RenderableModelEntityItem.h> +#include <VariantMapToScriptValue.h> #include "MyHead.h" #include "MySkeletonModel.h" @@ -1437,6 +1438,38 @@ void MyAvatar::setEnableInverseKinematics(bool isEnabled) { _skeletonModel->getRig().setEnableInverseKinematics(isEnabled); } +void MyAvatar::updateAvatarEntity(const QUuid& entityID, const EntityItemProperties& properties) { + auto entityTreeRenderer = qApp->getEntities(); + EntityTreePointer entityTree = entityTreeRenderer ? entityTreeRenderer->getTree() : nullptr; + EntityItemPointer entity; + if (entityTree) { + entity = entityTree->findEntityByID(entityID); + if (!entity) { + entity = entityTree->addEntity(entityID, properties); + if (!entity) { + // unable to create entity + // TODO? handle this case? + return; + } + } else { + // TODO: propagate changes to entity + } + } + + OctreePacketData packetData(false, AvatarTraits::MAXIMUM_TRAIT_SIZE); + EncodeBitstreamParams params; + EntityTreeElementExtraEncodeDataPointer extra { nullptr }; + OctreeElement::AppendState appendState = entity->appendEntityData(&packetData, params, extra); + + if (appendState != OctreeElement::COMPLETED) { + // this entity's data is too big + return; + } + + packetData.shrinkByteArrays(); + storeAvatarEntityDataPayload(entity->getID(), packetData.getUncompressedByteArray()); +} + void MyAvatar::loadData() { getHead()->setBasePitch(_headPitchSetting.get()); @@ -1450,13 +1483,29 @@ void MyAvatar::loadData() { useFullAvatarURL(_fullAvatarURLFromPreferences, _fullAvatarModelName); int numEntities = _avatarEntityCountSetting.get(0); + auto entityTree = DependencyManager::get<EntityTreeRenderer>()->getTree(); - for (int i = 0; i < numEntities; i++) { - resizeAvatarEntitySettingHandles(i); - QUuid entityID = QUuid::createUuid(); // generate a new ID - QString propertiesString = _avatarEntityDataSettings[i].get(); - // TODO: convert propertiesString to EntityItemProperties - //updateAvatarEntity(entityID, properties); + if (numEntities > 0) { + QScriptEngine scriptEngine; + for (int i = 0; i < numEntities; i++) { + resizeAvatarEntitySettingHandles(i); + QUuid entityID = QUuid::createUuid(); // generate a new ID + + // NOTE: this path from EntityItemProperties JSON string to EntityItemProperties is NOT efficient + QString propertiesString = _avatarEntityDataSettings[i].get(); + QJsonDocument propertiesDoc = QJsonDocument::fromJson(propertiesString.toUtf8()); + QJsonObject propertiesObj = propertiesDoc.object(); + QVariant propertiesVariant(propertiesObj); + QVariantMap propertiesMap = propertiesVariant.toMap(); + QScriptValue propertiesScriptValue = variantMapToScriptValue(propertiesMap, scriptEngine); + EntityItemProperties properties; + EntityItemPropertiesFromScriptValueIgnoreReadOnly(propertiesScriptValue, properties); + + // the ClientOnly property can get stripped out elsewhere so we need to always set it true here + properties.setClientOnly(true); + + updateAvatarEntity(entityID, properties); + } } // Flying preferences must be loaded before calling setFlyingEnabled() diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 1984ea9766..b1848a19b9 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -1402,6 +1402,9 @@ public slots: */ bool getEnableMeshVisible() const override; + // TODO: make this invokable, probably also move down to AvatarData + void updateAvatarEntity(const QUuid& entityID, const EntityItemProperties& properties); + /**jsdoc * Set whether or not your avatar mesh is visible. * @function MyAvatar.setEnableMeshVisible diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index 2f1c8d3d82..e015410582 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -2019,7 +2019,7 @@ void AvatarData::processTrait(AvatarTraits::TraitType traitType, QByteArray trai void AvatarData::processTraitInstance(AvatarTraits::TraitType traitType, AvatarTraits::TraitInstanceID instanceID, QByteArray traitBinaryData) { if (traitType == AvatarTraits::AvatarEntity) { - updateAvatarEntity(instanceID, traitBinaryData); + storeAvatarEntityDataPayload(instanceID, traitBinaryData); } else if (traitType == AvatarTraits::Grab) { updateAvatarGrabData(instanceID, traitBinaryData); } @@ -2569,8 +2569,9 @@ void AvatarData::fromJson(const QJsonObject& json, bool useFrameSkeleton) { if (attachmentJson.isObject()) { QVariantMap entityData = attachmentJson.toObject().toVariantMap(); QUuid entityID = entityData.value("id").toUuid(); + // ADEBUG TODO: fix this broken path QByteArray properties = QByteArray::fromBase64(entityData.value("properties").toByteArray()); - updateAvatarEntity(entityID, properties); + storeAvatarEntityDataPayload(entityID, properties); } } } @@ -2754,15 +2755,15 @@ void AvatarData::setAttachmentsVariant(const QVariantList& variant) { const int MAX_NUM_AVATAR_ENTITIES = 42; -void AvatarData::updateAvatarEntity(const QUuid& entityID, const QByteArray& entityData) { +void AvatarData::storeAvatarEntityDataPayload(const QUuid& entityID, const QByteArray& data) { _avatarEntitiesLock.withWriteLock([&] { AvatarEntityMap::iterator itr = _avatarEntityData.find(entityID); if (itr == _avatarEntityData.end()) { if (_avatarEntityData.size() < MAX_NUM_AVATAR_ENTITIES) { - _avatarEntityData.insert(entityID, entityData); + _avatarEntityData.insert(entityID, data); } } else { - itr.value() = entityData; + itr.value() = data; } }); @@ -2775,6 +2776,10 @@ void AvatarData::updateAvatarEntity(const QUuid& entityID, const QByteArray& ent } } +void AvatarData::updateAvatarEntity(const QUuid& entityID, const QString& entityPropertiesString) { + // TODO: implement this as API exposed to JS +} + void AvatarData::clearAvatarEntity(const QUuid& entityID, bool requiresRemovalFromTree) { bool removedEntity = false; diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index b42c387f61..1137cff869 100644 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -952,13 +952,14 @@ public: // FIXME: Can this name be improved? Can it be deprecated? Q_INVOKABLE virtual void setAttachmentsVariant(const QVariantList& variant); + void storeAvatarEntityDataPayload(const QUuid& entityID, const QByteArray& payload); /**jsdoc * @function MyAvatar.updateAvatarEntity * @param {Uuid} entityID * @param {string} entityData */ - Q_INVOKABLE void updateAvatarEntity(const QUuid& entityID, const QByteArray& entityData); + Q_INVOKABLE void updateAvatarEntity(const QUuid& entityID, const QString& entityPropertiesString); /**jsdoc * @function MyAvatar.clearAvatarEntity diff --git a/libraries/entities/src/EntityEditPacketSender.cpp b/libraries/entities/src/EntityEditPacketSender.cpp index 8d0348bae6..dfc2d45d36 100644 --- a/libraries/entities/src/EntityEditPacketSender.cpp +++ b/libraries/entities/src/EntityEditPacketSender.cpp @@ -39,8 +39,7 @@ void EntityEditPacketSender::adjustEditPacketForClockSkew(PacketType type, QByte } } -void EntityEditPacketSender::queueEditAvatarEntityMessage(PacketType type, - EntityTreePointer entityTree, +void EntityEditPacketSender::queueEditAvatarEntityMessage(EntityTreePointer entityTree, EntityItemID entityItemID, const EntityItemProperties& properties) { assert(_myAvatar); @@ -53,6 +52,7 @@ void EntityEditPacketSender::queueEditAvatarEntityMessage(PacketType type, qCDebug(entities) << "EntityEditPacketSender::queueEditAvatarEntityMessage can't find entity: " << entityItemID; return; } + entity->setLastBroadcast(usecTimestampNow()); // serialize ALL properties in an "AvatarEntity" packet // rather than just the ones being edited. @@ -65,17 +65,14 @@ void EntityEditPacketSender::queueEditAvatarEntityMessage(PacketType type, OctreeElement::AppendState appendState = entity->appendEntityData(&packetData, params, extra); if (appendState != OctreeElement::COMPLETED) { - // this entity is too big + // this entity's payload is too big return; } packetData.shrinkByteArrays(); - _myAvatar->updateAvatarEntity(entityItemID, packetData.getUncompressedByteArray()); - - entity->setLastBroadcast(usecTimestampNow()); + _myAvatar->storeAvatarEntityDataPayload(entity->getID(), packetData.getUncompressedByteArray()); } - void EntityEditPacketSender::queueEditEntityMessage(PacketType type, EntityTreePointer entityTree, EntityItemID entityItemID, @@ -85,7 +82,7 @@ void EntityEditPacketSender::queueEditEntityMessage(PacketType type, qCWarning(entities) << "Suppressing entity edit message: cannot send avatar entity edit with no myAvatar"; } else if (properties.getOwningAvatarID() == _myAvatar->getID()) { // this is an avatar-based entity --> update our avatar-data rather than sending to the entity-server - queueEditAvatarEntityMessage(type, entityTree, entityItemID, properties); + queueEditAvatarEntityMessage(entityTree, entityItemID, properties); } else { qCWarning(entities) << "Suppressing entity edit message: cannot send avatar entity edit for another avatar"; } diff --git a/libraries/entities/src/EntityEditPacketSender.h b/libraries/entities/src/EntityEditPacketSender.h index 9bf9095f7f..a4ec2c45f9 100644 --- a/libraries/entities/src/EntityEditPacketSender.h +++ b/libraries/entities/src/EntityEditPacketSender.h @@ -50,7 +50,7 @@ public slots: void processEntityEditNackPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer sendingNode); private: - void queueEditAvatarEntityMessage(PacketType type, EntityTreePointer entityTree, + void queueEditAvatarEntityMessage(EntityTreePointer entityTree, EntityItemID entityItemID, const EntityItemProperties& properties); private: From e37b5b52f0c52ef2a70e5fd48bbab7fc44e5add5 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Fri, 7 Dec 2018 08:39:37 -0800 Subject: [PATCH 169/230] correctly load AvatarEntities from settings redux --- interface/src/avatar/MyAvatar.cpp | 180 +++++++++++++----- interface/src/avatar/MyAvatar.h | 4 + .../src/avatars-renderer/Avatar.cpp | 9 - .../src/avatars-renderer/Avatar.h | 2 +- 4 files changed, 139 insertions(+), 56 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 197bfcdca5..f822d107ad 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1299,19 +1299,25 @@ void MyAvatar::saveData() { _flyingHMDSetting.set(getFlyingHMDPref()); auto hmdInterface = DependencyManager::get<HMDScriptingInterface>(); - _avatarEntitiesLock.withReadLock([&] { - uint32_t numEntities = _avatarEntityData.size(); - uint32_t prevNumEntities = _avatarEntityCountSetting.get(0); - resizeAvatarEntitySettingHandles(std::max<uint32_t>(numEntities, prevNumEntities)); + saveAvatarEntityDataToSettings(); +} + +void MyAvatar::saveAvatarEntityDataToSettings() { + uint32_t numEntities = _avatarEntityData.size(); + uint32_t prevNumEntities = _avatarEntityCountSetting.get(0); + resizeAvatarEntitySettingHandles(std::max<uint32_t>(numEntities, prevNumEntities)); + if (numEntities > 0) { + _avatarEntitiesLock.withReadLock([&] { // Note: this roundabout path from AvatarEntityData to JSON string is NOT efficient - QScriptEngine engine; - QScriptValue toStringMethod = engine.evaluate("(function() { return JSON.stringify(this) })"); + //QScriptEngine engine; + //QScriptValue toStringMethod = engine.evaluate("(function() { return JSON.stringify(this) })"); AvatarEntityMap::const_iterator itr = _avatarEntityData.begin(); numEntities = 0; while (itr != _avatarEntityData.end()) { EntityItemProperties properties; QByteArray buffer = itr.value(); + /* TODO: fix this to read data from elsewhere if (properties.constructFromBuffer((uint8_t*)buffer.data(), buffer.size())) { if (properties.getParentID() == getSessionUUID()) { properties.setParentID(AVATAR_SELF_ID); @@ -1324,24 +1330,27 @@ void MyAvatar::saveData() { } else { // buffer is corrupt --> skip it } + */ + ++numEntities; ++itr; } - _avatarEntityCountSetting.set(numEntities); + }); + } + _avatarEntityCountSetting.set(numEntities); - if (numEntities < prevNumEntities) { - uint32_t numEntitiesToRemove = prevNumEntities - numEntities; - for (uint32_t i = 0; i < numEntitiesToRemove; ++i) { - if (_avatarEntityIDSettings.size() > numEntities) { - _avatarEntityIDSettings.back().remove(); - _avatarEntityIDSettings.pop_back(); - } - if (_avatarEntityDataSettings.size() > numEntities) { - _avatarEntityDataSettings.back().remove(); - _avatarEntityDataSettings.pop_back(); - } + if (numEntities < prevNumEntities) { + uint32_t numEntitiesToRemove = prevNumEntities - numEntities; + for (uint32_t i = 0; i < numEntitiesToRemove; ++i) { + if (_avatarEntityIDSettings.size() > numEntities) { + _avatarEntityIDSettings.back().remove(); + _avatarEntityIDSettings.pop_back(); + } + if (_avatarEntityDataSettings.size() > numEntities) { + _avatarEntityDataSettings.back().remove(); + _avatarEntityDataSettings.pop_back(); } } - }); + } } float loadSetting(Settings& settings, const QString& name, float defaultValue) { @@ -1459,6 +1468,7 @@ void MyAvatar::updateAvatarEntity(const QUuid& entityID, const EntityItemPropert OctreePacketData packetData(false, AvatarTraits::MAXIMUM_TRAIT_SIZE); EncodeBitstreamParams params; EntityTreeElementExtraEncodeDataPointer extra { nullptr }; + QUuid parentID = entity->getParentID(); OctreeElement::AppendState appendState = entity->appendEntityData(&packetData, params, extra); if (appendState != OctreeElement::COMPLETED) { @@ -1466,10 +1476,56 @@ void MyAvatar::updateAvatarEntity(const QUuid& entityID, const EntityItemPropert return; } - packetData.shrinkByteArrays(); - storeAvatarEntityDataPayload(entity->getID(), packetData.getUncompressedByteArray()); + //QByteArray tempArray = QByteArray::fromRawData((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); + QByteArray tempArray((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); + for (int i = 0; i < 4; ++i) { + tempArray[i] = (uint8_t)(0xff); + } + storeAvatarEntityDataPayload(entity->getID(), tempArray); } +void MyAvatar::updateAvatarEntities() { + // TODO: modify this info for MyAvatar + // AVATAR ENTITY UPDATE FLOW + // - if queueEditEntityMessage sees clientOnly flag it does _myAvatar->updateAvatarEntity() + // - updateAvatarEntity saves the bytes and flags the trait instance for the entity as updated + // - ClientTraitsHandler::sendChangedTraitsToMixer sends the entity bytes to the mixer which relays them to other interfaces + // - AvatarHashMap::processBulkAvatarTraits on other interfaces calls avatar->processTraitInstace + // - AvatarData::processTraitInstance calls updateAvatarEntity, which sets _avatarEntityDataChanged = true + // - (My)Avatar::simulate notices _avatarEntityDataChanged and here we are... + + // AVATAR ENTITY DELETE FLOW + // - EntityScriptingInterface::deleteEntity calls _myAvatar->clearAvatarEntity() for deleted avatar entities + // - clearAvatarEntity removes the avatar entity and flags the trait instance for the entity as deleted + // - ClientTraitsHandler::sendChangedTraitsToMixer sends a deletion to the mixer which relays to other interfaces + // - AvatarHashMap::processBulkAvatarTraits on other interfaces calls avatar->processDeletedTraitInstace + // - AvatarData::processDeletedTraitInstance calls clearAvatarEntity + // - AvatarData::clearAvatarEntity sets _avatarEntityDataChanged = true and adds the ID to the detached list + // - Avatar::simulate notices _avatarEntityDataChanged and here we are... + + if (!_avatarEntityDataChanged) { + return; + } + + if (getID().isNull() || + getID() == AVATAR_SELF_ID || + DependencyManager::get<NodeList>()->getSessionUUID() == QUuid()) { + // wait until MyAvatar and this Node gets an ID before doing this. Otherwise, various things go wrong -- + // things get their parent fixed up from AVATAR_SELF_ID to a null uuid which means "no parent". + return; + } + + auto treeRenderer = DependencyManager::get<EntityTreeRenderer>(); + EntityTreePointer entityTree = treeRenderer ? treeRenderer->getTree() : nullptr; + if (!entityTree) { + return; + } + + loadAvatarEntityDataFromSettings(); + setAvatarEntityDataChanged(false); +} + + void MyAvatar::loadData() { getHead()->setBasePitch(_headPitchSetting.get()); @@ -1482,31 +1538,7 @@ void MyAvatar::loadData() { useFullAvatarURL(_fullAvatarURLFromPreferences, _fullAvatarModelName); - int numEntities = _avatarEntityCountSetting.get(0); - auto entityTree = DependencyManager::get<EntityTreeRenderer>()->getTree(); - - if (numEntities > 0) { - QScriptEngine scriptEngine; - for (int i = 0; i < numEntities; i++) { - resizeAvatarEntitySettingHandles(i); - QUuid entityID = QUuid::createUuid(); // generate a new ID - - // NOTE: this path from EntityItemProperties JSON string to EntityItemProperties is NOT efficient - QString propertiesString = _avatarEntityDataSettings[i].get(); - QJsonDocument propertiesDoc = QJsonDocument::fromJson(propertiesString.toUtf8()); - QJsonObject propertiesObj = propertiesDoc.object(); - QVariant propertiesVariant(propertiesObj); - QVariantMap propertiesMap = propertiesVariant.toMap(); - QScriptValue propertiesScriptValue = variantMapToScriptValue(propertiesMap, scriptEngine); - EntityItemProperties properties; - EntityItemPropertiesFromScriptValueIgnoreReadOnly(propertiesScriptValue, properties); - - // the ClientOnly property can get stripped out elsewhere so we need to always set it true here - properties.setClientOnly(true); - - updateAvatarEntity(entityID, properties); - } - } + loadAvatarEntityDataFromSettings(); // Flying preferences must be loaded before calling setFlyingEnabled() Setting::Handle<bool> firstRunVal { Settings::firstRun, true }; @@ -1528,6 +1560,62 @@ void MyAvatar::loadData() { setEnableDebugDrawPosition(Menu::getInstance()->isOptionChecked(MenuOption::AnimDebugDrawPosition)); } +void MyAvatar::loadAvatarEntityDataFromSettings() { + _avatarEntitiesLock.withReadLock([&] { + _avatarEntityData.clear(); + }); + + int numEntities = _avatarEntityCountSetting.get(0); + if (numEntities == 0) { + return; + } + + QScriptEngine scriptEngine; + + std::vector<EntityItemProperties> entitiesToLoad; + entitiesToLoad.resize(numEntities); + for (int i = 0; i < numEntities; i++) { + resizeAvatarEntitySettingHandles(i); + + // NOTE: this path from EntityItemProperties JSON string to EntityItemProperties is NOT efficient + QString propertiesString = _avatarEntityDataSettings[i].get(); + QJsonDocument propertiesDoc = QJsonDocument::fromJson(propertiesString.toUtf8()); + QJsonObject propertiesObj = propertiesDoc.object(); + QVariant propertiesVariant(propertiesObj); + QVariantMap propertiesMap = propertiesVariant.toMap(); + QScriptValue propertiesScriptValue = variantMapToScriptValue(propertiesMap, scriptEngine); + EntityItemProperties& properties = entitiesToLoad[i]; + EntityItemPropertiesFromScriptValueIgnoreReadOnly(propertiesScriptValue, properties); + + // the ClientOnly property can get stripped out elsewhere so we need to always set it true here + properties.setClientOnly(true); + } + + auto entityTreeRenderer = qApp->getEntities(); + EntityTreePointer entityTree = entityTreeRenderer ? entityTreeRenderer->getTree() : nullptr; + if (entityTree) { + OctreePacketData packetData(false, AvatarTraits::MAXIMUM_TRAIT_SIZE); + EncodeBitstreamParams params; + EntityTreeElementExtraEncodeDataPointer extra { nullptr }; + for (uint32_t i = 0; i < entitiesToLoad.size(); ++i) { + // try to create the entity + QUuid entityID = QUuid::createUuid(); // generate a new ID + entityTree->withWriteLock([&] { + EntityItemPointer entity = entityTree->addEntity(entityID, entitiesToLoad[i]); + if (entity) { + // use the entity to build the data payload + OctreeElement::AppendState appendState = entity->appendEntityData(&packetData, params, extra); + if (appendState == OctreeElement::COMPLETED) { + QByteArray tempArray = QByteArray::fromRawData((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); + storeAvatarEntityDataPayload(entityID, tempArray); + } + packetData.reset(); + } + }); + } + } +} + void MyAvatar::saveAttachmentData(const AttachmentData& attachment) const { Settings settings; settings.beginGroup("savedAttachmentData"); diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index b1848a19b9..4568688d27 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -13,6 +13,7 @@ #define hifi_MyAvatar_h #include <bitset> +#include <iostream> // adebug #include <glm/glm.hpp> @@ -577,7 +578,9 @@ public: // get/set avatar data void resizeAvatarEntitySettingHandles(unsigned int avatarEntityIndex); void saveData(); + void saveAvatarEntityDataToSettings(); void loadData(); + void loadAvatarEntityDataFromSettings(); void saveAttachmentData(const AttachmentData& attachment) const; AttachmentData loadAttachmentData(const QUrl& modelURL, const QString& jointName = QString()) const; @@ -1184,6 +1187,7 @@ public: virtual void setAttachmentsVariant(const QVariantList& variant) override; glm::vec3 getNextPosition() { return _goToPending ? _goToPosition : getWorldPosition(); } + void updateAvatarEntities() override; /**jsdoc * Create a new grab. diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index 23093028b1..722c3c8a5e 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -332,14 +332,6 @@ void Avatar::updateAvatarEntities() { return; } - if (getID().isNull() || - getID() == AVATAR_SELF_ID || - DependencyManager::get<NodeList>()->getSessionUUID() == QUuid()) { - // wait until MyAvatar and this Node gets an ID before doing this. Otherwise, various things go wrong -- - // things get their parent fixed up from AVATAR_SELF_ID to a null uuid which means "no parent". - return; - } - auto treeRenderer = DependencyManager::get<EntityTreeRenderer>(); EntityTreePointer entityTree = treeRenderer ? treeRenderer->getTree() : nullptr; if (!entityTree) { @@ -380,7 +372,6 @@ void Avatar::updateAvatarEntities() { EntityItemProperties properties; { - // create a temporary EntityItem to unpack the data int32_t bytesLeftToRead = data.size(); unsigned char* dataAt = (unsigned char*)(data.data()); properties.constructFromBuffer(dataAt, bytesLeftToRead); diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h index fddd52a6dd..9a57e46f1a 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h @@ -139,7 +139,7 @@ public: typedef render::Payload<AvatarData> Payload; void init(); - void updateAvatarEntities(); + virtual void updateAvatarEntities(); void removeAvatarEntitiesFromTree(); void simulate(float deltaTime, bool inView); virtual void simulateAttachments(float deltaTime); From 0ed936520dde55d08dca60798ec972abc5edb202 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Fri, 7 Dec 2018 10:44:09 -0800 Subject: [PATCH 170/230] MyAvatar saving to settings works again --- interface/src/avatar/MyAvatar.cpp | 62 ++++++++++++------------------- interface/src/avatar/MyAvatar.h | 3 +- 2 files changed, 26 insertions(+), 39 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index f822d107ad..4a1fc1b740 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1252,7 +1252,7 @@ void MyAvatar::saveAvatarUrl() { } } -void MyAvatar::resizeAvatarEntitySettingHandles(unsigned int avatarEntityIndex) { +void MyAvatar::resizeAvatarEntitySettingHandles(uint32_t maxIndex) { // The original Settings interface saved avatar-entity array data like this: // Avatar/avatarEntityData/size: 5 // Avatar/avatarEntityData/1/id: ... @@ -1262,14 +1262,15 @@ void MyAvatar::resizeAvatarEntitySettingHandles(unsigned int avatarEntityIndex) // Avatar/avatarEntityData/5/properties: ... // // Create Setting::Handles to mimic this. - - while (_avatarEntityIDSettings.size() <= avatarEntityIndex) { + uint32_t settingsIndex = _avatarEntityIDSettings.size() + 1; + while (settingsIndex <= maxIndex) { Setting::Handle<QString> idHandle(QStringList() << AVATAR_SETTINGS_GROUP_NAME << "avatarEntityData" - << QString::number(avatarEntityIndex + 1) << "id", QUuid().toString()); + << QString::number(settingsIndex) << "id", QUuid().toString()); _avatarEntityIDSettings.push_back(idHandle); Setting::Handle<QString> dataHandle(QStringList() << AVATAR_SETTINGS_GROUP_NAME << "avatarEntityData" - << QString::number(avatarEntityIndex + 1) << "properties", QString()); + << QString::number(settingsIndex) << "properties", QString()); _avatarEntityDataSettings.push_back(dataHandle); + settingsIndex++; } } @@ -1303,41 +1304,23 @@ void MyAvatar::saveData() { } void MyAvatar::saveAvatarEntityDataToSettings() { - uint32_t numEntities = _avatarEntityData.size(); + // save new settings + uint32_t numEntities = _avatarEntitiesAsPropertiesStrings.size(); + _avatarEntityCountSetting.set(numEntities); uint32_t prevNumEntities = _avatarEntityCountSetting.get(0); resizeAvatarEntitySettingHandles(std::max<uint32_t>(numEntities, prevNumEntities)); if (numEntities > 0) { _avatarEntitiesLock.withReadLock([&] { - - // Note: this roundabout path from AvatarEntityData to JSON string is NOT efficient - //QScriptEngine engine; - //QScriptValue toStringMethod = engine.evaluate("(function() { return JSON.stringify(this) })"); - AvatarEntityMap::const_iterator itr = _avatarEntityData.begin(); - numEntities = 0; - while (itr != _avatarEntityData.end()) { - EntityItemProperties properties; - QByteArray buffer = itr.value(); - /* TODO: fix this to read data from elsewhere - if (properties.constructFromBuffer((uint8_t*)buffer.data(), buffer.size())) { - if (properties.getParentID() == getSessionUUID()) { - properties.setParentID(AVATAR_SELF_ID); - } - QScriptValue scriptValue = EntityItemPropertiesToScriptValue(&engine, properties); - scriptValue.setProperty("toString", toStringMethod); - _avatarEntityDataSettings[numEntities].set(scriptValue.toString()); - _avatarEntityIDSettings[numEntities].set(itr.key().toString()); - ++numEntities; - } else { - // buffer is corrupt --> skip it + uint32_t i = 0; + for (const auto& mapEntry : _avatarEntitiesAsPropertiesStrings) { + _avatarEntityDataSettings[i].set(mapEntry.second); + _avatarEntityIDSettings[i].set(mapEntry.first.toString()); + ++i; } - */ - ++numEntities; - ++itr; - } - }); + }); } - _avatarEntityCountSetting.set(numEntities); + // remove old settings if any if (numEntities < prevNumEntities) { uint32_t numEntitiesToRemove = prevNumEntities - numEntities; for (uint32_t i = 0; i < numEntitiesToRemove; ++i) { @@ -1468,7 +1451,6 @@ void MyAvatar::updateAvatarEntity(const QUuid& entityID, const EntityItemPropert OctreePacketData packetData(false, AvatarTraits::MAXIMUM_TRAIT_SIZE); EncodeBitstreamParams params; EntityTreeElementExtraEncodeDataPointer extra { nullptr }; - QUuid parentID = entity->getParentID(); OctreeElement::AppendState appendState = entity->appendEntityData(&packetData, params, extra); if (appendState != OctreeElement::COMPLETED) { @@ -1571,12 +1553,10 @@ void MyAvatar::loadAvatarEntityDataFromSettings() { } QScriptEngine scriptEngine; - std::vector<EntityItemProperties> entitiesToLoad; entitiesToLoad.resize(numEntities); + resizeAvatarEntitySettingHandles(numEntities); for (int i = 0; i < numEntities; i++) { - resizeAvatarEntitySettingHandles(i); - // NOTE: this path from EntityItemProperties JSON string to EntityItemProperties is NOT efficient QString propertiesString = _avatarEntityDataSettings[i].get(); QJsonDocument propertiesDoc = QJsonDocument::fromJson(propertiesString.toUtf8()); @@ -1584,13 +1564,15 @@ void MyAvatar::loadAvatarEntityDataFromSettings() { QVariant propertiesVariant(propertiesObj); QVariantMap propertiesMap = propertiesVariant.toMap(); QScriptValue propertiesScriptValue = variantMapToScriptValue(propertiesMap, scriptEngine); + + // NOTE: we grab properties by reference and wrangle it: EntityItemProperties& properties = entitiesToLoad[i]; EntityItemPropertiesFromScriptValueIgnoreReadOnly(propertiesScriptValue, properties); - // the ClientOnly property can get stripped out elsewhere so we need to always set it true here properties.setClientOnly(true); } + _avatarEntitiesAsPropertiesStrings.clear(); auto entityTreeRenderer = qApp->getEntities(); EntityTreePointer entityTree = entityTreeRenderer ? entityTreeRenderer->getTree() : nullptr; if (entityTree) { @@ -1606,13 +1588,17 @@ void MyAvatar::loadAvatarEntityDataFromSettings() { // use the entity to build the data payload OctreeElement::AppendState appendState = entity->appendEntityData(&packetData, params, extra); if (appendState == OctreeElement::COMPLETED) { + // only remember an AvatarEntity that successfully loads QByteArray tempArray = QByteArray::fromRawData((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); storeAvatarEntityDataPayload(entityID, tempArray); + _avatarEntitiesAsPropertiesStrings[entityID] = _avatarEntityDataSettings[i].get(); } packetData.reset(); } }); } + } else { + // TODO? handle this case: try to load AvatatEntityData from settings again later? } } diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 4568688d27..b343f9bf79 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -576,7 +576,7 @@ public: float getHMDRollControlRate() const { return _hmdRollControlRate; } // get/set avatar data - void resizeAvatarEntitySettingHandles(unsigned int avatarEntityIndex); + void resizeAvatarEntitySettingHandles(uint32_t maxIndex); void saveData(); void saveAvatarEntityDataToSettings(); void loadData(); @@ -1945,6 +1945,7 @@ private: Setting::Handle<bool> _allowTeleportingSetting { "allowTeleporting", true }; std::vector<Setting::Handle<QString>> _avatarEntityIDSettings; std::vector<Setting::Handle<QString>> _avatarEntityDataSettings; + std::map<QUuid, QString> _avatarEntitiesAsPropertiesStrings; }; QScriptValue audioListenModeToScriptValue(QScriptEngine* engine, const AudioListenerMode& audioListenerMode); From ec384d7dbbf5097789810c93963030698ab6b1f8 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Fri, 7 Dec 2018 11:30:53 -0800 Subject: [PATCH 171/230] more correct reload AvatarEntityData from settings --- interface/src/Application.cpp | 3 +- interface/src/avatar/MyAvatar.cpp | 46 ++++++++++++++++--------------- interface/src/avatar/MyAvatar.h | 2 ++ 3 files changed, 28 insertions(+), 23 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 134c375b56..0fbe9fba94 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -6783,7 +6783,8 @@ void Application::clearDomainOctreeDetails() { DependencyManager::get<TextureCache>()->clearUnusedResources(); DependencyManager::get<recording::ClipCache>()->clearUnusedResources(); - getMyAvatar()->setAvatarEntityDataChanged(true); + // we just deleted all of MyAvatar's AvatarEntities so we flag it to reload from settings + getMyAvatar()->rememberToReloadOfAvatarEntityDataFromSettings(); } void Application::domainURLChanged(QUrl domainURL) { diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 4a1fc1b740..ce70d40c74 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1443,8 +1443,10 @@ void MyAvatar::updateAvatarEntity(const QUuid& entityID, const EntityItemPropert // TODO? handle this case? return; } + // TODO: remember this entity and its properties, so we can save to settings } else { // TODO: propagate changes to entity + // TODO: and remember these changes so we can save to settings } } @@ -1474,7 +1476,7 @@ void MyAvatar::updateAvatarEntities() { // - ClientTraitsHandler::sendChangedTraitsToMixer sends the entity bytes to the mixer which relays them to other interfaces // - AvatarHashMap::processBulkAvatarTraits on other interfaces calls avatar->processTraitInstace // - AvatarData::processTraitInstance calls updateAvatarEntity, which sets _avatarEntityDataChanged = true - // - (My)Avatar::simulate notices _avatarEntityDataChanged and here we are... + // - (My)Avatar::simulate calls updateAvatarEntities every frame and here we are... // AVATAR ENTITY DELETE FLOW // - EntityScriptingInterface::deleteEntity calls _myAvatar->clearAvatarEntity() for deleted avatar entities @@ -1483,28 +1485,26 @@ void MyAvatar::updateAvatarEntities() { // - AvatarHashMap::processBulkAvatarTraits on other interfaces calls avatar->processDeletedTraitInstace // - AvatarData::processDeletedTraitInstance calls clearAvatarEntity // - AvatarData::clearAvatarEntity sets _avatarEntityDataChanged = true and adds the ID to the detached list - // - Avatar::simulate notices _avatarEntityDataChanged and here we are... + // - Avatar::simulate calls updateAvatarEntities every frame and here we are... - if (!_avatarEntityDataChanged) { - return; + if (_reloadAvatarEntityDataFromSettings) { + + if (getID().isNull() || + getID() == AVATAR_SELF_ID || + DependencyManager::get<NodeList>()->getSessionUUID() == QUuid()) { + // wait until MyAvatar and this Node gets an ID before doing this. Otherwise, various things go wrong -- + // things get their parent fixed up from AVATAR_SELF_ID to a null uuid which means "no parent". + return; + } + + auto treeRenderer = DependencyManager::get<EntityTreeRenderer>(); + EntityTreePointer entityTree = treeRenderer ? treeRenderer->getTree() : nullptr; + if (!entityTree) { + return; + } + + loadAvatarEntityDataFromSettings(); } - - if (getID().isNull() || - getID() == AVATAR_SELF_ID || - DependencyManager::get<NodeList>()->getSessionUUID() == QUuid()) { - // wait until MyAvatar and this Node gets an ID before doing this. Otherwise, various things go wrong -- - // things get their parent fixed up from AVATAR_SELF_ID to a null uuid which means "no parent". - return; - } - - auto treeRenderer = DependencyManager::get<EntityTreeRenderer>(); - EntityTreePointer entityTree = treeRenderer ? treeRenderer->getTree() : nullptr; - if (!entityTree) { - return; - } - - loadAvatarEntityDataFromSettings(); - setAvatarEntityDataChanged(false); } @@ -1547,6 +1547,7 @@ void MyAvatar::loadAvatarEntityDataFromSettings() { _avatarEntityData.clear(); }); + _reloadAvatarEntityDataFromSettings = false; int numEntities = _avatarEntityCountSetting.get(0); if (numEntities == 0) { return; @@ -1588,7 +1589,7 @@ void MyAvatar::loadAvatarEntityDataFromSettings() { // use the entity to build the data payload OctreeElement::AppendState appendState = entity->appendEntityData(&packetData, params, extra); if (appendState == OctreeElement::COMPLETED) { - // only remember an AvatarEntity that successfully loads + // only remember an AvatarEntity that successfully loads and can be packed QByteArray tempArray = QByteArray::fromRawData((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); storeAvatarEntityDataPayload(entityID, tempArray); _avatarEntitiesAsPropertiesStrings[entityID] = _avatarEntityDataSettings[i].get(); @@ -2089,6 +2090,7 @@ void MyAvatar::removeWearableAvatarEntities() { } QVariantList MyAvatar::getAvatarEntitiesVariant() { + // NOTE: this method is NOT efficient QVariantList avatarEntitiesData; QScriptEngine scriptEngine; auto treeRenderer = DependencyManager::get<EntityTreeRenderer>(); diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index b343f9bf79..a6df4de7bf 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -1188,6 +1188,7 @@ public: glm::vec3 getNextPosition() { return _goToPending ? _goToPosition : getWorldPosition(); } void updateAvatarEntities() override; + void rememberToReloadOfAvatarEntityDataFromSettings() { _reloadAvatarEntityDataFromSettings = true; } /**jsdoc * Create a new grab. @@ -1927,6 +1928,7 @@ private: bool _haveReceivedHeightLimitsFromDomain { false }; int _disableHandTouchCount { 0 }; bool _skeletonModelLoaded { false }; + bool _reloadAvatarEntityDataFromSettings { true }; Setting::Handle<QString> _dominantHandSetting; Setting::Handle<float> _headPitchSetting; From fe2ee68b79bcf9a4f53795cdc30ae9582305edd2 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Fri, 7 Dec 2018 13:49:48 -0800 Subject: [PATCH 172/230] add EntityItemProperties::copyFromJSONString() --- interface/src/avatar/MyAvatar.cpp | 36 ++++++++----------- interface/src/avatar/MyAvatar.h | 6 ++-- .../entities/src/EntityItemProperties.cpp | 14 +++++++- libraries/entities/src/EntityItemProperties.h | 1 + 4 files changed, 32 insertions(+), 25 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index ce70d40c74..7d6318ddbb 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -50,7 +50,6 @@ #include <RecordingScriptingInterface.h> #include <trackers/FaceTracker.h> #include <RenderableModelEntityItem.h> -#include <VariantMapToScriptValue.h> #include "MyHead.h" #include "MySkeletonModel.h" @@ -1305,14 +1304,14 @@ void MyAvatar::saveData() { void MyAvatar::saveAvatarEntityDataToSettings() { // save new settings - uint32_t numEntities = _avatarEntitiesAsPropertiesStrings.size(); + uint32_t numEntities = _avatarEntityStrings.size(); _avatarEntityCountSetting.set(numEntities); uint32_t prevNumEntities = _avatarEntityCountSetting.get(0); resizeAvatarEntitySettingHandles(std::max<uint32_t>(numEntities, prevNumEntities)); if (numEntities > 0) { _avatarEntitiesLock.withReadLock([&] { uint32_t i = 0; - for (const auto& mapEntry : _avatarEntitiesAsPropertiesStrings) { + for (const auto& mapEntry : _avatarEntityStrings) { _avatarEntityDataSettings[i].set(mapEntry.second); _avatarEntityIDSettings[i].set(mapEntry.first.toString()); ++i; @@ -1430,7 +1429,13 @@ void MyAvatar::setEnableInverseKinematics(bool isEnabled) { _skeletonModel->getRig().setEnableInverseKinematics(isEnabled); } -void MyAvatar::updateAvatarEntity(const QUuid& entityID, const EntityItemProperties& properties) { +void MyAvatar::updateAvatarEntity(const QUuid& entityID, const QString& entityPropertiesString) { + /* TODO: implement this so JS can add/update (and delete?) AvatarEntitieskj:w + // convert string to properties + // NOTE: this path from EntityItemProperties JSON string to EntityItemProperties is NOT efficient + EntityItemProperties properties; + properties.copyFromJSONString(scriptEngine, entityPropertiesString); + auto entityTreeRenderer = qApp->getEntities(); EntityTreePointer entityTree = entityTreeRenderer ? entityTreeRenderer->getTree() : nullptr; EntityItemPointer entity; @@ -1460,12 +1465,9 @@ void MyAvatar::updateAvatarEntity(const QUuid& entityID, const EntityItemPropert return; } - //QByteArray tempArray = QByteArray::fromRawData((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); - QByteArray tempArray((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); - for (int i = 0; i < 4; ++i) { - tempArray[i] = (uint8_t)(0xff); - } + QByteArray tempArray = QByteArray::fromRawData((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); storeAvatarEntityDataPayload(entity->getID(), tempArray); + */ } void MyAvatar::updateAvatarEntities() { @@ -1558,22 +1560,14 @@ void MyAvatar::loadAvatarEntityDataFromSettings() { entitiesToLoad.resize(numEntities); resizeAvatarEntitySettingHandles(numEntities); for (int i = 0; i < numEntities; i++) { - // NOTE: this path from EntityItemProperties JSON string to EntityItemProperties is NOT efficient - QString propertiesString = _avatarEntityDataSettings[i].get(); - QJsonDocument propertiesDoc = QJsonDocument::fromJson(propertiesString.toUtf8()); - QJsonObject propertiesObj = propertiesDoc.object(); - QVariant propertiesVariant(propertiesObj); - QVariantMap propertiesMap = propertiesVariant.toMap(); - QScriptValue propertiesScriptValue = variantMapToScriptValue(propertiesMap, scriptEngine); - - // NOTE: we grab properties by reference and wrangle it: + // DANGER: this JSONString --> EntityItemProperties operation is expensive EntityItemProperties& properties = entitiesToLoad[i]; - EntityItemPropertiesFromScriptValueIgnoreReadOnly(propertiesScriptValue, properties); + properties.copyFromJSONString(scriptEngine, _avatarEntityDataSettings[i].get()); // the ClientOnly property can get stripped out elsewhere so we need to always set it true here properties.setClientOnly(true); } - _avatarEntitiesAsPropertiesStrings.clear(); + _avatarEntityStrings.clear(); auto entityTreeRenderer = qApp->getEntities(); EntityTreePointer entityTree = entityTreeRenderer ? entityTreeRenderer->getTree() : nullptr; if (entityTree) { @@ -1592,7 +1586,7 @@ void MyAvatar::loadAvatarEntityDataFromSettings() { // only remember an AvatarEntity that successfully loads and can be packed QByteArray tempArray = QByteArray::fromRawData((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); storeAvatarEntityDataPayload(entityID, tempArray); - _avatarEntitiesAsPropertiesStrings[entityID] = _avatarEntityDataSettings[i].get(); + _avatarEntityStrings[entityID] = _avatarEntityDataSettings[i].get(); } packetData.reset(); } diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index a6df4de7bf..b05d9ed875 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -1407,8 +1407,7 @@ public slots: */ bool getEnableMeshVisible() const override; - // TODO: make this invokable, probably also move down to AvatarData - void updateAvatarEntity(const QUuid& entityID, const EntityItemProperties& properties); + void updateAvatarEntity(const QUuid& entityID, const QString& entityPropertiesString) override; /**jsdoc * Set whether or not your avatar mesh is visible. @@ -1947,7 +1946,8 @@ private: Setting::Handle<bool> _allowTeleportingSetting { "allowTeleporting", true }; std::vector<Setting::Handle<QString>> _avatarEntityIDSettings; std::vector<Setting::Handle<QString>> _avatarEntityDataSettings; - std::map<QUuid, QString> _avatarEntitiesAsPropertiesStrings; + std::map<QUuid, QString> _avatarEntityStrings; + std::map<QUuid, QString> _avatarEntityProperties; }; QScriptValue audioListenModeToScriptValue(QScriptEngine* engine, const AudioListenerMode& audioListenerMode); diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 0badd00bc3..6ba4c84985 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -28,6 +28,7 @@ #include <GLMHelpers.h> #include <RegisteredMetaTypes.h> #include <Extents.h> +#include <VariantMapToScriptValue.h> #include "EntitiesLogging.h" #include "EntityItem.h" @@ -2033,6 +2034,18 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object, bool _lastEdited = usecTimestampNow(); } +void EntityItemProperties::copyFromJSONString(QScriptEngine& scriptEngine, const QString& jsonString) { + // DANGER: this method is expensive + QJsonDocument propertiesDoc = QJsonDocument::fromJson(jsonString.toUtf8()); + QJsonObject propertiesObj = propertiesDoc.object(); + QVariant propertiesVariant(propertiesObj); + QVariantMap propertiesMap = propertiesVariant.toMap(); + QScriptValue propertiesScriptValue = variantMapToScriptValue(propertiesMap, scriptEngine); + bool honorReadOnly = true; + copyFromScriptValue(propertiesScriptValue, honorReadOnly); +} + + void EntityItemProperties::merge(const EntityItemProperties& other) { // Core COPY_PROPERTY_IF_CHANGED(simulationOwner); @@ -2262,7 +2275,6 @@ void EntityItemPropertiesFromScriptValueHonorReadOnly(const QScriptValue &object properties.copyFromScriptValue(object, true); } - QScriptValue EntityPropertyFlagsToScriptValue(QScriptEngine* engine, const EntityPropertyFlags& flags) { return EntityItemProperties::entityPropertyFlagsToScriptValue(engine, flags); } diff --git a/libraries/entities/src/EntityItemProperties.h b/libraries/entities/src/EntityItemProperties.h index 4a9729f5fe..48f4aa333e 100644 --- a/libraries/entities/src/EntityItemProperties.h +++ b/libraries/entities/src/EntityItemProperties.h @@ -109,6 +109,7 @@ public: virtual QScriptValue copyToScriptValue(QScriptEngine* engine, bool skipDefaults, bool allowUnknownCreateTime = false, bool strictSemantics = false, EntityPsuedoPropertyFlags psueudoPropertyFlags = EntityPsuedoPropertyFlags()) const; virtual void copyFromScriptValue(const QScriptValue& object, bool honorReadOnly); + void copyFromJSONString(QScriptEngine& scriptEngine, const QString& jsonString); static QScriptValue entityPropertyFlagsToScriptValue(QScriptEngine* engine, const EntityPropertyFlags& flags); static void entityPropertyFlagsFromScriptValue(const QScriptValue& object, EntityPropertyFlags& flags); From 6c81e8845bc800f80fdff4d583f356490319cfdd Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Fri, 7 Dec 2018 14:43:44 -0800 Subject: [PATCH 173/230] cleanup --- interface/src/avatar/MyAvatar.cpp | 59 ++++++++++++------- interface/src/avatar/MyAvatar.h | 3 +- libraries/avatars/src/AvatarData.cpp | 2 +- libraries/avatars/src/AvatarData.h | 4 +- .../entities/src/EntityEditPacketSender.cpp | 4 +- libraries/octree/src/OctreePacketData.cpp | 9 --- libraries/octree/src/OctreePacketData.h | 2 - 7 files changed, 44 insertions(+), 39 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 7d6318ddbb..04f1cb599e 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1303,6 +1303,10 @@ void MyAvatar::saveData() { } void MyAvatar::saveAvatarEntityDataToSettings() { + if (!_entitiesToSaveToSettings.empty()) { + // TODO: save these to settings. + _entitiesToSaveToSettings.clear(); + } // save new settings uint32_t numEntities = _avatarEntityStrings.size(); _avatarEntityCountSetting.set(numEntities); @@ -1429,17 +1433,28 @@ void MyAvatar::setEnableInverseKinematics(bool isEnabled) { _skeletonModel->getRig().setEnableInverseKinematics(isEnabled); } -void MyAvatar::updateAvatarEntity(const QUuid& entityID, const QString& entityPropertiesString) { - /* TODO: implement this so JS can add/update (and delete?) AvatarEntitieskj:w - // convert string to properties - // NOTE: this path from EntityItemProperties JSON string to EntityItemProperties is NOT efficient - EntityItemProperties properties; - properties.copyFromJSONString(scriptEngine, entityPropertiesString); +void MyAvatar::storeAvatarEntityDataPayload(const QUuid& entityID, const QByteArray& payload) { + AvatarData::storeAvatarEntityDataPayload(entityID, payload); + _entitiesToSaveToSettings.insert(entityID); +} +/* TODO: verify we don't need this +void MyAvatar::updateAvatarEntity(const QUuid& entityID, const QString& entityPropertiesString) { auto entityTreeRenderer = qApp->getEntities(); EntityTreePointer entityTree = entityTreeRenderer ? entityTreeRenderer->getTree() : nullptr; EntityItemPointer entity; if (entityTree) { + return; + } + // convert string to properties + EntityItemProperties properties; + { + // NOTE: this path from EntityItemProperties JSON string to EntityItemProperties is NOT efficient + QScriptEngine scriptEngine; + properties.copyFromJSONString(scriptEngine, entityPropertiesString); + } + + entityTree->withWriteLock([&] { entity = entityTree->findEntityByID(entityID); if (!entity) { entity = entityTree->addEntity(entityID, properties); @@ -1450,25 +1465,25 @@ void MyAvatar::updateAvatarEntity(const QUuid& entityID, const QString& entityPr } // TODO: remember this entity and its properties, so we can save to settings } else { - // TODO: propagate changes to entity - // TODO: and remember these changes so we can save to settings + entityTree->updateEntity(entityID, properties); } - } + if (entity) { + // build update packet for later + OctreePacketData packetData(false, AvatarTraits::MAXIMUM_TRAIT_SIZE); + EncodeBitstreamParams params; + EntityTreeElementExtraEncodeDataPointer extra { nullptr }; + OctreeElement::AppendState appendState = entity->appendEntityData(&packetData, params, extra); + if (appendState == OctreeElement::COMPLETED) { + QByteArray tempArray = QByteArray::fromRawData((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); + storeAvatarEntityDataPayload(entity->getID(), tempArray); + properties = entity->getProperties(); + _entitiesToSaveToSettings.insert(entityID); + } - OctreePacketData packetData(false, AvatarTraits::MAXIMUM_TRAIT_SIZE); - EncodeBitstreamParams params; - EntityTreeElementExtraEncodeDataPointer extra { nullptr }; - OctreeElement::AppendState appendState = entity->appendEntityData(&packetData, params, extra); - - if (appendState != OctreeElement::COMPLETED) { - // this entity's data is too big - return; - } - - QByteArray tempArray = QByteArray::fromRawData((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); - storeAvatarEntityDataPayload(entity->getID(), tempArray); - */ + } + }); } +*/ void MyAvatar::updateAvatarEntities() { // TODO: modify this info for MyAvatar diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index b05d9ed875..b100eebb73 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -1407,7 +1407,7 @@ public slots: */ bool getEnableMeshVisible() const override; - void updateAvatarEntity(const QUuid& entityID, const QString& entityPropertiesString) override; + void storeAvatarEntityDataPayload(const QUuid& entityID, const QByteArray& payload) override; /**jsdoc * Set whether or not your avatar mesh is visible. @@ -1948,6 +1948,7 @@ private: std::vector<Setting::Handle<QString>> _avatarEntityDataSettings; std::map<QUuid, QString> _avatarEntityStrings; std::map<QUuid, QString> _avatarEntityProperties; + std::set<QUuid> _entitiesToSaveToSettings; }; QScriptValue audioListenModeToScriptValue(QScriptEngine* engine, const AudioListenerMode& audioListenerMode); diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index e015410582..9380699504 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -2777,7 +2777,7 @@ void AvatarData::storeAvatarEntityDataPayload(const QUuid& entityID, const QByte } void AvatarData::updateAvatarEntity(const QUuid& entityID, const QString& entityPropertiesString) { - // TODO: implement this as API exposed to JS + // TODO: implement this to expose AvatarEntity to JS } void AvatarData::clearAvatarEntity(const QUuid& entityID, bool requiresRemovalFromTree) { diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index 1137cff869..f2f856678b 100644 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -952,14 +952,14 @@ public: // FIXME: Can this name be improved? Can it be deprecated? Q_INVOKABLE virtual void setAttachmentsVariant(const QVariantList& variant); - void storeAvatarEntityDataPayload(const QUuid& entityID, const QByteArray& payload); + virtual void storeAvatarEntityDataPayload(const QUuid& entityID, const QByteArray& payload); /**jsdoc * @function MyAvatar.updateAvatarEntity * @param {Uuid} entityID * @param {string} entityData */ - Q_INVOKABLE void updateAvatarEntity(const QUuid& entityID, const QString& entityPropertiesString); + Q_INVOKABLE virtual void updateAvatarEntity(const QUuid& entityID, const QString& entityPropertiesString); /**jsdoc * @function MyAvatar.clearAvatarEntity diff --git a/libraries/entities/src/EntityEditPacketSender.cpp b/libraries/entities/src/EntityEditPacketSender.cpp index dfc2d45d36..40dd26a467 100644 --- a/libraries/entities/src/EntityEditPacketSender.cpp +++ b/libraries/entities/src/EntityEditPacketSender.cpp @@ -69,8 +69,8 @@ void EntityEditPacketSender::queueEditAvatarEntityMessage(EntityTreePointer enti return; } - packetData.shrinkByteArrays(); - _myAvatar->storeAvatarEntityDataPayload(entity->getID(), packetData.getUncompressedByteArray()); + QByteArray tempArray = QByteArray::fromRawData((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); + _myAvatar->storeAvatarEntityDataPayload(entityItemID, tempArray); } void EntityEditPacketSender::queueEditEntityMessage(PacketType type, diff --git a/libraries/octree/src/OctreePacketData.cpp b/libraries/octree/src/OctreePacketData.cpp index 60b0e6fbad..fd57f2fa3a 100644 --- a/libraries/octree/src/OctreePacketData.cpp +++ b/libraries/octree/src/OctreePacketData.cpp @@ -654,15 +654,6 @@ void OctreePacketData::loadFinalizedContent(const unsigned char* data, int lengt } } -void OctreePacketData::shrinkByteArrays() { - _uncompressedByteArray.resize(_bytesInUse); - _compressedByteArray.resize(_compressedBytes); - // if you call this method then you are expected to be done packing to raw pointers - // and you just want the ByteArrays - // therefore we reset - reset(); -} - void OctreePacketData::debugContent() { qCDebug(octree, "OctreePacketData::debugContent()... COMPRESSED DATA.... size=%d",_compressedBytes); int perline=0; diff --git a/libraries/octree/src/OctreePacketData.h b/libraries/octree/src/OctreePacketData.h index cca78e19b3..01ed4977b0 100644 --- a/libraries/octree/src/OctreePacketData.h +++ b/libraries/octree/src/OctreePacketData.h @@ -245,8 +245,6 @@ public: int getBytesAvailable() { return _bytesAvailable; } - void shrinkByteArrays(); - /// displays contents for debugging void debugContent(); void debugBytes(); From 61b8d005b51362d2864f1d87cb7b0f8cd17a1d03 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Fri, 7 Dec 2018 16:39:07 -0800 Subject: [PATCH 174/230] scripts can edit AvatarEntities again --- interface/src/avatar/MyAvatar.cpp | 153 +++++++++--------- interface/src/avatar/MyAvatar.h | 2 + .../src/avatars-renderer/Avatar.cpp | 12 +- libraries/avatars/src/AvatarData.h | 2 +- 4 files changed, 82 insertions(+), 87 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 04f1cb599e..9ece7a0ac7 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1303,25 +1303,74 @@ void MyAvatar::saveData() { } void MyAvatar::saveAvatarEntityDataToSettings() { - if (!_entitiesToSaveToSettings.empty()) { - // TODO: save these to settings. - _entitiesToSaveToSettings.clear(); + if (_entitiesToSaveToSettings.size() + _entitiesToRemoveFromSettings.size() == 0) { + // nothing to do + return; } - // save new settings - uint32_t numEntities = _avatarEntityStrings.size(); - _avatarEntityCountSetting.set(numEntities); + auto entityTreeRenderer = qApp->getEntities(); + EntityTreePointer entityTree = entityTreeRenderer ? entityTreeRenderer->getTree() : nullptr; + if (!entityTree) { + return; + } + + // find set of things that changed + std::set<QUuid> entitiesToSave; + _avatarEntitiesLock.withWriteLock([&] { + // TODO: save these to settings. + entitiesToSave = std::move(_entitiesToSaveToSettings); + for (const auto& id : _entitiesToRemoveFromSettings) { + // remove + entitiesToSave.erase(id); + std::map<QUuid, QString>::iterator itr = _avatarEntityStrings.find(id); + if (itr != _avatarEntityStrings.end()) { + _avatarEntityStrings.erase(itr); + } + } + for (const auto& id : entitiesToSave) { + // remove old strings to be replaced by new saves + std::map<QUuid, QString>::iterator itr = _avatarEntityStrings.find(id); + if (itr != _avatarEntityStrings.end()) { + _avatarEntityStrings.erase(itr); + } + } + _entitiesToRemoveFromSettings.clear(); + }); + + uint32_t numEntities = entitiesToSave.size() + _avatarEntityStrings.size(); uint32_t prevNumEntities = _avatarEntityCountSetting.get(0); resizeAvatarEntitySettingHandles(std::max<uint32_t>(numEntities, prevNumEntities)); + + // save new settings if (numEntities > 0) { - _avatarEntitiesLock.withReadLock([&] { - uint32_t i = 0; - for (const auto& mapEntry : _avatarEntityStrings) { - _avatarEntityDataSettings[i].set(mapEntry.second); - _avatarEntityIDSettings[i].set(mapEntry.first.toString()); - ++i; + // get all properties to save + std::map<QUuid, EntityItemProperties> allProperties; + EntityItemPointer entity; + entityTree->withWriteLock([&] { + for (auto& id : entitiesToSave) { + EntityItemPointer entity = entityTree->findEntityByID(id); + if (entity) { + allProperties[id] = entity->getProperties(); + } } }); + // convert properties to strings + QScriptEngine scriptEngine; + QScriptValue toStringMethod = scriptEngine.evaluate("(function() { return JSON.stringify(this) })"); + for (const auto& entry : allProperties) { + QScriptValue scriptValue = EntityItemPropertiesToScriptValue(&scriptEngine, entry.second); + scriptValue.setProperty("toString", toStringMethod); + _avatarEntityStrings[entry.first] = scriptValue.toString(); + } + // save all strings + uint32_t i = 0; + for (const auto& entry : _avatarEntityStrings) { + _avatarEntityIDSettings[i].set(entry.first.toString()); + _avatarEntityDataSettings[i].set(entry.second); + ++i; + } + numEntities = i; } + _avatarEntityCountSetting.set(numEntities); // remove old settings if any if (numEntities < prevNumEntities) { @@ -1435,91 +1484,32 @@ void MyAvatar::setEnableInverseKinematics(bool isEnabled) { void MyAvatar::storeAvatarEntityDataPayload(const QUuid& entityID, const QByteArray& payload) { AvatarData::storeAvatarEntityDataPayload(entityID, payload); - _entitiesToSaveToSettings.insert(entityID); -} - -/* TODO: verify we don't need this -void MyAvatar::updateAvatarEntity(const QUuid& entityID, const QString& entityPropertiesString) { - auto entityTreeRenderer = qApp->getEntities(); - EntityTreePointer entityTree = entityTreeRenderer ? entityTreeRenderer->getTree() : nullptr; - EntityItemPointer entity; - if (entityTree) { - return; - } - // convert string to properties - EntityItemProperties properties; - { - // NOTE: this path from EntityItemProperties JSON string to EntityItemProperties is NOT efficient - QScriptEngine scriptEngine; - properties.copyFromJSONString(scriptEngine, entityPropertiesString); - } - - entityTree->withWriteLock([&] { - entity = entityTree->findEntityByID(entityID); - if (!entity) { - entity = entityTree->addEntity(entityID, properties); - if (!entity) { - // unable to create entity - // TODO? handle this case? - return; - } - // TODO: remember this entity and its properties, so we can save to settings - } else { - entityTree->updateEntity(entityID, properties); - } - if (entity) { - // build update packet for later - OctreePacketData packetData(false, AvatarTraits::MAXIMUM_TRAIT_SIZE); - EncodeBitstreamParams params; - EntityTreeElementExtraEncodeDataPointer extra { nullptr }; - OctreeElement::AppendState appendState = entity->appendEntityData(&packetData, params, extra); - if (appendState == OctreeElement::COMPLETED) { - QByteArray tempArray = QByteArray::fromRawData((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); - storeAvatarEntityDataPayload(entity->getID(), tempArray); - properties = entity->getProperties(); - _entitiesToSaveToSettings.insert(entityID); - } - - } + _avatarEntitiesLock.withWriteLock([&] { + _entitiesToSaveToSettings.insert(entityID); }); } -*/ + +void MyAvatar::clearAvatarEntity(const QUuid& entityID, bool requiresRemovalFromTree) { + _avatarEntitiesLock.withWriteLock([&] { + _entitiesToRemoveFromSettings.insert(entityID); + }); + AvatarData::clearAvatarEntity(entityID, requiresRemovalFromTree); +} void MyAvatar::updateAvatarEntities() { - // TODO: modify this info for MyAvatar - // AVATAR ENTITY UPDATE FLOW - // - if queueEditEntityMessage sees clientOnly flag it does _myAvatar->updateAvatarEntity() - // - updateAvatarEntity saves the bytes and flags the trait instance for the entity as updated - // - ClientTraitsHandler::sendChangedTraitsToMixer sends the entity bytes to the mixer which relays them to other interfaces - // - AvatarHashMap::processBulkAvatarTraits on other interfaces calls avatar->processTraitInstace - // - AvatarData::processTraitInstance calls updateAvatarEntity, which sets _avatarEntityDataChanged = true - // - (My)Avatar::simulate calls updateAvatarEntities every frame and here we are... - - // AVATAR ENTITY DELETE FLOW - // - EntityScriptingInterface::deleteEntity calls _myAvatar->clearAvatarEntity() for deleted avatar entities - // - clearAvatarEntity removes the avatar entity and flags the trait instance for the entity as deleted - // - ClientTraitsHandler::sendChangedTraitsToMixer sends a deletion to the mixer which relays to other interfaces - // - AvatarHashMap::processBulkAvatarTraits on other interfaces calls avatar->processDeletedTraitInstace - // - AvatarData::processDeletedTraitInstance calls clearAvatarEntity - // - AvatarData::clearAvatarEntity sets _avatarEntityDataChanged = true and adds the ID to the detached list - // - Avatar::simulate calls updateAvatarEntities every frame and here we are... - if (_reloadAvatarEntityDataFromSettings) { - if (getID().isNull() || getID() == AVATAR_SELF_ID || DependencyManager::get<NodeList>()->getSessionUUID() == QUuid()) { - // wait until MyAvatar and this Node gets an ID before doing this. Otherwise, various things go wrong -- + // wait until MyAvatar and this Node gets an ID before doing this. Otherwise, various things go wrong: // things get their parent fixed up from AVATAR_SELF_ID to a null uuid which means "no parent". return; } - auto treeRenderer = DependencyManager::get<EntityTreeRenderer>(); EntityTreePointer entityTree = treeRenderer ? treeRenderer->getTree() : nullptr; if (!entityTree) { return; } - loadAvatarEntityDataFromSettings(); } } @@ -1580,6 +1570,7 @@ void MyAvatar::loadAvatarEntityDataFromSettings() { properties.copyFromJSONString(scriptEngine, _avatarEntityDataSettings[i].get()); // the ClientOnly property can get stripped out elsewhere so we need to always set it true here properties.setClientOnly(true); + properties.setOwningAvatarID(getID()); } _avatarEntityStrings.clear(); diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index b100eebb73..b03c41fe9a 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -1408,6 +1408,7 @@ public slots: bool getEnableMeshVisible() const override; void storeAvatarEntityDataPayload(const QUuid& entityID, const QByteArray& payload) override; + void clearAvatarEntity(const QUuid& entityID, bool requiresRemovalFromTree = true) override; /**jsdoc * Set whether or not your avatar mesh is visible. @@ -1949,6 +1950,7 @@ private: std::map<QUuid, QString> _avatarEntityStrings; std::map<QUuid, QString> _avatarEntityProperties; std::set<QUuid> _entitiesToSaveToSettings; + std::set<QUuid> _entitiesToRemoveFromSettings; }; QScriptValue audioListenModeToScriptValue(QScriptEngine* engine, const AudioListenerMode& audioListenerMode); diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index 722c3c8a5e..0555f60742 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -312,12 +312,13 @@ void Avatar::updateAvatarEntities() { PerformanceTimer perfTimer("attachments"); // AVATAR ENTITY UPDATE FLOW - // - if queueEditEntityMessage sees avatarEntity flag it does _myAvatar->updateAvatarEntity() - // - updateAvatarEntity saves the bytes and flags the trait instance for the entity as updated + // - if queueEditEntityMessage sees clientOnly flag it calls _myAvatar->storeAvatarEntityDataPayload + // - storeAvatarEntityDataPayload saves the payload and flags the trait instance for the entity as updated, // - ClientTraitsHandler::sendChangedTraitsToMixer sends the entity bytes to the mixer which relays them to other interfaces // - AvatarHashMap::processBulkAvatarTraits on other interfaces calls avatar->processTraitInstace - // - AvatarData::processTraitInstance calls updateAvatarEntity, which sets _avatarEntityDataChanged = true - // - (My)Avatar::simulate notices _avatarEntityDataChanged and here we are... + // - AvatarData::processTraitInstance calls storeAvatarEntityDataPayload, which sets _avatarEntityDataChanged = true + // - (My)Avatar::simulate calls updateAvatarEntities every frame which checks _avatarEntityDataChanged + // and here we are... // AVATAR ENTITY DELETE FLOW // - EntityScriptingInterface::deleteEntity calls _myAvatar->clearAvatarEntity() for deleted avatar entities @@ -326,7 +327,8 @@ void Avatar::updateAvatarEntities() { // - AvatarHashMap::processBulkAvatarTraits on other interfaces calls avatar->processDeletedTraitInstace // - AvatarData::processDeletedTraitInstance calls clearAvatarEntity // - AvatarData::clearAvatarEntity sets _avatarEntityDataChanged = true and adds the ID to the detached list - // - Avatar::simulate notices _avatarEntityDataChanged and here we are... + // - (My)Avatar::simulate calls updateAvatarEntities every frame which checks _avatarEntityDataChanged + // and here we are... if (!_avatarEntityDataChanged) { return; diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index f2f856678b..65ea873502 100644 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -965,7 +965,7 @@ public: * @function MyAvatar.clearAvatarEntity * @param {Uuid} entityID */ - Q_INVOKABLE void clearAvatarEntity(const QUuid& entityID, bool requiresRemovalFromTree = true); + Q_INVOKABLE virtual void clearAvatarEntity(const QUuid& entityID, bool requiresRemovalFromTree = true); /**jsdoc From ce660bee9b0df8332595a7619f1b3c0f119ceb47 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Fri, 7 Dec 2018 17:31:50 -0800 Subject: [PATCH 175/230] fix compile errors after rebase --- interface/src/avatar/MyAvatar.cpp | 2 +- libraries/entities/src/EntityItem.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 9ece7a0ac7..eeca8ec4f4 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1569,7 +1569,7 @@ void MyAvatar::loadAvatarEntityDataFromSettings() { EntityItemProperties& properties = entitiesToLoad[i]; properties.copyFromJSONString(scriptEngine, _avatarEntityDataSettings[i].get()); // the ClientOnly property can get stripped out elsewhere so we need to always set it true here - properties.setClientOnly(true); + properties.setEntityHostType(entity::HostType::AVATAR); properties.setOwningAvatarID(getID()); } diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index f402aae7d0..b766485450 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -335,9 +335,9 @@ OctreeElement::AppendState EntityItem::appendEntityData(OctreePacketData* packet APPEND_ENTITY_PROPERTY(PROP_DESCRIPTION, getDescription()); APPEND_ENTITY_PROPERTY(PROP_ACTION_DATA, getDynamicData()); + // convert AVATAR_SELF_ID to actual sessionUUID. QUuid actualParentID = getParentID(); - if (!getClientOnly() && actualParentID == AVATAR_SELF_ID) { - // convert AVATAR_SELF_ID to actual sessionUUID. + if (actualParentID == AVATAR_SELF_ID) { auto nodeList = DependencyManager::get<NodeList>(); actualParentID = nodeList->getSessionUUID(); } From 6da8c5545e3d81f27e241faac4ac89081c899ffc Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Fri, 7 Dec 2018 18:01:13 -0800 Subject: [PATCH 176/230] remove debug code --- interface/src/avatar/MyAvatar.h | 1 - 1 file changed, 1 deletion(-) diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index b03c41fe9a..17edfc1a3a 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -13,7 +13,6 @@ #define hifi_MyAvatar_h #include <bitset> -#include <iostream> // adebug #include <glm/glm.hpp> From 1815d711580d832a74f415f6f3559ed3db7bd39b Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Sat, 8 Dec 2018 09:13:13 -0800 Subject: [PATCH 177/230] fix data corruption bug --- interface/src/avatar/MyAvatar.cpp | 2 +- libraries/entities/src/EntityEditPacketSender.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index eeca8ec4f4..af8df7fb71 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1590,7 +1590,7 @@ void MyAvatar::loadAvatarEntityDataFromSettings() { OctreeElement::AppendState appendState = entity->appendEntityData(&packetData, params, extra); if (appendState == OctreeElement::COMPLETED) { // only remember an AvatarEntity that successfully loads and can be packed - QByteArray tempArray = QByteArray::fromRawData((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); + QByteArray tempArray((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); storeAvatarEntityDataPayload(entityID, tempArray); _avatarEntityStrings[entityID] = _avatarEntityDataSettings[i].get(); } diff --git a/libraries/entities/src/EntityEditPacketSender.cpp b/libraries/entities/src/EntityEditPacketSender.cpp index 40dd26a467..eca431b565 100644 --- a/libraries/entities/src/EntityEditPacketSender.cpp +++ b/libraries/entities/src/EntityEditPacketSender.cpp @@ -69,7 +69,7 @@ void EntityEditPacketSender::queueEditAvatarEntityMessage(EntityTreePointer enti return; } - QByteArray tempArray = QByteArray::fromRawData((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); + QByteArray tempArray((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); _myAvatar->storeAvatarEntityDataPayload(entityItemID, tempArray); } From 0083c7728065d57208198eb516f2504e716e006c Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Sat, 8 Dec 2018 09:58:39 -0800 Subject: [PATCH 178/230] add EntityTypes::extractEntityTypeAndID(), remove one spaghetti --- .../entities/src/EntityItemProperties.cpp | 2 +- libraries/entities/src/EntityTree.cpp | 2 +- libraries/entities/src/EntityTypes.cpp | 33 ++++++++++--------- libraries/entities/src/EntityTypes.h | 3 +- 4 files changed, 22 insertions(+), 18 deletions(-) diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 6ba4c84985..2c8548033f 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -93,7 +93,7 @@ void EntityItemProperties::setLastEdited(quint64 usecTime) { bool EntityItemProperties::constructFromBuffer(const unsigned char* data, int dataLength) { ReadBitstreamToTreeParams args; - EntityItemPointer tempEntity = EntityTypes::constructEntityItem(data, dataLength, args); + EntityItemPointer tempEntity = EntityTypes::constructEntityItem(data, dataLength); if (!tempEntity) { return false; } diff --git a/libraries/entities/src/EntityTree.cpp b/libraries/entities/src/EntityTree.cpp index 3f0b5249ec..542e18fa6a 100644 --- a/libraries/entities/src/EntityTree.cpp +++ b/libraries/entities/src/EntityTree.cpp @@ -174,7 +174,7 @@ int EntityTree::readEntityDataFromBuffer(const unsigned char* data, int bytesLef addToNeedsParentFixupList(entity); } } else { - entity = EntityTypes::constructEntityItem(dataAt, bytesLeftToRead, args); + entity = EntityTypes::constructEntityItem(dataAt, bytesLeftToRead); if (entity) { bytesForThisEntity = entity->readEntityDataFromBuffer(dataAt, bytesLeftToRead, args); diff --git a/libraries/entities/src/EntityTypes.cpp b/libraries/entities/src/EntityTypes.cpp index e511af83b0..1544adca94 100644 --- a/libraries/entities/src/EntityTypes.cpp +++ b/libraries/entities/src/EntityTypes.cpp @@ -107,8 +107,7 @@ EntityItemPointer EntityTypes::constructEntityItem(EntityType entityType, const return newEntityItem; } -EntityItemPointer EntityTypes::constructEntityItem(const unsigned char* data, int bytesToRead, - ReadBitstreamToTreeParams& args) { +void EntityTypes::extractEntityTypeAndID(const unsigned char* data, int dataLength, EntityTypes::EntityType& typeOut, QUuid& idOut) { // Header bytes // object ID [16 bytes] @@ -119,28 +118,32 @@ EntityItemPointer EntityTypes::constructEntityItem(const unsigned char* data, in // ~27-35 bytes... const int MINIMUM_HEADER_BYTES = 27; - int bytesRead = 0; - if (bytesToRead >= MINIMUM_HEADER_BYTES) { - int originalLength = bytesToRead; - QByteArray originalDataBuffer((const char*)data, originalLength); + if (dataLength >= MINIMUM_HEADER_BYTES) { + int bytesRead = 0; + QByteArray originalDataBuffer = QByteArray::fromRawData((const char*)data, dataLength); // id QByteArray encodedID = originalDataBuffer.mid(bytesRead, NUM_BYTES_RFC4122_UUID); // maximum possible size - QUuid actualID = QUuid::fromRfc4122(encodedID); + idOut = QUuid::fromRfc4122(encodedID); bytesRead += encodedID.size(); // type QByteArray encodedType = originalDataBuffer.mid(bytesRead); // maximum possible size ByteCountCoded<quint32> typeCoder = encodedType; encodedType = typeCoder; // determine true length - bytesRead += encodedType.size(); quint32 type = typeCoder; - EntityTypes::EntityType entityType = (EntityTypes::EntityType)type; - - EntityItemID tempEntityID(actualID); - EntityItemProperties tempProperties; - return constructEntityItem(entityType, tempEntityID, tempProperties); + typeOut = (EntityTypes::EntityType)type; } - - return NULL; +} + +EntityItemPointer EntityTypes::constructEntityItem(const unsigned char* data, int bytesToRead) { + QUuid id; + EntityTypes::EntityType type = EntityTypes::Unknown; + extractEntityTypeAndID(data, bytesToRead, type, id); + if (type > EntityTypes::Unknown && type <= EntityTypes::LAST) { + EntityItemID tempEntityID(id); + EntityItemProperties tempProperties; + return constructEntityItem(type, tempEntityID, tempProperties); + } + return nullptr; } diff --git a/libraries/entities/src/EntityTypes.h b/libraries/entities/src/EntityTypes.h index 29a695718e..dfb7779154 100644 --- a/libraries/entities/src/EntityTypes.h +++ b/libraries/entities/src/EntityTypes.h @@ -112,8 +112,9 @@ public: static const QString& getEntityTypeName(EntityType entityType); static EntityTypes::EntityType getEntityTypeFromName(const QString& name); static bool registerEntityType(EntityType entityType, const char* name, EntityTypeFactory factoryMethod); + static void extractEntityTypeAndID(const unsigned char* data, int dataLength, EntityTypes::EntityType& typeOut, QUuid& idOut); static EntityItemPointer constructEntityItem(EntityType entityType, const EntityItemID& entityID, const EntityItemProperties& properties); - static EntityItemPointer constructEntityItem(const unsigned char* data, int bytesToRead, ReadBitstreamToTreeParams& args); + static EntityItemPointer constructEntityItem(const unsigned char* data, int bytesToRead); private: static QMap<EntityType, QString> _typeToNameMap; From 09f3b8f4857f65c8f434df86333e38f940ce77aa Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Sat, 8 Dec 2018 10:36:35 -0800 Subject: [PATCH 179/230] add bit of sanity checking for incomming AvatarEntities data --- .../avatars-renderer/src/avatars-renderer/Avatar.cpp | 9 +++++++++ libraries/entities/src/EntityTypes.cpp | 4 ++++ libraries/entities/src/EntityTypes.h | 1 + 3 files changed, 14 insertions(+) diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index 0555f60742..f583b41172 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -367,6 +367,15 @@ void Avatar::updateAvatarEntities() { // TODO? put a maximum number of tries on this? } } else { + // sanity check data + QUuid id; + EntityTypes::EntityType type; + EntityTypes::extractEntityTypeAndID((unsigned char*)(data.data()), data.size(), type, id); + if (id != entityID || !EntityTypes::typeIsValid(type)) { + // skip for corrupt + ++dataItr; + continue; + } // remember this hash for the future stateItr = _avatarEntityDataHashes.insert(entityID, AvatarEntityDataHash(newHash)); } diff --git a/libraries/entities/src/EntityTypes.cpp b/libraries/entities/src/EntityTypes.cpp index 1544adca94..6f05237b1e 100644 --- a/libraries/entities/src/EntityTypes.cpp +++ b/libraries/entities/src/EntityTypes.cpp @@ -58,6 +58,10 @@ REGISTER_ENTITY_TYPE(Light) REGISTER_ENTITY_TYPE(Zone) REGISTER_ENTITY_TYPE(Material) +bool EntityTypes::typeIsValid(EntityType type) { + return type > EntityType::Unknown && type <= EntityType::LAST; +} + const QString& EntityTypes::getEntityTypeName(EntityType entityType) { QMap<EntityType, QString>::iterator matchedTypeName = _typeToNameMap.find(entityType); if (matchedTypeName != _typeToNameMap.end()) { diff --git a/libraries/entities/src/EntityTypes.h b/libraries/entities/src/EntityTypes.h index dfb7779154..9f4ba36df1 100644 --- a/libraries/entities/src/EntityTypes.h +++ b/libraries/entities/src/EntityTypes.h @@ -109,6 +109,7 @@ public: NUM_TYPES } EntityType; + static bool typeIsValid(EntityType type); static const QString& getEntityTypeName(EntityType entityType); static EntityTypes::EntityType getEntityTypeFromName(const QString& name); static bool registerEntityType(EntityType entityType, const char* name, EntityTypeFactory factoryMethod); From c4115bece381a2256866227702b8f8480146f082 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Mon, 10 Dec 2018 08:26:43 -0800 Subject: [PATCH 180/230] remove unused ScriptEngine instance --- libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index f583b41172..c6f315fc59 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -340,7 +340,6 @@ void Avatar::updateAvatarEntities() { return; } - QScriptEngine scriptEngine; entityTree->withWriteLock([&] { AvatarEntityMap avatarEntities = getAvatarEntityData(); AvatarEntityMap::const_iterator dataItr = avatarEntities.begin(); From 121a5910238ad7a02f100a81892946d0a29e8f07 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Mon, 10 Dec 2018 11:52:56 -0800 Subject: [PATCH 181/230] delete old AvatarEntities on domain reset on login --- interface/src/Application.cpp | 2 +- interface/src/avatar/MyAvatar.cpp | 6 ++++++ interface/src/avatar/MyAvatar.h | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 0fbe9fba94..e0128d0ceb 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -6784,7 +6784,7 @@ void Application::clearDomainOctreeDetails() { DependencyManager::get<recording::ClipCache>()->clearUnusedResources(); // we just deleted all of MyAvatar's AvatarEntities so we flag it to reload from settings - getMyAvatar()->rememberToReloadOfAvatarEntityDataFromSettings(); + getMyAvatar()->rememberToReloadAvatarEntityDataFromSettings(); } void Application::domainURLChanged(QUrl domainURL) { diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index af8df7fb71..58b4d5e7d9 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1515,6 +1515,12 @@ void MyAvatar::updateAvatarEntities() { } +void MyAvatar::rememberToReloadAvatarEntityDataFromSettings() { + AvatarEntityMap emptyMap; + setAvatarEntityData(emptyMap); + _reloadAvatarEntityDataFromSettings = true; +} + void MyAvatar::loadData() { getHead()->setBasePitch(_headPitchSetting.get()); diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 17edfc1a3a..21517c5af9 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -1187,7 +1187,7 @@ public: glm::vec3 getNextPosition() { return _goToPending ? _goToPosition : getWorldPosition(); } void updateAvatarEntities() override; - void rememberToReloadOfAvatarEntityDataFromSettings() { _reloadAvatarEntityDataFromSettings = true; } + void rememberToReloadAvatarEntityDataFromSettings(); /**jsdoc * Create a new grab. From 320ba9177c9a846a56b22f10514bf0f75fd5d8eb Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Mon, 10 Dec 2018 13:29:13 -0800 Subject: [PATCH 182/230] remove cruft --- interface/src/avatar/MyAvatar.cpp | 1 - libraries/octree/src/OctreePacketData.h | 2 -- 2 files changed, 3 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 58b4d5e7d9..9a0787151d 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1316,7 +1316,6 @@ void MyAvatar::saveAvatarEntityDataToSettings() { // find set of things that changed std::set<QUuid> entitiesToSave; _avatarEntitiesLock.withWriteLock([&] { - // TODO: save these to settings. entitiesToSave = std::move(_entitiesToSaveToSettings); for (const auto& id : _entitiesToRemoveFromSettings) { // remove diff --git a/libraries/octree/src/OctreePacketData.h b/libraries/octree/src/OctreePacketData.h index 01ed4977b0..bd1abf8744 100644 --- a/libraries/octree/src/OctreePacketData.h +++ b/libraries/octree/src/OctreePacketData.h @@ -220,8 +220,6 @@ public: /// get pointer to the uncompressed stream buffer at the byteOffset const unsigned char* getUncompressedData(int byteOffset = 0) { return &_uncompressed[byteOffset]; } - const QByteArray& getUncompressedByteArray() { return _uncompressedByteArray; } - /// the size of the packet in uncompressed form int getUncompressedSize() { return _bytesInUse; } From d622635a710c3548c1253a1d945c164ec4f12e28 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Mon, 10 Dec 2018 13:40:38 -0800 Subject: [PATCH 183/230] fix wording in comment to reflect new 'HostType' parameter --- libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index c6f315fc59..59d9f13f04 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -312,7 +312,7 @@ void Avatar::updateAvatarEntities() { PerformanceTimer perfTimer("attachments"); // AVATAR ENTITY UPDATE FLOW - // - if queueEditEntityMessage sees clientOnly flag it calls _myAvatar->storeAvatarEntityDataPayload + // - if queueEditEntityMessage sees "AvatarEntity" HostType it calls _myAvatar->storeAvatarEntityDataPayload // - storeAvatarEntityDataPayload saves the payload and flags the trait instance for the entity as updated, // - ClientTraitsHandler::sendChangedTraitsToMixer sends the entity bytes to the mixer which relays them to other interfaces // - AvatarHashMap::processBulkAvatarTraits on other interfaces calls avatar->processTraitInstace From dedc14434b47db64b2a8a147c8847934a6596de9 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Mon, 10 Dec 2018 15:41:25 -0800 Subject: [PATCH 184/230] fix compile warnings on windows --- interface/src/avatar/MyAvatar.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 9a0787151d..26296355a6 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1261,7 +1261,7 @@ void MyAvatar::resizeAvatarEntitySettingHandles(uint32_t maxIndex) { // Avatar/avatarEntityData/5/properties: ... // // Create Setting::Handles to mimic this. - uint32_t settingsIndex = _avatarEntityIDSettings.size() + 1; + uint32_t settingsIndex = (uint32_t)_avatarEntityIDSettings.size() + 1; while (settingsIndex <= maxIndex) { Setting::Handle<QString> idHandle(QStringList() << AVATAR_SETTINGS_GROUP_NAME << "avatarEntityData" << QString::number(settingsIndex) << "id", QUuid().toString()); @@ -1335,7 +1335,7 @@ void MyAvatar::saveAvatarEntityDataToSettings() { _entitiesToRemoveFromSettings.clear(); }); - uint32_t numEntities = entitiesToSave.size() + _avatarEntityStrings.size(); + uint32_t numEntities = (uint32_t)(entitiesToSave.size() + _avatarEntityStrings.size()); uint32_t prevNumEntities = _avatarEntityCountSetting.get(0); resizeAvatarEntitySettingHandles(std::max<uint32_t>(numEntities, prevNumEntities)); From 43fc86fe54b84731497757b96d8cd0cacbca5b35 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Tue, 11 Dec 2018 09:07:58 -0800 Subject: [PATCH 185/230] restore non-human-readable avatarEntityDataSettings format --- interface/src/avatar/MyAvatar.cpp | 98 +++++++++++++++++++++++-------- interface/src/avatar/MyAvatar.h | 7 +-- 2 files changed, 78 insertions(+), 27 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 26296355a6..f808928709 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -50,6 +50,7 @@ #include <RecordingScriptingInterface.h> #include <trackers/FaceTracker.h> #include <RenderableModelEntityItem.h> +#include <VariantMapToScriptValue.h> #include "MyHead.h" #include "MySkeletonModel.h" @@ -1263,11 +1264,11 @@ void MyAvatar::resizeAvatarEntitySettingHandles(uint32_t maxIndex) { // Create Setting::Handles to mimic this. uint32_t settingsIndex = (uint32_t)_avatarEntityIDSettings.size() + 1; while (settingsIndex <= maxIndex) { - Setting::Handle<QString> idHandle(QStringList() << AVATAR_SETTINGS_GROUP_NAME << "avatarEntityData" - << QString::number(settingsIndex) << "id", QUuid().toString()); + Setting::Handle<QUuid> idHandle(QStringList() << AVATAR_SETTINGS_GROUP_NAME << "avatarEntityData" + << QString::number(settingsIndex) << "id", QUuid()); _avatarEntityIDSettings.push_back(idHandle); - Setting::Handle<QString> dataHandle(QStringList() << AVATAR_SETTINGS_GROUP_NAME << "avatarEntityData" - << QString::number(settingsIndex) << "properties", QString()); + Setting::Handle<QByteArray> dataHandle(QStringList() << AVATAR_SETTINGS_GROUP_NAME << "avatarEntityData" + << QString::number(settingsIndex) << "properties", QByteArray()); _avatarEntityDataSettings.push_back(dataHandle); settingsIndex++; } @@ -1320,22 +1321,22 @@ void MyAvatar::saveAvatarEntityDataToSettings() { for (const auto& id : _entitiesToRemoveFromSettings) { // remove entitiesToSave.erase(id); - std::map<QUuid, QString>::iterator itr = _avatarEntityStrings.find(id); - if (itr != _avatarEntityStrings.end()) { - _avatarEntityStrings.erase(itr); + std::map<QUuid, QByteArray>::iterator itr = _poorlyFormattedAvatarEntityData.find(id); + if (itr != _poorlyFormattedAvatarEntityData.end()) { + _poorlyFormattedAvatarEntityData.erase(itr); } } for (const auto& id : entitiesToSave) { // remove old strings to be replaced by new saves - std::map<QUuid, QString>::iterator itr = _avatarEntityStrings.find(id); - if (itr != _avatarEntityStrings.end()) { - _avatarEntityStrings.erase(itr); + std::map<QUuid, QByteArray>::iterator itr = _poorlyFormattedAvatarEntityData.find(id); + if (itr != _poorlyFormattedAvatarEntityData.end()) { + _poorlyFormattedAvatarEntityData.erase(itr); } } _entitiesToRemoveFromSettings.clear(); }); - uint32_t numEntities = (uint32_t)(entitiesToSave.size() + _avatarEntityStrings.size()); + uint32_t numEntities = (uint32_t)(entitiesToSave.size() + _poorlyFormattedAvatarEntityData.size()); uint32_t prevNumEntities = _avatarEntityCountSetting.get(0); resizeAvatarEntitySettingHandles(std::max<uint32_t>(numEntities, prevNumEntities)); @@ -1356,14 +1357,27 @@ void MyAvatar::saveAvatarEntityDataToSettings() { QScriptEngine scriptEngine; QScriptValue toStringMethod = scriptEngine.evaluate("(function() { return JSON.stringify(this) })"); for (const auto& entry : allProperties) { - QScriptValue scriptValue = EntityItemPropertiesToScriptValue(&scriptEngine, entry.second); - scriptValue.setProperty("toString", toStringMethod); - _avatarEntityStrings[entry.first] = scriptValue.toString(); + // begin recipe our unfortunate legacy avatarEntityData format + QScriptValue scriptValue = EntityItemNonDefaultPropertiesToScriptValue(&scriptEngine, entry.second); + QVariant variantProperties = scriptValue.toVariant(); + QJsonDocument jsonProperties = QJsonDocument::fromVariant(variantProperties); + // the ID of the parent/avatar changes from session to session. use a special UUID to indicate the avatar + QJsonObject jsonObject = jsonProperties.object(); + if (jsonObject.contains("parentID")) { + if (QUuid(jsonObject["parentID"].toString()) == getID()) { + jsonObject["parentID"] = AVATAR_SELF_ID.toString(); + } + } + jsonProperties = QJsonDocument(jsonObject); + QByteArray binaryProperties = jsonProperties.toBinaryData(); + // end recipe + + _poorlyFormattedAvatarEntityData[entry.first] = binaryProperties; } // save all strings uint32_t i = 0; - for (const auto& entry : _avatarEntityStrings) { - _avatarEntityIDSettings[i].set(entry.first.toString()); + for (const auto& entry : _poorlyFormattedAvatarEntityData) { + _avatarEntityIDSettings[i].set(entry.first); _avatarEntityDataSettings[i].set(entry.second); ++i; } @@ -1567,18 +1581,53 @@ void MyAvatar::loadAvatarEntityDataFromSettings() { QScriptEngine scriptEngine; std::vector<EntityItemProperties> entitiesToLoad; - entitiesToLoad.resize(numEntities); resizeAvatarEntitySettingHandles(numEntities); for (int i = 0; i < numEntities; i++) { - // DANGER: this JSONString --> EntityItemProperties operation is expensive - EntityItemProperties& properties = entitiesToLoad[i]; - properties.copyFromJSONString(scriptEngine, _avatarEntityDataSettings[i].get()); - // the ClientOnly property can get stripped out elsewhere so we need to always set it true here + QUuid entityID = QUuid::createUuid(); // generate a new ID + QByteArray binaryData = _avatarEntityDataSettings[i].get(); + //updateAvatarEntity(entityID, binaryData); + + + _avatarEntityDataChanged = true; + if (_clientTraitsHandler) { + // we have a client traits handler, so we need to mark this instanced trait as changed + // so that changes will be sent next frame + _clientTraitsHandler->markInstancedTraitUpdated(AvatarTraits::AvatarEntity, entityID); + } + + QJsonDocument jsonProperties = QJsonDocument::fromBinaryData(binaryData); + if (!jsonProperties.isObject()) { + qCDebug(interfaceapp) << "bad avatarEntityData json" << QString(binaryData.toHex()); + continue; + } + + QVariant variantProperties = jsonProperties.toVariant(); + QVariantMap asMap = variantProperties.toMap(); + QScriptValue scriptProperties = variantMapToScriptValue(asMap, scriptEngine); + EntityItemProperties properties; + EntityItemPropertiesFromScriptValueHonorReadOnly(scriptProperties, properties); properties.setEntityHostType(entity::HostType::AVATAR); properties.setOwningAvatarID(getID()); + + // there's no entity-server to tell us we're the simulation owner, so always set the + // simulationOwner to the owningAvatarID and a high priority. + properties.setSimulationOwner(getID(), AVATAR_ENTITY_SIMULATION_PRIORITY); + + if (properties.getParentID() == AVATAR_SELF_ID) { + properties.setParentID(getID()); + } + + // When grabbing avatar entities, they are parented to the joint moving them, then when un-grabbed + // they go back to the default parent (null uuid). When un-gripped, others saw the entity disappear. + // The thinking here is the local position was noticed as changing, but not the parentID (since it is now + // back to the default), and the entity flew off somewhere. Marking all changed definitely fixes this, + // and seems safe (per Seth). + properties.markAllChanged(); + + entitiesToLoad.push_back(properties); } - _avatarEntityStrings.clear(); + _poorlyFormattedAvatarEntityData.clear(); auto entityTreeRenderer = qApp->getEntities(); EntityTreePointer entityTree = entityTreeRenderer ? entityTreeRenderer->getTree() : nullptr; if (entityTree) { @@ -1597,7 +1646,10 @@ void MyAvatar::loadAvatarEntityDataFromSettings() { // only remember an AvatarEntity that successfully loads and can be packed QByteArray tempArray((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); storeAvatarEntityDataPayload(entityID, tempArray); - _avatarEntityStrings[entityID] = _avatarEntityDataSettings[i].get(); + + // we store these binaryProperties for later: when saving back to settings + // unfortunately we must use this non-human-readable format because reasons + _poorlyFormattedAvatarEntityData[entityID] = _avatarEntityDataSettings[i].get(); } packetData.reset(); } diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 21517c5af9..4306db8242 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -1944,10 +1944,9 @@ private: Setting::Handle<bool> _flyingHMDSetting; Setting::Handle<int> _avatarEntityCountSetting; Setting::Handle<bool> _allowTeleportingSetting { "allowTeleporting", true }; - std::vector<Setting::Handle<QString>> _avatarEntityIDSettings; - std::vector<Setting::Handle<QString>> _avatarEntityDataSettings; - std::map<QUuid, QString> _avatarEntityStrings; - std::map<QUuid, QString> _avatarEntityProperties; + std::vector<Setting::Handle<QUuid>> _avatarEntityIDSettings; + std::vector<Setting::Handle<QByteArray>> _avatarEntityDataSettings; + std::map<QUuid, QByteArray> _poorlyFormattedAvatarEntityData; std::set<QUuid> _entitiesToSaveToSettings; std::set<QUuid> _entitiesToRemoveFromSettings; }; From 9b253690dba10aa4c9aa2c1541ddd8a5fbfe71e2 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Tue, 11 Dec 2018 10:57:49 -0800 Subject: [PATCH 186/230] bump packet version number --- libraries/networking/src/udt/PacketHeaders.cpp | 2 +- libraries/networking/src/udt/PacketHeaders.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/libraries/networking/src/udt/PacketHeaders.cpp b/libraries/networking/src/udt/PacketHeaders.cpp index aba3822883..642914cd56 100644 --- a/libraries/networking/src/udt/PacketHeaders.cpp +++ b/libraries/networking/src/udt/PacketHeaders.cpp @@ -41,7 +41,7 @@ PacketVersion versionForPacketType(PacketType packetType) { return static_cast<PacketVersion>(AvatarMixerPacketVersion::CollisionFlag); case PacketType::BulkAvatarData: case PacketType::KillAvatar: - return static_cast<PacketVersion>(AvatarMixerPacketVersion::GrabTraits); + return static_cast<PacketVersion>(AvatarMixerPacketVersion::FasterAvatarEntities); case PacketType::MessagesData: return static_cast<PacketVersion>(MessageDataVersion::TextOrBinaryData); // ICE packets diff --git a/libraries/networking/src/udt/PacketHeaders.h b/libraries/networking/src/udt/PacketHeaders.h index 6f019f39b6..f53a287d71 100644 --- a/libraries/networking/src/udt/PacketHeaders.h +++ b/libraries/networking/src/udt/PacketHeaders.h @@ -311,7 +311,8 @@ enum class AvatarMixerPacketVersion : PacketVersion { JointTransScaled, GrabTraits, CollisionFlag, - AvatarTraitsAck + AvatarTraitsAck, + FasterAvatarEntities }; enum class DomainConnectRequestVersion : PacketVersion { From 9f404ef006290c20f5d34c4dba1206584d228512 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Wed, 12 Dec 2018 13:49:44 -0800 Subject: [PATCH 187/230] Agent bots can manipulate AvatarEntities again --- .../src/avatars/ScriptableAvatar.cpp | 51 +++++++++++++++++++ .../src/avatars/ScriptableAvatar.h | 3 ++ interface/src/avatar/MyAvatar.cpp | 4 ++ interface/src/avatar/MyAvatar.h | 2 + .../src/avatars-renderer/Avatar.h | 4 +- libraries/avatars/src/AvatarData.cpp | 4 +- libraries/avatars/src/AvatarData.h | 7 +-- libraries/entities/src/EntityTypes.cpp | 4 ++ libraries/entities/src/EntityTypes.h | 1 + 9 files changed, 73 insertions(+), 7 deletions(-) diff --git a/assignment-client/src/avatars/ScriptableAvatar.cpp b/assignment-client/src/avatars/ScriptableAvatar.cpp index a2e13a03be..25cf702b22 100644 --- a/assignment-client/src/avatars/ScriptableAvatar.cpp +++ b/assignment-client/src/avatars/ScriptableAvatar.cpp @@ -21,6 +21,8 @@ #include <GLMHelpers.h> #include <ResourceRequestObserver.h> #include <AvatarLogging.h> +#include <EntityItem.h> +#include <EntityItemProperties.h> ScriptableAvatar::ScriptableAvatar() { @@ -249,3 +251,52 @@ void ScriptableAvatar::setHasProceduralEyeFaceMovement(bool hasProceduralEyeFace void ScriptableAvatar::setHasAudioEnabledFaceMovement(bool hasAudioEnabledFaceMovement) { _headData->setHasAudioEnabledFaceMovement(hasAudioEnabledFaceMovement); } + +void ScriptableAvatar::updateAvatarEntity(const QUuid& id, const QScriptValue& data) { + if (data.isNull()) { + // interpret this as a DELETE + std::map<QUuid, EntityItemPointer>::iterator itr = _entities.find(id); + if (itr != _entities.end()) { + _entities.erase(itr); + clearAvatarEntity(id); + } + } else { + EntityItemPointer entity; + EntityItemProperties properties; + bool honorReadOnly = true; + properties.copyFromScriptValue(data, honorReadOnly); + + std::map<QUuid, EntityItemPointer>::iterator itr = _entities.find(id); + if (itr == _entities.end()) { + // this is an ADD + entity = EntityTypes::constructEntityItem(id, properties); + if (entity) { + OctreePacketData packetData(false, AvatarTraits::MAXIMUM_TRAIT_SIZE); + EncodeBitstreamParams params; + EntityTreeElementExtraEncodeDataPointer extra { nullptr }; + OctreeElement::AppendState appendState = entity->appendEntityData(&packetData, params, extra); + + if (appendState == OctreeElement::COMPLETED) { + _entities[id] = entity; + QByteArray tempArray((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); + storeAvatarEntityDataPayload(id, tempArray); + } + } + } else { + // this is an UPDATE + entity = itr->second; + bool somethingChanged = entity->setProperties(properties); + if (somethingChanged) { + OctreePacketData packetData(false, AvatarTraits::MAXIMUM_TRAIT_SIZE); + EncodeBitstreamParams params; + EntityTreeElementExtraEncodeDataPointer extra { nullptr }; + OctreeElement::AppendState appendState = entity->appendEntityData(&packetData, params, extra); + + if (appendState == OctreeElement::COMPLETED) { + QByteArray tempArray((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); + storeAvatarEntityDataPayload(id, tempArray); + } + } + } + } +} diff --git a/assignment-client/src/avatars/ScriptableAvatar.h b/assignment-client/src/avatars/ScriptableAvatar.h index 66b0b5ae3f..f56d7c66b0 100644 --- a/assignment-client/src/avatars/ScriptableAvatar.h +++ b/assignment-client/src/avatars/ScriptableAvatar.h @@ -16,6 +16,7 @@ #include <AnimSkeleton.h> #include <AvatarData.h> #include <ScriptEngine.h> +#include <EntityItem.h> /**jsdoc * The <code>Avatar</code> API is used to manipulate scriptable avatars on the domain. This API is a subset of the @@ -184,6 +185,7 @@ public: bool getHasProceduralEyeFaceMovement() const override { return _headData->getHasProceduralEyeFaceMovement(); } void setHasAudioEnabledFaceMovement(bool hasAudioEnabledFaceMovement); bool getHasAudioEnabledFaceMovement() const override { return _headData->getHasAudioEnabledFaceMovement(); } + void updateAvatarEntity(const QUuid& id, const QScriptValue& data) override; public slots: void update(float deltatime); @@ -202,6 +204,7 @@ private: QHash<QString, int> _fstJointIndices; ///< 1-based, since zero is returned for missing keys QStringList _fstJointNames; ///< in order of depth-first traversal QUrl _skeletonFBXURL; + std::map<QUuid, EntityItemPointer> _entities; /// Loads the joint indices, names from the FST file (if any) void updateJointMappings(); diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index f808928709..4bf446f6b9 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -2061,6 +2061,10 @@ void MyAvatar::clearJointsData() { _skeletonModel->getRig().clearJointStates(); } +void MyAvatar::updateAvatarEntity(const QUuid& id, const QScriptValue& data) { + // TODO: implement this +} + void MyAvatar::setSkeletonModelURL(const QUrl& skeletonModelURL) { _skeletonModelChangeCount++; int skeletonModelChangeCount = _skeletonModelChangeCount; diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 4306db8242..98c93f9ccc 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -851,6 +851,8 @@ public: virtual void clearJointData(const QString& name) override; virtual void clearJointsData() override; + void updateAvatarEntity(const QUuid& id, const QScriptValue& data) override; + /**jsdoc * @function MyAvatar.pinJoint * @param {number} index diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h index 9a57e46f1a..2b356675be 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h @@ -235,13 +235,13 @@ public: void updateDisplayNameAlpha(bool showDisplayName); virtual void setSessionDisplayName(const QString& sessionDisplayName) override { }; // no-op + virtual void updateAvatarEntity(const QUuid& entityID, const QScriptValue& entityData) override { }; // no-op + virtual int parseDataFromBuffer(const QByteArray& buffer) override; static void renderJointConnectingCone(gpu::Batch& batch, glm::vec3 position1, glm::vec3 position2, float radius1, float radius2, const glm::vec4& color); - virtual void applyCollision(const glm::vec3& contactPoint, const glm::vec3& penetration) { } - /**jsdoc * Set the offset applied to the current avatar. The offset adjusts the position that the avatar is rendered. For example, * with an offset of <code>{ x: 0, y: 0.1, z: 0 }</code>, your avatar will appear to be raised off the ground slightly. diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index 9380699504..f08e66af82 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -2776,8 +2776,8 @@ void AvatarData::storeAvatarEntityDataPayload(const QUuid& entityID, const QByte } } -void AvatarData::updateAvatarEntity(const QUuid& entityID, const QString& entityPropertiesString) { - // TODO: implement this to expose AvatarEntity to JS +void AvatarData::updateAvatarEntity(const QUuid& id, const QScriptValue& data) { + // no op } void AvatarData::clearAvatarEntity(const QUuid& entityID, bool requiresRemovalFromTree) { diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index 65ea873502..3d6dd78e05 100644 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -957,9 +957,9 @@ public: /**jsdoc * @function MyAvatar.updateAvatarEntity * @param {Uuid} entityID - * @param {string} entityData + * @param {object} entityData */ - Q_INVOKABLE virtual void updateAvatarEntity(const QUuid& entityID, const QString& entityPropertiesString); + Q_INVOKABLE virtual void updateAvatarEntity(const QUuid& id, const QScriptValue& data); /**jsdoc * @function MyAvatar.clearAvatarEntity @@ -1140,10 +1140,11 @@ public: Q_INVOKABLE AvatarEntityMap getAvatarEntityData() const; /**jsdoc + * Temporarily disabled. Use updateAvatarEntity(id, properties) in the meantime. * @function MyAvatar.setAvatarEntityData * @param {object} avatarEntityData */ - Q_INVOKABLE void setAvatarEntityData(const AvatarEntityMap& avatarEntityData); + void setAvatarEntityData(const AvatarEntityMap& avatarEntityData); virtual void setAvatarEntityDataChanged(bool value) { _avatarEntityDataChanged = value; } void insertDetachedEntityID(const QUuid entityID); diff --git a/libraries/entities/src/EntityTypes.cpp b/libraries/entities/src/EntityTypes.cpp index 6f05237b1e..584af55d5d 100644 --- a/libraries/entities/src/EntityTypes.cpp +++ b/libraries/entities/src/EntityTypes.cpp @@ -151,3 +151,7 @@ EntityItemPointer EntityTypes::constructEntityItem(const unsigned char* data, in } return nullptr; } + +EntityItemPointer EntityTypes::constructEntityItem(const QUuid& id, const EntityItemProperties& properties) { + return constructEntityItem(properties.getType(), id, properties); +} diff --git a/libraries/entities/src/EntityTypes.h b/libraries/entities/src/EntityTypes.h index 9f4ba36df1..2e8914c8a7 100644 --- a/libraries/entities/src/EntityTypes.h +++ b/libraries/entities/src/EntityTypes.h @@ -116,6 +116,7 @@ public: static void extractEntityTypeAndID(const unsigned char* data, int dataLength, EntityTypes::EntityType& typeOut, QUuid& idOut); static EntityItemPointer constructEntityItem(EntityType entityType, const EntityItemID& entityID, const EntityItemProperties& properties); static EntityItemPointer constructEntityItem(const unsigned char* data, int bytesToRead); + static EntityItemPointer constructEntityItem(const QUuid& id, const EntityItemProperties& properties); private: static QMap<EntityType, QString> _typeToNameMap; From cbcd70aee6c00f2a39b4d3757470f626256dd1c8 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Wed, 12 Dec 2018 18:52:26 -0800 Subject: [PATCH 188/230] namechanges and comments to help clarify necessary fixes --- interface/src/avatar/MyAvatar.cpp | 69 ++++++++++-------- interface/src/avatar/MyAvatar.h | 2 +- .../src/avatars-renderer/Avatar.cpp | 6 +- libraries/avatars/src/AvatarData.cpp | 73 +++++++++++-------- libraries/avatars/src/AvatarData.h | 10 ++- 5 files changed, 90 insertions(+), 70 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 4bf446f6b9..7b7adf14ca 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1321,22 +1321,22 @@ void MyAvatar::saveAvatarEntityDataToSettings() { for (const auto& id : _entitiesToRemoveFromSettings) { // remove entitiesToSave.erase(id); - std::map<QUuid, QByteArray>::iterator itr = _poorlyFormattedAvatarEntityData.find(id); - if (itr != _poorlyFormattedAvatarEntityData.end()) { - _poorlyFormattedAvatarEntityData.erase(itr); + std::map<QUuid, QByteArray>::iterator itr = _cachedAvatarEntityDataSettings.find(id); + if (itr != _cachedAvatarEntityDataSettings.end()) { + _cachedAvatarEntityDataSettings.erase(itr); } } for (const auto& id : entitiesToSave) { // remove old strings to be replaced by new saves - std::map<QUuid, QByteArray>::iterator itr = _poorlyFormattedAvatarEntityData.find(id); - if (itr != _poorlyFormattedAvatarEntityData.end()) { - _poorlyFormattedAvatarEntityData.erase(itr); + std::map<QUuid, QByteArray>::iterator itr = _cachedAvatarEntityDataSettings.find(id); + if (itr != _cachedAvatarEntityDataSettings.end()) { + _cachedAvatarEntityDataSettings.erase(itr); } } _entitiesToRemoveFromSettings.clear(); }); - uint32_t numEntities = (uint32_t)(entitiesToSave.size() + _poorlyFormattedAvatarEntityData.size()); + uint32_t numEntities = (uint32_t)(entitiesToSave.size() + _cachedAvatarEntityDataSettings.size()); uint32_t prevNumEntities = _avatarEntityCountSetting.get(0); resizeAvatarEntitySettingHandles(std::max<uint32_t>(numEntities, prevNumEntities)); @@ -1353,11 +1353,11 @@ void MyAvatar::saveAvatarEntityDataToSettings() { } } }); - // convert properties to strings + // convert properties to our unfortunately-formatted-binary-blob format QScriptEngine scriptEngine; QScriptValue toStringMethod = scriptEngine.evaluate("(function() { return JSON.stringify(this) })"); for (const auto& entry : allProperties) { - // begin recipe our unfortunate legacy avatarEntityData format + // begin recipe for converting to our unfortunately-formatted-binar-blob QScriptValue scriptValue = EntityItemNonDefaultPropertiesToScriptValue(&scriptEngine, entry.second); QVariant variantProperties = scriptValue.toVariant(); QJsonDocument jsonProperties = QJsonDocument::fromVariant(variantProperties); @@ -1372,11 +1372,12 @@ void MyAvatar::saveAvatarEntityDataToSettings() { QByteArray binaryProperties = jsonProperties.toBinaryData(); // end recipe - _poorlyFormattedAvatarEntityData[entry.first] = binaryProperties; + // remember this unfortunately-formatted-binary-blob for later so we don't have go through this again + _cachedAvatarEntityDataSettings[entry.first] = binaryProperties; } - // save all strings + // save all unfortunately-formatted-binary-blobs to settings uint32_t i = 0; - for (const auto& entry : _poorlyFormattedAvatarEntityData) { + for (const auto& entry : _cachedAvatarEntityDataSettings) { _avatarEntityIDSettings[i].set(entry.first); _avatarEntityDataSettings[i].set(entry.second); ++i; @@ -1570,7 +1571,7 @@ void MyAvatar::loadData() { void MyAvatar::loadAvatarEntityDataFromSettings() { _avatarEntitiesLock.withReadLock([&] { - _avatarEntityData.clear(); + _packedAvatarEntityData.clear(); }); _reloadAvatarEntityDataFromSettings = false; @@ -1580,32 +1581,34 @@ void MyAvatar::loadAvatarEntityDataFromSettings() { } QScriptEngine scriptEngine; - std::vector<EntityItemProperties> entitiesToLoad; + std::vector< std::pair<QUuid, EntityItemProperties> > entitiesToLoad; resizeAvatarEntitySettingHandles(numEntities); for (int i = 0; i < numEntities; i++) { - QUuid entityID = QUuid::createUuid(); // generate a new ID - QByteArray binaryData = _avatarEntityDataSettings[i].get(); - //updateAvatarEntity(entityID, binaryData); + QUuid id = QUuid::createUuid(); // generate a new ID + // the avatarEntityData is stored as an unfortunately-formatted-binary-blob + QByteArray binaryData = _avatarEntityDataSettings[i].get(); _avatarEntityDataChanged = true; if (_clientTraitsHandler) { // we have a client traits handler, so we need to mark this instanced trait as changed // so that changes will be sent next frame - _clientTraitsHandler->markInstancedTraitUpdated(AvatarTraits::AvatarEntity, entityID); + _clientTraitsHandler->markInstancedTraitUpdated(AvatarTraits::AvatarEntity, id); } + // begin recipe to extract EntityItemProperties from unfortunately-formatted-binary-blob QJsonDocument jsonProperties = QJsonDocument::fromBinaryData(binaryData); if (!jsonProperties.isObject()) { qCDebug(interfaceapp) << "bad avatarEntityData json" << QString(binaryData.toHex()); continue; } - - QVariant variantProperties = jsonProperties.toVariant(); - QVariantMap asMap = variantProperties.toMap(); - QScriptValue scriptProperties = variantMapToScriptValue(asMap, scriptEngine); + QVariant variant = jsonProperties.toVariant(); + QVariantMap variantMap = variant.toMap(); + QScriptValue scriptValue = variantMapToScriptValue(variantMap, scriptEngine); EntityItemProperties properties; - EntityItemPropertiesFromScriptValueHonorReadOnly(scriptProperties, properties); + EntityItemPropertiesFromScriptValueHonorReadOnly(scriptValue, properties); + // end recipe + properties.setEntityHostType(entity::HostType::AVATAR); properties.setOwningAvatarID(getID()); @@ -1624,36 +1627,38 @@ void MyAvatar::loadAvatarEntityDataFromSettings() { // and seems safe (per Seth). properties.markAllChanged(); - entitiesToLoad.push_back(properties); + entitiesToLoad.push_back({id, properties}); } - _poorlyFormattedAvatarEntityData.clear(); + _cachedAvatarEntityDataSettings.clear(); auto entityTreeRenderer = qApp->getEntities(); EntityTreePointer entityTree = entityTreeRenderer ? entityTreeRenderer->getTree() : nullptr; if (entityTree) { OctreePacketData packetData(false, AvatarTraits::MAXIMUM_TRAIT_SIZE); EncodeBitstreamParams params; EntityTreeElementExtraEncodeDataPointer extra { nullptr }; - for (uint32_t i = 0; i < entitiesToLoad.size(); ++i) { + uint32_t i = 0; + for (const auto& entry : entitiesToLoad) { // try to create the entity - QUuid entityID = QUuid::createUuid(); // generate a new ID entityTree->withWriteLock([&] { - EntityItemPointer entity = entityTree->addEntity(entityID, entitiesToLoad[i]); + QUuid id = entry.first; + EntityItemPointer entity = entityTree->addEntity(id, entry.second); if (entity) { // use the entity to build the data payload OctreeElement::AppendState appendState = entity->appendEntityData(&packetData, params, extra); if (appendState == OctreeElement::COMPLETED) { // only remember an AvatarEntity that successfully loads and can be packed QByteArray tempArray((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); - storeAvatarEntityDataPayload(entityID, tempArray); + storeAvatarEntityDataPayload(id, tempArray); - // we store these binaryProperties for later: when saving back to settings - // unfortunately we must use this non-human-readable format because reasons - _poorlyFormattedAvatarEntityData[entityID] = _avatarEntityDataSettings[i].get(); + // only cache things that successfully loaded and packed + // we cache these binaryProperties for later: for when saving back to settings + _cachedAvatarEntityDataSettings[id] = _avatarEntityDataSettings[i].get(); } packetData.reset(); } }); + ++i; } } else { // TODO? handle this case: try to load AvatatEntityData from settings again later? diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 98c93f9ccc..9bbb25a3be 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -1948,7 +1948,7 @@ private: Setting::Handle<bool> _allowTeleportingSetting { "allowTeleporting", true }; std::vector<Setting::Handle<QUuid>> _avatarEntityIDSettings; std::vector<Setting::Handle<QByteArray>> _avatarEntityDataSettings; - std::map<QUuid, QByteArray> _poorlyFormattedAvatarEntityData; + std::map<QUuid, QByteArray> _cachedAvatarEntityDataSettings; std::set<QUuid> _entitiesToSaveToSettings; std::set<QUuid> _entitiesToRemoveFromSettings; }; diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index 59d9f13f04..b41e1381ef 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -436,12 +436,12 @@ void Avatar::updateAvatarEntities() { AvatarEntityIDs recentlyDetachedAvatarEntities = getAndClearRecentlyDetachedIDs(); if (!recentlyDetachedAvatarEntities.empty()) { // only lock this thread when absolutely necessary - AvatarEntityMap avatarEntityData; + AvatarEntityMap packedAvatarEntityData; _avatarEntitiesLock.withReadLock([&] { - avatarEntityData = _avatarEntityData; + packedAvatarEntityData = _packedAvatarEntityData; }); foreach (auto entityID, recentlyDetachedAvatarEntities) { - if (!avatarEntityData.contains(entityID)) { + if (!packedAvatarEntityData.contains(entityID)) { entityTree->deleteEntity(entityID, true, true); } } diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index f08e66af82..093b86d0e6 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -1908,10 +1908,9 @@ qint64 AvatarData::packAvatarEntityTraitInstance(AvatarTraits::TraitType traitTy // grab a read lock on the avatar entities and check for entity data for the given ID QByteArray entityBinaryData; - _avatarEntitiesLock.withReadLock([this, &entityBinaryData, &traitInstanceID] { - if (_avatarEntityData.contains(traitInstanceID)) { - entityBinaryData = _avatarEntityData[traitInstanceID]; + if (_packedAvatarEntityData.contains(traitInstanceID)) { + entityBinaryData = _packedAvatarEntityData[traitInstanceID]; } }); @@ -1998,7 +1997,7 @@ qint64 AvatarData::packTraitInstance(AvatarTraits::TraitType traitType, AvatarTr void AvatarData::prepareResetTraitInstances() { if (_clientTraitsHandler) { _avatarEntitiesLock.withReadLock([this]{ - foreach (auto entityID, _avatarEntityData.keys()) { + foreach (auto entityID, _packedAvatarEntityData.keys()) { _clientTraitsHandler->markInstancedTraitUpdated(AvatarTraits::AvatarEntity, entityID); } foreach (auto grabID, _avatarGrabData.keys()) { @@ -2367,7 +2366,7 @@ void AvatarData::setRecordingBasis(std::shared_ptr<Transform> recordingBasis) { void AvatarData::createRecordingIDs() { _avatarEntitiesLock.withReadLock([&] { _avatarEntityForRecording.clear(); - for (int i = 0; i < _avatarEntityData.size(); i++) { + for (int i = 0; i < _packedAvatarEntityData.size(); i++) { _avatarEntityForRecording.insert(QUuid::createUuid()); } }); @@ -2422,6 +2421,25 @@ JointData jointDataFromJsonValue(int version, const QJsonValue& json) { return result; } +void AvatarData::avatarEntityDataToJson(QJsonObject& root) const { + // ADEBUG this is broken + _avatarEntitiesLock.withReadLock([&] { + AvatarEntityMap _avatarEntityData = _packedAvatarEntityData; // hack to compile + if (!_avatarEntityData.empty()) { + QJsonArray avatarEntityJson; + int entityCount = 0; + for (auto entityID : _avatarEntityData.keys()) { + QVariantMap entityData; + QUuid newId = _avatarEntityForRecording.size() == _avatarEntityData.size() ? _avatarEntityForRecording.values()[entityCount++] : entityID; + entityData.insert("id", newId); + entityData.insert("properties", _avatarEntityData.value(entityID).toBase64()); + avatarEntityJson.push_back(QVariant(entityData).toJsonObject()); + } + root[JSON_AVATAR_ENTITIES] = avatarEntityJson; + } + }); +} + QJsonObject AvatarData::toJson() const { QJsonObject root; @@ -2433,20 +2451,8 @@ QJsonObject AvatarData::toJson() const { if (!getDisplayName().isEmpty()) { root[JSON_AVATAR_DISPLAY_NAME] = getDisplayName(); } - _avatarEntitiesLock.withReadLock([&] { - if (!_avatarEntityData.empty()) { - QJsonArray avatarEntityJson; - int entityCount = 0; - for (auto entityID : _avatarEntityData.keys()) { - QVariantMap entityData; - QUuid newId = _avatarEntityForRecording.size() == _avatarEntityData.size() ? _avatarEntityForRecording.values()[entityCount++] : entityID; - entityData.insert("id", newId); - entityData.insert("properties", _avatarEntityData.value(entityID).toBase64()); - avatarEntityJson.push_back(QVariant(entityData).toJsonObject()); - } - root[JSON_AVATAR_ENTITIES] = avatarEntityJson; - } - }); + + avatarEntityDataToJson(root); auto recordingBasis = getRecordingBasis(); bool success; @@ -2568,10 +2574,10 @@ void AvatarData::fromJson(const QJsonObject& json, bool useFrameSkeleton) { for (auto attachmentJson : attachmentsJson) { if (attachmentJson.isObject()) { QVariantMap entityData = attachmentJson.toObject().toVariantMap(); - QUuid entityID = entityData.value("id").toUuid(); + QUuid id = entityData.value("id").toUuid(); // ADEBUG TODO: fix this broken path - QByteArray properties = QByteArray::fromBase64(entityData.value("properties").toByteArray()); - storeAvatarEntityDataPayload(entityID, properties); + QByteArray data = QByteArray::fromBase64(entityData.value("properties").toByteArray()); + updateAvatarEntityData(id, data); } } } @@ -2757,10 +2763,10 @@ const int MAX_NUM_AVATAR_ENTITIES = 42; void AvatarData::storeAvatarEntityDataPayload(const QUuid& entityID, const QByteArray& data) { _avatarEntitiesLock.withWriteLock([&] { - AvatarEntityMap::iterator itr = _avatarEntityData.find(entityID); - if (itr == _avatarEntityData.end()) { - if (_avatarEntityData.size() < MAX_NUM_AVATAR_ENTITIES) { - _avatarEntityData.insert(entityID, data); + PackedAvatarEntityMap::iterator itr = _packedAvatarEntityData.find(entityID); + if (itr == _packedAvatarEntityData.end()) { + if (_packedAvatarEntityData.size() < MAX_NUM_AVATAR_ENTITIES) { + _packedAvatarEntityData.insert(entityID, data); } } else { itr.value() = data; @@ -2776,8 +2782,12 @@ void AvatarData::storeAvatarEntityDataPayload(const QUuid& entityID, const QByte } } -void AvatarData::updateAvatarEntity(const QUuid& id, const QScriptValue& data) { - // no op +void AvatarData::updateAvatarEntity(const QUuid& id, const QScriptValue& scriptValue) { + // overridden where needed +} + +void AvatarData::updateAvatarEntityData(const QUuid& id, const QByteArray& data) { + // ADEBUG TODO: implement this } void AvatarData::clearAvatarEntity(const QUuid& entityID, bool requiresRemovalFromTree) { @@ -2785,7 +2795,7 @@ void AvatarData::clearAvatarEntity(const QUuid& entityID, bool requiresRemovalFr bool removedEntity = false; _avatarEntitiesLock.withWriteLock([this, &removedEntity, &entityID] { - removedEntity = _avatarEntityData.remove(entityID); + removedEntity = _packedAvatarEntityData.remove(entityID); }); insertDetachedEntityID(entityID); @@ -2798,9 +2808,10 @@ void AvatarData::clearAvatarEntity(const QUuid& entityID, bool requiresRemovalFr } AvatarEntityMap AvatarData::getAvatarEntityData() const { + // ADEBUG broken AvatarEntityMap result; _avatarEntitiesLock.withReadLock([&] { - result = _avatarEntityData; + result = _packedAvatarEntityData; }); return result; } @@ -2823,7 +2834,9 @@ void AvatarData::setAvatarEntityData(const AvatarEntityMap& avatarEntityData) { std::vector<QUuid> deletedEntityIDs; QList<QUuid> updatedEntityIDs; + // ADEBUG this is broken _avatarEntitiesLock.withWriteLock([&] { + AvatarEntityMap _avatarEntityData = _packedAvatarEntityData; // hack to compile if (_avatarEntityData != avatarEntityData) { // keep track of entities that were attached to this avatar but no longer are diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index 3d6dd78e05..1bae3cd32f 100644 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -63,6 +63,7 @@ using AvatarWeakPointer = std::weak_ptr<AvatarData>; using AvatarHash = QHash<QUuid, AvatarSharedPointer>; using AvatarEntityMap = QMap<QUuid, QByteArray>; +using PackedAvatarEntityMap = QMap<QUuid, QByteArray>; // similar to AvatarEntityMap, but different internal format using AvatarEntityIDs = QSet<QUuid>; using AvatarGrabDataMap = QMap<QUuid, QByteArray>; @@ -959,7 +960,8 @@ public: * @param {Uuid} entityID * @param {object} entityData */ - Q_INVOKABLE virtual void updateAvatarEntity(const QUuid& id, const QScriptValue& data); + Q_INVOKABLE virtual void updateAvatarEntity(const QUuid& id, const QScriptValue& scriptValue); + virtual void updateAvatarEntityData(const QUuid& id, const QByteArray& data); /**jsdoc * @function MyAvatar.clearAvatarEntity @@ -1126,6 +1128,7 @@ public: TransformPointer getRecordingBasis() const; void setRecordingBasis(TransformPointer recordingBasis = TransformPointer()); void createRecordingIDs(); + void avatarEntityDataToJson(QJsonObject& root) const; QJsonObject toJson() const; void fromJson(const QJsonObject& json, bool useFrameSkeleton = true); @@ -1140,11 +1143,10 @@ public: Q_INVOKABLE AvatarEntityMap getAvatarEntityData() const; /**jsdoc - * Temporarily disabled. Use updateAvatarEntity(id, properties) in the meantime. * @function MyAvatar.setAvatarEntityData * @param {object} avatarEntityData */ - void setAvatarEntityData(const AvatarEntityMap& avatarEntityData); + Q_INVOKABLE void setAvatarEntityData(const AvatarEntityMap& avatarEntityData); virtual void setAvatarEntityDataChanged(bool value) { _avatarEntityDataChanged = value; } void insertDetachedEntityID(const QUuid entityID); @@ -1465,7 +1467,7 @@ protected: mutable ReadWriteLockable _avatarEntitiesLock; AvatarEntityIDs _avatarEntityDetached; // recently detached from this avatar AvatarEntityIDs _avatarEntityForRecording; // create new entities id for avatar recording - AvatarEntityMap _avatarEntityData; + PackedAvatarEntityMap _packedAvatarEntityData; bool _avatarEntityDataChanged { false }; mutable ReadWriteLockable _avatarGrabsLock; From 4dd6e23fefcbf6cfa337eb0a186ea1f92c634767 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Fri, 14 Dec 2018 15:05:26 -0800 Subject: [PATCH 189/230] fix typo in comment --- libraries/entities/src/EntityEditPacketSender.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/entities/src/EntityEditPacketSender.cpp b/libraries/entities/src/EntityEditPacketSender.cpp index eca431b565..8b051ef37e 100644 --- a/libraries/entities/src/EntityEditPacketSender.cpp +++ b/libraries/entities/src/EntityEditPacketSender.cpp @@ -44,7 +44,7 @@ void EntityEditPacketSender::queueEditAvatarEntityMessage(EntityTreePointer enti const EntityItemProperties& properties) { assert(_myAvatar); if (!entityTree) { - qCDebug(entities) << "EntityEditPacketSender::queueEditEntityMessage null entityTree."; + qCDebug(entities) << "EntityEditPacketSender::queueEditAvatarEntityMessage null entityTree."; return; } EntityItemPointer entity = entityTree->findEntityByEntityItemID(entityItemID); From 329ec84104fa7c8d3936ad8988f404ed2b8eaa92 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Fri, 14 Dec 2018 15:06:19 -0800 Subject: [PATCH 190/230] MyAvatar.setAvatarEntityData() works in theory, blobs saved to settings --- interface/src/Application.cpp | 3 + interface/src/avatar/MyAvatar.cpp | 569 +++++++++++++++++++-------- interface/src/avatar/MyAvatar.h | 41 +- libraries/avatars/src/AvatarData.cpp | 89 +---- libraries/avatars/src/AvatarData.h | 8 +- 5 files changed, 456 insertions(+), 254 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index e0128d0ceb..0a49afa95f 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2459,6 +2459,9 @@ void Application::updateHeartbeat() const { } void Application::onAboutToQuit() { + // quickly save AvatarEntityData before the EntityTree is dismantled + getMyAvatar()->saveAvatarDataToSettings(); + emit beforeAboutToQuit(); if (getLoginDialogPoppedUp() && _firstRun.get()) { diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 7b7adf14ca..051aab4cdf 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -282,6 +282,8 @@ MyAvatar::MyAvatar(QThread* thread) : MyAvatar::~MyAvatar() { _lookAtTargetAvatar.reset(); + delete _myScriptEngine; + _myScriptEngine = nullptr; } void MyAvatar::setDominantHand(const QString& hand) { @@ -1304,89 +1306,37 @@ void MyAvatar::saveData() { } void MyAvatar::saveAvatarEntityDataToSettings() { - if (_entitiesToSaveToSettings.size() + _entitiesToRemoveFromSettings.size() == 0) { - // nothing to do + if (!_needToSaveAvatarEntitySettings) { return; } - auto entityTreeRenderer = qApp->getEntities(); - EntityTreePointer entityTree = entityTreeRenderer ? entityTreeRenderer->getTree() : nullptr; - if (!entityTree) { + bool success = updateStaleAvatarEntityBlobs(); + if (!success) { return; } + _needToSaveAvatarEntitySettings = false; - // find set of things that changed - std::set<QUuid> entitiesToSave; - _avatarEntitiesLock.withWriteLock([&] { - entitiesToSave = std::move(_entitiesToSaveToSettings); - for (const auto& id : _entitiesToRemoveFromSettings) { - // remove - entitiesToSave.erase(id); - std::map<QUuid, QByteArray>::iterator itr = _cachedAvatarEntityDataSettings.find(id); - if (itr != _cachedAvatarEntityDataSettings.end()) { - _cachedAvatarEntityDataSettings.erase(itr); - } - } - for (const auto& id : entitiesToSave) { - // remove old strings to be replaced by new saves - std::map<QUuid, QByteArray>::iterator itr = _cachedAvatarEntityDataSettings.find(id); - if (itr != _cachedAvatarEntityDataSettings.end()) { - _cachedAvatarEntityDataSettings.erase(itr); - } - } - _entitiesToRemoveFromSettings.clear(); - }); - - uint32_t numEntities = (uint32_t)(entitiesToSave.size() + _cachedAvatarEntityDataSettings.size()); + uint32_t numEntities = (uint32_t)_cachedAvatarEntityBlobs.size(); uint32_t prevNumEntities = _avatarEntityCountSetting.get(0); resizeAvatarEntitySettingHandles(std::max<uint32_t>(numEntities, prevNumEntities)); - // save new settings + // save new Settings if (numEntities > 0) { - // get all properties to save - std::map<QUuid, EntityItemProperties> allProperties; - EntityItemPointer entity; - entityTree->withWriteLock([&] { - for (auto& id : entitiesToSave) { - EntityItemPointer entity = entityTree->findEntityByID(id); - if (entity) { - allProperties[id] = entity->getProperties(); - } + // save all unfortunately-formatted-binary-blobs to Settings + _avatarEntitiesLock.withWriteLock([&] { + uint32_t i = 0; + AvatarEntityMap::const_iterator itr = _cachedAvatarEntityBlobs.begin(); + while (itr != _cachedAvatarEntityBlobs.end()) { + _avatarEntityIDSettings[i].set(itr.key()); + _avatarEntityDataSettings[i].set(itr.value()); + ++itr; + ++i; } + numEntities = i; }); - // convert properties to our unfortunately-formatted-binary-blob format - QScriptEngine scriptEngine; - QScriptValue toStringMethod = scriptEngine.evaluate("(function() { return JSON.stringify(this) })"); - for (const auto& entry : allProperties) { - // begin recipe for converting to our unfortunately-formatted-binar-blob - QScriptValue scriptValue = EntityItemNonDefaultPropertiesToScriptValue(&scriptEngine, entry.second); - QVariant variantProperties = scriptValue.toVariant(); - QJsonDocument jsonProperties = QJsonDocument::fromVariant(variantProperties); - // the ID of the parent/avatar changes from session to session. use a special UUID to indicate the avatar - QJsonObject jsonObject = jsonProperties.object(); - if (jsonObject.contains("parentID")) { - if (QUuid(jsonObject["parentID"].toString()) == getID()) { - jsonObject["parentID"] = AVATAR_SELF_ID.toString(); - } - } - jsonProperties = QJsonDocument(jsonObject); - QByteArray binaryProperties = jsonProperties.toBinaryData(); - // end recipe - - // remember this unfortunately-formatted-binary-blob for later so we don't have go through this again - _cachedAvatarEntityDataSettings[entry.first] = binaryProperties; - } - // save all unfortunately-formatted-binary-blobs to settings - uint32_t i = 0; - for (const auto& entry : _cachedAvatarEntityDataSettings) { - _avatarEntityIDSettings[i].set(entry.first); - _avatarEntityDataSettings[i].set(entry.second); - ++i; - } - numEntities = i; } _avatarEntityCountSetting.set(numEntities); - // remove old settings if any + // remove old Settings if any if (numEntities < prevNumEntities) { uint32_t numEntitiesToRemove = prevNumEntities - numEntities; for (uint32_t i = 0; i < numEntitiesToRemove; ++i) { @@ -1499,35 +1449,304 @@ void MyAvatar::setEnableInverseKinematics(bool isEnabled) { void MyAvatar::storeAvatarEntityDataPayload(const QUuid& entityID, const QByteArray& payload) { AvatarData::storeAvatarEntityDataPayload(entityID, payload); _avatarEntitiesLock.withWriteLock([&] { - _entitiesToSaveToSettings.insert(entityID); + _cachedAvatarEntityBlobsToAddOrUpdate.push_back(entityID); }); } void MyAvatar::clearAvatarEntity(const QUuid& entityID, bool requiresRemovalFromTree) { - _avatarEntitiesLock.withWriteLock([&] { - _entitiesToRemoveFromSettings.insert(entityID); - }); AvatarData::clearAvatarEntity(entityID, requiresRemovalFromTree); + _avatarEntitiesLock.withWriteLock([&] { + _cachedAvatarEntityBlobsToDelete.push_back(entityID); + }); +} + +bool blobToProperties(QScriptEngine& scriptEngine, const QByteArray& blob, EntityItemProperties& properties) { + // begin recipe for converting unfortunately-formatted-binary-blob to EntityItemProperties + QJsonDocument jsonProperties = QJsonDocument::fromBinaryData(blob); + if (!jsonProperties.isObject()) { + qCDebug(interfaceapp) << "bad avatarEntityData json" << QString(blob.toHex()); + return false; + } + QVariant variant = jsonProperties.toVariant(); + QVariantMap variantMap = variant.toMap(); + QScriptValue scriptValue = variantMapToScriptValue(variantMap, scriptEngine); + EntityItemPropertiesFromScriptValueHonorReadOnly(scriptValue, properties); + // end recipe + return true; +} + +void propertiesToBlob(QScriptEngine& scriptEngine, const QUuid& myAvatarID, const EntityItemProperties& properties, QByteArray& blob) { + // begin recipe for extracting unfortunately-formatted-binary-blob from EntityItem + QScriptValue scriptValue = EntityItemNonDefaultPropertiesToScriptValue(&scriptEngine, properties); + QVariant variantProperties = scriptValue.toVariant(); + QJsonDocument jsonProperties = QJsonDocument::fromVariant(variantProperties); + // the ID of the parent/avatar changes from session to session. use a special UUID to indicate the avatar + QJsonObject jsonObject = jsonProperties.object(); + if (jsonObject.contains("parentID")) { + if (QUuid(jsonObject["parentID"].toString()) == myAvatarID) { + jsonObject["parentID"] = AVATAR_SELF_ID.toString(); + } + } + jsonProperties = QJsonDocument(jsonObject); + blob = jsonProperties.toBinaryData(); + // end recipe +} + +void MyAvatar::sanitizeAvatarEntityProperties(EntityItemProperties& properties) const { + properties.setEntityHostType(entity::HostType::AVATAR); + properties.setOwningAvatarID(getID()); + + // there's no entity-server to tell us we're the simulation owner, so always set the + // simulationOwner to the owningAvatarID and a high priority. + properties.setSimulationOwner(getID(), AVATAR_ENTITY_SIMULATION_PRIORITY); + + if (properties.getParentID() == AVATAR_SELF_ID) { + properties.setParentID(getID()); + } + + // When grabbing avatar entities, they are parented to the joint moving them, then when un-grabbed + // they go back to the default parent (null uuid). When un-gripped, others saw the entity disappear. + // The thinking here is the local position was noticed as changing, but not the parentID (since it is now + // back to the default), and the entity flew off somewhere. Marking all changed definitely fixes this, + // and seems safe (per Seth). + properties.markAllChanged(); } void MyAvatar::updateAvatarEntities() { + if (getID().isNull() || + getID() == AVATAR_SELF_ID || + DependencyManager::get<NodeList>()->getSessionUUID() == QUuid()) { + // wait until MyAvatar and this Node gets an ID before doing this. Otherwise, various things go wrong: + // things get their parent fixed up from AVATAR_SELF_ID to a null uuid which means "no parent". + return; + } if (_reloadAvatarEntityDataFromSettings) { - if (getID().isNull() || - getID() == AVATAR_SELF_ID || - DependencyManager::get<NodeList>()->getSessionUUID() == QUuid()) { - // wait until MyAvatar and this Node gets an ID before doing this. Otherwise, various things go wrong: - // things get their parent fixed up from AVATAR_SELF_ID to a null uuid which means "no parent". - return; - } - auto treeRenderer = DependencyManager::get<EntityTreeRenderer>(); - EntityTreePointer entityTree = treeRenderer ? treeRenderer->getTree() : nullptr; - if (!entityTree) { - return; - } loadAvatarEntityDataFromSettings(); } + + auto treeRenderer = DependencyManager::get<EntityTreeRenderer>(); + EntityTreePointer entityTree = treeRenderer ? treeRenderer->getTree() : nullptr; + if (!entityTree) { + return; + } + + // We collect changes to AvatarEntities and then handle them all in one spot per frame: updateAvatarEntities(). + // Basically this is a "transaction pattern" with an extra complication: these changes can come from two + // "directions" and the "authoritative source" of each direction is different, so maintain two distinct sets of + // transaction lists; + // + // The _entitiesToDelete/Add/Update lists are for changes whose "authoritative sources" are already + // correctly stored in _cachedAvatarEntityBlobs. These come from loadAvatarEntityDataFromSettings() and + // setAvatarEntityData(). These changes need to be extracted from _cachedAvatarEntityBlobs and applied to + // real EntityItems. + // + // The _cachedAvatarEntityBlobsToDelete/Add/Update lists are for changes whose "authoritative sources" are + // already reflected in real EntityItems. These changes need to be propagated to _cachedAvatarEntityBlobs + // and eventually to Settings. + // + // The DELETEs also need to be propagated to the traits, which will eventually propagate to + // AvatarData::_packedAvatarEntityData via deeper logic. + + // move the lists to minimize lock time + std::vector<QUuid> cachedBlobsToDelete; + std::vector<QUuid> cachedBlobsToUpdate; + std::vector<QUuid> entitiesToDelete; + std::vector<QUuid> entitiesToAdd; + std::vector<QUuid> entitiesToUpdate; + _avatarEntitiesLock.withWriteLock([&] { + cachedBlobsToDelete = std::move(_cachedAvatarEntityBlobsToDelete); + cachedBlobsToUpdate = std::move(_cachedAvatarEntityBlobsToAddOrUpdate); + entitiesToDelete = std::move(_entitiesToDelete); + entitiesToAdd = std::move(_entitiesToAdd); + entitiesToUpdate = std::move(_entitiesToUpdate); + }); + + auto removeAllInstancesHelper = [] (const QUuid& id, std::vector<QUuid>& v) { + uint32_t i = 0; + while (i < v.size()) { + if (id == v[i]) { + v[i] = v.back(); + v.pop_back(); + } else { + ++i; + } + } + }; + + // remove delete-add and delete-update overlap + for (const auto& id : entitiesToDelete) { + removeAllInstancesHelper(id, cachedBlobsToUpdate); + removeAllInstancesHelper(id, entitiesToAdd); + removeAllInstancesHelper(id, entitiesToUpdate); + } + for (const auto& id : cachedBlobsToDelete) { + removeAllInstancesHelper(id, entitiesToUpdate); + removeAllInstancesHelper(id, cachedBlobsToUpdate); + } + for (const auto& id : entitiesToAdd) { + removeAllInstancesHelper(id, entitiesToUpdate); + } + + // DELETE real entities + for (const auto& id : entitiesToDelete) { + entityTree->withWriteLock([&] { + entityTree->deleteEntity(id); + }); + } + + // ADD real entities + for (const auto& id : entitiesToAdd) { + bool blobFailed = false; + EntityItemProperties properties; + _avatarEntitiesLock.withReadLock([&] { + AvatarEntityMap::iterator itr = _cachedAvatarEntityBlobs.find(id); + if (itr == _cachedAvatarEntityBlobs.end()) { + blobFailed = true; // blob doesn't exist + return; + } + if (!blobToProperties(*_myScriptEngine, itr.value(), properties)) { + blobFailed = true; // blob is corrupt + } + }); + if (blobFailed) { + // remove from _cachedAvatarEntityBlobUpdatesToSkip just in case: + // avoids a resource leak when blob updates to be skipped are never actually skipped + // when the blob fails to result in a real EntityItem + _avatarEntitiesLock.withWriteLock([&] { + removeAllInstancesHelper(id, _cachedAvatarEntityBlobUpdatesToSkip); + }); + continue; + } + sanitizeAvatarEntityProperties(properties); + entityTree->withWriteLock([&] { + EntityItemPointer entity = entityTree->addEntity(id, properties); + }); + } + + // CHANGE real entities + for (const auto& id : entitiesToUpdate) { + EntityItemProperties properties; + bool skip = false; + _avatarEntitiesLock.withReadLock([&] { + AvatarEntityMap::iterator itr = _cachedAvatarEntityBlobs.find(id); + if (itr == _cachedAvatarEntityBlobs.end()) { + skip = true; + return; + } + if (!blobToProperties(*_myScriptEngine, itr.value(), properties)) { + skip = true; + } + }); + sanitizeAvatarEntityProperties(properties); + entityTree->withWriteLock([&] { + entityTree->updateEntity(id, properties); + }); + } + + // DELETE cached blobs + _avatarEntitiesLock.withWriteLock([&] { + for (const auto& id : cachedBlobsToDelete) { + AvatarEntityMap::iterator itr = _cachedAvatarEntityBlobs.find(id); + // remove blob and remember to remove from settings + if (itr != _cachedAvatarEntityBlobs.end()) { + _cachedAvatarEntityBlobs.erase(itr); + _needToSaveAvatarEntitySettings = true; + } + // also remove from list of stale blobs to avoid failed entity lookup later + std::set<QUuid>::iterator blobItr = _staleCachedAvatarEntityBlobs.find(id); + if (blobItr != _staleCachedAvatarEntityBlobs.end()) { + _staleCachedAvatarEntityBlobs.erase(blobItr); + } + // also remove from _cachedAvatarEntityBlobUpdatesToSkip just in case: + // avoids a resource leak when things are deleted before they could be skipped + removeAllInstancesHelper(id, _cachedAvatarEntityBlobUpdatesToSkip); + } + }); + + // ADD/UPDATE cached blobs + for (const auto& id : cachedBlobsToUpdate) { + // computing the blobs is expensive and we want to avoid it when possible + // so we add these ids to _staleCachedAvatarEntityBlobs for later + // and only build the blobs when absolutely necessary + bool skip = false; + uint32_t i = 0; + _avatarEntitiesLock.withWriteLock([&] { + while (i < _cachedAvatarEntityBlobUpdatesToSkip.size()) { + if (id == _cachedAvatarEntityBlobUpdatesToSkip[i]) { + _cachedAvatarEntityBlobUpdatesToSkip[i] = _cachedAvatarEntityBlobUpdatesToSkip.back(); + _cachedAvatarEntityBlobUpdatesToSkip.pop_back(); + skip = true; + break; // assume no duplicates + } else { + ++i; + } + } + }); + if (!skip) { + _staleCachedAvatarEntityBlobs.insert(id); + _needToSaveAvatarEntitySettings = true; + } + } + + // DELETE traits + // (no need to worry about the ADDs and UPDATEs: each will be handled when the interface + // tries to send a real update packet (via AvatarData::storeAvatarEntityDataPayload())) + if (_clientTraitsHandler) { + // we have a client traits handler + // flag removed entities as deleted so that changes are sent next frame + _avatarEntitiesLock.withWriteLock([&] { + for (const auto& id : entitiesToDelete) { + if (_packedAvatarEntityData.find(id) != _packedAvatarEntityData.end()) { + _clientTraitsHandler->markInstancedTraitDeleted(AvatarTraits::AvatarEntity, id); + } + } + for (const auto& id : cachedBlobsToDelete) { + if (_packedAvatarEntityData.find(id) != _packedAvatarEntityData.end()) { + _clientTraitsHandler->markInstancedTraitDeleted(AvatarTraits::AvatarEntity, id); + } + } + }); + } } +bool MyAvatar::updateStaleAvatarEntityBlobs() const { + // call this right before you actually need to use the blobs + // + // Note: this method is const (and modifies mutable data members) + // so we can call it at the Last Minute inside other const methods + // + auto treeRenderer = DependencyManager::get<EntityTreeRenderer>(); + EntityTreePointer entityTree = treeRenderer ? treeRenderer->getTree() : nullptr; + if (!entityTree) { + return false; + } + + std::set<QUuid> staleBlobs; + _avatarEntitiesLock.withWriteLock([&] { + staleBlobs = std::move(_staleCachedAvatarEntityBlobs); + }); + int32_t numFound = 0; + for (const auto& id : staleBlobs) { + bool found = false; + EntityItemProperties properties; + entityTree->withReadLock([&] { + EntityItemPointer entity = entityTree->findEntityByID(id); + if (entity) { + properties = entity->getProperties(); + found = true; + } + }); + if (found) { + ++numFound; + QByteArray blob; + propertiesToBlob(*_myScriptEngine, getID(), properties, blob); + _avatarEntitiesLock.withWriteLock([&] { + _cachedAvatarEntityBlobs[id] = blob; + }); + } + } + return true; +} void MyAvatar::rememberToReloadAvatarEntityDataFromSettings() { AvatarEntityMap emptyMap; @@ -1535,7 +1754,84 @@ void MyAvatar::rememberToReloadAvatarEntityDataFromSettings() { _reloadAvatarEntityDataFromSettings = true; } +AvatarEntityMap MyAvatar::getAvatarEntityData() const { + // NOTE: the return value is expected to be a map of unfortunately-formatted-binary-blobs + updateStaleAvatarEntityBlobs(); + AvatarEntityMap result; + _avatarEntitiesLock.withReadLock([&] { + result = _cachedAvatarEntityBlobs; + }); + return result; +} + +void MyAvatar::setAvatarEntityData(const AvatarEntityMap& avatarEntityData) { + // NOTE: the argument is expected to be a map of unfortunately-formatted-binary-blobs + if (avatarEntityData.size() > MAX_NUM_AVATAR_ENTITIES) { + // the data is suspect + qCDebug(interfaceapp) << "discard suspect AvatarEntityData with size =" << avatarEntityData.size(); + return; + } + + _avatarEntitiesLock.withWriteLock([&] { + // find new and updated IDs + AvatarEntityMap::const_iterator constItr = avatarEntityData.begin(); + while (constItr != avatarEntityData.end()) { + QUuid id = constItr.key(); + if (_cachedAvatarEntityBlobs.find(id) == _cachedAvatarEntityBlobs.end()) { + _entitiesToAdd.push_back(id); + } else { + _entitiesToUpdate.push_back(id); + } + } + // find and erase deleted IDs from _cachedAvatarEntityBlobs + std::vector<QUuid> deletedIDs; + AvatarEntityMap::iterator itr = _cachedAvatarEntityBlobs.begin(); + while (itr != _cachedAvatarEntityBlobs.end()) { + QUuid id = itr.key(); + if (std::find(_entitiesToUpdate.begin(), _entitiesToUpdate.end(), id) == _entitiesToUpdate.end()) { + deletedIDs.push_back(id); + itr = _cachedAvatarEntityBlobs.erase(itr); + } else { + ++itr; + } + } + // erase deleted IDs from _packedAvatarEntityData + for (const auto& id : deletedIDs) { + itr = _packedAvatarEntityData.find(id); + if (itr != _packedAvatarEntityData.end()) { + _packedAvatarEntityData.erase(itr); + } else { + ++itr; + } + _entitiesToDelete.push_back(id); + } + }); +} + +void MyAvatar::avatarEntityDataToJson(QJsonObject& root) const { + _avatarEntitiesLock.withReadLock([&] { + if (!_cachedAvatarEntityBlobs.empty()) { + QJsonArray avatarEntityJson; + int entityCount = 0; + AvatarEntityMap::const_iterator itr = _cachedAvatarEntityBlobs.begin(); + while (itr != _cachedAvatarEntityBlobs.end()) { + QVariantMap entityData; + QUuid id = _avatarEntityForRecording.size() == _cachedAvatarEntityBlobs.size() ? _avatarEntityForRecording.values()[entityCount++] : itr.key(); + entityData.insert("id", id); + entityData.insert("properties", itr.value().toBase64()); + avatarEntityJson.push_back(QVariant(entityData).toJsonObject()); + ++itr; + } + const QString JSON_AVATAR_ENTITIES = QStringLiteral("attachedEntities"); + root[JSON_AVATAR_ENTITIES] = avatarEntityJson; + } + }); +} + void MyAvatar::loadData() { + if (!_myScriptEngine) { + _myScriptEngine = new QScriptEngine(); + } getHead()->setBasePitch(_headPitchSetting.get()); _yawSpeed = _yawSpeedSetting.get(_yawSpeed); @@ -1570,99 +1866,33 @@ void MyAvatar::loadData() { } void MyAvatar::loadAvatarEntityDataFromSettings() { - _avatarEntitiesLock.withReadLock([&] { + _avatarEntitiesLock.withWriteLock([&] { _packedAvatarEntityData.clear(); + _entitiesToDelete.clear(); + _entitiesToAdd.clear(); + _entitiesToUpdate.clear(); }); - _reloadAvatarEntityDataFromSettings = false; + int numEntities = _avatarEntityCountSetting.get(0); if (numEntities == 0) { return; } - - QScriptEngine scriptEngine; - std::vector< std::pair<QUuid, EntityItemProperties> > entitiesToLoad; resizeAvatarEntitySettingHandles(numEntities); - for (int i = 0; i < numEntities; i++) { - QUuid id = QUuid::createUuid(); // generate a new ID - // the avatarEntityData is stored as an unfortunately-formatted-binary-blob - QByteArray binaryData = _avatarEntityDataSettings[i].get(); - - _avatarEntityDataChanged = true; - if (_clientTraitsHandler) { - // we have a client traits handler, so we need to mark this instanced trait as changed - // so that changes will be sent next frame - _clientTraitsHandler->markInstancedTraitUpdated(AvatarTraits::AvatarEntity, id); + _avatarEntitiesLock.withWriteLock([&] { + _entitiesToAdd.reserve(numEntities); + // TODO: build map between old and new IDs so we can restitch parent-child relationships + for (int i = 0; i < numEntities; i++) { + QUuid id = QUuid::createUuid(); // generate a new ID + _cachedAvatarEntityBlobs[id] = _avatarEntityDataSettings[i].get(); + _entitiesToAdd.push_back(id); + // this blob is the "authoritative source" for this AvatarEntity and we want to avoid overwriting it + // (the outgoing update packet will flag it for save-back into the blob) + // which is why we remember its id: to skip its save-back later + _cachedAvatarEntityBlobUpdatesToSkip.push_back(id); } - - // begin recipe to extract EntityItemProperties from unfortunately-formatted-binary-blob - QJsonDocument jsonProperties = QJsonDocument::fromBinaryData(binaryData); - if (!jsonProperties.isObject()) { - qCDebug(interfaceapp) << "bad avatarEntityData json" << QString(binaryData.toHex()); - continue; - } - QVariant variant = jsonProperties.toVariant(); - QVariantMap variantMap = variant.toMap(); - QScriptValue scriptValue = variantMapToScriptValue(variantMap, scriptEngine); - EntityItemProperties properties; - EntityItemPropertiesFromScriptValueHonorReadOnly(scriptValue, properties); - // end recipe - - properties.setEntityHostType(entity::HostType::AVATAR); - properties.setOwningAvatarID(getID()); - - // there's no entity-server to tell us we're the simulation owner, so always set the - // simulationOwner to the owningAvatarID and a high priority. - properties.setSimulationOwner(getID(), AVATAR_ENTITY_SIMULATION_PRIORITY); - - if (properties.getParentID() == AVATAR_SELF_ID) { - properties.setParentID(getID()); - } - - // When grabbing avatar entities, they are parented to the joint moving them, then when un-grabbed - // they go back to the default parent (null uuid). When un-gripped, others saw the entity disappear. - // The thinking here is the local position was noticed as changing, but not the parentID (since it is now - // back to the default), and the entity flew off somewhere. Marking all changed definitely fixes this, - // and seems safe (per Seth). - properties.markAllChanged(); - - entitiesToLoad.push_back({id, properties}); - } - - _cachedAvatarEntityDataSettings.clear(); - auto entityTreeRenderer = qApp->getEntities(); - EntityTreePointer entityTree = entityTreeRenderer ? entityTreeRenderer->getTree() : nullptr; - if (entityTree) { - OctreePacketData packetData(false, AvatarTraits::MAXIMUM_TRAIT_SIZE); - EncodeBitstreamParams params; - EntityTreeElementExtraEncodeDataPointer extra { nullptr }; - uint32_t i = 0; - for (const auto& entry : entitiesToLoad) { - // try to create the entity - entityTree->withWriteLock([&] { - QUuid id = entry.first; - EntityItemPointer entity = entityTree->addEntity(id, entry.second); - if (entity) { - // use the entity to build the data payload - OctreeElement::AppendState appendState = entity->appendEntityData(&packetData, params, extra); - if (appendState == OctreeElement::COMPLETED) { - // only remember an AvatarEntity that successfully loads and can be packed - QByteArray tempArray((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); - storeAvatarEntityDataPayload(id, tempArray); - - // only cache things that successfully loaded and packed - // we cache these binaryProperties for later: for when saving back to settings - _cachedAvatarEntityDataSettings[id] = _avatarEntityDataSettings[i].get(); - } - packetData.reset(); - } - }); - ++i; - } - } else { - // TODO? handle this case: try to load AvatatEntityData from settings again later? - } + }); } void MyAvatar::saveAttachmentData(const AttachmentData& attachment) const { @@ -2158,7 +2388,6 @@ void MyAvatar::removeWearableAvatarEntities() { QVariantList MyAvatar::getAvatarEntitiesVariant() { // NOTE: this method is NOT efficient QVariantList avatarEntitiesData; - QScriptEngine scriptEngine; auto treeRenderer = DependencyManager::get<EntityTreeRenderer>(); EntityTreePointer entityTree = treeRenderer ? treeRenderer->getTree() : nullptr; if (entityTree) { @@ -2174,7 +2403,7 @@ QVariantList MyAvatar::getAvatarEntitiesVariant() { desiredProperties += PROP_LOCAL_POSITION; desiredProperties += PROP_LOCAL_ROTATION; EntityItemProperties entityProperties = entity->getProperties(desiredProperties); - QScriptValue scriptProperties = EntityItemPropertiesToScriptValue(&scriptEngine, entityProperties); + QScriptValue scriptProperties = EntityItemPropertiesToScriptValue(_myScriptEngine, entityProperties); avatarEntityData["properties"] = scriptProperties.toVariant(); avatarEntitiesData.append(QVariant(avatarEntityData)); } diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 9bbb25a3be..a20908e7cb 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -1210,6 +1210,10 @@ public: */ Q_INVOKABLE void releaseGrab(const QUuid& grabID); + AvatarEntityMap getAvatarEntityData() const override; + void setAvatarEntityData(const AvatarEntityMap& avatarEntityData) override; + void avatarEntityDataToJson(QJsonObject& root) const override; + public slots: /**jsdoc @@ -1410,6 +1414,7 @@ public slots: void storeAvatarEntityDataPayload(const QUuid& entityID, const QByteArray& payload) override; void clearAvatarEntity(const QUuid& entityID, bool requiresRemovalFromTree = true) override; + void sanitizeAvatarEntityProperties(EntityItemProperties& properties) const; /**jsdoc * Set whether or not your avatar mesh is visible. @@ -1621,6 +1626,7 @@ protected: virtual void recalculateChildCauterization() const override; private: + bool updateStaleAvatarEntityBlobs() const; bool requiresSafeLanding(const glm::vec3& positionIn, glm::vec3& positionOut); @@ -1948,9 +1954,38 @@ private: Setting::Handle<bool> _allowTeleportingSetting { "allowTeleporting", true }; std::vector<Setting::Handle<QUuid>> _avatarEntityIDSettings; std::vector<Setting::Handle<QByteArray>> _avatarEntityDataSettings; - std::map<QUuid, QByteArray> _cachedAvatarEntityDataSettings; - std::set<QUuid> _entitiesToSaveToSettings; - std::set<QUuid> _entitiesToRemoveFromSettings; + + // AvatarEntities stuff: + // We cache the "map of unfortunately-formatted-binary-blobs" because they are expensive to compute + // Do not confuse these with AvatarData::_packedAvatarEntityData which are in wire-format. + mutable AvatarEntityMap _cachedAvatarEntityBlobs; + + // We collect changes to AvatarEntities and then handle them all in one spot per frame: updateAvatarEntities(). + // Basically this is a "transaction pattern" with an extra complication: these changes can come from two + // "directions" and the "authoritative source" of each direction is different, so maintain two distinct sets of + // transaction lists; + // + // The _entitiesToDelete/Add/Update lists are for changes whose "authoritative sources" are already + // correctly stored in _cachedAvatarEntityBlobs. These come from loadAvatarEntityDataFromSettings() and + // setAvatarEntityData(). These changes need to be extracted from _cachedAvatarEntityBlobs and applied to + // real EntityItems. + std::vector<QUuid> _entitiesToDelete; + std::vector<QUuid> _entitiesToAdd; + std::vector<QUuid> _entitiesToUpdate; + // + // The _cachedAvatarEntityBlobsToDelete/Add/Update lists are for changes whose "authoritative sources" are + // already reflected in real EntityItems. These changes need to be propagated to _cachedAvatarEntityBlobs + // and eventually to settings. + std::vector<QUuid> _cachedAvatarEntityBlobsToDelete; + std::vector<QUuid> _cachedAvatarEntityBlobsToAddOrUpdate; + std::vector<QUuid> _cachedAvatarEntityBlobUpdatesToSkip; + // + // Also these lists for tracking delayed changes to blobs and Settings + std::set<QUuid> _staleCachedAvatarEntityBlobs; + // + // keep a ScriptEngine around so we don't have to instantiate on the fly (these are very slow to create/delete) + QScriptEngine* _myScriptEngine { nullptr }; + bool _needToSaveAvatarEntitySettings { false }; }; QScriptValue audioListenModeToScriptValue(QScriptEngine* engine, const AudioListenerMode& audioListenerMode); diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index 093b86d0e6..3d22c50e1a 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -2422,22 +2422,7 @@ JointData jointDataFromJsonValue(int version, const QJsonValue& json) { } void AvatarData::avatarEntityDataToJson(QJsonObject& root) const { - // ADEBUG this is broken - _avatarEntitiesLock.withReadLock([&] { - AvatarEntityMap _avatarEntityData = _packedAvatarEntityData; // hack to compile - if (!_avatarEntityData.empty()) { - QJsonArray avatarEntityJson; - int entityCount = 0; - for (auto entityID : _avatarEntityData.keys()) { - QVariantMap entityData; - QUuid newId = _avatarEntityForRecording.size() == _avatarEntityData.size() ? _avatarEntityForRecording.values()[entityCount++] : entityID; - entityData.insert("id", newId); - entityData.insert("properties", _avatarEntityData.value(entityID).toBase64()); - avatarEntityJson.push_back(QVariant(entityData).toJsonObject()); - } - root[JSON_AVATAR_ENTITIES] = avatarEntityJson; - } - }); + // overridden where needed } QJsonObject AvatarData::toJson() const { @@ -2575,7 +2560,6 @@ void AvatarData::fromJson(const QJsonObject& json, bool useFrameSkeleton) { if (attachmentJson.isObject()) { QVariantMap entityData = attachmentJson.toObject().toVariantMap(); QUuid id = entityData.value("id").toUuid(); - // ADEBUG TODO: fix this broken path QByteArray data = QByteArray::fromBase64(entityData.value("properties").toByteArray()); updateAvatarEntityData(id, data); } @@ -2759,8 +2743,6 @@ void AvatarData::setAttachmentsVariant(const QVariantList& variant) { setAttachmentData(newAttachments); } -const int MAX_NUM_AVATAR_ENTITIES = 42; - void AvatarData::storeAvatarEntityDataPayload(const QUuid& entityID, const QByteArray& data) { _avatarEntitiesLock.withWriteLock([&] { PackedAvatarEntityMap::iterator itr = _packedAvatarEntityData.find(entityID); @@ -2787,7 +2769,8 @@ void AvatarData::updateAvatarEntity(const QUuid& id, const QScriptValue& scriptV } void AvatarData::updateAvatarEntityData(const QUuid& id, const QByteArray& data) { - // ADEBUG TODO: implement this + // overridden where needed + // NOTE: expects 'data' to be an unfortunately-formatted-binary-blob } void AvatarData::clearAvatarEntity(const QUuid& entityID, bool requiresRemovalFromTree) { @@ -2808,73 +2791,23 @@ void AvatarData::clearAvatarEntity(const QUuid& entityID, bool requiresRemovalFr } AvatarEntityMap AvatarData::getAvatarEntityData() const { - // ADEBUG broken - AvatarEntityMap result; - _avatarEntitiesLock.withReadLock([&] { - result = _packedAvatarEntityData; - }); - return result; + // overridden where needed + // NOTE: the return value is expected to be a map of unfortunately-formatted-binary-blobs + return AvatarEntityMap(); +} + +void AvatarData::setAvatarEntityData(const AvatarEntityMap& avatarEntityData) { + // overridden where needed + // NOTE: the argument is expected to be a map of unfortunately-formatted-binary-blobs } void AvatarData::insertDetachedEntityID(const QUuid entityID) { _avatarEntitiesLock.withWriteLock([&] { _avatarEntityDetached.insert(entityID); }); - _avatarEntityDataChanged = true; } -void AvatarData::setAvatarEntityData(const AvatarEntityMap& avatarEntityData) { - if (avatarEntityData.size() > MAX_NUM_AVATAR_ENTITIES) { - // the data is suspect - qCDebug(avatars) << "discard suspect AvatarEntityData with size =" << avatarEntityData.size(); - return; - } - - std::vector<QUuid> deletedEntityIDs; - QList<QUuid> updatedEntityIDs; - - // ADEBUG this is broken - _avatarEntitiesLock.withWriteLock([&] { - AvatarEntityMap _avatarEntityData = _packedAvatarEntityData; // hack to compile - if (_avatarEntityData != avatarEntityData) { - - // keep track of entities that were attached to this avatar but no longer are - AvatarEntityIDs previousAvatarEntityIDs = QSet<QUuid>::fromList(_avatarEntityData.keys()); - - _avatarEntityData = avatarEntityData; - setAvatarEntityDataChanged(true); - - deletedEntityIDs.reserve(previousAvatarEntityIDs.size()); - - foreach (auto entityID, previousAvatarEntityIDs) { - if (!_avatarEntityData.contains(entityID)) { - _avatarEntityDetached.insert(entityID); - deletedEntityIDs.push_back(entityID); - } - } - - updatedEntityIDs = _avatarEntityData.keys(); - } - }); - - if (_clientTraitsHandler) { - // we have a client traits handler - - // flag removed entities as deleted so that changes are sent next frame - for (auto& deletedEntityID : deletedEntityIDs) { - _clientTraitsHandler->markInstancedTraitDeleted(AvatarTraits::AvatarEntity, deletedEntityID); - } - - // flag any updated or created entities so that we send changes for them next frame - for (auto& entityID : updatedEntityIDs) { - _clientTraitsHandler->markInstancedTraitUpdated(AvatarTraits::AvatarEntity, entityID); - } - } - - -} - AvatarEntityIDs AvatarData::getAndClearRecentlyDetachedIDs() { AvatarEntityIDs result; _avatarEntitiesLock.withWriteLock([&] { diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index 1bae3cd32f..787f92f5db 100644 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -72,6 +72,8 @@ using AvatarGrabMap = QMap<QUuid, GrabPointer>; using AvatarDataSequenceNumber = uint16_t; +const int MAX_NUM_AVATAR_ENTITIES = 42; + // avatar motion behaviors const quint32 AVATAR_MOTION_ACTION_MOTOR_ENABLED = 1U << 0; const quint32 AVATAR_MOTION_SCRIPTED_MOTOR_ENABLED = 1U << 1; @@ -1128,7 +1130,7 @@ public: TransformPointer getRecordingBasis() const; void setRecordingBasis(TransformPointer recordingBasis = TransformPointer()); void createRecordingIDs(); - void avatarEntityDataToJson(QJsonObject& root) const; + virtual void avatarEntityDataToJson(QJsonObject& root) const; QJsonObject toJson() const; void fromJson(const QJsonObject& json, bool useFrameSkeleton = true); @@ -1140,13 +1142,13 @@ public: * @function MyAvatar.getAvatarEntityData * @returns {object} */ - Q_INVOKABLE AvatarEntityMap getAvatarEntityData() const; + Q_INVOKABLE virtual AvatarEntityMap getAvatarEntityData() const; /**jsdoc * @function MyAvatar.setAvatarEntityData * @param {object} avatarEntityData */ - Q_INVOKABLE void setAvatarEntityData(const AvatarEntityMap& avatarEntityData); + Q_INVOKABLE virtual void setAvatarEntityData(const AvatarEntityMap& avatarEntityData); virtual void setAvatarEntityDataChanged(bool value) { _avatarEntityDataChanged = value; } void insertDetachedEntityID(const QUuid entityID); From cbda905e3b3541f154ffe1c5298ac6606e41b8f1 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Fri, 14 Dec 2018 15:33:37 -0800 Subject: [PATCH 191/230] fix typo --- interface/src/Application.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 0a49afa95f..1a4d2db83e 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2460,7 +2460,7 @@ void Application::updateHeartbeat() const { void Application::onAboutToQuit() { // quickly save AvatarEntityData before the EntityTree is dismantled - getMyAvatar()->saveAvatarDataToSettings(); + getMyAvatar()->saveAvatarEntityDataToSettings(); emit beforeAboutToQuit(); From a4be4fb6c0a492c1aadb71700bf1566660873124 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Fri, 14 Dec 2018 17:34:47 -0800 Subject: [PATCH 192/230] MyAvatar.setAvatarEntityData() works --- .../src/avatars/ScriptableAvatar.cpp | 4 +++- .../src/avatars/ScriptableAvatar.h | 2 +- interface/src/avatar/MyAvatar.cpp | 17 +++++++++++++---- interface/src/avatar/MyAvatar.h | 2 -- .../src/avatars-renderer/Avatar.h | 2 -- libraries/avatars/src/AvatarData.cpp | 8 ++------ libraries/avatars/src/AvatarData.h | 5 ++--- 7 files changed, 21 insertions(+), 19 deletions(-) diff --git a/assignment-client/src/avatars/ScriptableAvatar.cpp b/assignment-client/src/avatars/ScriptableAvatar.cpp index 25cf702b22..8e88d6c236 100644 --- a/assignment-client/src/avatars/ScriptableAvatar.cpp +++ b/assignment-client/src/avatars/ScriptableAvatar.cpp @@ -252,7 +252,8 @@ void ScriptableAvatar::setHasAudioEnabledFaceMovement(bool hasAudioEnabledFaceMo _headData->setHasAudioEnabledFaceMovement(hasAudioEnabledFaceMovement); } -void ScriptableAvatar::updateAvatarEntity(const QUuid& id, const QScriptValue& data) { +void ScriptableAvatar::updateAvatarEntity(const QUuid& id, const QByteArray& data) { + /* TODO: fix this if (data.isNull()) { // interpret this as a DELETE std::map<QUuid, EntityItemPointer>::iterator itr = _entities.find(id); @@ -299,4 +300,5 @@ void ScriptableAvatar::updateAvatarEntity(const QUuid& id, const QScriptValue& d } } } + */ } diff --git a/assignment-client/src/avatars/ScriptableAvatar.h b/assignment-client/src/avatars/ScriptableAvatar.h index f56d7c66b0..b0e41d28eb 100644 --- a/assignment-client/src/avatars/ScriptableAvatar.h +++ b/assignment-client/src/avatars/ScriptableAvatar.h @@ -185,7 +185,7 @@ public: bool getHasProceduralEyeFaceMovement() const override { return _headData->getHasProceduralEyeFaceMovement(); } void setHasAudioEnabledFaceMovement(bool hasAudioEnabledFaceMovement); bool getHasAudioEnabledFaceMovement() const override { return _headData->getHasAudioEnabledFaceMovement(); } - void updateAvatarEntity(const QUuid& id, const QScriptValue& data) override; + void updateAvatarEntity(const QUuid& id, const QByteArray& data) override; public slots: void update(float deltatime); diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 051aab4cdf..a59560860d 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1772,16 +1772,23 @@ void MyAvatar::setAvatarEntityData(const AvatarEntityMap& avatarEntityData) { return; } + if (!avatarEntityData.empty() && !_cachedAvatarEntityBlobs.empty()) { + _needToSaveAvatarEntitySettings = true; + } _avatarEntitiesLock.withWriteLock([&] { // find new and updated IDs AvatarEntityMap::const_iterator constItr = avatarEntityData.begin(); + std::vector<QUuid> blobsToCache; + blobsToCache.reserve(avatarEntityData.size()); while (constItr != avatarEntityData.end()) { QUuid id = constItr.key(); if (_cachedAvatarEntityBlobs.find(id) == _cachedAvatarEntityBlobs.end()) { _entitiesToAdd.push_back(id); + blobsToCache.push_back(id); } else { _entitiesToUpdate.push_back(id); } + ++constItr; } // find and erase deleted IDs from _cachedAvatarEntityBlobs std::vector<QUuid> deletedIDs; @@ -1795,6 +1802,12 @@ void MyAvatar::setAvatarEntityData(const AvatarEntityMap& avatarEntityData) { ++itr; } } + // now that we've 'deleted' unknown ids, copy over the new ones + constItr = avatarEntityData.begin(); + while (constItr != avatarEntityData.end()) { + _cachedAvatarEntityBlobs.insert(constItr.key(), constItr.value()); + ++constItr; + } // erase deleted IDs from _packedAvatarEntityData for (const auto& id : deletedIDs) { itr = _packedAvatarEntityData.find(id); @@ -2296,10 +2309,6 @@ void MyAvatar::clearJointsData() { _skeletonModel->getRig().clearJointStates(); } -void MyAvatar::updateAvatarEntity(const QUuid& id, const QScriptValue& data) { - // TODO: implement this -} - void MyAvatar::setSkeletonModelURL(const QUrl& skeletonModelURL) { _skeletonModelChangeCount++; int skeletonModelChangeCount = _skeletonModelChangeCount; diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index a20908e7cb..3804df977e 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -851,8 +851,6 @@ public: virtual void clearJointData(const QString& name) override; virtual void clearJointsData() override; - void updateAvatarEntity(const QUuid& id, const QScriptValue& data) override; - /**jsdoc * @function MyAvatar.pinJoint * @param {number} index diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h index 2b356675be..97218ac3c1 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h @@ -235,8 +235,6 @@ public: void updateDisplayNameAlpha(bool showDisplayName); virtual void setSessionDisplayName(const QString& sessionDisplayName) override { }; // no-op - virtual void updateAvatarEntity(const QUuid& entityID, const QScriptValue& entityData) override { }; // no-op - virtual int parseDataFromBuffer(const QByteArray& buffer) override; static void renderJointConnectingCone(gpu::Batch& batch, glm::vec3 position1, glm::vec3 position2, diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index 3d22c50e1a..e0f2b02d51 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -2561,7 +2561,7 @@ void AvatarData::fromJson(const QJsonObject& json, bool useFrameSkeleton) { QVariantMap entityData = attachmentJson.toObject().toVariantMap(); QUuid id = entityData.value("id").toUuid(); QByteArray data = QByteArray::fromBase64(entityData.value("properties").toByteArray()); - updateAvatarEntityData(id, data); + updateAvatarEntity(id, data); } } } @@ -2764,11 +2764,7 @@ void AvatarData::storeAvatarEntityDataPayload(const QUuid& entityID, const QByte } } -void AvatarData::updateAvatarEntity(const QUuid& id, const QScriptValue& scriptValue) { - // overridden where needed -} - -void AvatarData::updateAvatarEntityData(const QUuid& id, const QByteArray& data) { +void AvatarData::updateAvatarEntity(const QUuid& entityID, const QByteArray& entityData) { // overridden where needed // NOTE: expects 'data' to be an unfortunately-formatted-binary-blob } diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index 787f92f5db..0fea5a541e 100644 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -960,10 +960,9 @@ public: /**jsdoc * @function MyAvatar.updateAvatarEntity * @param {Uuid} entityID - * @param {object} entityData + * @param {string} entityData */ - Q_INVOKABLE virtual void updateAvatarEntity(const QUuid& id, const QScriptValue& scriptValue); - virtual void updateAvatarEntityData(const QUuid& id, const QByteArray& data); + Q_INVOKABLE virtual void updateAvatarEntity(const QUuid& entityID, const QByteArray& entityData); /**jsdoc * @function MyAvatar.clearAvatarEntity From 855497e6044439c10a90b6bc62ffa1328af79456 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Sat, 15 Dec 2018 06:24:30 -0800 Subject: [PATCH 193/230] MyAvatar.updateAvatarEntity(id, data) works in theory --- interface/src/avatar/MyAvatar.cpp | 37 +++++++++++++++++++++++++--- interface/src/avatar/MyAvatar.h | 1 + libraries/avatars/src/AvatarData.cpp | 2 +- 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index a59560860d..582bf1aea7 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1513,6 +1513,7 @@ void MyAvatar::sanitizeAvatarEntityProperties(EntityItemProperties& properties) } void MyAvatar::updateAvatarEntities() { + // NOTE: this is a per-frame update if (getID().isNull() || getID() == AVATAR_SELF_ID || DependencyManager::get<NodeList>()->getSessionUUID() == QUuid()) { @@ -1765,16 +1766,25 @@ AvatarEntityMap MyAvatar::getAvatarEntityData() const { } void MyAvatar::setAvatarEntityData(const AvatarEntityMap& avatarEntityData) { - // NOTE: the argument is expected to be a map of unfortunately-formatted-binary-blobs + // Note: this is an invokable Script call + // The argument is expected to be a map of QByteArrays that represent EntityItemProperties objects from JavaScript, + // aka: unfortunately-formatted-binary-blobs because we store them in non-human-readable format in Settings. + // if (avatarEntityData.size() > MAX_NUM_AVATAR_ENTITIES) { // the data is suspect qCDebug(interfaceapp) << "discard suspect AvatarEntityData with size =" << avatarEntityData.size(); return; } - if (!avatarEntityData.empty() && !_cachedAvatarEntityBlobs.empty()) { - _needToSaveAvatarEntitySettings = true; - } + // this overwrites ALL AvatarEntityData so we clear pending operations + _avatarEntitiesLock.withWriteLock([&] { + _packedAvatarEntityData.clear(); + _entitiesToDelete.clear(); + _entitiesToAdd.clear(); + _entitiesToUpdate.clear(); + }); + _needToSaveAvatarEntitySettings = true; + _avatarEntitiesLock.withWriteLock([&] { // find new and updated IDs AvatarEntityMap::const_iterator constItr = avatarEntityData.begin(); @@ -1821,6 +1831,23 @@ void MyAvatar::setAvatarEntityData(const AvatarEntityMap& avatarEntityData) { }); } +void MyAvatar::updateAvatarEntity(const QUuid& entityID, const QByteArray& entityData) { + // NOTE: this is an invokable Script call + // TODO: we should handle the case where entityData is corrupt or invalid + // BEFORE we store into _cachedAvatarEntityBlobs + _needToSaveAvatarEntitySettings = true; + _avatarEntitiesLock.withWriteLock([&] { + AvatarEntityMap::iterator itr = _cachedAvatarEntityBlobs.find(entityID); + if (itr != _cachedAvatarEntityBlobs.end()) { + _entitiesToUpdate.push_back(entityID); + itr.value() = entityData; + } else { + _entitiesToAdd.push_back(entityID); + _cachedAvatarEntityBlobs.insert(entityID, entityData); + } + }); +} + void MyAvatar::avatarEntityDataToJson(QJsonObject& root) const { _avatarEntitiesLock.withReadLock([&] { if (!_cachedAvatarEntityBlobs.empty()) { @@ -1879,6 +1906,7 @@ void MyAvatar::loadData() { } void MyAvatar::loadAvatarEntityDataFromSettings() { + // this overwrites ALL AvatarEntityData so we clear pending operations _avatarEntitiesLock.withWriteLock([&] { _packedAvatarEntityData.clear(); _entitiesToDelete.clear(); @@ -1886,6 +1914,7 @@ void MyAvatar::loadAvatarEntityDataFromSettings() { _entitiesToUpdate.clear(); }); _reloadAvatarEntityDataFromSettings = false; + _needToSaveAvatarEntitySettings = false; int numEntities = _avatarEntityCountSetting.get(0); if (numEntities == 0) { diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 3804df977e..44f0c29b0b 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -1210,6 +1210,7 @@ public: AvatarEntityMap getAvatarEntityData() const override; void setAvatarEntityData(const AvatarEntityMap& avatarEntityData) override; + void updateAvatarEntity(const QUuid& entityID, const QByteArray& entityData) override; void avatarEntityDataToJson(QJsonObject& root) const override; public slots: diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index e0f2b02d51..4f50333505 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -2766,7 +2766,7 @@ void AvatarData::storeAvatarEntityDataPayload(const QUuid& entityID, const QByte void AvatarData::updateAvatarEntity(const QUuid& entityID, const QByteArray& entityData) { // overridden where needed - // NOTE: expects 'data' to be an unfortunately-formatted-binary-blob + // expects 'entityData' to be a JavaScript EntityItemProperties Object in QByteArray form } void AvatarData::clearAvatarEntity(const QUuid& entityID, bool requiresRemovalFromTree) { From 63ed0a3a98545bb18b67d47ce18bff612dfa0896 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Mon, 17 Dec 2018 10:01:52 -0800 Subject: [PATCH 194/230] move blob conversion recipes to EntityItemProperties --- interface/src/avatar/MyAvatar.cpp | 45 +++---------------- libraries/avatars/src/AvatarData.cpp | 3 +- .../entities/src/EntityItemProperties.cpp | 32 +++++++++++++ libraries/entities/src/EntityItemProperties.h | 3 ++ 4 files changed, 42 insertions(+), 41 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 582bf1aea7..18494e2c42 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1460,38 +1460,6 @@ void MyAvatar::clearAvatarEntity(const QUuid& entityID, bool requiresRemovalFrom }); } -bool blobToProperties(QScriptEngine& scriptEngine, const QByteArray& blob, EntityItemProperties& properties) { - // begin recipe for converting unfortunately-formatted-binary-blob to EntityItemProperties - QJsonDocument jsonProperties = QJsonDocument::fromBinaryData(blob); - if (!jsonProperties.isObject()) { - qCDebug(interfaceapp) << "bad avatarEntityData json" << QString(blob.toHex()); - return false; - } - QVariant variant = jsonProperties.toVariant(); - QVariantMap variantMap = variant.toMap(); - QScriptValue scriptValue = variantMapToScriptValue(variantMap, scriptEngine); - EntityItemPropertiesFromScriptValueHonorReadOnly(scriptValue, properties); - // end recipe - return true; -} - -void propertiesToBlob(QScriptEngine& scriptEngine, const QUuid& myAvatarID, const EntityItemProperties& properties, QByteArray& blob) { - // begin recipe for extracting unfortunately-formatted-binary-blob from EntityItem - QScriptValue scriptValue = EntityItemNonDefaultPropertiesToScriptValue(&scriptEngine, properties); - QVariant variantProperties = scriptValue.toVariant(); - QJsonDocument jsonProperties = QJsonDocument::fromVariant(variantProperties); - // the ID of the parent/avatar changes from session to session. use a special UUID to indicate the avatar - QJsonObject jsonObject = jsonProperties.object(); - if (jsonObject.contains("parentID")) { - if (QUuid(jsonObject["parentID"].toString()) == myAvatarID) { - jsonObject["parentID"] = AVATAR_SELF_ID.toString(); - } - } - jsonProperties = QJsonDocument(jsonObject); - blob = jsonProperties.toBinaryData(); - // end recipe -} - void MyAvatar::sanitizeAvatarEntityProperties(EntityItemProperties& properties) const { properties.setEntityHostType(entity::HostType::AVATAR); properties.setOwningAvatarID(getID()); @@ -1605,7 +1573,7 @@ void MyAvatar::updateAvatarEntities() { blobFailed = true; // blob doesn't exist return; } - if (!blobToProperties(*_myScriptEngine, itr.value(), properties)) { + if (!EntityItemProperties::blobToProperties(*_myScriptEngine, itr.value(), properties)) { blobFailed = true; // blob is corrupt } }); @@ -1634,7 +1602,7 @@ void MyAvatar::updateAvatarEntities() { skip = true; return; } - if (!blobToProperties(*_myScriptEngine, itr.value(), properties)) { + if (!EntityItemProperties::blobToProperties(*_myScriptEngine, itr.value(), properties)) { skip = true; } }); @@ -1740,7 +1708,7 @@ bool MyAvatar::updateStaleAvatarEntityBlobs() const { if (found) { ++numFound; QByteArray blob; - propertiesToBlob(*_myScriptEngine, getID(), properties, blob); + EntityItemProperties::propertiesToBlob(*_myScriptEngine, getID(), properties, blob); _avatarEntitiesLock.withWriteLock([&] { _cachedAvatarEntityBlobs[id] = blob; }); @@ -1767,7 +1735,7 @@ AvatarEntityMap MyAvatar::getAvatarEntityData() const { void MyAvatar::setAvatarEntityData(const AvatarEntityMap& avatarEntityData) { // Note: this is an invokable Script call - // The argument is expected to be a map of QByteArrays that represent EntityItemProperties objects from JavaScript, + // avatarEntityData is expected to be a map of QByteArrays that represent EntityItemProperties objects from JavaScript, // aka: unfortunately-formatted-binary-blobs because we store them in non-human-readable format in Settings. // if (avatarEntityData.size() > MAX_NUM_AVATAR_ENTITIES) { @@ -1788,13 +1756,10 @@ void MyAvatar::setAvatarEntityData(const AvatarEntityMap& avatarEntityData) { _avatarEntitiesLock.withWriteLock([&] { // find new and updated IDs AvatarEntityMap::const_iterator constItr = avatarEntityData.begin(); - std::vector<QUuid> blobsToCache; - blobsToCache.reserve(avatarEntityData.size()); while (constItr != avatarEntityData.end()) { QUuid id = constItr.key(); if (_cachedAvatarEntityBlobs.find(id) == _cachedAvatarEntityBlobs.end()) { _entitiesToAdd.push_back(id); - blobsToCache.push_back(id); } else { _entitiesToUpdate.push_back(id); } @@ -1812,7 +1777,7 @@ void MyAvatar::setAvatarEntityData(const AvatarEntityMap& avatarEntityData) { ++itr; } } - // now that we've 'deleted' unknown ids, copy over the new ones + // copy new data constItr = avatarEntityData.begin(); while (constItr != avatarEntityData.end()) { _cachedAvatarEntityBlobs.insert(constItr.key(), constItr.value()); diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index 4f50333505..5eda53329b 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -2794,7 +2794,8 @@ AvatarEntityMap AvatarData::getAvatarEntityData() const { void AvatarData::setAvatarEntityData(const AvatarEntityMap& avatarEntityData) { // overridden where needed - // NOTE: the argument is expected to be a map of unfortunately-formatted-binary-blobs + // avatarEntityData is expected to be a map of QByteArrays + // each QByteArray represents an EntityItemProperties object from JavaScript } void AvatarData::insertDetachedEntityID(const QUuid entityID) { diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 2c8548033f..d466de0507 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -4612,6 +4612,38 @@ void EntityItemProperties::convertToCloneProperties(const EntityItemID& entityID setCloneAvatarEntity(ENTITY_ITEM_DEFAULT_CLONE_AVATAR_ENTITY); } +bool EntityItemProperties::blobToProperties(QScriptEngine& scriptEngine, const QByteArray& blob, EntityItemProperties& properties) { + // begin recipe for converting unfortunately-formatted-binary-blob to EntityItemProperties + QJsonDocument jsonProperties = QJsonDocument::fromBinaryData(blob); + if (!jsonProperties.isObject()) { + qCDebug(entities) << "bad avatarEntityData json" << QString(blob.toHex()); + return false; + } + QVariant variant = jsonProperties.toVariant(); + QVariantMap variantMap = variant.toMap(); + QScriptValue scriptValue = variantMapToScriptValue(variantMap, scriptEngine); + EntityItemPropertiesFromScriptValueHonorReadOnly(scriptValue, properties); + // end recipe + return true; +} + +void EntityItemProperties::propertiesToBlob(QScriptEngine& scriptEngine, const QUuid& myAvatarID, const EntityItemProperties& properties, QByteArray& blob) { + // begin recipe for extracting unfortunately-formatted-binary-blob from EntityItem + QScriptValue scriptValue = EntityItemNonDefaultPropertiesToScriptValue(&scriptEngine, properties); + QVariant variantProperties = scriptValue.toVariant(); + QJsonDocument jsonProperties = QJsonDocument::fromVariant(variantProperties); + // the ID of the parent/avatar changes from session to session. use a special UUID to indicate the avatar + QJsonObject jsonObject = jsonProperties.object(); + if (jsonObject.contains("parentID")) { + if (QUuid(jsonObject["parentID"].toString()) == myAvatarID) { + jsonObject["parentID"] = AVATAR_SELF_ID.toString(); + } + } + jsonProperties = QJsonDocument(jsonObject); + blob = jsonProperties.toBinaryData(); + // end recipe +} + QDebug& operator<<(QDebug& dbg, const EntityPropertyFlags& f) { QString result = "[ "; diff --git a/libraries/entities/src/EntityItemProperties.h b/libraries/entities/src/EntityItemProperties.h index 48f4aa333e..bb4d8c5878 100644 --- a/libraries/entities/src/EntityItemProperties.h +++ b/libraries/entities/src/EntityItemProperties.h @@ -98,6 +98,9 @@ class EntityItemProperties { friend class ZoneEntityItem; friend class MaterialEntityItem; public: + static bool blobToProperties(QScriptEngine& scriptEngine, const QByteArray& blob, EntityItemProperties& properties); + static void propertiesToBlob(QScriptEngine& scriptEngine, const QUuid& myAvatarID, const EntityItemProperties& properties, QByteArray& blob); + EntityItemProperties(EntityPropertyFlags desiredProperties = EntityPropertyFlags()); virtual ~EntityItemProperties() = default; From c998ddbb9e7e56826ae59b68d88d50229e092944 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Mon, 17 Dec 2018 17:11:27 -0800 Subject: [PATCH 195/230] ScriptableAvatar::setAvatarEntityData() works --- .../src/avatars/ScriptableAvatar.cpp | 165 ++++++++++++++---- .../src/avatars/ScriptableAvatar.h | 22 ++- interface/src/avatar/MyAvatar.cpp | 48 ++--- .../src/avatars-renderer/Avatar.cpp | 27 +-- .../entities/src/EntityItemProperties.cpp | 2 + 5 files changed, 202 insertions(+), 62 deletions(-) diff --git a/assignment-client/src/avatars/ScriptableAvatar.cpp b/assignment-client/src/avatars/ScriptableAvatar.cpp index 8e88d6c236..c61e41fbbe 100644 --- a/assignment-client/src/avatars/ScriptableAvatar.cpp +++ b/assignment-client/src/avatars/ScriptableAvatar.cpp @@ -252,26 +252,79 @@ void ScriptableAvatar::setHasAudioEnabledFaceMovement(bool hasAudioEnabledFaceMo _headData->setHasAudioEnabledFaceMovement(hasAudioEnabledFaceMovement); } -void ScriptableAvatar::updateAvatarEntity(const QUuid& id, const QByteArray& data) { - /* TODO: fix this - if (data.isNull()) { - // interpret this as a DELETE - std::map<QUuid, EntityItemPointer>::iterator itr = _entities.find(id); - if (itr != _entities.end()) { - _entities.erase(itr); - clearAvatarEntity(id); +AvatarEntityMap ScriptableAvatar::getAvatarEntityData() const { + // DANGER: Now that we store the AvatarEntityData in packed format this call is potentially Very Expensive! + // Avoid calling this method if possible. + AvatarEntityMap data; + QUuid sessionID = getID(); + _avatarEntitiesLock.withReadLock([&] { + for (const auto& itr : _entities) { + QUuid id = itr.first; + EntityItemPointer entity = itr.second; + EntityItemProperties properties = entity->getProperties(); + QByteArray blob; + EntityItemProperties::propertiesToBlob(_scriptEngine, sessionID, properties, blob); + data[id] = blob; } - } else { - EntityItemPointer entity; - EntityItemProperties properties; - bool honorReadOnly = true; - properties.copyFromScriptValue(data, honorReadOnly); + }); + return data; +} - std::map<QUuid, EntityItemPointer>::iterator itr = _entities.find(id); - if (itr == _entities.end()) { - // this is an ADD - entity = EntityTypes::constructEntityItem(id, properties); +void ScriptableAvatar::setAvatarEntityData(const AvatarEntityMap& avatarEntityData) { + // Note: this is an invokable Script call + // avatarEntityData is expected to be a map of QByteArrays that represent EntityItemProperties objects from JavaScript + // + if (avatarEntityData.size() > MAX_NUM_AVATAR_ENTITIES) { + // the data is suspect + qCDebug(avatars) << "discard suspect avatarEntityData with size =" << avatarEntityData.size(); + return; + } + + // convert binary data to EntityItemProperties + // NOTE: this operation is NOT efficient + std::map<QUuid, EntityItemProperties> newProperties; + AvatarEntityMap::const_iterator dataItr = avatarEntityData.begin(); + while (dataItr != avatarEntityData.end()) { + EntityItemProperties properties; + const QByteArray& blob = dataItr.value(); + if (!blob.isNull() && EntityItemProperties::blobToProperties(_scriptEngine, blob, properties)) { + newProperties[dataItr.key()] = properties; + } + ++dataItr; + } + + // delete existing entities not found in avatarEntityData + std::vector<QUuid> idsToClear; + _avatarEntitiesLock.withWriteLock([&] { + std::map<QUuid, EntityItemPointer>::iterator entityItr = _entities.begin(); + while (entityItr != _entities.end()) { + QUuid id = entityItr->first; + std::map<QUuid, EntityItemProperties>::const_iterator propertiesItr = newProperties.find(id); + if (propertiesItr == newProperties.end()) { + idsToClear.push_back(id); + entityItr = _entities.erase(entityItr); + } else { + ++entityItr; + } + } + }); + + // add or update entities + _avatarEntitiesLock.withWriteLock([&] { + std::map<QUuid, EntityItemProperties>::const_iterator propertiesItr = newProperties.begin(); + while (propertiesItr != newProperties.end()) { + QUuid id = propertiesItr->first; + const EntityItemProperties& properties = propertiesItr->second; + std::map<QUuid, EntityItemPointer>::iterator entityItr = _entities.find(id); + EntityItemPointer entity; + if (entityItr != _entities.end()) { + entity = entityItr->second; + entity->setProperties(properties); + } else { + entity = EntityTypes::constructEntityItem(id, properties); + } if (entity) { + // build outgoing payload OctreePacketData packetData(false, AvatarTraits::MAXIMUM_TRAIT_SIZE); EncodeBitstreamParams params; EntityTreeElementExtraEncodeDataPointer extra { nullptr }; @@ -281,24 +334,74 @@ void ScriptableAvatar::updateAvatarEntity(const QUuid& id, const QByteArray& dat _entities[id] = entity; QByteArray tempArray((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); storeAvatarEntityDataPayload(id, tempArray); + } else { + // payload doesn't fit + entityItr = _entities.find(id); + if (entityItr != _entities.end()) { + _entities.erase(entityItr); + idsToClear.push_back(id); + } + } } - } else { - // this is an UPDATE - entity = itr->second; - bool somethingChanged = entity->setProperties(properties); - if (somethingChanged) { - OctreePacketData packetData(false, AvatarTraits::MAXIMUM_TRAIT_SIZE); - EncodeBitstreamParams params; - EntityTreeElementExtraEncodeDataPointer extra { nullptr }; - OctreeElement::AppendState appendState = entity->appendEntityData(&packetData, params, extra); + ++propertiesItr; + } + }); - if (appendState == OctreeElement::COMPLETED) { - QByteArray tempArray((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); - storeAvatarEntityDataPayload(id, tempArray); - } + // clear deleted traits + for (const auto& id : idsToClear) { + clearAvatarEntity(id); + } +} + +void ScriptableAvatar::updateAvatarEntity(const QUuid& entityID, const QByteArray& entityData) { + if (entityData.isNull()) { + // interpret this as a DELETE + std::map<QUuid, EntityItemPointer>::iterator itr = _entities.find(entityID); + if (itr != _entities.end()) { + _entities.erase(itr); + clearAvatarEntity(entityID); + } + return; + } + + EntityItemPointer entity; + EntityItemProperties properties; + if (!EntityItemProperties::blobToProperties(_scriptEngine, entityData, properties)) { + // entityData is corrupt + return; + } + + std::map<QUuid, EntityItemPointer>::iterator itr = _entities.find(entityID); + if (itr == _entities.end()) { + // this is an ADD + entity = EntityTypes::constructEntityItem(entityID, properties); + if (entity) { + OctreePacketData packetData(false, AvatarTraits::MAXIMUM_TRAIT_SIZE); + EncodeBitstreamParams params; + EntityTreeElementExtraEncodeDataPointer extra { nullptr }; + OctreeElement::AppendState appendState = entity->appendEntityData(&packetData, params, extra); + + if (appendState == OctreeElement::COMPLETED) { + _entities[entityID] = entity; + QByteArray tempArray((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); + storeAvatarEntityDataPayload(entityID, tempArray); + } + } + } else { + // this is an UPDATE + entity = itr->second; + bool somethingChanged = entity->setProperties(properties); + if (somethingChanged) { + OctreePacketData packetData(false, AvatarTraits::MAXIMUM_TRAIT_SIZE); + EncodeBitstreamParams params; + EntityTreeElementExtraEncodeDataPointer extra { nullptr }; + OctreeElement::AppendState appendState = entity->appendEntityData(&packetData, params, extra); + + if (appendState == OctreeElement::COMPLETED) { + QByteArray tempArray((const char*)packetData.getUncompressedData(), packetData.getUncompressedSize()); + storeAvatarEntityDataPayload(entityID, tempArray); } } } - */ } diff --git a/assignment-client/src/avatars/ScriptableAvatar.h b/assignment-client/src/avatars/ScriptableAvatar.h index b0e41d28eb..df949f8bff 100644 --- a/assignment-client/src/avatars/ScriptableAvatar.h +++ b/assignment-client/src/avatars/ScriptableAvatar.h @@ -185,7 +185,26 @@ public: bool getHasProceduralEyeFaceMovement() const override { return _headData->getHasProceduralEyeFaceMovement(); } void setHasAudioEnabledFaceMovement(bool hasAudioEnabledFaceMovement); bool getHasAudioEnabledFaceMovement() const override { return _headData->getHasAudioEnabledFaceMovement(); } - void updateAvatarEntity(const QUuid& id, const QByteArray& data) override; + + /**jsdoc + * Potentially Very Expensive. Do not use. + * @function Avatar.getAvatarEntityData + * @returns {object} + */ + Q_INVOKABLE AvatarEntityMap getAvatarEntityData() const override; + + /**jsdoc + * @function MyAvatar.setAvatarEntityData + * @param {object} avatarEntityData + */ + Q_INVOKABLE void setAvatarEntityData(const AvatarEntityMap& avatarEntityData) override; + + /**jsdoc + * @function MyAvatar.updateAvatarEntity + * @param {Uuid} entityID + * @param {string} entityData + */ + Q_INVOKABLE void updateAvatarEntity(const QUuid& entityID, const QByteArray& entityData) override; public slots: void update(float deltatime); @@ -204,6 +223,7 @@ private: QHash<QString, int> _fstJointIndices; ///< 1-based, since zero is returned for missing keys QStringList _fstJointNames; ///< in order of depth-first traversal QUrl _skeletonFBXURL; + mutable QScriptEngine _scriptEngine; std::map<QUuid, EntityItemPointer> _entities; /// Loads the joint indices, names from the FST file (if any) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 18494e2c42..67b933e18a 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -2353,8 +2353,11 @@ void MyAvatar::clearAvatarEntities() { auto treeRenderer = DependencyManager::get<EntityTreeRenderer>(); EntityTreePointer entityTree = treeRenderer ? treeRenderer->getTree() : nullptr; - AvatarEntityMap avatarEntities = getAvatarEntityData(); - for (auto entityID : avatarEntities.keys()) { + QList<QUuid> avatarEntityIDs; + _avatarEntitiesLock.withReadLock([&] { + avatarEntityIDs = _packedAvatarEntityData.keys(); + }); + for (const auto& entityID : avatarEntityIDs) { entityTree->withWriteLock([&entityID, &entityTree] { // remove this entity first from the entity tree entityTree->deleteEntity(entityID, true, true); @@ -2369,10 +2372,12 @@ void MyAvatar::clearAvatarEntities() { void MyAvatar::removeWearableAvatarEntities() { auto treeRenderer = DependencyManager::get<EntityTreeRenderer>(); EntityTreePointer entityTree = treeRenderer ? treeRenderer->getTree() : nullptr; - if (entityTree) { - AvatarEntityMap avatarEntities = getAvatarEntityData(); - for (auto entityID : avatarEntities.keys()) { + QList<QUuid> avatarEntityIDs; + _avatarEntitiesLock.withReadLock([&] { + avatarEntityIDs = _packedAvatarEntityData.keys(); + }); + for (const auto& entityID : avatarEntityIDs) { auto entity = entityTree->findEntityByID(entityID); if (entity && isWearableEntity(entity)) { entityTree->withWriteLock([&entityID, &entityTree] { @@ -2394,8 +2399,11 @@ QVariantList MyAvatar::getAvatarEntitiesVariant() { auto treeRenderer = DependencyManager::get<EntityTreeRenderer>(); EntityTreePointer entityTree = treeRenderer ? treeRenderer->getTree() : nullptr; if (entityTree) { - AvatarEntityMap avatarEntities = getAvatarEntityData(); - for (auto entityID : avatarEntities.keys()) { + QList<QUuid> avatarEntityIDs; + _avatarEntitiesLock.withReadLock([&] { + avatarEntityIDs = _packedAvatarEntityData.keys(); + }); + for (const auto& entityID : avatarEntityIDs) { auto entity = entityTree->findEntityByID(entityID); if (!entity) { continue; @@ -2795,17 +2803,17 @@ void MyAvatar::setAttachmentData(const QVector<AttachmentData>& attachmentData) } QVector<AttachmentData> MyAvatar::getAttachmentData() const { - QVector<AttachmentData> avatarData; - auto avatarEntities = getAvatarEntityData(); - AvatarEntityMap::const_iterator dataItr = avatarEntities.begin(); - while (dataItr != avatarEntities.end()) { - QUuid entityID = dataItr.key(); + QVector<AttachmentData> attachmentData; + QList<QUuid> avatarEntityIDs; + _avatarEntitiesLock.withReadLock([&] { + avatarEntityIDs = _packedAvatarEntityData.keys(); + }); + for (const auto& entityID : avatarEntityIDs) { auto properties = DependencyManager::get<EntityScriptingInterface>()->getEntityProperties(entityID); AttachmentData data = entityPropertiesToAttachmentData(properties); - avatarData.append(data); - dataItr++; + attachmentData.append(data); } - return avatarData; + return attachmentData; } QVariantList MyAvatar::getAttachmentsVariant() const { @@ -2834,16 +2842,16 @@ void MyAvatar::setAttachmentsVariant(const QVariantList& variant) { } bool MyAvatar::findAvatarEntity(const QString& modelURL, const QString& jointName, QUuid& entityID) { - auto avatarEntities = getAvatarEntityData(); - AvatarEntityMap::const_iterator dataItr = avatarEntities.begin(); - while (dataItr != avatarEntities.end()) { - entityID = dataItr.key(); + QList<QUuid> avatarEntityIDs; + _avatarEntitiesLock.withReadLock([&] { + avatarEntityIDs = _packedAvatarEntityData.keys(); + }); + for (const auto& entityID : avatarEntityIDs) { auto props = DependencyManager::get<EntityScriptingInterface>()->getEntityProperties(entityID); if (props.getModelURL() == modelURL && (jointName.isEmpty() || props.getParentJointIndex() == getJointIndex(jointName))) { return true; } - dataItr++; } return false; } diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index b41e1381ef..feb95f1dd0 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -340,10 +340,13 @@ void Avatar::updateAvatarEntities() { return; } + PackedAvatarEntityMap packedAvatarEntityData; + _avatarEntitiesLock.withReadLock([&] { + packedAvatarEntityData = _packedAvatarEntityData; + }); entityTree->withWriteLock([&] { - AvatarEntityMap avatarEntities = getAvatarEntityData(); - AvatarEntityMap::const_iterator dataItr = avatarEntities.begin(); - while (dataItr != avatarEntities.end()) { + AvatarEntityMap::const_iterator dataItr = packedAvatarEntityData.begin(); + while (dataItr != packedAvatarEntityData.end()) { // compute hash of data. TODO? cache this? QByteArray data = dataItr.value(); uint32_t newHash = qHash(data); @@ -381,10 +384,11 @@ void Avatar::updateAvatarEntities() { ++dataItr; EntityItemProperties properties; - { - int32_t bytesLeftToRead = data.size(); - unsigned char* dataAt = (unsigned char*)(data.data()); - properties.constructFromBuffer(dataAt, bytesLeftToRead); + int32_t bytesLeftToRead = data.size(); + unsigned char* dataAt = (unsigned char*)(data.data()); + if (!properties.constructFromBuffer(dataAt, bytesLeftToRead)) { + // properties are corrupt + continue; } properties.setEntityHostType(entity::HostType::AVATAR); @@ -454,7 +458,7 @@ void Avatar::updateAvatarEntities() { } } } - if (avatarEntities.size() != _avatarEntityForRecording.size()) { + if (packedAvatarEntityData.size() != _avatarEntityForRecording.size()) { createRecordingIDs(); } }); @@ -466,9 +470,12 @@ void Avatar::removeAvatarEntitiesFromTree() { auto treeRenderer = DependencyManager::get<EntityTreeRenderer>(); EntityTreePointer entityTree = treeRenderer ? treeRenderer->getTree() : nullptr; if (entityTree) { + QList<QUuid> avatarEntityIDs; + _avatarEntitiesLock.withReadLock([&] { + avatarEntityIDs = _packedAvatarEntityData.keys(); + }); entityTree->withWriteLock([&] { - AvatarEntityMap avatarEntities = getAvatarEntityData(); - for (auto entityID : avatarEntities.keys()) { + for (const auto& entityID : avatarEntityIDs) { entityTree->deleteEntity(entityID, true, true); } }); diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index d466de0507..3b1e9a3e2b 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -4613,6 +4613,7 @@ void EntityItemProperties::convertToCloneProperties(const EntityItemID& entityID } bool EntityItemProperties::blobToProperties(QScriptEngine& scriptEngine, const QByteArray& blob, EntityItemProperties& properties) { + // DANGER: this method is NOT efficient. // begin recipe for converting unfortunately-formatted-binary-blob to EntityItemProperties QJsonDocument jsonProperties = QJsonDocument::fromBinaryData(blob); if (!jsonProperties.isObject()) { @@ -4628,6 +4629,7 @@ bool EntityItemProperties::blobToProperties(QScriptEngine& scriptEngine, const Q } void EntityItemProperties::propertiesToBlob(QScriptEngine& scriptEngine, const QUuid& myAvatarID, const EntityItemProperties& properties, QByteArray& blob) { + // DANGER: this method is NOT efficient. // begin recipe for extracting unfortunately-formatted-binary-blob from EntityItem QScriptValue scriptValue = EntityItemNonDefaultPropertiesToScriptValue(&scriptEngine, properties); QVariant variantProperties = scriptValue.toVariant(); From 27318a3f1773706b3db466d0f0df91806e158798 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Tue, 18 Dec 2018 08:42:09 -0800 Subject: [PATCH 196/230] update AvatarEntitData blobs before writing to JSON during recordings --- interface/src/avatar/MyAvatar.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 67b933e18a..2fb265dfbd 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1814,6 +1814,7 @@ void MyAvatar::updateAvatarEntity(const QUuid& entityID, const QByteArray& entit } void MyAvatar::avatarEntityDataToJson(QJsonObject& root) const { + updateStaleAvatarEntityBlobs(); _avatarEntitiesLock.withReadLock([&] { if (!_cachedAvatarEntityBlobs.empty()) { QJsonArray avatarEntityJson; From 9d6acf007a5e77d56d8e932a52f868d4a65a1bc6 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Fri, 21 Dec 2018 11:55:22 -0800 Subject: [PATCH 197/230] fix build after rebase --- libraries/entities/src/EntityTypes.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/entities/src/EntityTypes.cpp b/libraries/entities/src/EntityTypes.cpp index 584af55d5d..ad078190dd 100644 --- a/libraries/entities/src/EntityTypes.cpp +++ b/libraries/entities/src/EntityTypes.cpp @@ -59,7 +59,7 @@ REGISTER_ENTITY_TYPE(Zone) REGISTER_ENTITY_TYPE(Material) bool EntityTypes::typeIsValid(EntityType type) { - return type > EntityType::Unknown && type <= EntityType::LAST; + return type > EntityType::Unknown && type <= EntityType::NUM_TYPES; } const QString& EntityTypes::getEntityTypeName(EntityType entityType) { @@ -144,7 +144,7 @@ EntityItemPointer EntityTypes::constructEntityItem(const unsigned char* data, in QUuid id; EntityTypes::EntityType type = EntityTypes::Unknown; extractEntityTypeAndID(data, bytesToRead, type, id); - if (type > EntityTypes::Unknown && type <= EntityTypes::LAST) { + if (type > EntityTypes::Unknown && type <= EntityTypes::NUM_TYPES) { EntityItemID tempEntityID(id); EntityItemProperties tempProperties; return constructEntityItem(type, tempEntityID, tempProperties); From e2d6e6f3dc03656919cc6f62086a12990f0ce719 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Fri, 21 Dec 2018 11:56:08 -0800 Subject: [PATCH 198/230] more correct AvatarEntityData settings when switching domains --- interface/src/Application.cpp | 7 +++---- interface/src/avatar/MyAvatar.cpp | 26 +++++++++++++++++--------- interface/src/avatar/MyAvatar.h | 5 ++--- 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 1a4d2db83e..5fc3bad8e5 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -6756,8 +6756,10 @@ void Application::updateWindowTitle() const { } void Application::clearDomainOctreeDetails() { + // before we delete all entities get MyAvatar's AvatarEntityData ready + getMyAvatar()->prepareAvatarEntityDataForReload(); - // if we're about to quit, we really don't need to do any of these things... + // if we're about to quit, we really don't need to do the rest of these things... if (_aboutToQuit) { return; } @@ -6785,9 +6787,6 @@ void Application::clearDomainOctreeDetails() { ShaderCache::instance().clearUnusedResources(); DependencyManager::get<TextureCache>()->clearUnusedResources(); DependencyManager::get<recording::ClipCache>()->clearUnusedResources(); - - // we just deleted all of MyAvatar's AvatarEntities so we flag it to reload from settings - getMyAvatar()->rememberToReloadAvatarEntityDataFromSettings(); } void Application::domainURLChanged(QUrl domainURL) { diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 2fb265dfbd..af748a14c0 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1501,8 +1501,8 @@ void MyAvatar::updateAvatarEntities() { // We collect changes to AvatarEntities and then handle them all in one spot per frame: updateAvatarEntities(). // Basically this is a "transaction pattern" with an extra complication: these changes can come from two - // "directions" and the "authoritative source" of each direction is different, so maintain two distinct sets of - // transaction lists; + // "directions" and the "authoritative source" of each direction is different, so we maintain two distinct sets + // of transaction lists: // // The _entitiesToDelete/Add/Update lists are for changes whose "authoritative sources" are already // correctly stored in _cachedAvatarEntityBlobs. These come from loadAvatarEntityDataFromSettings() and @@ -1690,10 +1690,7 @@ bool MyAvatar::updateStaleAvatarEntityBlobs() const { return false; } - std::set<QUuid> staleBlobs; - _avatarEntitiesLock.withWriteLock([&] { - staleBlobs = std::move(_staleCachedAvatarEntityBlobs); - }); + std::set<QUuid> staleBlobs = std::move(_staleCachedAvatarEntityBlobs); int32_t numFound = 0; for (const auto& id : staleBlobs) { bool found = false; @@ -1717,9 +1714,20 @@ bool MyAvatar::updateStaleAvatarEntityBlobs() const { return true; } -void MyAvatar::rememberToReloadAvatarEntityDataFromSettings() { - AvatarEntityMap emptyMap; - setAvatarEntityData(emptyMap); +void MyAvatar::prepareAvatarEntityDataForReload() { + saveAvatarEntityDataToSettings(); + + _avatarEntitiesLock.withWriteLock([&] { + _packedAvatarEntityData.clear(); + _entitiesToDelete.clear(); + _entitiesToAdd.clear(); + _entitiesToUpdate.clear(); + _cachedAvatarEntityBlobs.clear(); + _cachedAvatarEntityBlobsToDelete.clear(); + _cachedAvatarEntityBlobsToAddOrUpdate.clear(); + _cachedAvatarEntityBlobUpdatesToSkip.clear(); + }); + _reloadAvatarEntityDataFromSettings = true; } diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 44f0c29b0b..38cef264a7 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -1187,7 +1187,7 @@ public: glm::vec3 getNextPosition() { return _goToPending ? _goToPosition : getWorldPosition(); } void updateAvatarEntities() override; - void rememberToReloadAvatarEntityDataFromSettings(); + void prepareAvatarEntityDataForReload(); /**jsdoc * Create a new grab. @@ -1614,7 +1614,6 @@ signals: */ void disableHandTouchForIDChanged(const QUuid& entityID, bool disable); - private slots: void leaveDomain(); void updateCollisionCapsuleCache(); @@ -1980,7 +1979,7 @@ private: std::vector<QUuid> _cachedAvatarEntityBlobUpdatesToSkip; // // Also these lists for tracking delayed changes to blobs and Settings - std::set<QUuid> _staleCachedAvatarEntityBlobs; + mutable std::set<QUuid> _staleCachedAvatarEntityBlobs; // // keep a ScriptEngine around so we don't have to instantiate on the fly (these are very slow to create/delete) QScriptEngine* _myScriptEngine { nullptr }; From 8206daf1a62b0b1472173eb09cfc6e933e1a911e Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Wed, 2 Jan 2019 13:54:26 -0800 Subject: [PATCH 199/230] send update when loading AvatarEntity from Settings --- interface/src/avatar/MyAvatar.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index af748a14c0..03c69076aa 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1564,6 +1564,7 @@ void MyAvatar::updateAvatarEntities() { } // ADD real entities + EntityEditPacketSender* packetSender = qApp->getEntityEditPacketSender(); for (const auto& id : entitiesToAdd) { bool blobFailed = false; EntityItemProperties properties; @@ -1589,6 +1590,9 @@ void MyAvatar::updateAvatarEntities() { sanitizeAvatarEntityProperties(properties); entityTree->withWriteLock([&] { EntityItemPointer entity = entityTree->addEntity(id, properties); + if (entity) { + packetSender->queueEditEntityMessage(PacketType::EntityAdd, entityTree, id, properties); + } }); } From b9667a067919626546053cfb31f310189cb5b873 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Mon, 7 Jan 2019 11:41:57 -0800 Subject: [PATCH 200/230] fix merge conflict after rebase --- libraries/entities/src/EntityItem.cpp | 30 --------------------------- 1 file changed, 30 deletions(-) diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index b766485450..5b7a152318 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -329,36 +329,6 @@ OctreeElement::AppendState EntityItem::appendEntityData(OctreePacketData* packet APPEND_ENTITY_PROPERTY(PROP_CERTIFICATE_ID, getCertificateID()); APPEND_ENTITY_PROPERTY(PROP_STATIC_CERTIFICATE_VERSION, getStaticCertificateVersion()); - APPEND_ENTITY_PROPERTY(PROP_NAME, getName()); - APPEND_ENTITY_PROPERTY(PROP_COLLISION_SOUND_URL, getCollisionSoundURL()); - APPEND_ENTITY_PROPERTY(PROP_HREF, getHref()); - APPEND_ENTITY_PROPERTY(PROP_DESCRIPTION, getDescription()); - APPEND_ENTITY_PROPERTY(PROP_ACTION_DATA, getDynamicData()); - - // convert AVATAR_SELF_ID to actual sessionUUID. - QUuid actualParentID = getParentID(); - if (actualParentID == AVATAR_SELF_ID) { - auto nodeList = DependencyManager::get<NodeList>(); - actualParentID = nodeList->getSessionUUID(); - } - APPEND_ENTITY_PROPERTY(PROP_PARENT_ID, actualParentID); - - APPEND_ENTITY_PROPERTY(PROP_PARENT_JOINT_INDEX, getParentJointIndex()); - APPEND_ENTITY_PROPERTY(PROP_QUERY_AA_CUBE, getQueryAACube()); - APPEND_ENTITY_PROPERTY(PROP_LAST_EDITED_BY, getLastEditedBy()); - - APPEND_ENTITY_PROPERTY(PROP_CLONEABLE, getCloneable()); - APPEND_ENTITY_PROPERTY(PROP_CLONE_LIFETIME, getCloneLifetime()); - APPEND_ENTITY_PROPERTY(PROP_CLONE_LIMIT, getCloneLimit()); - APPEND_ENTITY_PROPERTY(PROP_CLONE_DYNAMIC, getCloneDynamic()); - APPEND_ENTITY_PROPERTY(PROP_CLONE_AVATAR_ENTITY, getCloneAvatarEntity()); - APPEND_ENTITY_PROPERTY(PROP_CLONE_ORIGIN_ID, getCloneOriginID()); - - withReadLock([&] { - _grabProperties.appendSubclassData(packetData, params, entityTreeElementExtraEncodeData, requestedProperties, - propertyFlags, propertiesDidntFit, propertyCount, appendState); - }); - appendSubclassData(packetData, params, entityTreeElementExtraEncodeData, requestedProperties, propertyFlags, From 9ea6968e351081aeb13884f50fe7d793da3824f4 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Wed, 9 Jan 2019 17:26:23 -0800 Subject: [PATCH 201/230] fix bug where attached AvatarEntities do not update in timely fashion --- .../src/avatars/AvatarMixerClientData.cpp | 2 +- interface/src/avatar/MyAvatar.cpp | 10 +- interface/src/avatar/MyAvatar.h | 4 +- interface/src/avatar/OtherAvatar.cpp | 301 +++++++++++++++++- interface/src/avatar/OtherAvatar.h | 9 + .../src/avatars-renderer/Avatar.cpp | 240 -------------- .../src/avatars-renderer/Avatar.h | 3 +- libraries/avatars/src/AvatarData.cpp | 12 +- libraries/avatars/src/AvatarData.h | 6 +- 9 files changed, 326 insertions(+), 261 deletions(-) diff --git a/assignment-client/src/avatars/AvatarMixerClientData.cpp b/assignment-client/src/avatars/AvatarMixerClientData.cpp index 7f1b40142e..bf90a4e727 100644 --- a/assignment-client/src/avatars/AvatarMixerClientData.cpp +++ b/assignment-client/src/avatars/AvatarMixerClientData.cpp @@ -157,7 +157,7 @@ void AvatarMixerClientData::processSetTraitsMessage(ReceivedMessage& message, if (traitSize == AvatarTraits::DELETED_TRAIT_SIZE) { _avatar->processDeletedTraitInstance(traitType, instanceID); // Mixer doesn't need deleted IDs. - _avatar->getAndClearRecentlyDetachedIDs(); + _avatar->getAndClearRecentlyRemovedIDs(); // to track a deleted instance but keep version information // the avatar mixer uses the negative value of the sent version diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 03c69076aa..91ea8f0291 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -674,7 +674,7 @@ void MyAvatar::update(float deltaTime) { _clientTraitsHandler->sendChangedTraitsToMixer(); - simulate(deltaTime); + simulate(deltaTime, true); currentEnergy += energyChargeRate; currentEnergy -= getAccelerationEnergy(); @@ -746,7 +746,7 @@ void MyAvatar::updateChildCauterization(SpatiallyNestablePointer object, bool ca } } -void MyAvatar::simulate(float deltaTime) { +void MyAvatar::simulate(float deltaTime, bool inView) { PerformanceTimer perfTimer("simulate"); animateScaleChanges(deltaTime); @@ -890,7 +890,7 @@ void MyAvatar::simulate(float deltaTime) { _characterController.setCollisionlessAllowed(collisionlessAllowed); } - updateAvatarEntities(); + handleChangedAvatarEntityData(); updateFadingStatus(); } @@ -1480,7 +1480,7 @@ void MyAvatar::sanitizeAvatarEntityProperties(EntityItemProperties& properties) properties.markAllChanged(); } -void MyAvatar::updateAvatarEntities() { +void MyAvatar::handleChangedAvatarEntityData() { // NOTE: this is a per-frame update if (getID().isNull() || getID() == AVATAR_SELF_ID || @@ -1499,7 +1499,7 @@ void MyAvatar::updateAvatarEntities() { return; } - // We collect changes to AvatarEntities and then handle them all in one spot per frame: updateAvatarEntities(). + // We collect changes to AvatarEntities and then handle them all in one spot per frame: handleChangedAvatarEntityData(). // Basically this is a "transaction pattern" with an extra complication: these changes can come from two // "directions" and the "authoritative source" of each direction is different, so we maintain two distinct sets // of transaction lists: diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 38cef264a7..67a449b274 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -1186,7 +1186,6 @@ public: virtual void setAttachmentsVariant(const QVariantList& variant) override; glm::vec3 getNextPosition() { return _goToPending ? _goToPosition : getWorldPosition(); } - void updateAvatarEntities() override; void prepareAvatarEntityDataForReload(); /**jsdoc @@ -1619,6 +1618,7 @@ private slots: void updateCollisionCapsuleCache(); protected: + void handleChangedAvatarEntityData(); virtual void beParentOfChild(SpatiallyNestablePointer newChild) const override; virtual void forgetChild(SpatiallyNestablePointer newChild) const override; virtual void recalculateChildCauterization() const override; @@ -1630,7 +1630,7 @@ private: virtual QByteArray toByteArrayStateful(AvatarDataDetail dataDetail, bool dropFaceTracking) override; - void simulate(float deltaTime); + void simulate(float deltaTime, bool inView) override; void updateFromTrackers(float deltaTime); void saveAvatarUrl(); virtual void render(RenderArgs* renderArgs) override; diff --git a/interface/src/avatar/OtherAvatar.cpp b/interface/src/avatar/OtherAvatar.cpp index a71d2478ad..569f92ac4d 100644 --- a/interface/src/avatar/OtherAvatar.cpp +++ b/interface/src/avatar/OtherAvatar.cpp @@ -7,10 +7,18 @@ // #include "OtherAvatar.h" -#include "Application.h" +#include <glm/gtx/norm.hpp> +#include <glm/gtx/vector_angle.hpp> + +#include <AvatarLogging.h> + +#include "Application.h" #include "AvatarMotionState.h" +const float DISPLAYNAME_FADE_TIME = 0.5f; +const float DISPLAYNAME_FADE_FACTOR = pow(0.01f, 1.0f / DISPLAYNAME_FADE_TIME); + static glm::u8vec3 getLoadingOrbColor(Avatar::LoadingStatus loadingStatus) { const glm::u8vec3 NO_MODEL_COLOR(0xe3, 0xe3, 0xe3); @@ -142,4 +150,293 @@ void OtherAvatar::updateCollisionGroup(bool myAvatarCollide) { _motionState->addDirtyFlags(Simulation::DIRTY_COLLISION_GROUP); } } -} \ No newline at end of file +} + +void OtherAvatar::simulate(float deltaTime, bool inView) { + PROFILE_RANGE(simulation, "simulate"); + + _globalPosition = _transit.isActive() ? _transit.getCurrentPosition() : _serverPosition; + if (!hasParent()) { + setLocalPosition(_globalPosition); + } + + _simulationRate.increment(); + if (inView) { + _simulationInViewRate.increment(); + } + + PerformanceTimer perfTimer("simulate"); + { + PROFILE_RANGE(simulation, "updateJoints"); + if (inView) { + Head* head = getHead(); + if (_hasNewJointData || _transit.isActive()) { + _skeletonModel->getRig().copyJointsFromJointData(_jointData); + glm::mat4 rootTransform = glm::scale(_skeletonModel->getScale()) * glm::translate(_skeletonModel->getOffset()); + _skeletonModel->getRig().computeExternalPoses(rootTransform); + _jointDataSimulationRate.increment(); + + _skeletonModel->simulate(deltaTime, true); + + locationChanged(); // joints changed, so if there are any children, update them. + _hasNewJointData = false; + + glm::vec3 headPosition = getWorldPosition(); + if (!_skeletonModel->getHeadPosition(headPosition)) { + headPosition = getWorldPosition(); + } + head->setPosition(headPosition); + } + head->setScale(getModelScale()); + head->simulate(deltaTime); + relayJointDataToChildren(); + } else { + // a non-full update is still required so that the position, rotation, scale and bounds of the skeletonModel are updated. + _skeletonModel->simulate(deltaTime, false); + } + _skeletonModelSimulationRate.increment(); + } + + // update animation for display name fade in/out + if ( _displayNameTargetAlpha != _displayNameAlpha) { + // the alpha function is + // Fade out => alpha(t) = factor ^ t => alpha(t+dt) = alpha(t) * factor^(dt) + // Fade in => alpha(t) = 1 - factor^t => alpha(t+dt) = 1-(1-alpha(t))*coef^(dt) + // factor^(dt) = coef + float coef = pow(DISPLAYNAME_FADE_FACTOR, deltaTime); + if (_displayNameTargetAlpha < _displayNameAlpha) { + // Fading out + _displayNameAlpha *= coef; + } else { + // Fading in + _displayNameAlpha = 1 - (1 - _displayNameAlpha) * coef; + } + _displayNameAlpha = abs(_displayNameAlpha - _displayNameTargetAlpha) < 0.01f ? _displayNameTargetAlpha : _displayNameAlpha; + } + + { + PROFILE_RANGE(simulation, "misc"); + measureMotionDerivatives(deltaTime); + simulateAttachments(deltaTime); + updatePalms(); + } + { + PROFILE_RANGE(simulation, "entities"); + handleChangedAvatarEntityData(); + updateAttachedAvatarEntities(); + } + + { + PROFILE_RANGE(simulation, "grabs"); + updateGrabs(); + } + + updateFadingStatus(); +} + +void OtherAvatar::handleChangedAvatarEntityData() { + PerformanceTimer perfTimer("attachments"); + + // AVATAR ENTITY UPDATE FLOW + // - if queueEditEntityMessage() sees "AvatarEntity" HostType it calls _myAvatar->storeAvatarEntityDataPayload() + // - storeAvatarEntityDataPayload() saves the payload and flags the trait instance for the entity as updated, + // - ClientTraitsHandler::sendChangedTraitsToMixea() sends the entity bytes to the mixer which relays them to other interfaces + // - AvatarHashMap::processBulkAvatarTraits() on other interfaces calls avatar->processTraitInstance() + // - AvatarData::processTraitInstance() calls storeAvatarEntityDataPayload(), which sets _avatarEntityDataChanged = true + // - (My)Avatar::simulate() calls handleChangedAvatarEntityData() every frame which checks _avatarEntityDataChanged + // and here we are... + + // AVATAR ENTITY DELETE FLOW + // - EntityScriptingInterface::deleteEntity() calls _myAvatar->clearAvatarEntity() for deleted avatar entities + // - clearAvatarEntity() removes the avatar entity and flags the trait instance for the entity as deleted + // - ClientTraitsHandler::sendChangedTraitsToMixer() sends a deletion to the mixer which relays to other interfaces + // - AvatarHashMap::processBulkAvatarTraits() on other interfaces calls avatar->processDeletedTraitInstace() + // - AvatarData::processDeletedTraitInstance() calls clearAvatarEntity() + // - AvatarData::clearAvatarEntity() sets _avatarEntityDataChanged = true and adds the ID to the detached list + // - (My)Avatar::simulate() calls handleChangedAvatarEntityData() every frame which checks _avatarEntityDataChanged + // and here we are... + + if (!_avatarEntityDataChanged) { + return; + } + + auto treeRenderer = DependencyManager::get<EntityTreeRenderer>(); + EntityTreePointer entityTree = treeRenderer ? treeRenderer->getTree() : nullptr; + if (!entityTree) { + return; + } + + PackedAvatarEntityMap packedAvatarEntityData; + _avatarEntitiesLock.withReadLock([&] { + packedAvatarEntityData = _packedAvatarEntityData; + }); + entityTree->withWriteLock([&] { + AvatarEntityMap::const_iterator dataItr = packedAvatarEntityData.begin(); + while (dataItr != packedAvatarEntityData.end()) { + // compute hash of data. TODO? cache this? + QByteArray data = dataItr.value(); + uint32_t newHash = qHash(data); + + // check to see if we recognize this hash and whether it was already successfully processed + QUuid entityID = dataItr.key(); + MapOfAvatarEntityDataHashes::iterator stateItr = _avatarEntityDataHashes.find(entityID); + if (stateItr != _avatarEntityDataHashes.end()) { + if (stateItr.value().success) { + if (newHash == stateItr.value().hash) { + // data hasn't changed --> nothing to do + ++dataItr; + continue; + } + } else { + // NOTE: if the data was unsuccessful in producing an entity in the past + // we will try again just in case something changed (unlikely). + // Unfortunately constantly trying to build the entity for this data costs + // CPU cycles that we'd rather not spend. + // TODO? put a maximum number of tries on this? + } + } else { + // sanity check data + QUuid id; + EntityTypes::EntityType type; + EntityTypes::extractEntityTypeAndID((unsigned char*)(data.data()), data.size(), type, id); + if (id != entityID || !EntityTypes::typeIsValid(type)) { + // skip for corrupt + ++dataItr; + continue; + } + // remember this hash for the future + stateItr = _avatarEntityDataHashes.insert(entityID, AvatarEntityDataHash(newHash)); + } + ++dataItr; + + EntityItemProperties properties; + int32_t bytesLeftToRead = data.size(); + unsigned char* dataAt = (unsigned char*)(data.data()); + if (!properties.constructFromBuffer(dataAt, bytesLeftToRead)) { + // properties are corrupt + continue; + } + + properties.setEntityHostType(entity::HostType::AVATAR); + properties.setOwningAvatarID(getID()); + + // there's no entity-server to tell us we're the simulation owner, so always set the + // simulationOwner to the owningAvatarID and a high priority. + properties.setSimulationOwner(getID(), AVATAR_ENTITY_SIMULATION_PRIORITY); + + if (properties.getParentID() == AVATAR_SELF_ID) { + properties.setParentID(getID()); + } + + // NOTE: if this avatar entity is not attached to us, strip its entity script completely... + auto attachedScript = properties.getScript(); + if (!isMyAvatar() && !attachedScript.isEmpty()) { + QString noScript; + properties.setScript(noScript); + } + + auto specifiedHref = properties.getHref(); + if (!isMyAvatar() && !specifiedHref.isEmpty()) { + qCDebug(avatars) << "removing entity href from avatar attached entity:" << entityID << "old href:" << specifiedHref; + QString noHref; + properties.setHref(noHref); + } + + // When grabbing avatar entities, they are parented to the joint moving them, then when un-grabbed + // they go back to the default parent (null uuid). When un-gripped, others saw the entity disappear. + // The thinking here is the local position was noticed as changing, but not the parentID (since it is now + // back to the default), and the entity flew off somewhere. Marking all changed definitely fixes this, + // and seems safe (per Seth). + properties.markAllChanged(); + + // try to build the entity + EntityItemPointer entity = entityTree->findEntityByEntityItemID(EntityItemID(entityID)); + bool success = true; + if (entity) { + QUuid oldParentID = entity->getParentID(); + if (entityTree->updateEntity(entityID, properties)) { + entity->updateLastEditedFromRemote(); + } else { + success = false; + } + if (oldParentID != entity->getParentID()) { + if (entity->getParentID() == getID()) { + onAddAttachedAvatarEntity(entityID); + } else if (oldParentID == getID()) { + onRemoveAttachedAvatarEntity(entityID); + } + } + } else { + entity = entityTree->addEntity(entityID, properties); + if (!entity) { + success = false; + } else if (entity->getParentID() == getID()) { + onAddAttachedAvatarEntity(entityID); + } + } + stateItr.value().success = success; + } + + AvatarEntityIDs recentlyRemovedAvatarEntities = getAndClearRecentlyRemovedIDs(); + if (!recentlyRemovedAvatarEntities.empty()) { + // only lock this thread when absolutely necessary + AvatarEntityMap packedAvatarEntityData; + _avatarEntitiesLock.withReadLock([&] { + packedAvatarEntityData = _packedAvatarEntityData; + }); + foreach (auto entityID, recentlyRemovedAvatarEntities) { + if (!packedAvatarEntityData.contains(entityID)) { + entityTree->deleteEntity(entityID, true, true); + } + } + + // TODO: move this outside of tree lock + // remove stale data hashes + foreach (auto entityID, recentlyRemovedAvatarEntities) { + MapOfAvatarEntityDataHashes::iterator stateItr = _avatarEntityDataHashes.find(entityID); + if (stateItr != _avatarEntityDataHashes.end()) { + _avatarEntityDataHashes.erase(stateItr); + } + onRemoveAttachedAvatarEntity(entityID); + } + } + if (packedAvatarEntityData.size() != _avatarEntityForRecording.size()) { + createRecordingIDs(); + } + }); + + setAvatarEntityDataChanged(false); +} + +void OtherAvatar::onAddAttachedAvatarEntity(const QUuid& id) { + for (uint32_t i = 0; i < _attachedAvatarEntities.size(); ++i) { + if (_attachedAvatarEntities[i] == id) { + return; + } + } + _attachedAvatarEntities.push_back(id); +} + +void OtherAvatar::onRemoveAttachedAvatarEntity(const QUuid& id) { + for (uint32_t i = 0; i < _attachedAvatarEntities.size(); ++i) { + if (_attachedAvatarEntities[i] == id) { + if (i != _attachedAvatarEntities.size() - 1) { + _attachedAvatarEntities[i] = _attachedAvatarEntities.back(); + } + _attachedAvatarEntities.pop_back(); + break; + } + } +} + +void OtherAvatar::updateAttachedAvatarEntities() { + if (!_attachedAvatarEntities.empty()) { + auto treeRenderer = DependencyManager::get<EntityTreeRenderer>(); + if (!treeRenderer) { + return; + } + for (const QUuid& id : _attachedAvatarEntities) { + treeRenderer->onEntityChanged(id); + } + } +} diff --git a/interface/src/avatar/OtherAvatar.h b/interface/src/avatar/OtherAvatar.h index 48402fe55c..a1dc5724a9 100644 --- a/interface/src/avatar/OtherAvatar.h +++ b/interface/src/avatar/OtherAvatar.h @@ -10,6 +10,7 @@ #define hifi_OtherAvatar_h #include <memory> +#include <vector> #include <avatars-renderer/Avatar.h> #include <workload/Space.h> @@ -47,9 +48,17 @@ public: void updateCollisionGroup(bool myAvatarCollide); + void simulate(float deltaTime, bool inView) override; + friend AvatarManager; protected: + void handleChangedAvatarEntityData(); + void updateAttachedAvatarEntities(); + void onAddAttachedAvatarEntity(const QUuid& id); + void onRemoveAttachedAvatarEntity(const QUuid& id); + + std::vector<QUuid> _attachedAvatarEntities; std::shared_ptr<Sphere3DOverlay> _otherAvatarOrbMeshPlaceholder { nullptr }; OverlayID _otherAvatarOrbMeshPlaceholderID { UNKNOWN_OVERLAY_ID }; AvatarMotionState* _motionState { nullptr }; diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index feb95f1dd0..a6185d7e79 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -308,164 +308,6 @@ void Avatar::setAvatarEntityDataChanged(bool value) { _avatarEntityDataHashes.clear(); } -void Avatar::updateAvatarEntities() { - PerformanceTimer perfTimer("attachments"); - - // AVATAR ENTITY UPDATE FLOW - // - if queueEditEntityMessage sees "AvatarEntity" HostType it calls _myAvatar->storeAvatarEntityDataPayload - // - storeAvatarEntityDataPayload saves the payload and flags the trait instance for the entity as updated, - // - ClientTraitsHandler::sendChangedTraitsToMixer sends the entity bytes to the mixer which relays them to other interfaces - // - AvatarHashMap::processBulkAvatarTraits on other interfaces calls avatar->processTraitInstace - // - AvatarData::processTraitInstance calls storeAvatarEntityDataPayload, which sets _avatarEntityDataChanged = true - // - (My)Avatar::simulate calls updateAvatarEntities every frame which checks _avatarEntityDataChanged - // and here we are... - - // AVATAR ENTITY DELETE FLOW - // - EntityScriptingInterface::deleteEntity calls _myAvatar->clearAvatarEntity() for deleted avatar entities - // - clearAvatarEntity removes the avatar entity and flags the trait instance for the entity as deleted - // - ClientTraitsHandler::sendChangedTraitsToMixer sends a deletion to the mixer which relays to other interfaces - // - AvatarHashMap::processBulkAvatarTraits on other interfaces calls avatar->processDeletedTraitInstace - // - AvatarData::processDeletedTraitInstance calls clearAvatarEntity - // - AvatarData::clearAvatarEntity sets _avatarEntityDataChanged = true and adds the ID to the detached list - // - (My)Avatar::simulate calls updateAvatarEntities every frame which checks _avatarEntityDataChanged - // and here we are... - - if (!_avatarEntityDataChanged) { - return; - } - - auto treeRenderer = DependencyManager::get<EntityTreeRenderer>(); - EntityTreePointer entityTree = treeRenderer ? treeRenderer->getTree() : nullptr; - if (!entityTree) { - return; - } - - PackedAvatarEntityMap packedAvatarEntityData; - _avatarEntitiesLock.withReadLock([&] { - packedAvatarEntityData = _packedAvatarEntityData; - }); - entityTree->withWriteLock([&] { - AvatarEntityMap::const_iterator dataItr = packedAvatarEntityData.begin(); - while (dataItr != packedAvatarEntityData.end()) { - // compute hash of data. TODO? cache this? - QByteArray data = dataItr.value(); - uint32_t newHash = qHash(data); - - // check to see if we recognize this hash and whether it was already successfully processed - QUuid entityID = dataItr.key(); - MapOfAvatarEntityDataHashes::iterator stateItr = _avatarEntityDataHashes.find(entityID); - if (stateItr != _avatarEntityDataHashes.end()) { - if (stateItr.value().success) { - if (newHash == stateItr.value().hash) { - // data hasn't changed --> nothing to do - ++dataItr; - continue; - } - } else { - // NOTE: if the data was unsuccessful in producing an entity in the past - // we will try again just in case something changed (unlikely). - // Unfortunately constantly trying to build the entity for this data costs - // CPU cycles that we'd rather not spend. - // TODO? put a maximum number of tries on this? - } - } else { - // sanity check data - QUuid id; - EntityTypes::EntityType type; - EntityTypes::extractEntityTypeAndID((unsigned char*)(data.data()), data.size(), type, id); - if (id != entityID || !EntityTypes::typeIsValid(type)) { - // skip for corrupt - ++dataItr; - continue; - } - // remember this hash for the future - stateItr = _avatarEntityDataHashes.insert(entityID, AvatarEntityDataHash(newHash)); - } - ++dataItr; - - EntityItemProperties properties; - int32_t bytesLeftToRead = data.size(); - unsigned char* dataAt = (unsigned char*)(data.data()); - if (!properties.constructFromBuffer(dataAt, bytesLeftToRead)) { - // properties are corrupt - continue; - } - - properties.setEntityHostType(entity::HostType::AVATAR); - properties.setOwningAvatarID(getID()); - - if (properties.getParentID() == AVATAR_SELF_ID) { - properties.setParentID(getID()); - } - - // NOTE: if this avatar entity is not attached to us, strip its entity script completely... - auto attachedScript = properties.getScript(); - if (!isMyAvatar() && !attachedScript.isEmpty()) { - QString noScript; - properties.setScript(noScript); - } - - auto specifiedHref = properties.getHref(); - if (!isMyAvatar() && !specifiedHref.isEmpty()) { - qCDebug(avatars_renderer) << "removing entity href from avatar attached entity:" << entityID << "old href:" << specifiedHref; - QString noHref; - properties.setHref(noHref); - } - - // When grabbing avatar entities, they are parented to the joint moving them, then when un-grabbed - // they go back to the default parent (null uuid). When un-gripped, others saw the entity disappear. - // The thinking here is the local position was noticed as changing, but not the parentID (since it is now - // back to the default), and the entity flew off somewhere. Marking all changed definitely fixes this, - // and seems safe (per Seth). - properties.markAllChanged(); - - // try to build the entity - EntityItemPointer entity = entityTree->findEntityByEntityItemID(EntityItemID(entityID)); - bool success = true; - if (entity) { - if (entityTree->updateEntity(entityID, properties)) { - entity->updateLastEditedFromRemote(); - } else { - success = false; - } - } else { - entity = entityTree->addEntity(entityID, properties); - if (!entity) { - success = false; - } - } - stateItr.value().success = success; - } - - AvatarEntityIDs recentlyDetachedAvatarEntities = getAndClearRecentlyDetachedIDs(); - if (!recentlyDetachedAvatarEntities.empty()) { - // only lock this thread when absolutely necessary - AvatarEntityMap packedAvatarEntityData; - _avatarEntitiesLock.withReadLock([&] { - packedAvatarEntityData = _packedAvatarEntityData; - }); - foreach (auto entityID, recentlyDetachedAvatarEntities) { - if (!packedAvatarEntityData.contains(entityID)) { - entityTree->deleteEntity(entityID, true, true); - } - } - - // remove stale data hashes - foreach (auto entityID, recentlyDetachedAvatarEntities) { - MapOfAvatarEntityDataHashes::iterator stateItr = _avatarEntityDataHashes.find(entityID); - if (stateItr != _avatarEntityDataHashes.end()) { - _avatarEntityDataHashes.erase(stateItr); - } - } - } - if (packedAvatarEntityData.size() != _avatarEntityForRecording.size()) { - createRecordingIDs(); - } - }); - - setAvatarEntityDataChanged(false); -} - void Avatar::removeAvatarEntitiesFromTree() { auto treeRenderer = DependencyManager::get<EntityTreeRenderer>(); EntityTreePointer entityTree = treeRenderer ? treeRenderer->getTree() : nullptr; @@ -650,87 +492,6 @@ void Avatar::relayJointDataToChildren() { _reconstructSoftEntitiesJointMap = false; } -void Avatar::simulate(float deltaTime, bool inView) { - PROFILE_RANGE(simulation, "simulate"); - - _globalPosition = _transit.isActive() ? _transit.getCurrentPosition() : _serverPosition; - if (!hasParent()) { - setLocalPosition(_globalPosition); - } - - _simulationRate.increment(); - if (inView) { - _simulationInViewRate.increment(); - } - - PerformanceTimer perfTimer("simulate"); - { - PROFILE_RANGE(simulation, "updateJoints"); - if (inView) { - Head* head = getHead(); - if (_hasNewJointData || _transit.isActive()) { - _skeletonModel->getRig().copyJointsFromJointData(_jointData); - glm::mat4 rootTransform = glm::scale(_skeletonModel->getScale()) * glm::translate(_skeletonModel->getOffset()); - _skeletonModel->getRig().computeExternalPoses(rootTransform); - _jointDataSimulationRate.increment(); - - _skeletonModel->simulate(deltaTime, true); - - locationChanged(); // joints changed, so if there are any children, update them. - _hasNewJointData = false; - - glm::vec3 headPosition = getWorldPosition(); - if (!_skeletonModel->getHeadPosition(headPosition)) { - headPosition = getWorldPosition(); - } - head->setPosition(headPosition); - } - head->setScale(getModelScale()); - head->simulate(deltaTime); - relayJointDataToChildren(); - } else { - // a non-full update is still required so that the position, rotation, scale and bounds of the skeletonModel are updated. - _skeletonModel->simulate(deltaTime, false); - } - _skeletonModelSimulationRate.increment(); - } - - // update animation for display name fade in/out - if ( _displayNameTargetAlpha != _displayNameAlpha) { - // the alpha function is - // Fade out => alpha(t) = factor ^ t => alpha(t+dt) = alpha(t) * factor^(dt) - // Fade in => alpha(t) = 1 - factor^t => alpha(t+dt) = 1-(1-alpha(t))*coef^(dt) - // factor^(dt) = coef - float coef = pow(DISPLAYNAME_FADE_FACTOR, deltaTime); - if (_displayNameTargetAlpha < _displayNameAlpha) { - // Fading out - _displayNameAlpha *= coef; - } else { - // Fading in - _displayNameAlpha = 1 - (1 - _displayNameAlpha) * coef; - } - _displayNameAlpha = abs(_displayNameAlpha - _displayNameTargetAlpha) < 0.01f ? _displayNameTargetAlpha : _displayNameAlpha; - } - - { - PROFILE_RANGE(simulation, "misc"); - measureMotionDerivatives(deltaTime); - simulateAttachments(deltaTime); - updatePalms(); - } - { - PROFILE_RANGE(simulation, "entities"); - updateAvatarEntities(); - } - - { - PROFILE_RANGE(simulation, "grabs"); - updateGrabs(); - } - - updateFadingStatus(); -} - float Avatar::getSimulationRate(const QString& rateName) const { if (rateName == "") { return _simulationRate.rate(); @@ -1045,7 +806,6 @@ void Avatar::render(RenderArgs* renderArgs) { } } - void Avatar::setEnableMeshVisible(bool isEnabled) { if (_isMeshVisible != isEnabled) { _isMeshVisible = isEnabled; diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h index 97218ac3c1..4ff3e9cc13 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h @@ -139,9 +139,8 @@ public: typedef render::Payload<AvatarData> Payload; void init(); - virtual void updateAvatarEntities(); void removeAvatarEntitiesFromTree(); - void simulate(float deltaTime, bool inView); + virtual void simulate(float deltaTime, bool inView) = 0; virtual void simulateAttachments(float deltaTime); virtual void render(RenderArgs* renderArgs); diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index 5eda53329b..21e0a6aba2 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -2777,7 +2777,7 @@ void AvatarData::clearAvatarEntity(const QUuid& entityID, bool requiresRemovalFr removedEntity = _packedAvatarEntityData.remove(entityID); }); - insertDetachedEntityID(entityID); + insertRemovedEntityID(entityID); if (removedEntity && _clientTraitsHandler) { // we have a client traits handler, so we need to mark this removed instance trait as deleted @@ -2798,18 +2798,18 @@ void AvatarData::setAvatarEntityData(const AvatarEntityMap& avatarEntityData) { // each QByteArray represents an EntityItemProperties object from JavaScript } -void AvatarData::insertDetachedEntityID(const QUuid entityID) { +void AvatarData::insertRemovedEntityID(const QUuid entityID) { _avatarEntitiesLock.withWriteLock([&] { - _avatarEntityDetached.insert(entityID); + _avatarEntityRemoved.insert(entityID); }); _avatarEntityDataChanged = true; } -AvatarEntityIDs AvatarData::getAndClearRecentlyDetachedIDs() { +AvatarEntityIDs AvatarData::getAndClearRecentlyRemovedIDs() { AvatarEntityIDs result; _avatarEntitiesLock.withWriteLock([&] { - result = _avatarEntityDetached; - _avatarEntityDetached.clear(); + result = _avatarEntityRemoved; + _avatarEntityRemoved.clear(); }); return result; } diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index 0fea5a541e..ec5ea4a5d0 100644 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -1150,8 +1150,7 @@ public: Q_INVOKABLE virtual void setAvatarEntityData(const AvatarEntityMap& avatarEntityData); virtual void setAvatarEntityDataChanged(bool value) { _avatarEntityDataChanged = value; } - void insertDetachedEntityID(const QUuid entityID); - AvatarEntityIDs getAndClearRecentlyDetachedIDs(); + AvatarEntityIDs getAndClearRecentlyRemovedIDs(); /**jsdoc * @function MyAvatar.getSensorToWorldMatrix @@ -1338,6 +1337,7 @@ public slots: void resetLastSent() { _lastToByteArray = 0; } protected: + void insertRemovedEntityID(const QUuid entityID); void lazyInitHeadData() const; float getDistanceBasedMinRotationDOT(glm::vec3 viewerPosition) const; @@ -1466,7 +1466,7 @@ protected: AABox _defaultBubbleBox; mutable ReadWriteLockable _avatarEntitiesLock; - AvatarEntityIDs _avatarEntityDetached; // recently detached from this avatar + AvatarEntityIDs _avatarEntityRemoved; // recently removed AvatarEntity ids AvatarEntityIDs _avatarEntityForRecording; // create new entities id for avatar recording PackedAvatarEntityMap _packedAvatarEntityData; bool _avatarEntityDataChanged { false }; From 0098dedcbb57599e38bd1c40e1a403dcc1fc116f Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Wed, 9 Jan 2019 18:25:12 -0800 Subject: [PATCH 202/230] don't update server for AvatarEntity queryAACube --- libraries/entities/src/EntityTree.cpp | 41 ++++++++++++++------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/libraries/entities/src/EntityTree.cpp b/libraries/entities/src/EntityTree.cpp index 542e18fa6a..fb1a11d43f 100644 --- a/libraries/entities/src/EntityTree.cpp +++ b/libraries/entities/src/EntityTree.cpp @@ -2964,27 +2964,30 @@ void EntityTree::updateEntityQueryAACubeWorker(SpatiallyNestablePointer object, MovingEntitiesOperator& moveOperator, bool force, bool tellServer) { // if the queryBox has changed, tell the entity-server EntityItemPointer entity = std::dynamic_pointer_cast<EntityItem>(object); - if (entity && (entity->updateQueryAACube() || force)) { - bool success; - AACube newCube = entity->getQueryAACube(success); - if (success) { - moveOperator.addEntityToMoveList(entity, newCube); - } - // send an edit packet to update the entity-server about the queryAABox. We do this for domain-hosted - // entities as well as for avatar-entities; the packet-sender will route the update accordingly - if (tellServer && packetSender && (entity->isDomainEntity() || entity->isAvatarEntity())) { - quint64 now = usecTimestampNow(); - EntityItemProperties properties = entity->getProperties(); - properties.setQueryAACubeDirty(); - properties.setLocationDirty(); - properties.setLastEdited(now); + if (entity) { + bool tellServerThis = tellServer && (entity->getEntityHostType() != entity::HostType::AVATAR); + if ((entity->updateQueryAACube() || force)) { + bool success; + AACube newCube = entity->getQueryAACube(success); + if (success) { + moveOperator.addEntityToMoveList(entity, newCube); + } + // send an edit packet to update the entity-server about the queryAABox. We do this for domain-hosted + // entities as well as for avatar-entities; the packet-sender will route the update accordingly + if (tellServerThis && packetSender && (entity->isDomainEntity() || entity->isAvatarEntity())) { + quint64 now = usecTimestampNow(); + EntityItemProperties properties = entity->getProperties(); + properties.setQueryAACubeDirty(); + properties.setLocationDirty(); + properties.setLastEdited(now); - packetSender->queueEditEntityMessage(PacketType::EntityEdit, getThisPointer(), entity->getID(), properties); - entity->setLastBroadcast(now); // for debug/physics status icons - } + packetSender->queueEditEntityMessage(PacketType::EntityEdit, getThisPointer(), entity->getID(), properties); + entity->setLastBroadcast(now); // for debug/physics status icons + } - entity->markDirtyFlags(Simulation::DIRTY_POSITION); - entityChanged(entity); + entity->markDirtyFlags(Simulation::DIRTY_POSITION); + entityChanged(entity); + } } object->forEachDescendant([&](SpatiallyNestablePointer descendant) { From f7b7db5ab40af85246e0f63595e5de9cc7a0f0df Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Thu, 10 Jan 2019 09:14:37 -0800 Subject: [PATCH 203/230] fix warning on OSX, use correct format for float literals --- interface/src/avatar/OtherAvatar.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/src/avatar/OtherAvatar.cpp b/interface/src/avatar/OtherAvatar.cpp index 569f92ac4d..854f078c03 100644 --- a/interface/src/avatar/OtherAvatar.cpp +++ b/interface/src/avatar/OtherAvatar.cpp @@ -209,9 +209,9 @@ void OtherAvatar::simulate(float deltaTime, bool inView) { _displayNameAlpha *= coef; } else { // Fading in - _displayNameAlpha = 1 - (1 - _displayNameAlpha) * coef; + _displayNameAlpha = 1.0f - (1.0f - _displayNameAlpha) * coef; } - _displayNameAlpha = abs(_displayNameAlpha - _displayNameTargetAlpha) < 0.01f ? _displayNameTargetAlpha : _displayNameAlpha; + _displayNameAlpha = absf(_displayNameAlpha - _displayNameTargetAlpha) < 0.01f ? _displayNameTargetAlpha : _displayNameAlpha; } { From 16da42723e42349b8ea4f5bd3de21168254180c5 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Thu, 10 Jan 2019 10:15:39 -0800 Subject: [PATCH 204/230] use glm::abs() instead of absf() --- interface/src/avatar/OtherAvatar.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/avatar/OtherAvatar.cpp b/interface/src/avatar/OtherAvatar.cpp index 854f078c03..0dfc349e18 100644 --- a/interface/src/avatar/OtherAvatar.cpp +++ b/interface/src/avatar/OtherAvatar.cpp @@ -211,7 +211,7 @@ void OtherAvatar::simulate(float deltaTime, bool inView) { // Fading in _displayNameAlpha = 1.0f - (1.0f - _displayNameAlpha) * coef; } - _displayNameAlpha = absf(_displayNameAlpha - _displayNameTargetAlpha) < 0.01f ? _displayNameTargetAlpha : _displayNameAlpha; + _displayNameAlpha = glm::abs(_displayNameAlpha - _displayNameTargetAlpha) < 0.01f ? _displayNameTargetAlpha : _displayNameAlpha; } { From df97ca57b4cb1f86fd6b2266ed8afb8bc05d31c7 Mon Sep 17 00:00:00 2001 From: Roxanne Skelly <roxanne@highfidelity.io> Date: Thu, 10 Jan 2019 12:04:48 -0800 Subject: [PATCH 205/230] Bulk Avatar Traits related ack data was not reset when avatars were ignored, etc. --- assignment-client/src/avatars/AvatarMixerClientData.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/assignment-client/src/avatars/AvatarMixerClientData.cpp b/assignment-client/src/avatars/AvatarMixerClientData.cpp index 7f1b40142e..01cc9ff7a0 100644 --- a/assignment-client/src/avatars/AvatarMixerClientData.cpp +++ b/assignment-client/src/avatars/AvatarMixerClientData.cpp @@ -341,6 +341,10 @@ void AvatarMixerClientData::removeFromRadiusIgnoringSet(const QUuid& other) { void AvatarMixerClientData::resetSentTraitData(Node::LocalID nodeLocalID) { _lastSentTraitsTimestamps[nodeLocalID] = TraitsCheckTimestamp(); _perNodeSentTraitVersions[nodeLocalID].reset(); + _perNodeAckedTraitVersions[nodeLocalID].reset(); + for (auto && pendingTraitVersions : _perNodePendingTraitVersions) { + pendingTraitVersions.second[nodeLocalID].reset(); + } } void AvatarMixerClientData::readViewFrustumPacket(const QByteArray& message) { From c8db50cb20bb1ed9b3180ec87d2f34d293931375 Mon Sep 17 00:00:00 2001 From: Seth Alves <seth.alves@gmail.com> Date: Thu, 10 Jan 2019 13:54:41 -0800 Subject: [PATCH 206/230] start up logger before loading plugins. put a plugin-interface version into the meta data of each plugin. don't load plugins that don't match the current version. --- interface/src/Application.cpp | 6 +++--- interface/src/Application.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 134c375b56..b27403f56c 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -724,6 +724,8 @@ const QString TEST_RESULTS_LOCATION_COMMAND{ "--testResultsLocation" }; bool setupEssentials(int& argc, char** argv, bool runningMarkerExisted) { const char** constArgv = const_cast<const char**>(argv); + qInstallMessageHandler(messageHandler); + // HRS: I could not figure out how to move these any earlier in startup, so when using this option, be sure to also supply // --allowMultipleInstances auto reportAndQuit = [&](const char* commandSwitch, std::function<void(FILE* fp)> report) { @@ -974,6 +976,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo QApplication(argc, argv), _window(new MainWindow(desktop())), _sessionRunTimer(startupTimer), + _logger(new FileLogger(this)), _previousSessionCrashed(setupEssentials(argc, argv, runningMarkerExisted)), _entitySimulation(new PhysicalEntitySimulation()), _physicsEngine(new PhysicsEngine(Vectors::ZERO)), @@ -1063,9 +1066,6 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo installNativeEventFilter(&MyNativeEventFilter::getInstance()); #endif - _logger = new FileLogger(this); - qInstallMessageHandler(messageHandler); - QFontDatabase::addApplicationFont(PathUtils::resourcesPath() + "styles/Inconsolata.otf"); QFontDatabase::addApplicationFont(PathUtils::resourcesPath() + "fonts/fontawesome-webfont.ttf"); QFontDatabase::addApplicationFont(PathUtils::resourcesPath() + "fonts/hifi-glyphs.ttf"); diff --git a/interface/src/Application.h b/interface/src/Application.h index dc30c3c22c..b1077a523a 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -594,6 +594,8 @@ private: bool _aboutToQuit { false }; + FileLogger* _logger; + bool _previousSessionCrashed; DisplayPluginPointer _displayPlugin; @@ -674,8 +676,6 @@ private: QPointer<EntityScriptServerLogDialog> _entityScriptServerLogDialog; QDir _defaultScriptsLocation; - FileLogger* _logger; - TouchEvent _lastTouchEvent; quint64 _lastNackTime; From 6a8894116613742755330fa731e5832dfa38a516 Mon Sep 17 00:00:00 2001 From: Seth Alves <seth.alves@gmail.com> Date: Thu, 10 Jan 2019 13:59:28 -0800 Subject: [PATCH 207/230] put a plugin-interface version into the meta data of each plugin. don't load plugins that don't match the current version. --- .../plugins/src/plugins/PluginManager.cpp | 24 ++++++++++++++++++- libraries/plugins/src/plugins/PluginManager.h | 2 ++ plugins/hifiCodec/src/plugin.json | 5 +++- plugins/hifiKinect/src/plugin.json | 5 +++- plugins/hifiLeapMotion/src/plugin.json | 5 +++- plugins/hifiNeuron/src/plugin.json | 5 +++- plugins/hifiSdl2/src/plugin.json | 5 +++- plugins/hifiSixense/src/plugin.json | 5 +++- plugins/hifiSpacemouse/src/plugin.json | 5 +++- plugins/oculus/src/oculus.json | 5 +++- plugins/oculusLegacy/src/oculus.json | 5 +++- plugins/openvr/src/plugin.json | 5 +++- plugins/pcmCodec/src/plugin.json | 5 +++- plugins/steamClient/src/plugin.json | 5 +++- 14 files changed, 73 insertions(+), 13 deletions(-) diff --git a/libraries/plugins/src/plugins/PluginManager.cpp b/libraries/plugins/src/plugins/PluginManager.cpp index 32d8486e7a..ece8ccd528 100644 --- a/libraries/plugins/src/plugins/PluginManager.cpp +++ b/libraries/plugins/src/plugins/PluginManager.cpp @@ -71,6 +71,24 @@ QString getPluginIIDFromMetaData(QJsonObject object) { return object[IID_KEY].toString(); } +int getPluginInterfaceVersionFromMetaData(QJsonObject object) { + static const char* METADATA_KEY = "MetaData"; + static const char* NAME_KEY = "version"; + + if (!object.contains(METADATA_KEY) || !object[METADATA_KEY].isObject()) { + return 0; + } + + auto metaDataObject = object[METADATA_KEY].toObject(); + + if (!metaDataObject.contains(NAME_KEY) || !metaDataObject[NAME_KEY].isDouble()) { + return 0; + } + + return (int)(metaDataObject[NAME_KEY].toDouble()); +} + + QStringList preferredDisplayPlugins; QStringList disabledDisplays; QStringList disabledInputs; @@ -122,7 +140,11 @@ const LoaderList& getLoadedPlugins() { continue; } - if (loader->load()) { + if (getPluginInterfaceVersionFromMetaData(loader->metaData()) != HIFI_PLUGIN_INTERFACE_VERSION) { + qCDebug(plugins) << "Plugin" << qPrintable(plugin) << "interface version doesn't match, not loading:" + << getPluginInterfaceVersionFromMetaData(loader->metaData()) + << "doesn't match" << HIFI_PLUGIN_INTERFACE_VERSION; + } else if (loader->load()) { qCDebug(plugins) << "Plugin" << qPrintable(plugin) << "loaded successfully"; loadedPlugins.push_back(loader); } else { diff --git a/libraries/plugins/src/plugins/PluginManager.h b/libraries/plugins/src/plugins/PluginManager.h index c7489fd7e4..a3305d8ee7 100644 --- a/libraries/plugins/src/plugins/PluginManager.h +++ b/libraries/plugins/src/plugins/PluginManager.h @@ -61,3 +61,5 @@ private: DisplayPluginList _displayPlugins; InputPluginList _inputPlugins; }; + +static const int HIFI_PLUGIN_INTERFACE_VERSION = 1; diff --git a/plugins/hifiCodec/src/plugin.json b/plugins/hifiCodec/src/plugin.json index df26a67ea8..27391a484d 100644 --- a/plugins/hifiCodec/src/plugin.json +++ b/plugins/hifiCodec/src/plugin.json @@ -1 +1,4 @@ -{"name":"HiFi 4:1 Audio Codec"} +{ + "name":"HiFi 4:1 Audio Codec", + "version":1 +} diff --git a/plugins/hifiKinect/src/plugin.json b/plugins/hifiKinect/src/plugin.json index daa3a668dd..b401bb8c83 100644 --- a/plugins/hifiKinect/src/plugin.json +++ b/plugins/hifiKinect/src/plugin.json @@ -1 +1,4 @@ -{"name":"Kinect"} +{ + "name":"Kinect", + "version":1 +} diff --git a/plugins/hifiLeapMotion/src/plugin.json b/plugins/hifiLeapMotion/src/plugin.json index 2e867d96e4..92e410ef11 100644 --- a/plugins/hifiLeapMotion/src/plugin.json +++ b/plugins/hifiLeapMotion/src/plugin.json @@ -1 +1,4 @@ -{"name":"Leap Motion"} +{ + "name":"Leap Motion", + "version":1 +} diff --git a/plugins/hifiNeuron/src/plugin.json b/plugins/hifiNeuron/src/plugin.json index d153b5cebd..7059248934 100644 --- a/plugins/hifiNeuron/src/plugin.json +++ b/plugins/hifiNeuron/src/plugin.json @@ -1 +1,4 @@ -{"name":"Neuron"} +{ + "name":"Neuron", + "version":1 +} diff --git a/plugins/hifiSdl2/src/plugin.json b/plugins/hifiSdl2/src/plugin.json index a65846ecab..e1963f9995 100644 --- a/plugins/hifiSdl2/src/plugin.json +++ b/plugins/hifiSdl2/src/plugin.json @@ -1 +1,4 @@ -{"name":"SDL2"} +{ + "name":"SDL2", + "version":1 +} diff --git a/plugins/hifiSixense/src/plugin.json b/plugins/hifiSixense/src/plugin.json index 9e6e15a354..a56a1ba384 100644 --- a/plugins/hifiSixense/src/plugin.json +++ b/plugins/hifiSixense/src/plugin.json @@ -1 +1,4 @@ -{"name":"Sixense"} +{ + "name":"Sixense", + "version":1 +} diff --git a/plugins/hifiSpacemouse/src/plugin.json b/plugins/hifiSpacemouse/src/plugin.json index 294f436039..6eac13ac66 100644 --- a/plugins/hifiSpacemouse/src/plugin.json +++ b/plugins/hifiSpacemouse/src/plugin.json @@ -1 +1,4 @@ -{"name":"Spacemouse"} +{ + "name":"Spacemouse", + "version":1 +} diff --git a/plugins/oculus/src/oculus.json b/plugins/oculus/src/oculus.json index 86546c8dd5..0043a8b50f 100644 --- a/plugins/oculus/src/oculus.json +++ b/plugins/oculus/src/oculus.json @@ -1 +1,4 @@ -{"name":"Oculus Rift"} +{ + "name":"Oculus Rift", + "version":1 +} diff --git a/plugins/oculusLegacy/src/oculus.json b/plugins/oculusLegacy/src/oculus.json index 86546c8dd5..0043a8b50f 100644 --- a/plugins/oculusLegacy/src/oculus.json +++ b/plugins/oculusLegacy/src/oculus.json @@ -1 +1,4 @@ -{"name":"Oculus Rift"} +{ + "name":"Oculus Rift", + "version":1 +} diff --git a/plugins/openvr/src/plugin.json b/plugins/openvr/src/plugin.json index d68c8e68d3..763414cd8b 100644 --- a/plugins/openvr/src/plugin.json +++ b/plugins/openvr/src/plugin.json @@ -1 +1,4 @@ -{"name":"OpenVR (Vive)"} +{ + "name":"OpenVR (Vive)", + "version":1 +} diff --git a/plugins/pcmCodec/src/plugin.json b/plugins/pcmCodec/src/plugin.json index 2d86251845..525124592b 100644 --- a/plugins/pcmCodec/src/plugin.json +++ b/plugins/pcmCodec/src/plugin.json @@ -1 +1,4 @@ -{"name":"PCM Codec"} +{ + "name":"PCM Codec", + "version":1 +} diff --git a/plugins/steamClient/src/plugin.json b/plugins/steamClient/src/plugin.json index dfe37917d2..ce4647188f 100644 --- a/plugins/steamClient/src/plugin.json +++ b/plugins/steamClient/src/plugin.json @@ -1 +1,4 @@ -{"name":"Steam Client"} +{ + "name":"Steam Client", + "version":1 +} From 0603431ac84d9f604d2fe78f5a932266db5e303e Mon Sep 17 00:00:00 2001 From: Seth Alves <seth.alves@gmail.com> Date: Thu, 10 Jan 2019 15:16:33 -0800 Subject: [PATCH 208/230] initialize _logger with null pointer --- interface/src/Application.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/Application.h b/interface/src/Application.h index b1077a523a..4c6d45b8c3 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -594,7 +594,7 @@ private: bool _aboutToQuit { false }; - FileLogger* _logger; + FileLogger* _logger { nullptr }; bool _previousSessionCrashed; From fd8702d5a6b4bfb120c2821b53c283d8bc2b397c Mon Sep 17 00:00:00 2001 From: Seth Alves <seth.alves@gmail.com> Date: Thu, 10 Jan 2019 15:20:53 -0800 Subject: [PATCH 209/230] use const references when querying plugin metadata --- libraries/plugins/src/plugins/PluginManager.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/plugins/src/plugins/PluginManager.cpp b/libraries/plugins/src/plugins/PluginManager.cpp index ece8ccd528..854ae62ea1 100644 --- a/libraries/plugins/src/plugins/PluginManager.cpp +++ b/libraries/plugins/src/plugins/PluginManager.cpp @@ -44,7 +44,7 @@ PluginManagerPointer PluginManager::getInstance() { return DependencyManager::get<PluginManager>(); } -QString getPluginNameFromMetaData(QJsonObject object) { +QString getPluginNameFromMetaData(const QJsonObject& object) { static const char* METADATA_KEY = "MetaData"; static const char* NAME_KEY = "name"; @@ -61,7 +61,7 @@ QString getPluginNameFromMetaData(QJsonObject object) { return metaDataObject[NAME_KEY].toString(); } -QString getPluginIIDFromMetaData(QJsonObject object) { +QString getPluginIIDFromMetaData(const QJsonObject& object) { static const char* IID_KEY = "IID"; if (!object.contains(IID_KEY) || !object[IID_KEY].isString()) { @@ -71,7 +71,7 @@ QString getPluginIIDFromMetaData(QJsonObject object) { return object[IID_KEY].toString(); } -int getPluginInterfaceVersionFromMetaData(QJsonObject object) { +int getPluginInterfaceVersionFromMetaData(const QJsonObject& object) { static const char* METADATA_KEY = "MetaData"; static const char* NAME_KEY = "version"; From e941dbb4a9971ae830aa226f944d0a425cb5056a Mon Sep 17 00:00:00 2001 From: Seth Alves <seth.alves@gmail.com> Date: Thu, 10 Jan 2019 15:33:34 -0800 Subject: [PATCH 210/230] review --- .../plugins/src/plugins/PluginManager.cpp | 40 ++++++------------- libraries/plugins/src/plugins/PluginManager.h | 7 ++++ 2 files changed, 19 insertions(+), 28 deletions(-) diff --git a/libraries/plugins/src/plugins/PluginManager.cpp b/libraries/plugins/src/plugins/PluginManager.cpp index 854ae62ea1..9f481d04f1 100644 --- a/libraries/plugins/src/plugins/PluginManager.cpp +++ b/libraries/plugins/src/plugins/PluginManager.cpp @@ -47,45 +47,27 @@ PluginManagerPointer PluginManager::getInstance() { QString getPluginNameFromMetaData(const QJsonObject& object) { static const char* METADATA_KEY = "MetaData"; static const char* NAME_KEY = "name"; - if (!object.contains(METADATA_KEY) || !object[METADATA_KEY].isObject()) { return QString(); } - - auto metaDataObject = object[METADATA_KEY].toObject(); - - if (!metaDataObject.contains(NAME_KEY) || !metaDataObject[NAME_KEY].isString()) { - return QString(); - } - - return metaDataObject[NAME_KEY].toString(); + return object[METADATA_KEY][NAME_KEY].toString(""); } QString getPluginIIDFromMetaData(const QJsonObject& object) { static const char* IID_KEY = "IID"; - if (!object.contains(IID_KEY) || !object[IID_KEY].isString()) { return QString(); } - return object[IID_KEY].toString(); } int getPluginInterfaceVersionFromMetaData(const QJsonObject& object) { - static const char* METADATA_KEY = "MetaData"; - static const char* NAME_KEY = "version"; - + static const QString METADATA_KEY = "MetaData"; + static const QString NAME_KEY = "version"; if (!object.contains(METADATA_KEY) || !object[METADATA_KEY].isObject()) { return 0; } - - auto metaDataObject = object[METADATA_KEY].toObject(); - - if (!metaDataObject.contains(NAME_KEY) || !metaDataObject[NAME_KEY].isDouble()) { - return 0; - } - - return (int)(metaDataObject[NAME_KEY].toDouble()); + return object[METADATA_KEY][NAME_KEY].toInt(0); } @@ -135,16 +117,18 @@ const LoaderList& getLoadedPlugins() { QSharedPointer<QPluginLoader> loader(new QPluginLoader(pluginPath + plugin)); if (isDisabled(loader->metaData())) { - qWarning() << "Plugin" << qPrintable(plugin) << "is disabled"; + qCWarning(plugins) << "Plugin" << qPrintable(plugin) << "is disabled"; // Skip this one, it's disabled continue; } - if (getPluginInterfaceVersionFromMetaData(loader->metaData()) != HIFI_PLUGIN_INTERFACE_VERSION) { - qCDebug(plugins) << "Plugin" << qPrintable(plugin) << "interface version doesn't match, not loading:" - << getPluginInterfaceVersionFromMetaData(loader->metaData()) - << "doesn't match" << HIFI_PLUGIN_INTERFACE_VERSION; - } else if (loader->load()) { + qCWarning(plugins) << "Plugin" << qPrintable(plugin) << "interface version doesn't match, not loading:" + << getPluginInterfaceVersionFromMetaData(loader->metaData()) + << "doesn't match" << HIFI_PLUGIN_INTERFACE_VERSION; + continue; + } + + if (loader->load()) { qCDebug(plugins) << "Plugin" << qPrintable(plugin) << "loaded successfully"; loadedPlugins.push_back(loader); } else { diff --git a/libraries/plugins/src/plugins/PluginManager.h b/libraries/plugins/src/plugins/PluginManager.h index a3305d8ee7..2a002577a4 100644 --- a/libraries/plugins/src/plugins/PluginManager.h +++ b/libraries/plugins/src/plugins/PluginManager.h @@ -62,4 +62,11 @@ private: InputPluginList _inputPlugins; }; +// TODO: we should define this value in CMake, and then use CMake +// templating to generate the individual plugin.json files, so that we +// don't have to update every plugin.json file whenever we update this +// value. The value should match "version" in +// plugins/*/src/plugin.json +// plugins/oculus/src/oculus.json +// etc static const int HIFI_PLUGIN_INTERFACE_VERSION = 1; From d31cdd3779c6f8071667f616ccd02cfca0841a5e Mon Sep 17 00:00:00 2001 From: Seth Alves <seth.alves@gmail.com> Date: Thu, 10 Jan 2019 15:35:40 -0800 Subject: [PATCH 211/230] review --- libraries/plugins/src/plugins/PluginManager.cpp | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/libraries/plugins/src/plugins/PluginManager.cpp b/libraries/plugins/src/plugins/PluginManager.cpp index 9f481d04f1..a75ede3f03 100644 --- a/libraries/plugins/src/plugins/PluginManager.cpp +++ b/libraries/plugins/src/plugins/PluginManager.cpp @@ -47,26 +47,17 @@ PluginManagerPointer PluginManager::getInstance() { QString getPluginNameFromMetaData(const QJsonObject& object) { static const char* METADATA_KEY = "MetaData"; static const char* NAME_KEY = "name"; - if (!object.contains(METADATA_KEY) || !object[METADATA_KEY].isObject()) { - return QString(); - } return object[METADATA_KEY][NAME_KEY].toString(""); } QString getPluginIIDFromMetaData(const QJsonObject& object) { static const char* IID_KEY = "IID"; - if (!object.contains(IID_KEY) || !object[IID_KEY].isString()) { - return QString(); - } - return object[IID_KEY].toString(); + return object[IID_KEY].toString(""); } int getPluginInterfaceVersionFromMetaData(const QJsonObject& object) { static const QString METADATA_KEY = "MetaData"; static const QString NAME_KEY = "version"; - if (!object.contains(METADATA_KEY) || !object[METADATA_KEY].isObject()) { - return 0; - } return object[METADATA_KEY][NAME_KEY].toInt(0); } From bc196899100fbb32aed5891e66071aff01f53643 Mon Sep 17 00:00:00 2001 From: Andrew Meadows <andrew@highfidelity.io> Date: Thu, 10 Jan 2019 17:32:52 -0800 Subject: [PATCH 212/230] remove unnecessary culling of properties --- libraries/entities/src/EntityItem.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index 5b7a152318..498f0ff066 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -179,11 +179,6 @@ OctreeElement::AppendState EntityItem::appendEntityData(OctreePacketData* packet EntityPropertyFlags propertyFlags(PROP_LAST_ITEM); EntityPropertyFlags requestedProperties = getEntityProperties(params); - // the values of these two properties are known to the receiver by context - // therefore they don't need to be packed - requestedProperties -= PROP_ENTITY_HOST_TYPE; - requestedProperties -= PROP_OWNING_AVATAR_ID; - // If we are being called for a subsequent pass at appendEntityData() that failed to completely encode this item, // then our entityTreeElementExtraEncodeData should include data about which properties we need to append. if (entityTreeElementExtraEncodeData && entityTreeElementExtraEncodeData->entities.contains(getEntityItemID())) { From 62ed84aa19d0110f9aee49823cec85ef74f33fdc Mon Sep 17 00:00:00 2001 From: Howard Stearns <howard@highfidelity.io> Date: Fri, 11 Jan 2019 12:34:44 -0800 Subject: [PATCH 213/230] more log purge --- libraries/script-engine/src/ScriptCache.cpp | 2 +- libraries/script-engine/src/ScriptEngine.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/script-engine/src/ScriptCache.cpp b/libraries/script-engine/src/ScriptCache.cpp index 9922b125f4..b23aa48762 100644 --- a/libraries/script-engine/src/ScriptCache.cpp +++ b/libraries/script-engine/src/ScriptCache.cpp @@ -87,7 +87,7 @@ void ScriptCache::getScriptContents(const QString& scriptOrURL, contentAvailable if (_scriptCache.contains(url) && !forceDownload) { auto scriptContent = _scriptCache[url]; lock.unlock(); - qCDebug(scriptengine) << "Found script in cache:" << url.toString(); + qCDebug(scriptengine) << "Found script in cache:" << url.fileName(); contentAvailable(url.toString(), scriptContent, true, true, STATUS_CACHED); } else { auto& scriptRequest = _activeScriptRequests[url]; diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 8dad5932be..8f6fe681ec 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -1595,7 +1595,7 @@ QScriptValue ScriptEngine::newModule(const QString& modulePath, const QScriptVal auto closure = newObject(); auto exports = newObject(); auto module = newObject(); - qCDebug(scriptengine_module) << "newModule" << modulePath << parent.property("filename").toString(); + qCDebug(scriptengine_module) << "newModule" << parent.property("filename").toString(); closure.setProperty("module", module, READONLY_PROP_FLAGS); From 8b111587adc93403909c47f10baddd94faa97d35 Mon Sep 17 00:00:00 2001 From: ingerjm0 <jenna@highfidelity.io> Date: Fri, 11 Jan 2019 14:38:20 -0800 Subject: [PATCH 214/230] JSDoc > Grav directory change --- tools/jsdoc/gravPrep.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index 849837bae0..00dd4850ea 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -25,7 +25,7 @@ let dir_css = path.join(dir_grav, 'css'); let dir_js = path.join(dir_grav, 'js'); let dir_template = path.join(dir_grav, 'templates'); -let dir_md = path.join(dir_grav, '06.api-reference'); +let dir_md = path.join(dir_grav, '08.api-reference'); let dir_md_objects = path.join(dir_md, '02.Objects'); let dir_md_namespaces = path.join(dir_md, '01.Namespaces'); let dir_md_globals = path.join(dir_md, '03.Globals'); @@ -662,7 +662,7 @@ if (copyLocal){ copyFolderRecursiveSync(dir_template, targetTemplateDirectory); // Copy files to the Md Directory - let baseMdRefDir = path.join(targetMDDirectory,"06.api-reference"); + let baseMdRefDir = path.join(targetMDDirectory,"08.api-reference"); // Remove existing MD directory if (fs.existsSync(baseMdRefDir)){ rimraf.sync(baseMdRefDir); From d271bcd6f4d9d25ec19bf46892e1d6557592bfb7 Mon Sep 17 00:00:00 2001 From: Simon Walton <simon@highfidelity.io> Date: Fri, 11 Jan 2019 14:50:13 -0800 Subject: [PATCH 215/230] New icons for interface and server-console --- interface/icon/interface-beta.icns | Bin 371570 -> 379867 bytes interface/icon/interface-beta.ico | Bin 38190 -> 41172 bytes interface/icon/interface.icns | Bin 448158 -> 366740 bytes interface/icon/interface.ico | Bin 52562 -> 40280 bytes server-console/resources/console-beta.icns | Bin 399366 -> 304462 bytes server-console/resources/console-beta.ico | Bin 40504 -> 38031 bytes server-console/resources/console-beta.png | Bin 112177 -> 62915 bytes server-console/resources/console.icns | Bin 391339 -> 292820 bytes server-console/resources/console.ico | Bin 43847 -> 37138 bytes server-console/resources/console.png | Bin 79626 -> 61324 bytes 10 files changed, 0 insertions(+), 0 deletions(-) diff --git a/interface/icon/interface-beta.icns b/interface/icon/interface-beta.icns index 1e2a4baeaaadbec5daf8e0c2e1410291e6fbd96a..5c1eddd8d241c1ce507de552763fa08b78a9f611 100644 GIT binary patch literal 379867 zcmZ^qRZtv&(xnF&U~mR^_XG>>?u6jMU4u(-8{C~haCdiicMb0D?zVMr{rmFQ?nC$M zseb6HuJ4?-G`4jDz>ck28nb=_05JN)6cwaU5D5?g004@Nw74<=01*C9f#3iDK&hp} z1^@tna#EHO1yoKF9RmOuE;8aGs%}u{+6ak>3rU^#i~nAs>%TLDWVt42=z6FaezAdu zfe1iygHSpmgWz<`U5jaX1;=lDR0()tc|+W?&>~nV>Czg`RM!5Xh8R20qqE;#=Y+Yw zi*a?Ry4v`vz2ACQom}P|m!41uO{Q;WI-PEAe13Rdwq4p@CJp~?W`cY!VpMx6tXVxV z&AfF&ZWVzJPiNg!TUtId(US>&^xY=eFcvUckb_5hKQb1;9gKi5*EG^RWD!{&8si=6 zTL$VlbRm@c1egngoHp#4-zTnzSqwJmL|H<1mZ)@)CZf^;D8zCCme7WkXk)=n&hC?O zP5TE2ytTEp#R#)&YedCWRfoeWFiU@Wzcut@5jEr>xFH<D&;T*00nt||-9%(lJgp|d zlt&tk)|wmrVVEINc&xe2zMmgr$|@>O73x-Sv2!B+J=vs7D;pbnn@dX?-aGwaDz6Xc zUwrqIex6*V_#0+nfsReHuzClEc~HGW#6e_)S<C=Op9BXCB9FZ|Da7QjnvSkAG9&$w zk&zf}>k1V|tVgXrEe#C~XHVC=uZxwso(Ai!zd79gt_bJE*{+0Xku~H_T{VIHO63Q6 zZVrZlnLaPaMl6En)7c^_-Oit7^lVyM)JscL!DEcUS+%`msBIdv%Hm^_I2HN_3ss=N z8MlkI7TxJku1xoXzmDwLoGGc2-?PcMe|w;KV*?H!(aBJV4;$=W?v7zHy&snCP>Ff( zMA9byKs*tVf2KVN3DAFZk$^wL5D|2XlMSrW@C38)pgIwuG&pLwiH*Mhz+`-ct4T)2 zK76V%>M{ie&dwwOp&|c9M@P9by>3PpH#|-&;M!%=#455O<#4kKcZe?(fY!PkVMK`X zqs>ZviSuA2eoRq*{#B=c_p#HCyH$+a<|{M8{CxN}lubIBfx0!GLv(ADtO<k+dKymN zhKL#qU%E);>=|aj{qQ`V-@A4x#MPP6wyDkW_2GPKB1_0uh&LO33H-MTIP3j@=kW#b zO&_=?bw55XZ}a)_9x)h+U#B|9UYZX)VG8%`Bkk|7>Ix(vaF_c^PjB>P9CJ0)$N_7e zs*w;${4|U450$g=O#hV!)%?;|h|?jpq7vgr!afE!Qci<YDq*gvsq9UMtL#aiQ@_g` z*@8J8)@%%kKx=D#y|ay+9FkhtW|3<#;6Ve_0S5eKf}34B&XbICJX@;S&0<~b3b&fJ z3^jkXb*NaTgRI;(8$znaz=!Ml@p~hWrQrJfg3`kE_gIJbdCThy?;q{2pHz@r+$X3R zxVz*#J3+b<{VXV#q;}Xw!_|7rIUkR+CDu7@#a~5!0**-n*Z{T2ai_^I2d<YJ9p9Ll z?HDQzr&sdtTlD2#eJ>!0M=4F3@!!0|^T+=(HTpxWXU#!6*634&c5<(c#D-C`<?%Wm zMJAOROj-&{gZ~y5&eQqbZ_ujHp>3dp(EtAM{_q-#2yk%WyJ}2NPhXwP6lhxr6~5Y` z&NEy_%yU`8+I@Q}k=zyHH+_o9U?-(LI}%beW%oG@c^YK*vZ{5s&auP)7(I#pkioR1 zi~?)PIEniC`0!sLb<ape6FnzAFKi9K?auaI2LA0bZk@RqTaX++Wh15iC_W87-CvBn zb)8TYEzas#n*O5T>J?HSHwdc8|64x<Tk67}-PM6VjBu#g<>P(q{kZ-p5HVm>u)^hg zX}<G%RICx7KyCb-7vFhD2p-#L852H-MbNcX9xT62(9^R_<sOUyYj^qVyk21<=(baR zP}26hPbG`XeFs}~FXiUu)-q~0PNRP_$n9uFMt;>!zr#Vif>!(d_j=jYg>_LR8^(vn zp88V|7yr2m&xY`0niVla;VygT<;Ek=_C_bqcE>vJS*k2Dc6Gf(MxS|2+f|a?Fns1| z2`$@QZvoqqsv@69l+QgB;hNn~J?l0U5^T5HXft+udrMnOJC){{*l_6nB34IjGa|-+ z4*h`^EqmM5>9?g}-p%~6Yibl^ZXfyec($>L3lCQV8U0~~7K2-bl0c_)w^4hG=xlj+ zFe)Kg&*PZvB_B=&36DvNBh-Wmhovm<<TcA}CoJBuFL=VNPjQ{v;oS_zA6GZMX_LWn z4Cl&46_i;OG6f=&hot9p8r4W&A?uoWv0S0n@JZ`(OU0v;hJxc8QMAQ{Gz;{|EAsJi z3$3V_mB{}9=y+(DV`~EcFzXA#Z!_v<*W0X>zqS8k*8WDKje%<RM25IzOE1!$P(UGo z5QP5DGw>`yaJ;m&{32zkbJxr+_`<ETIk|*#-EUMUGuVV1#&`*bz`-TA+WI~FANs6p z>P(<h7Jn@6%{;6Tf*%yO*m}1=EE3}1rK<_y-%-u37l$SJlPTdT?`FSAPKSJM4Msj@ z5?HiY20=Qtov$&V$WFYnmM1jQxC8xms*hUP>*SxZr)*uKs1EFAo`Tib2XZHCe;IP` zI(+dYuT>T@*%MrJ6qAO>KB=%vC7x*i05nF(kK~e>I)>y;@mE6#n8bEk;&~4t_7S!| z8LpAIr`cXLX8AI+KWPSR&V@XX4QqtbX~}+W@nDu*knNY@MUn?l&2KPeR<x-)&C0Jh zK*8j9@6kKr3yNa`)PhXE!enquMiZ4FXU+U$+JFgh(~g(D#IP|?Xb!pX0aK_j;xl|P z#w+R|cK2ryG4do!pnje1ao7L})tVHR*{8V&U0#JSkZxnnDv;QRqhkNiEfisgn*KHW zbc}?{G%m(!%st79ValLc)4fSU-q?lH-A?Ykz1SxTxV4Np2)kwS*uEe??rZ~_n@C?N z=N(CRAmnH8ZzXC8XAW!AhSC7cyxK{{r`eD(R7-b--f9A48<y>e0$XC@T5$kB;u@VH z-+r-MA9MfQ$b;XkMP)+&h29bJcqMg$GAn2~OXUI6Dtsfp!7IWJm7@Gjv5&A&OU(No zvnY{ZRSGp=zv%lhbvLXQ(fpt-nOo4Sv3GWeaLg7Sis{1EuP+LDyyyyWA!wv}kxbmM zAR4>vFK?2Veli7v&@|cv6-)?v&7q@F->tpzy<a|YaG{HJ8JtYA7NO6mB~k=A5!l&f zwxCZ7i)Rn^kb8Re=Jujuuu{+}+Y58D`_GE6_HLl8+(dA{$@2kOiv5~A;1zB9&f^NR z-qP5=e$ZNOHp9ZA2OovOdJz69nz@j?0AC38!W;^@Q`lv=T{wf?hp)H;TRYZ~eMD{O z40@?86%7wwI^cjJ1Ydv8=6h0UY?4g~`6>~hAJxBmz=RXydamo1<9_{XX$W=1Ti^Jd zgA#2I78f~uSerJJPj@Sa+CM%cBdXTB*_K&QD3@mm3}pMWCphlAgw9B<S?k*_`qFiS zB$LJ`CRz+`Y;T71caztd`josYWqV==g{peYOECMg_oJr51Q4-P?U{weDm5>N=uznY zzQS#ZCLu{hYa?oF-zbncBaDPGm`~|9@%dzx@iwV++w_rI1G#E1+QvUH@~IZkx({MW zLy;Q2b^<I_yP+;gxM?eaK5E`AB_#+E93nKB!{w|u@@5(xL7Y_3*0Aow6kX)>b%kN( zi%<@B>p7!(7aj141hw`nR?`6({)F}2m=@q45+uWN`BkVN<DFHR&{%0Ve>KYHltRpH zPzHic#u-Bby;8K3wZ~mC9p~Zh66Qn9M*SMP63>!;kl(c7Q#-bHmC2lbIEi3cBBQO5 z!hhA>x5caTi)a_;rLxOV-94$gBJWa=m{rm#9#SfQuN9XQbB;_(H?SeLqbAZ|Rq!#W zz4J6I(73fj-yL<!4$(&<f9Gu1Gc8I9!l2++1nh;i4`2f_%ZO5k&~X{ujYM=eQuzSl zuoBEwI~7)NIA23qijN~ut`a!i0A^Y0<t$(d{uFuFzg<7A0Go!o83sKJHZ8n;Z-<W9 z69M5M&Fy3Q>1;47KnLXn=jGR1EdTM4LN=#S=zSsKfWM_&_s$7Dku;!ZkI^e=(*k;{ z6p`9&z0Ujx4-QS*^2&2ijYgMK_~)JG3`78Sv!@S(|7RIA{h!%NY~aZWwS6tdOsN`C zu_{>lb)&;`%)Zo!kf^O3PXZHA&`;jj^>R}7TO(H;p~ZV#x@P~7BJsE3z=1da1qpQ0 z!fgGGCIY)iaP{Ow*@vzd{KwjRgtx`EC$3d&v6}tJg!`+;0*oasT66YEToH*S00p*> z4vFe01o6DDMXOQa<;IPJtHWMR=imbM?#Gy+v{tWE>NZPc@nse1kZ;tznA6HM&K<zw ziQm@?-h&Y9up)1Ovstl2Vr2w|i5qqp)BO}U!|sQYxUy@Z-{El&<(vzBYLeJfKaM=3 z6!hDexSDSo(Q!K-?{Cj58If6_VGKI%={i8x5ZO2kqOwqv`n&aV{h4Xh0{fRYh3SFn zeI&cFP>*Lb3rft0N|CEEf?wa5#_Yq(Y1N{=6ZB?n3|%k7IkD{QdDkkAX8m5m(H4<w zgb6<{so-DMRuyIQ4Q3f%A$kwvwf%UHITaz1gV66-$!YsH;Yk`=F_$i4-x+5gUd$BS zmP%L^Kka9d*zK08w~1N{2;!2983^S7s@T!IYEoiR?~i7RiQ(ZWxYRJear^Ig?8uSf zezF37Wd$$fLY?ZxLUnoTee=C?Thr;SyY#+`m=2f&V3RW?pVB!G1~ew?2Pg>!5Yt%3 zKOFH#V$2!>h49`tcLi>wNQUKb?}s{y_52<Y)*vE%+ZqkO)HL1QdHRuCs|B+f0odj& zhwGk-D_l1F=gkIU2F79og?w8#f1q1M=ZK9?<-cCFw`i|yu9Xz3pNw1X_zi-kzckKH zzp#DMqU}*L2+y-Z3@NkBt0mOb)Rxbd>n<h!(yvBGq4tcj4R4hWe2ySEVBv&Tzz@hh zV4|G`+)(-1u&a6^Sxe3W=Rr!ik?Jxx#4m~!yfqr9czjy5ou4)h6N9_g>3Z#M*Q4R# zh~E@m@FyHii+^-Kvk?rB?$Ip;*pas=j&<qaA7K1O`BQrOaUs%I_bRNP{LI@CvJ$ZE z{TRFLeK{pLynB2%-hM^$(p{Xzt6%Z`pU_qHw$N`a0ScS^xOzzonsWgsY70E1>Qb<` zyG~Ux=Sf$i2BTV5m+POI#v0>QKN+jun2Yna$W|FAtlQt{{+G<8u3o!ZUt?70>a(4x zErrJpCenn`x$HKC&(H`e$z>e7Z%(9Q<j@D@)S{;r!eAOyZ9V0v@Twmw=+c}2*<zJ; zpb!?<e(tx0zVwQqHI2%rux#^C38{MSP;UiYSQzwW0s=sYWcZ|@i<O4cA9ZFEt*in9 z9ie}XZUUM6j230HU(#j&w8MkXS$*;RQ`%{-eTfi}Rb4ymE)x#21erGid?Acz;l|^1 zBQMu;+_{LzTR4A9REjFgD=Q1vcMMpgs^A74l-v+m5(2N(-t=inaA6W4x|}i&oBFRW z6SEJb+SK#Fv;ey3-!FTX3Dxn=@ZlxT*PdM`^sZ^o8v<0B#FqvOP0;r~#9B$E|EP|& z8Y1mGKQ(RQzm4SS;X=_z7O(C(YdGM_>U4^cX7eHq^c2zz9-=1p66MAHAS<iKMiq~v zR(rPQ0OBnurb+o9o{BS<A=;Jmhq1h1tZ|({m)|*-7BHu;#vOT)tnO7}^(yLA^U5Yg zv?|Sp?9+4oX>~_tgRTm+B-bdN)6jse4V3{II>ROrX?UwSD;cu+lQZ@34MoRe1#Yde z&^Owz1zSF~*d(d~cSFX}pp?=6@}_B<k}@$dWk!8ZU~uX7-k)nxKOC6VLQm2+v(}+h z<P-Z#ie6o8DKgpJA*p_b-MGQ75!8TsMqMq%DOrn8**>hke4llwt~o234aEqky%W{$ z?WU|Y8VEOBBKb6^pO{@^A}sI9=adi9(&)+y=oy;^(rDf>l=JI$<Y0tNe6~)^hF=Y% z?E(?~2jkR}kBe5Ax-4dLJ*)HTu{LsltnTYF{lw=Kx{y-vHJC`{;5bTl^4n&Fom}h0 zSvsUcyDW`%d((y_{7sF8+2euj*$dE`*+;|Fs3bVD=bo)uSEyJZkH3b|Nm<4HVE!<K z=63;fzyt|bWM`1s=gw&;lkp$U*I?t|@Lo-Uu?u&yC?Kh+1iw&Ms~M$Ir<ORapL?P3 zrP83H(NfTlz7tKSp(!I-kk$DiXS>;a^H(V#pT}TRBqyf1;eqt#!m)ykSp#}dsxT23 zWdT1iWDZJDBFQaiiysb-Qa6jp<Qa2l?0xF|WWM~hFPt%lPXRiwJw+-Mqln+WVgaPm z-H0pYwpxLLd<bt`3q>A33SDPA0RR9%MnXZnQq;iT(wKz{0AOzae=saR007|kUxw8u zXgK!27#6eb|1d0FgcQ|*hRO}|EJGC+IG||)v65m~F%%SL*v-6juE=e_`2Mp_m^Qme zl!H4%rGqz^!y$@JmWm8SS9}&hHU_8-Wf>Qodwu;p>12ES*Reh)u+BEVH}SWs@KU*{ z(dlHqM5RapVFs~+ae4*%|Jy!ew7MTYvnx^OXTrMmy{mWi%6#z_$pf=7pl3Ya-aP&P z0X|V1jCFND_@KWtTZ7Cn2*P6Ay91?M2qH*SAPhfdg3{|T#egj-gLWLW8iL#c)kqL+ z?JasOIMhpUZc$Dw@gZUn0rDsKVJs#EF75|Ku{fO=nbMVJ1kih5OBObCizv|ls0zMI zOCU7c1RV7v9{QkQYAWItF);qfE`kECf`ZPo4xXZeQB=@B_^wdc%^M{T3>*_RqLZML zBvWGdw739vJEVaw{e+>j(HGJ4tu~9hq$_dQ#Y?*yz!=Tbodqm1&`(ehpon{}rl=D& zfT9zn*8xPdsyQi67<Y{q3Zz)OaBNwFfkPfXnk)LDK9wm@cYAa5jqTgFbX34b1X*@r zA&sKCx_XDzV&$k^*L&lyxx()pK3!SRWOGIzkz<amRM3$_Z}eY?M7hIbEr`(@EVFqq z07DN7ptI}17lNoLc@q_*rpNPDF7weu`V7fPyqViTOa(gY%}#Ga1qB7#rq%UH+a_}e z-ZyK`G{PP*Y6vyd7H_B(9BHf`CSp*jm*8excz8HW2pTEVN{zA9%ujvqhSPP|O@XTk zuFY!mI{B6P+D^`SQ1B+PaCZ5$b#`Yjm#IiyEIxQDbINfc#El}o$Egp6%Q=nRayA?D z2fu^cYNO4oxtW;@u-56C$p(;1_vq09FM^)dWV8BkA42NW{4pa%x*mbdeUX5Nw*wgj z4<kr})UGMG7TOMk0cSxb_r&0(&};Om4TVPQEFLGb?Rv{O$;XogtFIa!LPc{jnmHq6 z=%7TS;iX!q!%6C@&X<$$ArjAW(BHbVdA@$DpBT^xk7UpxaE?{RaMy?{SV22a8`zLr zH;UvQ#HH%a-rnAHcoMg*M7Ak@C*=@SVo9iDBBp2_KRj8Vr|pm=xn!pItHxDZZ8cR@ zahD&W(@R}il8t;Y_n=L3MFnme`*M)qbEDLef494LxgIlE=+}HPCz{~X7LQm6>bs_` z?ZrrF773`D5}FQaWp)m0e}A9wU%BS(BxBQBt^NLJlF8#W2m%!C=n)L;1J&>X^f*xS zi~fxyMOkNdWCDdl)hwCwAI=W5e0_Saw)=cDGcvr5s62K)#X@32w;-hA_MeXw)t7#t zcfZ%X0ty{X`d+;*5IiN&ppGwaVi%)v{Oh(w0`1xPDuPteZcv^!?KXdBK((u|QbrAL z-EVh>FJGD<=z3{_-Y-KbYSkesu7<D#sM3HvIHl71@YD};t%Ktq%e)e$zmULm*#jr{ zwNM9>8GIf){b4_`v9OTE)&j|#ui&>gTXo$Qt+77rTmaYb;??y;;j08>e5u5qt;n+R z@yOTASUFN@Fd)~qKuWHkOME1>I^G_LkFk*6g{m0)2f#bck|Q-Wb=l!m*5{jPvTh?q zDkYyEc5JVrhEkxgnp1+X|AMrfCU?bYm@q}PsG#;n1j*d{hUaC*OpDWDSW4!=udm`! z!du<s+xiWXs=ke~z(#9Kh>^Xnkj1bqE=Jgs4T~q56aocSBG9By(Qs@EyK*C_*J(w1 z8=p<I+2ejX9OD*uZmj#`{q=D3_oD7p`_oQ@Cwkmkcj>tdQ2c`lI0}wJRS&X=l&3Gp zrsyZQESNRx@rT76iYE5V7~0)-X5kDJ?R~t5Q+l7F*w$^(0-_OvEldoZjK0Q%*i+PV z(v8$n|7sCSHxt>|280u$B6x~)+M}H?*G>|``{R*YFY6?SqohcZXw;gFVD1jZWW{KV z2eOf2O9K;;!qEwI&C!brhXn<?-Mz`7zaSx}baUCRHFH+A-;Cbtwz*{ZH(3L$uAU_( zW|_tJS8s#tc5%RPR!uxTR1}B;yIkT}%Yr@#RH$i$HyXiGOFb(#BszRojM`+OBp3H# z=(D&SdhW!7Y%*V62)Shvt4(BEea8dV;QE5vTz|yzJnO{qe0((wAp*mTdOluwUxt6F zbhDnxl}L>(mP{__?V|t=TC!VMLzCTjQlOWp4_CE(e!RZwJ56x7?j0VYg=@;)X<eFs zkr*hu1YHJC2x~|$>4;}4d)>*0ag&WBsGlD}lUM$9-9Fk-<8E^WNAIpcg2aYlZuTGd zaDb7o+kn_hlu!fB7AzbX&&RN>3-4b2da0+!3tU6Qn8<*7YLTN`vk8_wPym@uM{8Jl z$zepf%%N!Uo`pF|K|#T3me0$v&}1qH5_WuFE<s!p<^6@I1v`bJmLj8=?BnxOE3UuV zlzD>trqAoS)0EKX+iFhcf*G(7`CZ#J{08>`@v>Ge{yr6*^gM_&S&qBS1tXIjCeX9r zV4KK3*IwA8DW|CjC~SRnr36am3w%8N-P`05aCP~Cx;8|J?>J0+*Ihyl8s*5Y8t%Bk z*yef1de`pbn4b(eoJiw(?L}gK12UKILGOh0?J5K+2iA)jg8{Ie8=#}Y!pt9guR`y4 zb8?g1yOD%BwWb5#yWuL+Un`5<c6GrF^ikDz-c^*Vk}<9>7GL=Df+Hdwio|3unXOyK zTd&D<bSdA`8pBh488JD&bYehYHjxN}5qff@;WgA^`;$2g(}&-u#sc5Dtq4NGm)pFa zZ$fg`JYcdCwA9kCNK~mCDf4w%RN2Hx=wY7qNP!f8hX27_!dNX<b~s*b^(^kJIJQ69 zt<sN@xGOwx(=Q!+;)7$zyB9j@hWRh8;~X|Ldzb%e?G=VhZyPCfT(K#=_lRzP;$$RN zl+Xf^brTtNg4V@1e*Z+AT2e8_{#I|h-pV5ujO-4fCo6W_7FZ<el#o8fQknoA7XkM| z#5))Gg(9(Ax)=3*z3;mrFjXQ%W9?;!%oqhf+5wH)MBw@Q9ebaPM<ny)U5S4|2@?PI zNRhO?4CP*HXMFpT7IF`=<iz(kH!wdk+9<`dM{tKT{3&3k&c=Lb91Ha^w#^QdgSc$h zp4b!hri`d(!$C`$#k6E#dktwM4T>BHJzE6{h<zh8bmKQd&Ef0MD!q3r#pmBCn~NPY zm40hChkDr92CvGFhlvU>vWF=~redR$&jS*y%OyDP8t=j6!s;L1nZ+JXnIIxYRtjE* zGLuXW$-T`NZ9_Y$=Os}3s6U?|tMyWK*H+Ymy)Z>~976GUzwR}idv&+?O_+EW*^UfA zyb)3FYobm#>nCSBOO5wKcD#^4nEQJdSw`LlkqSb39nAAZ!fV8u6*KOIVGS)}99rs- zFMYG%ZTMB?lky}%zAc3o`zYrH<XyZ+fJ-EAX`r+_XG-w(3~CrywOf$n)jvoM6^pJ6 zr^_Wr&sceaO_35CVa{RK`FzlVNh9BkDUhXV<A<)=K<)aeIsa9M!0?&iro_7EjrVXC zN&G{XYuGY<yU)yP*J4xBB-1Il+T0Xjv(RoD8m}?W5&0fR1QabuSG^Vh50dgs<ss<) z*WvjXhezX@v);HJrPLaUoRR3vL*&O%2zN{dpy<GbUNHD|`8bg&&?YqB=Iei-B*TXR zcN4R5?RUlWsl1e(J#%nx7=3Ti@2|NSahCNXY<yXz%zVxl1;1OMxy#;|_Xr*gWKBwh zW|ZySBvbt-SX{lH(pV}kjLnVHE7@y(E=L#9IYi5lDUF5I7y+K=9Lnn#`ObaKd}`#< zU$D?j3MBmEm(w3mJ$<Z%E8sYQ-IC`jq#E*O0hFDXFU20u3_4y{ysyJ?y*%=2zltOw zhhB9>Vo3fK1|WjWX@4%B2ATIOTA-D1mcTftd>xj1XO+;Y_k6UiMu%~wo|OS4HYleO z6v_h5?t?%?$#>|%j<mpz#|oA;yfR<%D%Q$m0Ty@_x@zwSFBCtosp$lX9`CLM0*-SB zxzC2f{qS+p3>yDUVgUJBDIuybu!oYmw`-elTW}Z4aH>#EhuGlzUbE9A53TQHI*(j7 zvjJh*`FKt;BE<;;0k8xefHX%82_lm?=|M_s8A+LagF{;ojkq!YU|`rt4Pos<eKySc zVG>C|u`=F?!k}$c5GDxo{u^(F>+>Wk*W=o8Tf0praO_JqY~V`r$&MMcPROvIIt%a> zNcyL|fEV91p|7V$i~?|Obg(ohZyFr_mLEqcbun<mtv2{8C{#$$>MB=>0oaW#7+%A0 z1A}+lrssLy@YrKAW|E@$K4YZBc}Q(BMaC;$6kzh2X-F%#x4N2IBsEM)Gd-QR_lOn| zj;q&aUyE24V3l3)Dj!|NgiJkxp)wvhd*u(EeOSLu5!wLD(Do|?h9B*0<qK|Zb7`?( zg?5uIOm+GjJ+l1L>b*bbYNk#zBBW1zc3KhIfZT(u8i^3(S5A5`*VN7H+N?z&w4{H0 zNg7|~mZ~bBRC3ynDZcvZ3qO|Tazg8H*(WvDKa=)J=cQjEVa%Hcr3P&{qtM;t*l?B3 zTidzN((Io9N<H@1;e-X;y&{@@)W%EE9XZrxNr<JJk$)W~sPCLll+to2aNUm?!HRW+ z;5XwIQ!o*X5ctbTo&{{cwXZ6!_T;ATaa=GbQiC}!-t4UXa8*YEK+$KsDH$6=)a_aS zL@6U2jT;f!Z;LZEY&j|X$+Vq1)&cR}j2Qj-0f)gcZQ=NrUDR6JrID`r77pF#hXq0& z8_yq7PPqLaouS(XS@ercx~=jCt2?l2y&hz!p%Hr;=IlYi=zuOBR1xCUz7EgF$-n&W zH@-U=mYw>~E1pLsrzi7misz1zldqR$Gw2<;12Q|b=+I-IrGHY&JL_9AVi7pQ?Ij8p zPK{q8*O)$C*$R{p&cRgnbbgxJ&*``|)28vKI@a2atUIMx-*wPwWp>$)(P9w}zhJ$| zcYH3JXA#>qR8C!2?))xxQxZXue&$JjQ?1;woQi)&F<w+J2A-&|Tns>`=>p424S}P? zYZGW|FbWvYY)mmM#dOIOho#SFNJ@2EDk_lW#%gjh*M=SF{xAn7OWB?`GKJH>l)DJ@ zQSDmi@8r^NHVS;_^<(n-IYobjgnkAZD2hyE0wZ5Z@H7tOyXLV3X5g*qQcWyzg#K*K zSbstKrp#G1ULpo+{XpM~c1ETDiyN7&B{nLGkt?P-Fy@O%zQV=8;&FF0w)D@f+@)Ki zSxK2?gGLUJUaS@MF1T_owmmnL!Y@9DtuJegYUw|aZ1T>tOo2O=cm36D-dX-JMMANM z;`~;gnG&rT@etCwfI7CJ>c{)OLwE@eVa}pQ)pzLN{<h1h^uFEu)Sqk-EbMk+=Nm+Q zzRQ|cMTq#8g01@T4x_@Lsj1mP>b@7}bmh;Nf0sQ1Eotg67(DR17AVZBo52%^RAUV9 zv=A|W$J12xcB&nB{Z)3^<Xsb2-jCH(pTlGJQB#Em(e*O{7{#u-H9xz2%pK=Fpn9*S z{FqeL$rx_;0b>mo!W9``3<yE(JM#+QetDG=r^l)O<!P&2LO@xU-jb}3JgCf7uOe9b zHZ(*5*pEY8B69+-5>1^7hKf_z#;3}b46EMGZmLwDhG+Zi_BA`hEzPpGvmv8w416(| zxy?+^9N`fPB*q<YM6}JKw>Fuehvo_O+#>@o!MqBP(aw_4K@-e+8`;JEkZH5Kgge}M zb<Ch^xvVKhp(y>a4(rd3He`RW`h;?aOe`EoGnnk0sgRQVYG{kI<jRsuB`T<+*C+<r z!#7<cfI=~RjV9)^4U}1TF;S(}kZ{}=7()FW8rrV*LE8r<?NI10l({^`ds;5@#*vTm zp#A(1QhWUiTd;a>B=rSztiisoNoI|^?Kk+Gqyzr;eY=)R*~10f1@}BN9ffI*IV^Ep z>C5ITcdst{vIJ=m5sGx_#}G7&aT4JvC5_7j`L{z{6;?Lr9En$s7U6p#p(HjKYV1?a z7%v$j@J|E?*z#H^=U{5O&w<o$uqu|2W8p_h{Jq^0bY3VO#K_C3N0iIzhUeG({ACHy zUx%D9+L|3ky=&<p3DN!u5$il!Xd;kF$R2%llI3eYOfjr88mUGRp~1`MCs}*eS61pN zPV?1W31RpDiizX`g&%&%$Pzn2<LY}|<Kela7Lu;jgZ;0?Y%W72<o`Xh>{8?sz&P&~ zCC;+KNFx<f*(DXPFsM6VxCg(7EVH=IsrKJsI^w6KDa94SH}W*5MfI>H0W=79!nw<E zF{lA9w55b7YC+;B$D3WB8XUL`Z0(ADvMz(kc&{1LccvdpSZeR}%WF>8gJC&=p6Eu< z8$5hQn8(*6jCup|Xw3YIm~CWT!{;{5MJG#L#$4kwT&aS5$N33^81SP=JE6_8p|CWv zfPA_JW?*IONvW;#WHy%YQ&+bO<5~a0!FzhCX=Jd1pp0%;s;$bVxxPKgpRydWY6@t3 zB3t0d$FW=9xqf)i9-`$zi}}9^5Sf)dcPT`;0vb!~JrsujXA8hVB7FfV3>|=3hr!^l z_#JgnG-zbD$YXi56>-a0odJeMnGt1;5<a3`U#v-jTrn-L4ukzFu==mSK7ZVG0%=i) z)?XG<*TxDJM<u+w3O!oU0!7hdK%X#)gP#-w6bp_+p^KIvmoNpeyQW|E1=oJqBt46a z0yek%kKO4YD}9nHW+kL#>J^3BE;sE=UoS9ebTz0>+ngs+DQ<sw3~Xai`A6uKckacT zH{A5_4<}yqze;#vRFFaH>1O+SqF0yCdngQc3=v#toyR`lUQ7kfO;~_I!kwlRqVv=f zUlsNa&*}RGT8aflA_rluf1AXocIHM(t{~{m!=PeUu%&9AH@HS^ZKEV_IPjYsrv02A z%H68`63V=b0V<5WMUSZ+_DX}*BI(BT@CC|KkAQ>Z+CY#v$d7=KL+>g#g6Rafz}y-H zemmuap!iWbWFnKj-b4}^Mb2Yfc0X7_*iiq~fO}vu-T1hp(q~vmo#{yBhvpm5Yzu}q zdZR<Z3zUmE;oOuLJO1GsWy9)Wz?_%!Al6|zLO+3*?vI9zsb1a{Y|xMltwzD>%U1=Y z>6H0p?DsDWp7slD&30WNZ?tVK_<kray8C|0BmmwRqHAl_guv?6H;+F0AVl(JbK^p| ztrInSA+^8Y)*W>l^QKBNf4F4^yjg{l;5B&J#6QUM$g_+n<^&ksQ2x}W8iY&crRrF? zyf|uv1Bk8-%<f90@CIMLf#07fx&mlQ;hFEy1M&adjRgF5L)ZdMVj@yL_`ZZjxldeU zz>(eI&d>HBKu-rNKSxmSZcPdl{*rLW*@^$pfDgcXN)87^3}iUJ^(=Tq(A?7$F|)F9 z!TAN$H=-r{RcB!?*6LEo%>Fh$SHw+`-k-*&@5#O%PLB7YhubT{Sj}3}n?MG1-2Si^ zqQ^f^b3<h@0BM29yh8vvuO3|e0&Tz5%GPlb4HjVkP9|z;>Cq%vQ9P;ZE|~7)ej@km z#}65Jw5SZ5*10Cv6F`@k;?V*sOyf~$5i9MEKX;GHJBx5S*p=P^;1db805J4e556)~ z<_JbTUScXv8f&PZvUAK%M7<D$#nSCmZNKm2zDZjZr+1-nh$}7dgE^&n&|zmg6%)?L zH^qL(IQDBMQ@E1eRKgEvmJ0(6i^>D1F_{*79Oa$HSppMVGdjp5c}<L9Q!#P_ha_kT zf~sYtLEFFFi2i;uJM6viiC=$zL}Z>{Xb>o)A4`_kI}(22r_&;r10RJ^0iPvx@hF%= zF~w^r0CVU}m=PakcAza!OekS^M%~I&%$?uWwYf~ZS9V1SR9{QkiG>0EZ|TuQs}n6h z_7vXf`F#(h5TK$9$TXb{!~Y2kaDC`u>3g<a`Mk8uH*o3VV@`!3DL<skXJ`>iQfOc! zdq#2QEXkkHD8$xcL-h|h=$r`qGu)USi#W_~c4{TDv|BHT;B7R2Bal$jN|uWJVh{B* zORx9$7_!@bv#{#qtGFujlWJ=Obx8ch4tf!sLYBpbL|tupmPpl9g=SQP4sl-by+EU> zJp<{$mufIHB&2&8tDKh{USr~4N;@@bgV!k~fSU9fpUY>3JdPJRQ;@EB`q7r1kH>mu zOiGoy+;qvLYkpn?)Zltd=V<;WYVtYsL!2Yn@8tRFu+AzbUEgW2+aak?R}biV`6y0< z<N9ri_{*72q$O&08tm|nJ-1&$1GLK)#Xk+ZpuUx<Q%b*;(0e^Uz@22&H$j4?KNKh5 zvmGeWbC&0P;66n$_y63Lx*i}g&;Qf;wXYh{f3{j9_eA0&soMEasS`gD+_{NLIB1OM z@M?ELT^0k7&kz1;b7hAs8lZHqA*DOrK6C2A*kshhy75o8x+Ix{k>1{{x8OL^!MGaY zoKfs{>%IN%SW*9;APAe0^2?A@<zsY{x@j1XkH94|LFu%$w6K6Ij3!q<_<-w7)r@ce zoi{6qAw^$fJ9dhCUJ6jENG`NvC_9cWu2@uH(6i;Ji*}}acQ&vrTnB^v{X!)qyb+X6 zpxy_lC)kh{Gc^TA10Zpwi{VXzeyoFz%STk`$6@sdUyRY8{80FU)jWt)$o#~rrk7R# z)^1i|VvLgBK;aW5%<7&AOB7HyJT!|u?D=002rR~zCQ}jb<zXH9GPwZX<H8_vB<-cr z!*>;1X0$f|*KZ5!Nupx8*y;WoWOH^$ZEeO!h%Ky&R!=s}f0mE3p(L!WnJ8PZQ?h15 z9Kf#?Rb+KMO2$ll)mJv5SuhJNnL{4&o$$nUVm~uY_0~3>eC1=GTm$-hK*y$ovScjM zx9^c&%QV(qH;(jKSAxh;v3wEdh*H!{_AX#=pa$5_=NC=F!e?0wfV(mU<ac;tn8nM+ z?ni8^Z3QI;?Rpj%F87PHAra|fW(wlD=rSclbyMTHjN<fQOg<L)rCVhCJYS(Dxa7B> z`c}!*G?ar#`c@n^RDV2*31S#JKr>X(kPl4_h;=$j#=LC&tH}Gw|4is<U4%m`qNS<H z>Pszii*UW?!_;hn_PO2%O{qwAvj*^s-%lG*xBQp`|B43Gj?wMG#2R$P5UqpcT7fvg zgp>vc`p<4fY3WLgD_k~XT4H_y2B3-s350dd(Qg^X<t%Iy^7>qO04?H%9w(Yz`8spn zfw-`+@EV4B&vU_eT@+JPg!k@ro;nZ1y3q~w#1v>e>vAiKR{!q0CrVAcpqudf*%jwF zuYS#{LgBjx%(0&qo6MmwvUgCOIhP6oDlxCPPH`{ENHAMKA~%4oF83>6V6?7R34E(~ zlW`pt3N6B#IDS6_X>D%_QKk{F)IkN9X!P$yb+j+Ve-JH29|%%2r-AB+EsL2)<8Cb8 z>i+B2M&@OIUxdmcRDiEi@g0CA29<s&W-eV3tAjMH%_|UMd9i1qdmhM9TUVz9M}``T zly6&r*w~wqLl%bNH>yW;*?v3e6D<%tZ{H`Di0n^h2Cer5_se<O1CcF$<y+Z<#hr3K zBMd2j@CfE~{W0wxeanKbrtZFo>Jp8DjCKW!!yg>zEw8Lz;1Cvy^=gw{6}QLT5zaZ} z;grZtxj+4Hgcy)4p!DA$dtM>Dt!0E?d+}TmbofVr);BkyPedCW;!b*1WA6J%Jd@Jd zI7%tbU1z808o0NuOm4R0U-LkWZ2%TDJ^T?{?6LK7t!YDQHj*;K)a;yUp`#NeyY+{_ z>wK|g%cI>Yb+|8^9B*jk(TyP{h|5aKY>gp9qL4a)Mj@~>)a#18yvCQHlG{-8oWCWj zgi491m?*WGVluR?ITi$^_`x21A4f$@>UGt_OO%exMn-H9mNZFlvIo$p$rioCiMQQS zs-|}BU443)h@YD;oLYw8i;iz2v5sr>>r}G}B0aeGA3FxPb7Js^&m={XuzVzg;oZy% zW@-ONfd#4-kAszV@_s#{FaCR<-{GAS9vq8ZG%Cy*tzw;pME|Pf+78uYJc;z%YQ)#3 zj5tEzR&K}6eizsCn?Q>eT}{tL8IBjjZ@L?l3robo1W8rD4__n)ze5Hn^q&adJ20sI z7^p0?Z2Z3sxBWi-NByfur^C~LnK+$mhAyC6;39?NM#rxnYWAT*N2Lj2fx@uz_La*n zNN_zIqUkk_OyVGY+oL>k5Lx*o@^UEhPrdSX`Jo@8Y+dX7fA8^V>eB3<{tTzXNnKQR z)nCI1@mBu=>w5nD^$K*bCs29bkZOoVL%t@o7i%02ieJGGQ6oSHiJ^n`!-&-{)3)nQ zTm{8D7?i3)hX)iA-3Lo(x@3twmLH1!S6-jV9n>zLrcP*O0g-YwE9}VK$==|4|1bC= zXqj_Th`0^vD;u15lAEdDXPrU?^~9=1c8)dE1F<o)`Ex8AP^6mjk;OyRJ<<PcoLY`r zN@0Sw`fExD#!k-YSOb+&GFXp^RB&QHx(rr#gJc0;O?y?cO+bEL^S?OJwc6cS*C6<6 zabLM(T*|QFmVH=IOZ+wkEb08wl%ehMr~Vc#L?z*bIk1kh8A<;N&cq8iMu-fNaLhxh z$UMsJBrr2R&RkL7?q@#^W9NM=${R!Gj&{61FZefEI{^;s$l{iD8&^q!|0Vh2>B2$a zXD?O#5BF&UQU^fOao<nMbMJ*Ewdh{2*q9O=N>6`<rTDmqj<wajDoY6e6lC=NIdySU zAJt9LteXrkQuhHMi;AGz6Lz=XA#2i<+Ms$QJx+X|(idNzs~Yx(oyCgiAXRT!;7%jE zdN+)NQ0`e3S&bCfhMoufc3f7e5;tQThjCvue2VkE<>>8EQzsU_+K4=V{*jcJSlx?E zP%Y;4%0k3W1vg?3C>-uz7=YDQQc{9NWpk68h!0NT-&2|@%qfj~a7phiK;-<&-|*M_ zi^3TREu-Iv=AIcky8&Ebt_?{$=Eox+CpRGpn)Y?mBV~U<Qy(R(7^T!{PU++4^447g zTFLMZJ;UrSeH>bBh()(rWKxw_BgZPy%-!&zdH;81lr&^`130WxC$Mv)zSq|?LQd-^ z+m(7t^Ij7jb8P5#Vfy|6!XqQK2P}4yrnr!r$qa{slAB%C4~I*ggXJQ*K+mmU8cY>M zchN)UB2oKqSkx`n)h|DTG3BXUbDo<Kg%eRa*j06CzR_l8VBi*eofFGQE5{9ZkuBOk zw@jRWnqqvA-P?8T#mkWh*lz)NYBK>#f9c=6V`5pT#-N5@TA&n#fGli$!H~Q!>g6e8 zgaS+UJLVT^$s@XLD;~U_Kd|3G|GsME#-z?Rl<8lFe*eUJA`kY~FBK&Si6vWaoSo&t z5f&ii4rIKh*ASRFl^Xc$v`Lv%Rv*p$rpfJzo9bvrSXXf^I-vV?EoF9END*_UE8_PA zJ?Q~`A+%d%%Ry>PPP#^wk2EQt=8`q}GMj$<1Y~sVAUou`JpBN4rXBl6{=J`xSkF)@ zxcW3CWU1!6-O+v7S&n&rp=#Qsvi<MJb4tg;@2msntF=+ry%yL6J+KZ&>CtJ*EJ79_ zsMvcVQAKS@CUg;wXQB=K!)%NEHT<sruua{QJAk5-awtQ`<#p(KT8s729YTfOaku7$ zO{h{li;L)t=+Ft#7GBo8z#vu?7H$4(c5$icJNrvNYSo%m5fb4$41Uj4<30ru$*HE0 zF&MXBCY^^h?{5w{uv>N5UjzN#bE?YczRdLX;hZvwz|S0dU)MJY>mPdrx%yfg&g^AY z7PKLr<>1wIO*7PtnLamy_8R$xeLw_adY)M3$U!0ajRt9dY66>sl(|$)5F;Bs&FLCe zLk|C!Y_!d2<3NN)hmhfjewJH0lmh95^Y`#PVT<_MZ0vqn>ydxAlYE!f={}ZZ#<U$l z(}Doo84llOEM#vD#yyNm9r2y3Y5DG%mOTE?#Ws(Q#A(wJKet-TQ9O6<YbqphijaD$ zQJv>OA$#Q){e6t82gZ;g<mTY9uKlLp;n^0c8n;4jbKkkv!)mfbGqD@adz^~-6GDP9 z08Y8RkUFT+<-0xz@mwOM@n9r9<g?X5Ba6!*@$eYV^{j_tvNF^lbn#4P7M1|WJVkGI zBK0zayjE>@h0McqQjWl6hj?Qj{yakQ*?N4lg@ghL!>NABh!J1joyr@SHX%3!h&Z_I zIkZGK!UpG8A5*s5Z}+~60Lrd<ZQSt5;U3=L()0*p^Qbb184<FXp%G+$0M|r_0xMqD z1w8IpWZ2T-a5n9Kn7qwdug#FvlanEhr@5Qz?oug-(}auR*cdZ5e53tqN9~MwBhG?K zPjHjNaOk%A@S_QdD|$i=>JY9A>5}xZ`y|<>d<eIShtoS?I(sALQr=A5>kqO$o`J{> z_zq~$CylPx;c-u3QLdoG5lHlNT@1e00Okd<GdoO_nhxk`vaP$jl28y{uyTSf849hO zp;co7xnkqpj%B@n(L!)c4feu-4(x2?78!ssUttj5ZL&O>FL5=Z#rgTD`ftiJb&td1 zZ1ILdtpHKSCEqdhmyrN?Nu(o*hleNahrs>313!v(R$NB8^E5yP$S<MI$rJ|o2JyY+ z#Mi0zi+gx_LDOF1V9a$_<a8yM`wa8gGlrCJ{W%pMe5xtb${8Ycf4d&CbKefaeb_N| zwrS=hi2LF0XWZ2}VMR&h5r+zG05$B-?N)NkgTtuhY%rZI^13zuBz3eM%ye$CiNj~x zjbOk&%4m{mAT5WN`ukbk3-*f!x55SF*cb_ziRgnBUD7`GQ+C0jqP-hi8JQBc=|kN_ zfp=Av4f&OW+voA3tg7<`sa>_e$5F>|Ll?A%Ob-dK4yGC8AsV9017gZdJRhXl`FK7o zoBtFh!3&UjaX{AV7Y1HY6KQlwT#O~_@!=te3ron{V?15aGve}_D7`#|<uA8?8p~=w z55DH^_0VoFJNW{iXE0R8hTgqxE>glcBJ0Xez*>#g%UQGv=}&@s@nxmm533QeSMgP; zejgit$nOzwI{$G(iP2SqfGvTf-+HP-kntTezOi<H@$zf%k6-?z{AEv6F3uhdgOK=# zo;quukYPUyX)31KCw9_Es#a#v_l2O??L$pNw5qQ->Z4!|V-$PTR(CJ1#uf=lKasrs zKR&QUUe{KtwSEPirjXio8+fUZJ|I=36d^wEP9$62fC9Q{mAG5y;RFH$uNUxG*xo{* z{;@X}H#ZpS*3m7o>4uIdU@R&6-2*H?$^C30*ge6l#!b=`fB34Zj*rD(AC=gMz>P}t z*?77IY)vrjS*+6kWKXvj+P!_|RxLfxi+bJMA#SnJ5}u$U4vV*m197{QsE)pNuQXUy z5%IfSH8h(Q$akyo6r}xh8;rIOu)tEl?m=lrPKRPEu_htnX(mlAWi2&i__Gi58BKAl zn}3o}KoRJKk#DtF%!4ar;C_yGS@*eHL~&RuXPohe!2e=z#IP?|M1+jdYaa1B(*u{H z3y$0-+bpp%umtKXN?5j$0{U~dK#mzwdnD=Bq8db`2}hDK%HuRqs|J2MNjBjS?cPox z0mW%z`T$*-`_jhia5I!%J2wEQ>jRE+5$OZMxm6h(HE=U}Q!rm|eVkhC`@|;^S#%$m z^gG|S*{1k!QQDh~Ui-m8o#!9~?H4jz(P<4}_jn26QBb#GPdKQ3Y1aAT`7q0uFH!Ow zJcP^=TK-{>Q|z|?eS5QwdA7~jxU~MQXIi+<@`c78jg)F{*^`?^nM5&3a#DCd=`-!T z_x1S~nRgU_MIw#1^3R;_=NbWY4vsIQVnwygZHh~)-A>`K2BofU8}06O4qJVq?S+4S z48UKGT)0vsQsfiQBhO`s5K=8+Ldx~1p%2uYKHnc7hcFI_`3W-6%E<yz3bCiN7RNuu zS6;>>Lpr+wilx)aDIP#~Y1r|BHFP3f+DtN{pg1-p3w}{%!)rf(f+)46G8oT?G2+&b z3O;cF)1LnoAyorpTze`mC3`UGC<s}So+tT7(3XejczJVu1f}aIx7EM$iBJ<Yx}9Lh zd8WX`M1dzk8g@=77Gn$%a(`^vZsTo2E?b?nWPKlZvnJbhrtXdco$gTO>0Yzg)F3$t z0F9}#ov=x<0C6LnqZL7{=sr@6Po0?Umc#ArG7Pf%xu%8F(#EaI!ydYB^-VgY7BS2# z)hwiJJ2%M5MLb@XDCtOp4kME^5I$=dKQGw0Tu8qX`$`QNbiUs9*zu*Zd585#I#ffg zYicSK_u-8qP*O~Ama~RP&<Z)*CmS7NoX*SFO{uwj<qwNQ6HUzbz?&J+7gFO#`)kpw zUBlz{rVl0zf?d|%EiMew@kdobiO?U3EPn!bQP<M<$5m(-4BSycAn&^|aB28OSrp$K zs4B}o!@LMFn-g3|;;DZ`k_!0<Qh-O!uo$Xgp1|Sgv)>k_cv&Gq77W=2OPG+e$#768 z#^v4dT-&DSWd|Ft>jl5k0?|$f)RJ*a{h4k(kqazg0VJ&ci$T>Qx7b%I0_AWg%HyCw z%xwmpmc8%{%;CvEOc}I4_NRR4n5iBAE3Xwx2&-S#NP9!Se<>>6)*ZtB-9QbblFu$k zc7p^izXNJ<Cb|urR(1Kj1R`KoGSJcC<#vQVj?v>SqPOc;3|*>khrltZhI8iUAn*V@ zIb0ZIsIkICD|o=)StT41-{Q5e@CQ9w+YiAtiM0HbaK_2Dn<-B24Uu@Ki#~TVQd9r2 zYR7Ufx!G!=9Rt1vQUum3+{fz4E2fc~^|N;xz&J}}55|5UH-ObEC*9+JTyxqDK_mTe zB2vQ5>N-&ownN!^%S8`H{H$E32>lJ4X+GYE(`#=zRR<%g6DG!wKn7a5S2{Ep3-(fs zr6jWdz3bOIxKO9a-Rg>gnvyI>8};I~qtoX;*vQ=Vc5{!<X66;ixOO&icCRi>#G=^u zNbG+Gc(TFZ#sPMRv+83An+Iw*Lg|g<^oAJEtnlAWiyaEPI~&^CUI=$upbIZ0_!F1g zi7HN8to{px0RrSqOPu{N2Tjl`{=mpJ6Xr~M6VASi9^G+}$CR%l)?fPw>BR$#e#4d7 z&E1@7fc?~;taV}u?Q@A@2&>Cp4DjM^LxkS8u|VMoD@}Gnh=({T&HM*`QK{7b`AkEA zy6oe-Y<I#&HeA}JUmp_XU(JAg&FbjH*iPxLp#i9;8gDv)h{4?a;?LhI$Au~42ElCR zlVAHK6KBZ6YnGRn--VH%500W9fzr$s<>hPsj4N{bp63nwF#-=7U`ONSuqU^3*<7+T zp-_7eWUk}CY0&wg+#XPo?>u3(&NT?C%9OH}T!3rMUW^Mb2lYT?lwS_F$lN)wT1te? z29RU}%kN0?m5FIXyy+|Y**}4oqdd<zsNZ)~I>Bzj{R#hvmUoD*gaN*N&&f$nY}@X1 z+_7!5)3I%I>~w5f9iwBL9oz2M_POi(-#fYQt@UPaQiGb*v}*6)t^l4dM8ajF+=nyS zaKbi7f7~#je#eBo!Ue{R>x&!L?Tg<L<=XJO9?#^m$TAHUM27C5<>Y_2ge@EmTGQdX zih!Hf=D341Y(EVCnVLIO$zmZCMB)edz8$p_QVu7#D&f$1GaOhZMl*c$bfEvxRFDcA z4nxsBd-OO;X;fBw4NseV7-7rd426Q6jES)e7eNy^YDA_I&wVc3o^^D3W7(9;{ezL2 z88s<V9v7#O%6X<kEPn07%*<@@K16Zk?|nFu@s8s_W4chn<THV&6Fx3p+>473ZKcJu zh3+ImCL_=?W>At!$}&zkR+y?z1wRpZLHMAR2VU=IINo3IsP<LbGl>(5?j_kiM~h>V zvAl%NPf6;b0@#Ze)Q#|P{;eU$N*h7qC~o+Y3@eKsi7pM8B+<nHTE@t90e=N%2lf!K z?);H~6BTPsB~4H?ZTNkc_VXPF#FPNIkC8LpIm9|e=P=%3_w8C?hhK9zsQHBG60Fsx zg3+tUbM8EK#arl#8z=~l8Gj4dl=oC2CQLtoF<?M#pgb!Kp?ynW8qG`?)~EBv;e@Cd zH~OTofIuF#obq$=OJ5HraM1b(LhM>{%(8BNK>4D97<VX_FB$N<8(a5#eiO|9N7>mf zfcZo{DLKVq$2Z{rzuA3Ob^yR+=>N^`1OKD-0sq79>p7R1|3BD$VZi@k_kCdl)Q3JG zwr!hdQsH7huYw}6fs8BIoWuHszh?0`Q=j8lhhN#3@Dz+OFgaP>(a)(LgW%wTI8KO* zfAp+>LVV1x#y0EU+|8ft+B%*Vjh?oqvNE20?>?qHy6r;h`i28yfP|oLU|XaWygF7x zlivT|8>4ne+|J&fkH@OL0hmwi%FnScIicHGIPWhY@#|_U_<aW)eMC;bk#J-?c+fYH zWtT(JU{3g+<W0UOA>@z~C-^vKx-`V0(_=qLT+wnI@VsdVHEaP`j@}#a5R$FCA;<_p zu0{e4LtB~+*lP{^<D&>{z~V^t@kzXvIW~o+x-B(Cb1k${@OO9-SlY1kiir*kQ7RRd zoC#3f)*dC&HjaTwvm1p$YV;{+V<~+U1Y>Z(XAkOcJj?9S))QV;(yMTO#4_N+n#iB8 zJWsJE(8mMg$rm{M5=B-Lq2l8i4Lj@f@RhuYV7Gz4y5LHRZ}^71*r0+$c7`qPtuG-q z6HNO_A=7psd{ItWyZxu7M?F0Eb>RNL#vEE}VkOa=F0>M)(8^Box&1TLH%C7Qo8A}m z2_BQb!YBC{B`BfGwxeX==(L2suj_VNR6lEOiB+WU_5QVa93iaeYl#GtE2jyc1WXum zA(Vi!@B#2A;4EM<?!X}PuN-lM$o`bv<u&%%{Tq{@KBNf3Q-liTQKV6<HOAn<qTjf- z;CPaEXSb_>Irz{w@5>{*LRbu}K11*Vp|V9CVhL2JY7jDxaj!XGi9D(Gz<L`dv{Hcc z>Dw#_o<67#$x<a>y$&>#il8c9;nXn+K$53|j4kGjch=CE0xo<FP_c?(kR*kDf%v`d zSPZCk4HWV5UsjOFbS5N-o#^&lhJH)twH_Qal7HZ_q<>+8O@?cgs7ncx+1WG)yh;~+ z>tRRG@?m&@Ys)X*!y65V?svk!YWYX&&kox6()CNcjy7(zT2gHHXCD?WA;$+sO~P^1 z*^?>nr@DVnDHPQ5#t_8zra}o8zUDMBMB|n)=oZomLm}4X_qsh$3<e`JoXwTUSuNN6 z;JZJbEmG6b(HVJvf5%8R4j)iCcIEAQHgzhT=};D@NC3#<4dJ4M`#x9MSX!2el-E>M zZFISvE&cdUAYZ9Bky;#2VPq6~Judq3H;tL=aTiPyK^n|cw<;eL2+M%f#z{t5*8)ax z=rsrYN)RVfS-1)mRoPCze$GVS5kIV;p?yhbH5o5e$kG&a-08jD9SDCqS#3B92nq_? zBD+>3iTjNOtsmXqC|V2}C9{6_^T$pfsCj*TMb6@K(C>0RnR}?ztX^aDeZ6Nw#Ql2E zz0r$aLd_N?AJ_-i%DECL%3j#T#NO9E36PHu&MTW_mMVz)N{-3srxx_2=QM;ZfXa7X z_h~W`ORTA{FNiR>1v@y!1P3pW7JxCJ$P)SxkJp_e<p24Hx#!(^k}{6}4}LI5P!QV? zTC|r!+CCFqBgqOH2m~%PeqX3zc7mbab@_LMkb0>R!pIN5?e@58k@nx`1ThqzgZK}! z@i;~XhSN}uoPA3-fR&M!o!y0`E%D)WCg<7NvVs3chee)mDl~l_cAhER3G|dhHy;E1 zYVCy-fQkbq3&=4f>5BT-SMXP!`@1Vfx5)igmP5B!FFb8Fi~UNSQFuynGLlQj=4K{p zrQJI=61b<frbZw9{2s%#mF~a%!=rjQDS>Xxbbbt}EGr*Nlt%bNn0K2o(?P(HJwV_p zlHx&-?gZ-z`9?5K-2e6DHz}K8Z@^edNr_lN{9n!lKUDL%Yvjn`%!-PNf0bIbpU3~w z400Dok?=&bYwUtpm)n?DLPV*}J77Wd7x?IUzU^E%el0)qrXO3^r2ZqhZ~rp)yzhKG zt~<#7mpKVOMm7)5TW1cySJzTk|ML2JR=e$WUO&?9b5fGls_J5&h_5XmwMv42(>&aN zb%9eQX>TJ&Rdn~WC?2gE2XR%OjG1}b`>N|HcGy}7+q`Y;Ics7#j2jOQ8fraXyjcDE zF@|fa70%x!O4x;Z$dfVfLWN)@p#ONl9sVK(c-_`Eefg_jV_0@CEu`nF`^~-eDA$`t zIKzX%_U5es)yie$H?lPzoMF`U1FnG&>wZhm$A!h+;iL&m{9<%~e83z&6ZUqIHq%GJ z*hbjnD4=X(zhWBgN00_{PN69p!TV*)*3Yy0BFUIcu*)XdYVe1WEZ+5t4<jzKK0mRi zFK#My<fY~*JQ6|vG@t~?fVhr~hq|p#lJ5Q?NOynGV7-{eC@B6;lAcdHK<Pk0<Xk2{ zApi%KpbCJQCPhmid$3dJJ;90PPjmF_B^79+uj-AggIAQAcj&li)~c7tFN#aS0G0rM zV$?`karuERLV?#jZBM16)3|m+71Q6|rAU2U)7~ySuGFiZE&6>%9vh$%P6^Q0y46BF z&T)2sbVyu#`;2TCY+_UB=}=QFt{lGllKH?f6x2n8(AS*<J;4Kbu*7AA@?^|P+z1FE z4OQyge5nXpX^M0?p_qA7Q_ovXMekpURx<>z#W$eT_7G>#Cwz`_JdR)G%BLdx>X6x7 z?cwRHv{{vA<S&D;rT=dJj*5-mqmc0XIgMWBS^nww@ro_@aX&vo>evg!_3Ya6`|}U! z19R)o59nnFj6k<D3CDlB=z1L@7`|ntn&Q@{;)7CM`1;i%`R~!6+n$@I`MruEbcx#5 z@6p%n6h!vY@Dic@I?+&vJEyB+2gs+ix8O(2sjYwgo8F|m*NHgnpcR6u96pcBo@u_T zPOjyeA97CyjJ#Zy#<XkusR6t}-w=lfnipYB8})^-DjVOkkz)NJZ`-hWKDT3OqHQfg zpNf3Y%l24(SDNsULNkiG13vUuKR(UJak>JRf8apMMq1hH#FhDH-2qc@JQ+bo(9X8v zZ%21J^qN@W5N~0j-Bpi}QNnL<69qzeV2|%7Fm#AVli56XH;7+bcjWFvfHK4)6*;P^ z#VLkN2t~;2RK-rEro;vtS5Fe;n9^=N%ug>p@Bf%#A+O6l-Oxa8wHfoZZ{t`;AURFA z?G1+z$e9F1qg51~Xz~$*ym8WAyT~=3w4yK`9TdB;a>09X@y_Lvj%OGudT#J=WasQa zNl5%~J-FF+_4ex*X2|<|-e)7!hjsxe87A3Ht(aBP&%ow!0Nv%2NMGqUhKW6Po$CRK zmglykTs}~OC+>jPNF52)y8gslzs4d3i+{c4vu*SBG(;1+#V-z<1i=ayjznCk-$6sz zoZ1cfAV)iq&jZWe7Pm8;n2sMdh#ZN`p_zm%<6KgF4^!y#Ce9!zH(<-J+#XSyQa!y& zYPUIGLFBtBK>hJSbhp6>hXy&jEijza&l7^k+<9Hm81XhU`qraEL9hi;e?FYR?NeCK zFGe)3Medde;(EN65fVk&go7u?fFc%=b#!OI%rz1d?^D4HdD{61X&@Y6u7WvWO@CTY zQxb4~Sk#&p`&%vx8rEBjXf7kNWuHmK1LTG3dV+7!RLMU9njaK{EqQU%i1nxJr~zhZ z8=V@@f|=B(+i&8~n$_qDKMmHYUOn;H(}8{-9#;&vsA~oXq#hyH(S&C7^T8a-u#mvt zQ~Y-m5MhG+76XR$Z^4?!rJeZHDKDYxE}-b}@t9dEAp}8K&JVqhA~p+WyPJ~N|E%r= ztsicSZg6w>d3x;iSA|fueuo`}yLYQB^A{13j~rc1B`JcBMI$}qc2Fg`K|Z_qtm0U? zuF<1;o^_7N+PH);R)$kWae}V^egs?-vJH%4wyQSWBCI-K$s&88I$Ge-H2e<Yu3rzM zEW_ZmZ|;7>v>@NZj2P+%wWjakgA#Ea?&D-G^Qpd{7{fz9%OcOMVTSxu?$*rGU!@7P z%Q5&lS+tM#a1;XnB+@FIg<!Y9hm!t;?-={t96rWAiRk%49z9!yJ0V39yG~M)AIM*h zQRakUwk{|!X%&57CU4-&No8@kkB<H8NT^eI(rh8An`u*8)~jR+1bb1(QT+<049pY( zReWa3_dnJvwQA?(U)3PLLLe`CDsOx8yTLSh2m-t-+TCk}dmQk@@)DUKat&p~D+WgN z*ga#bmb6#_ma!Y&u8#w4!{sz_CIM(MioGWjK2_%adumI|ctM!mOak=spd=N}FUI#2 zR0XR0afHOm%B2!oKnrSKhPEgAwCMcfWcvQql%JamM*G7twZbCLGe>#;QwwJ0w(#6f z?)g<>GG>>%kLMyb<^Ug{ud?co7hg2w@J-iw1un|BDQ!mmQ2$F&mAm`D%I8c0XLe-m zd*8_qU9cVQ_mWD5TQA#r-LYzJ?fZ4MejGfkO0~Y-W7Ozxh8AJz`-GA`_P-bBxNy4z zKg5e`^k>HCI?b}+>{lp6ZFU1ft_qm8qjub90#Iv)?!Sa61*seA-c<RZD-)<XNlPkw zuBoedj;o&pB%kt$rWV4m;BJLhZ?QH0Qz#Ia>eFO`Z`1?}54ucGM|7LEF%R|j+SGQr zPb`$H`P)h0<o1qp79Nh_iVyrYki_=JdQhVV*Ic`9OYp_|)Q+zI{_Ti-9P@FjoWNyW z=J<4sP|fSks5i-uwEH84qS53x+*bp7sO_(~Ku>D$l0(QkYcV)_UE~8SS3!m^f>$~q zSonNCpU=XNp(@W1#ij2<R!3|<_>}EBCv#=wY5PS-cSp~ZirfuqY)WDylUVw(pn-kO zvX+Sbmk@TS0iM%K>}rFB0f+rY>)%;T*@j=;PfgQPXie<f=tiE$V`CWzyDljs#lJtc z7n_ns33;VG9|@WG-{ShLS3t%B^LPg&;%KH=YhbQ_p>p|G+H~(xX?=}toD48LeQ=gr z@-TH8<etN^IMhNs-#v$~vSe*KxdIMK;)q>mM3jQa9Yx4kX+fQ}8Vum?l%N&Z(b6_% z9ectMt6H=TNV}l#Yj*C$y8Tb3fezBBQ-489D4QiYgO}nI?~U&!aZJCuy>WMm`Jfcp zVNL$TNk`>$p0F36@#SO%{nd&JQ|iY0^x7tK2hIUo#J@^2E|5~en{p`H+98w@k>iV0 z_(7j7*ZO;nC)1<$s*idGnM%+LqD=;8CHhoVZ7i+f0knK;J`a}0gm+d<;x2+F8e7~? z7p#ogknx_NxomNo;y%7F_&&pEql@30N?Z^7)?gy=O{XUmUXKp!@FE`JiElMgM+k@S zjC?BqcB8ufM6g>&=ltfFm5d~OB4eJo-0_>P`(97Q@jYRz@peF<!~NnFT129y>tX4; z`Z+ZtdSY%Xwk7A3X!S3kGV%s0wa&GH>#RhV5o$N#c=v&sR9)_?);9KHoDj0d=7mhu zn{yNF<EHY)Kc!qUgi=LOGKFo^ylRb2+_0_u&tPUM_G{)h6r4mXtdfPeUU?nQL1-1% ze?$G7N!A4ifbl*Dzndt7_ro#TJSy~g12P@$D8lcd>yD9Ge@t(Rd`UsxuSHahT(7kq zm+gK3g_nIpLqjQ>yd65pqv<*;yg$EGK<<JTqHVGsdim2Mf{nX94p<^;k0KK*{V8r~ zi6UCPZ8lI6eVgUCjso2J*`3SivJtL?=-4vysTz^%QST#cqwUp6l!}BxAsvhT;oJzg zCMaN<5$S}{5?HMMeWzadY1VvqA^g{!!ts~!3+VknE(D2Qz4Ah6MK9od<u4$3t6<3E zx&x`-U#6CgIIJI_rYrl-zNaA~6{o*lg+^Qb#gDJEUA1xtq;<7)UAMG_2S-Oyoe5%w zg>pj(Dd+PCqrP=$t>pc<M82)pv80SdD=4!HndVaXfRYO7l2B-bVU~C7Vi@oe{PeMr zOoosV@+p!<L2$ypQC~QzpR|e~KEbZ2gqEZvnj~l1b7EBd#DLi?54RvjwG&OA{q`s1 ztp`Hr^zpEq^!#?b_2tYYPi9_!QOqB=AgAL&;!|?6$z#J(#eGsqVr+UUxNMu&nnKQ6 z*zS%7m&o^)mN;l9|05Li9qLq@0y!S8wV#m<N(Xmb9a2b5QD^vTl#o@smG=bJAqd`; z8!w=GFX(C8-=C2s7b!=%O~ge3M)nVa%|@oa^kLr|U!g#?S~A7#Eiz5hE#&j5hcvcP z<taEz&8ZC82+e2c2kJo9m0NTGz7xlcgaZ$n|5kip;dw=#;bM<6M)#@d5{WHgTOftc z=Yg21p>lB{hPn9Q)~Ijy-euezfGTR|(5_B!0_U>kN8%br0DLmB=T0E(u8W|en4%^| zzNge!ihei`JOMlJ{{E3w=NB1tAvk{){&(qjnd<jIGe(Ia2MC#u!DL)yVq|5!Yf9+C zP8d$l!Cr&JYK+!+$|y#7dUQ|Fx!ZA2uv%YzQpj(A(i302uti}urJ*OXoOtUq)14HM zA9iEiXgWAX%DGL?O!~}^%o%Me^vscs7dZ7p7C57Rcqk*@HV%lk6(p!V3$F;gn-=PM z0-^Fd3MtN&TnZEVX!E##Tnc7*C^3!@YcZ^}AjW3U@xEVb&6YJ|2`n|jZl~G<>O1-X z2(dX|y2wtf@PR6FdzxN~_N2n^uCfRN#`^+>NX?Ev$9?T#Y2?%Ewo4VV%$c<70`@w; zPR7HtQ2$_(ouY?vBLz>#yYCPZL?lKteUs)BN_10Q7ox~WSW@zrJMVr{DRZbO0<ts2 zaPZz7JX}zZ+qdc^>p90#3!X9jXbI=NuPUZ3_IT%(87)B0DvYb9K+Z=26~D`ANvD~W z+lmV(qx9M|-m#7lv4i2Ig>;&%vEg-`gl@%{tCUK}@Zm}Vvw@clF7VtWHEZ`lvl`hU zySr(SAzXuv`FfL)U$3ax=$w$B`ad7wFSj*(R|?unpA2@Lq(mD0fpg|(j5+rsYq3`W zEmUr7O-cgHK{M#mYE=}xco)a`-?Uv@KO}cAM~YQ`)_Ff&Dxop>Ve*4BXj$-S>JXo* zC1uRNS8{0&t+fpU5+ClP42R-&W+JkZoUf3>BpwX%uokD~<JJoBAvFM388a5ela#cG zclso(%eqSKP#}#~`Ojlg>GEd0KNMJ(408a!BfhhaxMRl=g;70u5jE7~Z~Q*b*Bz&) zr`$3NG~>Bnwf#Y|Q=SNib2tIxiGFnL+1M=+z1ci2enDzpU-w9L1F%a@3wnNK9+^uv zy)z7=Cgj!Myuii`h`%;n8#-8tnX?Kvkh?KKm5M_CV6(Yu)1!bAiBaWlrauYBSB?5Z zTM>zc?MKnMKPThVqK|e2f4q`|b~FKF*x~@{v-~%}2?5Km+(Lg~WR2&6nBwz3jY6g? z=H;RZ3Dqa8$ouFLWy5`06@@Z`Qz16wSzYBZtJ29hmgyFBr336{zaoE&;y)0DBWttP zW`M&~0y3Zvq%5k?utdrS&{Hn}fAe3(QEn}h2TrhUNO<?4#2+4S3||CX>Mfs0mD|^_ z0BCOIX)2WfM}sk~2Z?f*?z}k%Ri}V@gPM1O!Rcg;sX61>U9GgJLd2<sJ49vDj2~*4 zpv%4wi7me(amO13qPQ@<D1=u+bM{EGzX^~^817M1?*5u4D&SFXAm}Ohm)8_5sZahH zop>QFXor?MuuAkR3n22-SH<;7jeNzDPZ;YBqz`?i1)Jaf%B&QTd1OIX`!0E)GqP?U zAIor>v&zXH2*hyw91IqB+@vx6vId|>R^ywEhAN8aT@zz3z-`0HCeRPoc0_RcvT>~> z^l>kC40C!D{YxV5Fe0Cx;_Q2%IGwei=^2D#4qP;IiMpzbPr))Nu34-9!FO=Yr}0uV z9LWj!si+Rwx1t}fq>C#%zY|se5^N`ge^Gz=eEvFS5^y=Nv9#Fzs;G{kys~ujaY!Ce zw*S#G9>U1m<*?Q1CE4TmVJ{_$K9`6h;B?8Z2|z%qZi_oz5^1Ie*moz6o$rTxAD$FR z#eHUcWjHnPl2iY9`E_jPiX{V`PV^E^M8>=IU_%r(R<IWT7jFkx8eM}G7=O(i5*iR6 z0Ppx0ZLMAo+KDJjUPeEkBws^SmCg3{U~E0tbMKeLv5XWcfJfaPrVOb{Vhq7F35fRh zLj|j>4&VNL<ta}5Hf%lNPo}Jx*|qO$O4&0g+h?bu()5V-hLlIdwey0P$WMlRC`>aD zh}MaF(qBe(uo^j6D;5aPg25U>Ml}Y_fzf$?x#^9x5!TaRSX_xp#@mKHni;J84PV%S zpSwIVTN#@|{^;R(KW-bywH;W&Rj+UO!k}`~;a%`i4a`$~U%^6*iud_*o@x`XqZKuM zjKt{vgN`u6P3zLaDFALrmv$sSe<O0!@U8Q7)uY%E2Md98E`gpEI1$xb(Zs^^t+(AV zfNic7jl9LQ2cO-%v&UovB@A+E3q!~0h)#t$%6*KqFy1%ImFexj`RU7jdJ>6FDfzBv z!7`!Wad!GW1k#bBjg8@rM>uHknq@$PtyaU{T<Qj@T>cf-B81be;{x4q7=n(&_(G{? zv?&d_2;CMDOtic{wj*3%Resy3TzULZ8-}5}$Ig#~m8BPLiSlzz{7GBZW;&MG6HCN% z%lur?9Uk%6D-quw5d9qngE@2-sQbd)_Cp9OQ`EH=G9vWpB*bm>4kps#DGXkFlMT5a zFB41=Mr)12A>vd?{=i`rnsc;(YVBX{M{c|A?h*e*nh`n{l8$SDL&Sg)wq99#L#AR* zVlGKsEnFhcFCF{XS0y&}?&GBxOjNk)9?%mAoEeChN@<G^)xmCeJz;~gKQ`$3cw9%) zoGD<MgQi`#$0GiPx2Oin5h-1o&+RxlQnJgO3YG*T6R2N5^*}z{i|tN3ewPn!Tj%{m z@7}L1M@Ni^9ntdWe9*$jeDgY;x?Cs0YPyy(`~=V!DD#Z{T4~(LoR9*99U5F$!zmku z9u(kj=Tb>}DK1?{lYAwjI<LjO?6c`iz_>CT=RfO>azV(6v|4Fn5#hafnv-Mh3a2XC z+0w=MiVrYBvQ(YGGtC6n31K)I^K|kcykB)aZF%{=J?1RE|9LU!)-i}0hb2v77EGW? zPlTeC8R2u7(552QdWq!wq>F=1n*-D8QwS4Vw+EkbMUpAvObP9=l%LDGW_|Ge@u4V; z4^O?8ehirsb;Lrrs6s2KUf+3gvfO)(feTZT<>?Qvtk<3#q9(2c7zkzvOA0`<PXa6- zO=fjIf|vEZFUTxE9769x|9tz3^iOAq$scXvG)eko1gXml4(;SQJgaF_^yZ6<*ruFA zL?(m+@asD!%$mbmf+>{aPbXo2@t785YdpgZFy}`gwhaabCw0wEg<JoxYoqDz)7gKU z9Ui2bKYo0yrWyE+P4r@2X#^tm#wD^g<WKFWlTzplIEx+HE|L2+{}Xo4%cEcoZl4!$ z9@Y|kWk%1J!lN9T0Cay`#+Izy4UEBB%$OmJrl02e!X(A-`8jvZO=!HGu2Zx+$vGo8 z4s^5*F}yvbaC@4Ws!t~ZU`?SomAc5F5YuSN+Kw!~s1x&8I7vKBCVrEqgr~X4?N<Fr zl>rM|*wpOsBK1Nh*r$nNccM&ONg6+6p5k3T=PjX>8VJj8h7e1Km)Xr*brk;kn=FwZ zR?Cew!gc}hWd^>JY72HZZ{#;LLLYA0Na)v++)6voTTsUq{4Rgp7mAOO_Vu3P`P&xN z+*Vi#WfjaJsyhZ}8VQUqx+!pt$cyYLOi~hjQQi36sR3`l@udRt>DpKc?QI?TIb@N? zpkUKVUNqC26kL6bzWcZPWm`0`Y+uGsVx+nQxs;N*>jw846VSy9jD}~SOmLW0r6Tv5 zEnd<WYUB3c3BQS&sx<#GCo5STAkPZ0{v2C%McWPc{s%8T$q#-i2WsA*_I!TNT}iSu zD}jprS~MiYBUNq3XcKr7qFEag388Oh6#JgQ!=-AFW-NDc<$l%oM(%VL=ak4=Y8I3+ zcA+^bSKHU6?aSEP_Lm1~f`$?%-h2)v!w_&T=J9|^+1<l9$Cg(c42=9h=B{Mkot>55 z%7A^dKS9<i%YbzQ7bvGq(CUGL6vztbIH=d*cFB;vLR#mL-AhXG=y;FRRRByv)xxE{ z)qp9ks?Wb_+~e{BEl1Bc`^-CflIw@Yl6O<c^kf(J8ILH}dg@!V+dRNHyRbk&wx8ls z{fm^l7J1&bf1r7~!6aPNo1f#|TqQI1rSs|cKY$6|;zTcLH%rZy-)j!v%V3kNS8M$k zQ1MfaP}BL7HV`HZs7}qhZB#2?l;q{&+I$ddXm(g8FDa|z%@?q@C+)Q$l$%Hay2>@5 zylA|;A(%gV3--R`WLf9te1)o9HaRlwcH8UjIZiI`N36+X%7@LXWT)bf%q@p{tgZRO zcHz2Q?!KOSd33W!&D|;C$>Px}oDN_|S{D5HGofg!TD_`NBpLHMdox0+go&9G>>AKm zWFs?UW$;(Be9_Uw%>2ZNb;SBEHP~a*4Oh$GEQ{!FXnD$$uU-s^|AIdlHe&DZl--s| zDI|zHgUhEbB1Bc_TWq0_%Ml-ft3c)a+sy7b1G-+DCUk0bB*`6&$DtlLS5n>eeRc(b z%99pu)Hq*rvS$%Hh{Y&v+xKY`>5KG?Cp%JtInt}uV{nRpI&)h2lQ@bby_g#WQ}pxU za<skT-_1zF+cBxbDWTF7N_bWxBXiJiQj>%~i28J7HWuB)W-;a0p6RS+@80gDQja7e zxm{tXf|w7aeqV!ZmZDfTto}tJ6gmNqa($&Fl-|ZvMoRYba#5qkDa4KJIZ~)j<dmPL z!V7l>ixRY5BQOqGe=Ch_<if{k^1_zuHc9gp7c|1am!pWEkbhS%)KX){%CVE&c{$3< z3wu7@*KNdpQWBcunLU@9ov^)PmVjW!p-UWP<Fr)EfA)$ee|klUM_6oA6CTR_G8Z;D zX8$Tz^(=okkZ{dt?=8I0^_a^)9S2mL$o_%|Rb`5ySbSUK4^gAX_e7sP7WNy`gOXMG zD*oe}&pUNkC=6xpSNLU0H{`kM)}1o=n=?)??gK<Rk)=~RIJ3OCzr2XdpzWQhiY{Nv zIq&yc-a-7Hl$9RWUbENt%18)$h^l+9-^u;T<WMWZy2qrye&WrolL3x{n0gMOE+p~q z)UR1-_pd4igGoUW=v74%994)5q{7=O&L=$mec%4TaYBA-o)4>72XYdUnf<$fw`5CB zTDgrMlYvL(je30&#Nk8FCD#7KA5|2)>Gr7-J{Cgus~HOA7?Hryw9{d#e+7A{mDhYC z-70(kStf%<IgMk`dk*Tv7+{;`F24x-Z{X#s2l5HeJ?u>eQ3h^n8T>UxZJf;%f!_0< z^|FBbt$(Q1K*RJB(??&DW`L)0cgzArQ-NNJ-9z-J>KxThRw(mz2j4Qzy<#X<1@8*i z|4c-OcI;ff+}>hL$~AR)_kM`E!8R#ybpMhx-MD-;3?mCf+7IJvsbEWU$#Nl5IHnVq z7Ar1koUzs=7&1KhC^mZ?2t?F3ebLx{6ML`rwU=D*i%LVsRi2Kb>*>dgjr>lXC4`mZ z_UG7f^Pe;J(X7U=#u+vxfadC4UM}n}nvU^_-o1Y+^NiSwdjB{B-j2zFoR5teTi^+v zN;|Acnl&VT6Q|9z1R=&bY(eejy~W(dbC2*Wr#M7>Ei9&<Oa2%Cl^D=Kr#xTE0DQh` zJIbwhOmD?vU6eJs-8IFvHYU#YG)DsTr2T-n><-IKYUERlvD-J^pQVi$ns9EOWt0ty z@5JMd=y?Qy)cRybOrM-6xV3h>M@%c4#4)rx1KH3R;A8?)@jW10Hx*|8+AR!)cHc~K zFzSUNIB{(%2*OLHa6};o^b+QGbvN`oxHH%!K`!werl7C%lWq%?9wqSg7(=QvChOKe z)JT>mA81PzvfMj=mgYs24bXQx4{?a_YRNGtntP%O2-_X#RQ<yjkazug{Zx4T&Tjm( zWLB-(@id|EuE+xcRW;a*@YrQn%sD1RKg}HUuVY~8_v6FULK;HD<CpizKqlec3|cWV zc7uV@cY;Gv1noxoa*wGSH6;NJow3aoI#`iRw(T>9n0&7iR~A4d1BYyuiTyOUC~c0b zs@HU`0PRJa>1WKUV}xsl0Ij}8CpT?l`_Pez7J6LpNC(&VWf8Pn*In(T*y&)pX7O0X z41#vjG0iGRi&WMpxt=5*G<Ht+MLz^3Zpj1WQ`EDrUl5cn{37Txi_Vg@svW(f>=9%d zWG<W7M)Ax)K7{co;2Crf=V~&SH_In_=j&-DYFI<a9|L=VY(ENkpOf+-vpQJ2>1qVJ z&yis5Xmb5c4uju028WFDO{8ebaL`nCSLMxSHy^QkP%1vd@Y-V&%WSg1hdMZxs0IYb z8keaed*u>86XH26tG}vsnLuUn+1vL4cp)!tW2=f&HJBD#T;#lI)@AN}U)CYbS)JeK zU1^#Zqcs+hK=80O&UC<q0-luXKZ*lVJ{4tpO9mL>ek4j??ST$bdLgJI{-f?&WR+i; zjb<m`dac3vjGwTzZHJk_l9G}l4fNeNIDK<&z?^*5k>4sJW)`fDfvq$qxN1XF1-G~1 z-5HHYLZT22#T1=RU^3u4J}*x>4RT*LX|TEnXtuNhD?ZgOU=b-G5`p+e$aP7_f*5KD zj_12*{#@;6PMrL&yqIe<ER|{Fe^d(G?T;FLp&Zr~k5?h-fjaYxtIj9ij9MzN5lZE8 zE^}FIGhVC>Yn%x8vjmjNbtYa4|3jyh)ioDEbwB2CtR~p%5`lG0KW?^zqv@r}1QiT- z*}R;itR%HoKJLPhut?4!cG9F^youzhm)g~`o!R5zdYd+%V+QO7n9=Tu{oQ@2lt4qY zhbteV7TLd~U{n%*_zpn(YXwvZU@qOv)ka4Q534EpO9fiz=j$2$C#ptQ!EP`!M*GK{ zt(xO`aWwI10q<k8=Ct?qXaCTC<79Fw0;)pcEfI?%w`_8Va462aT4<mUTf~Goy4)Ch z07xP|RS{+fjU$;Opq(b$tTxs4#I_cksb7}}bc86uz_cYJ%)GadN|2|FBhlPU<`N1J zQEnlpM_<<DNQk6vn(QOjGX3y?ntqWY&gJ%5Ixo2C&K?Rayk4L;Z*tz_3e%g{`O6_0 zunwTIdhji1M(z#9&T$^6$I{Sf0TwgOrDIIy>x<SU0(+&aVZMq>DJXYQ)&a6pbX*l4 zAM_MD_eT&cP|XehkZ<DAb?>+)EZ3&-sH7tW4XS&NJ5ivHWdGwA9%L>wwPJ%Du<tyD z#hDx7tAB^BM<zo)wib4?V*2{C+8A&k%i9ehrxPA0|3r=B`-3CI;q$1$5eViSb_$3U zc^Q$9zN_?IwMOFZaK$m>(#OY+nS2~!<&7m1k^VH=Zy=dQGqH4H_Cg_I-00fv8DJ;e z2W)167`38y)?%EjIeO#?$e4Dl-zBrQMW;k{DJM&iG+6=6lA>l|1nUC>{SO{+L=@@g zWaOj!*@puc3lr*t6WqR!R=%-9@OgqQjGkmpZteS$y9`$-J<o%E@^iT;=6&3+u`T*} z56b4m=e*;xp&k(5l0VFszVU$cY#J5^qYVZHe=_8F97lz4VEmG_3w^K#Qa*rk7Q+OE z7f$gtawq)E!ST!;9|`j+749(!3(`PLNb2BY_tFkq`)8ig;}^xsUo-1Jo_owS9Zq;s zCrv__#8;pG{UU0{jKMy~X&Aaf@vsG-QElT&VBHmiHs?kPs~C<nHtiumqk8LoK)=ek ziH6kl1dp>DD<;H9Zb~S7E9ILh2z06cuMp`sgU9<tlZxbKBD}Ee6yb`J>*omQdWL^h zJuNBbrt<NGgq7O}Y;+1A#Hfjwt5goP+3rSIX@z3ipv!^lK%~h6upb|bNgjf@ObfKY zic)wF5vn(wX|MX;b+hKNU_n@ccVVd3?v)=>hpao|6%E>vx|tTlp`o+lgc+o%W&*cm z*PXsjHDvSCBOsQ5nb;hPI#;t!g2@_O9Gu7Q`#HI%z9GW~(mjZXF6HEqR>V+G%PO-b z3*b^pTb(?l72?M&T;DK`-1m?rf#-EM(OB!+dmT+gLlk+`T6u4?EQ0|u4-qK`Aayl~ z3HJY0$eBIH3XvF_rd-DYlwQYjt9FuBoRUeUT^h#@GJt#Y!5Z+wJB`V^tWuc!#%T0C zVjYa~PmqO9w##iWAt<94fZ5vG?#gCi9uMV%n3le5#kNv!GQuzqZBJR9aOjG&MbmZh zVhsbD!ImJ32;cIUMw{rl`SQ)n{d=diBek0w9r~q;*xq7Y?K)l^7Dy4ThtLaZBG#m6 zkYMXoz(=c@;UQ)|M5>@LR@%X~D`hQCYm5PmR{N2<OgS2@tEsF!)AA3M6%sajY!EHa zC~VHZvrACZ?HhvlyJN-Bgp3j|AmR!?6lPtVep1;=wx&SiEF}y&N84cz%)lr&SN3;^ zi#kF{=X7$8OUG@d5t2s9oH_R?)M-b{QO;Kn;WCOo=5aU{ZiV~4hg<Nu;6CXd1DtM6 zIJ7?rBQb2tq(GxJnk5xpCYPptq&a+(O##l3lqW5aK`)OuYe4*IqLbhJG2sK={HO79 zF4W}tS8(l+ER6ybEo#2P2Nl#gmg_=EV-_PL^$&K|Eu+bJ>wa=EeV0xFIs$a%m}8|+ z=bh1RK2fUlEl56S735%?g>Y(--`ZmWT@8Cz%Yz*sF5zo?pYKl{dx_u>HH*7Ntl$R1 zkk!@+uB>7je>VWG+8S=Mu#p0Yq}>pALjIWa>K8@0kVAtFn;{lKV6C`I6-A=oG2h%) z#WAeardJ6_z*iKt1`ZQGN#&^UWU4yUqLGokx3{;So~|01rX%eb&-&>a7q+#8gv{}8 z$BnxIP-xm}!M$t9rI9%8koMi+t*_^h8K-Li!giVgV^-=yo$azL4#+Dw-<!>3JQ)yw z#uCk+$}l5MNP|$@rAvNcrU5lmFD4m=gs&R3pOB0dfCNCe+AymD49<7F%>`CmfQXge z<+LJxEN|1ef8Lt!iaBEix}e&Ql7Kfr<n>v^=Lo9i5kCW9dl>*$!5l#qG{!^v$R{&9 z`dl^_+fVJ^r_srM2GONlLz>m-Q+XPFTi~drKNK#{E`L|4MzFqXy2ImJ&^f;z`cS?b z_%q%*_S?@|jYPduqS%qDD#vzx#Z4?^5oJ+Tf#Knv>PNN_hLg%K|8LUmrpNYTzTl8I zwxs})VQ&Di#1W{8U<`M)7K2pjR{9-4vAL*76+mhZMU%{r24f=*7_rmJKM-L5ftAgV zT|Pr2iHh@5@aKa%2hTCN4~Wcz4%M+!PQa{Ad?mMtAJG^{lyMKE9iE5|&TsIK3zd^a ztJsrmbvc^y;V$7ekA&Ptdy%ow%s>IQ{Vk3fbFzsV*0bBB8)u$?p(D;(g7;kYcYn?# zCikc5lv=aBQZ;$e!UX3Dgny{(^}d%dM;U|797bZ<B-e`j%mor2RTKBri~yZlXMWm% z<Z@2&;tXK?<*9O5wsUHU6#E%di~qn<fW<vbi!G*xKO}C&Z55f@?a2wf7<(wJ(OCEu zDqS1Oa625o4rM98y2PnhK|e#1fN-I7pcEt%>V51!fd>#*E(1~n*rzRrVXv$BEkwq* z;;li}$W8h2g@59w)HtU*znpG8=h3D6z$Mx%+7Wv_>4IXvN6)Ut>`prst1qP><%{To zHW1*I>!cGU<q2$A1CA-=b=6Y{GCAXAz+|$rvOBybVEIbZNZ9O!J-Sd{AfrJCaNuN6 z{!ZRhnCJA`vlyks{cyeT(?1X4iu_G3wBRU!)mgQfFuUYMB<BZT;PB)L=fcj2PU^xL zHJF&d%2vUH-2PjHJR9H@K&J!X7CnKo4bwXJa~4SRVVD2?3hPS}pP9+?5Oj7-8u+AG z8GvtSmKYsC%Mb|9;q#49sx$^&VqP&GNn}S^j!<<V0Ff6kpHIdHyJJ9NUOA&d8IwNw zo?3010(8u;kQFYlhC0BML^ltDC0l}Fvh@b$dZY{O3aj|^WfWdwSDiY1DltHcX$evS zY0CDXOJW0ZlaLz@`=eWhJtdK_C4L8^8%Fg8tJ_JVfE2T>lOurQJGBL;DCf>?t~8uh zaSpliWc1Qz@P;Gi^Y*nsa!`ftJw`Hvk!d<-O4W=@$2Gt<QUZ-7ukHAKUSb!21aX@$ zFCtTG8yzT~%{tN@9l;?+fDc419%{Uy)Cq;Gmrz`-269U|Ra{fZF}pE*J2vW72|?Q2 zNX(#v%7CF))v8@!p)kw1{SMoBQfIX<<ATD`AM18$;Y$rhyLllyo%<WpG6+;Or|8Ln zdQ_tzr9E|hS??;OoO3=R<yKS_ulZJ*l<-WUOaE!Im*}OwaaXqDb>dd|cydC~>1)9^ zWa%7t(L3v>+RkPI==CVmj{yqj2@|kpJbT9^ag?d`=zz*)0h0uB_pn673#JM}&XmSY z?A~7l>;G0R=@mLPoo<Va%4_7r4KSXNYjb@l?7mrd!-<_xQA4pCxCwH%pazh2E>?Wr zx0d<dXs9@DsQjmO#9KD~exLjtfd(xMND~>)Mk1zH^RtT}C*GX@MF1ೲ#P=PUe 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 U!v+8d<liT7<iF4V`T6pH0HRC^ZU6uP literal 371570 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�% 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%0D<Kh(m`+Rlf_hU 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%0DWITaW3;W7WC!l&cjYgj5rgG2LtY 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 z%0D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 WqdRr(+O=z!&M}eb|3ds<s{aFIL1;?= diff --git a/interface/icon/interface-beta.ico b/interface/icon/interface-beta.ico index 1ed1ebddb9278e3403dc51acde9a6b0d8295cab0..d934d2fe0ce9e6e4346e128f7789a3111fb0d853 100644 GIT binary patch literal 41172 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 S!eaVPh_0%nrC5Qm4*x%f57#&V literal 38190 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 diff --git a/interface/icon/interface.icns b/interface/icon/interface.icns index 332539af2abcdf60183b495ba04c65a09ba09d2e..1035942e09ebcf66d46c1869289c280e30baafdc 100644 GIT binary patch literal 366740 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 z%0A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�C9Xq<nw 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∾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 literal 448158 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%0DZpy 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%0DWB4CW4mR=WOe;xqhiVT3Jx@ zlV|Tg!Lf3Xla7yz$7&)KB5k!%PJ;a5c)5D8<s(YR9OVf@=^?qo{PoDZEL|c4*2d}v z?G&7W0oAkz?5v4<gn?Ol+T&jEO0rrjsJ(4qbnEB?_^(Cu0zUn+dC6~fR9gVnwjMkj zJZBgx_5#_n@{4YiMNBeBVLAdzC1WWp1*Oiqto-V>bHfQA)PMf$SuL9i#*5xCCQSla z98W?p|HFa3$?z$00MG~priBatc!fMOwpC`NO%C3UmewACAH|?U0eNFy&Pag-t_A79 zk4}guT~!v7zTYV+C(z~2?F6Ag+`o4|NuE{poM+o=Bb)Q5_CE%=>kfHD=k(dHNps6f zf>#6eGmfy0vHwh)>ijUWs8F3UG*DsMlUqlu-ngQMxcU{2#Jx#cWu$oR$`zesw6{bq zamQ|Pn~p3Nz@Fa9dnWSY3jvWWc*Ng`TR~T2<Ks@pba{BJ_W?FS71UX1Wht_HRuyCz zZm?hW8+4(@9a!!@_3b#GD@5L5@*)|4eQ#~bp#%6J+-hPlGPy51Jlr0;G`Qm?DD+E$ z)BIU5(bFk<G}7LH={om3vBJegrkCjTN0gx9bw@)|Ze#}Og<pmEy&sTRbRJDU;K?ij zU#c#!YWr@4_-NX|N7#DVYPY&z+nLcDw<>jf*T2*ml^DK@*Z^U*RQ8?U$VQyXypwQh z^4@juEF>`JD}n;9Ohl)q$=I9K9XqT)^;>4j0c!B?1Cwp;)2o4^mii6|V8B|`G~ngH z<Z$Nj(f#qI$#dq{4*MG;VUmK(D3$nah`;rJqe5PbKsS_LZc8%`-4EALpu@y235?Rd za@a;ES@6Ueq=BLOTSQ2RxVLBJ;;w8bZgnVVho$0rb3-6D!cx_|I!P9&OQ4l{KQ0dv zJ@pk3R<?dpN99dW#DZuHX1&g>@nAT=2cNMv&ueOGq8tut1<^EdR^&S%akxh(cqbnZ ztU8<aTVF_Hj`K9g{6XkeYLsT_K$;L|8l^_+j1Cx0><aAxs<|<{awZ){qf95tf0=o} znSF<{zU_=QXzgfvu`IrgTkTQ;p|2Eo^eA<900Eu?5j2Z(o<w84pB&dB+&+%}eHBo= zVDvAq_rJQD*6NA-V`RSAX@>Shu+O8~_vn5Qlm6;(AIr1Xx22#4KFO!fi|LltwhiJ9 zE5`N6rn$+7+$meVdWiL{O-s6)EPX+q5@Y@xrc3*i$=LqO$eU9sYOuy^qt~{k-pA5< ztCJRn<_IxGz-Uy2c<^<Ww8sV?S_SKLTQS;~2&T{@K@fC7;U54mq=4dbRhDJxD<I8n z#(ER9D5H%SFi*s=3kshFp1O)PS7OCy19zC?LWvGYm`U|!C%(e5hLC2j+K3?1^&8zC z`EG|9ndi(2vmH`R=C3RLbe>d2w5i%)#5ey{I=-ev6$*x<BrovTdRcmM?ne1*IcD_} zSIrRbTaOo80?vU-II{;Y4w8}(;Jd~|7Fk-upTW(c&LuEFd^}k3do|vDV2p*p8|;gK z@VJp2KP$^8OUSEaQ9(BfC7viZ6-5=a(0$-U8VYsONazl9t503U=m^p;*>2j{XMgg! z;IRIuq}t%>Q}x)_<pad;bpQvS57pAi`HEd^%Gsp)yfKkTcN3CK0!2k(xvzGHKKQ^) z_6pLgo4dm^g|l&%p671L#Bo62cGaQ_>#@5D@qmWRLs5&5CrGd=@}o|f_}D%#9>V;E zLip`o?N`AE!wl=UCk-2exrVp3PP0FKa1tR(&YR@C)kc;f@S-=kL08rXV1O4hq>c%U zB##FtQ@83i0CHfr7J`B)P-NzY6c!G~E61m>i1P-tM<#7)(vupCdr``|)@HoNJ4`|6 zyuR0NZlC?>My@@nKvm@<<kh~W+pd@Lr^tDVazLW8t1Z-y5B?~&*d#10fGF-cB_#Bw z#8VaW%0gc<0AA5j9~Q*qeH~JN$|q|u4%zlwx-l`0_dL#!=&CW{cyMa@KOw?58&qm> zY1gG%X&&SXy*^(ZHwDMYTWlE#B!xhsH@kBUKLF44ofa<*@G8$Dl{`uukJpBVZW)=o zpw_W~ynV<g4B7MsZ^*FtL8LY~9{ekS384ahmzHMM;JG=b00X|>siMlObJKiA&=jz$ zwD)+!*A0q@TA!n|&vsi?4P)1iix#ICJ<@RFN2`4m@BCX-^GK6ZQSmPk^;5$iUZeEW zK?NDym}^S~FvHsdgBqXT+KL!mSRTurkHoGWd0WW4>=Fm8dM@#W#`1fk-G^mwgY1c- zp%4Fy9J)<MHdqNawQgIrjyY<xtoqUH=I!Z8eRt7=2!@TFa_#OzR&-15*4EY>;CIFd zQidK{*)<5@ic)IX9>3~s*K;{P@)LFN1>>&(CZH!XU>9BW_wV2ABq)mDE&dBZf-R@V z(J{7cVJ1j-6Tw-$$p8VakMlecrzR-h{2Dctf3PLyOVPA{(f{aIx#E|<?i*UAC+n$X zaf?fJWHMxkk?Lhh{~m#Vs{3V6AqpuOaV<e>)}9c8xb8c%-g(DxnAzjeb{Gflq@Vg( zE7x`U{|uWw;$?#`nmmk?2d3Tm68avcBEZitu9wI|)V~M6v9%A8&h54oY_lXSZ^QY& z={}YD+$g32fURgeu-F{?Dh9`0HITE$d+jHR5a#Q8gT5odj@gJ1oRTY_;~`7l`P&3= zT6>_VJv6J{@Mo;RYw6Ekxoy@<Zsqd6{{d_xapxN)4mHgAX8!G{@)hxoyd*pN3-Fal zbMOXN!1?s^N&J{?jRP6=Dv~XI*a1FRJ$wImD%~H+#hIR9(n9(5yaC;utKP8O0O35I zW8Z>)Qph6n)Xyf%Y4S9lm$dD$;h&CsJGSE%zxV6vM6At?<$gaA3<2T)ISaX1iei)T zKiS|eajLafc=F;T&Ksvk>JoJN+ej;U&5g5Yopka#gB!3BzU(kGILOsvP!;$38i27! zf*rvVoxq=Ke}34FbX-o`G!dGS!M38N1a0#dJP%C7)T%s%_dB}Ww+G|WQJ)A<%$ugt ziPV#E4+Znqj_iX-msFr``2AQn*X3j-7+xWY`-WvDpXWz4SgquNzsrO?8t%%_5g0NZ z61jhotDx80n@4V6n6%f-bf{&WM)+0g^tWj6&>?R5`5>XPn7hJeDD6&I+k?M4fevQE z*8}s#)1OPIdlVUFbYwAScSgQr#T~<oc56Xu<4=m%QmB1<u1>c#=0*61ZpiQztUmxO z=re+9YHDow_<({Tv%m2+!xah8frQo6w6v}1xw*N-q22b%mr1xmW#YxR#I{wJepJ)H z;*3xlq{H&;2P<ZfZ{B{NQvP!A37O@L4aRYgaJE?sn^Sib^WgDT3lzKTTFkmR9wr9$ zOmC)W_Ci&DWL0woJ0e|*v=lK+V6u0Hl|7ihcdQZD5?PI1j50E&`nPcZ?pHf(qmgaC z*zX;31*C5K%YWt{N#{1*6hl&+LnH=Q?{*4QcMz7-ysXa%vb`01FP)~(?g*McOZ@Dz zxG#g{SRq%+zaIUh%uPy4YD)Gh#Yvlf91Kuo!OM%9z-x!91JvNuh*^b5Gcg^!4#f=5 zza@?a-rn9s;&f}<BRkEyZ-jACMj}>170kXXO82%Srv&LF(Z<{&hWaMp`8Yc6hAJ)l z$nNBIB<rSM+mR~!X9rF8O8^I|5qtLuYsGNgv#{()97tO2<@Mw6Kr(3~{-OGIUZXS+ z^bpQyF8_S6m9V{44gRa`TAzFIX{rnxMOv8_V;lz`=(guUiw%9-TK!p>VFZ0IUO@wE zlD|3c+5%!I3xkU{ML=()4`=FJ7LTQl?^q>_O)aiv|C*2q-oZ-BgQhLsW9h0Ta8WX> zKjnZ(G{-5Xy1H6eicAv>g#86`0OHZ2MFS_Hn)C7Ar`lOkZrmRoP>hjR$w41PB=}S2 zYdwWC<?qD}5WpnSsDm&jxG^6HPcUJE{~v#u98t)c^+-p&eD)6!pQ5!CC&7JFn1U~F z9PxIbSwiKOm7;>;tRM6Cx=qXV=6i_1uM*fI!gI`bWrkbthJj~;pFBpFT-Lm=zKG>? zUQBl)DVMdu&G{OBkfg}N*9ouvNXvb7n__=fV@nW(YA+HkrtS_%iBS&moCn|ircK@i z--&$MI;V1drW|_1J@sX+WU?E2xt#I79rEIygpttX@141i)WE!;%+H@Wj+m!YKYsiO zVMkv70lZ4*$)_Y@`XkFuuJ@KR^mX!1w2K5MZ>k5LOhDuF_Df27@+~iWqG)_=a5cU` zEY+Z&q2>dTG`YkR6Z4qW{LnEKR&5W!&WkGhQ4;UH_T#Tv0tdo^B$L(ERTCGev>Xdj zgwDfa0d;oQ*4mic+YP_75J?t`L}x_5w_<uOYIDvvaVantfDYw)%MDBcj(6c1J^PP< zHb)u}=xk#Wa+xm!9fxhs#Eten*2>se_WhUNO5(O-cylf|CGbVx0v!6;={B#HeQN?o za^w|vv362e36i#@X8IDp{l@LG6OB}!mt%Xg_ky}U{C>JIQv2DdE^x=1?HbDS-eboP zq@J0WV@ck2AtCF!cVBXLd*->8avb4TDd1#QflvZL|Lc6>f+9^Y39)qck>}s&yr%MW zDu7nuV;djgoNfhC-rQBiY(3L<{Lrd`XSKUZ(gCE7IQet|)JqS-gxKB{@hrU<vB*je zQaU>DiumRyNG$U1@G*XL)kCQDJz@UT*n@YEUQmo}=ROpU3EKbIu%iG2=(O~f-I?Q# z((jIs21MGZXlQ7ny!uCFWoNZB@4Z4j4f|qjZ6}-ctj<~?DHY(c{8rMo1EtrP8Vv~3 zB^I6*$+-KsI<gKc`mo29QDfnAyYfPIn##rbWzA5jpfG>Gr=SI+gB<@?`?xPOU^JTP z`+j#>EOTwrm)?>Ua4mBh%;kktcIk)YfdW1&B$|H|#QnC^aer0w>}*pjFg=99O{vqS zf>+LP_MK*DBB!}>mVZ1rnFnMxmM?eX<&%}TZAl3z742hTqG)dg)U>*k<_wKle<?Cl zGaEfb5Em*eqC<17bt?A?@nVxgG&D3wZ79PQnsOJ`KP}92dKS6FCkL8ejivuw&Jv|T z^tgf`Cr<UqESrC0U|e6l+wz7w=E>Bzfz_QT5hoiL7P-Dz8qz4fTkq?Wh(tO2i$5xW zdi1)3S|X2$Ds$N2if=90n7nQ{_vf>bj6qvPfWGN)B$8tAaIa0jdqKhD!!F*Dh`lGv z@uR<x-dDYvOg>`=%Xnk3!d4E&{1|k)_&xHFc@{P@;3$4gt8;vJjVt!p{54(0!&Ju_ zVu=m4sC&mOi3(R6ccGy*Rr&c`vtBNJ(V4*%M^U5ZES|Rmr{Z2d${2a2d3*kqFl6sK z;_mWLN>bAePB9Ao)cp!}Z!uTaXRjywqTOuXBSOA*Pu_dS>YKNqh5nPjoVtv`WN?5K zbB#Al3>o?63Q3xe+;Gqtmhv7NH1Xyn;T%$ulAfes)YiE<Nvrur^O404%W1WJdB3)% zD4wOb$nxm{hX&{y^CmGgSX|?}tn8=#vJPYLBb#y`AcG1k#X$<s>L-qTnJ6W|#t!bA zJ#=T$a%evk|8i~*y}-!3!2bB0WBB@xF3gK%w4f?Wm7O!-K_KMPT5#gu^Yn<DOJ31+ zhHba;XqIj4#?)PsNZ=B&G`)(34jkml)y@=s{O~XM1o^q<I+T$0Vtu>34L9qHm2$)W zob*1s)|UOVFS%#)KB*!hF2Oyw;V7Ax6ya1UKB#XGq$w^t=||ghB>rnwA&L4g^D88n zUs>|hD9H%JX*%zHuy@3DJ@%e2xre1(sn~pOU%+D9=9W(x2mlT$deb)DaDM&069n;K zz4y&hwTAR2p82)B+SSrZ@RX=?bu6j<jHE=Mga62!y0o@GU)X<&=5Ku8bX>pyx2)*- zTnK6Ah;YB%BH(DmJ%hpgfemcme?8kL_^N5~c28I8x`&5}sxvWNQf2>}u@df;!7{4$ zXdNoNCO#hh5b?|n319KZy`BTd7jnTsX{h)yid&0O-p}CF^4+spm$t*!>%D6+NLWex zLgn(MU(v#?RVVFP;yiu{sl(&^NIE6rn&!U_abKyRfKDYcVnI_F>rSYl1Ur}e6FC~P zn6)rC>Os)`%%}hb2snk`XletFoaBuu4f*~#VYeAIoRIb#L+yfB9J!$Imeu(fXzOR+ zvu`iR;E<kF+4~xG3lr<wboyVrFSqwDkYFSeL~E;uW!!zbZgTLYR#mo01d)x&;mNpe zh|heZS7xQ~PbF3j$utYVr8-Ba>IvQi1p%<@Cn=M}J8Xlc1_S&qL)$xXRE#)`-Aj&o z=M1Vx{`iEOLex+Nfg)~dYI;E{h!S0HCuF-36C@O75o|LZInQe74XzC)t|lO2C=sfl z-&lziKtceV`W7a>NhCi`kcJW7?ix~z87ayA1&O+ZKJZMTEV-Q30^T3Y^z8cSJ`h8R zy2^pmp`BOuq_VDGQ)t3kLVykd51oV~bX7Pj&!CpES|t`7XkD&1r}2^EyAAA29FbBj ze1#h1s(RpRpRZCO^DL5702cY6tS{9>>(`4W52EJDKyX-DV`F2u)c&2Y^hrCJY|hD+ zn)@Z>SHO41PR?rRa1i8DRx^0Oz<O85BT=vE#owDNwa4HKqF(`c6cb=s9^IU*gH7F# zD_K__&$hZ|Zv{@S2B57!TU0Hk{j<Q_dlzx8>{HcQWEuI(Uj@VTkHk1Qgh8F^sSCe= zFP+ue1YLVSe@z}l(wWaG!mziHEM>bwo=S}i?V-mni7k-!5;l-%IDIblNFw!#!_WR~ z@3U3CA%Q3x+-AQ&{KnxK%5<a*gA0a207?m9clTpv2HN4LXAlXQ_^*lg@V_QnU6?T% zlG+=aZPJ(}vFq%!|9^3A3JREyU7U-jJ{yhwu#<XxOwYhd6hX}I84_^R$IBKvUS+F( zMXmw)nHar5)k}SJ4yF;Y-=o;#PW9)4W8Xt6K)>SBd?9G%_EnGq?l3Xr@8k=YTj46H zj>X!jf+}x_>#g-U#aUCGPsMV2ziTAxaI$3{6`-uuVVp>EOP4$XveAo<##7?6)KeY+ z9gRGWCv;1~yoA`=eElH@f8*(#!I$>+?<@Av@<&CHlSsbA$Gc`_um6Gq>?(_SRm`DJ ze-TMdZ%!o1S045StAM@Fh0_%LN7{?pDSsh(0FXl;tmH$X<RJS#&ofL%VA{@Of#94- zQ)2H41i|cGx!!qPbYkMZPwPvu&*u}5-rUG5zDyE7-(lqX;x7n?M*~RwwQN8tL&}h( zUvQIBfoCPCvu=^#L$$mKJCdb`vsL1uE!Q1q;XAtfdzN;Z#r2{r(3!*6d`%Mlujsp@ zqw66goZ9|9zloX!3fTqKOiAA-rB1+;b-@=+He)sE38WQNJnc%6%P@ariIdXJO1CI! z1m+?iEW!RTc@?9eNVfMu!%Ywx_U=%$I0q0~=^N3P_x3kkpF-00pR{4&xh52q$=b8f zAajB)Gos&30;fXLOLeYY=EN)J#FlzWXkpRFgX|!wD@_Dv)l|Ue)0oA%TVfRudg5~C zllFZEhp)Ne3U>&+%S5J`wdaJ9r9K&~_X2MYd)n%}wkPo#-Pj1>0S_KiA4w|PM7y2u zF#aXxXNp4df$==xuTmhxO`Ibikl*UGvt=IQ?cNCQ5Cl$dE|!u(R=Q22rp+bxtqZZ; zA|Sh#CpOARll%IkRD|kOUyQ+A`SPfbCnkoR|9s-ddQO4frV$G7<ps?&>1UZ?pBNd7 zP~hhgMoYmXL+cMRm_@kVLGV~^OtTCH;IQ7nm@<o*yBkZ!5CMik#Lz5Ijx8UhTH#z$ zVFXmgQO{H*1eU9WsC^YB-iX^qX262119<NqVs(0RU~R;gR1~8_<GmS_Y6py!V9voT zsnFA>I@9$5@kz2_jWxY!`#r)?6+k`eHb_vCJ12;->2^dYhhQYAwzxNLN&FoqhKkqh z_I5wyZrPwv=c)4ONb=hrKZL0^>_R{_m$`wK9DmY#)onz$$rx6D>Q1A$6Pc3T3x!vN zNo_`QCM@U%{-w(8O2*Vx%(^#o8OwXeiR=N`E8ajt`P1V8Net}N!3>Xf0RMy#BFBlJ z|8FMH<e;J;O=>Cq{bB#xEI!5mwB*m!W8-%8KYmg$1G?ZXIaHz4)iV>Q)cetF0<K(T zEh03X0#t4kfXAkkC-TP9{vM_e*>ijOL6PG3a|c4O3Q0e>iQ;(T&`tBk>bgn&pSeoO zzVTasybfjhxhH<>bx0<n?_c(N%Q-Jy=DH>FzuBHreYyfiK>_yF`h&QFN<v!gm&;34 zl1aiP_FO9G8wR@ar=UrRl%n)|ZoFRHBxJ#i3&Gb;O1MB;sc&wfqqO#hgi0PPQ$LeN z0@oh=L6-E<M<?VfoN@v)U}n*rp?8E@rg6-Ks^p{`OrY&EHoKA5wp^A*y$+ww>P)Y1 z<Xa-II;TWqDJa}1=pTJNNho@xql`*8l51TC)W>cc0k__bS65`^OZI2+{N=#R?i&jw z^Kdsc3jA;Er?Gfd7$x=em9J_XNyb_*))0iY&=~fQmdcbDezSjpPzWI!@N5-E1c`Ox zpKsu|;ZDo%n0SH`VFS5x8w~fQxRhptVf>`7a)yyS_f`-c`+s{AWjk7@PmOyE6;8hi zR`lv;`!gfa_Rh}ExuTXzAQHmc>#?s|i12(gOrA&L<Y#B$pK&Z?M<$3uR?ycOj~yxK z7^*??g`R?fF4Qt#V;_dyxDS8W5IAMcKle84g1C(EGatq1412e#_q`##+-Fhj+5-YD z95SzTsN5)E&oyY<Nd-z-m5uLwNJI{L^jR0u75_#asjicD$3}k(l#Kr>qoM~sXr!i{ zPx<GZiE>lpSrt|a*bt}AW7%ell-iE5Eb+5H-Q$0vY;|q>q{5(>VxRqmmXWa4J7TFJ z_In{cRYH)<@CQ%o?8gg;FwfcVo{&h`8zz3HKIP{mR5B=dtP%C5wOA!fhJwpR9_F;& zd^{}ca=D>~xXOha^T<|a=gg=8=H0gB0=&0@XT!gK%q{6rPY`lyyy^e{uv~!QDJ2ik zF;D~HNXxKXp!d5z5`<9O(nIN?Tg*K$Qqobu6L6RcUpw_%{(~pA*yiUT;Uk_O&YrY~ zq7#<CyE!Jemb@jC5PLGZyU)A2AAy5OhRKmUd;0WVkAlJ#eDBZd7f_G8*pzul&{ehl z`2Fn1;3Tlf%oNcJ;GZPYi?y9UKM<6!7E3Bhh(6*)O*aPdqTHUc5R(#H{(|{>XuPvl zk9#8YKZ<RQv~s`X2<HHR`5qrUz$D!NuvEAz+00Yez&5P`fYn8SSv0;Q2yxDPA0IN5 z;Orft-nh^}#nJuuh?^zy#B7D2#&{G?XE!e4X31B*;pB8l&3#0ejaDWtu5s<-Yked* zo>yhtPzMmiR$Wf~E_e~K1X9D!R&2dzc(qtc#Bb+9lVvN?nS;T79+;~IxZ%&`Eaoo> zg>i@ip1|d&fL2H=-vyC48PKTW@5EbYG|TG!PF=hLV1fI`>rfUj;JGhXr;1Ik#S?GF z>)tuJ;k8_FO)Ik1;zz#w?bRtFXz2~zq@pz+^&GM%=LPJDH!hq`*n|%eeB&Dg@0_=H z@);2>tPw=dddxc2aqDDBiDmMnrN#g#VH5Shh9v8Y#Le--MXG2EUay9rb>T|7rPme) z?a#fxmH|^X<5jJH!J%HkG0DOpN{;mL{0cIX7Lt~{;OEr9yl{Sc2%yRXsoq8yb@L$! z+ves#*2I=`Ik{$wFPLc_$Of*MT|DSP;12C7c8o}bK1spuZXZ==Ee==I9`EDLwmB}g z25EcOa?@{n??jP%S}eK`2)T(4Wrn}?1`|{+i-SjnfmS;NjoAJl`+H6Mt%P%E7t1HT zwB&e#dPH#^`z*4=q+!-rqIbxUmhjoc#1%F01cQBVTpk2lNj-V(tloM2--CW<yCJC< z$GV_%|2>ku#Vj(Tb)@{Z2>$Y3L*qQg{>cCE_`~vm*X_N+uQmV~Hn45yy^)#U$$rS) zH9_J26?AYqFXHFVpWeBMkk*swO6yV}iGPp8ynGY$Y!}7}<?QTy;x%QeW~T6Ymjh&@ zvQL`Q^$qR}umSOeG95ge+gHV*S=oAo-+Me&qGXiAZwPhvHH(YTd_c#{Wf8p)^KTcE z55&xY<<{=+w3Jbw(`!AUASt(}2=+i65CV~QSJ`??#KchR@iD4P=R32a1EGPwitc_6 z#V+!xrxn9@p+9iuz+^M;tFqiH-Ci~$!g`voqnaBBc#jQ}(dYp0d#)GwpwYI(3`rL= zvgz1-gKbG2j2^|UMK+f+fPuV2?5Fm>Eu1!J(_(@Iw;U>D!;eXDibX2qjgypbtdp!) zD9zIeSE}Y@3QI;YxORB3>@#W$b!D@AO~t|8K-czm5&?2ILKt9Pv}PJVUw6^#zTj!; z8!p7|nUVIe&Ao~O`o~5F1_n!UBCQwnCg-hD4><<=>~3Y|pqI*dbzaLq-`ZdcU+5b7 zEGp+M>aSh%8^)lKd?W;KdBYVw_Y@c#0OsueF6M7$2$`@>mzS5{&KCmq=_X5_A3tC5 zDT%14Yt6|0T~n)QhP@wfJjzf@=#IBu?9lLo^=L*dD-`BzjyXx=0C0U)GrsSu7fUrw zQgH;U3kASw#+*kNY;x!p2+=20)3F-M)4NG4Z3OFA%Xot-BB6c|BY~asyVVbNIey=Z zii*fePEfqLrv@Pvh`$cOA47B9H5ru<Pt%?tG2#JgPg4B7^dLxVu!)tG)la=>fB@{) zg7lH><`&wv^Y8V3+ufpvyL%baPBzltY-;Q$nYrK_o_2=X>m6?Ivd?M7{>kAi90Vpm zBS$&$^gG{eO1`EhL<aicl?+yVF|oa{$B1JLbvzLC!xVrI>O3{_?zJjr1cmwBl}}Ue zho10OzNG5G7Z_X5UFv@?FpIlcN8EuXZ^-aIDA7)S@V{-YoMB_RoSK|`w!hHQq#0b$ zfeS|mcwd&2J*@%*^{FCKa|ZYJoMo09x4<eQ4@azFRX`Sdd;29R+WO-J*}V%%6m;M; zLkvxoxwNqc&Vo5fKk4$OHM1(z6tHwGdb^Bsh2bT;c8xC%qZcey0UJr8lv?T!sldS; z0Cn9qCdVMF{qY0@#pH!;yWsxT++*+KlNd+bg?Ji)nnrt|VnzAIZzJ>Dhs?{(PfShc z@!HMQd{92QI$2Qqi_OmGAz$^6e|SgmgD}Rv$2026Z~*}ULKQUUL$F*ZI162TQPVMF z$&-MuQ0ITTrORm^R@mI0<Xuqmae&k@{Bp_Kh=2M`zYHp5duiCEqjTwbA{E$Qmj;-p z{F$xeoD+xy1$NC8&MO2Znn+<kWWN77sncis8Z(po{zHc;SzIl?OP=3st<#A7_0EqF zf~K~y7^PsDD#?&A(fYWq@}~TJ6^*ORP-{gK3IHwOj{%Lx+F*=Hv#%RjJ)lzOjNQUn zHXDlFLRDII%VkjEi0T=9;JSK=Uw+n-JwuswdMn#n_$<BjE~|<(EpxKS7A4fWcsqAO znU0)h9&KmO;{Y+{=Su-I)V@{+tEV2Rk6gbOArcFMHglR$0h4LfTLJ2lZN!iKPFNHg zBy%9vat7n6)BSzVcZ}gdGlzve(*EOGZ2jp|zkk?`v|i46jNCfk;ck1fF?(!~UjbX< z>><?+rPNb>sl4<4eL44w#oLfbW11WNR{jZDFiA%!vZSkpBswkuzhc}%a^7>?_!Y6- zyPTX>IXL59_@if%byde$2y;YwN6@IS)C;o#;i-pJJj|T19J0_j6H5O4A9ikzc~b*+ zS@ts@#z}h30)8bGw7BruqQ#Tdz|6V;nB`dby!`Ve&L~;TtsrgBG!?vA4HAMse3Y)+ zZ#8~D1?6p}*ITgl#k$vr{^uX^P26JZ<yz)!WvIooAJ<Xg8$;O~X^8C0Wu1kacNMt| zNZOxYpSE`xKYdC7!6fU=<ZGnf*I<PwMFSjO%a*w<|LmR%zTWjwe1ugjBGnP|bS6=O z9MVlqcnG%xVfegS-y0rwR7KJ{=VU|!uA)fEqd{}Z+6nZRg6|4G1OL1Ri09k;eKi6< zlPrv>heVg?U;)_PoKtrjUAyy(C@H8#0-;qdngv%fC=S1Nb0kAury>FQZ%bK%+y3B{ z=g^_Wb0ZXUr?$7ZXWhJ6mvuLBzu;HFZ`HyUo<XjkhP{5WeJ@e-2N`JWyM^i3?*%v* z`nxG85MpE5p&BMb#&=5RAQGJ}QO`7t=59}1aP1@|$5i%S;98hv@6j9>=ov3|JtS6- z#ERPx^>1Z9=dLHL5!yw1Vmxm+I?&N!dbs5t2!TzxU25TX+O$+pvo>k%E>(;>2tB-^ z!PsWhbX@THdSYlL<5e2eMi&x7fVv>A8vjF*HNVc)?Eyk=-)6K~rkmsTn)Vfr$FxLR z0xyqN9rU+3X&cJ{%db`TznM;$!2qUk6aKtUqdWghq5WryQ}_2;91Pxo#wVtY@8OCe z=V}17@M0mOzmqdFGv8W=UMo%nQl=`HhA2$#zr|7;N=W>0hY_mMc$L5iVuTHU|Jb7C zAd)$FZ9T*yMYQ^3O#Y#U5JeS-$xn3PNYvlxQ1d;(Xa@?9kI`}H-YsG>K;;Is{g{nI zrC}@o?LzN#FC>kXt<z_J^RN;&skPD@ECW+u$CY%U(im4LuY^$~cP=h2E~F=y=77I< zvmYMV^;$0$O<a{APjdV<dfAjlgx<e@zq-}DNENZ8k@^fjfHBWumoQXsdSwLj!Hkgw zn)KbGjhRdr^9?CEy^!s(K0MU4o)e(Z;`pbE{7c_AGM8GXq3y6%f6^qxHx|k$th*EE zm*w#Lt}y<O#;Bmzgs(xCqoBA*p__%bED!ZcLk;q@U)n$NxWuEN18NJ0!fMJ|;N)T} zogqfC*DTqsunD|8)h=~rX5ntNUm{_}3*30gcEE4rWC~1zH!&8ocI~4Hae(M0?=vSn zPm8A}<Utok=!;wdKEC>BFF4Uw9YyD6m}#$>GpCg4T&lULsi{!brQz~(q?_bwE7%(K zajAW}1+z;Pv7M5~pYetT>6^y_-O%d+f#Zr>=HqCE`lI48J?SFm!6Hd19AHlX>7fqD ztxNvZ8W_p@dUwaxt8}-77LkI;v(w%+ojatUfI6AVAK0u@=6%VQW|4#`^}IC?vPvZD z0}nrjL-9ZJy7r88zl1FDd#=#)vdWys{CXk?wRP8M%h~%T6{i~)w-mjo4N$><Qzu9F zZs#)2<!PPWNKObg{!Vpz7m?V&CYEt&#tZk?9sO*I_-R1yNNI>Uw)j#g$3J8S;R9jJ zE&@tf_`RQKr3-UYbp)SsVrwYA1ge{mFxz=5qP{WpFd4u(T@jGb#5`U5FM`G`WpJ1{ z4Dh*pzR71_K&0*FXi+Ci$}JRz@V-s9xQtVfq4^a@pa~?stm_a~ln%}w<D~I~fvJJm zyhJgi0SKp#zT&0=d5XLK`)AsBwg3IORVXoPsuM3z<b4TT)CL0hmcBdJaLiV*aLzBc zXgWc0mqhG}denX7Gfl{lFC7b@2P1X-NIGR>9@q}{5>ao5MjQ|}ZlD0nXdO!0=F7Fr z{jh<R>z>b7SmeQz&31C2{`zdy%YjAog?Uul^?jLT!gNQJ-HlE-<?hwtc4VwM{_u5X z)}+Gk92`s!j10+;l6X@MwjIgIe)EO{ICl2sh<~G4$6xs*{5R05fN<aEagLlc=~}YO z^Cs`zpo)7Hz7^*a9{;|+0FYcTN6IWNF8Xhm`dHx7POxg+zxTmXqh)Nb^&yb!wWFgW zBJS1wi1Pc@5_}+wSFY~*WiWa&P5jS;$S)n3`_(Gny~U%0MX{lzGg=V<8&+#q!3xT1 zOpgWC5<xTFgXyNNhA<=mnb%TLaS#N*O^0La=+vvSCoVDg51vO5p>r}msy7AuGVQ$a zH-AWSJ+V|-qHon-`dKF&%>l?dQ;nQvtr+<dD)1vv2)?1Kf<R4Ggl}-lf>3%&dD5cm z;cPe9C|Y3?U#7p(;Vs2E0uU)u5ZqCV{T3%Ncv^-Cyg2A9C@3h7xPaQrl$LVZlb_-R zIliH5Bf61!q#x<u^FN$QtUc4)NgFrN*B?VmDYr*5-Iv7Zs36|yd<n{yqT2<2O2wz^ zmoy33tzlzD1mEa4Gf~H_>sjO-fw{m}6`hC+-1UB2>;v4nh-srCP$<LoV#qb_n9!zf z?k&M59lP70144b`7x)i-@2`0En8p%G13|F>*A654mrQFTxom`Kemvg&Vr!hhLe8u9 zMjdw$3MuQhLh&Y8IP45FKgv-L>`EA8r6=*-YIq3)0L=(mZqF-cLr6;w!XhIHI4r)1 z@^%Wnj=-n+RmKKJ%GxmS|5|)T{N3>B1qCP;aKPy*Bs_y56{P~v)^)G{P9Ei)ew%Ia z=`7_8Fi2wF<na4@6IR8ZfuG4h!6Jyv<SAC2eH1u(4lFusX?2>dWr3uJV#&VDE3BF8 zm6ke8A;#GM?wp4?B*`#MOjbMhrEpgo6g=+hB9l%_;<+vP_NUR<vkYKJ$O#t^rJBK$ z?Cc#al_L6JZz^D@ZA}9beH}os<|i52eJ8wUmp3-W65kYb)!G<=*mGKGC%;eXWPRF1 zXx&BwgvFcFtgpBZWu|3iJ;s3r$EhnA->J-D_K|e7i_X1-Tz_9#0Ocqa<X%sfY-0t5 zMz+q1uEOX*rKP2GmY-Z^*M>3|yKi6F+uKulUsBN9t+YJgn|d;H+9~#2WDT{Oz#^;u z@=5k7;U5@ze<+j9;;XKCcJ0vaI6Av9CswwSIRJ|kD*u(+mI~s!w+wLALf-?H?DQQY zs<81m4csb&iyA_ZXZiG#muF6kt+%G?hit8`OG-jguWc3;_)%P!^6g5Cr{Uw1VG2h4 z&=6fcq6BeO0Jz8JWQJJ%SK-RaiVZ;e5jfKkU6`P3n3oPFY-gw^TIwZn1=FJG>n+y? zKNMG351gMQXd1xakm~B{EW)wHaF+dRn7b^IK+x~%PF`9Bqz^qc%eEshUdA>Y)mU!Q zpdWPee;9essHVcEZFDDr&_b^PgdkF+NEJd4MT&H(g7g4Nji3~1p%;;=^rk3CuPP`d z^eUi85h<YvNLP>^I4eHS`=0NtbAFtal^@Ak``&ZUTyxD_v&-@C(~dtCYvI(OTL8)7 z5r@wv4+mXpPEJm^Q#jgctQX9K!tpo)A=_W&APDd(md!G~u&|vyhg2$s@BX)j7)3Ty zO*l9|<$i2_LFXLm^b<y<Z1+II<!T@JtAIV-l9pXfr@3lZwauq~Pwx+~Ys@qT<bq%X zvV9ZV8X>nBKu+O;Qi`Xd_<AD{Hw-$)<<9V0=0>pf_xH#3&<}i@sIU+N8Do?b#nJ!= zbHMNJ&A?;2w@Ck;S@_n$2epVxI=WDLk?-&5gSaaR{r0tEvTWK1fe})nGq4o69mAiB z82Ca)$Gq8SBpEmXATRKi%PWXNMc*J5dh{#&iAa%{eb=wXJl3^bi+Cw)BUi0r7eY2g zDdhA3j%jZJM|Jp+Gk-N!jW|!DBoiUY85$fMSr!RWxwo?e`6EX1RV<Px*Y<!sKt++E zz33iQ>u1I^C)|XMv9U3vdjYT%<Y~uVS>kmMFrqn44R_pXz10W))wFI2M4{fAB$Kv? zI<}p<t*ZnIc2|{(iHeHKD<~+i3dQWTN(cSwj%Qq3ZbGm=z8-<I0FJ!nK2LvP?V?<e z(B9%!^jYb@j-0<<U0uCXWTRZp|C)QO;Aj}nF~Z5yoor_p5)uOWcG{m-=y;S1lGj{H z0N8lBXRKuh`~W&z`4M25M^USw)#Ez_%$0tBvha&C?+!puB3K%mq`lq*Bqi`K9;1aS z>2G`<9?m1%8PHH1<@B`K2q{DrG4x+h>g}m{Z6B+iC)6&t>v@DYdKbrFI0J9l-y=JJ zBAX-kYWuh*V$2itr^Z;GpbQTJ*=XYo<FGMpUF_|SJqg{!_evDsl|W%bePtDMZVl6< zWK)18QBk~+zjbtU7+*R_P?2<A?JmX9(Ps-7yf1#{^mYV_sHuO-DrSpIY6BvIO6l7p z0_5N;6f9A@LvpVQ_alM(eG=OG#>U3uZ0us?6}E^XazG3RFHTnD;ZA|6A()>&_;#Nh zWOu{S;FLv!uE<;IKI0l4T_)g`L4lO-?-V1mWiJg!W<@pzV`zGLxCzf0ix)#Q<O^$h zPaZKR?&OiBsZjhn@I{@zsqMA^-F)Ywb~ycg|BCV-25S|>lvLPf#w))en)yg@naSFD z7YEjf#~)>oRk!EBIo5{>VAp&0^r<d1;_03y`LR357l6ggl4u(r(HjG=zv+^IIyIOy z7(v(oD4L?)A=zFi>28S{4s-RZNoqj?<x<Q&9gK?y>F@@2eG|K0gC{R1|9WyDObT<y zP1d|>2vR#dfDCuqPYdNue-DS!RIJ7)9fK;o*!tbDeQol%1akAo*U8z4E`cCTyI~*( zrl>@Fq0sA=IBgH4Ab~3DZ2M``$aTakRA$8(1*G4$#Qvp$zP2`^BKkXmoZqQb1{9MZ z*%6}CDWT3VgKD?5YwYQj?Dq@ig>6YYPR*02e|&*erJ%du%Tvu%-ECpn$bO7$sF|Wy zddIv+NqUZ~r)|t{HH(`+*MHod93+P1rzWG}MC`ZT#*M-RnOW(KNU%UOWk4iwuu@#> ztIziagn^*Q1l4dHEiFpCoq)oeE#ll3SD$QOwkD7vgCzTHq_3xjq!?vz_`oA4CMI@e zHcNUdbi5WfF2>wPErA$*l`6)r;P@wwEs`59bCts1ZZ}0o{CSFwK<G9;;1TfUF>c#a zOJ84Kq4TkJMfBnuE5wOap41d-q8ju7E!CcSgANewcU`ZL$%w0knZ$9WT<Lg|yVJvl zPa^=2uiy<AbZjWWwme1TKn>oQ_A?#g5-eVmn-fR%w0Vg<3nV>=q!YaByjfg0B9}rz z(i}j}tr;FkN8Jsl?nJPk#F58!DuK1b<A9}k4Ye*__CjIyuM4ji>7h&EXK(xRD>}mw zi=Q-RvB^PCe&4towTY|Fqf`8T8?h*VC;c@npWMGF<jPp_E*5V?MrR;E&ffe$QLj5O z2_Nsw9p@3WLEanK-X_PRs&#&x*orTZc9^m&-8xiQ93nB`U;@!07Y2<*C*;6m$%c2L zaQ({EJZE3-X|U1BhR2aojwky~`vge;+}vfjO7@jiMah8NMoaC<JgQBB`Ae=tc~>5t zO63u~@2&0Q&!{`Uc~nvKfI2vRP@0b9ks2U`iAQO?cAty2DYW0GIheP+%`N(hTer6U zRZV!r`sZ3ix1k2>Lr2`p2Y2EYU_8v+H%OR3;`idp&bfF1Ub$2{v@WPZj)DYhQ3XmS zB~g8)b}(`l7oM=?ti7QSit+oXlf}^f<n4jn{yjCXCQ1b^Vrz6RKv@Y*n*^?XPk$(# zlGr1gHvOfem)<CDKF~>$jjk15F26)(QAHJzK}||ZimtKK`I`%Rv&0*Ny$Wc;<o_-q z=*S~gUtViM81VDl+=hK;VeE=*^u_g2exW62|G`DV`$`s)K7Fo%bUJ^WBG2u2_N-q$ zCYAW8fC*7%l;TaJ1F<ObB(kNVnGEpF_W@~?0!e@<hU?Ev+H1O2QTrpSUzVr?N#I~k zIYkBj+$|i#U3X%g+9$EE;Z;LPMn=K}qT^hUKs-?uirTBp1W&vp5qU)4*q=UDWcJJ= zZeB>6wzZ%xX8m(YINn3BQHYIv$?NSs8O9}x@?aOivZi)oa)+s!zfeGsXd3`exxRpO z!~+=B`yg$rl!9m##Ia|f_#}NR>`}-E!+YXyAHGi);`TfH++RF$<cun-T_7U4J<`$) zPYUM2)NtrtK<&Trb5S`RW17K~UxLD`^^=+Ek6-~IACgOz#Phy^pT<-7C0*e)8A$lN z3r7o0j1rT$5LB7K%}%2Ij4lcV7MbGf#8KRRC)H0WsG%Z_w93}yIqi5^wR<>V$>;;w z^_K?ymKDC)*5Od<bIeWbJXI3SsJo(oyv1(ZVTk0tjo!#x>^e2>TX)`>u=9(Aq}uSD zE~*-9ogT2zg|X6w>N-0+L+<@~Pg`^Cg|#ZKooGSWV#RIlD<qu=F*?IeFs7J8ON+!b z?<!Q2>|6M}d0Z%>A68(XU5LJ`T|{d^dw#94Q#nkE^XfZ9wdpaG?B$>XgoFuX4;eFi z(G?3^p~uZ)ILX6F`l)-tccYE3C$O<8i!i_9RvuPt<>3v98fb9h7~YqOq`Pk>5^6|i z^5B1zh-nZs8aUy`hQAE>h>)c#jsuM%OycIH?rEmGX`W&q2HDuyP^E-D_32Px?=Sb? z#$vAmTiB1~<F0fFM}VEA2(q-~V1j^BNvrT9-l-w=;f#_H$}eXg$UqTo&C~ud_41(F zu_<uJH}mKNr3gJfC^->A2=3cAeKF+geI%Ae%P6Mqb#PRN222pGa*W)&MFanpj^Iu_ zXymOjt2+t-*_g$c5MfgqOff-Yr;gwxQI+Oo>?tiR?W31K$xN1|p%COuua5p=_G}9% z7LQUP1*@y8=H&bD@QUq`G0%<|zL}7Q<A~Y|yqjCbLdy;25m)CVrHy{ALq}x|`C^IZ z)ppCJ6Qy97d3>*kj<BavA~v5w-=<0D_u<0_e|yeGGc&Vyot)kR8*oM~?KW(w5U)5- z5jhrj?o~cf9En1T&}qJmLt@Ari|*2q%6OA7{}PKp@tl4Msr}L>${Q?1#re{U4x2A3 zD*8Hif%0i^)ZWC6LTquh1O#*oNX#~@lHVW&(<5)hb<(Sf(33Q2f#o!?y5b%*;c5rA zMIMX1@WoAq;Mq^)i;>gr5bHv^w)$4@MOkArIa(sG%*z^!)^mgN)PWI{v}LD+k=zO= zII4LYl&_1`f9**B<FYC%Y3pwZ?)f9Jq{koK-Q47VSIs!&l|mHGZzx)j+mWSx6eb72 z34l=-O4S}i9;Ft8VBiezZ)|L2d&{W_8PEWJM@5q3H9*X&^(2ohqCl!0N31+ggkGR! z557`-=beRUEX;lTrt$vp$IBe8{({hq=A6kN#K+0QNk9^*;Ic2}Rg_>FEQ&2IBJS<m zx8(QPQ}$o69p8u>Ya&^cOuG}+vDcO%pkXN9JrOw<ELOSw<s?Mm+JOQk71aX^LltK) z{{VaQW@Zv5GSo8=DTrGQOTIyll%k9jQDqv*E4F`+ydwa^;yNE*44cval>e2OvxMO4 z?M{t=ccc@7ZT!H0SR37UK@q#rFR!Ex?}FFfq)(q<O4PLrQV3aC#?!JJq@Z>+)I;E$ z($=gg0*D1ZH()TZPE0T=gL1%0?;4Vfe$ShZW`(SUmF4y<#E=C10!4mj?V8c-gYJl= zZ)KkHN9w+b>N-nmmwQb$tlIet;rM}vG(3+--p69Nbe4SIEALQ#q3SQgMqqb|EVj^P z`r<7@{2qA<Cy1ct&>@}|M{<uI4~sGeM(DaQlUK@n)G0cyW(O?ILgp~S`_7?DwsaEU zrPs;iOx*)<24WAsccjqB_5XT_^qRvw{Q;p3jKV+2G}N}O+YULAFuh9&?ux=*1!5?~ zU)ZSP_{pP!4~n^|N&65?e(UO3ZFN<)sLr>><e?6zS_c&F9Q=nm+ylJlL;jFC4ujv% z<J$0?8b3g$G){YtPv(8SPHn+Wz$LZc_DMcSyrH%so~+wmfjS65+&dk6Uvb}hVMwf9 zZ};h+1Nncig(1HC=>PoST*%MErgwh3hx32B1^@t{bIU-ZTFpM<fs=$d0CpvbH!{$o zrevoC0DxLYTjLG@kO0IlITQeZuq(om06;?hKwaHPM_nCZ<m2t~z{42;kk6i(+1%$e zV^aR)>&km=#Kc27`q5hzYCh_8bLp3jAH(M6WV|wTWM;0eqYrmRvIa(wQlAJf4R09* zOKjvab+>=OA_V`^{!nfddqK%J^9>=W+;|*mwEnbYGh0C_`@zS$dFP$r{rug6pq*yd zUDEaDa?6ZVCJ;+bwJ59Pl5cEsoRV-#RBRC|^reOI6=9n)J+O=+mH#{I1@+D#yYCZo z7ll<HG_Not9&$T2tiGj+O9t(gnhp7Zo}8v~t87?t9XhUmkU({dJ!x8Wn(FdZ4t@5( zWkqCZJdV`N#4Rq9E_t};SQB<8Q9Ef@r0=#_zW(!-WA5X*qB_j3!$qNI$NlJi&#uzZ z>_X+JU59&T!Z-QW7LB`g%hL)q&&ikEJwx7e;(ui1rqZiGQ)cILYD(yLHSSgZAS-Vx zd|mY}fhTk=N@ibVNi=R$c5Tq4W4fX|y(h23ulvJIt3Q7fNO18Vt#f|&`J8#06#QBH zxp6aRC@4_l{In%d`!K|(P;UEI@cMpKhA7$jo6P5t%-xZ3VJ|gR57(A1>Sk}#LEvue zKXt-xq!rUxi!IxDmaLEJ!dPX$aqF^do`&Bky3}ZR>VvJh3#~9td}cT!+PtxOV%#&r z8eAA0EmIL5)<)exK`NLf9@|Q(ZwaAC3!<P4EYtVPB59zKOjS(q1iP0mtQ>1N#Xs_m z*`GVwI-g(k_uECDG>tS0p<|UJSnAo&lPX!poqtzE-*aMA2^EnAtMJ1S4BsP1Z6$RM zQy)r#t_CJ3>K~?a)-$4aPp5Bt+_F`aog}m*O5G{Ry)`G-_^HVLQc6hgp2<|D2+jK# z-l6Mfq&BVRy>@l?eu>B$zh8pqf3z4mu{+s3mpl|ccYBQwTe0~4!Kcq^_*1=J*OrH+ zufG|)Cv=%*?@M-1e9x8rhrd@WXf;DK2C~;`4r~<fdf%YYtjr`mbvrSK8$8pfJcvAq zZ4_x02oWUowtfy74EY=~64GG<PE{DnUv68xf#LSG>pgVaXSZ4iVhLpX;QA}Wz4A5> zuLm<1i%+M_qOpVI9|0J-lbZ2#ct+Lc8B3v9fzlNkC+^kKvwLkf%t7&Ib>IX23o|p* zUzq3Dub6x5BimFN6R)YG6Q9eN9yM9)zr6aw@aLTebS4TWjAeD-RB2-yO8kmE!Dr`J zCd$0(?`(W^nhycr9hdjor2fq8ulqIKk-bJnC?jWMJ?<@AOut^zeUsQ3Pb&`6-T8y$ zgIvi^w2am_wDQhixHgsFTW2?xk{W>wPHcD|uNT|sAlW=AazARO{zu1^RPA6Y{I{d6 z!}e3jfKbA>U$fo5m20Bdcd`ok?F+k)CY4c_6@crrFi=rpu$htlg*O180OA`L0zg}> z6j?TXclqyav|6{8SyxR~XZ(EcF_6J}{k@Yy{4H{dyI5cuHcTRk>W2-ZV_@0nWBBpi z(Dx`TP8<#DOwmE0>%FtCjcnjGY#ps9+upx6ub4P%+X&k%P_|j{AF2BB;nQwwNam5E z;n7KX+lRLDC!4eKe<#XJ`q;S8SXc^35(VuC;0Vb7j~}Q-soLtj3LN|Y93`j-^_p!m zPP&tsuM*bQ^6}%x%KG|xPOWUE$wl12#?-UqWb5YP!9N~6GG2=?iHDWB1qJVaZ^YR@ zzX2;!+<(bgz`EoWwOC#*^i=iWS>PFMUyG7Qp3;xFznfFmfj3M?K7al^Iy^kAudn~v z|IwpikV5jGX(`(OH5t(d!+;TeQBn&3`AhHy6u&+b^q}XBZl(~vKeH>f#&T~(n4g~? zoXj=S^0@Q21r3=J4=XFxPz`lJ10&Qo%d|F~)bGN6<f2Q$!rEHlX?&!d9_O&*lD*g2 z;dVp61IxLnfu@LxR>}YEAtVUr{y&~WF+lOpGnRh^^A+5;!0A*q8m<Tk2vqsnftowz z_Yd>7;)57`69)kZ6(ebb-&cT<)Gy8ceMyPSqyc-;6_?)LUYEK-d#Gm@GZc=`<^NA4 zijLXvB&gr-uDfgeCpNm`fY#R=={4)WewB5b1bsSe0~_XSf0sW!Oim&&aIQAU=LzE6 z60_}jI))Q%%&;;A54^n#Rlje$MNA9Rp4=12c=q2&qxgwS^IN{A{*TA{6`)&;!6HL7 zos8!~$OtpcMR{dpa=Xwcn945YF!<+l&^>P7hK7c5zcipvnm?kXF2bI@hC|PnRMj9i zB0KdTd{8uSJPC?sz{UJOAWFFl#dn)M^7pq`{N-hK>(;F|kN-TZ?qm$!T<MeP8uHj_ zG_QnBGm}`#i9d6Hz@APb<>v#O$?182ukSISnI@12{4c<?p-7NX%I99SbmEzAKLu^B zJ2i*i<RrLlt}K^%-Yi(L*w+btU_*9dWc|qp5Qdgus12ONBChMf^cLSmTsMHNsBhN7 z{$p1y6C@9?OyJoV_y>4|D@<F9dnDv$0WKy<xo~x@k~!<kZMND9Xswk!<<u6F0Mxt_ zG5#N0P&bH<yJ6|_->ji?0%%Ok!otF+^WLy48drrcn|2ADO60H^<6$C|Y+2pz*V8R; ziU<DPm>3|O9T~C)yt54cFG`Jwn<}F2bNsg{%4iT0wYewPy0N;t8dXdy@YcoQM7eN- z^)_#P-UA6NMP(!AnEIMI72ZE3i;0bsGp~D%YTKPe_Nyd{?!So}&Mb+ez%n!Rq5m6! zJP`7H0(0N3j`Jf+Qj(GdXy8oW=Oddn7WR5`U98m2lESykOEK;Rn9-72>LKCuZ~Vx} zNZHS6M8<!Cg1ZC5px!g7fBR=+KQ<GDJY&X~y1Bc#G0><K+@Eni53b*JPE1g9L~tZs z_-uGvP~!ixot@%HLaiA&WWDn6E|EhHDVG1)a~#n=L0;H@Rzux^Zr!=i&Ac%oEh978 zd0j_wuCH10dR8jB2+L;at`#O{>hKtsm`_(r_En#FUt3xYjYzDj<G;AQ`3wjEw?7f? z1`(Gg8g}k{d|<nM`ge1)HZe>oLtqLRK8wke5c-oJuI6))+3}NF56}av#Ox!Lb?#eG z42$t9z5I`#jMQKlgoWC(&*f=EeBF_-zj84@KmT!N#%gnKs$;Q6Ke{vtwju?&wXs!t zOO7Adx`soVQzm|R_wJdm8bWl2{3?++pOZlH0Ks?{7ruWMK7``;GM5R2Td~{*?IE3` zkuWAE$eXS8(jP`y<h3;v*Z4_lld<`9S-P^K5C3b(Js1XD)HIX+j)%Bl0K9g0&q*iD zMv3OrYwoZKTXAMIVwA0@xUd=85fgE^33gg%)cie&&8Ne!kx6NZiT=yPKRF-+VCC_C zErz&i_=E&zXSO+Ka?*TrtERB9uqN{6;aNrT^Rk9v;0i&6kyF+?|MKAht<&^3Uyq}m zIX@N9f6;C98iqkwzNQ{>O9e?9<-qXqwm<RsqPbdcrIo({^%k}{dbN`$Bfu5Hxd)FP z$?(fvwyxKUmRee|bCwu>72Ux*|6vB)Z8kg!?zW{9J26(M0k>BpU&9V?Mvo^PwG zSL-hnAF#4?NuabA9va6n*s%(Bn>%Iyb7CkI3Bs?%{O3ShNuabn*xtT~%Wz|ZXKI<k z=B_Qv^Jt;#(DilJFyG>K)ellC35JnLUemP>Od+(gj3O5<uG9knTu_pjY-sAijTDfi zQ69`5Z=)nBc_;Y|f%;t0?&14~JQE2cp*-)*4+j${uoMUS#ZFF6y!rY0eom_Ybw<h> zvC52c#P#q(&_&X4T+tI7Z|~hF-`coz&o=AiESw)mc39Q$K^`4Ur4c#@IT+KW)+;oP zH@>`oFZ0PCXcsZE)bIbA29h+oN{q4wd(Ol)2pVw-uQj;*yE(O;cA?pSZ>I24-&~sS zb+Mhael{z!>g9_7v!ap`mw@HoXNP7W1L(@Fp<23sXbGiBnEJ<H_WE!fs=2bgy`3vs z8%aR=I{N8bziyH$Ew-E8&Mke{&;Tla_wHSnsHmu)q`k7?(17E=xZI8a(MapQ%D$^3 ziGu!#2O$aZ`sbMU2JJShqix7S_P6ANYFh2&>~+Wr?2X-Cw(3#(U`Gr|I%rm-7WpIl z-Bk!0kqpNdNhNc{-Xc0BfDKplA^86NxAcac?0XimIdzw!1*<j<Ib&b!q&BjDZ@_D7 zNE4mH(o^#l{Aqk8?f*u71rxaoaRrJ5^kexP|5ZL=d%z$Jt~@n`l`1@_!K(0ofsK8i z3Klmtg%#ztNXW>^$pw$=%YJ_W3f3=ro0Iv12ZBZv5{X&)9dt+y+K=jx!m4^W9$nPe z*Yo$!_SfL8rH`14iVK5AvYl)tFc3Q?whmU(nB$w_EpDtVF|d^Is}5L3;MUiaN+=uw zaUa6H5VqJ55)xwny)t<5qQ>(<RuGRkN~@jDD&F~?E_CnXH%?o6wq7)DZ?ej|Z>nBo zIG4znMk2(>T3V(3C2ndBmZ#uf4J~Y{-~B7=m|~T^4;Jr=u*W8as!B6bHTS|q{wiD- z6DusMtmG`n%3_;u4LVw3XU+WnpMsD9G60x7#_RBCEUc0gVmWE2tf=Ubc_jOJWMs1P z7Cg%}RI>ItB)#yBOIbh43*JAri)LU1tN-}m&Aqf5-t4KestF}_Yd8vQr?>hfkqbD* zG21imp1_c~+d+i>q!3pc<mi-$<O*)Z{jcQ>$rO61&u@jY^74=2%$CJSTCbVL2hzNx zrS$*uHdP9z>X9ldUZDl;#|^@<4R#ab<KrH(2VHhOgQ617Jd!C?WF>Tg4%q`(G{P=a zAgd@pKPQL1a{+%rI4gCAU;l3val$eJNmRH0p%_xy?t#J7(wj;<32a#1xx)@ydCF+Q z?$MAD-H+lSXpSWtVwXFTl9C)k@6^)O$Yf;0Qo=omb;P4y_XipaV}e0!Y;4}$ym^zu z2oHs^4N;chMb_)t1g{CW+-2s?f}!KW9Z#RxkK+Q*bW{(1K@|M9YSY1r|DeV<N~|Im z3<waq=n<T}@X!g<6wYzVJoVT}&p_|tJD7XA80<OT8_f`M0a%c(3^Dinq<|!A&0!d@ zeN~og8!<L;2pfs{(cz&Nc6p(@l;A!IgAX*3<Yy)BY4X150m1~TTk9U+6;BB~dZ#px z{QL~$sQLam^no~z0{iv8>tq`2xgrE}Iz<hGNzarLf<LtH-5`?}kDhW7dAI||@1g_q zmfOU`Pq5*+ULOZ`m@!U)W%2yP62ZhztU1GePGtiCTss{E+hb5T`C)kMfVC)ak?fp| z1IdfKYbZ8|3PO(+20VPtOihRN4Gd`hP=T|5zL@L>;QfYBBq*hDyOT)PwYQ<wwyhtz zI8g8G!9}4jO0pDnVPo+F40Y1h(y%?*w6l`#5GN+aUP7*{H`h?e&TuLb_bDO7HA0fI zA#eml&JlNGzfa&iNBq852T(1q^<6TTkFAKYfkf3bQxS6hY-NED%j{$lpj5=23#Iw} z7klo`oe>9134cL^>I>h#=V&Z!g#v;(7vAd*gJe9Mc}8d&4tq8eZ7|GEKk7jh1G><p zEGc85N>FlI-BJe0E(GrbJ7Nt_DJlO|Jg_sC5g?txh{(VZklsg+A5SdZ2eDEgJB4Kw zKaDWZONw)mA^i-536RbO*L6C*I)U<MYZa|8)H(HOz;NXMViPWo1NnwaGd<OT_M>oE zo7IJdg#{yX^U2P+^M)X^vG9Q#?Txmaus#1foZC%#R(NIU@KN$ZCo>$m9jzseZ+99< zGKH2{GPte6oe>bUy$-Z;Sw&j<TVjWwaNgx0A0u6g4CImh*OCMrgA2Ajoxv;EaH4K% z7-mbm{-fD<4Iuzlye5$YO9^iwCQRVeH4$Q?mj*&!{N&~3<=6`>VQE_s%f8#DN9J;p zCvoeS1a3j+*SixpcaI~AT4AtP^G}vfhPYX`Z3(4+ESpO-CwJ>B(JjI*KvG!GJNK!r z@e3E&+d*@Ww;GIJ<F9{-aeX)Lf^AQ2EW0YM53Oal=NeOODVYpgAA6ZColdVw)FS=Y zA$dUm^||3hSW5UCHte$9W5VfQb0k3@SD$PZAucbWOQ-R8Knk~@Jzxix69A6tIGSRq zKMxNd`1|=8{A>Y+Q~u#50z^}7lA_KGM?jjLa69XE78X+p57Xzq6lz6*<R$3U*sek7 zp~oEYbe;CL;#eIl@wN%&P&tHHPGmF!f(Bq1Fg6oJ<m|zJoV|CwU8Y6t?uQc6f%M^D z-77lkwQPaJPzTN_iriy>?)l-6{NN`ayyoN!G(HRd3-t)Gbd0=p(L`fm+R)o`ze^#! zHPAscLJo4Ce{C(gE_w(M08@V0w)FXbFg$4|s!Z<Ukv-)~Ct70aIq1S*@_DFB8x)4Q zYEP~0nt{f`uCd`s05K9t6x62^@H?ofsjT!6U43)$$kE5=x<opd=xDH)B8!qRY&sqr zA0OXFI6F#q;e)XA5wlx^Xjv2;bO3<&i$ErS$BwttkA!);h}Pual$UVtQ}XqLnVOoK zE=y&bA*XoXzbY?xYaQo*O}VAPHD}$`D|*3F_iL3Tr9tw_(w4%Y5Y5zi*0U}N%2;Ri zwdV@C`?6QzZ}gxUF1QPpzP`R1->dcys^f@QeN5!H$LA6^;Rpy9G@;{nDdX~kdzv*_ zAO(78Y-?RhOAE+{H}Bz@YkTk)a@V$wn1@~()4ku@Z=c^KTPScZ`e4xZqBu$El~3q& zd;}bM!_UY5>)>$%BZ<`8F7gpxa$0p2krjG9uIW8-ekkLg>FKQeD7-4PA7I040AdhH z6tte$;Mac^-%bx_aKeR-)U>sQn(&DJEiJZlWPJdwpwjxlX*e%yYGLsK<rNv(1{!Hq z`hgMVoO_1!Mm14?e~+)Z8u^{|>Ge-DMche-V#n-&-QjGq@-_O{V^HwzDpp1^LUD01 zWb8AuZqHp>NxTy<b%NxlsQJAgt{lT=2<^w+h7;S?Y$th16qE^4YLH*<_29wxsE&^z zR@s?kR|qX087-nrd54n0?<<%`2<FH)xr@`@s<SS_#bf645x&9~0b-wRgy&J_A?vOm zAMV7YKVoJiweVz1C$W&w!8iv5OmD3DT3lPzfY$c`)xV7IjZVocD44YQrMEJSNx~73 zo?d`Vv}f{FB`v&P0>YMMYSSJX!khQ9gwu8Vb5c@UCcDs87_P&+tg32`v^12A^E@B9 zOM(`@n5k+=_6@v75qUC-<2-#+A?QMTQEi`wzsgT>!!e?WDx`~4kM3YCjM-9663<q9 zBz><>y(wv%3p8$^9#2fo+F&RWR2w{!6#+{DiDN;2x4gY;Z02VZ@i_;4j}8K_mvjM~ z=YGgjh2J{_8sy)}fnAim@Gefy+oJNdiL9e}H#X$eO!RXbO!-J`IwT9xgp`&>3s487 zgx_?qFAHL~rKlCQhmIDigc0@@yWEOLZeACc;)9@z5OB+M)gV>L9-`V$u?HY)e+mi; z%#kLCA**?Rd3320rxnpf)zw~98JoKu?*gR?R{bMVl`wyf@SJm33el+`Ziv(R@`$}7 z9>xzfa5(w<Ko6D&=j3dx;oL(&;12fhj-(Xmv6~HHqXkMK>&s07nwnP8n*FF>;wcRs zLBEU!bJD_>&_LwU<4iF-ukc9c%(G1Aij0aYY|a(;8go@((*mc*pO_6UxX$Mi)9z|r z^5^|pUo(_qw$|y44{yM<82r!y2Y(_UEnrO6Qm*fnzqb`S)cc0Ixow<QeVCs~RvxRS z`G<D6Wg5r;5YeFrp|P-oqa)cx9ZQZ3gCC>G&MW<gI6>a%*Qqz1aR$<hWuavJ`CdJ! zBbj?)XLSC;l<yq$sd|S8uuk>>Be;(~7!<N1fpqGtv%)L#lQ&VkTz-4)^}CkRm)?1* z3)4@TLF#;}GQv90eq1?GjFqoDIZ7JM!tOQuyrF?S^+Vd-6t4PZMU!A|<x(=F1Zf%( zV&~xS?)W<SLp)_JcCU(RB-C?9w~KQCSI(A&Bf&jv(Zs;gA$?<HTwSkmI{m?}L1vAs zT1&xgrHeVa8Y(jlk2fcOpW8ouLu`e)iK8Lq_mo2#(8(+i%(i0h+d}Bq8lJgVEBi%) zbMkbV3eY`t7>CTN0(RidC;S$7t$~Wq=rm>e>_n7YYIq}CmTK53n6uHf?hZbCU|_&i z;yOmI>N!aj1tdDyP(4gO;*Z@jD`axzt3wGIu}eJNyevJHHq@sNfWG}XRc-Sl?x=j5 zVe>UXorgBTr|+6?8Vp|+Y7-JdxPm#{?SAK+Pf&R2{eo=}UG$9&74{=mK8%(TJo?Ix zz@=<>%sCS5le<jy(sK7fQ=3=O?v?4*prgkJ&9j2yeN)U0ypWS&)K^fbGHaGIF9eO) zhuP=V(nO9@vyp$NzF=t&vaN&^4@+r3O$(3KKc(qhY-cq*+U>mQEW0r@)0-;kJ%}#C z!n3sOg4rub3RD-)^6TpA1b+98GPt}|)%_b9qcbH}iEM83UT6ay^vnv1t4}e0P6=0Y z!7>8Tvrj}6;QaukwY8O+4dc~$R%Qkl*J9-B$J&h0mR{N_ddf#_aCahnwJ5&ggwn$k zrLYv?Hx5R%##FfBaQMl{`nsSUhh@aiJC6@Ci+YOe3VI(uqPByv-KEqeHV!>RCQkSi za#ukT?~GsnQf$T{<1q~bRPtAy;}g)ZO1t(8ek37w4?Q4%CI&81f+rE@8R!g<9{GX2 z8vc`?8esT183u#pefFS<c78T;@#hB>;gGF5zhai#{$y5y6fVd@6zC$N15Z-IrQtZB zzOuB`l{drngZ*B&GD3g;HazC@snz0vN}RyCSWMR?&~#teS=rKGGDQqlq_W!+g<H;| zJ3bs68~f1P*SFmUzU4pmWz-{m>0@(vJT^2~W^9KRXK3z{VQa+;2^<B;E&~@dL=f<P zPRR84b_xyy&rZ8rtCe5x)Jb3mUgpHa#6)6_xw{q4Y3;EAx^)w&e|aE1{lNLhbU!tF zH@6Mz<3U`yl$2C@w5g%|X|t!O9(dZ&#I{QVXXNGU;zg7Ne8e%M?qRkpyq_MjHj-aa zR$cvmsBzQhIbXwd1Qd_Yym|BH9A)e!2u9AWaqPuZ7^KEz#8Lkiji7)W=I@qD@a&1| zkt-%q;Fq%y{ZC6<A04DOPO@t{eD&ufgwnRL85uEZx@*H5_#vdk5K(?Su?&z*$pL*D zq|H5lw;10}sN|-VtnCN#2=a<Q!-~qwHymK+wop=)p%48uq>@I#Fns7(>;Sf=<K#lf zoJ=vvcTz=8TdTdcnzxb-j++8Md1#1tg-})evb2({6(Lpxk&op3kmxQzCf4o!5aFS^ z-Fc<m;`0K&&rpcphtQUxOYwp~)}@!WE5_N+g72pjyH{6xXa%G#vb|<$6KrR*Jw>{{ zz7`TxYJ<AR=sSJ%lieHwE6I;TNur>X2}I3n>RVTfwtoOM$d@;>v9oI@H4Jjg)MPXs zhT#bWACc{LM#D4im|!-8%L2!0u}w{)8fC)~mSE;&iZOGG?N9!0Ozb-71bh|1Jvy-H z_2wz*RK$@~NA3`Zn`$B|LweADY$3=1IBtF!LmbMn;rRTH`ViHmq-)-vimb$ZqkF~) zLP!Fw<Ackg#l3dUj9f|A{EU78E(n6g;Lk(gXV74{UE&Fgd76GED*tZJHJJUqjvCTy zi_ymDqA_?;y3x95|DSZwf8=(aj8joB-yC1St!bMx4h{}G%F@fT#RC-><<?(Z<iBcb z1=W;*@0lr{Tr%uP+4W`Tc2{M50qZ4OP`DaxRh%8|a*N`Y8v6gwo)E<&fgLzWXlrZp zgAKA%mCcH5ZoqN%7k{U_cbze(b`+(Te6^MhPbwP!UEA4{6ps%Yk=@I|sW>op)Hp0) zCB)JaUZH_)mEfO)FABP1X@888{Xsy`MJOVDhRbk1)ra1=*HjBK43+IT5$5H1(*fiW zo*)SeWNVjZ_m9Yo-K&oUpOv_Z4xrj3#38PG)>*LQrLnOwi`rB~A#BZ>%DGH2;4_Ac z_Db~?B*q@0dv{C(j)2@H($-!6tknTj2^`NKmhB?lzAf4^e#wBmtg*42x65DPbNNMd zw*<6=#g_3{M27AhdIS@EHo3+h{^rX_rSn7L1YpU-VzQhZjvLQ-Je^WToxXc+8$|!U zrZUZD;>+yp`BlYVVWRv%DDV+lR;u?;x0paR@odToFF=LcJ3ALQcC7aUtqfR%)nRxl zsgR(<tzSJMo0>6tUt#}GEBV>hH#W+981YqXmS)bKT%Ice5X<@Y_V@1(Z(>gEA{pNQ zbiIC8h^QuTUtzeD-JYnwYqb`*wc2p}mp3MK#&2P`lfvq<vgUfHzNC1yD#(yN^maVR z0C;}Ky`h@44}cmuvmxJg{QgjQxNIB+!!3H()YM$kBMB;rs-{}>=BZ{^A?TuRIIeX| z(U$s{>5%Gp1&2c!#*Z5}PV|-Xo_V(u{64W`g;f&XzqniHXpdzCdd3ne)r}>w`F@*t zCa*=4%O!W)Mt3t4lkuUt^5ws5f=XC+AKtztcb7?``bI+bn@W|E^jDO_3E;M20(gmp z`AMP;H8#FrM?IG28S4`p%TP(9%6}s+>x{obme4Je%lY|veKs~v!RgzzcpW&7;W8v( z>9RNr2oMF%A35F0U?b}1cyaN>(V;NE;NbIR%U_3T@!y)!<?-*YOn>lRxLFMq%;tB! zMHNTPeIuv3w>_gkL0n~DjJ!4ee1G5T*4NpIi3yI{?#sv1W4l@sbRXYnm-o2+yC5Uk z3-GrYb~>CN<MDXcy@Ra6%ptZ0cPH{1@HNTa02k<T_Kw1Ci?4_0?aq6|2}v&?0HoD* zA|+Fth}LgT)qHRQzU3`fX4|l^VT;>oJ{=R$ZKr;&j5bb<_PC!$Oiv>Z*zgi_cnw|{ z9F|-|t{5J~>z^^Y%tCX8@FpS7%scYKoS!xAPV6j){q_2{0uVW(`{fYXcT>VmVblHu zVIiUSf6BsyGAPx_V%sSU&+L**3CZ?F<Hl@nT(18cbf5GA!I%44OqYVT@n<BqjBJDL z3>gOTUmqWsNH|(R^z`)ZEzSdFmamdvD>20RevIp?8q^VHk7=OURq|S*xs-6D6aweo z&DPJAnTt0>w1NySD~tm|%j=4)Qlj}FXv8Qyt2gA&zLS&F<=FW6eygIGyDF;~V^SzP z$+Q^hbStRoBQJG5IS=GJ(fsfBFJuOA4F6`BCDqkl!qA%&x~Q@dMrdWRSn^+F?eOJI z%b8<Fw*IXb@`L|od6FrCQ1OSM;0myEL_BtM@g}IvqD?KqcV#_DH+I6u#PYho^U=;+ zx-A_uu|IeQG62xetl0S>1MsFtzwQWUbiPv^TCnp;n3R^;Sl6OzaOjGe+ap|xa$a&r zc!ijbivQ<A7dk&&LXRZ)$)iUH>eDJ~_a=RX@vzC6??=Y519==-B<nr%K!`GInJAlS zAdgV>UBXpq;cO7CWUeZ=2M@j{1lfA(4aDV1)jls4qlzkJ_A_ZG6Sq9Mj=T^{{hz(m z`oZk^=45NNaF@O1*uE;0W<S2WKl1h`zSt!&Z-q-ssHlWFUtSQNWY689C=-C7?R$u# zx#yb%4_vztBy!?iU0&|icjtHgfeC#!1vF!MU2DI~o&9FO(xp1)bRq8j55@_pf3$>v zoOA%emr|IBOBzN{p=P^XqwWyZ#23TIFYJ9nxHw1-XG4zWBFiw}QbCd_aN?{D&h;P~ zcFh@pq)~4DX(t_V3b_ODO7-I0I0^T8a&mHJIM~@k!AX}KMeYe3@PDJil<*d3d-58x zb9Fnr1uacY%_o1}Ki6fdWV=G(EBBZv4tP_1wzt^T@W7se2ZFYbChjJ>TLKQZOaN`| z+0m9h5}rR2v!m1vIfbFWeo0=PnVET_Fu!~GKySK*QvSX5b41KPC`Wez^E6p!R}U$U zt!I-9N2eS!-xlwB(zGy$f7rW?d&{ap3P(UH9I=c*#jE7_0aPAH@$cFiVX3iFkUw`M z)Dm$Ps*-V{5@jJh59_-$VjGqEPu!WvAX(%{u+|yDGWAG*ws;C%2*{rfwPhSP<D5-; zNze!-qHnkiHHeC#mV>Z({g2GB?bPcR*dh{0Gv=V!bn4r;=T1)T79GDY<&YQWiFW^E z^sQbX_>%EB7*8fnzjtf4bgkZ4N&Yn3iP=*+o*9(ctZKiCe8VSc566=LH4w=Z9_Z=W zS#E9oXBTAp?D}ZeFDvBfmsj=;FLR!8$hL8<g~h&~;rieB_Iw8T!8baLFF8Eejwxm{ z&08E0`GhSyfh>}&z5*Hx+AH$X&k3_x5V#;Uu@Pq99=38x1;MTje*E}R#wjBww?}j@ zk2Wc^abR<ElcTnI!SGf7Jh_eT|K`MVP6z>WV>=U~oJes_Z@2wx{VZ$1Mv;Fz_Hbt| zh?((dzj^3|Tx$3dnphdWS67-PvEkMTZnY-oGRPNZa)XjJ^#fX3D!1wKE@ZaWFZmnC z+heL_%3ZUF1c-v(E(oX4BRN;{E4oCqagAC3@mLW9jb{zFw*(#SFxSlVFO=7z(FlLy zh|&L^ROwYGz>r{#H}z6`mvG^4N}d#Y@W%>s9!BGNK>ldLSgGqjjDdn)h3Pq5#TRFh z9|Hp5tHUcgbQL$e@ok~hXW)Z1om5Mhq!9+j)Vh2JBiadGQ-U1MM^Z<<cZ6Go%(MED zl8R`!+L@;(wWA}6^Acj;jRhHyRAL)B1>j14ThlMJxB{;U=gO@%-55@Stvn}E=W{O? z^K}@$tldVfjk;m<MYL_En*TxZ`S|Z-$<F_BOl2BznKYaSznHLaE}WhH<2epOtB022 zp5Z5sWdwkPs#|vpD<v?Cozc|OQ6*R4Oy71(ra1}sA<HJA)_Vr{T#4)ZPu82hsobXf z?`~_Ypj#R^fxUNyM@NT;el?S9<E}}dv)e%BUru6w<ZJ#Q9>ydKA^q9U<Zn{zcQOd< zh&pH9u$cjqHAvVE-5)aBN(y~`7A<gb3EKX%JZ7fx7nUBb=48*cJY81?KiAK#`vsSh zP;xJET^oieTPQ2vbYJxv7FcpwT^&A{ZOP8dzS*$9@4`8aC-?frNIv@chs5vB@b&A{ z+3M^ZpW2={jNXv|TiTgDn2g7m1xA;Nh)F$;s}ZzwbrbSznl)XlVX1#sQB^5z#{9Fl z#K!KKN}eY>7rH18p4Fp)>m!oo5*O%XV$j#ux66M%&{ejbA;oUH^XrNLWXZ3vkQ80k zkF%1*Y<w%*=<V(GY^q!Noc{BU??Lglx5`><>BV7uJ0Z_*zEQU^50)tdnY`XEqv&#~ zDKPx^%kQXJ6&Z&oJhX|1IWOa{OC`4NdHgg+UOtUI+7V$=gMIC}>i9)=1<X&Yn4!IB zYG2p%^1GWJx%7m2Zb=UNxTUo-yF22C_{GeI`)><Zt4;UelJ4e7k9&6RGT$bU3eWpd z4&wF}B-5j0ZDAP9*x3oL^X={5&lzYvO5EJt#fXDzX2U8=Mq-sy^#3#Ls__(EG{%P8 z3SC}VSz#IGuNmO2y5oOPJf&-9X69*a{e$E8Ku=+GH4ia~Rw6)W2ZTSkxaJ6nup|82 zW<{h&wMbOWvqXVBf^FXRc%XlrbroH{^7E)WaW7?%RMB)!^4Z$>dL<CPo;mwte?OHe zsN_}UaAS3igeUdmc#3e(&wpLqeIvimG|qc?R?5a>Oj^tOgdkkRdj!}zG;nqfPWW~X zID9c^J#Y-UkKEYU_$Wako=4W>K;MtDmBcrzuQ}hnD=3-52o;ZP**QPi-zIiiKB+uc z2;W4Ob;5p@=;v~Ekl?Jbvsvu=qHxPA5WfLJbQ_QF#c7e;f&vgYb}u4wL5ajQ%zoN( zZ9b^~<^kn3uXk#uDH<rj=(i8mc)9_`r*XH|mPxSH3u=NCnbZM~c_gl5DI&J@sa-7G zi+|mJApOZYclbsghdYa{r?y*4DjE?4v!BI;xVde#P7ALWXVKB=2G(Z^h?cql93(Vb zKR(ou(LU@xGb$T5(uLlR294f-X<9z|Bn|W#m&&Up^kEVAd3NWp@OR`$=;`yB7p%Fm z-l11yY|oQZKD;SR(<Vyfv!wHEcgU&;=lT8=*|6N^*79!WUmnHp+%oZ^Z(he=8+mIg zHfWpIG(q`LV(t~<x!OHb0g{(=j@bBH-LI$u!Ki(#QIz+YP=}Wu<(Ah2$t&>#pgai) zjP4n<0aSz7LqNW}08X((S>(t24X&f1y~^<;exZ$pIpN>Gf2U~a3_KZosh;;-N1yo} zUoY0R(a2Gx_9GgA*;CkE*_rww;eM~pN^O0;CP@`}5&OIQ(i3xjR5`+6k|_z{O*dKn zHlgfWU%HUD-sWZS_keH2hM+z&VBxRIjQMtpQ@=D$+cvLOxLezeB>GMqy8x3KOuR16 z@{xog@Oo)r=O$*T#HGRC<moSuE_gaP=!Z;}e!w=C4BjtItglisGKXH3{J|pQ?;m&v z!tBBJG>o83af%ejlgU3G4Ej*Ye4@w4Dti8;hyRoqo0yo0c(Z!Q7&auozApB(ny;g( zs_KISq|m=ebjOB44}e?R+e1J7u-3Xf(N$WNJHOKIGncos-S_EaQMl;3*W=r7z)5yB zPP+(-fv1dq(QG=;ii{|Ym!s6;K>RH9Pj5_60G}P$tYSY?R)|Yr2LL_tt%X^)o$0S` zhl|4ms9I8hEj46MsXek46v}PKApf3SLGRNO=pLrj_40y1sQ92kg)Z8I?<KNOwmVjW z;M%dE;jg8C<5lEOf7Leoz?6SY&5w=k+2M~b=_+gOtmIzYD)f2eGou*ROg3_H)AyVF zxy{t@L&dodx%*}6Hn)U|>`&eH@hwTMGR!t<JB^*y|L?R#g77?=7<BHBHhIk1>a*3P zs;bpPQKXY&QGNyKwZP}&u6SqxDvZ65=A7~T@9V<EemyBH1w2$peEjuSTUAMfS0L%# zP?j86WfthH?b46a^057wT1fs>xWxAsMcr^a4aYfwlk-xx1Lvqv+0Vwvd<EhsK-jfu zaVt>t|E?JF@`obTiK5KU@z^z)l2>MkTRyZ&j6j4Gw-z{!ZoDH<TqZ<5ue6)|huXI{ zOq4usdauOe1<%;S^XZy`f^y}WLeiVb!VWh{75h;+Fg?dGEUn{B92q}9e-o#Y{#Qxr zt}JhcGwB%%aFZCSWZ+F}gahKIXpOyFM?_k<vm{;HZt~p|v-aKg;YtcJh+kp!;o;$w z6Bu7b?&BI}%k09Xu$$lU>C~{G-J?K0tVc1V?FVO1`bBf#r|^a*GYW|!QI^zeGm&-L zZ|;QS48Y6r{&A>3@~^M9(iIPwIkX^O(k-chmiRpraSutcueIrTHR8$9FPUEPO;$5C zkuib~M-3>aUx3Y+TdKO{(0cuVIoFIBv}J9!*|)HEw>0**qHAIJ9uF;-JjM>YHU63N zPZsF0@X)eP{e3jT35J(a;;3y1R`4Qexsd90JB^u{nc?aVy72CUhJAQln9%R&gxl%9 zoNLG&W-JxU<~^iP$-Ch3n8`e+Q!(R#PFrfE-KXun`r<YzSb-u@V4epY&j>`&)4B>- zk!o1Q+1?-(;nSREd8O?s^-z`PW4{r@ZJzQ2s<FX8k`3JH0GYpsB<<FW$4=Km$!TS< zDZdEkDCr=;4>m|jN@}BWO7mvE&-~~8^vmMHax5F!%=e!K5HcFr>rP`WXhJIJv9NG2 zWxW9!fd*uMJZ}2prP(BxxGd)nla`g;z3<@>EWml$MQjIuQbE+0(^nN-Z)AHHw%xz@ z`R$g-_HL5WT>D}xFGVz6<j0<?X&OP|EM=xbbkjQaioa>-wQXZfU$Z(&Hwz`Q3NWeN z6GY9venyY122z+P9HRv3!$qE}nRX{=eAzr+efD{^Eq{A8e9n6KsRU1LakFjF^$dB4 zCCQ$po!!E&%_qOAif_%9UWD<72buMEO-!U}y%*ZJ67{#D09r{S2H0EcyE@;pUWn*G z@#mTT{{G&5pCcB62Y)kT?;f&?99;&AG@rrIHZPX9vgg<(#$@Ha+Cu)kI++}xT2*lU zG)$FQ(`>j~CfWSM=-Wdd@z~T6k0Mt2OvF-dpg2p7sSv(0@JbMw&i^M{N(%tjawEie zZfhi>qD{hk(7!h=m*3y4GSnk!X>w`^q)P_}S>>{f-x0hEE%|MQvs-?uv76g%TrUzJ zR6wD%;3Q8^y%u(U@M}DiD{zIrEiE-ca3diG6k;Ki<5qVSjgugDL2ko)J2;V`H&5R@ zr-I6O&!69JS-V`o_|Bz0J<sZ!k+7HD3R-%Uc`{Siu)5hdvPcM7+$(JvM>@|wq}*H< z|EfjPsK(m4efL%cR^v_VzWm|L^RVw9`|aXVzkM9D%`+mGsAYZ{cgq)ys=sl}@Jgeb z+!V=dsmIcul)l{Q{>^~A<)FlKby4ZZ@Q~Nc;4@OzY!M|8t?<XbzP?M~403MrYhpgj zL*Y~xBOhs&V3VJp-{$`%L)+jcT#ys0=>Mj(4A8v|y(59;d;E8L`!UDG;GM;{Ln07S zQPH4{jg3%dL&EM*rL)x#D|D+QWYpj0rkzUYeDL4s2Fv*c=MvYSU5pQd=p9?m4dDKH zYK>h{1}1Og1NI8;r_S?$b;?X}JaQm>Q=BY{fy?uGvaZ8mtj@Kg*A@dN4p9bilFdTJ ztm%S@x+NH)+PHYTzJZ4yPicJ5R$2BX^`MF^t`*H;Yc3`x1Nx+_1ETaGT9E=aHn!vK z3X7V8>%BrXb;Y}H8ehF~<O<6?+FelDAT?HnCSXDSeb*xfYbntvN$i_PqD}GdhmeEc zor^wx{P^<SyT7cpTbB!01(K{9bp1!F?6~1lcA*#27b98ToGPx+UVgm#i5Krx+qmCq z3dA6Np()PiuVDR1$My8k{%cR*rl3^RR!{tSG@Fhmb(0{^M{Qw>XgY|V$W@ll%m9c_ z!cp<tn_fOcCSrupCgpz2w;Ju3YR|}8T6{kRl3sW{SZ0xlC~#z5+uK`GKlZ@eB|dxh zjLFS;f8x7gkAV5JLwklI73LUuNuz#Pz|QUHdwdzK-{5$cu;zAfZFks}jI;KU8%J6@ zqRnC;-(e^upx?Wo{n5nvenaVSCjMCEnc=~A<YV;MuV)Gd4hBo+eBCIHr`inL9hR@} zl%ebe!hd%wXds+ZsBCUzrwTr$W2Hod8?Yb^0Hl@aGF8&Gt0~cU;)GhYnc9=guEv^v z5yFd`GfYj4P*bnI_^>5j)8zaqkdA}$PkLldxg*R$Z`|9C3di4D*de=Btc002ZKk_I zFkJ~h>WCzxwe8vC_m(p>3*G2P2|@47KD@(MoCI4DfUMUJvB;cR7Z&n~wB7NXu6^l5 zIQ`o`^7EqS%lpIq;6tSgF(uc+|BJS_;EHowwuXVm-Q68RpmBl+4elD;gS&fx1P|_- z0Kp+>(8eW5fCP6ZIE`C>qsiX;_`T<j@xA|`*Hcxq=A2b)^?4rO(pv>#Z``p+EAd66 zu+N-)o5?N%EK))-!5qxt>|qOaQQEMP@>n~SANd$4cq?&k(A3QBU;RCEg;oyBKUa>0 zTX~~#eLb~zRcA{XDj0Z)ejU;q2Eq(<1P;GW2tTxgeRz22oS2$&3w&O#Z66oN%FbC# z-a`*!P=p&Pfub~OEbO>p>G!g(vqV_)IPw?jkxnDW;_nQVM8Ax~EGLzBYe4vWPJ_5z zH;x|XN`&oR%oaVwi~3FaUzTocXX(!8d8e&xxc8#2^+hg3W1H`V6X8Sa2T1+@L$uC} zbl?z23}5qS>a4U(wOuwE7Q4}PvQf{nFuIUdBeYRv!FN!_UAyx=OSJ^gvH8k4Y^3zF zI8S&$SA=3ni#fS!BG5lIZ&a9;rt^~MG6K9;Itk?(%_G{(GUQN<VF6_Pj%`?3_YZ<r zeL~tFvgOW#L(09sK)#m5XK)C+bqfcsht_7@meNs_^e~>R_Z~{WXN{Kvv24U?y!T9R zHfM9ES<Ka{M}4K~E8s-YP^#!!@QnkE<AGxq{9d}Z@CED#_O!j#L@))kgxtyefQ`g^ z20=I@&(mSN4?8fyf{KW<N(esqL;&yaE`c^SyZkj`AiVNQ5{ic+61Hd0vU1YXo6kW2 zERzi~N+@%D<ubr>KU|Ag)FtlZ<kYjfyUQo=u`Rc5akHVJfvjd|W#RM(MD|NI!Kige z2wFQ}8$3?VpXYOia4OolW1Vy~{+riUr)u<5lwcnM=ihwsEkIkVwZURE%x;R~k{mS3 zeuC`j;Aq^!==wxeWKK{ot=U923^H>h&PD+{FS}3SwMRBNQ<i!|Ia^^$`%DUqFX#RU z`vKX>{6c67EK*a`o_#n<RQLes;NXCX!?@$VDj^{uq)1*xHi#uceV=pB^<ziJ<5^|X za!aqDOX;Di0^(T+?6@HdRa8IMhmazYRb_~RTQW*mjzO0zgsO`%$myMkqht<>x|_wv za;NY9XRWfMCGl-0xvjGln`OR%1kOcgg7}z;AKC;=b>1iZKo<OscXX?0@&#yXmlcIt z;)RnvKKq}QZYX#YI<e_WJqp?d3b4&go)O|iZ^H*$7@jalMZU-R?95t|&K5|)G*A>2 z>pRJ@jojrI`>Xyn>Hdga4eRQF<BEd-2{j6v0ZHH<b*^&f{{0O&uRaTYa$?-^^%)xM z+*aDOTTgHY_a>vtwge(qH)yWTdZCsr+K!C7yLbhe?`9!V=`rwa*8R<kVgA^F5(u~R zHRKp?JcG`fqc6GydKTSk$+f=|Ab&&(t|K461>13)RUd(#RV2G9ZeCMgSvRWibGJ8C z+vd~PzK0S8i!79mFlHQ1I09t^!lb_Hjm_rsYBiPHK5`oG>WNqSIQ7o}MxC8K_tzBs z8SVFN`4)B5maTFo#>Okv8x6tH2znuKtUQzv=PND)6e0+k7KAD2%!s{};(grWh-ay= zBc9bgiA@f=x6>b*!r4MY*9wA2a&IB87k3}g$}}|KwOD_##waUq1UznRZ>R{{b;KFo z@2DT@RX|Th?n8n4cN`~&>qsEn<{i!nLeckdXFu%;R%*4qwKk6*#gnex>iE(G{n2=+ zG>8mPq5A@sdO`7jh>^^sOlU!5z~S>qEm*Or6xfBVYn+@9X>h_S>(@zmOv?VqcyOgh za0t2$_pDre5|l5TS3#CBDYRs}n>sJ_NVz`5z>Zf^lO(%Xm>iM>gN@@X9fiKH%_~8? zEh1rsFFH#L3f7vsz=nFmp;p`=(8vL~=#1B}|Gm(7hHR(Tq~hopYB@`bSCKkw+VZ}t zz$=Nf^)N#k8Fjkd{|NIbsd%Y{%w@nQZp17HZM!Hib5{RI^aNh8KiK_93gnbUUbf>& z<imAm%wF%v$r_1Ys$IAT^5NK*ZpnI(%ZAgfX$4!K41tW>y-(NYx>-EdQt-=FnUr$` ze_jmI#g7me?dh$nTY)aFi$>t~jj+*Y$L}5H>)$Xr+TU*)r0S#d*PUHnUgq^{K$>XL z&axSDb?h#~6-2h_R{RBPdpm>N7c(?OT2KXIQj+Bn$jAO4A2Q7BWd$n-cXgZPyBmJ5 zC40){x}V8@U}tUSEds!lhK5E^#0-Pjdl9(Ze5=woK*pTz9^61ipu+v6y(clYNT4TI zz82R96hvT;er&9c=NWfUh6(rA*woZi<pbwCq2`1`l{k|FeJ-E?U&z+Oct*Vc{u}#k zFJ2!t&G;%fQYa&L-ow0XhXM-wTUFQL<_-J-o06elhPT)`0_8RYs=%DZx8P~DEctIJ zU<({wTzQ&b24NEKYtOk7KrV0~$(Yqwv}SFr*{E!c(NI44#?WutR&XYd2yaLT*MO~_ zO%ZowJ3<f~0pQQbYX)1@l{8E+d`!MV2fY-D`U%q+`V*$)tfK}&U;HjZJSLCb6YBce z5a=G@np4a18=IlmwD^qw-ZWKSz;v&%^f8`=W25G~DhFvm@~SH;{L!L}^@6pS=V`}B z$Fr*2o%z<zgK&<o78oF1YkMtP^{6&+|Cdm1dHs-jl!*B>9e%kUCh<O`Qdf#C6AvcQ zqbm)YfmSBJyA)*h1=<?Y9(jMsb*9t7AM=vRk)a6UNzh1@U=?|6FH>XzacTzc2OkZK zJEEFmK4b`sjhpa-{8Vy<Z#ptENN%chbBS7=quxcP-h`*XnCTg<CFe0be~zf`2`-XG zu*-@^Cl?EBD`;u)B@@&#D%Z227QR@C*4tkJwENYW<TC0Ef*AZ;jv@XVrM+B`^0(KU z&IiBZrQu(c+7NtaP-7)<ZgvlHg<4WlX)l>yST4FmnahVqdy8=QATYs5P#(@1`l%<s z7r$JSYJ>8|qz(66%9w`zhuBEP_Vo8lufFSHqtXZlFu$;L&<ejX^;bVBIojjlm|rG@ z^ByxtT>S{;_1-(-Xhh1JE}UqMHnSza5Gi#H19uDFId5#gL_AA_ok`kpBGLPTYq`4k z)os*Su_@W+qE6r8#MbM&>G*bm;_(KVsocKA+W)a1159AQd(~w8P<6vK26i=G(^a8} zM&?qRV9iG>faa*tyY82`i9}2XsGNzUFH2&ClxgNo;r(B-{3A1A>HNreMr20cz+MlP z%INk`hdLYPLj~IZ)Gg*;eb4xPT$Cd0tBq%HPTf+Vcyq9L6)N)A;e|Rwj1wkr&{@;H zy13^&GMaYlamU?J*MV+{7FUfgqSRHpuX(*VB3B<whxtO(_`Sn$vdFv(`f4PkaeI4v zrEd}<$(}l?&-q<Q*j6;A<RR$lf+;rO>=<)G1da3iz`yGKJpoD<C1}u4x!s5jFQr~e zeh`hOPeA3Mg3{)cRJ`J00y&OnJAF_cqwu>S((n8;peplu{rV?J4U>4UOeHVD(pz)C zU(33hAmqp;7CRLDa7flICA>oeaDI$GKR>^}D%Ytt8tYjn@J|3nw0o`uTwM_OOY4Rd zT8MkBNb5;zm#q?m;u;RqMI2a~Ly5#gn(XJ!e1$I{1o$abzD7Nl-K;Oche<>uNK|)K zH{DYMBO?aaj-71DySd@S)Mhwxg(Ae!nyduK2lT*P?{~<b+{xpUi?g9^GUG)IyI)~G z&8s}=#8=^I@qZwX##Yp)v=s1DJr?~@k8b~5k4#xY7yqsz84B>tzML)0z%9GiaGz$1 zdr14(1n=CNnb`aL-+R@NuHxNjRje~(T)y7zggoB)MSbL}kmlsfZ#gzABi>g}M>k2E zuk@C!ECnj$brw}sRyw?~v%AA!dkFG*O#O1Lz$eP<AbNYvy$vu9?9M*wpwygQKtl`1 z)?ic@Ao#w?nu02jJyYQPA#Ae`rBx#4lg#(u#F`k^SQXU}xyhQK5)L<oa_qIN1M71p zHfc4@C%er|HSzaJzl_2gOC-N14nZw}iym5^ad9=co%zi4U>1knHe*BYK)<Vq9R7zP z`fDDe;1Yc#VxAS;-zqpdPC0Ma$Tuzbd`s9ArX02d`pU6!XW)ZxP%eI{O;m`>%y*Hi zMYkdw*4`+51VGsxdlYFcF2WE@?)$2qQERePMP7UhgtO-F&i7RP@F1r(#vhpjeQdu9 z4fm+Hf-X{+M&5N?ej*{w6E~Eec_yV4`kP1pi-Yz5Jfo$YZV-yeE&VC@Fz#>soOn6r z8##Ff-Ex7!F1jnTv$GIT8eB&vlQe6lnF#~vka%9@&$j@OjgXpST+$bpN^E`&MB!5c z3hmh2y6bxTx?mgyEp;zDDULt6>G>jN;VV4Y@jJ|)E1%p}bJ?U8r*?t7RE&9!?{=KB z#>G5FW>s##O1ig8xcmO;FUZv+;c-@;p;WNV$|s0E&wj-rmElhFvF~&927Xx>ERD?6 zyWL*BHBIp@`q7)-aP~B|FQ22a0a8yCDcJq1B2rrRF|^Z^EX=;G?K=^?DvU8w>~*By zW&11Ok1NXQ?7~QqM|1PG%b}6MGfRzAnrCR8G%tKy`roDp2?ssiA7fx)EzH?cl9<7m zFV#X-em8wEIl9H5;OK{tEoh=|F)(DJSLDL(-*3p&;Zc|!{;Hgi7zB0iJS<}vdA)NH z-id&{6NOlJ`2A=*R#@R1&jue>(zh7V{K7^3?WM@oBbg`27r}+(!1v=FV}~TiZ6r)4 zLrFc5``v`43O*0~UfnC)(vvfnWkFkwKv^Yx8K{IoEyCtiW)34ZF~g~~QHFWNhwx9i zo^9{=^D;V>FwDJ5jDs=Ji+=YD?o(?*DZ*~w(jm5!l(m2JnOn?lmk_MswPLStTi&DS zZDfuJ<P(}%S%L5cvIFZdI7LK6LPTKMU2&=F+9v1ENWP1lo=tHhkmzy(n!A!Ww!h#Z z+G^W}p%4I?ODlSI9s+SyAS;;CDe7Dwv=IAG0wF7A8l6`nx6NM#->bls92kbHzi$ct zJ#G6Jucm0j`xDO=lo5}Nn7Ys5Az-|`WlNM|ZS#i;8hj=gda5$mYzgV|;2vETiZKnd zFb5hLE|-@ajB3PKe+bW#YD+A}gaA}ST`mryg!%-Nbb|+(wsa}eL`Jne3R*dL*A3p3 zt!<{`Mf1SZj)jr2ZQnN`XY-uESPZxokM-V2Ec3ShqJ0uuq>7sK-r1{lx_IG4`>Pf7 zEeUQ5YF@yQ-};X?pBVt<RxnqIsP@-Qc-G1{)tRFpm}Rh2|J@^mY8wXAdXRqfQ&;dq z%nDM+ImfnBP3_7_Z?Zzd7cT;NnwDN|TvQsw^e5|`(M*2}Pgk!dg*HH6Ai?N8*Pet- zw3^ERizW&{BBmH?BC@W#G&oc)6C8<V$gXFhMnr@79*S?zU?#V?C=6UXHfCI0vmMQ` z`U!jX7o)j+IdNJO^6RMaCERbJX8moDkZH?F1#Wmk^w6OwtXNn8-16;uz_w?g%=go} z2wXm7fAl=7$DrHWA6~XIHB#YuynL;>q!bkG-q$B<bKTV#cB=2uy?xguDp0=}Fr$;d zaQ%dPTzo8rG|2RW#I`<`jDPvHj?UGc^Wy@yMWR)z$?APWAh@&RS_yo$;ybT68g}J8 zQH09rDE~LN>i-z|<P|l%a2zvw-cSh^saUA!OaG&pDgA3Rd)@F*ScE{6vp*gkxk-W2 zQt@Z^mU6lw=%0Tt4IiQ9jxFFnmD(!>l5F*UjW%ao&P_Rej*fxR4!GkDu&x|dMZZ}m z2=24h)YhH{^+~?N9A%SHhh7*I_xSo^IB6~!_<Kdm#%A{Aju<x)Y-(c4@#0r7kqh08 zk1pG{7%hFdK9Czx%V=KE8rgQ8Y@7_=WnHOM8f$N}NCAFf{~u23|FQbBVLteOMs!9c zsD#5bFLD=9iNt9PCm!lWXit|i6>i>)gf_YCj#QC!sY@1j)1fv4sY#hoQ`ZZ!Q#0If zxlE}dulMv5lpC!22r)~*6S1Yv@iyOMPmS%$l96QBRO0l!%uHV@Bb4hrVn62_U)02+ zk9lxb2lO!7PM(J=ohzg0pX9|UNCvS1Eoq}4)G}!RL&P;>K}t%a><9A335w&*Tb!!U zJ?N~5b~KfTV?87JLY;0<l6A`nRp8mP?b;ocB4=gjSMUz}yGZ`?1Zqf#nrJVaScx4C z?+>dm94?GHKwE%7R}|XqhmY%{ptkfsPG7fCVTOuV72f0G(5bFznsDmf3o6GYjaJSF zPE3Y=7`xc%lRAroH`IPo8w>^bg-!RU<_^8Ia6PR02;DKGxv7X?W6D{l!28Rk;zG6; zRyc|@cId0HV;W0KOHRjodwXO0j0k1|hO%N>9>9pKzPGh#+3>IWa6K}tf<<hKNs8J( zp?|+ok^dG&cUlGcc90lEY-3Q1!>AY?G7z7~9dy1oFwzv4<8kedxWMA4Q-ELi4J7|J zB$QGt_lJ9i)~NnT1&wJEO^wlT(1w%sNFbcmRQ&zKIgOx;wg7=DP|i)%rQjPwG}|xQ zUKpIGi3znK`&1Xhju6zB+T*)4vFB`ih-LmrgjY+3B8c|ac_B@B#c1QKYQ!XRM_sx+ zzvgNSmhW|x;RTMS#k-%uUdykZ2#saG05|XsitgxHbx){h*(k$(GJDrz5ByM=HY(#; zuNQ@$E$C6!Qc*D?dc(odcU#>!cGeG|JWPZ@>T5QG8j3SS5dhPtK}5ONL3h1h1z2;s zJcpOHn8QDF{|)p0Vcf{_)}R;K?9>Qp*zu|1_v*S!L4WnSO^!cS18Axm%epm9VYMWc z8cM5}`FW9NbaXON-77J89TieMYNmAeyZHiMbTo8O&JJa~;3lYAHXJlJ^PN`Q0H>^R zMv6Qyw%!>%*{rY4Yaq|c;3PEPT9X^!FRMN4r-cJU6X1ZznZ=!k%d++TxdeI=yTy8_ zQA{{;5w=!aoyGc0t^DQ(R(%BWetDMtuP_&8w4QV?(-KsXC-x-en8SBBB-Dv?RU;)n zCTvp1NJsm+(t;+Mv?sft!3JrwRl^USYFEAJyLQAZ7vymF^o&{xb2CKU)?r2ev}>sl z4mZu61x=j1r6Nb+(b3V$<`?%g+iFJ&E366MEJ1>go~4kDA#%v~bmFiGwJtsPQi&hL zWVrG)w$P~=sP|uKBgrN$R1-vgL3SyCp?Q@@pp20EBncA7BBz`0vu0+}V=o$tD^1(y z!kqH?fBsBo^oO+J1SvJ}7QdirZQgFNt?MWo*4+^^#uU;6^6@66QxkWmaS%cn!-Y9> z-gk=fnfl5OC>;-m?Y$Lt+MMYn=csKd>hY0}sd+Ay6R(Q=$8cg@y71bg0{6wIC~eqx zwd%vZ?Bc&=vL*dr{i*rG4+KKZ!tXZpUy;lw<bHjvtYts71*uRrqu^OAq7EcvlA#!* zc(0#ree3jpxV`9D+-$xzNF{Zu6n&SXw@MEh_BJou;{H&WX4t`5483+N2uZ|Xs^08} zUhI0Sdj@f2!?SZsWwuO&ZS94`i(bsG;|1*%_nygdA!7gw6$s4O+Q|w0pf;(l=wx$u zX|Plg|Li5yyWyjbPvMkSvoKwc(@0MPQupeL(k$i@C__C~15yKfU1PgO2OFN(S!B+b zk9^ZJ8A`GHO3%g)1zrzyehDLz7~RlVe=tvqj0`UCF)w!VpEMvN;n#WBKeAPz=Jv+9 z*MO2-sdsc=Tb@#Wj=gX+{4)khI5uy8M40+}RwMc-;{nzL$ub)PXX0l?6+3W0q9bQx z;SFW}s_1w$IYX0|45+a(iGD!B!_tz&>O(0I$J)=}Ah#W*V%%p&-kWi-ZMffs1O%=d z-FC)AGFlC$zP({EuR3S5M(UFbJ~)vt&kVtDuR!FILQL&}$q6#&a+wP0>BLlcT+!6h zy5Kt**I`a|!zqpoK+U>)I2xejU8z65j_zV$f|+a+K_27TqHTx%<R=;WFK(^s0HMIO zAD;t|f-GyaYI+-iNzD1$tDYw_bNJpzqWYPxcR|KipDFH8Iao!+*+^Kw4gsM3m=P7% z&TYgfLGRoU{Ec7ijC%doC${^UlaD@GLi3bX?Osqjl3e|X2oBwm;Q=`q&G>QM3IA&K zR78m_pip^y(pdT{6SjE`l{sTC6S$)sj;}rUyB#_Aw!!8CM3dx3DBf3S9Bn5r6_E!S zhoqNDNZhtQ<-f7$mJ8;2MQfo2El?fHv`B^Y5Oudl?zLT}R)d;n_L6>ncgH4}t6M|o zF|R2AOw|So0*}W2ztXws5z|;?IpB71U&}$uG~L~$I~W`Ax)$1Y73ux7wn4+8mH2y8 z-I3=K$#O(o`Y};L$_4Vo*k(Kd@0GI&lo9Y1`SiZs3f6hKmCr3Tb{&L%48j}JZdC5{ zA21>_VV*%(G!I>s5MzYDjlkV;6Id7u(P)304kYFb*{7K|c;8YXK_eAgOH+Vf7)2EM z_rSIMC<AKydyfjG2s^;w)h{?SRy7-*#KpI@HYy@oLG8hFGt>5gTSZ>!Iv$R0H>$&e zfLW~7Z`R|v4=EE96AAVfsg;~Me8VlIS=sQq7=DVa_y88)xuQgM6~uLP{5o*nx2&=4 z(X6X=?x5oka3|dum$`NisBamzZ3AKnt{un=`IsLOYwJuhvCAg%R+TqOX|5Hu2%9dW z*#sRg8o7p5A0hksGZv`)Z;JaLr#7H^6PCxyEdI>)*L<0;8|&GJJxfL7yRA&%$cX17 zgEvGTwtE|3-M(0Z$XlnKT26dlp6^t#;|4@Zy~2jBvCvBY?|F3VW#jN!s$k+(JyO!E zT!WI^ePkk}rp8QTziVai>X;I{n7p1P%+++&^73+%QH%RtuRQngR=Qo0<%p-CGMq)$ z+GIms8`E<`QC+YWu;!$+GtO-GFzC6H@IsSQkcWfAq0>heTkQ#QMN-pzBur3V;5H|? zpgNGKHN$TiNC=SS&5xNq!y1%MW9_wZ<(<Fy(_H;$)+Fa#to3h8QN|r%8PJIN7;>03 zdMGqM`dI0JQj!<fL0`tR>1?)Y<CW)Ab=Tr^H0%NP_v$3cGP*7c+2KN+#gV5Ow$u4S z3>}XnX+4d{&mQ~XN1jk92cZDFaOz#6D(b{QpKD;XDW=hD!qw7}U)3V%?}QrDjRUSR z-Db84(+G;}xqvVD_%6$tl(Vn>%M_<w+fvF5ZVKy?V7#f_10jzOQ#b02sUJ^BRF}Ng zbl&mmK0_qT4!SGt4E4p~%X1Xo-TWpbC>V%B{y3uFV9vQM6rqywaI@24wS1?t(pxgp zt&;B3BFgEk2^ePPge%eNuKEK)|J)~}pP-D9W=%nb_rxVuX_JIkNBsI;NZHh?kPW&N zw66JD>&>Nu9XHbI?n+1H(qe7h(qd!LsOFlRkMN*47vg~^+|DU$S6w=~_n0#Js{K}= zz4B))mkAWkGf90#+|D?yLTLm2PRZ!Y$Np><u_vwlH={w6-JPNmBZZlVH1g5}cPMFJ zGw5*Z*{eIrrXyhI;|XkC`Pbzw6&5>mlkAI`fp{v&#_6fcRpms*mUebTEvY-9Q@GJ8 zy|_!`vHlNMAC(qD2Gd-GZ{jopkekh2Cc9l3ax#9$`n+pD=8RmIZ`LM`fy@4z`?4cc z{`U&SL|GAgE+r-Vcu#3$#o?^aaDe)civ#~6#VkKWH*eruF%H8`Sowg9wcTv4_}o+m zwB4MqwB4R%Kb&!epe3CtBBl<380-bTKa~#%&v`s|2|SX|tG&ad$MlFS1(~s*LPt}T zD+LX|9%7$cWxzqF8h^v*-d82Kp-EEZQk2<9<`b0cnn8zMgWa>$@NGA$B|Zy)J4H98 zlxIjq6~JH>gh0GIxO-P)D$mo+T3SQ_lp5Ok^uZqSD5L45&<P81p!4Qn!f<hMaZXA~ zijND@sF$p<Y7=u~LxV?XkJ!%LV{~$bzW2e`q-}o4Bii<L5v8@lg(oXDklhG_nS%Di zB(ce_u7Hu?XlK2a<}iAE33Tx%xc)aO^OA6MHUyIIaW2%zkp0kFo7_~I>NF^o6}ol+ zG|7SNoX(2_X`DxeefCH@<V~*l6&}f+c6|iDBAJ(OKEy`e{);+q{_auF_r!kY-^$Ue zRB1e1a5dMAK{&*kSMEoa__NAf0|meHzS?GJ<p4F<%{<bH5_q$MrxkkE@9*#3Jv=U; z@-+M#iNeSA3d??ySIbFO!epduGKiFZ2eqhe)g5-vvmp}h=ShZu)#JO<4#@G#fu(^& zocfVwqL!-eQ%Kv*Jh)_oMa!uK4)YmeoUQmCb_o4{nJC{~Z0&TND0dg%9JTtq^TFO} z_ii~JWz?sP7!t=MZsroUdfd9#0w02xwqNhGjK1*?rxxzs7eJQ{bk5zy?`(2s4}9v} ziu%MH{e{qVoMjRv+{!-*V`52eS?8sRSvbzz!Lq7T;Gv~g=FH(z71*443Oxo33#$_^ z5A|NX7$Yr8L<l8#qkFCAowY*IScUaA3HFllcI=edDOYgDqU*tRC)!F$^_bQ3=)Q?~ z*RYa@eb2-Bi#(vu+3`ogh_vzGrPX6B(MRUgdohBQIWe9RUm*fy99!p7#AHmIS9|C{ z5j{3yXTqnY0Jioze3F%Z+!vqJOM^k)>lCyfxIlfW+lXM$bD_~_qU^`9%V`^S^rVnB zt9&Q>N#PD4$q5HhbtcgX0o>J3*l{O0>GI&J@+*EulYh1)6ULa}nIg3#g$1zs3q>w8 z9~zMGo+&2UA1!oD+)rOEIULP($HEzISQuqyX5N0Y&h^<I2c~K&rQKvlO_@nc_u*@+ z8+dOf$Tn9?xbV45+ogQE`{tWFk`E#g4>I&z>kc>kEYm-|N?86eucFk>)^>Vh2ts9o zx$4X%vN36GV&%zR`*kJH|MpqG<0TQ<s+>kylLqWNT);r`N8Av%$Vz%BeoXeE0G@_K zP{TUmKq~|AH{CkH=ulC~hjn-e<Y@P3@|kmJ9X)Eqn54DjQawROS5(Y!%5FEK6bcyf zKO7<OkHEhBAcb|&stOx>e#sBF-6wS*6FL_9m#{jP?RH<&V?d>&8xkRozWkwaF+-_H zpQNiwxQ)@|MbC%2STAbcLvEd`9twMab~3v+RRUQ6fk4D8dZK_?0pGJ_zvK4c+D|)m zGT)kp@Qa|Z(dholL}|(zBna6V&s&MaEa7|5B-N82>!|w5`TY6w*QZxRtH-II<JPt~ zPg1N^(jlh><C%3LGt%AohMDT6!3rGzmntdhlJ>a~w4ZHSYQrCURB$>3^#?38n;Iv} zMnq?Z)Xm<FC?on`j97w|+PHv%;X2+wRTL3;h?ZB<gMI$V%9CNm`x|KH`j$P;zl|j5 z&r-_&TwMl)92Pumk0J@hF7bSj-6jFKUM8in8{URL6X0@cr)N`M41zomy+BdLb;y~J z_igQr*_JSu?t;mNc+B>BAbFM<=P8HF&rPWGj~6RtVVcxIAdzvI`&mgi$ySRub^+Tn zknx?7k1AAX>Yt4i5$dIj)M4K}wH5dG;ld(&Tkn^V<aDv+X@1#<NxVlx`2HRE$(a?K zHj(~n6`n}Yg?_Wk;f*6tb@PT5IN<Io9qH<b3xiiL;5D;4Gvbi=BNs55BU#v^bjF_q z4=z4;muuYkP|{SSQ}Q*&xRc_~@4rb0#$Tl4bzpccpBYYwDM2NiX+K)?rr=Lw>-6Zc zX+&@<N9Ta>;zZTAZdDm#(CnAv+l&29@9mKcYi_fe-WU^xzS*}}qO;+(MYkl$#26Jv zTu{_xpF&<M>VjFmS&8$SCM#?x`bcF-PuZUcq3X2?>I7i4=L?9u=~Gl3PZxVQH{T8l zcqFs()jkOL=*vm)-7`fVfm|7#Tw_@dVT_?MvF4dntQ-*&`qNS?w8Kh$(Xqt*J<mWH zQ+M4NtK3GybZ30Lbh1<V=9Ey(oD`yN0di!vVS=L+nX~MOn?Wo-u}u<edx#bH;Y?U@ z`G?s>AiW|{u2vzC>o3-R*d@gkiI7AngTKX_voPWmxMFCfqoF@8p8Z084+!Mt;yQbF zU2#q{35)lUBp56fngWyN&L(LA8V}x`zo)hx1ocG|H7P4A^Cd)XaRw{TIbL27DrUEN z_^?E#qWk}fv>tWx-vk%8t{m34f7WSFM`e@14OK4<?uiWfNUAC*MU9fJjneu*8xy9# z%ATEKLMXw*LPDe8u2$^lNnZd7&sFIG->ghrt;YNh54L(OKw{<+`F`Hyoijy2(SeH4 zIUOqVpKgJSU<!6Ny*|U)sxWc%rE|fp9TuZDu@j#JjZ{{EhxAvU{dT|6pbiM11|UP$ ziX=Tf-Fv)lT=dSU0##KhbIu@Yic}j8UF7_`q<>1GKo<W-LzKG%Nt4Q3X%I~6L(}-! zn5)8~Wg~;<o67mGZaYpJDUmbm+$?Ko=-K;w+{gE;Od~V#xiT>&t?Co3`97Mg1kM7S z&WbN?u?5m*<)O@z(J&iG-3!uYdm3X68Ku0a`C{_S=eD?o6b$fk&zzxHw5DA4N-ABa z*8L)rfo>54yALPgbCY?~eHy*3Av>Oh2A~UE*gKcw^Ek_E(DvrU0ic$^5fYQv?&?b6 zW+Ry={89Q^%UQ9i$eheJCo5HO*Ker=Y>Ybm>SBtsVG(P}&g*nhPRg&<gO}#g2Dpep z+$Dh(@Vk04xDpD<uqrd!h4wY`oQQE0Ler>7o*If>?~~DaczGM_7n@H-W{WOzlf_w+ zxJ<mRAbELrnKv6M0n%(&SMEBj`Uv$7e^>hAxB`{9p5ecR`48yITyUf`edMJHn|i4x zbxjhe`Fc7+5L_m7l{vE*Q0{}`c~s4|6QLW&EN?;0k1jm3WG(7<5PEZtwlli7pYT(4 z?_91i{m7bvrCt@86K)a_Um3yRi>^BxEePs^G*)c>mKeHQ?Q_WC*d8x&!#S%vJ>K0o zv=M$c8m~s^z0vbQ=R@*G&HL(S=j7xB8LmvWl8+IpUh-NA@HEGvv;ch*AFdkBii%1! zfyr?KkBp3@CVsX@e1<XrDc;`RzA|I<e2qAo8dK^-C1$sL%AdzmQe_YwGb6l|5~U40 zn(^N!eHWy$*cUwS=g3{%VOQ<5nu>We-#Lhmz*TdJo_#>Ulh-8`Y)ImKFb@+rH54?E zK;_4_YfC$c_J^s+TLGMwVWS0B6lzhAc*CYawI{jTgsRq?$ANE0K&O^{Mvd*!*E(+t zibz1OVbc73eV0QyRB{YSmBK7wst-J=ME$*0`_&i$i6NUJrBbTwa)@zMV#~pLy@w2X zH(Hu4?d=bg2j>tX;6yVjH$#TIiTmO`<1!d>S54(|p(B!v%7$e=!TJ>y`Sl-Mx$UiR zn$Zps_bROvF3}r?zlEE&*izK9<dLdZ<B_WU>asWK@$3seUnu!a9{Pt6UMr9?%>ByF zSZ2JK*O)s-tc*O~4TfweCflE7Jse0c#W;p)Zf=GHYam@No{t6byEXc0><6rEdkS<9 zZF8Nfgm80FUmIC9!okXq1L|b$J{U&Wh`Za{z_s(eDV54$RTRelT$r>PCh@4N2>B2A z+CB-e6MoP8)tFrnPhLz5w)r*SsX%-J*f#V*$`G;OoJR<ZTv=*D#b$wLbzXcRcqk0K zA{L5Ky;)EtPT<V^G-hG=@3Q?f>oeAotCc{v?!BPCkk^VzmeMBC5a@%x%!u}R7fV%k z+velBym{Tff*()idf!vERw~ikd<>Oj4kNZ*(qj&P3b#BPEwHjs3uKw|+iGyX-3fc{ zFdr^O`83TNMyMtC>D>DMd^-p0h}+{pL9$TWFPD^(GH?LuV(r>uq^SGGR61&EX&DN; z@2XmuXvwqHREZ)=9dEq_b|e#nN*>Ej$AXaf9ySy@zS&$;2zj>E78h?*ypmW>?OKp- zTfQ<DJK+S65{<EaigK4@{S3!W^ndsaxU8)ekb$FCy4sNy$Af{l=pRDXO--x<m!V`2 z%vphYO@4`yjxP3m_YmsUxyXd6zb{isip1|{HN%0`mo5*kkJudYcq08iO#DUPcKc?{ zP>Qe}?&JCe!ACljJnw|&J#I+!SpeXTjg8KD4*2^ed5mN;!3wzafz6>CozB~z8b!K6 z({tm&zrNf9ZRJBk=w#zG9cOC_02GK+u*Gw$Xn8kxmj2tvD@7S$Kp-%_<T2=BJU(mX zVV7vMd489FlA$yoRe(~f{?BDbWpwhN!ILy_a;x?7vjm0xvmgF;>o0*`Fm7&o(qj2! zU1+p3@Pxh2jV`U!wu6Kg&^H7c{1J203*H%dmnUkO+vd8YAva-+%!x@TPg5qU#HdbO z{$3j1hM*E|k~EQNrWDHOwsIDe**_AQM>8Z#B%eA7*DTz3Vo?E=t}R&Oe{u(Nz~7Hf zsfaziyWG3{Rhbfj5Tjvzs#ONoMFDD%@>)HgG8OmG+oPv079bHf){pb55Il$~Sg$bM zwhPB>z|Fh4qo_#tR@$y4s_v`Psm?O?g@|PyXA9?jN=#svL(l>h{q}j(|Lkim*aB$+ ziIGgvFdWGeiYuv12~n7Em)rr>T~>i&uq6<hgVk}RGM;bf2_foctMna|CQNXmQ8Vzq z1B_BXrFUqgV0E#>)!!#zPBUl_lTrNP?o~>iLHSzAlo*r!n<;ksvp=jPPW^$=i-zrZ zW1o1RKBYyC7Z#4Z))lG`<l1oesEmN!@5OTT0$IO~jyg`DJF7(*VKubY;vRa^MmpN# zJuumi9<%38MC5b&SYZ=5h$mG+J*m%MKcZ(Zk*RU+nwnrLsIT0GJEgBcW<Rb^1*$oJ zQc!<M;EeL$MH(l%!)=BSjEA*kX#^=;z(~8cvm&7d6peun?lHhc8fhc49bWUozF)qL zjG@U0FDV2=Jw{Qb^h85LwsxWtbOrn`a#b2niq70sV^D=T>@%8~qy&o;0SE5Gbw|#& z*U1nlRbSK^r@rD<ul!FY=rC^j@iEZRHBIy_-qlJF1fc?1RV?j12~STE{WE)cI%|K+ zr*W9&yOlV(;D~dLWIo(#x%#HY#`*F4CG~m5PsVo}X;qoVzAIvx)?-GfxITWl?<Ekl zK$ca7S|HPkPtX-Xv(@x7OcrN$7kWGuLRcf_@br$#%}CqYkslp1kSPwogs<j1Rt|AA zPcM+-BKpcOjl9bhw0ykMU>Z#^Js?VL^V569k}Pq~s7`E0ONcY8HNjf*;kbKf>gq|M zY#olu{M}LUV5cG;v;!e`$6R9WXkuUJOZ6g!#l(Wn*88HJzWQF+j>}J`nUTi4mIb2J z0I{D*BkJyafc<G1o*<lt39uf|br_h;Pn|41{bh?f5X8g?^GKSrJN;9SHTK74DI_mw zn-eUXcb%A#5TD*Aq9Rog%DRgD`)<!4Nv#Qxe}_yTGR11D^Pbck`u(3a3WzCcz3j-c zA0@YqMVw1&^UgM)k9?BovIE?_D{m)~(ngT-gx^pKxy{iZ1Eg2zq<)qR#Sr`xZdFh! zvK?<0yOXpNzh;A4@M%Rv#6qwqRXU3f`gU{13Q?)gHr9ToD5SAJjBI^N<6!4^C|&0a zJRG2hVN#O6fYbflv>PX%9f@1<IPp>Tb&U^2(`Ti+!-e_zOFn*n2*GMLQ0^`FT@~at z<m`Afsif!b%dTVCXC-NTC{$-WjoA|aXNFS2o#NdDY4C1>C}DLDF3x<_V6uGw^t2Z$ zB0G9adS_o$FqW8G|2cyw6EP`XP6D=89-+jco@t^CyiK@9h&a{b)p`4GU*^<`4qpO2 zdUZ^KrB_$f6fPV^8_>3+^{$2=M#nB3zj8B1E;z6P?s^W5h&@|Z?p9q9Fy>3?y&CeU zULmwk4#eJzd!<kc4EA~?8y+5RMtnYs=;Y+oSyEej$^l!g!Ywz{?QG5&bd|z1;^co_ z_ek;B{zpu&{{g7}eM}qqdDHnR0uy{T6tFU5G4?%hBc9&UCb2N_bsY0Q+eH9(9Fude z>>s_goFG9_>-%>9&jE$HPk-NtwA$F(yPMC&!Z{G`r`G^h0Ssaw`aS((Vc&<_i=g<? ziadR*mc(##s&EA?k#p=TRpyCj)YB9x%vcOshgDTo`u-{&M5(Z~4^uWb4hxO#pQ@^k zRA9FTCev2St(|Av4j-tvjc=Au>0h~gMNtFLp%Q4qrYSznxuACp*LqbXo=i)4<?=8? z8rv8Ql&3u~YRcJ$pZE7yD^7ve-yeIYf?|J%^n)Sd<JLMac$q0KV?1wH-hWuj)4WV2 zsSkTe7n|Y_@3-Vw>j{)T@{<){o2jba7&C_xe`8WC1oBNvyYp1@2c7;R%J6GyjIhZ~ z8wYKE|NcEl)bn7LKQ*uZTz%Cv_F>KdBoA}*;=?3ep_JW$Zyqi~{*SVN&A|luww~pX z3^8Til8NhuCMU?tgKNlLaAGyX_3eRIF1Hh8A7Y0nTN|l4De2BH@#FgwI5B8E%^Lo5 zxxP-jwpb~z9f6EiH?J&uai`tb1rpN&EKHsg?~;=99z%{$zy;RI840B)3ii2iY=jii z$YuG3TH-nrzcESep{n86Z&bqN%y(v8P3$Z52z!v)e|_BE*S66WQ2eE0r08QkIii)U zjLdR~jzMQlwp3qS9}`}HR<>bh;KL2nbQQCpiaV9=4?YTrs&K7{vw}$qu$(>Z1k^5i z$Y><-)Z5Ke$(EIs1!BlAM<#LMOJT;Vq(dINR5Ig(_V@4stkDEZvDgiJ|IML$v1fu~ z3m!)mFf;QWI_^f|Vn<DR#-H90Z!<Nq_nr19&cpHNFv4mE0#n-zY9F5y;(XGWV9h`D z{mrAxRvNVbkW93H6ICJY?d@~-4BCLj`T5;Rb$v_#Sa<6-Yh3j1KsGJuGjR<Id4SW! ziQoyo5rROxbk~`AzL79NUzhmVa*4pNetl%b)%)t6IEc{6W*!FynvuVmtn5Hm?aOtJ zoAVef;_IU!@V40f&AZX9jxK6i%Xr#ki5~_s{|#0-+LrM<^>ab;x~=asPrfog{kKJk zzqJYFvq-UkgF>J24cSpQ9lE=y$j9fOWuMfxc|vZ7&czI6%r7sz#?Xoli1ed`BGrx@ zesr8PydHH+S=-3{bPv+V_;LeN?sM}=GZQnj_4v-K_TzT3=gzR9+Uo~*WqL+NqL-_0 zu{=$2#UGOWz59to0lCX1C(rsxZ4iyT*TSC@5D@q$e|{rJ`fGRBn=BiWr%+~L5ej?f z(|P6p>)Cd^=;OGRqtPOV`X#dji<Huvryi78`ZUIWnradYMCrc>U`8<@Cddx|UBwK& zagBsvv})h)ZEGQ|ioE=xQB!@y(1#{NLk7k?v&4F&K>TCI7{kw61XZLGcXerXyi``o zZ|$&TE?TDxp_N<sOzLU3GlGCo8W#Qt$!Xbk89e;fN>WKHon`!+3G^{gfQs0|d23n% z{c(PV`?-b|<``sE!T5IaNR#+i)H~RTQGAsmUA$2kv8$4slko31l|5gA_U|DTSUuk6 zEqCumI3D}njW)&S80Jg5(@Dg*F(ga;X#U^xH{>iX=k-XC|Apjs1JYH7YX_L5B$5;Q zrvUT-72`dH3gqj>$Y`0XqTDz&s5RbMa;)X!4K(d+wfPS9IR1FqBxVb5ouFT)pBC;@ zl#zAgkD1J?_HF6yz6Jh>RBt0hKsx+&In)tfLd#lyPG{*@@YVHP<0tBdaUdm-;HC5@ zjU`2#pV3-+CNN_`B7xt9UcItKB+P~w19Y5T#j-gZiivpqxS#YBvqk(N6I4isW0uVV z-PQYFd#kxon^)7#c(qTdkGEKwm&{kw^e5r7>b_EQGc}OM54m1^!JRhizBt8MW<&7Z z!uxkkCS-}T?Q-GX{Hx%98@xn);&64y>lC!gr*TwitjnJJ5gqjP@f}mH_c}jkzebuo zep<A%sK9OMuNPusD<0P;YZIEpzfkjFe~#h@dgua%VEFFK`-LDBv#W2jX64LixpE-L zG;*OD+z>Ip8Q2x+ga@iU5t`UAaZ+qwSwU2@qR;teJx1fp0^gQcQic3P+Up)1bd^<K zs^Lp@MNHa#mY{Z*P(a>`gfz(o9*i6v95=}YT6$d`?f^1;z}usKD@!X!9ZlR$wyP8I z9idG-53Dwpj&zD@<AXe0(zz;AAg!-a^RaYp1SzsCE=mT{TjoX;iyaI=e_QKO>QI^p z_pu0;ow(2fVwn85*wpaIuqD*0&YQ%DaA&5snQ))`87x}fwi>$<<o;Y;{<c(&;mv~u zYp6x>o+OW@?63-VY7id-!A&>{ouc3+P<ERY$V`V~4L}cznSGUpdp<)C_lOCnyEMTc ziUEfGk&>KjPsMGeScHQ$aTpI1WL?`SV)2p=PT(ht_x^O{3*sR(2GtlG(CjOq@?8)- zm`;&r+tu?Ml^-T3mP6(3g%H_{`>$0K=<x>nI}V7?-jFu4>ZtX(SyUCCF*8&}mVfpi ziKe@fD0SsYCKm08O!$UBbh@KfNJ=A)EPxkc$S|<hXAEBZsP+0r9LBBl$6|#~KKfDn z;=_EfEK?d;5=F!tlPES>$&5D^Q7tY86fY>lKhy2@MtS4XN~|%ApaBWNfbSDL@ZVV= z<X%YL&BevVjc-I^zaIYDC3_7Y+#%_qrl!{QNiL}^BB}NC^C$$FcroC<8aZ}X1U@+i zLdIu5C{@BY?5Dn!^hp3RH#etZQty`SKkYM6m=Uer-R?9N{6&6Ia(YA|WkCpaY7pN? zi5J5lrTp`f0GE!MPcrUIua>50zsym%`j!ndr@ucQ9Z~e=HF#Gw_9=D<u!hvZUp;Ic zr-e-ruZ)fY9Y7zGzQqn<_V56uQ$H4r@Nh{l2~@?A$4mUcaW{+g(eF}v5bW+@@_MJ5 zxw$7X`@`6MwzHcW1W>|&8{FM(1)vAK|570Nj&Pk#?`UVM3aeob3HEJkd;mJN(gm_= ze~<{HKI#jIzSOlZFX8~z<En!9yPPwp?V{mBitslUQTKzHh*iT{KOD(3%0COsN7}8k zvQn9UTwtQ?De=@sD)qV_|5*Ac%%@2Qj|?jjEGv!zFAVu6cx`hr-A@iH-`e%?wL@;P zf2mqzF;B&Yny@e4X;7nj1VycF7%|7)f}-FhrR+BAh&RT0(j?v*q#q-!v7TPMuU~3N z0~_>atOLhF0B;p}8vx9FeDfoAmroqDI%WnKm6N7{BmQYmfrFF4Xisk@0!RE4eRO2R zAE)y^p7zx_@`0c?d{xk1fNp~a(~8Ysr^$S|sEHxyVo^1Tu4fx`6rPwCc3i?rweW+x z?zymc*B-D;RyI}9QX=>%82rfgLjLHv*Kc@7^g97xd#`40kNygZodEh22>;?2cdVis ze_T1;z(;J4Fhu3J5iNtnnsRxSDD-zT1L(mCdZo5PDZ;eD+%SZzLg1XDqN1Oa85ASI zR3n$M#GLEz-_m@Tbicr)E%F)TvK`MAQ5%S(_@<dS|Kgh~c$zQpCMY92h|@}}Vjh{l z^OgpmierYG*hqV1s~;Z$PBW1vuQ;UKl>nfJD2&QK)2l_S$C~3;p!tGSo|H}S6GP7f zo=i_O?9yqwVoJfGjK?1bGl!o(5`&B9&_xil=bnvQTzwq=3mASzeSOC*-LRx(Mw(Gr zU=k;rP(a6nygg{p#|!k_+8btv)rfEp@pCSLDN=m*0zR1<l*pjq==94K#%*$IwObD+ zsK39T5R({~uZS5vh>8H)qVUR<g6(x98;_u%AQHubiJYQsElKm$GbYI{Mh=en>3g@& zJeszg&%oSyV{g-}Mv3bA648xW(-)96exR9=X3&n8yjd+XkUs2B_!>3*F}azss_=}H z&y^#YRaUYzq1wSrc+qW)x!K0s7`ebBT|fD=GBP$?n0OtwuBJB(rExQA>XG2!mG#kt zJ;1AzZ*@W#-d#(J66|jhW!qZb%flrt*+m{tD=BM(J(BP>%Fg6~wKy+x3GvbI66RGD zx`t2bCLyfl3z!Z`{ufNauL}}+*9Yq62L}h?(BZz@qsWa_USrZmx+rr3k{%Hp=IdF| zg7R^cYcm=&_IK+Xs<>W2*y+!Muu_t{l^~BWfkP0<l|glMBZ1~L;wCTr;slm2lFna} z5#!?jL<z-j>UVA&$!+xS<0C^``*YxQVo8y4OzS5i5Gl)W;lf~ORtey@9p?<GkY{x@ z7pccrU-bTtAHJcMmTmy%$vAb&M>UcZkUJ;-$SJd-2YimMIpy09=9hD{Cx<R?^Mic% z5q-`(W#O5TS8-^=3)VN2RF*^P$Pw<mGk>Wl5=wxsG0kWg<Or^i^TBx`VuJ!#2A58} z8@tgJy`Wdm?$02^4i_b|)=FLM&D-H#rdM4bZ)KkM{e^lrrab>1^}Zy~;WNz|i1?~L z=s>P*=HKZd#L0)j(1;^nBZg$Qi0voAi=IxA3h4HaAGpO1E>&mTHJ7)qRd07xmzK3D z0yH!i3>k_OSZpcz*sWkQ_ANlxz2@Rh$+(2%@G9{~fFwVQQdela(Bb?$yieDIR%LmQ zTwNE2Ok<lh3oXufCt4}28k4tMI^Vu}^Tj}BYiEZkA|j$OVW@0d@Rk-Gf2UKUL>Y@l zhA47ANAd0;ZOeI_Y^q@Lz_Z!PsBCdrEnTK~Fb|*v(Ai?O<&PWD(xfcv<#i!QiLX_= zLj*Pk@n7G4;-+EZmD?)8r4fhbVX!eab7fgXTHpc<#PEyS)#Ccm%t%1Cj-uPjjHZ@R zamb%-m=}wTs4jTKgKL$0oio2&{g=Yb#UV_5&g9!h)E}#6ntjwDCSrK+<WLwHWZ2ca z^T0*QlNwH>hFMrxH!o}<-F0yamr-?11A}abp4MgebLo=2>>wOgm|<VYfaoo%5#)9N z5wRzYK`BU5bepdmpSQhs_&-q$d-rzL%dxRwSq=)oTfw=@lHz$;h9~r}j{_Ygav2cT zkcy731a{-jJhbG376(*-JUq>nWw9gR|9Bo!`S*PvV(1NUf!OMW-3^tRMAYIhVPKg_ zakt4AUdqAp=Fe8xo?)7Cmy_pLEhRqQ%+C?!oQ>rOt-MVbwv%>HE}~!&!Q^kd7VTVK zIkA*`n@B_DMrIn7xvXpXA5o&%JhZdZ&>2yYd@-8qt{hn{@(J1%sB3JGO|S3n32MA` za8zMHtI0f~Q}d=q!B_oQq00`q=){pDw86&}PHT$6J9?xkTJR?TG6n?AwHnKz)#tOR zjRG=nvNM0!ZuH0MrO%GJMt=aT?M5pL3qrg;f`f8CkCxV7g!`@i+F6e124rTuj+xpg zB>Vl{FTOyN2>hG+w7UEq^|3M6eTBTpWd*+|dTAklQbH^F`<t^xf<`WcRtu=KyO+&l z7iKbjv{_P#g%O((B`ITJpumy7Hz+6p;E>&BjbQ_{3{NmCY@uPHL=Y+O1Cm-AXI#|` zgJBS0;q!s?i<C9~P=`TXoc*!CMs=ba`Lh=y+B3PbQ{>ea2#>oXAanUAYn*7jq9n%5 zy)hLfWndcgG#r7i5xm+TQId7E_h^9rdXqJzXPiwq#h>?LwTcs1&iwy{Coo-)9n26= zwp*}S6vLnIct}vOVne}89NAkYzoG>(_l~zyR7{+J5d)tp^RA<~?9!Apy>R}Bl`~dR z4P4{Gi8g4!1Q4a81hlXg70`P-t}J%a2@4kr!K2OBFXb4C1>RqyeM{pAn%WZ}o{N7O zO!rYHcHa7jvim-*$r+}ZAt1YWF7^5Ab!SBJh|Yt?FCRI&^UVk1l4xmZi=*bVUuh)H zi9&9Ky)UP}+H`b{FC8cZ(@@c+vHUu<`nUN6_thbB^>k>%L~~rY1M4T0?_g8I+rI@h z_6)4PG#~^9Ef|H2-3R0aG1eTQQ)yVdARShu)A%85|HF|yUSj%*u%X|UedHa+1;>s# z0-Rz+P|SKH>P0?Rz09w#cmEYd@T}NwP}4yQ<}H2eKn#h7MDQ#c>}gJy5ubp}Yxl<< zJ3G5NmqVowO|gwxA345sO1{IimX(naed}N}Aj^~c^G(XN^k&t}BN8`JrH$s#)g8y( zSvxkKP4i7IX(gu$u2{u{ohcq?t*S!LjX?wHEj4)q4M_$;TJ$4gF<eJMH-WJA^H+j@ zoa`VTv?%6jPHn<)AfP`?+#>?dGY%gS8=z~`Qe%+)ly`<u3Kx<_=SCot3TwD!lWf^L zgW5vh*Dbq)5i!!t?7&e5M*cw|;_E(~$!piKHl(S6E#CR5s<6;Z2obi|&mC7WRVsMd z`?-()x%^t%V!q@%Ov`osEY*N=pQ!cSjd-oA@iurnS1W7lcu>VBj(ksdB|2mz1^Klv zOe?`u+D<0Q>0Qym1?J=KT2T@HF$Tq-_bQQ9<rLKzSQ-8vrE_+*fsdakfrnMkOx&x- zun!*6NyYg7jNyHR_&~2fbD0Vfa+lxT<PuUrW1yYaDEOs@R*L!GlJbfiuZI6avobro zlGpFFbU~);&~~nALls@9CquNPmq27h`P73QqAgJ8?rv{?Fb_byxqQU7wz1ug#b z;^N|ZI2sXYWv2_X;56^T?wE;TEJfK|u~HV-2@>H9KG^cQ%&C8QWMm|;nPUC*Aem`| zv1hJQ>t)v_(@K~jQvCIy^g4X8<1w=$ords4Q%C+kP$SZ;c?Jehl1}dH<7+VbADkTf z14c+?Gu!I&*Keyk6iD7v=u||Cfd7w=xA2QH`nJYrhM`-!OGUc78vzLsknZkoW{{GQ z?hXZ|Md=z!q`N_ekZ$Rk-v{G+-`{=jd;fyxIp^%X*4k_Db2QgQSon$)nA|+-2zraQ zoxhjtPQq+S<E@cR=i=2;D2OS+RoQbSPraN<wpFySK}4j02Am|9=3*_o%pAjtPoJ2` z#QaX3tcy%&cBe$3fgWDj#e(}E`Q&LPVz9iU9)i=b*(-<O(W7Eh{g{tSwqI$q9idr9 znJB&eEaWPiK`RDwVc(9Br7S;jkezV3WfT?*XlML)U^HPOHFk3nbthdES>b()Wj`iM zuF9_UH$KbXK~HquuABCcMlZ_X>b`3#mR-Hb52~E_A<+G&Kj#Qie~?nJfp2^_kV~<; z6xG(<Q4S9vZ+xA@{gLO^Q;~$Bg7*!TKHE~W_u<cm$KFZi_%7yx!zi-?X5DDF*Rl~) z_@j%!^2*9zrwfhl))u<Dx~bgl-}++PwgyXzi>->^zYho<eH=BPBk%8jz;P7kZ7pqh z_o`QZx6xQoM`ML6KuZ1hCw~X#{{@uU@a>rbF;Vw3@YeJX&RDNEX&Arp5f9`>??PJA zs%BV?A+Dzh6HD~5&)7uMT=z{TpZHEFB)ky0Hg+noKH+Hx=MA9#@}}D1dr88=>zq*` zBqO0#n$QS!<|o*RjHL~aFOFiVMA+H7*T4xFXK3(B0A!WjKqMT8YQBMy5ooRj=Jf`Y zm2RuF9z7*!3A($cyp<Z;R2q5`pPjvkg4=VYHp44asi&`ls=15+{kT52Zrxwx$S(WX z63&6ftQ^=EAD1xjKPic~@310JIYbF61wHZL%zU-DDSr=*G8$IcN#9`ogL~FZF}Wq% zSDRB#?6nGm=6bHD17oa$?I=EZgAlil#)pi+T(T3}b?&L)?MTl3Y^iucvf@~UCpf?W ziRFhYN(1M6b6@i8^D**AUK+l7^@`JW{Jq|rt|l~23Ey4j?N>w7m4*w{jwPS=Gcf^4 zcRg0t)@m}F%g6q8Od0pizCV#J{f^18mELI`kPK_R3hE*Or+jF$_}=^7^8c0;Q~hLt z%`i=!TvXeNtYl%C6y-n6j0UvD|5#cPVhtIJNF#BEW(xCrXIxX7(&+oq#$1vLFFaS6 z{<j`7@i?v2>vTir<9}}fB+}){R~F9~cw(vKae`}XA^_O=c0^Q5LzlThzOJsvTq#N) z<iSd6LO+vpLc=}rM{n0F%05o;4vdVbb!RD4l+5k-{ZJPb_S(C&a&bA5RBNfJC!yg8 zVadIccwK{E!c9)~`>@2YjPYKjUMK!$H#<M`6kCfZ(La@AEro&;GWuA;(a1n=S2tbY zD{5x^KO~I@0)eNg1TpFZT1iiiox3_jU!@neu}pj?Y_z6Yh+NYk_XtICdXT`j;Unh1 zx2`0i>=SdKW?|<_(ywsIs!5-B>ZMJ1FvD764*j}46oW$j{lc+j6mb8*z(t<tv~C1C zu01{NWuLyL2BWQ(x;mbQmR8C;#MUh*qtTq*d-u&@wW41VsdOSW4HP`L#wXpo)t2?# zH-kf#oqVoDL<0ZYk;V7sOn&)srS>jPYvGgZgAjjE9t~3Y<Z0urmkTI9EA?mUS_6Y9 zCb=Bf2me$2{W-5cXS9>}h>9HJFopt9V)da(@l+=S&{hU{coV99wFa=!ImRhe9Yw=M zBw80o&R5FCQi~*2UETN9x~WGM=ZC}_ul@OyNR1x6=ugBho+l?K#i600Di{s)Ky6yc zjguf^OsAmwJJD-CA2$|1w-*L-wVnS9FwzNe@sk@h-FIGNA;$1m>?r=F78(#24ZQZt z@wF9m%=RRX_MRBljk27`woMr4$m8PgV!N~KlyT$v47@H6ewz|c0CgGb*%KM@cLpz} zo_rt=Y|zcRkd$|Le5z8A0bn<nZNJoD#&v%wxBsKnA79zqj4Xr>daryZfdzP`qvhe` z<aFE_hRGyo_8IdH2tX`CmuBGhT=?FmkgZr7Hq~K^NHez@TL4umLWwSIhn}Y2c2l@C zoC+32b|mSqz%v`7=9mAUs}ve@TpbmEVCw=k_I=X;5aB=V$V(QSyoJ_KuEQ=H5e9P> ziO!$iS1{bj=za*xGGK2J?-m;N;)7c?j+NK@8=}-0bTqX-d@Wtp-O8%C0Wg|&j>bH$ zjZ|X9gT-kEatV2&JK@{J$8Uqnc#)^)yoK)c){cs-TyD<yWlCOT$@@O~3I{hhT_)jH z8^uym^F)1HONBU6*|ty=xx2Xy!@40O4ADgwAFgiGe!9#+#KY}kD)0O5+!`_B9{;xc z{-0rrJaetkF`<)(x`ukbF89|0l!oHj(19p$iMw7Hv!OgufL@y9KL5>TR6_qVn`M?V z%Q>q55UJctKpx4S$4n+8@YurpDB^dzwPZhCo>5}|nM=y`wAE!#=<akPx|KFU)(0J! z34}kP)n`UYx(_pbUmm!YoRJ!pR1C4QvTC25oz)qoRp5y9p{T!XzBp6cVK_cxO!Gf? zBf4L7fAFArZfFI5i%L&`PNc0xRONJddnQU{skZ!Ce@I-30rs7U)ydK)`G0xm0}NjO zh}Q7c8fWrW7ggDt26RVhb(Yb6bApvKCG+1g@=wl{Dw&d3H(X0{IS3nIn7d8Tl3IgD zJLpE4>FLd0Sy-%(hoIsf{M2($#}6FSY1{K(gIPWrGw+QR<2V0?b%=Hv{t_oms@(|F z0I+pgKmXNM)63J-GZcC9a}0*9t!?A;=g(<YydbeZdiNXEHap#U+I|j4Ygz+jL&G{J zmA}D=N^n3e?1CyErT;DB5)|CijN3WXpb3jDLK!%0=*8F3m>Ns)3`H@D9n>P#Me#@} z(n!V63$OfCYBq^--fC`Pg%Q9RL@OIU>McuD7XGMhB8`xk*r>_8H`Z~UpJlT3RIa_R z7>+s|#WO5uF4ES#ZEpJ_Rh~*O3VJ=@^y%@=vIE$KM#HkXz1s>izS^9gdV7025B`o` zM*5dZMkp@6&*h!&(R6m6$L(IotP6R;c=Sz}JCRnguEP9pYMufbJoqI|dKC9|<mq<H ziz+@pi=W45r4D)*JecagaS?6~j@6lhEeE|urzvN$p^WsE<dPc-(V2=`)A(<7<-l7t znVDBwTy{u^A3#pp3cf)>XU^`hh|;}Rr3!$Yr6me}hlZ`u0+~vOp&*5)>alGiGRHah zN46z7#SX@D3Q&A?$Q)3+`%~B2B!aX><EwY+9es1x5$rwW5MBofl-pO$pIS|o^+sHn zryoyn7c}06%npsD+pjX08p!k-{SRufnw*jl?42h-?nEPjA^nCb2jxvfl-*w;6{KKt zK;sXObx!N-;I?w)z1Ui1E)5c{i5-OvBs5|$3_vU0c>B3mCr0_Sv|{FA?cTgD9xtN8 zMi_CzCZEj*D)f{WgdU!=q_XLIy^xbbb}z7L)HA9tEIJ%!R!MIls7GP-?3HnBQ;@u~ zya{3@mkNQsLB^C$wmsnE<KvAe#i#JN)?e|0sI6d|Wuvh7zA7uVhkqkk4rx@LDI8(F zk37LO<5CkdF(A;<IOZjlv9w|RqlPOXJRrcnrd}7ssSS)Wss|CvmZkgcvE!kkf#iBw z;2g#r!C?y&5>{>_;+2IvB@DZ0*e#S9Wt=rwTg(bYtPJAVhMHPEAF*%!Bl;5vXt48M zP=a(_HJB5W&d~DR@26IKq7S>sa@cauodgt?w;sWC0k!D_CKM<@yBMFh2matK_sl~s zeoA0H)^o<qyoeIb5>)}=xhoE~s?dS^Gry2uBQk3ZnTbn~`!(<QUxy7mYA6H`JZs_z zPTmJus|b@(i+>;q6%-{ik~(%Jz1gm+UcuWxEpD}QmELUtBB3mP{NP{8GTe5aS0e6Z z+xuFPb3WCHB+zn76MMhUu0U>IuhGpCB;0h0WHPL#syaN^u(a%s)u+*uScB29evE+i zOJHa<W4AT^O7IboFt3a(^P&8`g<ED$cJ1^bWO+;{YhOW6#+KKTdb=!(P)=U_D~f2r ztl_Yz)`*qssvzq}U~*CTLn+(A{UB%tu>XI|@n;8D$QhZqvBbZ1L+`i*092x&1~Ir; zgBV;ulxQa>fNhA$^ECK;l@(AV#-9U{f$hD5%mFn!e34l6?^n_gl-UQWJe=fekcB!& zf72iB7u7r8!z?0{luXBqsyf4^hlaUOaGmd^_BN~s`CN(4BCI*X`$u1M{{~q@2mugU zxj(T|tIr<R67wq1yYR1`!2=P?!e49gE%G=c2ee6{!zo13JpcD~bi@)+5QFke%_K2E zHb=mZi|r6ZO8Tk)yULydumOsC#KIF|l}z5g5}`+w7*z^i`haI>2^VCehtA5w?NRnh zN=ggU75eQ_guTKD5^;K$d#$&W8clAeCYKut`h8d4-E&VF&>vVV9yR!NcH{ZC2C1WQ zT_jp&URmm{Oq)KgMW&To-S)2WR)x%2O~3P_$;n9_cX#&%CFf7ik?ig5L(I(0(Q%V} ze6wC)@B8X=_Yu%n+fEc)7~CY%J9yA?F*7rhm)t|%K9@S7v=QHvco{QsZyfSYgwOci z(1cX>@Jg{IE01fYTg!j}-iz_zhN*L}n_u(DIeH(Ip>>f^;iGUENuYmQ$%OoKI?#Y3 z4Aoca=mvK^ht=o^H`HH?_W8SLpc?!*U=9Tyi&gG|5{-=O1LzfyDe|bwDstW)W(RW? zQaLUR(1(d2IT*G2omn=B!Cg}i*16jdG_VRFt`J#><g6+W;P$Pbl$4aLrR9?)Yzi(N zD=7<0OR@b|n~=kTBF>e9w0AiW38SoF@>1ny-t>!Es`Xpc9q?$wUj#Ffqvc@2*?1vN z^wi7q0B3}Vuh!)_O&Pvvh}s%eu@tsq?`$-ZE0%I$#8+eHU8MI>Vi>I0VK_#w_bj|g z03V0};Ki@rs4<@&(C&?;vR9VyBkI7R5?+k5hsu8<+)O6iMBIKtgzw+v+_<#3_(0M_ zH1FLfo;}^jX31lH@_;y!LEu7Hww9X5@a>6f>DSdf#<di00Lm-P`>5*@D=(_?l9u0* z^E=EszSyGYV?mMAGsVlVSY>?f_^~I3q5954n)6tJf|7YmtxGp3eQ$4X!pzLfsIH|@ zT;1iSErfIXvyQ3G*oyqNQ&2dHl-WK1cBO<p6qwgR>M(L$^T(0978vHj>N-n6G_4x+ zpH!i~efD>E66x~y9=YtNwRa7hTapi8QKvshzq|i2fo-$Z7oQ$4aUsFW4Sw>a<B)(F zcwqYjsccz?r6PA6L9}8q%D{6GDpbf^)qTw!Um;R&$C>yT=}Nyx{<d_|#Q3=I6Glb^ zE(Jpv)*}L<O~`5&N0+$4O%?USpa0I@%68$X6?%yfuG!o(OBr#ifZ~t4aX@JKq^!@c z^S)6Y5t(Hb!oOWOX-R2t?5kHD#%)HRUzq1y(`2HY4~6dy`R_vUp9s>RxV*qg=^7L~ zlY)LG1%EG~g<=Zbt{T?a&r~XN3d|Cd3~fVLn3=s|Xe5j%nB0X~#Xn2TGQNDig$_PK zr4H>A=RW2zefJTrgJ?KCJ@w`qPxAmhjv!37MQn<lKH3wB8E(H;k=t#=hzlR<%G&MJ z;=P+I1?G*BI_P|G_+1XqAC#PJW6&VZ^uBk~0;v9OeJE5D?``*cpH1%p@GU7$v==d7 zrsEN8{kwr&*uar*dCg=R))lWCpOzNJ1dMR%{99s#>&`tmz15TBR53Clw!++FDMt}@ z0aqV<BXN6qyk@-GuEc1TUrWXnc`*BVZ7d9vWR*xJf&<@Wqw}#beQ83gX;(OZ`WeqF z87~W>nH$u4=jD6d+h7rP9@V={L<9o6-<XlwJKLSP#d|~xk7mE&IgP65k_FG-MhptD z2a?PEo+5zLl(gF<7EnSpMT*>To%J)BG+yXfP^2NS-f1bfrv-4DfafYDK<9A;@8EqA z+9)5O^&SANikEBbpM<D5B*44q9G;LT-7ken9IVv6oX6~M%7!pLy^Y4e?P5Ztb=@Tm zcXH4ih|~B0Z5~PeQ;)AHgLy>WcX=l%$n<u<j<(+kJS(-^g|E&jGoisGqlXbL9)5>r zim~j4dGVay2a7feA#l_+rqy+Zc-tKbTnAOv;q>p{zu)+j-qy-I`QU>8^md_1AqhF{ zS6CwkZdAg=pyvv6=Doudbi@X$uIwfM19kKaCd;PZ!>~Ea^-(Jxm;Pqw2hkTRN6W-b z$=>}0NP$D#Rmbo_6lc(V(j_u~<ySh1<xXRT$I3SgOHOQ+gr6TdD0aF$>{zGaDo|a> zURZ}C0UZy!5@UZP7z=dzLPce<&Uz$QBHN~Y+A3R!N=_O0^`lR{Di5F~dK2Atccx11 z!zTo`3p^7sJT^8Kmj~#jL+-h1KT6OsnNa25j^l}u_@Ka;elxp2S{s<jgY}f<H+#^6 z(So1S;?YoJ(5RAPc;g<7hZ?z6GwXwm&Zl0!ZX3xMpqI1eqN7{M%Q?oY6?#|9iY&PO zKIvtSRlUUi2LKdz^qZqt;pmm~KGIm-BV8>m<gLqIvsapP2OOQ+{q^c|t8129w+IS; z;seKm$2Xqs$9qXDGAie3crporH#uVC>AxFA(lBGRXUc2Tls~9`h+A{Yt`Ik>3dd?q z!LE#NRiyxD?-eX8ELyS?6IWYm>6lR%l}t@dE38LyUvMNc;vG8$rviLP)YOabX~Y9w zKX=<Cbs$opai`k4H?3*c_Vx80F-uGmHwvE{UsdYwUm5R3VD4gg732<{3TWHM4r;w- zU$eb1AgL_e9?{0W#40)X9QfJc`wXoBuOMk|^SyL~=dGgNVO4N!>3?z(AC!}{3jeyu zd+D?wu1;xwcC_z)(=CY7<#NawF8Zve>qhEM@XfuFD!@_*wmtVLo}4I1nyQ5Os8&dv ziHWJcy81}J#0)n7PF(9%iE2)itqy>g=rGw91?uf0N@uy$<jM3JT|_GWW4_>ZAw>SE znbky@EBS~`kr&za&lD|}p$X@XehIJdHn{~a`e*Lds2ix+#eJc4xP1SSETK@+;M`B> z>6AyWwwAu>5-6rXd%Ja`3-T`;NJ%3!WMpI%%wNLFD6Q&74Z7(aE{|5CjO8NI@bdvs z5}@H%n}nL)jC}zi5}_-M3MK_rRaL~%k&A*QUqy%F`3sH~%;=MPUS#HlUmL|Gu$j0; z44I~l`5(mGe}+1wp?GM7Ajd)mcv-Y+uxk!C=!3N6H?h}7$OKmG;bI?%fMm;dA*&~I z&HiUQQ_FUK$kH^~$nk=K*B<jS^8;{A08AOWiagKE&tF%O)_o-xBS0CLP}mT}M3$5x z8s`|RixRv^a}e+o>C$OV82|D3crq5kee`PNg>ve&Ja^2WsDk1hk$@5kI*xEQzzyd4 zUrsvqMYUsvfW#q>u=0`K92;I=)j2La#U}=Ead9~kNkms4QG*BpM~_nNr^`R@O+t)? zuIaa2SdvUyOvOTW(<%8ZHxHd5D0zq$6>#L&uLJVfZ{iM{saK1bI9c|eKkfSKzTU<{ zSGRA?WpRCemfz!%uV?F=4Mixgtj;MHgbswjy)W6g@=vHM*2iA{C}S&72c)Q{f(Ek$ zMl^!Ls#d&)4SOOKo#twuP!cR5iz;oZDJ-L@E_ST*8(c_y|7a+G&4b87It=)g6jMw# ze;TL!t@F!_A)w&YfV=xG`QJZ43r?kValK%@yzN|x$HSk0#8tP`d;-&G2pH!6*ln4j zDlvLR6M6-3au>#lx{J!=vmU1GC*1xJ9Si~(0cyT}<z2!w%X}=oz9;Y;ikr^$(ifxh zro98Tkd5VJsEW7~Gf$XNw=8iRQM>T8YiLbg?>sx+>_6GTiiTyIhULyqhQ7a={e@wk zqZy}zZ@ChxXJE8_%0N%Q8ZI7qoxSQoNqFO`9lCtSrt4aAM#v`mMewYh&nVuOjnI77 z(DiiR<*V()Q>v2t5n0yNz5FTxk6VilvxeO%+_S<4V<H_5-v=W1O-}5X7QR(_=6$E@ ziV}cgUM-g5=J4uqi}%P>@}3$d*3>_w1JW>5;}WbJo?cbO8^3b6bjsK4IJ&Czr5Syt zCG=Z$x=p4H#uP=3du{AuEx#WoJIb55A$9yXc#+f)zPqf<@BBm5baObz{|Wy@vTaIA z%FVZT6yDv0JX~b-k~{#cg5$+%la4odw;IKM8>fSG*M-g`o5s3%$+@|e<u~3jzuHZH zqNJb9_vWgVKc=*eJU;q4ssH^dZ9O27?C<8COVhHUc%wC3T99V^Oqo&DCzS}CaPn~& zlh@zcQGSwgv8$RREVkAi0N6T0y1`8&D`CD*<2d$u<A4G93TLf%T57_sd~W+F+{^3q zU4Ex0qMjD(E@s}csA{f`pb~P9keoXoL08!HvgO<yTPVQ1|L|v=@wZw6g-ANQeip!M z`b=dfm5dY_#JQu)QrC&7Si*-URPen&$$fVPaH>ny{xK2mc`{ey6*@mZPix?}B(GfJ zH-TsJbe^}OXrl4guV3anJ3I3fD<)}G7xLFxA2v5OaJtzLKjiP9B1;eU*OMEs1j}&V zcWmZw*?jtJw^$Wb_A&6!>|SEWSK%P$+~)goK_u}IuH@X1=Jihh3nL^~4g7Li=KpYO zs3a6mUHhBFy|Q@ASBo$H*jRaonHRtpT12J%M~76*3W0rtf~C(Kt=rh)n9^5=*;BaR zJY8-h-Zll^oEv^|T55VCYIFXHX}DD&c57=Zr%3*t+b`~ecN*&{E0+~dGTrT5=OOAE z8XEq$6y<`~r0>S>>|+g@&z>tO*}bzzEO&l-{@H7yRp^>pTpNQ#<xXIa{bedOdagQq zfdPSztE){D#nH1xd0eeZOdXBhkB7gh<r}HMN0OFk`}?BKuGe(0p8jzf9!MBKpD#M3 z)~6CSjc<B%cYgORlT>t>kAtqMlsVql*(A!&-@I>7F#L`WJF}Gg&7-4BFMoWj5ydxN zpJRXcH4q86$tWo)wLRnDsIrk=PJ|FDET`S$Uz=!9iFk=NxvWU{6VAo3!0?S7vx1`+ z*wZgL8Vd{QCz*_|<V^A>mP-wrz2eqr6jZvHs><K6<oO`g?F-SqkrAH%z<@e!eN*Ci z|6Zil0`ITHdyHnVT#wY^bq+v7f8;ZiIJ?DNR9H;Re&a{xAhfy{*VgavJ(4Si_|y{7 zT#deN?A0W$e_pG~$H!M76OQ%#{7kT>zXTvjFtV4*rr&v7sBC8@usz%CweQFDbd~f; zjwvX_Zg&U1L9!h3GYb=3aguQVM*mjK|1Jz~@#`t^2~djoKkXA@1^AoF{gqaC6dBpK zw@H3+uU>V98MB8WS^mh7cRJRz|4985iIUG|G+!B;EMO8Qd|6o&7tYPX?>d|<v|^PJ zsU`;n0ho!4mC}7WkNwrHEG<1d0-u+pgH%Ap?d@kwgN8NoAZ5`k7lfR3mrPo$=DFV4 zpbF(bumjNHxqycUUxcV}3Yj>h-}a4pQ?o=wx9MSgnBoKWip67ecXz9FJYLKREC?BB zoVh>idCiufYiL-Z66(@oJWYwk1Q-QRYF8R$KqC>9t(VW(+1a_dxQ>NFhww4G5WjjZ zj(#lWWx1rxCTTsd{x!+B*+sP(TUP>n&-Wi^(F7b`s}`<H5(|B=cx5~?O_&1nbk~vI z&x<v>r%FvoI2J_#W$vfhPzC5LsY);m^56-%Zw!J(wjGcSnE)mytSWipVx&bX!*c;s zfV926y&L=p$`Gqh-+!f6hCyE3NHb^2ehWoG?JBD`Lea_Qmz`AM{a0T>@v4EK)`iC~ z9g-ZZ?V$^FM-$7CsO9}<Z`u(x9sJkV(i)58oF&f7Z5RHD`)+%+5V5l_%Kookzb;)Z znUgbS*?JBHBv}{uUmP%zTDqO~q@<+@Jer|0w0Xp>|D}Ru7FnSE2xsy+wIL2BcCf%< z3uu^PymxvtI+^i5=>vqSMt(lpe^MgpCH?i(rRB4gNK0#_x}V4r87Vb&5FH9oo>^26 zby>@M#yFhcQip$$icSti|JD)-8K6SjYSQrrZSZ<|9$fa7wXd%)@^a13Ko5zm>zsz^ zTMVK~ip=Uh?dmNWW*F{aGxhM^vY{1EAOFAg!!*z=;M%^%t8M^BFz^6jE5<tOJF2m% zW6#Py6sY2>HZz{{s+U&MzQ@=-aft163JCCYR9R6`k*DJ+pYlSTBTdIA#Q3rSdEJda z)j72=^V!v_Y=kYO6(`*L@L6q+1?7K^Sr$BRh6mq$&X8~aGJA4^#TQU{@AbsN>*ySM z8I&8!lTxA-SonfeM_YU2ZAIS;$(4jK5P+Iiug*cYWr6_Vxjk+PQoTzP7on8LU8zf3 zj^NY(nX5`nK?bB*h9C(csDo}MRsK~{vt+^iWBBQ$F6pOIP;)Ilm$5xdmuiE9jI4vo zp3%|KiEvyR@eZoEJ;zIGnzJSE<(>hj5`jJU(@ZZlz-kzw2OJiB-fyhdQd3v*;e#c7 zvQTGCe0!o_{CLIT(&fG?Q?t(@qL&cZfUz9$d)`@LgPA$*CHH)6+@I>$jzv8ife`ay z$et9+a?I!cw+)hLif<(eH?D;Qs@Pa(g8)(e%oJ>sEdn;B%vgVB7guA*$%Hl6Z|uo= zwNlb-O`<9<KAT~ISeLvB*(LR5-Uy;-g|0stMCBy4Mj90I*c#>Pd%?$BRb2e^k+;Hc zxKwb)H$_u74>70GSA#v<x1TP5{;dje;#_J6kaux$QP1Lc%!OHP^YjH=uRZdy+z>^2 zyiVJkjR>OR`N{dV{NaMY-}s0_dn^~;<zRp_%JJgBLp%C{I#`6H{MXxva;&Xeh0XPK z(cmv$RJ+S`D0C0ln0iL(KfvB=M4Jm392vnatE@~78fq4yblE{@k%CF#u?pdJT97@c zKjJ0<tC(~ikAw*QOYskk^;-&QS?qtH1pSKE9Tw49LJ*-u15R(V6}a_2^RgW&V(c2d zqJb&{D^I%_-Tk$+wCJ5MpWO}qOwE?T0FdVE7#Zb;Ydp3drju5gueF~cD|xhJ3W(!f zFD&YX&zCHRmhO<-I*gOQY~MfxQ{?MgHPuD#{QD+=4vq&lkb<^3K6+nwSzs*Csn(41 z+_6Yx&1I%igp0`}SA;rafe^vQ%{_jMzPOZQjsZX$oojG4XEhQTSMw)HH&W}ArKfAi z`JVI|oo_WE*vL>5b4KD<>LeLr$`+x^oy}bn{7=}^g7u)#N8rol(2kdkDCJ%6hi3*2 z(ZhQC^`XfX&EcyNEhT2==2Xowy2op6m#fjQ_4DLtnALy)?1uECs;T3(UaHo2vPMQf z-bqPG<?xLv>I81>tC{wNSB%g7<W`*9ISjd}?6pO#-!^j=wEtTpbOK-94K&!~@^MlM z%0M*5={xN9tgO;=ef!%7Kn^MvsY?jMJ7->U37cZ(pqwNw&YBz$fZSrb%DBoxG2wck z{+mT*W<tUkdda;qr0de=p5EthAx~(*vh>+7;_FRiNN|q31$VT=-xkC}7;(_TF+d(R zRBOn#(}W3eeMipv)x_DEIO5FAJKvm^nmlVZ=8jvn)4z*394t1vS+_YnjUfb>K)XWm zJJK&lK4&m+>5*n9CZ2GF%I*NZpS(amg6-yUS{qds4qVavSo(Ys(5U)MSLR>ZUjl$n z&^Uj+DTt@yI4qrc@FLQ*9ex4*>hQ=iQ&P@2ZXX@YIxgGW+b0nrhKa2Q;*?$jpulGP znaVz&0>N|ojzFHO&QFLXGR5~S2NEx_X2j1>Ud{9iJz?b)BsFSZ!=T+XZc<LeqW_m8 zEwPdd>57*pou=_bBtJdpwDB)Tda_J|OcS&wkISh0{l%Q3H)jojF6fe+!wz11y@o~6 z??8Ze-=8hqYiVl>du1vv)H%8zqq=2{h0!A!x?Wdx#UM~)Q@@+U4u{h&eqEhfc-lpF z_aSy=Yws!OzhH!y2KWRm-vK}U5z&tTI^u&*kC9ten)#}Wx-*^wxya!AmkB&Goh9E( zN=@<J^EqOEmr(&i<wfo6>|UlgGWhspYhdEw;3&O#amT1f@$^eiT)O~4@;0J|TFuy- zE{0}NU;Ed0_J1@1#XG_W389Z2k)Z&S4M7&7Q7mOE%!_3CHFc`;zeMK<Q*(0e1li9# z-!GS3dUJ7ceae+|d)dsu0p3S9s&mjKL;+AXYk{rq@?yrgK8f{KLG+QGgK8!HcRqYV ztkoR5%x!gy&&q`VAN4;3e=C&|H7{F$lwNw>0K2*PBbfTuG6W)3``zX;ciH;#XeEiQ zFm`zg77G3R#d;*wJ4cxS{{sL33h(2hY~DBa^YhcTuvpJ|(c<LLV^n<sSUl_J)!$wu zv~(8n=3NvGdZpQf$MIhqiU$$~t1795+ODBW+r($HcQ#*%m|ho)2{-3RzKxA-Bls0) zDcqr*@Gcz}_W3@S7*`0gq{p%}dAth|4Z4eS>7sW`;(mfsa<3+b^r5!Bu(T;?31aIT zmb~eDvPE|U>oI@-^<B(=0tXF<VBlnCAu<wamUz|}W+8fT&qc#e&7LyGtHv(}e+gA^ z;fH23PKTV?c!M`UZ!cgQZ><zi0i2KCU&5GT1t&lZTo^vol?a;0Hi_Y<FbYHnw#a(S zX|Bk74pHBIWavya?`AaCe<foujKRgJr0!^O%P3f<8<jkHX0kJ7xiWNZ%IyH{Cl2=@ z5~s}(ykoO*Euj&cAh+b%ecm8{=I5a?AoPiH>SKCEH!G22m-Dr?HT|_o1QYeF!_w{X zt=v%`Zu`PK3d2vegA7ze+fQz^RFA0KgeBSkL*O82U3}wMeOzov5Lg?V8ux;JlupLg z(<4QC<_)2tp-g0CWU-4^SP}u@!`VWb#|X+mL4E*KQ*zWB!)>oEURPIF^Ju{JO}P#v zsDs_-=-u|q%o(;awie%+DLiJ|L~16r%&r(=0}bS`CzgxtAwRY99eQL@{~Rqe5U;`C zgxX+=WkDQ6Kx#r4vKLZ6O~hXiL0R5^1F3gfdVi0$b)aI3N2_~`v~>La2Qhtfu>AST z>BVD%o5KcxqLvns$M(1-o+>cW>w4rkN~vKb0};}{V+ZJadS&srJ{*^(0k~TD{>6gH zY0{IX9z4M)eP*@=fABOFYxui}*be^N%$GjplsLXFr%4Q5v<&<hHETur%4V#mu<{9{ zaebN6_cv<#dtVcTe?v7dS#XK`S!iG{3p~s5CUbFShwA=#SDrLI70`O5yZ)Ymm36P> z{_Y0yIpFG~N3}-(v)0@_<z4<`R%(~beRlsR?r{cIjfiHGjyLhMv$L_Jz@+J*o-q<C z8*ftiJF9~2xk4{88}Bwz>|zd^>}zMA@C=mVkM()B7Ew+Nm{ymAN6-2>(`*7f2m`KW z_eYsR64Q4^2s8rTNwNjCA{;O1(sin7f@WRwe{7QkjaXOeUI@ENfWCJ?Vc!P{1=&Q1 z<X4uDOnQ5)m%8LCey<3O2ee$e4ILrrc!_npgVS{*?w)5I6##h=Qe1k%jjb|9acJIn zd8_NQ!ub}*b6UZ4k=*$vPU7CjNLM#w)>geEt$6(;&IPqW!raX4o|Mn-)jQsAd>wcP zjFX{3byhvK2wT#-1hf6<U1@%Q>Fe`-f6S+_h91`TrAw>(uY^v%D~4K*T`bwQCQ)_@ zzlTwN_`n<FT{y~2N2^EiF4qqs!BU29Q%<kw!M9M@4wAwOQa1h7&r~rNypr=QVJu^m z+SW!IEg6PHvo2})-Xd@MVucvikYb`EeH=0Pk7sUz2~H+6vVMVR4Ejb=QoSOU*VxM= zS6OwA;~XBhw!-WrOL4@P$Z?Pjtje8FIy{7u3nQxF5o3t&R;6SJw7UWZ^WNALXT9ji zB-<l<&asJN)~l;4)1N<oHhSG&J8zhIdF$1D`Qko4K5j)9mmG;(f5`HN=O75AG{B-o zidE(Ea7~2j_tlps?|H+(ly(Eg+Te#vp(SnpW!H{AM$NyJNCg@MmgV`RVG3xIlXsCg z2&c=DD936$goYF0M58;lF`AI;YkUI)7Lx!SxzkP(QkthDE`IWbG$!>QC+dg=v=BW2 zSHS{NvYIc~rf2b&V9QuXQAVGWnfzy&T<bGxyVxWiN}HD7jmzenJa>I51e_L~6g2f$ zDVV+hMj03RZO0!c84K*ajel+3JM_7{vQqVP)2}Ln!9vKYrcG?=>;voLxhZeo>dZ`c zvW>Kd3`4?%Bptf>&Z2&Ozp5X*s`*kHwT3vpmL|RZapBS>FfevCqju)-B>RG+dR`eF zk-P|k7&hSewcm)f)Rh95UC5dLwWWfkB>R@R?-r%-m`o+lb7_7R00?G<_t3h!;kf2z z9#09)UVvNnDGJnPF|2`t+;lBPAb@_I1A0|OMXgFI?pRp)Xn-rc331%8XBy98p)a+e zNfU(5QtwdzhS_LprIaVU!_!>#yj10pJlb2lOIvIFm}?ihMSkZe4jkgc)mvgghbX|) z6Di4;Uig;_BUhX*^U{|Nznt(fi+G6s8h!y`l82LEpI>|TXFP;~eDbvGsoFCz?B$AJ zJFIY#ZCI#J2nsH>=nrQ8n+XZ&cFv#&M?m}YlChs4GvMLf-d7OdK<wHGW(L)ama2+M zOph!H#B<8>=4P!F`zSACxzCC?W^W0Zy4kPL!z)2*S{jbWp3!)pWyyK`MXq{9Ju=ws zI*o2Z3V;+Ts>`wby=&P}4@Y3o5S_s49tT;FC<W)QIzTYwuiN_Cyw*YB?yceLP(BNX zu>V+H(<o;Yr=we`s?e{GJua~dK94h~E2IV<;~K7^u2z|k8?x(tefDU^@A4GPLc%Sd z=z##an$2-N7%3$37va^sy8WopaUD<MZYla*b|ubCthl)3Y7LpVuvHQ^U3)i+2_7cr zjwv(BCV#EhDu>`Aya;5&pEsJx^aLvb<=|NrH}E$jK_Mxbp7-CBY%8^1OjYNlodBy( zFkLe@Zmz=O-!5RB_f%<k{8b&7B*9XS1g0ELxDCZ0XH85t=sE~}t^Q$Df`6W728EK< zr6BbOeU{fXhtHg_XPbh&$tx6fcN<;`ax*b8IozD@xBD%~mt8Bciy&@)ja2^{kw9F= zknvD{VSt)j0c2%meTJ^;mAd;qSDJ3Jl9DEX7uVT)vAx5N7cJL7LMpy%J6pAZ#8oqs zc_aZzgIA$q*t8XFagth&REzB<*ar7M%>>IW&Pf8G0_LIHx`5(eKr}-9c!MUUE5Lza zH8DHFkBqX+ZP0zeQvB|BXPy?0CMs6Lh~><<%)O(3Jm=O>C=9>6)(rmm@nhfRShb9M z@7E;A`&#_8=l(-#ll^sOOZY&*;4MwaSkA|dY`|F0BBfC9PEvOEtv989e+D(ph%tDX z&5+`mO(3_^v!_$O*8R1k;!nmHPo6)cQxDC^8p%1vYzad@Yv_7cRB^JM0ipt{dt`la zq{+VS8>#-O_^Fin-#BVOtmJDKycQ8FfCr39-$MADsw$L8q9U#DF;5-X+RBPKC}crq zoq~y1ghmjF-tPKzJID}(uh>F~4|vAJbWEC=d~Eiu8)Ds`d0FLxp!3;6Sb<OK*OERP zUk-fW%y*Afvq(~xHu<$;?y}J<(K+54p$`b>3jy>y0j-BFiHP@|A|2VFVNHK-Osa$R z6hb?DH?iJ?x-_P;4R>0)<vGpme*9AU7);4+@jWAIjQd*tK=mm*(Zv==)2?#~|27h! ze+H5bqS+Q^Qf*9MTV16$GdDkUpJSU?o^KLvxclI}B3OU0d{6v?>)0b*u(16On+}sT z5@u(xDM5YVq&+<>K<TIO<Mt&W(3oWqEU2f8O|n`O?u>b^e?l4m@;7~ckAiX|!COBg z(aw4dllapf&*aU_YzkFJ)cqKH`5f)7c<9=6!K%ZtV#y#VUL24gaA%zpba=~K&hbGe z0!LugBb9g8e%=GyIE#-a)nRu2G?w_lRj=KN^JgI!@pSyFFFYWY3!30x;&;e6E82dy z1>WoX)L``!kO7}H88Yya;053BR1b)SCSt;mlbUY=C?PoN2D(V~x7EY9MPqsWS2pGO z`T3_0^IC9*<5c3^WL>~ZR6ueS!Y3u?^4fWuWjMOu($cc_;brOhXnHmVySsD4qf>=1 zY(;SbgxjP1L`JP^7~AI)XDIxSi+-Xxh<aeL=U!!HJ@!381}2MTr_jRGL~!dUB@_Qn zB$|*1Q}}JddJGq`HtLbq;+k<f^mj4#^Gjzux<jEeCeo6Ps_)S~vbixOcL30gTEx>z z<b}`gi;I86DMiewy5eH!XwASJIodF%_)aWtVk5Dt)UHV=wi`0EsfYRb{E>q18pI~# zcu3IOZtXt|kbxU0Ljb!t{k6((&j&Sfe%H5UbVs+JTJxPL8tbfcu5YYn-!xiLdW5bx znDykjECydqBw7gQ%>!UHmIKM<h}fI!xUnWvpOx6e<4&!%Tj$v}eewyHNR$@8o0L(m zqIbOf33Ss^`HxCEjfHmwW&_QJ+8LMDF+s_z)6leGBMj657BMol{l5jhku)u(H%dDH z`D4XMjElr>SoEilpF*<Qj4}BHy9Sw1RU>HlJhnznRX@*Imeer7_U681)%s^Ehfg7t zC;+fC7A9@f<%Mh0jbRg&d9I!Xw+dS4t74Fk<FvQ7dXK&EqR6&`U~9X9{m&K@9CSM_ zkY<}Pw$f_*^_toj4pxvj@OgQ5?ifZS&^s-)i*LCcsy9LUwt|8AukQ8*kDJqTGMPZo zu<b0{l6r)6h*Dq!^K2e$mF~(@%Fmx?ytxnidS8eyo-UzkC-JhMpfupFs=Pc|*o~pd z#C4$^o%HfMLG4^dvC3WhW{Ryk;~3^`x>W1RaHRF@)z|m~VtM$NcOolAw^S|R#SjTU zg&zUu41vZhU|`TvAX=_|Q&?}vzZp+)ITLk1dQrZb61Co=`XlR9$B-d~>@S3p$1L(O zq+Damf~bC?bJjpbGJxc!@y^G0TMEJYUb1rX@;~V8zKHB!skMa<iTs?4(8@SLjI*T$ z*MOlo(y#@zJz;H>i(%s@#Jg}>*catGSWTcpcLQF^AFBt(h-NUyK)}BHRE@onc`@pG z8hMwJuZ&e({N5`Y9o~Rj#ytXxXMaf9UYnFP_VMiO?A_6VWOiG*hf3${m#?_*Gh}HS z3m?)J-w{4MD!P%T21&T0IXQ#N;q8<Y_r1A91PU<u3BWs`9i`N6H>RVA_%AJ2F&qtk z%pGMA8s2q7dg5{wZ06(m&MMU~Kl!+;VaxdO#rDLeumqOnCpwE<WLiT2EYcV;F+M&I zuY>65?&z!`TbA0}uf(SP2+@nF>vt1%Uy~bc49sNRh^Hc!fe#Edn+A1=kLU^UqE#Os zab1q|JLVqK{nG?hboq~w1H1<TZ!s~CGY2IxuV=<3O!QrK^QVp$F1fh4bXI!hdo3$c zJ&B>OfKa(;VmaaCT}ZRn{z110)Z^xR>&cwK>-NC3WhbXL>aBjB@UCurqyRCjKJRBB zqVzM!j@s^^{^2Ms%zdB^Cca3W@bAkAx_AN_<f`oHUI@~)&tpp+=mN<`mRiD^dEhOr zILMn^^A=lys-G3QJyD`uUzYs}2=KW7kOey2)=ACETEPC|p1T$~;<QhJc>#-_X#bow zAAWs)5RV>bz}HcoLyi`lN`G{|1A4~W`qOyL1_uk2tTofgla34h&kxXZ*2$1B&R2y% zP|sFu+V{mk&Q%NBUHIis$gL^zCaR3vE2qc%FXrLrJL6Yr<6uCY!`!3$%{<7r>wE6% zX|(6hpF`x{z3+coqH@)KvwSGy`QlwI%&D0FcueEyo0yKw>yM(E%bDoNp1<%xy{;uO zBqYvuxgHrI0F<`@4Q<ui9gmQ7W&gJ4IOAXv;U2+sjs!#A)q<Oo%K|bhpWUMExB1TW zEG;Y+H~DP&@k74=%r*xz7_?5<Z9#yZo}QD%7b^F(E(`4%q$%V!iA($r&X86-ZN~)0 z#{PEaJgj|9N^jr!4ZkF*G2CgVh_0V0LjrP{v``e#U1jJQ)|4ltlZE9O2^59x?_&h+ zVCgq{9s1U1A<55#Za;Aw1PT1y#1`)zVn%|OuLXC7V^dfX1>Sy8@bztc#c}cy4B-3) zdG^%y?Zu3oNto;CF>YrlrMJEmiSthNCLG`Ax{ITgi95f>N!*(^d%DVB(lfu~r@UmJ z6Jq{Ef;@(I|2rlp*OCrg3sdn8e*AlDhYyUA&6$N5q3DWHALID<LK%prir+sX_={B+ zc#6@n(3#;ahN07`t1wj4X>9^@pH@^;$tNp&Yt5W^v|+fm#ERLL)QIcds))>=^}>0C zj1QhWeu=drANG%lu!#@KY3`hx!J?R-$g%GiC=elQL~NId+vtK4br<{T$QOp(({T*r z>Z-Evn>TmWNrpGh^9dyRmQ7W#GU9kJ1MTw>8)h`P<x>A~*$^Ye&*$9C-!eb`hWgh8 z!3q1C@Ys8*icbbSU;W@SFVtT?=^fWn+gMZh9@`axOLG{hR_t}!sJBvSKRyVm4g>&r zcvd}0vuP*fHu_SltE<&-uOZQl;?1=q`ZXvU>_(0PwPDxa<mF*y-bUyJ9UYxs^p8M4 zq$M-%t3*^p2AXoW@^+~_fFz0F08rv~o0)v>j^)yi5svkrntz_5k%l>=ElM=-U@0c8 z5#3AbJ`rtu@5-OMjEA)-d3=0aFDoyv^h<6LE3siJ;LWOc=1Q$_+&&T@9l4!v7*O3x z^`cSzXczG~`zU@aSzLQltL<9i^14@BXX0y++L8;tMg4RBA+?xLNq4+wpUT6pkWnUZ zUWg35NqBKV<Z}y3GyzlfO|k+$q>*?ocwCZ}OL(Z1VB-I6Tm-~PKHEU@SsQG_qj;*2 zxL*IuyE6)@rww%&!~iEb_L2$5%CG=x-4?&8*#ia+PX|$qMj*}2yM8+(t+2DV|Bw-D zx*@8dprBydy)Vzx;<f5~UNo0qj!0W+u$eRwboPOesnAid#=`3LFQl~`b3UgQ=U4`# zO$26bA7fhKf$7mW?FXoXk7fV5eMhJdL-j|UpTzFCl1F;gbHlywz5?wy$I1y}8yXrY zl9G}ba!kqwzP)|>R<;M>F|~g^GYy0q2VFfWsH{|t`b28Qk>AqN(sy}gT&gy3g)FjC zF(;881{)8cnlJ8@sA`3c3n#jr&~iFwb<9AfWhY`q7e0MnTx=^|4m^#y#{ms4v>BTS zCj1-m34?{II<A}??BDTatM%$eeCapR*Wa4pDyKI%R(SAF8nsT3lc+mr0#6h6XDVj- z0r|4VF8h$gJk`1<;T`2!t}81mGkVfw984M!INy?WBtqwf1&p~`c~h%;Lc_sb_TI+W z8Y`x4)KTjMpnMC2arKfcK(eE>F}B4v`z*Evj?^B^8)ytc0ZtRANa9y6z5hGOLF<Bc zYcK1)H7Wem1;fX6y(HB!%<uz|QL>Gph9J+Co=Pl<y&-mMm9CAAP2!R@aF!oX?Q^{P zI!088`AXKxYQxiqO!<r<>wI6W+HSz>5Fw02d+eMv5_~ZC@`Du`Ad2_BE|{O1HP~zr zNUQRV@zMAqEp$7`PvHl<6jaV1CmN68@0}ND9^P9F>~H}t8p+qyj)qADiYY7XJpGjb zRl!k`=>4VUi!;^gDNBY85Zc{Q7p~)e+}ycNcmjz+#a(X|g6ZL?Z21+G<GPY)0#>fY z=B^K`sdM1hpBWq-k(iu0z{H2*-=DF%v}H^a$W092Mp9!VPuzk1&=kqH-)V^zwOfH$ zmsk|;@wqBxe;0BvYP3_8$dDV9jX4=zT)pABAVAQp?{}m$${`I6jWla(>yq!L?>-Z0 zX=%Z)Bfg9}?nlgX1FCJt=%1{F7A2}$SXwT{@JCP>r=HvUy3LcQ8|Ya{^zf1Q%E@&` z*Q=t$ys^{!sDyTj6I?4duhQj*I$u_#ObLFy7GFMO)Jm;L`Wq|7CE;~JjhxR6qhxoF zV1+N#_hUk#D~8QpchR`)5zx0DLRa(c<=mIUG?DtC`Dv0`O8`I(T2aKlhip-t9joyA z_3V|E&wl3@rv=qZlY<d2jhTwvIP>xL7z-h4Z71vx^2&781&yj@whBfjmD_D^OhTcL zNrBJ(<c&wbuOT00%P}<mIwZGIlAJ**S0mejw8E43`bhV#r-Dzxiz_;}AU;y7-u8!w z0=9$6+lAKbr~-6a(Q6!b<L21`)g~RFpRp#po+K|Cs&{n95IS{tUl2LfV=e}5K#2bu zB>yqs>kU_sqHzN}Icd)cW!qT>Tt~%5WaD@uFqOERyWIvd1V0YOR~+ZL=0<aQU)aQz z_vST4;qM|+673Q<*kO_U$e5w&%2|>o_H^$AG<z5$`-QGSbB<3uv}Uf*Ft+vF`3o|? z7ZwIal;f$gK6C%!og)bV#z#`&Iv-}fp~qs6INnA02DNhs2*L;RQeorR`hkLPAhPwg zRH$k{IQt|*#-4=&LSV-`<bno9Pfn5&ln+ID45tch6^!=X3N4zdBuRkVp$3)t)~A+u zCJLYL(imKiG{Sz%QVIsnMty%lmXdex*lg5W3G-$&Nt{2oQdwcCTLHn`B+%&&@2R1! zAC$S7nVH&ha&mRqAcrylwB{%1Y3G+GqeG3=$>I&?#(lROLv3y!ei9wcisbQ;;3%K@ zA8aTWcshLj;6ZPh9SjTd@~3Ofi=jn}^m9=WIk~Rfs3#`eqNhcd$D3a%qlE>#&10ws z;Jj6O=-)}2;Q4G%8pRWuB6Q%}Sr?s&cRj(tvG$^H@9lB9WBmZX21@^Z<2)QY+Lp@7 z%37*=@K-H>$x3I~F`7qphfsX%;%|5y<WS8+x`~@bJoUNS?t)LYxv8in9Ym}FLU458 zGmvvU;Yn%wg|Y$_DM0s%TDC@k!zaamy#g&f#aOHm619C>B2T^dy@Blx$!6PSjCk}6 z42-_+#L($JogHG4H`YU$M9y3}qNV0#0Kh@B&4L9c^++hR;CQ#4Hv>_>KZola#AR&q zsa4UDYh`)4N^r(VDXH!yow|l$S-ry6A!g*8wx?I8Vq@O?3py}H+Q@LcA)BLf6=+dP zs{bcE8L3ylH9Tb~EPatTefCquKAVyI5ot@iY25xkr>W!@E8ttoKuqBq>0ifdU-xe{ z7r+4RDkG|QK!9zw=?YOdp5^T|;+g7QRV9%id(4v8Gx3WwWjcQDPMp%j*hG5umzGDh zdRyw4k$x7x&xIQdv`|!H7UcQESg><6QCBx_rc{vVX9pI_veM6YS4S4mW?jI;VBTJ3 zWhD*-ad+WZ`*fBc2<`7zT9DI;VJGDAm}|R7)H(4C>etN2Y^QECKCtBnZxZEQ#eN}5 zU_m>_<DFnPA3RB1G>yMh1bPRpA%tfnEFo3MNB2s+?ejM_sBP_WbD+%+B8GmSs}DXH zddbDhJE<L1$_4^FIO4UnwOm8O4E%eK7iJ)q3+)O&?kB^o-{>^HFcTGZo082{<ddca zpmm3ZHPL82Y_^{e4mKzhd12M{qlEFF8*(rpTJ{1L)wfkQKr;=(P!p|rPPWZU;JYNm zk{IBGnQk`9N<}8{F*-v$u*s2Idw%uZ=Im#4)qz_G(LMKj-Gig6IAxO|8W9JCIb`FT zGA+CC__<d+@LYj*GUf~O=|z~V7%dJKNH$#XX?yv70KwnHqdj6B2H8-p&;guWMVRe( z;m04&moXN=gDW{A-fjKhJYLp@S7IIP-(HIY@*OIm_AJUilAwQY0XU=?j_o1m=TH+w zJm6@L)s22m6=;STv3r-Htus*+L?Dj^ow#0rTxTfAM0OCPb%#f!PiX$$0$*-a;OVrq zL;7<S<iN<km)+t1;Fm?6E0Or;5R$CVmK^2G%*SFTKx&{h&>%Y_gN(w2@0MTm+5_Ed z?$PK85c+c<t=Ckx=RD8qYiwItWh=A0n;W}aCU0KGGOQfok4rt4X<O#!7QiYRw2xdj zo{^kF5zIfP^hoJTYzrFZm%tY%=n<TMBcAhJaNQT$hOwtnkNoXS3x$8Pi?$5BbJ%g^ zl+}NPRfpOYaTyprm4DVGF32WcV?B}^WxSTm;PWkp%+-r?`UD8Ly>@QiMzC+@-q~-M zy^V{DgRQyow0OaVUI$<qU7hNSeB9CQRjABGt1x#=S)8a4o3w#|6Y0C?3dPy&#x;p+ z&?Eg^z{54UeNeOCh}maC7`wQ*4_xSdPT>9XC?DhZU)9hZ?J<ebGEe?kMj_c311&pn zB<@dc?M24Mwo$rg2|ewM720)Jsn-(*a9R&jT2i%GF89Ai&12iG3`z>cp%VW8=y>bC zDEsGq_}pcYU2<uWT1t>sx|fiU5|M7{5=0Q`T|!V15Rh(>kZwd`mG18DE@=ez_u{&) z@8|yOegre;%)I9~CeBf7u}kFPr4zU>^>;A-siCRGyU}t<cFVQ^>q{B>VALqwj*)sa zFIq*@pyNL4mb%bx$M(-l|BuK9B6T8g@Eu&)=0be*&Hu5<QVQ_y3zkJR+AD4-U#v^A z{w=}C$Y#1l?`P{#>5Xw#;=BCjfjTEg)uvsAp^Dhi>8u9M{vi-xEb#(no8YlGSuWDA zaC;0xv9tIzrw7?JRp%q)D|!}>{64T$)+{f-*h$OlP)0|Fy#1Y-w{wSEAchYvC(NW( zQf?LqTw3&M9SaMxL8Fr4L`6MB3daBSqo|Mz?@T8LxI+Ah4Uzfxzn50k63$K6{(RrC z(;l(eTO9HJec4&;r~4RFLqi7`b~LpsjtDR(3qj0i50-Rd_1DvQe&P%mIVU_gatgm^ z{Z`d9V^#9{7xhykJ!(54L%|yp>NMO*`%a!{*;E+FjA=kXC)r7NA41T6>&VMJX%aB> z7#?-};Q@uz*GU8tD{RQ!%JRQf%spr@q$+S-=`=V)_mp^E`sWMU=OYt;{U(PgNhv5s zUJhi)+IlU;<VpE&jpWCjlu@Se6wL57U6C=;IoXsH<e2dmzV44p=IxY_8aQ+bF~gRe zL{wr_4Qia(du}|u7AWn}cf59o7Wmdv$H1_WFYp5%aKm&MxW}7aKQAOoU3tXQMFo!J zQ%90+Fd<;#%qsnM_n`yqqa|fFWn2GpJQUoH4D5F}=jYttbN{65-VwT-^R2T<=IF?u zI%yaTHg18y%nja)$r~9R#XZ@ZogNz2=B5RZ2ZmQF?`}QYd9*H4%^>AX*v|OawuxwC z8ErLjx}Vr&jGy@{BC%*?nJcj6FBlDSj^PjF@{Zd|HD5fx_3V7Z4_V+}`sv+D@gZ$c z8*YxQ<49nR)A$#QprCEUL5-|elxdSdgonGs_xpS$Q^c)0Lh8FVT>dkIMMnpV&7qS| zHmNuqPgqam2mx-xN{&a|+&%7X%40ulyLm)i{C7V%S{9#eqonC}&aQY$T^~1+C>=Cx zbZao)VfW}fxkd_tnFhd+rDk~x<g~))rjO4~G)i4Ln3AJ7cILRVS_6U3&lUp$AvS>E zw(&Fee?Sr(j&#z8N_x4~0FHy@i<Ilw`2x>MwJ;*@-0W;)TO6T=EN1_Xhy-cBI&1Pt zqelQLgT_C?g5FnelFOD8Dfj2kAMd4Sc=kg*G8Z>J0Mllw#h2Zi8|e$<eJIO=U{oaO z-Ne}(3rJ=^FYA^NSvl;zui0>f<a|-1O<f6+1f;?bjy?|0N(8==%Kt23qMX+J*I+4V zOzn)YtD)|PqECK)&P*KLAS-ECDhyK6yTggaG5JdkgwTSrO3py#=4{%fsr5l$19?PC zOAD8E+0kEXM~lsOG6Qsjl~z9b7Z~exq;I&RkC4xXnxQx~x{O|6Vbg3}1jso5S(ly` zwIPL}P-^@EOHezboIoJne;N|tltszVr1W*z6J~|s!oR=|IKf?UX1HvtrA66<_^Mpy zGK~j}#d+_#ro=gZm7uyPX+Ql<4qY6JEqWEF`9c9|)ute)VGMEqJ<IvRsqyTG-Y-^* zTfRx&{PT7*PL}c}Zs%?6=*aJ*T8f3v%+vX~0s5QUtNUcrxwXrmzY)nCv~hL<hv}=l zPr7jdDqiEe>#?k)=PY(Xs`P!ai*hB+@fW$$3D%C<-X0yns+zP8j<m{NwoC)`<cJ5; zpqG;RL*}(}^N;JII&j#mNXahzpY&F;l<Ye+-ZEPi{=h86jisdjw|A^;&<r(tsgGdb z#YET^B_u+345R5o+?>^*WU+~Up&xKA`W)Z0W3fc*>#vGs=F9*GI>MLaBrF1CnK)yc zw@Ye(wZwR`k8ShE1fBWfc8P7zUpx(uGX26gbq1;hgd`=e3W@2(C4YKsk6l-5H@?T` z>I5pv%VVujO34$W>pO7-Kt?N%#?AWck$OSo&o{fgkF}mzB_&^XKk8`T!M>5c@tO@0 zq@3tuAIPlJ+=|1Eys6Z!GTq<*?!5Qpx4&GL=?C>7VBPa29x2nanZT3vU=EPHd4K_% zua+y&IPnIc+UL7-wNWDDe$)74e(Ft%ROz+8nD5y6UJ4~GX#E9zyFP_tBZjVkF_a@1 z6$G!fMJk<J4Kqym)c=mt)m!de>a?C-82x<OXTJctTHrOQGY$lysHF~62I)viGtaBy z2mpOfJfy$Bbe}hYn}Vo>w6rw%t9gu7ZQYj=EZ@~Wmr=6YVBW6*8NT*0;ix}-3JXgN z2Jp34?ax2sF=JG3F-w9=7PZEZ^B2Dj9@XNoLBqE@X4>=Qxm?D3D2LwonFPtN6)(q( zcBQ7@*B^zOUH(R79hFpWlt_`Pbgaup(zkOitO`jijPS)Zm-fg1rrq{zKHM@SX~;{2 zN0FmBjG2!%N_ne=UtY%f)hgu8j0wMe#!w^O1SQYtmgq%;08j787AuqmVJF#RRa_u~ zL24_Z1S@*IN>|U3tt=(=cip<wdfimjc%WB{S@;o{A-g4@7aeh_51^mV+-wBCO!AAu zy?JN9p7q!-B(*nlWgUUR94l<3+a$P*rS!F|zJ*ZWVZZkJSWM(LHHXX>2Z~92$k2Vu zL*P#fj?SOYmu(_aifF!Waz^iA{}M5@mV|}!*8udvs9|`*!~^<w4<uG5j-T!^_7`!K z=AW*O=w78W$-hgnjF`SLrlh2dJ96Qn1oHCpKmTSrb<bZ4ndju>+``xNePb8DxQ%U~ zjtq%~B#GOHZhvy8U~$#PYFysIVVCXa$f(RKDXlPvgH$#|Vdo0zn(8Fen78dJ^p6AI zD?$?#7q)jF^SigbsP$O%o(Su!S#LgmJf)^Z^yiCJAYU<W@Lc*8v1aiE@oIu`II$c? z1uE(BL<IWsWuPGeuo`Rtl$DjmOR%le-p8p-32;mVZVy+yI1sUIO@Wv;QM&KX`Q0@= z{$WZ@2cX|zFXw;wi5vT!J^&#j-myaJLy;mg?f$-|?@TiW=HX-wGvh0FFSQPF@+KQ^ zhev`6<JtP6EF$V73W9PN7O>IB?uGgiUCgTJY{1c=V*C6`RW3R24m;~s-G?Rf9YQc$ z!TB&(O*4u{m7iVqbEAwF6r@7Bk#v_}{CK1%yyA0_MglHM<5lQlbEpLKk?_>Lz;1v- zX8cj8H5dpBTg_2A-{M}ZqrSY{=W<QvILj=!j|^)+8CIuwvJ;F1;OEm}3`=|ra%OVM zBaS>)<Yc&h>VGzUE+wJ-9txhljQ}%Sm?HE5%E7nFw<K)B;#!C8Pnb0GOsHGIRRfc4 zcWk#=!0un}wPpwFVWUXm{c4CmbfuQHJ|ZCflKLLw$L<mMcIL@&aVWVBh?SjPb&(|T zN1LmUkLtybI4EHLTtTJTDZe8uF=mpEVTPDlgq79m?dwa!qR82%o5-DEO2v~e;=|uZ zd1;2)L!s_1d<-!@G_2)<i>!CQk7YIf?t3Tyiby&M#xE{G85`gZ2dm4P>)GR`2>6Ie zR<DrcInCJCe>o?whm{4+hoDw^5vZ&Ykr2FXa@@XVs}OfMxSVA`oS7nLp%{206^mN# zF7TYt@zeGWefKV6W3+ptwKWzx&A-^QpP(2pP9|=|44|eLTP3XNmA$<$t>Z+Gc%Cn5 z)<10cvnj$8OIEx0OIG$El8YUp0lJq6KLCNTqCfDm&7UC`7xD1qC5v6nnF=B{RuQOj zqu-Wcr1Zf^ZTPwUnT6=dQR{((&B@u@gvJ@%aBy@@5P<ja;X>=t*zcw|>btC5$97B) z;oxf71w-RIQRIx)w0>0|{Oi3)IDRQ5M(*tFbUvD1FE1MGuTtX$R3U(aqa%+H&u@?N z`fF-(Q-#ow5S7m-ZhK3krH$tCHB5h!>pv=ypo<NhuZ0<i6rkrg=-@E^^YQ$KPoaN; zf|%%LDp~k8oa;(3qC}f>vZ+iYwoe9Rp$U%{c29mTT#0cJ32YJAg6xVVmdhajs{28@ zzjz9y=bx?#1Ao#au2Mz;dpyJ>BzsOqs^7P7g4bV7e(q6HP-qd$&(A;oG$gpVvhWh1 z09+SCI<d@KTU)<PJQA^Qwnpr^r>LDhX}^?U`vWAWt8EmNf}3MiW3^@Rm=KI$^18~< z*Wxt-!abVA?=(Qe5%tCFmojqS9*27yT8{hIuFmh`Kz_1q_`pNpc}fe1Y(^Gce6+HY zyKS=;;|NR&J>Fu9Sizzzn=|#s-qo|@2GYCpOhk8br#-vJNklrO2mleqk9*TK`=UN( z)@zmRkr>kb`lE<ng6gjy)wfa}&;U@yl$!9eI=Y$5eX@dWJH;m4?s3_h>Qozjp3c|Z z!2$@OUk~F`+4?~bR*fL0k`*#mtv}xj;a}4*X_e$fsVh?)3w7r1Pi7&IPIl1xH@X2( zm;+n%?aw*#$RAIzA0n^>Tm)(XzBP_;b1yAeIM$nzLltKO0kL|#aA;xT?3nb3U}3Z> zq<VBdeCgrChtJNHY@Ax@LEMWdh$MhAAmsrCC&rACrS+vsoc%gsJWUO4xr^Phoqr_c zLpdBnwvh8$X<F5OC=PDN41Sexao&3vgrLZkxyK-9W~@B&5nc}auThgs4>{)($Nqr5 z1T$xqg{|pB7%rU!uFRw>T6$O59LEuucP#CTGhzi9wcp#y)>8=MY0-`OhprZBe(`=9 z)3xocG|_~%#4%qz83gU3l21N9(w{WP>3drmJiooRJ8)*sXH?CNpZenO-ryi4%&_LA zpBDK9Pj}smVc~PXS*q@>b(ONed=hxfzv*6edIbhfu_<Mkc{A5PvO)Q9g+zRc%8O_D zU&az<f({HA7@P%AX@I^3!TEzQM_l*|GLDeM8g<k1H^gAIq@Q;<?|F*y2T>lv!EfXi zT!O^W(d3v2B?EPy`j87{D`|d}Itu^j+}FVpjKPgJm)oFzFZh6&oPj~2bu`mkaSI-M zO%;{*?ca!PYZTt;TsB_j`!(IHS80YGY0}tHa;T8VVb-B3^FrhdEmHfl407#?$|E01 z|7TD2XE(vBKW%^e$^T4PVHeJ2IoM?UyO6GmwF{PY^}|<Y?%BBq(f7`Pyu5rRUm+qw zVIeChhv9@)Mt%w|@Tsi%Ag(^P+<TRp0RdY{{cdh<=lJ=%(}B@3o-(cpj~hU}UvZ^U z;8M!A?Ca@yews{Rso6;1ZS-ajm+fzpN#tKXdJ@?pJEBsPe#XsNNyr|<3}x|F%ywhN zKp837iCeIfTvkSjinOyPiOM9!=|lRV#gO5@!1Yqqf|f}zW=g(&;WXqT>He>i2MBxd zQN7)Jkn{2kXj(Hp_%=8d7ScfU2u{I?xE%U6N&2p5!28Hj1}X0p_GG`>5&BB3>#0x5 z5+2^r80ueU{Am)qd%@-On?^f}?(^r*&(s_*_ScX2X=*xa((jwEkc|0zO}fSj#8F@1 zXxwYIfl9vimZ{Be3MD-Mon9T4S7X|7pB4WyX=V7-{WYIBZ7Q~=Ee-OE;$S#S(E|i- zcisJ~bEGT(&Gqu<!X-r%<i*2tR&$Cd1;3C<yb!+-g$8A&<S6JZ4UpLr%Zit!ki)D& zSr>JG)SPyf6;YNHJ_x?2hR?B$p8jSQ-1iDezr6OMz~hgJ$7e}*q9EIz1k!;P1rPy{ zakL+1&tOvLP7_T1I&K48O76V>i{)VQ_xx`5qulMFm~RA}Zl_uyaMw`OA3?vXkvZ3X zI7wnu$Udc9mcJ-da#Y^_wDAW7)b&-3+FQ>nB$R-7V!7zY*wZF}DZ}ZcrXhQ#cO!6H zA4vu)wS*%lPY?KHUIw#NN@Z-slJ%}ZXJ#a5$yjz02^`K2@y~sy{gcx{mM4Q|T?~?M z4-l3Sn3~%T@_deiuBj=*QyEc&i}E=oP5-MXmK-cQE30x@Rco?YU+BH$Vkz+-p44}z znw!V_b8g(;r^8E`z$AqG#C+aU#F`ru(D&XDwen4Id^#`sNK*8s&pJl({4DW$qq~Vz zS7DrqKX(D>nJCv&8YhQP*PycZ@v2i`r6q-A4Ck|7NMx-j2caMzW;iVs*z;uHTys@x zJKptuM5j?CkF(QoPH(I3Q{(N0pIdW7M6W?@8mZz!2>;p_^2j@BG6DYFcK|1`)~^rP z8TghIB!7KP8fyPg&(_{;J|!Y!s3oK=E+u+ltnJ&P02KwHJEdNmU*fVL*u;NN7%xtT zMA>mKD}3zq4`&I;D(IAZt_-i2dWpF5(-$#3av>9Vf%7!yM)Sg2p8QQ5+_)PY4K<SJ zgCyLv`=48kTYMH%V1YP&!U)Yy%PWQ_+h&9mO}l1OG;&E=Sr8fJ+`Hc)LHRnj>SZFu zQN!(sqr?l=yIh!`Z$DaORD<#(BvA%1_>&~bo^?rM1QiAm%?wQH+tyNhk!#n4)|6ky zw0nXTm){+Sn9@H|cO@fWTA+hy^gRh-ERiHqw92_h>pWC82!o%JlX;jt><mj=Lk~%@ zF|3(BBJ10<nwLtGN>J{VmRp!yoi?98Y_m<?bkubHgs;r}W%n+mmc$nHT(y2p-#snt zz6_X@=@-8>Qfd0$<-A8o_2_Ky64S=rNReOTtW-ro``<-W!r~Jh9UYhJxrZu6oA3ZC zZhd&*HWnx893v>sW7V<}KyJjryfEv?|6oYMj0alF(5nT+IAI#7Bb_z$w&bD8kx0%y z;M{2l`quq9U(W|8VGaAC;oJP@ouV%O;z?lB&pRIPF5*807k7eu-ff+*f8c?0a6AYa zAKzQ>5c1kh)EsF4sOK<70zMFT;o%L!PM0RLKl=oa0??{;R!9wBOpT=rRkX~WG?+Gm z&PCTu!u>-;gzg(n$J0f(y~(Cts<q~bT2^WA%i~RuO4$AxfK*lvW68m;udaHuTN8Up z*T1}C_TJm)vKR;XXb9btDP&x!(mW&35QH+BD?wtNAG$C^;We4QzLOFclOrO#Q9<zD zbZ^@~T-G^eiyqsw7>gZ1G|99bSCh5AfpVB(L(HmEsUQQXV%IMF*hwD}{vQ#`b2Y;2 zCfskR#ke0K0|6*AoK=}0C8j+Y&BLYoytdk7zhb{Cop;4^*RiR<cCwsOS%re_Nx52A zG{-|cGzE(?KZ+F@h=4KMa+iuNd+_lGC2l6ArX>p4)_LFHF*c^==Wi9?c%-KmiPJa! zuxIxmI`_G$MFW9>h^OCmnFDkVOo4eHzxbN#>=&(Gs`0#1EIK%rI9C(n`8&oJ#(X$; z@80d`CJ!ILx;@jhKB}H$>LJ!k##(=Az#kqT+`7Dxii|idt4QC>#ReSyDo8mYi9n-N zAvt4u!+dj1hP}|*D5_74<oii9BzgS?7WJwA?cdAf+Qvqbi_^w@&FJ?%_e1%zE85u3 z?c)F#v=nkYjQu%(&w5$LB^q!#S`Jxr&XJC!X4u-yoxYY1kW7QkQ4*p_dQuexM$Xb( zwu_zrZYuAi6vm5ub-VMvR^(X*{hb)s#T6^gjsvZ*@e&JxGIGW8)IxhCcs_xi8yFav zYH5+4Uw#oZhAMarSD$T!h*<4`!*j7{LJ-9>bI4d;1Bl^oOqKiJll7r;6-&(;X=w&g zHrtR~XXX-pA>F%WqSr^y5yGBM^nOOErlpJI@x$szIp$xRhJz0{alrGll|k>G;a=oR zM~-!eTPsrNM0$~)yP*=wH5)74gLOVq&((Q}$XNc)BL~By<dJ{4QPNckXT*{5>v{TH z_o^r|jPb6d%^a%bJ*4A6!AXFfz5RpOO>F!n|L`K-+spl<eY#2_h(7r8ZQQm_)b)ZA zUnZWk_rqQX$uB7pk$4)D<#H9qx}PW&oliz?97o&yn`-STrA`i2H|1^BSgzae@xnXa zq2?~I>qci&l#9M(h)kLto>qKv!cimL-AdPzDel8Y`cO3qWh7D*)L8-e*IJXDkdP4U zgXa7wm4vv>8n4K1v;(reX^?t)dK(phoH~#vbeJi^AI?N3LI1d^xTuIy<{FC`v^<{9 z6@G{2I}krOmT}GIC`H1!^&EHCg<G$tr0Gdo;1(ed)6=~>zn94wif4W{#a`*ShbFzx zIJ-aKL%9G(BcL-?&WtC7Ib~^5W-35I+oLlQmM3Jh$wJws4a>b+aq0=*WWiu&sB#)^ zY17ZhJ+HG2XkVhJ*qfb+jYlZ8oo^F)y@2J-0Dk-S02#17R>XB`afWR%mwDyz#L;p4 ztx)Rnm1`ZJXVuKB`DMX`K1P)vui1*C%T8r@jGx{?AH%YtWQsfkLvQNE(|_C^Bh5Ns zf?CNf$T+3nv{Nz2ks+$<K9BD-ys&!!`q~kuFV(%oT&=n1{B<_9A%)Tkfk;BF7y!~P zcl332-^>N#6106}FsAA&nE0mH-bwWxogb__`GJzlVU!Sf82PFeDf4h*-P>ZR<-G{! zkAydF&Krz(v(u#yAZMSC9!Xw%Hhx^lAc441n4hEWIJ?H9h)vBT-%1MLy-tBZePvK| zGhgdEe5x&JkTy6_U0(7iNrHvdX8PkRG+{u=kC_MTeq3oX0XIZ@KNC|!+1S_~SJ?I! z_ZG(<7s{&w&vkTGR}+Gsi#{Scj`>nB^}s*l=CqS~!_LRH{JuC3w(D=P>y(Tr9(WGk zA&Xihq7`gW0iQMcAf<Y2@QPELCMOI>5KJ&vY+o}K4;mlZ!E(^}gWSG6$?yJQ-RyEN z;1^cF-Tpl9l^X{Pr9FI4uGfk6H?jDDCbwCW-tcp(?*_z0Gq%xIp7?&30f&>e12je2 zteNjh5Qt=eR<%s7BDL@ym!LBf2u%o;q=K1Nz*dT!5?}R%)!wg7gA8cii!As=@d}M{ zfpm?wRhSt|%3D?Ve?0{qoG2qt+<n`=>lE}+Og^+1Ez;;L(D4BU3kONYLNHTRj*h>R zZWt9a(hFshlah*6P7^6EX!mz>KDpGhw9bmkGzI5kUr8R^fygmo?g$qSxQFUkhUD<D zBBJh~(Tn8AJ&o1FRJ!OZ`;%j{hsz11uU6|)AOr2}(iPad>%vwDL>i`@N-eYOi}lh} zrY89O!szDZkeK}t>*1l!ciC_8pc((ayO~nlBy6C8@p0<&%6GnZE{)m0M{pJA<<%zr zRg2zXKa=6@oXsmyU9TScF0igJzl;k-A;TaOn0J&(8V27J-$kKNQfNJrDs7jgw(7+D zpu*jRU%g?qy0s~giG_V{%VI7B7XmC~&32q0GOSR29wBn(Y83dvNi}QOfd(Vw5OnhN z#aK&Svv0}N-M95AJ=m1ykztyVFFJ}r1g9}V9A<w)2&j4WcAYx)u4PB2Cx=y=46(-W z$04R|@$;V68y;D5a1KIn94SFT8@{?zoI?&1E5cl9;hUNWR#n#*#11l*oJb4DU%54h zZC{e&C?_dmcWQ1<K5}1-v)7p`z{9u7`($fXw=3|=h||SD9B4%nba1{LIlhs*EPVY7 z_tNnGqJy1Xt!`lY*NgMyc9AFzu=39}wM1k*kBn;4^Z_*lLRuO=U?8MxS3UczS1=d? zc}70rRvDyMPP{_%+R@0yRe(9?jz>29Ye$&qbjP9JtMsz!LjFFdmEH$cJkBO-woxb) zJ0yv-d(-mBdXL@XZ=6)xao}Y5+M3ONJSZ=8t<`hh&-2sd<pP^7+AD7Ko+g$J?~?9g zS67#thwkd?ZTQMiiC<&mX!*V_WeuG6MvZ(spoD-~qfDdVX0L>+57`#!p;mI{+k;vf z)n&vhiAhDyi9RUOheD$95W8*K40)+X41KPWOgQN0kjC2VFUNzZp<+BwhD<*bzoD7x zKYFc(dLv_FaYhdabhoy)9xbgI3$n*TkS{RlAK$H1s0m$T<%FcZ@uo{#8J(%RG^!d^ z?{`%v4D7NCf67cAe=Ebq;a;2vhrIpIRlN?}qiXWXNQ4+VmHvTEjRD>tHTtpYo&_5P zHKIN?(3|X~P9g9kI9$&BgE;ZQ+9Y|%Tc0WQ29<Tq>OCo*gN-i{6(jZl_1h8F>IV*t zzy%ETcfYCWg{$k+xi?8p@vPLkdU_wzZ?G|V44QMuP??M4s`#e{_W8{WzlGojpHS8< zzrUBskw<+?vWLQ;36MLZFyQacXRJVFq6fld%)+Ic@TFqQ$ij0nbI)8{&0^9hGztzj z)2#qlO=TwQB9Hea8B5yQ6b}z|zx!)-16_?LMJ_toL*1uGDSg1xpTZyfIbY)F6{+O& z@bQ^he%=1Ap`=H0ecDNF?7^3BHtLW%ro<;9v$=i_K#&MM2sgIYd{p0}nC|fp1k$_f z684fus{M`%@R;pH%KQ1lR$Q<&x#-vY2;KxqU1RbSGL(`hBk6k0r{=B7s*m^865w6; zyl4a5zI}bsozmVfrVeoMXR29t=-^GnN?5jqtHzr42?z-{T77@r&zP3m=<j8=##r~3 za&-K;^_0^D8h}oanJ<HM?czGVm&pxNk-?!T%-~#yw@3G@P*zlyw0ObShCeqpP;-vV zFfhwONNW+Z(bZAS>Br;g-<u!4sm7Z+WU?E6D=FbyKYZOs26)bT=)F(6+4pnT)z)UY zx%y!yd0AOY`?v@<OVh-sOtfi{9~#DnX~QWTaLW4E309gJ0d}G}@a|t>tf&`pDPK$- z!wDe1?5>lQHc69Dd5RNBb|uw9rPPN;$HzZL{(MHn;o)uiCE~00ruC6m9~t0~s@PXS zJt-&&HIlkEa~?x@6JJ)F{M}eB+P{Nl8F|EO;(fn2MUZzyT#E)uAqhHl@z=FOb81U` z%*q6Vzmk>G`AkB7j8%v8g@-w6NJm0<=<Y5V2NFW+nKLvKE@!efm!<?WPJ!CL&N8;3 zJniv5Mj8M5`a-p&uX#m9Jh`vj`^auLw8cCm)g#2TT%4U7o>Fpq$24Q%=f`HAYqlk4 z{&${gv~lC(q6=aAci0uB3hB87)tCVE0!%+bY8#n$I4~7=7()6`XvNtQGgY1<owAgK zPXk>E!6>b%=UlpZC97k1iu}A5DdoOdtHyEv;0X5qV;CZS%AfnnU4sm8z>^n}|H+XX zv0kO8p;MfLHCqg1OuXdJ%XxhBr_A<|P=E65m3@reNtTya0V8D)0A(dB4cFBd(oN6@ z%>^ObAP!w4jQczMmLWD$W9WK&&Oh!z4$b?lKhY^y7YX`Ab3w>C*hrq$I3r&|w5QCF zhk5rP@05Eji-`c~B@q!()-oS$hXajYQADn@yTD*)r^`VoqkpZpogD|ewe3)c@kHK2 z(=&B>Qa^^(Wxhs@(1@yau%<@$RnJNMN~JFaF&GgQ2+)d@$yFe9KT#%CN1>2+AYC6c zuZdcT1$6DkmORK1nLoIr-&(Md0kDCCF<WrDwBx-md8@z>ubC|<Z+Kj{fED?z@<zGc zjM9>7-fKNo%xEhr24UiCx^O*=#U-HH*u-Yx&GRvMai*4S1n(tG-K)F!O{sAXW=CeY zLR+whGD9yFV^<y)ynjGzR3WI0G=C1}(OJ!v>9^VON`{zc@Mlf@^>O;PF&dfMj$?{O z;iBz5blj~SKZfKOaW?s`11GJ{fm?9_iQZpr67`CVe>`iqFg5!jNrYgBq2v;7%uG!D z5?8c5D;r`MyewjB@B3~H={(npkdbWhprboQ0pz6oSrZ705k*@|35Q?jaL5wud0gC6 zZEFiw(2`MFpTycbD}~R0eH@B5))_ZZXkKVI{Cp)*yY;i^n20jTjwpAZ3vKAAJ>ckk z%(|V2w<YxBkIVrC)AotB`(0?LWuyJ;RqvZF9a@3df_xgsKkKrmLfG|7TYJ~1bG(g= zO+$Z!%}!H4k|7bckc2Q4>EpoQ*q2t8$>pvbD2zQgh8$<isV%Kp0Q6g&#{3Bp8IY?) zZAuA73u!0WDf;!<SgjLgmUIKpx!-6xI~Ua)=6GLfI*9qT7S+rp#pI@;*#U8Jaksdl zj>*~2HoqJ$u@^(OVpnU2>%&eSH=}&|lIe!*UCDu80^AM&NFXalK_eWhf<h#IEp&oa zy4iZ!3cWP2ln^N*hbE4G-eyJSPib2`Qx7pQ%ESey!3QJ&-z7D#WRP@O%_riMW1k^{ z+~myVQc5n}6i-9uqc6nAKd_(2@~(;9$n@~ifTx<+*GqPgU;>%#tt|yj2``s@S?|@N zUEU0}Zam3rO#<pzSwtu#0TWDW9S`Zq{L4|d0OfWlUY|}Gt+oDi;Z62!Oa%pz@8*1+ z2oe2S7Uxa|P(vy1f&5s_LrRJG@j^8Rq^3!{CUq>^BPhuuU&%JceXINM@#E`%#Vb** zv<yB+{l2WPtgKW}$2PGRUb<=ZyQD>(9S8VY;+QnPc*X0Qp#}%g;ZXk1P!>5d1WPSH zegY;djui%&XzDJ<2@wzY<oGJK=p+=dVkUV!j6I^zs58j%TD(YK5~4WOTL8((S4Ft+ z>?F9prK<YXFMlfOHP&KcK~Smx_2rW<fNL>JIqGFXU$ThH`=mER=DrB!gM#*S@|9f` zJ()MH4xE&69+Y@A#6id@NP==ODck$fo+*7JZ6Y$bay%yb)mK))-C}3LGQ?(-My9uh zJN<RvkRY`Rsv@R0hrbgE2G5a3)e<gT;I!M@+Ln0wWiFSkcE_*pZX&2RrX@!;b6GC` z{#Erq{>q5kxcMXl22>fyYLruKqPnVz#XbLI8IOPN{$u82i`P)$6Tn*lt>1}WdU3g7 zU4X+!jT;C+A+o6V3U{@lq22DNDxpyX2<;Bt&<3J;al$BCBBcH)pes<(Kmof@+Dj2r zG!jj!FYQmr;}k7Iu%?&R2fi!va^~?5hCmC*<<}}E>TUq64xCG0n|VgedAL<-xLpgp zPsSFR_*1Fd-CGtnJjVm$s-a-fcS)lGTuB8wyUSMXWNn|%y|wBl;w2WTlIAIv3dU@* zy^w@&!rCbYX019P8Yl%JIx?NfMF8_tO8vI>F`*d2bbDr`7t%L0G@xb7Nw`6!FK6ps zRDm+;j~+%3+N=!cYNltE^H(H9DulfoWu!T~lAXK6MjCVa$7qr+<7fl|s+dO@^B|wG zILdMzc_>(xOkZM_8I-}*;~r*+_eZUu(3xiaE~z#S?q^7?lLNV)pcUfjQ^=f%PgZR& zFmJcbd_7-NkezK+EuQM^Ccf(?G@v<lr>bAJ%DaPMqptwX2Iv+U>U;}aMy9IXVK)2o zo}9h7Q*Tyw<mci^jotiWHR1z)QFz?L6ZcLr0{H?GN;ClFhj8N%3cI~<Hek|zsDOae zp<lBL54D6xmQ>JHjG-lmc^!?~s1;jAqCChJE@?zR#4qC;SdiM~aeUjhiJ%_0GqVNt zBnfRZ7Yk(LUK-O@I=Q-*ZuCj)6CN}9n8ScC=zR6HT0S?SYwU|o=g+l&v48mt-}ho! zNyN|hNI=~HjtUS^H&YWwK}|XMcU_~>kxF9DAk!et1L2YsUB$CZ!1BVOLll;gdsC8v zT765W-GLv8VeCz2Egtk{1iH=0v!-;7jDEf&IDIU{98&S!58XD2W&>j9(IuM7znDiN zx3{*wkCLLg<%<L{UGLt7ZZ_tc5|*~Oez-g^RKt>l3Oay51mLj%G5!zXVd_-+wIE7( zM=U0EL~L$snK${NBYlSePg%7!ot1(b5e*wix-gpERP$&BDSHR30yXCM;#Mz;sbYL5 z4O?gp+Ep=R)hmp!HOsfL$GZ%k5xTb}>yz>74FZPxxmQ=9P^6ycN~9Zg(~~A;q?BbX z8%JYf(BD}1WlCJUx$x0;U0h$P?CYEk2^XR5cV7XxYa+@T_3Ms7ArF^(BH&A|X8vnJ zyw3H5Y5PmDJ$)fvyJuy@E9%<gHsIKN$}~pu^OhJU0#YbM4%yFfd0^~S0qo7b;)ptx z&{dwCv`ug5dYBIOP)e=T%Us^gz$an_W#pJblD<H{zmkpnY6FC&-2`9--d-}UyhR!y zo{B;e%tJ{JCGS2~w4x6`{DQ;>+mqH>ABJmR?wAX9zZlhLvUJS1HT*vPdn|6yQo)$A znij|3u1_K9>F&vE24WH`1V1M_vL~JOrEZT)jZY$w(blFo_-ZN-XLlr&o}M1v>jq^7 zWxQdJ6~b$K=N2B3^hT>NC*Jrj3)#uD{TnQ%g75vGALaGoFZCPLV*6dGAXjV{1@iDP z7n!deVNsBUP1$>r=&E6(jh+p$xgB#sF6;l(N&GWpVECq~{H^#py%pl=03@e?4OlPu z21FO1iF?}}X&DFvI-l!4e_p6{m~`W@x=XoY?}KIqMk<3bkH~mWr&7dTuTfJ{zL)yD z)+#cW8Ke~XGfX&NQ?EokdFwk@jDG|P5`g@^kAXZ44?FvyWu>4DJ~&1Y#i4Ep4qf_E zskJ#I?pjLAoJ8wbhJ+V=OS4ZrW5wXvXl6_jnPL;$wL%FYg-~C2D>G6q9oyKwLsu%4 z`1@j&RArHQnvNf@SWC@X4A_BVZwT(}wz9f9mza#m^<9m8vRrJFOYaBQg$yb<fEI-E z%M!9I5mf4~^fKY10hn>I4JbwA!D(me>bcdZe&%M;Nv!{{pjkJFQ}x59BbSW;u`C3P z$bcCOSkmdl->DXqpvXJh6Qz41WuccP3_kW-Kj`w<9<!$Zx$WOs7Zn#r<&uMat)y(1 zn54_>jhw|+7M@_$PpaG(qj4>;b4Wh~0M`8{POJ?nY(V;-gPsA9o0lhGPAyum)JAT+ zM+I&8n$+}OY}~Me)yKp3&xpoul<G)iWD%c{>IN{A(Wz*TH<#DR&L)++`ZdGSHcQ4H z9w%FBJFJs=wGvSVfB`!&avboA7PwDv`~$@QW@qAw$JPAgj4hc}Nn=CM8%9ayU!!@E z<7TDdBbCt`KJ@?y?)nKJ-{EH-c2s;%$^<iy4q|-^{+P7A8OK%x!>z!1B&*c$zessk zM`wPT;Bfgmh-96@3h{ITGFKwp8T;nCuXz|4@prb3q!sDgHrR9+YoLXp&}fjYEs#yV z!T$5r=w(0yxrtYKze)T&_E>S;MDXh8g`65zBm)V6=iugnjEXDjuLt3|u&dQSVuH>3 z^Do5^xBZ7luD<tCb5FJ<s8eOXd{b^qPQ`;kTgYqQItY9!iuHJQzF+P0gD}H)bLiW8 z%UOiy{-1PUU>iO%d|1y81VWEvh)6tIGIuty{T)-+0hhrxhT=6s2A)V_Fk*oabbr7? zq5fw$Gs}`Q6E1oI`aHktXHAib+-1t&^KLg}xkDj;<J;@LMOI8amHJof<$G%BOdt@P zAG$HmDAJQ+-eE%JBt9hjQ{2bo%|n*??EUGu?}Ord#4i|8h0lIEjupaK2|j->``rJU zW<zO9`6@p`lp-0JXgmXM5&uO@ihsZ|ZnsKm?LuXwD=`F#kVC=T?`kPX+^~P`2wQSK zAch38m%97n6j_QyR?|h@_U%&p^~f;Ctej#2FIcWm+?=kcaRaFl=CTXduUC0+-kRqY zvi+u-%{X&5vi{0$V7u0nXdvU;&j}hB9*(KP=@ds1oW^XfJ(2d<8nLMwd-1ZktKZ{C zq;%7RaUF>1O)qs3VZ9m!6pV;c1*>H=hrK1a`&hAMS`Huli}ZYENw>~k_zbUp74^@P zapzD$1v|vl3Tru^pEXz6YUMv<VgAM7A`3v4poJ;??{Y@E4E=8oc(G)_7VM%Pmw+lv zs!r<VQ#LOFQPG4Goby65U`xe$j23W1H^%*NRZo{T*%=P#-T%C9<^lRzMPl2R@Z@z) zN0OZNtSCnyY8;Ya7f5;tEu{2%tt^WGz}|C{HGC!tT<n66z8OSl-PTtgE0QqG`Des; zF1~N+ri}@P-&<b#Sh<BjAacwZ0ipFS)rCzK=~F)8b$Fq2%oL_V4p`yALnF>-oEm-N zH+`ZY*QJ*C%qQ+M;-jl>8R>-XIyzq_KqG^*^0dNDUkdFtx?E~8XMPeXEyTG<b9XRI zR?f{@@iXb+>DY&Qv1|k!K;wI?U2B#|hf)cSJ^Y_qRxuEMRZG@z#$1Kft(8;>J~IVX z!z~(#FeCtRg3fSrg9c<I)wa(nCk54GHB3xWC(e8CR7Ny;(7pVctj4|!!OVKjo8;5+ zbH?A@U=R8l5d)V%-5d<r+@pva{dwxk3PgW;+#!o7fh5$T&qB4V6vnFSnX?g50$^|U z{rQ<%Ia4x>xR?1{l(oZrDx=98DieNtr@q=Ob2tYCOpv^lS0!y*@bz`zK)W^IzzCEb zCabe=pZ`sszsfn0e_PxWP7a)$oah*r_UkZf<%~u4JXfVlV!JH%^H-R-#Nrmk<a@|{ zd_HqP3%O!9ZzEEf>fw0AJU3zZStOJK0!9oJ=3v%^U{Ut8kCee1mN)+1t7LU<;*9|U zt;7=WFgDlbp2ISi)PN##pwaK>JMhDLvfNrAH8edWNSwI;cgiCTfRK>TO6QfZMySQ~ z%uGFZxVM{Dd+8<1!Wpeu_v1k^uA`}=xV1tj3PLaf4hL;Fk=@3wk9AQ;vOGQ*1RqdA z`M8*>tXF8Z^0eoDOIj@UK)C4VysBJ)IXrc|!5$@jt9<i){IB)HC<GWiLt1OoRy#wP z78Fh5em0!bOfSYE*7R5-@lorxed}b~BF$~OeOp2feEIU_1v!vBH>IHz(OsAL@LHy+ zi9<^Qs!v`@>~Kp7O!z2d5msPJ&aRF4ah_a~-qfCvluh&M%I;TW=KhvEQg4p%#r1ZL zBM2Z!geX|GU1-3{A{QjNvS<$o2?=!vZR?yp=@KUH=lG|zdFBC;P4p2BJW@teO1NgL zW7CDaB;R03UT$Qu!l4NOc_}}0<Fnh4td0sq-oRoDK7pDl-jH4oCxv8-z`~oj?+6t9 z#$Wz8w(k}TseQR7>V2L=DfpFXJ0|-!!=b_K86rwQO&1;k^L6UGI0)g0icNwlnE7O# z$MzFvcd^tK7Xgj-sH&P8pX=j*wVp)nk;?#sk8fXiZ<bM8(PKU7g|QzurRpIdY8XF= zfMrR_mV$=Vh2R0SR(4_8R^yw}d;mi)qfv6B{LWk35SvNReUL-<lg)Wv@tD0@r-!4l zUlKfI!C(X&igq-#-pxPk$|M#a8D><THhG}1i^K2V8O=6x%%f-AGZmSyoohoEX&VbX z9bOhF=HDKB_Y@NhBX6<!6jALtwC3p<f_zZRSuD1{vw$zJf&jo`%oqrFcvwk_mX$(1 zPc~xV4q9M@cs??~Rp|Pp>&L?i(7#yR+jb`kQv1B<DBv=vV1wo8e&VY9txg>1FAny- z=UX3;-96S8mm-7YKGzb&u9wG~TyC8_^VVl)XSV+-gcT^}pD%UV(%V*SDaHnDec^E! z%UETk6y|p;6!4Q1NENemh;WoWL;&DlaC83}e&$Br|NMrcg>;Q<wg<fG<M!TaF4)|n z`TRaG4kuB^GQ`GG;L0>TKj#8#y!$6$d{ou`L#apSeTXs=c?bQ%qcW$`0EpZ_<O5|a ziIs?edu$j{;bee=;bUD}k~;stadB}U)PbwTRi5JIPe=RZs~?x<mWiM!)HWmm6+(Jg zWd487k~g=JCz|ydedc|zrsICIQr7jb8{PB0Os=BLo)wfcrZXtQYmC$k*pRFPD_tdW zGl9@_<hA8GWA;F#k0=i2%nukLM1?OOR+0k_IGC=?%*@JNH{Wzz-TEZnN2Y9|Ez;39 z&8o>bmZXZZ@hl+t9h(sl7({Lkrc!Lt>$*)JRL|h9A2Du1qh~cDh1u;RH^6?nz~?8U zgy>l6f6AZdA6PM2YvPxEYy|epO1i`BeF;xiTjy?m*p#Co5IW{k?`JGJ@m-USmM(gX z&JuIG@LxM74<0;76c4z$>UdtXL*QNr5nBFvZZv<XtLUgcbYruzwe`pQ61&nF(^`z3 zZ#)Bb#oR~A787Su>$aX4{&3ZB!}SG&5exjF`{ou3zBvDfkb9*1SrIpNI?lysogs1k zBol{y_`PlSSwWntA2){yatANZO72}?Gk?VFkdfMSMxg*GL;;z8uiWNC8a?Z};r`+y z)MSP2N3%N_X~*PeW|4(;;zF}rL0r2KR1!n_p?eVF6~S!w_wP@3j<M{)QrBh`D}<a} zpJV8W{P?rv;I3)^K7E@17!61SM)5ffWG)tUOQnQ`@5A_wc$CiDM~_rwuG?|Jhy`La zR|rqj;VTv-CF0{GG>YI)l~bjvUz!#ev3rE$HxHE7*ZX$bWtiOTs90=c$9ZMCty2z& zAV|yy6tO;8j+6j%BZuPPqnpL<APR^v6DHibPv{ne$HZY7!nDn|GVY_hbE~pr$a;KO z(q_gLgPPgvlVr0`LHa44r7+@b{4MekCBK5WRohrV+3^m_(D7;ZO?>3m`vsEZ<m7_U zOY9_BGQXgtnr72w&fW17;(W(=CJ-X0d4U5O{sf7~4WnjxG9Y>~_Akz)u$hZh|1-G~ zw7HMEU}8l8;0sp%;<^;7nvwP4kjkw+y1QA_BvrZA%XQ^RKctn~JueOfV%RS?FY`~u zIK~gX>fYG10Sp0GhaZ?dz8Srz@T&r4L?{oxSb8#TI$4)0UgvH6iv1g->UwW>*-6!d zlMDcih_VI8y@E>YPEHADeoCBTqX?=&L<NB3g8q50F;NiyL?jp-0grlv9~znqqTn+q zx3VY>#i8C=uhTGTOiDC!Z>RUnZXh)`{IyqR*<NpoH8V2Wo)ILS{&jSmBjTi!I$-pZ zd;Khnd^eaJv49KO2AUt4Kg_Ulu%&>2prXncH{S|}!hv7HzuDjbC;~VIE#w7r(F)k8 znIF<qZ{Uf2lOcbU*s^ZF3(6R4*ZXdNC-MCL@3vMC=IRAur#YK~tzd>6ti&LZD;Tl^ z+nB#jR0D?1XmpR-3MqH}-ra|;1OXDU2AP}mw{uA&Wh4MeVR4O{O3~)S6`hb;NO4J# z=VRQ<Xw0-2%DsE;mQOS{tO2Y@<Y|UBMD!02j@Q|r6dN+8zro!UkJa?6(qP>MMQaAI zcx<0w`w5-^f+8b>fn%MdXNTkvBoZG~04XKbCF50$&3Ls{RK@H<`~X@jhobK)95_z+ zZ)^;JHAn|8_CMwbimeXY^=&N7*Z2WlU0qacjujs@k7F*9)Y4RZ({#Z|os`piK~{Zr z_tV8*uUS<!pbK#%G-Z9SQ&UG~r`PWdW#1Hv{Utm>3~qfkA9{2Ef}&8}kOcD((nFro ze+ovB9<)?Gkur(l*2a|~5C{_U08FhJ7Xu6|q)i6QJn)|s{|a7N3n8G^SPQ&%>VEUf zw6{-FLb^r+nDH1lS>4J5Ir>qfvX`6B50@WHUynQc?o}0S3JUGlQS*wi>`P-nZ~#pR z)9(cjSPT5ZXIX0a|CLMwrq=xO1$cXkGJ^q9@Das*6<d&~z|%+W3T(g!kCe2CA0EgO z;f^Ek%K#6LstE|@-T3^I-2S6tpT%fguQL!a3V=?Kny+sKM?*@FNDL7Rk|1Fl+YlS= z+fK=p+--7$pyR%~iC3ufb?VVR2b;T2l*|i6i+I=2wER8W*W}Wu(E##Z-x=ndXfud+ zAGw3iEFkZ#-A0tW$_lJ$rYkJd(i(4hpM(DyenbNgfJIBV@?+GsQ4(bmTiO4N2m?Fb z?>4ZWkrGuXq2F~6G<vFGRZeRD)FV_YVrm^xBswb&${176)^WZ2iRe4=$#Ii$5ecan zpWk+0gL~muE)EJYzV+X&%n#R72si=II1B+>@Fw{svkohLD8VI|{374x-anrMMym$% z;Jo#oe@I=5yB0LH;U_CEFK?JTkE`ni#r^h^G{Xaom<^P-b2Qh<BLZv-es_Vn_*(+g zsD-c1T!1hF2oiZ8#0s)HrLBJx2GDj?$PwfUR8?@?<3s>pG?~6orq;-ycmG8V3Gza0 zJw-rdK*J-i6pcn#GK?6p0m3h5^mB5O;zdXLkS6v{P876Xq`B;HFy%wf#Ls%f(5LkH zI3PGQ9*71O|0p^$kaY;YwB6Ou3>_F?g-5AplvgI`YTRYXA?>FVZF64bY76Ka%*n~Q zNSVP)6gMfdnyvE~6QC<31C%1@R2*$(?GdAw0cAgj8cMB`@6N3EB+Kehnv$?R^aCl$ zB51+NU@Li&YJc($K}1cZ<*0t<e8QkO9Im|ZyYthFdg(C{<>?5IkB8%JT2(7XJ2+;^ zr=uey`iyvXUx1DkUs+lulR+&Q@R{be+cVtQ>|AWFw%Oh#aBwWc#>#<0!NJO4=q5*P zA|99uBv$YnUmeTy&vYDs{82F<RS<&#z4ptQr@l-0^?M&a;Fpp3I-BRw?EbnBJpVR^ zJ0-di9Wh0brLUe07ekm%T}G&KXkWU`8O-rEs7$`$K%pWbQILZ&y}_ITXenBfOVFhJ zxd72^ZQenR{<gfO!iO8>b`b|WWuNNR{<+${i4w%?8W@Q3sDFu@nVZ{QhY|E6Qa4F` zft(4b0+|;)0kW%J$=PY-=G~4~a|T@3mxrQX7zzi(Nf7@chXZIN6aj-n6)BeJLEX?) z9m|mWOsYb|a56Z6_Ju!HiWn4IUZD%QUiuZ`Yu;s$$~jkH+UR?6oT3x89vB)LTD0s@ z06~d^Fm)KonpC1c9t-I^(e+F%sxDnB0C$oQ{Wdm+NUlQ`DGFi*1$!c9`bqzjlav1M z1_%JYK)5z$SOZ2=b$Pa~qKpY{y6eF(a)rLjYEX1v^mQx@b+SDk|NQ~^gA*q@f@h&V zNiv2R>4ke;T~9vK$`KNg4Cgpc#|U+cU2v*lJ&QFL;Lr)u(vSRLP4I*m9uM3#1vPu! z>{8=wzby)?#RKb)zHt7(TL1{xB+QnI+bQU-_^Uu+`a?%5)D(y2N~24z($hbBoS>&p zK4i!)j4AG@m)|Ah^Ne)D_z`lTdUs06M9Qx-X*I=nRIU)~S*(34l<a8$WWrb(Jn=Lz zVjMDI6hfJF_kVc@5r~?@%P35^u67^7e!^>*hCW>hGMoNoaVr3V6d#5;r7j=4(Qmx= za7av=MYwTxsJe7b0#A3#mAk3TuLH^-LdBqA2ox(S>}6mKG2Gnpjjo+|_kTM80B9Zd z{7c-xGnKyp-Kpap)D+~Y)r_q~sgAMZ$%3>sIHRDT`#Zv@y^?`?C)biOc5mj#YxX=M zrZ$L<X~JrKxra}}sI|^`qCoC5KMx&UYs_5;5(5G&gGC2muCkDS)9CB}ea?a;`UtX% za}a1N06d==ueBS@I_x8fCZs2Hx`Pz{ukGPhRax2dx;5VY`mM?U4Cr3#SF7<FzyrZu zzW~ud@hRbz+b4jwqC#%?^?w6o04l0(e(_d}9kjE%^%ZA!ujQqz`_A#^aKkK~xw(19 z%sZ_v8bBBZjN@EeA-;eAuF$8tucH!M^JYh7jC*}$y+<C5`JsW9M??{!pGE_dqEI8a zYw*89EdD<ss^*CqY{0!Gt~6(ezKMxc^W?A34VJnBXG-b-YZ`zM8qjQe<_w5ROxp5x z&-=QNY-$79#;WTVzUeBPxaTl1h#X0VFwfxVGXgvH^x>;R{#!i*!Cj+~+SW9^dGQs3 zr&TPe8g4x!4^Du$8adU))A?+~Y{KlI@FZYkXNNnI=+eZ+z3wLe6GGuWAl&p*U^Zt> zy{WADogsTfx6yUpT?i5p3Mp3suMF@|5P>h)Fp!P#u=5J6+IU5okZRB^T7$sr&?MZ0 zDXk_lfb)i23}@!eghq<!!_`M9Epi|zDChw}sYjcTR8^%co5}|TV$}Hj=NJHU95AjZ zeFZ|JVEXq#;f4ZL0{DRd#F!PMup16l0jU2HOQVr{Fy$#cObre2?b|ozWtnNM$=TV| zNB)dLpo|DW%>Y#-P`ufjD4>)MAZ%~c36UxSK-`P#0JZ)_HYf!z=yb%A6@>4Jq)_Ni z3`-|vf<1)?fj&XdqTpy7pniN%_5Ts|-O+GG-P?D@#SFqAq6HIO^b);{=)FdX8l4bC zi#~`F(Ip~!5MA`%Ceev5dW(oC(Q634HF@9P`~5j<&AR)XbN4xWpZz?~zH~Tp?$>HT zd8-|1ENUt0Zx$lP0xHVN)Tuk-(*SKf<^jc0)S<nGh6ZDeOy?HKx=8)rov`bSKSnpa z1vM+|uu5<yip6|FAVG-?Nl&{(0fnqzKap34-u_~QqLp0{3JKTn($^7iqVj$`8)Dc# z1WgsNjqVd2ea@aAv#dntD?I{eOQ51nZ#n`;AX~dTHNS8EmJ}1wa=#A)Q9=HYx-gV7 zm;l1yLM4ex=vU{|I^HUPul@=@?6yEi^(y1zNmDkw5Z6m!a&j^%2FC?2W{B)MR0Aj? z2jq7F4#$g|3=Z<5PtD_YWe@Q|6vh$iTx;bQ!;J0+$q-ccFbi_nwI-rOu-}Cy#o+|d zu|cA!Q|093-t$5lw?DP0>O=BaVO<H9ci%SS<mcZ4M$#U{-XkG}q0#EtM+xJq0LgG> zB;P}HQzRDLq~bwpQ-OCHCSN;llxDF2`8^^1c<R541D)`KtKxnnZ#wyIvNIHXrH`@N z{;Q;`1tbXJSbkS$1~NKGSCFuL1(Xu!Z`JE_T~9I;H$>IT@fOo{l{zy2K5cdwIvq^) zk0Q-%71Ujpdsa_sj%6YtMAde1kU#y7j3{prWh2`>KS!!<sQ}`m4NcyAOXWY#vuv94 zq`sdCL-?$FVh;T9`)ssLQ(PCTdTq~E158ApIxYCOLLi9!5HxA^QEWBQ+N=x<SLq68 z#BI=&4MXIn*p=V=HKNM9fChWv*(FUCEJ(YrrbO7iaA1sovv+sTyY~Z^)R_AUwS5M^ z^q|#qJNip`nbSI#aHse%oge38ii<@N^~8-u)8pfehhv^fJ|sI53+s%!Q*2xi%PJHM zS`Dj&;BgAgztteaaNQz9xMib%mVd@Oo2rLX3Dl{v<6*15Us$wr?FKT%42HST<-LDZ zfQ>8zHptqQimkI7!=?Cq;>`54h|}F{A&B;)M-NJ#)W`jtFt=5ZX9ena7Sgqx9luGr z1PFdJH2i3bV~YSFO7MS1Y0>|Dp#yHTMB|Nsa)14#>JS3JUMix-RRCAN6riZIl#m;O zpk3%~AO40?^CClyO927WQ0+_r@i-EHw#s#Hj={!VjQi<#^~5NT0Wdra?En=g=3n2g zd06va9G<Y51=u+zpwX9L*|S@UuSlQB0B0?<^r5H%keLNo(!B)EJ&T#X7ve9{(=D{P z6|)fA=KV<&g5(I`=h4I&6m4f0$1*%NJ4-xr-PRP_zTv;h-j?k{p+rNRLz9J)fG-@M z0};w$fQKGGBQs<iMeqoLkVlOxqT9J4+H4S;48V<LR7-gB(Y#`2{|FDnsNq>=O1xhH zs+xeM@Ad1~wmgs-7JE46eJTX`-2ferOpu1qWl&La3e~~}A?mCN=W3Y4`pRVzOfxF@ zeXcEXg*rsAXDVrl5cTDxehzf&JM=ew=s$_`q;zwjO7E1Z!pwCUgF*EdzsT}>s{s_5 zktPolS*nq;a&d4}ZMjXSu{e^T!v*CTy~_u`lfW8P(6MqxA2vIbf+bU9!$6P>X0&ui z8OrR|X@X!!Kq*+dg&K5vKHFSvF{97K{n|FEDM)&x5OLtyD;Zo7QAf!UR)B_vrZw|g z#%pV`iYy-Zy}4azh94J273O!;0oSmWKPO<51waAjf8^jY;NParLRjuX6uU%HbZq3E ztI@m&T?7Dufa`=RfWsTt`ad-!=xF?>zrMZ~6eimzq`L3eR3zM{MKe+ZNAK?L=Hoej z`<-+65>Eb@&Xe<_n(N+Nq1{MzFg(BZmdTUdT9qe;uP(4jsVw^HZ5M&Yp5mWC@5aJ+ z&G>j4w8|(H2wA7Mln>COQc!%!3}}()A`+A>vvNR;a2*k*a4<X%@aWd#c2~yQ1L~e3 zi)BA$5S5y~z4e~Vz)W_kMq~8irfGr|Z`Sh-wiF_Obp~b?G^IB~K~2Y%$we=lMP8m% zAWs8*dkBgQ`Ze}*)C+6HMACb3%tY92FrU<D)QGdkc3Bwe?ChMugBO$*M||tn#|98p z{z};?!ESN5*ic`;tNhGu_%kzcTgxRXNo#?8q>~6Z6UU_wLGi$C$TOH#pc|MQTCFzC z*Ec)#7p0LR<DY(9t4n;fHOz5-2jdgLV_KE6yG>1+1V~CL%c962DuTe0^b!-?Mb)CT zq(r_aoP)ODw!UQcafq}84$77&iDpKBqdG2)_+E9M&#ugdz?A560ua?1B7!|vtKphS z%n+f*rO)>+zQ3M#_~R3-l-=@+dM;q!=*hl3r_?>n0#!_uD_34$)C&`3SpdvOr0Q5` z*metOLSIyLR)8p9-=>C^lv2IDq@E*ZC@PaKbrLl&^yaG;uG|{*<m{AAb&C1dnn$4( z9PN<_jYJ_ip(#4}*usRXq6*Z(Ht=|~qW*Wz1DOD{^#1FU<27Qjn%u8F4|R>eRDU$- zf%^ZI?2yP1R58Kzub4!4GECwU#A)x$KA!%>(#XctLGaTz)<~5fzQT}|BO>4}kZOrD z^dNJ`|FmVDY+H*?6R>PT!Jvn5BSkuFR+E^o40XV{im|ymz4DwG3D$bL_abW7*Mser z$;|t=vQX#~vVX4Z-}T?RCIEqh%-lHpo9w7!_YXs<^z`(a&H2m9{|W{y1Q9X5?84>o zV>-t4-)dJ6_!&ugCBDVYD9uYKoJVioFgC+ALs1bRS01rJEQQ^g(i-8`+d!pFy^f$X zgC#$PtMi`?#ai5y7+mP?e+*xa{Lk<-90^Itrq|tG>n(k?rzn}h;2K)~D3ji>?1$ec z{k+d+W@ajdgl@RXNyT~eX>U8YVDIJ+mdwTU%<Q#D#Xf)exf|(<T%m#t7Io?lIb{5t z_^V8Yns;^G&Z&?-hjRZJcHK-LdG_H)+m&J!0*$5xQ)$CU584HyW1<?uZ-Xd|E%XRC z6Wo8+Vt5I>;W4Vr>Hk@k80%_M@BHM49}^@eu3t^u3`vV`TIura*_|fQz{s4F8$s4r z>6YKWjJ_m6uJAyFF_z(XTq<h^k?<T&naOWz!Dr{JkMqeO7ME9?wIek{(OiI>0ti`` z{_hU{hhidE?uSfW+&456{5!Wh>$5HIMIC!AKRQ1CrRPKun$z5zHgx+OBTILJJUlp# z3w*8#r1CpvkjUY>01!kJ3kHv>jBo0GKiu|?ck>&fWMHng)D_)+^f$d$KlASX+e?wr zsm`6pF@)e<M$7_!Oq9=m@h=oc40^!~aJ<v<2OQS1L0%Y=;LL<#f{ZRM4%rdp6Ac*2 zTwY#soOV3^aqoFy?@nk6@HI6GME$1fdWv9w0d+3>LZG2<%nb2_KCyg}8g#wo{rD>E zax<?ZASr9vW2Ov;3;|0+|J=6|w3(g3TO@vi4@DwqLguQ;oQm(0l(#$IpWB@#19X)j z(E%vuiOBn(?BBI}e3mYC&{Jvm^h|K|C<f7ee>Rg+0QK~o24f8N$fASLrFQYOGB_eR zh0=$yf-{3n3Tg^kzsGX#sC+iT(CTl8kxNU0hru7`2-Z1&@#GBJYYC^5+sB9?6L29? z8@ePWAOCqg`BR0ZyV%pa5cbu%s6bB2n_okkZh7LH(p4v0(L%D+k4I3<JT=g-3FWf` ziWU(~`6%gL<J#Ss!ar3Nc?2BhMIgG5c*$c!IXb23z<n^)ucW-hvy=J-1d2pRLg-xo zMZ>Qfrlm7;bDLEM24A>BZ?%xbf5jWEfd(DSd2cb$2nU9PU?|d3#QBj1wn}bR{h#t4 z!Yu+rbng<_SQhu6%#vs~y)S+2jfb+eWucv>g#%vd^rcjGY`u7ARTVWSvgKij+0XtY zbVK!<A7-qtg4t7b;IOrK0Ih4~!wD^eSPFr9Z$Dubz^rkJaz*XTCC7HT#mA-t{pnh^ zMpGGuG=X||8hrbL-Hvqsw<>HfWfj1|$nOrC_nqH4_aUU}*3E|x_k=%*kO3u?qbWca z*0>AJn^$pLmhS$*U9lzED;$AqzD(&4EXmJ8umFw_)VcLD!B9$-Q&~b)-9(KBbc5j3 z+cQ3cDo2a>yoJr2PD}+;Mn#6`3q>zhKBC}@j$tR%vLwJ_86n0_aP%8OI6y7+fR7J@ z-3=&?>i40}>D06<O6K+^cH*aXb#*LGc$gVaXVcL|5AB}g;Gq%<TA-QFW(5cKQVxAf z-RQ$6NofxOwTVQVXA;ny^rP+Sc*wqCl+5cnCOFW6$;EYBXgdM~%V2!gZ%7Xmj5!b2 z6G8!46bsT353|H`c6Ps#4(4>~pZpllva759lxMs6>efu7^rtE|%?$SY+}yFrALomd z-LlUG7oUet87fH%mk7*uz{5Uq_8p$mJtM4c%t-krPAUjIC!h)sLq7#)jKV3>vTFXb zB-X*-*?z+lj9x6SAQle}=W7q^FE{i$d?U<fd9C3FRucQt%U~-1KvY@l*U8}$H}((! z*7z{zQ6D{!HvKIA6wn^xNE30*iX(4p(Ra2e`*GP7(T#iAu;@*j&Y~<dzDJJpx6fa5 z8rN7(PA-`+D1W=Nz4Q6?d4_-{^QvbHc!30<Rp89ZONySynE^xp1e}^9=Tj3bAC;jF zZ=Zbh7)h6K+@Xsf9qM?IG3B~k(cOqb-hzImvX!?Bi6LVW*g--dhy?YVs@xc-Nq02a zr#AW>NRF?Fh=@OJm)k+0DQ0<QhU&~5XDp<R#L&yDuJ33w-x(<C?aR00O}3XN3a*8K z&(%=)Y>N3q1R63%4-EQd?zeHp!-NPm-ely+wE9@C-5CF%-5linHF0uOs9Vg|%fM29 zXD^J^QY<CbiCRL@CRG-IB9UpB{4~`$@3O%^!soRhs?&fZ+AHHc<!D9Ft+KRKt@jM4 zs=!?kn8asEWc!ntT{VzoQCdgGm^ab(&<=QWn{uMDhd(J27Jv^ySi(1oI#;c}8GSIO z`j7ueG0A*Tt4@WxRewqLYW2>EmA;&}S4zSEyZ_N;vNVNo1sYNdpSflH2%AQXe`3Hx z0?=Wy)W@7ZM0eU2uQQ-I_;Lyg;f;Z-&iGYM>HOu)Jdm7F8*4nY%lA*)#r3aDbK3V3 zVx)kcSeKmfq{i=S7YXQKBmkZIZ%9ph@L!)HWQ6B%E`P`x{`<3&cWl-5Ca(S9tDX4V zk6v{#axUi22+JNerqyk$|DvYYZJ7L&Q@$}E-v@mW5utGI^uxy1_G6#uSb@vdhj!BC zUIk|<DXEB1jn8DB`cRaOozeh3kesft`j*f0I}=RwAx2=!@|)3zS)TtMC9^D$)l#YP z38kC;wQVLg{J$sGyc4^pyDxBCaYEQ3b^!vpMScr}iixD%?^mz~fihI@<yT<T&Bwo% z1TB8wd`;awUG|gJ%9uS+^pFTQJ(OjmD2}2DA9J18%e?YYg<Bbj+F%!jLybu*W5lu5 zE5FYF_$KcWGoaT_=0!p@UQWB5Yum7-X3=;iHurp^ag&xAnegpRP|$D4eHa>T0Upx> zx}R_sufGQA$yPU{1H{C{G$iLg?10-86u#-esJ*0W(+9>N@8UwWz$<ruVR`B2yT5Fh zfsAc(Q4rd64+AoqDqvHoa$~Gh&TUqy05w92U)}_(3W)}U?k=^4@w8saUhMPUphkAZ zyJqC{XTYTR>`Bw=Dh)GnA#5VAWf`5o0;EmK#;0@?<99FdKsL6w1y?T{V^F@nz6Tg| z3|er}M4v^ZODb2IeQmR2moNiJ*o}HA4O3>#!6AK(NW)fliT<s;>d2}m(5dZ8;9%Q( zo{022&J4`I$rdbjTw6nz{!%ZnDy_a%f!vQneX$(dv6c_0p;qAjf{mKE5EV5b?)VS6 zU<rsGk$B%LwLdMQnv3Z}yl@vOR#g7_`>x9#A}pBf6hKTEy4?oHS+SYLC>PfF=ee|x z)MUcpiR=A<d$_=mpZgx^#e{{7#;>atNVCU8%jDizfr`6JZ+bEarI(R3u**4!#vY<D zCL{;Mt*AE}M5l2`YtCp_c^h_P6ayIE0aP?J(f+Px)quhS9Mr-(ab#Q_A<}=m+dcNg zDj+-$2|%e4me#}u4tIu2s=ll^bK_L;B>~Mkt_(XlGQs=diMMcWygJh-cgK>+YbFRx zt;9~NCDum{uQ~QVp^juxG$90Dxdvvw3!saAx?9n7wiKWbMJ=ei&xg3LcEOq2wQf^U zL+8JkO+9sVEY`j5Z%nsB(LYO01{~<aK$QCQcNW;W3OZKI=)-J~K`h1NxiqJUE&&7~ zCp_m$V&<EgMR34`G9&6na&-1-<E;>UkgJzI37|iIkOn{@<Wz=_=-pm5aqL!#6O87S zdVYBcf9`FmjuS9I4U};4k^@+k0(GY9W9Vooh@xp=)R#r^{ijyTgawP|Xvowg22osJ znbFUpvmiP4P_93_dy`+$u}p$s4C_N=I{N2~92v@6q|+Y(OGDKpfM~5kU_;v3$%%}b zw}2+tDOiT7Jw6@6Cn<UNO!`rXu5?973EAui{I~&8)sm9jjN@QaBmk8rvxK@RcH!~g zC7w#rQ%|V!F5~;G-Bw4`^+glvpoAY0`E3c<8!g$B$vGu>5pkRaX_REN6g!={?0x>C zrk?(uydElN6c$sFav*X-+F=L0NC&jf;z^g4aD5iN-X+rQ|BNUtD=SN$Ny+QAb%u%t zm5tEatKJpcrv^h=G4hNt>_@1V++Ur+|3>KmW=L%f+hm9T@|=d@!XGNLv!fFxHrR}> zvoHl&FYIL!=vFr5h7Y2U*3hB10%Sm>q}snaUV!CYYKN<<tFEi*Y_^_1V_pX?E-u}- zZrw^0XuUAj(YaSGM?$Cq2tAnedtg3Fg~g=N#7g8}tQEVAX#}R?C};})x;xfm_ZYkM zqN<tI!pAUC!ujNs_s_*=<LrIt7_V+(QX&$WK-b57v8u1h2Vy*kT{GAa1Ly8p(7PZ6 zQHkW!>?1;-UdwLjvCVJ95(YNvx3aH>R1qIew0UM!I7cvgkI{4T@}7C)p^S~+M-j(* zs;(8jp$3d@7&iI;f{<l6)f4^+OIkYH9xSN^dy&FsZqAK#1IY^$*Dhk78SQR+c;dgN zE;s5a8+6`XSQEapgno!&_#Chz4nt#LA$RTx0<|?Rf!6`NO~Te0{%P4N`xTdt%k6>g z?m<Ej%nqXHRzRbwnwr8e;IOxKCxn3wh}vKkg+rU}xrv*{a%5BV1O#odl=cwd)Yp}E zhBKp|ooAgsyI_cKS66HI;l1kAtC&d4l1|2F7Jwn)$h_<o7T8)M>U9D&Kr`kZPd0J? z&hViAITGheC&EQ&eOi1>#OWgV_=LTOQAU^Uz93|jg9U<o9va?PMN}w@ya7{J-jlNU zcDXiZi<s0~b;=kf0drOLSwR;)f+h}QK6@WK0*+bc+*=3tDWMQB0Yr?dxRHW~N|vn& zdVtWqHX_VBweHtqBo2+1GDJa6asfejC<}}11~__kbv47sVKh^u>>9Q4JJDU*)0*xS zfHmLf(8C%v(C{p3odOlKV6Vvd#~RkTdwnJ5Q!_==ADPkS;$tGB@-hLNE|1;kua4g@ zODR<_NZOqf$p*nHt;0QVRe(4G8zcaYMp-Mory`af0$|VkMJYGz#RFxcK4Tf1jiNHm z@EmcbN+Vn8(4x*J0p?*~10ir_;d7cg=k)91E^!C|TT4R|XOVxQQ|x*c-P?4>T0+Bx z>mr$??1PBD<z>0O$V7$6Ue1RxXaUvyghI`i2?ize&F9?0XA|7tSbEG->bY>#&J=6D zsRv#43@6@DHfU<o;tl5!7RJYWkh*?h)6Ty*mH$%y*^hMK{K?Y@1c<^sf!?AR+yDB6 zSF3ql4~k5F!JjP~C?3Yd4?zs!6_rH}O+OO%63Z*K1ENfzqhs7ZHam9LE@+s64C>!* zAo!5Q@@1F$n=(49V^JCM$vZK$a?5Ss1Ln>@(ryS2{?hT9We>j1GLyxXMUnPk8})V7 zs)L!^#Td`~+x-!$ZgA}4>~v!2<^VLiNLJd&DsNF9VeEV>0~Lo`dKsT3yM!3jJ%s-o z<;l;yfN8Py1}!*x%r2(oR9<HBNsgvy)FnA<8la8)=g;{K^F4PpfO!Z&L6M8|hzsNj zIfRw(iM%sn@QI~!;pFt_vPFB0`SoG!vEkD@V>2ZL!vZQ4>LD3*w#YkYw`e$e$5XsU z$J>-26$d?=TUN|&{$>35;0k}Ex1v?9&8Z3a^cMk>h9`{1p?ftSZoVLdA`{r47e-PX zO51dMXTKyA*?@ffi~a~_S65fl3<eFLh-9YYX%Ypqin+c%vpxS1N9B&0lodi`(%{tr zMO-KVTMGrqU-2;t1M3S<TpXGAZ??8-93~8(<pwueiD|eL@s}H${3p?{ND<S5^0o8l zD(5XpOsQA|o_8lE<Fx--p!IBZMIMp{MJQv$;g&ziC%(t@m9S&41)>_3F$sY{z#OQ3 z3+8^1yMxrs*u;)1?{KEW(V5WOH2x3gm`l8bJPS|>Vs^&BJrt4<It9VY>x(K&2J#wB zjUPYEek}YhtK%nL^GVN<<A*sRzTJTW^FdVB)tB1Zp$y0bpW^MoRW~1ot3?L$yqfkS ziHo@ljoJn|&F5nEbkEJx>8##@eRjW79}RrQ)sh83Bj~M%DUjO(WI%l~2><pqqEW^q z7moh$;lsvL*`2EAk2E&f8+1LDi`z_kNYOOZDS)Vu+X?|}EfnpA{>(0r`xR&9yyxv5 z%CRB)`tb`b3k{#ZHL_-u%S+0(>f&hus@IpovHH%Av^w$EHdnDhG)JL2HuC&<OuQ}l zc$*Tu&L2IVwPm*l+z{5DDEsFUEa59+a^)JE%X&2<etLL4#DgMNm?0drkc&4!f~d7* z>}OiaUrNg_q;Zh_p<_ao;bn6iHslzqI)87MN49;Q+H^29Y6C2@CRR)&#eEA#xi!96 zm%sR?#QRZ6+Ly(w!*Z_w2>x$m*2w^Aq2g7)Xm8XxBeuXdOH4#E*3ofIpLx?6xe<ST z#4%U-i?0yR7z38sK{mv>d(B4Av@k;o?nnS?Oh(1D#*7|@1fK%hX6r7fWU60E<Ny}? zqNa1l|8{nIV*jU<>FyEUT?iGi!z2{SgQz4Dm|b~UXB%!@=h@%IdhvaTax}u^Q(-)B zW}dKa^!(Yn{%p$0V|;5kkI6iL5MS=g@#Kbk8uO9Mvr5x{ou$mKYL+MDT=#ws)2x(6 zOopOosg<EdmSF_{LQBMR>cO!VsW}IOA*wT94G*F9X&kPLg4R~ai@8pJtsb-6IPJl1 zeCwGlyifO!mluaa?2!qCP&?D){5y(?q*eW)%q#^=Sz|^@%Z*OBZGS(~ZjKC_D4+C1 zsFn%ZQQY|~DM5(&vTI`-!w}Qwsjfz)p!jCs^pBL%MqY=XpN#=##KJ%RA~M34TzP`o z(i<-caAbTb4!g}B()^sqcZWV^SGJ;^x2yYgJ=1E}D{^=DpyMG72DlW7arw-%T}%zE z))(*nPN~u%FSu!uJp4`z17$HpR*j9x75!5wV?PMhP3Cm<RDuJ?to%*}MJA?s%~Z*^ zt;qj={x%pCLZAwDsB|q3gtQ-G2t9{g&PuPKOSzwds9$Z=;wu#4ty9U7At#AZwn$_W zO2J)7-ec}2<Vi3YaNqoPgJbK?igGiEq9Z|C=g-z3zcCLCZ0kF@8}={@^QL&Q(LDr! zooix<te9CKo_mu;bZ=dao6y1~$vD?1bB}}?nm)HraN+neBmp!7(q6ilY5HY(`@lW( z3k$7w#mHvA9b?(#dzMQwpV=U(PWPY?1VSyxypIFexia5@pnmkkk~g?!3?X?Nse!t> zI>tf|&(ps1FhW7V`I*E98chOzMJhffL!CYJRpAeOF{bXfRWm)VCF4d~o;vP4Ery!{ zjt0&ziJ)%&E~MAW55dm2I(f%W>op||My+6}XCz4g5i3?Vpa^?Yymucyjj8<8q7k~> zA8=RDE~YX0M^YV&fwZV7)maRqcymN#WL|~!t^5uHI9mJ_wi6EGyZ6VcPX;gN-N--` zk_q~iQi^HyH5LMB`IO1a$60*M+G;gy)4Zp}V|c?$>zi4PfvQ6tSOcAs3mIJf-WmK| zfn2P)W`8t1ZTKjUiyMa)TS)|0L}l@yNNsML2$y$C>A;qbp`qcgZ2@$nsLXC`e1nNX z_*Yn6g@qzCr&WIqBxHybp97)yNcqC3UI{|1o|LDK=i1?v>C`|!eTXlbh1lkmw{eX! zqt`$BUpJWeOw36zd`!RoK~j6&hEqj#Fc*#Xy+Oh)afwy2+E1sKWnXtsxFFiOpB_>< zEU^KT1^BDNz$8vZX`xovd1>jLrtVN!y&D<0z+#EV|CtT)#q~<Eju+GLN$Q<&(7{FG z6|`hf)t8Mx6pnx#t_|ZHhqPqpKadG}8FbRaLv!p*<B*@(^v7{YMj5&mA*6~6DF#)Q z)Z`^5i-Jai&P0Sum|haBM6&{uvytvkaq{chIy$l&Z^q|H4}9E|dkSc5KdM}#;)FmM zSpby8jzO9k;%Tp;%Z3|pHD2?rA0iT$fy~h&<Ktn5+)g5|{j=hJ@w<(7@(_)`iO<`n z(JpmM;6myxx{3P*xgMzskaasBsT~E<ymW>ZUE1{>UREM5$KDE;zPj}<^F-Q`06cxu z0?VI<pHZg+Q~JJ5#s#jO@Eu6VUF@1)GNa;52`XnI2A*Hk91Z8cYkz?g_@jhka?Xg> zqWLF-l>2gXA{m#<tQ0BL??kH~!2;1S>`SbNaXL2gq&MF5d$}EczbPIcw_R@BNY;eM zot~ey-MyE5$Ts+@Mu6hK-Vm;oW7<cA{<2N|o?Fw80R4LCduSl#6_-tR$^F&^u9}3F z+b;MaLhw}C7&9`YUW?EoA*xN+rRVsd#(pAV#6n4?)$sxMd(l(R;*^kpd(04_+jQqQ zKPF5Z`peHIf(_vzi#v;j#uVe6b}x>GM6hO6WC@_*@;N0!7co<R?ELEqFuqH&q8nWs ztI(^QtgTWGk|^ykDh`za3>li)5{VZQ%4mtl?>%Jyn<~-FxM})6&;8tOO7%P?X?K>Z zUkqjsDMwOYRO>QBh|U*r!j1#$m{&69>2pSw&m>*MJQqd}%q^u-G!&R2tqgPyNZ1QG z%->tA&5q9P=AN&qe#x0(==8NmYMF|Q%F1GlTi@$1z9-554Ot=L6UA~PX`%0fYMx4z zR_HwKUZ~~m)a7-~L|xo$<IinaWY0f5bDmWZmS}Kb#?#G2Y4?XuQg%j@9{l8sj_I45 z(q1E+cq$iMJhO50)LuQOqAWw{mxc>}SsTT^QR;eHv^d=Di<6Oq$-jFi=_uUZ^gDS` zNy+^(4S-w(zYousCws&G$2;cvENSXOK-r4GLKXm@tDxZzsYv%i>KI+Kls3N{#CmSu z`ZaN6(HJLP=SjTz6I#r3IwC%3460wCDGsFhGN?&i(~-72Mo%X9$966^FDxWw-`yOa zdG6Iq2{|vWJCF)k#Kf@_XcXk0sH0PL_sKvMN;;(ZaB`XD&}7q`a5C$~uGm|g_*^wW zKnxcM2_p6b6+!_R8vPXf+Q|GW5?iN_EvN83l2j{<E&dqXXhrR!ON$qD@;6*axErrn zlLb;X!++Ho<y=k5yCb0*e35SN_-%(|BD3OI;q|@c>lG^uA0vHBaTGJ4MSw*h5CG&U zbS%}vq^nKE0EAxI*dQxP?=*dZ(&0mq2|N%%9u-|E7M-+ys<5;G*__!TxF{tY$$j^% zDeL;W+QUIL&`Y=C@Exe^)=wjm*B9lS1k8o`#CeZq%lu{JZrTaDm^v~kZgWL`=I?i< z=8K7P{qR5QA%DrWCBFVzhQCO-17U(-a4#L-ZlqSv;Q;BtdZku$r6Nb9r;ZRzR1tF_ zk)>lJAFz#;yD8;A*dqEh!j-PZ8}QxlV%V$HL3WU8ss@t`ICH;x7{Sk^S}Xns`~P|s zpzYq5&!5aM=4DzHUw`X|Y-hcQB`!J(G9{u?>}vR?FHeSM!{vaXQ9<z3j`G88E#W%+ zCT3|`nddIF8h||X#?+9?`_Fw8g|GJ2Xo6OQ-b`B@7AAkLh`BH%$1aRaIfbuBWd6r) zh2xO$^5d?;irnCv6&i8ZInmCR-$?+x+c?kqHnq;f&B7(@!I8;~=4s3eMqlrQmoq8B zu4m<V$Aurrp{~2pPviq6uusDR!ChqR-8l8F$7a61zAonXiJQh9pvW~p9Ww%`SzEg# zL}g4nfC!32#-qJVvG9p6Fn(r)|L3W_My|iKABWWW!Qkecuig)0l|D&02C$WH?Tuk% z8W^6c#!%Hk>fjSv7W10F7OxS3f3xfz^X3FmrxX*7%5qdXYk6ZqR(CKCp8M3WbGe)X zuF0^uzmUijBT^I;LqPrp1%RlW1UTOq0n;j+AB$t2==lxjvtEo1m2SQtF_&X7k$gR% zrWr(0qXKY(MB0j7l-=wCxxbyc3DvbHT=(<}aZUf!oOqUtORXgOoTV$VAI6EXYdB<_ zCXl|5OIKBfroO?J_5lc@l5HgrYU$>N__aA3kMDrp3n((E9ny*tv$0xTrLh`^zdEaN zay(RO7~@QJ{?mg}J5b^M?EUSbx7APXMsVvz&OY`oa`^7iLNcKgbRuN-qL;~YIwey` z)Y+KcFjDmWtN}Bm%Zu?Y9t43vp}1e|-CnVq;_=G{w10`6+G}u-;J&%-zx=>AC;GlD z09G?u;xU>!k4z`Va$Dr`jvv%LI<9;DZgg-9_W7nbXzR?KG6^8)?LRo``R?8P^O|xa zV^0RP?0?|0MMD)M_wzK}c^5KqM+Io`r(Fs`34;;k!F%?4gwEt}BHwDbiH&Q=Om>xv z!W(L}&JWWMIEE9v`yMqyq1dqg6$PrGE%DI*YI3b*afnGloMWPp4cn_;%l3=jdUHkI zxxQ4&vN^}^S#k6i=_l!v5g{a_H$hH<beo9+vwNPjx#hO<V<W5PsnN>NF31;J#C`-S zvS_V9WTyK8voIz;Ftg;|7>IIoEdDc;G(eLb2Efn&>^2gzz8y+>VEK<Ja3?~455C{) z<chYJ_IPl09!NP_-9N-e8^?@ZMaUS<`CV?_`0r|9(dV1#yo%AdA7)TIl>l1ByLR#c za{p1Q0w4+iyGWyM?OIzDjwO6ITHLskTv#A!(~hs>T>Qd}54=eHz?IsrC?|`|LKDlA zwF^+`v}&x;<@H4|&V^sp7}4Q)4J~jm-DEF%C0zfU71<c`IlccIzF>^Px?5TtI1Bdz zpFK53mf8_q;ze$p8ZLdnrfZ+FMZ(*wt#~pYJR@3e%}}j#6@E91M=W7MW<ALHkN}F+ z#Ifacl)B-{q43Y1n2v!cs<%J$;zB|o8HMlU_S?1=?65&3TonzMry|wDYD-&PzN;8& z&?#Nq&_>2hG-S;`><H?#W0J&UXIgc{?sy54L8$Qq17$g<l&*^9g$IW>xtl*W207Qq zXifwt)kY>OFTzqCahO&E8~zKy0$63Wr;m>h)t9@lF9gTQP4s5a1a;YF(;;UV+gmbG zcAE*PQZy7BrBEn*#{UX`u*{%VmnW)}wL+sl6($O_GQo6#&t^?aG<^+(aNdv}2vI92 zzR4`N4Jo7HjA=ePj|)3)Z^_PA+xshZWw*VXxQ06JH0|h{ejaPuK=?BZfW3TZ>2Pe} z`r%wV=Pjrz?cE&odpn@!L>iLdig`a}VVGG-=vjdKnHc**pKGH3wA;wH(*Dz25gLkr zY)`v>wxc_D+`YY7!6W)QO>t2)1u_uzBJIB?5y~KzqNk~56Ga<%v2?5U@HBEm$>|lU z;xP|mAe<TX4@*8*&Z)5&hqFnaqApybZ|yTxOz^VYeeD3vX>1gI=7DxAQQ}4d*cbPV zT$#=?^Ei9VT0X!88ziAA!Uic5!BRJ06Xh{7=0U_740_2g@j6pU4|@J@1ZodDDQ(Y| zs(3D3u~o)N($JgQ?;7F-!icYbC{)Rizsga#|9N~NOg{9oD?1J+`t?yB9R2<Kcl8bf zI#=F>L6(qD=FU|KYVGW_U<MMQiU_O7alUA-u6>Ek6I{-J*BxKc4(HYMhzNA^$54}6 z7s>y}d^6^y6W5MrG2QNNUWcI)K2P%w<YMkeMUu2GU!fuUnU<yr`U`fqAUQ%D_}=Tw zt>eFf1g*7oO)+Pk{(73Na9PmMAkw@1d#nT+s8bRblH_(P;=x;8DA73#DoqY!iK-%6 z3s}#vomYMRdZPe$!r_YTQ%;MFC#l(txbz2kY^3B9|K~QJ=ULzMP4#0Nw$4-4J@bkl z@-bgf91Pk=25x?)+#F)sDG1U|(%#L^$xsl(Qt(;bOh?IpQYo#YTa(q-r>CdH{UPnP zf+~t{9Or2iwOpX=&(kkT1_%ls?7o_7QCK%zz=6l3P*4cSPv*z5^`l#mb+ke{fM4pg z@ZH3%qr&mcyfmxal_+7R=z!Zd$vQUj2f~Ry!qLLwC6d_2v-f4L1Z7>YY>%oxQjY_B z^Ny7|f+Di!J=SWUB~-ZGfGXs+A?Rrk4_D(WkE$e@k=sa7BY(bz)gd8A8nEw0g08Qx z*N*dmHPe>f9|+?SVEcJe%EsP^0ziT&)Nokp%Z)Ph=z2-<Yqpq=3`;MhrEZ#@ZfK2U zX;3&d0kpCvdG@!d6Ce2-Nf<cX!L}QIIv=^bs5O1P3U9tx&d$MKo>l6c`mtCR`qt=O zZ*3T9l@|&IMIy6M?{cW?omStAOpoO$wX`~_tIJ(nT%1b*`d>N+D^iAsH4_Da0mW<7 z>rF8wi__CrUEAy$jkwT<Fe7~a_w~Jl6?y7UK)Y%2f|PdmZh<+^L9gRqrNcQ90|GV9 zPmg05nW{_Bb=Khq-Bta!CInv1_4{Qn`@fVvO}AIF!~OgF<g6%|eb<%klaT-WldDcX zOZig@xqrg4kX;BhN$%4D&xf<w+cQ<x_kI)8N>?N$B{jOnZx8_|vgqY!-$l5LV|(Kn zD4W#G$`h;s34i%j4PjFxJ_J$8VoA}}6}X(i^`3Or0N!Q^6EZX$x2Q0duUL96b+yBy z=Adil74TVXkEsBv_=fpm{Mn<9!4EqoN)j6#lE-A3M`4j0^Rx{*mP#JRi!v%Sz4g;w zP&f>YHih~*CcP}3EW8EW-p9cwK2}-D`V_CApx};kANwxx(0HD!U2u28Z)$2bHj{XG zRUmRP9dUuwHUd)}!bvIakc&Jv(KA<VC`(nMl?lFeHUEIq(cI(8vA66ZO2<mRkT5n7 zo02e(1v<;JS^S#uwy-C;8euc16%$(tE+z+wy>S!%Dw1J-D`C}rim+P3S+LSPF#h~` z@r$v+&6~oDNG;&J86Q)u_&UANoXLh9^%dCvIZZzYfl?z-Kr%$=Onu;6u^@wV>D#P} z<44CwXBH^VLZQO%%;dg;jO{4JMAD`taMZ=YaB%6`x6|P9;T8TSFTL;kC712BbUV&& zDH}BcKWyN?cv<$9=gbiYV8oVIHTbc`j2)UxNJ66++9ibSSYMHC&~;<q#8_vzY=~$% z_RWJ+c)xamGwe1B00o%P0IT3L;>VkT89doiuXZnIK6>6TSg0C)O|xlg@K{);U^D57 zI%gG(j_LczjD8lmM83jS@vQJ|gN%Ci-$gt>-(cEhNm`EGd$g*fkdRQuQBE6jOv$(d zJ4btPL}X-3w+N#z&Z-?C|I6jgyLY9c@2{pb%-<wv>9=&1|4K*#Ha3r*R}kG}qJ0*M zW&)3WBEN~FuIQ30&G?v}=Rd;T>51+iIu?9DyHd`ybL>jHl;0w<moqk<FF@BH^`a<- zkxBeLs7xhe8gg%Lt0d@hDl74(w6NZ22|s3Hc1cb>5fK8w`dCIem?7HSHWSYW6A_p> zp24(-2ArIn6BdSJoN4t3UgW4n-M0XO^5c}gfucnJPs$xLX|_RAR+42Dh95cwUu)dU zNshIYkE{D+x%hrwUu(J954Y|3&(qD<oa@O;BFI18p3F?EJJbq_Yjf)8nR>~(ZG=?a zk!2Zs+w|;$+~zmX1pz>M;mWf(IbZWwfcxgh-f%R{uDc+R3rBa=LE@Gv9h(Zp^%n|= zf972$zBM@VC@DJwsK~1I95rQg+z<dH)1@vSv%$|e_$B8KG~|`nqvMm;l<^sN_eHkA zkd!nV6{i9wYSKM{yuK(?O=wK*;Dxj$yN&hWZT$c6`+F~KoU0d+%;r_pxK40XWNemv zW=Kd#qw7SdGEfvp_HL}0@;OmXJAAICi>?}ZuoOOmM24Zg0P-_4&uW(#WyL(g-oc1y zfr}as%27@yMU0GDRg9g`lt8S#coHdpgesQ3W)RQG=UVUFoe@br@Z2mY;@M{+5QRiQ zb?t!3x3R*UT!`CG?lAJ0*M{f4yXf6gBnR$q^WVM<S(|o}lZ(FM<<HYIOm^d`>7*N9 zdSwd``;eI8gzUqSaD?<x!qYPCZRs1Eey+Lw_obVsv?F;e<UOn}5N8cN{UcO5p<~4j zF^o)y!tjKlt4<s&e-cF%V!hQx3O5XFim@JaF)EqeUm6BB_V(gmALTiwmz0!{%gMQC z&sGkU#t|R7@Vo^a8pb?S3fl_?SbP*ueu|z#sNRxDgCU{JIbo^J!gyTD4u>>mWf$ic zzIsa6GEF~#tI|2X{j>SAY^SKWIdWkvy`hv^LD5qHo}i6yXu0J4sN3L7Hgv*qQ3hU* z1#6I5825XH&QIXzm=6XzIv+Z4^9+R`qqDPOWl6voiK*Wc+6}fNV=HKmrY;l^1d?t^ z^~s{7A=`zC>Ut9dR$QT?1q4wG_uM`oALQS-O23G?w(X?#9HDJ-aIpEye9TQ7<FR9T zn>z7G1^DDBTwS}%kPiKT14Sakfl~n1Q8*dq=1vmh!a+enagYwAq@?r&TAEmn`c>(j zF;&!*%Xt+wa?qW83rztm@lf@0w@;BP!XeJdfI<0dHBA#^RKEt)K8{wd!K@+L{CwfT z@#aU5q9h5nx#kvZ0@?8sxD$vNxU&9^ua5#idBg?{mH1mpuVu4rJ3u*x(nU#m97KyV z@J)g!=0>f*j`Ing$INz~@<RZI6}?HMv=NF{hkgM0oo(2XDO(F1Z#_6BdB^=xqrp_^ zX6LV<gYzR_Ns8@VyW7+{>?-K<J4HTaOc5zpaOwg_gL-v$?2d2LKn+|3YmmZ$hF;yS zmaMF-Mz8BJ4d7A2-80!P<a{<ZQ3|a8SzuieCyfyKnAcn#sv4cQn5^j`H!ZcqvHPZb zl={O%#C|A{1ekkT&%`>El;m`nwk4SV`BHb>F`cEMw`FbDXxua6oHI06{jjDVn=?1q zJ~G07Z-8>(%G!Vs8>_gWx>Gk#OQc<(MOKqPsufiqFZD=m#4D!0YQZUZl&>2Hp1zWq z;AW$|xDP=-gQM4xws$aNr^BY6v;!an;g$%5Qc?OVywv)()mSu=As8uK@)5G!@{A>O zR$x7UIpx4(MFp*1Ty<Ujum*2IhLs!}kXB)Lw>IPb_YTu94mZ4?^RzhrOpgv%=y@$1 zn=a~ZwGejgQ1L)mnE34Uw17(v|9qV1XH6qDkmepHPOxtjd8su`Qva%p(}k+j0{c-I zVk?2!S<?n2t%(l|lgtHsbBA*5awJuAPw$4o-zQsK%#u^8?I_3H60is-u5}TnusJ3p zw0UIoB=={(seCA{%FCGY5}dR6eq5{yloT52Z*vz?lzHL^M;RKvYk&iEzj~L<$EX2@ zzbp7Z1aMwy9Ww1%$9`-zcy%k0Zcf{f33`zD<Nt_PvSgU#uSmx`Hpb#X<`N!^i${sC zH@?dlt4$AOCQ;3?ea{U$e)*b|#bMvoSi-<z?myhLNkMKc)-h2rEHrM85S`?-$3xr0 z0au)~E>W2@VALlj?Y<0`*r=BGbVDg8R-~6svt{bdyEXsan(>HJ=jH$kqL6Y}IWUaa z?iHA#c~?!Q`9RWdcfxRtfj3L#CyRS<7ITS7djnB5mMAlY6;k$0>5kOOlcBAl)UX#1 zS1cQ1Ky=zy1#8Yh$q$;7Q|mi#)*B0Nnmbq9pJ-)>l8O*w-qA}1oL7#5sJ18`(b4sz zENaGPKr<9|4MV~cWKQX)B%eCd1s+A)9v}Yt^zr8TZa_(e@@X#%xujrj^28xG>gP~O z`OKFmACrdK><w{hu}m)%YJeWlc>6P@rv4D%54(T1yT~bEuKrE`S>8>kGVpu3qeJO4 zwK{HJ-G~W|Ei+IF&w0v(e~m`<fz@#N>Z)5!?~8aOp+BB-Zr-%Jk-F%z;g_{I@Nb^2 zcY`BX!CCU%e_ARs(HSP|jyk*etn1P-zDC#O_Q~|`O%l#Yeg?X_R+206YFK_7wH}z1 z!umVx`}gm{Pk55wumE9Ua+9o<H4h!HNP=Ziw;|wRZnIi+jn_}x<Bt?aigw`Nqql>O zntH3_qO7a-^2$)<P4{y+6p6GY$GAWGx#XD=O&;$zk@_+M%j$$;rdfcru&o(6xMW7~ z{P@gDYdk4F3B%FzDfN8cb2t=N6CGQm&ibAeB2XtNh3?XW`e~u#xzl8|f)7<M`Zaz{ zRI6z4bKCZ?F&&D-5pp=ZvH)m9E;<@Z4Lmu^Nn@>u%RSf|_rJWg#a0J5G{s&uXXdGa z66<bT@BFX8s5Jo`{ZfL^RTd)wb(XiS7nrb=){~gPQI=%YE{hv!@f)`B+qZr<-WKf1 zZzlY7wRlS4M>6R>_{zZwY668JhbsBm-o+99bbpqf`%wI0_p9DDU%EYa8>X9?>_VZK z^LC*reJK_Z0kA4tEvS6XTR!b($lB&NB&W%W3FVkacpZvj1wG|$?*?V5$hO96LT&t{ z#Vr`~>B&WXR0%h4T<=P2-ZX#LxHzG0aj+D<w`Cv6#VMpx<y6LJY4Qkv7bls68L16` zaV0Aqu6<F{8P2{nbKvMZH7OQKK|NFa^G(yMt1HC-1`(W`)>hL6Mc;ZrAG%Um{)y91 zR~Rzc>dkOl<nx!e&mtI*D-0pdS?l)J+YBnTeW94pb-at=2b`PXBjy?wM#7OLgR5CC z%)T2HIKHo6V;lB7DWl=EappczSHm7;Ao<J$i#>yQwlG9r5XkV?zI(|mbL!RHX~KOV zvU=GFqDKS){Zl#9m-ijvn5E9u{R00R6a$E|e2KQTOnQWLHOBV?K`WSgaYez+uOybO zHT2Vs4vWf!v=UCu-~nO|gBNqGhtZF$!%1IH$QVEP_w#<KKf5k0C=`GxGgcM~wiUMg zah`t>FATX$Mb$TNcTn{?@b`AkMSX6r)iE`&xVWeofh-z0GK<?X;@6X4EE`Z&D{e0k zKb+dk_9wmvS@FdGEQaWN1JIUMKCHn5`B=%7pKIpmXsBInmEhKH9!-zl_|NL5Nf)f! zWd5$S4KIi<qv0f)nW`qPG5EI%WHXB#_IRjdrC#9l^mJWPGX`54i{w*}J(qrlhf-5} zop=xSxmdeoV{^0L#EvZ;Pt$=WIo8*q{xUAAi<X8#AB5(@EBRrZLg}xt0>LD0n0`vi zDBDPu0<Cl)Mc~bahvV3}A{Ra^T=G7)H^3WoJ`0fS^mi5~r?ix_lI{J!Iji@|*L(NI zGyGe6l!-}t;=R6lUBlnse&f0O0}kHFz1{R)YXlk-BwvAlZCuPrEq??WI0)1JQ>c9) zW#{I}O<&jgxEvh7eRUW{IiBYD<9)MBuYk4clbOd;pPTThVQ4fJHd%aA6sy|nTMMqt zR9RDZzp8=+t<^mZ(_j&aIhW>v?9Yw_O=-K8lfJ+3*k6(TCG1n_IJkC)8jiN6Gn<^} z{V_vEyE_VjAS_}3rX8Dz?JGkj9`gEe??iCW#zVi~@zdk6M+HgOOsB`T5-D0H89@}G zJDUUh1Rx5d2h}|VQjN^A_Am9kBkziPI!uc4lP$1azZu<{f7UV-wfBPzP*6}{i+=su zHbW|r^&nHiXG?4=W!ZVz`{@6A0gO7{$&x#HHRLpqoA9*Z>)qFgW;b&1?mf))9oz7N zPGxASI<lWIq??>(6W_@g6QO0Hl5HgL`u^nekmPqeM(Yd1RouG_#Nsx{6^an4ho?ZQ zK6y=l$zOWWD&M2^#JaElsy!>LTa8QS&!g3Vjh<o;L@ZaxilUO4A)RQxrWnjQP^ot1 zZb#~jq;T&8&`?qn3X5Y=g+dD9R2D3ACI$||II=PQU{Wio1D&4Qjgrgl#!ZjuQHzWg zbWcpiQx}O8u?B7zF+E!9T?Xt050VH*e7kC^FzMj{lBHCEqVs)ad;4FN#HUiNGmT5i zz?*mPXlZfJp>kgP=8i6jLO7PwAv*RW%5o&ZvH+;agy|708|A|Nk5MuQ10}p`5--mj zP4Mqd_iM-JW^XfPeka(6AN;JkU&gnj+0l7rEf4~NlE})6(s;Z`?qHI&rZ#C7V6tW} z(6{G(&6b*)+AP-axi}6gnU02LE?e-6*!>r}uQR9tiPK+y!PvVxid9(JE~({>=96%{ z1DKUMYr<M4O2e09vD%r(<?ruD$2+C(CjPEpOiCLQ`{p74aW0jisme$QWD{I+*(03* zvr~Zc3_u%a;29oz;C5xSmEszEoa%2&6*zjwpCs-f149S^d!d4kH8lD#8^DYenu^Ni zlr^SGd#-!>9g@GB7;%-(9?l%kD6ptM0}RW`%RkZ^;$riWVbYnUrJW3|{<~>qb{c=4 z7oTe{;H(PG)VR0t<E(VOBLA%)B6R<`L0w134Z3ES#l5V#I&|x4Npiqe%8N^BW?*59 z^aT#|9;xLIgn@(j%YPDJd)S5`lqdT^;_g+S!ZAjPx1iKcD|f~NCpWITGm}D5BbOKZ zWvK_R+A&w;3L%t8WF|(Ummdeo5I8eGzr8~SbWiX=a*&nLe>M_ww)I`e8}QL~NZUI= z3IIx3VR?!uj4<MRKwVwk<c|_G5%`d?GC-Gn(Raf4_?V5iFh1*>s$U9fp_|y+fXZI@ zFyjB3*21xQu^hNWUJF`AE2RV8K0f{uIH>OS-(goTU3uFYzQSEeJoYv=5VM~rSZhU( zw>g?P7uy0oE6b&tpwbWs0-=iSdi~AlLq9}IK!Y_wRK@a{p48Rg+rf>WBW4N~rqb`6 zzO_TfUeoQC@i~zNelDr{QUo_g1F&<smBk+dDS-Z)+Y^mj&s{MLGC>RT)Y!&^&Ze%+ zKuKw7TPDP91p`T>TM&25NKJRXG<PrM>Z%OSLnc^2Q$k>+Jp@DRNVugyNS85`+^KY9 zo02<MBfBHwS}_yJ_o?78zv8!>eYoBH|5{rh)6j1;0Q<>DhiV^QjxSePNA{hMl8IpT zQs}fa8eu(4<5v?-d+nFIPktgLD8AVC781UP<WRRq1_Gw^s{6OVYGzC7s7j}@(PR97 zC#fd6LlJwPjD(ML+hJ4bW|~;C*2Ms^kAXvd?EgAGF~aX|?B-?3Qr{bh@f)<(#XWwR z_D8zWae~!#gnzl!SMZ;GlA!%Cx$f@nPUr=f3ne}tUc@(+T~e>@`~$~^2Nrk|#2a@B zc@O|37;c2eh*ccu-1|3mU+7P#$G_iPq-yxjejg?ns{dc7BGg?7ht|!58G{Enn0IQu z;ZDgfcz>9GQ|k0t4irg$BtQl<%YAc){q}?~i2FM@C@)9@f*?2Kg@1!+t2EKmS_t@% z^*^)av$@fsgT0hT)9sdxdPe<kX1OqB<C}^P!$n8-c<8Q1zSxjVp)7lHpv2O<8AU@O zo>x*We*4nmr*Ky$$k+7ol`5GJt#^c5E7QDpbSLdH(29e_Pi|N7<8ul*zxwZES8yQS zjWrKz>i*Yv10lB(o0n-7kg2mbLIgaJSeVCrtgRJtl-$#RB8B_n12bQU6vr*SXZN@Y zbaaGk&`+;5r!!r*m0}YGEBo}QeFn`?0JaY%fGbTX0;mBvlbT79*8Tri3JfWCF=PBY zsafwQgoEmiY3V|1P3U~9KPCfgZEaNwiSmtoR<^LA_vw7}q;dQz8PM!9!8RaD;O6F# zy0pmjEFE|LJB}2B-2rOM0wGAdOG5&U{@0s?obvxSA7iULNsR$fDmtVZr6=}yXmLh! ztY|l9aBy(qUrNsMpt6_`mN~N`ed<+j>*MXcJ6s<VFrzjH+b{ore7$v4)8YF+{N5O_ zksBrLMk65IHM#^vltzY<(yinMqm%{_1te5J>5veC0n$i!E7G8#fJp6k@bmk8zt3~d zbDqC<&hGoV?kitcylqr+3saI7b#g9u;Kio_m&26{F2YJ6Tpp}a<Fc9de;0jOfH}@1 zYl~{8EQt3xvaC(i96GhCxJD|HI27wN{7AF|RW?aN17K)9J-uQWb{bIq6?AZ9f3aC^ z)3n$>uMnOg$(Pt~yXrD|#&iVIO=BKcLo<O?V3-jy8B@C`rYJR12%ZiTqa-B7_TNv{ z03d#t?&Fh+uYdg@c^*S^o~^sPbim=T;=eKaYeGV4tj^{y?xifN>^l{%I^6%$#pcO= z*GZ)>(}{kJz>>DgPTD}t5Bhw-elG%@53i(BH<vaw7g!!Ps(_j&I$SPz@%zu`iY}L# zAYIOh^Wx$<IUk{t)VX(*rvLux7rkoOp_%^B-Q9ik(JMp1ZKj%cGaZzb!B2La@<*o5 zZljp{>Su@GwGT!x5<{fF+guzkfWvB{F1I3vF<~9-FF!^U10zVob+rjT!k64E?fK8Q zq|gLuaH<iIIktQgjLxB2-#sCkJW%>a*<_iOY-u%@V7*V$C4yknR7H25GX2%0Th>JD zvBiCp>=0tzOHiIH$>+-{8(9z!=<J7W?R7SA214OdGMxU0D6Y$S!jL3Kpg8U8XJvRD zNBx%FpX9{#w9OhAP*%Eg!ma%eEcx#1qIx%`mH*57{SVt~rGoUD4P{B75T~IqL`%CK z9Kh{B&xkvr<eBW9RpFbza^5KBRQvVO^&wFZFkY7{i`_oHirNUH8kula=J@<E?bn0& zuZVb&8%$8RI-Q!pI@V`UAu8?qrjJqZ-=)xx6NbeLy9+tvHPTCgOM~Ng?wXx{Tn{KI zY<igreEq63>Y<GmQ`ecfRlq5%Cew^GhJw@yf>3sml7J_Ipk3x?v+~F!VXDK!!*UUz z=ic|+q?M|Ry%zvxAfcN4B(o!XZU51mf#Z1A^tFE8?h#rCU0BtM7f&P<!~z#nfgvNO z?730M2rLGlSe>t#q8%3lM?!ei@}|dt$I^$l&F4f^$bxu##Mvw$x9X%nxzYnTij&hD zz~}Dn(=Y6?!1kS2eSLkxMYC%|<&<PczXRut|IoZjrMs_Vr`rVw52De+(0m@OWYE*n zN*2(8w_03~2I-7nM1J2U0|Ey}LQ1ulG2YK645Q~4Gd+GhJ{?jM5EAm;o$JfUU~2XL zGz0;%_<ov+eIHo?+CF_!5_~;INp=_r1l{LjFJuAkqY+n7NK){91Q{>r&BhIhQ8&nN zHz_ZLIo<ng?8Eyg2oyAjm=-k#FN3d?5!X4w*9KVh0q5LHhcv|p(6GzhLavx%xq0;g z_BRmhQA&ZUI@$;F8H~^e>n?t=ZxM&)B~j|%sgJ47)BM10g8<{P=}`7-DNbYrfh)Yg zBld>S(<87Tc>;FCjiq%-ZgHIo3nC#qW@K=l8xeNn$C@O{z{Ndui7IgV-I{(l>{R!e z^oQiTx7>0;;}R$|G!u(8N2==q^m+WxQX+wq%>2(iZFnVKi1iZ!D9#aRaDf3?o7ZjF znFqL&)6!OC6aTOn4rYqKZZs(}QmLnfc0u`n^<@IfZNy3``2g^8s8JM<BloM9PaSFf zA42d?C3_8$fRo}p&E^sTHvRE_x+pjj@&=vvv5H0F+QYY%&)DQgwIqRQN*`H%z;bOU zcWK8H^Y;eel|Mag-a11P{v;<X>28?PS3frK(=IBG*c1*u#q^X_-KHJ^bu1hT21%`< z;}qW7@q+wjW6@CE*#Dg7`@g5LClTyq&TTXJU;YG!TYW#Rh%-vxnv}b>og3J#vdX^# zV{Sb)1S;#lgBYEuQ&wM2$jJ#lEz?)*roH;+liz{-E@XM*2WkZh@`eoC3J4e%rKJK2 zy0Oa-A<64t6mDba!pq(!K~i1^+LMI6F-8>KS=0(6Fmk3pe{R4?evKq#wXyx}@1oKc zHNx?NCm8GUP^sdJ1HYR)KHWsMi#m-T<h9K61@M}Apz%Xf0&EB2N{7UL$I-{NaMMz% z7x18Y5~+W^fN!8Np56}KQ5{3qcfOWG2!a7}2p<Qp3MJaENwgK<V-rRXa3=9%$WY9Y z*`I^=mfJ!yQ15(G4Y}%iq)76LKhafF8feaQajIkC$sn9q1hYQ4XSmJ&wKo*`?;Nam zY#N_BS_Trpct`g^b(SNr#{ty2&7?Z<ANMWad+dQX+~3~^*)E?N0zACDjWVF&`T6<2 z3-%Z1`%{0FZ+}$J<y<(clG|E*bwH&vqtOKi<I$N=JmT{$I^>NVJ!=U_attZTm=0a- z!RreHk-!BiJn<%UjDX)56(AG{+#>ta=SvcutjY*l32cR7KYjXyr8xWW;~>}#(EV`H z@wDhhKM-(LaaTG^1qM<li2Ucj2_li$Gq?uu*c?vB3;I0FbN%wCoone%C*ewSQEvA7 zsaAR9OtEYiU~`svp&@s$2<GgEEJ)0EZGcb4uwaI7#n3ZD#5-96BzCVr0SHbq0TT{z zH>ly@LT;?4FjP+}HlGK($)QaxM*;e7r>0vll;nJl)=@)Wl8B|iEkymgLA;ta%W}U! z;oZ*jzg+ViKsu=9&%EFxO&uNC-^a?y%3<_?b*3OirWSNO*5s#|nHk$FP<6Z6i!Fd% z?ind{0;oHmvC^0g51`;oVBOCV$(oVO`e6J73y&}dxThl`Su^*lK3G>4=)tI?qkuA^ zS)1LamX=nhOA1+YTl0~L=H&HP#l^)zDRm@#fF@&{)SA?*($Z4Dq8Xn1NjD4t)~uJy z!<%l1`q)cL%bo<#RUvsskYqQ(a-0x}WH=P@e`%xT1*z|l(Q!lEw6Us35?=tXv6Jw{ z!_Cdj?sN?_+j4NlGo|Wm$+-kQpppepe_{{Pc3HnTKmBV2IOxBmT8}(EjJO^LlgONP z<Yok?7nbzgQbz+Ip8IOL?P~GmT6bO~K8513*-+#P8w#eXT3njllRSY(zd?Fce<Hia z`uzn*u-%`*@=ew{t$Q<thFKJ!)KrLmV<Y3^Jl}5-SS~}iazkK`#wiN8Yk_1TQ!6sc z!L;|}|G!U!gLt;kx?E~hDwM!oK4-Qn1lULiU|E9degEtIvB>@^3Ju*rO!JPM5S^KP zt;b)NEW-2zh0!Y4-fgNoK5c2B%>;_yz4P`5=e4xl>%)2N3p}O+=904EthJvtp>VJS z3ac%QlE?Cc)NgC4<FPzY<PfcT0S}gELC=v6tcI)<X;p%H1Y2}h)f3~yK^<Db2~-9C zrof&qd}p*OU~^PUz=L-B^`}&1@X9<F2RMSP1`?A_^7Wf>2Sm9xSETg~do`uOjx1gn z34wxq5m0VyJ`c9hMq^e)69}cLJVI#WHT3{0#R3HQ7gwe9%~uctZ*%G@DQi_WBarT~ zCi^W~^!C#p8o*i(1I9{LL9n-EaKHNkzOSw6%ftB+Sg$jVThSC6IEb<sK;d96C~|~C zosJqK07FK|@9W}#6Lw4ncRW<@fTi6M$%;Zl<;ZdEvt)92jknn&!R9`CqJM4>*UKI4 z?RDjUE23pTEYK8swcY|FnWMPK6yltQUMV}7qtHodZgf>|1OG5=OiA9wPau@$XhtLe z9X|+*8k9K^pesZ2i~!N8Ky)Bnu$B^ZAWw)_V@9NINa8=BrPQ%-FEa4bt7j!g$M#pg z0GR!IyC40xC33{+;_JCGAK3_ike0UykIV+9dY%AvJ(loqsp8xN<UM&zbyo`^ShZWJ ztm*{ZKiUd_E}V@H-;1Z0lo@ixL*rhd{=+`xKlY)grk$BnQh8__K*A2<whATZYqJi! z{{H^$l1EW=fX5OH>kdM#N?@Pz&cc>&gdx5^>-l|Clt6@kG=yr>fSutHjY(o$JQNtQ zo!GU9kl}UUH?y6l?g5qEG$H|>Oo9`k;|2Jt>WRiV-wAg=>nC-u%x)6riI{uSl)OM{ zT3XZ*0|RI&PN@{0mrinj)VXmBa8vf1k6XAYg8<{vNXRe}La)w@pd%Gy4$$<a1^49X z=r*)Mxz*bp;`E_#u#xs<2-V&9Fx#!5udesH6>*3H(6>0YnGg)St{Dg{U&GS@Ny<m& z+*Yz9J4J@?JQ*1o_2iM)*~OU)UgJLwBhG8i_w;n8)wD0|HxvpbM?twS-4HYs%|(a8 zQU&4hiahNC?UAnh*HCEabR;1l?mf{L&-W)_iUuGhCA~d(%*0Z*vm0KsK?7LldL2y9 z&kNh+D~Vv--m7B5ga7<kO>udhv9viAx9=_HxB(PpJzi`PiE-w~{>BW$P)KfYyEu7! zY_b3hxq?Jybt2GY%Ib8ZF@5=(DF1)DH_2UTQ4IlX!OIzu%{?CGHI50cMO^i@wGhT4 zN`Bzmw{H=*-PW;f5g|su{TZ%Yk*#cp-yQ^KN`$=;t!LL!eP#vx<^8o2x+MqnBGm~n zD72gXAC*{og=cPJv>?A>N~xG06i-kXB#(zloq&S64T$*1^5VWMcM^kmKa)A8<0CsC z>lhdqWbug0I!i`|8jEHF7=rwD5Zo>AC#|6=^EYhksZq16L$(qONc<WddV9?xd-mM^ z3JL=P>yG1+y)@w3cuh5`L{4LyC%_36riCjW3QObpr)ZS8vzI|~mX^E1ug}bVALlZt z2Cg=Be*1L(%R<CMd~N|*EN3GJB2@FK2{Osbixs8dS}G>52?@PrXO{Q^EKi$&2~$uW z1=O-VB)OOb^_3GD4~<I&<bpK)Nx(f=9o>ea|A)}1VVX5PiSmwShudom8&p-1yUzR$ z+5B4}Nu0_NPsXC?fznDKm(O!+G0qfn(t;fr9L(^+9PDIJb&ww%u4b%ku>IkP$}l}S z{ML|&iiF~@P~?z^di%ux@2O~vO+Xy|0KBfvT@py-P~=;^;n_yx`qld*(vvOA3yk%x z0aF~d3H<4PN_u*6{H3MdeXh>h6s`8EQ=S5S{i>?I_v+5rXx~FQABFB2?Nom}fLbQ` zXZIV#{>cyaway(`B$nzC9v}QfjEl!QqZkjMF#O;%<7X~p1nhN~SnPS@DrVoNclLv; z@4~mF$)w`q;=GmLd2~QN1NbvI)X4W+o1>hrJSDo$0bqMagQbsAoza9sxv-iXP?%Y? z7#EK|czFXcK@CNcaH77xx_rdvy#G`qitsh{nn1a)<4&ZVPgMUTvF339c2}VJ5~dbI z3HWfR@dD<{KYT-RH*hLsoJAAk<GS)_djp_!$sh^{O;9VK2m2uZo%4s(PE)r**cb-- z{~(7PyzTS-<wdxIZ6G61`u=^YL<>DfNj}3C?KRMFnU!o38#vS!+h>WqkN(L?All0Z zuq(s-4}aOKJG4F9;enKD0dWd&IuH8x*kmt@0y;2_Hu@1ecRUpK=T0W#%0D$Xe}Z+} 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è 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�{mz(P}o3jcmD=(jieek1J z?iP%C@nk=VY`LLksSEd-gFjRbsSS=&e*pRx{UAvNHSWyVy(-36p`@2}s0>b7zK<CV z<u$Q*bvNr#4^5kzKmU}u0z$!x8nW98QpbC@%_@}Kyf;VM48@M1nj7?$GSiIwUzUIY zTUYk|Puy3#oZ5rLm1`cAUtWzPZ&N3Wb&URE|1cQxNcMw!C|Tes%Pw*rH0*(XXcQ*^ zQsc%jMKTX)WF@phg<H0Im9nTp8Ldh-DeH$sm_GA-`{KAUYGqo$W;{F5FNbZBZxRbw z8xl-Xv6=w`QrUs=N}2)00Tg#Z-03wQ>vSs--M=7bM*rf`1|l19%6UV>jT^E4E0H?_ zc}B2$B@}+vIOG_X`#X^Ws+1j*LaW&9X8nR(3%l5oT{%{(C8cqI4m=26&#>?8^xl~c zee~#&oz!$18H+VhgSW`#ilk@PBEaU(@$q!jvTUDJU{j7NaLTa8pVPXknR)=4L(8je zCX;=hAnq!?du}P}D?RUVNmuUjW;zPs;4w^Vz#WSct6dZ0tB}wYA}$AJ-0O@%9<WJ` z#*}Z*%)Om77F(sADuU(1tmMGb9Di;tO%vR$yDZ$4KB?&%Y1u-BIb14pKDUhO6&d*{ zL`Zt59eACay;Misj`y^Td(-YcIx1Jfc3dn5thQ|A2HbJ1d%0lT;eyi+L1M^%?=G}_ zQP3ev3Fw9bz{V_u^=Lw!=^UpYr1|3A@(4*SEw=CD<4yYa6SvvYvj+|PqQ}#?V4%CE z&FYpK8|h-t<Q_seKd}jGxxBxhu0*(uy#F(b*$wi7L`FN?KK6w70Xqm}^&lT+MFAFC zZpY_Y&X45E`Mm#%i4roCaDSNC2qAZN(fd+l^k43*0^8j1s;bo4qp@(|S&Q<5Zi0um ze;K>{$o*h<MKsqLOphNyt_T?GdoWbBw*>p7Y9LfTx!edPHBeo*CEwLb3NtiAu>A_7 zwrf^n)zdpOGox-O&PfY;`#XfThGH!6!OoT>f{{FB9Sw;=iT(KZ&3$`?^A62M6eW_# zn$66|E#{GNFGH9(XnX(5n}=}lVvFvWeCWw7?q$Qm=Puwuw1WT$<j(x!Rqp($u79{H zxw}6bX#TcCfPM}!t}wpjvPw1X-^Lbn`opznld9BVK4f5Xfqj57sLl64$i20Pz3(EO zvk{<OhU`}WNv;B`UcG$DGh+>lx=Wc#b$mMYc5OJ-{E(%Y!CjN8?^{pk(u<N!=igrE z<{{{x-{}>giT7Hw?}eW|w6WmUGKr#{n4TS7lyr-G+@0QCmhskwQ~9CNA9^qyI1mIB z`F?iNVL$V`U|ls0C!2S%W1yb=OE{rnBSK8D`ZOj3kgv)rd_RQ}-NgvoL;g_?@V&L$ zqGG#c3wdJ5C2rGC*tiDz1C0^IKWM&oZY%=Imxx)B0JdeWNR4Z42(L(@fIPdtLz+7G zcpd@z9zpIR-m?LrZv4&AG}4cDh<hk~uy3y9h=!H4Bu$&Ad$hVBNS+H&0!t!;?T?Hl zt2jw$F+9u`L3@IgaS!tU^<r-zi7`v*i!%ecvVQSo%O13CHX5<rgB#)vx(^~$>m~oZ zs6An)B7TYN2#_*Owmryz&+Ii=-N3;sZj7)*R=GEr_;x^V&QtBCGq~{uC=-xB2IOlR z&wR`e-SuOtIT?M1;#EEv1wegnq4`g$5s!~J=RBA*U-Fr$%V0k9c+LW0%dzy2vsK37 z?H{H%VNboJo|2w09u2f>Zl)8GoU&hSs$pzY1m^*Q=+#SOZOG==lC}_3NcSMe;oaRU zH~@FsQS|E`F1SO>!6qgj@?pL9JpQeVUfpSoqfJ}V3#&z6(zqM!-aft4)un#N^S1pz z)R#BXV7!mg=EJe7C)7LaXTG)sFG5E1&Ke_vX52NQsZ{fVF}=i_nopnZasKLFo+Dxs z`pB5-4?z({{p)`m20>FBYisXstol-p4`XzaAxDdif$}n>BSGOj^g^77dIY%8aLD1g zv1{tv_y4qbes>5~zoLeD+DtE0RrPYDc&+a8M;m6^^wT~m$d(lJ^n)fGm4d%$WU+pi zV=fTyd0t4u8^Q@2Rh4>5x<f5C?yMnUrv%0i)nVG*g%1M8HN@F{v#QJgjSw#W{cG^{ z(ZJG@*GxxRRX+UF<Z9VADtyQL45$O329uJJwRw1YDlH2~mGlOy0y~vY7h#m=`u)+g zyp%6ry{gO3&Nf&)zFsk50ekHm*P?R5&pK_t7P)Cat419id}8w<R&|=z9o7+IvIps3 zv)7L~5I!JE26JoXg3pp1f*DW8?-Zw(?302>K}x7@Hm38d-RnQQ?8QR0uRol=gN@zG zL;mEZQ-CI}m;8&O)=|%_pA@r-Of9G88Og)%@l$m3V!NjdqJGmiYwWj&k?@ceCSvXC zf(FiHLf{nZ+|QrS$%K@12!CC5#N@*O5Di4TGrv()+*d#}sJBZ)AON@Fd;bmnM0Y=Z zFs2(V_x9~u2N-zW)S$^iM@#_yr`AT^mnU%3>`~KJg7{WKQM6F8y0u&}ma>u(SNCDk z>`sZ0G);-ao0rVzY_{Hl&Q2uXAp`m5|A7$`6Uff+g0W5K3v%8M^}dXq<T|=#q&QuS zL`4@|DD|LN-MZt=$--wZLFT>OOqqb0$}1De6U&}D_jA_^!fOBVl?6QSYgI9l#o1qM zPKOYDQ|Iw8Kd|(8gTzHa381@yscQ<_UucO&U<>->C=bEe?+dMak4wF_r%Lxk?Z>jy zva@Bqx!2;>Sv^)gWuj2=RW6NWApg}r30{|1Jktcw?$z{O|F8dNo6j#NT$U%kb0inG zY3JEzS$F!`_>+#XyH=mpEI#%&qISCrrc9Zxd5CDjKU5v_d>HJ)*m>Okvv<l5N{0si zEZp!f9`!WkPmm>P>@8p7-OzreqcjeeniB^GbQF<SoWFzPwsg8;pPHALZwF5??Jacq z;%{+06WDDi1^FRD7Yeu(?ud?#{*zgX304If2Jvg(YivAcpr>~xR1l$Z2@`C9B5>Sc zc;IW|epS^ztBE@v#e*ckak2qwhUj3EL@TvPPELwVc4wFif^e6vf<OY*46>8G&k&*f zUp@wq1VCnSP8aIuuCA<B8@0lBUH|}cOzO%C`rDbcJCR)M1d*n>Mm8Smo~|`wTP>7s zRA7J!?JnT=spH7!TFb@yM0UB&*}c}j+A(byzFMiTjQO*V^Ggnz4dAq;=CXUusF2^~ zr^S3u00e<(T@{z4lR1!d137Vl@>!XP;*|%&$ru}j%$nW!z(xWmZ1<^B=xgTlvQob_ zb|VooVbM`CnAXDZo*LL@LeWOp*4q7X8|_Jvs6ftc0I4?lu6z)>L(eUuNXgN9x?iA@ z(_4?4DT~?<Z$o(VH$rarYK8F<n|~4<+)_;W@wh#SEh--pRq-64u+>8OO6dh;CnO$j zaB}E<GIR0!yN@T?8CHB@`Om?jPVjMZb??Lr&%nU;H5nok7ji{pfv~I*fmB$&<V8BX zIG$p)9z~Tb+nvOtIVcWz8&UTTg35iv)J!u9)A0EyS1z3Bw2U4f9ktdh-cYo}vuF_~ z;{kQ_FhTMNLWLV_gxG3oU7N>;$$E0mJjkK1w+n(^i_sND*yH)~mlK-+<TD~b!JHIi zO9D!*+}pj$N~k&LH0l-#<^Sf33+&9;pjJ@P79Hbb{7$5qoV$aVUKf{hIM}yU{{h_{ znop}4A0MCeobit=$eWzGLJ|&?{6gFYpY8K<`J2Cr+rL&>Fw4d@AqY5LkKxWbf5_b@ z0c;zanws9k-4P9Z!;Tte-6x!WCTVQqUBl3vUO^Zlnkc&<68Ih|Vs^FI?kCQFzxDfA zx>4xkhwfA4gBInZi4jE~m!$vCH2EDnG0ACwA#OS|0qdO$_6?c5x5)#V*(8>yhN%TG zj4b4|H*@Jk^<mA!uEt1bfd`=kdAigq$23m4N>jvAqq4<?8xi^0I;47Rt@SNWlWz6& zXlFdB&)ay$@32VCc=83WzE|x8^>mF)Y#(QU|5`;Y5;Cn=R{Y{H?h3%XY6g!5FX*Em znIZ;Oe=tt4K9b0lp9v$Om9`d=B%#Z`sx5Ng#d5*EKQ}QnY-CsN_GZ$LP7_Cz$B`5L z`SOONP2Yel0BB?kW`GHOd5t)K@k;3~!~5W!D5<9-u;XYH8j%0f+XcZN&%G!WnCT3E z)?a5e?N>%aGli;l=^;V~@%-8?kT|a!xX5|+6wzMz`yeyGLub@8DtE|XU5ZCe0=yRZ z{KGM(HRhjczxy)Am*ne{Mn`JQ2lAT8)LK_n;nzPx5x3!qYj>fJZroA1M*GWD;&=`# zTsoqhA9IG2^Ge_)6a*qV2*^swIziVzCnudx81o6(L;!YzHFVi1B}vL=Hf2P}?e}4s zQj*064`8*&@6wYvZlv6s>C5*3OscIpr#2u%sMAbueEL9UY^*0{`TMTBfZz{tE=$8; zQiI=2D1?I^^G)7GLXE4d^dPBYrm=wjO>awLUc?8A%eOURd|x0jsC@cDz_WRx`^h@M zx*hyD+3}2?uaNDE&0hWI9hbX4w`-Co_~GTg$b`^6_$COWseIrPE)#Ypog(hs=Ck+4 ztC-00ehCTS+D!QO3?)aqnp3ZB!LW6fETDl<1o+-ggh>??xjb}8L=9{-o&mfZnI6j; zI~JK-p1xpld~>il9wH&YVyqmu1M#>0A1dT`@P8#?lHJybMGeE$<r%wUmiZ?bUccEv zC0gB!)k_1DJl`foK*W5!YM1t8`fk@ogLYYKZnif0W5TReEb9|xfI38)$s)1&kf`59 zfRL(<(<WLUq7qhkYcShQUW4bI3qIJKtz~{&TN}+-P$!7KjjN{c4dV9p$tl5U=Alhr z+d-$PRQE}~I;B4d)k$ZpQ8|(($dyK;o;;@wMv=LZ3;<Q#S=_i1kD`ptr>cKgc*0ox zMzc$ICt5UjHN07u-o>u<D}qqh3cI>A+Pi=NFa9w4C0Q@hpMwQX>tXJh6MtU^lrI|n ztLy!*uV*v|VrPvkm-;MFUT}^-#y$ItU&tta^m_cvcX<8^N(X#aNS7b|Rp#ldAl{Jj z+X0z0cR3_p$>#NAj9+6~B7VBklqxCO(u7)v;T!V{hfm|-XOeVa_4!us9Sz;g%4VC> zjyvsPj}!nCkzr!NH`!92oA*)57-w9~#83hls!I+h>L-C^08Ax;VzPDCRq3lBjh(yA zW+>sic8`Gh5B2*=VDrE;w@2-@7_s@lU6xoh=^;4_h3@=R5e%abY4>gn3!>P->g>vW zeKRL*!V*8<E7@l0So>D{SzTC{ie0zZ*1t~2&z!VIUVnnzlz@GZbs!f%@t~1&{&~Wh z1w6I$WT_+I0;qUvA!>S<m<R{sTN7Ai81%mdx1(Jur~z?tV1=@J0uf-e6@NI!G$1r~ zJol}Q^|NKf^?P9fcc|jMNOxrgWt5-@a4OB%7~4wh0d#LpUhCEtU|N2)W#^Dn;Csnw z`!AC|1=pXc#W+@vkfmw^4nH2Lrc>Q7ceSf#mmKoxjzD;rk!KMpC<w_G+3Wif0<$=3 zD6X;iqjUN5N!9@qcO|k|AaJK{$(8NI!;EZ1UHY-GRpu!Itb)kYt`hrsz)JwPG?fp< z?Kc()h>qRaz@4^ie$Ug#H9F6K^Su>ED!Ob@@zxtzBVi@sx8L2^M8N=W7Dy8_7(o>W zeoxn_(*nq)##spnB#|JpHYG7IFhMmT)GF2o&=Zlkt-(a`Ld=^+#;x%~D#1|_D%X*( z$I>CE04v**_*q3c6Y}~%!+p<NsUYGHv>K40<o1fh{yywUOu1P|NC0W92@M2|t?*KT zytaBS5df>{XbuTt_PIeepWT<yn}qDVUB;T3$9bK65btj=;}ku!{y&KD%K=qdUD@}m z)LI6)k=$IYO`3zF<*c@i_!E&NB-p)$mM;Lq=gv!4dIYuS5sID_PABW5qqw^){Uo+A zfcyhUK{w^hCNFYK>@eafI1c<HfElg~PDx9%Xz|+mDNhY_+^wU{Z*tc#Bx(y-Q{30u z^m8YHM{X?8IOMpmsf2Jm{eNh=&!{H0#eevdMiOf1pdbMh5D`$3E(Amcm103rse%Or z0a1#yB!nU$#e#(@ARr(D0wOi^BE5G)@4eUkEY3Oi-t&9+fAg%o%4Am7{?2@6mzmi+ zz)yy?X<5r&oOtQ0OxbW!_QlJ>YHGvu9QrqZzG&j<a!>epjJji{g5-Uja3kBPU0aQ+ zi;Lk0PO@{4Sc*O0MW$NOG@}_dwMO3Go;#cN+TD`g4}13SGe<1eQSwmV@0@s;IYC`6 zHp~23VDI?+IS1IRQuV;KtR0<Oz>Mmqg7NWjD?GTX%EVj6r8JI#w%O!IEK!-S%kL<= zu&in#HxD(t9)>;VgXV~t!^6XoAy@;t*Qk3EbkjCh{a!s3AR7{%8A|jbI$Td2{oF4? zSu-?nj?ccNad6s#<K;O^;;w&o$ryEspKvB+>M1=}H{IKRYkl}8?<@Ig{tw9%)S7PG zyoxVDj<O@mWn2>Esk&3MZa({tcPYHep?E0(S;o^@nWJ33_TON=%c27KLBq2F=U`#L z8ST9MRuy??b7zRfQ#0Aa`=O<$LUe_hM6nsukK+B8-W6+#v3aMoAl#_d8Plnjucz?) z+rL?k1in}ZmO{ttI>M6)Nb5*d&wX_}G3zD%n2py#$gmPOX-jNG?#)X76HgRkUqlz1 z583}X=ls_Rn+%@)#<p+JAne`$y6OBj!|pjbL1G;2u~dP_<Wbj+t~(v5S2J3Rikg{> z)7No}D5PfOLi=0pZn?ppDi5Z_a}zOtbfdPb$<eNoF(NC@3AId^LB7t)e6uc=Fp&pb zCAfx4>-pJ-t)}e@zkW%Xo7`1yzb4@cM|H1zZVvehD85{sJeF#cW2tiO-fDp3z8;gU z`&#?$E1~1|!buZM9XlV7L6cr1R`qptM+<Lc20Yn;sFnnzHL|S?Ryp4N^HF2zR+mLS z+L#$P?b|8wFn-|qqT#7ana?E`O3R<k)CGJn_(EsEH)W&{%+V2WRw8D6+0vb9NCRt+ zs-@Z6jfAS>5QzrIcKJu+MSf->FQuM&Y1?*=h_~Y{b@S}<^jX-9R?(}jj$yG(44E%D zymZAp4E<GptzFuqerbQ?P96IEsb?xvB(7O<@tI*AH!EYwoj?64U9qVgRcgFFI!e@a zaND^hrL<x2(YX7i)@w-uZ#bN*w%2B~`lZC`cbQQt=AR%_o{#R?+1VCiVlWBM-gd;4 zml_?>4V}fo#Z~knIy#zxRAG63D`da!Jj38?hKHG3F6>>+0k;jbm>SLrE{+;wzB#&l zc{3~|cG5Vir7qxDqj0ggqzOl9iU>k9>qLs}oN2GU^-{2VRoB#;%hgzopAlI{J*)|~ zNmtaUhmp+hZe~<bhrtobj%-9;`5{F`qw9P4mlcm^1)6+{ooUIX$_Y&N3nShA7ZsxO zcT+HLo_fmGje*&O3$v<bU7|;B(M39{Rd3mJtpmD(SlP;Q)6<GHp-~p~_?@ON=Z`Tl zF&QyGeq*D}(~5-D_z^L_ZHN-ACUgnUq1vnBV|+>nQL6Uw`EaWB4M#^udKvEVna0@y zU2n;K-`i66Pp0!ZkE$P^@#&P{mLuLhCUx_=A+kS!``GWyE0#VLp%a87Q!d5J7X)Li zE(>l!LI!y>@P&4tcc*G##G1j4DeJ|HpG%8!A(Me;HD_Y-6kzbP_(LY=?$i~bONuVx zn~Qg@9~;zvt0=%4mUiV(fRGq`uj)*p1yAvK?t0oy3Qsj6;rEe{mnNd)1FH2A)crss zRqU?9QqM2j!4>%xa76a5k?D@oupzSqz@`3h?=pQ)<Ia-Z_f<SnsSG0!h1RH9Sy__u z%$Jcc+%QrI3M5J={aGbl?hkZa(~gk0Kla(m;E>ODsQV`=S@AdhInO1-&m9l=Lx+<i z8Z43z<L`>W5fVXd;s<^YTN@CvCw#0C@q(WyU;M79bs%dxsR?o3)`(eb#K|9K8PXCm zM?S~QR~Y@!>#w3mJ`NI~ctx4aDK->=2H1Mt7l)=H+i}P3xKmMOn_XoDwh?V)LA;g= zCd6myNzfA)rXS9_`Tmtzv{Y5}rF+4qonVoP!N4j|crn?f%h1~cNPU^!V7I$<p0s<c zGj2S!qXN4%^6`BM=H7AH+b28PXZt>Lz+&9PV`GJu`MTbI{`?suNZ9Fy9)A#tXQMyd ztt7~z_ga|rBy`r#R#sT_tph^QHSbQz78?)C^b1RRKa@5y3w6Vvz0T$4<ug)Y%E7CK zCa=cgNi7;jv>l+?dzqF^jE?gqD_<i{EJ{i+c4TE`wrv`OMVU&g>YPnEp($url=EtD zZ_;JmQ;y#>_^E2GquPgPgQ-5};32nYh)6p6`WWmDthF3*`_^9#Xo1gdI-MD6P&D6` zn{|W5y3Fkbhw(H4{)Lw#ujTe<UWrC+3d^FTUqe>4g4|QvBhJ}wjZx>+=4g-PX|jyP zLj^pkE(>`xX{%aqMIN-w_a1jI|J1HO*_ab+^UH14Twn()^4?+A1+Ez$9A(B*yeX?> zH-B2Lcc$mgmGc4Uukx^th=h|tbhS_784{8%BN-VKBA1^J`^Dt{_`nWbNxW*|BpFqq zA}ty{rWUDZRDvR9Cfv%IQ&(_hvfe-U;e^2h2Xv5s^{7mQ-m6nS8A43l+{jUxsV^9R z0$93=^2<DnH9syX{?>o--Nk#XEi=()C11HOeEvPFf`fDltJ8qV{_+Q~viwJ?n4Oc8 z)AvPflaf-ecKGqf2KwZ<yXKFSB5wUMR|$CwIgGrPdsu3qm-p5WBI`0pc1e8%2d|Dy z;F3PgAN`nZ>a;g{PpOOD_UVJ{`tK5w;<e8uOb=Npi+{BYh~q>OiHDOHD$@M<azf&& zQ%8|Gd|^1-d-9RrKZX8D5W7zxiZ{WJz5Z^!Fm`!;ed>za2Txvm^)iceQRSPx?=F`G z3!9veco~Qc6@eSK#4GQ<aEb_?F=K<iOV{upW-Td#vWslLN7c8O$0gmoWZbl*%8;ls zNF+s@>txI)BK$)<wY0RDEZE2c`OyOtUk3VxpC{P{hPs(-w|uA^iIC=0t+In-R&8<# z5f%rJf%j{2?MEgxsn<Hc{TZ9}m9nw0<yWrh<z(^|+jHDmr35QmZgy)xxx@*pOTi+B z7x>6^qs}?VyDYyNqAPDTeyn?_23<F5@FB3)EzK8SuNY8q_%w%Dma=@#zjARHQ~kL5 z@?ocz#SugcF0n{RE&dhpgUoRj&whRZW>^y{yXa|PMYbJn#pDTh`q{VE*$lFimwb<} z@CU1GPXZDtJ2O81XzvT#8ozK4)@9!&6aMFWf7WDPIGv}SQ}4GFA0-p2Cse`KlDyny zdpv6s_DjWM-0{I^C8znS$juVteh13AocVK(v-iI_N|;{1HY}`r$b%UV$@679;!Y8K zytfHV@q|e$od$Ww`Z_~LVMgJ4b$Nvj)<fDlyQ^W@-#9<>KcWfWpV>N{lbsaEpOR#z zzbK>y|He1Pfc22k+DS{Rv>een<Z;pBhZBrf;|S~G8<DXuLh*{e>d@ru{x?hP?4Viw z0tvO%H%}ZmBsw5?bwj9O2XK>L@HZu7MqCgSc0J>U*)o@CJD8qM+1(PAp5UFaZ}sD! zp-pyz5Gl7I1_d4sEgd}E?r6zjzm>DY$W=mY_6`YsWOHKXNAZ5IGfm!}R@vdWzN4+w zy&yMl@jfIyC?M!r^zY?RQ6^QJ44Jy?mN3qgwAEUorBLv}%_;(Y?N)rcEZ<`@k!*EE zNjzuS@lTf4`{h?1`%{n8*hbT*?pP-9KP<M7XLEyKb!v`W`Mbhj+h^S|4o8lEGrN$@ zv>V9x<lLq0p;3=c>8Dx#OqM-zvTjx{8~ZdBv|oym{~9!Z6Z@uPi-hbW{Q9FYOyP}^ zwT}j&<;G_pc}>n(;1*s^L^^qF=MV19>&ov`i5zAx3;rOdvGDD#`u^h^BL+Fk6IjV{ znO48Es<-S3_)&-Gojzn>;!zwt%pkCZb<ea(G#2^x$J~0aZShjk&iu|P3^}!AAY)|9 zC23&qei_$#a6c-Q$?9sn54So)cEPY!z*lxGRHn|%AYp_%GE2HCD|qzTHDylbSL0;7 z!5R0{;l8da7~~uA+ntkmLWk(9@1DuAL30HL4MAb;R1RB2iqC+`>myHBU=Lj^s}?LJ zc&$E!WK=&f*u$MFpR)O1?yZ^mO#+f|7;|O1iof+)*RPJc2Ujv9r6}|khD)ohx}Hw` zc`w2<BrDaAXvu|{LR*?bWfxWvZLD;#@=B(|vhQfW&9r#&;G?!<aMLLUvfvA4j@fmr z9?R9$W319QHB=24^7HfWaY-0RkCdPVc27y5CHW<ajT$#1eph?scrawq(etLBOy`*# z^*=$tK*HBe4V^<6f36a4QXHRY$shXoCbTvoSQqVt4?h{995t38`jd}G@cIWQ%uU%} z8GqL5XCGTKDcOB}!$~gmgju<swUMOgY6xenW6k`pq?!s5b&q<l1^UR${T4hd<Rf1w zmZ-&YK@XYb^i|%opI?q0;y>pe5tl_ju`_6R#<!mtj>o0t<>h(FF91n})e>f<sMYC9 z&$ckluE~eWgtM>>?wBp5%N~Djn9u1r1ncGB8{XZ%bQQTt-|UKDZ9^)F=te~>PU(7X zE7^%WFaA~Fs3LsyH|*g{0pA>IN$iQf_qH-eBiAnU64F>6G$%ChTs$QtBndCmd^^w# zd+_v9v4mZ9?AOpb0=G$@8jiMyi8%i#Q6xiaQ@j4^0|rxqrK|<U56=_L(HP9JYE@Yq z>9{_oSAW9SVt=akC4SfHmVr@Y8g<_Ti-FXGkk6j2@bPjr=&xgB6$8HpA4h!+zQ1XF z=q8ipUE?WE;}Aie1;KySbDdbI-+!<#kYl~c|I_T-l@%V|BlHvo@#mhd%Qd0`q}I%b zn%gW|n95+k0rqN+<qagKl;u3@^s%=ukK$?XG3oH;fG}qa@qEb`TxEYL*mJn!p6#Aw zrhMsOj&DMyBgSsee1mm8|Cdwx$cI`xpCb*SW-;tgT9H*Nz1*}e3k5S-P4q*ki<#-2 z{{vrcyc&qM51~H5Jhb@wQyK65{OL!ru&=|91)F|cO!Da<hy`DrGfsOl40nB$ks_*L zg4J)Pm+zWt3ptmuRO6w6bli{(Q+e4~l2pRhOb~%EOHMSovnNB{Eo+{yQ%l{#X0M*` zi1IOFaBNeh>jgjbHUj*DgBP5N9-NBZXuIgWdrs{^h|I?9p`&pxCGdDZi1FnW3%Ex8 zc}z$%-tha0Td4-?6;d8cmtxu;F%F&W&6FV(?v$>3&FU`9n?1Umk}J)R?OA#vmM>fT zn5V+eFBiioto^d8oxb2iqM*bjBc}HuZ`<&py2#CZi<ayUK}_lFA|>iRBe<7@R2%i( z(F$oM3UxCcDJyt3bd0K^#ytN?%U%LYezzo@5(SYmoGCRiuiLq6R6=&T!x|*}@(tJx z$8V9`P3X#v>D%*9texx{`ej#c!Z2#WV5X-|l$7>ajC7aZzN{*o+36a)_G++ik3j=Y zY}@MjqJ5gz>T9%@3Q$FC1t0Dizk~Mq?)34<akt&2s^VWSW;zgg_5x_U>zS(@%W~%} z{OmVo4-GSjAND1PArTJv$8RtV`NEB#2;Y8bM=G90%<W3f(z$g_4Sr|Fj8+)=cA3a7 zm?zRIq~MPVuUVWY7@oe~#E#ZvkGqRJ8h_5<^Qz%Z;e%u1a%6**IKz3;t6CJ^lYc$J zn0D><T`5*n4BAf~??cL6{KzMD>=_*Ie~en7$O<jx-nh#a!FQ~J#>`7W;xMO({8*uB zC-of3XeLQjtcJCok%lKOT3t2gv9C<t{tV$G&fVNq6r82$R7c^88MfG2o9bJuKeAm~ zJd}YHu8WW-t?BD@<+=ujD3SBBtBIELXp#n$Yp~}oA$Kgw{ZRg1<H;zxM)#bQ>VP4c zchpzxqQ-lB3!Y%)Mxu`X`KHFu*Htd6M%uW|6BnZSesi&)IvmIB8zuAa;&RuXajMPw zyos#F;?v3UQ$E5$1G;X*?9t_+)L-en&kBy-J?9u8H4h1<dt*rA9|EBeUO^5I-ix!) zK|_d97DmM%JQK*b(oj)gGE+!CTl+dfOzp2*^6Q%Z0khXXe^D`p*&>FlG7U5}!-Lp0 zYl#9U?2e`tN^zE*V7F(5t{Snep1Z5?(!uDgV05)O+(+hg^dC=}O32S+^Z_CP#Qgrd znz|viu}8l%e-k(VyhA!%IWM#KVu@Mm`pdNT>8CLt6n6@J{_gFm=YCKTN=TqRo;VYb zkb&mXelRkWDHkG{YI#&+WAcXXxixr)?3<(y$L&R59AjkmI5gm~W23(B#wGvFp47x; zc@wSfz~5OJ(&#pRrkjvj!{Zkeud*f#`-n646D9%l6{7$?^aU0sp~LW*b%95XMa9wl zd3vQzWm(}bzOhV8Jud5%_Ge|aXXUy0c{M2MqRx4Ppk?Kv5h&Mx<~D5lU29f)M7&&W zgvhWEwRhp}$xxAF`FSV)SNC(8K2G$N*MIDMA%OAYxCiYfoM@`m@X}8{{G6os!ltT< zC;gx2MUtxSr^-+plc?hTwIATHh<h;ZPqgwR?`ip?>b)K~aV9(En?54PM^#G~hO2{> zN{hPI?p7zNtbLP6uf87nl8->NeERfhw6vKzoDsdZ)AIF-s#iP_cTPlhwX!U+yOoBS zRdi=nl5l>C5F|)gle8G)cvxAvNoMg{3pm>3Y5dvWZk^`heXk=n8Pd?PVysO)f)y7W zkJsx(-|`jI{&S*GNb#`_yFDxJjuux5(~0j#&ff)2j8cnL*N+T*P#gAHzA(X5;qUj& zO)l`OqJ|!FF^_|*|INX{Y5QSxw^!o`E3RHx=c-bH>6@I=mI#^k?uyoK--o&nYvjpT zYKqgsKw%?!3^2&o3m*5Z$~=kL@;Y<vmt|`LJ@t+txW*`Jc{4bcV@+Hbt$rins+O;J zQHn-{BI{9$b2yusf|Uj(+pWn<s@u`{yCO;%kx@MwP`~}Ova90^Y`vlRXWx(>M;lsL z%e(ep=W+mtP!IjX&C3D96U@lbFvoW_jH)M#ht4Y0?@^B<33Apd&!MHa`0+KDk#2<i zV6lsptdmT<mte@e0k`Biu)D%yF1N=ld+J)#+=A%X0%ad3M^<LMrLTXyN=0QGKi@qT z2d{c|s?)^NeLKst^>pM_WC&8Kr<493tUH8hb9}b@rz+dy!PN9r`p*d8t~_^91ABdb z1||lxW}LHw);n{}fNLlJX|c@-_n&PEc?m&Cv8#(`s6nSc4JD4r6^JDM7U<G~aK9)> zeywCx^#0TN&u4j4_bsilj{77xwWfvls=Grh!I3KNd4UG|I&%R*yF<>JzgO3WE<J0M z6yQ<}3&<P){Ny?T87QhTb5jR$7s&d-@XljUbqIcm)|)>4p7-(KcY5(hwww_UrOKkH z`>}ueav*zDU({gy&`Gk8G;|Grt`l~jaNl`ADnJq5q}Cq1_ms##cDhU#kpN40_IZcI zkA&_xA1%|ch&H|Ecxb1(Pq|?{8kt>0C^G#S|7>r2P1SwKo4Z5JT#TcSP!)9#w=5dq z#Vu(lrs}cl?2a$%x3qC;luXQ)Aoe=++Wb1E6Cr;pTqNx6D~Ju(mJ9nGV!jzX)tWfS z?q@3c;<x*RWCr)p6Vn?dcO1W_!QM;-UNCRQV_$f@3YCPj34LgdPiJN<WGsyFxWfU9 z@e=33K$#8%&0@6g?xzr1vAq>@zChGg$M{2(M7W8Y05ZLIaIs2tf9X;B>}|%AU*vIM z?_yTOU_*M&$^xRd*m|(YUE49|7|)F3tS`%R)4^wdPTEV?hkLztMABu9$RL{}VfSb0 z@@Ta`7v}R9iqL&TTeEA`Tr3C)J^BEL1%4$4CbBt={vE-y(5p8%c=Qsojn}d|AO=Ir z;ON+Ss#&)3cR`Z{b{W%KX|}}ZgGsV`)ImO?j=ak>-LU8mHo&2!``k~5ZvHc(_U~1i ziy>y3Tk-7s+r}=d3!Y$yE^%QSTh|pssjRGYj8^q5TJ6d({|;k(StZ+lE}yTroN8n6 z^y$;p7oA3zj8$Uigy0q$3rugyzu})k7H|>L;l;Ck3m5i@M+B-Q-#h55vmH`K{U$wi zHV&X%KEus-)YNa_)xo=%VsJho+A;0gGBZWZKE0w<R>mKetR4=ki)a|((RQTX5Ca3& zytRdW>nSi!T0HruCcUCoNUfZuQ$M`{kbdr)z(S23x6`7xb*lw#qjNdGHeH@vL|nZY zN+h~E9=F>>!JCSMKg!t}Gk5vN-<Xlpq3W^jnMNLc3h}a(o~qP7cnhZ(n?D#NdraBD zbJFFoL?^$zr?-u~v%ihf3lgV(n;m;WD683_Q+RDJ52afirkdxCkLRa&RKV;?N*GVD z*rRb!zjSsNDqeT+#c7GP@7_mM=hkm)H&`4`PvE(F`^JqMLjh7nn>>aaMZRZ+>S`YC zDfVHv&d2<EF;e;3f|hts_qNmE`Iy1$<2&LvUl9pnjC8L>z0{u1s~q|bnFzkLHSz92 zAEw!CZEbzq7;s(S?nu3}a%a>jm6HCe=wozyc8;1c?X>Gk6K@Xs8Db*E>i5qh%RQGO zNVuma)YUK{=xFSvyQiJ?{Mox0)0c6-ND!X0<!RG^MHKe{nz+i|<*zl;H5W2kOgFJT zf~eDwBDr90pP1bMW1k*Hxg;kgB{8S28i+=(-SA9T9k%lLOp1PX`H;G*e%LhvRmSzw zwKp$c=wS#n55xQS?^o*iK__r~rc4)=rlyGx%Z7Iriou}6vuA0CXCnzOjXPT^nN1|T zMM`*cc4m(`rp1P(ybSf?7osz)^l1`CTrYb!CHI5_O>lEUq}HX!89v;!q{>il>Nu$K zG_XRSG)1z{J<HKBrb~=JmZAUlG-*{d;{kgW>O{*#^ib{l6TSPp6RH5-vCEA3q|Vjx z>E&KQMvnmhR%b`Yt%ZTY{L3B*rTbn)SI4a%%=(!~*mZWw+o-zv`KO8_dDBP@sk4pd zxJ($orKRPNJXh{Ykkb67oB{UF+Q(Bw_VA&}abyI}M&VkyBbV|0#LFkltdm}k?AzfG zp?2l1gAK$1vkTB<h&0<3&9m%C4<SfXxA?HN`~8L1AXV0m&4(ot3)6j99amOgS?_Pk zgwb8nDsfXw|FPMA+hp%7-$=nVBcpyqiSZ>T1E*-62rSR$RM{QRuh&<8I#R^p)Vt0r zJ(}n7Cr+F|YY>IcB9%$V2x7`+c4?29NDxZp*UPnOU11Y)VnIoWV?yfZKTOtMTSMlz z#k;&~6%9ORh8k>3%ZBa*vm;;Xa>8QH#|o5g2*U_)xALCEeiip%LwVY#@b{G+IyDcU zP<x`^e=0R%4#+{-#<=w6*fgHonf>WWmtWlSO5H;-Q_hntof}a8BR@V~Lu)&nWUgk& z3UNW*H#i-}>s}caINLMlLK!;if~HTEBC)h-gN*wX${*SH>2rCV@Va`zag{mDw+xKS z9M3;AbsBo$n3m~dlxAZZDUH6e`MPhF?E|5Uuc<^ZMhJc=K3*R7@zU2U56!pBnvFZ} zrRYz&V+(|h*<qnvnnjSNTrtB%msNh1-*QnHbLAVYZ@X%1?#$lByZ0<5Rw=w}y&_Qi zp|kzxqsF4GK8MD=r(l1tDv~-cfN6G}mJ#&K`u&}wv*xX6|I3=F(<w5=1j1d;-Rni- zZAwVSQW7DxypYi^APAM-YAV<Ny!Gy52IY5AQANu5L-Sr2Z^`}2T%lq3C?87Qn<VA$ z8UK;&Jew)PCya|?CIuL>iO2tZWN#hQ`R7rDWzVNp#%g2N=8%L!Td{{knb1o}K3xcB z*5cKF?#_^~uM%}nf~%^F9ba$><B4im{-9fXzxDJR1IPP%)d|ya=G9I-mE9~;`-4SW z<Kev-B-2|zcYM7j>m!B2R3o=WbOv_crAPA;xGKNumz3Vs*Qdi!L-l&%wceiAI)V@J zgRGt?rP+^ER`hx7%sHuDq^Tt_>7080lu-k-#NFBEAXx&#p+v7F|2|uq>BIFj>Z2dD z?aRdC2k$$t9mKOG@h%}2*8K#MiMMq5dK-C5F7Z_^#xGTe2GOdc)}C4DKHAvymB*R} zq3=f%`S(-nWbixo*31SwZwXNR>+k#?#odS>QQSnCXo^~N=giDZuf5}u5#6c%X8g9t z>r3Q;TbLbv@{?;b$Ad5bWQMmSn;LyhPT0p0la1hR7z?w~3uHxRu{CZhDZdZ0xrZBw z$4Y_+?8=x}s2SCp`-OZ;$2k{o=-nMGKg*!$LzA(fubmFRb1WB~eR7WQocerMsFdhO z*4rPc!q8d#c=R?gnJet=bK_zK?eYuMXK-S}q}HM0+xaUAu{&+`qaPoKVJ&nqo^%GA z44JLnj1m14M=KoQgqgjM#bzH&_UH2#R90H9NENzmEst4UpAqKD`vHwS(OCFq)Mku> zjPQoyF<+Wy52A1#M6szz&e_M|e-lv*T!B?bU$Gqh4Hb&gFiq{D;o;%0%}G0IZEkFD zRg64UIu>5jIBv?y{(Oc*U*LR^ilciad9(fJG?x&);^GtYdVYEOv7asH&T5@x%@i`M zB)T>F4*QWz<|X{BSRFq51rV#J8JMArNo>iAfRM)T>G;<J)m_z?up<IxP76~@8Muxs zqtzaYI2FPD)N+HcL!)flk_L>x*4EaRX?4p48V0?e&OE9%A53c7P9>~Hz0|4}P;Wf> z{{8#0>4HIa%B<GgTPW8<F;;VEl3v$nBlVN<A%1K~vS~3Nvo7@;L9S~c(qW>ZK7S(0 zRi)6nJCh}@<{PtZj!pdxx#%TRi0U_fHecE^8{xPSuhVuo@y~Y++@GMIz|ETA0X`>p z2VV1^)%#Am5u^RU@}k2Qf|VPlElI*<rxoH^PK}m%-uB<&k1WEqA!06+Yx40)R$OY9 zBBu--LxetpeQRY_IV`dJ%Cz@UNmEb&<TvEFZi9Gks&B~RzImIt8GS-bEZ6S^o__il zYuOapsM`3cu)I;<TN5KAqmvO^H%IOe?B&Lakmd%Thf2B%sdMa<nKv=wAHDer&N2Mh zNxdpKG9aa}KY;6Gt#2T;>VuSthg8TLA>?z2X-NleUw-cKIFcaxWN!B1i|=!(T&izW zV;*VG8TBo(vSMwF&MjI@u*JkhD)7tU)T>^bxZe+Eu0b|j#bZ&iqIOk{6%Q~&;?GBU zM2{%0y=uNDfqnQ)t2k=@n|y$7K){gSpf;p|^8TgF{cd(Ez*hg)qsAytS|GU4HK!W< zTj12kEn`vqOWmeeBh|_qEY@r{sVk;&iOS;j#uza;)p*nOJHNQ&wJRSakFl3}tO?Vy zS>xO^4H@|!Jy$dMcDU;B4ZN_ODuxssqiY!_aknrHkCVYcu|N9rofb|=74I$&>O{!f zlW?kzd!eRV0V;}|%>i_mVN6@UN+s14JR)0!IiKT@957l;@F~I#_`W7_`xra?xs2Vx zI@8W$weL6XlNby-%Mfl-?^E&878vN;hq=DrD+1{Q8{*1?Ms2Jhgu%|>V#Tsk7n(O- z!5`v55_DV`%amT7d01CX&oM)yETZ!!4In<E4jWg&)_C{=`OoN1RqQs6uy}2%gavke zqBrxwpF!fLiEr`FX~hxr2Wx{zyE<NMbK6TZKK>@ChMn+;4wd$(eViVW;Q3Kr);kON zurVsq+gk|MvL3fAKAEEP^8Bh-JM4Y}dco;xl(GWTc&P22e8)NW^yBHy=^Jeh2TNZ- zjGKHuii3lLFK50xneK<J(k>lqUqH$?r3pN_j=}7VFE20C9~)bs{5YK@D+V`xZ1?PX z8jgqgGAg!?5LZe)ou!fNDC6fLO(QY&T%kY~N6hUc(%G`8Ri^AibOqdJy7H%glL-(Z zrZ7Ey(H+0{0Z;qIt(h6wwnasqxkI5RMt%IOneX9zc-H%+$yvsowxNvF>-THF$Le?y zg`kM_3qD;((i`JQCw{t}#82vKs2X&pdrb-}!434(V-%z(yaaY>zFd-q&WDE;yb4pI zPGIDj;CSmRf_wY2b!%y=ZkvlW2?+@)lufLq;`i^umMm)scWZC%V)|Xhi`RW#R{dit zIA>jNHmvo=_3JG}`ST?{hfm8<bu?7p>BPB5%5%@bzPv?o*UA~X&SeW6QT5opUT~Nr zU_#F{W*K=Dxt(67y1BozQ0#wZe?!VB?<VZzN4w2>yMPt6#jn2CbYFBH?YS?auQS|3 zopnAv`l8CnpI!k5_lN9CZ}U7jJl+^BfDUsJajZQxE(}W)-Y&`0c?LHiDA|v)dV5Hc z*QxzYLb<T=pq3*%jLy@)AK)OEF<s%_Mn<nEQ|cnw$A?bHG)`Ky?Bo*)inBRQ07+1? z;1zEkyv2}wQ-6~c?hh>r+nto`p)yIc!?}J{OtgnK33t7YH2t#vW*w?yG|9JWPtK=l zSn`S=zM*33&TObp(-drib!@<rmI{k(dUN<OA4oLjxPFy!6TR=>tvXd(1czrg$W|eW zhub=`p4PlMmT@EDYE3z_LRg5%Uh22*yt~iSpqpr6{0V9H9)w(3b<=lw`cIZdCvIw+ zbHb&cxYCWg$dM|5<ou(UmQMb_eE035Jc{bP&1ebBX(k)<wS2UBF((WcXu>%$YF8f~ z77=lEA1Tqwk$&i%Mjv&7z|A%Iv>JVM_^~NWnRP(<Nk{4oP2yzZ^m@`ZnH&E7`*&`$ zFSfno_2GjRdyg$GE!iEnSa}|e7M>C7yw<Z;cIuAQxWQZyzmn#IYmsZ{ZX8Q3>9ED% z<MMt%ZBj)5_am~+5rNb`h+p0y{;~bEhU!jr8nj)=Q-zc(b8ewew{Tc<n@+<^-^38s z<9Rx^)@=rh_KY-_1d8m2)KAJku^3blH#oX=u0(xs&8xM8ta4i%>#3_pA0%@DLRLAg z_AqERCytJeT0jaHk>S?F#GvyxV?H3!CA_)xL)DCSNG>8zuGx6qr<8Q_KO3t-mv7+k zn5?X<2z1M!7yrTz?wJz(3HSD_GEpv7ObxNKS77!;YnniVZ{82X-`CxDH<z|cmQyB3 zOt1?Oa((0Qvl+p|xX{m^Ka<Q!7I&K};erIJ;C;w_u0;WXhmR9^4BkdZ7a#hJIumm2 zaobNHWuBWCdEt>Ek9{MfO8W`h`F5(`7FJI^6sm%^h??StFPZ!(y`@%`W|UuTWBZHo zC?~THMhuRZFP<S5k`;!WG1!NMbFUb%Es`$OI@l&Pyhqp|oXk^QUF}!FTGQ5^a$5>^ z&F-AC)Emg`7UX#6tji`YN#1F`k9T(UmpU2Xa2~7@-Px?J0;zk|rs+*`JesR6<TD;U zj3K-xY|AM=yn|sS1Nx0#Xt+OwiLzCQh@ud@B~jwfr${d)Vx&yVrm`ZqC&F*PIz!Al zlCE5amkT-PzP-w8S6l$6lsv<5wp>#q?*`GMC6J&0)YdkPNVuvR&d(#3rI0OBUV`Dq zs~BfhWwzoNLx#e7_BZC#cB5<8t|7_?Ap<eNVj};r@Dpb}=Iv0@{n^3`Rq(0YNdt&N zNV*Y>DmZz+XxnO1)kUoQd!p3IlP49Gl$5x|eHII4T&K!ku}_TT;<;ZOCsS`j8@3Ad zUCrEO^n<4~X9bj>jaDC*A2^<tmNp+_q>?NWFVGaVQAa!6z$aK9Y+~Z>?v7~Nu6`4J ze<K{GcyZVt;t>|;xhGfS2;qzs8=w(E<x5e8*4<dfN31Iy(akEt^AIaiEYUYeb21kS z@)sG}v=C2am8`F;i$KrUXec-G*%(c`M-yV$s`u%yE~-DB+f>{2Pai41YVCgCHqOV6 z&*g%tA$s?v+-HT@xy>KsCL7rDk86s1D!i^RBTcHVAJM0%>`?Lj3jgwhbtU5NoFWiC z9ORTgU#Mda`Gkd^CQyXEmbA3A*uR*aVnCJ(l_yehte-@6a^hZ_CpFOFe`E%5OBqvx ziXgIUB5N_(S%G&H%SBoEqYxXt;srgfI;E+7?b@|go<mZ}DaQC13?xP6jSE&66bNBd z$8!c)wmrtcOeF8?Y;$SgVr<VnW}m>}K0sDsSb4?jQYp0Yp+u7WN3Se5JLXD3fxUO^ zaYODJiqStRx1Mtb&PSl%sA8v99SGZB)5~we&SpPUU+?N(;a6E^yQhlpJmXo<&cB4X z7%30`c4K0<>@d+>(21b)F=Nq;uc^w;`OwwZ0RdO&$N`HNF`G|d4iKYHA5!z$2J1B_ zzU>MUR;t0F!44xj(^+6M&4NwEgYG1#Q|*LWZiGhp(+~R?YS}%sM%7IdCufM0KWLa_ zOv~2l2^8ZKYR8Y*pRVfbtBAT%(=PFdu5J<?bISOupiNlHQ=V!oVpWkM)gN=~#c>SJ z!68A&-z;Z@v2joWO~pNq8&EZ^<;C_GKJLr~<Tf0~#}YoIG+`0d#tEihbhI@!@hRTj zc#Md7qAbkE|8$AFR_UqpY(0cx1Cy+Z%G1@3Zo-VSGWR<NFmLnT6V<S|{bLboAJi5K zxTZh7kpKCkll5FS=OR67S3Z*^E3#1EZ(vvZMR~BRl)MNNnwby3Qh1r#$SB6ijnhLC zA#ZwTFKBf%F5N-<*jJbxf`ArNryedSI44{RDfJuUca5o;!KU9PM8jm|(Mx*TSJmaQ zjcjJW1Qn#Dr1<+j%FKGSrc+y`IIEaW;p<{Ur4A|GU-ski65y2;!aA8OglI{>3(*qw zn4>vAhnind=WH%%Yilc&zR*nZ9{PG0zjZg_Oedi|4Q6R^rZ`j*2c4{bG?^kB=9kWR z!|zB4f63SI`3fG|n?2|SKTUT~%ZMIsEEt1<e$cM5)Z_2~F8w3?vmZmi?_tbGm`tra zPVCNunYic%g%B+Aw=+iIBFPKKRL;v(ia)gFhw&>t2iGL|LBj(Y>Se-*qE8%Z8H^ud zr5h&gBvnPGl#=j6`5Jx1VAq#Rl6NRG)U*hka`$EYkmB{X@r;oerx<tsrnm(n%?ORt z5yc$(ZK-^<JTQp%>Vbftwd*vd(xtdaK~U||?q*;iElS3$(<E_rU1{hKQs*!S3@1NW zd+lVq0=y|$_d11It->U@(`=~0gOelqq3BzK9lM@6%Z$w|unD1CxK+>TV2m!QzZ@VG zDRDN3n<bY;;8asLSRF3RZPpX6FA1s<SfTUqx3w}j<a2dM-0l@YBmPOhuTiw=3iIlK z!DWGyu>x1pGh=^{$dmQy_;OthZu|SxFP7K+1{no81tgIiFlj@-Z@WhXAz_73oW&Jb ziUJl%y!{;(j6$l#s;@Te_>uf)A81Z1dDuDTX?<iXewnnYuwtnGG?!lK$U)a=SCl@L z?o9`DwEL~SOh{mb+?%fEl1f%RzX2EX(>%CB-ekpL^zH8q<S-@_3T5%bL~AV^_H|g; zhbRPHWK>)m#^W$vYG01#;&ns>&(1M+bFr6sWjRo*=$lzEhkB17g=6IqZ@YFi<jr?q zgeVF)?!2x(?-P13Rp7?KFe8z6)7ynezyzU(V|v2iXLFq2(2E8^C+&_b_q>V66`nNR zxI1M)SUnA`_N#=b^1ibo*$HH9-3zTcwW9I#2R#~%<bdJ$22bH%s)<t;Q$N7lvyl?d zS+lC&HpS?_zU?<4uE|mumEkj4A3~y8i)D%PV1}P28OpK`-%fUWDE2M4_~7F9RJ-+F z36Ip&fdY;+!?dKG+0R!YipJ^1EL8EEHZIZ~tc8rv-GAvCN+;RpycHL4+^MgQYuI=| z_?A9+Ai3DfK%a(!3)=lSd}W``v`yp)gZZZ2Z#aFkD=AGom?Lw8(b@f1aN;@Xh&Fh@ zE2gR-e&HK6{`CvI7UJ!V2N!WPEY)A&5K{9sjzWM-bRH|EV((<1siqgxP?eFt`{|0{ zcFC9T3+puo?9UJjPBO41xf5rLO3V_UZ3-OpJXHhrnaU_o#85eP-Tk!TbfwpYLs~zc z%wEsFaY#hMJ=92Wdr0ltrR`NNoF_NV<H~~v4-kgSIV?YpzQ3nNEj}oL=TORJ0e)mD zUJ9pM3b%_peCZPMW`q#kMRXf!;Fg~UzM3&gM>E>uj%EzYZI<1mS*0qTXZVD&@o6_V z>Cj(l%@9Zqm?@%3|9zP+#Lr6Yv*W{%kkw3;@H^huj{EcQs7P?e3aHd67YYiyQ)+&i zAFf-G^};>Ym+;WV-LU-6NaUs~oj0^4KqP%}&cn;$;{0HZ_#1u$XACdCwYs=Xw0AW! zGGYkv40u+ebf`MnX^uz~f@X<%$*qrY`1{ZyWDH_>*z5+LjzLCM1fQ)gug%MT8bRN@ zV=eC@p?Pt;y6JqfYkE^Byrk`x_v$(F)njy+144L#%V!<zFq2hCgP0KlNBJb2Qlh~q zW}&(%zj%R}cj_%(AaFHH_`80_hC9qi-{-~wn?yHkJG04oJRed`hL61>F)^`<^%Oz2 z<J%ho9>Wp4v1Yeu9EBa)2t`DVkB{HNtYp)ai@khaZ?Lu9K#`~iV=wqZ_%|*V0l1*_ zc|H`2cf1yk;U1#dfF`VI6^=WJW$Sri7=zneR85c?2w^R{h;#h)>z9)$UzWbUes(FJ zt>`o_`z6gHVxqXPv|tQ|NZoy!+#cseke9$+{Ng8XhrS<k2ZxfiMRHC_kqLs^&F<;V zMJI*b#2NU$JjD?sPo6v(A3jJQ;6_<&my9OHrJX{+E<k~wbiXT3qu{Lal76MEY7(r- z+)Ho;4dNAPYi5%As&S0<kTCDijFMYlK4!?P>j~msG_EMK&~`}fn!W<dLA^2{ckN`R z06gM6)Ig9iC_Sa8Fv<s~{GNkFULk77-)HRw-#-S;t|d_4J(mi4k@v*PN^$9Xk6A<_ zLTOi0`8LJ`{U+}O27>!TdSwJPQ#%Yr-3QOcN2<=s%Hm1lyNIaKfR-p;7@7u*Q!Nwu z{5A!qR<gk@_)`46h1_Zjwp+Llp)uIs)~1oO-uvbArRpe;u-~6MdJm?PlaR1eq400b z$=~VW%tQi@AK5P{DGBrVP{>Lw&!(hbQ!aAo^qcFHlEtDhQ4L+`@^-I&H>uRQ<}G)n zqpM2v3=EdHbyXicb#gYn^_vsPfhN3$p<n{)M9efs{tUgBgc?UfM4V}k{B==ABDK_h zzfPZZOmQmk^DzEMWqBx>x8&`fn~@`YnLF#r0*t)i{e}Nc-2!~#>)Wm^yM*(aQ6YOD ziR|0oBvG(pb%H&#OK+^7ONM-*`k!`ojHPyNgfRLV^Q%YY(X5NMIOb7w0XNs>K7=k3 z{+@ujK5<m9&$65x)b`CrapSy0;CZcKb+DNGgIhClkVLDoXBK?XkmGB2L~Ga~M`fPA znW6d{kxX1TsKo}$ZoW^#OB-TB_+WeLW+l=Qen>-B8YATz)PO6q>)=nWIFBt6`s6&^ zhv>IEvGTxU*cf*TJ{%v6;V7^1(~+|5E(u{)sGj;F|FqvOpcld7LZMlH(A6}~m~-Dc zb@L8Ayo^E=f_$*j?~T-`A{dI>YMcNQstV8HIC-9^d0vf&QkrxP<6%ZfHzQDY;mb@U zYxv?bj6J8H9c?Az$h1vo>#BT6R+mj{M?}kUrrQF0)S%+a&w^J2CDo^;gRc~)5LVss zhTBa!DUa_B{*fxax)89us`%HkFb8WN{rf|Gh}re*nqPWC63IUbK@g;MK}RD^-IQ!; zedaU-VQT##?EUcS@%j1w>hSv^5b6xEZhm>0I8Qe-H#1&NJQD~Z9cUX%>)rslG%?xy z@D;>y=I6rP7TEjq*7}~IeMCC|D+2?uz7Y3`nyERk7IG4I?1F*5ssNLGJOINznJ2s< zY{|$H$P?pwQMW+?*yUnVtU@!Gs?VfA=vdkU2&TI~<_plR=NZz#cugo7qI)th2415+ z`2+O+b3{7mtS}})sFDtlgNh;o`0}ftz5w-%z5`H`i4f{>^TLv#4GAEEA>5b`VBS|% z24k5<5R}{qC<03)fX!#oSOH+$`EoxAFt*dBfxJ*i=l9TtaG)1}=@$?Iq8|+fkO9Np zbD$+k>1DxAA?L6cfEg4L0b={USRWbC7cdSjeX$KM0Pac@0J~jE0<g3vUVwgyI}t<? zlMBI33kpErJ(IKpK*B=`z@Bvlv9FW!fVwLMppBnt$%n0H9&Fco0ODT9{sQW56o59U z2ETO_v}`E=d)WfSP(G!C>yIb^W>7!`@M?`G6o8d;2Jc;oUx14$1;C8UNdT7d$O|y6 z@Wug(jm5i_-`o>q0G~SJO#-l_$6kP;lwn}%*&QWH&H9n|WPk{Oa3e$jOSAF<jOMc7 zx0MoP8xCAW)=2<cecW&ZfQ?&%EhNCykNpa~^dab?SNA-x8yP^GB!C#eLO~>ex^fEC zTSyWilyx9TL4EfDh`rb5<3xb+Le}p(>XRTkS%*~Mfk_SkbUx4*5Or6K459U{OMnN; zanTo`hi;*wK(4+91;QAa7lD++g8qGEfZc6+!Fs$LWa(V=fjIT=MuR1HJo^~~Ys>2= zn8e=fgZEcd{2+FX>o%2OmrA;$rDg2@2LS4Q^)vnuO5~!pbrQ`Bp!#F)tEh;)hM0tv zmCx%xc>2Wbn(~=5!l4jcRE|Krh)^NOiTXkRkJMKw0JZyX>ziPIAU{4LCaro3faQN# z-^zM!@gneZ#2d0(So8m}-e74KKd?;#*v<Y_a^&=Xt<Qrroi}s706i7^s^?$UQ#5k| z09}D!-~XsrU&ti__*QklFF+NA%<un)`r55GB!H;#3|aLBOy83KD?R4s8VO(r0ur|Y z*ssi5CIQB|w*&u3-@cjX1z@RzM1WX&8`wk!47uO`mcCV|HT9pL_VQwv$bf$2)B5aR z(my?<09f)63BY;_y#W1oRR4YyG5I%e_MrfDa#-s=0G)XhfK93WTe{W9gY7wS;eU4e zaw!0tRr0rV%TE-5P8bG#iBXC9e{cUwx}zTjz~Xy}06rRjuzzaJ-_pY@DFBu*NCL3# zEHA*Y6WzCWAbqLk${ZQMR|4`$0M_=?3owj-Tp#^Q`qs5HGC<@%a$Y0?SjSH<z*vwB ze*G=|)7>o+zz&kX>;SNn5I98wOiS;2|B>FgsuxKH&<+V8=3VV8NC5TYE2#aCbn1n2 zAAr~|O<g7eRAtc2_J5^EUnvU!bQQiG|CLS!U$mpwd;xkX#i!+8(#uUBXHJp<c7Obr z_xrK`N#Ea0dh)>ILt;|IE4QF(u>D`@6##T+d<uOZPn`gu@Gt3f2htPzwn>0)t2^fZ zU+ZAB=2u2mNyozfwZ2{QniLZMBO^H`GGpNXSnnXaWsU8S0Cs!4BrbRHU)J-j;+K2@ zdZ8d?{9o2{ACv|Fx~A00|5<M`D<cB<PWOZ_K(+i_-TROA4cj;pKy-i2-1G%Z6_sH0 zpISZ5=Aa#!OfA_3V85qfg9I2?eog;leaAY>3&6^!hybzvD{F`h7@BJTw!YbVf6fcQ z$|i{bvEN*>P6qUI1v`IRPjsaKSjiL#z$RL~0R1j?dhajm{vRj+PR*nd0c^C10<bj$ ze_QuRpa3+rrXZ(hZ=!($unk>*TlYw$0Cd3=7%%=^a<G3x=ik;}eWCzZ-Y5~kXN&3& z{-^(M>+v2G0Lz~s0oZ7*7hu>cncg|DzR+y3NCxorgg+zzqg8tWhJ}Kik-x0(Smu!d zqW0B?RU&{5ReJ%(*6ROQPqII#bjBldb^+KcOkN-XruE#(|5#tQN+knmmjn<i5n*j4 zfT}6`pY>X^dS3u<E?Fl6R9EKm|EQ-ust*8kov9=LqMmN~W5XAq*UG*P{fl~oE15cX zKz*(@A#?73)c1CNd6PeU|DFHyYh+3n*!nm1;gYnZ)Za}D|Cf62775U8bpAh4w{$q@ z$-wK#5bD#w&QA9yZwO0V*{M!WsoR;bB0~&OAnmbF+!xP>x!?^ELRx`9k3|yjoUs4A zZ3ICB-$|fEW*963U{~-5B2GTp0M*h914r_}jMcc!&%96oW*>kZ)lLA2<&l-qKLJ=g zdpG;>3INf`sRdD40L(tEyf42FK+LzVAAi0BpzF#$c(e=vxyb!qqwN;R;v8I7Xa(~& z4O-BbBtHPgz`!wvV&M2I5P}F5!9J@bfShv)FO(!g3|a+Ac0sAhflo8CPmv+)2~tkd z=kS!A7o6S@>dYN``x`=J=&!7st8IT}UEJ^c(=f6-`ghjq&zV)Vd6|Q|e`o#vb&Ui( zR}0$Kj3B7DG!_hnErBfnsAClnaXM%VjK1Go2<!)&WfL|(tCIoP$N>8hGXT_$d@TD} z4#3uj<nGLE0D5}97Gzccu%11f_G$Ovd(@lK?*Pok0+6u{KtsRNz2-MNpxb+K>(dn2 zs%q4NqKXp%SOE*c41=J2#0P>1<>@J#B!Ju~>CX8pYkqlbZbMU9USIlOSv_*8MWt1_ zwtr>4VPmE9PuA|$|7IQO=$_sk`a5e&YDsIypQ@>UvgT!Nkbvh#)5yv}*1B{sow*Kn z0BBz*g@`lJ+h8_hXEkL4?DS07q&5BmV7n54oMixL({IWO>jBvPSu$F+3&7;W*W7}7 z0JdwU%d_?Ym>U25rsg*Q%lQCQ?gB70=5(($ZWoMxUE9rC1iJ&xT2OdRHUR5j^*h5P z=$iLB$Xfh+iv*C{ZBto)XKl=`>h5iAocQrqR@eOM+J?rwf3jNrmDTe3fn}ZPgP!_N z2(3?ipH<p1w@z9>ug`Uqetl2WAA{&Fx<nRtjL!zl(Txvw6i2#T?1wNH1FB}Wz}Cu2 z;4E@{e0FY*xPllf4!GC>(cMcP+1gr}3z!WUr<<5tS?Nf=*94)o;|{jInteZxnwVSZ z_@w;@LfX}AZLRps`i;ZJ#$Jtk(~uMMb0v0F5W=T#YsG7pGR`?RJux;qIzBZrHa<Q! zGBiFqIyN{m=1)UR%(c6eK?s-rtvTYX_c-J9#OV0s%>3fY>c-YKX@_xpYh!h3er95L zpm%V@kA@hUZ*(b!5O#fAbH3x4snLmv+2zgM{a}FI-(6dr8X4^E9rU6Rdk{nO^``j{ zLZNVL&S#u%WOR6HX>;!rpxaxY8}9Ax^XWkhO=K(NLhz8;6`yhB#Q6Bq))#=<m>KBr z?Dp<~57E4{A%u3z$^>N`H8wUfv%dcop!Qcr+FQH4dXTNX!)4l;5S%zS=RJ-X8=Kuq z0mzN9uGVf!E4;Ut_ya-^ey&Uq$4NBAz{u?OYrs0!mLL1t{kg4;&9j%j5kKq3c3uO- z=2&|Nr4`XWoJ>fC;0o>Y6dGcrZ*t2YU{>osS*nR}GGU1rI2MZ`q0#iL0`m6)3a0}A zVr{Usoze>Lt5isa;P=KSyl9BQ-qF=p06X#Rfiyc7%gn|>;qv0da<DOD=@^8sz3cP` zsQHfOmey8MJ-of;UeZC~C&)D9P~X7Jt}no>Wta%l)3b7M`*HbkqS<j+6sP9LF+YIZ z8E&X=AlJhidhHV+xX;{>7Y*J&yy6Q`!+vKN8Q96(L@s7db{rD}Jr;|>(lau%vXeMT z94Iz=I=s~%KLB57tMjUdH?+INL$HwfgR*vy?fL*@-wQkjN8#pXXT)IH1W#++Fn#>Q z^8Rg2*<+maXnGcQFAgM*4yRw@3lLj9m33bAunzCozyAW>-#_C6kdv-QFzjS*dM+H6 z`Pfz0q(5UDK7f9ErY+O&jwA~mJsX(=$%bLPb<jqQ)YW)Z!8*KSAh^#wjnsqa?d@Ok z2FSh7Vpt9`Hys<6RlzxL>J31z)c9ZGLNT(FIFM{~toBnr05MZtQBAIbb+|-9F#8E| z52CkgVBH&_8ZOhb@$eA2Q7qWw4&_^)08^*G0zHO}gM*#@|7+*G<C@6U|35S72`vc< zL~Ogby6AQ9{q5a#-M#BtK|!#xRun}*QS1U1bS4Q+Ab~(2B#875(u)MJ_qz7B_TIbH z=l42^uI`%PUDti_{o_9W;pFo?XU?2+=FIaxj~4XaIUzuMv}Y@l9`Q`Vh-o*^p}?mu zypjT~O>S*MSu?E6ct38qmkji#%83>%v5;oMntdl2XwUXFY@>D)dk#%gW5mFVdf{0l zyza)aq^#+D?oatm=|I~()r?IEX#)B`wgv<3`R;~o)K+58u7Qade(*ANmUiOwnO9OE zcJ}8|*7VMt{wYn_z}@1&Ftrp4Ex8u)NVIe7Hfk%ruUduS*;gdT@Y5(xwzatpX-zY? z47`^IwAQ4a3`$5dXDn@z0`YWPop>w0Um1_#<Q4HT;^fI^QXrzugrqgiiZgIq5zsDA zVVILbnt(R-xfHMmlC4DTe(yMp7<ldkb&UAs!~-c1QeG$0nr3O@_qYUT36@+-Qb^F8 zA4`F_QQJV(654G8V=-KNPJ9eMazhGiifd(UZDV1TTn@yZe=sQ_L5zGX1^j%OxE9}0 zs6efujuD3rT#y1goNHxcZDZPdTO|-T9O=5YxV(@8vA;}9)#5vsM`Og`vuHvbIMyTq zLSte@+7KpRpRNYZ^XYV<P#_>?v`T<@*-$B|#RkhUeA5Z^>q8GEz^)Q>wy_bJe1By# z&|19dLQ;SeE2Ti(s;HsL@%lI!hP#~;AH?@uk^uWuPoa&C$n3l8S|D1zXrzF!V5CR^ z|D{k|j@P?IVR*v{@j?7(vl!S<e=-x<h%EYFlmqR>u>&`AfZaTqCKL!vg$E=+G}V?+ z<#=U!B!<sFPaPz7??b!OB^=U*5cW7K16G@&zlEu-$E9pwKO4#r3IyzbKb8P~t(Yn& ziW+7_VEEQU)NXv|NeQq@&8%%~tOOM@;I#T+CVajb-s^NW5Ldt8qWf7S1$<{ARfHF3 zuE+5CC#l`UuAR@sK-}pkAZ>8&dN~luxPTPW1wxubb2hNHo0$s)7M#rzARcZipo;LC z8Q~b-fC6qkBLUW8F6y+2tui2*f8dIRGy$KzJqK_Z>J!fYdny5Ze>Mu39){s=C#c=T zjvdd%z}hXevazwWyCMhTS{Dn6kPy&fa)4+Z%|z`CmH_c2FOMuDa;n`zF+6)8ig#8F zM60tIX@i?&L<4cz#zHE@X;HbrI%{Pn5SZCqlmNaro65mU<sld`@X&5@E78#KR1A2r z32B3yPKW{G)xUUBA<nFl1MReS&yzTPQ*qjS2@ntR3aA{scwjJw2Op)j;&sQwz-k(5 zVPj)u{fh$dFiavO*k3=70@gl9KAYED-lhQ7%WpXXfw|z61n`DTDhDrG9E{<c(fq5q zD+av8l(fNl%VL4{%n=iiLV_jO5(VrAA>EvB!NnHD0$#!*^)0}!CQ~_h-bN{gyY8d5 z5)C_BDPXmYwy?43+~Z0dupata3WWUsY>xu^<A1P)0+LTy;Q0z*wK=c^0yFE&VxYB@ zr00-nc)<@63=iK&ZN)3kiviywM9m0H0QxA7=|5k|0MDgS0+Nq2N5%qPg<611C4e8& zP-%F9zXZd}wvn|&P2FQLF#SwKHdbBECji}rWAbgQ4DdjjSU~6VP3#^kfYmaHBM@-= zzYqg)FJ&W{hG(e681ArxswFCSwNb#l*Qc|{#$>h%=%YC%-!$p;5&?~GV)rN(m??CD zfX}QH1JPETLZ#tZ{V5DzzLToOD^H7onPVyvSz9!`BhI2p1q5?MTP!di+L;RYv{@2h z?bD>CX*4<R6ox0%Q?+>2Juxt+n~Ow(@0;Fgi3feyVgbR&GnK$xL>KT)K6@Yr{6+$$ z!Ba>IV^wKu%gf8^n<-%4?cG@<;z<%;w^|OIYIBxQAT-0~v?>AL$|d<Yqf87$W44Oa z;K}hMhWFn_mE)WCih)^SE)v;T?ti0>2G-W^O$FxNgPY@l`SL3spHEvP0lYGS(l9dm zW0+e5RgM>)5d$;OL?jY^*Z4*m1N7}2K3$av%ms8lpEICY47`I1jYg?V8-`*2^+<P{ z0%qF?fk<S!Q2n~SF+ktK<<mDN0<)0G=bKxe69axFj#4sGW@DJVnk*+u%AZrfyz#k} zNMxF$);-;CkgkEtr*B9E<|S)0KA&DF2I5IlJgH=;mt$@lE6F0FMB7RMbE`lkvKE~} zLhkQ{tphoHJ`p4ayfu?j(p3^SzbvW<&)y*hW}=BmWcl?AHPBqRrr#-EM^gjClg{Te zCrSV>kyA<{#E%pg;n|18z*u1_5?M^p0K<jL?_SUp{hNd-BlvvoznjH?YojPREpmBi z9#w>AoDu_LlDSA^x<Ugi7p^6r^F#6z*;`pDlg~Hpep?LqzHmxTm&ud!ipU&1`yvI* z*1-ai$Rth!xC@uGr1Kd4qi#pOl^!;;;G6SLhyg#2B8J5k=21C#=5-2~Pyg9TBr+?~ z0MCVMDKNLRG@*YU^y~V!+N&Znz6EEi81VCvNUN#KBXfwX%sUh?Z}zeh*$B33z|@5+ z?ADuUYH4Xk7cDp%_E!G*3llz{u}KV^>!Fcyd3ac1O@>Z?p91Eu-K|A7R);lU?!q-4 zcq95NCQm4|U<jvg4*~iX9-qEJ4a~-Waru0Dsu+kH>m$i<T3BA4&O`bm3Ye$5Sc|N? zoYH{6g=_jPz?0-3*c^c+pK0n+-YP*(1Ue^e-=k-%LX$l_gbe41v#T<4($dm%o>0I% zZeuO7?siUthJ@+2O(d8!6^-Pv_(B1j^HatPO6P{LK?96IY(Afe7X$V{98N<%$TT87 z4f!~x^Kt%-4+#kBezss(2nAf`|BJg1u!X1h@Y8D##Dj1NiF{NflWD|8-OZd7S&OV~ z&%E&w3>F8xt?1@Lp$WaW<i@_&9{z*wBtZ<sT}cQjp#^2v=saw^O9As-S8I`t^)GKc zgo4=_|L$~Cq0p4xYn)KXK>gYLZ!Vut+kpC0?;x*C=O7tP$7`QiiEJ!)y>So@Cf7sl z89brTjQd*t%$~>RGxEehTqQ{qKRrE}(%^AdC}2M9*GVKYuXv-50LH_FZ&(}wDa3W5 zZ*?=}^Vzjxz|XFxB(xxn0!fu;C}1{yFBFMPHoTEW0sCdnP!7jZ-{w;SbH0VyAu$j~ zR!hh=w4k_96{W!yXrj6DMIsaOjW8M*Rin)Gsya5GZ)S5v4ER=mY7H%b^i`s8TgAZe zH5G}>XTA}|0DTWvplhOr#^>|;y$}PwX(_dazHGT)tcFzL@-i_nqtF`nV~cL-F#Q&( zwxVaE2F6kvpU)a80X!uTiTvCoDoTlGqV=ZSTqLsUc@>FxX1aw+Hx$&saAfiMw1r|I zTA~8UHH?)$Zdjn2R1(n%Xh5B_wHApiYV<l?Fr6+DnD=^`>K`EffTa8xLGBnfTTLnP z$V({6`kkdnWFj^o+rqKnTbLdY1Ab;1l8wMH$0SOQhwl{w!`oCO;*V4VZ7k0WEpKmP ziBWfa`AiIWogd}TSoJN2^;c1HJhWI0%v2MR$g1l_6);}>WNOjpG+Mk-hp2$rHiX0H zGp0%a->{hS$5&dB7#^)4<;40#lpoXG94{#WScku}=+udCt%!cBJteT<^9eLSUx^oz zi}7WPC=3sbLs8KkwmI@eBJ;8FKwR#{raBQ8bhRAlTTJwUBWMD?S*HtPz|M*n;{hHN zhL202<T$xi3``kMB(kzOtps8Ly|cIzVczqW?6oujn9bjF1$^cxw3g4I7UQcNC=Bl( zM}-rTjc7k`Mr19r;ZkuxJo(aG+6ian>a;=z(r)4K1$-hAZT7<asKt0de=&wjBFS(f zL~>IM%<<+T8_WKWV}ZD6Ban8&nGt$16N%j!0)c6l8)6_X`z;_B<9<F844*Bd!f~=* z49t8}k&O*6DHe!3J@`ngmH~a2iI9;Q52&*Q0@@r2ur|$Eyx7-wiK_&|e~?k(1R2*% z0qfb<LK_>ww=Wbxw7GI5od}`exC|JnJRxVvb0si+(LRQ|OAL4uDfY#e^p;}ynh;8Y zuRbFNT*gBiFci9;XCdx{6Z4{g-Mq{~XlcnEa4Z&>Ck5sL0Soonky(^4?&lMX;nO3K zJVOkuyL~KeY=r-K5DRRTIm^tPOCR?*3W(L1fU+c5eQzoNpT-~sII~g$c&sPoi!XEx z#&FvZN<xt24Kd*1T(res8wbqYv%dbvNKJDT5GMqDu_e)owkif#wH&@cz;b9sedp<o zT3{Q3;fuwn1%+Z@J?JO2vFU7eSP6LJ^Ju{3bg3m_@=cQ*SkJ%V2n2jiy#$C2vwX=p z`25MC82)vbWDSO1vdLW1hA?+%$_0EmQ))?A*xi={9z-JrIDLu)h#T`}Q*-e7Ux#6M zAW5ykm!c)H*})vOH#8UU5Qfx}F#GDI3|L!DECd3x&SxZmCrzg2;6BsCF??7swT4)^ z=BgN2`#M?K*jNecbAZ^*6QX;g&y@jjr!NP6S42pF_;scSH3y&j?RpGffr2edk^oMj z&n<!dm24o|X5eB=!o>Py6tG(-(1ij4b8w>s@QA789KwCp)Cde8MvDFMrH949emN9< z+nG8%%LeuXR~p-tN9$4{1AG<w{4ulqMFRM)$zpfh^V>)aU$T<&CzeQ`i-9=a)snO! zxHDU`f!Vxq?6-ph&dY$MWbg$7K3yXL;;G+s${nADz9hd668qzRc@iLUOs!CtEXo6{ zIU0yet~t6X1d7$;#qPM*XEF@;45IvrW%G|o0AGi0%9^uG3+!xDGl4+J82VfS#DVcs zD0h6OlN=*@`1@0f3BT0{GPKU(kTx_c&VuF|U?-cH2?av7{Z$DN_kAXj?zBnn?meP0 z++h{9n6}JY*(L_gb62j7jkOhL>f<UP!a3%okl=LtMFO-osoOMa67K%J0>kG8h!^8? zOC&&h;J~vXtqJbnv*o~fK99i{3N1OJJyO6kM~f%nQzpb>gzYjvYB90Ed$$CLdyZVn znlQC1Ed|c0A#?%yd6%7t!?;YKCJ}DaY~wK6;N^=KlfHz{!qeyrbsU?trrQWC0-tUI zBE^<P3Tc)syZurij!u{$o`k!99gpFY7m9re??qQ6KzlKV-I=teb>{p~R{-?$Q(0yx zVL|`qj1-6qGsa3LVGb$`_nc4p(tPGDyDkNq)J&kuq44Kl%mMndC|ibr6w>&#@pq*_ zzwF`SHi;aEPjF4d2-^idNanHpx)g}Q&v+<V!|frxl>zj|^nWwVNFm*l#|>(c0`2mw zk#5vD!fk@B8YArde5g4zACE<sq(D34tV<0E*}bV>Q-J;`c_7O~mmB(`EEs6#J#@M; zZgxo+K5)Kx4sDkEyyH@!HAjj}NNbjrm4MyNtL~Ksm`8*9GEFQkNg<8L_P7xYv?Eg- z#)!w^6Z$4&_>Xgubf(9)V4(jp!NkIvvSM0t%?GU6_9PCN&A-SUgiJHak}fo({cBSQ z(6pmRjggGQ{*{8^!{$on&}O)0wFLvMU?A5*Y{ltp!LjH+Q@QhIYXq<#9!dB6PN>h^ zS<t(MJ`M(2Tk>!xavbT5j~kGt^WaYNa0|T`42&0=e{;+_i>*YR1w6LJXaAYJEFw9- ztg^f)HD;B^us%XI+f*R2q?<9i1zrgO+MU%yT_n!<xPBQJ@uSx)i96xuyEg<F&(emP zbA=Ksdgo38Gakt{<??u34x7c|m{?eL>Lj*g2so_1k}IJ=?3gxO;!KQk`BxT344gGh z>`tHNHa_8T2yogOe0p(tg3eaD3@Y2wlFwyy9+UMb6zGp+LmfwnorzIn`sQGCJCB*} z?$jjOl=1VngaP|@_RKHMIHr8dkj}xK*p_?~Cfn92=5#pFw9^JVNSp~r2fI9suyu2n zPNKPu5uXkR-hHiPY+p+*o5M3TCoN3P&CN`CY!=(%v!P21F0TjLiGV?lVrTmB;m(6? z3o&B2yPI?p&B;xEDFQ4X{ZbUUaMFl@|N5%`Kfd~A@K_&d=AK)Tz_<|RICQwPcsMc2 z`Rihg_<GtD=_L9D2e;_6(SSF<AfMsS8)JZeDtzQ12kCIaanu*37(?Xj?lx(XcpSsk z!FBD9mzltLxz*os&=Bcx+AxRzh$=8*z@#a`<CrcZhx=?e-MSH&ttS(v{%5d5@NmL$ zc)x0lW;=9>TgW)3<KR&Xk`6ve1m=?iDzBjf28Rr%4Rie7wicuHa2z*=8Ygz<xQrS+ za_Z`={WsC4b<>SKX)E0Z5BPqtbU0(spkWRJdo*CQKBLEt33Ki`V({Rh&K?2stm-`{ z&s@5G{nF{<d#W=cmrr;8e!zEw#KR?nXu})^_1TWm`Z&6{ggbX0K63EjK?4R49X?{D zv-8Li!@nOe;G6FT521#K45AGgGO*8XjNW6=80S%9=kVcl2ZzB!hLD5B!@~#Be;hpQ z+aCKdhUn`NE{>xV!y^YVejGAnz?Y&U7}M^n5u=<PhlLH74PyQ{Wbm*7UkOfP9IO7{ z4H@O&IAqvx*&z0hLxv3g@rQqYZuKk1>e9RaKffOE!w=!#Fa~`6&)!|T+`w3Fquf2_ zFIv2WTFP3oc+q?h_fc+T|3f_gM-k7{YsYuiY|6{Y&MhdZ*?H{Bqt<p2kLcB}^&3O| z{pR|3`^@v5zrb(d!bM91NO^kwxo7P$o=y*UsaJZ>n(aMr!NNt07B5-4Z21a*{{S+O z6|j7HU`Wc&+aF*(U%c8M=Qm^KoVmWbsPFg)T)ArX>NP=YRt8cV_C9V8{+Qe?@}KVR z>FqOjp0DqGasf7<^6fN#!NSE$miY(joUC0(u3NJ@yyTj30@VLzs?X$^bG*Eeo4Ipl z&zZl1jEqmt$jVCF5EntMT)u3@$~9}(kt8Lif+X1&je;Q7!}K{n&zS8whxFpip6R(P zDu2(#hfN`1+4AhhF>UJl)&8s2k(5{>m9CTI-Y^b>ELyAQO`PE|YqsZ{+0$nS<^1wk z0i4Fm4H_yiNGy?(!89tg`k8SaWOiZQgsC$<JZ8;ypSC3ZbaNt@-rk}N3X%i|hlGYw zamS7FpkOfBG<~A`jF}!D)20U1JxvDFmeZNywbGE#u<+2}(&z0FA(Q*TW2a1apD}a# zq@Z0b>A<^^E2cuj!q-Pg6EC;Jgm@?Bj-57by1TpEqWYF>;9g86gTvQHM1(~iGzNu; zhRGAiY4qunrlmf~176!fxp;j<L}Wy$w#^t7;uMXYIA!XzspFR)F9PnP0!es8WRxtl zq{$c+;$)0=n>=Oe<O!<hCBWGq5gHjKlZO=`h-H`xr8&7xnml#l)Xn9<xuyz<lF6gj z=QSF`LfK9ef1WgD+??Z;z<HV#B9lkQL=-g}#X{_IrwML9Pa5NQwHi3h#Ub+O7)3;7 zn=vf3*LB=Pw@I!`?rsKlTV-f;j6xB)-53_SJlS=^#GhRk-qWHVhs7uqvGNl}u+WQz zqb5w4=<0n-4z%VwH=pGIyR~G!LJ_M_-ZqAXSg|9<Pna-v>IFG4_b18a@s*FWf!&lH zsfdk>$wXf%2C2}Fkz>bC7&m6G3^;9-A(8TE`FhR$Y+yan$YbM_@-0TF5bNO#=W*jF zjLMM%_eiizCPzJ+*P0Eit1*f=r84%iF)9=@eC)XKqsTTH@LE&CqGafq#6(@q0oMM= zIAwfnR+BL<blk~x>^RqHx8=Zl5*-nxlSZ#UkOQo?BAGHiA$q?tG{kCM?l5NTxRJHd zz<VT%h}3J>@5=?&gM`@lgm}#pV|a+UZMf^0u_J?GfY+i9i$qeneEkJE&>mjB)f5NJ z1G4yp1jQC(h^S?Oqw5&gu@@A;-64+9>BEzoqJVj;M4gbBc{CP?mP`eifG0jM42hWA zhPk?q8KH~?PE!VjJcP+EM*;h4Vr-&Xql()W3(WH|2??s$EfQmpXxRu?R~NV2alm?6 z5g8E~k$NQxxQ*#?iHT~pMiYNN7MO*K1eI#TQ)7&XdE9ZdtLuow1fXYzgsWR*z&#U_ zpwc-=D2oN=MMZ)tG46mdN)$E3#dY+!>j^;54i4LZ9{!H#1eH#on9+nFRbHGbF(JFz zC?|UK^C%bB5uqxeX9b5QwaS3EJvu?}LY3Z#awIXTM0NZnW2k8JkkKwKBM%|HG*r_n z1MVq#yxxJbBo3IbQsNWU$~t4TXx-4!E+c)KRY1>_hUnz4Hpb}niZe=JZc!wv6VqQA z<3$fAjvVbWEF}@>nUWB7s~k8N<B&W)x~@$L%xlU-wI%_z-5@X8F~oWFXs6SOK+li_ zt6QUibuBwCK7PZ#ws>H+WX7vC@!JjaqPU-&N00PsLQ1hTu{8$h*A>d>UlM`Y5UbXx z3fheEq6Nd9M-P*$fu8<acQr;CeIgN<=i}5GP4Z(Syy)Jzk<O!sX_1bSs9IuxekCSO zehlsPlM*#astd+=(V<~Z&dx5EUJFq}uSDyGZFvcrq=bD2c~Q|IC+CqKuhc+GC&h^h zB#M<CQv*Y*)Fi2D4Dh0upPZbBuhak|jg&?nZ;b}}6?tsbF*Ps`$7zz(1+9j7(aIrC z&O_rgz)D*eEG5;48f8ePi26kh%!^7*k|rHxvft-LZ9c=CoQD)>fRnmT8XPQMr`-80 z66jZCiby2Ao2X7o+JG42d%WoR)Dce3!?tLEm%3IekpzcG$mse9>w$hHDn_S$nygMr zQls46`@HDhI7cUEhr=2$O$ic*%hrlRLW9Z3id$hozZ?}4fkHQ?CnhB&UNp>$u8kh) z<TUDx2Fz1})+IdI8H+rGP+>)vLx6rcGFs=MHAj_{q&j1m7hN1R(#gr?k_H4D*Q|{L zXgsJUsnD=caY**rHVM!#N66Rzq5(#JLQ+z~3B$PP{K%0`qsCm*03G>gA;F~eWGdS0 zgh_)_ercw3Uc!%RfKiCN95;lE-tn<ID6T~Uf(yAJRA_j3uvD}E1;FL?GM$H_*B%Vv zqF>RyxL!u>SREAG5)2mCOV(4N;p;=C@!Ox?ST74hZ76tiCkAlQRp*gTPR<BgC9hf& z+Y$<9_cqI^koD`sq{_UgsIVhyV7BF=?mT4}7u^}-=;Y*hOz%L^5)LL$w#SJ>)<=Yg zMMZ@od2=R`quKR7E_yP_!O3~}P7TmEtX!>Vi2&}){TgWqdX?z3FE%D7C8@6(!bL5! zhdVhBDbq`1T2NN{cxp&UWMs$@H4qQfYBCACYY-PL9qQyfBuNAGq`*}%Ez!U@pBWw* zjGB5iUX!FrMJF%b!$sjgIXMp#BT>Mr7_@j?3yBCmtOn+BG&ge)%Y7dgWejq1c9`3$ zMyi$3NOdV>z4Wje7~A7CNh);I`+Z!reTb8@(}X)}plkf~qKmIZ#qpY?gdN6k(G}-W z&Z9@{)#(D|DA>i|aLM6BV7^RIX_697i4EeSrdcDLM-NR#vK7CR5!d3?qz3h&AzTzP z*m<<WQZ>+$Rs=*VfPPULCO(u1%)PN{O(J?%8p1^tKRJ(f9(O|pj3&j3z>wRhjd~rU zP^s1=)Ec8jSDi<Vb{STd0IX|K{;O6625pT7`b9}7bw~xw2Z<`RCjO*RTC{NZXcvdT zc;GysmaJU4YE|IUUGlf;1ByhodczaLxG3wV(JrIMTvh@%*Do*-i37xl$X^tPkOvdc z)KDg>6UvMMqsz`tF0R8j#sTl8cv(Pz&cU+7GNAuT>Gjv*REcUOT4fAFqk!Qqu1+(b z#{%zO;BtSxho$v82f^!51F99OMAb%=n>PrK>V~+ux{fH11>Vy&%l!QV&^;{KB?J0p zGI;ILcwpX7KzpNlqwwg(%#p6HPTsF#0gv}1{TTs)fdK(GWxzN@O3BJ5B{1uv6I6)_ zHx1(>X7&)YLoAO4;>^OOq(3bn&@UGeiV8|B4JK8$V}W@;K0ZMeS84<xJ)G?1I%c%T zlUQJHTe4uuvc-Oymr=l}4xl6wsdR13Qw1<9(QZq5$p}GWW(;*5Gu9zF4w%2Dg-YXg zwnhQ>Hc5)b5{Wc;&E^<jT|)bvxJ_-w7}67Wr!iy4j60_UyrnT3c-sRgN++ihTIIlM z&d})*buhq@SmndUj2-8+qB$3MWr3tlDHTV(kOOl^lrla+QDuZBv09cmjvY7NF*6r< z^#P<_Nh+FU=u0M68Lv!yXpASF9PK)8{J1fPbAWqk70O&tV#(@a8L(a?N5?7SqtOXI zLqv(Sarn6L6I^HA$pKFG3SG)$t@KV5u-l3wW8;)D`K`u~Qsbgg<0njX4tSXj>=()Y zE7z<J3_gv>*Lp>4Tx`N!BS?vTaiZ&l2@{>xBc#;2KSiOcye9+J!H5_|Y@Ga<5v0Vb zL&4mf<MRMRTh8N=(F#RuRIL%D#7cIYFwyPj(P}NQPejUM6pE<4W}`@n(-t;zqTA1t zT$HUfz&;WY6&<6HB|mKsDZN@f%I)V#lU>7~R{?uhSfo5UMy9%J3@LG*_&fhRY4VgY z0oTic(_9f8DU(M>DQ_4<N}R_5&XXojnL1(4o>Ji4O_icVM1=BMJ4}iDblvF5Q>IRv z^mEF~O~5%K3r5L~aMev?Oo`qocbPPmoJNfI|D^!94+<oq5fPD5p&RcTV@lkt@js)i z&E%=7+d05!+8IfOuO}mj;DQ(JF(uv(kMYx{yU&>MvrqoR3@~Xq9KS9Y<%q(<wzjng zl}xU!8#fhYrram_<=svJla~h))>0@hwO*<`+YVMTYb}~F5oNSy&73kX@mRA4OmEc4 z*N`X~78Wcmd1@RhnO_R|c?!y-dCs2hu{!tE%Q!G^y|GP0u3RUP1_y@(ld4lj!IEI7 z|IgD<4$sSL)(p=;RqfeFZ4n@NaczH5%-Vp}>rf&vSh6;1+pG5A(mxwFFP}UeIq~+H z>pgpx&+_1eoT}{yjvhO9cu#$4dTj8j<ttVO>87fL3X0hL*f?S8{Avs7K5e!x&*|$s z-*>K$kM~^P`F_+w&Y~sD16HkGgVLoWea)KahDYsDrao=Q)eGHc%+Y0C7x)>--L4H< z9VkgV^6~@N>9a>WmCI&(c>4Ih?`37ciU7%m9e3J8Q2eLIH^~Ehz2<n&^<ChHvd~MZ zCCp`k;`oxI58EeDtQS`fRAnYa29p#=A`OpL=TslK^yC8sirL!K_^PoHZLa=Dp#Ddo z{#RsVu*m4eoeM{IZ_#e9sjb_#=a&n&pM8KpHC@|Rk{q)>1ks80>(QG^9;4ilQ+@F2 zi}naqk0(b96_RzNG*p+$mqkaTO@k7pu9QkudeyOqA0kkV$8*9~uc35wLl^h04^^UC zlcZ56rdFPO-X4K6d#IJIT)7Ud<+^tf6>b%V?m-r<h>O=b*^s<(<A$W{op;+IP<Knj zD_*mqV5yjrghi_}3QDVLsw+ziGBzZ{#wrt$pOn<pwB+>qTSf_#<&)C2%T}XRoD#1K zB4z2?W7nTFhk$A8i+dOLS7oUa)X6ESsbo4WHDl}jb_i744)NlZtAm2pt_xbVPFa2K znF1`DZXGI1Q75OSr)OklrRN-Y*$#oa61T{I<?7WzK`R5-mtAT}1k;B{ij$L(GABEu z^iq2SO6$KkaOKL?s{;e#_C8Mr)7C56w2hfrIXSsG*?Z8-(r8VR$)m&t%h6|6!1CB5 zh(O(GNKebj$<52pu0+L5#;THd=gIji(AUwD(7lL2-Q1j>m7AAekXLxl7=hyMUAl1j z3jcs*{w2@yfqS+nBQL+8urU9KaR9Y>{vyOk7e<^b0`9ZznRx|;MVs>Xv={|Yr9O+6 zE?d5AQSQqU;G8YUEiBqpT(A={BEtZx*n82ErOOsA-&qcvdlk7wn~F;ccQhLVP~~0= z7cW`r7j&)?I4>G<Hx-wZ7VSnwRfg-5*jv2N3)WY9vl`efyYq@mO3OAKkQymVIy!g$ z!bOYcg+4(1X@7o6X<2#kNn`x!`r^5M3m44`epm;r0|ljJ<>jSUjNqr2k~s_f7S3CH zR}Qq6#}8iS0K08ZVOe=aMb#st_$l3E{sKSWWmn|DJh!=|r1HS?Y+yHU+f-grS-!2= z7=Ai9d*1v73+5e_0j=#oUJ+SB6m5Q*4XhWNODZa>$`BwkRFuSevck)E{(?Cba^U`& zv#Geaq@=WHM_V?q?v<5SR#jErHHM#3XUy}RKPMIuh_>4NBE7WuUJkI%6(iyH7GwD7 ztf$XB-?_`~%YpY|Q$dklT6jJen7d1>s%k3E8>LTeVIFhm`Fie*2Hx|cf<nEt@N6!y zo>f;?)l}ELFiM~H&G4B!&oep(c&(MWucd_u3qHI5s3i`V=S!<<YN}2crB9@X&)m7b zR}?@yky%hk7SW0eYFna!`Dnkkwr=O;SYWkotEj2jtbJyLKJ9n+_L=LE5euB=`b^Y- z{7vXn^}e=RtF6;+J{=3pTje!1wN)n#(kC%6LuY#XcrUyc2dt)j1qFqL+PhJ}ZQfQ@ zTdS?BuiuQa6T2&GYHRCX8ih}1J-obqW@aY<y*?+e62Ye%6*aZBT5Vl@?ZH@J-l?dm z)mC3H2A`6qd3k&L-cA7emh9Xb^yp8O*KF45wL6*-eA-o2tF7IMj<*^vQhMSy+sk`q zq6+8@*}2sSKAkM9(YvVK-W&_es};3c?Pin;HCU&#W2%>z_pB2tpx0;RR3Z3ut*lz_ zpk{v@Fq;}`wA#(bjlrkr>0Vy5gIbV0Gg~KbsxQ~;t8OR(KT$<$@$D!dXs}r6@%&j{ zUhaj7K(EWpu56V9?RI5(HCcmK97EZu>RN4GEo!<!_H=NXr<a%K1tiYMsz8Z=d)q6k ztLx4q_SCw4v$n4Gv|;v?KE=~(*6QX&plgvb2I%+8tI97Y0`o+*wobd(D0?E^J-ysF zs)4Re&(!Jel~<KrNd)GtYHeNp7Q|W%)ha!hJIm9{eJ9eTWt5|McgriwP`np)+PZq} zZDZ`|#Pr#op5E8hK(BoxEUPTNtOmyJ&2{y)7Yw4On#rD?v-}&?K--*}UakQ8-O>u3 z=2%T#y%wGB{bQ+8$`nt}8Ic-bY);9@yM)lw-O}=s%ZMRW*VWgd{&>GsDPo$Z=k#<9 zuxe5=Gtw%~HOqj0x1_un$?nwD)z|N6GK`*9yL)<0tI`0cW@AQ1W_oJLiI<T`T2_2X z4a_Iny84DKsNmo|^z>r!3{Ow@y&Ax4Hj?Sg%&d&GqQg(u1N}~M*(RiY*-%&CQ2)>% zdU`l_rl+UJNe!4*C#UD+Z%oh1&PvbU_aF@DcQ%#k<jvc(^$m4*45BCE)*KJg6Z=&I z=G7ZgN}nI!l#-s6lbxQs<4y?jP*Q{%(6$qKK>w$efl{TbvphU!dtKLnplZX$O#n@2 z%hS@cb8<4W8?GVrbf>7K@S+A7dur<&wAT%zr^_C*JZJmd)BwFIDS1;XLQj`BXQXH6 z=4NHrUTmR|mtvily~xWoL+I%bJ|rNxu_YV1$j+`h+X!%{u($xV<BbPH=;_L=S)Q}K zZ)kvCso7A}8VnZqcIBn#<mKmPl^uV1zhG0rukU&=fSzu6dU($EMDR-IAr#CWA1uts z$<NQrF56yIl>aO0&Rw<j4Rxq4!a$|cJ#P<B&snHgszRMq*cuKd&ySU4=HwUT=M@#@ zA$iMo^fb`qdLKPK^PB1E>3&eB))clz0JrgMWmZl>L19rY(l&0<);H860{UL1QcD0D z!1WrSmnUipTBCs7a!H$$Q&6ZAKC7#%*Ol)Ys8kA`=IJ>t4+&N3g4SqY+^Ekh$hn{f z=Dp2z_4V5jq<;@Rsit^(y2omOUZzUSM{CEuoPunmxmsOUU%wk+;rG!~@nla=k06Ae z$`TUukm^=WK2kAGp&5PH5PHJ*PbEEZ-}`EymnNw6qU`)EB-)Qw8$?tMRw~`_oaN~? z^C;5At8#V0vhuRdCjzr+OKn|!?RCTGso8&qr`PlXBvU55mgQz5+5H;y0)Ao`J;hJ; z^zsN%1FcjUpQix&t<2mEBsy26t*hJBVi-L&O!4%ZGw+TH7|r?0gtP~!Lo#!aj<Kgk zTUU!J4-6J6-JCPq%gen!0a$mklqyw%=14TqZ)W7ApH~6%8QLkJ+cQ$ABzE`m@`#KF z&f^Wy@d+wbg5tOwsk771sepN*Qmd^)?+gQ#N_goM(hHw^LkV1M6e1+5#Q2TRWkA1~ zo|SeEp{JeIT5at?W9aF+r>B?qjKVlzHf~TT<Kq)Z6&`z5uTMq#`&G4CZOt{K=qcRY z%X^Ohi&)@2QYzw*2bD^35IIQ8Og)<b%)^zn+S)CR#?aHQX=r2A5DUELDn*>$f#R49 z=(kfdQZB>;^Jxv*8KI4Z;ku=l{<FM&<^(my0;3=*HZD#{#bftmz&M+lk-E283B)hu zHDoRJ$Ow5Vn}&9W4Y9zv92JA)@iHv}8M{-{Gcr=k9>fCkX?1l?Z4EjYWT<rM@gh&3 zx!wWKVu5{F9vK}Yk1A=50?xif^Z}faQuIOr%!6e$HMKPeZWyXvVir&LnLBS*K^!oz zSEMHAA4TNp!N!!-G~^-qU<@$tlvmZ%RPU1*DPDTE%yaI%dA^qrcxs9U-qA#q0!UBK zNG)xX1FL1LPJZ7Acxsq2cb@N@@RnTQ?Mh71E7S5{$$@#Qq^hc>@~~0x6g+F5?|jd) zT;Ls4ZPY7Mi&|tr+%2mhtMFR1B{x{eblz*O@BI1mPUZmjmO5E4-LOLjtVV5VWmQ%A z1!Lf;aHjA41@l(k&jF4$UMEaWe<%aio=p{%Rpq<djB%$XsptF!e%=wUvVr}oG65YI z$haZ{*72h9ipt7rba>8CDHHpu-`oX$3%!%tvVqxls;aPL&tn;|&KH%HS5%gw6M}|H znOM6$=ld;O<dc;LSX(r(E*F)Ql~<G;HO8F^XZtN&w0Lf=7T8ycic8DNOLn%j!=2Qg z3l}Y3GA|2pr(X*<m6Vp1XkWI+of_p{DCg~)^s)-rC-aMnOG=BY9~<RP&mz3hIqmsT zx66UkvM;A_Q*p_r$_GZd)6+;FbgX+}(9u%hJl1BT{6kR%B0|P$nYhnmeb7PhrAv!n zZ351PqHL7oD5ygJ$%?^RCT>&8+@<K?_@byY1;Bl>4ZXh$i}JKjjdG`Qzr`q5vwTI~ z{T$#mAJ0!mshWb^9k1HuPKQ=5^bZJJ8Mutv{3HWRTF;lJW}(bbUf!|xxznvUzZEDS zwQ@yB&HWTGX*^T9F%4y-^0LaVx67Ss0~ez_R?sScN&Y#+o$l?=PfkH8u$-){-7nhV zPS@2-m!s_2+Mty|u{9T8A?|eVXnBfeqb~WDm0peti3}Gs2@Xds3qYAWl3KflR21yJ z@)U8WS9eZt&EKHXY)sXyU#SJhn%d<~O}ipj1nLrr5~-LZgXJ3vHt#xe^4$6JXO17- zUY(z!QYsUZbUDfN)a2X)=sdcS%BFse`{GvxuGImrkkGKu5R~Z+LwpfsdSl~NYK<<t znX)0d@bI(t!PEJIuvKfQ*U46tD*i*tcEbjZI<4k><A=c0)5E!u>()}iq3<VtRSEH` z)QV$|+5=A(FV5FzC_*I?lzc`9e&tj&D@Ku!vT4Wpr|p9$%U8Ef?yM@v*r-WL+K`-< zQ(U{})XnD~08e;pGuebU{|`L<pD2A=@SWd$45PEr|8%D}!qm#PTeoiAY^_X*H~;q5 z7@fOy`(ohe$&*J9{Gwa8&WyKLbY|JJ=P3F9`)vSi_xH<3_3UZ+?hhE<x;t!Ygx{=j zlSB7zZ(T5ZeiroPw~IP^67*S5=4%)9o^~m}zltoyt|wjh1H4<$)b}p~r1tEFqaO&n zuQhZTU~P9HhGC4JBc2<+{(MAF28MO+S!Vb$Kv~bu7}3qC+1T}Fr*4F4SB0_50E(`r zR$m-4e*MrFR<;8l8NdGMd)sa<#xDc7bnP~!z3WpxeEkFdKh(Yt-QS1$=R^Jbq383# z=lh}Y@xk%+q49}*XnbQInjaYUf%%18v_C&FOgF!~cJ12r_w#$<EI%&{!%XIRE?T%u zw<h5FHNpHVN5`+skr0`QTgkN-FRqoindtuPq-@g<t2SjPbT$6%AdBZ=*u=Mg0!+lr zD&GCO!tATt@BV%JtC8<44FHXffBgH8zyG7ZKgN5nJ%4QPd-sE3n0bE(hyMEeU9Rhg z!SAe%f5vER6MiQf+pgVv^yuEz)}|BRgiZT1`oCawo>0`ISD!EKe`jCz>D5Cd<mp$- zzs(3<=N`T7`}OT>|K)pT-?wi+``$e|^9;OLK8exHy7aQ|XDIYrv+vu_zE>Bszu{SM zZF(8J?f1>TZ{J=v+)r}LZ;Y_$Y2WYtKJU|~Pw(D+`t*6P4fg%)ds=+5=RgzM_3it+ z7`^R!bhWkZ{#mcyUw+xU*Js^rZM*ic>;1c*^zCaW{3MTo5cc}rt@r9-+r8i5ss8e; z>YYbUoIZWx$j<64x&PF`{kq%s==Dw;?ECc+{`EevuzM$ZpU-W3eCr-rbHTuF;`xP| zNcV4h*na-@aoG2>vv~6eKh8Ma-x=?Awx2sv^>^Q0SN~{t>nX?2ZS8*R1^d3;IUg4p z8DaJ1Z_m9?k8Xp=y}w(;4O`=0a!|J(zjZ?2FRecIA#gwYt?PStwVPJ_hwY<rdr~~j zuIroOXy5O%kDH8^_HS;!PuJcH_8AXn$o4Jh-Stf$^tJ!pM)|)pdbi(hzPsK0qlRL% zZ%60bb$>k$?E7{5vo8jYUBB02yRMUWwI9it?V8;6%}DHL_veP8S)bQ^-^cd5?AP0n zKW}Z>-`T!?2z~pQ{dfJYGl9K+v9-7BzU1bgkNehcF6nOf+LgWFzivRMH<P~GH^py# zeVi44(@p;%?far#+<#+MuOEG%E>kXkT+nyz;*>70pFuyX|0eox;lJocHNETTW37qm z_JzI+{;LLb(%-%P=e^QDHsT*Gz1QdZLD28Rk3gUw`1U>f*ZtAW$D6i)PkjUWerOPy z=|{eOk8ciqe7N`Rz&AZ~4Y0Rwe;RW7=zrE@!14E;{1rPs;B^D~w6_q^?R33w-}9SK z93J5KH~L4=*RGwVxT}8becu1zU%6MqcCi2Fx>?Y#tI=6#sSn?)SG{2uf6eN9>33)S zjJ*vx`mxuiTjpO2WXv+V=@ue;d&5J3_)I_bx`>TA_^T%FqI&{;KQp)^>a6R1`)*S{ z$*O0_nx=HqO|O2P4GaOcevSP6-&YJtKaE}aw|)$MY2dTFhpzYgbT^ub`xI8zT{i^! zc7Lw}%=Hi7cIl@GW89Y7>W9E@Ntf3~=(h=W-`z2;{S<cRJKdJd-tG@WP^h2!UGqOh zkoGLUt9}(iY1y|%>!ll*-6yxUr~MSxI$5_Xw(s@3k5m2a_xXJPrwGx$?bm-G{;mUF zKmD!?+LwMBTcCRazZ(Ji!QZ?0iBA)ueLK-x_i6U-6wuH8u72$cKb86EI-qZl--aJY zH~9M4wUed)ly=BY{~r47HDsfkeBGyi${_98blnu_XY;xP2>s;i`nRsU?^>CD1onEp z2AS%XUb{ih-u=zrY0n1f7Qw!z`VJ83;@kdhul@H;ta}Ue73t#ZyT8xppLE0Bz8%o5 zL9ZVGPj~yDkNn%V9q(I{qi!G2mxnq)zwfb?y#KSm&m_7Bpx+1S7oQ$m{=R7M+m;^a zEvQ?9=)KYE(`&$k_kZ>G*@FRSFK*wPj$u6A;@4xw-xth~&Cqp#JrBbKy2Z~{X6RRc zpULzCK#0Ab{oQN-zF3B=R<{JB6+k!qdiVPTnU+6e7yF@?aNnM<cV2cwUj7;NU$>V- z&=PFli^kHu3wuoa>n{JCP16m)J}eX6cC>52pHu&J^Vh!vd3@dUvyJ)d9{-$0>t8_@ zopkZLX8$?$U$<=iCQN9fi{HKauY3G+R;{0aR$Wm1KA(MLiu>bj*Jo(p_qFM&i{I<W z$9wuXJJL%Rze{&r{N5)&&dbN!$=<s7U3F=>-d~>icuyZ^r@z!KfE^ycqx-+3$6rU! zzm8siI(q%>==V=YzkfS=|Dn%(b=>}|qxYX3zW?s%?~jiD{_5!O&yN27?(qCWN9SKU zI{(zs`L_<wKX!EfwWIUT9iD%Gy##d_f9P=j($V~>qxoBh^T&?nuWv>`hw<l*=I<ER zU57zB?EFE8pTFqn^CumC{-&ePA7LGR{tD~p^Jg7?{;s3XA7UMS{u1lx^QTxxpTF(! z^T%%+&_U;~v5r1}j&=0;d#t1D53r7|zrZ@W{sg@ZJGA}=!#cYDsKe{8&@k-K`ZHu5 zTYrZhLdVu0Vps>)U+VgxL+ej<)}i&cI_uc_W1V$q{q<`@_2)f%^|9~!JG1Z8tLNWe gfBu`%SUd}%l}#7)e;stOu@YMFSid{Z{omXF2iXw8$^ZZW diff --git a/interface/icon/interface.ico b/interface/icon/interface.ico index e3d852cb41008ddd5d28970d58bee35a2666d71f..077cfdeb63e174a465c847739efd78193ddee30d 100644 GIT binary patch literal 40280 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 bF*I4j1Hz)DXt)Xn%B-xQAzvwL5&FLXN{8}s literal 52562 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 D)Fem? diff --git a/server-console/resources/console-beta.icns b/server-console/resources/console-beta.icns index 70a00698bd67ca9832df0ec78bda70ee73701b4b..a7317c863ace3c7660c779028608f24fa8f7f14d 100644 GIT binary patch literal 304462 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 W|l|+YSBw{g`H-O*VBmKtCwmD1X<EY<KD% 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 literal 399366 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 c{yT^(-dH+5V-t! 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Π%9J`9<D`o+@hGNYjxublQ*Atn+b253P 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�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�!uYHOp%NE&N(#N*nrs(T~{ zVUYO1C6$QV8Z53eC=lJjxHc<ULxW+hY5csDh8YaO&=CILp%4aDYe$c%!4PDib-j$- z>^0ly4R$D1-!AOawzVV~BLH!?dml`xx_y__To|V=+)&_o{|VKihns<FhHu3>Kk9om zkz}{SgEMKQo`Irq6j}u2(4!}J(1fVu8J8p8oh9hD=qXYVH-zNrwDR0$_%~<6RVguE zBCp`uj8jH(p*}n?NTo}NWq!_-K-Sew#6<r!J=zWpmkg-f=A=f%XGXsN@A$6zVuzj! z&ZI{5W4Rvz9v)xGIj8F_KYV|ABe%s7wqJG`$Fp~DiVt%oiz%hw#^&tZxasWG%Qok= z_433Hp4z&m{S0|#TH2kObh)$jX3yG($mHb~bI$D{cNmK9eix=Obibe>WstQt@Rw6Y zS4OAb9)8ue${?Dqjo#(<p<tjP6bUixAQ6pC-V(5ftSsRmtsv>+vvNelSQrt8HnJ+h z18DE(NbwV%y2w;QGXia`_#%R%-sDTl-}3IG0NTgFEGop~r*d(n1p99l$j(V6GJ_5r zNal$<<&!v3eLt~(UfDpkO4>nZ`WMxFmN-qw<NoK?1F;OYR-yr+tBkcR2jPRE^z}kx zBfoTc&y$jrQS`Snu|3mGKPEV65pt1%IH?*oM=M#n|6XL;pOOB?@Mxf$LobR{vx+k8 zKhsD}5=-Y7X?S3+nFuXBrPZqp=;q<dR2A|}PfxDY!^HpO!PeMuN-gi07mJkOYOnp^ z@u|AFq~xayo&^rI%xw)aKKbG2o`<gmg1#7?4^Bv|{}b>tET8d@Uo?z}q_TqyWaP@r zcX~NH^2yH0uuzvTvF*Bs{A{{Xi2)3}z|)hc&{Mb{F$6?X16<XyJ<9}iU<d;Fzd8|X zwZR?E>ZKh>4Tc;UAb#+ecwn$sTsPaHZieqJUNOkRxSrcsG&Lgmc=$JAdCi4$*EoP+ zpj6P2%R^A~;h{ZEMT_k7eNc@TC*33j&zq|A;at|@S-7!xB=8}ePK-B3TQNsDAOHA8 zPE=j1{t*kF8dyZ45hg8P=?p&UV9O2W6u|P!=vix*bfE@xRk{D+j{y+Iw}e$+>}cMl z%|zmXeC$dT6dIzCs`aTSe_8L9ogYtktMC}U*bQqINUSvQ2|ETDc8<&KYm@%DT9i5s zWd8M`Ioj!phck3$z~WeF`OrBD5bwO}P5$0oNb&@7v}-eILyFXJv!`&+&knN)wyH5O zd4q?riut{IN{*}J=Txk#49NPzDCxy<PzN@b|J$XIv8cggiOKpdu|$wUIsfPi^*Ceg zL4cd%$aEB){2P-qL^3MiTM{vV_-Fs5>RafnoyidQe{qVt@b9w2*=atj)`nEAmHT_- zxwM%2mgL1^LL}8paX)||jseIHypvc_Ly-!x1@!7GZ7^wKSpla){Q7REQ1%!6m=I2{ zWs?oRiuEbFdo+Zu@rRgBgwY^)riJNfe3qr!uYqr&n9!>y-Q{{8=Hl<gl6@3=ew#1E z$pI#lyf~olas3l}X&UoD=+x{Xx&~IiL2*MVm&+LQJ8po4KHl27ALH}g{^-U-bjPka zA_ON!AJn~2XrD4_peBLBT35c2<yJQ4AjMeT?ILv{gbXg~p<nx`qO#uKG8BS#$Hw=| z*Q^z$V)7a!HQ*~)>ngAmVj0AdOD6{9a?o#2N$z<tjJ9|Ch!qozF2|c~D*1^S2f%|< zW3{)UVd{TfA0HNM{|5t2mg`oc69-c+IFsPfC?d@&%1SRL<5jD-KmUV+e~LeDI5(i( z=8Cac;9#o0XsD%pXeg{MOoU^L@C>??JA#uPaOsEfV#AXobrJ0%+md8Pb>BC9iA6KM zQ%xS}ZNPLoZX-Mv9tyAC31zmKYgjUQVV^qxTB6(b_%KO+I-38xI<ccXWu1dcxrfs` zi9<OJAVL#%Bq0sr@pvm77|f}uOvnD;a3XNfd{$M<Sh+;^FR7X9{fP`zI1%H`1>B$k zPdS&`nx+eY+W1E2>|O9?O6YcE&R(}zXSaQKkuE{T9?!C*oJx%sXUe1OyJ|9F&rfTG zA7a~7TdvWypRt!}ZCL~EUn=L*gDm9A8^^IE5LA@DW&}f|lv)ysj2TjChp<82NY(3J z-!ZwnUab-PxH%9@8zYIUl-hp3fk-ZP5gv1pDl`2)?>apGHwnVCJnB3|2DJO6=>MQW zAz`!TwjP(1wr((I`O~?cY88QvK{yE$e-Dq__3WcZ@ZJx1U>SqfbRt&-t|ripyTr*` ztcwQ!W%wR%YQib5xV&iXd+%*FOB?jkzPT&SC!3BFE?DduWw1sQ9S3lysH?{zvkW|~ z`X=?S-ry5S4WQbSex1MigAPF;FEUT63jv4G<6FX<o?1J0%~2qnw#i@!!Ia2cTA=u6 zBj(|*Loidz=6l!1;aV>Y`Uf3TJ(G6{WPxqvWWsMBa)m%Ap(P-Uujv^X-pnP>PBL33 zq2rY3DD5?QBKI@w2L}GP)!E#6$<ET%v8B%e5&qJEYJ7f^U(Y%F$O9){AB(?@?aG9^ zl`v^}z^7vr^K+&g8#r3!IhlK(lXAsR8YQCuLp~8sXbdJd)!;tde9Q#KxXKADJs6<* z{zS4}RKppNm?z{+n*ZZg$>4g$EU4VWaB?uJe+bjhREo00%gWa6o@1CSkZFLnmORDn zttDJwD5WzN-k&a4Of8I}{sxu4tLTqMIl^9+o3TOg+2;c{kDEADTL7w|h#Q-dzyCXE zgh$}n38O%Rtl+arsWIlvyQ6Tmd(XWhM0pVoYcSZD<Nbo3E8Y@fS#WQ)SXR#kdR$NR zsi`GLePjA4piA`s>Zj9FD>Mfi1mRR)<S_;1H_`NKU^Iy=cy~;q9jKhXa)s0(-u?(U z!d4*;gCyotaJ*^X*NL3ebm9W9&-hy5orSe|os06)&}`>roKaw()nPTXuaff3c(KP9 z*f<4!#LswAkyi;VG=6LDIhJ`EnuE!$^cnF(&|XobPG49CH4ebT78gOL*Lm;dsXeZO zx99mD&a6x~*uiXCUla!*LPS#vO~E(6Ro<PkJ{E?4dloCLYyO4|#3{3&0P~AcdTOG^ z-Kk$>ez1v!UY)mQsJG&A;3>QMcXkVWx;If=KYQ1U8Ijg~e`7K&^Ul%K)HH8&bd<FF zAu<F)fJ60JEL<BeeX_wzG@r3%wJYFOUtV6W0De6%P?-q~ArqfN@Q_WR1z3@<x~pH0 z3X3J<x(lc3xpn+9#=l<A1ddB_t_b+MENNWf;!oVS^I`0lU)@ebN}cW=>VEs`8a(0A z@~ZXdLjEtqPITSc5SoyR7U0u>7Lv4BSqFb8u2!{+UwH`_DYx-YaeMYe>H7nucRVAr zUvjS6ur0%72?z;;7OV8?SCy%b#1A=~PJ>ILRNLc8`J3Rny*9BUN5my7|1*QEm65)t zSNtxgl33VSzo!nazTW<9h1A;g^%=v{*MyIAOngJE`{?fr(q?xLS*?4TB7_CRfhuZc zCHwX}NAouE|4Tri&!oU6sV)Tje~V!)^;ft!z^Gq!lKOp|3OWk#mvN(Iy(SPcWccAw z_AbBa-bkL6P3X(kr;@y~j4#l{+919(L>UP&6Gd}I!ItUJj##90DVm|RItv9M9(MMA z&IJB^23e96OXT@+J@K!(#2>E3U=fQ~TCTpW6kMM9AAlOEA|ye4I&MJ5cDpALb}}Al z1y6uW^1trT?UoZS6I4UVw+Jsg^?v{0?NEO`*9Ejbav4f+16e1xyy7WfiaXcJXx;aW zRRW2d9Wyf1_o9@IO$cONQ6Za??Z0niM+Q~*T>N!g<ZJmjbGl<ZbNp6@_Fct;VVh?T z)?N^O$um;Od)et$QaV4q`k<#a3RRm;M~+vXw=-y`T6vyb5p&Az$N&lc>s;tJR9sLu zhcymxGYy|qvqm3}@f0`k@$r{umf(@!YW=9l^Nru{t{&naB5BbRqJ32!Z*xf3Nv*IN zpFaSTr$f4jcUMkQ+<Z*$iEs6XJk=MgoP7jo&A)3@;*_erLeo`UBiol5FfZ+g>be(n zf0EBsXjL*|7BDgp^SOtLCVn(gQ&YpT)?GUgF5#!<IjNpx`dGw06d?b#`=y!H_`{#c zlSGv;Jq2{lsy)Jk6Y*?i$F0nsfqovi6p}#2T&4uMJ{2$$L)hXvzaE(5LQi+eF(5RK zOr<M$h;WYFa%*{6Aq`;p{;$}9Cn$s|@|!4T7EaH@kOA~By%ENiV?3wqp15<Mi(3r8 zu1f@oFC;V!O<D_@DH^UrU<MS-qBNav$|!m^LNWi=C1@^!YCZ}R5Fqdigfj?}1)rBg z^%kMW3)N0D?LODXz<er0yWt{=KoYoTgHZV;fiCot9cCkhc`TRTzk|1~P{D-_g1D#} zj&R8PW%SBH7cTw1eE0fA2RFZT6p>h(P6R{g(sJU<bnjrneK93HcqBwpyN*}<w{_vs zz<>Dy-kIlnxI9LCV!y!8PJ%c9I$vBOGJuLT7y3YE4h2L#1-1{Q7%1-Gvakemf15sm z@_nenAUe&Ct51%Rm}IEGFqK_;)&^>35C`*6XFB#xS9io7j?RfZ!I(AOw`c@2(hLt{ zFn?;FiVBlX9f#xX;1Le^PVUf*@ny`0QNUXBL8oh!Nihw03C9-R=COXPsoP6|N-2re zKfC9?LL1TwqA(!{Wj>Loi;Pup>n?LnO7F==x_I5s??iSjyDe1k+Z7Xj*J>)_NA^hr z0J8W%0vZ^=a3cNQ4?isEN7?x6Tpby{L$IRgttFhU+65Z}s&e0ak1aj6)p;yVfz_X6 z+RW4CMn5uR=spA}=AyunzcaF)Y9hOVGCNHsRzuTcyv_>o7#;?shzF{!pRuZ_0gf~f zdpSZiX1&=d1sxc`x*2w<o(|1HnGu!I9pbHaan6gjnsycyji3fY5Gs1;1Y-6CW%mW> za#MrP^F(IPnzPW9{{Mi(jWh=6#y<Ay#S+d7gtWECy>aC#zfHB$Sj!<)Q*ZmEy!B2e zYze~ou(&IA<or(EJm=5@r_k(lxiRPZ>T0hy%UC<?<Dy;d*|2<8u$gaHz@^r5l$o!O zSQj%2R}8PokwofOw{)I+YJfp;HYhZfc=93I(>F=uo*E!($9ujH`f%!1GLfk|vM;Pz z!H1`S+x{W7jUk)4Nn5WfNR*0TNR4@~aAYr;6G}d0rMWSbj#J%{>`@R|A0pSTAGD`A zpMPS|Svy^}R|RzvxnG@|)_P8vsr<zAbz7DIBL=JnZn(e!iQl5lg@)V(xfhXS;N5BK zsLPjnreRNBRd6$k8X6ckdbA?@xU@{lXZ#d<3l`T4`&h=xw-w20Cf^_1gL2Kk!vHe* zgC#b#pb}qLET&u(7A7D+HVQ-^xDxGzV3;&U#mHhKBZ0G+rHFP#^|p7vU<F#s8KA0H zv5sv%xNX*y!!K$jswnn89{+hzs&UuZ+PZu)>)>G%l~8+&#TV}{m?&U*(GHJg!TdRt zg}fR6tUTl@mGrr;_U_2?`SiCKxy_p-*|(MhTdD*T2?NjY;Q~8)%n}@lg!ITfOkkqC zg7nl4`O=C;1Di32iK(A1>uPJE>1yM82}>WwU&e8qr1}vcGN)*_zx}V1cX<xObq*I2 zVX~>ZI(1FAb2Jok)W~6YAj>_1L?p9nZKTqgF?Ss<BEL68!hwc1<tdp9A=6g|YPQFp z<Zb5S-qcSs@-lx_&$3dZZc?VTv`|%-VcPn<An%&YTZEstLyFk_n-$cZwfWhnSAqQ7 z>iFnd=n{vQ4T4tRu!WWjqt-cNF{-`a4<^Ra3PZoL&)1k0i>;x<O(*$Ry&}@PT01{n zX~^=RXT|U*Nzp2b4Tx53McNF=j31LTDNV4W`h>rzZWnIl5vu+PS14Nwr&oU!A=J=c zccfE~dzJ<+JRn<S!nNZt0;Pa!5vJa?SM$XJ<v(GZ6lpWwJNWd-VZ<O&iR4mlJMWma zdy5?Oh}^kaQj3O(qPUk&!)Mb8bwbUhqj!%f-{9yH%g3cH&#+N@4_Qn>;QF?=A(C>$ zsgBDsw03-IQ^U8KO)ku-KUd^wEBRHIN=|ozfj*BdCEWQ@`0PL0^(&k2^oC;);JrPW z@JoM6BCkHKNiRch-G@7#SccoSspVO$iP4Zx>JxDC#*8|AJ%(OhUWip=qN1822;rti zv4&=JYPOnPrq1VsMWX%DiwAD--!~plODxb38yju%NQNBzH=)qB&2x2)Uaqk!2bOcI z_|oKyYWNKKGbS!@uQk)lmPh^)lPDJ4@!FBikXtUV>=>VKLmp#^pkoGOGsli|_s)4~ zD<O5ljm0dVSh3C}ek2@x$aJ`7Xtdy#cRc&8QO&FA5$Ho#@cEgoV)0kx-AiYT=h!1g zS7o{Pm?e`z^O6v5?k(EZ8}E{C3s&0xxf)0CHrmdQd$ne)?SX=JnSvZ6iiP`Dtuc{j zcf0aWf?~TG6ZVg8z_)}6(V4xcXdl}TcmH7vM`pdb^v|KG#BpqxGaj=xE#k$In>xy5 z`p}Ub&0sUl4dLP~YoP~B8~cH*s}oU2tj^|07kSU%hr`x~=7J?E3w6f4$LjUI{6!bB z+JlCf{NrE_<h<<4u2TRI2mbw*!_iBy*z*+GE+kzwmRXr5ml3%%6tnyD0dO;<NTf(A zGf$jCEiL;F0fIjhSX`YK@P)u&=w?ujI^|^%!Lv%gWas$rYv>nw(`jelzQ8K<AMYCz zjrE{(ncj3AHgE7t&OAzWejRY+U_~N!njqJT5lD%bfLN;Ro3-1PR}2em5_<yuNZ}pW zU%w-aFC#qJp0h?Img(y3b5HtYeLIyi$J<fUj`SZEK2jYPyZdN6UxaJX$lg8Mv5o%i zfQj#+*}ac|Nv|yvb)T)kL2RseHC9J$DdLA_V;j+N%Orh`J7LWzXw;U-cmyPO<A4JY zq2mB8^ww7KWAiOmX!U~zoeO5~!W@vlv$$L3dgJYid81h5PODf=9duCxi<AjrK#jv3 zNtVEsR@UvNm8PEh*2+Yemn91rV#^VlWFvl^g%D9rAE9>TMrOH%7%}(RfzZfSqr%;@ zCrSz(W6;W)*OaMIev_i&?4)5ivqRYmi`zv>`S}|NfZNu%_a2Nc{qrbATdbEhaIr$R zkavanR{2+epN8@RW*S!x8~1!5Gg>SqI!m!38YQ-3rj+nLR5>-<OHT-y?SMts7hV?= z2PA%vjsv{NK%k>Q+5J3!%SI#uXg<$I^yHl_w7WQEy0QbYX)5poP$NOA49d4x!BGm> zHhelu<+s^?QqtX5Y3BKkFW3~^euuU?MAV|8mvGLRWN<GON5NsoanA*p&!GmxV0-$& z`*CHvmV%RK{?7cZqlgv^Z=UX5#snuAINA;;=x8ehk366d%uI;2vg5y9NnZ}R<UgMa zPu5+K{zL|^tCH_OqP#3*!FQU`nA8O0$d1vjqQOeR*>+xwU`9|tXdmfztr)l^Lt26| zC7^6ul~9yt?2+*?o{C<7+IP%7db!07I42B!=3(>8_%joRSQ?9aEVOKli36NO>2F6O zs5rmJZz2&(2t|XAYG}zs|N6mjUqUr|G<f|xHM=OAW9L87#E1mChc)X(bHvx<-YVJc zjW;XaU*!hESObE|BBC`-8x{Yw5`wzt{R2ZYG4Bg3SF=C~PNym%12S=R)WC(d(EPW3 zlF~-U4+ujy#hyd=rFW(1-%k=8elP~bLte;<z^TGsGiTw<)_waLHqVJ}<<?WKCZ8P0 zFtP!+zbBel8jnj*rvCT)Rz1Y5Lp+S9ovi^&@8=$$OPlt?=tsSrmozfpD_J|Y3e+M4 zsK()1swdtrCS~>vE0>yq%pvRv=i3;1`a_szdTc**=!e^$Kii6KX~xV5n+uF!3*rFw z;y?8pE2JbOdPWD;!Jh=}Fas|8uN$zBU)pbmBkveWg}>0rtX><M3{_ajYnQ$OiPMzS z)U7jik?DmNM>{0_B-M^>43rI6TA9fpTsF%66B}Tf2ijl^L?_Rc@2sdjWy`*LqL4A1 zAX6kmq>vIcBnh%rE5IRz>B;6huc<FzEZsL)T)8vp*UeW5u;cd6kq>JTqOB%AEZorG z+dfq!>`usxx{d4Xsy4&>kpy)i19$2AXx#eMp<lwF$O9dArWSW^58N|suyBV+#Exiy zSpx9b8<weBoVd{*XxWAn4FmK+v{6NB(<K?0G;ao-ed_ws8Sv=wgfn!beZp4P@caWh z1R`U>!(j61=L5g*+ZjAey5y*ssk7ogavhhOeXPP|=%N^B<~P%@55?PBrmy|AAOWqa z{Cv!|{N4xg$FudD(<ckjRHqdS2X=E)$PavdR6;5?<2t)m<o;4RGrDO7+Vxj?=2Do< znDeyBSq`DP>jIzB&uJWrToN<H{5Q`@d8D4Stgnu!#TFJ4*^9pggVl>b-Dfk&6{wX^ zrdv7ak<rkmXb)HUFG4aPJo?GWdFt;Zr9<LSV1HC0EwHw{7l9bW)Ook^*|%$dlDquc zW=QQ#+-X!SI=GFHrSvv0K=xSlo8o}Ng043D(gBVEqj~8wIjq7<`*D_gRmXz`H!tAM z>yrrQr9g-0oobu0CBV}em*R-EKL&7kG&*2xu4x!5AIjd8{9G56L*Xc!Q>EtyFg`eo z9aiQ$Yt>a^YrjlGGhl(qf6OFIV94U)F6lbmQSp&k9*(lB<6`l?=pv!6SjV7n9^SH3 zG2G}WUF4m&Yw-_9E+cu?+k|3MtuDAWNH++72L#?lbe+^Rs(zz%?nbWBGj&4s@x=eq z3?I`@g$-b~oN!3<<PDlKuzdPZW66<C{*Q#9gDhY07ds<WTIXeNzOSX{Du}QNjMWVi z)^WWnN}@^%)5}z*885^P5{ma6`y^et{!N^8C`d(1*i*w_o+}NRLv&H>qm*`?`79nz z4gAnD8NE_zM8ZaLRXn>gw)0!Cy+5Mg{VIpch@{0zu&i2MC41p`X`c9>rOX5x9ps8w zzyROg=LBbd4tl3xJy)4G9g)}-?z82Pk}(`fQ#&`&diYKnI|>2*EfvrYo>U)VknH~a z^039u*l2&zOzi!R%%iV3O-5|xXClE+uY!loFWT;!<ib+a$R}~90$UYMEy7fN1>*K^ zJ*HI*Lv4f)>5T`t59VSA;}=iAm=PioH}ea=TV~D&OWMZ`g&*F)pOkIZBfYu!K!(Bg zJo$6>{+D0*v67U{-0`-}sh_dBU==1^Nr~QGWKjX8WDzB{JiIi3Oq-Rg^Hn^*wE<mT zT-qT)B<9H|2*pF}-dx@!-W5rxiB~oJ_Ei2`w@y1j<ayPy_`os025r-y+S7pfsOo;3 z0DrAM2<8cvnKoQrJ2qxjH2*77&<_-|zgM1mo-X#;dCmM+BCxsyxZXF(h8dtgA>v6N z$^~3Fiaiv*DJ99-ux4w>41tGF{-#Z@G?es@@>mS&T3PRsJO*Wo2&v}{IhKwud{Y^b z4Uj$_3{;vE7??x|j!2XzphxaU1yck4@(Kzf_p!jr&b_9V+S->$^{#C8(zE?M+nlQA z^)S<zjR6S>+Kkq<4tHMspPyv?w5y7#N4j#EVq^XoM9_E_03*gv4+*8->nI_YFT7ZL z4u<)2TSISUOgv4_E?EFw>csM>>5##n_5{ccPeNi57aJ0S#k2yOSRsRKMDOdAS*82o zQ+i@NQ8G9`c7N&1^!b&t)B$I4e*(cpUs2;juQK;=!0PEHPQ&7EYb>S7>x^wR3LyXC zPaM+iXZ)44Bno$W29m0R%9RwQf^F@J90g47WN9+Ft0F^4=S?bAc;_GWDq$b}FDX0+ z5K=;lJZMh;W^}GMqK}f7?m6UiBsGm0DbgM{tKw&9(w1B<)z;a)FFEqbCJm~+)~Sjm z&Pa4H(0FQ${o7d3Suq!Qv@J^1r(p~`LV+!$b1i+g_$;y$U)_x(2~4ofYX17uQ55Cr z!1$f4i!Gv9tJxyps|tsr;}@x=2e1?GhN|saGksX7a>^Rpgsh5rU>)Y6WPt3N%Bk!( zrIB3kSiYdwA`gESH0~|<;F359GNAO!qu9|;7D7ze=~x*f&l27VYBrXDI(57qI^8=L zQKAvs<b7UcUYHpVSFl;#F}5BGvCwR=q$#;VV_h3DzVOcl?B3Dyk2F=4Fe2#3qLChD z;AFQA-s&M_UOkLtS`ln{)8%-eY^nd&e=qTVEoO+|B_{nx<K0pHnYb?!3$eS6)DNV) zaJ9T54ynoDWCOljvb%ubsn6Y1?xT^3GlMFfMYM?>a^dxXG=!Kj(fhl3HK0~@)ZI)< zZ2f<^!J3<FkV4r_f92!M=Uu7+`#2=(jN2GmX#DOIEj)Jav@vunu>pT&u4((G&9!Rv zy0v}a;%o9t0^CoFTY|5N;Ga9VGP*1#J>iKDjSB^MVCBoJ#s;4)_B5G5z65c{wR3FS z0C3d{#t9sV>IJNqjiy}q_bW`i(&#Zm`~5R{s?)N(95KgP3NTy*Tz$MTW8@aX!3I$Z zttgfKqz4;S>D62MyDjdCJ^ifYSPh~ond+-tGDc8HHLzkWY+Q#*k_KhS2@|l^^IYlS zOr-Xf{@slIntJ9RbX!$%{k0&W9V3x_o*QzjwcKHif11@6rrmif#z3^EdUh$RzJ>xV z-<S<fStD0KNCQi4>#%Y%=lK5h6Wq<am3@L5S5FNlb`^PJ{}!g`M*%A#{PW|HSCALE ziv^r~wps0ESG|eJ+!p3i<~mKfY$ORl#=QnX;SwbNht)4He#?#K7+QqsNwKAWzJ9IE zVN>D^=#SO1BEG0=BK&+xCZK7$-%DbBPz^QVD&A}U{x?`wHQP-&KSU#;1n)!?IdbG^ zH50M@nZbdGD>F?*DB_OglcPg)T%UTJfCS|-PE-q^3i@HuvPgDY*nuRN6PVjLpd%LK zu}{97lMuAyc@#MQ$F!)`e8f{9I;W}sIwj3;$y&&zcz&JM8}{A2*xK6a;ff%`b8`uV zY$w-^f>f_|n;?P>PdD9~NUx^dj5)h^Bc|SlhNw{)?7yLYS{NcnAxVKocgiLj?&|U| zISp%9t~7?i(+~Eru-Mc5{*5o0Pg_|-gY5#MWMuqPseFj$w_4m?k^m6FRo~VNZym)R zK6I_h5c~Y-RX;vOOPfA7qn~8*KP6-{fGZZL3Now6PQ9<{@MwSIX!UAZz=Vos8pmSV zjbI8KU$n3rHhxKaf6eye?KMhcSg!bx!gziNcS87;$@VzvyM4Z*zPw-A`nk^USbaAT z-tsjNw1P5znLZ<L!3Q%)Q*MF9)7cDn+UQY*6K3QrPrcWe7OD)agf1z(RIAY@tlg9K znoUl3@(%Cs#Y#QaCu-uZYXT)cM=akv29%=CR0jz^)R_Hv@n(>n?`G>wb1IoiljCMU z(tcew6vz;IJ#-&FSpNBH@m72|go<8$T&=_A(pYwCu+~^Yj~ld)_FFj^4x(HrfF2x$ z24MC{{f_p8@3s(Gj6Cb<5fPaX%Rv;o19si*|GKsNFmKjP&`oVMi<XSd5b8#Fv&{Sw z9i%u-5=sqh3fPd}w|O90uJ^{rA2*O6kqNLy0UK5eL}mrc@uw-+Eo41)JaX*jE+z)T zRv4I!yW&5ozQv<Qmd5>OKc-=a^5gkKx1qL;(g>#S4(3tN46@yFKv(n;alvOV9H{6S zn*PIJWJAEK`i{C(G-J8E#;4Ak<7iuvWYg&GI&owKNiS1QR#L&V`K^(5s1Ln*x*c0S zfh>h~qT+pCSUQ{V%cH&Rd^I6!%QoZk>nV$C54ey8<%FV*C~;E;>T)5olY<O=ae^zL zlt#YDefrzyJ6*0KDout&MppRg*s{+Gf#vZ+A?tc8$VNEsu7*~0ehW#g25;Wnp^MFO z6LoV2mi)D@3~?_;C;l;xue(eo+f60^%<GfPSi->+gSk1`a(Ke)iQE&00=Uxn>37|5 zSsc=zBg-Oy9GWRqVipBpLvt9L?0}Myrh`gTi=XuKk17FMRKvCl0)u7`RS=79`l)uE z!RZnkH`am9?}`j1HbbOKdcRaYnd5YypplZv_kS5PVnO;5`0TcPGoUi-@{l=unr50Z zMSCLzW@CUOe?3`ESuGWY-ff_1{xajYgv+O7;FkDuil+V~ih~U@$-DS1B})TQapa$W zdW2*J-y5pXzxS6dQhKZoc3rQsGAi}Zuqt@Zj)~H%S$+HG+&b)Ywg3TqK7Ds2*5xl$ z1=BgF?b3CP(#i<c^ke5WDWlk=?U~JCH->syq%5yvvj)HMH}d1d=sv{Brn58~8P)Jh zU2kp!7(JQ0_3!^Y3=2Q+2F=JNuB|YP=3#9=9zAtU(i5&q+I8kw5}&#hGZu-|#`@pP zeM?7NY&9O3&uKW=RJ&P~TbMfHr`Humku=QSt5M=`?sc0*Y(uE1Wf|~f=tlwb!7tvF zc}PdFvQQi00My_%yk%ARiW<!ILRqU;@4pJ}4;NGzV?ULB`QGwCqjhZl66;Kd@Qc>r zwIyHh((^GNiQ{X5>^(COf~WD14;Spn3-ZR>Vm-%o@velv<28JLHKQp0IVp0Xz2&`U zn^=Vz{&u%)Y?6~3sDsCD3}E0x+2=0>(+_(Hyjlxc-E^7GbV>aV)_v}Ce>yy;vDt1A zoF@!&O_=abtlE!wd;HPjpf@2{;K1G<`eelv224Iipp`$b(lC_k9V7%N4B13Rin`Gk zdkmMZllw-u<7)}%sb&f$Xm%8TlITu=i~@^O*j@EF02~|hUn!BuZ<2%w0c<;?UH%J> zPn+y2)AUkK1xnm|xXcf=x1wr0uAa?h{2r5=&K4zKkmjj_f^Iyre2<hG9!K(yb5_^h zcy^wu%o6g!y~)QrU}Pp-{n7!V-87XIhlkWiu_4SO1(Q@qGQ}z!mf5ivU$6V7ak(1I z(`R>-=v@xn^PG)V+6;cJHq{9xU3tpiq5pYE1HsUnPXMu?on*G9lo<O{jCCE`R4f}2 zO}94xvgWuAf~}_{uYdciYxIU5Spf9Uhinp6vQHGpB;sUH=*R_YP0_0B0?T?M^6aBF zAK}Ys04!0o?FMtX$pnSg!b11?>0U1By?rur4Gx89nm6${afa_QYlFpBL(+Wx93xyA zY)C~_Ch>0mXIPRYTP6zlR$Lq&;tQdZ>x~4sVI=l#!iVQxQ_(eNLo2P4yL=NyA1S{1 zv5s}$iHcUyf4O&vjWvX?atK99!)~$a;mY#d>}Yt{OfTry!RJ!U!Vm~U^nZfiy*Xy( z22n|AaaFK`3rLlY<s^K31e>%*_%eNa7u>%}tV}#zRsSrJz*?7sJMZK(_t*^$*^7UK zh_-IXEc4ib5_ZR$-~qj3EaHB(JRH)?%_Rsej7VuFa!rMHkr$gOeX5@3mh_&1SNKV_ zf{jt4DM1YtOADVik3oWR3*4Q>YxjnUnRyo@Dj5@(jjO}tg<SVR_;Kp_V6p8die9aS zFxue=>8m8J6HHjk<S9?-AqE%zh;kzv!-PiCKos^RQ1sYynI}*_$NCoI<FTf=Y{xyj z?cGqPrk*;>io!9PIbO*&7ItY%6dG{ptPGMma7F~L*(yG7R~|GBQG5?>Hpb^Fe6S1p z>$9+Z45M+SEybpoV^+pqqz8BAfGsNdr>YdlzpuYWocbT+6*#lN-%va|***@@lvlI} z;OWVehjdF&QI6i{ZzTVYkB2nwVeJJC2c4CI_!E%zTogoKvqW1D=$5aTOI~UhgxQSf zawHKQ(alqm5Zgf5h=I@hl{{|!FtvfbQ>t<g`IS#c_v=CGv1U(6NP|E6QNWwh;_wjX zLRO1Y++dQ#$oCJeLWk#GlMvE~bMCWXQFDaeJlORcrIx3_3J3;h{)&(u`7IB)^EAYM zC1|@Pn#bX{NQ2d8Oz1eBZb-_V&n%%fT>UeJB>56G5jr)B-8*<`!1|pD?MkQ=gxJHv z1%(XFqRY$?ZLA>({{+$BW2BGgHjl=1n9ypFzVD?ebbcKZlPdZY4_-IwFZZ)oR^V$# z!)^8<6&3RjxG)GmOomuQxI7aOv}StOB2V`$BMuJ<*rrkG3kEuWGPzg}Pno>XOKywd z{WL$ud@_H?;kj?TXXNBf-Krf^`9_J&1pmf_p~4@ko#k^0*KijP3xBr~XOwdg)l5;4 z;^`wA8%*^_n+pg2E(U@O_=U@mharIczvz5sp8cYOSv>Q4E&j2gz>CFDjsl}2Q#<fh zq}Y7KH%NDx6A?|W+Xw7FIdO6fQ&KRM&qyqGEE_pok4^Bt#&MNU37^2krvGOVN)7PP zwI<&O;*|AgSyj8K6m#djlCoUzzAy)Dk3JGyuk)C(WpsTT=v+rkLcWy+dhOn)rG8pe zx>|w77lz-9MivFR92vtI#^NRxiWb2>?;3{wsM&%K9{lGoGAOBiwaO3H-8SDdcHS{{ zpXUw=^;wTtSu+;45DIWzI&H8U(3dCJ>vDS8wXw#AV0T-gTqJkLSgjW!G>Z_w8432; z&lB$;Z_CsLki%7RvWDf^lra8LY5iCki2!e5E#9X07Q6e?KJ3u1T$d}V&9+x6H%q(s zs+W5X9EWJ8k||IU)bj6Q$naYx<NXL!CUa$pHsopW4`DqKt(g3V(m9S45$#Oh#rW|Q z<tXq#I6z1*b#Qz%q^%<BlK?ZcJ)OL`z0Z%grEJ$YPzBa@M9#GGOMwh;_M&(ZapoOy zKP4F3{!zT3(Mc&^Q0EnH`9<KVIr!&umt+1*ta3#6CnkbW(x~Eh)v*v{z=QKk(x5c3 z0&PFD6+)m3Y|Hia4^_~=yv56MK80!~h`h3i(yC?zg>t5%lR$tli1Z?=F8>*GmfL9; zN&DNRq-5#HPH*<z8?m^*1D_enK&&)!q5sU(uvOocU1FCpRpyKR^%lfvIjch?th>sl zI1E}4HF2PFH?7R$fFVjT5r-iM?~E!gb9hpZ4Y@)Hxs5Pf<bI7E*65IbPYKcft>B5s z1Fs-=oCrY%UcG-Cno)Jj2XTzfJoX3k2*CS67gVyPU~Olhk=8u4mD)nzF^a_+qcBlC z<;MX{7c-B6nw=4DkibXl)fMCELgCz|lt&VEN6&Tg+2=nilOLRA3S^a49FWtJ=P5V1 zj4n~Y@nHaBpRNC+RWoZocdmC?4++eGkgfPqXI;T!#cPYF>i~LH-P7rEJS+8$|NPRI z5?(y}EnIuEj04n_)-+a6-SuOWET8&_eABZe0L}FPYj<674w(5IP0~AtCg}wAu)&fw z%B^2f^=}umQy|+h11MmO5908U2x^AI`&bB}L8h+4(<nVf;a{WGJJKLyoV%(O>Fw(F zNY85h>XRqgf+n%;&7Wo8r8yo>5*!$s*9%gXMDvolxVujbcOrUq9urm@+%~zEe_11F zZ7yyJ=yI74$hoLR07QY{4A^k#T5<n3^rOp#N>a_>pFwRgF@!9o4#rUUP3jH_AGyyG z;_$#BTzrB!e$xw?*TijFPhJGxp#E!~#7fX{$U37Sl1yM>(xXm#su~wjz<sQ8DLG+| z%rDuyl7@NK&|Y;zb@_qg=E;i7^{FeY&hKQgI^9(+F&Vs=F==ja+i$j5sZ9Qe85Ql! zvzBc)N*yV&py77Nt|`%m>SzoM{=j2zWxpL%f3p>p@-b8uj?jkW`^%sdBr|AVVrViS z$<a}j>Sf^NQ7NdXQEWWq3&pnsLW_=w(&tL&MYXo=rx~BT4(ZZ(pA?~7mlvZ<vCz~g z_V&GwR@E+~pT$(TL#i;O>iUc>Bwg!(V8mdi=)O?k$@WuW>=q|l(?hP6%}Rd+8D+|R zG3%}O34u8YyG%&$Oo&obN)#HPM4(qr<dYBmHeZKe|04EL?hwPE{^ia|Wh!}sZtGa^ zsYJxCrt>_4GrhCfNO?c-=?y;m`>T9ES=-7z_Zyn#X&YET$n;9XV5jp5r&G7@l>{y& z3P}Xe>9+M1_m6>gbPfoX7(>8w!m#;bO0SV!IZnlInev^2r^@EDU?Vb6`}Zkc*DH6? z6tvMF=~xg#<I7+6U9Y-bmRq*-gIv`Eo`qs!qTrpT=1g~_Q-OqvNPY?dDMTi6Cb5WH z)H|ZCt>GR8gz;N3If4*03g0i4SmY12%<`HOD|4MmKulfV{$j`YTtkixCUJBwlL-5` zRrU{*We!4CxZ?(|zF30sPsY$vM4Z;G>~fw*_CyUy^}=H0h5S+Kq>QfF=e76WUN1Io zshB(Fa5}6nDq;C41WP+THtuzAvAL}KlE0wUo3>f9mpnF$Oi@Zn$oa6A?Q=I9AlB@( zLuz;ozcNe1L+BR1f2mF)U0JRxm<t>hJGa4}S^MSB8{jjv{^Rf(UNKK5b(+G{ul7|c zTZ~*z7PcNw<&^Sb_M{H$T2sum^>W{Q<NB_ULuxdE*1~*xFOhy`T2_X?49tpjUy9j` ziScI%4ue|yjV$fI?$M%NFw;8ssk#vN>{qb9yQ8s_q|eyPu^)M{r2T!pGHM)Ou^5rv zrd})v>+hsBJ?`Dp_2cZ`L!hQ1wMO^tnKh1LMn<wsWgfADf#~Z`2~GFbeXe2A3VI(C zJE@XT5_pSIS^^N|URFB}bKLEt{37$Y@71OI&MqNuSw00hnH)1Glp<a}=#vYd|E%LA zaO6Bah0$wj9Bo*GyZ(GsAiZcwpjA)vT%pM#(#P3rlo&~{{`@|b%|Pcoi=J<!kZlsF zOinS$5OgcU$%h*QU}vAMF*M$N782s6M=J?Dr_^y(?-+SF{aS7FbnW!n0ayFAaLyDZ zf9QjienbFCJt~<BjE47k>W_Mh{iy4^^FawpkbLkzrd7C-dlk^LQ2p)S!{(69QVkCu z#vAivCx@EAVucFp50qPA$Ra3e{-;LzneDe=(TjQJ@>8|Qg#d2|m2ldRLZ>qrmZ)`y zn%zYNLcwU0k1kB?2(UARS<5YD>LMN_;u54jZanS3W26ZOveDM~F0J$tr6e$1R!wL* zI?RMmgo1OBT|&A+l-Mqy4Zu2uK@9?M!}y?>rDl$;g=@21xY;-9^w#%J@ipE<e6L0J zo9jAm)hkMR4%eo8%?=&40vTaHU_dale63K1FW+v<&siS*+mq*p-Rry~!!b>UHP6l< zfiMYe^dDY)$s7^b*dWRXlD684VdLX=F<496&jLLEFY^myzNZ2DcLQE2V2xjDW0M>Y zmR`0<QVyG$F=GtYO7BzO&SlIs&+w$WS78Al??0jJ>bq$<w?DOd@U7IYx1T=i0L<_) zZVX_5QJ(J&zlCuC>UBglB~UfLc3O&B;tZ17xtnsimthmTo`jgl>l@{+KF=-&<G!85 zOFYp^O2zTi+`_w%zP~js3?G1;h{Q%V{f2L8FgL{x<}Z-<tuO1T0yLDFi^!=0veez| z6*NZLIKbN_vBF4(waDCWsd7W>0RbHgCrggq{8;a0XbqabHm-~LR&)`{+mV>VOxQEe zcr#S=cSfkphK&wWke+3`!;7mu%m!zgU`ne&J01PjF0MhgA~)}JkyG>_9pdkLMB%B~ zfQJ--j0!`pT0j8);W#gT_3dTpb=fLJ6e)d?z;BNkR=kTF1aV0@5Z)Qmj@M`3R#$5& zz3Z$MnX`uDXQPGZ@w7<}GNbMu5?wH1+_>+GE39w`zh$eq4xnKWY(|)?DPV93={CZS zY5_KGhue3JmIp6;?2pANmB=yLcVm2KhBaVfVo;LtR+Vxu@&tvbVwgxJf0%<(r~QoQ zZ6o2B0)77Ka%Y4JNL26(yQg->Hc5*M%9hQ`)(2+m0kiYjw)`6-vhuOKiI8&ZQE-?n ze(_p^eD80ne=47=R(djN7=W01bmc0vHGN%Xv7mfAf_j{*@w%>%@w6UM4trX`C^O!S zPmk%^is82}p?>@H2D2H%bJu0wULXe5ftaNxAIrN2UQ<g`ayNswmWaUglq9CuKS9!G z)6rFGsNZ1BSHqdJcl3?AhBdS@Z|Wz-e!1_$c2L`Kq$;&%(d>l}&K7(yC2~thm|PNN zjWPTKc9vz%@(jh#Hv2A@djiux`|HzNDs-QZC}dyi_CDdd*n?ZF`v{ib2asDdvRlvU zU&=X?mX3zKen>$9tj}$A<KseaTjLTCQvB?VZRbl#i<=!k{2b-6L(I2T;rzGK6V6RA zb(a}i_IaDHG8d)&LqoJM0X1=6abmlC(8Ct-H)`(-u&eDp*w$}OuL1QAA(_hL8YO27 z9wZE={-+(lKr|Z>9Wc<sOSJ29qu>V5T@-#>Y*lrT#Rbx6Wpun!dqUeyQS@xU0dc%g zd`I9F&+_9+1)`o&L$iXw3(NcYmP$rgikRwxSf1=-Xktl9nxG$RmP+fkMFK`%fC{q_ zEY5SnIKmLiMz!IuT{7Jz1OwgycBZ2bo8O<^d_p_YD!p64EMPtNSJEPF)_8wjgF}zJ zh#gfofk?W$6;A}NYMhvPl{M1ul88oud5r2V^H@>Q78mmrC&HHbHsRvt6<@yay>Qg? zvCNXQyK@k9UUg=XV|^V9j+hU&Vo}%Mot!Fqm8TDQV(}pHd=kwROCK`sJ3PHA8~Twx z`RA)qffPkMVlZ$2t<w=3=nkYU`pTwdzo=hbQPMD0%%_v5z{?5I>HuOcr4z6Lb6ciX z-vXrL+5mP^Nn)QLM;{)}JV>MCU(2q+S$l<!ZxJ26J|K*FpWwgnCD_atn|0-5tSgm% zcW=tltu8?}rmnhgt1VeSxj1v*vYJqDu4GpojKxe2F(1Xd@wu@id6*YttkvUlN2G-3 z8Dlf2GRwiQu_gNvaJd~SJuK}6w=G_7xI7TnZEnlj2`ABw1MUvSW^(x!3<N><8<_KH z*of7gLP`?-Lp`fk7r*1djv&Fe^WSfH^zZx7pKkv=k$RSYt!B@6{=<~@m`Ip<iclH^ z4Sm!hO#d9;g@i$J58rsOV&^m`v~l4{h+bm0=97|K$NhVyKlSgM<gYe;q_}17hs$t- zL*$&r4$Q+{Cz?3GNq*G2<UdJUkmrvDBBi`9P0+w*<=rIOL_-+lNwvdf?Q_=sn)l+9 zljO?l9U}aNd|32aW@4B8wM_h~K~*T`dcCcPQtK9oX{lw-3jB~?k8BL~&$-^@DSu== zT-2c`867VWrl1PC0EDiV{C@mNEU~|36P@~iZ{Rg~RC>G~iTd+>wznW9L7GzU!mpyP z?@?#~0s;cBoE%d1CJA&>))>QkJxJy_&3$&4a4ykXQ3LjJa;({D$3GzTEKKmW+PF^= zOX=4+XVzUJA&I~Jc}d>>WIEwr`IUXvOC_kV|5@Js&9-w^C)T?7SmFWB72Ub_AL3c! zn6P%On!{!ED4HgW8k@iGmPG>8Iye+hGgN%~lyN}$MhCpB(l~^`a)XUjbaY|P(F0pV z^-@J0*OABFpOlp%g^u5b&}~Kit4DJ?+rO7~^S2eI7t)uLNKuiL9H)8gQ(>mfQ+%T# zZ>uU1L$jef$2SNWL7T~QDH+i}zN&3_vj?ro!Ik|V4QIg><rl5-cZLCm9=c&@L6nq^ zp`}|wQlzAn5J4Eaq+7Z}Bm^l%29Ofz?o_&@V`lF9-*xX7*lVv7`~03~?{&^j-Y~>3 ztXx^ER~?@52Y}<BJq;IWZpJ<0Ei%@{w5*7f;|da|&B-i&5v5z-dwNRxpJjwp@`MRr zh5;VE8hDetIE|ebuT3c(hq2WY1}|{iOy9^Lc^vJ>_5>;>Djd<lm$f*82^+8EE%oc3 zHS#|{>R3zAZtyA!(>^W=&(Kp;Bni1sLO|8w-kuMNOzcopVewu95*Y!<%}X!MIx@da zVmmB9`*N{1`yT7G1c>AOI~>tLJNW)R%rOa4B03KExK~K%U#$1sLN#aQHus0jwu3ol z;OykzGqr?kQ<phyRF)b_PT`nQfUq(VznNp~;$NfZ6zbWrq6zyLX?%7lYldNr!Y0BC zr`<40L~Wg}j=L0>NB3MOW}6Qj3g|V!O!^g&T=U;P(CaMsCCKPhTL-1JydZJAvt?6J z5PZyefeC8cf0VD>J?+Izyi}8ONsxXR*|tU*F1z}uw5>%(BjQs_5+$R20seDbc{yQ? zon-BK#{@|Qf%n0=@4F;kb8}NrRu?g3Wxej%R$BQ~z_`c$t>Vag*o>-6HDsyVu#gR= z#GeWW6kQQGGt5j+$T}|#Uida2AqBe9v1sLmYu5z97Fk^Wx0HTsE(x?-lz3S`?T12L z8D?IEh;N>!>K0c{r6I*--Od4xo$Pp#BbaYcm|xO%SF+g<oT$DFR?f_wSpL)Yz0z&# zPne+XN8TL>!plpj4bI6K>QC-DJ!9C1T$#G6@rq>df7?T|fLRVychYtW+zC%ITcELb z5pQSYb(@0cF^gp^k@jfDpubW2E8Y!d5O|uX;Qr|lnuPI0Cz5}um7-(<YT9V>O!^$6 z2mX+R6jB2I{{9K=?d@WLg#Io+qFu-!GN$}^I@wwc%t7-O`=<*Hf6??QCA3OQVVl(a z`Pq!1@6!$Q^oKKj5(8kwcH#0Kk*bOfybJk^_)l<SG+)bs&{X&b-c4S-4C;tfxYEf@ z?w}T{f&vfVD#qC4_Y-q`Rzs)<VyX8kNu@vlxo(w_6W^7R?hEk!Iu)lUVaR90Kh>D^ zb#^ODI@(dHA&P<6%)*!W8nq={-X}ftk%jTQ`6|rZ2|vBmJBsev4R_!$Z!p}ukhmjX z&~`@8P}7p_K2x$jv53_D`d-=;EsgM{v7%)A00Z>N7=c6Hdb(eINON5#Mx%<vK)Hgw z1gft=Q{{KRA9DX12~o_ko#5v0mQ02N-TvpgV^^yDYina``&j<@tpkFImLQAg&vf?X zvkBP58g5$pxVMh|u~9S#C4c*GK3|*bMbnnSO{iqqJ7c%elF)2T^Pepj+<(qfAJ{s1 z3~JatKa2JbQi2n5WruR{L4nSA=N;;;NKXgF3gSK4T~VdHML9=uYS;M?5zYK#_HbtK z8a(}Yz@^1Kv+?tNv(vMt=W$?Da@L#|7joyPOxKEIqrX~u%GLI6Dv%ms3!FqW(PJx6 z8z77o0)pKO2|5ySUIvp~Fv&+!G)nKebL`W5+y`ciiO<Aa?7WNyt}1PA+I@HRw1e1; zL+6sT1X?uXyXwM+aWX&8J>?quPz5Qse#<vMUuhKWq5}yo{k;fQ0J8jCLl=bQbiZ!q zCU;`uq0Tg}iz)$`e<GtM3knm`{2w|7;P;-G={2|nqZrLvU73v!WjPC6@V|?t8UgIf zxI;-dliT#K^ej5v(<Hvs9n>yRt(HW#vkBiIk#Hao5J+o$$6%3`l@1~W=ECv1GwOm% z_ey%d{E@=BQK8xAfae*q@)vf9{Kfk&awi9R$Rv!vPD8g@B1mQta8h|xyNFVFnk|^Z zeho$Bf_M4^sDz<lIF+gp@ZPENQwd8&fffPtq)(<5{_62_$Kl4bdGqBwDtes{fEbOm z%zO8MeWGeSHdv+SRt2@U=gf;Q{k@QC!pV#w2;zwZYXltpA-w5Khwb?bi>EnyVxgL? zTjUT#>xZV1pfBga$AcC7zqxqii9P((#N0R>n_w6bhz-<!<INsn?r>f3-Z1j~7w(HU z%XW3i_%$b<Qdkd?zsYs9jQ{@8u691;BHblW=swxZZ|W0dI>rUT5=w$X<-T=cbbpN$ z*Yc1_D`*@iwgigPI;MWD_Yo-1^b7BPKw|+oD)Jw`b>uz_JZ9|l3q)^DMvr12ZL*CY zLs9ZTD}R~1N9mp=zE7rmnDbhxNM!QjB%B{-Uv>1B{wJXuTIf80Ohyko6n=;$U4G-8 zY5CkrAt3W_w{y}MdX~g0+QCLK$^Q3i)@$*@yI)zT1)(uy{oM6dP80f%?f`jYP4FWY zepfTHA!NjxXHF%Hfy=fBFbVqD5LFweJAEe+xNVvq46qfQb35b<@Y)Y3SGdHs4;ulO zor37aXH7jE%mv2cNXyQxa{0->+wy`xYo8@m3p}pCE}v4l-4BVXkCbX#QK$bdx*ie( z!GD^F%Fn`TW9;ztjdZx5gr4yzzGZ_$ktYntl$RM7S0(EvvW^D>l;sy0Hv4{O1Gvtv z9MxefzbL(m!jR0uZ1E)SzdEq==AM7hMp@s~O}6KR|Af@hjxD`8E<Bu+<B`7CRG#al z=!*<wLN$92zN-#F6t1jksh5)4;U!ln41jieNA`BLPcO3urBkNyr)Dp|t-(1<taUYx zr!D>TeT=7@JZ|^~0|f))_eKPS!zI9Tm06aD9}-K@BHNRRj>|eOnB#OYpW87qO=rxF z-^9iz?9;MOEe0>ynXut;)16}QpW(1Ksv0zmBHz>AF6ar8qf~9&L!q`|NM0ziUSSc; zY)^{#i~2!@YgqKICpmtx((}$e3-cr*+ofZec6X5o<SIP!6Y}c8=hDzJms3!{3$Amw zx<C#5U{lVU(j*9G;nU}5RZ%f)t%r}TTKn|kDA#G>e2-L^aOf0u{kZc_c=FHN<E9G~ zV8E>q(LB?4n3{y^6k62o0E>P&1Cs_QCa`SMD)+NO&b9M{E2=M&rwI;6oPIxY^>%~P z-OuX9rG+1c%R(}?-9r#IRY$7*WP1wZmW>clA)}-c{dJ8>Cl0=nF|&Ls97ssiHI=nL z>rD3YnsVNOE1_2;gR_$`;^DaioUjvS(BQv~1hi3`bIVb;YZBX2CcMnm(AJ6gye{H$ z2^Vq*vTK~E*VP?*Y=3#IGKiOpO*@j;QWHNG+!B+ZYM^>g0d0~7OPHUwE*X8d`C3$+ z+OI&0fB}*9jjy;B08^i>`(<~2mdCBs!v|4~C<xSaml)r~qcD~u!e){X9h^57vjqlq zvY`snQ~VH4T010OVF4)|lKEMb4;0_R|2uVb+mu%nY4VM*$vba(FLMFje{8^<p5>zv zY=;d;F$8=V0l1h=9mu_W$}HHf$=&OHtQ>E<V^r1A*YA1(1*2R!C`vEusp|)_oc3h? zaV|evD+$AC+viLz-5}N%4`dHRpgf?;D6pfpm7KBb%BOEyj<1Tf02D<fbUg$K2fFQY zb?1gu6LVgqP(1jmHbOAjtfOaXp>f05913`5DYcaO;PiGN;1)2Hz7+@YZCc%mLuLOd z&qb&ds2P`y$ObC^$({m&oL1#W9NOa}sye<IYQ0W5Vn}dbR`)pp*)-1kY*W)iz+g}? zJ78?}J?hUxaYl+AO}ZJzYE;rDIRq(>-`iwQ07f+_O$L$JHFo^&(>-2{%ay<zV<fGe zSH4Jp(#`+LYEAiF2m*lFv<y(|;d^(DrL4dvIdV+7^qg>ZR7O7T;(~03z0O=d+54}n zY8=kY>$RzTyXs1%8zE768V!fRpb%P+7}3FF{<6J8|8~X=E$worb-JhG?$3tdP~cNS zF6-j(-(U{g0@-Qg-RkWg1K&a$?KW1YOYD3zE4mm0Rwa-2oU1A-4XtiInzRh(gwB0R zeW{Cpowu(yT0|C70xXH32;-qH*CV_}z(&*?YZ%}=y*yUk{eo|)f$<g#2b52w!7Kv~ zt$VL<HD`_oBHcqKlJomjsK1f!9C1>TCFh9@D!H$ZXo|m^8G?C(QSXu>tm4dYlj5<Q zej^jhZ5njgDqh|wT!c`%ci3zsv9r>x!APkgr^#m$<0oH|X}qQ;@V2_e30QaM2UWjH zfNhTQS714l$p_@V3f_CTBcZ#!)oxu1XMU;k|4d%=d%y1M+j-pXw9VqG;qHa0V{B`- zA7GM<E)Tkr$~#-{tQ^X=V{=(Ay8S}fRqVzXxSmZ&ai1cKWcJ^xt(l2e(9(s1Rl7?n zY)1C_Mqbf}>Ht$SGv*|XFc*RINClu20gOQz3ygtm?O|6na&Q<B@Oxj#o<ckOhA$6$ zLo{_){bpTdRN?E|cfm_`D8!rt6^cw(iybt!MFKl`bx5z|Zca}ZJ+$Ab7K7R4La;pp zpE{kpIOMsL{R=Ss>vLMAJiZW0IEIg!?F3q%^C!1aCmoZp<zD*vc(~Nk`gi%qd-g9% zKA%3<`rxb@=quHeueD8>8msx>CmMKf6I%|){MKS){Di~N2`!38j7b7TBz3s&qR9Mq zp(xaieDM2ctdA(Ru?ln!atw6X4G!<Y?|#ldds_6tfo<YO#;M<)@h>RQk)9b3GPUhV zRj>Hy`7OFOj8jdr4JO?qkA5jf7P7;k$ii-q&|h9w1AKvA%m&`#<?T%$_=pey;<ah` z8a#=3TiY(bHR|#0shiYA0h!(}B+C@?jkO606x95eJHa7TL{OpjNjKgs>f*wa(A(5c z^FT<SYMECX2DB$PTHz@GrXIiV7hY7_8W;u2^!h%Xv2<q+AFqznM1f!sr2ENzE?cc3 zUf%gP>+v*6kI7aOOyWf31rKd2h=e-*pII#&a{r-qFs|qAw^QrGaf)S<uL^&ECZ`k9 zBbW|j{7V?+AKJqp$aK|*fSdi3qRMayB?#it0d|%uvkOuW2f%`&k+C0i)JsEJEL07H z1LL?muS7-h3l(>KKYhfB)S%9;iAIuCBi*5~d!!Pwo(?|9M?hjdZXu(L%YT8t_6;3> zw$E8j*2Bg{@*p~jz7!@coyc%+VK3Neug`UIH!s@{T&0eOGIy3ntxNMw5O07LhW(*W zC<b?EAdWJLf*KqQLA(zV@_)7O)6$z<6D&Js88ZO$hJ@1~#-iY@BsL(_Kr3A<SZ8WE ziI5HiPSo?0OD;mg>bn%}Xq`w;R>!AvoEHPE$MXgL8ceU3Y(*!8{Ae)+FL;P9G;q^k zk$g5vw)Abbh+i}$9YM@&!fZ5s;f3tKUvsjD^MlLZ-t}@4t=zu=BS`=uT7*YsB)yG# zo^dYaUc}=EyOU95a13MM_SdG1LjkARb4jBgS1`$3u}YZYVVtvM!wSB=>%BGa2apg* z&s@PB8ou{ria9$My1v4VW!XSqVo$P4mAxP~DIrh?5q3K}5`sG;>MzLTIU%s5FLiyR z-j6G!^{1zM%jr5ndt~10i5?S!!FSAD7ke5PFdEm&Q2ob6l4~Y4VP<rTU>h(B#|P2T zl|iRQK1NEx>i90X@!4%5C7`db|2-_)k~8|OZ{S8=yrr2KtomXLEcM!7{&C4}g|+4o z_Fg9aXlZ-4oub`-vL4@~ocC<CY|{Ehq%3|%mt^=O&I=nfp|2oePv$qGY9!0R?hc7B z6G&O23r;hM5b(~>VD$#0{=6m-d99EytV)1ns078rOd+nO;Sb4}iqdsEbVRr<bcuqo zRDbH0)@C(I3{ss?hbChYjjM&~$8su`Ba+%15K*IN3baf?EXwuVV2OzsPw|vR03QVc zqiCkRAvVJ+Ic?K{=kBqaSA~>-14~)G6C(}5E)<1u+~?!_i607DI(M+8?9`V?{VedQ z_(CA~sdYiH^ze^MkW{Np#7c2O&I*CgSiVWVrep9aI4`1;C9@#D4pH&abYPQ$v><^f zpMdqtQ+$QKeq*buZ$7RhNpq-77<ek)l2JG-5)j0tp1?yXrvPlIxNscbt$2uEo*qav zG-q7qH;Ij6A^EF7=?X03&f!tvL5!W#+Hj`fHUUp64$aa%x#=5tz(3R7<AHxZP3XM3 z2gl!Vjow$neCq!qt&)X<n>5mjSV7;HZPpo6K&aW^5}ehj4JbnXfM=wu@*{Y@kP?6i zuZunXxfkO_$$K9UjCMcuy)P1}zeM)q>Ut|Gn)1As<L;-WXS8~)_%sfczk0Q-D0Q;= z`j?D9^rGWZaZk>NqCp5A9Pzt>ha8*k+8*iq{p!i#wX2x%v9uPcC)a^KTp}yVDYopl zwJd4FYe8#MB7{d0lcsI{lMVR>iG7t(sok(3$eQoB2>Leo2yIYX9-ahH+y0IYL;*pJ zMUv(`*7TRQ?FpIgAbn(|au$3h@&5fxo%3=WtDcYCqSJ}>Q~J3aRqUo5l=z1>M?q^G zMSxF8X9&Y<;~69Xqe5bnF74ER1E{gqPZ!@T5|Qttp}SC2;vu<8HtByJL~?TSiwnW! zCK$;V3NQs5j1?z<blm8>7yhG;W9QqA4~$N|b^?Zj&9Xs<v89qH1Bc$2?=8*;alyss zsrWtH2-!9pSG>MWw0Y)(-?~sbI$CZ%0@4U&s2e0y2M8DYKC{E@0e^?nh@J2IZpwbn zPFr~X{c1y^kDOLBIp);J2VU?RD;DpN?=SKw<S$~p{d3S~2`Sl#+tnb+yfd_@)MiJ; z1D6e_!QCXHe5mY+09!)jJz<M(#Hm-_5!^{~Imt{Y43oYZ+d<`anSeY`QA4SImlG+n zpbH=uZK{9k5fgnu3)Vikb{GcHh0dSs^`8&>w~XIE$0U*pnEf%y=n#?1cxT}ymUprI zNz|*aamr^8a)2gJIV)0Ce}l4Sru;*v2%HrqC+?l&l^@{x)X_c}DiaTb6&5}Td*W6~ z`#ssh=QbkTl{Cr|hpEQP#ihga-s}zP=tCHvHHljQ_Thr8U300>*zs(p!DXosW|9dQ zY8AOBIkCnR8#iqp3h*A^aT!_b5kE?Gf)elX2rn*ZCm%^bk#wo&H;Jh~_c^T6dw(5J zf7FX5mIA>vY|NVlw5{XcEqL@afLNKMpD2>O>e6%xLu5X(nqitd8xC9$cjUFt6aH{( z(en|9^1(#nM;zw<csS;vRcD^>`*Y?)v@5Bx!W$Ing~B&b$mCiP4d0VE-5Wi6_24Td z7=Tfo3jHG_ZS4_l17cIh)k^~2H4r(xqdAJzip}J|XEx8$j5=+>MEF&$YG*!u9A+n7 ze*4*<Ir5whvme}V+_aDOa2~CY*PEZ|c&Ww+VOtZ=(lt%u91iX_dPMn@1|C5@kWm=E zmX`#Ab}39xa$&9=dEGlg{@@*SKWnv``<=`Z_Sl&e^^cW^B*T4KX$W(od+R%)-Ne8h zHFU*t?jpVU=F3j0ntNH}_74S~&TBOd`k6!vJ?%G7rU)HHf>hd#ZQr(JtG4v-iNpSc zH1MW`OFmEMb$_pl(jv`(fY#1D&A$Ow@V%nZ&*Jrknaq)j;iRorTUu%PRq`L?pND=3 zw=Mc78};C-!DMGKMtt($9R_z(UK+hHm-T^k>R3E;(yXy!yb6mZDvM_T4=Xfv0r<b_ zNQmaUUlO7mP-B_+&*TW)&97x?*}TbNYCw^6v)exX43t&|MNgor4P~s-+#-+x`(_3I z>HHX~xNzMa&~(=0QMI2&Fm-1_YtU~PsX+rpj}u->j%_ZSRT2GqjB}*`O}WOIwtf&s z;M2TcC-U}HHULW~^zL?O+X@Bhmy&K;y5_J|r0t8U;KedpwsV+`H4ylH64;bmT)7SP z?Kwuw(3eylYt!nFNLJhp(;_KZwkK3ch-Cro2@Z$aB<5zelue(Ofu6`bhH#t*%P2Gc zFgU<3W)tG%Zt34v^rD1Ki(7Gr9bWa0n`=#TOvQhdzYwP})1bdWscQ96rojmAW=!Xn zil8KTY^p(R-*08B8u`#E0|%xCaI@O1e&m4yt0zP;OHc5YB3}2~rDWm2N1#eCDDDk- zOl^{$;M-W%lmGa0mRVEAp*d@?r~ba`io~$;&fd{LD-tV;A5=xpz5;;hr13|v^JR@I zYmv)PGGeHTGE_*YW9}=P>~jZUo4hI#u6-?bRTCZ?woE3fASIu8Hs^y@BmVmrSh6<W z^{+}=P{hS#$k|KjB~seDRn?(m|BnvZKhkH==ttGz`JK?eiiP9`_akW#C3B!wI0DC} zRxU!(r4SeOZuZuv4rk0?0e}ET52<;x-EcvA_!$K&u!_JN^{DuFZ{p5pRDe+XF(w-k z)F0`853WW9#%l;V%c;p^lzR7@&03zbP5*-q8nrYk6|=FSZc|>r&FLct5@5<uOUTci z$fLRDD#sc!D{EuzulDwC8g<%fV?x>i4{Lj1pa5^qm!KC_ct=s<GIuQR{boKlU1#*~ z45U1<jgE|ICmvy9Jo75&PG){wauFH%i!ZP^biYKr<f#Yme?@p|X79?_jW=9-#guWb z{bCI;$~4|_ceXIcSC3lKihShlr}*-O2rM>t>-ZU_>yx*IZ*!FP&3VQCY64>x$5odc zRHaN+Oaxj%<uOYm@DQDqnV+&|aT?J3;HA)*Fde`Y)|m9_b@;H(h0T9}yLV(_r1&3G zQxJW3-%=FCNeDH41E=UNIw0`G&JsCwQD03aZm+5bRE&lwvD@vHv&B9`eZ!SU>Vd*( zqE?Vzt`Zi?CoCZp%20dAd1_?Q2UWVuc-(J$e0){qPvt={9O?#BPtY$i)`*q2bfG-$ z2h1QEy70fqFtgFtk%G>Y1pa}trtz@K{wLdpEt+=NE9d|J3xLPa`(5nSclH^1DBy?B zd2J^wz4Lg~(oldLNWlYsk^gsNA&8v>x5amOj{vgLh=+u63mI0ad{UAz8zK`)!HwL{ zEC?Z@P@ABJzX-@>a(99F*!Z7)r=cNM{lrhBW%;v~PfslyMPqu)I$=)dNN7)kmR6!p zd)zrnSLtwFQFuf7sh>T&lHPxnK_Oxll5S_~pnyt|L6h1@SX)RLfg&FHQ4*I9=AgoX zCcIoPFQc}7;4}Jc=p5}lJNb8eC9@U6?a^`ZvHzG8S~r((>D{tS@(}s8j5=kZ;^;Sf zSQ!ikL6${6gvF;{eAB#S4qr$L^0kg~w|vQXdfSLsEK;l`!ht$?IgqYC5(O7DeZL0% zGn^|hl8qziaQ}F5vxHZe!_05j=la&8CL|bE1g>P1{`8;Zm{#Qn4vi&%BfK5-9`Ww` zfF$NnYeh-~kLP+mQxkB<<oR>YM4!lSXJI1v8R)})8i*a<{AlobY1ML$F8TCDH>C}c zk>Z&u3@DPUZGUGUhI(e-r7wY7J(ZqFS#i0?T|iA}%eFihLktc<!r_A#t-Q@1CQRRU zc<QVDnBcnaWgmzZ;n5|X3h5Vx0)pc<kWaidgaaRe-T=}acSQ?xzFx<2B4fnzz<&`? zaMWUR)DqRCIKJBBTk+F9^vxG?IF3KgB!~X1LKqB!C`|gQ*Y+D^V~A4ucD3j3V_{BM zc6F%!c<@cu(E)oH0s&uhgfOrHJJBD?uk-VKG7q`}EDB5jBA^=&>3+hWr2qqHm_&oc z&4lrZU68#27jJ-r<m9QM0NS^tF37-4OdUz^l}Z{94C)7&BS_-lO5V8jnI=(DvgMsV zkbCf)jH>@#`)Q;3e`3__CwR<?X02uZP#XfQ?h@^Gd`o4P>Q`-oo=<Zc5J4bd9!2D5 zK`A(zb&=yvSv}EzMbA{{B8reJE}>tBikvM92?rG2pOSb((|#~h%;V;?tUo|>w#^)n zD{-RT6Z_o?Uni@;;jj}P@NdvlhB-<G;1(D7)O^4u&bmziLIjh>I1f=kkj_!%?-?D! zdXkD|@2c8MmHm1HA*h6qx#B`77!-mKBu6r?sfu&Ov)ELU|M|2wLeB*8`sfIi8?q;q z0<E3CEmW*6ICPaP)n2j5*`jHUBy2vKS)Oo`2;LQSh5ukO^)vPJO;-3X5n6CO%a@*J z#qK1lTg{(R7GM2!Q?<!X+4u45-6YxB+1Zm*u%RrWIsk+jG!77eRA47-ALHA}8zc|X zWWC`K&<zy9&(sd0qKANk6j6r9#aXq?yzU6`Wv-b&w3LjX7w&~nkP4Dk-H<;m6oBqX zJg@Y`c=yjLt&^gefFt{vBn%bFYzd1gobtbfprqh?Oz-(f(N2x%GD+ofrtXsfveZWg zt(Q|I`6?n%Fsc}5`^upaZev8nywaLpO&I4xTOj*Fu-ET5gcemMT{rNbUv>=weeXH& z5%THwREjX(xG#_e#lDeIIx!PYg#-MOt|87%I5nN!c>z^ZNJrEh>EIOoYakQ{meoLB zMhMY~2E>A;Wq|Trx$|)K4z34gO{#O)D?BY|KLHpXj&I^O>q(3v4Y{l{uakc0xZ~AF z_ZE-lBM^zA%!YvF*w<=5m9&N|^VYTm5g}_QG^&@H@TtP*C<2-AH0^0i+^W_IUG3QN z_^SRL-uZtmiv6NST6BFb`mdfL85*R39B%(tU^8@!JCgJ`To&LaJyuHiDY1;MnX6BI zMMi~c$b<n?B>55lEk<`3ZFG5~%j$jnBJm*T<>j$9JvyLE0Fa4^If;X|zS^(+@g;Vl z`2JUU2BTN~bL(ep7LT#)#Ty`h!5o|457EEJBT<#6U(*?W{jwj;kJNzu=Xk(@8i`jR z*G3!)RD|^9Sn{y6_v{Ot)3G-jykp#mXSR#$bobYqKUl12Q`;RUtAcNsxvmagYkiy{ zm#xq#K9heR(w--uzvOeV)m;Duhs;3hPu#S&y)_s_S}#f{SI)lkXLsWDVGlMsWZBG% z(h)GA=t=&ME4+T-aW2=9)%R{av-cw`y7~lO8!lg|-?3zBrqoI7UVhs7GVd{2iSJQ1 z5PtovDxt#%QTb_GC3W|HS72;Qyr4AvF>_T>_20R0cJ4s(HNWPf1cN@Zipm<JWr-<f zzT%0mi!bpJ?Qi0UpQ$2Xz%!N(;HxY+A;kBwMM7gBn(w`HM}XeU7-&k5LyXt?t<P zEZ0JpS@wB%f%AqYHcDGY^J<{ME8~YrfiCSxV7gSEST2KSI6M@ABwrJF%Q%OvqEw|z zq2_(wo?vm~32+hv5zFBe5X2nGO^mdwqYr`!hst%?f8*z80|~q0s=L<I2uDPp%EG;6 zip}(v305)8{YMS8`K?Flop;F_xpx^-@vJHrf8b!fDCl}Tf`i{v)mNipDu#mur2oY= z%(d^i1Rxw<kS;<1M*S+GEo?rURaOZC9hx=&(j!5S<V4#cuj^X~P)Er(OBm7ItE-NC zCMDB%LsY5bA>17p2v-Q5r+Vb`?`0HTwjlr%Ve+22Oq)qzJWs^iZ{FA-<P2-P<*7{2 zz`VR;CLaa|YUCp^#~{eHs|4QMWe-@1?>+q(-T*z0n2$EybLyTp{>I$^?K~}|<JOsD zyR<oy&~RNW$o;w7&m(IUs38RL^2@{H-$c6N5X8+Zr~3mL1bMO|dK8AF8Rdimabz}y zA4m5b@t@UIq`b%XHtF)evlJw_Iq|0`UjX>ine$SVd9bIxvCt&1^dnlGVwN$Aq%9D_ zGa42IeT%Y<JzmW-;E5NWx+z(GRHh2sJ0R8yKT$$_cy}G|pY!hbYrt47&Z+-9mz&0_ zl>X|Q(ZZiK-cNt*({j36W?USdUXZa3xNpZ-e6a1i|I+ex6vw?ioXM+U4Gi7XbnE3$ zn`kI>@58NN5XNkV606Ur_^e&V)M52LQog%ohXS%r5r*c0`eGaV@B5c}Bbz`eQhvo& zsX7&rubgng7iW3zUgFb+&tpSK^K=*$s&E1nqCc^X8OQw7js#fI%H^B}{hFhKQ(t1I zpI5!;asQ%{-TkDaNG@9I2OIo<nSFU_?mkaQsL5}ak1sR~&S85(O`9S@+^LhjpA0qb zJV=d~v>y-qDk~NHWfVCRp*aBB>3T#p@y<s73r;weBJ%RdR9+}OQB?y?WEtdc6&6&K zqz(g$1Y<#aVZ*i+A5#n#&JT4XU+u`bi~6wmP&Di=dJ?8+U)JV5AXS4Ok_$(YDL-)& z;$LF<OzzV}1cr~zy9aMu=S7_bp#QO6+^86xZ(_qw3w-JM&z`YEfwP2o0&^NR0(`eT z*@C_7^g5Axrmis;0n*OT1OZ+z#L+DC-rbA2GTb86uK}TY3C?JwgP!7jx22()de5CY z6To5l2*aCM?RP+X5X`X_p~s>Cgpb+Wc0P>X0^%ft4;`eMd{c`y?(#%JChocv^yud6 z9p_^z-=bOOi9sK<F0-EAt0*}rG2zhlj+x&uDC|Emm`P6^1T`+Ib|>$ib%{=lN(vfe z4%k^iARwES1|gLpQ`zWF%&a!HPcPubr1aR@kN{Mg?dxUQugoP}&1T?dsJl~&Ie%&e zX+m(jgMR;z+4QsEO4Dy)8Z>pivz>;)4#^y)|1r%|5=R>;yQs92nPXbIF9fJZ4DT*f z($Z3y#oR+V3NQ35O)0XvP7JC)efel%JRLa_+Cjxrtn~qSIMup-&2zWcNMeTBtYyX= z@Kis1Ox}zQ6CL@@CaMX8Ak9>}e;(Rs+Lig^J5SEaGrY2=;M~Bs4q|I_>HeAi=-KYX z@*PQ)E(54F@R)6I%X6;kIRj{D!(Zk?P%u4RA<si<RZn-1NVCeOPv*76{CS<f7`sv) zd3K;Gd<TLY;yTX^Wa;&NfQ&(2NZ<*w6AuhCdiB^-%?c^Kj#(rfCV53&BdhPfCYXLS zH~aW-z`B{n8hi4`y$jB4-Bh&9GAEg&#S)dHP4GzU{=(WsGp|-AZsXmyQ$f?s?T+72 z<ty484D|t4ER3d`AWR34U`i-#VGHk{^|0KuL-y>8^$3o!E7_M{?rGo%$Y$<+vhfxD zN$chN$=v_?0ki0imO2^gtBQRZRs;$>>`<i(&PcBGsC?C!y=Cf|%$_Uu>Omdx^RtQg zdI9qEd{s;LylTf-(Ta<yCwiFvHxIf=s1<Rl!-jEVh^)zNY?(1c?_fC|V^Jsuk~Q2g zlBJrPHKIXmYx1+i9~ZA;N41EELJ&0hOSilH*-tzmHDZ6~&kki`CQ*=&#^AfhPLM9) zliGdfpR32tlnN3X+45ubBG#oNh9gMJn2+@`|2%v0RV!RZimyS-BqTn(OPCCPbE5d< z2ex9}uu#lkcnNKDqB|kuZaEzIX_gku{S2Ym<z@TQmH05X^TWSqHDX4_s-5|w8@HNO zEWZDg(BBux8MW~<w<boi`?k0jz@C<7T%QXrW6J7XD=Ukq$kEOlAGV!;YX%pmvAtiI zFn$59n4GT|Yuz0k%M!;Zj??pQ)lPWi6l<qv3+i(uAYPzwcY{XL`^=-xFkv3QImuQ! z5Rw(bGxaA!xTKYEpxa~a^Qs*qf8w+)$ogi)yT^5Iyv0(9xqTZ+1X}=y{1&pM|AduA zOBw%RB^g+&3pkaP`uHt57cN!<vzV)Y^H?^O`~8`)y|&=rj>q7C)Uvgmz!H-7!A+^$ zR&C_aZW38M#ca*cBf|&f0X#|__AQ+es{)w^Ds+5^m;V^SaNs97GSndzRtQrw287N8 ze48H3U9RG#qe4G_BmSB;4N_YPG)9?iMlx)VYGsY<cxolMFDYoUzGvy@#^i0>IS3Se z75MI$J>1EXzum5thp6a0gQ!%LU4QWYRsX~LSCp=yVnOZL<B%$6!`#Z-rAKwRt+sXY zr0Cy5Z!bq9SZ<HSr}WH2>VjPe<KE$_D&KxUj3xdz!WCD7*TF2uLC=jVNL$!mpY;qw zTjLmJ`?IdD^g|bVO<4TAbA^4=&UrG*da_tvPKianO;xT*B9mt6)Wmsn^Hk6W)pyWs z^6uAKzV|;OvgEMQ0yGuHoo|_bot&bW&F?)gHhP43yQTY{?-eywdb&epoN><OSTa4) z0E-*5B)JkZb+$JLT+C`YDTdgU<t_T$V|Pc)&H|a0#wmqfdCo=C*4g<%TU=`GQnI+j zd79{W>>!7=yt)Th?upm_oyhLpr=#=)Y9>LD>m{l>;CD0Y>69$h;vjY;S-3B;5YyS2 zVeuOm`W4x>8A?5p)(}>8MnX$>WV!ONz;HQP(MdnLF1QCC>7=Rvgzup6zC1tJs`yeE zozZ#uWBnDL)oYduSx1>^C3cyqX|Nd!oI;J~x!i4}LvDbGTLGrSokO8l;&t}fzWlgu zi@fTEUc?*JW#?`Ozb%eSWo3D89Jj&tnU1)OiB4L>v89Rrzry@2+u7zKDum2DJM+}l zc#iFv{EXfx-^_8TQo(TVY$xvDxFVKVtsihW6tEs6+WfBLiePjI<eA441miFcNus+} z4UAqFms&ZM5^MhHa-d7kRpwf}oFEg&B>!k#^If<fA?90YelF&@Stc@#+uIbpGTL;K z&$Iif(WB_|aj-V&(;iK}V4C`kzIM#WHQnC(Frf|~fuy(bu?I=Y%XPB4H2k<DMHJWj zos-n5yy)+S#D31JLz7iSPqWZZh;5=BMQ=baqDws1k52Kd;v?*Dnyz+JW-;!SJb7w) z${g<Pp&4>_QoZGz8fxH3!Y>-!t_!4|;JMr7E|oTKPYhw~ajyDc$2WaNU$xkfO-{z} zCI&vfsy#hW`myZOGU>C@#-Nq+k`#&uq2fW<UzB*nvdt@*GKD<$`BI`bJ`ZsHWL$_< z<gY+&4~zarwmDy{IXe|PF=e0MPHIPf>rTO{$wket?$Fs@&I-mB<>|wKBH16HL*_-? zIf=~x2LH|Uv^QTGR4`KkLE6#|0;L;=0Rw|_hmTI|_bDrPSXuoAiCAMpjc_Uy(&rA$ zXxQ1iRZ~L5N^KYE#Ime?RaG?<-3{_+dLl=$B09`?#rT^HYe_P#;=NZpT3nx+la}`& zz~tML>)HLpS;N52+P<V7i}|a2o+&*8o#X@IId<iehLKnc)&Hy-)nv+>r_Drq>T&u0 zB#sO2O40T9DD^}%i}eq&L7AE&MgH6vp_e`iGc-2fXcFjY<nB+|#=Fn1f-#cJRZ4fw zLp$|1e@a7S>&N{U%6=e?yUi(24zheN>3+2xzUY~z8hsv7hrNM|-t4b>3bETobHJfU z80#9sH?h;8<iw|e#QNm<k35&wYK-AX>AJYpV*&`nW965k%wShiNhy)9%L~+tZ6$xi zr7`~!yY=-tD~>szrwK*L*0{Idu^#vAS?AT?&bl{_exxP<qdsmre0<gz9srq})wH@7 zU_u))y3e-CV={#C&IyPXfk=ff2CA?qvA4M{x~#Yf5-z67_r111GuuD?$auFD%*;jN zmJ{>R!@i-1^)E2DxW3c-9L+u=1%-l9Qg-$u8860P7&hHuTQZ(?Vk6eY`g)8{N;_Ag z1ZeR6J$?B@d&!ZxIIKkUvJAo#0WInAAoUt7pGHogu+O*s*Br~4|E5@Z%Vn|mK>4&D z97C%B_mqJ^K%O$*KO39bki9DjjR#x;-&M-|@fS1tHLHJY>z0zYSa9vO#q|ymA!y=W zdAC*8w$?10TjCTDJ(~u<H0jV`$|QbwN%r!ptEFdUTfQt-`&-0xr*DqW?ZfVIUQPQf zMPZH|2(q7pUR@lQ?l#I`OAqF`_Wg_ZD(K@?3vK!XrA|tgjyS0TDTCKiFDrrMK^Z6l zuh8}E=+c?&SyJq9z$0GKK?eA}_(_#Cuh&z7p10|>bIJh~!%o7t92rJE2s{an%V3%# z!3aF7F#;rD_bApw4Z`mAxAk(;!|81H4e=}kiJjy&`c6MqJK~$kj$)jRCBzhZGBEMv zuy|R&?G7+LSRi8r%1uptNIo*+1-GxfBlo$vh-m-kOc}7Z=iHCg<{*>44^a(={#5~9 zp+-_tDC{WmgN`!bz&){(1TBw0L)b+NZg6n+t5{7ErE%wLn~x{gtekJ!YBab*pOD+6 zj&tSs8l2u9f{qbg-4@j=1!Ri^Gz<5hR_meb#cAVVmB*AVcj4n*R}T8?OX+%S_Ibgl z7sr%YA)`xKDJd^v6(}HxHGJv7SE%luz7W#S%gS*D0h1L$iLEyp45SZ3e5j4((m90j z$v_y2&ky;_WLbk*$5iWkyE<5lNFNdag`e}=rDC--OBDo`b(5>qBZaEx-$(n(Up$^? zLp*%xNZdo0L5~Z9W%RJL>WG*z5^QqF_b8v_M?54p`8o5CTmA;{k+$QX?z)LDqw(wM zAZ_>nhcY+lH=TufR8i$35fR@<gG)K$o@uJ4fsLb9ha!-iF5igX{=G_*c~`i;VdiVI zSYTE1u_MYx9Cg3KM&f7mk{AjO1)$KHb;}0<f^Vj$#&Y}fi#~pN-D6XKct>RIA8PP! zOD~K}43AhG@$#G=#Hd9-i>ey0R<mXk)7w1O%k#?;lR1@&jTp&!sW!j*1X3uYH+Ua( z-hM2#w-J_O?LHqO-dWx=8JrTR1t}~m9)PJKU;vvON@16UruAvA%8_+L28}GbT37q& z;d1;)07hug!W}LKD`4OeE}#R+(ZnW};H*9_{i>@a?e&hCcgYi*bN4M+zqh$##xrqg zN?hzB$7eo!YPA0iHa7m7)16&i52tu8tJ&_gQa@c>X^08}288sA*Jvh&Z-2vfoRYg? zgMR2roJ$2TX$NiunW}%vl-a#8${JY0K-V^N^H|+5S9eY8tk?@pbZs@m?dqZKScu2p z)YQD?ETzx4*YA6{536g6w}ir+28PI<W>6#+tY;RyL)^Ot>`+$^37l8uTGuMb5a2_! z6o3I=@@~-4$sULFwQWneyv#ir9aL(|a9a)i*PJ0>^>a!mAY>gFD*PauLy(r;)z|#) z`qTLtv#!CT?{Ef^GDg3NZq1{z4%R@PfFx0Ky@0<xe~<ezgDqNI8E*SHsM6=VDi*GO zoDfj|HdiE-h^J71+facFVSp;5z`tx(5a!>*x%RN2w>!K$7k9pRGN%plPd|b#(oZB& z6OrtugdlFPDYwmj)9(4^d}om?>u~7yw~u01Ma_lbV)A#7ho!G{r2cIZx(0cQxZ=); zOTZ7Z`m<9IJRKJgxJdWr|H=hunu=ZpH=TKSh!da*0y<X&DZJd2P>LFjZu?13?S&zp zcuc8Ox;a1YL%ysF?wsGbi!34J_GR|1gNyfyDHbj-EMhf2h+AX~&@n;gBw$2-8SZoH zn!)JcDchgGp0E$Q{Ret2b#%L-kvX9R?!WTBAjm6H8bp{4EwkD8Skm7X@Vu)<_L6}v zyH%&(xIO__-^t|&U3H{M@-Crex=g!<7d}yh&O^rqsjUPljjRgLyKu)=M;ZvCbrk8l z8w?2tmpHG>SLk03bWPdaoA!KF<^DN&Q-_SOFjv2$!4k8>73k!IJ~*5RYt*>V`SV$Q zjYxR>Tz8zA;z7Bglw>M}y^kC$p*HqawE%C)URcDxNLuE3?-epIX!J9TLE&e8^~zc% zYiW%p&-K)ns^^%P-I)Ns0_VCT2{dr;O|*m9@IVX)5|(G{uut>c$!@yB>`GSMUhWsp zPy5n|H1UG+np8ZLDk5UOoo`{12J#jM|89kaQYG0YKA@1+x@{j$z3pBe8u6)Uwlh*= z#=UG02R9`x;N|NV-`Z*1HE9!aBAux&BcU8BIQc)~+A;5bd8M}eSwC`=b2Yf>8IOX3 zLGu6MojmeEtP>8{^f)gGU!vU~|GnR_HG+7mnQc;lNB!udHf<-C$(|HM4h+7s1s!HK z2%{-sIDw)zVM@Hxf1v?AZ`KlHaGrB&m7hs=s{FX-su^GD!*j*dkFH_|R}Ds2tq;#& zTftwGn&nSvn9!o@>u+L;fe=8;5ekEV4`UFVM$OGZ(wPqOw*vfoKc;gRD)22agPK$1 zxyaksw!(AbqAKpeY^a)d;^CNE`P1in=rIyG+UL#h9=d(sWQFs=m0h^3@#U^8s9;VI z2ngmBu5!~4hef=($97!GJqrGlXP3VlZ}TuDGw2%Z!z32HH}8R@F73YXH7IQ%2FH6w z_F7|bFuwQ~{@1Dni<W+^(PB#&ziR0~qm6`X4bi(LxIW_Pe*@u33_32}k@Fo1I}biy zWo|n!*4)U6OO-jAv~QKrK6tZ(s1~3U2Fc;@5soDSjcBtqvKlN%cX>B+xS;b|d<9LM zuJ~Ay=JqVvzP!_fT`ige<_!i^Eq~UKo~r--9B{xlgX`h6x_oCM^~E`=g|mIbpxv)X zQ$8r<OFuDfXh?e!Wz2h3Ag8mUne-RNo#Fi8xaulw_RfMcc-O=KgzHy<5LsVBcmwMy zh??uI(tqYdi)u{k2?9kh+w}*Zbdt97N210R%Sqd$7R2ImUUO<cm%xaKEHt$FoZdhm z6$3*C7JqBU>y9O5xV$ZyI;(xClUAZV>W3N|&EJ*}L6oX|VE$TV!k#?;Un6c_l{0q% z=dUiORyNCgeY(SvH>>d$?e)^#^>6R?>kh}=QpU$+QUegt?myK~a0r5Jt+poQwD={% z&3fw8ACv8yvXAd49mbmb*SGNdUuK+o?quf2DK0RA6o4l2jp82}P~`NWVu=5c$)rh( zyw(%J`wbTx%{SZK@h7}wm`H|KE?mrStcR#>aKWF+J-ax40#|EAZ_k1aW+FDt<;A=U z<n2Ii@77deJyCw4N!Q}xMFUg55C~|@w?_FFz=l$UkIyyvjaWTx!~l$-!2CTs8~QK; z-6hRb%&D3a-rSaOL?kk?GWLK1yk_wP1sE?}uZ#Zu<j8xG#ufxB_w3>`$L4fWD#W2i zF3G~*rdfMZN8Ag8LxF31*Pp4rs&EE}_u_%KkA{Ozj^(6D4L-`<9x*!oTErG#{}yFq zszkB}#j~NhgObi2eI|4FM=FG@Uszony{M^q)~1nBQ}VU*T`q&hL)2~J`Mj#?r;Xmv z2-HJxC~!g;7fnnEHnk~%QzqT@MTy>pbgIXFmR}h6+k4r5KZMnDoPj-fMB5#L0iG=V zN(x7N=7!h(3(;Ls?^z9E3L;vI>Lx34IyL{*@z1te*5YY1UBk^C$UtA2@xKl+V+h6I z0)7Y-2I8k{eZ6pZj()Fu9Z#7g)GA;pwrR}pdh*YdUVKFE=js?Z%!vaWxWYQw#*ufw zzFN7;A+CubSjf6)9n{FEt5|YjDO%v@O(A$`yR+Tu850%sUxy$F&xmSU8cZ(HnD`;F zBE9ZCLjHce4i07r6rkezSzbPNgS}zY#?1Dl<oVM=LF-B=fw4#jwu4Z>oRdUQB+u(F zoz$N@+N#N3%KMqw7jG4QcibmV0koZ@&#ovPF+n}gsHVjJ+h(y`<!WD5q$EiH<mSh} zi^QF%fGz^0O`1G7Q+jV?e`jJ>!0=Z6eN`<)4eY7;Pz!p8vpmKdwjJ}SJz>e6_QL-J zk3nS9It_>k4vu(Hk2bMHL$&T{l4W&VF_>=Sv=TCq0<hDgS?aC^;baH+Lfh(swN{sI z9-QAkL_Z4{aW2{URkvDN)MBAPa-ua*8;dKB@;EVXhjT;cOTArnXyWmPf=}dwc>H<J zO)3%sThd<Fp|a(F+#h<4Zw#$kqheosbHJg%e~!dq3?iH)7kCS^z+!06|HNMz+AAcl zRwrs}7QL|!NO>H%&zd&IOKA?SXBk)m$h&Dk;zoM1J|t;ppNO26mS!u@xKi(9dohVY zh3T`H>^(xwGP?&}e~(Sxs@O`A!yrf<l=43~9Mun6gScWZd2SD4r7PcVTXl-PSevFD zGnW6Z9afvi=gjid7phkQT@M3t;{P^cvTDslH-_aWEB&yFUdvzZ2~kJ1a^=(F^6K$x z5|S^jhgR!)<GO3Ykj^x;3V^BOM7W=3HWaCa3MnwrR7NFVEZ)cB-;uWhxyUmsEF+iC zaK<!lge%foNX*6dh#~M|cE&Jsf28D8UZ<pX)*48L$=8m<A2-Wk@Z7#*Rle9wwy3EP z7#lU}MEW|>Mr&uh5{qC+fddP+C>3gq5}dFvG`9H&LVogm;bM~lOTA<?fqW=X_|OrZ z8MzeL_ENFcDp~quGidEfH4c2ifjoU_Joe7?TytkOPqh<kB6Wl2;iX{$g7Ihrack}l zC!5e79$mIchGNGLOVMb8hCjc)%)17TIK?)qDgdVLx8eR_4R57vd5|5@Ab&Kg(*+~z z9dlA?u1*rk+tA0DbFN>KZk+s`#)?ntM~*L|!C_%Y{w)*r<~gT5?8zfhOvP;FP`cw? zhtPBY>3FOrYiS2Io6YPhu0HP1%rQI;{9X~YZs?wD28R(tP^vyJPTi4=GsnSL6TYP% zQQX}}og56?)j`CvBlK#Lo2rwMS3e4uXjjWp^872sBVD`I<5>0G`-=rVmL!6=Pxk}o zvqjg67<uitkVw%&&vAyp8*Cn**fBRxLTxF0<Q^yV>w_r?a3~;{kT*cD1-a&@<~Ppi z(UF(G;uhPM^&UA()ZD(pxMtvl_tmdjD0Nh56;Ia%agyUqtHtqBC|ZzLK8L=(p*%#T z_fDYeH#O-uBMl1zYKv-!bfOX~QGv<F0auI*-m7OuWZy6;Z8ly1$d*v%^)C}+MB~9{ zc&46u%Bi1Y0D%o5UiGH4JKXc#vd%KJrU`B-$EhAA)72L1&aY!OR?o?@>)0kkOZpGc zw&m_<Jp}BkVT?PQWaZkdUET{p#&FSB;(gmv|5w~T5Fr+9Voc)pcFo`XDyL%57*`#8 zEm5?2yeSxa@PBf_ByB|ps;sD;6oDh(xuIizvxlETFpDtC6RQ``L+@GdPGn<?Ffh88 z&Zq4Y!t2lBFdIhR)UvD7-eE>hobQ)hm%AE01)T-lm~+;>piLvQtCgp1JOhReJ_6{# zL3GpEJQ>#rjOd<V@&^x~Ekh~=-hje)l;8|&0ua-d_S!G8e^IGxUDPg46RWIg#P`>q z0^KC@`iMC&()BN?-QM24S$N{YHcdmV`5NlWLlaECz#O7lf4%%<S|UBBaEq;@YIfML zYTtNU@8zr4h{e|@ldR60tk$K~9Z_XxK}CWTdaWw!LCXK(!QvrJu}~1xn5Te73K24C zHZsv+BH8Ep?(bkZE!h#NM>h4|a&C}Q>#p0+O{dEOPW`lRD*uh?tBZBfGgH^UQ|aOZ z2NH7-T&YO%qNj?c4kL-GhI%P^g}L;#sgR%Wu9N5fUGFzB8enRsxJK@9fG-b(3!#ua z0I9=Csvq&d7@;Qlo6xa2kbeuT;d@XdP>W%XZ{If&y$o4gvxPZ+0TI$G-H!is#47jb z&o+-bj9=2fsr20RjRmAXl5{FdoKzFo3StXafBtn$?Krx97kiMTHE+nR=a+RnOef!6 z=X)1i)upz*JrRj-T|BX*y%injMggT>748hrj27nsEARln3F4g6|B#~`_QOlkRWqY9 z&}Z^#Eu5L$GXAVSEYdQCmYR_&U8$_?d67%LPyV1=v&4c0Q%N5`$FB>smtctw{j111 zUr6@Y36$4U=z9B@_Q&NuTYzmzxYhg=J!7!R&WRu0xV2+QUrM8Gfu%r@)*|*ouFdOn z^>xhfDqS(ViQs>auHZPW4?Yd3W{}+X+xeeho10f3gH8`c_x!}icUG69Tj!87%s7{C zRv(U3$YmC&MP=5N$Tt3+JUadx_OO9WCu+||7oKsT$MMopjr|@BCMM}iGP{4gbA0CU z(t*%E?|t>pjbrb>bg?5^=!oB##K#t2BAaC{rI;=24Kgl}v6WCT=;8m;s8n*Ock@5u zFHaY<(W5#+H0VFL3nG5Jd6yNd23Lb2sU&(f>zmO!6~yTn)s<ioX4BRbUu=E!<>>z~ zbyiVzG|{$hHty~Y!QCyu27<d2+}+*TcyLdGySrQP;O+zo79hC0-I4#?JMMYzhnih$ z%~fCZsv51Qlm?GHqP_|C9ARE5qzV_z2N5|vk^R2eE+Fhfyq-=slTsayDl8v|-Tjc( z4L-bJQk;2PB4x=xeSb^5Q_2)${f=fSpW5%$gh%P(p!x4`9}I}!vbKYGWitc;6if@l z&S0N7mC(N#yk}=UwC6S3YgaPIfW9FmEAZ<Sq^{vgb(<w9`&9YSJM2okrZm9q>rDQh zT{%t`lt_)SQY&e{{X{!LX0OrH1Ddhv$Zr2Q@vKbJC}L{hnDG&R;0KFb(Htzl0~m$y zb8mj~ERF=;*IN%pqaK3>(4kE4KAXtrc=*pUB6eY$UsOJ}BFln$5%Vh-rhcWiI%5Aa zp&tr%)Aqb)_;+gIivol_Z(PxC^C9eRQcuc^f`Xr*22xym;Tb|NB9!85kt^H9DwtA{ zfFlbEecop-re<1_rH!mi0H*+-ARB0=fHbWAWnw$xSEH~Qc$*$CKk!A{$Uu*de)?b8 zzd4Gsq0cJ3I?py{%E|5z?VEiF7Q|k&Ev1|Jp<Md~+5El$K9#s&0)mv?r|dp4fI7bY z*WVf%t8WU?5QQZ2PzK%)f%u_BmeV;K7B_!qnNm_xxL$uHMi)@&UhF?}pWk|wqr}*_ z`~Udyg_lw3`=6Rhz`8cI-bQX-;p2rc9{Zu8>_GLtq+(Y>p4ll=c`<elqs^kbZ6HrE z$?^i+LLMBA62rj?uMEfPaNJeD-w)0v9{R(k_Jt)z<t{Gqv?W;w>$6J#(znXge8oxf zAjP<)7E;+}hxwhkhL1dHt6Drt<*H<CtlS|hY9yKaCn6@yac{4R3l4J(wha{e?U%Uv zO*ZhP294op{X<~Nz{+@>{vj|!cl-v0Wp*N|Gep9ens^*tX5apDEi7|Y?=%f$IqoyY zl_U{no}r=0HYmHhbo0XpMIbIqDZ4hSgK)OQE<!6uK*785n)I#T3Ju<Ezo_x$f#C2( zq}~dxIDu5$rVvg&GCzQUS4e`9TIYQMH+80FxkSDqz=L99<p8Fe3gTpUqQR`&su@#s zryGJPksqh-qG7i9$TB>7|1qL^IMl91cCWl$pvFT_Z;7EaaeT)P%{Ke0tCgSKG9y$s z_bz%_t9yBf;j?b5>|sm;nVaCm;eI>qL5fw9n$$Rd?aHMeMYH-ETzukMvFWIV&F-Iu zv=-?LObr860X22{-LDL(p7(=)Chih`$ZBdX-eqKDBpn_e;>uO`J!z^UsUd?T0s0Mr zHXq`E_ZOz7qssI0{F?ZJ&ld18>epZ<L_Gyvi<0pRZYR01up~S^8dUrlS65^Zc<9qx zD~-|-cK6OqSiS#zHw;)k`(qX>Kb~pVt4Q6WC{h@Bf2Nl|%BG@WQWTY)O|QWNpEO)C zbjQK3%=%PIHnA@MhuU0#mC>EQzA?0F?|zg6uRq82{<xcd#zAZyCmhRx&2_{M6BI=k zdRan{Phn&oS&)FwMfkLX8MI<c7(w*7Oeva#uj&=WOCPM$>P0Y4N}6r-E*kG{=Kbt_ z)AeIQISQIT35RO(JcW<vm2>k@d~TU?Gjv7Vq9HN}oE{nbRTdH8o;A=z=FQJmE6GtJ zefLHkL_04eHO#H8tgQ4}T3$|&la*z-ZD%J(w&oBGU>;Yw17ibng}hVQ%5H|fDJ?9z zjK83~czxp4p=Jyjur=ecVIZ-l<4$k_N|K6Vx}Whf>+F8}KeS_&mN<|u$2N1qD9Se9 zHofVp=9X*Q>Mim&YZ*>7=O0d?zF(v*;$(iM8ihycJY_tZDedGnnW;5cY)(dhzIuJs zXbL1wJ6%CG=`Yks_d@8A{-6Y90&V$A*M=G{CY!?|UJT|7G%+^p7Kx0}UrfcHAwO{k zu4xIp$(@G24+rN`C-44RB}3AFZ&QGGqc)F&6Z%rNa^fxrk>6X%ipN=I2vvhK9T+y! zu*H(xw(n^#$SaI;Tv(hBX4{`t^1sDrGe|JQ_rDna$=zCoh_#LkqF4|B;+k*2?~+A} zIv`lA`@zyE3v2pnXV8V_vcf>+LAfqfeHI>$C+$R$2A~dJc_16lJ%n5~Q!%yk`79Vm zecz%&CtI$@N`7HA87ZtU>?_L3g@%LWrhQUpTwO3ofFVgkK~3gn7bM5wAs(~p@YZ&2 z0i)~v1&vtGB*$pmr|vDG+w!Z}UELwu)o6pn@Y(OwiHRFYaE3zRN>8_Ysq56zlaBqB zPYp;9AIkE4S9)q;TvT99^R85&G<RFcl8;ew7rnJ4&W>zvs<rmX79>i^hTMtj5jkm@ zeKrw7f;aX!sa|fUJdq##bM~lLxC)@p60==6_^}g08#8sH;p%agX^@En1PAxbRk?W| zM~b|oLnvuS$+{8icW7Ni(Stg_w1}0y|J~s+hc=<Ee@=IW=`=!Itu#Amc+!xa?pf72 zZQcT`jcgm80q{eIu}Ve$*MiG<D-odJy<^mT08=wBgaY6mX`zG4)6i4Z`6SwXMa$xI zkG*4esMCw)BV%Ls?Q4HY(be(V4~Eh40tx_!;&RP2*e)u=-Rq>_m!LBCklgPQ4(mRC zYfWV^B2Y}q&OLB&=~z}k<9_%lGy@^{XU%CL$IJps&nr70BmrAzKX{Q+_+izh5rgat zAlpyKQ_l>OyWAK6LaVYJ&cL2CDv~gbxyBc1yg4;a(&J!v`S!j$-E_Tp=zdd*n@mvv z%}e;9<_qUNccX6hCQFpR4_>8mvyQb{^KuBlP6!1^eeFauB*xxlI303h*zK#N=M+*D zN`-32gMq*;8Dju)w?4;wvnTi^vl;1)V5km;XvM)DWcGsQJmZ+~;N0s^OG^7+V?wt8 z_Wr9mtIr_tFBo?6^#}3&9&`J*09KJ0xYr{p(^?3X4t#J#gPh>asp;zVodRQsg%r9u zP8Nr~UvSSSy=hI4wIxGRp>K<&x*wYASM9_A>*WawSD-FX{@^7sUAB8m<LFE6+e1Bc zvjoA+zsFmsv`~56X0P{dhtEMhazfgF<fK7K4`WH8FHcBlkl2WqF~%|*%qzU*Fasv> zDD@T{oJ{=9k}Dij`A)5-v3XV!h*tHVC7+}37KZX17p%*>FNoZKJ7VblPT1>4!|z3X zZYJ)XP-9t6BU#_O6D(CnkE$R3T+2uk+6Sv<OIIIM2ud_-hX5+W+A%R$F#}xsSJ>yu zdOP?epghcwEiz^3!FVEYHd#l68mkEDI=K^5<{Z=edqxz1AS(p;M%s_Gr<9+!)i<3K z5^_7Ou4&Yn@pYpaw{B44d3NbUxcWXaugjt){@A=ZLs`9iL{AMkk~#9)YhSot=c0!@ z*rxgp9bAA*On-h&ZX*iwQn6j~ErCm?!HBbKJ-UrsI!2NS6a}ogTHBWu%8XQ+zno#o z_1uCQ=z@2N_r)*(MQjR2)_B@=Ut!c-SG398J2aNS1Br^TGahne8Ai>qZ#LhR31$QQ z*};3Pi~_Qp7>)O(7ER}+#i{F^#J61!3M80Wii8qt!yIu0F<%iDaKEbch3Kzd_c050 zSf~AgL^TI|nD2T~9V6~pdC?2OJMz+L6>jEHk%%k35n?Tf@9Bx9>U>=M6I+a_;lm?# zG~~4zuzb)oucVju9YGcaJ3PRSZ>B1!`x9~CcjVt}3Mt}Ggz`NL;*`*NXsNA;ABGv; zZMF4jlqPHIkkec<67-sWCF=W331}`=>&HJSbg8BL+Gb_xvgTV<`IlO#a)!2f%nb3A z?s1umsE5Tu;7<lu7SQURMPq$K3I1{ha?`j^*&4*Q-BW{@7qlB3iT4z9<sTcrsXu-d zZlEyZ{=w?&(pMGB_+D{ccKg6o-gK=bz^OvS_APJSCTMYe^+jg(6Qs$%M!}tD$*+^& zVE$=7BpNdU(nK$R90|jK_Mx{tREMcJiz}ny{TwdZZrCmG)ZaS5Ku^!FuBOJ3oqJPG zSJdwOInNC+#yynz{Q1{2A|m4QuKXJJ$MhNr_<1Lh2lVR4C%>o5!S|V*v`U&ZdMg|u zkgDP89T}@??jeTt4vMU;Yhr3`<kMD-6aGxiXJm$QJGwE#AkN#iEtD~$0IWgFhvDS! zhwRn|aP9ehD(zeeXyS2fL2q)Vo<YzWBt8RHyg_al`kj{a{re${-uZhwcWv~J&Q4># z7q)U;wgu)&YbXTZ`4Wun01T)_OX~zVPq=m-A<q;3LiJK5ufd_AoP?5x#lH=;29=dn z1vKXY;@5_+Y`ABmg=MtbHMZ?6J!oNg05!F8^*);gA~TJWq>>`t@aK5wylotrRqALo z0qal7T~)%p6>hQ{g6an@)aB#+-c3Tg=Ftw)d@Z_7)xM_@LR$?ieuo$9d#R%6nSp1t zt^;RKZbm06^0CG|hA^igC0$xi)juz5@7Yej7SkUJ+}68&4yZ`o<n$W9LqLPv4aja= z)@|is`E$WeRMe22R3?2+PxZMkPW5>XH$P7-!y!8{LKpEAWnpD~^HNe$a;zgRTsRMa zV^Usw<m2O8Cd9}0`h0)3K^_|&O|&|-m|NFT@B^Crevj`kh<rLPqrsH~xy&-WIVO|> zAdvI1wQ*71ZBk)6{L_|53E;q7NcKxv>72%DCY(5H48}tQ;|QavL2YfM0^im0)ke^Q zK3PYB4NMSm-<+^X4O+fl;a3%1oj#Y59lY4j&OnhkpiPkGh|F~t*wfn*UQMW-Kgvbz z8u>VmX<u<!gsQ2PA3h$fv{#kvzR1lC+1A2B<!z12FzoKZgMdL_<Mpu!v(*JVT6Ma= z*V4CVRVdOkK_+)zk5kz~xob@}^Ak)pZ6Vc;>9kGXb1iKaUmmaL;n2zanWkhMTh~qv zCg)g-N&VcG=S~g`i{m!mKcq`}^t+dNx?sQn)HKR0EUdO!Aw|5|B>1i{kcDbmW-v+} zp#k68=<qKdqhSw)(xMy#3O@EMK?zHWVr9N4y&0HXyt2fe8n)^pq`JEpEvFJ{jD4nG zb=ehnBwv~F1&y;+8dOHYu*MC*tkPOS>c*<PID3Za4oAX949H~fNFeZ_)Zosy-3cos zf_dQJg(P{3L^7MKI|6Gc^QhCsPgZtRzSHYGFzC-nk_BVKe!JRl`0FN_`DBSmwA+N( z*dL-iJh!%=;HP*COQu>38@@Fz8u`nMe!ONpja=K7$r5fT<wXkt5>*r57u8;`-0cJo zb%(;ap?V?Q@Q*Rc!Y@865@fvG#49U^*<1|8UfM_O2#zk43g72ii3f{H)!ZYC_OtSx z`{F}v(MZF~cR=<JdLO<9{#xqNs24^*c+^bZR}2#tPwq5<er*^Qw_r7y+ET*+K4SN) zASAZi+7ESfN9;V^_6`MQ-|RWzu@c=yTon`)B=9<}KlFzoVjKJS|H$9dweR-?O?+X| zYf(5`Z9W!GMCT_~MCsTnz$>Xp=F~-L9f-NmZg|I#>{II4fI>E_4#Bft+$(-r?3Z0+ zv*0QI%6M=pj(XLcA<de<Cp@OHBp=AU4pn&pCC`!(D+13FSgk%Xy{K=itC;nNTiT5+ zjqyO^U6aZJ1a40W<S_if(QpE=op|annw_Q;85-nUuB2ggTBtv5b*Iktz}uhEsejPO zToLI>hb9lYi1@7%T>HEMf2rA%GUm0Xx_1Vx(P6{4xQ{RA7?1e+^&?S8^R(bI$sg35 zOBk(Wa4u&)CLIERSXf5|c&`vUXAL>}atW#oua&AT8GPGX<-X&yrQCQ&711|3n=KqJ zD1qX<P3X`~?@0dy@bC%>J{3GXJiuoum6ktzL^0?)>*7w>gBE#AKHBo8srYqThf;-S zEe2TAWyZ#aD7U!)O)@gX+5UMf(!1WNmx=yZ5PD-joMh6s6?*<%*}T-VY%zjADhgKK z8}iD~_j%NVmc`pTl&Br&F2?EOjv>E(c;tnA@P=iDdnPDjVl6y+p{lU7`sDmcLtO<1 z?~RgiGf7%gIzG9x0FPPkW&1cz7@^@Kj1bAr{;1*~PunQd#fB^j;QNCr0(CgXjw&iP z8qfnjQ)i+aSFWv;SM^*|v?3-<0I0)cT^~5EwVe8pd{!pscg`!HdQ5;<+0u>|63S z6mZ*jC*rkVndHZ7gGDxtN0)^Ca6DDaWIfebJG<l)Q&%RYQ$AW%_urf6e@jxmz=VNx zv~eXs-cvy5i7&X!0w=+ChA+u~22n_$f3BS>MTfyRS|$WsEDV1|Ebh6%A))+`g8fMX z=f^|63CZ1+l^I(Qe@jDsrLp}_7HE{Ri)Fm-iC;rv)aH2l{7x25q4wH6-A!3X(PL$I z)`*(;IO?Qfro@%D#n-<0S!gc0mSVs9x(^!tM1F6v`HjNVn);?a&*PZKBi(Ca0E~E7 zE93XEn%-DI+(|u_oA709QtE4|oy%`gwRB#w_i)|KyScf!cjN1zgH&}T1~lJLciuc3 zkJ<Ebn9=*QjWzNNP|)E@{jQ{Se7XHyhf7K4(Y2Ee>pB|wdR=%H1&Bn)8P_Q^1ej5x zut-YTg@MZ3z~O-bW1FwyYpoK12`++|Q>ZXu6=6Wgqb^zE+!t({j7D?JvQBOx2*#{X zNPB)SYaiLG=Ki`+qw74xeV<l9ka2Wv7db>PPp7weYLw0F{Ly#K^X`)98yejnC#O=I zN>G!oeuXUtl<ADfjNZp86JP@0wf(0y5vH`6+w@5<2Xg}l1k6K&=~BWN|6T`$c%2-^ z#>QsT+N7LWdi&vf;A2&xB#6GXonDQz_0(BS=iEaG2ogNYDy8d)ipyIo+QRU9-pE*b zjRv<t(f#Sw?o+=`98?@?UXtA`J!BTbA!du-G;tZyQ_ELm<wc9F<znJ+d58$GOp^}S zExIqdJ1nJ(L*+J$E;c6cz-MmdBG7_g_ugC+w7We?>C6&C=~mEQ-oCc{U10G-=v<L( zum+Y(ZxKDOmHkz9s0J^;jy~D>rP@{utq{EJhGIfd>R5Bjxm=doNc}W_xIS6wY&Z4} z0(dZDm>mTH$jN2q1M#gZIoCBfwkHa{ovHo3ga56_X14Ja;`UaHM)q;!;N=<&!^Ebo z*O0*)_oS6kW8>h25sN@mQdFc5dW1-eA>7#eP2I`*SYPu#9d6EB-%gNk#dLiwprj|r zcaa#YR>9ZskXevS%B{Q{!>ZU%lDGCr&{!>JKmaC<TR+Vc=TxiHBQS-R=~V8TB7*W@ zXJ?!8FI>c99tXXC^OBrZt{XMKb5iO4SkOSy&5{pIA=>b#`8I3=1C?i*Ke)Q)&F;U| zv1Np75O3Dh%ocQf;9tALe6V#>EpJ0uYM{K3y2@lhX0zMoj#j-^guz9$gKeilJ@rUj zNRsM1d${nJe@q{!LoU#X_~y~BpQ&AI_^K9(M*90~qqDUt$U4OHaSq0#$e&^GgOAn3 z_gUOP*fT(W-<P|*P&Q+6J(fk3rND=+TUH2<IcZ8Fd$z)|@TtE-qJS0V>UdsXWj>~2 zf19q_i2bMaG9U(&UC8R#ICgE7Z`7rxuJYshO?p38z|PpBw2L@oucI~dc5A`u#N7rK zm#AMm+k^m#m}#o&^_TGlPx^$2Jfy?)V#JkQUn7wJeK#A|Fx%tr{<izak4(a1USlZ5 z4h0p|3w=EmMqOGoAE{F6S6hIlt|Ymvq0m+;hSHh0bU(FJt@j@Dx~GD%wtZir7+NRl z*W$F<jhUXF-Wp2mj6BApNlr|`()Dy*dsvEZSo*>uWGqSncTlHfzl20n#j9<A(1vaM zV~)n-()fly+|vXcd#8l~WH2mYDLQ$#DCJXB;S`uw$H!~|BY)Yc7#ZcVhzboEtX+L` zs$M?5a^l)TIMq0LW0k*P0{%q{Gk-qC#F+>?^AsC-;r;5P<dH3duYBi{c@RbPeCJJR z8m*nYxMO{44l%}s+eTR%OJiaq;<la%;NajWg{dU%(Qq1^70-CT3OYRS5-lF<ry@b_ ztzwrqwc~a0Q2kS^Dx|R*E><pv0jxSmcgE2pl=raAYFw3P`r7^2%Uad9)%DPafy&z| zqBtUT!R0u069ee2%g(#*gwZKM5WYaZx7u=AD>V{}b#EvOv+IO0-bsNT<bxOF3(80R z&F%mzhFz@ap5MO*6ORruc<hop-49)b7vP+vh9kaLyTKbvI{%h;nptJDlHE5c+|jHZ zITD}om6&5ikxTej=R9Gc^14@bO(nbbedcc@8O(vAZ!&{YF&k`MMp;sdrA0eN4pn!$ zBv2zpd{xuRDyWK`7u-kwn~SN&SbSX{J$ZO|Ix8wGbHflf*_@}0rd;w#bSI`&&i+2# z9{cs~T?p6Fdy{_P6Z&3VOC0nN73k|pbZVG`jO?r=>!E@H9MRj*Rp8+(<%_7-{%56) zl?6K~B@E!|B&lAle%5rD-^E(d*o}xMJGJPL+@b1Da2*jcB-nOn5%4w(T{bSUtWE^; zI^jBn9)Fo15)$GS`1W{UgKywI8+hs+ape*7NH|8S`2-h=TG)r#Mm!8s$FL$YN?Pyk zsIb+2+(yymJ~a?*2*8)@>jB2$FZ%N>M46BiI*eV;mXL8w%|kND<&N}N;Ptxazs_E@ zXDRB{c9f4zKNy|+EYPi9r7f^r)1M}e<9GrKVrD1J50z!SCX4=tMN~(xattZ*>NV{s zV!()-T6!oF?{8K6DAH2Z`B7@B_sY0MLoWs}Cjf9f$$k>kh@^o60Q2iE51jdGYLAX* z&LeNG^_!4er(_jW&v)*&!&i*6zuK8ail<Alc-M^^wy3U>d3Pj{=;YlL92}P%ZREV! zpSNAVD;nG!tu?)5E0<N2r4|^sPYy-s>UilPUDY)kChGn+^HEE7Bcp_&msk!n8jlKM z&Z*`zoGOV^uh){t;siK<#(s&8#wr~u)4t+*(;iC6Ei*5{0Hr1+*KdDok21EC{OMBh z^?M8Ljjrf{AFh@8^47GMtIBZEp<!cA*{w}2w=IMO)l7q|?wPa>{Ohvhn&J636Fnnc zWBE<q`$EXZJI~9+M?TY^Uvfi#XHf8fNxLX`D84UFWef4)Iz~D{R<}s4rKgQs2K6?4 z?3U&e-u=^fgG7}%p@<R1!~{kLN*u*Wj`xa}f7FEl)*(tyvyOY5o>x7L#{U88vgDv4 zHr)b{Idj{xZS9<_*8C#9VZRV3ivg_Ouj|4<I*CNcXI`4zluBw6)@7nfQEUaa`nvRx zm;&Dw<mI1-jw1a1!&L*A0$4`-AH@(*z-{=J;kEr??5IxBlor=D$2~cU*ZI6{PJ6ne z5uIFecR;D5c$V7#wKlsTi^TD%LFddEgI?*Djzd;-*Ao&V8YCp!^Ft~>s*<ZlOb{$o z-e4r3U-!3Nb9-hm@Tu3|z1p5v@T^EA)$N@p)n)MmXH2Hy%IPL-sjHKQmR9$#o}l*v zJZyFar-je>C4hA&s^<)$fPjEk-{}SHmxMVH<U0=o3*2h&b1vP7u{Dh*E72dQLw%=p z9h0MLDNnHDr?}Dp7Ls9vQfFGF&4QwVRHKKK11nGU6A~f_ETyo~p#h_3S~|p}9Rkcu zP)7~c7FZ*KdMC*!w_$mNVj9jnVjCPY#i!5^$1dQWTM?39=dZ4>jUs<N{4nMlQn;;b zoKmPpGS%Ck&OL{WZQ%wy-S{9xgejEr>STE(;`IlD&xW0a^tGg>bXL$4W1FwBm=FMq zqq3r;R)(65c>c&NsTiYU99PC>W}a$VB@!r^3oa@~Mm3zXMS@$oz@hgs?<?%nk#eiC zXl!Z$_&Jk`acLOW*konBmOEY9;-8nbx}_w?9tvr(GSwmnGVNje!x_lMXf&GF)Pcgq zo_xdBV;XKgPWV<|>ur9;Q|N&{HLfpu{P_}7GGRAeG=;7&&(YPehz56GQQy+yiO2g! z*Xeam)^hMNObqf^B4yJg5YhYL?Sd2w)<-eja`fiq%FZ)3JQK`-e+Ok!koOM5Bq<;u zfbx7wY+IA|NA{6VJ%1)$+2sw^dLRj;J$01X@VJBki5QljG&G9n*DE=W(q3ZU(=Pwe zttMf^K%(Ow5dic~f2l^bDI!GybR*@_UFDtq460to_p646h9HyIoGA1UIWkn<V!dmf ze`!8HNNrEhPi{M}r{v^Jg@lwekOK~Ix<b2pPlxHtf44eVC_r1D{77{8imRX<1js@4 zfAhS+eN-~l9zR(cr#@eC_!AQ_W1y}nDEL|aPmjXX05ORuCJaOlWmIPLexDK`Iwl@j zRFOw~^;4UY=t=H=p(a7|U=Q^UcYBlYA40$Gny<4YM>ADtR&8$en#DqOI+t=>ZL%SV zMc6=W?yFR3Er)@vl$W#ll}WyRF2T4Fgm48_pNMYUEQTs4j;aD3;mLGheJajGXO}Im zRNT$_54~%?!eAE`QF$=uROgPaAc4SA(e>(eiAkKuP+(S(gIXGCOCpbM2S$(fV>MUH zBKk?RJGS`8%FXfdaX⩔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 GrT+&%f-&y^ diff --git a/server-console/resources/console-beta.ico b/server-console/resources/console-beta.ico index 57df32f878468218fcd1f69e9618d46eab0aa277..c551fc5e37b32178fd04a4780f9f4d209b06de67 100644 GIT binary patch literal 38031 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 literal 40504 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 diff --git a/server-console/resources/console-beta.png b/server-console/resources/console-beta.png index c2df15832d807447484183f59f5070a771adf3d7..288ca42bb39c1733b5a7b953276ae6abd0aa518b 100644 GIT binary patch literal 62915 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 U$CMn=dIluq>FVdQ&MBb@0IK}^xc~qF literal 112177 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�<?(D0LrD}^;t_l<vY${kN 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 diff --git a/server-console/resources/console.icns b/server-console/resources/console.icns index 8810f804c3705217e88a4cbe53f756fed4ec3aca..61e8108c95a1416733a2d565346d0375ec558e14 100644 GIT binary patch literal 292820 zcmZtMQ*;~-7^mTxOl%ty+l}p{NgCU>8{2kcqe&V&X>8kRC$?>L&wuw~&*I{{|L%V0 zyyvkob94hhdoJ0Sv2y?b7<19e-(*k_2@wGR0E(Qfq$&Ua5dH7qVF3U@rH#ub0002G zsmh20YG;T~004{-IY}{fFW`Y5f|vR-j&PO&P1ZS)?*J+d^g7;8hL|V{x<>3^1`7Ea z2b_2Gr4?0SJs$2!(_isS6gfC8>QrBs8|n0{wHeUm6u?wrTtsq~(+dCoP5Zi}C~#oW z6t^C|ecQ}=yA*oLb(`gTf>2XzvEt7O-S~#~UH!5md3AubM~j2w52ksD9(@Q6I$PCn zS5on^LqP`pSy})KG6o$5{j^<o_tsZ}!6#Q?G-j$twASnLav>A6csySx@KQ!-9-}ZO zPr|(s0b*C9)brG{vRS-8-*^`AyW2`=XlPI;Uoq|Rw4k0fqWt}|4i5PCuLom|Y)y!d z@1+a`huUSzor9Fu5@hi{!e3q0YNEFQt|7yb4EjqHgxy8!a(6hb^y9}5;^qBT{@j_R zMN62MTHslI?aH^GV!EX-p^@m$YoxMj<$>i>IXqY8M>BbEYdg+sT;w9X=5CvfO-uAd ztn_1^={9{G_JggZMGF+ukD`w^p&%h%)1Wh$b2tS8A)ouCz0t(F)^&S}Y~%F<jhV=Q z2A4~{zU%Zv;CD;GXfG>*-i8ENdwIfAscZ&^$NrwR@~!PFroKmZQ4VaxFSIl?5!FV$ z0h0edKgtQ?M<jp9{hFqicVoKMwfy-*op*cQTC>y25(>3kGV)~qSE+K=I=gmph<=&^ z&Eop~{rxhU(EXf@)oeaj2~ABQ=Gb~M{@BVYbj!Lma<a2}*>>*gMPKD|mDZM^?NS9n zLqkI|RCv`ijHdTayBr5=38L>E?o1&Ww?fS7WEXacg0)%2iiV2Hd{K>FTiLffes?lk zmx)pwHm5?0iQxDMI~9Q1YPzVjRmj0OZNd5b{i2eRqO3KiAXv0q!2mAi;#L6u)22rw zmzc~cgs~LzDT)EycC-!=`vgcK$GPZqEuPdL9O0ER>o!|IG+InH&QoYRxD(9YiB`S- zEtfIF7L8Z4MpPnK9E?DT)oXX&3C--Ffq{XMDp8opCb=C|NUi=Dq0mGsg|}D0D^*6S z%r%8y8UOLE|JE->1ye#lThfn?&--?NgwO4;tI2FMfzf(cGB%4kP1J&I{T8vuRc5F8 zei;)7=jW(8*Lmw-#~fTj!arHvnc%Yt;wC0un-nCi`8HaSr-^SuI7`oS6coybG(-nC z3FM~g%$1Fe9KKJN8&xz4ne`>j%|B{oW9Jr5Q+((&@qE<)Afk`l-~_^!!E+y_TwWJx zKfib8=bFBiJMOH1X>tkrs%mc|*`3m3e^YOOb5%M?Q&)~ZRG51ev006J-iON+b5wT{ zB2~ga#bYgk%>9h}?%^Nkg90}7rB>KyGucZn+-8M%ej0RolzivU+x3*0Jm<IylWWau zhyh{f6SyaCd~qRvUFaW>Zsi<9+K5}=T)-hq649Q?<!gF4$S^X@$<EG>H00Bp3t*|# zrWN*51%zKg?b}W-RcX~l@of3IeNQA6q8Xh1h0W*WGBKcLsgvb^iRG}RC2|DMfPtap ziKn8N+nhFbR0TsWjK71F=*c~iTT8ycu||!$J2-4MnoyG??EeZUlR*3%u`&+rdn}VN z3bmIifRPqNQl(jQD&h!f&q_{CRuG3?{9VmwmW-#Q{?!nnl)NOLuD(%V&Re<7J?z`- zFwA(6b~jZd+}GR*=j3JjtSF+BOumJ>HL70Z=3h*N4Lr&}XjAZOQja>rCw_SJn<{%V zFft1CSWKq>Tr5+Rha+(H#nd)SJBjvZ03$@5(EMBGcK8E{^?bqpoVIZYB*%%e?1{q+ zgBR@<yI!W{j~x4`2|@3I+DC+*Vb?%_p&dE~m6~Z64u!fYP^5VD(@Zu^H{KDKDKiX= z_E=x=w74qfNMO*y!@$7&#lpnQ?`K5f2<F1xb|wAc19iC1BoejFZ|X@<#>IAC^?Ok8 z?+ElnNWRIfv0Z3xL>1Fi<Cq9|X*G(3X0Ec>IY<;9A8N-bh;=KnBNYqf_N4~n)|1Y6 zhCS7MkfH0bijH3NG4vCDX^ZpAS6Imtj2wNAcAv_(HZd6MWyV5SA`P+L2N>{LH%Z7r zP0!AN{bO_qjZUgr3gQS-igAR5GTB_3dS+gVN#oZM?<ywVqSSGc_*>OB^l^MlDm4y< zegD!0VI3$hs=EDkyzAk1+w1c*x_5um4C9yMLwG)yWfp&7=2RRbjju2@G8p)Q&+6fI zWusf_Y)n(ot6qCvKkq-PB~klcH;M3BI8!j@_!gf5OHK~A4_tS0zz42cwS*$#&3-V^ zTll0e+pw>PL0T>*GR%3L!Ulw2`%)I!gFscHG0C@?FJ9D_%-Vj)XSc3<z+9h}F8FXE zZ0<W^-!av|(N@IzRS24JSFiq!+pvBA{YTV{5o$uxtP?_pkx7e|5J?BpU}oV6%ujqs zmI;d5lTjK;hC^eSQs(z~8K%2=Oo-g-)22Bhe9#L^Kb=b{86W%(!OTWQIT&nXxsDW5 z3Bq5i%_J27r7cNS0SIv!fM4WXb*_{V?zzzIz7TqKG^~j-I~8m{g|dCbfrJx@cN8!X zAz5Lrnw0RQAtFZ<=sh9l4gBaS+|u8XLk^QWi>dZz=zdo*yEYJ}ql00FH8}8Gb{rL) zB(RdAxRV*b#6x}m=3VJlPXQs6w)5Pf2S<GR$)(xT*H8A=vnKt#K)EIYmINxvhc@;_ z2LU1LP>6FJ(po6thY|Wseg>CG>+p@hmbbZ6uG^Dds6M}{F;RkGb1UW*XiJC6s%iKi zL4KnLIN7Y$?%O<p!Ok$5h&JSB^_A5o<kgYfntn#%3iqf(!Km|dKRVN_n+ad;jeu-h zKv^dV<3l}+m+s({_a)T*ZHkgU8ZuLj-zU`?-}Hy3RM4!*Or;Ac0vF;Min+<1x>r98 zm3Z74xz#xUom_bAvsUDTc62(sDTQwB-%JO|f&Od$&>J-a9~<3fbT8k3ljN|-dM}eu zJk74&UiL!u*<<4JZK<nAXN`XY83(sOV(0?*FRfqv3!H7RqA%?ji-RA(gOD0c&xuQv zrl^#odbfL_`XqD3Xoo#$L-?@g07~CeJ(IU)dDY3=2E#Zbq$f?yz4Lgpl~J{FHiKeI zOmjeta(Rt&x0+jjJ^$eZk@7yh^>yy9q+N$9xiWL?FRBv!eyVKdgq;W`Pj0kyF1-(u zdM<^2JW=Ez>wT*O#Q9)wi<F>eeHXSCHz8KT$4O5JpXIIQfV&#_n)(|WGMEF^-eqYd zr5S1W>%64!K_m3y1%Yi`jrSZMpNOhod%-p9jI%=6kJ!843~zF%BC&e&{9YDR8d~3V zj$NA(XxJAAYWtPy=4G!PSo9AU@CPpWrDfpq8ys61+rcl9Yh98n+p{SBKA)-j5LiW` z3(SVprA>VBTfOfR_I586TMS&Sc6g2e<==J>lT$WW9vd7Ix;?CW4rp58@#$X`{4IpI z`O9KQhNXYwT8s=sppIPwLjEBF&|rR|W|k_FI>dhPN*?iJU<`a4hLv$Te{LS7IV2`_ zUXn8fV>3gi%56MiV;=ZSaWDRXo5Yjieu<d0|M%Mo5px@*rybhYOHS66##p69c2}4~ zc|nCK?6@)PJG?STc@v7WPqBf&^tVs6WpU|BO>N|eSv|@o)<e3n9ZKZIa>2XzjR<_B zr{qJPtV)|v^Z3AJ(JjK^D-vXVSsLE45rywvwAv~Q>0Ii*E_tZ0tUwW=W^*gBI#$I{ zD8#_tp&z8$aQ!jN6ETs`=<x!76wmeNtq2$|B_i9NeQRvKvhx*Tc>Cw$s3CYzj9ElP z-8z-^mfeR~aLFz5PEbaDC*-dHGda547SYE*DIer)RfchRCP=NSd!@BuwyXj07?V6b z@NJHAt#6-n^DEuX&An^G{2wkZMkTad%FONvp%A}n=o+?*r#rR*V*lf?0aj3r%NldQ zy>mEm$%A$Jyta+dk`q5n5-<MV<;5&JwJRDcDdi&)-A-5Apz4^d6l^oFd;(E4>r1L7 z+uH%Yw`0|8f7Z|+1*X)O8U!(-99X#p(`aEJU0ME@NiTa7l;MsKbPsQu?+6$|tM$4R z%4F<ZspcCEys~^zt!8W&F8g>SgD*4|Phy`V*Jr6P*L2yDcplP*MpJ0+Tf^1YWam&H zzqBgsLl8uKLnSoxxaD+<3~uYQ_oB4yaKs6ccBqYqt{i`5oMfK98l$=3L2YKTP9Cs@ zR4I*`6O(Iy17lZ^6!;P~!{P*~86OC&z6HL?l}?T3L)dA+(D3VEQI#xo<DnT2f`}St z$1LXG><Z}*=uCMeDe)RA(b>;3oZZ94QNA$9Nxp1~3Bt-Oe`j>jujgVTg_ijJtJs@m z+=%ncq{(NY6(jf`mP1~#MJ13REp}ReKxl$VVe;rCGJE=0wU)`ZM~k>RVe;r1wZ$?F zMdYbNp1S^ont^0TI;B{x4X`EzQ)evW+OxDKL+iPde`gymK2*~s9t|5O=&AU=oo3y4 zBcQz^r%%_@-h5$EddFPB`sNARzLi9^=wtllwZEiBKKt1T<t=MVDD3BT9s+|zLq$!k zxODc=g&yuNP~H_4)Ql?7-8!Nlx<kjFXi*1m2{cEtU{a09R~i92t%Tbmigt>@Hw#L? zIjBZ`?;{L0Zu=|G$;rtxohRVwrmIVMMatN??Tr{^@Ykt7HQ=|~aE?|fZhl^#gTZgt z1L4@=MmW!43IK^&2-J7M6Ox$tIsNKS*U33alTW<?(k=D=DmSmzc~J~v9DNS!pZNvq zRL1bFqg$jwp}6|LKuXG`iwTR{U-XkQBN^SvLOmzM30Q%%06X}^EyK<|jrNs3S+Ldj zqYn2o*mz<-S7`->IM>A-4tr6{kt%1MYwtS8;MY~;bL0WfXg7nRHv-2bn^y)FmYKCy z2ffq%@zkec+}Ny`G~g`otXsUiMJCTD*xfX^CMbs9{dkTXJEpzPs5d}OTwEM;tq~sR zaKdA$6Z5;P8B^c2=P{h0$QLB#TrL@YYEFZz%IPAFAB#b|o#OskBoVnHevRhl=H`tj z%lRbUwfMeqfh=MdLW@_SGx!iofEYdhOyN?*XFQ$FCDYj0D15fr-8nQo?2fv8h774A zLuu*?(WPy8cHw|}&1nyUO&p;4&N1;CjPX_4ddMmFO{;H~XEvMb3<jbCLCeRV`-OuT z06WIWZrHB{lY}0A<WFQMWY!4}*{kvUcv$r$LXP+_==dI;5C!i<<}?QrH+(T8mYLAl z;GZ|U9%449ZD;Ic?aA5Lr*VD9CtKzf3LTy>FmPAEY}DiTxz=DN0zk{9v$-TL)CW67 zG_)wqX}3b6Iat_)uL(P0@G8C&@i=yoWYCt|dB(I`?&K9`BoQ3qP=-D4;;Q4O1h>wM z-4f|1c{Q)(k?F_yxh<5+3AkXyh`WyL7S7F{T*bo%V)xDPnhXQIeSc^zF!(-Ql0-Aw znyIR)l8X6RM{pd>?Q2|U66}TYE8Xd#h?d!e72K_?a<)G#6Wbv|y}x5hzcTAD`~JJ$ z8N~kagxA2P>==HVUNK9V(6NOu2Tg$N3wnc6L;n$Rw7+kE*gIssx|Nuw$tQEwdAiiC z_S7Lb`5f>5#aM3v%)Fp((}eaoEF9?EmwW<!4o6k8p;fJYa~+O^_h>DC^Sfnk_xz6F zp9xe9;5N_VvX9$do{)igfy&|WCKPUy`4aXVtqa35_RW5)=OgR(_Es%BDNO_Q$W&5} zVvEa|WW|E0Rl_C;*XFY#h*Jv5SP6`i%;9ytt+zACSgmQ7OjG}8PT=TXYfQ4D@wcAY zCTS%R7kRsjIf?S?Ik(&4)Z5+dt#F^dBlT^b#rvUVqQlyw08F4&@CX}T#6&Ll??O}E zi@v~2<N>v7GO+K>cHBVUh&y~aR{<u$(j8K5In)^4TP%>H#*%Fjmo|4cYlI`#jAGD! zyQA+xGl&M;KbvPZIxLpK_2DrPM!y}sm*<()Y)1Ith|moL0001TQr{$N#f?L3%-DDU z0Q%(rPtOSg002S%v*!#7n@s*+J%?W6fAyRT12{jN;T5t4B=Vw|AW^CxK~eB@xG{*D z*wCfX;h)L{V-hgxNyShM3|kWZ-_vMh8-(nyOOY0!OEUlq2ub;nrK^8iof6zR8#y`V zSJSY9y$T*zm*?kGd{#4jZiiFV=&Rg6#O|_cb=uR3jBwTK%2YqUB*?8&;OWOAqr;19 zNmWMeS78bvjmFAaB@>^v*zGzqvjd_H2u}D*0j2g-%+K30{0n@gNV4WJRiw2ru*O7` zNwqSFQWGjzs4qd@St-dg;9+w1e;P<y0-&UADnWuEhvlbN1%1kAJ~XXQHNvE8a{vbv z!ER+(RT_|Pm;RKIJh|OxK&{KF>wZDr-36P>|9+mF_&vE)v2PNZ11gIOH@Y&IVYf1* zDjq1yhM6Z#8ZRWYvtC8w@Td6~o5jQr$9O_6AI#q2d?DXMGy)Fun`|ySmL1xH#l7%@ z1>VwRS<AVMSoxn=_bAMHHO?#i#Biu*yj`3NcPBeLJD+z)vrbzb?q>leCMI96JcSt~ zO-*-;TI^P5d~U~S1EUiYXZzg0Vlbm?DG;-`uHh%DpYGTi2N^2|`}7E6`d0RMs)kt= zjq+T~my8B6XjC>2IH~ale!h3G_P)EqQVpP*7k_1IM0-w{lx;>+P5z9)>;t%axR;j6 zGACu9VAk=RZgf6{$|Ml$WTvI1rR>qLu@>w!F@d5jP9~28yz|_R4Zc$UkVfb;Gz3Qb z<aZmfUg8LCwY%)OHd)OE5RY0xfk0JYqoV#D=iIGs-=`!0w?~5nGbqHlzi_I|%7}Bq zg(yWCqV48JbPmYqu<EL_84?Rv`P$!}o}Qiz+MP{uJTCq`M9%a^<HdtXlmb0+J@U|J zR}is*ENsA>?b$R&t(o)nrlah*IOGKI)H#R);UZMBR29gQ?NId!SHyjObN;e4`D!R# zY~J&*q8C4>_oh*!`_RK-F`=xAKk(0#bErb-m+79(A0Kgu&a_dS6E@RjjXBGBkx=7o zzECHks>KSCQ&$6A;ygDSA$KFo59lB8HnOd-ot%JVeS&B+A5|G8udl()-}3kkL`(+4 z%8QGOJDy)&T(FJdBU77(GyUmJ=h-92O5v|HathKY-@#BFtEkv!#S)V074%n8Q&Ur= zgOO;gBmy4i`uMS5pvH531RDXa8Q&S@Be7W4k?wKY<S(@AZe^P<C6eNXx+yt0ILt30 zze%#W>{e*$=qg}u2?h@0h}jRKBox*Q7<N_X#Qc@JdJg;~JQAYdZ*U|Cp<~J2p`^S6 z{mUS`iwg_i9RIdD%%~{|J@_jqC?H<W3C}^1S?&sPAj+Wl#n$w7g;Q%OJ{n`@@A-s~ z+QdL$cdm}-iUxzCqTqFpBKqKt3Ka16$S=_hhs-SI^zUXam_j*dXl0hFj#;I}m<4qx z!DMyTM!0x*Z5MA>y#+w&XT|Q?RZ7g!n|3AX`sL=P>fBaEYWEpZs*N^FA7THsdXtCk zfeWo}p9i?Yqld8`)u$~Mi<o)vd!^b*sa1bi?`^3Mlr*>(q9-KUfOc6?=n1zk40r?Y zE&Wmx>HjHcce_6h=MpJhoaK)m>#L6P4GEi;8o|RDK=HN1DVmp3=*sK3D3YQ3?Xq*@ zY_)C+DZS?h>Wj0dAeUa3KUl*LHM!tYR7G|6X!7I`W(^J)EWArl5w>~;7pvQUNC8b5 z_6&kUW%7Dh*24R^9z>)1lBJtyhTF#nLl`|JQPMCZYQ*QH71s2fcqL15k)Q1cl75%h z%}0%H%PAf)vHoavh#Xs!aInjha9kHsG>y;Z`A$f!T1cO81@R%HVMOvXaolj@A(U8Y zSsAHLo8v~c<3`6v966OQKY<w1kboKoW@LP>I}-*SJ#3+gjF6H<qWj#FkM8t(LBOj` z6K%eispxPF&ef2Unsxw<L|l0LmUq4n>H3twFB<~K4P)khWW~zo*!g-iej}&K;2*mz zhF$G9Rdqet>|WQ~4()xqC+iWbV}=Vg3Ze5=+YYdWQRP|*5&{$wN?xBH$b?@i9<O%> z-<B#h&Q!?A$o#LwaB1I@lYYe=Y30h|tsfV~xU)L>+(vo67*pLiE0+5^%kv2txEbZ= z<z4Uwygz%U(kNzgI{axiYae_(*7?ypevg+lL#ZO=1=BSQus4>X;&<b9T*1ok?wfD4 zn1sK7Wyvh_NA$_}2qw>U*^iQgTNr8{{6)cxB88(hOVl$QA6t(W65=;hSYgcG6_C^} zJV%^Yk7mk#A&9qNd{U;ELw7rU4&qO=CS#LUNu<?p#GSIU-|)4rSAi_X%Zqc`1Yhd) zQp=}9K*xzTf2=PQFZdifvYfZRh2@J7ST*FY_EfMP*`rX2$HN=3Lp_QGwx^kJW<!<b zJ$<~M)p2%uT)Z-7hIHqvsvwmjU~P<BCGq;*<9nq5*A{KIRc5iMeH_akau6naTndE! zUnOR@LQV2)`~y0Y$ff^fF$9QIwF7UFRIoLR3tKN+D?d#kiv7F66NisLT51!rcYdpx z+$?<dbLsA15^)jnOlglm6sg4aG)0UAJY1YL{8R6Q6U7I?GTo{~LatMrb|(Re*+sf9 zVg7R8o-P*fBgZBrJsIg;oU{c(W0jG50xTpmWXtvVI;wy32KgsJwcR$}?2QJpJ8gEU z(M_lMi*5lgKwnWN`@X^&>*Q7!wWCRMU_K>8pb$mOWOJQ0=sEsA&}ny~Cr93)@Owy2 zERFt!zernFNQwX338kR9UrK{HEc`hNZ(9IglU7#!JNpKF+wF<S=ks1uz{jh9r{|R+ zD#|##F4!@P_d=niZ=9y*=bAANNVzxlI=77am{I1pfn|RPjAwt5#M1@ySC-JgFNa6J zF8>Z*AJR_@R_YRV&6Z?fOQTaD8cKGg`3}}72y=tl)BXj4Y^3W9ySc$=1uJJ5FJH>@ z#^IZ>VqhBkigCri{j^X*D&U`zowbT1=4<@Cn-$q2yZrk&X2x%+>p9O?t>;Eq0_NV* z_t~|ihcbo9bX1$>v$xln$A+<2r-4lL`n}(ba<UJ41A51yr5}L~bP3qJrp{m-gqR6H zby9BGPn;@R!SN%n^M=t%g<ReStBnr#PP1&yuaSN@LWoZn&;GwmN$>s2a4!G)In|HD zd=oH>nj?DbuQ)b#DM4!ED9gh_CE;(j9*V+1>iu}sI}PyQ7V2J;I_50&7bSzrDpoFJ zoy&`~SyqGObT~0;RANJ;t%bI21qf`kwM-)_hN(PVm7v}L%WPO_*3Gr8G<B+K8EwgB z)S1p0Kf`T~0ypvL28_RC10fTm+)kT<NTl;*W@cu5m|#llU^LEok3!w;ihc*SK(|i{ z>tBo3CI9mK%B+J|Y##4V7WKYgLcGBd?rnBXr?VNNQ;F-TG>^t!<?8=zF`ix{vOmhE zpkawj+Ih=Vl8zA{wh`IvAzk+CjVB;DR7i;5P`Y8FtnR}2kV%Q2qs0sQZ6`G9nJt*$ z#G9L%#AGR1A`<mNugP*+hAo%JVfyh|;fDYHQRE}sMpxLo27^>_2Gj=(T_tVrw;}t2 zwz|m0!vldkq5YQod=*I+z)NIu$=)s@c*Z`qr4B=zT*0p&(us^7ty*!{!XJUz=km1S znGxB)z{Ss>eW`~ELfKK*O~?d1T})B_8VJ7gvy9(S!!=O%A*zZ!Oz%&wiI|n^$ot_1 z+&q*+b>cuv@LAeT7zJdaATv<Dt|H)4?r7E~xN!!--7NI@za0+L8#V@f_{8{i`}ZY$ z%>j>8BYSVWGjl}VX%oS509540`oGkm6}$d{I_{~t>dO5WNI2rYnD{eR&Uq_8;VC6w zD{5TVbOCnn$`(IS#$<qoe@bbIUJrKc0pq|$2>u&21sG*y-Qt<#n^^)mY(lwzrk*ge z+ykB|d=tLFn7%ozXG3_k6jTr5b0zL2W5i&MV7*5Wyeqq7nBGg@>2j471)&XBS)Lq` zj>JkjvNQ5H^%$JK<-qhGSzTD!(V-D^Uia7C4jTeSHX-?^i&i&7*R4wU`^caEj1jtM zMr7d2x?S4S{_V<biXJqFF}Ry3O2Lrl{sLC>7@R25%@A2ri`{Xe6tN4-=~}mrG_sNV zCZw_8J8N#5xiWB~dbcBI(C-148)?WyFy|30F-ml=0J~n?Mh-=~*)C1a*U;q~D!Q=9 zE50eX<Zj^ZdUkM#TC?g9-of&Yai(5TVwSWdOmw&PVpl3E`#<e$UW{_pF|`ZTNsCc$ z?6_3~ECn;dh^P_k0^ko78!;wq!k7s_W}udA&QbUgxwuH-+oN%|Z2Ej#g!{~$_IzMP zSRK@mpb?KYavU<c21?m3F9Z@xR|G;oc@rB`8`s&z^zlMG!Ugo>N2rLa%kX;n%f`Z9 zZ^`V*(j?8HUwOfqJ?$7rtVfAFqdUAaqJqdQ$ERtU^xU8?8~g1hgBA<W?{EFO!R*+M z2bCQ*R+PH!dchQ&LGwtk|B{)~Nd}bD_H>n${s7nm*xd8O`|oMs)j&Q5NaoTr;DE@& zx%en};mDUT1zU>Y-NnPDJPG?}v0crGjk(5<-ectrBSCFGQFXO=4vt~vAvj@_Du0SU z6Tf4=C=s@pvutw^xS(A*D&flXjmbM&Z8vin(}RYfP7K-8jhm&&?ccT(C5A%zKiWYf ze*?Ew^b<@DVfZuF#(yD2$%e~#?Gkd#H_Y~x>5^v9q>q+H#}xJKvZMR4<#IDGnGn)? zZiWW-QVtA6yeCt%x@Bj#wv~(4{DawD6CeBQ5TjFHF3>HmaQ{9^4$HHt#)5Y9H0Tp( zYu9M~n?X!rD~Ewa6vD{KT8*uz!?xk3S4W|jY+66SD(*8CT=iO;hEV)=B^Sb-5Z1{) z-_+{PH_ys1OJKs_{)0!zxtVY@og)bDPmUf{I1>Eb#B`A<y`-_ly(pBxkmT{6faY+l zH~Q#_>$sK)eEu8m9%nktlvSUjwjchLE&=PvWn^B-tr*?@@l;vS?gy?#xCpzg11(o= zs+5*I90*Xf|Bf&%G2H2#^YxEw%@*hkYk15-jsg|yYs>|?lWtg{;BZA;QXE1R``=W_ z&X(wjW6{GGJo```&xmNzgg>s~VO<WBB_9N$7cW;q&voMW^3QzSYRv{DtSh3coyfR1 zl1}ObCRm4@e?AFWdy-9TD<Eo_cLnagnb)*fUb`EZKwJ`eAZR}-gXoC*6H5CrZ-pjG z4dK{QIsy+vDL808N+i<tJU$-`yQ!#G^7j>*T3cfw><nScNps~S@_NYkAeM>uPY%%d z!n1>2Rv{>uI(X>nPOn%tjS|&cf;9MAbPbL&CoJaTDFaJ@jE;8G2A5%gH;&O7o^FzE z3IktZ6tGQ}liCNJo9#Ien|T+Ada2*xae<tU3SxGk^Krl)*;zEvm-Bp{#b12_6-PUB zUQx*SkwFM6nYL0MqHB+6PtA0++T0PK1TBPu5E_-Yj#_ERA6XRyYisd+>P(W>eCQ?Y zEyGfm4?Cr5>dT=4$?xEfa&DyGrWcFbzCLOxvYclxlJHUJ1Us~^{W#Tdm_O+yT7IDl z0*$+n<3wLS^XWWHhB1RlM{L^Caf+N7yd`0D=1_e(07HkID#2Q&XTP7zXIsr(zUkbb z6fdLSr0vjfUBfa`MiL_TyK12%snD@_eb2B__9Mn`nO(sad*UpT<0HF?DMtKJ(E4U2 z0t?t|NA$D@!GifrI7T+lFzEFQ@x$Lm5NV<{%A5}tXDG{mdb;rw3blxek~oGA;iE}h zI;^2VB*rdCkyUy>>^r=W8qhF#1*`QC{;U{Cr=a=lSc|{{Qu6EY{HVbpND?&0mh%cn zNBtPOZorqwD>)2ZQez`xxDeuC;T}`veQ)JE(A8D!OE`+dL^O}H9|{)R+4hMqX_Jd1 z7P|DLOq84XJytM#;2^uvjxZj5qW3{TH-1pJ2t)=s0*2Xy7)mbXH``EN{$%7_@%r_G zduRjvXx@U$+m$RXmPbl7B3;<ksKRz<yf}72N;QZqXN^r8f*w3Dt_TCXb#seRah97r z7XquCntcv9&@dd6;BK_xfkYLastKqnD;y0U3x8(%Fef>~jy<Dr2B981SH8O+&0|qh zBi|bS4twGmGEbamAa#VF55f`~+rtgA!+&Z|_r(H=lf%G@;<RgF9AMPFH{pQTQp%N> zJLYn)o$T*Y`rV;mzUyZh`6ACXEBMw<r(O|X@x`jZQb&?{(Wfu=TtZFk>W<Jyx~<xO z9}SRzgikSBet!}go+=kpW0z;R+$-c9Y<CogknVg@_*Zvwc+j`07i8#*?lF+z%za|A zp7p%}X`U}UMVjtP<{7{nM$KkfgrbSo$t-oBcHQUn#s)CwGJ6Ko<7m6EsBJ9Hf@(Ze zs5C~lndNr>)f-DaKAo)jR<PP5^7|rE$Iqp!E2#R{WHBBOJqNxSZwPCc+_Qjqsr^Dp zJ;R}Hi+K{jx~{gU+(oijCtzL~tgC?v1=)T%jPUt3!srFq!G2|FR=LYt=^Xv8LDDXG zbGGj}H(p_rNzJ{J@gxT7n;UxJBV6z`Q)gAI*OciovVN6uc^RC;a?1gQgcXxQ;fMzG zo_c!ievifg?UlH{8G22hS()@Kt^r%cf9PjKJZqi?cIvhv#<`MfoB|q8Y_zma10EcX zzEns75)H1}VY{ZwV&3h+H2dC8;^||q3HdP^Yyt%Qg_+K7QSBgH-dUWd+6-SKRN|!0 zIU0m`bvfF=jQx3TWb~h669Kx@U)x$>xkyaBo$U3#z2murp)H|G<^m>u7HrwYB~hYQ zU<NT)%3Er+&u2g4lw<p{0emdErjcjlhA#AAN^fA6S>M5ypg_s7m2BTZDW0JxxW%0z zE$?8AZ}U;=J3h_J?{=^p8J-D`#(?{X+w5UfJiY@vpz^Mp>Lr2#rAU0#PEDoL=Qqh) zmX4b0HHfhIy$w3m#5}`Oz2vqyHUh@A!V9}F_$j69;Gu*WKd6WF!jeG0+6Kp2-vw2A zO<!RK5^lXYgFky0OAgJ_k{!RDd~q>2EDtYGHH9X1y+M4XhhS}-EnNXqtlHDs*Ja`1 zanmro$<WV#D<H2P;&PpsEIHXQRVlQB3TfaMV;XwS#VkgJ|7Wsi+;H{@f3xXeQtaVP z#(UPtd{Owt#=NuHA<cp1ms#!6&r;i<CrrNYFY?=s4vBzRsdc|)8s2Q~ehD6gEd(Fb zep(?rXa>7W!x8T-U7#sw<g$6Ox<RVpCzDUNeHv&%^oGHwG&!7ci8KTrxo@^ZcKeTi zBIs9aZ(bB9aTs{9jFB}KLECtMD_o!Ml`cKEf$(<=gLJ%dlt+<`AM7JZVdafDCsJjL zB0g9q*94M*xE#_QMPLe;a^81s^+G{X$bKiLjW9tXy41I%9vlA2bjS2(LZjCMki!Oe z<d{ePIHfl-yQaWO!epS#m6Du?g9o47>ZO>HX=}vNxu>Vr@ecqpQf?I*p$O~YK!xJ^ z5PEV#_F&=WZ%oO(jp{s!L-6Ne(9fvPKJxeg%tK2_ez|Q!7>{6xZkl;Kn*x6rdq-TU zL!6N7j|Ojqm1vp}Y5)sjL}Cd7Z4iLi{k%s3w*D06YlGCM6&kE4^S8ba-yfYZfXac_ zjx?hahKS64b(UZ_?^^xqN0DZ7LOUGC{Xc*{K4eeS1#%0tslPu7j|u8~v`i#u5J(W$ zcvTKL1&iH;f>6?-$S3%U{h)(ss84+SD{L=m=85Wo9)jf&7vzBRK>+f{D`}^T$`vLl z2q+QLSPX0MNiF#hFi&jv5Ny8tGME#Z_Wa2h&ggVKAo3-`CBdNbphK@`=P4$Ze7(B1 zMG+b!J3QMyB=#|hP(<bm0y_R3E{=<Ch%>T+|NQj8h8(Lv<ecH?L_s#?h4+roR`GYj zxqsrTG{26e@v)xH^VXvYU@7m$?T!GxasUaw<ZzV-a`_wV=peaao5#|~Bn>N*VFr%q z+I_9aOQ2(zRlaz~YD!T3!wPpZ>$XMV-S3Xm<+`eg+?Rg?1I2b=UC4~93W;rbbbQhk z41{fBkrpQI_-;mLz<Z~T4%V|^qP5a2i^=^p)FKXSFN4`d=VwF2?;|*|f&b#}D5Y1C zBAC5yhzt-UlMvmus>CiVC61)l_@oLF5W-t;kKV(k(1j~7bJ$_IR4`PI6>EQE!>ez$ z(6JD3{DTqe5`fl&am<ZXSld%CJZj37d~aLV*EQ%7u$Hoz${i9irvjzHOu0GAFU-d? z*Vt8nua3uWz?f>V6ywKnnn=ZNZPln9?_j<%cp5-ZyV1Y4Q6;L95II;RZfPPwc+nHe z12zm=9XKiWh{U)lzO3il$MwiPCQLjz&V^#!E;b?Uun>V2jsF&8o!Y)rifGo*#h?8K z>==YD#CUqiNpQk|y!Cp`6WZL?VkeJ`(?Hx1z~~=nE%@N#P+4fEFDzFh#i&1AB)pAo z0`?%w)9)+fTF8ILpHrtNw^Y5$sS+!evF|gt*s0~W&ml}qi>Tx#kdt7lFBd}l7NTVo zk4O~4Mqz@#STf_}rwlkS9Nm<PPw+z~>Y_*o2}2tKZ~vlPst2WAv#g~8gBTrqUx_`o z6^gI0o#A{A)z1fIMicZD3I#RB0@?Um_Xag`)JGPDyD?O4@KS78HNE$Q&fy2vB%m%v zj*4P(jX1Sf)-MZ$2!gD|(KaJY7JEOZG+_Me4bB80{;^Mae*K*C!9<FWkX)vKU@Z=U zsnH>!NN>gUu!Um>TZ4A?WpsO5#^4(m#`@0oRJ#KWUlKP1^~cJLChp^8&ZqLIh&9Ut zYMh2T3e(8D?{y}V_!i$bY;mQ%N5Mc+-BhsSP&Jhe5opUlU7gxT&?f3%t0fO-0G7=; zOTg%Oez6hv;3hHvqLSDfW5CB~A~=l3irH=<a1lao9HI`JLgypKJsv`t8H6DaNq382 z&Os?XSoQ0Umc0IZMcGkZn9QAyqjLY~g<{~KWyAO*5X=S|Jo*$p_M4`d1U^R%pskJk zWbxbp7cb{q+YC>`&w2)n*$!NEb-8Pk?sD!vN2AECZIWc!fAia&h^k{AE}{-EN=H4m zbVMJw_>1|cudSDqG2qoyM3{Q&PdE%~0sSKeC6K?ur;n!rh@?O|Z?DyhjU_~~YO-Z2 z{r&@WDm~pc#9ow6>QtHcyWv_mYvM1V9>lJ&ruwY?*{5_YPqUALg_AM((+^XuT$p;M zmZ`(cKOclCR^-xD3pzu8od&nhezS{FsZgh3?l#$^{{dKcSOJ#~1cXQ0ec+H=ekq1Z zsc|hF8iskcIb5*zgig9MnEqSMl^=cN0Hg4UyPV=R+Ll)C$^uf110gCfdcCHum7KfS zrM?-|BgVVIWO2`^Zuk?Of(m|BF81^w=tX=plxXOmjF?iS0Avgv*K)@xB4;e=fPwHF zHkB`TNTdo7W83u;g&R;ritmj>!IxJv9UdLlk5cq#X5a(b(7j2w>$5)cBm8;X?QzNq z6s@P_;Na8YCALdGdw?cU@t=&F++~T6Q09F3vA+x-@<=alluU!9a1#C)_g{EqZ|PJ; zOQG>~OV}_o(Zrp}dPtRl3$cv7&s?YtKsa`!b}ZxuEcs@%VD0ibyS?o!#YkaVLr_28 zPCa#1{{~TbkrCDq)n-T$ZAt1uIu|C6J?_sbXfKAg?TVoCXtakxo107PN$Y9Y?8a}y ze7IRaKfo*A>L{u2-45(UB=wq;G1MWCbT9hwd3HVkH<q-4Y_n6C2y@sMAH$iE`*MWZ zpuvx;7iy)@9#DIv84{+oQoIdK`5VeAnzeY+O*oK0)0ffmq3d>CuOpwlvAwNd?^zgQ zITr(eet@oEzJ-EQ)YbKtx&+EQ9>)OW|Gth8>E-K`%{wDxB#VGKg;m(NYlz$*F;W)W zc9TqdIkJrL+QF3>Qed+DWUeVSf537W3|E9Q9Hj5s7Rs7U&3qZ6~^ckW~|DC>#d zi%U~rI0_%RB}SE+9n7ekDMVS<NvCP4lF)Kv^mZ_JemI>I>Gyh4PLlJ*=JrbufuBJ> zB%4g%_JQT`_2b^SQr4t2qI{TotA-*;k^w1C87+dM&B7)ss*rAoKy$Fg*&YhJqA`&F zI6LS-7eaYW7vb#NkTrPO&Lnwd89iCe=}X}NtAuH=i@YlgU1{yCUhjqTcggjK87yk# z-uvZ7rwEy#*ENq`n`z`Jgs`zJJ%FDZ6Gl_Kn1DL?=;Y(|p>wBY)zFuQgQF3vhcI6R zUuk-pc}d3Xh*@`%)MaNv_axCAb~#(iQ4Et^J@)Jl#}GPzZ=htlcu9UdHg>2};gv(^ zhDhNsv_lB-fe)4CAZK|#e!l7&=cYL`GqY~X`zUYLYC8J??{-eA(n2YJlwuhC8=8Bb zq@6U&wt}EVp-=vP&|=5!P|^3{l&etn=hvDgzX&)&WwZLoOAjZ1rL}t8cG;1+kj~6G zVYA`iG1FyHA*3LefB5gnwP0>;kBtx*Buiuh4s*C$6@ruHcJr{*cFz$FovtItrmQ+* zRW7Q4R@D<NUR!b@DypHt@f7L{-8RP!kuP7GYah!V1#uvs1^9j{#GOF`y}+Q|jhg7z z!Uex?$WUmjCQIzZ0?GeC1>GoRdFD`acabZ#1_DiXtF?@3s;broXMEvkoYdrb(qBav zn)p}_VD5Mhr)dL|_bL!8?ha-~|72W4T(<n5G%^LfT|NEgJ2DCijJ)+Z!+N*5e2E5s z@vUKHcG~$43$s;6XRwMNK|33n$7vfn1sRMTtSuK3W@Tk%JYD?d2|S)Fiq)#ol^V?P zT3t}Y%oo0Olg0k1w}pTl#4d$)rlc;bVk9lWYRAh^f#nhk%LLr^+FOKNwt~oSeO}0+ zadGbi;U;^m@DTNPcGakzO%0enM2GRm%w^(4lMM&{qm<T~xjO<{rF{M1gfB#=5Ac^5 zM?O>6Jkg591yU37zedqK3oDSplc>W8%i`@mVvHzWaxTzQ`9g1x2_yoj)yhTUNL&Rw zJCkYzro{Lr1s%gaJ%@zC8i*{F8<d0+3-e$<G{2-jIQkvmZ6<lP{5ZRvwt8}s6Td8o zfKPA}eV6XA-=v^)l#@v{$xI2b@4jFYAjr|oafX!GE?4%);xhX@xBhiJ!@|Z^NAgA{ zC*35NdG?22cFyvJ^;!rt)&?Q5Vj|7m9qeS_BdYwPFoli7tr_Df`}vdP-^bI|(f6xO z|Kar}D>awAT|=ZHF04pDs&@-2p<0)5|N0Q%{@)73%8KaSuXVWEDx-UeA^{s=2v|PL zztqYF&OwAfBKnwDMtAi3kP^$H75F#1cSP8#<uF*qXWcM=(GCpCtfJwnK!T^B3y)G0 zi1`|=_s5cv(pinZ3DvIN`K7=p4;5&o{`Db!Q4E%BLX<U*DdwfpOkW6+880&D?)`Xs zDp$zkcMq+ryNY;yIE#!750|QZaUKgt6y4m@CR&5NyLdkwKsYC>_S&g7Ux%#fc$U@s zqn4F{hI4VFum_GD*Kx7N_}vbtSpPE)IrW#lAV*na57G+|X5`Y{Xi}6>v|27MS~Dwy zq1;QsVSRE0#RW)H+sNh*oCPkcA*9m(?GZ#lLE$*!B(V)Wb@cpw>hE)yZyaV;tbKm< zZxd$3_OX@V=j15E01_;<S!3$t&5vqkauycHRo32jjuO2#$1~?VC887W))b$7Skg%M z^w9G8v0FxpdEvs0BovF3zPtP5<Ksp)YymEZKlfREeWD!k<j#|;<LGc|Xq99sjiLU1 zxT3Rndr7QINEn0Y%?u(APD}9ZPP3P54SR0*UPfkKGSR=TZiWc32BL9<0x@KmXRa6d z>s4Vgmt$a&;&BjVDq(umxT8=WLOmI=Sf)uv6UqK<De`RWW08`Qh7+*(C!!bCgZ^kd zV&#DiXC+2S`}P%3KiXM{>FBoHf;`<&j5Ef-4FDtLE1f~3UnTQMMMr8yN4-8T2N|P1 z&%3c_^OlxoMA0Aw?5CxR^PAD+82gPqoi@=o*EUi*OPT<|#D$;|SZ+-xItIssr>($V zxvR}?IDO9z_nPF<<^&OAU5_sj@p=bcg7WvU6)lbl1fwqaD?+8wNMF4CXMVdKt<2=` zIKf8sVm++`;~;HJX(Zt*LNWkDpxVCA^F=e#7`%z>4_H--ZS~;qQ*5uy1|9c3tqy-5 zBa5_+Hs{C)LU>4GS!w!(d8b)JeN>t2)6t)n(b)z7KZ09AYoQB|&xW_6qod(8>kNgO z<TF^RI5>WQU1EHh(f=t#%TftGbZZrr;s?c>2iAm1=8;8}J~HO=1s{7f+b%Oe<<~np zGd`ih!&iWvP7}+~NxonNXK|uZ8ZTkl!GJG8JB=hkHh(ZO%Piu82};Y$js7%Q%?d`n z)~(bT%^FTWo{$;8vG=G92|Wb&e6;U-&uLBEIZge8eMFpLP9mTqe2Ch<x)%$D-H39z zZQ`<9@q>1>pjbk0rQMFr3#5r9s~-(&B<^f~1p4?9{J23+{~7Ou&EU9v{#0HEfV3rG z(SCc!3rLtPQ_S(eep=`5Hr;iq<j2f2`xNhVx{0$ehJ#ItFVf4hC5MWBSm1<8P8afj zy~oWH@FZ1kFda^Rc0in1U}D1fmzpD9|3!#Ep+Mc~`XWh;$E4^eCq6`S70QFT)9Yrp z%wjTq8lTsB8~4FM+9zK%e$Ok$x0Z;}r5+1}PEd_T5ELgG0UpR~-WHt_n;Qs6BI`P< z?R<rWgOjm!vYq|CJf+^ACershpnWNMn&98pR<x=mPQ25L9`phQX?uTeA}B2@8?j%j zH}ROw7YYosm@UdN<i9bY!ORV7TS^YSje$92X4GsL4#-UBkeI6=q?3MF2r_s5emqxn zI~0xOyHcf92Nx&JpN|~e@CGR|BZW*%=mI(0IPL}8N={IoF6f>wf76E%^i|07dR=d4 zP)f&XKYu)J8HoyG8YU{?ief0K%nGKrJE<gCY@>*XsxZhyxgk$&ikG@RXU+x!ph^R7 z$7y>_;<`y4Es${sC``!qO9(||Rxun8e9;};kYRTlB(Jfyz~es~SB0W_K9Kib0z-iN zwC72TXri-L`TXvuqfeW@SBjFNHKHWu&Jj%UFFJ7P3>$6DmoL(PgIgC`t8&Z4iCI*c z#|&#_%62vLMFKzb&_v$ZHYOCgW)JzOH4ghl{g6IGC7!>r6*<BL-oTFBb(<U??2%GO z-jPAt1T?F)+4sh23m{R9)uEd@)HiZ%%)>&Fo~^JtCVE<`HN<BVCSZbK%wXvM_Qi3d zqsYkbX1K(eQ3R>Y)qS5GI$+3#qc{y=aOvPMg1`mi@~@inR>0%^qEeve@f`W7E2oeW z94bN}f}9bL{wq;+AE4&UR<;e?B5GSEfBu2OKE80-7Yr(p(4rNy$3u8#nl#p7!iu&y z+ZyGsXQ@uzyd9<Xm9R+x_$au#MlS@Zik<2^kfIWC7F7`q)<DRB^iLHp&E8WpO&Ccx zjF2`?BkzN>jWNlA(`d%6@y!{-D{NX`dPU`I0@2+p51?-WV_PF@aq^|jYAwme#QAs` z;OS!XKVBuNK2w(jX#T^8I1lAABKZ+O82#F_G_c$UkQDYclPay0wOpJ@z-87AGh3R2 zsmjV9s81f8Vg#5Pt+m*#>Q^`FbXZK{>Rv3}>AuSjG?lxxCM-6eJ_D@+Lz&q`tGZw@ z-CMH!=iuFL&`5-QzN=_zY7%12dZWyKQ7zzFxMNDSIAadfXXq|GxL)`h^Uh@j0bYdO z%G#IolruP5$c7%a)8_kL{;uIwj=?|i*1dDhPH#Zb!qKlm21jEDV{wS<P?eaJEMg?} zYRS7OSz)6H@|V_rZT~|MBv}HN%o*Q|76+MV&xNByIPUqGUrsygajCa7&e4vGFG>+R zM2nR~Fox~ZB07+|M#UekMALq{qiYI~Q>X-0!bnrw1gDD(3k`pAfmSI%N$vJLD3Tmd z!C~b^Pi=4MYwZzzV}qV3Tt-p<;1<!?SgzvbF#k`G$<7G?Xx03`AQSi>!36wIkg4xl zVflZ7Oi{r92ASByPX$T&NnxA5tg5B46yTUO0EW~L8tB0HhC-1^G%0#hpa8DDSd6x) zXm$*kjzJbr%I8YT)`#Wd--n|kJ5^^!=SKHrns>o0m8Y*j6Q`5aW*7Gr0=bx}s43W( z9UZ%#G6Qtf$!aDu=>0yMMu#AXEDMG1b(KrW60M5x6T26{Qk*L;cZi1&914^JKph#l zm737$KOZQEsJJS_Q!6*B%oHb~uPIYO17N9u@Ie`I<gN{F^IDP!GAek&!iGR9Xac%& z6<K6iY^rB=SSsN4UWOeR;rjaoo%tL65gzrK+qZgUV%})+8_|#gQ&CKSh<^jVCN?6T zFalu9O$CXpO&@4Wf(gJ3Sz-)GGkS*tr2w9X?Yd0Si=L%5dj-G3$B=d=7UV+3!06EZ zD^&h6CYiiVi=PDDr({SK(I2jh8~(Ki9@}coA99H8oL^sBqAcfyI?QAuhJ_hJ1WEy5 zKM~a*zBE{uA$~=UNki&2zET%Y3M2bgNQK)a7VyN3EDN=*cU5KVMClSNAWY&j2K2Jk z(kzgIqi}_`p~Lh;|L>t~d5H}Azg4cn76BzlMm3`_4$#_({6Gy6QG;M;vVkBffbf0e zoJJ4p<>S(&+Y`^kWmA5QR4i^YdX&h&_tfkFeguLnwCX`|mY@}=6HR2QXGDDOogNPE zz%$wdUlzZKH)s}9N@FAx6qL`?s=5xy_eI6Q^}ZM!M&aL2o4$cFQ&XjTXb8a=%14+F zP*l)MShCly$Q7*9lbr-}8%U$a^haug1zY~B8l}!IR^7J~jEZn*q=MC|Kfi8-goI$P zi16_694-A)W3-yd<-5qT%3n`-qcgqMkq&aW)oI377D)=G=$B^)BLrpi;D3)rN^13+ zc!i{Cc$1JBK&>=AoGw@0mdd5VE>&q=)g~pO`@rCaR99E;gWyo70$)$ctyp!NqdIvD z?4(8dIAQKd3KK*-a6kx~uqgnqzeMAy<@7nJ8;R2F3`cI}1P^DciTUhiBNsKgErggD z7%K62u_5>O_hx#n_F3%aV@W@KpDq>qKla7r07rO8f5AM?z~PGHkV?$zksvC7rrDCd zul}|EGZny(N7~ch_ApfV?Yt?WZ7aan@0aRN-JQ-!=bPPOX88;j#s8*SSN(9{=WsuK z#a-Nlv@0$ZJZ2XFbQ*gTQVabZZ_GAz`6yb5^Rm;tiBl$#bYpubl8jXM=hw6x@*^UH zW^2SMVIH2l=bJr|u796z1>#|Aq4M^#aREVP;`v`nt-*;TAcSFr6aY5u<K4a;ix0!g zm?hE1&2IrK(JG_MmQ};Et!A6WfTX)|DQ(y}G<`^q|66W(zR#(=HcETYx>3npqz?=O z96fG5bIG2x27)D<@jXnocUg5#Bv50fTzuw7u2HT2?<m&Z_uIp>+RjVh*o*r{^mcP| zGsteG`lUJW-=|2fkZ-ybXzCPhzroD2r=H?ZI&>jC^zR)j{%hqK*7$+Ex#LS2P5z@n zG!gs7Hm9xUMvF<0A<xAAm%F3YfRBe&1WM_+wXjH6Vr+xBpcoJX{4cUXiDYOrlfDY3 zqoT`~WivVfEwNwGrk1O;{bTsTeqPfsNVsvQe_GD==I7`C2LMk%u)no&&7%+*8Ce~c zg`0;B8&(-sgM*tkZ6Yhr#q8>)Lhgq^1t`57Nk~Wpj1opvmEbG}Tzy&2wkz-Z7Xw@r zoY<7}&ARVqv~S<O^wg<S?`qbp*#LO-QGZbE01v{m+qP|+J#ys8`RmuO=T2@^Kfw9O zLIObj0NsiuApjEG1(E=`3$uCc(ruUQKL4AM^Xa}DI&a>*uHCwI8-^XfabEMr|7KuW zeSDaDI3XUa87{&}rc6RgO3KcaD_2f~Nb(bi0!@*$ZWsZT5U6g&{4c=`7?1?O4M;_k z5h&d8x${%ZGP;XV&d-Kszd3C2@f9mp?2PZGm+G=JnPS|IG_m1iUT~jwl|#jZCXu2? z1ydG7bWMSr)2C0bh7UplECzq!3de6oKS0waIRSD6R60tq5Cf6`ScptC#fh%E?{YO6 zUHGhL>({Se)rk`)4ys$XZtoH$N>D~N1-p`R#Mqr_V!@$wk<DeLk`g>E7|XOztqAc# z<4DmcM*YF~<8pFxQugoPzwr6zpPw~n&Ya_D$*fy3sTF+({y`yOlwbh{BmuAhiD-g& z<ZjPhpTRhdviq!OYuvbT$?4Ol_iWj+<>2t}a4HT>!C70bcyoV-cyD)_NJ_<O=lU-A z=J{m&6cbfKJlrr+{I_nnC>K`nCfB=>k&$r%ZpE{pEL^m6=T4gZNC=EH%sMO#PO9n$ z*lP(UFks|Gn0TCDR;5Ota()~N@yXrW2q^Bmu;*WQ%PqIW$Hm39G}1`^I$2mApB=M_ zm%#4tKZoW^pnFBVafJ}%in?V(#TbYM1FMCJkfQ43f2hvqOP4Nf{r>y!6W~Aa8*brK zjLI8oZ!Vz?nhi-*BpAeiicEvm1G*YD-KzVp89ATKc-Hvw;~T}t$J2fHCb;h!m6<QU zkk#k16ghwOad_Kuxw*>KlZ;_@bgmkv=m$ENHQgn;6=$6|abiV6Lc*sQ?=C!njS_c8 zfFmOAXnv$<kf+ha2MNw&KoS7wai!kL2}|=E7e9%B(H)=5GNWhDo)unx`Q`h-_TK|J zpVk6Xa4;=Lys#@xe10H9WKz{1Z1NRn=Za962=1>FE}m}`De6SJN=XV22l|0Thy!z< zefHTe7B60W26q@W8?teBh>M>@fW&}AL4uPQFgZJ%e2V|vW|{jg0&+wmD$gzL+O-=B zr<$5(QIrUN|6MHlx3KunC1VXZ!|pr#P?D;gTv4`Uuy`Cq;1LjmSPSF=xD_A%{rBIe z-+%x8-yt9gZT}<$Mu78}h2p?Tl#3`5oWOu208StYx8%>V!yU)yuCLhLzyi0s^Ugct z%ake8-nqv+zH812o0zygO>94FSB{(Cq_rPtA9a&*A!2OPNYSr~Q8WLQ&7V7WZo|Tb z3qOGfw88$1QT>4WZb$$~2xK;+D^XqOn^F0zP(yxtffJEh_!=lQ!*MTUaTUmx+Hgd- z4xD)&zyA8`AB&2LGQI0>xRfR0|40#&x21_QDOjDH{_Z5{_I>srJZt_@n^>2WEgHlI zi>eXkC=PH@6&8;kAOO|iKXhorh7C0J@oBC$tiBr(Y+7ZgV<2Z?lwhN(e}g-xi!Wo2 z6EA<39itP76EXwddu8CvbI(;*U3DKE`ZzI7!LjsQF==<YNZ6kyGVs~38qHKMP#I(` zJR(TM*NqgT8%Bs~_-qzH0M75&vEz#;o_Jy|yb9?6WL7^w=OLO6Wi}&?mt+2oX*BBN zm#B#2u5UKWjt!=~P&mQdh-12R-)&$PFVOFaj}B#sS9hk0lb1ZO<2%z~k~nmwa$E`V zbmJ)TpIYI<0zILCTk)RXe*0}2oS}Y%36Y|cQF()NoJD3c0ul;>Bmn<nBoZI#$ip3) z9DvbXUpb~bWy+M62(=wwp+bdDXv;L7zde<yc=2t)e+67+j`M1{@2?$Otty2o-h{W| zzXgzc=FFL2p)5@pHEPsWw8v2!wMVM&RCOz+Xb|vVdSdzk202qzvmQSiUHGh*F<`)e z8WSc=7+kAXtzIzek*Ju0ZHYNz9CrN0IJlEd(&Ft}8;AwLSfV{~z-R(Ef@ZPiDHY6y zX@?FSS~PClxS6wO&prYyP%JRoFzb<us%AqwMa7i>gg_<$96NV=dhv0gl9^?36<8<Z z>Z`Ag{rKaLd*hhyAh_?6lQ0EmGIGW1`_si#xbLQr_qWolXR2pTR93`-ToDafU?kj% zpR5}pDukP#YH%w)g=5FF9(?e@g@63<M<RM+R6oGZu#gL&wSZiKk#~=3z76Kzif@je z?z@!pDen`EzI?dZiC}2<ukYTydwfhxOf#i56Mr(%lNm=c#LGL<#i0w>oP25F7aX^p z5Y#M9x8evfq(-<1wP402B_(ZJzI=HCjvfDkN7BM#MnAw_lbD=92{^Z63tk8D=QF?^ zgS)dOS$1A}>7^!!ogWYP-5b!RY36*@S;+aY=dU^8rE<Q}*K8N6uB`(70Q?7TC})X& zARBJQtB~^`Va%8@JJ2;N+=>G(n^B+;04`4Tm@an<qjEm?w2a=pdsjk=t@|4^XmB^= zd~y?}U?1%2<8e%P4mA8(HgwIb`>v_pxUn+aibKLmh<>mXjK{I#deKJ3_<#Ed{Xp`b zJ$t@JO0&=5Ohj{^QL%uHvP0zRs2`v&0=Wyn27f029G~jGYsQg>lOUsZ?b=ZYba5ME z;XS~ZcxGqD1@QY*;J!Nr?z<OLFxPyU-FFrlcCnyTbg&o&x8hN7D=uw;T!6TQM>lWY zJRN~kzCC#GAUyy{2#f&d3=5N&P(MJgLiXA(!Ji2L7d#bwBme}XFHzyg!D@Cue!bzy zvePE7IpcrXk*{z{Z^GYcVmD6hDbvmTW@x-a#Zi+y7!c7Arwqql6)F1T)S(rV5!sA3 zA)C=BAO!2|!!jywsNEp}AR+L}Y)0xJ?YQ!be`N71qLAe$>u;3ZXFVG{(&|6{_~SgL z+rw;@9keIbUC0v8L(X4`bNacY1cA2jiG=(BEC*p0c0=3&>IbeVZPd*FZ==j+1pUCW zx88c|(>LCDV=sQ;oG^-M)}tsuk$|EBMFhVAe<A>UQMBh%$w&6j=)&i+%s^0%a!7^M z565)-!+lrfBJh(jIGmm%UIwc_9g%q~Ii_o@8{S(B`hhSUJ05~aM9)GrsA=+i0S5}V z;)}a?@BRYWj^`p636BbMUKpM8oL@Y4Og#hJGCIFd)qB7wGQ4L5c|Bn?9<uvZxbKF| zojbQX-FI<FrLNh5rhvo$0Ls1B;LLLdhi3vp&NqrQl3pA;t`HL}o`4h4$Xel|q<Mxw zq^73sr(5wo_uR7_ZpGZe$q^U<t``=%6;mu=R3e`SUnc-`;NilzB+CvGV7A62iASof zYpr;z3*oj)Ie+UverDFQ0y&P_u<xxc%ZG|_&=2&s#;sT&mDw5)_k@QYdT28q&mG+; zd0}1l(&w`o`6>aRVy6NM<$Sa5yEYs{t@+$@&kd<jqsASO^CQrvDcFjGI%9XHh;I+u zL=LA3r;7yFF#z0^0Pb$93H?ChXweb}j?4n|1L;SO99i<>i!aVVT!zDF&#Zoc)SdbP zMmDljdVKN`@HGO!8KAoFa-ouGWN{S~Iln`P4yE3E@4Y_Fn>S~c9TF5%a1!pjukA}0 zAMQyLX=!+bY1bfA-SMBwkenhTgT#LtM2e^DMTp84xD`V`aOSVS{+f*#4GY$-TSra5 zQT+hd5KB4=#R9q&+j$s#@^bJc0zkK2vitmRbm8-LFw0H|j_G!R`!0{^HswV#z|ecs zu-i|<u7C6*w=J~hOPDn?cu&>k8wYBul`0{g0XHxVT!9tYjNn$hW7Vov33uOp_s<{- zJZ@!HKR~x)5(57Bdhms5%AKAIpF2O7mQm_TQ%)8<_?ppu7cu#|*xSQD<FFj^{WzHQ z*4eY{NOs>iE}g1rfBWr`&4^~h?$8rh06B<B_%q##;Ze8^?U{8eW-rMJkPwhF@LKR@ z0>GC*8K0~<sj|_9&w4gc_$rY52Gp-#|1QY+bP_TJyOQ(Vcjq1CF<m^uU)^_2Vabh^ zVKxj7DIxmS&T}hnRMHatK+4{|d*?$RG#jbUPoVc!=m%7{VsaN=2i`~k*e7cBx$85w zn;CXLqe+t{(bJ|)y8|)jhD1a}R7HEH;GB|WCmmUK(nVsbH0zl{rrFAhSdc4Xqk@sm zC<57xB1BmWvKhgx`1sbXTW1U#Hf#yPlhFf^`T--rxy(Y>WO4(v8nD-11KvgexHDHl zp<SO~6j{{92ElK?;~jV0!7Mwil-5lAfq7bd4)<L~-`z|1T`A|Az^27j6+$3HeYh1r z53%5WxE1qQg;{{lz?LOTmL$NfcrDuEQ;f<RYHz$Qn~~Zvv$!%_pA?qvyY%EU<GxEd zKNFr`4Ig{#v0;$&yIYZE=hyRj$8>)_4!Xi=V4mAVBN8mf0EIogn=bZa$DPU;U9bQ4 zjM<E!A6WkGyYEhe{%ALTVWURvJDfS3qx2-CXpn(YtWewpfQaOx=i(<3;PPT|6<8<Z z_S<hSKY8-xdvQ$n-jI+Gm5Xq-t;_cxKqQ_Q;l4ZDsw_K~Tb3W(iUE5zqX9T+_?$)A zjIy$_F5%emSBO3E6^<R#?$7yZWc{!X3l~3$0Eq#KLa~660a(>h`qxv=FNtDw;j=F` zc<zNGsb&wj?>+!IzYZ^&fh1(vc@K;JO@!k*E8Ta^ptAVtaz;UJD+jmY|2B*i4}%!Q zSdh&K`hf#*E1r%dr_113$VE&=p%G9CK{6^+KR{muk3(?~04nyl@JRs35*gL*Q>&VT zIDBpIy6Y}x*|`SaO~ZVc^XR_2jqba|4tprUcQL@(1!B<5?pAyk%!gLM`Sa(0pFe+o z0^$>HM0=biX5ETO07wX^F!UIBk^m6%H0iMrSw<H=>)GJXT^q9gkZRSc-GQh)MyW8G z%7ZP)vhy6`@GV0;zFa;*E_@X={_!90GzjmsM~yJ?BGR6>iZi-i|3wF)5!sF&J-QT0 zU#8<6$wB;L)@;a4jV{F$F+6hY*b@YRONlY~cud!<`>qXaeksJ<?~CZW_rs%)`U6vN z9GP_{?@1S*>`N2r#hGQt)F@<Sr!fF&I|3PuhS!5zaRbY;8J$J6;?I%0U>?K+?&Kr{ zM%EVVu+Vwv6bfS$8r>*SwP-NX$)a2R_YS)4(yV9tm@XE3D5CFnMVc+T?>7GT5yn1c zKtBBVkWEb9l`f87lx96+SoG0aihckSvs8!}-6%o~uN5XDEU+6Qo6%0BGn<BJ#XrHV zn5Jl>oT*9(c<lHDird_Z-9-Sba^EFOl>PeaueU(LjrfWcD|W_r(|!K#OrHDhCU4EM zgF#C000!)PYa1Llo&f)WTPs+iAILp@`t)ifFiCjw$tVBBC}`<2DsPZ`W-s05R&07P zp>z3x16AdGV$&%5!g{vBg9lfI*=11Ox^??lk!5E`60+><NEHi^WhaNE#i%tGRVDZl z1|Sxcz|8H#Y(`C@M3Wfv3Ls`P+P{DQ0)&pAHFM_7<G_|#{Qx-%>IYajdo2Mg2>`YF z)lec)$Yim&3an#87_O2)TCWx@S_}#c3!?~O3jTrn?i)C!`#z58CZ~e71VZ#(Qy2@t z%A9!+3rj|o5D($l@e??9T;2k=Vw=r&;?F<-oQ2J7(axPaY4S6xA7D14V<^-$m<B5e zKt1$^C-#gwHITvu!JdB|;_=aax24(9!JIE<A^7G?aNj*}9z>Ib-O3T0?VzmheHc&( zfe>}dgorT^3kD%rsRix>0&c}y5tlFl{sX^Z(0qzfd4qf_MS^`OroqbPP#3)+0dSS= zC&9?V39LpVM~>t%-5cS)YnnO#8UFfXVbA~dB&;b!w|TA(jrbW5F9a)RL0*f#|Ch5E zc<EFb(TEV1tP9Q=m<6~MXTz=d$Ej1NCg5c1F0{u+U7hQk$s_>#QA~rY4|nuHE`F8$ zcXXfn8>e4JpFVxc!J%R}G^fwT#>O_q;y1NanPum{f2WG4{zw&v6zx9VVxUcMVpb{m z!->q#3gqE}VYq|w=7VvBxdaMuo<|_H>M3>Y2(<rGTl4Gx94pEZ_=kLc)F$>Ls&lj0 z5K+d2SirfB{E_v#bm`IqspDgi`g}i58}fh<*P*l6<$V+bc(TwmIQvj%9#j`MIm-cL zV5g5nfW{te+qNAF_uX2~JiyUCm%#78i;&xI!F~5U&gusgyRR&A`zptRj=&_X7!fS0 zBK1~H$h6f_Dj|GMCD^|?f$0*93|(MtODMAruJa-T!3&e|;XL#u%uIX=6aE;^LL3G` zJr2FeskCg7jO&6o6I7y+_szfma>&4O8N?iT9B##rAar@01#$th9Ut1TVZ)~gM7s=} z0T(sT7Ze4Sasb6a0J0H`u?=?q_|m0Iw=Zh6&ip<H$8=xVktTNh6CiRvC!|txMGz)p zWi0fjNT|^cS$Nx)#^;z2MS&G(LCP)SpJyY^K|`}AIZJH3kS#WXv-<0Nwm5?C*&rAS z1cGAKP6(QmM>ZpP6ZXTgV=Lgog$wH!ELf0$;Iy02UQt}RPZNMlXhcWAi!UDRkWnSb zWt?wBmYwIer;8QG>As7%V}Ucr<;K13gMIRG<%c6_Ml&d>x>pPpH^O$^90y*k2!!Fv zkP|@^b|atRkEgT5iqn~5GmcCr(!!F9J%v-$%B{tfj(Or<%(WoQwVSGji-}DmKzJ?D z4`d=p=`;kc`2a(3v^IR20NCIp@nMAu6*`)EPe++$XLpA9bbp$#;j>?d<FYUOV6g5j zp@`~(U8i@IFwqFRzBkdkLl76fgJab^aAUv2(MoZvCK2Ft^;dv66b52Ev~Hw$wqdxa zZZew@bOLMP>^1`Ea>QC#N&w80E*D=e93*J&GX$7p;v>Z1o4hMkoI>n<WpepzEItg6 zP#$t;?-~(eNcB)<r?Eiv%xl=<zqKMuh>?iT$3lmz*-)H)btFw3ykH-QKN14WJsU)z z54Wd^g~!sx(~Y9U2#g=7Fa&1ShM@<dlE(>v(T*;`?lK;7{uZ#C3KS(N8GTT3*HhL@ zuBZ!nJ|4~}gR$@{TM_@-gX5wn-OEiP#OMa$Vm{2UAMCe@O{b9zm18rwI6T;W*B(VK z2XpaMBCJmvlErLznU05k;0}wj8M)RO*YEav0`M0QI}UmE79+o2jz7!!_KlKp?MBs) z5QD0RnGRraJ~LMwPtO)7aLVx{3lbPGsA-}tN2Ehvny1i5bX{ol!!Z+LLQ9BpP#jjm z7RKZoRbVx!3Tr|+gQl-ouqzK#4;KTfg^Q&i;IHG<<?pBbln~en8#k!lh$Ydp7Tk)F z->`YCcT+sCB>>E_L-$=~*-0VqPl4B)gkIN)t#%E&j9&!_FP>-^B_4!7x{-vKDNxF7 zNA#jCm$JnMC`bRs|3fLc;!;Mo$O0iyQj{tA$hEtXca_^2Is}41Z;Vh7gIJUrC4)uN zxM0x+%C1)UPo*QTI}5z^P6XoMt~l?6O}xA_{ojBq&Nt)i<BIn_;Ens#!u?QAW2__W zZpBt)Gjhkkyp{mOZ%G#4fpyIDmGZY)Vt<wJf#lir2XQw28HBa2<YLOJ!yt@5!Q*i` z*zC3Evc>UaEOx~#N2&r)2`15}Y(&oBG4CF>K>7A83;Zg!;2EERFa$$CT@ii-9m<A^ z9$3&_%Y}-1P)Irh)L+~SC1x*p*S!y2&Z{_>^$+v~MH;@GY22IcAqt@%NZ}?1hqRrE zS>oGkcp~2Wz-tM>X$I%uymDsFdLLdL_lT<trDN4l@mjMe(Gey+XMqQsmVwQjgEJ1l zLff8adP8G$%uyyDTe1jgYBS3Jyf4`h9Zo<2yWnEFSb(^R(I8+Q5N_)ph%C2N41>s^ zR?;64m1IxCndUAKkkQcV%sY_opGj1S3XD~m%lhaj)?b{Tc^>Yjzbg0XQ5KDzest3) zB_fTp;x$8-eR?=k%s-kAg%el@5)nl#;)^MI(OLHT_$cLZdC%l7w-RC0RzmAv7Mws& z5Q5<lW3F+6sMW^(bJ|9WFA>K3$v;!X3FcMwL*=eF&t<PA0G3TyZ)ynZwgnt_rnYi^ z*Ix}5|E<00;(N%GHkB(<S$l678|i?3hM$8Y(Da>Y;xo8pcg5~L3L&=`WFwDM=y$e1 z#Db29;r|GTz!HcCN`;~-={F~TaRCF)32!bmC~wukfSu(Zgaz?S=NPA0{<S#1eB1BI zqT5f2Vi8zm%HzuJ=*<hmP7Jc3kX&)ZChqt-QFQ$^NiczGQBV`<zZZ2VDPC$FEyAcZ z1T!GP{TPr0z}+~;MCOEkvu#N+vrTl7+H;;}9Jnb(bY7JxzB`zX#G_pJSP<U4@C)Kl zAq0?8(Dl_24Q>GuyK{ZA_!G)7N5E>&f=Djx6eB9qd<Kq5f_pI_34lBCi^X3Wa_&4# z=*OY-as=Gq-+<|;!;hE5Y}m`Wi~8Kc*BT&XdYT|<7Q1$3q8JMifrpD6!7UIQR$U(_ zn&ZDD0*)|c{x?Yg%;QkI1?*lm5q0*5&T--nPGkqL6+7b%V3nWTkRm8Ydp)b~U@V$H zDI7tbS!^QAV%PtiBz|FnRR=(C!WAH#H^7ld5&;K@GWnAv045QrSsjbNNjWTjOyIV0 zj#2y$lwQ|^-CqN<o?`ZNe7ol3eCDEEG}sFB<xS8Jynqzz<b3p?0<0yAuZb4Dkk(7; z1oW_E?z%ruH*=UVS{sYMS%nbsEf#-69OTghy5!!sF-44mY@9^xz8{*u^v2Gy+Tfiy zZcB>j`FoP!=}tX}hWF5%b|ppMdXfm};mFK&{TXVe)j+Ka=laG77P0u+7{SwVdawhY zb=`hT5?{i+7qBKTasxoo4@l0^6(Rwx9(usDP_tW?6n9EaKo3QRuj|iJ!%YTgMJ)cB zrGv%7j*b`q^0Qem?OhUoGAT(Q?fQDt0yx-@vkN_bNfciqmVh3R2z&+;VfUIiDle@A zdT4U_x+DNDqfDa$wf$iCzsBNk;J`1Q6TA;5`YFaNv|{m7epZV{w|wRjW?@oVt{4Py zfI1O9pg8bFo06h6GyLWqWz@S>UUw1$k^ne~DBatz0K?$VJF^`Xe)^7;2{<P{7!#bX zvx>4$x4|NQ;DX0-vk)wX@*p-WA&TP+e$W@Ci)hpfe#T79f)wx=&eXqxQ=odl&}Va@ z6Q~Am%csYyH$V?x*PpQ-?ubu54r`90?4+xs9R`3%IBXODw=o&Va&fa6l8Xgi2@W#D z>qH<dSg5EG8LT}27>@idJ((pwf(!0ZHPNXrA{5A^^UxSLLNRy<or1KW4v5}t5P=@6 zlSDer2z&_=3}HYL07GcASHey_pi!iFoXRO3_#ABiNG^WrxJ)ko8<3@D8oUV$Dj3U# zg@_i21UwY-@d()27n6-P^DLdQc;vF32s{T1K@_;0$8>Pp8OM=dZxt;bS(mI34M_xy zy&YejCdNi<Wi9Mb%_@Y6DLBrn2R|T8`EZ!|GGX#EH9?{DYK6l!-&|9&(BjYkY=#c| zs$I0`3_{`4iZT)b4D3n7g!qj95jyY?qVC*>uxUyJ4xM}CWycth1i&$Vw136yWFU`^ zTStk~l)p7#TT+%7ur5iYnU(p`b_g6|rnHC>46#)dMB=32J1rxX{uOnvSO1QoGWNg- z=mdU(<wOsrG>;PX5tKyg1N1QD__`zjj`5@YD+s`IIM3ffCmuYb==5KgD$XKAmuXfU zVn%!T7F_GZ`Fgdp%^?olh|u9auPFx+NJSjOfg6&<0UVOj0xAXHyE;k<U#74PS~tmS zx)_iIKo>PSKVVI_gBj`xdZuXr<H3#Cnj*II2&@&6Akf~m*x`!a`>*UwXAli@a>teJ z727v(G{-Myi$R-H1mhlRL3czXdJqwar6{0<9mm%s0dS0;D}TlO3j^!_HrUPxouC|V zBTUwOXyYxh^YiIg`Sgi*6)MtmCP;h1xY|~+-w#5{vl3%*c0dm%ASQop1Qn4)Ko3LO z*Chea#*6k<Z12Od^XrAX+JvxO&;6BR?Z%5We5vSo8io4Hkl@yKB;O<0G&yoQ<FN2E zuelR2Q>P#S$G130qy-cOUThYrr0mlAU0&11fFuCgcqx1ple{uQVn2t_-CDrN<s)H& zOXCOEH*BpYFJIe$ynC*~dLFkeG7Pw@t>S(RFBr<mCJ;;Rs2d^fgciOHM50J?DRj|w z7a?HtAU2O|fo?_T2;n`@dvsyKPU$7+^ox~#08XO{W+||ldZD}Dg7?}+gwD1^?$6&R zh#J2j3h++24>xvjx-fqgh71252~#hJ1<(JZna^1KH^bLp416EjA=Uw<3<C8YyV1Wl z_GO3}d(%WVFIY?jl?MSA2SE&<L!y`uTSP0D^8cZc<OO8q>56j}S&|6kM~&`h$pPr1 zCf^U3_{`WdoCi@fU>7F;B*eH^LUU{UZt4;yHMxo>|4wz<()G;tG;tA0K`dQ_;3l4c z?&Eu$cjyF*gu3`SHmXA!BY;Q3)sZ3rz6wfAKX-8gc-S<YqSOm0avl2CtA^wPoSk!$ z062-M$KaM4qhp63i^ZSBNIve^_1Hfs!M;OkwEw`mkgTH#=WVc<i6^l5zoaj{6^D)3 zC;_Z}pV|@P^`?-q^RDRr9fGjnV-@EpH&Fm|fXPorgCOci0%A0htc2#LP`bU9KS%;l z)EvN~s)yZw5WVX(VAa`7u>gzHa(27mvoP@!kW#DjFG*sVMwDIdhzu+C=3nGQ3RX7v zolZ{^;rHMy&_r5a(a1Yn!^QhR5PyfbHHTu32DHJUtlJcCNH-B7jc5AmB}o8^dUKdV z@i=@_Qe*e0s5=phQi<Ga@uJi07T(qt<OdkHy|6j#6`07@9wi~ttZDor2H6oY4VyTr zf8c{?BJITm=nf^MIuhXi<sIqp4Nxy!`TsExAu1~+IL3h0)5Y=AeC=0Evht8^nW<L` ze!x!r3l^l?cmMnk2WwwK<E<$^M;h1jS2gq*IB2fp@#v_%ma*)pqdQFg1|qZTT&DP3 z=d8fB;6OT5qAtMXbNsxzJ71CSqYmtUFD!no%&y$r-az>79BP|AywQ00aUx2gF0Q>! zr4I8Ix*6VvLXei%g22sxSZxphe{qH?I6#ZOO9J2kk-=~-8HPM}TJSr<SpAG#_a5E- zwL0Q~YsXSu-$suy(5J@2w6wc+E?_a=g9h{h2T(N*-hrUe60|WO34k_U6xOi?lz**Z z@798kq4>+D8ruDvoYvz#cMaoPgJaElvbJ7FR#H*vP91>#!3-So5!|n})_575)V#GS z-k-Y(kscC!;JPFLdM^nRzc0MXv`+gT$L_X>vZn`FT)pmj>^gSY1K@V%(8<Y3V4{;B zh#%B-J75O?21lts;D)UQ_u(Cu(5B&9w+GxcNdR<Sc^F(<dsWs}{w+M22}c{S#Q}mn z?yk?^jKhwkqPNluID_yXxa+3VDZvBlpU=od%!MzGYZHL>PzKf|7gu!Gb!LKpUk;Ed z?BYwrWN879vicgPFD`~TNO-BqbGrB#pSc~2>`Y>gxD~k!esmC=gZU16BBSvJPg_RN zzlAV?rfJXsrf0aZA_%z$#1Wr)pZPi}2|zw%T>gm3(hcFhwAg?8yl;g0$s_FT<qmnl z2h5bi2sqkf)g|#LxPgKj>Qp57xaP-;;y1GX2CN3AMu@&0gb48aMeRdVw^t4kL7wiD zsR4PevLpZ+xGn)3Qjdz-f+KU?r&Gi23HDZ_Z^e2EvxQ;0mY>Qhbl~nM9Mer?)E+Bc zkX;yT4qT*{ATqKRw1o&zJ_?=J(iCb{2%u|{02F-Lm?RYucDflISu|i7O-_M4kwEyu zG-i!*t(b}8k5C3GVGs(uxAHLOwm=kN87!m#V(?YtRTjP}psv96^{UdLf+nPbz;o!E zC<6zA_P^lZz5P2Z4trsJ*aHzw3py$>6$`&pt$PFMnj`>)-gb~^t4x+cKZvb~+2R~e z{Yk79Mow{G!P?G%HDEmxqi8_KvPhz$&D3e!9XOZdR4(|gfswXx+GyEuJ{zvT1uMw! zUV{NBZ`V>ms{xH;f<+8YH3qc!rhymjnXYkTKwN@s9|8M+lUQv9;HC?lT;8bwPy*oa zcw!&}*7qME(pp%k03}7WXs`fUKL#+)Bmv0(@-aCoL<Eb9P#P5kDwnojqV~V=Zw2oy zj_;4+_-niB;d$0cQiDL8=y*2=lC#ArCSxf8j1N*5T!8ckxDqjv09=8OTv0VDNHYV^ ziS%4?G7bE{cdmbN3(oAX>l`Z<cZn4@)d<ha7))`c@LITH#Qydr*_I;?>l|KcKms7) z3JgdBkRKgbEHz*+*4pHcWAQUfjW+{n(`_IG%dd+OtGdRDzTgTX$jt-_A;3_Xg!K>= zwHi>HZh>A(z%{z-kxP;QT!H2wQG;@#1{{U+Pd4Y3k4zv2?)(}lwAbBON(^lrA>ugs zDH>?64UG}|=q2bu_A?-=2Gowm%hRIn8utduB}oACzi9-I&<p#0EX_9;Pm9<RV%pWw zV)Ko0;_+tDq5{u1P+925gy5*wp#Z$+N>Bs@YwLIO&w_yZED1pV*NxqQlSB(nDD1!X z&Z2d{C$F(r+i+4Z$w9>6y6|p%6Pa_ib}uC+v_hJ3o{(cjKO_YIKwqN;rNV+m1VaUB z|EyKT@2_dkcE2CC&Hynt%IM_bJMYEvKc$jq5hlCc%0%%I0+r;Y1=AiQ!<&so*zB!0 z#)>KJqeTM*J@Gd}a84&)IFAEF$Qggd#E|I7hYpH|u{x1tlXNCkzUsyLksJ9g98?;C z<G8JVOcXC6UZE0}OQ%<HaCLqZvHrJ0G?;d6jA&UAzVZZL=Lql;le7*5U}*I24%d0V z%Gd+&k0b#3UOJ=ghU#EMEAV8#s>S}1T!7-DjQ$^jJM43tlSQi)m&B7u6v89SdO+Ra zPy{~R2&=)IPBG$IM9@)A&ib(BfL1^)E<c3tmx$8(Q4c|WeqCp}`}wG~hKETJgxw=F zNE;=YimRPgMK8R@A>eS#KRBNI#-FL+2rh}CTT;XZov>LP0XIe_*Zl4J81XHLL66$u zc`3epkPwgo(0W}&ONdrXbs``@L3_3bC^8%kTYnFARI8YO<8BA5W(rK0(|4tdYatrk zi0na&kUZ1Tcy2BqD!xaKzjZgois4P7L`e$HK12v|b)x?$Tv9Q=5^sCFBmn9g!R+9~ z$zhmT4G7hC574;N3oqFTK^C^gl?a`6=P!w({m+TwGeqx!<D4#BjWZD+w~SOwh)=YL z66Ih?;MSVyppI^19{eE~oSfFgX1B9--meF{=T(o=!jo5Z(373X!3@z`5KMRF^Pmud zAjKVi6QcYMLX5xGs}jZg2Q$Pa9mN^P+yK4<Obq(RO>yG+HqoMKT(Cn9qPX!yhJ^~< zf{=yx%Oc@l3`n<#e{rEKjASk05%-kzWey<U7%zXc6STi!Id~Z5b@&B50J%RNrHYOz zv>H~{3ymTLBcf@Xm%7|^v3>v-R}uydjrA|+CXvB#0a`y6Yp09v;gSQ$k9$mzi#q1M zI5?5`C2$6y&~h+tOR{LW{GxblTbkIz_<lN|?65k&dBf#0I@F1lob*6HGF{*WNdk}` zA=o`mYaAuzEqNY-e!O*XCcyqj%fXawsiF-`h=X7`*yzA=kRNs4^tl`<lm=YP%oge7 z@cj5SY7E=qC2dSOtm4N%Vs7XWfU3$t5<echIy5d0Fgr=$^FM>-;5v90-mxxOtbmx{ zD^M9R9khTRf|=S8!?bP>h-;Dn6nM=%_NxWe5Kc-lA%jQ+1lS3I4U1+ea_`;pQ=+); zmn1P4Nk8-yrCxy-X#eVHBy?fl4pFSpmu$SE`=0KEBmf04eo*HqX?5%>VLGy9fhPRx ztDO*#b6#^iL-bpnD272a@Jc#}PL;ssUyJUI8gPJ0039CzjoSm_k~XFSV(1!!#O`q% zexzD%zttgEmeXM^HCpn|OSBwdk?lp;EpLSg_;S~Y)D{7}x!=WwPe}msV;=MSGzh>s zjgx=TFqk%s0lK6XS#cZAk2bIQ4B}KJDp*uUShs>e6W~52xoP3w3f>z?-z5Ra|F$tV z5+U>M(}^i}wNAc({7uNu#fSm0_svR`(DYF_kN0|%oQs_CSG*vJjw{ds4i{U+=8M`a zZu`<mGU*Q<fd$6wKVO4HJEj2Bfc@m`DBDQ};0o+W0&oR7^1f_1uWc)8RVr9S(Z&pR zQiAtkfZ@J6me!X4*IhtT7wy;TeFO1ek0b#oh-@eVnOq`8W3o`Y+yq2G>H!KO%?rL` zbFWx3M6}dN>aymn_a=2IPV7knP!RjT$RWsz`!zyK6InM^3@cc}<KMLy5Upz-?^tm@ z5c2<Z<$^`5h6KO}L0dr7HBSf?XP>>`*^&Tgyo5}6x~x)mjKV+ms1Sn4vc)J!VyDwO ztD{`QZviWwfOESI0Zp`EI|%xbWUzE{wiiN=L`fl(-~zVOACPNa3)(>uSP#YHVt{>% z@82Loyx%gqP}g3$DoQ+nBfCmKqd;Q^K=?`_R>6%3WTFM%pUx85umVUZi~&gi3gZMj zMUYqz-}jR|_gVlLHN1DVaL?|vn7bv=r^#(fiZ9xh6iw-mPyiaj{q<AC|DW2vB*I>S zLkXn$4)*`XN}-y^m}&oCcFHE%{{r(x{aSb?slNpBf2^MiFdMBntDy-5UiwuD5uv06 zo?2v>;KLe(i>K>?@Du?fYKDs^5dYuf97+-Wa_7%MIK_A$@*!#g1EOxFRY%TrE%ZpV zXkvvIvH8zAik(9PTE>Nl>ljA6FoU3Rx5-O*Mp>jQo6s1G+DUl2UWBMxiv9Bxg>tfE z?zjzOtczeK-H{Vf3+D0gl1`!!t@{J*nxu<*Zyap&>eDu%93Uxh4^@D}5jn>rP9@m= zyHpAjm31-}73iAswG3ikD+;jySpVe02IE~YTwy_=1UC;c5Iypq3O?LNzH6Y(M|$q= zZeo?EARpitI$S`{%3*m~bv&@kwxI8Ui*PmTKr`;wfCXL}vD${z(ANI{dOlO^knF$1 zDIf`eL-YtS8>zO^G!{8`oQLa26j9rnpLGtmIcz*C5TZSTI~rIkOfXiV7JPy@207FM zO3=lCHs*A153nDAojuq=mLQJ477VTyChC-NzpQ;EMf+@mR-e>shZ+0=3&b6uwWgG7 z?s=T{5b&&6P~k`GYU@TA)9}0F(BaS`B0(1ek^tzUChvz_?EdfW%TOZ97Q8hUvi4I* zwCPp=8^8KYwr~)&yU^pg4u3oYqGh!Rz=qLg<JiI?Nxhh0L2bN86r&t5-b;MFaKWs{ zTJQmO{}g%nM+-GqT+_zh6}JTV7fkB4up{ev1`dY#sRb<pI^o1kV-IiW?{k@AF>TpS z!b*5Cu0h;?OKm)~Mj*ZJEaVUT82$zY_tl9YgbTaGifT+dj(gn-Xul$I6FgZjO7k(t zq4odlP`cdxHL-K$MM(gz#E0fLo+6us0GS%90Kw=}FCl$aFn2#UvA{Wa@MBxk#D22% zMZhsk{)e`tifq@V2K|;Xu2KlHvE;fKF%V*pl3=sI-Q=`;!Wm};2t-v90XN}7eeAQ1 zqhJ{+NQUx$edj>BILEX9+CQsJ$p65ABmmA#18}^nVNYJF6B+k5O#HreAPQ(v2xr<a z>K?4FV;8bScVzPU3EY4ltiwG$aL*n(Fj@I#v6x?K5iPE9A|Og5cqG1ybYhC=?G7RU zPOE+8Q1M_bZO5NOu-tsS54*qB;*TEEef)YL=!z|QMLC#w6Od}Vd$~}drF5QjRis!2 zHvJ!_;<j?}sl5jgIsk>_%|9oJTd@oG#KD)QSZv(nc7ZckdNNZifz3Oec?}AS=xQsj z{|8a43q>atp3Xuq_${=7ShN8|GcVV;vo(vj4?_zB^4~_DLalee+Ar-+6&JbtlOvN* zBnBh_C=x~X8!(}^V1Xwb&JYjN38(-tR={K&(iyfU$$i`}2umikfs6KMh(*ZfSHk}G zlt34h4oG;cCO%knT`Pu&XctaEa`(RpL_i?`1@L6*E5`Ugh+7?a7)t}zg9Dlc+(^y8 z26A*RSv_5J9^)^UgT#wFQU#SvS}>$~n79{ixNcJj@}b<=xWnUr4mLWL{MYc!Vqlzo z*I9}>)Xpn%fJNN_2iCD_n0N-KA+>;3lK=gkCT!$@<mRu1BF$@(0BE8`=OVCm`ck$S z{dbDy4V-uHG>;MuAttz$2xvateHXKf);$(_c(#@L5Inyuh)_c7XhrE-=wY}p4V>9( z+WlRpRa(sj%r!{>Tz%Ep)xLy{c>&FA8c+_&LuRy%7SS{hXfp~LwY>RKuGo>NeJavX zuXiS5)mlLWfJ0hXK15pb#yS~)cwXbVzf%1K-;S_q{cn;0xQbJ3^E9!I+L|Ix>Le1S zj5-zP_WdH27zo~v2##{rg@77NtMDC^l9p)VK>)@<>DN~$+7CStAKIEK&e2;^&SqC< zvqYK87-I!Yv}1@e`_P~IDY6DZYd#jHGoR-IK=A%a%oeZFwB{syfb$c(aS+G!?82HJ z(kMba=fK<YO(^}ANv9tt-%R1#B+V?06X&jAXZ!{ZCvQ;etOMgPasRI=ywwcI&^k>P z&t=%u--PmWhR(^z{GIv^F34j*7)=8f|Lt|c#nfhny$;p3SD(ug<Nm_4q|IMNiOc^b z0dN^*_6mxoIY^9wD6m||L5O!wL3Ex$+`%xReHJj*ET{p7uTK{L-IfL`NMVY`)Y}tx zr;EODL`tQVM8S{25kuqO6&97*RQhRK{KRp{8ACUw!0!QlG4m{gUG$e~I_UM6;kkJn zn0QQ|J!E6D`1$%c(Lh5<MYq|H?Lj<e!JXJ=wbU3#76k6M{!WFTeVVwYe3)`5h?c&+ zN!jA}v)SUrB~S@`H^urZi$7d^jo5~9T0X~Up2xEXVe!*3N;>?Qo8yuIn8Tkk*-s*s zSicR)Vg-EVX$2?<4CeC*4$wqEEBNtFXsdZk;oAyU^S<x)exF4O^(9H^Vu{j2Uc`=1 zN??|s1ebJM?FjK1H2$S^7C#?3^3PPU>WDP?Dd;!($LuRJ`FKC64l~tO#0<C>L?A`$ zusnuIy6_=<<j1s($`e_!W_%X7=ILsy6#HjhGYZ57IQhX)_|1X!#L?n^c4wNHK~74} zT%*{&qMk(K73eVW1r8`Hp(Go)IYnq>7grkQ8hH`HJwE_@8$pUtSd=!=0Uxaj90X$) zjs=G_y%qc?9Pp%*VTqVbdp{9rhT!-ps@&0SNdT<GDzNztoP-8#P8LWmqznJSNw)8< zj}^7)(+-(8U;!+DSsXK-b#088fZgBGntlt`mNA=C^L&dO-59XQG&XQa0F2>HzZNh$ z7ZHT|Z%T%;O8>U5<wC^jE-^55*^dzi5*^@JvH06p2^FhvC?)QLkG~_}&i~Y=6wpdk zl#AaHs$Bj}5&)M`=0pWxbpeP#ADGR~JBZ~~9cNk>btoy`Y#$?HdA`+`O@&UNMY#oI z426R4Y3M?Jgwj+i%TfNOp52))o`qN?7k_@NSoc{H0PAphWlPWrEW?rATh=5yjO4=? z@HiY^e(e?~Ze)0Cat#hRhbtfAL*MM<YK?H}D-b$ta+63=(!mj9icrJ;NE5HXsYp3e zAa{PZylhDT+=5nnqaXr26W{HZB=HNp)*L}|<oo*pJK{8yJlz29_6M=R&hD4T@!-ig zB=u|O7}2?`15F=>&EwX$uT2)8`m)K?(aZLt-y{KW_sakgID9cn+zKM_5q#tw0bj;Y zc))GAAyz!!DoT_?5Kcub@I{V5S@^jk3UT{Jz#V%1O>u%L%XmoA5s*-JS)C|W909I? zI|=T^KoPIQy$=tV)`8^|*arU(I)NcuQp5!ZdI92u&O|RXiWD2MXr97JxbpNcq<+8` z2m$*D%SK7)G=_rBUw30E@j;77QM-thPkO<FJ-2{R?o&Mca6y9GG2oaNbNk~1=mC&n zImu_jiDd)aX5YaMe<Lgbj(}mtUTqpFM%9IP+%cP&37rB@+2zu7NY6WOk&8Jn3hL-j zbtEOd4`$8>pwDQi6SKeIm>KQ(G1&K)l0)K{<hE20MQ;1<cm}%du|+q`IpvoCwst2X z``!jN_hIbvV-ey?&*xnof7OT}F&arQMnPG)0;la}gFXHco`)A0CY+|R;vfc>7kv<d zp9G2PD};;tYlewik)_v>C!abd{wK4LaM&iE$BDi(N%-ccEWbC;Wv?Xw$|k^Fh3=;Q z1{j<TV!)f&^_E~~e-S4J@6ic(k$>pqq8WRig(vcu0A$IDOz|5|Bc1^<xSR)%$76{$ zt5C-otdzW|%nU%Kp`Yl0&}X;7mfyX6sHo@UZm*7q0X)ZSPZukXVb^D~e!BR{8F@29 z<Fy3fO~lq44b1(D39d{KZ^oiJt6lkTU!Z#-@80`sl9-MRL*w8Lrx)?IVAEA0V-Knp zt`zDNHsd7T+H=`rJ=)ubxP@m@vz3#IOl_v%PbCKV&(5pY^47Ke5%&9)Z@2+?4}(sk zY(%hV5?eyFg$BP9N~^dKQAsB;N5Q`4|9%wSQLpSt6VoB@r}Nk_7rxq${5SggXR<dK zS0{)<ldjUvVB`%$^jZSY5lJXkb&3_Uu|vLuc>IcDh(y5OCJV;I^+%t9pI|b)yJom} zvH{YK#XA3L$a3F^-I#?y$$-g0_ajW!zSJCX0J#cIrhzCRgxPtN6zCABhs?_5Eae(3 zAwtlPDD3QI;EGTI#HAt@JR|#ZXRi~D$iPTZ%v^{@;RHCAsRwOH+L0#yA-m6a>5scU zUnYiE7xVWy=x+ufGL!>%2czh;te*3;%(6#1-w+YUP}{d7$;2D*ta~3jM-q0nVv%{B z@3yf!u^2M2DrfIW7xN+G-&s9eJW@AYbZ{aYPr(P08*c)?0+xcn`I(6cngPy$2N(H0 z6jU_~&kx1zg=-XS!L{#H@O^}cy)*Zx=gIkefZs0sToDr$EFNkQDV~7NM(b#}YuI!D z-Cj)q)Zr76uQZ7e13?VN<2dMiXp3_gtD4F$e*z8%iz5v|M!wjaCcXwCxE{nW9*Ib9 z#s63fwh}%f42v+#jksg{(BGiwoOTH5)WE?df(!B69iQ`$az2hU-i31=<8j(ki}3O` zZv>AMfD!<sh#+F;wu=_aY9Zhz#Da~`gezdUMWa1&b3KI+1Swg7RwD4lN-Uz<rAmli zRU^bb)j}2dn?Xjr4R%4)SO78RYxMUoC@2-BBngc_?)XGL=o+CdvLL+xcE1NKAZEbK z+A#WDj}w55jEr+eJFC_sqPs%g{RFJ#WVnkSyJ+8GxN!Ul6he?Upo153#M|dn#k;$O zXpHQ;-7AKPTaYBP71CsvF(I3qL02-on|GyTi62g7iSIy+x4=gsokt+4Xe5F1M+*)S zM!5;YtO}w$8d-{mLvLdRLAGLTuzRk6l}n~B9$W^+P8T)1k<+<z=aO%}`DUM{O`8q~ z4-YS=d6x?pX%2gJPllpgN@uW2f1PwHPB{6Lk}HBB5>$bgV2jeBq9Zi(9m@oZh9yHp zIcVn@Z^TOABbgiE5EP5+5CUy2G7xWu#o=I5mdGN{Pbdz5guEwv?k^Om5m1soST9mM z4P`B@F=hb^|Lo44J7+)k*kcP;uU?&u_8c|J-_E1#H~U=Hw{n^|Ljd?p5(wLf5hH3p z{q)mAYSpTBM^I3Z;{)NWRRsJ2GuU%G(#7|Xn-%4@BNP_VmQVdmY|<GBK!Om530VV* zs5&s&H9$J8+OXHxf>y91C_*U+|B+avWEiMU;CdynI*%%4p)KY*xd>(CSzER^j8xl) zz}D|Ww%t7_N3i(MVu#PB34xDPcX~GB?*QBcVNTrwbM1@JM_mmws9DI(&9xmla%9P* zNt0%L_~C~K(H_^!T|`;{02fn9L_t(RQ8U-)34n?>&bb^6yv^Nr-yL73Oqq`A4`%)^ zKt>v-@%{@Qa|(GY3Y}&i=8bi^FqNXL(91Xoh8!M&RZnN4FmOqsP+E})kOt7RI5Q_l zWWd0}aAs*V6RL}xegp(AcHYbqNI(J$Xbxwmagg)-K<u&t&YwTO_Uo^|PQXUE3GH!~ zI!jUfh5)E|w8h26g@5zSH{CmQ=rAlYGO~{PgVF!Vuy4J0z$V^AuK3F~=RljdTFA4n zWraX!{hl93`9Evj>+jcyD=hx<P(1$^a{j|mJUfbC;4C`Q($WsBTeoi7op;{3{L-aM zaD!BKeP^rlKCdMJ_0YM}D0Z63zB&y=cgF3v-(LQeS6=DYuwldgp`oF1PS@7C@gQu_ zFF`*r>p+^wBya1l+Gw5e%gY8a08S_rdXzzR5XBjCer-Bdn1syC%uBm>@BZ?cXP%j} zbm`K6&|El*5i-lpTtL}}Vj8Sm5|m$JP}o6ruW`16L`2A*J$uqV_~3(eP>QU%>Z+?s z0_s3NU>N(QA@}wK%hnaX^9Mly4k5=~p6u#ux8!{Rg#r84)dk*rGuxFE599C^=a3nI zoS${-)T!@Ze);9`0|pHE9&?<wYpxX|4RbB9m$al&S!f!Jbi&a?OXA1MDC+L*Dj`tY zCX#|?&6;&h&z?QwAtJO^e=z!=So;F@=@+0M*vsfVM5WcEH`+N_uXr)QS&9i#AC{D{ zkn`^Y0WiGl<QoZC{LPCOFHRUVXwdJt%%>PtAgD9-652S4V#(r1J8oG5>?}orDkzaC z9Jo<JkWs&W{b&$^+poU*>LD;2Rzq8+fH~~mLQ>E7a4!Fnzq%Eh!cYKJRu+D)h=bMS zVI0JI9G-k-P44)_9yr)zfBf;s3@rSmd-v{Trc|=~Mu2OHB@N{S3R!=nYY9~ggGyNn z|6=|MwVLHoDx#3`*%>T+at&C|cF#TcRGu(l!hi-18uW$76!LDH1A47ZfLrm`2h&A1 zo#Or7f505N{I51F9l<bz+>KOZ<KVvANF%SKtAozT$w}F_Z{NJ<pMQS#+_`hPQ#)hU z(|Zh=5OTt2?1fe{%fX!lK<z97-z#DPorF{wM*Yo|{}A9s7Hp<h4Fi-bSMCOTd#<!m z=w4>_9S5;s9n6OcSi$=hdWyW@H5jmOLmi+SngDj6u?#GLoU>=ou9^lIJ$m%tXpftp zQT>{_M(FHAB7!_<?gLK{0JZm25K=6NMIjqwl$Ei;LJ;!RS6_9$>86|FV`5^OqAgQE zN48JlR{Sy?iH;(Gr_>LaLZ^3D=4`{_uMRirXW_^*6z;ngaQh-DDQWwP6)O_%z4zYL z(DZYc=B{r9xE5IwQONEmp|~A9NdPz)Qa5q}R1}gkFiHqm&(@|*o4AiZ{`gK<3<iQI zRKPV;a1xe+*Ki#7Bb-@Jg%_M*8g8l=va;nE0Ph%uux0;&`|eW+!B*KoAd`Z9!eT%3 z_uqei_TYmLezR%QCMxH+@Qth|b>VZT=Z?>v->A5Zs;+^N4!iaQ?Yqf$alx{XT{1dg z*0aUO$JZP)X3XH4HEZ^S*^q?A6#SK#1GnN-@h!LlILPIZEmJMZ%Ef{KygQyfy$!ql zi%p_LbGS#F1(@~H4<A0f_@$R#nwgN0a2V~GmGj9psB*qt4mI0L=j#_20Z@C$SV`mt zN};H-kNTS{|B1w$_uhN2Rlk1y;_TgpQyfkFF!<SJfyLb&LU1RzEF@S$@DN-QBqVrn z+r`}_5FijBNN|S`+=6>>C&8VtI9L1p-nx6Q?&|)5qbQ2)s-b(PXM3jm+cTg3%Fr;J z-0y|t?ZB$Xk{s`1DEQ_FBTzE&Tx`j#3G$J>`>s5O<Hx8AY}_pW9ZX9+I_e~Fkn_$c zU-%h?keKGn5p?&>lj5akw+Cm(eD*_|Bp8itE7WVN+tQ`Qz}tJ7DdC!9=p=0-jK*;k zd{4Og!vvj4gL(R7$`j}JAnqW;uJd2B<JXAmgNa`%{9u2boGB9Z$2~a6MPJlw$-;U$ zx@~n1PqnT7_{<%1Y-+o(>mKD7sg~M^lYYkQ)Qlnq{~p*{YWAL;Hih4Q>4~OUrXVJk zZ-r<(>fu?1k6MU)NsYI9s(n%OQ*hABTrBAxkav;}j5B%?sr+nh@U*(BigzXTfI?m7 za%17oz^94pnA7oJpUvsW`!6k!BRQkrU+tM$@E;rq7kywQB}OAgmwXzkUIyBorH9`f zdwKXj<$7J_gL8(K@7eAOwZ4@a42c@g&FElNV*Gl+kEkCEj96T07A3Nhw$A00+~ME2 z86;s-<Mv*U7R_(|_uKH=v0Ps~D>5_kjucxQS`Kn}1aLZU?d9%ZdPGY$5otg!sD!Ls zwx)_-qqvPZYMV!JI=7ADbx-^5rpdgl1i}ra_-onu`d~#j<f3<R2-VzY9JjNz?noL6 z9)l!)i(hfB=gU#{)H`!pe|)?kUUY?-XFp<QCA;o4<&<v$vJk~?unrkj?T6`@&(hxK zrKN`Tet>=V6OS=me)@aKFt_XT0~aTvc0n*Ra|~6GzUC((z$;B_tbMIAglJ7O@8w4k zlK9--PG2N+&{GHlpY~$EJrJ`fiKWQ_B4({WgYn0Q7|2bh`2K_9XC_dXTTu6EiXe`z zdIJ8>y5Rm)!Q$*-v58pCdNK5EFS4yPH9|?df}l5MTla=6hs;`_vU!pqwWGk^^4BF( z*n1ZTo=2Mg*JZ`CVKsBX*Y<)p|28`U4<mzdC=wJzIXA04Py8*8)pO(i6u9;mw-+|$ z6kv9vs}FG$al{WkRorVTPD+OGSxlE1a~!tb-%+z;!W||HHH}<cTzG_fV+Pv3l@Mro z8^30Hwx?8=o~!E9{^b(eQ{i<p_1?yv!ODg9vtU24O;7koAwXRAdN55$w&nJGe*N&r zZdrFK3DvvU^vL)SakkkPoY(|kHJTg_pU8L$P*RnM;)dFHPZErlrmk=@{VGm&pUHtN zL`W`r?UuT5*_Yj!oyoG;48hnBKbeb2L4v=^m-&zlD8`$;l5Tm$oon!IyM=}$gmEZ^ z3>3H8ay?BTdlQGyaB2N3-F_xu{NwP;v*WO9-Y;*dE>0#bmS5Gs5$cT*9};w25F@wm zZccylK?HgQGGI~#O*l5=-?r&k2tC&%ew*FY5@n}7<5*c$b@Wj|82mXVNaaxF*CiRZ z<8p8Y{QZ2LUG+*!6Jf7w<GbjpYoA1Jsr-Rpb)@n6+-4g?{-fF&DL2*nH+~}hUX@?) z=9YKFhQ$lr_UD?J$m1$f1NI3qzl0hdzuCg9vcWwe`#LaL_)-TWhO(`OZQ~}~aoO&B z{L<jm@AiWNxypLSwXX1LGdziiE2|-|8t$<#Bcmqt?#tamJZNx6fK#wRkAr-4TPeA3 za@puoz5C^P(_zazG272AT_5R|^qz@&M=p9yg;gu~kktluNbNyw;{I=Ce-Y5$o!#$- z!@nKANQy8ItXQd&U%FB$8`CA%yn)V+)0+o}r)FMnyqPezbXDbH(x6$v+>$gNPEJnJ zmSs`5{W(`k(qO#N6b`ec1cG*~pAoi-Y<#OYeMzz{pw|_771ti-PL9h8XNyELmps2} znO0hwy#MqkXRX=(iY+QCTKLwuO9N_QBJW2UU34F`M9S!4+)3Ov)aX<*sbkI|DLx(d zY^V9#Dq1diZf3SPa?vB+_D)Ks2E5INBoda2fqG+v%$`8?DuF#ek7sdVy#kA4VJ(J3 z0m-p%e{7~%ZjLE2WQKA}CJjaRU;6ZBD7h?4N6S}#8S@PKzJzth8SlJ0ei~u*6x@v# zlRRw<BK}24dp`&RC*mCu8%EEd#aEE?8&sMv2n_I5-!2)k>d*$aRo)Zpf(uew6V?ML zd-b+k=FxgxWIr&JZu}NXzob0(nXi1?n-Ya4b<~C?yOycBE}t1kRN}l^E%WE5lU;}M zhlIOE_jNne`6pZ_*ju^&&HM8rhLzN4E$1CfXD9rhbi|VU>6+d?qIe(UHIc#l+ixU0 z5;>aJ&rX#Xe^*9*UQ0cg$^Yeo+tfma;FjEt*Lw_dViL)gZZQ>dmZ6aN<0FCY`R$tb z%909#4bmXe#b(&jRSjsPuuJ-Gt@B-ngSa=wyT)$b?cK9y&v<Gqv5ARN&lb_B)=G_S z)@V<TE|U!fDshpERli<cc;qS{L)Z4x7mvgD&d$!B(umsMkoLNKVmg;ecD6u91JfWJ ziW@A_<d0oS_aQJAz$e{e@l`bwTa>0fVnPDV6Nj^{v_W<u;<~+B!&S9Iy=Mi8p;Hg4 zUHM2Ds0w%F3c0ptUvNL{&4JS&G`W_D=ck8pOMd)<GDnEqvuuCpi)Wc2zU#-9z}pb! z;=e-$x`K;;kR<}2#|g}s^VKpXTzPDVK74%?B`1<QXSERFS@F&N5C0gI1lUSQA|vSX z7yUJLQC;HH@T<;l7mHac%l5ByD`LAFeTf4^o90rgH81?VuNJjq_yg#$4fa@*y+bt% z7uoXBu%j4<mkGN%VWc>di}PELvWqyjBKcYx$nCp3iP8$c=|2-NZny2C^B_9LJkL@( zjj~_gcZixnYcj1@Eu;)Qy+m_T%hC@U0y7`m-X1g^$}}FfT>sAIkqO3@VaYxZiIA?k zUcd#D>sUaz!Fy<I^zW8(bNI1?Nus)6nbFaR`6o;is2|Q&Sq`*2ay@nuK(|gCg4%Z< z9;lJ1EbZtH#=l+dZSzI0hQzP6&KwV<NmV?}YxhNVp<X?fuWqIME6uB$D=D)qfD^l| z)xKGM(6rTL$%xgKT$p#B%G;gNK-P)%jq?l*?Zeb}*Me8GQ9Y}1V>eF+t%6LvA^}Ve zR?5^}Z7%tr0G~{8)gG;c%NEVA%dB>)T`|RhV24SW4zG<-_RVTSZ(;;U1*j<iWrl9O zR4#)hlhq!&_#~6?T-Q#Ue29UObaLvJ%%CqvtE~;FU&-}ZCGq~w%7fzaFTODm;=QjO zxZM9*O-WE~La<x4cY~XCYojjxZ_;#&q%VW2n%=u_@$M0Jrq`p5PQ)YNGVbefycdWV zd?(6DUZKyLKK9e|)PC!CDa~R8&1nvmnbEj<T)mm#LPV@_7X>j$z4>MEB1Mit5%C(_ zahVQ3l)h_S7>|R4Lvpo6veaR@rI>rLsxw&K(=-4BL+Xj8F#W#JC$ZXr91U66a2q?5 zS##9+{`{wqsTE#Y$rc9tZegX*U@IXnve_t^AVa4gY*keLi?J2fvzJ+}`fhja0*fO` zF|^|F+pB*r9Rlxvulrc7s;P@-fh6{Puw_)(gHV&{U!NhtwZmkZ4e$CAs5A9StZ8I? zJnXE5zH8?8?DNwkRHO#T#tpsWj-iA1+A7vq7?v`?(pg9Umd@;(wh1g2^YmAJ-1rs$ zZLsRJk1dP#S@}@^C26C_Go&!Kr5~1p8H^agOqh2pR0<)**?OgX(8kWRVlgB~nDE>8 z>Ws>y&UQBD!k)TCE@l0gpXN@X{!M`X?**A3e+R43s+Tf<egA--A?a?<^DHNbh(*!1 z3OQbqp?)Y`bv=3V!tsB-V-P)$QggPH%yhWTszthJq4y^Pd=4$=b00#P(>3W#gwgsO z89f+!W0nz0tFkVS1lMHSh}uhD%RJVT0ui)?z7LK}Ag4TYQbo3Xe)2(Pf4TLZK&&{+ zzrb-?6r9n-EsW>9ng}R65}_pk4Ph1F`ouBbQ28;0bFrp9Y>eP+Yb^I>qc8EgJvLkR z3@z$|8FuQ>7V8E6;KJb>5f<;1%y!q#ZpxXn(qC0*-<DWsj$3b*@9#vdXR9nNCZhW< zyRa^)i3zH%&NgyKS=s@Nk`z)rm-d2U$JP974JU;+&yNvee_UT9T%Z1T`rr2MR_OVm z5ry?szWqT)<EQj(Mb}5^8~+&Im@9r~+Li|MZ!GV8rE|HK3+?)y)i;k9+?9UE5ZZR) zw)uY2cWc2kr;#;lLmUby_CHq4^wf!uglrIE*It*cQNMarNXd_Mo6_BYlc7mj7Vcn% z8RpXZGq;U=ep1YWPt)C5+E9B1<lfK5^R4RMfX~ppQ-{J{sQ6wR$v1rUmmW}qHyoZ= zR|Ck!A+eG~{&%C<wdZwFoP;xU=UU09DlV*g2#_nb-e{6-M+|5!$q7>#`isbMje7B$ z;Ldb8gY?J0gY$&77a&^6vXDAeP&L&{e`S93oOXpr!c0jKyiAJzQ*cslI8~yg%zUT7 z;@hwvlD<bP?aR#D7!+KyzAP}KDve5a;^2%FO{1LeK>?I;kZeZ9l54e6k(VJZT#pAn zB+;w{sVkXua-v52x2`*r+mUa3b)--Yi5jQ=4S3PL^jB4&?T<c8eA-k@<l@NYNERIY za^k0rON`TWK{1Q5d*8{#d*=2xxRk!)<nEp2>FdndBt(l593wQW5F<dpB2AP=#CB#B zn~c*%=;I!xojyj~>Bl%r>pwL%6EeXLog%`jYt}s_O5f-g-M0r>7Tx_J?*5N}gAUtO zw<%l2$%AwvoGo42D2-`j`<6?qA7rMlE;PS1fsu=?uS@je5rtC4Uw>|Nu-3nYh*9Vl z&afcc*nbi)pq`Cch*|*;C6=<X!D0~p%BW#h^=gAaHPvGHJ(?WpyNEMNv&yU<fyI$H z%T1b_&740SqJmkI!Rnqtk}~doxkkj_pF5(XDVn5m?GJd@3c$`&aZ;{8ej*a9`Xd-T z-qBbjk8uMGo%m=aADcVTFkabHFSt`MUGPScR>!Q!8C^WGRYd$_pVJsFcxl>y2@7D8 zBL>vpG#ynp=-KdOPaz`P*_l>4`V<cWbi?Eb32tF*KJ~PWoA(jbmsnwqt?1F(S>}qv zn|ei41#YtHG~ooqQjs7PKq}Iqxj>T-CT}K@PUM3j|CM2DsYtuv>nOqGw0Abw^lD2J zg^Gxb0&UBmiv8jksWRcOOT|^!Nr#O`RH5qf0&if%h&Rvt{FM^X*dyg{0Uk`nM$itX zU|H+kRh4$WYGZ-TL_ShZ7KYzxiO7JPU!U)rMo~X`f56vz(~(<Svq_UFM9c8xD(Uo( zfH7k`O<P5Jk*Lek$W>eLi%^QHZb$^CkL=F_Y)5~=bj>Rz2HzSPaq-L74P;G8Lt*-E zC?nylo5GYf*0yh8j9dXX_qhzOj{zq8CWHLy!QoD-hC+ZOzgg1frd+<NAua(}{TpYr zh33mIQO=MELjl{feQ)G}H0^BETn>*hEG07<hl2M8(t@$OFPi4M%qq8D#<%G1T4~~g zdR@V%!Tr4N5im&*$LP2z{KMNyr&yO~=X6B2^_y{%n+sQ2cpWd=f;)l3OojQ?Epqu@ z+IcUYgb6kBE6{6L;n*yu#gln{B!Xf;?Hryp$&#X%NVsMA_0qZPd=|DD_r;?YZU~K? zueKgp7|T_HS6cKDA52clQf5+EAcZvEjVJcH_(L2pbNS}xd;gT*u9vA+BKqZt(R1H` zEKj&E@P)hKp!7Spn_QKVLN(>&)1n0yA||4^6*SaqOPD4JiWHudVOUC(rKx5*+!|+S zg$_EyuQy|NS_ZbHh<%`FJ2+=wc?Zho1lrsSb}$F&CEdu1d_-_u(Z6RnBtaXmY&~0p zQCZ1bkZWsOEOKQhDSa&(F4RMOR|C!Z(og&$GX8v?cg-8OQp|{jC~s-(xXnL_`3<HQ zS!1sKOju}lQi1R8EAdbH$O%;k>wFry*ONGLgrlXYW+_izZ-(u(yzn#)$TEZZHu?$D zisMRRG#Dn5FfuV(!<bh%nN}9eR@Fx6vLsuljL<(PX=I=-LSmJNch=fX>bF27S8t38 zjD23a$6B)#{erzci=Pn-A=~`&wsQ1&+;XX2EX|6~io^G7-r5`D8%h+edOR>i`PoE- zWf+Y-%~A=?=FUfj7=ZgV&ArX7&+^(!{SplEIv5L#{o->*oJ7b-83$p6nbh>~ZwtXH z5pCV-^DU5Y(0@Pvu=cilv<O!nCfe!uf&X``mtX7w>wUm_AF$pBtoH%yeZYDju-*r( z_W|pDz<M9B-UqDr0qcFhdLOXf2dwu2>wUm_AF$pBtoH%yeZYDju-*r(_W|pDz<M9B z-UqDr0qcFhdLOXf2dwu2>wUm_AF$pBtoH%yeZYDju-*r(_W|pDz<M9B-UqDr0qcFh zdLOXf2dwu2>wUm_AF$pBtoH%yeZYDju-*r(_W|pDz<M9B-UqDr0qcFhdLOXf2dwu2 z>wUm_AF$pBtoH%yeZYDju-*r(_W|pDz<M9B-UqDr0qcFhdLOXf2dwu2>wUm_AF$pB ztoH%yeZYGE|Bm$v0|0nKPD@EX2mqm@M*wK-NlEOX04BNf!u|b%GkG8Y#@6W$ya#vd zU?Tu9an@z<J;r4gF#yo5hu)*F(*XeOV(2~kBJKa@2h_$GsEtX!UIpKSufCEX05Gm@ zZ{R(+R~I)Bz@%_pzQ12~r3eMkI6r;ji~vBGm_a}yfR@$MlNAbJz8lRF70nub7X)B+ z*JyzO0IXHh?GN~hH#-vo%yQ3I0Yc|yaR3NP27qTTALELt06=mO0EEW?tb(jhxETf6 zfS7Oq2#*Eip(H9Y)R+oD?Ej>nLMg?bkwX7hItE}BVB{BK<^P}UgOUJ1Nd$*YRS5u+ zf&f6|rvpB~`b>@$z<2m5;tyc;R%@X4Mx(kn2*7k0%M=#Q7;^{((DHhE@)A)8;5jnl z846%ZbkFzp&UZ@$0a&H;LuGk+Wkd6&{(vv-;8cBnLuYqme*M%SEdZ#`l;(H#G?cdX z<d@E<1Ax{<Nn=YxOH+NzkCF+k|I(eMRo(5iCEfp5x~8?Ws`UR%H#XNbw=^{U&-Uum zr3KwBr42pZ1*OyK0Kh&tS(o3~+1Zd^H#x}e4`5X-43y>Nl@2Ua1p%0%J##%hb3LM= z0Gj9MsONtNU^O~w6$)Uov>jbvAGNUr0ayipFHU!NPcQx!pblUZd9inNa&okHfgGg; z0GYk>y_3_U{gacu^F0{=fbE<d9UmPZ9~~c^?7;p@pX?u;oE+?*{BP;w|2=(le1!U! z|JnY({EqjJPXAYaG!sbV|CEPBPSE%RSVdcxsJ*$|DncDV$KmbmVF&5}>?S7c5&@gH z0>S{$svfSPri6!0jST<*o{I7_EdT%ms9z`s003tmlUD!$fIey|$pdA>wA%mx15hhQ zdVuzfF%ddbQ!=)PFAke2l9>aDAqsoOM4Fm;l-|>3Z`uPibKkuw!J1+qBb(GC)*-C? z8V1(NLz>ionmvav??r*ZP3}9Ho|{{5t=&z;kxj@&?}H-d=Mf0zY$!YU|M7?L7CISr z_xL>y8AxG;AKJC%@J|Z99GztuDz0>&2W1CqMj@~P&4tD}VTBbabh2ZaW>xv0PgZQ! zywe`?rc9O;q|gR}76K~>wcn39!SoQVqeL9|OIjZ!mt)+|tm>n*02t`L5S7(fGy)qK zTWp<^P(VPt*58HY^2UhK{t?4h61aHF5hE?;w!+^2^}j+RP=(G_&T%UMP)E7)z`#g2 zaSRL3&BYGmnyZ2sJ7lk0b8*-4djfMd^cgmo6L|Jqog*s(K?P0|%iOthq1E~4J#~Ab z$FsK3#zKKP1fCU3A_XZhMi6R%7$YRK({rGJzXk2W@pMl+a^7XNmlZP}Nq>Fx`aJ}j z;7S*+2_f|lQ-Gl(!uBOBjfljcpt<v1Z~VC%w9>i)eS{3CNea^!{l6>&h%`Wq0g~$a zuOSFv+5F(Vakt=8E8mWvkuJ|#wFm!m#2oM*{bq`Pg&cJj2=O6002FiQN>zc8A3EBi zE(s6Wbo*)$)qJXm|K-I!aD~Or0giwLF|GK<vqafhz9w=M28X|srtmwsNgLxE-SJzf zGI&-E2tl<-U~<`%q5stZ6jcYxN*w7C0O3*op&eobORS^zh+&S36k;Uiwl-SR5t@_R z$^}kg&ITjC(dF85fH4`{kV)I#&2D~vWSp+DS+D3$hFMMSfqb&M=-!>0rz4sW+CT*I zo2zPI?N`(uwfWrYAccJS`py-mBnvzyu&aj=sM7Vq5J=0~xF?n>sD0Hr{@6RB>ZkN# z`2&}-Fb=;?TpEN*07l~f-=;wbY=GP~q$&prfOs<oXGglThW+YhF54s2yUs_&<K%%4 zxX--2M<J{Vj1s7`C2^%`NJIzK7#ay)o<3`?%W3lr!R$omfR0LKqrNNViZFBpzdJ(4 zga`nuF29hJrMtaQo3r1<jFgG5w{s!PW6ZV;^$pPE(}I8l5!ir#yXIjI^dbPzJ{R<L zkfv={Uf#t~|Jo2@1<EJ0`o*Y?^I_H;k(~z(q6U!x^3e@4>O_S#r`{7tXXFSSyyoC4 zc5*qx+oPg^uok5HIPVSw$f*!P$-taI5VnnP46{Z!FmbN6s4gknXM+Q`EQViCOJaHs z;0rZZpsFAU038lc1SoB@kb;z0;(~rpw8u)qzqe(!9H9jShJ7S@0!%_QSTus3st{>F z0>Tj3fE?ttLn#yh^&Cy~s2jGv-1csq@p^HUpoGmTLU?I53|wK1Dzy!;$Z(>*I*ddW zf4&h|q@S5YAn>3X4S(%h(PHw&Y@JSW|9-s)B2oLL*WkE{Cv}kq?=%n84G6%hWVY&x zq1;hKXJqF9`zyjsOJFSDk=l@F;{bU7CXJroR!^_*xytkB&pYNFT7BmbAT-6tY;5)G z3^+JAui<x>n<N+n^ioaP*@z|w-ZqgqcfWoNp%Rf)Yc%ctKxRT7sE29AJDb?Lr$kUT z@Zdu4bKk)YiebU#&^K)f&41Q=qIcbfo=iuf7L;v$s=jh~eZGI~e6rC;a?o;ppm32q zCs)^w!OUliCWKYB##l>+YDp_>;JTkHej-o#UPC$}fMu4s3&WKPn`w1duj4<TOqb4@ zkxNaN3m-?CC7(R0<+*dy3sB7N4rlw~@i-{ROVa(osNQx~P-4UB7!RrFPfdE#_6y7E z#iKEmQSzaPbf#M+qA+1d$L$*>YLotQW=D3gQC#6c!CV$j0$wDsC;Rs3*QY%n%A4KH zW9g;K!XqPdt#amc3=Dpp7G(K(;dQjZb<2!Y$fW2f?Na%Ep%HvWdq+N6(}DV~9HE0~ zOx~GZ{Qf}d@5mAd#%MUw23EW+Iy(qN7WDtUG2c9N9~R$?>WaD7yBmAmKQdw}`0?)` zRv-r66)`fKdg<{!@J0=U2teeMVL+cpAh5ukKx+24O-^t!4x{@7?tXQVDj&sWRVckz z;VGWz0)Lfet|Hozcebj}pZR)+tlNIBa#fGBF{Mx52Q-D=>u!ETFG+F9EPgTGq6wGs z!!)!Y-%(9vN={`&6T)e?>Iy&-FZqiI+_OaXuKEIT&Tm6Tq)rEu_vh;wNJ&W6hXljQ z!AgJr{An!KE&c2_B8~iceB8?*q#tW%1-e3yD{mIty8o}aD#^jn5xIz5Qw}gaWNW53 zc)6)!uHq>1$?Jg>9&PhY*@D;QCY>ZCBvg_NE}Xo)OM>vb8<iu1i^C8+nv-J~HdrLi zUFP%(bJSf9)jnbn2xPE$$Mlu8LfaU$LW6+9&q0vdklgS4Ps{N<6*gm^<8BrqAtCP* zq=vSe+d23dg({_t&xO=TwGDBlzgT%?`A?f*eMe<fX83Y#<dREFw%g?qFg>Cb`JUib zbo_%WJN=8I-)@U;^LBRDgQ-rNeQa4ihFV%$LN`3zLDr%Nzf0%Srj6Z=g`VNr-rQXu zrnO9mRLJqs7hPx!bdm%EPjEcq$Fd>-LJd3wKAOUcDC9!Mv0nYqFTMXv3ve=TFFzfB z!DqZw`L>q{y1U+Cg(nBhw7%(%un}E!nJ_f<{YPeZRCkG~0hrYQwct9ai<yE75tIRS z#Ub$atulr>7K{XEc^<3OaTAwCMMXUd`j@%X3cn|sajh@17#W5~MnwD`&Xja#9><2K zBqlyBkea_ib8aI+2c<CRYC&jGcjlM_KRYQx<t{l_S?L=a;%bGLs*>>T(-GO__3y=H z)UTS{_GMR)VN7{scUC)-MI`pEx91G)!kbivH)!v2%zizpC5@tF@A;Ys6(a`y136mM zf5`O*dS%ux4cAc35|rmLQ(-=|YUaL6Wu4(9ihWVjv&<Y3r`sUTOfvjTlG?)3vefja zhrsE@{0akX2p^r;%07=OILn5<LSY?EH;L4Ll(DV7JP#^{1&Z-hyIJ@*p%O*XikB$s z>FByYSNk^zi-fmlq}Y7Zy6S6KK|(@;wCw%O=?5027$1TFKnOYem!VBV@jcr4dWAVR z0*_UJ@d8>15c)*@!#ZbdLtjpB`D8RJIQyxqx3?FyUTT3^@5otm=Dt6-V+LdC(TTe3 ztqVAU#254x@fbgS9J~7KQcVXbG>O!|Pzi>PC_H>)$4IymlepuTvR%vTdpJ}1Hn#o1 zL#HzYPaOo;NmLR_&K+N&SeGM^I%?ArPRge=RE_WY5)fX$SAmn2OzK~V>T(qB8`x12 zu5_%uTz+9KYe;*uuyYs5`=jtUQC&uyblaP+Ofwh5Zaju5k8Iem+3TM-a?yQx615aC z4YhrwKEf9!hZy!>s_Af{*3p9G;DgA3oU#|Sa`X_rZ?SHEAxNk8T7|_!)S8=fNgUe4 z`?J-XM?pbBJu5?%8_tb&U-ypkipyKB)}MU%%^%E%4x$PB$U+c;qeYnQ2~!~o<Amq{ zVc!oXdjQbmqpz9EyQ_8s9qLogctJh?#1DU-Dl+*xxZjj*$N@IN6n<x8O6#HcbXPog z&t68qyaUlbbs@C40~B%DIl!9!2%ft7LO`2_NEgyz=D6w*6S(7INbbjLRpx!zTz`AE zJ#lz2Q82=z{C5HZ*OmZ4X5(88>oJn2SG(m7{_jK5TW-${Q_gFdY)1#aiI(zjsy-I0 z>dx5sqYmc;_dp9V+9(B^+XNvE%KW~3Q@6jr9ZH`L3hhSIh#o}X(@Eee>M;~!bH4Hi z#<8u-jT%q(n+{v9hty>*EkxDoyJg!xkY|%4Q2hd3Ie?K};W4V0W!1_toebsoCvd;5 zIZd>k{nxZJS(GScH&-Kcb-pi2+%%tJf53gkR$e3jWf>+b8b5FF__;xbuQq5L+u`DB zx10@^N^oPM*&FFRR@*0w7#)*E6+xk^1!2YqT`ygQ1!_>?qk&aC9=qQxTxz444RokW zw*I_Wi<B;JSc{0SeLp1;-a4-+RQKsus%3DMt$TQSE$_dzKk>YM&NeKDg9n%_b@2N; z&%$8-)estcy_L(Jl$wqV*&<N(V+1wmGe#1rf0!K17hujWPSRv-3(q>f;c@hsK(4)= z36F#cyty=F&fBk>P?OwO%j>YCax23(H#1i&iZak+gd1xyHl4Ip^>(yKwi+$X8gZX~ z9QgK8F-rLP2E{pHg{|Aoac`FRo31d$#>Pe(a$Y0lYDDOD#i<GtLWa#nf>nKo0U%6b zMgvU&&lF|FGhf7Lt5xVA3szQQmP3qXJstmTjpdS$BTc*p1$uFVGqXG~OLF$R$xgby zGhZS<%X4so2b2t!nMfY7PQ~rcJs$AgPt0@5@tr`sK|AL){^7zIR7wS9$g^&-y91%G zgj<1La@kH9W)IS$D)*?<sR;g25WHaQw2G7%ovk>kmQ8IDrT=n^rY3uP7C-aNZH2)u z=MDE(xjlCZ8=NCyUta^+yW(2D6V3MH57~I3)z5`#4wW*8c=i+y$O0h+IeA%zwD)<? z3*N?!k9lPIJe}m%!4#{uN6+LCjd)3<ATFXKd|j?I?R?s3z}>CpRLGa_<tv@)dDtNK z>+?x%bvn%Cv%(*)yXU=!znhir=U*`s@bD#}S0J0Vm7DJR9pLxnnEPLja6D>0R%IA3 zr~LcJsLOS}H!I}6))l_46ia_A)Uqm8*<GU2C9ZqEVy67|TQ92&I|sOq(QL8H5{JKE zX@+nGGR*1m&*{-xh2<(61FPe~hlqvSr-rrfU5Un#f+7o?2B7)7K)s9Qz)-mUtmfqH z)F0~7nCMa_3Kp#u0VtSmLX|aqN9Gsul#`S5WV+n+UgkZHs_*HLX#I*>lCG_Jl8@u@ za&TY^&SzapM)p~M1UBGy7U--Q4oo1m7S(HIlgFewUT(Bc<-bgiLM@+tbFkQC8hO?{ zsj8>oZA5l5IQPcW+|qx8!fdK6=11!f9!4-fPF{Z3FCIFrjV~hMTB7YOMQAp`?rnT# z*i~456>j?mA%AE8GQd6pL*V~P4Q2pcFRdND&7lpV2T7betrh@n0yd~#RnXPxjOda_ zF5fsZMpa$?uwQoW8Fcd#hoO-mdD9)<HDR#wS-?Nt>er4nC3I{AFdF_6n*hC385ki) z1*J_en~~?AWYfU62Mu<WrXIZ_=m0j@g;GZg(h&ly$d9OaqRc?633Ys9rN{8<4)?fP zVR1wu_w4Ta@X+OSNHq4{WZ~HM#UlB<pk7fPA2OvMEo}4tJ<a#u&QAEr<LS*oY3mz3 zSSOSxm}ljkWz{kLbq>pSRL+8`J~zj`aFDyjc#4dLx_~w0CHRcsNbLPeVgfUvJZc=t zG;>vGO0)vm;+Yu8ld0prF;X<P&UDocw9fKP+4kmpYT}iCg4X~tGS%ZHC}&R+{Z00Q zL;j|tu0&2X;%VVZaw&<W>a~SUCN(Ek7v9s_JGt3a+B`D9&9bHguaAER(~NBG1aRWu z;GUl#RpuIsP@Y4Oo~APx%n68n{j~p{rStOL(|TTChd>NGtvIKHlBH(vSY=gJTYC!I zU!pj^_p)Z2a5u}Z7JtnD;pJs6Pxok91i)cKHF}N3PpcO2?-95-`{3^G?(~-XyX){k zOoA_sA2-#$FL6L;U`ygNy9{kda;yrBkDwlyrpomB1Wv->KGaw^|L{-4`nWk-;{=j9 zUY)NiDfYX5wG|&tszg#~efD2C<<1?McYy7t>{<KNZDw<L?%PE%Dzxf0!c<J#M@e*F zWZ(8g9kVFKWE`%JkY5KQGmrAgtoG4Z6&MSlGjB+6-n0DsYp#GG;ikAF7i-w9w_Gjw zF%^7LUApXj*erR4JcLUoT<X>D-ZM4nDBdOU!40+8z2mB;ONHw+ZQ0bteyum98=u&z zrMV1-B|lbiOGDR-Xf&+1x0VOqX=!LwtoAa%YdA{zVWc4`UK7~b&=s*)T9AMMM6|Yw z2K9GQJaI6s;llnzQ&tmvgq|p?<HbhjRDpWd9AER<_zJJ_52Nt2<_yQu93JJ_Yq4>p z+OsPYiV39R=R$lO1@Jg_EX-i_I$pPdLuOu4nd>Kfw#w3B!DBu8a4=moR>Z^b1`SG1 zfDJ^EXY00+w^Nm{E8u|7o0G=^N~-7EGiBUw>%JYje#^^y#O!-$Q;^||J%OyNE=`Xx zQ-^y7;%s|sR<O+zOSYCXI`zqW?^yTrZ>e!OYY#wFa+U)uAuroLH-6lVVGw>dYU^V) zPH(tJVN$V00aKFuue%8jLAWE(_d>i_lvvsZeT^=*S4X6ad3IjRU2^qA(@fi49IbLs z%oDU4Dlr^5_oaSQs3NrSS-h5Rs@ZH=@76@5<x7rZ$vUehWSF9^hbxcw=j#uP`x4n= zTdxnAC|)`5;nPW7<Q?7g!~-^?bQ~}_gnUE-^NJ{#6S%<px&%NSE3LWVXtWuNcKR26 zN_|hJjV5ddQw64L-cRkw=N*0%@8C2D5&TKO%@;?Y(NK^v;ZwtX6PgpX6xOcX2%v}b zxT(eSZl6CPwF$-%wO_bki25`QOCN*${az8QdE%c(aIgUStV;=FzYIlS19z*NXT{=v zsm-x&eiD3|+aCf;6Qml<mPay#ZN?QGuYO<zU+WpRan1!(-nEwUBz)2(du|TW`+G*e z@9@YQBLL?79Ip|p5$$gBvC592o*N}PhC7cz&DN85QA?p&z$?_?U?Y&t!N8nmNxUML z)CT(O+J(gCmPqBsxqY)kT~f9;o+mL*(wA@V<~DBBTIc=y9f6f0PEL?kq6is_uS2}; zaFuWg-%OZO&B{C7M4RA53y;%h;q{IpsKI9hME;E6f|yoY_GvT%Z^L(!Jwt;q8<w31 zrDQT&<+AQ-{X**nX&}k@o@MDpwPqdpBP;Ra_EQ4s$v^q&_SE5dG6k#dhC20T-x6e& zwV4Tcxe^@eL&bc{KY`}`oX^b2cP7G6MZ$~?e@_P@IF(MaXHn~%LQ*kOR%vJ^u)PQH zC!S^JL3MCIWWaay#4ixYyG>;N;kW869voR@LKzNkL-yE&x~#9|e4QO8lP_N}mVv?t zLI&BtpX5DhEWKV7fh*L6v4o5$Ush^>jAE)fV_lx7)Vbx84I5Tl4V`%(HY1}6WG)a* z_J)JtJ*gOW2~1S8WYpDy#GrzaO2JC4XN<5X@VB%g$=j?S%2Id?^E>o+GfbMj@RY8W z@^5lqCPjDO>2K`aUq^uZoY+p<xe6Q>SDV6eXge^3DlV4&t2*78N*(iq-9UL{|1+$0 z<h?}=YYV*!7|qa}ERM|#R_(;z(Q9ZyV!{w=3Q9qWtpNBewIH*V96yFkZA^r)^9q9R z$HwG)_$w+Z>Wc`!D<c79C%Tl^6SD37I`@4RjkNDPe$dvhEG+sMw?e^RH65=-R4TNr z`uqCyj}Dp+)eyNWQtEGQUvT|o@X^$650ZZ#(RN6fZSY!!NQ@Lj{igA#zHN2!AA^^g zm|wwcyX$7AdtGqivhnTJzb3M#JF8W*jdvqA_NGO+_X4Ip=Euvgfs~?*sqXuCadbCy zl^t?>sk#@tC4x4wZ=SwP+^<SE+k0YVu)15;R3_emDe8w@bZ=^FeA)a`$=GUrL&`L$ zlf0TvPqPXH%1p7{LihGq@yO21ii8v6kC@>8ci9Wx^L5o+_I2!yp({sZX03+mjwvQ> z(?ve_)y_WQ3-3B>*8S=U2vu11vLqkzC(-!<WSE9}kD+neNp!;oEk2huh7QgDO8HtY z0`NWSE-*d1IO+kI9iUBr>Z_#%aWTz#yYd>6+VTkp9<s?-r%KFQc#)`)k966)NNcJ8 zS59kq!o)y*M-kt(Ni}onuH<!P@`C@Cj)pe+h@ddErUU7s8lN7o%05LNd<_~TCnqnv zJ{jO+%icS(<|lHTwo8Nq;zR9na<B<(61>pF_W-R7FzRz~me%s=yZm=PJN*lr&2o>s z%S~@1*Qr;z@2AUdF>mbYn(LdN(TBL-k4UEZ0T!Q9ek2sUyPD4JlBolYW3w2ntSRb- z;9-wr!%<_Q*w+2Jc|Y(?hP55h>t8sUXDM{~aXA|r5FNnrU2pDeM%>P-S%}numTe_L zLTo}ji&CA(Q9EYn6NjZ6pS;6wac{_YhKp2}uT3AFh3}wh)DIA%WL4$z!6$|alsZo1 zUO(cyKqs}EtJ&`CrT4b&55gi53GjZ-RmcBaCRGUGhoj21=T_3K&Wg#D4Mqe?%unc? zi#K02?xK1J(`CjV)H1}56V_uS?b-X!v|yDHbwa*;{bwx!g3SsQmoG|M<jwc9tFTo9 z)Z6~COG;5&hSKP#>QY*Uy5HZNj%X`IQ63+xbw^esKH1%Ya4k_oNW7UG5QOV_yCTfG z+>FI``nGXJ=u4K<?IS~zbK;GiSnu7^dNuL&D52DrdTmzk^P63;*1Gv7eC-qSY!$<f zUrOy%eQyl@8hZ#FmS}K%@<~la5Zk~XVt77_$rx1A(du)xU9isAdUL|3@c|)eZ@5RX z6hHVAH1DXvsNoENmtx#u+H{N04#XPP3qoaI-PaXfr<IoMjVUompU1*)SSFBP0+vhD zf5<KloizswGMxK~>i3$n8phmD3w`%)=UWljAP~#_!n3<8C#_v+J@Q2yRTw0%)Fi-x zGROLbn23@HI*B5-21~Y0Fi2iF5gQm=Xi6r*`FJkm4rj(UB=<X*HJZVC(z7Ou3Jl2U zG1QXijzvi2AM(Ue(HLvxZ+n;Sq~{7g9l#ZYn#?hSVgfkE1%_n8@yr7+mAP(sgAhfd zK2Fnik@|>H;)*x4l1}`2niJS)LGK=s0Xdbgx#l-`CU#$Lyp8;^9E>h&*Pq0(`EPIb zbS@|e^7&Coj<4QcZz)g8=4*0gdXme@whuWD5wCo8ScT}TVbtT;%ON!#?kuH_b~qE* zO-5yQION=^QnoV{v5bWL!m$BA@Vbab0&Rk+M3k4&zp+1s71XltY6!ETW3FFv02Odl z+|8gwz;$O*W-|+Z$KG}B-g~G^H26z!DzU|#uIjRJY(li_yNsY!NG^lY?wr#J;~;pN zv6O#N)RtufSMOpqlp%&e!ey&Inbwd@M46NW&>&=Q`%20R)w|$)hE?^|0R!)g&cBI| zOOGXGhwxbovwyFi&pR-T<*6hJN!_f5N}oL;_nEtFMF1=0X?qjY^Juz{oI5nbW)DcA zz!||7j(?jx=VFWRb-{=<a^aayoe|cZEe=f{;Ygg^XACKPfr~uSN>q%g(iq9LZuEU? zL5WSaXW--aYX620j+vf+)Bg2D)3_@XsAckoW-g~&j$+&`NR=qDFXwV$TXK#gQ<%F( zsNK0g5Jm_pnhnJ~EnLyaBl9bKTUApfRO&d~pUkx^KNKk{d$~cv+fa9j$?r*+3EAd; zH{gS&o1{vl0cs-^Xd1Q_W0*n(D;l=uU}X}nJC9l~|E60r`|=H()m8Zyp?Ut|DvjH$ z+=_jAaOc~oM<!fy2=mCf7Fs5r@qS;>+rL=I<46<aUn6#%FP}tba{q7IR6U@2kIfr- zV5uOB3dvG%m&1Wh%w%Rlkb{yU<8F*qnxrr9jq37%OpWDgK|}=@-CGTIwG^M0md3W~ zzWWZN<FbdFC&|(~yZe#X6}jHD5|eqD176IqYrO77ss)vWjlt^eH4=_#?sYRHx_lF8 zT{HKl^=MdHl}q&=c#o093<YIgF&9?1ahm$%AN-NK&gR(>J<)WYcqv+YHIa4aVi!ry zGu(Yx=OGlB{M;bbm=npzmyo8sY$z8qHGCM{Gb<}V{@#o`BN!qd>#mk?kXBbxj_La1 z`0r4<tlvo=8(Zty_>0}+XuCVm8J3xWIsF2ZT>(HvfM9I?3g;y5*EOdT1IyL!?FC1~ zmyZ8-riy>J-u)|=>!tVJdsT5d!O+e*7c%}6ZfwkWZ=%gzCSPIuVvej>L(7VC|4W?F z)3Oig>~Q-}%r7+pW<=!g5X~=AxIO8@tMf;)WV4FA?T!f;^`t0SVfVm$bTL_W{V0Sl z%fg$Aj;_z8mR@NsqJBM5R0a67VveN!XKqju86_WE0XMgDX5Yg^<-gU^FZOSgAkSMb z@Ibu!M+EQmgmmws9?4JV?m6ZJe`ZdiGZFVb-^2Q3<lMKZ%r&?u`UDkOe>qmwDRQPr zCgmYn95HdW%g+cSlW@OT(EK>^{97$vP_j;ccEp~<`^mz1$MfCT<x(0{#3HQ)*-Q83 z9V-r-6ODwnrx+OgrGEb+B-ti-q|9O9%8Rg-%n?5$@_FF@3RhI}l=5$4I~c641&U3Z zmcZJ6gwJE^bPPaD-}Iaa<!9|k8<P8-Xa+oEeaYat5nudYoTC41oYtI-N9k$_^Ap7{ zxCrSBssaY%i_)E}u(uewGUN^$!8{~?1d`|uY|RbKljwN$TK#UX-}XdZ%08N#14r4N z5}3UN{lzy^W?6pD`hrjc)Rqu)RM9Tje0HGTEoYgBCn9{Z@_r)!We<(RPbay0`^69@ zU%n?Kx?}W7yWZ3ycNDM5lw~H6@Aa}?-I9zA9^oPM8K1B!+S_L_BRiC`?E`$Z*~YOC z^=jUYC2^JiJPEA*Fs+5|kPZimaRm(!EjZ7~8O@g2>wqNwindJQk846@S-x-noAp`x zDWG?8ZQ|ID&Z3!L&vpNfgek++WPT$-3C@ueef`9@{G~66>(8UouCW~QacuYJDds~Y zT^(njfU3?&*{iKwtfwKkm(;Y{AFW^L1-jdxrqKPa=`i<G(E*?im>Tj0-?PZBFA`2H zYyAuJxo!tc@5V1v4DG4L3N>^6FEaD7ir*b9^`AAH+D)7_>$<Ae2zAzz3Ry4rU<s1j z1Yb{ATKY;uF9h?*zWnRJ;ZwcYHNF2qyBw!txMWWKmy+|>^FU#|(P!DD7^tWO+Lp&7 zQ-JqM=i9{WNJ?;)H|@0NX6E!tn)R2)9OEXpK%(Eh?2zJjc7BagQMi5+zdu}=6if8j z48l~c3|5&+iT{{eklF_J2i6gFV0?UCZgM*;ja)dzr~&^Mjv(X&D{jI<@U$o^Ea@R! z!;EBr{PKv->BO*u@zoLr9(CT&+w*zre+P@+ka464fwZs^{0)Bp*&W@sch=LiC2q0n zqRjg(kL`LU7=l^o2JL-^_>o!?T??8`un;%5WK>PZ|7$qniSh(?=vUF7E1|1nG2Rw} z27|#_F@9Z{+M#$G!*jtJIVNEo^slO|hD=2GUD*jHG`=0KS}IgIm**c!lhWKSf*}_o z>suOZCiDjhkDh9{jw<#K4}XbWpj%gpp%q{5%;Gu6Im}STl#{@&I``L#Lp@mV3s^tL z?JJ56{OWsS8~HiXCuspS4V6t#yHuiIU47i-TK(H6@6a-BX+)$+*q2X2xz8DLq$^N* z)Mk}@2Ws9^<=T@sSiQg9cYvqkGWb7%P1aS&Jw7!1wZcpL<r)1&9;qYhl!@iFF2&7w z4V*b64`*3!u6!G0;s~Zy*fMoCr(T;j<63%^M@2^F>UMC>Y3cC3eN8^lRU53;A=rGL z_PVs=MOq~;2ns$vBA{G)tWUoc$3B#>N7HshFw<%~TP3Ptv6WfgautE)ZF@|xvd|Z3 z065H=4;wxQq2}%Zw4KJx+HG%bEiGcRO<6o)K@N^0W5>^j*Ty&kPAyT7WYn2_56f&l z^lhYC56yOxR}~O1$Zyb4QHOVVWGzH}K?(bbXb_v=X`kb6igippYGKq&H2viyDv0z? zWda+sNc1OwxqTkf#4~U<Ufn8!-?CGuTv~JbI*LZLY`%8dM6$|lfA03E$@PqB{9LBy zrv~}{<XQ7?*BHSKNigAil||~Vf!xf*KR$UBb@Au>^T?@<zQo>TU*uwB8^bh4`VCqb zGY+mMYSx|uK;7^GLMNOS_L}2~-|A03ZzlJm?h)+mIm<U+L+O9yTMnd9F#GZalNP^I zQEQY!(A_JsFK7?rLdXviO2DdV;i`}$kse0kdnr;%YMkh{N~&`_mpn4wxeD`6IKA)L z*fb-qEqD|)C-_uu8MuNr(4`)0_bEYifFmNY5zDTT^p;PvHx29c=F{r*M#eu}`nq2D zm`|4(hkkWr2qr0hM`3%dUdoa1={1==UihqlZfNc+y1YRMra!6=&a;w#-Y59OE@3jX z9AOs(4s0UlGm%1154~?wN2Fcbo)WMF>Ps~pB7==}uI9BDl@1%PBJH@;-n96I{F^#+ zd^^CHcPHg`b+&ywEU{ansl4nR6)O9|k1@mav7JlbTP|$N0U7A=0(4usCLf*@PsrFd z3l?;km{aCj5YP{)S0==nz~nDI8c!3l9+zEt;i!6>fodF4a;rfBz$uiSig^Wn>_|{4 zOHC!!&ClxO?faMCXYCkUGAuRzxwmZRrz<iSjo4f)O3<xudTZpnd&c_|Z+qKO3iUs2 zAX?e;*S~m_N9I@aF#)&a1M2?7|3{f#`1;!?lh43Jo3l@+XKW~5mw3!a1|h6*Ss1EA zypw<pOeuVKZu9QEDtWQ&z5VTzh|f+@LD~DM?^Bk_%P;nWUe#cyUDNl(+}ovWf5UE* z80+F}NTMoWg5gl=0D(jtNBqLzeI9PfsET%<BsxFqv#qgmmNY^NL&HHZEl-B#Pn%$> zapkYDB5a5bPzYumnbtu)b)x0j+lk@)#BNU5a<0Z^^L%giqu4l7q!!h0n;AK4{t)@+ zP<c5$koJ!Hw>zW6l|GRe0IJu|mKW5}Uct{NvrlBN<*vbDEImp=$01jxmT=jEuk!yQ zZY71-GL~6O{j>?Lwl(XwqSpb$ybk&O)!))CJrl3vzOg@?R!MxE8FbdnA|xp2Mc+)d zdU^hjhu0Hg?pv%`J92BV^A1N{X-k_02Q)&SOZOc&Ms8;1)k`~lQ-TlyHa6?_ro$FV z^NXX^Q>o<{QW52pR9z1m{Fhv+!uU@mSQ#)#Z^A>w9MVku>bi&3Wu71WJRNomo1$CF zQ%S6r`neV=eMU!nebC!+FMfh-ir02+mCnq~c!m%5nLj?jg&F(zGC?z-p>jAy7Q4So zh2q~@jDH-FuBX0nYN`1X&Bovokq>WE8?nC8I6*!1L=oPfMa!?c_LNO_cO3b}Yp2LH zuE|@uH-;{>ZTK)+rf_2+04~a$bSRLtof#0}`%Ph{XJ+lO1xTbnfO$m-ObF3)^PuF! zlL@Qp<l$CjgWe-b$hdS>o7Q6_^L@`}twr+5tWFrOc;ZA2MO<VE!ePdR;5G+ks}+|0 z8`bp}RSJuT0THs>neIzeGv%hT`G<DeeP5*S|FSG@<LI4bU4GLz-{?RpP9Wzd#QRlT z7~5u{hx&_WdW{9zRSRHq#^l2^OUON<_T%PorsJ&Tr=fswL}VGyIS!v*<4U-Bpeo;< z$4S7N1!Kaf2k*_oB?*Bcx!>F+*BAKRCB0)E)vIFNQrQ*v-L2+*RzVD$d*b{<RxgR1 zl3f-{_6Wk2y`XiyJTgB>KwEco2`)_%s`oAAx-)rPC~`$2_P4|=^0q^=SE!U99fZvh z!^);UO&d2D(@WZtq-Cdx6Cax(dv_embI^K!XU;z14H`!Z?u~L9be%O1;B2&}M|=wa ziPq`emdLB5X+i>m0IP6n{>sb=TAN_W0%cLj32choy(3I@naho&Po{pJEO8Y>vIuds zpO&GEF;j9oJRcl(pMel|=W~~(FP0-~nxC+#Wq7EdI%yrl>Z@IxbHiuN#St6HPlB~d zP{Upt%N~CyW2qyv54g-Bof}!Jo}fscPZk1iJ5Y!ue@Q3srmIPrZ*Ww~zQI<{`xhEP zK3P5-^>oEMMEmojz7RF29~azPo?1q0F>CuWktfqQ!06Vg;uI-+dp4o;)xu$OS+8zA z5l1rSnEm(ZG?_w`t89?v!9}Ks*WMQPA9*4%O3?5d4_TV&h{RSG)r4IQTlRMOXxis^ zeD@oP>W_{5F8`Qj{|4L_>Sp+U3Z<=&V|&y19U&rGmJ8(ztYw8R$3!#VyU~R8p9<zp zOP%-7IMC|X+b?P#H@W(rY}@A@8tXnfb%(v}>Fep}>kb*#p(pjPU~bdLt5zxx!8+0V z^ho@FVhe>jd$ZNn_^M!%xH=!KmQ|m@PK>p|9`Uqz@FbLUJ?wpzeI*wE9Ic*Cu2BB+ zV@cUhniP*#d(@?lyI!$RNJ8EGKC_hMkSQ-;6ZW6AL}tRNa&25!>%YU3s1#NzpfJL) z?m0M?Feo;A&yfvh0y}rlvHgeZu2tKJ&5of%b1mL}MK?E0S$twl7SV{d#RB`v$jR{; z9q8#3?P>pcVdUsJ11qbuo6lEE6a3?oci1e##N;n!pm1$Oc7oe+br*it?D@H6`g@C} z6{-JwrnXsp^FSMAE+4Lb{N;(qD(~55L>E!f1!XQN&zTByhEo0N5Dp*I3=$*~Q=3j3 z7T#aeaUKn2+-GxQdnqZ44%DG~r6T3j(CF=tcbA*7^0sjI8+$U%K(XX)?@wg?5-HpN zTEMzaMT6|%2v{xAk*%)*OXNx_Z=WEkO|YHL29tGL2Z8L3qm=xYR)zUrwRYx#q`*7! zY#8Aa(wAU>RmtJX1fSk;?`9)+qviTw7m+$c6ixj^0<Cpku%Z1qt8X;=J&60}V_M6n z@~r6Upila@MNoFI71WWu!*-d$Cb(CgaO;D$!Rq+_d_6p3fsKSnqJfxpo?PVD%M8&{ z{+AFU^)W`kvFLkbV5Dr~)lAjVM=IA$?}NsFUp)V&G40RSTVI)2(bPozW=cBLOxpI% z-1a6~vyPUGdBx5l6ah<O1U~#9M4g3KRNou!&kO?$JxB{kev$6Zp}W%nhVBsQ92)6T zQbK8wkdlxY0i{bo>F$=0X71v5*IoAyIBV^-_q%pH&+~qc=mfrHv{nR3@xG^v)CB%k z_46j@S(%G@p@X#)xiX@HJgFDIIcvnUo+x1ee5~ebF~pC2SI|`c=>Qk?h^miV_l??1 zZ#TxWBW;!8{fF$s;Mq4GH^eUd$%zKn`W4X+LE>k(|D3KDv5Ln><Kf;c=x2}aK~1S9 zm+q64U+KHx&+|hx<@NQ)V`@?NfnB9p7S|kFkm%*y2qe)u_TUTO?3GAT^~D&a$EVzr z-O+`1fipM{!LGRVA5@n60Y4~A6P2zPGcMcRgl*b2pD36uc|~1RzF%ry)DI;OhcTg_ zk*PXF5y(c=eV0#ieP&7GF82$6H0X3#?CE^)=`exx(zLb0d5sLW)KFs=xdC%Lvo=tq z-Iv#yRp_RVN=-?BDBh`W7mGn|6J^??ie`mA9upD!1_7P{X~A7*-`33zZXe=&p5owa z0%ruTc=vk~arHp^*)N^<zxklF-flBrHa<S20Z-&GSEJ{bKSePBjz-V~{^@Hay%H#} zp0N|uy0>+>#L~WM=>I18YvB2=@!k^V{-X4~l;4xbR8+mTiYDVGnVTWtoghro**9LE z2^ZrfcA<Er2ox>H$W$5gGPbcROy&6s+odb*+js8{&6{0k_A1^AhTPv?%?He_GQjKn z^$6f@aHSH8=Gxfsd8VF|j+d9;h`k@y&hOe{`U;njPTbST%gYOwHd`_^)>`dfZPy3} z^6TQTFTy86>RxU8FBWZaAq7a8(HrXN`=evL&OZN^#wohiBZvJBr8E9R2y`S@#6|iR zOSVP$GyfowAq;V4<<h^o!AM&1YGrF=sqO5WuFU!5D;CvcI^%Mk_xH=Al607sgq<LQ zjb8dEZkf@10-lBj5ONSLY0(>)cW}3V35CwPhCRbIcY5Rfg?7KgC_J*CDNkgs9XuTj zpIg=7DW&BC_~0Mn)hv6Iyo^d%<P#Uae(RnmJFx$6GBaNW9W-e(gkG)`59f)YApdt4 zvuoX`JAF_Os5ArcdakHx+ow7EGHI0Iq~edjag=dyYMH1+H8Xo9pQ>khbKPO#i@D97 z@osKZW<1qhj3}GlWI*SG+C9fq(Fg3wg(j&<pA=~syUpd^>OZ6#ic4&IlbxtvQqhIo z{_RF=mD_i5&PJYn)2-!5r$X%Uu_Fai2vAAiTqv9e5}AvjMsENII26pmA>c*u3x8=& zRDJh(wh8q;XfEvbZ!gDmNl2ab5B!*IeOR3pB`b+^1(8`o_v0_1e8unEQF8vL7Yx_t z6=CJ~(!R5ePGRB?;j7ZJGG8JQEMpmxm0LmVouFQY1ys0Q;5Wt3RRrfj%5YLWh!(7f z5&02&fLIRNfaWiuXyy+=u5WGe-EV(P`AI?}xK8VtxRCk+#_#0BKe912B;199tZjBK zW{8r_#XY<0qF3mZH;m9Qre6xZIS6_<Ci3(ed)v%0^WRDZUFADF>N@nkq>k&pzjdV@ z7)W7;DMS55sb;cWWT*GjC2j^we4bY~M%km;x?V0EXWJx8oW{_)J0`KZ=5=20a%~<z zy;!l$94+TS&R~6J611cBfhZ2`s|E;7_BgcF&3PctzL_$H93iH!Xrd7mpXH-FV@)Xs zgiDTiUe8^9w${zjhmeDwG9qPExo@#z7&Df;``D)`-{QKltdsO9KVNA{Gr81u#P*Fq zc}5d?eJ*`w9j#4W2^_!h`1)AbG4*6b>L~xs*ZZ_LZ{7@t-3%n_N{n4#Y~1Rl6Mo2X z=^otrp2d3=L&d2<?m5d0dStoC_H2`{+8=Dq9I4oOc^A*_E|zrZr2UVF-b?vWBKP!M za*TnBO_xW`M94X=Q%lUXDIa0-gAV%bQ@?|nZV-X-^-uH&>XCC;(`hXE^>(0{&zZBR zJHdxfR3B<Z=uE{WC*Nemt}yUJjB(vc_V@RX(%S973SYN^E(wgyBJqJKI#}@|VBRXk zZ^6fOPwJ@SwNeI~_DFc!QXAsW(aQA2GM};_fmKLuXG<<ipL%%!o5jWcp832BqUJB} zYC)kuy$CDi<5}?w{q8#vG3VPh!aslQmPa4mb{E>+;$qt0$So9-T;^TSEN=PhOfe9v z0$6XHqHzUX>kQM+V!DgmAPw;T-=AM#ZuT2Sbpj7tx3=Fh#MjApayWx4ej=dF0J?JM zf8mANj*|g9^EU6+M|OcUzK#@b9GqG8dgr=P1E?sDJK=(*s(U;Mp+)7dU<T;~zNfQB zB~G7G(rbK<8=eewh$>zGj#01w1uNWJtBCgeJX<$WW_8}1qQM0Gc`bUP60Z>Xf&*Cg zczL;FVgPY^EvKLvu>Z53tn`B)<=cMWlJv!-(I9>{zwb2M1chM~l>RJ_uCP2bh*ba^ zrYAOD;#y!5wD1^re<uhek68Lus=4%a<K2tJtCK-Knh#W37=Qw(x{`z#0_^JQ>Te2V zL$0053j%l9{o|THvFS2NeTMRl4AQ<lS?9z4!j(rL_hh*E<2oJWYqD4ImTvX0m)m>j z?^Slr)s0=F$!b5nv{Vusbra;JeXHwy2?kqZys|y>?U~d>X@7NHcL_dwXBbdD$dz@D zz43(yrKQ0n{&jAd;`#mytbC!eu5p88OD(H&Asbuoa`M)Cy9m}7U(@7gR;FHW4$;Ut zjup*dV`CHE5y!BZVI!TBzayXk;T~6PTlrp{Rkup9mIuoD<k7DQS*7bm0Zjti6`hC5 zyY!SBlF?sf7#(S4^F2EdS}oBWrk23toGfUvF4ecL7Dgw_W+rsh*6Fbq{YKzLMR-_s zJ&%$k=kj7CUw^A1A>&@bp~n+md#tkPL$@T}CK8vSnxdX|dZ5L{%`SDjk;!5BvzxVp zn$GYgk!^OzL*2H9QvxqpR1zJpmm^6mCO#-9Bp|kQtJoNrqz)Xkl1Z$4G2<#FN2Lc- z3LFx)2=NX1X_{6C<uehg+qJr}LI`fv#IDs!FEOe<`t9`XPVOBHUleY5ykSAtu4&6; z-6yuGz_=Wm@EDwYrIzY`3;MqEN8$J*-#{zRBRg(kaIbuV9qo5+y{N{nqZE3nf0&;s z3@Dmg?14OeY^1ZVFC#YcOD*dDdUf$zkY&o*H=?Sm+tl~X1pg*bOd&^_pYTgl-vl3f zu`6?c=dlBPJL|IzBprTgE?w7qxpzZ$i0MOZ_7C4HNx-1L$xZsg{Jz?X3R@CfywwoZ z!gWtHqK-Q(Mr!LkidxJ|HSrhzg+F2XLsTL9yE(hqt;SMk$P$)E_!y)D&>PkvE&=p% zGctr^WMsa%i4@YOPw-##muUYG^bJUJwa>92Cc0S+PeqVUk*s_eUEq-vBbB;d+v^#W zsHpLk{|MOuUW7)3&=%GC^qPoMjV!!iK5~2AFE$2qRn_P66OX{hvf9filAXSDj}um& zS;5t}b@V?~YRPccD|GTdou8i<p`oFP^nAvsKw|_{u-$_w0NBM9j%597kwW^j30YM- z3|8Ig=p6CFQ%kTpBqBMWk73#5s5=8HMaz3lC6<(>SvS!lVEDYRzVav5MOPTI3qAKj zWBt^ecShR^IZH-?Qx$Fz^}fpwTXRi4X?0_qmqW15o$>c98i5>M^IDH?edI>~F*Lyk z!X3>JW63A&)wb7*miQa=(^rGr^uy7Xes|*&dj<4FH%*G>+?VW`UKGi^JDe*yzFzcE zycS>{yp)9+@+<#x%|-a(RjuzkHBw=0cLOtRtESUnUAd7t6K02lk+i|*%%45WZChf7 zbYeaxa8Upe^Mz+|p_KKvVX9hT#0nqh+o|7oL?i}6J&tA$%8MBXa+22U$l2=dn^ymO zwp5MuR*->W{b8;oOnD0x2qua^OR2>-<-X<nHV)xb!-eeCEka&f(-^$hjg*@VOFKXF zT_^rZD*+MA=}_Qsgign~Pi6y)Xm}{~PLQd~^<ojxa^1r8$2M1@qdS+nZ4#FPMxK@F z67pckNu6FWVej`a5B7I_RvKL4LZ6){BT|C;3YN#qniP$Os7ok1IklXkry#H|Pf}`d zha*)_u{@7&f?WiBIUMt92*xMAA0ukQOQd8F4ITB`>4ZN=y$KQul}MIR9(Wl~%ooMK zhj91tzNONmIQ^#0+iyh<Y7rK7cL`l0yc<k|9iK6Y=_sN`-r~W4CrA0*Pp3?pX44o? z&yV6OYWwIn+lZhWHrI<BdRJL({50cE>QtC+MhdI2)#NCFAv1p*Vcqoh*{1_L=c~$p z?v5{Pbfffi4wJ#c^cfpJ&Utgbbn5xC)W+b0SB_{=630XDUnBnQ;9^p&3L3kroK9(H zEIkk(tLa{`0hbq6Cmin_-ccC^a=%`ljoYtXs9~r|0(@`l>l6zYS@jRyvRJXWPYh&V z(z1UdS2Ua1do)9U$>284S?@ZJdUc^Cq96A!bNT6=-rxdLJarZIr#F|eVC_dyCf9r= zOi!^7YSq-(ePFd_RD~I@A`VXWiL<dRezso@%qq;3Mxa+>)NJpEd7=^~qYV$fy*FIn zG<g%DHd~ZVrUi)d8j}78bf7*eJ-klR7aor?OtuJ2iuE$nM4mB}i)m-d`KhJf*Qw4b z<P$v0cOc5wsPvhI;(5Et=eWk;2W!gWpCiWkx;(w*VeH-d#2~b}dODTY_||AQsRNb< z*6o{q5y~z&Vd#f>B<t#HH*!BGLb+J`?0~r<UU>p>*=DU8CO18TPQ1<rb(SvH7kqG- ze}GT%z7;hS6#=b7d-r+d{Xrk}Yj0g&eP4EeV;2=utxBC5HWI-UbatZ>1=R7E{~E!_ zv7S|;YX&|a$_2Kc&8fiw7i_9{GOM{TsBdpW@h-{JSDi0XutP~tcKLpo6a<`S*}okm zE}7y%3caLh(0FzG>ebq+wxoBl)Y-*AL)Cp2iCk(2Do7YN*n)7m*uIFE6XvThp7lgz zZ6P|oO~Gf3_(yz^G#*!d)#j23#bA$5bh;%Hr-Bjo`yM*o%{2WR`EJ*h74|qmNnxR~ z3ZK6cfFa<Y0;E1+Bi*K-@rN9Jf|_#tI{P-Y{|hRflt7y-I=%CH1@$Odb!B?oOU5#u z?&|d7?V#9=#(KMq-It~!BYghDc><Z@v%_Btg;%=NZ@#95-n}6iqhw{qGq_tf+j%Bs za?Q-wg(qTDs;W|55`$$_*FyLlDNxb!R~GV5@HaydV-fik6n?24WwIO7+<#L3PaULP z`56rNkBOZE!;e}e1Q}=s=4Xn#JKFJdFO*gci<w8Gp5GAveA1##*lLOrBRb@cY93xN z=FBUe^^0wOReoT;&*D}cfDPWCRI5K`smL-=yjJ)qSQi?R50?LgB@8Jp%TW^wmQ#2g zX3eH!{n+Vi%;P#W|0l83iz{TQuU>~@5|OX=At1)%zzpPfkF6x%BIKJY(t~|ko0_7- zTF}kE=wsecu#=ipjHmoHwz`|__XrHgYYBt&ESGl9_-YnN6?`#E{ryu$mXB^Y7hAwg znjzCfL%i*EuC=;?ThvHjv8U{pyZ7dD#E&Dsrkah9L;!+CmK_~PI<PM9srUiThslJ$ z%M%3P7@+s@V%Gcoytj!DrYn?p-?oD+Z^b9DO&RK0fF8$x^+Web9(N?E;S>Dl1TXGm z&CZro%qA4p+b|-Zd3woH9G|>gy!bislQ~=XD**-%JhtY^xR3PglplVy-WBuea5wJz zJ_)5&+b17p1ESu+?b2w$kdU-FeS=}}cO{w2i{#BePtCR~0T{RKd8aQkGRc=tVOFI{ zQ^_lhypn$1=%d8+)jd_h{bUkvPGtT+>_u~Ys-7_y^uZ2U?HE>nIe9Y4U{S7ROqX1k zc6?gFF%5P6P&}2q6l_SaKk;eUUX)QzaxT#YH*ac^+H&cvOi)am*Q4METTS-oHG~#+ zynmfzamKJ<7;(6O5u&@g_jvtAOEIR6hx<zFTsD7=?%Otl6CE8RVJ4&ecj=O`%~x`_ zg1iwX$WrSYYyra8Fkw*nWPfUq)gynmCTFbVN$u;4ZACaXa(mCvZM+zY_%oV)zoND- zL|otfos(aIW{qs$)>4J7FK5ntRdUQy={zI$-@r;3#+Vw`uV4|`Ur}@whHenMg=7a_ zt>WOtv5Mc8-rqLyu2MYp(S3WW*L>Bi9Povx_#J2URb+()EglrIVjLf3&y|ua51jhn zB~k}G$&fnj#f^kH^G;X|hCW#-CMY_rMb0jLn={=K#4MNb1K-~eM=iPYq<QEIHWS^7 zx<^fHic}EyX@rNDX%-W0n|~^s?_jr-MSd*G17ot`4WBOzA;AjheiOAqU?PDT0&?%I z=P$&eIB6-j#j*Q48fzaW?RwKYI+FHDzi}N`ys7o|x@Svmg32-ue*L;ubfF8Wz^l>Q zU<r4VWa*ACYT4IfW0T~h_!tQR?Sk+yxZnxRSAsz7Yo<UsWi%LK1k@FgWkv%m$Y?oY zJO>p&&9s~_HPzW!H1X@r@j|HX{o0o8pwFq7-PIFatpEfA8A9*Fx^EA4FR|@v@OpXh zjwF}nlW4}e*!PbRZM1B$x-e566e$H5Ojxrxf)DW?`0{}^^9_;-`2$6~dbM<|m@7TQ zA+bDjYmdlU3erhVyk#>rISj`~w@VS3VV$W=DWD@qC}UXu9}D1y*Zwk+aSZEuc32TN z{{#mlT_>i0CC^ZB9ZX*MiU1UzB?RuTS=1!uSAb&!EML!TKas*k>kiq81urtad;D>K zFJgEUdT<nm!)CH1zCcUWeO6j*S^Xj5!*PvY*KVYD?gEna)CgF||15`OLk?BX)VK|4 zKEYsW{^u4}N)KJt5w$7AFmQfq{b@V7Q}EWAb{6kW_^I21ff3Um9?s1B>GRQ;*(I5a zy%%If$pp)8(@(|UG2%xm%+8#iL}9msl{1BY`f9zy>}9ag^f45%g~ORXUEn<hOTLXJ z3khk)KoQC{;rhY4e~bdkO`oF`ZmF9w_#Nn=k&*Pjg9P*a&cfV7m_z()dVWgwl3^uZ zlq^5Nd@O&LtBDyt%sgBzUH7I`lb}SvgozPewCmOtgTx1{A}tv9#lYEr$Wr@{3e7GH zRn+wke}Ux_>R!_Uw3wu&js6k33QFn`s){_^2>EZSQ&7f7kvlPk&y5(LhNiJFut*E( zP0}V{^6z)NzzR6eqEysL<BT4f-X;rPOD>sZRmQ)^;lt#;=#u9Gj1q%nJFC?00jZOh zw#SB2VE~+Hi-*0@D&_^qVVD3xNgX|XZw`v5bd0XQp!vDjTES7I02h~fR(L@25JrzI zu%LYcsnh$T=vA1aqmz}eaz+KU-d&tnUcW%6Tp0lEsGvU#akP6fT`7QltJha7Ei>W< zAXws_iqQ=a(&!{Om=K}Qn52W<TbK|B!{OKf1AIcWD-NK<Z0dav_4O*_SK@;8{HhD7 z-^17w_}&Gx7%ebB%?{ddZ^+B?o8mUb8D^2~?<h26>1A$NO(^q!u^786#yceuACqZ) zlU{!?v%UJx!(~~3Ag+ur!T7qEnla!~bBNjRisZ_R%k{2xXs)(0=q`Hleow%4poqx- za4VSR*tmvU{z*7|Ois__T2}l+o1H3VBOYE?a-j#QQbJ>%H4dn5<Hf@P7~1`F$Tx96 zdla$S*&5$)w@#g$Z-mFk>%5@fzs*soRF#qQeHSD9{FGVn-KK3nM*oxy2>f7}p16a< zguF0iVg%xLc_NaK7$K)RiOCx-@N|g}Jn1rL`l^K({(On5_(aalJ-OPNO>W^_$}iaJ z-ymm2s@2lw0KF!DsW`wEE<m5YPD%mJmnvhf-rxk3%wi>y&AIQ5Zo=lDnr{ajkO*k+ zCncP2P}(MP*^<&=+_y-$0zdOW5iJ(sul}Z#Vtesw$-j6uJFXiDQ$R<;!1KBPO+hZ- zlvzB{f_UQ-vb6<zU|{IvY8twGS$w#Bp<CQvDH5q~rtjo8bPe8y{YQN5v0;YR5)X>h zydE8Xi#>Di01JjFpk;cy1oYHN>!?8#0QVuCYD3Hql!Z!laNPT_Ai1e~x$g13$<}}q z37Z?^jiYTVpUIy=A0Rrhuw!>%7f*UY;#tiRArm^Rv`c^HHy;Ja@*xgrx_;KS%mg$! zJ=aJa5+4uqz&xuvCAnpOVRE3%CT@Nk`Nv`0%V8+)+0};N`W)TW*0nY2#X0x`7S2bN zXnatpVx<`Lq5TH}GWu4^07d*wQ9W<^6IedjU)_C(`>l2OKdR8TEbXUt*b`}oxaq|0 z<Tj;{lhp&c^?ocaX*L!HCd6O#o8Iz)%3;0t1`{|paUU!wxgp-q2`Rq>TE2#CXT_3U z(LMTfnYVIe?0;=3#MdJDsW92=wA1sN;>i}eH%<2PcOk)#LLl5IicUw0Nn7%d>TiuO z_w_T`@qf5<p!bilh$|Pz93Y&W>+ZHjr(!J_A(w>pva5iKWn3Lsx|K7+a`Uf*4F1PL zm@-=`us8XSzg=IzG@bmGw;U{ba->d?x>^}H$1eIz=o)ulL9zQCv-gSl%`$aR1ZhW! zcDnQo$4u>wY<-#9p{i_H-y`3E>(^<$oR(O|yUr|W`V*OE{UxE)Jzh<Dr-Qa~tK?kl zFwd!aea}~~_t0TuRJEVE(+$p6lpM<+h3wO^)m_U?5{om?KodB$jeJp9peeSw2qZqx zd=`~)g?!%V5(%MMl6i|a8_dQ<6;`t)o;#J8p_#|l_n-D^so`VFF!J>8828oZaHi#~ z4#AxICZ$DX`!=3uQ029Y&}IDqzdJETC}KR!#)pYql;Y(1sBm~*ysmfPH-8#jrd5;m z4|O_f=atHV`m8KPU^wfAh469mj})m@v3jAZ4Rg{E$3H?Y2?ujmHoa!FOo?F%;?qey zkN#VO9;{g#kYFYiUwsS}f1={knza&se-^LMqT1$+6-*8L{uT0T=Y>oBf5gx8)nO(n zWABY+bJ%MBlh`=f{SplIm(_S=EUT=m2dPp)tJ;}NiTxHL59cIBuQCvbT%rQYY)toW z^lY7%#^s(jf9zTfGsu8k*~7~c-SfPAeqcPQ^<meVH>_8ilim`=q;$QLLARd#(OVwW zWwk7V%WUE})|b~>Ym!f`f*GatZhkuuo-1HTk3)W+V`c(z%UJ;WZ5eZebpu{6*<X7v z%)NReq&doy7Tyh$`%9pVKLp3Ks?guTTqVnU`?)9O#0f5biF+~Ns`2wiGAvzgV0-at z;NNIe!h*{SQaR5B1+Z^e)Gr5+7UfU?L;-kHN8y6@gLT~Av8Q<VtZuS|d}%jQ`Tp+t zz|dz(p8Jrx)3659suFB8`dxVRsv9@?x5qBfoRn@>@hq!Ny4Y)w?)S5Gt|k??gsh;F z)+Pie<TCz)#n%5jF7{}_(|<j;x*;5IWM|=2o0$U?ai@IN`V229!|Duhr9uz)sc-1n zHDY1#-iF-D>A+og0lm8GFov@qcl<KnHdQ68oKfy}>j`r#V`1;ki2px5;yMLj(`LK5 za<~w7+OhFL@hDRWI$Ct@s}7jVd7EAMssC$tURi-30uEhrYm04qbj0uZ?}!8~XkwPn z`>4eoYLBp^etz)OOHt_~uTYQZnoJuBsm2FJ4sMPc=`!Y<JU!d<Io%l8Ya10}5MAcI z^Y@}j7Esa8dacJP$H&B!3uDsyxswq0Dr_ia&*numOb-%%7JuYrM`5UQ13$yP^h+UE zFNRl#>|sR&zNv*y3rAni;(X&ZfT3@vo83F4iF)NMcYgneeKKr6ZB80*M<E{_6mS}a zthy(0W9Wv~en1vW{ZK5%J37i%_S?+tr+{hYjDDxuO(T7pLYEh>8PdL(<*+OA(C;IO zqYw#fHkolF_`G$~W@T~o<l1Y@*jQNdd=lhfiSl{8E_59WsFsWo7uZvQPW$4&i%MZQ zPe7N!w~Y(`iE;BD2jHPT`+PXFaV*034?kk~wq`}D2U@PH+h)K@2H2WN4<2o3*(#hy zZ|-xX$+0lBzlE%nF}a={ctY~pn6rY}UXSmp2u$ncEipW=bW&56A#P$1W*YF}^Nz%- z%moLB>(>4Sg)fhq$?}(GDbaxS?!-RP^MxI(=k12kx>k2nlE)4HzTGiP%wuVh6THQF zZ-C%)e_JyS$m7nY;Lf8e;OuqR3cY3BGYvwEWJ&nP*s|Y#!ax)NA!uS^n6x5X|KHiG zeuF=_QzF6l>nZI0Z2^ULI$^k7$bLyOw^M-+f6-FLS2>l~&h4*^DBy1q(QA<XRgQ{e zB)TmD{E5WdbWUk!F;yQV`?5NV9gG9501&{tf?X_db`LLdZFVC`p!f<tTEmr|l18<p z(vArq)^9incND)BvY#S?nR&cStjd&yrxAulIHYK%iC+&~dSNjXRAz~jfhd6dnWJJS z5w_aNOzMCE)mjY07frjNQS5)L*AkDMv&&CmI8WkRb04SO9lrnXNtG=h_!!rp>KWKl z`8~encBbSjFJoFC=oz-ux3X(!1)vvFeWqmyDSC|h9P*`(xQ#<#5p!LL53?bnh&XpK zCz^Sw$9whieWX^j9mN+WhJeh^y{vt3rM?3Uga^$hyNOFpP?#f`vwK9!WKN&vnmal~ zI-_MLxei4vxD)lF#_Jre6>Ll?`nwJqZ&cA5u`P~47CF^igrQC?8?AO<Q2dt>F?=B= z8zQ!}U_#^n&a&dZ&r&8t$}K46iKRF)H40G8aC$_MB=GHka@nR*<$R1{(T+64qRlM8 zhK8%_yAyI>NFBRu#AH*BY|riJoGIsM4ZO4o`bc+BV_;*!t<>vf>~g08!x8seuNpSe zsH8bj@H-b~tuG#T{yPbJV^1ou$Avje#HGD72km$$2adiB*dEqAdKTB%W>@_eEvkaN z^_%n~DnqvBnV&G<njOOPQ5*}C%<^p230cNL2%Gp4SuwYY0tQM*gw%`ZQuXVxIu>No zF`o9S9e>qo&Lffg7WAQ|K_W?7-HlvPxQDw}f8pGJc-?1_^1=dI3+s8>64bXwdj;D+ zW6btFobtH4U$APd^>lyU7WgG&Xsc(#4(L%kgql=JH?)~8s=gRx)}EH2V|P5s{_o05 zC(_@^Bb$qv$f_{KTjw1YYJ})bO8?6AACxj5SU$Jv0~Np9vngl~yn4N4Lvgb3mVV|w zTc76_W!OnO{y83-O$!xwZd6dM!+4IGze|1iR=iKZ9P5=8T)UOwoPij1$&g5C*GZ;t zXeBwo5jM?d{`~h(M7(zcFq?@*)GNczpk=1DW1uv4W^INz=Fuvv-nk-8hO=t@M@n4Z zJ>6?7Q}-+)e?##n$~c=9(?&RRuRyBDkm&w>|Gw`ect+*i2kFFO#FE0Bf{cSU(+)fQ z=&hGAuzRe*GV$(!;62gn?=5#iC43_4X}l2lmn$eK$iqWO7p5fCpFN_k@cp?uDU|i$ zKK4laTUL+t90n0<Td36%_8qKR&QZwQ3<~Pdp0nzG5}x@(b`vS#%H>E&Q_pDW>!6Cf zkfRLay-2b7yH&Gf=?qy}iOl#_;#ZP2h|Ny1-Fu@y#Mv9`NLn^_*!%Kv751^8+RiyH zV-Xk)LTszbk)k1fl5CZoMstsU4K4h4B1?9!l)ZrQ8-`#C5#?fna0P%0vm&?Aza`8w zZ36o1m(<I^2)s;+#>iIOV<|V)VTbPZ2v?4#iZ7GaN6q;13@L@ZusQ7g{^pvG-k1PZ zAL7BW#tE3s3Z(U!aPQvE|M@;Yk#iq<!N-#+7!!9@#?wr|+i1mEMQL#sQsBCRf5_s- z&Yg9N8q9F=j7xyF%jM2C+UF-q{cOo4QH`v`76y&dWpQe8(T_twe;K$4=JiR+4#bH{ z8;uDN@wo+I!Vu;=AIax)XYG2-$o?=!*QPtt8xIXb(eA$<4pBX~rY*1h8}4yqe`ajj z4*KseYR`k?Q%x_Yl79Tc{WH=v8fSL9@YSf#ao-@M@=A~1tQLK_I|ExA^vkJ|Ou;*p zfDxY}HUs_t>v~D_CgZ$Nl2x7PHFn-g#+i3HV-Xl>7%16yPz^fRUx0=SmAXa+$lMbQ zlv|%N_&~IpZQl<1EUjx?JexT=2=zZUm4CgmvE*iwJkQUk+w5Rdnvf|*ey2)tH>EwS zDEA4u{->6d^l3}ucj^Rh9@0i&;x|=)a7mkJY4{lU%oT>MlU7Fb=QJ_`UZTY(@6@p< z42L4#OFqf?#o;sLhvBn{ZFfTbczb^v9p^z!S#9Z?HPCTq9ON02@Y;l#COIfAp`?ZE zdBW*3W<_)LDOud8qAlF*=P%VS=(xXn_;1HPqOx5;)TExKQrR=i=1{>MZy7O1sM0TT zGGW-+&roJ$|F$SO@5;KZLeL5)=E681Lc}K=5XZB%s=Y?s%;{xA{l?=zI&$3~hr-i6 z27L?q?5fP)ZkZbap_Z>vj~NUl8SGPi$5R=;H?9PRqDkX=D%qA9w~6lHKs!b>JCV1{ z?RTn0c+0I$MIVdGu-mlk)AvsZcFJC>IF@DT>=Xy+=-rTXA!s1WPv^mPGZ_X<(uv1R zpX+7}&s?7}!mvHk$=doiMNRsq)cy`+ma_FMU<h35Zp7M$)=2~1D_}@TSxO=GHN*y7 zwuD|gedQ%-W&a0aR|3kDXD>n~z%S>x^_}Yn>{;^^h<g;|VzEIKKo>YDQ<^+Omy>PH zYIv9)#in@I%95Tx|Dj|sVv10QmBVaILB2m&$MFfp{ALl+Bv`r~N2e}k5+*{yTheV; zlBYm8_qiOG5<~%j6UrM7WBRwMfByX?IO9sa(Y=4Q>U^p``fORn#Ko$Q)QFQ9Z{s>u zosTu~>I4QA!bI}lW{{AA{wSXQ9Lm#(N7h2Khvz$Gm1`3;AkOfEun?}(9yuZ3q6%%{ zpnFw24~B30c4oI?6fr8`X(Q;AVdH*qeQ3kU20<T<m4=MIaHXmY5uWf5?NJO7hyn=h zR*=hKMDke1KL6|W#cG>j>wxOFiqkv_FLd0S*LbFM<3z}X0+Qo+VzJrnF45<D<rm}# zD*KpuX5U?%=G{)S8+kP>XMeuyr~t=CI_?hZHJ5%+;Ef;>?DvF(wALzxCN@`x756Os zc93Vx|8a{g&t~%c<^Jy{%4xf_+E%31{V=eWlio-F{<yOaXj#(lQ>+-|${Bs#)@~9r zUATDltzt;u^}nMeUXBztTKA|68}xK9@4t+L|GrFlQn_5;wycO0raZ>eUxD}|)|en# z@@CZ>!AXCg6m06GXf4F0Gb0{UC42v!871J<gO4?2r-z>v%i1cR#B3_rVqRlB8t|*f z-Z&AYtVfVi^=5sX3XU>$qBl^+c$BwNE^FYgrs;7Anqes(?FoVHg}#oaj1zn$3fIj0 zNn5+-;lY(A&HYHfB`BeJ<h)4+1};#g=xNe(z>TElZ3)!Pq)3tkD)5cE^VcJ35J1%5 zn4P}l3JoOI*ksDo14(VSsAP*S3J$hOeU{pT+`bii`}QF70~M%+vPi4OGM}#o7zCEA z{BAG5L~N@8-X)~K@HBU}{_lw%E4WsQbdl@?3+>C2a!&Arazu|~4@IO)JdsK^;jmY9 zkYzhA%(<A~7Zh4N+dpPOD!Yo_O1s~;@*`+}iHxxmUddYGJ7UGz?~%@$#Qg}v5w<H6 zuD~;RwbyQkpSL#phiUDS2|<j$QoFZt{#ls(Ui(>5OY~;-9z`)6Xc)Mpz!nU)>RiwH z(<Twu%>X;`yZ+PqMPODML*l&g9i=t*(v@5KTv6Oz=C_)j5c)e}*F*IIkM*(Zqvex$ zIGr$tN;s-*9QpMSg?n^R(YNG2=B`>8zp$T4q3pH$N8;o__B97U<F#?5mMnzONp@X6 zFMH%r5|Kiallw(k!ajQ{oTiB6lYok5M2Xq~3cB_J8wuU3tNW4=-JxjT(WosiK#6sY z)80b#EWd|{_m?3H1L*7m>==4&LyEGNFYpwzq<D*1DNIyLBSZD2No{SZTaex_*S+c< zLNd75KK`UwFP*i5)FI6zcI&u5Bm)x%H3fI6@trUu*X2U?erSGJVLe?*Hb}a=u-<Mg z%(l{~uhM;?&rZUldfv+!7XVQSEqqGghbGnu3KO2YO^L$hr0+xx+f@%Um@&L*T`u}m z0yUy~;2|Vr7HlPp$fDA6t_vl?WV>w3cEfN<7;Dty3}eBS8eN{1beuW`ImkZ-;={cC zA`@U?%_^qeB3XD7vgXUvGssiM<@G;9cz3j4MXl{?utzau&bfF1fz{wk-Jr7MM)bLI z)S~)D+0?!`pe%&mU$AeYFrzIZad{0lEH8l?;ey`3`xKd8u(oJSm+%8sV0AVAtX;E| z{A%v)0~{6rbqHdVr?d<u^N8DWDaOb}dkbp8NSpS>x)l-562JH2HW~Znp5Xt5{}dt1 z4h;z1%6%*GD3H%^Tt;qx_U~a{A^(Vi$J!4{r1m$Op=N}_W3y4MI~0KwCc4h9%E60Y zO67?DGt{=5>4df$Hh?oW<};*}nT!vNOLBu}c_{!ezC-3BVFsQbMX$A=mBMM=<raTX z-UE#@n+XUC#g=wN+5XeQvPO>JHBFJA0YTNmDlqb6J1RFR78nzqn7`KrAv3b;7m9LS zcbwwkMl48Abn9`kKxwB>5s05~N+cwvfPwyDg!FgR^Csv|Uo}+{#|EdPI@i~u)wLer zg28a0c0_|!ch-JeDM&i%++WeboZ;()=7$H-;6o8v<RWCBO~*F49&`|S`ipPqzI+b_ zat^Fw_T&d&L2+;EAJdSNbW~YcCpK!uQo=ub;C6i|BzeFz#)6bF-uz$@evQB>K}}4% zc)6Arp-eVOXw`igRGbb39ThI-nfG`{!btHYFi*InF_#3rf>p7*`3cYyQ5liNV!M^B z6!;}PqXn2jKt&yp7qBTnJm}VO?@nb|s#^_^JvPe*P2O&bo#}^RQ2-x06Yg9YAxL}n zdqb{8*Z(Zl&gE*11r?F98C7i}-P~29F(kw3`+`<!tYng%Y!KfD)8Fg=0^Ktii@@+q zZ`-k4kchRWBS82k>{&i`Q>i5I*l)1%c=>QjxcHGI&w+EI<)k@MIat>!r<#vnXqzG9 z$x{J)cPV|`_o5Zf56v-;SsV((l{;R?<XngGxngKf*#U7{Nz3O;v?K49-lsD$tWu9L z>s!+V%9GWt5RYX!?1@k^BM<q0-ZV=886rV)wC_2pzzL)#dEXfUb)V$+*Ko+j>d)9k zi>9vZ(k-2vZ3MoCOcrXi?#y5R6>QgS8wzLi)X!5=N0^z?lmHZv51kkiHw5-|h<4}9 zjS-i837(dpqy@3EVVK;*Bbr!AQ4T{4QUMx2s@8)(hqryn^wIj7&T$ou?yo={TO0{r zg(9?Resetgl@8+k1Ezr7c8UDrwfGsIi$hK_Y|hex1ILXAxh6|Zx!U{DNfUeUZzkLB zOYi-c>jeDXu!>%FH|9V<y%m|u`WFoCNFm{KDe7r~JN`Z#&}=tCte+{1>`_pJfTf!w zn9+~N&<IRo#izXf(Flm^b0?smIEURkY=Z%x(pgO8l%m^m>eYo!#)bnFOmd<2)}DR5 zIs#rd*1Xk8d&1R2&t#1@m=lH`?#8(wvrl!5LFj-Gi#tjizh`olF(tH{fQ2RzQb&5K zcP3VdmhE?{0DZdc&JN9qUp7>7^89P?ClxfVFb@hsd&O;<voEZLH=oW17=z6gTUYFK zv608C9#<1wCA^f6GuoJ6hBZ^}a*|gi4<kK&gZ7l31wSv-ikd*A#Qc5xx-$kAQ$?U~ zl5fpE)yzmY7L{9G0U#o>$VQDp=r`Zo$2QyW>=juFXf(g1qF(wv!C}N*HYy3rS{Z({ z9;8Gxw4KHDR7^XQy3JjW($FsvV5Ix`0zqYoe~0l^B!bg-v>$G#@qejFX{H4=%q$!> zv-^dsAPaib?G<ft*($Al077qFqnpsi-!JFcEjpzo%w?tiGaPYxYxayrM-lodsrc<v z>r+%hL=)&gMITk7G<+mZk;J}H!_0!!vUq1}w$x)<d?4uMhJkfirML9ZcQ69D1<T3` zXm?8RDAqU@a`*FZIT{oris{#Hx=I=b^{`U$iS%$p{Hs9tURz3s2gX3$d?x|k)_JQV z^_T?|uxpgdGq*pE+Lk>JYu8vWCHj%>uzM0hZl(jb$`%VO8_+HPleyPkqQ)~DGbQXv z-ot&1e?->g!j?%+Km?Gfad3cD;c#pu3-B=v2b?YC{Fo9nZ5gpQB>Wct90cVa;K<5D z^}ls*cx^jBYdu4cP9LC88{2tX17(tCF+ALR$DEY*0<H)p0hUfuf(W&NU>`#!h~qQF zpp<ChekA}?Ic8ZIF9XAQ{c3ixmS6vA+u#|RanT3=E4T{q+IM(%l4Xf+XAZD%<#tt{ zLcZV&W}(-fmS}vMg)*&g8eoeR-tcTwS!>zWcQiAV{-CueDwo0sQ2=yP3-(EN>|ypD zGq8T*<>aZvId-YMy0z(?7reUM+^IE%_JijM1a<<#knj(ZdL)=qw{&iK=t{yd#kRp{ z!*j?XX}GoV5th$O$_W?R^cPqN|D=LLI>?Z{-`4U69&B*E9>e1{K#kWA1Eb3XM*;Ow zLZ(lI0nGDveBbQt`t9V_`?JPika&Y);A^Gb2kxkb<w?1cLA<0!x>rSYMC&2=!DH2> z{wIpq=_KDw&mQ)@vokxyiwGZS;*TspJ)_8R+|BV_gP8B!-Q|m7z7|>Kbe5^<+)2OC z!AP3Q&g)y}GyhZ58@u&1Hr#xqmW8=}o=ojv$O0z|H!vezZnv8y>OTWLaDtG?m9x;O z_U*!tk3hWlWmv2zt@B=adcyos(k1g`y}@UB=3d|D=_K%aCwX}BGV=h2SDoc_f4BPn z^JEeva+X*v`sX|)rdm$U)b`T|FLfx(Y{JVlsaA26|NRm@euhvUee4^S-<~I98*))L zKTiMgPFpaWD$<U*nKa+NHm~1T7X1m=m&;@cT{2G=SFG8|=B^y#t9={}|L)>lXux2> zyMUpU-~XCn40yiGGDUr-qbtKw$^eWRmXPoJb-J`r&K{NX|3V7rV*A2lO)2|-!Yd)3 zH|{jA1hJ=ZsYr%0=k$`l@>V@^hFYNm>z<2oer6XF1yP%v)KD@68k{jABvGomgH8V# zGozW|G5A0QJ66k0b-KLF3gV&NdOAieTs3qcYYisBA8aMdj0@h%{_fR-flI8~IZS4j z2bQW2K7Xv>@A=g1UtSf!y$5Tb)(4?$?(5=d+0NFi6!3PvZNa9VBO4_tVp6z|k^Lxg zCND-+UIm@-)`tqnW;)Szd$i%8MBEW*5NHQw>WwFH-i7}yxww)6%a#yd-f5rl=_fq! z?B|;9#fGR1Yt?rU7>P+KItmaz7|LY3jt)yTK5mql@ft8~J&|R`)xvIPk$FmAj1}gZ z#wbVBmnx=@tnjmmf}Pk>K$0OjqhTqvq&9R`pJZEQyAR?Bi~&z2v76s&Ri{^lcr+#? zqODB@dtBfrNpKow+)a0mcbc6;X=I&!X>a0~`G<Iel!&K~6mwboTJC;rbQ=oUGDbxV zc=b@r*(+|xje4F@p;N6|%Z$J%&;ejLng6<zL~%f3S^Qh6_qLGFuBL!C-LiM8;zDSJ z<969!vPOVqK?L{9#!(zyAF<v#AOhcFjyi6T-4WcH)M{<iel$S(F)hwgh{%dSM7UWl zMc}TCvRT1o(+D*5uZD;=EcYp=>)4BXgw}d~op!>n(z^Sv>32|nB@9K7#>U9E06}-V zL_(JwR<R}xVO~&3$xp$kI?MOM&!z>`e}3lltyO%P;2lMWSN{<sL(|a2;fr0ycRc=V z%;O{B!>y`X5o;#jOARRFTqP{a_(QMC*v|Cz;sgqQ@nvA+uQK+D;1@z-_cYcPmMfA^ zxHu7QEK#1$qvHKU`6Ski)A3(}O0F1RQdRJ&^qjwDry(AqeWH<k{)|ZxS+!biunYU7 zo0DInWrO=EEJ#Mk4C={-uIEF&w0QQMQ6^Or(MNK1vT%?7Ji8;ikBFR_k89_%_?atf z^ly+P)#>T#u|dqI=m*GlM1Skk1EK1}tnX1Ll2y!pXuaOVzVNP9`~Vl9;{4ly<a`l6 zQ~N_+{U18nK~3+9V|gfE1!OK6F_OF<ow@OUUv+Shcl<hrrbqa*t6OHaa$|ZfsB0<c z{?#%i#958QH?^>u@7?Rob+y9Q){~zmS=(j5<Qzl3wS|6|@gAN91$3^H{Cg|^jdvBs zPpeP*N7`<h55frS_vnm8?V=%Q!7dH`2&5{kNMgI)jkgtF1h;K;B#lapyt~XpRP+NR ztxn{leELj~F>)b{SO}D3PTBl#CsHv5i4PR_N=Fo!F-Z{&vt0$M3w)RXSSk{<&CZ7? z2NA?yH`=8oC~0sQl!wFVV-!C0vz)&q0qd>(5t;<Z6|hp>9J>rV-apLH$gW4jZ|j34 zeb-IMG&I8~o@7MBK5=KpN*URJ<NKC&g;6|41lQiKpI#H+j))HWHUbGOc0WEIbc{P2 zWK+5c109IiXXQvMj3zz64&si92}N(D5{85UJwVM|k}JoYa^HUYE;1Z&Afao2J-ERT zN4Fi*7ygL}cAH86wJ#h|NB`y`G1lpGS}{=fx#H!(@cM;XluE!qEKp~cMm&0j6gm5f z4}!Fg?D;$I+Njp;8?9pVp93RWr&lXIrC!iSxi}xn5Ppha&W>hP)CiYnqyfVxSUXH{ z8Vj6&a}i<qP(XPVu-qXl=KR;)H0KpKtGUvi>@BHc;FoVuJs1+p5pRElf#utAj-{>U z65ngPYu_Zg<4+THaescSjzVe4o@e1^B;o^XsS<}TDFC`Z8#qKiw~KJl!n(nEfL*H4 zvXO2R9;k&88G)QehBh>r@kYWt!Hr-{<Y`elAJj;VtHZD?<Gd}{888ALW4|hYX(L&d zACb^J5edi3j}z^F=cw@6P_H?Y2IO-n5Y8hxdOjIz(b4_i5o0VeodmipvzzH&V?1X~ z{e2C~Ay7T)!A*|xLyXPzt~Ut&8Oo@j*8=c{pcN%he^RuTVvb%vE(G~PRS|@gc-;I2 zhExSkS1JSFU_B%RLGSlX$yR``lXdZ$dy~}tTEa{9mp{ras-a3OU>MqF)u!Zq@v|fv z>6UgEkSYuNY#E%X2n;VuO<cXHR>;o66Ckg%k-XO@L*lsx)-ZdTLDGx0_lEi&W6hfB zu_<efl{}}yn#}jB!Usn7UN=y(kb7c1>L7ot;(cC`^vh!xX&cj2@EJ;n6JB;)>ExP? zb6M^RJ+Sw>u_~wzi}!sfp?^>QwS-K|yGDrp<=rF~D>}@XuCKTo2Lxn{NyQ1l{NH_Q zDO@_zEPHIVIFSrEdUq4y&<enl@$vQ51r!bxalWEZj3=ycQOWNSa(^}q;8g5X#-o{_ z%M`ojbKEVWr@o(u1cEF{0;=wJVGk5HHPxFbE!TV0l7ndR7;cfgU?ac@Tw;H-*hfH) z4|}>mb+k=RIE}c(NEddX0%rseaVV$)BZY1js;Bh+<AtwKky+246!@?M6%a&3Uco0Q zT^yW8Y2pkiIvkY^I9f85_;y5U#G}VydZ1;;?QOreP&BD$fNxGc3j)=qXTHl?@==ZS zm<Y6e(mwSjjZlaH8I0v-9-Y%QB6fdP756|uk2~su2?HN(6)kdHc|>1Bq)A6K>z~u` zL+DFV;!Geq#V|LurG4cAyQvPE51T_1#(<|iinb*e+oDrM80)MrF++u$u*3wg={N_+ zvcPZTqP8;jvMVvCX&_H0%4W>iEC&bJ_+hP$p*t6Ep>TSM-nwi}W))M^^)7Caq8cf` z3IK+OKu4d#<3x*-`tDnjbEJIi#lnZ{w|4nox&EOQrIU(hxX5}_OaULME-YH?i_zQL zi3f}?%O?{uY#YukH}^R*1bNyjuqtvNtU>J}y0FJ81M$@cGipcHSdtW?Lq_%jhC;}P zr}-Kw9J(|^G<<+*s4TT%2L4kndi?MaQR-Qy24ou-;f&)L^8@8TuVpLAVXTQGNLK4@ ztMVV%3}u*M6V=s#x50QH20Ha|yhY);Cd-;)1FC)~tF`*L(RsTX%Z>`XAwb7hV>O15 zE68VHrR@{DA^w<l{>pOVhl#%hcc5KNS<DqCOl9VfN1_h%31dl46tgU<jE!7gr8W2K z9a(Lc`R@yf6cL$ZduRu%<TxQbyN<~vorWds;4NpCSPY{PwmHaZCyne^i4~58HU*># z&ZU8hsSAE3@^hg0Gse>aZxu7VIIMV7jFNglZ{|-e-8WH6CD5}IbpV|J+a#!INViCG zLfsx1>J~ZnUGUUO=cd*(yq_0U->nx_pqPYlkTdM2vdR^_<M`vF@oGu231p0<)V8#l zFZpo2)Ee_IY+${C5!n7Gmy4r#Jof<%KNd)?d5VY?u*u5--~g}3CZiC*w#Lf6PIgl= zIM`c?Pvv9ioJc(o=A-#8tT2-o@3~Pwd1s#tgTe_1(Q4_l^qI*Hod4Rh_9u=}eFvAv zp6;RpUELpLr`R9}oXg;H0;ll$0h+Ps>G2XP2eR|_XXtc5@qUtQVq><<_|xsD2v1f> z`5zsv4FBuM9C?eW&*wq3q-ZWL>}Wg1Yv9NhugaH`1I+f|XGgp%*!#_26OD%mw`$ct zbR2P15`v#aUMgJ}wPv~z!N&a%t}T<mg0_bZ57-Q~=g>1CahxN-G_Z=9aX!p<IU$r0 zlYF53NZyE4e6B(#p8ljf#oNl=#53rw{^F!JM|zysEiDLh>-cDFjrIsJ-DBO+O^V34 zWd|pJ*bq}%vX~cEcWzabuNvKZUV))POPDrbj2VPv8Xi65P*}5B03r0y0dK#MH#Wiq z{kti3miuuNFdh9vaqzEE)_PHtl~B|%-hAHq$`m<5*7h?By!Mnbl;Mx4(A-^vxrc}0 zIqLk*g(LERKAcHI^bbd@A;9uLYyv!1yOT>9zC`~boFXbWJn2ysc4~z3Q+fZ#=wtpV zFoa<Bc!8=iENChrYmq#as4sfY-qnZZWpOzt7{ycsMthiTKP7_{9Ts#HPp{)&w3;d^ zk8nHaw<JV6t!Xs!ObbU5Tj%cZO!LRy-@~df(~{%jv7@>bw=Gc{VLogmA%)7{$$X}j z<e$cr;+aLsE?6+n5q-jH>RJsGpc-(T{h<(&M|ge!lt~i{3dp#2#9-slY`~VD%zm_Q zTHW{+vk6}B(f(nOOunEIkK}v!dli9mV3O2hMuHL5BUd3IELdCK3M&<@b^`V0l8IBj zLHXl1p||vsNoj^f90NTn?{R)uBABlN6ASfu$o^Z<y5YO2I}U@Nqnx9dTQ9l?+VKIa zXt@&x9U<fn&brdHgl-bs3(@^LqSRe#4P=oaxL`c$iahfJ7Kr;^WWt6K$UeGXQr*Xl z&{dEOooXrL`p)8`NXK$|JfQT!ScwJ7>~fMGg{_p!HNNVP4BzjHlY%`I;<{)h{*-?$ zEOlOj(mYmmAS<i0;>n20VbG4N$6zdC7f{4lWYcH!iZFg!pV*hxC{FMY-ZAr2W<^Q* z=KaMXzbF6w(A3a7drIDO)j55~z3?v@d{iWh^}fFY)6#V{ni)E6$tkyAcD;0_A!A8; zNd%&oMOhUW2FnBgdQ%Xwwt|nyRyQ%D2N`M9?D&*|Mjmr(oK&|A-qzz;ZqZf$h$P2~ z{Q+N$sm))H3};y)%xm-d%$(Upg>kkJ6(uHw><M#Kz<}!*Df-&nOpmSBRhR@%no3z$ zM`1s>#|4D^KHDMKUuGfN*GQ{Rm3OLG;tutCK^GEqcwc|KG{H7Q9peLQ#xy9u$0UYN z5QIK(mQj&P7(^n_2pEczTT!_-1HS^UzU%xSuFk3}uBMCD-Ax0HLvVM8;O-FIU))`T zyVE!X4NlMi2?-8CgS&fhcL?s<%^CU580X^rfqhY{*4ne4nl&bc8Q_<4q5=9}M0@!V zi>ROhzf-C?y&sRdAM&ooV`-S!%S))4hy3@|Qe10ax~iS))!W{(sGJBTkCIxrur(1D zh{wwTTL~eUF06G#XOr)<u3{DWzwvyAIhphBwZw4rk>*YWQ>$DB<cf4*XOpNr3GY1N zop!t42s3#gB&zFZlYUJv<4+{i*P*G%*Wo+uz6eu1yVXC1PdLA|X<WIEKGR^pM6lIi zr#$~G!RYy>eoUa6O7=`+89u?ory*f_WwM=B+LaRGzX@+Nj4z|@TUC?F9?JVxzH1L} z&A#N9nmQA{&|4+>PYP+}AbzmyfJD<2C>9Y94+lR`=2bi0(N(_|MDqzk^U35A0Z&#l zz4&$`P*I&f>~(7SbPfPaoyc6C7*8H@X==~+Jr91E%+CotFyG67V=$#kzTWORT-DcF z$+mtml1Qdui@fRbiMw`=p%cncEQUwiFnxKva&{u^pbYNhZ>>{iLT@~?rdQh#WQdkz z#$ocuV%x`BS?t3D-j;g1sVAG7UF%#PZy_FqIr>shV8#N4&_?_bGOeGh!YIvB+22Q! zNK0?+xWwVVRo<lTZ_9C|8uz055_a?4&Iu`cOrf|VW|7il1^;OZlbXX$`0N|;SXNq( zOkCvJGyL8yIsJC^-d|=*13V58#KR5zh6h16`)p##0SI-`nA86W=I_vW0I8U!(Na#U zURV()UiRYU8G-r*G+6F%Foi1A8iGP~i}S##q^?o)w9$n`tm^siIQH8m5}PG1vM#QK zql?O|iV4YxT+Q#g{5h^wobE2NnwaAmG16Ac+4%E&KgzipqH%N&d(#&JlKbr6HVO34 zdc;UZd+C~1;R=KdCr?VYr{igDZj&icq{U65iU)Ny^^|h)VmUa6DCA)d7yIuvfJpA} zYqnOiWu!Fbxky{xbEva_W)&O@X%PM%A7l$iM-_j$riPe%U-w=+eQm2R^&oTvH&{!h zYfv1y!;W*FW{(efpIqdR6QMOthf0KbtZCJuXRH!Gh@y;>xXK2Vy$`$|H3}kQjuH&V zQJDO@uD_CO6rwuH_YDWbBlT;3yqHCwgerd;fOoh8UTifX*+30EmisRc5c9Q7u)zKp z6$|sv>HU}4IQMrwe(teJH|HM*y-#~g&(wbXXTy~6_1$@rS7Ep;0W$kUCadi?Mbx-Z z>20-vy`ZtHy4j{kzO(o_b$x_w*?SCelz~p*!$dHrr6GMr?G9G=a&|sPO?B;jsQYtV z@ONuSWN+<%^{n;k$dtg-?Ers+%*q=Yiz=CU$Z?_~9q;S9Jd}iA1=AKj^fsO{XInb@ zGK{9cK8P8o?WeXO+y0h*{FB=+B)a8D@#@U-8KRW6!~TO9*>Dw^Btx{ds-<hC$s^KO zUj!`np?33&PJF7o##=9`e}Mn@Q^jBNT>?wXzDWs^BNH>Ug;N`R;5FO@Q_fuslT2n> zqk$}<&x}%-yv`NM3!F(5qYUMCJEkq{det$kZ%ca+p*Fe5h91->@F_yg=`wyZ8Z&OF z74*$puV7qy$=nLHI=5m?<F`*G{7p;5@b66Gu6!%v@{O5)kMOa4MpBSt1Fe{0O~a=f zmMd2&77xelC-nt3T$%16NH%cGO7hH$0?cWiC`+_;uv@&2YpUq>GkmXZyJ~muQ_j!& z<R`#a@q7P+evH5y>$L)7Vq~XmjC1Rz!(9^pmfcmdBma)CJ`*hk$_gi^c0y%Jk=n{k z93ry-eI|1-pX<kWtmNCv*K!mldGtaMU}QSi(L~gWZ+JK~bmFeaI2HB-70fAkNRzVu zcEQFRefWZ%!BIoOEFgg4?gEXd`Q%F)Pq|IW^Q`DU)|bCNH8Os)(PO6d)*P5&WU5wk zv`(j&dZOIx_#07_nffz&>_`{l^A+d46^Hfcg7H&yI|;v1U|2!$H$jO0A`7O{J@Ey0 zx8uD$=c0cb2mIL9eHI<TUf}}u60<esMVE}>K$xq+@|E>9>bI%()J=`9Y#zBBj_-%| zV2`|Md*+`hnm1p&xX0v7B2&Yy3Ll6;wtz=;B@xZf5Ob;^JX0vSX=!hom<yhQxusy; zmMB92jzR((C1+CcCmd={r=BXF%Thsyn0{H;J;Z)k)*1L%9b#NAuxPhA69)C>AV0(I zG%Sj7mRoz-9@x;_^H5&aKrgig9G%mIHB5n?j7+~`_7<X@3@E%sZ?wV*X}Y$B{!?mW zrSbn37CeH@L;$h{;Gr?RX#B*MWHKKgCCmBU*XGgsP@*QOr>oZ2?O2Q(rv2ynj$yGc zw_-VeEJ5)bXg;ZmjJd>cD4x)%%LV<yC<VB~nD=AvGs3r`Y(qmFP6Wx1W07g5M8o$M z5-;mFJoE!-(UJ^<U2$iTrP+-^fGBc=v$Tw6Gu^<R7me8pi{3p$CoY{<;b<4lr5^5s z20`uT8<+bKE9WE?J9ZSG09={wsehZ!4tjP=0iK>CnhPR3_1S><?+@iuaKyP25l!H1 zVMK<&FfrPN+B$A7(?4)|>~O49WZ@kWSH4ckG)lNy3oX%7%Ip-zQDZZK#{m$$*?W<5 zomB`YIAqs`X-nJbE#T%4_-D82M>%LUMTVK0_~uS1!j{Nwen$@K`fjbFORrB?AgSL_ zq{7hBnH#LE8^XERRb5R!xsnaUo~)`kTdDOsRJyvC;ISzqYy<fTErz4|NRFlcLUW9u zIlb*sxP}pAvC&8+Q|>!2WKY|^QVV>OS!eQp0$;rB#}7ZhZ3b||pKwG)8mZl|K@01c zpnmu*59rAK<2FmD=huho$uL#RQoCJFT9j*^(=b7?xWa<Sm?5)kcHOsM=GH&H&{<sY zB2B%;l+i1+`-;H#1T-YDo>>uU4c0czf`=xJc>h&8F}~xkI=HsOVW-^5e@t1;7c<Q@ z508UfipNO=;dNPqUR2=SB17dwCP$N1>U~|U!fb~E4ZUYENza}c`_Fb27gEL{KLdES zVqHh*RQjotC#=F@k-IdO7+~|GZr+&X=5cE<7%+bhx85e@h^(l(8b-EPh5N5k93h6o zpGL(?fot3XGMQyB{CLxZBktv~?r#29b^Cj}Jnz2AhG!{<^7e>@+KtkXsAS$<6k<Bq ziP3;;0c1E7fpe~qZpg4Cx1M@sNcQqsqMKcJI?uaOO`TPWBaD!cCrr8Ys^QtL*DPKO z-9U#ZvEBP9V(t(jX*5FyMPmYo5Q*-+shtlSqedsj+&)4+1NN=&T{-$Y3F{%*K<s)| zLZnYtTSo1D^vylETUBK7*T2jfl+%UTK4?8Z4I1&C21emXYSLCOh`eSqjITWCHXZDZ z;d{>RCk|xOHP-I*(8NJIgsyMF$3Y3ctFYLin!xKlxWwEWJ9wX6;a*Ip2=Cu74E6G~ zLR=Cc*Zsj-Qlcj#C2JOM-=a&D$JCLbL?jnyi~f^1oMgqDXOz<HS?0@H!kKf$h?Abm zh@|$B^Il9IznG4=)k0V1nxG1NE&N&d9Xw#+s`K`WfQVl#6nV9902aSYduj!j?hbs* z=;E!v$y5X*Q4g+){tWlJ^3a**W|r<0X4QQE#H`v>YF^JZ$Nva}IHw?oY<<@6Q3v;} z4=nZi<0my`&_v+}?{;U5wUV>-rhb~L8eL*6EC!$NVYJqVmrCEheRPmN(g&i!vp)NJ z@T94Cr02n&JYbZ^^&X6sWSOD-T>m0Ni2+jJ&5)G{z+jK4t;|~{!`-B6>O%H-2Tn+` zT(=D;i2rOq_H4r7R76}B>PeQQJq=ceX4!$-#p+@U7vn0ZGK$CAo~{j^eUul(m!tB+ zf*8jNal0~~a7^M{-f;AvHvjuHQrNQb;M){5wa&r+go~L*MZ2}GKx+N%?640Th<+dV zSt#U=gP8j!?}OXVz~<W$oJ*6J53OE4NRLRhqu1xW77(`-j<~c|yV<eP$t-+>HCPY5 zIHK!yFvZFWT3RSxJIu9FG2Qf=+sh4$S@*)CK-DPaS5D1vXw#}H3fp%%4eV}k-Mh5= z`7WCllirQL(==StaAb8!PXa6t-Smxu@y^3Qa9&)&^2IrVM9*Ra3d5TpQSt6)Yr~b1 z(47P0Ck{XK7MRX{qhsI3EeZr=3jl*{Up`yXLMem-)6m>!(XTvwi(bk|`m?ee&T#j} zg?T}F8MbwewOE<nV9qB!8IR+`O9m6E>bU=g$4>FA4gL`Jb{t3NPhTIGhOGhbb#4 z%87u0{q*@|kJa$mnb8I5gr}3HxY=)?WB8X&q5lb}<_H4Y<q~VVLRW-FJWS_jWfcj( z(^TGl{9^4!7%9ggpJT7lHrz*Tj?}%KQnwfp4>0a4$+R6sh*!1))5(Sx5R4c-)N7z2 zoAZFeSF2Y-$qk<E$Vr)bCe_k2i=NmMQy|CJ%MSIl_ymYD<P6bJZm`l~UxrD-Puvhl zd*oRdLYDs&j^qb(gkfdI!BJK!*EmpMkvn3fnFRA4{tRdT%rC{tAcPuCa*i|&a<K)A zfvJ&Da!9DtwXa5<yfY*lSX3peQW%QUZ9Gx>^Q$>3nIUR1)nTOXd~zm7U46xb>e1!! z7b1`gc$%<f;^L>)uFdJlRVpAPe0G=t`_&k(EWCv6OsM4G)^PDm3FHC1CfC8F9k4Hn zfCz^+!)fB2ph@|4C}rJ5tyr_y45T(i(!r4NwhQe-6r-2<EN!oA9H04{+jW<h&u_Lh zBpO;$6Xm$?!Rwn4eZo6|ULW`@?G_gZsT)G{->4fPV;eK<ryUK)R;eKKlt_0w@SAIi zh6n<NL_=WAZ_R6~m=90t-YoznX0Mkw<g~Y-+*jqe(qJ)-e`AWN^vqW&208>GigfGl zQ&!5tm6WwiNx%CqUOy)`!%USMYelzbwo#oaIQM;M%M+zDImc!}4ikokMtMX1JCsnu zu&`NO_&3?vPD%x^(&i1q&nlSivK&+nfbB;zU~_Jqy^nhly!hqw^_+j4hdV+`sJ{mq zN~9~L)oSm4sA$t;a1`fs?RT!;yy@9dkkg$=sO}fG#_UjsuMHQ-L_i(@2)zZChlSl; zBxb4k{Wd$7n(c?K;Wp~!3C}xgK_3)4cfMG~Ub=B?NeSkd?;Ujp39ktOxP&S6v&h_N z;~9rjN}n6gokA(|rqwJUVC;V%gfzj@v2Y}(U~aNa#_*57PgyW*%&9ZZ9kAKE^0L^- zPpG9*Dr6~%2&2?o)g!{7cJrIH9+4{IB8qZ-XJ!+GV<E<4j7A>&?<!w?yAjM$LVN6u zUnXX0%#kD=a2hU<v4FQ54op0&ICYCQOmur_4h6AbDYvdJV6r5}yB<yfXj-h|5jFHZ z4)9&9h+1r#nJ}HA9fz_iq4##5-l2l;>5V#VUtwagtdw<46aci~EmQPaWq_6nn%Z@v zDbv}P%*^dc*kt-7NknjN#9?^QO*;L{p;CLR(`|E!P<(n)&0QP3q|3RovhXRDIQ!8| zgn7ZPB1HRrW*~et^(9n2%Xs%*!cl7p*^Aa333`6db@nL&5O9^54)YjEKEA#e)^qRF ztehf?2?D(9Q|Y6dMM{f{Li~hibSeHpJu%QM)SnoLHHk$PER0qiYBrLT7t|W0_PhOB zp#1r&R9u1THp9h-LZ+J(JPx=-;(JLF2T!N*c-||U;hDCQvhq@XLu{$}g-|~j+H1}I z4zCV_#a|!1&I1)E8ZDJOkCWIm`Q2<bCYbXQiofsU=cWKWW6g=6>$;aH9Tjkc<&JIY z{aEo2PlOT!dR%}n!JE`jV4-JEh5lC)XgicIVd`0d2(jh3h3N_Qmbw?GwewBb197bl zaUA;+r`I%ZkmpLC=I6z;ZJm9twLj(>=Fo>1w}TkN5`mVzSIW<J;q{&2DQR)k*zf;! z$9r~%#VZcb(L9g9@4azi=IeQ%%{@dx#+n41ecD7TYtx}m*G#<#^W)fVMJQ`lU*q1& zcdcyr6Y3vQ);ANJw`CNEf<nh$*^aG7Lc~AJt9?TOZf<aWsUG)YUWF9d@o*IJG&zVx zruKHCqhK!?>f59$*ov=BB==yu{X&`D-V!O3S$63vuHF#4iWtCIGK=3EFXXyX7iBk9 zvvFsn99v5l6$;cXZ~xW50~3#4P%DD~c>s8P(LZ;rz|(CvoHr6}R9eE_*!tPg^!dr( zbXA0iK{DnRLv;Ris^PrVe{&K<bB@H}t@ZxG$rd`qd}QZ>I9wrqW`jLP!V_4y63z)( z*oPOKw5kUdzHtLDW42kWta@jGbFGzBc8kO$5Kgj$UAsu|q#Vs6Cm!H8f=yU3DLui@ zPlC6>RPTOcjMx=g?f8B4ZW@=?%r>TD_<hpz@{B*KRR;iwA1i*4(ngj+2)=0CQ)!nl z8>N0KMoB2om7EV^XAzve+2Jri6n_gOupQMqNjZ|Q+t&nQ-iI#z>#`;ODw8E3gvy^4 zQ8CQdf^<<YyC}wrewnW4fi?(T&ELC9;Xz8^dg-q9dL-IuS*1x(#oiX3Y?=ib-lJHE zOebEQXY8iZum-j|3!1)vj%}~m+LL{qIx9(jKc15BV9%(0%L<|nWG2JmM4%!wny>z8 z4;GCda$Ve0SS4@e#zuE<whF)6_o?fZ7+<>m$tc(2iP$N}y%RIcP*^uXf1H!OFE}#; zzuXLOs$~f%6iEvS>HN?e;20PDvYwon`JS`*?@N)==FIybE+V=YSO)WE<xqLy@1?y^ z-r-Xir*t<ul+#hAE!~m^DixxB5YkGx0gZ!Th=y8LHtfSgBoyDVCAc(}tPKfka}*=* z{F->5gF#D2i}p*+;0B$H_gDb=K3}TA>zIo(`xSeUqujvY!>2m9orX3GVs+?4zu7`! zT`{zNv6lq+mKb1xnu}%?wfh}?PMM7~YoLc>=v4K+kgHwwTKJiDGGCng&@~LD+g*P@ zwKRH2IFb$?^R9l=$$JFr68p6GLqnnQul=HId5O@!?`k~>zg!Z76uU>^)|Iz!T0BaV zH5ANMnx0`<q)cB04z{~~SyOxPu1Ppmz$K+Fx;CXKJ(DNkFHyCkzlZ_!P75K~bkR_I zTXkVUd9G|kuRWHp)%RDHQ~-gXCRQ`kFj7D6b|Au+q2WaD5*UT&ciU2u^I)g+7li?r zD6@xykz}geoFo*-tBv5)Pd1L7t5n@F4tN?MAuWPe%MtjYwYt0d^CQ-S0^7TXzw~m$ zLh~%ct+9uN215V+HGlX}6m<>{TUvNvPJO-qOws$mOcmBi_ab)B<2TL1pq+xu$)B5! z9@f1XCBIn1ES?JOBUVa+C-#NXaM085_m!5G9>lyUjBHvoU8dL=aAVf(1!s#oQ85ce zvvf&aV4laOef%&=#W`vcJ?~I!jr=_C$_ar-QeUz<PI4^$QundB@FZpZZ;6R12$?YC z+;t$oZ4MUu_6VV+2c-pbOH-(BjY=Tkjh1OwQkCf?q(m?E5-QxGn!$bC9wpkijW&!w z(-V(()#8U*_(?wq(FzP>b`bcBBINe}e#z$GVBq8PcK7hOZWJuzAQ(M`9}8wa|2H&S zz^ebS_xV=W6(Be|)!Y5bWE}U4pC=5WvGS=mjG=*&t2TXz&Rx7IUktT3=U$wRX_uWd zyU&^reM;8h#hN*3;3wkHU_x*zFrquEe&D6GT$X!XV#g2TF<ij+S)!~L_fTlk0CVYs zWuPfpl4BiyDHqYBA)QW&t>71{V%IPFQmMoFWY&s^?`d`0_A)YZ>b*Hg=atFAgUIi1 zkg2!$|J-~FuCn*v0l%#m+5*TT1EFwqVg#rkXXr;Z;~|+I{$>)Su)rb=_!42!chs9g zsq`4um9g#b7okB34OdphMa>Ex*PAK%94Ei-M{M;`jBxmuB6ZH2@`CFzYA$5$sS!6K zZ`WWT(w^Ycn9to@w}nFFQ|q3z3=gPBZK9U6qsla7RQR-G%HAy}{(q8wQZ=UZNmj$G zc3G$*HPu)w8f&WB%C^3YY`%?tax(b%P}*#wy!o(X;r=H^3a)>n-wH$$E~$mT;{m)z zoqnDo{SOK1$=t>{EZ)T;Z)$=mK&xw$Nx4OZyOT`j#c3pG32H}2Q0tQ8n$-=HFQWS~ zt1ytqlv4}HhMo7K`TJSZg-Odx;juv#M5&Xd$jAzU)MUDocR%(dzg)hp=RGdA?eVF+ zo=86L5g76_d`*PDP<&_{dPMcm+toi_<TNaQ%q0TFW*{PT6V@e8pBszM7LZ^6wB?$` zP3zxPMthgI_TGRL8Wic4qSi-@{r<w3$S+OrVE9nq08UxIc;TQesZr8B7p!gGqSRY# zQv7D{K5Dih<j+`I;-y!62fw^r%}A=M*PYgBCu=wLpEr5W%oxV<F?TNR7KglsOZT2K zjhM2A=UkwMAsFj9#M5h9v5bD$cj<r+@C5X1osT7`#85z{#<vU&KnE@mJi0hHsjO$y zGSVv6a=c5a?xpZy=*$5V0J+&alR91tdzn_pI$oVXZBw9C2>h9E#oc~ND>*LRBKF2C zcAb`?Q@$G=uxa&IoL0ms#*=oRyi%pW7{sEFu6qs~JwTD5rYM@Lhi#GCRj*STdF<P! zJfq8IzRWKPFSWU(^WGqIxIwGg=t82eU>p|O$^F51xD+?p<Rglk4Db~Dt`e4GpNIHA z{bF|z(eh?<YJ7m}o8~;~B9?t#k~BB+mIApo8q&|QOuMnwrRelNDz=CUhV2M|9&3vI z9!g#W{@5KS()(zj{<2&($UNxsP4v%yMDehf!mt(x_9pq??6slNB;t=i5!p)|$s{G- zR1FsgJXS0#^-$Hps&J-E1ndu&eaB_XpUr^lPBp(jUoY)A30(MzGh!GuM#}R9u5cko zZ)jJlloi*iIM=S4#7;~4?nO2XI5LRir6Q&`4wAIoF-Fk4&kh>rpf$-oI2L+>u51sA z75%87b+u$Gw>!^V+;|_18IfZ#g+;qr*LCdM<AeSJq4*D)mX<VAKjj!)-AB4*m#+m{ zw%FN<z8eHpKumH3TkJY<(4k2~A4cXIY4@#9GwhrJX~j7D2myN>2CTq`;TrP~<JMJR zkV6Hm7>Ks7C#D(*YPX3n>L12esGg^DaBxtTqFKZcexlKy%rzy)N#S^}qLoWttgNOs zsYV2dX{Q(`T$<sKETasY-|<wgw<c6h`K`y-^Jg?<wG49UGt^@ohF|nxQpc*dVQi@O z*UEdY+Az{f`bQBtllw<%CymS~QKT{M>wUD!+cN6!Z$szCBL}7GTY|@J9jrE_CABA% zd5>IsI&!_Y5fhgCYW+{RcmczLzLDhj$R^kejDJg6c&~GqTl}te%nTbHGjzTwW$cb+ zuo9N+JC<;^<VV5w^r%hqK3$!;a<-ivF4&NsH1K}DxHZoWFkYyXZoxi3O|CNw=2e;w z`6Z^VYtg$4e<9k7?vL>gQNTokdv|XsSDqKjnvU;MO$Q*ozVh(zk4FCy9YKhS4xByQ zbA1TEcrME1`3j>=A@!8mB_j3>2scJraZZZ*V*Lh(F)L@iC-)p8_ib;o96+6Je=cRb zrZExJCdU7r!f}Myi4MF>IPyqc?FxMxeAozdz4*fS(KNPe-e24{O_wNQTZK-jmCvUp z=trmG63vz=%C-avGUvcYb7U#BNHjHs-L2)V8CRf^N&PvjEmYz*g-U7x=?~|l_k;Ko zN^lU6BFn1SciUSak)dY&IpB!TNs;e>DZxja(59{s5N{@uZ*Ayr)a3N!@_4yjQW$){ zyg!{Ch!s39BD7eJ224jp0JO9XsABN@oGvxx3w!@2uFFr$7ibXm5Pt+T^vV#}j3||G z&d;)i&6U(jK`j_D(?SvU(0RcKhRQ@pjEs6I-+u(i&Hfx6rk!qZD`qV;@!?^LBka!Q zBg}bL{@mJyivQSTyNB=Bte`lIQdp8S_?gj--NYv(E|^4~R^>6dq+1t@ZottgVDA%5 z$YwO%x4H}dY$lqxdm>B2v5F40ybUr71Yp7y^*RFXc7_s3eMgwf@;t1(yu8jLB(P7r z9?WZQ(2DRw5b=@c5_AQZCUDv}AJ7ZV{aWmHDxq;*0mec<<7h-1HPu>xf={H~p53#( zL)&-OZVy9!+}&g6Dd8N_6<(`pazvhOrMvE=rbVQo7)kg{@f|qHxu4scQIe0>4*o8X zzFo~2KlPkQ^t{?MiJ^CXAgb{#`EL_ebn$JbTowCplh<{l-M7v60zSXe_>rfmaH@9- z*`$IPfDH6#k$^b^E`689O!Q2=btdcz{11LV-<_Dnb?rVyGZ=iDpQEBfQS(^jh#Bql zkaPI0F!yZ_Qv2{5>s8NQcA`v^$U1F{x`;X@_HZp^7|conuA8)a3ZHGC@k`vaP=y++ zoM*3cja+c>F2`GU6YZByg-bhB!&0NW9<I<HACfWK!=(c*)zi2W08Wx5<$4q`+#L$n zT1rV7b+!{<6tTo^r(2RG;C^U^@wi<Q?07tYPyWi_UVxjn#pq0DPXuzI+euaPeYIxE zp#P)MI`0c?QdFSolFVAE4cWw-MA&V`Y8q#&U*+j=#{a)dj~;B_NcW`Who}LV=G5Vn zTVxFZ{EHYz1cY-k89sw#WU9EiT324vaU|a3^){I=Qr301U{r#PPIM_S3E^1^e%#xW z7eu)rLj#flsSc|oNdS|s^{D~<WrZOt@Nl&EEkf_#S4Z7MXUem+TjN1&3nYuT<Vx@t zX4$^SP@6-hZTmHm{aKR3J0BP-U-1K8=y`ZNXa4-u+B}~9HpXT@o>wbLK*Whql<lj; zi4G_qbUE$K?Ag;Sk@FTmE={XWj*b0cs*;azUw2lDZ<@pIT72rpzfO2&C~7K09y z*)j)XQ+$$wE1IPr2SdKqw|<n(H8<M4k3u6%>bM#tmB^I{4MDxVX>RLcf@qTfyh82M z$~A_~;)vvb>+);#FH{+sxOTzr3zsmtaR()>Jv=;QIzvi1kgmlBy*Q-te~)#uG!yfm zdRQB`HDmm3y8xlY!!oJOA>enwN->4aKm)PULswjmjwBt$gS3ti*z*XM_~Vv&q+e+N z(j*n49;}Cm{V8`4K_fw&gbk~^r<_Z|{B4Y*Ywfq)RDpm_x%N+359Rdb!(ovsea<K- zliZdNO>S`k5P574Ap*hWyLZoBQ9y+~OH=A{%8B)MQw0VWU2pIof#<Du6t`9j+O>pj zWI61}MMU}Eh{e;O5er|CMr73_|1cH?&0ei}PIWLdFns@v^bPeSCF+d7rpA4QN14Y) z9@X5+S3stS^TYibHYZpq0>Bu8&OV<yHYTHLwSWIS^R6N;w%5~nd3l-DZZc1(+^E@Q zv#hk#ZJ=sEdi#e8f_a?04n7u1SsaUGbl^>iyFC|Z?FmRO?DgaNZ$*vie7pb6M=4fg zMOie0|11&i&9Mx=&|XxHrW$is)s5v4fuf<*8YEy&RQc4-W{XPE4PL_}de=s7sk~4Q z`%Q`Vm-9Bp$!snw!arzod2en%usQ!jb?uc}|D#a5P9qEa97Xuxw-Gx)>%9jiQ~CN8 z4_F*~x@Z;(Yreg`HDEVvh(*pd4{onU>a*TMHpa|aL*%1H^p3Vx{j!e?{x!GcN(!P* z1Z0^JJqa(wWny6;c41V6Byo-QH#*FHuZh7V7lwRY`AJlge;R`E$z#Wk$zLSNTkr^| zK~Ewn{Emw5PzXt0mh2DTQZzu@4NW8`fkN!}1iqf}402p}8Gd`^$=lTrR!*XZ-mz|4 za|@t}v(*X_$Ps6YDSo7j>;4K09DLEZb+O3gcJ(Iif4%p)Bk-YMcSc>gzKKWgEXvf# zJ;g%fo4o*lY}y|1r&lThx~>&Zy#?~uAj>X=&wW?THPzJA^!}R5q6iG@zML1jerF%0 zCAsSOr?ULZP&ya*mTIfu@rIuGj^P|3_@V=&c1N$}E9GqmX~@f2vv1Gd^IenkDmSo* z04?f<8B6Uk*L@nG!T!|}fc@e3N~>%N1(08mT$?1aIkCd?aFVYe@VxaSDZi5+-!(#Z z{|}{1yVI;5rZ!=VD&_mnItpe)>iDML6R0)5V|UvtJ#T#cD;w4+phhxuLP~Xgb2Fz` zWyn`&))lg=*%HJ0aT3AsfD<%WD)V<BwaW`uLCAM?Vo5a+mzkMir8BVI`sEeyCwWpb ze9K7%-bE!r#Vjt~DSoTvNmv(dylAND!QXUIDG7VR7{{V2Hguu<VQC2=0s-Z^e<e7^ z)NOb0qg(@qg9LS%(t<^NPP6Y{Z>F%$R~k<U$1>T+qC<LCrb0P+$#&yt7-5Zq3cUTF z`RG2FC}#oqq7jG)6z+rM(T+;-t1oBdDf7LLzh!Np%WQo}4soQ=AG1Lp#l(V%C@+*a zRjfiF`vpZv23q~t5FD_e;m!}V=MCV}RH)TD(@fT848ED%pxI{7&4h^C!y7oUwS1wz zYKoXkX!}=o%5Sj5k(ajn`<)+@+RwnhQ)hmB?$fke#|wT0#$PE~Rde}O!Njs<ne0Xz z*u=yJv@I;;&nF_aI+x4%%h%7J*hc88YPDw0rju7#qoLH;n2;9v;h;Fg;0yAhA*Hun ztI{u>_+5Jk2QEgn<~@PKr-h&kN0Oq&`klkPzKFJYqQk=^zG9NpcS_XIKH#YnX(?&+ zDpC##$tjWr@=s{FR_jIk&15?UDZh&A`fqQ<Qv&-)>@Wf}-5u8SG&D)pAR+sx=H4dL zf_nAqIGRQQE--r7r8MBd$3NjQpQL{{rff(V%jsg5s7Mj}a0(QBQHo6AXMRcUyLN>; zsF9>VHpj=L<SXF|<(llmj9EDiInrgD0XWv-u^+@(UJ3;u9O0W=A+BOWQC+^CI8s{b zR|VYt_14N@(V4tzul~Dza@KlH)C&qt)y*zui1;c={<4Y932v8!YBB9u@4cbR=4`xm zA1yMq`J6pljAwI|r0fY$KD)b@+k}n!r!sjos{2ZKV)sh-P5|6U=uy<|A#?$z)0U7F zT|tlDNR&hG)1^8r`zTTo)Q|q-NL81)OU#$N_EF7e`>DV$Q6D*GK);VIAdd*Zq=1&F zkJ@Y;Z_Xr)!JoG&OVT=hpKg!m<Y^`)$ms)HpQkOq3er-_VCOw*xkqLQ5)$bW?za-D znUvxmG)V;@`H9$bf`3F*n6&w1{M#z5byi!yulL9F20xZtYx#7d8x^pZ=-I}hP0cUu zlxuL?paZ`_x(|u)wbTLxK4kzCtxEX|KH^S4oSQb-&$M&~zo>l?3%qwZDzh=7?Ahtb z5MPItUfexuUa}>8Fsr!~YiVG}fy!e7#TRE&{?I;Dx1E=7c7?uec>n#=N)#%;t3mIn zb!`nO$51o5U>U}$t%a7~bJ?JWAz*j^=;iJpq^bxds((>eU64+CsL71IX*&-5Ct_!o zggcNf+>95v>ou?fs9UOBa}R|mdbLKwfm;n^xZqajl*;gS7mN+Sk8L%U&&?YFC%i4) z&qb$hq@6!h8C)haq>AuO>v12DW>}TQ<c+Md#iP4>Aa1;UGnI~|=%C<>`Njsn87yr) zn}9>8koR6y^Tu=AAvrt2CmzNWyXa+@%6qIp=J-BA48Q?$O4XF->JNK6!c+t+O`pf& zCg;@+h~ahsO9M;k2Nnp}6tU_OP5GB~@(e1W^k4xANJ<(?OLXnS65iQNIeNPh6)vVI zd>pt4dp@Ztk=naqPlXA#&aT%;<?W+CT=7h*BNUA*81Mp?TD)$w`+BAU>*t2Op!R%| zEE69C@0Ow8d=9gvq)iyYaS49PF_jEem)C4h*n^U$nA!`e6%_~+bG_IQbWrS#{D-Wx z^XyyXu(qx+wdW09&WGSg&O>>#pew|R9f!D^Ux|WPds{^np~#r*Hvnyvg!K8Zxwz~P zZXQO+iBviby<=G%Q)FD0{WVMhTrZKhY6{RlF-eA&*8idOQ=2%-DI%v+n4%z<2eZi0 z&=~4YC>sBcqsHb0i_U2WY9G@EUvw-jP6hs#v**12`>u_#Fv!F0;e5SoFncgA(;Wrl zlLs69r@Y(69djQE`C4v95)v7Nqf&fZeP}~({|99|b8e-ltKFeOlp0COY1HQ4&GJa! znLtuwZuGeD3SZKy+VVjzn_e_vl9J$Gy`+?(lr7)BI?VuG#HbXc;ESNjdwI*9H)0OY z*y+@it%NhoVAo;XC%o|WiZWZkD;jCtv;wONhDjm`pAwOX&*^?yzR$`X4i1irtu}p| zB<t&IxsyM>O$-mW`;=!_-Q9Z~XY0{OCQ#lZ&S7#gD~E5-{ASJ9(QvUHkJhH~T!D)Y z3bBBoPLF-1!9R@yPX@x-?(mfF7g2C=T+(8!s8oZW<5)kEBFM7|Dv`E1w|<}hK5@h# z7jCfY2)L`33<1axmRq~8gb>Hp_Z3>M7G;p@&hvg(VWNS~#MlJ1nHz1Iryn~P{9t(Z zi1lS@A*<ErY-I!i3H@=a4@+V#QlMer$>4j|6SCJ++UR0`1e6#MbAd{SMH7du7?92S zbpYFK4prjrj~3(I@m!hje7Vk4gv;N(Hu6?(z$((Ai!5Hm_xMhCWpdl^Db$x(ATno8 z;lfX%xfV+cz7~A!rnjNIUJ^jPx7*LO@<}0&+cAVYh)HRN*Q0{XII{21KaVpy9R<3x zi{tVDk}&CiUFJ|q23Vk$@nEFJqegsAV^9@-c)gjrz$GPJ)sFZt%6m9$^*Z1Cy+0~N z*hHX3v%Y>2r|A6}wjdrbxvfig0QH(v_f>$BkbVaBIPh0}eWqG2zw=&(o~aOS#!GfZ z>43ER0WZV-%(^;>Sy~^}7Subt`OF3j)E`#>AOX?g?KqeBU>9Ll^E<C-gR9&Y)6|52 zBHKre`2A37GB4}a8sphN%MeQKtM40SN%;vHOJ{C_oQ@#}yZX28Kid13y664rCy;Ok zJ#XZPzQG=l1vZ0j_BKOa66?I!&qKloBFGT(9$T*$Ipt(9I*JEON(jG(@>va8#*`Vw z$pJhO!`FM3wrTmDSN1?@TWe>l&2Io&Dq&{kpVZd~4V+GjmLG&#TjbJ>!|VG<al(w^ z>ib;q?h;+0bN$#5P7smi=(cG~srcw^Q(V@Dx7FH%3bavhXNr2VFrxlIYwIs%!t^eB zf)Ki_$9&E9dt2z|y5RFev*ZYrScU;fNts=I8C7q}uRuvxfG-AipE)T=qldj6<=QM1 zcBl2*`$W!g+oxbrM@&V|w3{lO9FFD>a=EP}EO(^TVvvNm{pofG?Yu;2et$sif8j$t z3bdnbb^Vj?yYUnwFToy<W_P;Zn@|z*epW>Z3dQK42UNr+Gwkw_fJ*Vd+jD`9FG2lK z-N*2MS+_|^NiG^i1qE+&Qmmqu&Pk%pbjm*83__p<nOv%`NdS42y&-KyaIoty{nlTm z4Rqbg-&G|)GzBbF8kAn-fBEudlulT6^%;^SvpE(FV=$#Es#)}R$B}}guB)?&sK`)} zAj^PBBKs0fisRpxKlh?>czs-`BzA~$sQr=JIE+FRz5=3z>IyE}N9i;sGVdaT%}?ZL znl?+M8bmSA;Q@7I;$A3gFlOaUwx=Wb%SGYky6>j@NnWO)L>P^^kYLLW)+%>LOA|D9 zACOLAtJXl5T}1k+_Y&Za(IfyJGyy||>T%vZ;v2L{G}_P5h;wn(b;?VKg3VYglRX)y zQGFv{Jo(U}jkieCk=%2<kBL?!kC;I9!gCEqrNM#%D&O$VtYEX8J(uPB{Z)&;XbjNi zut0@wl}G&xAJb@Dp+EB4R2L@lua^k1LFuSz0t^h&6$nMS*oglThWWhIPQ|x0Zi%9` zY%Z%6pX1qYSkhp|T~{6HBJri8RO<M8n|+rtERA`=?+Lz;TCH7sZK3}tTybc{%mMaf zUfVlwH#bufl*_;Drp!=zeHeuTeJ46$nLN?;N|bsqW2c-)2rw~tMm~$+c22ONw~}Xz z7%99O7vC*RmXqQR@x9Q~UYdbVOA~4pDsvs9fSIXb25n!KjS>k97D=ciwcDwKJyo{| zg*zOqebiQ?n76jdX~=S7bd}cWJGa*AIb=TYw!hN&aU`*Zd2;G0PS|~?3@E9s8uZVE zBo6)+tHp&UX=ss2evtT$MPjSGqPqNPoM*}yIbus`4|!TclU{jF(}(B@NJ(ojZ6Bq> zm&oi%2X@O!>wHk6d%%#+>v9Mm6%0jUc>RCOBOAA}Nl@ZAu(c{#2;v3HeFOr>fR_kA zqSO@QGjhrsOdXtlj$-Mz`?)`ladf@%3`ZRBx^9S~%p;uy-uBB}eq&L}Gc{mUTG2^P z*;gP~14ndsAaVZU`&U=8Ptc)uS1q3Z<O(S`V59?(ms;-SF6Y&zx9v{K*`Hcv%tQz+ z-fD9pA;m4YLxyDI=gm42l9yROPV(WuHRuobeWVVM1(zQUg$2@rX=<G>PtiEqFKvlH z6B%1~$t1C;!#})*uKQD+mRpdI(T%kYE?~%%f$u(m{RpjA%C(rKDVzyt1;`26Q9EF% zIXSKNfB*cX{fux+%WJEaLa+loRO5f%0Qg!VKLXyIa^OOiYK9gBB$mBYF<2PU0B^TO zr{(&cwu{cyr+!>@>t%~*4($;ifhxDA_Ev7?`d>x$Pqo^O>N#3SlgHUh9<$Awm7;5c za^<Y07ZYP+t99l*;SW7q0{-yVCu5zD?hl@9dp-T)1gBijrci8!x^12m`?nV(M~A3w z3c9Mx!X-@J5}gX&&nxy(yHeR6nu!Xn?LG}oNWRag)2N4Y4))(qyE?`So+yF0t=E^* zCb|-a;-X@jE|RUL_o}Mlu-E0Hi~O~&(6^r8mwTAS$wF1T7H{jzanx3S7X@+}Oa+tx zt)?K|ir2gL<eHAK0G^W+Ss6tL032IPBA;UMo6cuS<O@eLSPKUT8%OYFQE3x|LP<-A zuxacqA&+Q4wXZ3eoYKew$r)-&$AP{V8?d>hIxG2g-_77qX_KUzFGqoKH2zxILH0HQ zK<V0kbf`IX=+Q;}8Yc!Ylk(pf^hirfD-nM_DoHvl2s~Hi;^Im~{WEtX;fvbY${=50 z@P%1K-+p)$^TZ*~Z6?x}w&_ksxta==J2>L3|6~<YC=3j~7$xShO^{|!xzPIWzih=C z_DOXRrP^!4LoS#Y$O8yp10cghWAJ8Cc_g3(Kui%5bl~5uaG=Ir<DzLBYD4d$<sl$0 zNqZ#v6vpjkkd$DMLEpNpu?#XUUtzS)2va2{)=~@LOUM}d@?orwX}LmG<GU}%QJ}<! zo`Ph%$-EJ^0B84*>f7UUfoD_M{2_FJY@((DzTw#(=8sPiQ({T-qG;6`$!mcZ9nG3u zAuyLpleT-=$6SO&mM4rhFa=`n)*Jsm-X8K1X^qad%_tcX@b=#0NaQUhD9ytB>SF|3 zXw=S1yZ=q|l-R>sTVD*88466$)c*MDPeh#%3EkS<McmwWP8=$D9H23S9-|}8Q&kJq zZBad(%y*TG-TKpKDuumC)U`|>@iv)h)5dvTTV~{nW%)63T0QX9MYSAn`oYx5C_nK8 z3HLp`_1{54q$A+&%dV7Od{nPUA`?k)O_@c5_)^M`MjOmO@#j7V$SLyOJfh@}VN|gF za?KJsvh04i=ksydW^8@m5RzhYAKVEQ0*)@3-BLEkQyHm!h4z7LT=CWnVs99S^ip2B zw|qHR?&(?ArjrHVqW`5FnsEAuB$|k<NtX>syN^4Ssc>Kba0mX`-&));|4YPiW|W{J znQDwgv`=a2X7NF{kE#)aKkn8@hX63}b?V>cghyoBjDYFT4h)tpbev11iI<{rmij_5 zQeTkx;xgn=d0w#()y+Br?mk3r4yxyHM_qZbyNB>oufv1{kN%d8QO16;m+zh}ZD^kE zdUh|~H#Hb4*Og^$cUrDTr-Q)JVIi`q=9bdZ(!rvO@8Z)(i>y09HZfC!_f;930RGxj zP8>d5BC2$YtL&Mxtpmyk?v4k61osDgo7mIUI;$bx{-+pY|NV@@T~jM*aw`}~0LO*9 z+Wp?CSxnziAW-^8Y&0ewi@w8L+CU%?fw>>F_gE!@bEd2}5(Rg~%wvQ;SdulU_<!&a zxpc$COp>)dsiC(W?Np5kUGq`ma6P=_{ks<=Xy?P=@0sF+p`mpoVq)UZ;JbM}+M3pb zF9v>Lxa^D}7&~iRd6xpaoHUdeRsTto=gF~cFP`oyVVl2vmW+*t3L9>JSIuSUc!R&> zOL7FsSX<Ni^8HB7uMYC}u}MnMFF+~qVna-nkkom3lqFVsjlCHf$jn;R{N5Z|V*m4d zjd}7v+<_2$5hxaTpI7g7{NH)b;?DVDc3(s*^4gTTG-a{lyYPR8rtn1F$kA~)y=$m9 z85vW<9<oNVF(=9bv8dlA1_lXl3t8x#h9-Ud?Dd{I9`Q4}P0WL5;x`7juc+Ur^`iMH z!VB^>zWXxi!r0$6(oIkToEdgr3$e%qFFUZrAI)huW}2#!_oP?dr}x!a%+j#sy3wK7 zF6}hhjQ-e)k@`-tPvnN^K(&gO!ch2A=2E@a|ENaK=HI=Fv)1d!VzwvT+g=wg8A%gT z|8FUW?*)k)I%Ev{N9pGq{bsP*znHZ7z@Sx)B`JH&fQ#A(hmjeNomaMnzCD=(s_aN0 z$QBSOMN8n0Qi^M<554WhV}Jj9t)-=fX%9JXvCc|<7FFQAhWgYS6>hq~Hi{ofL+|Q+ zuS;Dmv|y0=Cj*6VXyPaQy{@8*v-pfI>30$%lar=!*u!SBbY7^i(!FEpg$*Pew`=Ah zvjL0ct(_P!O8NuuZ=G|#bHo}~_qIj^wIsQ*U16}#zMiT7zEV1QC*~^Bah(Qzt`xl} zUMsLfZ$EZy6tluH*OD1wl^xY4AW$G7bBJU}kzM1-5!dNt6}D&=n%MS_{lXr1lZ{P2 z#^3yMWM&MReQ+caDT<Ecz?t^dd%XU8YWx8TS35xBl!yLn&L8sU&duu!TiY>|omWd% z$sI(YX`7N6uQ?#Y?SbWMavzMAF-#+UNu3w6V)Ov~<3NrNx^L45Tpo_~qk^HBqqiY9 zf3(y)UIs~BD+l@P<8OG728krBU<H0e1v!!A|CZGxjp9E12+>?0+J>}rZpaqkOEY8S z+Tl%-J@KqvuKg3kON$X#id7VHhnRWV@27BkIyo~hcRC^XMJF*`YU`})Hv!??Gx)Z{ z6B|V8e^S*9Kc7*HkJ?E<QOhx{hO73H0Z9jY+r#2p+O6B=WT5__0*ha<>WFaqe;h;N zX)i5)rNLp2^a(hGXc|TPW=R48n;M*@5~fhrGOk}EBqiuVH*By5n>v+H@b`fIPZuuO z^l_*Hx3rU8E|YmeCI4vH|4@cwod%ib0`uHI#cl%z@&HB^WGKCIysUrCnq!cy2^G<^ zb#JeE&&U$a`&|tXw(&X4?veaoMOX3behm8$0Z|MIf*dPZ|MxHqx#x|O?&UYZmKRcU z*DijkJPC~PVBCLM@yVUA`&H*@b>+N54IEC}TP=>+2S;M$qECuc*wghBbl8iIT~{2S zJp1`s)EeVfZma%SoGvK({^7wyE~E5c88g0;Kzh8`V|2r9%q86>)RFL$1l`BY0{mFJ z0*7+3qrjmi#gssje#q*F|DRxdD4YxnNx1u{k^b;*oY6NSl$;`GeTu86G=aM4D^DiZ zu#Rc94D0wM;3YD%2a2MwKa@-vdSH`fB4@a*yE46Ne7k{^g>IBb|38djwi?s%PCjC^ z=)#$TRe+52+Yk$z*LKlG{@VbdSwesR8;_|i;dXzGR9;}NOGy1Aad1tvE=n<`EdY!Y zWFs-r+5H<dj#VVJMeK6L)*>zDLCWWt4zO()Gir7TmeJP6^VX(s)9`tG%2>W;VZpQ| zs;YHejTQsA!yj9&JqTIu?mptt>fBa64(xk4=LooN1e$lglCg$l_RrVv9Cl1Z;EFSb z5a7|4GuV**tEL|^)6O+9!A_>s0WzoQPx|-6z%j)7bVIj_`%1H}kSve=(V73L^M|o+ z`kd>L-(<^&_hvu-<G4+ix~PCsEN9pR<PIqQ0`q+?3auTVnwrx8Wjj%pEP6fsGJLt2 z@Q-CEzV8=&!zA;9<^HpPj{|Cx+yucbjD-!obhyQuMFZGdfF`WKAL@VS%G58)bt(#C zy5>iGMLhPorcvKI2Yw|QZnl5J{DpvbecPn<QErrT`oUCRHJ%U#V7ED(%%78&p$Ito z8s!)BfP#gw)BmKnBg0L3K$T4dLZ&iD>IS+kQOZ)KKo^fZ>_Pyt@h6;w_(-&js$aa$ zpAHK*8Tt8}9Kr$u;8Q(x_n4wU^&Z;VW&5c3MNSIeQ1<Bu@dW(0i6L3#2I*a9R@RTl z4Gwd1rvCdGJfAC-Sk?bE<*`~`;a3Q*OpyXOZ}Pvr-1}ncEh#80(yN0PtiaT7VfepM zSC;3YH1L^L-bd`XG%dh<m8w~wJhe*b>H5#LlYgL1rZs8R<@PF4XFk#N!^RquE`<Xb z?T~qVA%9O(XFeL?`&Yn5nL7M&7i(~~vE>DY0LufNb5h;W0^@<{59iD$D1mQ=Zjee% zD9%=QuT<2e0SVBW6YU<*2js9E%VdAgi848`i^Xo#l%S@h<OqEQu%mxW1z3KG|M+3_ zTO+LvE<b9eLXV0(-ra<&1`7nlHVTYa#yO;1WH5CBCvtFUF)W`f))dbElj+TC9%JaY ze9^@XbWbz#(sHW5pBJ}lPeY*Q9$w%->o)Rw%i>=Fz*OWJQb|J#Oz|Fma8bCCAmpG6 z{(MsAb+VAy(0e9YQxTBe{tc@8$gzjgBKtL7gbF$X3D1jt6h98E0W^op{X5K_#^Ew1 zovt=tP);XXeJ9vW{f#Xf)44c$3qnuZp*2U6ysE2Lr}zXI!&vO?5e0rCkm*L`kVLnS z;;`TB48AxzIzmGHd;BCp-q1^{;q%x^Z%`lqLE7f$DQ6%`)18iDB^4Hbe1?d|cfIXT zW*#0Mx>H~H;%_^&w6wH@{tdr8_uMPkgrLHnl_eyd2v|m&@fd%PDAOGQSgcW7wg^BH zJ^5X<+vhOoy&XlU8wh_otO1so3+y2a#wAGUO=_Bx+egKOi<q<7M|t+J{9uS#)0|#R zuJxwT{L;*L99UQOCYXQQ!5mM>0smpv6@uIOaxUVMKlkp??&D=h375351kY>ZnybbD z-5+dD1gbxVDm9%6F{vU@GLYA2N8;=s^5+OxqSHh{rveM*Iw#VvRrFS*<#@v!<~U>k z{+{F9TAN&w7$f~|PgQcs%@?r#>q_{9`qw>|l?I2u${ZcM&ryV?`k1gK^@axUoq23L z63WAE;EueXttG@S4oVC#1=*R2uz}qDVxEB3_||W;?+CWG49;N>o34RR`&kcCv0K)! zRZ5UQEs5{{xupl*|4_b_hGFi@Zrf|qOH&N>Z<eT~k1B`9zfDa^yaicL6^Mm0PwVUC z6*74Y0e`*lxMvfA#HFbI#1Ixj%^9!IK)e8Z2&Y6h560uZuTsE&|Ia<b+=O*69U^&_ zTF|{&xQSr6ou#`!d}))Dni=-Zlj#7tb^zy4J%NMcfj=(og+%Tn+ftw48-vp!spq=) zVsNX^nW62}$4@t&LAH5?xDpruT$%2&f3F&~1kbFIsk@!OuVqb5OY&k0hx0+o81=H= zn>dO;ta&c-*-sa-{twZU+<KnWlBK=<^L%`$-x4Q6bj+KPmw{9n1C3#Nw5_h#sjnn` zkZFdZ3)O!zp7G!9ev7&UEd3v>2*va&t_WqsbP?j^0tY2QuK<r^|A|;og9T?ibOxN2 zc=<;tyTykVBbfitTOQATJN_4xJ;n6?|FHF5QB8GU^k@<SL^{%Y0Ht>n5Re3rCcQ|n zDpk5vAtZF^2uKl-DxlJ&BONJHq)IOVLFqjZN`O1^{r>mfhkG9~@^Z%6=j?XooNKPV zFs~*{v{UunsuiqFUeKDv2=H3HQqgGHrmg|q31g|xU^~n7cZ6?@m-Y{Z3(beW(&M>m zbXz#<$gl|sRNolMEzPG)Mk`H*gy@{bpH%gB?cUg;1@*e_SyJoy`$q|m`B}Mxn+6?B zI|uq^B%0nC%ls)yQjonWj1$?WVPKe1vIrUnioIbQq!1lQP6$eKV|gjqy<}5rK*%&E zWc`MN;XX;+sfL5YzrxRkrHQSV+h393Ako)Kb@#$$*Q&>{E-gphmK>#Pkr(#!fBBVA zh(xfG&;#0}@X2T*Wt40a-WWz^zA9o%yURpPt<P5VIc2XhIPi^1Lu)gaW{pIFcQqoQ zTIKoLpay#F#ovzpesy1jU`W@?4gyTu3q|zR7VhHY(SVB=_QZOnt4AS<bCZA4Qxr~~ zT7yC{0qhIj`&x5jL%oKeyk-<X&5sGn)I@5!b|~28&x!7lSx4ajQ6feIHqKXnk9xC? zAH|aIl}^fx+4<!gvG?`=<(rl)4$R5PWOO1-TxNZH;>h{!ATE@ExIKD_W9Nw6ZQ-(d z!?0m3e<+Xr4vjK2A5R<fn)do*;iz>*3{mwg)l9898Ia=V#ap_@C~;33r^tmh4_^s; zL8nLt$06L_Ed5A*QOAZ|1BGgW@suKZL0(mst?0h<O=k%ZaUi61S+w80@iCB)`Rm+t zKYigq-*@JFC!C*?VmPU2@p-f)yJtlz(B!u>nRuB#mfoaH@X@13%ojj5JQL4;{`@&J zU0LbIt<V@r$G7GCx<$K(6!gr;{SAr@M1OEoDS|(h`6h#cmiS_(OsdstYHLkKavr^= zbx{n?OG)Y0dV`OfO-p=B+P`_g$`b|GqxO`w*Lz>hAq|#?RKsNJx_w$+&yU+e^oSYA zP+zLr&gS3$`tY!YzOH-th2DLZS`EP*?ia@PF+&-3-PQbsaP-1gyK?#Id*<6c=L^5| zyiN5>{6|ynYbvy!jL7kJ0am6Txp{@`OL=YvJ;ZFKgu9|4a`^Xb;USMBeO{j43>>Cj zc`a-Q+<q6QQ8KPf`S|x&zrA?|ZWw%sgysv~PY?clI_orHw8zhP!7jUd!3hWHKm6s` zS%iOl=>56%9y5;R8aen+s?dd9V_L*UjQ_aQ_g-ks4dGF|Dw>o^3j?(!LVauy)22{C zSp%X7o8}#CrfR&sd0i9!AL|BZ*kpdTEK|~VP`DjLXdyB%dXo<8&O0dc0oCqr8)v#j zaTAgNVz@m><<Vx2+`X}ReChm6FQ<L5JmmXT^QE*n_&2BCBBx^RpAx++B~&Z$0XUO) zCF`S+Wye?51ZFP|B<=`_NAaW)O1{sWo~g$etrNG#KMfZRJ8<y0)ITP8EA$6PM<ehP zq5b0T^5u9+v8Qs!&|h<y<4BIUiIwlv4D@uBURIbs_JxCZ`)Ev_1%);lupTd0G&pO0 z3#VG40RAIRHqMkI-dvo9=15sVslFWji4(P6DAq{*n#=)LR(W3zsyMVwV`J~&Q9Jg| zKkmW-tI4?vhcx`PE(!EY8Vi&zt$Qve(}gY0yl!u<VYuTV(MF)HuvbXKLjvL9%~ETj zNzy0UWWXf|t327}^mLuz5X7_aenqt*ZR9HO%%+`PtALvAoA=+rcxrCd;pIjTbk(nH zX<aRK^|GXywuJU8+#7-L{8G(de2+?1i_1~K>aGI1vwVM^MchH|M^xcs@$ON9RD?yN zd+vYc4PYF4V<<z^(GT|Gnwi#~<#ml?Jd%x~=ztKyQxJ-ZV&Qv`EFoOa38z<#B4lK@ zg;6wc0_YaIpHz`RNOOFTdKu91mmuCZ)+Q&YGE}_c+^St%&0_xJC>f+^+SaqCueuTv z5;vFsvOShVTW)y)KV#BqI*7b3S(k7=*h!g(;$S5bpd>))OS9HoIF;?K?;yq3B0AO3 zf@17)P?h1%bcF}J0*K#nM8-%AY3X-45eE%~r1Y)CcX{Y{SHGCYwd5fZiFt!{a2R!G zafO1|7*4%l@GyW+!T3z04I)OXM^4OZrbGMRM&^#)U)mvKk=nhyJl*l{Zs?L}b?{~c zS67I>{`KLZArTp)m>=%^h~-G!ZQ)WKJtPBbJTuGTfM!OB;CZV1Le{@%E~<nKb;046 zip+#~xq<eI>W91U4|3^6qk5OA*N2S*ijdvK<`d!oE!ESV84rc!=T}E#P@SB-0mQu% zJBqLvPO4-4u6L~M#GnTT4R@DvcH#iB^bBqyPs!DEGR0PJW&L*5%~$&fx8LvGDxzD0 zFELx()Ejw;DQ&|AW3(HNYm5kwx&1=Bpi>7xgxh5L1?dZPWqf!{*rGU`8~z`B-kY!g zs%5@Pqa(8_yH2b(D#82q<iNT$;HYWAqXRLqJ6CJQs%DXs2UdtbF_b1p5W8eDg4&hg zadE%=O<p=mfNxY#1Wl3wlMtw(Wi_!kGY>V3l<QACxen<+Yv8b`ccDv7OZyGD0Gem+ z<`>?Ay>4<6SfoRMvVZ>ryx7jL;n)uir}`Xy7yk$C-u(#4B!<c_OjT~{fz{cccmPZm zcCr6MyNh+*+-iyP33c6ka*KU|+^ih>CH^Dp1F33Z?O6ZOQ)lrvISPv5@4kizPO>Dj zja6;|@W<5vD6Wdgpve)h$|J)AK@UK6jG#(^XJ2|kjt6)dK6>>rwG|Z=?I<=@zst$V zsfS%-CR=7KU;k=s@!KnOjM@(&?-oxc-U^alvu#E9Q1Q{=bKZGA%!wRB!I@LPazR?O zMrwk=U4#rq916h!jcZA;n-6c_LYRd(1p@;EKMNX{XC8JEPzHmQIBNbn$DGg@o)J`H zvgSs~kisph`LQvaD@d>qapx`Lg6O6)>T3x7JG*)*g^lIlWzw!QqA_TaX}!xc9;ZlT z*Ox%46fn(Q8k(IoUmfFudx1Ya&d*|aKQadI)z5?wetGGhJ4w5-F|EZrGCGB<UQkGz zpY|cA0S^;U@sK-b=nH_I0Aesyc~~oNofgsJU6Y$|N(GtP*Bc`UxZolQ@+-p_cI0-q zc2xCjb9~K_Z|GTli5tSzq6RBIqRTzjL&aB%e|v}QWsz10*a<L3rQX>UqlBML|6|q4 zD-yemn~^xccA1V|iT_Y*;7OnDpIeaNjSpX$eebAOBC+qE9$kXY9xA>Q{H^}Apn#rK zATmOuUVQ?!2Nc3ycFds4N~@M>{P0wTD|!+RQq<lkjuG0wkrZ3i4OxGu*2fv+MMFD5 zzu|Zux_^@^6W`8&XQod&y#eJMj38pJ&Y1L|jw}v1K^6|^a!imeWR^k%D#&~O;ssLe zTS2TXefh>X4J9xmcnmuda5`lY&GqDn-=|2^YUm5P;NZUFEk67-voapa%oBy801p%7 z7qMxPwn4;L;TbKm=5}HbRjnMEZ$B<J@<wr}lF$e$ubWSkCE6^3r&A`QfTBF*bsBX# z3arIQ=D)P9PYdWCDlu>@ytCOXHekqF0!#*^1hwi4tmbpVlK?6|TqfA)W&Wla3g8tR zD_!}c9(FMj#`eQ(+Zy!6j13Y2AnN#kX=?7bcvgb=6FE6~TvTN4EEU8ToRiJ-yXpr< z8Vm{rnC+PQHOW%w1pl|0?Vrxr*m(R*=9K<jVSzOmBS}SfI)W~jcTaa_kQe7`NgdLD zyR-E&;#Sw@4Lk;v>09?l0aiEeek$@G7(r2;)Kp>wE0C30i>OXJs+IMpcRBIV6nGqG zXN>6W>5L7GFg^$&U{bkAfy^-XJ6L|qLPw@n=rqb9!_-eEjA_%!$-}hWJHbb}Y@b7D z8Gw?2*tj&r2;Rw1gBhptoV|PyL0I;Qv^Vm3@;hXgnPcu0i+wc9VQ&h_Af}QCap1Ho zpNS8254^XgB>xj{p|!i#<AG^oHt+R;JObyi@UPQKN0I~YLp<r8>H<y(HktCN^Sh`# zH;8?9XTNQeine-cpZxpP5^9_&Ppn2ahTT`mT26wa<yNl_IyR;sX?ukvnmtfu+}Iej ziNg|p$z%i-M55dX$STex+)g<=W2Ot}{=MwEr}+J6xEt8BFy6H7jqh}}NBbjQNy(E9 zdSUaPRAa^qpvp4#?a7Awa_dDlK2WWy(A9V@vbO!9;Z(e*>l(M?Db@m;WmG1lQHJ_Z zi&4Ti8*-g1X@JZC43Xyy;6PM3m6mtZ`$b>8^TH?1jBF|{8A9YOH$Oi=GNrxIq{_Nu zMP<AE{>Xvt&+?GU%dEd1c+;f<yps&TfpRLvPcKv}P)M#k#yHdEyUR=^8|4j3Q|IyN zZ<dSh#pc)O-jJIrDYyA2pnLc?*0tR7=<7mU^F*OISCsL2(wv!o0?I2;@TQC7oZWwe ztl9cOFnH#EhNS^Z((#mujazqkx(w{ub88g}3ZC<CT2<p%5ST`}a|TcNUOm|hj_NFc zczS=LhNrN9pRQ*Fjr5qm)B#|~>OB8AmW9Pc$Dc|Pcj1=;E&{~_2mwv&yn@h%0^+b@ zFg#C6;n0it0z?cjMgJ7~DFaic{_o)&!8t6Wqp%mH(*IjF8<|k`8<foGEBh%b&pwX* z!u%HWX3%4{Zg#RzICNzZ6?!gwMXuaQb<P0%zN8^IJO)q(n|Fis?n9OQVOBVw)718v zJ8CPRWAGkw5I!A0wB|aB(=z~EctrmLH18BiS>?60yxKE5@bR944_0z+6#vX&c;cf7 zSPGe-;sb>~X;oE*vs8Fee|dA7A~~JhkU@j|VB+{qlnE4t8m01df0~y&rt=cQ2(sqx zyn6Q$zzah)0}DQKbiVqt+H=u-OnLgM`#yfIC83xA1?VV0!qsR%BT3D=7^T5cluHO; z>AG3Qv?PPL@%%rp_Fa6CZ-S~Mic=4aH<C!Btbxm43u?UmeEz!R&HWE!lL7zlgCjWb zN42R74&wm-?l@79ddjbMohz*2{zKwqzzRHIt+&?_RbGLEH+6U`#2$k_I7PAvf3}gL zh;ElQ`awT(I$Oj^b%qBaXWFg|j1CYnUeqFRooWm&I2@Dr4YB`s<6}r4PMZv<3<cwL z6fpCE(F6Q66bd6FO*YQNdgY%G<e+^vgZ|HC<;0IV=Wo-JFZg%BD-zWsfL?SIO41>@ zD$gr~8Gs*fsxXL*^lQi$cL5eq6p9!)K~g&bRVEmh!O<a0TVTY*R@ddTj+iz;R}U5B z8J@*VrAxMvhbmLsY6E%hOfcr_uLvrmXkffSI+t3<wG#ik(ieZ_DgA?M{FUmRnq;J& zSJ2*tYLujcryR%9^_F}VenLbLgGR{N*-c)U*g+UU6rk3|woi2b`~w*gRpBL%nL&1V z^M&1PnV&`!oD<yiEZKrcL(np(=7$e<vR8N8+I>&*e_LGyHy#YW_&WcP2^7r*KZZsd zH<jT4ydwu=*p%P>_!-rWKU|`_$!l+dER>7Nw%HEP9Ga?SFl|CJukfqe9)OpV;oJ-N znL)&yol^=Y1WpjW%$5H49aVnhhdKD}!sjSNp*ZttffFPrV&Y&jpmHab*#GkvT7&Am zCBO|o_lvdG&j$bi01XwLCzVRJVa_ka9svLyx-oh>YUCu$Bme+_Ttoed0RR93;C~Pz z004jq_<acg0D!Lz)RX{~Bdl8h033i%n-2i)S`nj+rlu5J4>S+j7~XS*-36=cT2brk z7c&OU*go$H(=T#*UVdkagO2XE>0KkLZv}5b2E|zG#*Dc$BziX<1Zwf$&JEnyeBtPC z{RrEFT?*R&%=I)D#gz}?1O0#gsIDQu-`?=JkkSEFR>UAZe>_g*k?4dx`{+k%x5W@X zkbXSA62M~f`~#I02;_G+nq^h}G&nCQZ^3I9i>rj;D<%Q)2a=+6rg;QF>|le#R8pii zYcN*OGr2Xd_Ao094!kYH-)cMoMFJRK>X?^RK|y-foZc3RB+9V<m7!1*KYziW_*lko zg|DmNzee#DZT08B%?qgjAfAd<;o)(}yNTSwxbto3A72$2KJad@{?d-;7kojaCnO*N zz>}xC{CTk`CQz14?)HrjtI=uD)b+Wk@Snv_ZU*9CpgEZ|TA&IvmP!u@jg>XbE`$I= zU$QP9&GdC)7kpOx?-RenvR@sVxPVD0FO8A<VA{~P_~Kn}_hjuYsbwI*`LmrMig_GC zMMJ3>N&(m+PmCb^@0MZs^KirDbj?h_C;-}S|EzhZG^0awJH*mh_)l$s*i+Ozz=aSu zCALD39|bB3un_=4ynU&q0u_Udwd=|uqc;2s%;VcmR4G1c-U2S~@bQCU;SroGh<Dua zZuTbBo)17VPLCNv_HkL`qGQ`3i#6s?Y5|fE0~)wuK4bKMeE`Atfw~%hb}WGEu;joE zHF`&;yZ(@4o{1K0DdYENtgbt{u&6^2l+Kk8LVaQ@a^(jRLp!l)TS0ApAt7`EzOcM! zY{w(_t#1J(bPWmp+jYvL`e4>@6!w#^R(O2@{)sw+uZ^&h2+@Hvl_|N>fJu_t5fr|4 z)3+$BeSPvndky@v8XdjvAJqy`(?q`#RDVD!W|W)-W)g?fg#LGF1d0Se?;BN92mt^^ za)#$dd-Fy@8fGuLVs(4Y#vUar0bY?kc@s1SzOMq6#gCTkrM?9<8$|EdXe4?D)7DVf z85l+UgODFGCZCU=D|V`ILX?<4O2L{M0MbHh%E8#K&voYAH;CgD-Zi@UP!&V-?V}N4 z`l1G45We_SXqWy$A>=#^V0b2h@OaGHrH<Yq)h%d>asZalIsAkglD?X=L**AkBA9`6 z0HuT`1zqa0x|5(utT%R)4OzE;ne-c-6BJP0L{$&e;wioX0u(i<A#@-CKm>_1B9Tik z1~7SMu%s&o8*nB?+J8k}&Bzf44pB(9RpYxL0suT1VhB^);-&?vaVJMiPj)5AA-{Cy zwjUCNg};4G{SfdQtjDbvp^PuW74{ZI0#F2-cvL_Dz`n!DK3$6r?X95Z**BV(DQYD5 zrKm1!M*x>ZV``m4+zJBtsRO01{`-mYWj4k-7DW!xYx?KjL6BG?<LY%>^snGNf=1`3 zX_MzFx%_z+@`qixaah=$Z(I&NiHzH-git<yP^c>0rX0@w1#1X?G64YX;j-ApTun^} zo@zXO`m`HQVdqgm0#zPf-o`Z!Qc_YA<jutf4G|@~d`o^ls>MU3Q!3d%WROU*Tq@I% zz;G~}i%J+0U{menoYbI94dDe1FZMr046iecNVG*i?@Vd?yVjSm<M->~OnkXTqkD(4 z?#jW{+1{1+@%jMGe*4wF%K7_w#fB~-E>Twk$vZWFp!Ib4m9)YOYG_>vkx~{l0e8m& z(A@Lq7Aw`xGrGQSj{auYEMwZR%Pkl9L@~LC59@_*{7l1C^Lt}>KL+qbM7)vn-?waZ zos*DV_c|iSs)jPt9(Vq{<DhwOTw{#>S8O)twHo!?2jK4O=W5K>gH>Ffd?3r@vi;Ke zJkk{MxVwRTTVn;veXpw8{Opq0A6Lf2#T7Xe&KsGVe?KYB3wcA{-H9}=wA7%JXJd5B z6#Yp+`GLTReypw=KUWS3fh^WeHs{l?XhS`@lR-pHhlYTapqD?oDWw+8PM_Ot9Qcns z+KBH-yfwWUHyIoqwUK!JZ}?6)5&7j^Y(Dcc&n@7&4iFWFDxo8SJpF$Qq6>iDlS2I` z$@XeLYl$*!)I_ttDLWyTUKFd*FH$8q49eFE{=3lVk#{{PSfv$!8CS~)+Gi;XTJsB` z)}|$+d-)T3P4J*X46bJY{(@gBQ;Hg+`d|UKRbK!&^+N13rGK8(?&Ux@>DhJEsQk(B z`@Mxm4q6(TwO<l%t3Yah|Nd?MYFzOlWb`q%_2{UdL((kC%>j5xm|WE+vw8d9a#h0@ zfh<B5+3<td!JD)Fk?5A{`Rc>ehbBYm!iIJmuu_vM>mM{UG)!_FJ^~^l%M!>NoW>#L z`9Typ%kdGM1SFO0uW)inJm#;6UmuAm6gKiv_spfEO6NGFT91+;#6yDFf<EL+tNlc= z2Cr4{Q7^Zoq-4-BR?pDS?+o;WL5oo#_*{Op*7@$YP?@T4RjtmEW}fQ!n^7os(#tJ# zx^7j)!cD1Hl=>n&2r2e2-OSEEPx~$TEx5Tk4rh984DjX!TNoG^NaBQrA{?dnrz;k+ zW~}_JB%hGG;%=@Evf5{&sue}qKcDLj{h)~iJR}WxH=Y*@pwc5pQ4pxCNQ2K6JR5Zn zLb3-j1^_R+uBwv>O;M}mZ!h{eAv<f`4&;h}*^cMEvCh&<K9d$Uh*LVZ!-flDJ%DW; zpdQo!@v&9WpoVbZcO1$fM2!{1vvf2vFYrjCLFjH}e0==9h|}EV4&*KMtZ(Dzm!l)d zxY*d~kz6@{t_c!kdTOe2sr&+tz`K)%5SY$kYyf7(f0+~aL)_%4)O!?tVUKancWYI& zwd9b!C!;X*+Ly1D%+Ff<_Fya6x17avHxApsKhwB(T%U1tJ=kEfz!5kV+Wx#(PaDt3 z*H=&sk+};z1$w@0d{q<*=vP>~u=s;tmcZhG*=oCAtG50-OpZBT(j@0~eQ2)OWaFks zTr?w3<d|RD+gI4M28f@WFRXCDe^C(Lb#O0cip+CnuU1(jFixWl9fNjuRTV>I?f?@5 zb#RNPlN#|f9ptI7Ku_Pj`TBnmcW6ZVM!(u^IMx)rElo*Dc?`S7oxI{!OAMwA14v@$ z{&95bsk#uHtyS9zp~&y6K+o|75QF1S@0>w93DMc@8J2Sra~VDT{rzpH(-x(+{iB$+ z+`UjC&m3sQ;ju34+6NR%g8&wwcqp<bNNNj~>$+(nX|$nb_+k=e2hZK0R4a+8+ac*& z^&*Ia*>5kBy7mK%engS$0+B|kYLf4ZCRP~M6e;BoI}IMBl`vXpz3cfH7Sp&}O`7+f zHna>6Im-6T-59A>y8mdSH639VthmMPn>dm0Wk;#H3Xf>Ff<!Czi-_DN5;=?MMl9Oi zoCaZ+{L#O$Xe5$_**(q-g@7xfMnaeCx_y|948VmH__9Kkn)Qn8VAD@Yej!m<udaHP zr306R2DkY%e#4Qyx!R4xh=_>3m0#c1y_*{fb`OicR<&QQJ$yAS7AZ;yWO@6Vn=*>j zfGR%_u0j1)0AEhz%l_{^0FdXfAQ!!}>NeD^JLOFt(Rcdjp!GzR6XD^Ht6WzEI7c#s zV8+$fqAA!eg>Rl{CurXQS(SaLUfuvy$@us|`k^S{hQ>00Aq%xJxXIRY)gv){+sA@F zM8u&I@9w<DY)u~QPnM1ftN)t>BMoH%K--DUrnN-5lgphdk5HGW?Dp$3i}bU4PS>%a zPtp})8(KUvHN83Oe|3=ppgu?$Q75BBTc-rLNnH#fI(0q$>EQ9nu;fkxi}Zdh1)D6H zswu};5`kx-fC&=ED$C~My_SRat6#bb7cZrC8hc@#ujupXQFvTntO$Vesqo-YmO}^s z%zKDfD5d{(-AStJ+-b}9@6W07Zu51LmuGu&cUu<H-S>qqd8_J_KBD0;>30j}JWtJY z5Qe}B5|8uCohn{3CW-aQwjiwcc>MqjH8u{zH^E?R0Oq0qUM*j~4cB9$AOL9u@c82v zFANE6hq`s;I$F>F#67NR`V;%E-epQQrei@>vLWMVrhR0MtA9*(y~ydGzwbl_yq&o% zhWClN8<4j*fn||mt5GcOrYjeH>2=*Xu+PAJ9uzb115p}n=vzfN0>D-BHBBGd8IyN} z6ZQ<4#Qu3P8xsc?e|}-XRlL_QsUx?iQ{3&w<X1^yXKSbPIo{k9inKC-wj6iX^mn(* zbyzOXSqh!J9{TiJHU7cVb%rylYF9tpQGec}=RI##o12?i=tV5mYf;fx)h8O9C<R_0 z+55WN8~~~`E&|{b;E5{iQLbj9p-#0Cwsd7B5gla(3-mnQ9514uz*@f<7VjsE%*_iV zE-&2cr91BV!gYcDpu{f#8d5VybJE<qKb5>Q&ohMBOD*;)L`)Lk2+l;TzWWG7R4_p} ziXGeCZh(X<F%Cd&LDwmZ{9#sn=N|s>`iy)n0a~>3TE)ta%~c=P!ZO>X**{(r=)kTq z?`A*wt#G&%J{Q`oau-VHMe?WYndxEsSA46s6L`P>rJE>oXkDD)*QoS($Cu6zUZi56 zr?1R;9CQ|;Dbl?Dx|ps+_y_$}B*Uuf;S)tvGkF><P>}kN!dNiNu!J=M;O|#=B8d>y zer8m=03RkXIs0v>%SQYjQ}*3==dAx=x=rnN;TadDuxJ`#HMV6-z2#=m19@9Ty!Y{t zG@$NvO^y{h{qz)SEO@p%C+YvECuU78iTzr#eO2aLZ@EU#Bjd9bTlE*8`tK|7@q-$m zwo5(sq+)|=vs5eK5rKeHuX}&0?N@m@?tAXPie0=`wy1aUrJle_NG%GO0~c<>P0!Kc z(MYp7{omJ9f0-*16Dl|vxD8gsAt1I%t@|<C3O}(Y0s;cZGgUUX3NEBth?8H^jVn57 z#;$g0!JbFx$nbX355|m8zPV5o3BV5%?yVmKn8X?^>DI&EkIQ#!uXjzAXlKXc6WVe6 zOD#5Wn6}?qrYb>}bjQQ<&jao3L)RH>rz#V_cYGIyg2YIROL~3^vl*;^l!`Hs?rQ%` z;2i1SDQZhnb0?(QZ_hmH-`qbA_-nu~(0{E)asaQE{~W$3WQ|}4%AR?xmI6A(o$;tD z;__rxdO4s-bOM{GrK@`|2%CQb*~s9xu#}*0xgo!zid4shof_Agc-ED(@lwKB#LAt+ zOfwbWRQ%P9&XK%$tFcY^i~T0IZ#Dt_QiK2!kPoAg0k}H~UR@Gf{ZO5QRUhK{+`*LN z*$vrIt;*7<N)hJf>fpfV<d<}k)9<qJt@9=N1qsv7#iH2sL4vm%w=OJSroFu=-cMw= zMP#k5_uV;WJSN6e{iv)>9BlAF-!OSgXa(br`jJ5YmlNp<FLlKo!P+1U<)MtrN@@xh zl@gvua?W0s*-)>5H-#sMiWM4!aF(i8j=8?Z;f{HT^sOLKW$QQD$K*{wOB+)W$|}Az z>1jGmekELYL%E_>ta91P`wAL+t*e*Lxy%B0ddQXQZxrWNS&QjHHY!{8-@N`eoMq|i zCQh1+1ogE7wYcgSqJ<BDruyC>kN`lYAY;#k`^SZoa-#^sBb<obAlYlbe7P+sNnK0J z)t$lhr!*<z7G}GF^s_H``Pc50yf_y<(`WE93<>{LXWIN#xn_~#7DYz72kPzZ&2GQF zxrzxVru^9adPC>SGCyP%zWiu*hokdQ@xBW59wdO+MxDKc((3_e0MCU>4*oW+P1q4M zPhz>=>5BHGC4Digbr5CAlue6n%>RdE+`gd;3Ul3nVY;TSbK7EyUM$Hl5!7~4WfHsI zOJn;8d(jtv#I2T?bFex}e-(+%JuIPf*dw^F0xg5gKBpmd;XeImr-GspVz{A~Y1(PD zUoHJU6?t4+fet!ole@$oAmvgnOdEG@Ia`cWZ_-4O76yDl$u%<-4;u7cd39xeuC-)a z9lPmd`3%2(&!gd&MQ9q^Y|-fMs045_(9^44?dL$&@mGk!X`|BLOp+KvR%D(TfWyL2 z35FVa%wMF*AAwjc7WXDw@>-Ci?9_SPn(IHNN_F$*McXhFD<W3kEn_fkIi3}T!s>HZ zG80&xCzsX?lUUUcWfY_;pb3&BxcTbUJL4vPg#}f0!B*s4jlIWWz*@q=aJF=kRDcDJ z076em0*I&2H}0hGVk+lTAqAbay&n%NuU+WMRq(%V_;ld=skrza7vjLVG{>7{65CK) zksWKRiwq1W-3rpL=3Tfe*HH!a8c+(_cI+G6)ZzCw90F?;qQmUL+MOSoUvDIGJa8Iw z4R)Adx7cN{uHIyTt112mH$hP-e-z<v)EjO!?#^L^<@wg?=;N=#+nVzif_(`rGj8XH zt3s0tlpPjo9Q)n_nV(c@sGNhBt{%74ZM3iT>Z7ts<R<RGytPttZ1DTx3eVm`<H6T~ zRNkbHtNj*+XWqLMZ1U&Dhq%6X0Ov6_ez+n^DK>>`MH*kOguGxG0P+0hD1;<n%~^6Y zJ0DORcsOG@={lS#K2zs1wXIZq@aa*vfO(WeE2WTVGNoQqY0hMDoe(a%Fn;-MmwGdR zFsjc_=bgyb*+W|ANK$F{#dD7Mj2U?LIQZX}>PY?L&|=E{Mc@ZxMmXOEzRb(b>IUZP zqmazDB)<?@QT?q~;T0+JO}6OKoCnSmDxR0$i6XB|Ejk6}BN=ZxDuh!qjOm`*0Zsp5 z*!Mi{1rde8y`Pdd-)Sbe`OTxTZDH!iNJ!)_Y+kqd&?$a7IuGy+PY%|@c|FYSSe74E z7tuOHo?Q9RIA2q1;Jmvwx^?AX{qKZRljRViySVG*F-Id8mu>NtUjhO^gH$OxZiL4> z*O8hB<)X81z3Nt+j8mN>Q(p$0Jc()al){tGSg;a?^87BVAxt>|MZS*M;LFjY%7^C{ zLl`-2R|Oq=IzF<#0XNYUe#x_c!}P~7?t5P9>n*(9<!?#0J9A92Lg}i%g;AsJrxXRW zAs3~HV2Vd$v<#vu1Go_4jj^TQo_vdM5^iNNJrj-+P&>|_t7^a824@nbud=XAk^~J= zOg_mkh8W>%dVL{G{Rjp-ZD30dKGo(4lftkmm82p~`QwwiFogX=gBvj?LiFn$bCp+A z9I$^GN`Wl)Z!|xHs&yXRk+fvg{-y`COsx5l<nuJW!LNjF#G=;W7bfVS4VyrzaE@wm zw-^TP$|v&4662R8)Yt%=h!-Q(BGo!DQ20aS3s$N3TlZg8rVCq?berwuShu|)SG!y; z!4+wzCG_5yt?%Am#exRBc#pdTOFfoWTizD3b`wcfpQA%-e)w}%c$P%^0gLJWM{7Mr zuJN?C>`f`umcZ-fk*)cvn~W1XzD(|0l#Ys8glY!>gvl(;?VzVfq|+IfqWW<OrU>EX zL>&B#kB|Q-CFTpI1aBu)hy;SSf=r5B@>m`t7APV%f9Bm`PxLF3_*vI&BBfDn;4nBa zV0O6Qa-f4MT9Ma%;i@Uv$`Pz@*cGAlG`91AD&O2hgIb0b$o#zdu(5M>>6GJ*j!a1D zT$k@gu75*hD%$G$^0bAn<;G#vcHL<d=Wg?v>{i^S&+Z6q0!aUyGu3<Rl+1=>`_`?v zn`wN$Q!e40^jujxb+0DdcK4x!`RYz(OXZ_(V(Ad<l7CBQvv!-dnw7)ay1Y%q5Bgd* zQ~eqsFgM+GlQ1Y?B_KaHFAjN^V$_=Kzilsa7vZaqMtJrovQ?pS^H!sc$5qp|*y5fd z4D*jgV|p-c#sz@@$!dpw?)QgcX>1_?I${e`9!Rob8rz6@d+<e_g-6?Ig=qVE7)4;i zIdMP_e<J|y1~6nlK^Pc-eQXL}teAi^+cQX!Q5&KST6aat&QtYDus*xzS?!IdRjd}r zoE*$I4DWh2m}W2h)!tlMYl>a7v9Kl_QkF&6bz^<B-etej;+vw6yaEo>)6-X89S@1} z=I<Ulicx#cxTPWikA8J2D#9m8Xvm{eT>z{KfU)3xOjdiw7o{(vZf57s8&v@}7aKvA zzEjVNTxKe-iE-|1ZH;YD*rWV!N9D3Y053Drzo(QsUCtEsC^P^kNVv^c{-_#9k&{f2 zAn{x%sbjBUAq0fWade|L`AMpeNoOlbE?n2c7h-hkFPh6q-d?qhlHWIQ{YIIRl=6;S zts&sBi#YnB$1*Os_~29Wb2{OX&syj!n|qj;ZG4Z003;djYY7HZ+=Yl&c+QYr-4i`0 zq;;FG+xpSZ9^^V0afe1KEa<6VgV<ArOi5G-sg~fbUwN<YePYgh5Gq`DVbbXAQQKwn z4jvuMR9d~#$&ooqSxc02=NrTrz`w;dNFqcBG3{XzZ7S6ln&s_Ec6<3XBpPA5ou_<q z^33+pEM}R;jP}v~x44s0L$!Fuqy0a<akZ!nw;LdtJ)T06&lUo~f=|0t;f__d+^#d% z%`1{0^SrL_Sy-RlUEfX$+No&Nd9)TUnc3cGct7Y2w*xX*v)e%a$>5r+;n)sIub*n{ zPo((67lnkUnjal!=x9ign1_Nb&gO`r5p~@i!IxX5YoZ;vV^O_VC^>hFU54d%!>zyt zPd%ufHvqJp=npq!TY9oD)3jC^4SROmP<EA7QNBB_#_{+p35nyL#C{AzS7d*OE&al@ zMM`j-g-DzA+ugTFyq%H!64WKSBEC*3Q}j`IXGig|;Wx+8kB{(;fr~4w!#o%Z9W`a7 z)T9V$R7v!>^PMAsN)J*=0ON}-?`cS1pGo>7xhO2?L-yw^XYV}h`vb!Z1B#{`^)$xg zvGOGc!pTf5Rt6<oK^5ECMH0$GWD*eTc`jgL82^O$FNGL#yYLHjL7Yeg>hoBz*Nj`7 z8EWiq^>bD^FR^0%NfLqxr+ajO!fz&m3+uv@JKF0n;=ZFJ31M!7Y5W_fyK^V=5fR`I z_sR<qrn~(W!s#0(^y=(17r#4S6?()zLm1tcWUqxYPmrLa>bm{8D?HsuCrMf?E8R%x zg)-$`XRDK-RALX3!oHLDP>+T?M>0vNqX|FpDZ@+a`F8Xk@DdWQUGM{{k$BzByj<LO z`?tbI9`c5-=ghzVz?gdYr^HlhyFXjaMf3Qibk7$B35Td64z-<muVd&iXa-s#wj}M! zy-sF&z8cMu$RX>q+4!E-f=)`EmLH%;#n)LtdmmzYF7V_|O@Rjy`A4JE$=Ay~a<E?% z_sjC9SI-taIL3=LQYGbatI>}!59x#FFFH_w75c2*N#+Ft<9puS`fum<X(0d%<tAxp zr;@-@JL0Mo?_hmm)L?n%#+8(%m})dx@dJ@Oh4^_f?Kix}^vwz@xMulfb5V^K);IL} zOKoV=E6?1(e_5w}2`v69r8>DH(Yfes`!S-MMfq|yK6H^FiM_xCHl3?yl-XbC6;-T+ zs_m~t<+2sMV!DvB7d3S?k`<mKgYN~=O26WyVHfK(B25h!#A1O|x!^4!r=eg1<1{U5 zJzyuTc*}^R4965+tZ3SthgZt_Zr|&;_?PX-g%BOWG}MHCCJ6i~SdqN(Z8J%E{|3=) zO821r03J|yC5gT}8{|^jKe$vT?8y=lS|@W=qLjvFjd!T%hSl!!24VN@RbY5YmO-cr z3HU+$o{I|Tp{5GmNp#4PLx|wC&_fD!_N%3_)gZzk9r)$)yR57%-c|n{C!+3)J|W>W z`=I>Zdv7l3O=r|N?cREjCyw~OGd|CJ$@J3MeD(SYizK#tgZm|o#)Ui9%|Gur9C@rI zsC5f)Axh(d0CO+7%4$0WY=TSn|0-VP3vWvw>w8aXOV?jc=H2+X#nB6o^d2+>NQS?E zYMyB&fE5)@$x=sKC?-yg97Oib!NloZY=v?n!AeQ~Iw|{E4dqqDzM4n>er3b(CMn(y z%!KC7QG(kI5Oc@Y+>U(_!lwejD?o7GP?a+p|Es!_$su&De^=?@-3!mt?WwQR9XF>{ ziv8?CyU(gmCONtU=A$NBkycjFTWdq1N~LO7&3U@7dIk=Rdmoc6l`CIm^C8_cxU}`c zW~G#FP;Hv&LV;{CwI!o@u)NPfZby_*Q+dYw@LPZjp$v@AEFOj6UVL8N-SeTs{!Lc9 zbVy%3Qz-?jj3@0N#t%ZHpcd>Z?&nv<g*Zr6|5y81a}TEme%f(P4iqsvq;xWsG`@+y zr!-Tv>sc82fh`ccr??wt%v?|}_<!Qmz8hj?XOd%Wg{6h@U!K0xkk>?CGK3<{@{ z^~WvhzaD-1sh&LIz0qKP?5?cK@3MEEXFEyg3KqO#k=2gvXZz@MpOn{&Mb<D-1_b)p zxOX1)-Z^r#(qriI4OIu7Cq+)&)A0WzS9}w$5ZfT}Fkk%>E;D0O4)6RPvp{0hJp{IS z-ghinlDGZXf<EL}KkUhUZH~b8cVGY0DF!hUtafz5YM0Bz84N#>QnZ>(r5sl072A1l zUl0{3(0i;$3e)@*Ph;D6wKKO%V-qp$2)Vv`(HDOKyEi`%ig!DqwABXwqp(%yMnAo; ziLcw7l6Y9%CDDf2*X>obFD93IaJ=F&S)$#?;?e4**yz3##fcDoNMk(Cp0*RjEOo<R zLZ_}UiFGl}dv;ATK72@yGJ`(6uj=le$A#@y%Xbe$81hb#9GKQQji(7#wH}ApznU>1 z^vFg6zLH6pquNQI(nD?0d<}p!vFgs;2e1D~R^}m|{}=UHZWT8@zq0o1BIMRDX%xJ5 zqT$T3v0hkDQA6^lC0sp3RB0n<d|MAIdd3UsCrJFCrrZ6Z>FLG*!)kuS!7ew8?kGo* zT`;p6zIN0!4fl6HNoSj`>$VHgFakh4i1n08zvR(fou?ez*N2vs2wo4_+)P}gTevfg zm+2RUp68a_`RcU4Jcwztaht@n8T)G0N&aZ0m2^b+-I1Voj=Y-rW{-FbIhQD=`*_+- zDyoIsvAO-uicZ$BShi#S$0+dgY4`*3u_yVoM0iz#U^C#J4M615=+orfXnJH`5bI3f zM()f?mgC3fLaP?PaO&xPKJZs3w~%J}c(Rbm=~tK5UuFB8hv8Zd=Bu0)cmLYGq;(A+ z3~!+BCVFjBWqm#J7`u2vR0sM`j-V0%scyid$PE~)?b*SCBTzbk5_;6=WOBsA>T;Qg zoVmF5`fS1Rbbl!bJb{&>eEdKS`J7@9bHlb3l&74vEF^RFIrnxmV5^Z6j^dKU5x8_e zI@C#HYbS7yloS$@i?8ec|CJ*is!x(c7f83RM6Zq~2ECLpACAmR4C%==j3!?nnUB;f zw0_Ia{;byFm$j6bFCXQk-lv0AdzBjRs*;1pv@F+4An>`=+NK__HT!<bJ!L)LG1bA5 zk&j7>Y-?(XtdGz?@`TSw4|3Fr6=g|k&O!~6@y3FmfVDHSfzL_d1qhsL+=sZ}v_*Uv zDxaNox!kO__Nc|Tb~?EDz&>kvRI23xLR40Lz#DvMEM9Tg>G1vr*tV-BxT|EodV9U+ zfy^f32z?0u-B7K_b71>(MTGU^6ZZ3BT6~3hh)i+Ea`Nn(A&fWnV2&GiiD*(trkv5> z%{AJXGO=kRvwu?+9~W0-+$}I~U?lRwgnp=}KGL9DqU|ipq@r6h>l+ym0y;XRWL)Mk zW8X~X`<1fG(s@WZ+u=G_BdzyxGq<Y!GWJf8>k;M3;y}1Lz+=vC#NsIsAG-$-Y&YlD zZv`0|7~HkpfRR6t;OGBr<@w>@%8FFnt3Cdnf-WcGpwczK%vrwUz;^rnstQVz9!G#z z9h{2k+NlR3Qua~_z|N5~!AHFeYsBQt5Acy__KV+m5$RN8l7#rPbSr>(>nyQFcnC95 z+aX2KzTKc+QFmez&mvv9P(NcWSL3%ge|^~Ei{YF&Q>bgzqu=|DX`A*<lvtMoQMqU= zG4~7=<);1(E@o(Whd*LyYJDKJAC15+#dUJb5M|>C-g1$W>EomJ`~dt1A3)_r+Rj&Z zG&!yN@WaOYe*8Crud5J^D~M+QUSdC#&cKBbjimkRq@mL+k7B!3<6ATwAp_Izr<8-V zvSPHrhf;meySMVRjLf77o!^+w$bE|GMCPmQejwQqnDH4XnJZ`v9}`qoL<24%O>CJ* zh68F~BfufG%&2|OXm)$X9Ik1t(QZbU-O}p2&p?l6u-#0hRdj(TM<mTxCkEFm-3tDc z3==vf@|Zbs<LIJiY{kQ1;!r#W7hWkj8<6<!mhwBg3gs373U8qowU#H$j=t^GMP*&N zo>1}ubeHS8rG}dueC_Jbzj>@bi*pmydEOopbvlLdd@%$qzLEF4#B5!U$nKQutD}SB zqhYT?pgA@?ZaxDq1WD|N6d*^7kS+DP5@gytDrn~%NWx=sUR`ie+$^e5or-jlSghi3 zB1_V70=A;*sdb%$UmWp@s}W&<69^v@*9zhIp@dqVjz*?mh{N#<7ws=|ZqW7|d%aWt z_N|g^Rj$vY&gV<AY-<}qdL{mW?}EQ>1-UUw4k|ZMuk41Jo!={_3#ogZLRS6?|9uks ztIq!5>QjdG2f$>fckqwEq-gS<M~SaFB=1bX;CMj1ok9YbQu*TD8T8|_ToWC%^(jLt zc>8l{rOVWpDSLIa=3d0JI+Cm__P)ehxAd(~B%QM3JpxT>Or@M~Qbr>{I5q#F*aOg> zu#jAQbysj2TZkiObG(W>i;BU*Vi?3KoTK0B9LY4HUI7100yYAafuN%^MtIkWL16z6 zBJYQ8^AGIj>zp^vcIRHpOkkzz@wjbv6w~%9?(cy*Iy;>8hI!f_Dtl>0Edu~Hn&m4= z=ozk1l+d}S^3@B~kwPmD(+NrGwU}jnHj%4hKks(Xf?c7Nj`FR}k+rV2gAVLQ0GT%j zVxhV(SeKtXY7oM?AIxZ^^5jNf+PEbpB;K&MF|A&loeGNtg6$Ar_3KBk&9|LMb=5Wv zxk-Ve^hIo6$PyK2SDtCRnb}ZAiSzP0cC{R|%h{bDuAa!FXKAI>(=&|&SSYjwwH{C? z%iiZ8qQ%8T$#`U0hcxt#=qfzjZ#^0DdppIpT&$5=E8qGj`Z0!$^=iMr`}WZ>w&k6n zZ^z@@qMRobpx}k0eKNRJXg?<;2NJDF`uXL~bcN)*7cVDXk3Mc>#(A~Z{Y~KI@QE!! zcIu2e;`EO3rYDA&!8}$mtv|}Vu$>9)$2Z%beUn>))cX_JqB}<p5){hT7sHU!Txkd5 zX<NBrv4~G9vwgFFcwPdf2E({kBtcYQQ@;R40dj@6H9v%fw0I%6sB$_%W3868M7a{g z*_@+P37x|+^inuk+Cs`lfiebeRR-$xP<L42-ot6FY1XJL9fZZgwsQTKnP#hOU?m4` zh65iT-~QuX+9EZ@<XwEyJ6rF@s!n3(Cm#)J_&_`7AO~hk7}Mrb!<t2q9rXP{mOc0u zRsVWpB-eA!KI2zd3@WZt_>5H4w0R}QE?i4=H{dwz&r4{^Sbzv_@q&iZf<9#aLhvK< z=7Qa`f$7;-;|kb{|ITLH-hBxo(%ZWw2lwB|7MAaD+w;Xzt?WjunHJN9fWta_6Uxb0 z((ve8(s%p!QJK^wjm*Dt+qmm)xqitCF+v~-f8u>!-5J*8;lzI0_A~=GebRSHDX^QP zBw_p!33hywLBI*D#O|1Yc@L&-h;+RpJN8o;P`bhNx?D*kOCKB-0dR<67W<Yv$?6;_ zSE?>8H%Y=!w0lUbt8lTNhR+7&POkn1Lp>sBwU1s(oKoBte&w<A1c-7wo4=^gM90;& zJ>=EN3DCfUwC)kz)gFQQ5lq|H*!A}hBMr*&w3o%cFBAf;@Z<^xReEF#Ve55MROw6T zqL7{YDslAMY~s&*TGT~{$K>6cTup<15>S@Vl_2r%3MW+8)5C!%9Y}~EGDwM8!C)zG z>mpS+*DB2N+N=5mi_c_HD|qR#fi`VeOC^;{JmQ-^nW0mu@r6a$@1N&Nz1iI)`Kv@N z!w4LC9spyRiB0YB(Ms9TbLHz&N??6TE_%D3s>@>;a`D$De;VMw*f1;FDw(x5K@!9g za)^p;N0%v;I>IC`#-(#z{8-)&o=6nW$e;DGc(9r^x-S_XwfG{Ax7>>ltc>rS_`_fH z4fJ&n^hS*svD1cDb9I`L*Q!-T-8nYRxcBIP+CrJp?p&=Sg%*e=xgq#Y`)cs;528QA zeUGx<fqp}1*WS9+xPQANHqUBmR3uq~=8=PC=ri0~?ZYQbJmZ^`gZPDf;4UwuQ%7G> z4Px5ka*<3$&c3USUyx}`Dl63xIMv(UdE}i3z@+?LPhQeVlA>MDuJ67(4xOXU+ZG;e z_2hfiy+UyHN0Z|)R5QUQH@pBU!2f{|&^I96*VTG%=@~c+uWWEzDACE1_#0e&&?d#n z87gnCa%D+(OxAsQ6N70B{Lnu0rCr~FHq?c)bB@9;+*w^PSa6U6J;|ft!aFOygjW~T z1?2;0tL-={%xa_fgYgk0a2&BAn;|@Au&(<o0Rr9Q_2Si*gAoE6@TgR(iW!oy_4?*w zBT2~>>5p@#(+`(<zZH~0Hz=FFb=nRx_WC@`2a1K)Qy;n_%(>%MGDQX?Xq_Y7jMh0F zJG&`iI8S+{j~yxtKkMD>!f63c^!aeAhqT%tz<o83OKS>ti(TA$(R%yU{tha0mO6p? zp)5hif<#l-)BA`7!dsva?sZmsMpa%yZA6CI^=Akl$N}O>-|dR#aE|O(qS}1rXudkJ zx6p`;UF4;qmTkJrx<D`WQ#(hxLQES>tve0{cz*s87aj*oy_~H%e9h#W8?@hi`Z4fd z7U$kVqvNHu14~`(G-uj@e%clycPohck7I&d;xj&e$yj(A6!1!FlEfxbD~z&W*YlO! zB*{j(dA-a0W9*{j-dYl@g#2T+oW-<2rL-3NlUo1@K|{H;ZEub%a4P3yP>^v%%@_9L zO5M`O4O()bt@>*h?|m4;v<bV}Zo}D+p9-#DkoQVZnBmTxFP8}l#z$k}KHQyVcW;38 z$;RjIzv-LUy5Z(I2u($O{qd-(j+-~#pE9g3`L)22D<8s8<m-e(7Jiwl;nW(-QBRmp zgns{s%(H(pM}#+ay<P8Ru-Oglr89|ta=Dy(-s1M)MT;i8k}29d0{b}^-LR}5LK{lO z*=a_j<`_Y$5LVr#nBZz=L+K8iAQ=rh`6bP}7<}@JR31J1T<Ns(v5?$wT{o=(S1gw{ zAYc1uc6&yin|?=fQVM?ZPPJi|gWM)dv`3Xq^L#xf!*&e<Jp<nbcVpVtP4{qkJD;Zv zD3jF1Rz&7UuCa{98;ALt_M2%@2#b%~T+QDiyc_Tsc6%{;dfq2>3m|$LG)Z#u`iWjK z1hAgE71X@5v5)3%`C}Lm6WsLXbo<#3`t}C<DOb*)otc55|E03=xN+J)1ZXShHUZNn zB0Tx(8JbTr7WEL)34?Nej<Srd>qe@YukxI`vb;}E-?wUTo!cpUFM+thT`UGJ{NaFC z2k4Q)-QZ7(=^Cn{Ll-%Fj$19y+bDeSW9NTqJ$pe+#wz1!<n8TE%#taa9Q|DVtg3tD z7CeF7{~6{RCU>L0c|^cckVgkpf%-r^{d!x+s~vK1OwN&29$9=b^e!ZL6X?i?hp*&u z1PYB0D#V7!4XJD|>|PE0`wOKm^IF{)L4U`z={`RF?ZvH@$oi~QC--J$RF?I&F>Wh} z^lv{KyIWeMsJN%00hkuZLY*H&<rDlPpqNf4y>`cN&7JMp?ox~Ye#9M`z9ja?myVu} zhURvacb>fa03ZSN%9L~O(2GEy5YSFyC#H2z6CL^f>&!IEpuKu+j*#=!f?wIv9pL}% zV)o5{t55Li0fT1Xot_IumX=w8pJ_}gaB7*mpttmIW2!hAq%_m|WqCC+d<3rvNTl87 zF(Uu|eop1pT@EXm{m0Rn18ngeQ|sL0OUyG)PWY<K0{vkHd#{goHxv}V=udQJv}9mK z;*NgUZj?H73(SXO+H|Y<Qy6S_MEOwSNu(VKZLjED2IIN%Ax1F(M>qt;&oAyxIzfV7 zkkZ&T&opMd0WKhMNB#V>#fa+Xy(Cea`c&0+^!F&`%g9aRelXVnbCkO_BVYk1SdL4p zGGytEyx)ACGg1a`zWP*B;z$0F;Mrr!Rh$IjR#3mvQb(x$n>OW&FQlhIDsXB&uohK5 z6jekxNCAV?c8V3#HHaZl>l+)QH=9LCeUwZR>nxt}OUV{gV$RNDBY%g7A9Qzs*Z#FH zr%KT*yfwS-W>e}{Gz@$Cj17O#ToC><k*!zP|J~|#vF($Dt73a=b*o-Y^0;m;&Xr|w zFo}yw1ri{|FqipCVRkp=(bZ6~uX%Z0ghMA!x8>4d=8MEfCs8c!P6_v1v)eDX1^*rL zVpm_Ljh6DG<_Ib{CG1&z!OFwCYJrl!dmO)4FL<CZZ6;8}f$i)CQ=~0jg<@oTv<dy- zgW?0>*9#XF&vmo(!L&eLDC)7A5RM=Un!57iC*Lgndtx{4b;_SA=BthGjL)^52>rr3 zJR`}yD?XV$kJM)T3^=s#XkvcglzcoQcaRg)bn`AICgvCNYA{jv(HQpjh1)mzxL%l` z?jFt$6YE_7kzoY7XRUDP(R@I)WEwYV7rr!gV&D@IS;kyr(Ymbi0f)o6{})kb;nc?e zef>=c5IhvOqNTXI26xvA5S&u1w73Q5gIkLhD-Ok_NFhjZEl}L0I20*G^9<ja-#mZ7 z&g|^o*?r%8&Usx)FLLC8?%NC_pmgW$6GsB%BImgU`o@G8KmKtJ`n_V%URB2r&*-KP zHP-pWF{tr8lJsWR*VN;}QN#tWpn{^HTA0>EOk(=Kl*n~@K8O*vbK&9P;Ym`PEm;2B zZ@+(dMy8>-zzi)c{|T^U8Q`_-VR9gO(*9mCg;i@TxOKG^F?+H;ceTc=B!FibklE3k z$vmJ|;=^iwb$DR5^cGR|hi4-vm%mn+g`9dp>`JfaURc!et`&dwkL}v{le?Z=+dFJ@ z+kdjlxkUf6uBcXiduz|o6RH3h|Gf#v7I3ODNWO^Z$#aI(!v}wTeTBX~tRL6*J#P8E z`;k7nMy`Y15nS4bfHncBvXTFp7al1gwq~s#TAtYYQh7R%IkR)5)#_gAgbj6uvEK{j ztd>9EhzqVLeFM`=#qd5~Ff4pik&s;Faa#X$s9i+y=2wJT?N3<l!DeZ=+t-Dfsbb5^ z{seVKVD`PpnR2vz=qq+$&Gq%aJ!5^yoA<Kv8a{`8wIoFaUgRGKJqwdp;>P{>SiQQa zxbSj=$jH5!pIl?OsuL;$){IZB-NiJ)L@1#NuE7ovNDi_3vq)q0+xDkdE7xbkyi^4g znrMIwD8H6~7yxW)YHI)G$^_iJDarBOXY-C~s$kV&l>7?i9UG>3eYVAmS;v`$C;N0X z|H~FF<XgOZ{%@VipRachP+jG=j+G7F<MFC}?wZQ64LUJ$Ql6DHo_ND85$@@3*>;So zA~Zj{Z@L9ud@}H<9Og{B#N4jq?$lIg6#KTgM)vaX6-KsTardNtyoILarJ%LVhZ543 zTH6qoSKpH4=GSN5?~G8%I!xrvV`5_B-xEf#nqndy<GT=00RMn9vbE%(#<E8_U(>bI z@$AXZDH+9^6@Cpon|1BS%KPUgJ0h*OK|em$!s>Z(B)CziF-j?p!!e!HXjP<VRVjpu zmr0FjuddN$%ln1E2@7$x?0y+0LCWdQK)Ur&U0m9wlwFrQxcXFi#e;TLtW`KFMI}Kk z>HJ8OlZ#FAZabCTps$Ceos!nzHGxff`(xd<1d{`=nU!N5Zq`DH%%=*JVqy@#b;?=k z86}VGHRFk_`q7ihg(pQvGxF@>HVCn8xjCv9d!-9uio4C4iChSF`P9DUdOu-jZTQEz zyS>bN7_JE1;B?!ZwoSu^(P}_+N1kCVFoqf&f32G6atG?#o0UKP!aLN${lu0_2;46h zV@uP;r5o1JeUd;Y`4`=nK;KDqhdGp`hlzCb^kl$9)>U^t+-$6T_p?a2_)buMeV6#T z3GeSzCu6{gMg?wB;(z|9?rciz;3Z5S&yL!3eF^(Mjn$i4cb6W>9wA+z_2KbnMR6GP z7pd_;kk>aG5g`k_tB>j;n%FL}hLlmq`A9A8Ct)jDiN@YSKXIo_eu&72cbTz?-l?y4 z1gv7X22Vgr0o_q;!a_hdGbKe(T3Y(Mvv4k5@)Y0IV4>Cz0Z*SKC%X)DLW0|s;6w!R z4AFYQ_%gSID6!<t=0WeUcxjcV+!x3m@G3AQfF`fTqu*GJVr=;p(~0x@LD31AlZqav zmskichUGy@p3L06OO%k({5rOtjf3~OVsnb4ZtffJ^QEOFVJa%BP`4Kh@>GUEDeD7> z41ir-V@cG$7tW=-n37SUMPt;Qk1rA~KeqszK|<nv2I$v}PkK_Ik~BOw6ryoy8Z}eR z{01)vYRmdCuDXMe-KfP^>Rab#Jo8$X$ORHItny&<u+QCIm>QdEaU0u{JnRBBE)2gG zPzdDcru$ZS%M&j=h=DOK5bR)zn20}XtF*aUvB2G?o4X#~r5g>m@VcLzI>@0TxNTH0 z<NC*z>P{BVv&XTX;pt8n#$yiV#z|PNBE9x5(O7{WUsrp6QY99`bkR4}vTQu}*O47t zG-k3t8cP~}$@JB&#HKl7L_6Y33?~^7vXpxf6-Zut7o?&YL@57dsg3e;dq}J=)b(Wk zs3f0ZC?jsumXx*Tp>gBci`7cx2YG2I#w=4Ae!@p6zdu0;N>VktG4mtu_eltcDmLVx zW(D%zic0^pPN?j3P}1dv=N92N8gYm~M!P(_19UFRWjY;LLBRtl_xw!W-mK&itko>f zeQ9+fIJtjYvrF_ghk<*2u8`Cpa#o}3kKf-F<jVGm*HWD`Sn#XkbV!2VK+f7^aifCa z2xTEz2Z!dH@EHiK?rB05_GqZeIfmQmt^ZqoPj-i_D!j?5u2V!+aG|6$qQ1RWD;d9U z`~zN0t|HM|rz=j%Q?nJZt^lq9o{to|War<tcm^#=LCr!UE^h-@@$ZL|V5b+1qS^|b zV;^x~z|)g#uIDqxjSEQ(=a(nZrPTv;JFNuJZR?vAcHQf=Rz9l9H)<5<9tJYYppE!2 z{t;7eEFqobwuR?IdzTwZv-hW0);eLj+Q;!=A-a_9AD28Cbsf5%%+(RN;Pn%lPVv)` z&+id`_ps3kmN^aG<!{bu<}F+iUn*(eu>$|DEYH|K*?*!i^yPZLwh(n#y<A0K9tU{d z)z&EFuCVAGJEyT=aGmMPyryBRAXPA(KX@{ahfd)#$=K??410H_DXbUuH+Aj#z3%Wb zV>D$sWyOF0BEecu!i;Zt3mKnd9#yNVvU$L&O(}9y-h~{U9TKKvnD@2)8(NT`FA71e zN2uC7jB<y?OotmBegAB*wPXBWi0VRKGKnT2!ec=E3~2BCqWIXIBrj8s(@!_^PmA_5 zQH5U6mxyYm%6h3LKh&r!$Y<ld$hIfQRxk5dfZ}{`mdkL8!1dRV!M#LG@^-s@kb|-H z=n;ZYW@^b4?vuaAdx-5Z)G_Y<8x$t*hT{hoEFoDo-aC_ey}_4_v`hC{%;S;66O(Du ztYUQ5#p}T7s8?g|W_iU6hk5&W<R4m6GE(5t*thjuhCUn(K)?0Z4Ac&!4>ojDFjgzq zsA3`!jD8ol%3(kaU&+rgv@FX-8LDdN>#?kF+r^?P9C(XK5lv#b7zFj~ug~8ndj78C zRRU%p@!3A_591u4%QU->!-R!1+(^OKRQ2lb?%uuI+|ZKvkS}?0HB?{zkVYh%*xu<U zgzayRzm{*8N5}#5l%Gs{D!jQI9^ESMF+unvI!_9Rv$lL^)tGF!*CRaH0*O`10Q>a- zo$Fzo`-S|p@5BP5j!~3fE-T07D+6E%c!iH-1t!vY?gd}KNd?q|{pZE^nZut@vA7tT zc#*li_v@Wc;#Jn?Cf%hiqG_+suRaco-l}i4N!!*n<{9Gh9WUWY=U*KET+Y4Lq5SV# zQsDi6L=)sJOgQ@YTc&$2B#m#Fc)M|gt&3EYD+?nq3~QS4Un2QSoBzl_{tEn}&tu3V zy@ta7X@wc@M>GwdmHbr$X_b8i!@VOSXTb227I6W3s-dO%{GRqU9Gxr0b%T7S@vxV- zgndt&weVX^Iz<VNxx$)8myI~G@)x`!o8FZinH@4aSNdRr52saYPnk>8^c8O8zX;R> zhGc`~Dlmi~`NbKkg8s7d?}MyZwXLY%e2bv2QT2WrNx8C4lKAd@AUYQL?hpcEIQ30I zcDeqJ^UOp3S5AC%NMl`<cU%p+{TqJD69|5zDjDG>cY~?sEYlT&2Dz`Ik!~eYjw#<v zeJT8}7AU(aQqnwhf;m}z=93H<r|P3^ZZfUZ<ekID2J+ox>h3?A$r4hBd`mQ)918&i z@+{ihk+fhPo^!Dytb*y7KWkHX;0U0fdL`|1cGkz(N6{6^b7<2}lC|#P+o}Y0%Rx=z zzWbr`G>a>g*x)JdOT1SPk){``%BEBDTdio}uiX8l2@X$RuUz#_^)aOjeZxcJfG0NH z7!Hwc9de^jwz?zU9q&hV9TJgSwpMsB=@ax1?-qp%1Oy~4>gkVyyA-AWUB&OrJ~!Ph z17KV>mmQu=$T&}0`32=h4Mq1P(lWX&!!P1<*AEmi57Tix8KK#KF;~oRDS9W~qK@`R zswXf8OGx91hVwElBD!URw4#%8PN^uPN1`d@Bw-^0gR#$p4#EsG;xh@ZxOfudRM(0Y zr2QhI+@JVA%4#xwHxL@w>ETU=`33#5LCEnkT9Eeo!S(%rnhFuE++5e1monL#wBL8> z-_X)B;HNUkbx9RY?7Wk`6W|FkMiyD!V)Em^hY5j7rUw)KET4EgH#%a(Pix&=?JB@A zk-G;5&Xf62#O!$b!@BC0AYpA!7YCm_)h5ZIjfFDnK*plkhQx%0;$=$Y-=Xy&v=Jq2 zP~JRrur%*F2vsk72TAw6-oV0%ViCJ5dbn%k*&uuFq4V)vx9Pe`$)}DW{}V^$b!e$M z4Gt8tZWJA6$C(f>2b_D~$5Q${O_4nB#}0)#@=RF{2R>cT$ICmeMlP&=Uo`nGfL<%+ z1G@er3|n>KPIA=~Xd<{1aS5B+5iTVhP!A3+*2pK=HLECIYG<>ML4L{00;AL6^<S?H zApY{GL1WciU@C?Q0&?lE<;%q)J8Len!Lt1`9%&aO<#gLWK9*FW*RX{x*4XlX%dNRO zMtKbjw{}Z2Johaz|GV)!e{mP%c&YX})$|+DiD^<|T(mg9R!(pbT;PoA8=f!b4WqBD z5(*441Zwg~Qo{jeWVkFLj=i#%Mp8zQs>;Fwitzo;WG+<aVe_}mu*bQ(?e$X~O&<h3 z2|~AE%d?lVpU`H*f2+iQPl8k9X*feo<mV@dRvOkw9hixBCovfqj9;}fh70*HR98Tg z`X7=J`J<C?<9hW*AyaCeU3_i+&JK~b>Zctad&g>Gd>o96YLg@|#kf$Okw=A&kw-B9 z9}D1?$L?P!!vx05^q@R0zA1J{vUbGadX|B}7ML{m9Udq+O%Oa-wW2}HClAL2n7>`v zR1m{OYL3|m1+G#*^m=3eT0wKm_hQM92F<65*FlTaJl30SSiB*@qfrgtHgBc&?tS8Q zRq<FRXV(JKA;&5gs$2$C6)>2p_oca|;$x~hq&k5R2F^~bJ#Qm@<Ny0YD~)F__}qC} z-;i;Zn<MpM?s7b0VO9F-;1x+;Jl>k~+;g!{47j243-jk^VVG@TrBuN_Pt8y0gA`V( z0s1`FU^rvN70z?8#K&-wfPf}66rofVtmm&YYv@yA@)9L~N7;nNZAbZyjV1pX##<V6 z6yh2|ALHK8@sYC?jw*U~%JAVWMe=n!8Jpt5%z{;ub#99^@Cx~j85!Vt`_A1FNL;`& z)SUiM6r4Uwk~nyhYx*x&Sxxu&Cs;0~<~=PygN|F>9vq`BC8r#tD9yqSk^8PP17&y; zx)+iA(vabKU=lMuvy`CjG))XT`(e)=ERXdfOj(UM%J4DtHl6ccV%0RQEc!DRFFNa0 zw;U&680#m~QLg#`NS?j6IW>?B0^kI{x!D>lBVK{*NAVEkl;Lv^W}s+thw$1fs=k$$ zQuaJ~xR~UN+#{k#GkR!_In7f@jqa?1dv1cZc3RB(1qIY<e`RWI>k5@{tq-(y`pwcu z(Huy3CjfRW?%yypO$qA(fAI$j24_G}y#w!PN|-KXnilq8ZcOM8hhqZt@F|V%D1aQj zquUke>0ZpI$O-HHSrbrufVRW)y!U4|T&9Pb9<^fMk``w-M(v2vFCg1Kk*UkjN#C&; zlV|^AHgZvjeiKJ{N}~B)YU@$Vb|1J5mSG0`I8*BUadpsD6Tm->5hkx|qHA|fr~8(X z#p*J@`|#<91AeEWJOc0I-~LpmMpayLPlMqTvbx4MGGYa-wkqiDXn0NGl`f=Q5ruxy zFr>1J6AcGoD3`AR-^IM_Itf)THhD*Tv}<HNLtMYyWcmI2W!Bl5s62Lg_}0)aJ7EEQ zzhg6q);lKwd<zVcWB0Hakyj>+3_#RAcSsx(E%>HJeEOCXJXh!ekNcM~cil_~f4NGL ze<thf5?^V>D!Y6s>E&<vcbKCz(Q<WXh)x5yNDN>N=BG>EA|?Z8OBOR#ZgT*Nrjg?D zW?T=3w?RwK&31i`i1@V*<6_RY$!%geZHTGRF29L5eZO);5zXeo@BSndVY>5Z%DsBA zFsb7UlShTZz)P9WW+4CmD>i?s3HgAF&)VwiiiV-$E2(H7WN_hfxz164B#9)yn|zYn z*3thM^o;Pvb=wrBDdrcdaWg*p5p({*9_9~`M@jd0^XsY+*HD7U0Ip+NmHLPuo#x7w z{!yQU{A6byWP2tLrdxc@#I0|Qwoi5~J*NBo3Lx5%uu~UcA4h6g{6*CXJ|ilqs9SIT z7cUve;?WLhvUSnA#t1aNd8r;dA~qT1ihfaZPISlg%J@i$Rm|)zbk=^--F_tM#r3wp z)*|io?;ESmSC`-d46HB8;kckcg)&j-WBdmKGW=dd4@LY*P`PZJ^(`45tn4|){@ybB zj3V$ObK7|h=2X%#b~0fbsdW+LY~x6FYY>A|ij|q35%CB0Uw_F^*{JSk{VA;5r~-3x zF35+M_~doI7VjauX_3U&v`;GjWv!nWdEZzF@-_=p<i@+7ceve<J^hX9Pm=lfD;Mua zE)Z-OMyoB!s3kG0@=HC)W$Qv_@-H?m=rc72VcE)rJ%oc}%f-g<T(lW2_%>#%_}Zs* z4O`oZcKrgs#OxbBz4xggy4Z#S{DJhxpYA#^RR^EN9XqqGEb*IA9nBQ1)3<tzs45pv z0nvv&)6cQlP0}?`1aW(zR<hJQ`+W7SOl`61v5HL4z!OiOoA*im92OWx`;N>>dQ+*U zgN1>Vz3z=!=fgI#8>F0UFt?dnJ-2u74^Tl96xCn3lJzgv6&*^R1RT<^*4)TW6N=GO zL1Wmp3_UwBKr^h1AxK=H=^`xU8u_x}Z776lRr({&f<G%KMNrjmvCNs+6pbv_foED9 zMF!O5L8QrDXqSzbaK^Q?c7crAM#U8+yH@TOP^HbQz%@M|uX|AjC}J|m+Jli)gzW6) zxKMCbw9W_L@7`3{j2p&V1vT2Lmt{)6dMwO&U^vT_xzK6+j|9mL(OSXsZ8PEkhgre5 zF-MEn*8Qe5jIlxTVsmlaPo8Z;k2bCJiO|yu@4f_zJyrH-Nm~zoxQLc-R%vy_@TY`z zeS`emd-XQ@8R5%pHJEY2#AhR!4A!b=;@fBYb^cIq8TBVdGD<qSkaA^|immaC=r2Li zU=Cu`20fnezfRv`Ym>uUT^q;MN!gc8U%EGf^iv?$cJSg@m#h!HKhSQJdaxUfTbApc z=?~)h#I*g>es^ws;lEuei>sLh)>y@`tp43-Zc042^k<OLz5Qj6e<_b9J`MPFiJtex zE@1}fcBReqxAb}3WquyKGIQ?_kzy~2TmCdk>Mh=BRNx=YqD*%WbCM|OALN>r6~nvw zDdtX(t;)v}O27JV8`GUv9rsqf4CY^wlgM!?z>j&$toCmRX<h;aKxDuN$}nuup})5C zC$@wSy&F5s0d;ML%3Ysc4vl;z=Y9yNIS;BgDKErCp*{tNZ#Z+2ey4s5%}D5B5lge& zp^dx&>2zIeaW*PD$E5icwlpF*ApfEZ%zyvi@8W<4Jom@#cMpX9KbZwM#ZKxFS=2eN zl^*>o@}L@hY{|gmL&{q^HuXptyuUuPY|eMzg<rSkCW!vx$336)_Z<~+OUF(Z+pU;I z=82$B7li+x9&wWZuxhd1UfW*@z1g$&=;T%+6L2u^I8+%jUi@Hs<)!ww&2fDlehk=m z%Wkf;>e3Q^=DQ~lFsF)GyBwetv#&nE4C^a!(@jtwAT3o3>7Gs+3#h~e#*S`J8)#FO z8r|I5vN@dT*{U1lBM{wY{Ywubapq8wuevR#38$xo<jWIMdYRJ@mvT%fdGF3uI7}B3 zd=Y)(ZcApMeG9+9{^ylIs+JG03^>3D@%^tFIwur<vw-!TM<0f|n`?4umm=twwb=Xh z4D)Q%ZqAH2+LlZ%+|TDc3|am_<V@cKtu8?3Oa4&E$2mDkSMu6P9VCNkW{h`H>?aXF zPoT|;)(B`@NweP<e$4wwV9AF9JB_AX2;L7mNeePqy0UFmrmW1&SspR6uvob)p0~8^ z%bm?BV{c*4`8(|L|EwqmVLb)?^S^6YekRJrbLxZB`PHM~!rCDZ*E{%x{`;mSu`Xz> zre>EOBOYLFBtCkwt!X2F9=>zPo+Qgm-}Vu*Ud-rpapVTcYGq3EXMI1pugpKEo3%>+ zvh0njk~Co>n?K`_2k(bajIvCyf3QyVA5iexxTy?ZQJNwZSodDEf{r)nXe(<!h{mb1 zhnzHO_}AT@X>1mAv#h`!)@OYLugk}(Nk9&JApv`-vlPx&b0gnh+%sP<xIz+#dx|OZ zy$=Q=1MoppQ=`PC!Fqo$-VN%{V$TTsKWrti4YvB^+G+=3cOwTSNSx343;v)ajjl7w zFdf_88Ir+2BEmNzha2pr@kmr_47h^mgUO=e-b$h#Nal5A8XFi3S_&Y5PdWP-;PhS| z<mSS59Dn{be7uS?IU$K+Rk;lvJgQfJ6zm{&CulcA05f%c9b29%15d&a3b9YnND{jl z`sa>8pHr45Mgk%Ovgc3o-w3l-Pp4A)45?J3>FYFXN5(P#vfPM2aZE2chhaU9Zpoxh zx<CH>>}k0TFZdMOo8kr7Lg_QE#cry^J9i@*59kG^<oDtmXepo@P<f$g0Li27{2EYK zL)gmBzk<HW#f4cDkcC{nH6xgRt;=)$`g5pexGh;7BfU@R*M61(xZ=PO8p4g@mD$0j z#LLZ)$k;z2W;CNqa>^VZA)eQ?mDqwJmR$(?J11-GZ{)2_$OgNQ8g5lk>XFS3e&!jK zocMunnzvhQ>pJ=Vg+%ZM7;g*P(17uco?WCxbuEy`gvu@}W{D;^FgEa0%yYPg5ykNC zfihWV5@kIMBT)`igd$DMz_z-R)2B01Pe=`$OvrR&hD`6>_@W8Ncon>;5&A@DSbb=F z*}2I5b>v!yKK%*TNB1gL;;^_y5%8zCOqzAB_uhLkx)V=JF(-xCjm4zgHHK}u$%jtr zhHQ?jp1g=^Xtk~UgA!3j-g!-X5fmd^vdqqy?o5y2*`4gm(@b)#l`&~XehBO6LK#u# z(j0nnNQmUC@FKOFi5g~P+$oOMhAm(DM#dB2hi25Vg?=niQq8SwUa+f+`(W<kGn}4_ zP&pxf&E>5uEpf^_!-JgNz6jGp*Ed;QJ+D~QH+y@&?(+YXHn7pPW&?C7?E{U=r0QEu zS5#gNGil9<)3Q07r9ZoN*ADf5<C@ONL|~bl@Im_%XXhBfe+h%@bF-aFykNP^@&XDz z=NB{3UU=nJ;kLqb?j7CyL%JUKPx7F%Hrz`bR_kU8uFNpMYWv9yRqwa8!M~$Dd=^=* zE#X=%^q2I6o&V@#$!$AG^b9N|hS-DVc+Fn^>O(|-s0S8OF$nsl+2}P*HTU!tCoZf^ z5vSam#g%*4#PM(z&1b}fwLNqFHqtdOLbA6N`Z|r$S<tQc^AGaGy7aLwU55_?Xa4ib zmmbJB%!bSfJPF7sXcNt-{g3`yX?<I2b>^v0M|htJ-gh<M3l{PUt0nP3;C0tfVvwt= zpbkt?a4>yLO}^`;8ZngR@jUiK>w8+S)gl@ZX_Kqj9MlC?DPhm$X#)ARYb{##KMhX( zA+v)Ncj9y)r>bSJ@U&M!UdfUN@mwWX|M^|DYT*c3Uk^?BS?E=mHjK$ew%dQJH^R{$ z=|EgOaoqo!x*YS=OLgxOn;{R30wH!)WQkD_FA3JN4#P$2pCil9&SXd)6w{Z{UZW6n zE}}$K04@(upx0%$2Y(B3&l!XMc*XV8GXSsS!qGCN4;V^~HJE`1y+UQ<iDGNSwPEv~ z+#`xXudI*zyZ*c3r8B~V)dsk-Z*l;p3;am~#$5Y%OS4@|QyC9|SG?S*0ufQy#oSGJ zJPno{<>clU0Xa_VxW~-SY+PyQox>?_+@fNjZL*mQ4R+bFl6}pYL@J?Wm_nd&+B6PL zPP$15=np+7-jW_s@sSuoQG*d4B04iCNC?7o?;-JW@uE$a2{{<V;M90eeCw)iAky>4 z)jq8E&ZPOBcl`r)WM9gT&9L|3iq;Z1I??3cOx%y3*t28Z<58w}%ijzK91isZ%C2?k zOsi4<_UB=n!(JKX5(zlR;xNK<#E!4`v+maf|D{~!O0cLAyvNL1Pr3L|!jK0>8u&^K z994pj4ws?9f<;bYKGF|(LnT({^d1n+CYz7L9;;jGS1;zzjsm?;P2}FMZ?8HV$1m~m z>NMF~7saHClHRM3-Op%^D#%tKw`Qw}iJvz&bWz59;3jSWrhZWj`WLo}6a`O!FPvbQ z+DXL(v*)29@Ip;qxi{@ALU1VJv&7SspX?qZUT9wH$hJ3~KR!O(g-5wkl2=-IrVX{< z8~M2f#Jo3VqKfxRiYaU+c^PxQhF;g$cuo>Eu3!Uq?)#}yhl={6i~DinOK1995GApj ziDddblNnTC?}N0c161)RDTxs5qA!pMIk+oA%Co*@Bk#A)fxa@zh7j-y`9yL5-q6}4 zY~paYru@(K87-;Kk7J>^Uj2b(JvJ4l?{`cMfMD~tFlu@O33|Ik&&fpku7-8rKooIQ zZyD<v!!E%+9B4y}q{s3UJO4^F4{pBGE*)T29(A6RdH(q+-d^#0WryMv?Y(>-ZQWa< zZUhx%?fDY8W<EuqQ7ZP7@oUYz!G+Uv1{kJmGD+*;j)?KVjOw4E)FRg2Wi;N~np@Gf zku73hmr@u~LWW#WZ4<E#mno#vN?w0WTsBxh=!8dp_Tp8*6!`Tbm!4zokR3~wJYlcA zY$PU#4Cn^?rAm>e=y0%ZT8@s=b+Rhlw=gGXFBKFHhs@w>v#^^^$jc4-Ydbt8TiVGZ zm<CI=VQJSyOv8l9cnW)L3$x_$7r&NZlY__ra7;=4am3*7%Dz881?HV7w|fq+HyqE^ z#$T){8^5(2AU5P6#M!<{RO4ldy*`6M1<|2=cPT`~pjn0UzL6~TXk;}seRQcqMyWbR z9pVT-3JTyn@0Atw%q!Ir@_SIRb*2BVXKQ*VN*19Eo->5b7&ILE*9O*~ZQ~74S*lCx z36-fx6W|E_&>BY*fXINr9(mae1|+vd<jX(qb(XvIzmF(>DZg3j#0i}Iz+*IDw0$P{ zmJE{NaAv;K<03xbbnWHm04n~HdSTa7ne?HJYCrUPRMzft-$5RZiFDW>)om&&kmm^@ z5EyiW1hiBu2F5m32IcoI|FV~3$o_GMDaUI3^7Y}br%FltG+LI#m4h&_<{RBF-h)vW z?a<=5U*{MR$n^`ln&10zOtisbm3ImO12=z9;&|8-SZQ3suB=gW{XBnDj-J)cxKX^l zxoch*&P|}k(OZXjBQ_Z!nsTO<?EZ0op62XmCulB5B{Lx&r%HC-d-ICGxhpSAz+NvO z3x<_tHj(K}y!n#)WH{hei@AL!KwgU=rsz-mGUFd+@`g@d3GG_aLcXSsyOE^JE?|nG zaB?6BwiEm|o-m2`g&<fXtB<C7)76zTNs8-<UbA0J)7WLBGz^@hLe|@;YmXgD$<yqs zlS&pR0hHnz_GE8`QXzn_KM{Ka@uliWjEU)lnMab^eqP~k+AuiSI`KtfFLL)z^y9~) z)B*}nGkKn7l|?ph6)+5}T6*36s|(px1wIrK1EX_X>3YAWdM)9a2~v47Q_M843rje_ zkCP)hEITM7S^TMFyfM3-g1rpuX>P{V(xHIh%EjR+Gg8S(<W9=vp@k1Y^HX?&4gXrk z0@nc}%I<)8!8qzi5SEZ_u}~?F{=0)VTimS8@ma>re~bu1)V1n^wPRmy{AaBfdClQF zl?P<`aG-wZ9~q{Azh%c(#%!y2R1ZDu%<E>hrH+3=3Qgp=-PNhN_}Ym}>QX_>Mf#Vj zt{|!lvG1z#h{yWU{l(&GG@MolO(7K4I*I&t+=+d1R64NgGU1|<8@+s(N~Yw#KP!HA zB=epfpmN_nQH>WwXvaIPT^2vFFAPbb%E+u!61PjA38u;;s^C}F2q{!O>V$5-!bCz3 zYHI3Y!rK+>+8eaw_{lMDu-cjlUS#(Y@ccAjrUzYIfgJ*Gtcg3V<Z|3ZEyzA1)^lT3 zlSn!Tk|clsRx>AlSgU#0GlHadsiv+_sFg}vM`{zN5<0g(9Fu?v{TltdRe8^tkXy0= z2R}3l)>+Qi<Mre2udH?(a?>r<Ys+<B>9G-Ut6cVTMEO9J19P9_d7%ik{epxR?-If= zIp{h%M{O%d=}qbXYgx;yD1;hPJn|4?QgeRC3(IsSW!&V72g!8X6z>ON6ERe&MHxhb z%hbEw%4j*Xb25;#`eLIzgThl_A&qjz{yZ6YBeJUQ`32-T!`jyD2+lptHxVnlD$H>- ziDM=XfM+@UTF0+Az5#Wq6t<#vRXlSj1}F)l4wvm3$xLbTh~B=38<Z464Y5I=KUIV# z=WMPR(Z>Af%(1+le9@*+M0&mW@evLSfZ7GnN;8@U5?O?;nPd~BBK<klV5D{1O3k`3 zN1@keG3%7W5;ySw%zp}yHT!ymPT8TQSQyA-G%6)?F#XpkkDzx*4z<?fBvR`;)kqUU zp4xO=^S%>L5*=P+TW;^pC#ifw_Z4c>!+1v10~^AcnD7`;OpV6{CMCGQ3p`{17}q{^ z1wRGHi>%+u%ToTl=HG8VzpO_ZXF4O`7l<k4&}s8m6T=EQhSNAhgaQOqa?8QUFKwNf zago4;$kft<4hWf&Ub~!^>9qGI8g9spbVIeA=JOYIc;tcj@MnYrB68^I9`BIuo^r_; zRq;(jId)=rF05l~D_l+U5iaNt2dc-^S#%ccb`|}k!Y;iP?9J%EO=%Q74h;(ONJ3X2 zhpgH*{<WZ^(DR?XBM&79oghcwawa!E@HG_su9ljLl&HPj(kiw=Gm;$s)fKzDAeZP7 z(-;X-LVw@`3-hV_&Io9r+r&yV-SMT<i2}<XilJh(An3SIKKGLACn5&2I^Qgz_J&L% z)H+7#{!Rs;E37;wgTZ<yQO5sMXkHUAg@E$fA+KOFfSBK%!@<4snq-eEAaiP(4w}B( z5xvk0!XN_*I%4jf7$8VHwg&^w6{lwws+Y1=Mgj^*nUwNY;U2E?@d%>P<U;|=Bo-2h z4pxX~y~(ewzrHT140&L9>Ia*NOpvgZh68{<8}uR@v$045p!OOrJ6$`T5z2oe!F}Wy zYcXwxRPxuc%&6q$6WpawdHS5+&P7rW`?E-?<6}66n%O=#SgHMeM8-`JuM?W)oDC48 zk+68VN;CFp^>Z>K{RZU(lb#iouN+CuI^jf`{edt!6Y`k1@3ui|c7zDY-ge-i49An4 z=J{j@)KthGZeo#4)LyWO<jq{$CR;c*S@VAjn9fyi*;~5#BhaSPIugv_rkACthA=gu zDg?+N1s!N2X9VU=fL6!+ts$peA&#b(ggK#-L6GcY6HTb7Ad4mhDFY2(RBAzAgInuT zJv6^1vtNg!21`3n%}<1`0})zOzt~^=Oa^hxg2^Cv-NHY4%=@A<u}FzV&6u09;Mmb1 zr+CR3Cp#}%DMDAiop_r=se@;kZ-8Ihmf;&NM(haa2L-0$!DRzmVo2~}f?AUAp0@`( zG~F2=qc35FEewj_w{Ug<Gk9?u7=no`d6l-l7y?lPE_ifPm#_!>T`=HLw15tsQE*;M zyuPwd*|vv*iLO*X+ObVmhQMnkntpfCoN@NjF<PPY7lok5`%!O^>F3%;Ae2vl`8~O{ z*9+OQh(ekjz+8g>sVz0rKOZSb!}=?cpDx*EZ;$HCD;+8^efiD5LK%fE#N7#@x#lv- zI26*vSxROFjKHQVE$g;An8?!&*Xt?HLLPGJlvbwKK~3cQ9Hiy(qewSTzXQb={x6F) z!=?}k5r00u?}&g!l;g>tWm~b$G%?Ulgk_eL0*H__l5ryt>c8(U6FaRqb_y(bR2p@O zov*!~VliN^85Rbmt&cw0@>3)j*-c}7E~=GE+3KQ8Zr~LQFwpkBLQq)X-lIJg2;g+> zZO6Mwe05a`O*EkT`Q_s#Hm_i1WKOS|oq`QEYnhb?fd4_q@HVjF*Xt!V^A0I-Ga1Qe z24inNn!cdYR)AK-<$ru`b>0~h(g=E{;Gsg0gp0(=6F)SppI^3I6YFS6m!zh_1^ixb z>su9<eUKXI0waJsu#619R);vZLX|@<*C5|-2mO3RKHb)BcVYdoE=D3Qfi9M?cR2{x z{kP)rkr5EJ)PaZd`?AG>a>5)6*fz*!nc1C&?aEvRwW)6v5&THD-#-f=HPwb&ri=O( z59yT5rXI8vs&X$x%m}%W_Hy0fo{%)YWlbf;BLGNL+1bG=a5yHC8Tb-}1x}ZAq$UT= zS%e&n2z|u81VOom*weB)2S2*hzqeUhu$resB@fXhP3(QFf-*`m8yp{eVv0+81y_I) z0jp;Te)w8|zlQ-M#Nh>ESW+bRund4HpE9pc7K7nDURC=TYwu@Ux4B2=-|B(?=3M)@ zAKJe-OS8bWH3OJAGrKF#A$7O{X{gQTh3XXxP{yqteN55ZTkc&7D@~i)_9n)nA2jB9 zC6c%xGJtkw*)GnOEy%8Y9yUn07C#fa$R?RpvpJXXibscwE3qoqZul|=&z4^Z5?mmm zON1_RPUez>uE(5`?dp%$zl0nU2U{7PV0gSHpL$D^{0al%9hY-V3mLKV`n^`bjR~&R zrKfHMRC&D6Fxpgb7*HD~X!2ADK)?LN``ylV&{lS9Fl_<`iPp~tzLnV)aD~;cP0JPz z<HR-4zRRm2*b2b)pQtSIK2yL<Ci-r2@%Y`lxUfaM3h|I4{KDMl7DkHYVutJF$8_)F zB9|BOEzdHeqgYk@Uh0)LTEawTNzW>q>94Bp#GRXw!Oj!aH1yrecuIQ%W;jW(zA5oq zo9zO@;05TB6NE&rUj&A=?dE=Y0^)fn#$f5xyzG~w!_OWkUNwu?9e$Bz=H9hLD~{7Y z&CP?8ng!6m>nNf9^LyZ#8>0Y$qxeSNU&k3yl@e0M);>d=#E~@9DR+~&YK3vW&#QE} zDS}yak^eFOayy&YmJPH1asHQQ&Ya0afo8(lxasb_S?!^cNFQ8JHkCPW)hu32p=vLk zt89d~nmQQX_4Y%qKD{~5GMYy2@LP%z;PyJrq_c~bwirV(1u&vtMSdRC?$+#dbS+!@ z8<0aAIS?FaLO$3BFN3(<x=_6nz?{LRAR0+s)Q$hfQ~tyeYKii#c`3^Al}%IxL}`3h zMNaRlf5Cu|=v2`eZhU6Mgkpk6-~y#=7|pkp$#T-`h{w3~T!d<{O5jl1CQO{q-%^GN z8~i)H%e@y37vHe8pH40DEm9kPNiFZ~_T2PuRyn|R0Bf7m1EH!OYNBaaFE%aZarQsh zfKA-SwhI$PC9$cIgPo*|?hGnC^4h^Ij}?&4c&6k0WZPbmu-#YR*A~jyA5G-A5C2nm zbuA5+DJ1-NuXVwz7xT!oUu=939icF&R@+0M#iu1{$w0VZD5K35Dk#zDv_X8{eaNKc zOoj<t6SIw3`Z--bMvzkygDk;7qNpCS)XO>yc4k8ciHBs22PIS!Thm%r$h64x97W+7 z0d9(-x4%@&&#!ZFsEmn3S{ic>IKfZj;8aZ5J1*>>G&)9-NIC|R{)=Mb8{zR&B%C`@ z$YdF4zW=%1V<2e55Ee4z-b*QKr?49}?sh?eO0;Y#HUxKqjsSz{?Dri+3Pa*+V&98C z><W79Yw&B)u6;;USPm?8*e(7;(f}|o3uD)9pG46P5bACL!tmcrVW;&ndjh|wHCr0A zo(vIxNs6)%B(TI27HX1B;J+^>Z<06OF$9hLts<Za%6!h@H1X;Ip}Cb^qZRYBsOI5Y z@;%gB5l!Z&zCHHcN5I847XNJqi)f>|5DzGzuumYY#^STki#dL^zONjf)e5g;K7`TY z)P6xrQ`I-Jdtw&zo=(1)aQ%Y+c&e&Yz?jc=R|SeWHt>s6X6aNI+8DoGok78`>V~%e zC}Exn)Zr7lB(XFzUlUbeV}-Obhq*b9iwzQF6In6LMSt@vyk>Y!QOc{_d-<M?ig1MH zse1h73q}QG`9`JwKCD6~BfC)38oMIMPg>9v>c)zy<?VcJ{^BKrbfN}gfav;c`2qEH zVNd1|5jwLJ)y8YymnmcTcbF*g&GU^@{fLV2N62=_V9WC(!OG*buCOzSawad7Zh!1R zaQ6nT&s&fD>^q<MY++s#yJH@`AKK}Dji2%(xyj!7q^=q=5WOFtzxDoHesq*|`aXiH zSLmygb85O$Lvkjld)4pZ-5NQ>QI*{@F}ITU)BBw*)!dervp(ar-Qu6J4gud=0}JLq zj4ptDI<|=Zew6#pvjO9y(IcLfvYq3FFaU?W+7n^>C<scRTU{>%sRGLr-)(c|X~7l7 zZXF*>q7WtRDRvbRDS#x^2!D}Fp7%3CE(Z|`f-=m=oBr;FDkLCrf&6}{kQ`G+NxV_k zYhN|~f_Z?sG)Bwxa)f*sLHKREO-h`c3X5K8G?*?zzF?5~@--1ycXL*78X%R&NOX4S zHfaC+_=LvxUF&~Y9j)p)?Lg+BDTdKRW9oLXd-Ik`$a*Z#k2LEHViCgFcD93b8o0Iu zw9t<sNMNOh`gGVK>SCBx@iqu_By5+KAtgT^_Xs<PIwiyxxs{9=5dw4pRWk|B3^VdW zyWRWHV8EV;w(b4!HhmQBZp1)v1taV(mG0X>FrtR;zpL2DH(!(Tfts(SuZKpru2jR6 zeg0yAI=a=PQR~FWg?GFVq*Z9|pCzXT)gI4qW$S153@Gh>&E$ky0S~48Y$$#3If5xY zoJB!BSdM`T44-0YH^FMic>`Pu3&BTxO3Hz?b{SE}KQ1O2@4#tIWp*SVi4}b7zC(3k zNDK#@!!dg1@243SHX5tE?`>~9<7iJSrfQ;Qe{76HX-HnCVW-660<4MR$FIo%+SzR^ zg1+56ER>Lre->byD7a>*(})9VW<Z7@=a7N*jix-IFgI`m7#(_^m&^+_ROM_pC{DR- z^>+je!Kaw-N?uz_6laITG);xVak8UCdOkVGe>Ko;N~HpM9P<ZrON?JmN1C_yJUd~C zL?#nK*QEDTU8;;0tth)TG3<TS!XDM+FfYW!eE(Lx!0bp$DV-*OGXgCwgnARBG!-&* z2eBc@S1Jl1q&Rg`9So@goUfPp{)h4C5CnZbG$C0BzD?IeYaC2d4r&Um*8clZVqOVV zWCp`f)*IG^pYvbDQAstoy#=W-vn>?E8S}vKyu{dz+e-QLG#q}?8f%FMJrX32lW!H1 zn<*qYU+Z9GfEr`LRF_prbE5Di1;%u?S2->)cJRKQoSD=O<4HRywep9{(zu_l`$(IJ z#+<KETCCvW)3P^C=~(|toS;W`?zfgXl|j*-k0tc?>EGsnIXR~g(LX#pq@sDp8FRIz z_mcp>v=OlwKA5k|qnhk(dy+-3jV1?@9!vLrDi~S{xG_-QTwg)qKpw|CGKFaT(znXl zy@D<;MggqSy|QQ&BXo^y-)xbqS>)XF>j=M}1(8qr!#?bh;-;!{JEQ6J(79?al0Si+ zCnwMVZ~*@>zndQ-Ag9N@-Jlwp#y40E*o4TpY(Od27$9t)Qw~N7-Y!?p=sx3tuTzj% zEu7_eumPnIL`YUn1(Y@l&aF6gffN}HO9vb*7z;hyL)D{ElQ3P-n#1m{*GDLd*v-c? zqm~)b*{W-{&r<kBmH3nZw0qVz^IsCaARf{m!`Uo6qkByB;i5e1k$@g`(hU;=zSt<3 zXE<?-yoX2;k7?Atq~e3n6(&R(L$vc@&Z?`2N<+3Y?NkLjBU46zn_VYOb0(&Fhp-UF z#XxL|G8cZKF<{+(365lj-^zylPB};~L!T#s+}@Bkp(hsD*}+DS@7f5ucl8kprxWk5 zN!MUfHtD?C$IeqwCFWBG!0-U*_;YxaNPgVFLvwtFq=%ho@M!JteZF^2vos>KlF{^6 zY5(Pu!N)3d^Hv5TbPx8T0i%B<(=jPF^_LbqhwLc=+^wY;rJ0Y?pjIAj5Vi79bfx~h z>WLMG1ewT)p&h@0Ao8&_-z0`ZSLX>vkI?mHMb=EfGo?K0$BPIOFH+SZyVwXvEQg36 zo%VE^HWKVc8dw4()gNq>pMgy~4N|Pby6bVa86JW_=N=Asoj6YMGA5XSidU!QW^L5? zl5LemdnwKcpzW!?5rNO?=P|V2TES+3JE4`mz7|_B^(W^Zw2v;1xJCyl&mVJ(*PtuV z7Ni6bYa&XR$h8d`Gq3)!jW+3LbwrW`Bob|b?JN?L`0(@^#<$5-%t1#VInqQU7z{DZ zK$d$+BtHu+vCOr|AmwmQ_0EVI|98TDL-}9PZuU4E=+Tu?g_HbF$w%~N_RQ)-Be`S@ z9UDPA&;hVcgBnM4@+79z?0}IT;Zx6LH_c=&N?n78B@wm#S`m4&X&5^x{eB{gY|bb4 zSr7Ghs|t-EBP6+&h4oTl!Odz*#NVKyt$GGv_pfXwmcr>`0T_PDA7Awx5y@|zl>xv3 z9@iZPL4b9Wg=>rCws3g3zX+GY!@x0?awy0{<5N&>Di6*}!$H!H0cm>qGj@WFq8G{Y z)9qN#+R_fEPCEyV{++tHhzxc2e36-9g&?s0`Iq3m39cQYnh2kpEVQ&IxomrZN(K}j zrb(u@7mAH4?kYmuSRf^{+L|feH=!AF<}+U}{b-0$obH(6whA}Ei49J<CkH#2^-<3b z`IK|;i?1pi2N7)9qIc{t=AbADzX<)OcxBj<>P!He^g=i_PXo(ZuGZXO)6N6?-XZbR z41UI;4fMR@arWCYd}&dMN6L@Ht#Ikra#ZYjANe`X@5~(>{hrFYH@b_&r&&Ex0x;+H zFGf}<*8r0PmOY)gkd!+%aD2hGsN$;ml8~BXi-KJF_`%CkGzCiBq#kWVFDPCA<k5%1 zlFkeWqDGE*1_eK0B8*YL8WR_|s2hQ~@E;1pe+<*M^1>_y!%lIQvM$$WND(qNUpv8@ z&&dPnXGH`T@9WK6T@5ZfFYn*7hyG88Gp-N+;eas$SR9E?fhVf>GRcEi>0Sksg=GfE zJqg213{iS6=S__|<(mOR@HS4DDawNUW@6G-ND~PL!Vm16Jg8phmvDeP8S}s>SJU0+ zB#^x0oc8>=E!?XX69uI)E_=P^nD957>J8j;LSckfnS0!Ge31_iuyXXA#H3i{xK8O^ zbJ%u}2P;uPu2L6?$DE?v^N1oG(=eH3bEZXt3XI0?jUaxCA%}$@@&Q@+mq$Rc6rljW zv{QQoCKlB;Z1w5F7rVxd?Vk}l;H_S*ANuj6%j(fc-pB1#c#ghtlGF@%V=5<3f`S;Z z)~t0F3L32#%AHl?H?{gD)c*zE(MiN58RW4K^(ueH`eA`!y7rCD)#E04wyb%}ds}lF z1i$Qb3}b4!>KSUo1uVm5&*-%Uk$YHMigV&RajdUI4r>S!_bJtpc?RH|$*^nE)B+3; z*MsnsH3N`-^02CMh#sRYB^o)`RKoUL!0jZS$mn&2()nY=<|whrO1S2>kgrvFsy#9I zye~!!c9oCnrV*bl`IcMcxC*7BR<S23uCe4!3Cp0@imFAU%_EmP2{B0KE|wHvd^8@B zuPZw_z#}-POwXAVB<PwBS4O;^KKr4eu6yyEwD-DW?w)J;Z#eiQPX^=jU^}|G`+7Vz zaL$55_OSS7^+H|Rg7_Z+h)$-{GC$W}4*1)jfQYmactWzVgC0LhNup%KB^NMsUEJiL zxTF7IHJRodUjCOrVj|xg@I;$f|8Y%mlp#RBH>*v}SXhytWDQVOWJJiEF_rraIZY6w zZp=(|S*x9dh;XDRlytP^5B+=Jf{<Mc?E-_v<{|?PG<p<S=L&@`Q1@4~0e;61wWq67 ztn-u+9<U~Kz0zlNZ15Cb;3H?bGgJ|chy@w|0})b73a2LEr_Xhl_EQU>UL)=W{ywII zN}y%9{}1m&hAETMf5wX0e@3F1*tpBTFtYdiY-=aF*4%bhIoIj5q0<<gDB!#C-}qsA z7{91S%7L}mKtdPJTFRp_p0qzvY9d8~N%u|&p{;L`ygf8oqXCSXe|)nfJ7MY6n%5E= z*QAFi*K-LrcZ@h4BSV_})Dn?63R5GdiqA&Ehp3ZawWABu!-r94berxU*P$CGf_q7r z&i$d_qa_&sv$;1LxVn=2(`yA`vESGI63;YfHx`)}zEJJQqM4rG4z;g+9n)~v*tYgs zx<WU5(VglUjd~$3)K#KYQ_8_25TzfoP2=DwOj1%}GCzeo!&FCC(;6^SG?XdY>=c7k zNiVhFV#QBQM<n=eeEx6>040xpnjalW=yz#q|Lk=fa5eTh!*2(%_3?p#Eg61yvGwLp zU5&L;OXe%t1SYPq^G?tI&YUAz#52?i9zxIAGXMQ?cB1)CAJ8GvQmes+-*{y6OnXI) zH3H5~%;rPHwN11z+d~SvDD-gCNierKGdkT{!`uya^kN((i~@<{4f<ewvbp&hOmC6Q z%@al~FTb|o@*f$x@;rHaU70`mbvLdT1xoN@N?gr-9OoTo8Vyrgz;siv+!QP}$t(0< zNnsr}Ri10t0FPTj>c!$;pT`}IBY+qwiC+;Z6yGAr%!(HXa?zbKErW=B*S!L3nx`<+ zPiUQ3Q^lQjlV-mH_loLrToMzCS7<l*2N@S+Ly~D+!=Eun<Wh3#e15{a-7Xu~EPIl6 z@<$>fuiUzTf|k-1aoOp^d#34hd6L$|9`l?aWwD$~<a761W!IN@yr=<>XSqN^j{|y@ z-1MkRntG_4rD^d&m4fx)THWq&B&E%5ED?z{yGmJcrK7ErST0kb{J<*(y_zC{?XLrr z%D?l|4VtaO<Oz=@+iGuuoP9oheIUZ>d*C4h+X1P#GPh@pP=v=>_nA|ETV0_$g(IZF zMlMzN>F&Gxy^QOhd%uOQT~zkskkw7U)hV($Q>ucFIAu#I!(Yeqm-K0P?0opAn-dnf z8~btuhs~$+ET4KM7uQjxXCUAq%(S}n)*|8{NF(~k!*^HU)=uwnoiHiK-^?p0Vrdm3 zx;@Om!Cp48ef#sjcTc*!-$lirAHVJMIP5Y%(yrIHWsA*!avc95H$;gXn|t&Vr(Ka6 z?tek@>)JoI{D=S4{%i^pK8l&rF~wL{`b!{#^P>ZFH5$NY_43)rnhhe<eEMhJ>Z+QV zpm#U_1r*yr!@6tq>p1Ilu<1dE>%KlOK2@GGS$<WRf$qhru?XEQt01XGGzsk<`q3ka zQ+9<zw*z>p+<k=q8G384D7B+g_sRsk10%les{J{#x`C>vZE%-TVZU6&rv50^^7UKi zLX&&gYg0*xv|`O_rcq3?iY~gF#>dyE_)x8Wrc-oo-YY&9J~%qboIAcE3|S)iWzM%r zVD^cf`PGj!%B1IVghI|08o&7BpANB>+i#eE<2I>^<V4SHLB-pY!y3A9uOWvR)ra$B z&3No2LDopLhe^(e{2am>w<@b*Nw?Lr@&Roi`Eq|UZd0WNbN<}Ir%Pf_<zu|RV*|7F z%j$;cbB;f*avbiC>DM~HxJVRG{f{eQt>H%>o<jH#aY~eHJDUZ|B<5;vWg%O&>t8pw zqBF|s60U)KnZG_ey##*eHcL6Lsj!{W365==es5CyeA`^4-SzpN?>YJ{M?>}C&|bVm zJ<L#pjaTv~V9JJo2)n+0!b!J2f2RD@Ec=-_6cm=qzdIVf;1v?`|F}BKrns6f+RqGw zdvJGmcXx+i!Ciy9GdKhdPS5}e1PKz{-Gc^q3lQ9OhFd(h?*GO80;lSn?!C|2zg}Gn z68ihL$T$^RjsoTsJfKcle?4bqiavP8%HXIWXA%%VcXxqA)O_+KiKp16;CWK=AMej! zpBkOG-sm;cer*oSFfvuIIb5gJPd!%Yb8LebWup3w7CYJv|8&WDXT@PXwqX1i-9gN+ z92iy*{7n$)!y+?=@*UARR*&PI0_UQCI|uB@)_oQY&R+2x<pQHM<ynuE{;x1sgXIg$ zOH`Yw&eU~{o?IT8JhrcFN3ciUv^~?06s_y8-Q45yCXuP(R)zOOAX~r#nzD%2XC!mV zAY4-jnQ3WXnwSf&qPeAD-IgeQ0JdTRD+Om#@h5C5PN&{#o{LgJhnN95*FE?FXx1tC zNCU~ZLSWHub0!Sp%|UjG)n!-|<1D}Sygj&~wdbL-tcg}?3phNZ4r`bKJsO#Q#po+U zJswnijoxU55m0w;3%yrvXQB5078X2;#fT5G1>mC6KWqNLl4LZW7$ePT>u>jHy)RLh z)Ynt*?{O@~3Df!WbW6Y3pIf<{Kc1lU4K$xrP0CbaI2=#l)a`<HZj=JtVaO}r`waK3 zDBI8wn-fm*<9KA6DdEVSg~apvH4oh&YP2N%P<PyEWNCI|5Fm;S?ldi<*-S66_gQnc z(xPwA(1}a8RXEy3YpIv}Z-b!D)3wW8h?R4asvR4$PXLZg&(zzdvxA)8kb|e^2<L)G zPkc6z{P&0R$vNWO2?>8=Z=pwqKrzregxWi=FVbbXJa#x%Dzk78h^k(uWEv%0t%a6o zC}egD<EXG0-{N9%XYWMLbXSo$!6Cagj9WTRuL0M8z(0CSKgvUXl4qEyi*N3P!flD% z<ag$vtnbz;x%ByT2a@;=M=B04ow`BGdXP95yMO*9n_S5TVog?8p03pT9VlPkN$}W| z5wwH+gcie5d?d$Hf1x@?P@mlNDqcbHvskI6k}39`7qX{qU#JAW$*eQ_KZ4Jn_v1&N zUN-}{VUO6NB8^mTSfGV<4A21Vh6i-${&AbR%k%5~&&e<~%Tl{tP8#GZo|7;^vADv5 z$e3ZXD>l8?U*^{3UuZ4Pc@d^wW6J0hJA6f8djgsgm`^NlwFYaOX2HXgM!at;ofzNw zPXk=r>9AAb<Ug*W?u(J;nup6lCdK0<0{614Nhd1sZjrv~cP2-ZRq9<`t>SE_A~l_7 zF>&vn8QYHzRTmP5VLt;{wo+YZ=v4ZNlP9#&VUfEumIz=|UN>*deEqOB6bzU@gIRBr za70#CUydN!tHJzN$q(VfVUJ_trNA|A0h!FQXMWsif>HO1Sa&!7%ewu&U7mN}<ifL5 zLV0_|LhZ(=iB&Ui&kHde?8K-+wg6IW^1wM)q#mRZNp5|Os*vpE(?mDBo^+mfrCPeH z<cH`XA&(gH>D42%-7i_Z7J7jWQDVDyQAFG!Lei*)^h(C~4j~dfds92I8)HVt#@s$a zK7;nH?5-RGT?F-SG06351PGt3wv0OZ>6&|SwyH_vuYQ>|sH6+C%4$D74jJ*C1V&*? zYSH{$5P8X_pIEuqYx=u4j^{bMpE#IJ+gQ8POC1O46uP<r9|a}&u0msnYXYzKU=nk$ zY~X!1#XB*XBHXuM7|O*-rMM(OzDL$tQld8_C2JOU-=bTT$JCL&L?jn`i|&&+jCjSH zXN<z^N#@I1!l`rRsFS|xsHD!J^Il9IznHGL)k1gXnxHCdE&NIN9V}qsvg_s&pO9ZH z6mhk15E{Qsb7BRP?g@O&=;p1z&Qt;;Pz|k${s{NF^w6E>W|Hm_X3=7QWKwG?HLvHI z<9~o6Ij10oY<>RFs{!s`A6)A5$4hF;ppL=|-tEa4ZzW^xOZ_xeJ+{P9SPVYfLvO7Q zFO|M|{pg@@_yLFt%lho=!IP%ZnVtuI^ng+v)q5~hk!FVSbG=1|5&@*Zn;|O^fT3Pd zTbb8P`rAph)P?McPVA6m`5qfi5dZ0Z?CEcV6A^Jah$m^1&NNs9l4S?#5UYzVT#T!v z%qSjjf4nky@=;k3UyjNP3t|{A#Ocm_#5Rd@dBy(lxcUCmXkp97y>C;{)H(<MBMwFy zCC%2lB8m04(}R92AlhBvXQ7Z=4kGUBJXyCNfz3B1*cT?xvaMb|2oDIgV^?Rq7D#R> z9C2x_cC+JSlUaBMYtUXgad_9OVDgm})U;6C4ybFRQo89kx94kSvz~=Tf$A}eubf)p zkfv2NWY+KUnpi#Hx_4=J^W8QrCVd<Krm4B4VTc-%p7@v^dg&Vl6I};^;Jmnk<?}N* ziQdHqWcpV>!s6Y})`lyip*w$#A36NcTA;f7jgI{rH^@jJTL2hr`~2CG20|_rn1<>; zi+1VZTl8E;Jdl;;aEh}xA<PTP%do9$ti{aq26H~@%Xl0eT+o|H{fv7*GGXF>c7fk- z%>S4LQhctM!sdkQIY?PSR!IZ|?5EE!d#r}f&WtTcCp;cE#m#>E9K*kK0(mc>mLmx4 zkWZ}b4qXu%^)Q{El~W@4PF;2T@r$(^L8Lr~LXN#=`$#{PIYQ5NO5I{aJixfWB-3^b zE?&hBOe+^&fIn(<U$2RZXwCx)U;VifN@nn6M@GWLGpU}QS@g)3n1Xb4wd_z&gNF|< zLq;DB;RY)&_Gg$R{J;r8>WDlIgUj-t!j_aZhZ|907#d@tbd3WA7P-Smnn^I-;>~al z%=}WS3WBTABI8KYBokY(7@QgnB|{2zy7JYmQ}}<W=!K!!J;uLFe|$AZAvHuPraXxB zolnl>sH?C1t#)`Z@`VuO0-h#l`F;LFd)MY<^fDC?5<WXZkM&{<QxRUmawbrAaBDb! zq5$#$UXtse(hgV`gh03hn~^kePSB*nI)tL`cdb~n*9=l^ill=f!%a8pxhQ%c(`njX z_XHl(H@B;9FP}EnH3VuJ5)+lU@4@SvNFNAp1^Rqovou>=AcP(y!uMltfQ)U7upf5R z99yM=Oj9B~9l&p{C7L2|=n@TqF>P8`Rxz@V8s04cWhSrZSH!f}pxhUgxYA%T&9^qi zSbFNK90M6fB8+tF=~q$C!jY7-Oi90eAO9gIHp5Jf8*@dkceYW3F*uh!wB?b)nT%tz zAcqlMQ?sI>{vC2CL0H(V9_*XkY!`(hSb6gr?ngCLZ&@B955V#x9<(_#&fdp44_^H8 z`D)HT&chw9CDh*o6*<zC!fLf|KUB2oAvlV2y7oI)U*7cW7|7{XBvkJUYh!k(!`Fs$ z#J9wA5Lyc~4->1WNX$~}`%QK(6>GVk;Wo;}G0!_|K_6sVcfMGqKH3Q^NeQNy@11o9 z2`>o&I0PwlvxwZN6B!3n%AXt0oI)w`rqwNwz*uh&L~4SjV`58ALEYq<jA0+!PMFbc z%&9WY9I)8B^RigUj;W+lD&;5$38K_pH6p?wcJrIH9+9fzB1-c8r)Iwi#zTz98H_yk z-&MW%_Q07VhxXbVKmVSkHb;<jz-~B4#01`KI56_8V%II&Fw*X!Iuyi$rQEu^fyt8S z?|L}}AZf8mhg1-DY~Z_C5%t(KGhtdKI}Q~!0`Kj9{R2hclWPr{{=&p!IVtO!C;(`| zTc+r<>L3jzB(?imOQx$onTgwzpvm-6k`VvQh{N!256Sc|hbo<|F1O7k0`cidb$1=` zk{;*E%EG5qqU;AV5vB#Z$`Bp)%s|*!>T{?@mhtYLgroKnq8E)h0_5zD>-19uAmB1H z9qKWfd~|gutnc2XRW(H#69jnIui8&Li;xx<1^)@&=t5jpBQek{)Sn25If+RbER6ay z)NC{<FQ_$0y{+R)pyKJWR9unrCd0*tT&9NvJOQ{s;CoII2T!N*c;2a);hMIRu<%lR zgKw$%1y?^5+GoxE4z~`S+5ZE0od+ULI94iu7ALW3($;J?E|~Kiins6M=cWieWyy)4 z?Y@&J9TRYa=8kXbm#_GTCqjq-y)MA#;7uwBu+X!&^21jXNC$*3Vd_bd5WeN8h4B&k znz|RKz4J}j1AeU?egf+PyU#Rli04v)`p5Z`ZJm9twLiuh#<1+O+us<&5`mVz7mCkz z;q_hNDQR(3SnO}r!OrHec*y}eoaYf}+nXR_x|;Xd+=CZns7bKdr%AN3HXZ(S#n=Zo zKY`^|guG_;HSV=y*UE-Jq5eK)eKWy%TSjR(D0KXV^~h>8L|k@W{TniHbA#*4&j~N4 zRiq+29*!cOCI_*|)V?k>WUM8_4>qZaw&H8QlY6n;ej(3pZ;6!2EW30U|J)F}j2OgT zGK=4vDCD}-5M?t}w{d5n7+*^l6$;d===e3T0~L>6P%lFQ@&Iu8qJQjIfv4NAIj<$! zDYb=rus&o*)8!|B(^C~90?C+L4Ac78sfF|Y{Fjp;nsX=)YpwSePPWh`;v+p1#O4a| zGaKqX6#k8gBjKEog>`VwNu&1H!Z&X4dE7ROg+>1~aIUqA(r%H67>ScKVb?AaJSk7T z$cYPRgR=<>CZWUs@k#I|nDSj4`lwx@)sEjs@1_Z9t!!gj`nKcV=O?@|?K%KJ{76Yw zN(WH}F8I80PqjnBY>eu$7&)OLS8_gxjahK^dWXXRUi>u>-*!y@IOR~GZeI(CaTmJu zR%J{4)h0_oBual4c%?933z9|s?4lSex@Fqldzv6Lb${<_#d|4%tEJo4tI=quWz{A@ zReM`B(rIQySg%qcBCYt(JYzT2hBdI&Y0&iDQ*1}g)}GwU)M-gF`$S5<gFS=F4GV}W zkckwV6ONM9X#VF9d$4Hyu<PQU;wo7yHx`<EvsL)zzE54B#Kh9g4+i-bPxvl*?wyzs z`og;3bVoVa`+_qwu#3&`rdsBJLXotPkS^K20LQrC=k?^oOm@!Vf6qnAn=|Y|T!ggG z&<v){s^N;lwxzvL-jNe1r*sb*gws*AJ>8NTA{C<XH>8zd0}_XXE*ffC)vyl>kx+Wa zn&8q{vNkNN!%>X5^XoTz4mu4j4eBp-gKIQW-Xj6TyL_nzuOlwb>=&#>jtT<<*-v#a zJ53#C_@ANo17-_}b;XeS#Xe%-Yhr)}N-nBZ)b4k*ITcottifLL;S)7>Ay>PfYvHHX z$$W9{!&gw`9`_IXsio1w!jZJFn0NJ?PTr%K7g#5KvJHjCzxIo=6(mCcy{q*k_;Nu6 zQtBClSy$b>YV#;h){rw*Yk7uckuZK0_`BWx%bLoAcTK{n5+*5i-n}VB;hFp!_8e6! z`ilra=d=)#O&bldx7839RN%^n_u6Cr`t$D6k`f>g)Wl+D8b;#B-2sIAGCY##T>>Td z{BB!Hd=~7K{;W9Y5@mM(cQlzYHzx_%@p2<L^^=Wb*D7UCj03JFNJtz1#c~vOV6EY< z@$`UsugLoD{vVzEh|oOqNNemtp@Go*f9ChHMNwz4u%(52rqq|a&*XjgOq5|=w9jI9 zJbu&6^g1bsocy`zXkk5@Q3{JSOya4Kej?>0SYm%DH3uEtet&6c>ED=F#nDZRri&CC z18$7Ez2Iz7CrT!vXy$IIbBwdtw2!i5l$>KG(en<q)`(B@uAE4)NU94K$4QQ*Um89( z=bj`i@0S=EgAfTq&Rhrc+vlLMuMbExbfC0gZfSD0tuYBW+_5s9D#|kbgp}x|J_5yC z6f>BQ+k-?qx6y|2XF8&Z?pnN13qR?5AsT@Zj81%iQMlZJw&!dP4thR5Z+8!mt46^x z4*anb*pXo7)BEAs0+tW=d!KLgTmgb(Q++)zjK*=l_<6#RG*>?Lh0!-qaMh*{)4Gc{ z<%^;8<=lz0GVZc*X7^k3p-ss-JX<p*4gP>19!dyK1xEBl)ek<mR>*O$OYHceKZFbT zK1r1I;T#A}8elBRS_YbuCOOvOm2we27}Dyd*b08JDt7(yK`M15pVV3jo}EUoeJ>*; zr{0@`WL||dJc#V>8j)&?|IhWe;A(sS9q{XVp)G(kG7thoBZ7nYafW_mH6E7f<!>fN z2n#Gihb<8leMh-2luD0bSsCB{ejXZ>&~Ry0T-2=SakZI}&vE?gZq)VzvJp1_Ql#!# zQ(kaAdd<0<Jr(>$<joosMA93467#u->!whMY--(;hW;MquwB%WW=w^eloF3-T*bTP z*#A$`56Z@re#xIut6gTwNG)|{i^iJj_Oh)nqnoc|pPURn-j_C;sBGRZS-Ag+k%E1= z{?H0U5H6{Oz2gDAM4fz|B6*Jh@nmY}91-tkRxmZe5TMbs$)wn##MwzE_2M*=w*+;d z!Kru4bIt07DHPF`&ngb)G3L|)vY}^vsQ!M|v|-W;Qn;)TMNz6`DN@pcAa$9Z<lT?G z$<G(B>v<20?R$KxFUOKkd-#U@^j{Mp&*ZX=!w)DP`nw;F7C8+o9&!mmu^I4iJp^@$ z(`Uxwvjt>VKWw>Xanc5MRZ!n0uCW`CK!PIOQq=p2u-MOy3H{Ra|Bf7dFo03iFP=N- zNNSe!%mwS1w<z}&n-sqqut&`{g!~y#OT6&v=;T+BuNh5M^SaeO>0;@j`tz#bnHj@S zG49UA-QtkfaN*utrWsS#@RSSGGz4Qlg?M^RE0xiW_%8kB13UsfTjyi(tI!n@sqidA z1JHmA_zy15O{(kJGz>IKwH)tKe)f_3(0Ap4@qyfIT}hoUg?)^x<DD-~p!O-yDiZ98 zZ^hkyN;^3&-6HndEOwoSzDuD84X|nTPn<@?DaMm#pR7u?z!=2*0Zs1=IQAD=f{MIo zt{%EYV)t{M!pLLaHsuLTF7tVQNqDK<C7t&guG0<jla)3k`Vz`vp_4oie2YVVolQ2X zv`G(3vF|QnKJvMb|1%(VizHgnY)*v-aDCO9M_I(Q&r6c#M%+>)vqnYuQI=^pzPc2h z-cQLIQAxiY0nlejvEM_^i@+Pd<wRhQ27XwU{|Pb=x_A}+^PVss`dk>+;=tCV(8g99 zDorf@02GnCz?Mu>=1tXfalmE4w9*Jw8>$Xx%!I>|z34wGTmEbYTz9Hz`+T*u<0NqI zC(eLw)EKG26S%^K7`>rWrCL^8tLj|4Y7#pw>AM%%Fz84xj++Xf-Z(_ua?21w=RP}R zoP*jVfA3i63A(iXTdd?q38||kUAftL;^M}YHD*AJ#Sj+lVOiI;?}!ij2ZZ3=Ygt-S zPyLXmcXc1_kz2kJXxU<8E&6T{REcDgBiLfsg^dPD8kQZMZ=~6`KFP3i2BZ~Ze}D_v z<1k<W-jCFn%T8EVgFz0J&|)C!zP^}RAgIG8!f0RwPx0qGt%HMuiWK!Cy6_{l&Sb7B z8FmT>yQ+3BS+R<``lLD`Af|(Sf?#QeL$Zt_Y<|a6rQVuAC8bTDulLVb$Z8qVh0k!W zaTs3Fy-6L5{)Vxk`adi0xu1rSUee`7WQ^_~shl)3qeKzLxv%z7t8U7uzP}Ei8IS%g z)z}g|YVTyRAt|XnrpSBX+S8TqyNUR1xvxI(h=Ut2BIp}Qc86$!wZQPNl$rM`hpENy za>vZD(J@2!n{vkPcm@kW$-ZL=XG?w*bWfkkH1E^psVisu>A`{x$#Dbk=kpu$+yLW+ zD(M!ivy<dHvtVB3>5yMy8hRFeyRc`%z371${}4qC1ekZvmP*xGp`7W&F6DFp!pjQ} z|NdC?AJI{`sOZ4igFV;#@bjmlOrEb$niLXGnO#C6-+*vqgcawcs4v#9FesBs7CV{e zFqv;hljR`FbjMRE!xgoOpbimUTMEY^d>0z<BH_>@b+tS6b?AO0(DnQa-$&Ef?s<Q4 z+cZ7Gh;3C`p;kVhnxOJ7r6uYuQ{-(4VnoitkLHL{sFA4ZaJyT}TQjaeWs~|dXnUx{ zO$w#d0>U582k(3FN95ojAbFNmvG2CGKq7t3`cuFmpOX^bU&aI<aRQsVLO{HkNWQh9 zzfqIZqszm^c1dCI-SYl)b|7Z(yok_Z1u8Hd9uCmbKB$Jy?{l)$lrQYvMpT!dmM_pC z>LLCBXy}u{w;5F~;hdjk4Vx>em4a9>V5Eh@?V<64;S5y>5f~WsQ@)o6$j|;58=;wQ za4TjhH1XkKj3emD<s-;>Qu*B4je_^kWV?sw*Q}^Cf?QaVH1wIljm^X-Brcd(fkyQq zxui!AlXlS2DPZptRLEv5-S=lV?8!_taran`nqw6WVtEr}76`zADd~3x-0ln~lK74? zmF0O@d3kxAMo3_tbl;oTT%#7@g}~z>&L!vxF8#*t*t|z8IP+_<+o^)Ybq5#={fMI$ zZPZe40SZ2n^mz8n_6={}TD#p3_jC7*pQVIzNLPBTrpXg}wwLa@lb9BfgrX<mF~)ad zC+B|dXhu#xTKoHNf#mga#`v-KSfcmErb!H~OO~+4x8(gMwCMcXOobZO!6vWkMu%^^ z?>TIKrST(AQQ=hI6rxEb5dabB(INqL23+_qi<#(~c<cVQEAao@_H=t}7T3M|7)@{R zX?~897Fpe6kt1fT%R}CwO>yqq9#ZXn8|I6?z1;6IEkf(GEvh1_l-Pr{kP$EoF}QBh z>M?w_W5zFW(?Shmta_Hc$~Ah<!Mhx9-9xxvIu$PM@DrLE-F<(F`f#6&(Ge~kaG{aL zod9r>B(BgWkKyiAywX-q%BZvb{Y42=>}I+pSpw#VY8a2xEy0G%1Nh{x0`3F2=~#@- zboE9c7P=i*H{bo#DjD*BFk0t*hE9qKR9}!<E4L$>coPe|tyoQCZw;tE9?bZ^zwqeA z@{M#)TE34OglbJ4Ji0~J;KRO%aYP_-PA0=<5R6QfHdpH^YB~?ad%a#K^F_+KZx@V8 z5YY%P1SXMqmVzJl_7nt>&q+~%q(I7pYDr?iq-%X@z(84H$O<eRmAyrXo&9Ijb#$fz zYlk&1l5K%x@s@lE-oh;F_ZTX3q-om$Eku9j<nXS0`l=VafM+@$9?zLSKeRWGX1|TI z+E3)wO5zi8!WCuvDs!R%Du!H6`Z9a>v`XZ?#g9tUekRApmYb^P!`;=Lmg1S_u(=kW zxbg4&lxHF3JUop-1IlcfgR#gzNx_uN(vO0XzSXyWl*=_Y+PsTGB}nSL93qj(l?V+% zxw&p`?`A~OAqIGb+NV`$j+n&}DzxeGYYr?_8=1IvL+=WgFt~AsB&|I>JY>2;N;wd& z#D=^$r19FudzhPv_)k2njoX{i|FxfkkmI45ROU$Fcfcw!#mztiv6BN=9FEQ;U8TQi zogvVtQB3iNE%Qjf(1E2%N_c%}FCp7w?hu@2f;cfNW>0SgmxTH2I7jzdo844_fNq7( z4`?sN^u_%_ks4jj7$}p>mH<_LaRCr{WR64#f+_Uup1C4}3VWBPG~`th>+Plr49>e> zVda5mt#;%$Rtq|{1ns0bY=}jK`QM1d(;yKGUl2y+)FuBg6b8*+u6a&%GSSn2|BUbr z<v1nkl)t9NeUwLq$3_9g+{#x#rifGaZVihQtQ-Mg2ti|;PaPkZQM1~=dzyJy85i5< z>AbwW%wjj0Csbk7?6O%_TIx1fJt)0ht_o)!r=W|6Nn94kEEyemUE*%f1zLLqk_mg2 zU;V4BF`e)5zy2u2Vyq;GivQjc?#>+3;0w)p^;oJgcXi!(4k0KSLZwLz=0s6Q?P|8D z65Zf6Ormpb<d(_{<*?tB=y*PBXPC_9vLg6{Dxdf2R*uE_9>uj!YW<I5?K-s_@N*Qw zz28RcAdUAPm{j%aS6pCm?8%~8D75+J=Ei`{upt&P*F3o6CqlpV9-=Wu)*3t?4ZL@> zwc3|`MDVY<C07y<RU#nEjPOx-AubaW>!2IGG9-y>Y@pF$?t4uP2AMF@*OecHCHW^I z=$|}x>=^w;lDq{Eftqy0lEUvOX%B=D6y!+%@GV6HblgxyauUeJ+J58d8_yudg_q%V zR2{!wma}jYHuR16(3o2QO`NS(2tkh6Ta59e-CTE<nBd^^#;x;3Mz_mXasR8m&z*ty z1-mmED)mh~`lnH*M(!yVn&0dN0Ho9QfIodw5s-E5c&aUszb0vRDQxb$TCS;<mX`O| zTxKO;SkJ}0(A7KpC~e7A$3ImSUxw4Uz&Dgz1rOJBM7Q*3aKY!D=(RigEng{aI!QvF zPn&&v_nvN>oL9MlMfj*u*G!n|54rBs08O^9mH;f-wv|@76mlTHAejzvWOHJr=fNaj zLEu^IM-qM~KfWut?16ISOuLh;UdDD|i)xj-&$^0cgc^9J-xH`bzhm{-D?e>~{3jRI zC7@0`d`v=lb$vajUv0=&XVx9EtJM<2@^KQ*@GmE5s8r_PU~0D)w32}D^4OAcFfKDQ z!%BB>yY<Tp;7{_TWcZeoDy*AQf|5yGyi5E>+moO!+<4JY%Y(n^yh;-Kh(3WyS#0P+ zQEq98L<j=P_xwt5jH%o1<VU^&j06elF{TBJ_?%?ly<AUWo~<+<6O3oFjYo&{u1tk; z@{;bxQ8Pdr1r>P*KJ(Gany6#}_@dzm@fGia6i^RK@qS*+C{W~kAAQT(K$F>$O%8D+ z|1fTYHim%-6;W9zajINJLfS7VLNL%Cz(T?X3mWc}qdsi_m!?9k)){BAHe>M2<cG{Q zgRXyzxZS^k6I&}5>Z_-SxP-QUWv8@(B@VrG+}U@^DRiEI|E5m;_}r&ywvHD3@QuHc zx2omxtAUB+$}-uEHn50@3}{-I$)1iyYIQG`@s_WiKCzC{R@Z9JoK7dNutY<surQEX z6h?yL;DgV}hKH43cdbglbm4XH{r&4=RBPTFIC4@5I(H;4TCCqW$m@@2pC>#xNa8Cd zPJO3L1?dN#IFXc+M6V*`AQPV;SRnp@RA{%JcU(_)pp)>cx~{i*!=K>WM`DHHqw4Lj zq^F@uvIGg)M>Y2~nHJP*T*Xm03UGnZ!Y-r%_dfm!5BbCcBQa&eDws~^yM#qbSO-&} z;PX;MazFD6GT*gJoFUC5MbbGwMrB_KUkKM^H%83LNywod>kPoL4wvn3jOB$;0Nf#- zxfT2>76irR>#-w+<%jBk+kf8L8O*wqmmNR<Z6BYuUJ>?zLR0m!i|Hf2N|HTqVsU~y zBq7?2d)9leXmU9luRVv0jO{+BPZkr|TqP-c0u)c~?iDs+WB#d(9*r8l5}sIn(tW=H zZp3uR8um!E0jATINGW=P9(|F>2i_-3b(r>1BqAsu{U;ErFLIZdE_m&unosvrfnTCN za?F6*jx3NK;DAX1Em0qJSUFyui5Y@FZ&Q?{b@@Kt9L*_EPfC!{1-3p-TYeR!p^(AK zd(d`|%n&3X)Faq$B~&*l#rxYN6@cI;V$TUKkEk?h_sMwMDlBzYTWweS<N8A%E3CDB zy3mXY*h=(m<4~vOmv$;NxoyyZ-;jC^2=TPl0|Y*0028fB`3pYcOy8fGHrUU!bOk@F ze-R73b2%)tF{0?*>CF&dhnAk-K4@LACdiuAT!^(a(C0uDFo5EVvnhXQ?tiwQRcv;L zzHWH``_oDos<5j`=c#>V4X8j@H#uh>!K|%?RNQgdpoPI<^_2H<cM?!mh7#64Yp5+q zC*9X%#$LA{1-^;cnI+*)gmX9J1@3xH%mAvEYS-KYA@V-$v2fs411S!;)j6dqyu$^3 z15m!L&iuJ~BjA{~rRS;W#Eqn@T#epkGDE5e&$J%r9$|(>MNGlSDqB3drx(eMw|}O} zu@nsyd_LdU;5UP*gKHCT01@)ut8U(SYCj-j!~ev?kYX3T3{_>v3}lM$7eojAMNFxl z@?0&qw<Ab}v(oZ;C~k6I-9R$j4q$FzE|q0Q0-M5DU!bb|vQC~sA&?#_AO=ZELud%E ze3-+#nkmL^Hlo7Cl!T807oktbH6>De*KDa!!PeRJ8mYW}wEIh*Ne#H72}J{5z*39X zwN8KUG+_PAun*LcZ<1x=W8mE~+{WiHTT0S|E*zKOrxH^|Uwv`K`iM0oX^Nq<kXl&@ zM?Tkwg@gu*y;hLTN;}KGK@4l}4pV>H;N`pzj^sR0FblebuiSBnyZ)6Zh`F~_R2hnh z!FCPMK~6}Y|C)=#cJJn4gqTRF+t4?j#W6+7WjRp87{K)$iKDIv`4f|5XleZ(d4S5q zQC<l#o!k@|&ODe|o|@WF@3)e1TO1V@Cs=e&Cs5~zCiuK_X>ls>ea@cqdfRO~Lt&7I z+x^*k_fYmwT&6oR`X>)ox=(pGi#z5%5(>5448+7TaEGOMwjUr3eFL&8cIMp5kC(f{ zg~&CM6w@fpeVY}LzB7R&#@uLe;g!B5)wLBvTsD2Ez$9hCfBH!&!zo+7{dHOadhk&x z2*Kw;Rd))OJFi3>p0U%ZDO(Ar7{RV1IFGpD>y>4;fEQGfx@kogRdka?Vm@U;5ucO& zvV5PFTWoA>Ra+gpc1f0(mkK9;JewFEZucqA?z&rcU1#gDNJdcJ1NK33G7E=q@BC)X z*RgQ19go(giCls6PI9q;pe~Pn<)J@~gO3Kn+3v8E@8?l4aU7Cj%&1g@9}}46NfBh( z_*DqooLg;YZO4x2WWo)0odLH$B|`u*1QpiqD<MR&_5FpGt3?@Pdh@*BRT-%vGch&+ z?dC?C=IKYy1?BYb9x%TwEo8O&oUV+*A)q~M^<zq`MG7<wJ{o+_dPMYkOdDGqh=33Q zV$M-$F{$IQlmfC@z7Ar!&7nx#{?TT*J(?@?ov+ZHig5Y2*G|^T4Om4uaFN4}_#WTo zu0m$}J%#E56GZCFDO~tTG}mHj!PkP1&GaUe*GmGZ|9bP8Mj<KWVLOIk2R<py@M=u3 z8C&ih+UE%dr^7&ZHgOytKoSPsuZtWC$p8zKG9L8Qc$A3GY4mEs_b=B|=Qt!Jt2z<y zqr6ALR<H8C+5J(-!+r-^G=KO|#3_2Wh9!s#Om6Si8$`L{)O!)2AfTH;ISTw$U!SR- z%kR9Gp>HaLlkuEgSvn}~{+E~jZf0GB*etD|atq>}-F#|;2^xqi01$&{ad(_6da;Ty ze)2o7=zy!;7Sq&)e<0dNjrx@<H<_39Xpi&kpJoW9_Sg51F{k_hji)oUBb|&R2D|#V z?myW3m%8Wu8Niot20d-$hrUAZ5d}7buJ<-Wo)hc5*v>-22O~(~@*Y~R7CGf*&^wC< zO-cy9hVoerTgH?b#mNIa;ltN^m$qs6omciiX<KWjtIe+f8cJa%rXN&Sa1ESJN|v%h ztu6BD#^Lq-B-mj_arON!xVMR}khuXYBu)^a*4VabOR4zSO;cRfhPTz)y(*+paA%5Y zvM{3lulCkIiiGK1v;-kEIgk08ZFXD8=eppt1GD4^<XHMaNlBSqJQ+1_imyOPSAZ`% zR=+t3NVAu%1Nq7<6nd-O=6x)0xb0K0s4J!_Z`wndP6k8u2f5r-5mY!*Xwyp~x&7&J z2kksZXnns&8F=PHISjO;X?6XR@4N9BqaeW+k7{?a-<MDs!al3241u6`(g7-Clj(Q) zh(V=z-|e};#uuOgh~7i^Th?t-Qj&{iQ9;4$oD_?wrE`*KGp&lxH-ivJK_-{lOA<f< zd2d)p2^{SD>qF}=(+1iemG5ejvP}UCRR*Q!`Cq<#8KV_eTYW;xlGz*&hSHl-7S$~J zyJJhiP}VhAMO0-di4kSM#F708$HnpN6;FMr99|z6s)!t-9BRu`8%K}{!&g8Q5Iw;~ z`zYPUM5bLtu=%k(b<<{vRD&qS87!cVRNM=B4a%gF$@+K*dp<9`Sohs@KhDb(lnA3X z7ZPmQ!Cd9;Y-xhT?gP@vZPgoSvx`VR^<4nm(VGMyLndG(p?d6h4|oRc5{>pV)Z$!R zbzKS)qF^&-%VbZ6X%yecXHPyfNaGE{bR_p2??a*$@dE}>qwq|VL3ya4fYLX-D=XM6 zXU}E1et*@XKN=mhIU-Q0SM5>%%*QwuSLlzpHr0)R`0F`BY)Cq48Xp~<WCe-5LTuFk z5Z!!UYNzsB8n;BzS~i!}iqFyPH%w_T!>+5YbdmVdVJcO8z0JPMIHu;j;P(Vyq+0D= zdmW+o<gVB>V&(vQQm^fu*X!#k35w-kc2j03ygm#<fxf@HpqV_;^~x0bP-CZ@2P9x( z@Qgwh{>_|VLthoo77;@DPaHhAFgZ^0TX=S%$GtQIpOz++Y80kA1_3iu!wj1KEE{EF zW=!HxNh-G!2YbpM5ps7JSm&_4Mk#M?mD7;<*yu8?%Xe<A)pOW<@O6Ks@#AP>4b$Y* zW1O)2P8m>AM=j{hgd`6B6|2pKD`{wvN%lAK8?(e#Mdi<m#|fS(W5kFp<vqk{O)WZ= zIV~T;M<4}_!L)spE?**(CoR}5E3NBZnf4xCI<MOyd`vJDf&S%x%p)78s!34dD6q9U zSqRAsn)?6*jsq{?%A?ek;xlq88cZFWevDy$=<suY8t3SK;Tehe%j>!!iad{S9C$Mz zbMcK?InUI9MR`RxIb~lFe+?Yb(}}?Oi|=h+Nk2h`J6yGS-pdz~b3jQ3k)CV0m%E); zn_joOC}w|XmoX8-wRo$~g@hEh;0zm*PMkICN=RO0l^^HB+BE47_I;%OA_^`)7zzud z1yk2LU!0(FbX?dHf_`Ug-6j*qqKuS#3tbJQIxV*#9-$fQ7@R{9DFWZgg8c}rRw}fa zq{*G}X#~g!*ibs5sW~~V_W%C;p!p1UL&IyUo`SyvJW%I<+5q@kAwB?JopNA8mg<HU z_{5fdlrfm-(Ex9^MyKWao%Zvt)yDxG4eMo#XbzoGAAxGOrjAx_mHJ;r^^dhWjT$-H z2$M(IOCGb$T2-QJg7OtCrRTrL$5-pjd&BR0w*>rQFOSB$AKmXgS@(Je#PLtKo=hQF zignvODfX|=Mve|q+vK#>7llh0yd}DodY@P9qjsgTJ+u-PTRVIjoDh7UP^M81<{a$5 zpLBPQ7d%n`Z(6S|q)qfB48=vov|J=xP4Cpy!l5tAMd$fz-J!3&!OwS4i{pjr4sG7n z=cA~tfo^idG^i>l0rHcaWGi0(%9Cq4!UA|kTx4YwApme}F^PPP#cMj7DN!gK%U~%S zBxoGPokgKZ5DFzJA;hA#w?ukC1*(5d$>fwq6iCicS3U~#J>P)NE!9~mtov>Thf13y zU4J<YjHC9~&JMD-2>?ph4xmBIsX`CW>(@BZfteI<ZO|hvEv-cS>98c}pdj!}jf;yb z5#`U^wS+H9S1Y|jfx#Chkq`DGV;IK{d2Tb2zBEm@x+*^@p}9k&&L1AFVhV+U!RKQ{ zJhlnaY$@m3@84%D)v!%!fGE^o67F-sL_i)u_!<BaDjI`3i^3xTDF9-K5TgPAZG{6h zZyOg)+ff?&7A+3|aY;I((I-%DFN356gABUXWzA)fam5OQbw-#P5s|if0AE7J@E6(f zI>zNnHO=q79EX7tvb_b#c9VIdtO3sMAwO@9&IF!J<?@Ho0CI_1ig<>ndl==PBBsQW z6hu*fY9_A*o_98Db%#J*s!ZDN<Q{V25}6;-+ri}Uxm&ON`?!0Eha@$++csmQ2*8^= zk3*5yn4mNZ^UIGBtf5gmD;@sV%~N9cYwi6pm}baOK~wvq%RdoyLd3LdbLVk$+c|M4 z;0b`{3|fq?G*5LcM6X5dU^3rTK6dL*zo`_~CSmt7UBv5TrcFENS#6n-E2ibg$Z3th z7Z<e(-06E$BcuGpV+0&_SnJy$A<`Le`(;;3KR&8YB$1IgxTegaL3}BtywL{ZPyCtB zU&IuJ9v)G$hcHU$euY+vJZbg-%=77}Y%{jLe;7e2xgX|)f&`8(ncY$`$5kDzeS!3Y zY+P~I3}UYthV@gPd$xQznD6LV)~1sMU!&hr4ox`yLlR9y)}+e@rQIi-%2YYf0XTz5 z*}$R}cZ~Om*v<?Rl*Chwk?{5@Ej`RWX!cPxVz7tZ8tD)KI-YL*yPWWdOq)?KE$Ux` zWeZ*B5^18PXzZo_Q1sMi1irWoc@&-(tOE_R&VXCl$ju>*9PX$~FE;lOeyVk-kl^9J zvT=&oFZK#Ov!xBq)7?+*#rviP!xegREFDhE^=Pz6Ff?e0T&lUHw6t`v=;FKh^syrA zPLNH^)X-gZ1}A{O_Jk9g4~LL4-QqHP=5*^XMFe-}y+DHdJ)TYM$!eX|Fz>))jIsZI zM&Yihl{A?ZlsJIn++F={@5C&o|1c0JT^<{afy?~CVJ>YjkPzS857Kv}8o@bJ))$G4 zvts5kN*6525>)&jJVY$rFfo&4=}2nm>p(qGXGGI_kT_TmFJXW8i~#AnA8MN^P8c3u zM<6013Jt!U*Qcpz{rknhFARr`Aq0JAjVtd$V3(7c0=@dZG+CZJ>-OTwt}>SS^JmG} zXo#@k_II^h`p#F_bG{@;kc_o8tuJ4BYW~k4e;=EqgbxMC1zxQ1i4u~!&ku4$>Mya^ z!-JVwt6JZiLrd&`e6KN2e#0Gb!RLWufp>ZJUPtfGau#>a4zl|rS`pW#G^8nt9p8n& z8JfZq^&-b6V05mb-lU|A4SR^1$;O<>3q+!R7wG83ye*`mbDCOo@v~QZ?zluxXf`qT zo{8V+-M*rHpVp7&Cl4>k*Zl6ws0U?x*GT)D0^m%)^HPXODtOU}DgIzivoX_DoxCT# z>OQ@%!EBa>CEtSv!E))K)?x6+Qi}ZG6#GbKhz3-zd@c-yJ!US|d;Lc>dN=>=Ri3t9 zJruJ(;@tGPaLGuTkobQ~IbatgYUq?P92ldUZ}gkN?D%5R?gNEXH<qOAH3QCT?;S>G zJa%4K7y9>P{!(T~0ztNbNGTe8cjQtW+YgYNK3q2TwzZa)7REiqyu~^zg;^8<c1?|` zS4y08fo)_z;)cG}yFQn?T1deV(+_%b-_XQQczfMN=cn-*-O}$QMkgmtVbJ@{Wa+$6 zVdXo=(sLW6aGdU$`^*MR=GP7)z!*t6?!P+ceCLQYuAXhp2r5Z3W4pp&pM8B(|9$0j zvM!8Ogrho5x?CwbQQTHwiT-}<_!vf|W3D9=+$tN2O+cVPLgp~>uo9c*qa%*f@hWuD zEHttGjr~F&c9V@wKE_}Fa%5r%nZ0);6e)_1<G`Nw)qlA9cVa9HfvNvR;8cLT6=%7^ znRD~{!q#>SMc3t$RdOd`XxgS^#!C*!aC>n1ip&SSWgNrkgQV^=X)#&=-ccZjtlsPN zUoH>F`Z2*!jIo=L>p$8WozFugu2n;P_VL#|2t$MtR?q@J!h)PgvbWD_l16?Peh6>= z0n(1JbY{pJ;7dJY<l5;?oc;Srr$Xlkx|cQsjueY1(k*=E$$+2Y&B^4<y!^>;!7sXr z=~7##-EH^;b5G!#PERZliT`nRGwf_eJw9qD0a-oA^e0TMj}%BU)YlOf-_l{-Auj{* z2NhWSiq(LJ(Y<jDiO0RP_>~5SIg&@<FuZ9L&8sCb64=z>G?gHQqLyL(3N9%@53*r{ zIn>mpjEuJj9C$o;!J>;p5xAk5>~@*V6DoP5VgI2F$2v_?&jqHrH^puP2J!&L6lEy9 za=fg6&6=Z=t_c;<vG#1QdC$lZ%==vq614L<%<d8YUqx5>>uwzD4?bZGF`PUL>A?3e zbor-^<DTVL!IozdbJuQusXPhviC~<!toY<E=-sOGw1!Gvp(Zw`?Tt3a?7brqV$mlh zO04Pn-?UhZj@_3WpgjBeS(F;%R&J|-SnO^H+Wx`c-?<FZ|76VgN&@L{V~@}bw=tIV znovf=j}!DBHVg1#?Ft+!#0~?8o0L)li3gBYW&eMIAzL^Z7LsuLQ8WGi-2{VgLMRz| z&iWKrZ)pNm(N~^Kt`S|+pE4{H7l7x;%w7nx;{I?lMd)9fEE9RdZM~K0UE`Y#ge)|p zJi7ldhS_RN=R1Xnv7&Qlauxwnl5fMztX|ti=lQRL1ZD{X1Ft-$wglS)HBxzjxh^5~ z4@AK=(R#?m7`6Z~c94z4@2;LU&;(|Y)E1G;C2Nbcm<I`;V>-aLVce+MC0IsB2iIGN zu3gjT;W1<RikTV1maw|kbv0TH;0}9ex$+=jzP<g3OQU;J{V=%i;hZDjx)EsJ^+L)L zk~uJ6zjM&}I|4_XAp{?nrh?vv^ldf$5E*x_i12qZrT!vvn*N|;9|4ZT*QXo0Ro+#Z zb%$hm?2pa-r_S%kd+2hmM%zf25AMv$-*eogOPyCj$d@y00&)kHeu4Qu7lqbNOifLF z_+|UMELrqw<ay*`GvSS8D6tO+zG9GiL37_M;1ht_BsW2D3qxT;A1zL?R?#5V7N7|; zuw3KcT$#psg>Gd*O!xe#uZYJ!*EGs&*Wj;2!_AIw7{B0fuWp*OKgy4BPT!k;P>Uyk z0@!R0CiCYMWXJ;!zef4R+#_S6?+iRD?Z|Lb{H4q$1R+wIBlG~>mMG*XQy`0n9(ExB zx%gvF0z3p72DL9<XO9Pkn+*K?O%7oJ0kElF+B*zUphhoE?XrDT{30j0Zz$XJy?6rN z>+fMXl?LfuCKi^DM-2{h@}~a#89bk>lvy<1it<Q3ukb4pj!cmvIB)X(UhZ8n)s_?l z8tK)^3sz(turU0u)s^LWC=Y(7QScEvDoqP8U!`mos7S3Adc68`<>Vh|lW9#-eX+fY z(3MX(eZR5Bs7LNVN;7O8U&!Cv)Rm7)!2SZ*DARyF>|zehHnuz?<70ZDaZYMDTA<%E z{^6YY1i|;s&<j$n3B}&(>640@G$00AbE4h>`hgsl<C$#ioXC@dyO?Z7O$qAC%8rm1 z02|uJRDk7|_>Zz<-x_IbaQIQG6nj+_aBqLRYBD2%SjT|zD%b}Ui}a>0;6x5CZTjWo z#hSv|H<{kN<}r?T!xvrLK>IkOAT6)f_O!TNdlCXM_wWM$S+`NpUl#ug0Hz|&kVqO@ zV2JnfgNwqA1d;xB!=8@Iyp9(V8~RQ~Ybpb>JHA2m9ys=pTjajRi%>#lkizp~AH<IW zYXHsR@^8cJNgNJC(#dM`ImL9c)pz{e)HW=+n6AaK8xUIB4vjg2<YisG2KgtzIQn8= zuPE>nzDy51ha{SP6o>t0SMd4a;UNP2zoSP9vW7kyO`nHWI)nOnS!tUeC!B%EO}DyA zRg{?g@fjkT-}SdYnR$44=uLg$i@)jA*4EY*dTV}p?zxxH--3#JR+dQVgupVIjEDF; zc$uCEz+#R1vPA%b=y6-oZok8j_jVM4ULfr8paxiCF0h9v7?&WWKdEI-W*-$3E@IAV zALZH0TuvXerZv5oT<cA(^`)8ND6p>VRWSdilPR8n16FR<9fH&Kd?w<OKlkpy?&C#B z375351kX$3nycm@?H?>oILbeUsx@5+F{vUDQjphYN22U<g)=xz(P_e<6M=;a-DByO zYC0>D3fvJ6b8J!ofA3LltxYa*jM0Z4Pc<^h&1dk3mzD6}8ejKZRvH}ssc>}iK1C6j ze!ze(X*4u|Z_Q)l5s>e10(TVrY%P)e;vhr-Q;?mR2rJ0lFXj<wjc5Hj`wo9=%is)p zzv&wIxSw?|6}x5qQmu^irzMg7%`H91UaoQ@4aL}(+qT!ClO`V?*ep>`A5#gBf1R3= zcnz|iDi8~0n*N}hSIFow4E*)X<DN|j5|^U<6GKo4F=x0$1@QvxkvJuKc+emAeU$^= z|Ia<b)P#8_9U^&}TF|puxCv*tou#)wa$%E`ni=-ZlkqQN?I8AnMgj-NJ%3!<GqL<f z)}?;IS9+%d63=z-#o$(-Q$yRSkDsnRgKYB(aU{?II5ItDZ?_t?1y8LJsd}8huVqb5 zOY&j}hw~woG3aNpn>dQ!uX!%=*-sa-{D<g?Z#<7{Nz-26JRh?4TjGT9j(IZ*GDy|N zKx3#rO{*(b>I-o{(lmY1x!RkIXLvi^Z_$u|roX|8Pz<l)%1{Oj7a?9Qa8MHD67WF! zUc`b5EI8w#JLs&;%RfrdBR;$s!SsjD@@V$k(OXdV6eIi1$GPunX<E*;;->mmxcYI- z3??7tl-mDc*MpG5NgA`r?y`ODBoAiFhQ}jVS0X-Y(myvluikZMnT7Z(9!%z!6=9}q zO3#IasNW@A*9`Waz|1#UG<#`{u{C{tqgkeXOkBV%W40f9Mu!%;TR!Uv?vx~p3qKdf zv;V^(AXt<(3Y-CQ29S+maEzuT2BtfcShMu4o0YwXCz@t84WJ;PLy5mtvbFtN{6o7e zspIKiWhgk1!&AC}HbQu}cIMu({j$%PqHH(n(Pm|zNg5KI1eRvy#Z8Wwi$Rcq2)Dc$ z!_W-3+0AiJh_JD>$ZCG1p8gE-50Go>Xr)%E=l<$Z8|+srXSqA3w7F}w-#t96=pD=w z(reufchhMlwfTJX@^~#Y>gaxdZMxMvARbM1$Ta81A&H(=4}lN?Y`$iAo6_8exsOva z7+{PTUcr?su-Eq<V~~qJAkd<jM!x`}*>y(E9G>?t2Xn53KB1qM%?VCh_!Q}o4-M}# zF7TB4=jCM++QTPpkj7ryQPrKthruCs#jH~tU!ps&KGhy*H|-XU7m_36$WRu&jSZSD zr^BBlA$w9c2(?RCi@yxffEXi>v3SkVTy8k_QLDSI-rP1U_E7|O<1eR6_>+w#-3Jy; z81jjF^HQ6uqVmFIC3Ft3p6|fmb5_--lC#!>0)Keo%H@S&{NmA}He%XqsvpU5R9Lug z_h?a0?n>k+Q(_mh-!T0reEo73At52+M<ChTB%W(&X-SM%UUu-xI*rm@w?U^-a&m!z zPkc4pB-Mnl^D>{xG9tq`7Z|wC7&ot9t5E;zm;Pj)kSDIAR8V1RYM*Mr+qu~ScU|%s zjF*%?T2d3+P1r^=qn1JdEQ(YsA>7dC)$X}6V~(VWNPq^ZsOh|0$@u++uN}XkZ^BBG zj^vjTOCF7to=x0%RzqJcQ?cacYNbV$=mM?bzk!F<-<lpDw7&aJrP8U0cU(`3F!Tbp z7KEJLL(cf!4g>jaj#49>HjzZ$-m{$^Js#DvDzg<hfxYF)W&!;7IbP}ej0~pOpGu$8 z6#^Ow$#E2%3cL|lrXoDkbhb^`k<USnC#OM)=b8P!BIG1&{a*%0jxug$?x`ow|3eiT z640A=&Plx;$Hu`&rRDKA6)(Suilur(X^sFXXyR1Ekb{^4qTyRsY|ZBDJv<nk68~r2 zpbDQW$`vL`ZUaSFAhE7S`NtgM-McW134Vce`I^UnIKqI1B!UQD&(rADh@(zmW@1kc zb((oyV^tw-&#g}aT;M-cnrl>2`8(e=bEF|1KwfY*!&Xj#j&XOTd?K+sMd-_A=$nd1 zjg<D*wbxaQ)7eApNKlU82tT)VebTyui)Gz;!NXx530AY(-*}oyEp?OW9^W^Vu$#=| z(l_y*U!=U<#usM8|72y$)io7YXoR7L25fx86-^GRbrD!w7{I@XDSFu=h=*$nlzIFn zlvov)JMkQ*tEEb5l_?aGGIAMJpy~_rbTaa8dW9>GqO0B)U@baz@wk$&>JyyS_vWwC zPo@KpbD3;LckZt+sKm?FI7c(koXtI?i4Tr#;;_t=bq-Zl4Gp-CL@J7QxUkT`GLGa{ zOjlj2jT^NMyff<}SN)1jR_C!lmViwoKe5s5x>@r(S3pBmQL#LEu`{vj`6YlkqNq&e zH=|IQd}$Q~Sljy*@2<#~e(mKvzW`D!#??2)oEB`<?2`YVc>@@~c`%;EVdo=Z1trF{ zA@QuYO9&;yC^?5mqW>BOi6&v>P2py1q>{v!iiRg7H<!R@q5|Np^~u(tAfe`YUk(y% zCOm-{0!;O<A?1(+spbDe%$vtU`Mv++_bd$AMu?I%TTzIR!l2S-OOaG)LlUxQnHfSt zXtQT3Yeb2Zr5Uo8n8=o$vdvfrGh?>z<3_L7`~7+U{d@c#kE!U)x$kqX>v=uTbv@6y z?@{O2(gB=7lpb3B$@IC8g_isG?`N+~q<aowt2oL)bIdalJh%7S&OxRxwNvkaCfsBT zL<=x^{poaH1k#D)_f@d)mDn-ti)`vpaET46`;8~+4FqJIeZ(y`qT9%Fq4OWO__kFe zwkmBSkG{STTa^|15TP7m!CXG>rfK-%L5!SL2)q?gF|=JhQNyDlY9)YBwzm*nC$ihr zxj_=Yqz-v)ZG{w2_n}s=`o<jz_}e$?KHt+0*l_bpX!tW}i;|0)9{p>_hrj6=Rjk@) z$jGML+XvRExBF8kqUDkC$;VY&uNm*)0_6r#2J*{ozb^v1182)`cKIw+v>5Y{2R=~{ zfv1nHka|1~hpsRdiLw?MSuLRo6lcNk7&+t;$a+iWuHsg3Xlq@b9DxZu*e33=@1%g4 zMT*8KN8g`({K9A>*UZydj`46+$lCJsF5$_nhmUGnUl2tnUB)FsJ^SWfItQ=Z0PcBo zKBMzp9WIWGhzTFiMD0SYr_Zy$$_r0l7!|S58`b}fuxj70e4jFZxjJz1W4|Xpw1eFD z-hQW<Lq-<dFpgrQD-epfnIZxGY>JAF{T^U<&1FBFeG~)xs1?}BBWrW<E#l4&C1FXO zTg_l`9oDq^LB^r{rr6^rPksV)$b}R#?j;BA&CZCI)D45^|5;CXsf6&>2WcNxtYsSM zo7wKx=R7G0*~9%^#WPm$<I+bw0lR)ObtBsyD689L_V93gS)IzEfySU+J7uhM1KNJK zJT?peObuvXanrn;VQ3tYR2Zh(Dfv)}SUe4Yud4wB8L#+d6YsefMMeZcwV`Da(BeJk zUe|{$wJ3`}_io%?^Xk<rl5xe`q>PM=awFDqXI0NdpYIh_{<AM#qUOQ`>NFD()4{sq zPSwNpNEH$AnRlhMzI{uw@RY9anb6asXU$YYYPrPE${2<OR*WYYvD5C~=h>kqry3L# zRG?~Gl(Im835CE-WJ>?I#ZW|SR$;}<seSGI=)G0Pa1UbSM$m9I1c4*buRdjpDGb|| z<Xo;}I5`wD#8<n@O_WVIUw-qPl4~To_H~fXBe=*`5fRe3pM~uUg`j3n+G>pQbBU1I z@}4lR*Vk@mc8X3;cAr*mYwtq8?Kgb#tJ_yV1l|fmDhaqHTknCp0vbk`qVQ_vveVoH zTkY5pLWX+peJ0yNQK|!5(1qeeY8!|AzWvzh)Q@o&m2c<Db3H<DIh0a0+bnkx>yaw& z!P(zPAKF*V19t_8$m4|C7!wdp8&$RG$bPcKR3sCa$+xh|4fs|aL}_#y<3Lr}zAE|G z8``}eBK*ecEn$RuqzVPR)I=2q;)R6rbDeFlhM8##?)7%w0WB`RRMic-rzFDIi|ec4 zd$uu=>-t?SjZw?6-$`bTaxvZ_q8-~NU1-=jcBWq3XK}DHJwmtx6v;?H5%PqXXTkVX z85As)3Awohd!}aph#UGM>&n%uXtQ@O9yo0)n*1Rm1W67dQriMoy6mFmk1X!?eRb;6 zx7Wij<`rEy;Pz9`$Perer6`ObycLFfC3TvwhDT#3D!EGkg0lwCvC|oP@4nC{v)Y-M zT<krhH#?^@*IY7arOU1zc$H=PTjaQyAl0EQW#Y+nPXBN{QUm?~Mfha@An@De{cwJW z5VYEI&nQj~l>i+5a<fBfo8F%%HhVzD=91;%#d>LtEfSv>(w$0&={=6<P=Fi%Z<(6; zE^a3*j&kVGVP;fhW-pS*51x^(^t0s4vMwBo1?)-Z{XgmpT7;~V+1yHxqoZeYqMYu} zHxAS@#4V492`<pJA@T~T2TiAqC*XDc$-U)znwMA?J}8|LdN!@t4qRg2_CI<!O#&K4 z5JqaiMtDYg9ij-%$dTVCx5|OLDX3UELX0|RrN_~TD=s*6k6rPAAUgSi|NM}Fq!_>1 zOV@T8z3ol>dzWi0GP0Iy6e!>>m(vv<QE`YC@F4a{Xd8Hvp>+8N(yMn(`yN+*4qrp$ zmBb`;t-VWTm*n+m$%TeTTfQzAbBE5mk`JeV8{I8WFAE8b#W|cNkJo!H*X+2^;LCFm zo*}vWx2SHU07Q|;OYEd2K!Htd#|h(VkzSJsUvlre89w!DFLTPo_bRMy%3*|=7?C=6 zG<7HeHGF84F^`|@K4|V8_RwDYn8f7dSI1Z?*XtAs=!-~<2aNyC>VA(EIYLbL3$cl7 z^$Nz7%@H1Oua|M>Ywr4Wr+a=rsH~+$ncTMbLj7Y~2|DEH5cNJ~^7c?QJssSrK4w^3 zLEASzllEanv%Z$aBzb968TCq-a*3GA`U-0Zp{71$x)qB+b^y!VUOm9P`rgN)%I$Zq zHpaR2=bTDTN6PDQp*g#D@7|4m^tr;W<T8Hb=uDAf+q_eAQCRU>>K{+=(4`@Yzz@h^ zT=PJ9VX7f&hl*lsQ*Kt?>?xKKVq;EO7_9u1q}L66@)>RjW0&Z7{5k?v0B3A@aoV%7 zHk73lg^?RE1)r0aOYz@hIwA|7y6MvAyzb;v)oH3BJ&MT}&qyXLb=f(3)I~hgGdg$W z@=-xSCEB~wB|oT8xQHpC2Q2v9kIaTd5nk|k-N_L~J(8~ME|-9|)nB+~0W9;Ed5yW` zhsQ+6t!N=?!BAk{!)yn_pxqYkJfc`2ma1U{)=7_KtnR&rgtlytZdPm7GcpxkADjz3 zL$bZy=xUzsM%YZI$R1~7^xEC8cOktRW#(Sus)nb64W#O%`LQV3kpT>rwwEDbN<h-Y zA(ewCR9lIFDf~hm)Jjp-B*5qr(|6_Z=N?|Ok%AcT3^^2h93NZCijwmRguh(e_67RO zHBzX=dwOWJzP;tSf}t-}tFIj#b2wP|7z2Z09Y_@@_DJ<HQ<UTzFX7jBR~~6~Cw@p4 zL8sZdyi?x}jl#4ey>6e($|PD`<B@<~-bG*}JqMJHFrOeVp34y2$42YvpO%DH-0KuU ztR-N!122Z7{JBP>fr>4qzcqx;EJoc70|r^2^v>rdBPwX?XSKJ2n|vL}+$cFKICzjm z7jqdhRQRIwj=%4pn^}DuIW|A!?~5a3z*n^$S8Zhi6TGg1d|rn~YiWk#%=Jv1AMyrF zSj(@URyQ3%!KW;g-)I;>(_AB^_7*tm2u6R_J^N)_+e+^%Ipivsgsht15|_BaqoIr$ zfc!=hQL3#mS?@yU{!Bg(Yh;@9Lri7ippF9H(Q;NBgrQnEKVPD43e_7&fn^N)P6cm* zRSxvJ+|Tp5ufaKhip1MCpkX))qje*(B+EN&2LL)88P21p>%;T<_8v)S6b1q5*z&$Z z))e+bk12-Et1?0$F0qPwU6yNr+Il3<Ik1Z9dZtw)fHf6%GKVPfc1Yl?M^sHQB1X!= z7Hg-M-tXV|rXTptm2KKA@SDd8r}+827_trhZ!ubiUWa4`S<{D8K|tI?K-&bQrR}cT zIrB(B1)<dyH92Av0YMU>B@wv>JD|?s;S1;9eE$<sC^`7YbBPYzCsZ$Hlz#E0b~aef zT)sW4wLx|Fc7e&@)xuu~wnL-kQA@JXwjcAEfO6YBk^1Oo6Nsof@Z}P9AH8Qg__6Xx zr%%pc<?!*X-g1pvk2@IM*8xyYM(yfX+yO<%5xNX1FjpR{l#!;V_!57Cg$&SK;4=zQ z7&)9Mq+<(3Lle#qF(n{1{`m)6iXm`d%+@RZ4=!8d0000^9JM%7Y~mE|c2(m50Psp1 zpD{Cu10Y+rqyk)A+cY$`aXkfip~8w6K7YQTC=7iB@bOC@dr9GNC@+sm^Ctjs#CDy? zKM@@GpGckUh*$s)7gKfr9?gM&cUKjIM+00C<Sv_XMhu6GQEsyf3AqQr`J{|f7vnkb z#Z+S{zHk60pdCDz#DNV4YYSijsK7buV-A#hZvAK5)yEv@s_n+lD~~zQmH!`p{*N)7 zqdn$8Y2esk0tYZ-NgUW1=72yr0OyxJl0}K<z$sZrr1|dwTo7S}^OejP4i~fXyn-+! z8h~?&?e*-4=D<5V_lj}F0&t!k2OmsFaNyGq4({Md0QdxCPvov}I4ij)WCb1pywI&m zm%e<tq_h?K6m-P?{oA-w0SF&o9PkZ*g)c0GCj$tp5n4_TZN%y^z$e$j`HBJn)K^Z6 zTp|F^rjJ~KV*xn)$_PC>9)SDJF2rn&1mIg^7H0io0QjjP);rZ00IvFuHFPQx;1c@8 z>No+x0$ea<V-pn^7T|)M=wN*kiU44Nj390-zzem_eiRUxlxq*e0x<3%MqmU0jhqp| z0<bM9SR@vJiK5f_umDtKCNctmhLg5q04`Xv9dOJc9DtrphhqTfc2fA?CIQ<p07xo_ z09K{|5bW@`aeFvvI{?74g#kd<5`cV22LNO)7XYmH<X&%7PQU<MI@bZf$^Zj!KivCY zjmCZ$fNOuT|2}Iy48ZMU_Fs)AzF<#tk;`v&FaY<R|8Cs<5Cd@OS_6QcJ_g{9-?!Ow zV?gj6Bmg`rhXCdW0YKoN0d34u;6e}poVo-+iXH-hpVQx|Y&1e)saD|t*Nrp4>F58N zAaZ6a7J%`k1qy-x_-BFe-U`|c7QA+c3k&eVF6G2~d&lKC!?6I2>&{wm1OOMQVYQov z16*8tkD2Y`3J2h(ZLAuRNC0j*$|z8b0pN-Sj8V%N0FGH8hYLmmaKUi$0wx}S7tseV z!mt1wc5#qilnC&tv~#}b1AzV)PP@uu0O2rB&CH~ZJ0t_Jq?MJVGyuZIRRn?zGc|<) zLDtKdnPK#<gRG85ZOF}SpwjB(5&;3+BJD?EPJVt);Sbs(E*{|an^+rumy?Ih=g!M{ zH@r6C7Xyf$>SD}Q<>cn)=jLquT{Xw(Iu!|Q7y3Y@Hs|Gn-9OdUeF86(o7YUGeh`WP zwg<BMi*oYw^YXur4|R17{r*~zm!F?g)Xxfx0JdXj<+=I!d2fb$O0siua^Llg6zApV z=a$nj>x~t8`S}IIU$Yy&<$*VC87aui&#U;iG3RSfPVV4zUS4xUUUtv-od0Sp9DkRW zi*L%wn;yx{d-td4KO6Ht4d&+O;@fjxH4$?2a|f$(|KqYbU%GPgb3ae~`~)`U{A|qm zpGJIR$@j_6|I?UTxqjK^>{l)Sd)fTL-|zCk(dIPbbMxN*{;vV$=X~qV&TIUhm-lBd zH@oZqOeMcyxH%iNIkDwc(^%oZMxd^nuXv=ZBsVALRq@ZUl6CV@LGuN&dO=U*6?`8b z=;#<2Zz}{1U)Z~Dc!?V7YQwtAimDnLtBP{+@^kYVR;e`-k${+G4~zUM2fWg{qw{h; zky$;KF#vby)Y`z?O;o%cSepus2L$q$Y3&6dbPC#O%lRNETh^9qb8~B#*IGbO+6^)$ zCK!Wu$p9>2b~fQZKsh<N4$5u@hr{Sz2PI*ZvrHl_b5;rKpq%H>$s{tFM5c4*aq$4x zopBa>jub)WBF(W`<9A{JF0+m`&JqbrhLA{DG8buyv({l23BZNQRynI!GJ-U_u(Y%= zOTv=jtDMy`p$Gu($6|rMBPetll}e*iuw*!Cmc{am0H7Gg5|#{`rBP=wBsh7FN}t7& zp-T)*1ON>Mo8Yu%(h>zjhLOk=+ImxH1h74nu|y`5mZ>B%ZH-K(ERjjnWfGaZ1U7>G zFk}(>9GSF8A(7W;Wbzz+cC&G#=K_sPCM~X#NK1<(GMTpUpN*uYRT7!BNMBt58%e7a z(#B=idu}#TW|!B%M(TexZeEr`B2oVLvgBF%9GOg`lh^M#`+o+sK9!|qGMP>zkyig} zDp)d<MgfhvOd&1N|5{+vIJ0!>EEz+B%~EM|f1BWe><w!#)2XYgH2U&}wb_9Y09>N# zA0JUDi+_DoB>~c47lX4H4mvfQ3}56hx-4S=uDgHOtWD>$*njSV$XnphHt<2?EUY81 znaWuvlb1Qv=5^%#VsSXEUm)`0rl;dJk>_?*Qv-mk`NmjTm<epzu>}ACffL7%oB;qh z0RG|O1^@spr5XVM0L15vnF&zbwsRT)PyqN+p+E>ZlQ-mSS0AVSw360|=3~d}r2Q`f zc1Y2)UaBgw4AN&trR`C#h+m)gc2$lHT?p#BkbHqtQoc9+yt|m)k-g`2`jP?2qr^-F zt<*%$yl%_6BU(N$c~h^2wNLsyO8qq1Hb8%Vi2D2w-5^18zc3Q=|JeuYDm(HZDuSqa zAH%cp*{K0F3^~&jWvSYT=0F(NLK8O|?xPB~65*)Av7YGIjV}`*yGCl2b6$BZWc^$y zcuH$Of!X@R>5KcCGE`o6{X?|ib%o+Gb&5Ve+q{Z4a-_ykEJx%dLR9_h=WT??1}at7 zU#(`Wu5EUah0Z2olz?B(uVz$ZHtqxPEJ(LMW%G+#0K}Ey_)-p#wX*usY72oEBQJWF zo9rm0-f{#5-}wC64>1SI{&aV~`#Vai$jBa}ODy}X)?-%k0#kj;`9}*(UZ`Orhamsh z7VB?<5&>qj<yH=CUI~Ef5d(bLzSIP>80`hKr=Hsx+y_*iaOo{V^fYBf{<_3<9Ig!^ zHcDDWt8Y$PmcR(wzr~NeTV)v-aW|J@UQJFs$moFKc1A8j_E?2YF`VsE|FNmN2oa8Q zufP~OZjL`}C!~^QGnp0j2(uKbkFI7$#IfLwi2P%_k2;3{C*l9v$z$D4POqjDk8VsJ zfPegI8GsgKA6#%r!#}(5!Uc_WgB}znoB(nK&V~S}#7%>u9OO}NaHlu#cmy|#9NA)o zU|+J*qvat8*c9UA<o?HiQ9@+n3Cy!JU!G75`yYI0%V1$YoLxV^>N@oIYUHgW2I=}} z!8NH&v`;0Y|Ir_Bt8F9o2%H&a4A$FWW3UNd*Q3xh!1X9?&2{rX-YO8D25{5HzoLCe z%)LURhq^LifUi&$UMC!i6L52y>o4xH`Eod3OupL|sr#Fj3yB8&SW=QFx3Vj;+c<}0 zZquQRt#LwDF?D5FwUB-P_~-t9Xc}<8l>5i%<_rKHV!4r6<Q!YdN@Ag8uf%mou$2m* zis_59D5bx!MJmFzAxK4m7hnE{9&#i!Rh8vS&1=gl=Dc}9X=-B2jxYKUEq9|1Zn+Lw z=C{J3{x$FaICX~C>utLjM_cq*pG)rZ5Bgp=I4`&5Y{?Ogl!iPI0(k!7(A6Az64slx zywbNB4OT|PNdjJL%L*H@=Z)j3_mc{Q&u%dKMK_p3TIJAR%+w(h5hw}0UkaNO*n1p9 zb*iLy4rWcWem!WDiC&9{i$Le{WvgM9Fdt?HF{a6Xeb=vm<HdaFyRCn7-PYI-r!dsZ zxl7}OtU0!a`DB7A+qiLlwjO~~!-zmm%jL)Xiy{J67RQT$8QW*cZQgeU{_*R4_KG`6 zpCj`tmmI9O2+1hJE(`v}9fqe&1B^}$r<$5gKVpEZb6(}cCrIK6P47N0eK$NV@Zhmd z;$=vN#DDZcg1wOEYu^0RYyQ2I)qd-IN?w(bW9&+;5%ONEb1gq4PRQzh9WP`N0{<Ig z+PV;PKwH<kCTp|rPmx}`$@Zq(q5`+@9I_Mo-XcUo#A%oY3_CiMJorn4Oj&3eKr`+w zd%W3A`y^(L^^>0WO5sJImG%Mx&UY2BaQ{rqneaLZ$P?b?e+VcIi%|m7ATNhZHscG0 zQDrhnOs<J&kzON1z~DbZ*eD#M1cbp4&+hq$Jc4)Itx>z^-v&8NSv!8uWDEF?!H8O@ zAyK2}Z-$K5FDZMB*A*&zO!Bg$!}{+ydmfE^nO%&|!Qmft-EWd4^Up^KF+wPNl<<}a z?yvuj>^MpUFo);PY=R4b{#@}Pw%4NNA9SoiO!y=jYEQV%zVO<Lc?^jY|Ci(5D&Tm5 zQ&zA4#)m9{abwR(WzpP~ae|}&2(OnsrW7-%a$V&S7ZCoJRpf<<aFl|{uYG^90Yeur z`;4^n0+sAjlR`Xiu95K|mqG|Jz+G-vc>wvB*@zOL$BrE<*(7k30YsgBP#<jpt$*Q) zvv1EW=akCW#Maf~MPy`&zYsa?;u~y?byXx-#Qhz>k&!BRU;_DmN6x4bf|I6)xTm7^ zf!APvuVHH=YFq)M<YuC>Y_{p6&vLkjt-5N<$2WgJj-fV+ikeMY3IU&UA&Rm`-W~L) z2XBbmnb39Hdcaj*dm~<8r%)mQ;#q~E`G#vMdA-C^=h$v478i^JWM5T%Up3NS^~j(B zIf3MQL@)mN^S`rd1r5}C;M3=~>j)!IkxtrZLFV*QJJzU^={6$7<I&sO<eWyh`Q(ad zuHdy*;4h@>)gTSP{l45D@r{WCkYh`hW=U=M(C31;92*d>SssO+itBb?fblfLMi8jZ zeH%Xacn-{?!N_@Jolmj5V1#nbYh2A$Bg6<<-ERuE`uzv8$wk;+ka2t6+(T_PCVCg@ zyBOfh{>gM7kvZfNr6o)#!^R1r>;XmSU-r7s3w;FCAJHP6+6W^IFdr00whTa5vV7!G z+k)YGyr={rWe?dbhV^fOzpRH{HAhJUvsIxhvl~dAv7^~Q!XwZVF_R;fN>D+_SLhz= zl)X6q$TN_?CMY`vE+xs|U#oA-6M$AXc@r!H&=!D(M8*IMV!XN+de}0f44VOf)CFDQ z0X8WC#gNDGVphAJujy>q1Z1stF?3T`)*NRCvFrVh;dy0(q4nM^SD{aE#9f$w(*##t zxF`%asGak9V;KT?7CtwMp_Sjr__5Q--0)N}$a7Uj6JkUGqm)pzQ1EEov#2r=t2~uo z4#%4|@**cw4E4RJXzt3@yGGMYi1F$xUay6AU+ihg^ABJC%dcgZz$sRF<n7w<a=tRb zb#8qHQe}70VJ2`N?$Q~=J;YJNbvKN|thN!F1dR?q`G?x&aFXbLH&v;E4S-ef){ncH ziB>XwwxaaWsJGga>=JB|l*ZDP5X>G?ZeF!x1;$B#JEzMN&Tak2+KSNX0B_<jU*rYO zHPJU~FcXE?goJ=$|9+1e+oJQ{TzoQ=^5YD*VAqDMjKJc>jPXxRK2~JFc!M#B{yciB zfXC#0zw8Z*zdMPcs?9J8D3ho-Hx@0;_8mknE-AsiHAQopIv6m_8@=;R^R%0r8;dkE zbMgB1>m>ZzOd-89&yq7zLmj&Mn_)GmF`r{ToZ%Bj$VWMc0FAuFAfCU_ol?T_Vy14( zNM&x=-vDxx@o8)(d!_RM`nT3DZQ0rGHx704Vbm(;Ch1`EJ&R0zfu+F17i-zS!fQv` z2CD)}E|$6e7)ZZeIZdgqK74b)ZD!X`A6K$EU2hR`a<Ml?h<HA<<}b6ou|VlkZ9Sn< z8*2wj0{WBgL!6&t8Uz+S?baY<m=_cjc%Sc+@nX{_6XrW|zTLlf@7~T^?yc8DJ^lRr z=Grn38L{vj20my(^gLo7xH)t^iTAC#*b(nB81b>mB1GQDMqncfZDk3V6aU1U4s>UJ z?hD_e-rSscfy=LEdmUB+ank|L#Nj^)Xy$ldUdElTfBO3Rb}d}kCb(xH8_)L~GM&i1 ze2BU5B|5{W?cnY|fBsa-3iZAZP#6DnU6^NK;Mz<}c2wPoJ-NuA*TiHuSGAYXsE=)^ z<()YXk8H4<EziQ|dgGs;_0fXG+KF4x+=&V9w1v?E@a$f`oM}|tDN9SE-dTUGQznlE zBG_Y(9zE*%maOjR)pIEzv@CFOY=8BMDXlc-jd$g+cE`39vZM@dYr7x2u{#LosR}Ze zHOQ;h{o48(;Kc7Ag!0c!PBBxvEn%GIJd~?bYEsf@@b4ruL77ATWcXpjI?{@NY_<FE z9btI1nYZ_1N5#-x_qiv#ZP+$v&(>r2nzN$s3dXbil%OhnI0Z}rOv*og_Epbj=8S9L zo#GxEyT1b20H`pJ)x*Z8H=DY$^wFtY*z9ZtYG%Mt-{hlH`?e=Ip_>$yl+H}Hf8_n{ zR{Q$(>%I4d7I?35QC!+GKD{d~JyQt;*D)FqDvh@vym4x`IIwY(v{cL$KwHbIW&@R& z0}u<7L;4(xKyuNV1Kv2!_V;Ui@K}9}z4~X`SYYqd%tHavyqRd1>Y=SvKi#22ut(u+ z(`Z4d!)_f4GD@(eo+A4%T^=n^`K)`(*Ioqh*_=N!RM#TXi1?c~5g^L4LKxV?i!v(f zYXJb=Nw%5HdQexJG{Az$g+~ssz?WeOCK#?wz55a+AemrHmm|_2k3+QT5h_PQFeQc@ zCMBq1IE?Y~T%ql(8_jEFcU=V(3<3$87s$xRDu0ov=LGkCZ|Ic2V!UBLS;FyYU#iQf z0$^8U3Ugp4hZ<p#GTAE>L*~Mlh^BZ+U1?RenepT>g;6MzVh6(#x-V7v@3nvHR9k&$ z?&DRi4sQLzUo#H(JfTZ3_%RXalhE@!{R34t(|YW)UBs=$;d=wh?z(Km#fOs^s-)mr z6;AI0T0nH~1(7+bx9)(KY1{jD!(cYAa)y_6o<(L<LqkK7bK#DM5PMkXTHP*ZVx;)x z6i7QJTpiCWg>nwO5czaHaITZma6+=#K#y0}UqNo;madx6nUHdc3pMZ7DFxtJFnk<m z5^u!uA%5x6CPMCM95bA=u{fy6(#6xir$AubaghiVI{DktmLu91?A_d^*ZfG`H3vf1 zmLom!EFHV@>AB*tW3=u&VSKGf)b57cPwt4a4F6$FCfxVx?XcXtX8$g}lP3?rSc<sg zlR`YgYT66mT3Sxr9g9(ZXt>&YRr$vC>jF`2Mu+Octlw=f<j}dexKy|8y`VkW?cm7@ zxPANf^)J{0yzuA9=4cV6E|naW(~|i#0JE9nxn71=%IT_G)}(I`X6O$6N`}t@n24;o z9Th>!Z?~n7&(%<eu;LfJYU{~lva^6b=YvvD;q?#<lgVs%44y4NsCA?Dd@Kz(87f|| zNUC`6*jR?m;2BW>40hlAr@AMq!GB%Iduji<Y-oc@a7TH(B8{Yu>T_~O-@Iz$JWws3 zS{?9d&kS8^QFe?v#~CH|YE>GgemLMW-rK2}`ooilJmAxA{-(Hi-}!e}8l(exj&DPL zI?y-q<SQ{EN)zh(K**}y7`+j5VG58SfO#DA>(T~qWm6_lk^1PHKetai&ap90SHDCH zSswM}SVv3w_io?4dpDwXFzd0(Y@^16`fhb~$M?7TO6kqp7JiI1#D4qrJ=wiaeXJR( zM{~Id<O*bGn+$3HH6hIzt_@lE^3hHGug5MH{3f6sGx5Fml#x3KwGBq21$oc)w<fWa zuU)&glRJP@JR0EM?;yw5Ykl@?89748Fy&Ct((jz0pdeqLyaM$z?JwTp+l~NNp&Et& zjBCH^KLvZ*X_W4u(ymUy&0rhJUU}7)Rmka}J3QYO6BFZYlV>p-ywYWtHT216GKrU$ z_n-h%ZTN+`9iNF{VwHPOaRT^wobEbby?%Xi5kgLT5~|aPz=>l-WKd*sZ^4FKgMvXC z0Aj(WmLm$?d5?HBv#{$TJ<sCP-kG1?y@;P5XXXt_Mej>5htdC>7;j3zL-jf1IM#e? zkI+<7*<AD|18K{qva&KZNHBL+`&<H0ZwXR`b|n)tI@{fx<wF>Hix7R>4&|Zd(?h^$ zs$1bkvSJALeKm-PlHSN9?<o?D5q8W1N*)RC%f=vUO(HJT*O3-z;|VeW^}=Qu*pa~K zE6CFiH9hYOS)Dy|rgY|;Iz9v4?@<w28bV((z`TsXG`ny!Jo)pRYmKh%A@0JE|JEDG zXBZ`*ZtTagb<aVNPF6;O=Tm<rxUr@T8jaJ6yrFW266B^`gkfY6&9b$%_3&1Gj&%I| z)+z_2jFW@0acweXvOOyvh5eSKLp%|h7j}}?86Khnb2`kG%m4cb@NW$^63jc*xK?w1 z`Q;{!c;P_7hWTmDG85k#4s@;!-ubropzcuM_{ZCWmGR+icwPVTBM*wap$F~@z2&Wi z7^NL>?+$O04pytk%{{h*+88v8k6eUIaS>uLTSec&Hj`XJ1+Ob~r2p{pMm2=H9G%IJ z{7K8hd5wH!MB1{}^DRbMrv)i+IFuSMt>Hw_yE(YHWBXS!?~~+b&x#!@ZV!e}cjl>w zFlH+b;&Q60*3?F~>*KAJJ!Ic=oyAQBNIp;h0D1>?TA27<J2%b2(H0Cc`K_S+Kvz|5 zxJr+3XJxiuSGchIi`m1S2c=;gV<O$<Xs>1Z7bFjN1Xl{rdHQr-R$GK_!&tne?j9>A ziOY;zSB4*oC_UlQFa(sL%@%(v&ouL%gBxf>$|Do-58JXH10D4KObNfA^kFoIg|JN1 zb_?<MU)7jm24Cqp|A6diHWS_Ti$rB?ml=5vJ{^;;<MC@IiUwRD+;4pxrve)p8IBPe zskgmfU2$_mA}TutiZJ`q&pDn1Csf4ig*zE<)Va23gy8JB2r*HJXd4b~5VP~;e34;$ z&BZ7`58NHjloAmaPmW>Lt8YEbnB5n6CfoT@&OFXIf;%f<D9G*HxpQ<?+oIkGe&`*K zgw~`<c`g5ifbV+J+BXD|Rmd$YVTdpi+q(;AagtpA>GS$3lL(Y>b|Sq9Cu@ulydmZ= z7>ehrTmWZ0!N`zRi;y`CiRgIO($a$XG&onL!Em+F5+>mAWiMY|`Tq5(>To5gxXO^W z@I`1ldEZZ^@5{ooD;^ocItWf2pVj@b?2ETbhV6$>t<&O2Fpn#ABp5fP2u6VGBwVjI zuPsZMT|nun0g&?NU9Z4}St8P*%RgQnOOQ5rVUuSO?d(^1>K?1?6Bm!HApuO8)g3;1 zjSheZOL_MrtmZ8`KV58>8*qI7?f1C{buoa&md#x9%00~OCz>6^wKR~u0O(J8=l3ia zM?o}qg-_ttqT{wG)Rik&cFK29tA0N^rQ|y|5Crd7vz{y|yYHMLg)ukI78s~>?<ux) z4Epo*Q*-rO$P$qA`8}+iEz`+u`;r(Nt_c;D*;EsVL%b^7s9;a$P$O_^`9jCd#QkQN z+ouxlI&l@i?(x_nGSLIzBW?7Y<jZM#w+B9|;wVOfC7P9Z+EGjZpi?!9{gG6#4a|{h zC!Yu3KI84}U7L2meUF@&)h|M`0Kq3^2$jKqZS<O~4bROp$PE>Pc$v2uhO7Bd^f?&} z^q(SLzU<bc^GBWY9Hp3db>dlyGChfMrjN1$$6}Jqc6!4**Q_VoTSV-iY$c@NdE8(< zA@o1Vl-o5c-3iI+juvl%^Y^}5PJH#}ZLj$6d%OtF9~Fxb;BTo{rVCbzo_k-<?*bFO z75K-}CP?8ciroc#v&%8pD+;@IeW5n*O4!MMoW;C$*q3c4`^J&lT=n``8IlJM?H86A z`G#hW%TRJpr!Hl^d?{}>UTkPdJ0>r4Qbj@rQ;Lxnjh2$$)RBI{AcOq<rm8cCz-S@p z!u5!gxGZD#)QozjzHG0=AWPZud4|tydC&8qS7r(0FDUboED2rX?p2<jvWA3ha0Jt< zyU5-XOj|x3IB?*BkkjzPI3cUZQpw22kSmCdBF<F^l+~p#SP!pDUNf(<@}O`8+n147 zg;(1TDPF63G2c#GDM5#R#Xw*dr%s%hj_pxNO)L+E{&^cu>V6Z<m^9+h@e}P??T|NP zu-*#Q>yXpp$8TR(kyGE!+>}4dtU<%Q63F|q4Gh0f9<Q7%7@B+S)#fUrm*_39Q%{4} zjTQB!F)uGq=$O^PJ5S2BpvNUYR%K^jYZz;Yos{z!87p`1*}oP#wbRwbvHTNWkP(xi z@j?{i20JK>YTuM?P?Cx`UX0E!Fa28}6ah$Oo)6(<GTH(PW^~(Zlhe|67+r0Qix55- zwpE@X<UyqSj2-C?<0W4Y!PM2&sk2ur@ZX<<>{VL2KlihZqspE1$HLcvoy<dvkSVFZ zsoYig6YjV12T}y>z}QA%dgdOgoF+AKb~4?OFrFlSeKhsE?r;X|5-sSJS;A+yF&oT^ zHP64K9S!eUt*9b)yFCfy-=Xcw({bp=NYLmb#ZzCCj8Vn2N&U%q;ky!xcTH1;&D~(6 zgHt6Sw#&9dXBNs*b33r>i-Bum8oyww3K{cWtBv%LTOEUJY;H2R(V9}mn5&w<XDVc{ z%pVBwdwseXmns`;4fXT$^8!>HDsFbY{-?fw6<ak1J7Or4;VyU`5+_6`!&-c8Xbvun zT3<B(&o<NnEc~ahFFQmn6MfBBE<V7*!UEc{Ch+9}{uO0@XOLajeKF{Lp|`P%5JTEX zL{KwyG3fT~eVrqbZJFnt7hrg0Mq-ABoVv0hAoFcQe|njMQ376m^!9cA4~Duuvy-Ov zCd-xyk$dF))M)N`@Z5H<#Rl=Lq|D6FqV~yewT2yZGpKlaKXr}89$+$=N6~AYSreQI zUA#SF9;B#4;=Re&exU@}u~rYPB^)-z5o9D>6ehbx@@VwBdM``B?ulUd8IO)Qf*Q?R z{TZhE$C2<hbv$#)UO6jdNzC5f{)_OS5g+4bM?cgl&enT$=LySGr$_;`(P)`fN6w04 zOG87$A-j^xm->)0s7VW&NJNjSvLWh>>A403Py1;HFgM1X<C%);-qXAC0-PlB8L-0o zN!Jpu5kES&o?q?jKR%hfMl=<Qua}+kg$Ez1pY`|IdQ=H&E{`!rpKx=Vp84}FxgAew zJ7jchjj+EOdkvDbyVUW7Jpi&(oDe~8b9W7^0xF3rZah-!{=)!v#MLgk>Kn)3o$?CN zm{|P$XtazW`KOI#<~=damv?FXdzXq|%RxtZWj#h7zI^#o9ej^SU%-HO)BfXd3EIP4 zwv9n_Bm0q%q9~&g;njQKL&D_^iA)cG`@#+Zi7UeElfnXitcwM?g+_xeitSLi<f+rA z<EmJz{fvvjv*j+na|85`_wK=GnA>%Ym7w2`%AUV;spfi5@ujT84Dx%5Oz83t^K<9U zJrHuTOfK4EEg^%0M=nA)v&J_^P?@c^(2@i(P<uw=+>LC0_#GYnYUIZbG2iwauwxC1 zC|k7Noz6*aBXCsT%@}R{g+4~@3Eg|RifFs$`Yme^dNx!{_wdR6NEsYQvuURmtyQai zd3NBF7J9rf9=vS>F-8dGCQ{;km?fd0@w+C1vr%tjVaHL@00Q~Ja6LiU!L#t|+d~Zm zD+9p&O^>g3n+h3d^A^5s5|q@rWpelKS}l>Tbve8>9DvL%^`zo|Tfg*Z{WMse`@UTf zy^0j5GLl#pm-iT%0UtQsS8ciN&4uy@h5c!kF>wh!27>I}Tu!GW2UV^qZ`8wj7`QgX z3vedA0%Hb%OZ-eIX8Y176)+p=xoYHb(q!oGBs1=KsYCuyTV}$s3wUYa)y|1f9x`@( zB|IFHTHfNxu937vt>m9h`1CoUJ?`65nxN>*<|1BMLxN5{oJMu<tT_<y^~rA4B%QZm zwnrBs@|xF%AD3eGh@OP12zd35zSvA}6?vP_l`2lp)PT?)k%U$c-5IeA;5<~>$#mbk z4Jp6<B4hma$I++^@ymgu%%ojrmj?=L@?QA1JS@xl&?Ayxi$Z&Q6Pe7yJrqWK*Nq@& z;#sbl(+6~J?JGGTbEW^mQcbRVc)zc4OsBn@-%Nc&gR{k+@^)i{l=knjSoI0dN~e}b ziedt#Kq2-1=*h$1GRm+|xEBs8Lrflr($qI41UYEs_lm!pSlY-Dzh~3Tsky8;6L62= z;Xc`WnoHhUcfRhP#?!xhHu6hoIH_?vurBQrR}|UL2VE{7Dsw3bGVJkWm+p1adD@jG z>jGQFQ^pl7tG_Luh}W82T}UhR3CXoYRD@ff*YJP+v#YBXg1g14^dk*bGUlqp*(68K zo<<#=T6S6HrDaY(T#r_QdZC8fd9=rDWAhSq3Q3GFP|Tk(Sm%i6C@9-H>v@!XCfeZf zadh8ezzV5H-Fc!l)zmD0#{pq|PVM={_J?J!KJ<vl60Y1k&!G6@>Ek!>_V(do=qa{` zn(!jPofF(DRuei=H)q%>Oc(uW{Z`J-QCWh2VwWM|L4x6$YunEP8+`9uXBbGzZj6AK zmbAm)*LO@V-Z$~zg!~O99OJGQtg9asr~w`g0jW#j)4BUHjbwXw*wV*y&C_)j9-Z2k znv$9tbULEV@y>x$m@Wwu)-HVG;i{ZpYF~xYUY@KbJ{ff}9gI_`IH=QqwRrZaQ`jRZ zPaJ<@pGf`+gVn!<kI#rf$>JP#X^h+MJ}QMP!}>FO)&0g`8ajZ%?i9_<En?znFgrOd zyRyE606=#td6#F+u}`S@QY#$p9&M2L0Md39xpd!SWlQ#n`Jo!i8R835nFSmovNaqq zVAwrDyjY~Ba~%p-5)$UD?(bg{s`)m~8sOQ|E06?f@?S}jWURH0h$djqpl(>=?zTTS zNZ0WkV$NMnFjy7JE*h}6vH4Q_M&;Oz<Hw$GX`BMCLzcJTqA?rcFk-fqXg*~I{W%BH zAQ6RG3#()t(nsg4#D?7Tx>IiuLR)weEfW^_(>Yp7$52u6x@^aqrs+C4+-@r6_&7i( zI3L!&-&ND@ktI037tma^UA&w;oj?O7smrPEcZ19WKEm=TPCxVn&LKtLW>;5-%$8pN zHZkbkBqg)=a&^j%0KprPnum`q$tf!v0@opNBAe+6O&IP=p$jjRt(W;2pqzDaaT51b zwR;B*W&$7o*mcdtMfvbzy@=UEX@k4a0hUliTh{ii*Pg*ozN_Q(NQF@l*((kYj<bVb zo19NapYL1vAhq?<MDs&wAF&SZ=Yw4?9Zz(Kr8zT&a)t!KX6UmT##~hf&-q8m$&*dn zI?g$&9X{bAkI{sr=p;%*{<0Yj0{88tLx^RuV1|JKqK&})TBZG1{VAqF#h|}KR$<BK zHQ&?Fomq*A#P?X2-!<pH(B3JnIa|lm2f6X|k8c}AWji<!d&>zcu}%m3W~9b`t)YRR z?Jf`7@9P>`1hw4ag%=hUR!mGzqG?P@JD#^a`TMzZ=S1C`$vk8kP;~jYA-aT^qeKA5 zS40??CBBs>j0)QPm@TAK{L*YxwVs@pHVO-wP!C&-?Oa=(4ZeBj&K;TTm8*hYsa#lD z?h(gx@bB-_Z?+CdLEe{FcmG^!fQ2eInKcGo%yl`LkxJ}xFP;_g6g;siQLXS^0aJzz z-lM9j>oM?gF^gtUZQwanZBma&R3ki+c|9vBgX3>+*(|-Cj8PTte8*qQg9U~xfusmy zc#mX-zbp&GI5}U`^%vN_Utzl&>!Fms?^Iy+$|1Nu`o{4@d!#Jk((!TX*AJMWpxEIe z>^wfpjdg(`_|SAg&SS)w2)#J)&1D~H^g!lfb-B<tsN2u8#vvH_Yysv>torAa=rU~V zGj&Ic_~0pBkpqbBnTWd1xQMWmkmk5Wh=fMsUkS&VXUb5D`=JiV4Ja5yaP^?m^?T@? z6?e=PiqIT;5qz}@&U?HuGxh0Hzw92;Y!u6P{v9@2pJ&4J#{8C)NgT!TjHq_bISI;< z&V{$5=R39zPUQ0^eA=-HX(N*l9G8}TuWTjG17AYQI8CQ}ex_4*+vFA<`Gv~){C>R2 zJ!Ti5Q!bDzcs2w$<o{X`Dvx{x|H&KsBdVuo+qx5(6#luUS|dBoxOG__oF_?5Q&V#; z&xqyL=GSvcx7fX>xM@5{o&2Tj{(e3vB#wet!M35V5~|Z>G^+Njrs)?493x$l#BUL= z*X(P#?Q`ct&%n<f_o&<^$&xYH`7-}dv1aH^q>K~gq0}M63{WA;dwzG1_##B_<I|%` z1V?UV^C>RE34ohV^w0*=6WH*V<*M&E-ZP&-%<nu7t=8%Ip5?~Mx9%Z`A=T8fDKc6& zPB$^;syvs$5(`W*qgl;oZWv>(GR=8rsQevkERXczTi7<E^Iv|HH?;k*;)<S$2}r$s zU&zZgAnQ|cMbGk4BI-L#yTJSFsZ*zPiySKEzOQRa^EK25VlucBObHn$p)K#Z^mdD< zFLS?E1JN~`igK7fQ#PqX3=n|`-<O6~EA4+O<Hz=;Cb!8T)%d>{j+;2)>%pD7l%!o| z76bws*|B!ro?N&`7KN#T`Au}quIO{b6pd{z4MuUZ85Qz^26DC6x$}ZsbM6aySqGF% z|2`LjVQEGNKP<zp>rabKGVSSygO;wq`HM_gM9;kgVZXMe?Hj+iBL{fG<t2~V4d09e zO-qyrpo!kXvjMf@C9O9yvA%2pt6OZ%H^Xt;wFC_(Gkh9dZrqR_r_k>@8SP#BMKI00 z$$yTW<ajj<U+^o$7OCCvBbQRalpZeV);K$Rp9VBt3u+Yz-P&qdI&L1`7B`RELaDo4 zkLb0vvRdeq^sLsL9}1qo6u&O6bN3pi_cr;B!9>S3`D$S6`6#jzp6~f|9sX(}BYuey z?0o{9gS4LCDzZoR=dM(ZJy5Nzp^e2(5@tCaadB~1-_BUh^Df51h5D!aIG#nzoc3RP zDE)q6l<UUv1>xeT`<H`ddl#f$FCNu3`MO|j{f7R!wA+{R$z10KWbD_MfHK!f8T$q? zaq;A+6CXZDAcUmvj7Ey*&i1`mMmIbV3r;jfss2hDT~d3cEM7v28#ftO!1P91O(pQ$ zN2zTk&gyP+xHN1JKZ1b=vQ8a)(U!%Th7fvwYQn*dl-vBY&bKpYD7WJHnKNg&<=@Dx zXF%|j*mG=g9EF2+VBIkAW4958uW)o6xEu#y+fhdKh>y6u_KSVr-0#*MLJ2}v_dY;j za~6Q}vAh_r1#TL!2$>p_{yr)<i@*4-+qZajC-aaSjPBUOc=o3_KpY}`-vm4<R(I@& zTnvV%Ob=4beb9}SPoI=HB2~N4+tSqa#-Rc}#Y`Z;3H8g%%U?#hhzFUsf6X9eQTm?v z&x4-NhsSik#YWr^@?*=DTD<XR<43FfQ6U&PDT9eU^$0zgTBuEuj+N9_#s{+y%%z5g z22L%Uu(KXP+pn(P{^KLx)xfylUwB29#(wi^acg|oI7)LR3Ugajv-9WL%XQ|}4zsvm zWC7K1I2f%^$^%d777}h@T)NYuC{pP=y&tO2dER@pZ)lg7kB-eG-YXzJ=*Fwz5dIpp zv*P9ZIaoZbjy}9FsP%Z@hQb*1;&6}4v4Arn03zWJ2RA%FT<J5}_E%SXXY2;s+tSsp ztN9Fy;8^@Z<qEH#EI?H$<9IRt!}V+7>jM&FpB0_yOzln(fs{7GQ@YjXswr*Xz<kqk zx~F8g;KYd&q3_aP<-{`uH7`f#bGpQWg-6;wC+2xlJiMsGlJ&8bjP9)MsL|Drr-hoK zZBt`Maj2|=dJP_lC#-H*;<kS9{t_j?2^qm6hJsitJ$#8eiM8`bems;zuun@i#{gz$ zoGbEfu47+P0hewnc}rWWln2~jy*#dW-p`kPlH?M-ugvh!wdTa%X3{~|eiL7qHtl*d z3|2(vUxF3UgmWLKVE{v?e8AW{?9hhbx!LhAVLM9NuXE=HwMH6LPb}>$nT|qXXR@_V zk`GBDMc;m`t`1pwq<Cs#@Gj|%jJo6Jfgd0F#sgeKNnA@W)G&*Xuhv_v_gK@ko~@6p zY8Niuq{{tFsGKko%e}r4YnhCmVQ!ywl+s7>T>U+6qK#JfWk+ZF|8f)2_a_G`46v#q z`^?f;cUeK2#`+GyChUvW)OWwu{PQlCGMo^-(n;)dIlW~Jw)3g5XK|!1K_QS!;gsu@ z_(ZWJ9gULweAnrIPrL#3;i0+n&$6=SkJQ*@sUJSE^kNb|4g=4%5EA6U!UXGo6r~&C z-<7epf8C#>b!>e!Hs&-=P#@iHiC*i>a4)G@U7j1P%EC+@>@~j=(@Zuw06lNYEc@8V z+@{Z=^4&Ct+<?w}EY3glMzJ>PW(tp&aoOX@Bu<RI_k>bCLhr-X>cun7yWT5W*<8Am zSry7y72;6QoB+0srNPr!8t}84bgOLFM|22axGv10s$_AJ##OGzLV3a3dSpSCtKkP- z>rIy0e#i`S5PU0GBa1qWUcx|NVbDypQS!HjpWw>*WZAR#eb3?8vM_Z2gs#J$o925P zIF(;65czDlc*c?ZIJ-L;2MeRyFUFQ(S^6IZOt_oXcx64DxW-_&&R5(XG|DwkUo8n3 z3d-YIglO-*-XhdBWl&24s;pInWDl*MhADG{R>psrp6INN1vABxt8r89SR)wg1SsM~ zjXqr$45xpX$w(PqslUJIMU{bP8jUM9tMMR5=1`e*5pA~m#M*be<0QMinRu>GO16+G zcs)W7?gmr;wwQVfxeNEWCx`x2$>~T4#-tf)yZ3T+;M{D*@aMqUU*!)QFR=&<J6oc` zB<QP^o-m;m!lbY3Rygym#7MlkPP*U)_z@fyu%mBJc^C<9kHEs?b8>U<-e^tnUg&el z3cX=#+fC%o#Ag(FjJy!s#{3SQVd^rzyF?n>oQV`SvDx#?6L-^m7m=W2@WbO_%W{f) zFr!tk9)U5%v_2<X&K77@RZ*c`Sta+Oqs<7Q8u{r%|Ke42UyKl;7idt~JnxB0-vtVu zJ=gS|*1d=t{z2FJYUDR_AqjHt_^|*Esko|`vA1Gi{|B=K=~pi(^YNim2jt$%Vz|(h z>nDiJu-M`1OmXc)*^~-gcicHb)*_@*-jGl*czB}mvZ2qB$|iyw>V_pDArMHf@aX@r z(4w3b;@(|k-!FL$vO15fIuMkr=^<;Nq9;sn!fu`?MWxH(9B!n$?UBj{>&S()KU2&C z>pTSD*f}DDtUG^v(&*;TeC;V_g3<3pQ>E<e?B(bxqm2q2($=tt!?`V(f=5l_3#z-} z2PJV;`CK*I@}bMpachk1`cxlbnGt+&u(@D0>^IV>eMc!~f40Cy{LQY{L4Qv#sWuE9 z?((yZZkihKnSv0`##)2`gVA+9owma3T3Kw!6YYC~rtl-O@{mf}AvabwCE>p6S*+9< zyOPT_A;(F&%e3)?tS8T(8#a$G`hMuYRL+CMvc8l0Src4EYwFQ$_(%F2r2V4XIjDd~ z;yoH*ij)~S83@bh8FWe1K<(;P(mt&rF>vn8nbM^%LPi+|K})~YKisN~Db^Z@l4TIr z<xmgVaoGBfjqGdiu<7e`GlVj@UE@2S*O(Q-fs5wSul6`@!vdXatTA!?RKSm;;_=aK zoR9bJ-IMN(T;fgT!rt_q72mf1jbpj}S)}&Sr-8;WG~XS>$CIY%*AzZ|e`hc4<1-A` z($^YNXqLk57O;+`0sTu9iV^shg-O;@GJb%VsPlIByl|mkU-AvL$eW^IF}ZQv@cv2Y z49~Ia@27C<D)(T(472K`o-te7jaNcAZjS9Oe$mTVM}NsB^X^Q6o&U^FH~8hNzG#6M zdBXUO8w(D$(%SgT<GKlN3Uy8)f2)_xw7<7>!Ex2XF6O*2e=Xb6YxS<D8ei32R8pj6 z@aUpaCrQWqrdB$)_ZKY{saj)(OwjM7=u3g4k^hLTTm_hGkR;xvUnkqO@4og!jh2Zj zLYeF04>n&O*MH^gfoQ>FpjZ}o=?dZj%+_qOz3r*~nGJ<}y(E{u>-u}7HlpdvAV+qJ zc`!!)y)41H?cq$N)k(aO+?(Ob(hD}bK-N$x40kj+JO<-G9<L?7%VXq^$|aGDX{?(j zTF$LP=TI$aVyd>SRh!!E9ddCDrkOv8Bd@G%h?0|@H~zumTi>VpVT=+1e*6&B-y)1$ zKj1lRH(62^mekJguXd@guWtw;9XRsVd%V&7Yjd++9ciV*$K=KdfR8=ld5AgDXAYsr z+-HB&6h_XJlJ>cs(D?c~GED5g!~-m6lxK^VpG?WYyu$WuE0n@}B_t2rUsOyi^pjI< zcwfM9D0TmFc*Z#o*8VyhU+_$p*BET!-MV~nArrH2<joLV9{_2?sbb&<y)*L6l0sGI z%ZK`$0-L<m&l73xZJ0K+=yPg)aa_9Wd)bku3xmo>4@^)cSvQ=G<9GK)h?ljw85hT& z9X$dtqf7NaexE7|^f7hJI=FAw5KSS<?If)GtexHDl?BeCPrHFGdZINoU2+VTFXU#H z<ObcolNcjJ2;5MxT@OHKu2t-~8~PSxjJJ}{qe@HK94}Ft^Nt;#Gzw$Viomz=`ZDo5 zA~;Dzx>hB=n3P0MmF12iY4qaJ=H)@I9_99NvS_i3D|v3`ZQ5TLFg;vPHF}-5`P`#+ zBm^_?TE8>TG~+}<v>M98qw}lxeWAo!8u0hTMALllyH`%*jqzO%gq$MOeY389z0iPo zTbFZEUKYC7998l8nNkr|93o6JgjTP<)jE=i-U1%z4v&o7nT`<LnX+6jVi|`SLSMOX z;g=kd9#GnAcMgRC0-QByd2b+;ueNylYXw*4X;NO5^Q{aS*PAjO+|rNcG?SN?Q)7eg zn!6mfqx9<<akHvUojQeIBfoE-7`pRqZ)|t*C5OI+&aI6L5-ri}qo*aCQ?|qjq1u7V z&(^CFF9Ofhl~95eDdGqUzJtf>?few8fS%lDv{X<l_>xc6YmsL`*A=R!rA2X_VpdUB znyU)Ad5Kl%+G0%5jmN_w*k*Rlxj?xiwjoy@piI;A6f3{~NR{?6mC4%P)8~%c3hH*I zA(+|7$Vkp}K2sdw>GkW^PlmcQCG_0-3SEsCBAnPbF}xEAozas<wyq&JmZB`->4P*& zlNT13RAn&8791&|YOa!0IT%9uK3?fZ(&26oc9yAp@>PuouF=MUs<QAAZJa?SuJ4?% zw%^6*PATI5<LXV^q5A*#@iPks*~=OuA|+AQY%@Z5Sxbm)l`TsM+0ED~TV=^Qqe6B` zk!?l`$~MWGwPfFS!<hM9N3Zwm^Syr8HGjbKI`ce_$K$>q_kEuTTa}84(q!gHYWG(m zpX=}2M!`b+ix1lwekm9V`3xJX4n5e3CLD~dj_1g`nG5Clcu77sz*-0!WsxEy)*-y- z{}srRs^NWy_bi)({5jae_iuCmATMVR7+Z^Q;kzf)9{g$F0-3tM5L{1hp3NWgkGKOj zeCH0f_QQk9K<=}L<Jb;b;f57g*{|0<cbv`Q1))k}s&NdYGh*F2Fg@ZsU4bE$ujPAy zp%QFiVd2{^NLAQay`Sf}PmdZiD4KYhmBnxPc39ToA>Ch#2#}L@#JalhK^N%X9kXaE zMZ}>GWgcIk_7%yJaK6-s&U7ka6=8?_Vyb(Sk(ywlP5k`)ye4~;WXFB~ei7mw-y*w? z&1@cpgRXzds20~|rMbcpa83@kNs|DGb^nO-g}E77!C%fVldi*E4%}JkBk9D%#5yiQ zWM(TGR`&0Fied5fVYB(MQ(PE3Ax8X>z$KmvO?|O+)%$;(e^xSf#jUID`s!(@h>0<F z@I>ME%Tko-!R330a!^=;E`2V+`De{N*o6;&p2m~NY`f%;KC)yr=Cl{fNa^?JFcm^; z=TB=7?o-v6i>iPer7Eh()ea{q_zU9Yp5A6XsM3;?CFse10i<6CR(EC9iFX{%X8O<$ zcPk_PvDYVt*QXAD=n33RXiKF}$z8!6>A+lsz<sh%QV`EkJw5sQ!8=?j_2iyuQAHB7 zuvV3c6+vIRsb*2of7IL6$f)}(2#%`Q)Fd3Z;d8@;7pg9KG2OIsL5*j%MFUHY6{xZ4 z^K-@D{1KCV-oe&|0=;z9S8kyp*p{<GumWsn9@@{*ak_AHbQGh}y43?_S28$2PL4jh z;}GMZWeL26lLWA~|1%hcBaP8KzmPp9tHMwblZpIAfIX=jw?b`fc3DGGmxPguz2t(< zoXb9cQch`#e}vg%JErecX=Tzu_B&_H1~X^h?{(2Mtq3fR?+V57;RHHmvp1)(rf0_& zFCAW=>cpJ#nCy>ZBdL8q@z2uzw+#!E;wBarP&TYzN4iw@W5(`eZfRSCL={Z^LSzg| zBPUqG5pv@1p0K_W3S!;KST53+-PpH3@{U9dJN@L%Hx-gkdJ;?+E~u!e{E9!5r}Uun z`9&@jzXh#a%wT&%2|XjbaPA{o{U^^n9V>$L;|LIZkK$!h;vBlP@xO8wuzP@xLqKQ0 zu0X&;3!GjwNv|kN&EXZxsHL@a<5JV^c($zLx732bKtyl8U6~X*FFJv-$}<EQ2{khY z_vg*p=-mp>UnDLL_Hc1_dw!HFMKBlTM_YQ;F2YVchZzN9(Pv9aE0kaAXIyxR-&~Ei zX*YJ#ASS>2l>FGW(^P;mGxd?*w2DF6MeTb;P6<T<+E{;z8*R=|%a_ULd4FM6w$1so z0PZ(Tj?RsJ9rAu<^uy*$6y+D&CYWYuxW<~|)*z^{Gt9?^tp-{d>~HgH903uzc+h4P zrJtq^Zu!S-7ASmwlJC=U5GmT??7d{;9Hom><H4(H<ro^Z=-MosKju=ZB|H8Vt(582 z_NPa*96`uimV1Y;1)H_PMd!Ny0cLNX{0-Ye|0KrSJW*g5g2bL~V6lB_$%#F0&o%`s zvm;P(vQC|QZ8?{H9vw##Ic-DbSt(~3>{HM|bY4t1jwD*<aNmaNkFUVSBure?=4A4t zc53$kn4Dvz64cRxOJf3;&|kr!BNX^2s-~t!bM(IA850L?_|V&~*kGFE2y{l<<!~^K zJ`uM<t&g-MnWk}zVoga5mPD*v@`uKZ9_!vuZq@77tdO10yDMY2Zdh6E_xBd)&wi9# z_%Yp)VY(<(@AQ+PZ!qwuKRM$nJ(Gh0T`R+Dty6#DTa*}n#q_4?Pl=<wh{mCky`z`% zUl`7UM%>LeIzM_ig$$a@*WeO2P~ys>iRN#v#)SGVv%v087@qJ7$Ze9e&(rj!iG9&9 zHIG)WjA1ws>75!lP4c=>C}KQ$O;Bwnt65$4?1<abX`cR6^I~TD$UrigtUueGd$6mr z+UO(Z0I~ixAgy*udt6^4-#!G(c{~XIKemTo3~%J}(xpZNoD*N`&*E{Bn8NM5wduK+ zEa6a4+le}yH}(O)8vTYu#>LGxRXvWO<EXow{eege^iCunwqnT^VZ=Y5wh2j#HuY|o z<F-&)h{+JY+w&-a>)2-(Azqqxm3#vn>k!{&g@QEKl9H15!s^6>9@WjxTgGbJH!kE! zs$&H;^6urx-3|eapk9}-|8Bk41flivp$zf1NBWhZH@#g1E++W}-`$L(D~I##)w@Ta zZddBC@ybjd3jnrayHS@nDoQk<savz=EAoU1P8p206=C!d*sSLM3DLr{uoH_x&N%0f zk`H$;{Wz(^ElBLFI@;8Vbsci<TSv!WrA@;_YERhC+vwHigZqrXVJ`bULL#6pq)On6 z-Uk;#t?MH!q9z!+aQ)qZ_yEuGaB+@F`S1(WK623u(l)4~h_j#D5wI{aG7>Q_PvX1$ z;E&cE1r++8bmWF3y!`RqjrD5wwh`SJM?KOF3%5zna3ix9PXME_D0s$Yxh8dWqV`x* z;j_Vlz%ucg6AqB*IJT;dsbo}M@WFB|rvCOP`uY#C74HlKvTv4sJ5V}fAVDXg`AZ8> zgZ-;qtmm0O$qwN_aM;I&ugv>yJ6oYxDQN?2?C!@(DMDp?NZ$cVXTzv&%=5v;<?zGf z%$@W?3nl|Jg;5IbsxPgFDWXtI8KeK8gu5TkA5$_P$L3{_-ZmQN4k^+Q!WLZ$h6cmJ ziSHvKB6_I%gM{vA9U}i{2C#6T#s|MX;({3P>E6R~-GZ<=iU@=58y<#CL>$_k%N~s? z+<w`BdPxB-c?#S}B+`G_F~jdFspO4X@Q&&Sjag$hrc64>`MqqKeF1I0D{OP88#{c> zmLV5q+n4(_BCn)|52{))cHxKo7e}MTh&`YwbOsSXe+13(S?iGZ9wR#|k!<R9lLZ;J zKl@V@NL0Z)wc<T;tdvYK>^NW`@Op>|E6f#sQw%?1T=u@PxfapK_V%@5QMR%l)p~nY zK77%<x|Pvnc2(%&9j%`*HdQamWJ{#6v7R0uA{TY$ngcgnsda*Bm&)_ta7I3r#j%%s z%ic8Yy%8|0HU-<#Pn6~Pv)7p>p>~RkIEw9j3iQ&ao87okX8GpMmuwJ<#NxvC?-l=s z-E8q$S>B?z4*?2Ue6L@yY6?FGQo%@Q{c;WNeV-yncp>}bIe80;r@_F^|FQu1eogT0 zDLT?_mUYB)Sk&Gh;{=70pE%|`ueT)$vc+~2e9nK|J2jCBWR5Ows}cfPOR1761D<T3 z4rAM?DgJ%xBBWM?T+X6kijcibFTE{`Cw8-eY;cZJ(Rb>tr~YS#Av0@h3KEXUN!$Zy zUpqQXLxA8ARp!eaL<7hc;)s_*ALAe$ipTKZvNMCDL7(cL>0*x_Fi(NBv`&t%hEr>L z3Nmc}$)&wf$0aLcHlA6szmDmq9gc;YSP_yp+&b@T?GF+spgAQq#!wb6NN&n0`x_5K zBs?bLa~s7q)*)HF;~Insf)omc`Q9N-P-XDGsh}Z_?rJDJE^6vP!<8xRIlBX`2)qHf zB4>wz{%KfZS)~M2n0Q~zrtk7vQ3L7>)ZqzZRPTPS|9GIKm!evM=R|Xnn3&jhbOYwj z9~-ks`12M|k1w{HBZ*<M7#-rDQ{{G2K8N!wFS)efS2X*Tk~@4ge-dTugSxsxL!Ioa zN6=@5kJgxGX=!N!w>>q}x4RcB3AQA5B>MO=?}JHWOW+KY7m4LN^4u;z$6iQUuJhjR z*8<>s0?zh?^T!tsn<R3MO)|xoc|-q9sc*E4s;F+Xi?#`Rf95b)^iLUCF5Hdki~xdD zRPdV^?^{I5<=UTRQswfH`h&%ayBfx3canfGe%p2^ec_i(W*^SZX|={e$tl?9lW|CD zGzSvTdk;2v{?>bUFvt{TS?_z6;a%hL`4TQ6NpgxQ5bX`&MPirwj6r*1jSjS4;(eQW zzdvXAJ}Vo;!NE~$Qruc|W+2y1{$Bm^Pw(x!ZArP$)6)FlzEm4>(4Nh^G&sVG?WDf* zD${f4Hw(1Y7x-d44HH+!8;?cE{e%Cd`1F_{@fx4d=ENHP^S)uXr($xh$A@>_LFgnH z9UZODbN;3bPu{H#VU9_nxdnbT{N03pW7|a)V)HuW<ii8Aep3$i@b?C2!JqF(gOnd~ z?1e#3&Z#J4DyW+uIwJsIs<+~Jz}@ccK|4%PvXGjQuC8u-%l)VNH>>WRK(&$|>$`S( zD(-b1kjOks!;fpihVUwhVj5;#5O$(Te{=z@jP<^c$ZyzaR6LeLa4OMw1u(p<=E}}y zznCPbGLG39cAiD8f9ATiZe6^(#Q5~Y4|?Tw$mj07T-QhFJ}#5m^9$L!3=+@*_>h`` zc0M@M^4CElqN9DOMR`H4`w4uqMtm~%#GyZb92O{FO`J5a%Ctnp!tT-xmb|Dy_*&47 zlU`s2|4S`A2Xv3|%PC$o>u*@j*eB<T<z@Lpb~*M_Fo$$FI}#tU4jCx3+~kg^qb}z9 zkDoOU0rUg5`$3f~U<6Oi_xi^|94bO;Wt>y!{Tm7)Oq{qF+53GA#|0QHwtWSBk&d?! zDapZ;#PE3CMgLCkHbF&*GOdL~e)jT6ofT6-GaiA>B;TSq`RS2v=+Am;7@29|8R2W1 z`sfgB<PWu(YFl-md;XR4QL_ugVOgyZ?3kFCm?V#sl^nx880uETLyr?X>6q&dQL0_- z@zsD4AmbrCT#Ny|y)LD2Uz$s)RM8Z7_<lIbf-IPe`mwJ!>lx_us<5zC)T58+(|vii zth2K--?p+=;9=UcaxqlEZgwqx6XW!DBIFvooS0caxXqO@v-6B4SqQms^e0bAweKD= zPJx}<O`%Tbf5XsX;J#b{0p~?dJ_gMUo@<Dkx6I88`}`kL0vwBuVei58O_Vs$53`PJ zxi#|8g_3vgxPPoaLaRYow|-okTQSZ>oq_s_(nle#`eS<h25knH({J79W6q`V&QXJJ zBZCav&m-Vo>7nsy)S@@PX$rmj%jYw?C!pCSap+BU;%f3bq+Zx;@}90hfT%b$3G0lt zX!=mNwk;||O!pXh-?aPZnQ^nc+d!FWJCwct#*Ykc_P|2#$<@yclMdM5u$x%Z6C82k z(0WHLQ@6RBTEdqg6}!IZ+g2#5^DB&{1N7uxgH9rUT8tTOih+e+4k82`=5H1`TyfH{ zm!=oG^<==4+nhp!<{n}5KknES5$>%U+VHGQAS~$rWs5Izq<pFg-&eDWyc&Y7-q_gK zE;TRDQt|j%!-m?QdwJaeuFGw2D3hv?G7n`o$w_^@6I@ydrm=94%3t)879+Lsdhoql z1&>i<hd)eSZ8E@_H5G^J9z1x!iQhy8ZOwh>D&EwwB6M>flrSOK?Jo`l+fJ+~O568i zEWJrLuFWDvB(+3@q2*WczZ9Rx1pu1LL7irCY+knhIE{}$SBHH5HFl)Eg}3+mBk&ts z-5#}LJFBCk*7YA2nRqf!9f%o)V6Uqdo+sYs3H0m-9R%_q43^*8w+96*6B2LHD)$bR z7>Tn>IY+38z#yq|c%gpo#rp8@a2q+KS!hW69tXIyw0P-O>*X(;I<U$$M|oVlIk^8k zQirB3tc+N@4@^`g#j$yv{0)=wn0#(fsb>;`EvzvvpIDtp$KhyS!M3#8!hjsb?g6QE z?IK+EsA#Y)y~qBJnO!IXq72|Ko?w+fejhrgEDpM<R|Nd1HrJFO#1=xmFX$<{cX*+0 zGQ!>WPq*@N&5w$uzTzK<vVG?}sP)G{a&~5mr)40C5|lWhT0h{K&aF_k@AI-SQBOl0 z`dt(MOVN@=uRG>Z)AO2Ad4Y3_2Fa&0zHZeU=7haf@R)8@6UptZ%GZn)dbl&}d?q73 zeZ{&d$nS(ITyB{!Q+TyJ_4Flij_G(gCsxvFG$NWBhxX+ld7P^Msi`9hJx!bt^TeO5 zy2PV4c1X^;|LXrJ<4jp+A)Q>*=pow`E0ocT_Vb9Uj0P@c8fs?0OHyL7!__d+m&*O; zhBo{~98eLp9>+#P$#+}lOvzfj@Vy;^l~Dfdf;yf+)|Y`)IZb~{^C>dQ-Tw-@-Ml-q z5OJekMs{M@5(o3Rk9)uZ0Zeyz5e=%N3&ea+ikP6<XODqH+PXhI^$u4apu&BjZZ8;w zPp67-Vf&f9d&u~jFq@C7h2^XeXc-nZE1*J|`Cu5fiTiD3szIZ%TNb5LA0LUxSqNhe za{%iquXDx9l<e%o?Mw$md*Aw7PwiJMqw(?B0?%gh%*1NrX7_Xo!ppu?@}=OF2QPR4 zF-QX2WYs54aG-VLB!%MT=NI2<PYOT}7Aa{1s{#tQku8q0D+9MYmqYu_EONgW=x1DG zWMou(10#PukJ!7|O@m*fh7npkxw-qEN2mp8ELtBuu%7^gwWVqc*WcoC)%i=dz&^Rt zJC1YinF`vJzp}8tK1h<DhE&@f_1Oen99?m2_&)!K@XOuyKZ%D^u%YF0E0CTAV}+z5 z%skJ5?TO{?IpvD|AIo+y3v^XgN;hV-&O0}3yVNdmWr9GP2ic$}13lk`tQxi5E%LiD zqVxxZi8)2g1c%HBxXiTcvpMzN_*m${jvjzot_#SRe{#}U+;2NefL)>rDNeWc^k}+W zDK0A;tqVKcSHw^^anjaR_AU2cvHa1(O8mU|M+=w+w&*1^f8BU%0N28wK+L`9XCiGs z5dol-<%>62!Qdj_!&wJl(9I!{OBlJEA1jm<XZHM;4l-13?2s*{8^<Mai5Uv7V^*et zONovTkhk^!(#PR+YGxea3Pu3RPx@aDc_yIii>|;B-#TP#v)0q%Gs6&zCDHXW-E%d^ zZ>h!><yL0#O@a4L9C65z)X*uI($dG(;&KsTXxBezo>HeT#fn_vaqzwDDSH$wx@Des z7&ojm6qq7!B;5DmTYGyPfkr)GFvL1KIk84}69gW9_bc<hKk@U*DwR$JHp5r8k9niw z@=w7gjT@=P5&m45By+=1I|Q4bt9r^4>uu9W&kDH|4E2j+OR>0lbMK2aZ*Nz{`E%!f zGu4ViMP&b|W#@6F(xu{M{P4eF;0wTd9O9S5cKlvw5~7c7>+;;JtDgvyAMFzJ5j-EX z4fYrW6=GX?YQah2-6)2Ji@Ko507j-YD7l0^4yQGcHQtt9a#?u(&e9)X4k{6WE~f$& z%oj$ZmCpor>J1C|a5+FURf3LjBHEW2_c)Nk{v+=_m~lZ1#pE9KgQcXBl5<}es%G0% zuAN{y^B<8cWr)roA8i6a7I};^zha!ItOhtdIf71VLB9Ovhi%7rWhQ-RTw=O$=N-A> z5p$CuF7IjSr)`&qz5UQQ0RKw|iLh(Jy>jhCu<B>MXBzX=eOO*WF6-T&y2kc>|1>%T z`v6XFO}IZ+uekbQHZOXWKnr914I_=&9AB2`g<;nr&lRdp(m5A^7pwp=_p$G~!*;WX z31+J3F^YkDY^&{r+dKtwDq_8L_1o94dLfkcwq)gBQC#90v#8Hg>kgnfPyo>vF3e5o zawCyxx8F{bMRXG$DPxYPuc%WgaeF|lh&nN?DRkz_(PrAaxQI7qs8*3KvIY8?;U=|( z0omES{C*_;&&<pNKNVl&gNKG{BgsI|C8Osu9>OsA0}(7IWULN!Tz46wGqz{MOLn=y zk?1Aa-(3O}n@wzV63-Ew_qXN`rR(Qj$iA(vPFg32j0x;nHfy?DlwRRk!0DQ)F~exu zbQ-3|*Z@D&-GdxbEf2&E%A(ot8vvZln7%l8TV%4&y;AQ+2;dg=`sU*9K`qbm;~_f> zrIpmf=7W`6Y^y+heTN9wWL?xHz$nLrllc3yIq|5T`LL7VXdjcl;J-dAW6j$ssQLpC zs&kt&<PsPnsokbUMr!32m9|Bbfu2h`M_4^*r&59~t0;fdu1eJ9;Zm`Da502rHXe~z z5{E^EJO(ZZ-gg1&AI8bvZ5U`{;LZ7c?I+Pw<I&zL{&hgXbGUjsH&fQR`LI`CdO6}e z`n!e5or8L)<uz{N9#A0hH?7Kr6}rH$z@Xg}3u5)Bkcbs3#W)v*v9mUQB5x%8Y7@2a z`sH=-6LU{ukzsqEQ&UsJbr;+8j)QEn!F?So0?K_odl0`pfz`wEUp@TMKlb-{QDRtq zJ=GV`ollcA0=vNEx0AT}%sHle!yi|Q679IqKZ(7M9zA*oQp%BxE6Ew>Ew5MX0d`Z2 zyTp0Ti|S}PCPxURG7L<vm~3M=;aP7Z{b&|3L3O@(k9%@>*=73CyD$qZdrJV!-_hCm zATMO&t0?=N=k+3^T-L~L!jYvh9Dwu|Z&m)UQ@y|sYvy9&%4Cj&JhB`vb%nm@5bP&e z)tM}Hbsvycb_~Hf?Z@2=5cte6^dWe6#c{Q1cRc5;Y2o><j*ge(HWuy;t!K`(!trN_ z_y1?5%lZdBxKhYz8p^R3gMA6+STRt2X&IL6_y(Gd|5*RxH_1v>*fZb^dUgW#{ZK5U z%D(Mf|IHm5{A>|!bW#z?Gw}SQT0nROQ2*i<=M8y~pynd7cShd?a+T}4+B*Y$d{8*P zG!9SB<47XEST!A-18ILNER4z^-MIFV!hj6%Vs?N&VzW1tISrfC!ah?-S%-joJHylX zl{;MF#q|g*(4ca#K)K8z{MZ1yLiGk6Ep@x&!N!Xd1e)>Fr%!|KPWIenyu=LcBUhFW zxjEhbf_Z35bT3W$JBMQta%UjcvAjsU&V!uHzAm?lNF5^4q4qaSF8rc6bmxY-`Tg-a z?<rK+`eQqa&v;{C!zpHbtIgp9m86q<s{%-@=_I&`(udZQZbn>}=Kvs7+ovY4H=Qp8 zEl@7=p$FwGr{L{vY7XrwtZXRCTHM{F%TCbVeL<#N)Z5eGH01n@ZI^2Cp04vTX}?n2 zih%uh9MZynK}>#I(GJ0e>k0$}O5;AfiXC*&6c>&Kf`7-cnIzPNm$LKNgP@&9+O9b# z(u(Y(eYKs+d-<X|`ZCiL?8b}ND0;*tjyNqe7w`meuL04=M!7un-v)g=&W4YVZ=Fqb zjhOG8<K1eRnVG56!i<+RKlEFU@09L)RvhIsw`2p^JpbZAI=q{ZK&73k=Jv#&I}+_b zh4WWv7n2|-qxXQpo$bu{+@`|F-!Qr8{c*H#)!V8nudfvHChg(wn1AKDa}llj7C{0r zOZp_AI}>|A&T*0!mPM^U-V(YH)#m<V@$oIrNi<Hf|0Lzi3(#(;K%a{lO;j9z?sK?3 zn7sJ?C4(QeNoFO(`Xjy2f=u27;jvrisseqd3R%O{ghS5Hil_Qjk*kO>lpz(Uut;D_ zNn5&j#yPmNE3|25E@>TXq59AiI?&(=Vyn=#PT8LG0sHesJ{(AN@#=YUKEI_|zKpKD z_a`69vv@3G$rzn6a~MDO0nx`b=_v~4@%6oSn`A<8bN7;y`DDex(x~D+Nep)uF1N!R zqh#`5bJ7rwOWI2R)-;nT1=(yhCwz_WCZzwy*py4n6+b%4rz94fyD;wffE_uxl&9{a zDP1|A_D2E12a-hbfCEd}P?b|xRv_wNxQDwLj4^)1X3tpJoW%v2TrV9zT6>0vGR{41 zlx9)m2HU8`zMwy5p0eD{G;VJbdaz>{vh`gjHj!W6mD86RnKF=kGz<9&-;4^UmV&6A zM6Nu?n&ny#nLFnJ5(;Sei$}l(8^)VdRL#pa>+n5*=izRa(R1FEy^iLz6osm)#>SB8 zSY%lH9)LS#FKkh(xodUgfoXJ8K8nv{ZFmlUAuR<x;4&F}fDs82DuwUenmmUx-Tyv4 zp|{wUU0&u5&F|KAb#<jA@X6AHxjtO^o5+>zpoY8sc5m?fvpd_|(6X3r8ZH{LsiL(@ zE0b~gr-bDHq=7b=umzd{SvV)Zu=s~>Y1Q(jGg<=GbU9h`@{EtzNU5!5+9BA+h=_<U zo{j6RCml$Z7Ut%Kd%#2ZaHY?0m<cDbFPv4S!QVuR!=(uR%K3f~OKD~QX=qY6L2~E! z<V5U?uNRr4NaWxP1j<GQ7;SU;Os;S5G-A*HnE9c~?KSBzZVGQZhEZhyNQ3-mA4~38 zi7~^hNJenO&9vcK!mf;R)}Kne^G87c6UP6q6j_HzJfEs$Gv%JuEqJ6t-f0Fq&27-5 z?ds>ZUD01^VbP+AH9cRw1`kO0_KxMt$w~dh#L1hN`Mwo^*o581KiNJZAV%E8{q(Ib z-b9TZI{qD%F5c1Ne{qn^FXuuEn4>U=lq2togQaBTeN%mRW6Gi;rkmw?;<N_W4J#D$ z1JDvda$=mUpVjzDR6i@^b1iAmI&<oi16F?>l10Mn3f!c(B>qg3wCL7+k4;uT+%j!t zNFh8|(`2Pen(!jAH2HWaqIw7v%MH2tgih_hGppZQt=#0vUV{g`^xa<Q@7P`Y#D+{d zL6d!R&KoWctN!#CP<@Ud1m10!P^}&IG)K=8VnNl{Upy6uRuLn4l`mrVfJk=aWY)O4 z&wYQKUdDO69!ru2M*S6FCxV`wSgo5%qPY)85HHq08@e=#QU^>C8=a}~=uU9(=#+cc z>;i+-M||(XSz(Nz_>p{O6t9+C{eh^6H%?!=$@j{`hdbW7i-UqHXH~9fJ=i``@_jl0 z<4>dr-8)q8th}h*OTP8g6l_fob+DhLJ~OnVL$FhCr@B~l1p@Az`OIMQ=Xs%={15v3 zIw4qN+o1V^58(bt@sx*f;dA){cgT||WcBY!+#3k5DDie|>?IDD3D9}fJYq4iA^=@7 zf0ggmkF%0tv4*sKymIfbTV=JeZ2m_PZnVLF6=yGkmp)DHOcj1BOgt9m*0CD{rF4yO z$OIZJ>abudnvduhExZjEu|S6PGPFU&W0KFNX{HEqTuJ7OM~V#ENe{ROySP&MvnFtJ zrZy#P*RGO44GQn2xB6IG*-FHwNi<x0E{_$0UgB^Wg!{&O40e@DGeA|_`1Yb<wByGM zwqbB)=6MR3ip83YqVB!XL56Ofo};iubmPWBQ(y4+H)D*uRGwOL7Y@H^XTdKADcF81 zTm<%ji#otyM*zqx2X=mmWAn0P!_7aMy}y0E+?eh&gT&Pkth|24h1}4C<yvVgFbN0L z1hu_A=8Vrz_!!StRrE`q@+=;GAd1&_J8&}%eHjE*t-U-nOGF7quTZz3liIceN{|ij zmM;@3J~N#yMR`FBr(bQWa6UQAJf$)Cxb;J5Q#2qssjK8~LG1iFr>OtP)qoC4{d#uO zO)Kaqg=0dDz5YO0L>dYcO8a$jaNAIZOF7uE`Zp{j!)&Uu@07=6_lp-V#AuXRl(TWJ zvY&QXSTonQ?e1FZ2XAJw*EX*DX!)tMv}Pg>U5>?GpkFSM+BR%Hg|<P-Q?1J%`cfy{ z`(IvV6n<?7wyUAdh0;p(mpaKpXV9}am_O#L7{A!gGE11RAUDt8^NIUw+0k_Jh3v(Z z3q!f2w4D+B-~1DPQEWWGQ@ALr@>d6Dio)@Izc{{k9ErbpXChFr8q040|8sw=emim& zhY6$pFh(_<(15uSOs`4HT_qmrS`#>kvzNdGz&<GtMZ;ogD0E4P1R7@Mb}GXqg>T-} zoyB}RTjU!Rw)QF<#*n1{&p$7^am5^t-0;_%6LBrnx3{1(EOiu5seegI&_FT;_p)&e z!RDRyo;j%ttyrFx550I6zXv3Wj$oL@q31w%R)tN&L&)#F#)EE^)#H-tL~80sb>|S^ z+Y!jpUWWi013O^K@^Wo{v&P~6xyW9}eBD`3%vI8_-b4uI_uXVQg{7gp$+^$d(-nA? zG2cM>(Cba<k8?ER5$H^E`^T*l4=Ch+fuAr`#9j{=v_$@foJ_C|x7gXpd>kBLNbdwW zjs$ICr__lny}i9B9&<}&$p&ux>A85y<V(giIaWmSlaTiK>wpp9C4z;(hA~g$(b-~n zWLUO`vY--TjZy#-^GV$()?~li^q|e-Lft`|s0ZnYZ$9rrja8VVd^P3{2O#DjPpy?l z{FQ*&^2!w$Eb@p5+;;W=LmD6)F8tv!Zf^X&^sF6Q&ljIa*}JC?o(5OON(1zfErM~3 zYhUcB8yN)JMh3w;@+P=!&y~ESy`y+G-yV<F;l}R)Pd*f1O$EcOQxy_eB}E{tH$WIK zZ$X=1>B)Y6UNu~~Znw?Gr%Qh9elvOIXcKz&)Tw-)hwIT3hPMQvkQ_(5JAb#K$$}bh znPnk<Hy9RN7leB;M<?Wi)=}$a=2jD)(C*o&%@mHS`@mIUjrCN8=vqR3eNe~F^2h`j za5WLM@?myEm}_#<{P?oOMv^fb6Fs9t75a-g0Jj_w!6So5T%`p)4q067a#2TEKB{*= zkzf8CODVODO-ME1%7X_RK;6N!g3bsuyI_w;+zgGtyGNr_rWumR43`D)rLRFs2GsdG zoyO`{GQ6a!$FX@`n1cP;Gw3;;q0tUxib2|;-z3kS8#rY%If^@6az=)2eb;gPI~(z< z0XvCo*tgfkp&pUg3uzuNbA3~{Kb^n2HTwv|&ty>suCYaUJ#|-da!w+BsXDn{9~qqs zi;CD{8ZZyRgqUyuB2q;N3~iX8K$L0IUo=d$b5V+OOeLE~31C*S=uh%W9P5x6->v7R z?8wQ+74^s{NWGk5zP2!PyY$(!mh04m)gJKMX|&wzY<)%lFAQ;=DQdt2k;?0!bRt@~ z#~>4-B@gklds!do>m^L|NnJTKn6LG;LfP0uPA5dyUnP-)3k|aeR$n~6z(4W9XLhR5 z){|{XG#A6`b#VVh87*=Qve|c)Kt7Ffc|?w=*FF&Gy?gXm+CUpeZePZW{)U~*SiYzz zs!oj0w2cH;?(cL3>O8=-fX1DlZa%-x)^Xf}%`XTo=noML4F()gX=O@#MW?a%V7Ws~ z0TNu{b6|&`bK?^Ht_W8$nRZ2496mF_Q=Wl{k1z|GW*TSng2Q@?jB!8k2dmLFVF_tq z>#7Np{Jt9)<dbNb!XpzH9N{GGxmth6ie!4?=zw(4y88{^_2&j!?zZ}EW(fqhWor}* z6|lHpF%|Z(Kk*ylK3wm&IC3Q20e7PaOYBP6&atnLETMBO=t|%V0|2+&;xO@7*#D`e za|6}60I(Y@wpnlWkvFZU4Qjynt6bVO9l^AX$w)RKFmv(xEC%6A&Cz;d$&T;F@QfbV zMYPhyTn-ge`?L7xDN^m=G>%1RF+!}{rZ|vzJJ*~K$2FkRItkeB6h;YkZ0LcoI{NHy zSjaoy`Q8uyV}64##Pris?~0(Qo=-TGL(N(lUZZdSL{lwjC)gdnYl14}AKc1MgP_(0 zPF93azazHU^ZbQZ8=GA@mwiY>Z|?Ri4856pLL&RmEdKKEH|G>4GIfs7JYpw0uUHWr zNn{J*Nn8%nFYKu93Y=!Im%KxFs>P92GX(2)idm_lwC9zChrKEPTh?{R!xKC_(xHpx zwNwSag}yZ1Q@TyTu(85MGlPNYsCW=908Xqa@#q`uq)Fj(SsDxwXdhYS-XZUjv9e#s z50Q%(zx%Wa`v0*G-R_^d$mpfoyT9!+d5_Hc#-^OVc1}BPV|R<55QwozJR8+bFj_qM zCiME;2*`u8L3vB+*_rWNP-w!+NzeOBv$Aa>|JX<ThRGF#x}_+13DDD!U@YUNP}ttD z(UOvL_4OS~2oriDxb%>@3V^D8ycyUJ%+?n_X<%!A-AFY!{{O@9&(%ZspNGR3@{;1Q zVP3muG&AWS3lznbVYjg46EuPc+w<iU?+VlT0h<$lp%oTUa|&8l)20C<sa@{Q86I=H zkJUjFSnq#faJj;Dh1(=PoEG!WZLm3TB6PP243-lqU~z{M_rp<OF0Dz-#{&9HL=6+f z&+ispgZgoJz>0U(w{VotchlLPufS-b<84HgFBL|AOgE~5w#FfPH77GY{c0}C@n}l& zj+xdRq%FM1267B1nP<QavG)#r<!kUqbCL)thH>)xs<!IUYINfy?!)WYK?hM=?5#n} z;?*x&=xg`x&0FBY_U9*x3^F%{_qP`%Paug*$ev5A`+P|J$!IP}4!a3~huwi89eW`V z40A3Id;X<GUG(6`^hE3xe~b-ql$RzcDk>@@yBd3E8gs|VX~yK$_Tr<#=}unyoVW3S z<gc1Na}D7?D>UtEq|}S$c5!8<`n10>gg@oOW8A{dIY2aJRZm$Ght5~(T@S$)${m0n zPlzRvXAS-wX8hSqTU*;`K_yY@<FnJqZ%|$&QBPp*vpIrL^!^cAmV=aBlZjsNC_~63 zA{h>?%OCdcubZELj24!cmtU#wxUl%JL#j4m@%zg*J+Ix>cpIfa&_6&&#fVl-tSanx z5jG;lkzlKmSzvPci%qrgf}F(AmS|f&=LAZd!(Tw}@|gh}iS5k8BCE0Gfq{Xm>eRg{ zW^g)htiJTB=gBbpWM*p~A`+&&4mp0SB_?Nq;sUMjJamZ)f-yr?d*)`0{V|2x&p@~C z`B$6Z>i)+Hfkx$GQ=Y@iUcY{Qzrp%K^^q76Rr{bakhOwJtChEZpE{T&{DoG(Vfk-q zi-SPx#6Ev%Fj!4h@(DAp{6OD}%{g7$ORtbWzqqjQ?e^kenWZfFz30_W|C~VL8G*$q zn2e3EBP5k!vMe<o-N9j^ST{Yikh>UbX|SmC_fQinWs}hpxzC<GTbp~CEF>SaHK#`+ zBV%g9a?nQw4cQyE`ST$mFzoF_*~e$D^^kvq%Rp@a2;+~hLn;=QWqBU%@~Pek!Ct)? zI?<6rcU(lBSRKvG)7`w;t&-tBTKDApYMRCDfqm$Kd{Wy{nuS3!5Jdla3W}(n0WFj> z&L#e3$UUDlf+*A2VQx)WeM&S+rM->LAH%lgdqg?wSz20(;x|`g%rFJo$9h&4%Tu=r z&yX@b_LDR{4N~eFogb=s<|P9-wFyHL*(Ysyule;pIkTqJ4y|a@BAy+#jr0PknKk;? zEO2OGbaXVXdFQ9wTg-N;U3u(zY{hcEdeZdBXIJ?oFtbEEz&hdgXY)8S@%?crG`P6} z<Xb16!ptgmeEKK8liQRyODpXdZ2n`O-#Pc>9VvJ|5^>MYTw;bImORbV8M=Ou$b=7~ zE)Q22vznG3%$;-o_qw6s&EnXDc!5%yjdDO|U4@X3sU40l_4h?x-Xo3%yYTJXH>q2- z_d^9NA5+N-rIjmJ8iBDiDUd+As1Gzj=1$;2xtN;}v_4gyO{Yo!Q0DP|n9i)RKPJyE zXFcsd_W7xIr0Po5C)VuLoE%m5dxuJ(n+BarOIlFgWSFDS5~?|rY5d*va|=%Y9gbfN zdrMFC>R~7ca`MV&`Z{PqaD@Ikgr9C_j73-Arq#7;Z+1GQX{calDAFwO-TJfPw@;$a zv+H839!W?%5_sfStnz!j{)We5l6iTDMa}YT^9|HseXZX;4>vOt?^1KA7iN-i)$RPk zr^A<mos64j4V+}oomOObTIp0>P3|yoTIn1;z^pcI=56L}=7?2_NKL-{@|dUg8glX= z=l!~_18cb>OmrUz>ImFcuwT!oa!elofN8ATea|>|?j1i>ZIe>lbOxEoPJ*Zw;PFKA zWF(uB`cl;=Cr4*z<M$)W(N6>eMpPhluQj55Y6GVA%Jwnw)nUt7vq+JV12^({#uNbj z@rtlh4fSHxi4LhOjlg%{42$<SVJ(Cgr$?N<%NgFoenUe;yXM{T;LVEW{e?=C%jj*$ z-eZqrw~a%A6HGTAx}UE41Xp^vETi1a4);w%T_2EsI%_OLk8sJOf!P%tpoleDK-qV$ z#i+<f$+mR?K|eHqL5OlZEaB-Vwu;SfAC(DmHU9tbY*JWyr|zFdLr<fjhvI;#Je?Kr zVV*lP&sk>}U1WfC=V_;_;yW|B8=#sdFE7uW7qn13hzytvPrMxpOs%Gj2JiGSxImc_ zS?xu`!?^G;{6za6l%0fY$P1*(Str_X=X-&PieYP>n1d0~wgf&OxebbrNRQn+&Y@%M zB&IOQ5#{Nx+qRh&)6c%W7v7-wnLAB>8I6YPV!_|TbRg`(`S-{9(r>3(YO{W@Pc;>H zxCu{#4<F;issn!@$_iyR4Ljvvlz1+Ab9PWxiYVN;GIoR4q!jKVhh2cpaUuj5dBusp zzR8?hK|q6=Ufo^HoUQBzC?~78ub{~{cYeB6ZZ)hn2me$*Sn?4O0mMam>`G5p@d@J{ z4_#9RX&Fp7%DtBs19A+Xi+)j0wj3i(UHJRNU`7B+gY^|%LRa-y<Eu*3XFdsD2but8 zOvbU7G3sbh5x_izN}jb+SbHnoy!S#-+DX-J0=|9D)JSa`lA7DCIIN2|hMp|k*ZM5@ z5uQ_L=7?b-4<3~4^n}y12i^O2Modw0Fl@x5)-WeJJtIT0-{~z&%hWOcB|7UrXXy|Z zF@fbj&m@cXV7%|5t=^T{#ko63k3T)SVkzijh$zhCOHUZ86t^H3w5*7X(X3zb>S&De zOIdb=yT&l_%jQg1_Tx+KlKlKBQ*CxZqR0A^e$)Wc3WkiNN01;~B0NY8&48{9*gK7w zbUyE}Rl1IQl(;<yY0>>r9ro6_M<{Il3lGxt#tpeo(+|=n{YtWlPFU;=S^EA)$0tX1 zvV|eqbp+bEsYpz0_<QlSGJ%tj61J4s8(2}M`fbQgccD5O72LuQirwhSR-_$#*FlDE z{)$CbATn5%W=BphuPh))HCTH0#G#r5VF5<>XMi9u^7$i!2HN7a?3?0WmD7jMXW0<+ zRuVll2GpL$PI>KkQ2Xb2u4J7&8t)&nq^1H4F4se7d}%7A`I@Gm9a7C0NQH!^yi9`x z{d>)Xo#1Pxj?uhm#x01^*@x|4bXg?yUaF%p`>=iBHUH52`_tdjD#rq*5}C&_v_tU) z*j6mwWh*M3xz7b_?w)mycojM!LOi=&>$S$lPI9|qu`l0)VOOwu<CKRI-uk}wRyw`6 z_xfPd?s!8_0-vmtqmz@-l{$j53HS=A(&%~jF{Ml0n|9$|7`9CcOUnQ5SD^@YLY8L> zBJMQuhw{XT{9PvY&&P}CP++Plss_71FficA%yS{fe>%+~%+}nzuwb?CdBJk8%GK$Y zIX94KLEznx+$HpEvHNLu5u!AQbW|Q(t`^0UJww*{w(m`x)0;ckO*3ZFI$ScT77Sh} zF6urnAu-hR%j@_r??U|$+@J!|ThwGZR~bhUTA<?k>0jwh(a5p{L-UZ7qZd?|6*0F2 zbetI`F$^hAh`+riHQBBj`^xo>SoSrjMj6$@%)$b*|NF6Y^CPBz+=TgcLxH<neXWmE zS#E>^hAen>?8S$S1Rj>usMR}~XI>A6pX+7&!p%W`>GRst*CuNgv+`k<HFPG^*$50a z?}?n8kSpykDW&quw+t{q5C<JE3bCU#Kc(2p*1z_~VC($)?F1@`_gN{pzsI8@qA;IS z<J@mejGsmJ(K(vwm^_+fZ*Oy&_RM*r{?6VgEm}Lh_p6I@j`vk@Ur5Olp~<UJKnCN! z_-l*I!ZlZiO7rzz#`LT7QD>~`+R{_uN|e)%wVrDCmN8wM$*J3S^JwOBP2-HyWMiCq zDEkJb$T&-GelH;*!CPXn=q#5zJp#V=!*qWBX;DYh29NvVttYdU<3N%w{hT)sr!a(5 zIJ{02i&GN#22c7{^UYGs=rY@gjK!m&y$0tx$$U0aL=CndT*k760uBu4-SgG4w?pdh zY9aBgyYgz-B%t7FRN^Ni&WFlImIpSP6u$yx=Ij}=+i`#aik>Sti%Wg_lyh**f1+uY zL+9j0Nl8gJrVR>nP#_C#K?4oB(_&{^vGt8hpt1T`AXTvbH&SHeuFkj^<nPh6MA@n3 z`jP6yS0}S6Cq=@GSpAt^LFZ^II(B!r356d%1b%H;ZB|*WU#vJNX>7FKhA2Io%g*nn z$xESM0$Fd0P3)rtSE|LBA<Dqhf+E6YW1HzgRm_;&Ebg8#mZZac_*xj=6@$!r;*1O3 ziPwxdc9}Hq>zappDZY>83H+I8-^8{Ux`Ft%A9`~tgFX}s3E@y}{ChfGZm4o8`h~qw zi8iaoFi~G$@WGn>984y#3T1(vSll-E7_Oe40@?1$QSUZE0X!SNV08{5bM=}aq=XUw z6R5xE3*36jj)w{BDf1T<$23>$ES6yS6~2*xh;VMEUDW)mXB)GfnLeL~-rP;TGES37 z-To1B4y-2C7{gmds@5}U<m}Mv{X(fm>D#jCq<>4?X*mc*-O5A|FEMtmjm@up>3UH@ zR~6zC-Ow>kv=vq$30p1iHqe+@(~0TIRjEzC2ciGvw_0fQjMbf=1%C~)z-zDX1wDC( zvoX>;=x3Yj+U(sQAsCk3!L~llZ|_5)u6wsqCU9XrYP(A)zl9r8i;9py>ba-wN0rw? zw2?N<R7nYpG#+?Q|GBL?jK2MU7wwe@c0ymJ7uxFd^Uu-~Rx)ERlxbaY8<Jp0mz$ew zNMgA8!R7l4i;533Sv2$+ykHX0%D0m!bBD{t3cCP(t&Ubv_{oS(d7a3L)mk22+3Z!t zuxwjIW8^7(*7S%_Il;B-Cf|Cz2W|Wfl~?Mfj5@!59To_rYHqEo+jbObpds&Da1^U| z#zLCI<I?!03HlZk{q*_<_!5Bc!7@9dOI^61^)|5y&*t^jB_qdVF6Gz)%$;FK0l5;P zPE2oYZT(V7pzcc!+F=f>v$C?{7Sv|FMznUy8TxO(XsmI!*FsL-Qdvv>EKHQvyt6gs z-*aWN*RQ}T5yN8UoQD$Ty=OJxxwAC<N&3T|r*~sm1@~bY9r7nDO=lUiAy8Y2Z^+NN zjM%}z=}0R=U;frLp2OAu9v_4gfG9z)S6M&Hxc@|RGoMZ7=h=hVA-Xi!a01ubDJlGm z>gtV1Ff=JK78zCtorcNx<#zEx3}GhTXg}y{S?oT5P0<A(-a^;Pi7+YcqCl$E>NBWc z>%L;@EN1Jw&g`h~4?`3$Dva{R3!W;{gZebo@gbvdE2Cuy!zp%Xdv5n@;d?w>o&hU* zOq%uRsX;jBP!LL#)f1RW&h0c){gWF$sVwKCO@XHncX~!N63-HY87?s^9p78_#2ip> zc{cUyh60gm_5P-x2u14H3-eWC0EAVPkrb~)x2)5(+4G6}>!yX>#W3}upi}se^IT_) z47BTL%|D8aaf}5tz4lED2BvHXG*@^CNFxw#kpCD<EY@<$QyV)s75{q&Qm_!{UasF2 zHhZWmU0!l^xHF57?u8prshk!8>|hh~7G&YtDf{7%(ad(*Rz!?N+09?AvI)jZ*?3#W zZ^cFGSY^12-Bwq3U$EDnjNdM=vXay^&sVVEPVv0;_x(E;u_mt#J^P-rNvQnvi=>Jv z)Zgm9uvG?i*O3`RxrJ`b1yxdNF9>&84M=MZ5Cy#cmRs<$-GzT7lv}>$s`C`uf?T~k z9ZP1_D^kZ^3>yok3ss*;udlDCHE;Fm`y7R+_-SfJR(Sc$^eSq<;}La)33%Ie(7Q5f zyjKE;qnw8)S#NdhX>U;cwsA3~Z<?2SRcV{uDwT7fXR+kft3NVDKQ2S1&5o{EJ&`76 zzK?8qM7xy@yZ(bC<w954l*=8gkpHQF-vYtY*olebom8e?_Xm9@+13iZXP<HKVF8H3 z6ueQFS)%gw>%GCy-Lc)BAI2z~69Wvw+INrjbKtK53viQAz*Q2s(kO4cv_5cmERdR& zUGa+=)S-&G8_IibF;<3FHgdmV89(MfarikQA>j>TcQBO^ENBH7u09Ix=j0QD=f>Bo zf5;5%RO3$*fa=N>5Eq<ALt)wgs!8D$Bmt{V<om)(=G%h&(|i8Bzz|!rF0+e=o7=5O zU#!J!XJ+IQHd?BWVUB@#|2A5R=jP*b7J+TZezf#^l^+oHThv3c@3N%SVo?l%>2Us$ z{3ZpGpB#hJdt+ZP5xCm4yAnE=AKU${yL%kwc(`#8Ac$k-B5^b^4%<na2Tm6!+FB0q zve(8yBrKDJ8;$-#1YO~M_(wuZ@l7f&syZAMt4=J|Hu`#XOoaQG%($S0z|E1qz8c?_ z2)a#nzWTbxldi3O3^Gs?XRNaJ4O^+9g{phgK+~mR10(DY|7ZRtduuhvY*-b#wk^(J zV-7Z%=@CseBx6yn!zIFgf92KO(4FBn(H@%cA2Qn~H@VP=E&yV<XlJteEcRRD#x*~5 zmTCYxHaO|ze;ppeIrIhY`yTcfCEy2TJ74p4n#Az@$t*hvtWINHAth`kmbY#-to2~1 zn-uWlENWV?VmA8(TsK105hgE%mWPTgB{acyA1OnOrd}pB+96-ZgmEjF6%49k_$#pX z_~;Ev{<7j;jKF;**FWt~bUs*Da7Zj>xK6$sr31T_wwv(jwcV>`=o0+i;8#_Qt-#-Z z^|ZYabZ_jvefmwfBk}Iz`e^7Gr=Rdls5?C)kz;ZvKvh7|eP~UgS9>CiJe{#v%x2GS zyL(^Rbjeb|L=fgKewui@B`P;Uvo~x$bGDKL*nhqsIQ-sNICU1~@w3L@*eHWR<|Rib zC#M<sA95*IbQb{W+N``9Kzn<_HjsOPx@Z;o+c}Q_dGH_HGe84`sfRZYU&@w0VC{u= zN2{Yx^}^kA)&*8h&cWnr-@mW0u6FoZdQ*45#~Bwoz!VC!qIL{r?v%O=qx<PdH9%9r zAr#@{dXlxXPhjk7^URK09)Z8ybx$^qnSI|yx$2eh=ZU~U8~^37QSY|gC{<e1^26Y8 z_3<`0vK&H!r~r5G8vC7g#(qy)BM+kjr(H2l5w7I;x7fxZq4}0ibd`_M&VEq%z<v+% zHbzN|tNJ@dPjNKSMrPkFD?6K~2ZzF}Y!BKI8Vd`rZjOEOWg!?>ue@gE@`KCWHPu0b zBhi;Epe_97E_!#?4doI*m?68>5tJb}2iVvX<o=LvRo4A}^pyER-Q?cKj~_Kn20WE) z+ZGU4CvPJS7iq7)ODC6Yemi&<R_wW&dSU;={~`F(_Sc~@W~NmMa!O+&u`?sn)!&VV zQEeAenC)eah^yN{lJ*qofQ8~BTTs-icm;{gUv4Fzm6WG0zA0A67Bar(ik6Cj&jE3# zC~G>4GNZCRU{O>5?uA+G%#`)v$lH!wpK3#9r>C1g$|w{FzP!6}cTXzv4Q(!{w$Zvc zkgCDB5P9-MfcIaxmxBJyPBd=l&x3{nr8#m2+mP#yayig|xGtseous6sYO_-Frf|6* zyAvUsUG$XlR;jc6cVB<Rs%=Aji{quP!UMjyB2?AQhfCj-NK&mHt8=axSMu6#^<D|2 z-fc@VY?{prE)?`4Lf*1NWH<t;R;R+dfN&%0+w$$3nC9LyJ@}tp-wLsNHDyR07;LMK z`CtC!^H~U`PbGz0=F|vxFTIk_b4{kT+GqkTM&<ZEz!C@CT*uKU&g1ff)|<mw@@}Jj z3^Gy1mDRddXvq~fEpQN0!?G{8R)*BX`)6CaE|vbmB}#Fw^hl#uL-RwfKk)Hc2EXcb z|0WrCIbdz_p2VUeJX!X6x&Om_=M(k}G2^wRp&K$E4^f_L`lSNNG41>Tu>Wf9Y4!>D zM*=ys;&`U=(1o{8xV?PyHG5^Ay|`vy=caN^!An0h^w7ETMOUV*v!kYF<V=Il)qce* zO`Rh5Acl37NmxWfvt5@OeH1`gghhN`%XY~l@E^KT-1L-Z$gqef=~-E>O=};SW33+! zJGOE2@F0__!@dOMDjN?SV_*BYW|xpgjqPaMsN~1>5xGcT{+}5V!l{b}FPMyESL`%K zD_rw}q+ffVdxO%4SG~CIofqzth2Oq?!>DbMG(EwP*;^(GCW*Hc?!r^k1hSPOeSCOX z)AthK%*~Xt&Y_&+`kYX5;5LNXq(EBG%+uta=NCnpOR2KrMmYf|PeSf;tW=6|4j*GD zrBV%Lc5qi-)0neEsyQ4FK~mxWrVTVFJ5jZT{vwt$l|}XC&?%J8F!7EO-D@`c#?>d> zB>GR7u16;%Z3*kG0z8d0>Vcsyv&mHY!}N;@C2aV4z)A}J1NNE?Kr~dZe;iHoZ6NH` z_f|?$Bdg{gy;FwCX~lUQz*Cb8YHIqn8zv6#S8B3e{&PBtx(fMZCn(_#vTmrT!)c_M zZQz4Q3v+xKuC1-38&Ll5AJx+%(y3wNNep|#x<xtH{v1Dk46lwxRlt>?3n@%hzP~<3 zOCN31ubZ3Cv~=`8FKFsl(V2dkBjN~?7eR}{l)UMpY`zC*tT2^~+4<T`TijNbTAuyb zia&>*dpXaemO6_W^BYXd3*8xhyRo^stCNS}5OS{9LavDzH(ZQrek?<4v){v5Pi2U+ zRc*|kiHNQJw*#P|BO>^>GM(mc^Vz)Y!)-3ah@yYMu3wHE<1SxT<Hr7fWW8rtlTot; znuGue(vjXm7my}Jnh<)Cj#Q;7y@Md2K!Q|3=?DT+6b0$MLqcyVy-M%BBR#oK{JwL} zz0dubKY91N_nMhCYi9N<hhCqVnbF17`<uNdE&NJC4dEvBN-t;kTB712Aq5tN2~^vX z!^ubj*D*psSctn1fLLtUU8%;wO#auk!%haAw*A`8AuGUssb<phO=lDZNARYPwA%N) zyn>UkUjQKM`x|OE;N_#^n}q_R-jA_Jp9g~r0IC1oJI?YHfR@o6`?7E+390YB+^MP3 zcF!ZUnS8*mDr1wMOG^dgCU@p=cPJs))6eEMvJtHePN2+`GyMIGjTEE7%8)VRi-=!3 z3t#c9^C{ee@a%pxY%zQ<y~O-HAq3+IByY(3ZjYVH95kPxTmH_t7~9*gOVVMsm2E`f zFeK~tFVi(F)$vVsk8y-70u^z6^2hD}=o*l6iW{iKwHtevH(U<=X^23Q_K&bK;glq5 zio4Y95kw9C(#2(GTL^XI&GO}`yk)hczRVf0R>ip~&goQ{v3BNApj5N=GZ(t-@HgeI zM3qm9`N_?=qg@tC<ogxA4lf^{_xziKmNzT`s|i(=m6hM8Tx&r=vr|tw&n=0{@jI6J z$1MYx>~25822mX`YD%_A86<;Q|CLVFtpSj*jk``mglU;Cl4A5F4m%a|iQ6C0^0-7? zzQPBEq_3~9bKwSlns>@j!A=1I4G|45yC-n2L@Z%Eri4CY8&7#^N$^iB`J$hnT7fT0 zb=t`vwSM7JijoGV<GXL1xmT}><l?D}x*Wrc`{$R0L}ptI~LfN~s`$E{x?Kq)A~ ziPv^)$2W|J@c)n8j8mN1af&l9pn)8mMjC{i_5?E}yX4EkQLt!MCm>F6#s>dSv>JG7 zZf<(@Te2fc4(W_1_T2E*wzAC*50Ihw7ECj5(O~z2F<RjHji@Leaeit>X?3;O&QT9* z_W4iI!A#^U1xw5MkR>C8WlRe)M)q66Elzg+J<jaC!B=*_kW9TP`o`(2Oj!mVmghfA z97suL3R;qiV5CZ@+53EKX`#obciak=22K~yJFYQxLOl4_o2R4vnQ?=JEjqGC%4*{2 zs(3H~<bY%l)sv?KA=-}%^TYk})vf825$+ehdt@c<RF8$~16|WM%4l;R<efvwUpu95 zczhCbGPs)aTX^J_9rRa<B6LA{_0r`OoB;%-Z&*bhVmA1Lj(a|^n2j>s&5pP}VRZd} z<Bv`cl=fCKo<>+=fN$f2XWw)OQ(`3Q2bp!|gHs?w0!{hy$)G#}{|b;T@U&Lz47dr| zWVGr0Yp{Z%&e+B)u!il4z=cN~<>+$9-0Xi;lz|Y9$7SaY%Vdxsv0HX$Gx?s9x_Rj( zPO;eqLc3d{BgxA%pl-G?(yjL-JFYS~PH7Gy!q->59gT=84tcovUtJvMT*~<&VH@o9 z<OG?~KFAn7fkpphlAk#J+0jptHK(z()O~oi;iXmUQ8%N>7guXrql{PP3!MK=<Si~* zEkC)okS~Uh7c{xn{?A<icQOwRAD!G79?>a{U)$5nC=Fa$1YfRo;AS0Pu>JKb7+B-$ zrrMUZ5rv~e+4f@WQL@dyc@Caj=aI7c{XBUH_#crb9spI21N;;iC+vM(*GmyTcLjLk zFx}PlEemrRGPrW&T3A?kwRqISide~wWGN(0CD|Q(!+FwLNVeELVaN*m6ma@_-v@9S z&2wrC#Z2n?`hv^Pv|&#s4$3=72O8HtJ|+Dm>9q{)y=D#dL<l6{)EQR!yfx;}$5X0h z&Gmge)NTsU&Cr`#hMXRY|K>4B@N-3gAvOOgAX>E8+qptXkYOpA!ilC$$&~;K6UZs~ z`t`*eE|A@xl_6SiA8K{6pN9WS=565AkoyOdMTxEs!CY?+Jl8~NGCrP<l2g_0QK8HK zqdo_n&pkX_3?-A}6%~C+*{M@4%l<EsHzo7>Oe?`Lh-fkS_z=HyKo)_w`oBym9_a+J zmRkv9LGMpXTyCl7XIietx5eJA7}^$|RZ+iF;Nj+G@pmbb^>@p5VG&JAN{Z8#OpS_q zg<mv--<LJeq_yFnFgHf9KZP5fW?UpYDN@1zJ*_^O@S}Y`+FvJixX-uHzwGDD&y1=J zzUCOT;^!2$_(E8)H)n)2Jxo21-@pnV-^iDoJg!>5e3`bu@<2}Kzd0$VwLM6>A%yoM zeh|_rK>ZF<4!tx)2!{g%OjmAcPA>y9^d%0HQY~L^rDS-t1_+!2bBI;A3M|PB_a@$c zAVpfjhT%K-q*)^|>L%r%TMj-}5598B!b)vqimq<uXUkn4c96-l#v+4CjEg?1J|Saz z$_j24K1RWzQyIn$YnXAlOQMy=9>!pbxtBphE2IA#QNMGNXLb17l$Lss^<Vpbu59GE z*I^)#xKUnij;zqBvetP7De)niamxSvad>{-vc-9v?;$(5UaQ(I;`Q2=mU#_es#Xcf z-Tew3#%e5=4njka9xsXhS7Iicc@g(W2VRerT)pJyk-!627h7=|UuN^3_h%>Upe#>r zC@{Kp^+5ms&8pO4tq|+z7fKB1dz*Nf_-@D(&CCbH!@&EDj?Ik!6`3EW3I>r}0ayi| z)t84~0Tx#BYZ*BJt&wYg$cBK2ZY&G8F{DTjs$pd5KS|lbZ?2{%L5(HAKu72I-Iy+e z!@aqS$-j_$Xm0-wtNG;=o{0cE-s77&T<No^#pKBAzbO<9NE!7KwA7%(cM9ZIU|nq2 z*OB_x%R7CaajGnKZ+ExY$<_7Q@o$-fpDmcHoz#!1sYP-Chs3$NTL58C@nPVQ45u`p z@iL5nIt(^l*07$Qu<_Y%9vU7VPRKThg6O`OvKLiEf3PmWDaY!cbZMSkf79Q&5kU?> zr1zEn2RiZhz`{jil_ApwRQ`~D0!#Dl_)tO_@HEi18w$=L(=)TMxE+2u_~@L0W?iDX zx>}DlN9N;43P8{^wK2dZbG$Sl(E<;ayn*PZcUZ+Pks%~m_8dY9$>adrm;mdJo&571 zp3`D7RZM@aPJ?fXT5w%If6NZvNNy2kX7laNIvT6-ue_;_1Sf{V{r6WC-mUx#Gj4hl zO-;5>(y505ywBHWdwYFzt^m`fnT%Dq$wVoaiTi{jc+L~07CYMBL4cOm1;C*m>drFL z17xypr8B@W3uQNwr?GWD|K=e0%|T1u$FmHiCw6x};b<CyOTI&Lv994JS$`H<N zL<i;n-&By3oXE0HiPd@+R+Jf98L~m_r^z+~E+DhMS%#a#sh9x&u0S9gZp^;_w6>V} z3eZRAP>6%cRlUz9V3S$zfiysI38SK-^82Yri!ZzJjRV^t!lU?t49I6G)M6!s%YGQ& zmal&;UU+eDrw-DO+57*?bCl}bpd~2-X<}@Px10BtV=7ZzWeEKk;pU*xQ201jV2IFE z7J<15z}<TgU0BFxL8AMe{vI=cpp-7c^PE&e=u4g^5N;-aJ#J!Uans8Yml?bmLYNgg z^rfY}2qT7hgECeebT-HGd<br^31{p^sToUvJM-zyG~>V|<g5P|!Zg%ivTDbK$`Wh> z*1&aLD|YWnKnf_LzW6<X@GFHp>)%<Qva;m7mpk7j=}QRrZ23$GS~k}|%A~R0wOD>5 z)RLG68d75&0S?K)TA~u$faH8Tk>i+5hpd40G(#P!wf5%b=FkL?Uew8k_{g<5<!c%z z*UH+jhWi#92~Safd-H36PNPN$H?f;0sYAs7+0W(&xc~1wbB!YNTrxe@WM{2PRX8gw z<_ge~uydJ7ozNs@W@fg6YX<5YA}nX8%z1r#b!M4I#QEABzzld)7PdE=?^MYwycC(D z%kBaw2zL%i6+YW<I>?Gvcur${bB;V0uJgMeD501`1>QO8IGxnYzM%-f@as<uJ`O=a zSa2m~<rw(X!c=|-1<HBhc8RP-?D%Rv_F?6q-$G8^<e?O9wNv__C6S(Y)kx?)Mt=+> zKT~R!Ep!P|?#c8(i&_GK#|OTDyZJS4ovq(*cze8P&fn{cH0ZQHhXBrMLWq)U!84G1 zw+R?x6USA-k9MrEuYYdkX9pW7D7003X33k}yg_j*4)UR2h5fj#n&62mJ@0q$4R#87 z>t<kQM!(pJi>m}kK=3<7`H6c8DU=cmhOcj4tL<-xO@&a*hRD3$sWk13ovhEvqn_@G zMv0_;%qlZc`z~|w%WK=>AybBVTj#<!FU!4j0#7UK{zw~{K;USQ{Bc^V{%S)n>1)Qz z!=b91IGhb%X~1M-i8ZwooC01o*d`kWrya!mFh-^Z#}gOI!L_x2Ip79!X8*W1xe4rF zA6_XlemkR$Bt^;z5@YV4ld4~GrsLtrL%#g&))0SL^KrrQ@^VK4s~BiwYnK^6`vdvm zbIKdLmvEMU(s7VM=nz&=5>K-41NpK5G#+UKx=0yjO}|UGm&>|(xFA8d9cuk!V@jW9 zfGsiRdfK1-TP0VI4K%!+^sP;Hh#R?b<pceP{M6@e_ewvcMi}>0Cx2|+sB3QY2fVc3 z&B6LUoVuVK<F&5evXJF;9xM`tdz>8rUb%+8$iXKKp?M!5P`?meLV<Xw=-NnOq{DFN zC+f~f0Uh5Y(UcL>JFS@+3&=Sr@t|uYxy>glPXPR@2hfQc2qUTU%vK9>NgIf%@wgqP zJEvdBiXIB~wZ=@Y93`7PdD481#v^M!+pQXOSMY(e|9XDr5J!rXEA<ZVtPKM7^XM}H za%HhwqxocSClAnbehWdys;b?RVb>0>*wafbT~OMjCfD&*_RMAqD&>vci>G>^`#Y0V z6bDHFsA~)$SmU&Z({?rTV23CO7*-Ntt>Qw*U8Th4W3<`1kk&`@EqZmy*yK>3{xSI; zgZXfs&9vpgj(w<aSwu6#W%>2jnKAdt2l?A#L%jg``)_WWWS+yA1jsQ>B(Wh3vK92C zA-@i@jGJUcVqa-evwtt7cr}FV3AG_p=vB!14Q!SeJC*3)puyPA#{-~gp8(wij08Ot z^u|(OJK5y<UulYT>oYS>zo*#T-ge&G+%&DS?MpNvC%GAJ55I#GQi58KboAr0ai|IP zKUkI1@yO3MmOI)94Dlv^%ggHwz?B4jr)(lWgZ1Mdk?&`tMtu@jN$$eJZr8Y;7z9uj zVIDK$Ef32gg5ECVa5fP6r*m4rM@CGj5eJF?erY{LtJLiLq!B;ENK;sY`P29AR_#O2 zdrS-A%)a;o@9qIwx<Cj;@tT8ism1Ufc%+Wd`#^1}AxA!6@+Zr`Rh11&A`NSZN#ANS zTNn%zuo=B?lKvSyC=##d<NtsY4w6xZ$r8R~lXi|{%6Nu!L>fkCCVq%205dB3LE?sK z*#vTG8yW((2w4M#X|DiQ$*C{Gi)1|cEgkA#&-wsPy?~uA8-Kmb@%~mHzcV3(J31<7 zp>7*@N*M#zKRIOSnVL$@EqM}mNCok;`=A}U78z{>`B*2e*A$XZuM4DMzf2oOJk1y| z(5Y!zF3L?Z;EgnFh9&p!T<*1#X{->vZBm8sVGl`Vzkjh-O8d}Ymw`MBQTRsww!r%! zT8I1v_7bJS*c$gRiuxs{O}H@M4bWf(+RvAa_w>W&n7F^SMT{ybxQlQD_!+dI*ekCN z3xHbJ7QOJIA(+6s<MyCwj4P6~HYT>tH3A9_lC!e&^*w9f$VOnqA)y|Qj*iGX5`w9X zn*iaVJs-d+DX%3n4(Lg`ash`V4`&ZM^uMYymjqyVd3hoC?L-yf9M>k*1gj#Dn_p!_ zz4rGozT5^8$rO;;NU*v!e@GVpHJ_|ex>M3S;Zwh!+CQ+EyZJNVzo@(pbmSiEgA4J% zY_|;vdV|l+lejvP8ShsVohe>E`gkIz*pakfa}2sL#&TCyD<AzkcfCjh)(W+rw{N49 zy^DA1rBWNOx2XJnlqvFqAO8qw*0RixqaVLD+-C{VdUHH*=3XZ=Z;$c;&~19_=)R7; z>p=?mbyBDGSz3JMx6Fa8b$>E1&zIr_FdfFMC7V0@1No5bgmY(soXJv(gY`{W2j}RZ zEEX4G;3MREp$niFmPRKr1|<)88J~VM`unrGpH7P}SBC48daKFNBa7RO=Z2?(B;zl( z(AFQ8q*j><l!DtP3us%byM(MH@Yh@<@fmU_LD@j|+SiUm$_M0^8k}%Y1v~Pfh1nRv z+r6Eg<GR?urIYvU2i&=s^d3fzHWq0Q!7F_dgv4HEV=o84sKm_VkO3aLJnKX`>x$y% z#0|t+Ma~0xv;Eb9Xipwq9NEErl(%jrR%U;7cX#(k?}^Y*&l`Caxgzjg7|o5{JWZLb z<$8(`BWUEeEW(nBGhPhLPJk*ri0duyOTHhoo8pqxVtq;$X=+6?_Dwijd74*;^OwJV zK{uQ~6C^N1@2I-CEv@V(pc;mz9db3BAwFu0wN`hHCk2ZBWr=$SCP;%j8oxhch``#u zU!hHrUh8E0t(Q#0(-mRnr@)%?{l^cdBixM{luSS?6C(xUfg2~_OqUPfbokc|%PFb) zW!gLtX%zg2+T@vjU>iOyQ=BYTiF{w4sfUFAt^@~Itn<{c;N~{?v&nqX*<-x+$DcMl z!kEt4LN2(-p<9#G7#qEnKm0v>*Ce%lVzZ>-45*J&JAzfTsExFrYNd~j%)jU{gS0&% z$!yw-qLO%WMUhH?bkG?C8}hTXk`1U&D|$l*1l0n>0>%k@!y!9l$9oUnR2%*ss4$HD zhOpRIGl%1!0%>r9a+&<;kkZ;xWytND)XhC@LL_hkXD@xHq=4eT8@O+KN5(Qf+`p)< zt~Lm}&OZy*43xlG%cPR&wtn#i>e*HjpB8y2!_$5b6)=T|1}qn%Y<yWo&LWLpIDFl) zxWHQXO>bkcn+QSkKKMSSiVFs`Aa`xMm=C)LEZMH4WV2#bSUg)H*o24?cE&);btLc9 zeuQbk31qn_)y+Y4fMU9p7~zR**`I8*9PBxFw~NOJg@aXK0y$qxN=jV!W@=9KB@RO; ztq?80FN(f4@-PDkJV(d2m=ixS1K4s=Mn%TI=p|gIh-11E=dOPoPD6kehd)Bju#-gD zvMs}m={J{Rv)Ky~5cc^*_;Yf!-^|;Q*Ny#UXJ5_-s`}dWBIjlPa9@%pZ;l!TYY|<J z>%QOLA2chNe_SOEE_b3={6K1I${0Vm#9W|C-wyi>ylv|X(tyc97T+Ae&C%ef`b@$g zBrBPpI<OgV@yS|LJ*TRw>PKbe@dEDC^K*HikeLiE;O1BPhKXT9Sd#qb#802361!0q zmhJUI>UUBQ6IZJ?Vb_S*@oeL;kZ!vKsu%e`Thw7&5M{+{{UBZL=e`I6VhsJ|y+J}k zxZwL+CRZIv@Kj<3AW;4R9Tj3ul|$B_PgC;7-!yfsP3nf49W-BbGN9%Oadq68ARXES zNKnE;BzcerErJ(;;XZ>4>_nU6zvLR2oPhFSYNka^Lu5mK*ur1AwS<2;OIy7@y&{ta zX#ElICM9N*%1ohye|yy$t?=l*C)TeB&mg9d+rpC|EJBFXh5+JCODQY@42<;sCQseZ z^Tyg2OBgPE#dagcu$0vxd^onbF*)0L>+n`-v=2ojOZxI#ulpxbDWb`EX*}Z^{MAqf zRI?RpvXM3r3Jc0fl5gVP6k!2DcVQuiaSBCEk1;J>k=|cEdn@Pa+H(k43yl*l#;Igm zJH0u5*Lx~61hl>qTn6qF1C{;yxmPc-6|?*Z{&U~5_03Re^vn1K`szRdXlEw!<JQY1 z6IV*(tGN3<y-ScI){ybpHsRGLHQ67)ufhO<s=4LXBqUk!OYutND&D-tBqr_jhk}_v zT=$#!7w{(W6h&ho2{bJX(7Iu9kIOt%9f^AL_Lx=j^7nnOUR`~Oa=I(P4OB!!{z&*0 z6etaN1vPGUDuy~{$<y4db!nE#R<!Z+mwT@a%Oc#W?=<2vlPDz+P3Og*@(~oH@fDd+ z`9K0b<RCH{A@^SV*M<W}NC;=nG<&F*#g+u=Z{$|Ps~;-1=t)n4X0yH2^IEX&SE63U zC&&;Wo<`Pz3P_(FnN32Cw2TW_ZrRUiZs-z{XIx7bjn0f>QSzZj7=Ia~xJh%Q%)x`D zS6`axvn{GR@%&l{%=^i~`l9B$#tOEE`!3;8!Qn<^JQ_|l)Evxjd>s?tgRsrjj%9tG zItQD~CKKWLwd24M;z&NkFYtwt+>2l=`Bk4of#^lIJ?e%LB|`$?w-*m_JSC711rx-> zFC02UFPEQZTlJGuAHJ^96=YsY>^R;{)O2wI*qoI7gd<a{>0gKR2*beT_c-{49p&H3 zVlRz=_oN8(k^(Sz?H@f9K^3qZHcV(a=q14T%7N6k7ibzJp!oJXgU#4cj7r?0C<plT zYP5iAuG?O6Z4(sv1nqy}_gU9c!ECyVBue^3UkKJ7Q^!e83m&6DHrP_}g*4an@mP)d z^;f9W#>=5QwHOBox>b0NVIRnI@X!#h{TI$4^WRRQ+?Ki=gV@2Te)CXDJr5-5s!dtx z4_zdo8m_d0EdBc@zC)gc4bwwAy+#*y5l0k$@w8K=2*J-YFG2>q0NCF9qVJQDwx5_3 zDQQbR0$Mk^Ty=~3ZS2ei{75aP8+oLzo+AXh(D74bwSM^+o)sd8jx2z9(^Lb0cYRmP zHCGAy0ABtCU<Mq`zR?KY6+Xg$QPo`8#UE!gj(uEQ@8g(-l51;|>MJA73T~zt8V`;t z8z3&u%X%;?cy0fphLwQ2>t?xxC+XV1CLR9c7yCEzud}o|#gEne`XbNdK0RGZ)lFa@ z0&a-afD*46mZp0sfIqo>6`aJ^Q~lb0oO2fvJbPOi!b9ps#24vZNUvtmr*ta;lm@i^ z3Pp55fxk|$d2K?tj(E`O<-_HWQuQqP4_L`96&CwSs;Je!af<F(Xcwsz@bdPBje?Uq zs<f~&0WM3`+o4kYM^YJ|DUOf&F~w&I+AW|*TU3G5L1IqfcwtBS2e3N28QhLiVU7~J zz1yB$^z`tN;NgIsCzvU$y84Og_fK^P{<eR(;DqQ`!-r5&%AsD2xSmz;^H3|xZe{1H zLZPbSZ2G3?9%axUuAB%I^K#IejhR&+I!xq-l&wD>{%!4@_qv_pKyh-_WfaBKU!^B# zu5Uj)LH=uNe5m_s4e0=WNT)CMcrhsq5L_qrIzP9?(6Z>TZ{vf4R6v@NAd^!hDdY^8 zxXP!VHkyYAvuS)#p{smyvtxZLAE$60xAUlyfS*^6<lJP?bxI~<3he)ilN<{+C}!Uh zz9H*!-i))paEbB}dCx8$Kcx;EhHmN_0og%58OQ>pVWiaB*Vm{U>gO-83a^ooTfle0 z(8C+b5I}3M`QIv#9UiOFG#Zg>j=sFd=s)4<aBn&C3h-{I?;V2F2f!K3+H*$V-bs7^ zBC@~2F$>Ecc3a0r920=?nk$jL;N-~Rx*^E_)+?fSjHNKv;${n|B)7p7FQ(ekf^_}( zL$pkxO?G*3el)LIPJb8eFQ6po=J>aLb~TzJ=Nouh9SPRLaSe+o^Zh%$9uyz07}#G6 z^7%%L1d)@YYj~;rn8`?<4}`%%_FRh!I@sr9CYVRWSiizhgGm<aER>l{Opgla4=g7F z;q~1}r^^|up|tmadyauGqdVub8+utuLjw?8uJ;=LZh-B2V`|N%m=jae&R@pfRq|U~ z4Q^n0S9a@yjT|H5(&Og~%=F{W(YiIy6?!7!=>eIp^wz%dv8!a}Wd`(3tay30rjJ<7 z5A()(oc7(hw`0;Ki<R6IXJLm1D#1yxlyn$*KCiI$Of@!?eB{9G0$}+O<pnA54)MEv zgSQgXFXD}Y-+I5m7Mv=H4RK`rfzkCwArHt`vN^5UK^K@pIk=lke)Hl{UyrYX6v@KU z9aTxa?umBChg81QWZyCX%z$P}EhRX90;BaUmboSgTR+b~kYKeoE{kxp5pp?a#kE<Z z--C-GE`s4p*cV!_?MZw!d5IApj~MH-Muzq3qWl9lJ#OmGyp*+7_IL8#TjD<bpwWOX z$`8JB9{PdkhVqNC_r!nE{NQ+nu)WZ3OS%eN6`4~xP?}L-Kle&?<AJU!allwXpPE*h zd?YlVx7JS!3Bh@CKr;`0z`LB!S~J0~xPZh_d|E9OCzFxwR{(j&tz^;otB)}X#>_#k zoYn*&A3$0zZQ>1`PhvDa;u5fS!*c(mm!~G!Nx#F&p_u7@(#`hbRu3Lf{HDix{J6*T z$fU!{<c83z3$<X8|2$usr7)zd!-^am?ru~4kWHw0ev-E)?b*c6`rchzb&WfgW1xXn zlDHat74wR0GLIak0>-$lH_p;2t!0?}gSwLMN^Vo@WNQS{HskqUtZEnyDTZ^;^-J_0 z9KpG_XUW<ZLYdeb>c<WILYZlJJ(oQqeTz60m<hI-hBV5gNe?BMM(XepGI2lJgavxI zSAZBX2mz*L<c=Crt<apFqMX?_Fb(`%7fxs>W`Vu}olHxW00Z#1fT^jCtHPT>Fc@;h z`XM`pRSDz+=p>huXTamM|7vC98F-f;<MDhA#gK&*jKYMg_8h`AbvWUmbxv}#BY9eW zCQ-J-hm;Yh=!^=tY<Qgl*$PXy<nCE~!a*A=bykim`od&uKbfzrm*&PI6zF|NS(i~H z;R%P_&@}ywl~qwhke<n3ucDZ%gg=6_ZP_+4sGbtJiR_85j7mk<<;xsJH*BFSgHI2U z3}?n#j(g6#E3I?SDen5k%W|R$hgQf_jflJ~h&vX{3Ch4#3rxGkvB03uttOjt?niNM zj9{^7`-S_G(<9HkuY{YLkz+{O{znGy#sJay?s#;p>_AcSAs|Vp*JHKR=9tSp17&<B z!`1l5IVTkk-$`N(M433_*vz0q!1&@vtScwo?a5DUo?jDt-(cUnJyK-EGi~^?#JUo@ z)RTk+f+)ODRprZN{7GMJ#(r#z{CNl-gB(bVG$|e2ra_H4IDMEqzf4s7YSKGvr22vL zK#0l0khryAR#{Lm-IW5}5kqO2YEUnF^x;mC+u-Z@`IVp+tGJEvwxMxR!l0ca*Ot*2 z2RhSXgHIen@L7Q3$8Hx&%-~n1S30us;V$1GlUgFR6i&wU8SV)c_41VL34;D$a%*yL z?gF8AFIPQ=3S+y)(2RHN^A(<)2xT-M`{fagwK<LbnCFzBgaJ<|(2^732OA$h>ID2= zNeQn3N-<smHlFi)S1`n0O5c}?jWVoV-E<hu{HEiWAwvFpZa1YTcOO+P0(1XhG#<c7 zpz-f-D9h2vfymrf_7!)QFgo;cBf-RH2P~~)Q)F(!vrldAm#N5Nh+M5+jMNd-Xgx%4 zdb~9{PzW>Z9f~w!?lh(A-<mi&Xe!z8pE|+#oyT-75X7o|CNSrJdP~r{pB8qQz}^om z!!~Mg02)68jkCbl0h#JF^btEnVvkg~bDpg3LxLu?ze2}&b4Y<xXpMurdTQukb&{b% z2A&S!dCv#S0Fo5E^ra^z`>vdD5H}~X;xTRGgcx{LC+g|o!gA6bibsA#tsQ1`SYhJI z1o#+a2uLnIb_2U_&>MLc8~_f$+$qEx2}_$0l<hXcwMSaJgBsIiApF!kq<+yv4BBrc zKdtldxQyC7Hre()K^HYJL||wST?JL7NBiw9rVo-QqAJRYE`?9)8WLF*=o++@bN)y@ zw4k_yR>+~Z$|?`dp&`O&OjnUpSVeYht5qYn$xUq`1`sh#Ys&ZYeM9L}qCU3@W-?5? z@x`gj){a6<(o@`2i=3AfiZR(?9E)zN3~#J$hbZEsthlobXQ?1@k?xW^a%F!9%x~Na zI2H{y@t9<%1bY*obA%M&`m6ZTlCG7+Dy>Y=!B*?3CJBT!Dg#$r2A@d7{(NHMekhXl z=wAwuEof?@218*%bQnH$3FSMfJZ5)Fc3<=wgrb1h9~IaIZn~Ra!Divq7}cng2AjUu z6|*I(ZoL)LN%~;3)!L1heSru@*)dNNDS~*O382IWPogI^QGxH)uqOOL%Wq%8@ZN@U zQ1A*n#jE^{FvmQ(pPll3Mo}M}a4*ERy>OxLMZ}byZj{h{y8U>yiGZ~#Y1D=IWGs$6 z1%ieDZkbL(9FA_ZgD*Xl@_&X=dA#~z(aoMs+WJU>a_Sp+6EOA7|8hNj1IwgHl|8+f zQuD8*l}(Ee?ZgK%-v7~OYSC<4Z5Z48QeDK@Cdtn0%LWmGnHV#eP<TpDj1ht@S2Or# zJyjx*AN%WTXVrrDC_`sfGGIr;wr3v^nJfKauHf~eYBikWl!{NxAV)&w8Dmgl>?bXX z<K=wYr*?er7jIt{7qqx3oxR<!2Ko|lz8*DXioN%F)LMBL?=y1JIq(?F1l&1nV)U-( zkp^V3LOVHtfnMSy#f4HZ1XA@U$|dN_m&Og)jLsQwO5NIoA_vdfBw_73dgjXHzFX?U z3g^)_S%f78j`oWUBK*Ir1WUJ%3mm4}B-omsPIehES4mqt22WGQ$1%P=)(Ev~RaHlf z8i%qLT{Bd%I7!Q|FbOEWm|Xa4T~g$*tv69Zo!yKd`>AXj@AxeVDX=ML25I!Sucp7P z;jdn6pd4qNkptXh;&t<{Qu+0Jh_~OB-go%@eg1@4k~p?$BcA5a;R$g;=xCS|P=B8| zm<dY9g*+&UwX=Fb+(gf7m#xUN=y7c?Oo_fHzdz{#@&TMO(py<4BZ)8qF5AhZ$#Cd+ zfaa=Ms{Xy%IIxx`{N!fTW-FW63l*a(X-Bqd=JM-Y*?l{8%;@IV5Qo{+W-6IpRe*kw zUg43SjImvy@LyC-dzmC9qeh_bx!)B#Ku9OU-95oMN>H$k^D00RTp9nM{OL!P?;C&C zg!71ZBPgG}V_^pLfv4~AQgW?WsFRhm;R_X$<<LH2gvKK;Az?jLq)#HufIU^eb1&b# zXm!_2=J<jK(|<jZw?V-$*ea?ax|Mret`2j8I@V)@g=6jGy!weD6eQY1T!_!QHX^KC z=gP*p-~|*+^@`2-a$J9UbzBy+&x9%Yawh%C>n1w;KxMF1(P1aryvn_|s>G2hYVc}} zEevp%LwXVZY$I~b%uZezV%stNt+iBHi&`%i&2cox64|_5cW3Wdm<h-qKhj=}yl5y6 z$m>(f+0gqK=rAZ6O8}Gxd{Ow6t$?d$b93g{MMjrv`VSX)*2{k+q51`hrn_YpzDia4 zhP4>8#+ZDtnph0J^Ipkg&<N98%<t{eF1NyV77C9G-c`mHg{qC$xsWsGa5-lGiGM5m zG=?eOBZ-w}Y7HidU)`v}E{&%O?@-!_Js^whsiJldc-2Dd1T3Z*iYt28gqt*lx8vN6 zO=BX@zgYnSC|cOt#_ll8hO~irE%I+f^lSUKW|;E5F1(dse7^YRkQ9s`TXZc=LrRJB z>5D&wV`Zw($&`j+3i~v1VD{VhE*+72{&VT%%;k;Z_k>ce^8n)Yq+z0qbdq@0oF=5Q zz(V@?duI)7p|CgYOAj4f)0s$vkc1Nft1Z8ZX~^SJAH;paRpeep0GI(XN^xblX|WJV z4r>+q8mOKo>UptYtbk8ga>vT<-P$+xri;`N-htO+t8b`Ov45W4RD#|HGZ5%}MKnz% zp1g|^1vs#x&xZ3dnhg7M(&fp1BcCVJXX;xgtwc!LE-*FO79e57n=C>xPu&^TJjF7Z zR`lhTx&npz2^#IFl<$gbzWsn(j5_QHM>Z~keu{G9mJ`307&41tRa!h)*4LS4R&;D+ zr#sLNPqc2*V8*<m<w~~vas1WQN^hHObwi<D-sEbfCGxB1&7<NgK(o3wIpq@vw5B8; zrm>IbTRCRjOroln`-Q&c5WWNQJGArVXorxtZo*@=##K0kqfmWOHhK3<k5f3SDW&IM z>r4b>2xtwV@?*y><$}vv#UGoMwu<%6ypxN1MV|;@N0`@=Ne5RJObfky$Wexf(dDzL zuIZpCH(Jyx$&`FJwtQX~v%*1UCCbNcTE?ikDWIYfl0V^>N|R}38(E&EbezDNqf_nQ z+L=RgZ&XC$eVFj_d)bVe1%|j{C2en2yw0Pu0VQ0UU5FfH2slItlhei_+3PXjV;{^U zI+NP+Z1ULQsM#BuVFjBIdV099BYd&Jj=1EHY7n;>A1Px2&MA~s_}BI>|9$=#jTiS! zt-jR9u9-4A;pt51v7Eu<h;MIJr*cW9><UPR#a<~`!=K%8B<+#(l2Zod!^u|JAmHBu z=g}F%0I0wINiyz)04S5Nf0Hhp@&4dqh+!7E>%c{i@Fwyeo^g(|z1NIbot4Qo%Jpa< z#t3-H^B${B?y+;o(a9PY$v}dY+?$h>+C7})q1#QQc@{6=saO)~zi8E8lbmCu!(y+- z1&myU&2U>9x}4UZ4_5RYJ}F{)Ux36u{on|2bQETQ>6GfTaR0j*fD=xLRM4CKhnwZM z0OAxMx@&oct*~~4Un!z_1{2jvGj($;wE7oYGQyKR#!<)0hj_LZ7sD^&MP~3BST9i% zjiyn?|Ecx_O*kG*|9LCLtf1ISnjKG5&wz@WVC4bbHwQ6vi_4>9^Kc=~FQ4j}`$ai$ zXR*o-Cxm;SJskW9R)>W^9UCf#^)65h4H!|Iu)AGOrKpHYleYTwx@mqaatSN0d|MsJ z`tq9UV);Xl;SL4$(Cjc*44Z5N=<;OH{jguZfaUP((yLFhz1&+--S6rQ-X=IAu^Gv+ z5W)=E@)?1Yg1bZbJ%o(^8uH<RR5^IC*6TPmT^tbDK(9E@S!2d~T)G==StWr!XChhY zGt}kTwn1;;S!Jh639~$mGvw>6`o|_O_+34_Mgxvalfsae8TC<*vINay3XmV%6as#X za1bi_oG>|hGQBl;ThK`BCk^cS!RvhlN!=Cc<?~a5c>;YNRvUo+yNDZ{rWkx3tM<=I z*uF}#E_J8IdG$?qSUe#5*0TKL2QM(gs<j(2m~y>#_Dk-EqI!+m3ieEc0dq9=S$5)Z zQkNg%+V<BwQg^=WXrMLJ&0D9!Fg8pFaP!h@4Kkz&EaZ4VIRilad^JGj(lP>8Q`@}m zWBE_NX_O2uKeI?ZLgE^Oax#$A92d!LuRevwV>yU+A3#91M<eVJ*h*uRY>f!aLusn4 zG4%5GXaphqTMiP2icYUJn4IDAXbL*co<VB;J_=(8+0#hlD*(M#AVZ_{*)|C~-Fba^ z_nT&0+Xafu1k2-Mkh)2@%DfbG2x$E~cu5~ur-zq;Gxh$;1cfP;cK2gBlh0#l|HwbT z5DIBr7+sr-z|zoRfEGuS-#@C}T!<(}{=};1n1JfDj5JU`S`2CGW$ZMR^s;^*^#|N* zdib)yuyP3!m3o{RDzcxczZx&%MALA`2sDpWRZ~x{G64i8{&S9KE$}8l*wEw96laJz zLLgyoq6$jC@rx%?E@_5ODr77fc3CeAr-kA?4*O)Df(*V!piq%ZtU^5PE1V(BY{;_0 z=uPpjVQXsS&89?N1Nj3eFL38$Wu!5+6krW>5DH&Rb}f<xtHJS@7`32N2{CWWaN~9% zn>f^6{k(kluU%CMT&zcxO{`zR*z+wy5mRx<N~`S_n&Jiw@D8=IEIRI^S-luNjEgB< zQP?K}{qY3LqWXB`S=W-k=2FCmANa~XA<=6|DAKfeAlSiI$IfNVWdLd<-$JY6AdO2X zydDIJJyd34#zB798B};IUo^!w$+mzX(v0a+>P3A#c{(}Ig_v1QN#$!c0NS0FEVUm| z)t47FeLTo62EUdB&7WT;Fp$UN-D&o2Q%_|gQp=XU_=yqkYp?g=GXO;!3V2`h)ipou z;sf@*mO5$HK!TSeamwqciL3!7EX0-*a0hlr{8msUKwg|!HTQn%bcX7gi4xb%v}T!X zq$jp=0(tSe@G9dL>>tQUt_|9TKwfDmsiijSFQw}4;CcJ!S_rBrqvd+<Al=-yzw-hK zH)d8bk4Dyped=Uu=K1%`xsd+}c<5x@ncCGI=KOQ6MTj)hIAz(xOsJrgQ-RVG<iO7o zs+Sm5RB!Vy%K#=-^znD3Pr*{0Iw1P`Q^SV8>vtHk%#Vi&SX01oNEW9{Gl9Q$SNZmt z>2l&Qq|PsWmLkUpw63L|BvQcWKUqln!||ISlDCwf1&rI=K-^0&0Ndqpri3O2i!C6s z10!d}hPg!bw#gI#-`&-ZQt?TG0~|lA$tg5caYtniA3pR=JzD&!35W#<u$qQsUa7Gq zU;ed6Wy*}O;rifmMZ3nf<ncWXvgAj2JIHH2M>Xs2mz+oP!P2P3<6>|?PD}tW1Nx?R zWF07BKtrl>wz9vSOQfGf<+T6ySEfmmnV#I3D9mFM9+dqoI#m~FPm{4}_Uu|1OQj<d z)PXo||J0-#uB#<n^_2wKr%JEULGVcxx8PN^K9c;pbk3=41$y39+n^@~wCLiXt`&A5 zrMeEt2f*ooIw{sbg0(bZ%>040AAI}mI1Il%aTwutW7xMMSy`2W+}wJFn)I8)4)d2V z>EEpPweXWD*K88d5|A*|<Gp>sOUEi*WA>8uNTplvF2{T=)z|T69HBnm^t{ymh{C5? zA)!NGSMdJpC4WMPfaE8Fi@<*qUJ&aq*<_*EE9eiLuM<n2DAw+{T_`&lxOJH$zkf&Z zkUw+BWnM{wUz3FvO2>gbFs9wzkXHV46ZF+YE<|s!fg|%+H0%#q_~=lv9Uc#yc5yPw zmQSaq|4|fy<2Kr~?LXE-Ziw@acje_XaT{%Y{lZ(G?+^FGgDgJLJIuMqR`#o3wlU@t z2j_Mymulf^&NI^A9&emDUyNQne35#TM)?8I>QG3g7om=9npFrW`^{tWK_jK3-45@U ze`7~Hk?@;j{yZzs(MfVbSEvl}FaL5`Zd?PKItaJH3OpxwHIU$+kI|qC6fgN@lP@Lr zQN8%rkvf8X357Xq7oSJ(h1GDBC*q92@$1sUuMlh!JQ?bfGdBO04;47al$;b}aU3(U z?+lD57qJ+4Yu`2<<;w6LxZiEZd@RmHXQ434%uN>c4?}MO%m9tyU$PpMFrX-9`Ezhq z$Z>Gp?nl1sjj7J}^jOQO%K`o0J1og(uc_E=wcR7GGmgxcMY!02bXVy#dZ7m!tnslY z8ZEk|bUTSjcRqh1sGCmTrq0xJOl5kSK3fkOS9A`f%%eiP&ULP^{d-0GOb>40t1NbC zJiL-h?;AGhai;e|o{!W}SU0Nl;NgXG*6d<Jm7H4&ZGX_h>Os0^xX5%FPZolb3Vp7R zFPS<9UQHL0UOoP{cTC;B`>UYAp`+qAys<qrX>?68S-jedp6{K|vn*+7JiHj<x%q)Q zAXpF@4<DiQR9rleO+INPXlQz&Rd8BXgt3zF?VodzUY!#NcAEIV&PQR!kVC&JAbSWx z#VA&Y0hH^A9F6%&OOg}W_^>}?UW!+{l8GJhXYrc*Td(W009l;FjYonv0qSU-HQodO zG%XdLPW1ePw#p-q)VnLK)8-uBw^;M76v9b=TLH~$eDTSJz(^+vS6LQHVM1V_37+Yd zRRkY!vPs64&Ap5<iF@UNVW;a1pea`ot=;rZLy&a$sOCPEW9*$MH3bl7JTdNB5ti#x zi2!KYTexwdN~zK(RQA_E6QHKwryoB)qZk@G{n%6egYnyM8@4^Z?=MxvBfUUNx!)*; z0fQV2)@Gsxc-`OnkGPA4A87V;dO0P!)%CXAqnaYHQNk&3l&}zs$4FA7#X#!8fA|UL z(sVCfR75-YZS&-_B&bgffwE=M-@XImCOi7O7+?H^B22TV2JAO9>?@FFl3<mVdG9zo zG3VKb-mi(LcMYMjG;Q>S6#74+!1XU1t{FF8WUg#1{bK|;Wz>2iYso7C0OceO0nuR} z9%OOLv#cj8a6iEKmXr|jyJPEqa||l%meKG>eA&XR6X~d@?I3v+LHay73wD9SE`Oxg zpvvcg;jgnE=4|)29V!;`q0G!#eDnqHc`c<GtkzO9=dOqkR2)hE%a4X3L%?{)NBt*k zKuTfikS|&>v$YP5nG&6BTigs@Mw<tQknp*P@;~_F!AF~T&i98d9*&=NgtCQ%urI3E z#syCf$TY52is(qO8mWt6=kIHCeEqE!maO^p#y%i&4DIw^KO%ex))Hf8zDQb;`Io!i zhbG%TT`heyVn_2HAzD%^uC#g3Koloi-py}Eezij!@d0bvzU+_$fbM#OEEE#Xw1Eu) z0r`PIHzZ^C_dZkQdrkpzqGBK7r5SYqJfx1lP4+738#!?zByMOPcVHoFeSZJ=H91fm zb3n?7)kzAQY5$q(9d@%&(a#~2{3fp=G|9!Xlr#Q4*c^6z>6g6l^bX$jLv`o{@Z*A^ z_5+SF^&g^(V&kqqqy}cbHRG=&lUn}I6BN;$qa#2m+Eyqo@O5SZj7L<{hAvDjP;unP z*s3nK<9uIt25be&z#okBqQGR#1u-u$_5OamnnXKWR4=Sb%vUwjU^TueLCz?#>qnv4 zRd^2$(sW?0<pXWvG}${i^wFi*CB6BprPL?TB&qel!zcwy`|!<LX$o#CiS*LJ1c#JI zA%c<w0|`W)cML$r)dY5=1|Zc>d78-Y+D=!=wL2f#DRbUYJk~(8Q39axXe4<Ko;6(f zSQ~f#aODon!7SccZ6x~Qp@xnd$w$n=(~T7QV!y`%Cr$yM5&=-xP`Ic82=i<`g~Uyv z0e?;N{8z<0`ct5IP_z!x%?Bs?Q^G<%!>kj}etee1YfZ+vQ!O|w@dUwcT>R7eX2*QG zuvV~vNzt6FMA1xu0n1&l=?~$wwgk!Lfdk9CglO-(r_vS$j>Pt|iB?BZEyikWeK9hc z!mSSpeiaK)8~MD_WAe{Jh#5~m%%JGOSg{3!!sqqty8Z!1k%UP~#J_VHA`H=a0yWiV zjkgNk`gq+hJF>X5g0KJDyk|TqQd*JA=#GBPe|eI157hJSoY$*BF5LO41G&G}WvK62 zne6$T?Jo;SudXnlz#uWqza2P@L)$|lZ}wg4o;5XFNPO{*qEB}QWky4aGW>Lt0;PdJ zhqz=3aB9bYFQy>N0IS3Pf(i1?R%x_Ub-VMP@Z?vx7cSqvDG0EN8E-PuyO~U1__yS8 z4zRiG5dPF+%D~6!K9hT04g}Cv;(I2yj`fDYEl<-|^U|${<|xVoN&ew14WI&eF$=u$ z$0-P$@!@?NWi~fEwoiDzRk&wRtRs5(;$#U4;f9g)-?uBc+Xs1olv8FPxmBtbqpehF zkBnInUTxC;nyzOnw&dM^svc)9D?vlC7V~Uw?k|<^?cR53{Wrw;MFqJ(>X@*;5&zE- zi8(|+lVLOZ9dcBbG;AvI`KmNxYC#D0_uTeVMmOTVOlY<?2&xW?68kb(c<bFqyLU`E z5~C*!TPIN=TAh8Kf8+hEuwIy@3YX{rpmaQNLZp}RY!dExJE8Be(<_E+ZxeL-_5}5r zMfpCLV^DC%eLJg~zFBR#BfVWA`=B;5?hs{eWY;S*d@uCQ$Hp~YWqJj6*t!7Oi=*(b z&%BRJ^QV64RSB;v`vd-w{`UZ8K)0lq5YB|iGfJgXq}RN)r0+a`wnIkUWDDe8O}+1) zbY2Ae``<Qcv>>P6@ZI<f6aTfWn)L#5y|8htRr2?~>93i&M**~1(hKRh)l%ZbE$C>9 zECntsXrPH!5HyN9Wz3)XIxH$kq{1aqf2y_YPd}DkMd@9U5jfo(^tW!jNdiE_pw^p3 zE_Zrwi)N2AQrz|T5=`q7e(-wVPCbzVu2jX2{@1Ux;4bp>lMDR#Z*QJce-gRdKT0)X ztMz_Bx2EF)0Su_0yuTN}76lj@diF0oMR5a5$Pd*VW1mGn2+7cbwLfH8IriYLUqyo= z^Q@cgaV`)@IVA^_2GkBl4C2TmGS9lp#XHNwy=~PyPN9PNLB%2WVDg(ag4Lyu;?9(U zB?!wexNc3h#qMqF9mb&Jm~VTPrH}r;7`DAvIsagotI6Sy%5%m%>I~AQe4IN+Du60J z|6-6;-~Y!NE7*nk{&3f6Yo*+>$uJK{*~M6`Qbc*oHMet6|KiqLj5dlqe2HVuO7H=2 ztMO9OG&#G){0OySYF_Lh;o8jF#GK(b$?o6gqdw$hVYr>BRX~y=-QY_~xWml>ACKJk zrs7VD-1yT)skDQl@5Z*+u{1C)KOGkk#=P*q-~0gQJ92n{)UY5z#k?w%a|+k5&mz8{ zDPai~Bga(i+#?Hbk>LO0F)$mT)^i}b#DV*B*cSO!6AM3<hen$7<6G>9v}X&@u02Aw zMxzCVmF!gRfBH2T&!Q5>sWrom4X1)XPVO#j5UzS;7o}7>Ctzft|39hN;veuP;6j27 zqk@Y`&y|R_R9<9y|Mkqb?bb7D1a@QhT$+zJ(@CAYm2Trou;BKHD5B6GX<w-yhe^!o zJ(R6pYL)vw_+wtFplir~3kyA_=CmdSeO5@&b-wjpOO&{5=B?F1-haO&-*yqiGJu!9 zvb?B|>u`^T6X(}{Uq*-iOSZ{@0vzI0R6UQ?zW2q`m9mU;>|%B3u)4*2@ibHgu04O& zatTn>G%a{_9V5jLUd0<}ju_+(IVH5cim5-WuO&^^D-KCB`%q^n;p5Y9eow$XB<B+= z=A({m58s`+%nNxa9b1kLQg;b_fiDK!pXbmfMZO}saS?G+iCS(1**zT)32rr8>N=O= zj%*|QcZJv}MGhX?$D$pN9Y`5P4YUBx%M7xi7&5rOj=m6c>FV3*$1)c^I$kxetM;#F za=Um9Pc<vyO<W<Lez?FExjt?Cx>UgSG{2ol9}$c9oU|NU*MHCPSvbRWaOZuOcomuV z7{1xdayA(2*oB>l`yZGO%~+cKtMH}L#n`^buvKuu-vOh~d)^DHVp8{bUNP`d>9HJk z9|`_YoNnj3kQ>cSZJy*B%mk}1GJ<>nfgNwpaXDrtT!Tg#tEcLGusda^CT_ikB`v;@ zZ;0(iAOzJ&HdvFKQj%hrA5;zTcA4%Cw!hdSXnY`Et=qYj#J+O$B}o5v>4q{txdz{E z-yYR$u$G|h<_U&Pe)<4b&+!8}I|`MO^w-=oyFzCf2WH<Fp)&X!ad0d^Ww7>Kmz?^^ z*jmp&%j(lck|J045m}F*@$fV_O);90C$G;Y^hKTdcribg`1)W{+)3pg_FnRhG$QY@ z4xe|waM&#=12S!e_(s}(F(}$XVwwXtu<X-s)!%Ylr_J)iSt(ew<K6YR?yS@$#Ha1f zp;aE<vv42e_4!YT6tH&NRhc5v*i)(*Er@Er2);Gh8|h9iyf?C;hNJfh$dDQeQ5K1~ zcQ`X8h($8<ccs2J!W&^zr-;*V2|2<d>?{K`J1{c!{j&}{)&|+o{9l8^9*70`$HDsP zd`)b#ez5o0gWy+!rE$EUJjp-2>^m8Ku*#`SQ2*SFVY!L07o~yD1GA?COa$DLgq}XH zyDCiq>U3NLFF87>gU9mf{Y`OpOHK_EN#9moo4sJe{T$)}8X>Z!X4z<y>tUp{P`rZ^ zJG@3E{&o!O{ANm|{<cuwU)GEcx}lddDIVWJh$e++yKOBatLt+kwjRoWJT<l~Z9^i` z-!(79MJ@J~-A{xi@oS@@yZuz_Z<63lRC+vUo?aB{wNul5j}M=zV5~Y#F|hsDVoX5k z{eNx+UWpSm&E8~fXoEP(`K~3T1_dXTI19y8zaaL~$gohGweyY(4<yl}rw8C_%?`G3 z(g0WI#v8hE2BPQXl=4hY1oELBn+YwVwq=2N?}yShTShNjM{o~*>zs|_Arra%s>L&s z?@v(e{-~!C+u)I5h9dXHjYI&nGY!BD5ZMO=%R=MfyO33--MwzF9}j%>?tYA`^GYZG z{t;#LdhK_L<qs80DW1GP$gveR#`RsEyE1ESeOspQ>cXGgzL8}fZz`nlbj`J3QRPI7 zJz>hBf)!p|+IXqM=*R=|`-LXkpyj*~0T-j>k4_n*TGoAw5Z!DVEDvxoewPW?z#7YH zg?syaaHgqLt9M`_6V&S-^}Fa-CvEcx-xytYv;Bl$C290kXPR&mj4s`JvJCh4zAVUP zoI+~Q!Nn7oLx3bZOL`(7Asb(a4)TC)8ISW&00eaW{Il$|FSAU>w(6lo0^q9U5krDZ zDhDN+;%jx8hr$x;KS0=ld;rSylJc?txY$^lY*3ieZv{wzJuwZoCUN%q40!p=yUx}1 z`_aNAb#BBNG2K)h`eL$i-rjjTYKmuo`~M;9y~Ejh<G=Bfh!JYV-YfRro7j7nqBWv+ zTeE0sOHg~yTCEgSMN!lqvDF@}QB+z*tx~Hf^1I^m{r;}!xt{CF-$~9n@B4MXU*mqC zN55YQWuhsm$g&?w|G|DpLpVX6c8Y~S>12P~uBGcLK<-Wvb?@U0K9EuC1TOVQs;g&0 z^f?<Lqq3O^qGVxs+AT$e>X&1Bb5+f}3L9HX37*;fU0jA5wVUOtWU(_EC&B$GUwt;y zXSLv<^Vj&ROx5YE!Mo)i6rZXtJ3TZv8nrmXJK?iGL{R<|Rtc2j8wT<)V!j@KkAyVt z`ap`*D2P7icWCY-x$OO4A(8k!n=>u7eL_)Sqft*J=gPmwsVVr=vBcF2v|8irC-?1_ z2>SEwxwbdMVG^}tOEOib5+sJ>>;*#a#(yd2jE=?(>Vj8zP&NAXZ8zC97G^xSA`{vq zy>5QDXZ1*({oh#tg;7>0)-6!qb9MDBh(4zrergf<qcEZC$+z>=Cm~EpIG!}zJEA)c z1*A@w69;m3aT&HR8!rF#`RedrK7KA-IzvVIu5~gi>mjG*sa6(KeVr7d=yHTjAJK2N zcY7_{M(!UZ4`ku1RLx4xmYX=(+DA_rW&9cXhrj>@f#KD@`1wi|ei&!O9`&TkflDmc z9>>~Z!>cC^cL)L;d~bi@^7TDQtZ=SB)&Lx2)JB9}Bn22c-Z-yJEm{0Mqhov7RY5yg z7*jOI$SAX@DxszU=Hsn}DhbFx+s#RRod`=rpjeZ{H@f{F&6^X;su+hR@7LntEeBu& z2u3pZbg$<<m6&hs-K#pt;@*?~YVy#Y!*(N^LGEt0u<r2Ol-kD2OBL%4HI4zCt!(LP z)oyg{kC~W<I+Ek9$+0Y2;7aC5DG!}kk^Aw{WC&N0o=4Set6AU6C3>!5KHe0?<52up zVj>lykC^5>c_gced)qCM7<`CS``2VxqtZGq`u<$+=#p|uZS5saMdB;@@VRuX0<Y}3 zL*vY#I>|dSbvEZ0J&Xzk!ROdBA~+QRxFYs|DbT{lc1kQ?h;Fy6_W-0w70dQQNGvPP z?V2WQ^C5^4+<(O;k|FwthMy};yry~4`=&NodMcuS|2n>O`mNm}JQn08t&1TdIB)n) z!9+iJH?(A?Dga)s_(c-Q1A_f3K$YoU(g<40^H>|+EGu4~{&UCwUiwYbyIvU2l8udY z0IHpb$a>prp{5+hikG5jCco~yNHwJ!8%qhk6Elxn;ja34!wol|L^JeIqsBQ-D^QcY zMwCGChI%9okHaxpvF}KqupIlN44O&WcMQYN4o-Dz8U~T`BDxLp*(DBA6x90Hopf3` zUKslPYAqxkfa>!ZDqq5aUOk$KyE3<lP@3zCuKmJrtig=BY^E2TrBxK*Xlc%k8+<q; z>|^%JG)cqM-|$Gh>#^>ji<vw4^lKBE58Hcx>EQN9v%6FzoHvmdm5xbeDIczV8*Ui3 z0Z#oSdqW$4iu+Ri{&TGq&3JyjEWK9u(c63WyXoP#-u+O25l-%uf^gGuV$1Q(9EFg) zoX}p2*CJBxBYI1O4@LNct*Hpw=_o!=P^;4IQd@<Kr)Zszzso1ZAb{1E1FCpSAqJ84 zw%@-un%EEwr`mv=X#c|Xmsq~x9Da?nZO?csAF?LSqWU9V$9Y>}PoDhW3dddhsoDGU zbo2HS7nGms6SUZXsm8m({m?(E2Am0yP9M_Yn(vVLN%l+e)UqUpvUfn-59j}Cfd@g1 zC_WaLh{YG6Y$^>`A&qp2a^Jhrm9Fi}0336TOpy6e&B_bz)=GFU-<d`5*Q0+5<ei8p z#uHZ8SPE1(gP%N%GvYl&Dazr%`J<DM(;`>0<Pc$Q#wRP(`<LCya0D2t!`WKD`do7` z6R$n-fUGao=_+t~>x(+abHxj{nu0%>2rt!rP$b&2o>G}|II^QRN=TZh<?GuDhfwc? z3u+|$ZvonI`#BK&9MFWV{$#ZfA`5F~2f8tOLqZhe=BFxBDwCZH5g2F0|BSvmqlP2E zQ#|Gg)&)j}FQwqal|w<f<=^Tm9Mtp{)Uz7g7eQb_zxkv{q)S$t4{^%pQzIEtG$SwQ zCU)t%z||x8Y_BLeD-262i+2dpxV1AKl!keE{<Qti!qr4kptLs)UJ*mnPzr2<0g9S9 zewR9WlZQql)~b!&!Zo+fc`^Mswocd=kU6#?PBudO@H0pPq6^u@v2}`^YQji#ti1xW zb?tQ8ysS|p0}B1ryJ>ZvMFQ%n5PeQByjmyYFh;{0(Z`nt?mu=(V3nfT8k?d`+wOaM z)Irpx(m5{b{mQe(jMuy<vgC@BPJwsp9ZOqA@vEEFY=Xd6dP3)Jov>N*o(b532W??p zG)Me1MRsbA03mCaXZ<saXa8Sum-O`-qT0hF`(O5-fA9pBgqCaKoV02>3;9tt-`nKQ zizSLTTf?`QaRl9}-ygV&T;3P+53CuE_yz4GhUO+B08Lbl)v2cSt>WGLY<c<IHc7#T zouLHRst)Hk)DNC`NbwUdd&bRE<%d{!RqRBWk9jiRPL2?3p&|W}SS!`vj*Do4$rf{` z-x@ySQI?n^T#1HcA*7Fhu&!BQ4teBgGB@m!eXqzn^U&h<Y(<Fbe}8)rq97l?I==ck z6M&+C^}90%I|1hsv97xQch~zPaYe6<RedwfE+hpkvg4lB(43q4C9n5|**yGwICY;l zeca1Ndi7r>!WS}}4-VKKrVxCj_xDaVq28flIZ3UD7$NA%Hiw!X7>*3X2b{Z7A3uj9 zz#UZjv91>no?oTvk|Jal?;2}zJeT??WK~ZNMC=#e=Fz65iTC6;#_6iF0{1HYzWV`U zw4FM2G?RPNgC9XH;qUdn7K^kh(RWD;k^G9pid=g>eZmpH#&cJ*VW|ZWys;-j<(jWJ zDkx2~$eWOetLtCnZF(PUWM?#)W&h(CEpySuJhFBL=}8cwe)k8G#|^7t;7wi3g0u^? zoj+~SbFBFjA2wM0#cE<T_KZT2p4x*Jl0+XAMghei*Fh5?(eVeD`Y1@TE|TPyix~4- z+G`6D)*4>iE5xTR%0@I_kVJy?M7c%sGV$i{x0n;tKYVHENM?Q(C8hMQnESlJHuUO> z)X>k!s%GMp`H$XH$xO@?uNM-H1W9t^=4dD4AsNwlpKf|a#SEq|0T${D{5@nf#XL4e zI$%ZP!}X)3$bK&;SQ}JJE&`Ixu=z*?ISJ@#p#P=yU<(03fM4G138XNCcS4aQj?+|G zZF8+}coUp~^Cu;d^&3e67E}_QHJt3KP`D_5=yl_E$PfHHKdZRSs_zt^67KGVXA@W8 zD$NgSqGy-HT0&7D+eHPEJNt$}lSe<@{5%`92vB2i$Y<ZVMfZ%}pU#XtRD$HEsbf?w z$;D=J{BV+AS^joIS}xc4sDQ`E!XQS<7Z81fCfN7|H{>Q^Uh$Wu+I4n^y==2B^RR>y zoLFzQAU%hRwfNVd&PV;w5I-?oHDyBTJMK1c&4<5MB~(U@6%2Qy>L)4w$Prt{6s{~B z`LoC+ix|c~r`4H4%LGd;-M<52=IlGCf`DxF6zPzxVc}w!y)?FQ{AoN8ERG*s<pwkB z=y%}-!APLuY-*pm^yn3|3G<4lK2w}hRp2Hb1SaZf;S^UEW#_wPNj8R`$bu9<4pIL# zT=bT>V3<AUMSuU)?jAfQTmSx%^%5gX)hw++tiN1nnl<0u0@QoR*&?B-kwAccn|9aY zq-Peh)7u9zb6(`!<~j0@h7GlSWH^8DqqZeWk6$a-Q8wu)pQOI_&5<Ws`xfNW5^kA) zBf-+jR;c>JDk+<k{0cvr{6E1Xrhmc_dU$6(4PXO^H2mdZoS=tPLl~iDLY|kFN%2n` zzPdAl|5j=I3NN?~deD}EV!p#M7xHE}Q;6`__G52mcwMO?XQhQ8H?1VB>n+U20WEx* z*X(mLQr~Uh`C?O_j`>HOp%OP>PhWM_>sjye&*xEjs;<`1a`V-aABoIrgpS{N$IaCj ze_zXVy&)I}mgBWhf;F)~1-Sk8W+unag*83%U#YXjPrdSW!~}yr{Rk~RH)j~gnj@l2 zfaqiY;bk2)8a2)9F7S4+mwWonvbA~0!?SW3?H9uwa-nN3j9`ZwYbm6MN~uGYLz`>` z>lsH1m)ZBCKAfiFJoZ$vJFOM<d$JGzS(#WcjU|PCfHSl#_RS9v$xHOhi8W6eF_(6~ z`1vGrKV3WmqOb24*KHs%AcrMo)bb;6aaoONgIC&>C`~7oy;$6MHk+-R&Svl`V6Jnc z@LyGtTeAE5?}L?pg&lvtR_+*&q`eYi8?)w*TAeaHY793GBAkxYT?;5Ba=1;Cq5D)^ zviq#$#lSiLYw?^oePJSRgCHxh=P+jvAujdBmpOaBCL_Y;q^{*8``<(`wYxgEP&FDB zPll6fMQS2)1|xnIh6qnjIs%Dr+M3F0brs69tnmsXMh4m(qGej2exZP8g8~um^Y&qZ z8dmEH#{d4Z%3a8NYkUs31(`2VO%lvHC|gc%uCjbQ?p18*k``4|6|o#8Denp+pm@UJ z2+LG9tIWoQ>tq)$)8^c2=iv)IRkvUL47_2&DK|D+UI9(*>I!debpkYpZ_E)DJrO@7 z!H+*X#t37M3-sLddHj?zZrPSRd*E!m_3XiipCojZTp-v!2}lS~k)nD)1Wm)FLp`Z# zM!uE=7{6?52=8d_xO{73u!-Kpr4zrMSMS#ia|k#6y=feO8+mF%<o^pdK5N|lppb7h zxa6(IrD+jOwr`OwkJD{C-nZY8-#lIaz5k>8;)~S~hgkfGw>iYVUV-mR953PzeT2-n zg-1SSBjTY_kyXW}+SVHUoTAt#i!RZ~Oj98@UOa1+AP3ublz~z?ctJ2fJv3d@)46do z{mha(^dFZx+4z<yxted9;xzmX5%LG}K8Bx&a*xjq0?RJwhZEZxd3A1PO<k<GA06#q zzI!8iRzp*<_G5wCV~@}pQfTEQ=wxrr>tyG^yQ^@@HpGmavCdI40Jo)+V~gfehkat{ zwWU9ZJ@a&IK)#Xtw0<ym9pX>~2?2#X9?@_FIFlD0(Q&ljMXJ_WeZyD&2lkA7>FVz$ zT|=cIKN;UpS8DxXS$E+Dv8DKLlYehZLVul-T4wC(PAVjjN90L-!u3c(&ninQNISn( z|A=5+DxhaQRZ|e>lShF3FO2)(5z(-I7KqHR^-TS_bEo}JkFrgzUc{B$?+s9_`mDgv zE=f603ge9Er9p$S`wvcOV4R>-D%;2-hZj7}FDj2r^AoRP=5*a0ICzw@14zqp7oz$d zkHc+lQ~g{#EIwRc_ZB=OtkNZYx2m#o7bjawCx&oRY`m?ertWwkLY+_ayWP&Y<*NCf zB4IZ;WdCsJX^+=aNJ4W#W9d(~(uaY($>yXE%dgT}QovNLTMXM=AQ%ZdNC=3OFWaGp zLK0BtXO8mfe2M8kpQ3*$9{NMBZmL_#YQ4?ML5TZI<9v3@RpvIlZGhzCzsN_rot<3K zfyi$@_r3H2w?0lx7vM@(0|YOw{1>*MQ|^T^R#CVlEQ((Xig*N=-7w;ESf#h6dd7Ck zo**R<xJOva>d!6an<}kes#gXo&;Y~zJi$J}pJS^FR<2XG^1QXQYK;s{+HVG?V!DW9 zuWEc*v&Ws;uT}#6STB2S3%Fjb1ohTYbapt>z7(85Cx_R&TQw@T`yX+WWy*p4M7iJN z)-0eQ;bf6}ilGd~4dS8u%5)$S9D4-G3t8lyH!J9@9AE(9;&*XlR)I3Og^WajKtrI$ zGqIZ#m5FYkL4C{wpseu#9iUg-Ta*q!v$9a<SK(+?ZZepU+|AJM;TtIp7x&C=9T>0N zn*N~Pe4wHt$-a=6-eoJz&0NrJR2+-jAU-%46i*&XtObytaX(T`tuA*Ncz-gpR<#El z;szYI#&Asf>ZfPfU#3etL0Qu@nB2hCXRmJoZER;$n}#17Dm1^D38SV{)$bs{a6enH z{TqtJ7<En%Oh7h5=OfqB)pprRG8p+!-?1|q{qT}mao8mLjqXmtdA<421;mFb{Ny06 zDuNfq-fkp%&+a17_tw>~Xy=f7X1W9IljW9Lf&rJIwQAn(+E=ayqjsgZcfp`g(iXp4 zR%(q3V$>yp&u@C)X$dnW0IPM#^ECOGDJJr03ZnvEdhf_XPh$Z(;EGAOF$*%BfcSpG z;gwDQU9La+S01j++skey)#YWASe`@R3PVu2!QL}-@J07w??J)0_VRw+ciNd+7wytK zMUTU@*%#ky;0(WHAm<j7+Mg8NVUMLtQ*RVLrcO`gLcA6dWu(LqJfs;J^n-ywPDUg5 zQ>tPE`z?im0q{QNv>pmafMem<RJ!9dlMQ(T6eQ9Z;fq_5pIhF=eSKZEROVG8^QeL4 zrB+((M3wJ7=spR>H;xc@{mw2P-i{RGCxgnRO0i;}&wL9q58g2#Pin6ETVVIN2UzGa zUA@gZU9hsx9+<9gW~o2HtXFCsa4}g)^^Zy@8qap4$13uia)aU6%jyJWhT>bmi(a=k z(H{VNtUDVXYTyV$3_Riw9)otEzjkq74wsj&R(Dbx!UZ=Odt}8X0!|22#+Z*V9o76i zMPWYLYE67lj*F_yrz=WkuTY<GZ;=uEXEs#(lo2@36ZNrfm7c*n{%KeHk#V2@jTSnp z=E$&P&K~B`T#@u{|JGwnmB|Wz^uT0<tad-(PlC;t3E1e0(VbO&N&}s=wr+P5I08(= zg&@Re3;cPckAf7!Y~vPjf0Yg{=f<$Ue&uZp-8iYxg3*rrnGdf_-JZoQ_|2?av>e4d zpAC|i)OiIO#~ixoEMvE$zf)CFIChi&aOzSLvQbeKQ18*WYx_)Bz#YP^pyQOVh<jtr zRj(vM_9_|$aA=%Q3l#~9i{xcBJZS&gM7i;krG~fPx;TaCBiJ+9puU8&k#}um*Z>82 zs)Hg0oX8nijKJOeR6X9Gc)cw=(s9Jp&6fptGU|xW)<aJJu3Stv0|ovxxWD?{kEUD* z4$eLrgh1&*{rW%9ZYtk0v(=yQ3hq69YFix(Mm`C543If%dMSYYhH4168BONAe5)=S z(AuIzFKEm}h6%1PZVogqVf{wO+_WlbOX-}DmpH!k#t+oooSnnDUTX(}reR7+%s~=@ z_7`q2PSAbum_)(n#c&4qu4a*(SZc0wYHhy>y45~U^4K+w90chHmf6+XFjW!IRS1og zA}yCDl4JPvp)1>IjY-Kgh*zsy^JlFnmNG#H4U4^MlF@TDNLKg74Jyj45}islgPvQ* zfB(^^=qQO(lL6i6b+m;pH}mom=sZ?uZOxbqZ(_>fw9$O+@K%sp0Kd~>slisjV^_}k z8!%2#L`~_C@&{)}%U$>SOtCM2w)K=a$xzo$gMi=+gb{f`h#<~InQSyKgZMLu@F zsKvV9K7Yztw(wLU^@plo_k*RYe@l;)V%TPxOsKsQqM#e&GW@#!YSp)ZRPOtO1kCL- z5th2K&#d1MM8!!8Yx~Efy-5S0v=IOupo1FX)<;1Sw9u_sX(qZ3*$?y``#2__tMHkZ z*($!c_x{SlUEs>wZq#qhBu4^>x;N;)aD`so@%Kw1LdHtb?A2xF7pq)^xS9S~o+Kmu zp3FAH`QulII?LgikS(Z>t?IsG_h@h$0DWA50CH@63Ea2!Q4l^|#6$NYX?`KS)yC4e zji%mP)lE2D{1EP0`=z=F&lL({Ph(CvPTEf3P6&^7l&xYk)zbx%y*2+3fviu}2>bWU zoS|4vVl>O{>XsH^6TQR6^=&o32etyTLLs*5&@@B@;zkqB=A)jDuThnb{Ik}xf1<^> z)RtO;kH4u#_#;qMlTim#B(L7CA8MpQmY8nMMZ-%k{gDCe5cl<G7}yMD|6UU{8G^1` ztdx-EoV3a}`Z1N5kSiV`;C>J=$nI|Hq}Ej&L?81HQp=^x)a1%9|GZyk(s%iYPA<It z^6%9Wl58Xv7{BYhW0*5{3v;pJNc{_373@N7$u#@i;q!nJpCN*-YeECGGfaw9Ved;I z3MXzX6mYs?ho+&LpynX#?jPrEeY6P4ulGZAyOMd^*ss19Cr<L=?U&+-oBgKeaR?H* z=|g{Sc6j0$L}`Y0uv?r_iJW7sj7Nsf<@;AsH2FJGagDUaG&0e@)UD$j*BJ;pppXEL z0Q2(K*2=*>xOZ)qx>@3zaJ(EoawrIe5rXnc)Q^C4n#thb^o=#X%Pvag9p1Bu`@*Q( z#?KSi`&{KLmo2X??kouFgC?T|)malT92*4Ap8w;Nbcecw?E`(sB~FnWcX+arFEhd) z@s8R&^US?NlrpW{vc!T1^KfwOy+wc85f2aM5fvE{V<Cbfj3;fWCA8y;l<n`3t$sib zO~VwxumMM9ai?T(1ULt>#m&ty0Ufyk0X5`&uNo4)^I@U4EOotkw!uyfY8(ML5@?L% zlo^s+gXg=xmtopQ)um#hx`dvGPramO_=A+~f8Pp%N4oy7Tz?q1%nwqBp~0Bck^#9) z1cId8VCRm9o}1UlXIot=xtA64JQGK*Ix`3heH5hK0A==8evmiqeGl{JBKFKZACnPI z+P>LhLo}UVi1Hgj%@<Vn=S7Mj`q)}XIiMiIe1(r6=c9;lZKa~z^{n=1<jxQOI^>3) zz(fA|s#c2>LCTDQ)D0w`tq_W}RXP%v{Ej~3hay;Uv}w>8wC~DM1+X^wn3h_8n`3sC zKoD2i5kk{2uc783KToj>F=!f!06gOH{O4yT>h7>1t0RR!_D;9h`}xe|pU}cMLB6ob z-h)?xrjbWk72Q*gLCVFCGlA+gYsse%^$c}cZ9(uf*g@5Ld4r8K6-u5Taz_W;&5vx~ zrBFkhq(StN_aHKK({0o@-qBHay?2AmDK-7pH)#5HbyFV&Q87Z$0m}P@M4ycKrRDgR z1qEbJ&;R^xkGgyM!a>nadZ&j7L8{>^?g=&G4FX=hq<O#yh2#NrfCjt6Nisym7_BB0 z@O>xlvl7Ww6H`Gev2uOJm&NcW&!S@A)qBCQ-e5cJyNeRJWLaRea^A|@r=?)bOlHk} z8UB@(S2-5MO28QDpWliW@zRXww;K=^J+KBZf)HV@mvhMtqNJI`hI@=A4EI!|orS1G zk1f4ap02wO=Z~lpKG{F5^MXt8f**^Q6JkaPLJYPTKvW+uoTLjglcKcT0Ke>NvfL+L z0&#nbc^NM$WPplT#~37vUxo{)zKXg&<3@pBkW_M&+#uMz9%2l)62BO367MRyJpcL9 z)5b6(?&v|ackS;Rcx<5=>OKh{L(F~>ts=|Xx_M=67Uq<o_;2oIq8MQlg$VWH>#COf zHn#&?YIE#r!=Bg}L41Hh#@Q-6HE0@U8)^>P4`sh#xPH{{o6pogN^(oC%BS7Fz%@vV z7WkJ8Ert^lj0ou?TOp*ewe9U-UQ}ZH&W!i(f@fhs&JDApQeFnC#2ESQnws#Gho>Z_ zSC6{yRyi?Hy1a|vzVJ4Y^h&r1LMG++X9Cdn2-KgGf8-zk6u}W-H#0O?BX#^GTTY8u zB<}mkF2#fOm_X@4)msY_s^ER%2n*I6j-5z4pgs6PB=q@G(nU$lNeNFNXn)ZBZsDv; zJG<@xBSVD1Vx`c}2hF`x<QR^bsQ2&)G!+`mDZuk7EDdEwqK*80YMQGm$5epZUjMgn zRi%=86z(Dx9H91n!aW1^7K*TV(S3M+xa_rgc=k{^m-_5abroFpBP(6nt5?Cq%(4E= z&wFfF2b#?hvc2TkyRHNz(u~*$E-V8a0X~701GOHb%=#z@1$S++8ocse`qj{5tt8B1 z^W}s-$4wlYc9ByCijoAousmP%;$PeJ4-9Pa#*nEt=jEqr_!w@CWRbS8xAaM|GCxb2 z>cCfO&Pa#TKhoTF=$JFWTQ~Df1^{JE0O)|&;+{Qx41sDAskgy%JjJ@Y81CJ!8xZD6 zNkJuplV>ubHw3#w(5$TeyIp0j+sE&Skc>@N>e?6SDO{{v@6FQP2`oAZAMrm77&L_t z1Y%nyS+>6~_$5}BQlOvmvpz8er{HUjQK6D2B7iR~F0N2rSR_c|Ndv8_^b#4(kC#02 z9sY;j@%e6<C}@NVEnv3uY520D@9?|y5{Ra>psAGf_YFRjZ8;lA#7q!EaKThJc%+c~ zG})F?JeMt7q8>D#ENH|Bf<0yf2?36=Q8-S#7lJbRvK3P+Qbm#1)_ZU3{gX%TuG;dx zjjcq|_9D5E;e6oLB3JIDQx`O3;o17Y4CM;0psCEY7l_22nTJ@+9{RK&GB%~WZqG!b zwkVolV!+6EcD?I2T`@q)0Y8nrAbjYNH&}6FRC8Z_6{**{5=J4|=QzMYgj?<70pVbb zy}cKjzPCC%WCcme_Q)&}|L})OAMDO$WCZy=*&!1MdjO|cW4^Jk=SP5&N41PbvS1Vm z<$-%uW6t$p7$@j87?p`fVQ9o-+n+n@wV#;_aI4eiVW0Ed_SN}Ih7I*GIS46PK6xM0 z5uW^<vBrwxtWN*O#+^r7<$+u%*8UYpfS=ac*tf#=n8#AH(*PkRM7jj_ni?g0FUJfF z2f$W<A9ET2ou|RP8JLp56&2OW<7|q?h_P*XWoKQN&2>aDKLm0Pc}p!->sXlJg!sc| z;9HvEgzzN^?$k%!=W%7Y8I8^4iMuys8L?(mW<*>dW1YRr7go_f1zJJ50q)=72=G4= za}XvEFIJi&i_XIJ^OH+(_rLBtVaxo8qi}htg2J328_1EwrM->r)!nh$2M52#LMct- zRx~HO_Pns_`B!cE%#Fubt5<!^-<pI)^S^Z8&aYK_rI@(@R4LX!g>iyz1AY`~091jK zD%x&!F~4Me3g-{vSMPT>c_z<vG0}~wBZc{Ca}ulX5L3?|iq9q~NPc={-1K?t*MPU+ z*~W2+RIxahA(AAi`<JU~q~bk$rtNfZ)RUzaTmD{Vy0mNHjDdK9kR&g3@Of&U+5lZ! z`tJ6r&^t4VtrH$MpUDft5#VlawEVXEQcjNgGk@(_E+I4nEBFM93BO#=dg?V+e)MjQ zn%56<F3ZdLW4JUq)@I^z<epX?N%(cwhcrNu0!FPO1rU9NQ2OF&;R2V%p{~)C5stWZ zx{l?nX{_d+h;mPz!F6|&4gCGBKl1h!OSaQrSM8{<9L<KWV<Z%RZMJoPa{P&n#aSjr zMk#%G@a8q}*wgGb5vxFs$K97tg_i-=8zPmQ5eIw-LPSWa`V%woI;5w0RDs4lSvsi% zcfX>nX!n!8rMy>TE73#uDilN?yAP4+_*T*;eUR><`?Ku5;N}2m?9Eu}d6fEdTON)l z!L~kMvogMyj(nw@h*p>6Mt$F99R5V}?Bo`It7#|s0wCi<as5W*DiU)LQYU9E1Ax+! zjMhNuidpXXdNi)e{cciK{Pa!`h=%BMPC^b^Bp2ojvL`wvxV!%L)T$8OM`^6G-2Nyx zPa<CuKCd9e5p(dJx(_bk$^w<~3O0p$+A}fu0L~&=m0OxpZ-+zse>P_T&@5??>w4LB zR+Bt}bjR7$n>3L~zK&M)P<`@c&Ns^if;+(}Zg`C)2g6Al{^(KZ+FWybc=#Qw>O6+b zH*xZo$(dQ~Wo5z@rmWq`;S7#a>e``G1xl86jq-z0xWMl7&BI*1t<VG8ZgNgBf0sv% zd{r;_Wwl)g5eb{{OBu8ITd;j<&~4z<vv%GJw$B1O#;KPGy82udMV{dZ+UlhY55v1m zs2g8E%JhKPde$mXFvZU`78c8c--E<!GvcX3MyHP?dkBt7bvol%aEW26oZ%7JDDfQ) z358}>^Wh{Q<|%QOiP@2Y9|3B8Yt-F@*cL*5E03I}%?J#akOW%+#z{2ci4c7xDdZjx z_aF}eV(HYRo<OZx{A2@OQwGq&I3w!d=%$9Yb7$&WSy4(ZPEX0=Mqe%SDHb_ix7}}5 z@WE%7A!5QKXR^=Fj?qG>gx7XT;O=|#>#x32#n6pVhsCR3N7ucmB);XCmAG99K+{k) z(DE~!zl2L6-A5CzQje=x<W-kV2@c<S4ZlJtsq^vFk_yBqNhE6T_nv1=^*r7eUulW{ zAl?i@zGsq3k$s)E(I@0amjx6)TvJ|~e+a9EBM4Ev4ml=ZH)Ax|BFQY4spPk_h|U;} z<M-X8aH9c{0?36fI@ja)ZqAx~%7Z-(2paO0NFL?E>PDdOUa;o@K>U5<1snnH=Rpu6 z{@B*RVVn_BB%bG8(o{h0xB`H6TpCwRMcXS9H%So(r8@oh8tN>j2#vn*$IZ&ZOfFH< z4)SJEC+!(+M^XjOJ7UmgE{shg%Xn2ZWH<%WzC~&m=ed;A<Po|aUM$bE%zWu&5{SnH z{0FIl>|#N=7wY#Mj9SV>^&fmq8#T7AM(3y^7vKo6BOihg^+GS!n+H?`Gsoe+NOMb- zForazU=Vab7wQZbcmC^|s^B++G(b~xX#KV10=k7O`3<#3V5%0CgM-=iPnjEotpM6g zz7cK^On|EVISyx#EP<0h!ExxKYu={k7(_|u<um))|Ihe-07B%9!wJ-B+ImD)=`mww zYE$m1u#w{32HH%34(KoaRHu)EkU~D=aL<{z-bpq9lghXkL;-crp0DEyga5la3KFcy ztLK{wJPzgnV;kr*Hw8v8jsU$ac)jKm3{a$~yVI_Aa0HkTyt|L{O<eqa`)C>`xzuyR zjpQXh@~Dr3EKyCO>c#(Vl$t%8yrHvqxxuR`^}-*xAz1GT6EMTm;f?0{IXF@maY>gN zfeU~6eYZ=_(bwtK&L@3CdFO^S85T2o<LjI4M+Fj5d_w*B#0!ERTigOl*>3@QE~;*< zsHoFJBN%6d7Y!PW{7Pbn_gK0iq*pi+d)Hmu3K<Q`=KL^2zB5{}+4tf)s;-ZM=+^$e zXyx}{Cr0~pDYLBte&gx?_uYX%Cm)F?=XxjG08HL_@z(F(bmb=Q8qo0qNdh1;F0)@n zgbt!6#%lM?K>eG3-wU*(gk}+fIxUCq<}MiEJ&KPNnqQMIakA$Js~w6=8uY;RLr4Rl z&2aQ4AWy#LrZ;^H`u>|YSw*i@raxd$A->HWfuTWzIrp_jDKb#X;H|gKb?jHT{W}d= zGAH&EQkO-%cXO^s6X0n+fj;r6tCMb3$7F5kaKi0Uf(D0MsgpPHyr0t(QVx)OjjL0K zn`?r%-aZa|reEPr1L!}xXDmm#q2ufP|6ff$0!HsSapXQm2Yj@(Nqtw7Mf!W*fl_jt zCjtY*Zo_M}MpDvIPr%VPfVkVPo4A@L(TO7uSE?p)Jf*{b{7iwSKX!ef$DQKh_tM=3 zW#itK<OK<Nf|2ogZkY%>YBU&K6;tq%7jy?4UptghVJMk|<KH^L1v;7PZsL5Eb4C6u z8Eh@&GuWF<WGXo2>p*e*-M5`}WtMjba)M%a1;X)JRt2yX0P)dZ;DQOTfyi&k@Z9}( zdulOfL-xEbA3Vul7Z^2`e|=hg6ndi@wz~lOrvQ-K+HA}rdQGo0-`rHS%kLOoM~Fm1 z^f4Te&r1F}4sYI_b!9MOy2DG(aUPf5(eLpSF+ea9KF~+)ClvHvvqWB7MCfhd4j@u7 zbzT_eXM!RH=KAb7ppYyS5nvC+;h43gbz~c!hDZn#%$mLcvGD|7pTE^d>qF2-<Jg}# z%kW!OTGOBJI;b*lS60_w-?>~dkPuL2lvc!#U)Yn+K1o&p5;p);uF=8MaMKJ$&Hs7t zQ^YikvG;a^zkqnu03Tp&Ym*vDkD>?Ou=&oKf;G7CBvUuzk~0EEQ?60{Bl=7B-4Kn} zPpTN4ee!0-A5&ZYp!PV%*RA<Fq?Y!0^*nsp{MP=PymH59)Zm=~a?zbp=7~rH6huW2 zMG8!iLs_)JS8$0MxunJLMVo|g7d3372Db=+{{<^_A0#7A?@)zyW_H9<6%1<RniRW6 zg)$>daFg2d?4Lt80^G@oc8?ELwqUF4$k{Vqdvo(6po05%*ReJo|5vC2!GgA>9SRce z)j)X+6DH#}5%|XW)4Mo*3?WDeus3&SgH!o|nR7k4igCO*Rs=#=&*!)StUw8l_^I57 zC)dl620R(E;dk5>#wl!9TK<vt@%$&LWCG--hsOd4zeuo5;F!griKBFKe2j_@O%IIR zM}m-yfceB_&5fVD{Qzp9<kJsIK68>*oy5$j^!@wS8%WZ3Y?o@Dcxk!nuSFf4<=k9J z?YI;ba%!p$0TWQh!`5<IeJ|YnDL9nt1IZkXWUqX}z~vocGQgy*4?y*EXyu%CK{0Fe z@0xln$!Bs%$vbs)Fu0h$y)*ziBvFlXlBIx@Z&wDP9VmFAX^0RiiKXfn#E6p&h(4lJ z?G{&kapU)R*@*+9(mTTyV3a19f@Cz#YG^K{GK0meI_L1VizS&3f|m|NF;q_q+h+ig zLrxD+&o~hd9zh*=`7{j^NFq`AEAZE!`u`BxnhOFnL{DWhWjYwJUVWL!_{VW)UZewo zc)MW#pi%sO{P2Pabx5l`kG!wRNbgG~CjC@{lwpB!e4SEFer~uQ8&F&W`9(ekj|gg{ z+xC{v`u<-D3*k%HFr|nGU%~>e0LtlZj|2hg+nFz`E`X3FK&PQxz^$)+Be=1}3l@qU zlHB4Lx;1(Ma9FFbsA`Eh#C8K0u;g@04-A)pf*-4U0+_MhTJss+;mO8Z(z_zs11}jY zHW-t?^GWJoSmPfLUTcyd4>JM7CA`4Q>5r*>;QK{+zs~OQ_^6~2rfGtCdC-z#9=gIm z?QIDPQS(4iK1b$aqsPxzYzCXG8q5+e%UcBp_wf4Ja4d$g`l{(}a^&m$cYUwzbDgXs zjDg2rBsi-D@6(%tHSq0pn%;|NJRoAoXE2&g9+pE7<b(Zs^&O|r38Nu~#)yf($r5A= z?<GZq({i>;$aoGez3o~aJ~3265*0GpK(d-&R=tAgW2iwQCePvsYRMJ=W|`3PbSn+A zmU6x%W8j?rN2urXy#5RX7HSTnI^}XFHo&|>JSpyxAwZP@OE>Db3vUDa!C%4<cD>J` zpS7s{?BODbInirThs6PZ#~Yq<B%qEj6%AIE%x^yTA2(&>4^M|YHR6Q+!yTIg?AD3M z*Sa0%WT+5Z-|Kclf(?9YuY9v1zK9ouZ)H1nJma}d@|_Egv0Ze0vqvB0o{tv4)j`v5 z1&&Q!=IQvKecuc^So`uN;9w^X{zGEUZ5`$HVJ+4GLkW@59$TkgGzMD7w?glGx?+hx zKj68}IGBSZOi&jJ&@AN$B38eOq(?ka`!!3Mku5x;>?6-wLppI^%poE@<jaH99N6)j z_t#kXzYHlpEVfMElZ-}h#HNzNBLr!NFgm-k0u}F7zuc?+Cg-yJUuj$6zuh|E0w0r& zKp3gO^;3QLLf2Q63Nx*`uU4v<>5aiUyy&vl-TBgRw5*VPk$sf<$AjvV+|N9Yx<e93 zcMIk2o@=Ea*zk8KZcN5ld*3a}J@DOZb4yt#D5XFS-#F8N2|NNPfy{qPqb~U)yr?D> zv_%yz2XEX2?m4c#C#lN%@XgvJia^~E9Ls|$1xYaoLd1RIhnP&9Lwq=e<sX&)yjo`3 zG?{+C=C^eE3{Mn-EEcQ1G-Q9rzP7ZVTf9}(Hc`yX+<)esQ`-T@lH)xW7uI=F*gh}F zMCUW<jC)6VEo|Ayo9W99;FfHyJ*<`=Wg8(ymVkORnlxl^>};2a&S`pJHj+v$Q=2FV z*(FBFrlDj(g#&Haik#=Ot)>rSm<_tY2$w|UvYQZsXGkOm0yagFqEM6)ZF=AwNG)Ny zTrT&3@UEQlme~S`0XVKHO+&3f%d4xP?x3z2+H~t6=d=09+zX_h?(e1iEH-n9L^OIu zFLzhm18iWA^EFvV@6<0k>N$tLt$y_HDbOsIbNJL{#Q<3W+4*LE)0<jd4-Ch0fEE5S z*aJ62fzJm{4}}@ValxTPI0+9U0u9950D@8QXJ({bkiMFXIQJv(iQ&I#ntq3zw2sDH zjB)<%{KJW;)(Y>a{;$yEU`L?hj;93~P#wD_+cJL#Ccq660uo3vb<z<n)RUKbM#d1k z_)$3J3~srEJA|AF!4(0(%pZQYmUXtPg^O@_rVghn&jf5YHdJkn7z(NKxolnajD-Pu zuN+93K_-OFTB`uErA{horkQ)oRQtMPcn6bMYBc+3fUh@{I0-VUM4pO#KoFp|F=(X* z(0(Kbgp6_-kTPAwO%kzp)mbYJj4#^EDzn2?J8zGB#v5jTJ9*bH9)!F}Fk+UD;sLih z?rQp(jikwj9u*P3Z*$&p&}*<Iho&LkkxYWoRzK~;p{Fl_V6IT)JJN+M>VI`1OylQl z^owR-8h*5w?8fS3INLOlql~gp>WOQbBBy9-kee$bJ*XijPr>Ml584b*>-`e$A;j-e zQ6=48T0?4MC~6;f(qkQWEqG+|A_y_A@qhl}6$h&F#Axj?>i61Ba&1_%JPUPz6i<&B zX+iJJA@-!gsCsId{e`Qlr^JE~j;&FB_2T4hXT0K!r3TxQ9j7mqY^o*~l<vjomJ-Y> z_k5gUluhK1K)}#o&a~cP({vO8cz#D_^(ZxwM0)B@)_9f>Fj|4^hGRp(`I>$dPs1kk zNV{)(JYQSWF^4=b8JP%v^XATF@|WManqatj060Xuayd%25?wE6&vN|Iyav}B9!M^9 zR$C8(WAPjDsn5_n61GnST7EQ&dEF-kpuZLW@+NHu1mNZ;5Sfq7Ld)ZkvX~G0T&M5O zBwNS@A$tqyS*9jj<?EOVvdP#?{H44CW-HijH*Cf2Djxe{+E5$ef3-%L4LC{g9dwUC z9VOhH8$8w=5qCRUNw?@oq(m*HAy8}zsK0Fnn=}dMdDU@~rMIqF49;OkmA=^I@iS%D zYZF1*-EbT7t5=H)-yU;9$Brc$W{+dm{ab&_-9BGYd^<pDfP&cLogQBASsgHl+x!EL zs3(B3SPWPuBm~T)LHSCZn+fAe)@qw$Z8kbLN!V>za&(M(1D4x!mk63rd)=y7>pn95 z)dgo#jhYnJMLH`mlS<$gkpzR<`7Np6VD$EWZV(1kX<BO!<BZ6lu6?4MU1e023(?1r zN054H!nv2@Y~%ASPD&sCyAXUY<lF-HV+7Clj$FpIcX>TFj(P7LN;wk~AI72t*rm`$ z7TM9h;CSgM?Bw7e`gS};KT;6FpODt22iD;-*LSEKZYs_S{-tRp_-<SL@)^ZgEIx6g zAO*S&u;x*Q8-np)9{Rf`n(3}v^h+XS5f}mS&u*Sj997s~42BSW$i(%0wP3=yUtR86 zwA}SE{z^k<x$T?@m~b@%-WLKt2-=Ak2-ts*4?Sus`x#$dl~l|TqWW@PwJtcSJHr6O z4+&^a-<uX;i<#A;u4+4eOvxnHrS^KvJp+ImM+0=g&DR6?GrqJG)UwT2@_`RUmM-qM z)_;g3LQNWAL_t9sn<lBB&c9VXrS3eI@5;&f+o-!n;4Nuqd6P?80@o3mb8CB5Zt2P? z{-l#&fgo%qGrOSa&CeHY(o#dTkv{ye`@+KD3YVF`L|0NY4v)y}fYE!%ZaCuqY$9C1 zK?*?h4KqY*1apsU0(+kT+?*7A&$Uwd>;}cyooTz4FgX9pN=_Epy7pSsVM)M^2YW$0 zzpYDv<f*C12W)%!H0jb*GW#vvA|l}FgNJ>jzowq9h2DORzpiA|RweNt^$~ufxn<^& z{w7ZuTPkQ8iUF_E_ggp@=wpZ>M@vpDb>wMfEahCeq71>7F$qK*Sa%vD6D00p<gQxq zkBLWmmIteBULh<Lvvb|5*sPd1nePqc4k&(|MOm5zRMQ}L0L+r4+KwvoPNUmTe&x(M z7C}gT1<54wc**WxxRqQ2ghGRpGWi(6oSOOlu#|MLRe)no3%k*T-*6EqQWO;Nqb3c2 zvgRXXgSnzvrnPX7zpjj7>D@lBcF&b98_;8oz>2nIN1O^+O6BPT%y>f~sr0}58#-%+ z>*X?9)aG#$Yu&Fl4=Xl%!-!{rK}6JF$x^BdHA|9j$+VG+u@5sWqFJIL`p98O;HT+R zt{k(Bt<9~0oBPZ{%w;zsIN%`Iz6?I(sH*aS75X>}kYjBHy_0NwGK;;>tRJrleg#Lx zBIrN_cIm{A+<*R2Wm0UF<hAML#{S639UaiP6Lk<`adc)q7oEA)JH$?vL&+13eQEA` zfz&gUJKnpA-y#|GQoIk8KtUkJp>-2FU>MCjvDZw2**2b6!@Ho=XfWo^YWHj!N}U9I zL=|}!-adU2D4jdPLjafn7m|X*&DoFH2hb#pG2Ga9<4Ntc^1>^jqP#Yow%9ihOQuth zPiKegHYew3BP;I-yLJC)wojJBHA{;&aX-Z5cUG06pO<hWl>*Ne>bTK+U=h2mR`-s8 zXyLRN1|z@QA4C3Y-60?$fDe?|WeA4vt3!_5XAVv@#IKGKZ<+*YVf%!j<qMZiK5B`5 zx6<W1sRc*ATGW0}5pebNC@5c(swvoUxu%y2k%Ot&_)Gu$ru|YEzi1OD5?lX7T8cDt zUFDVDgxog<n&-(P#Nbv}uFkTSUr*o(L67I#`EKC}pbVbLduuOn;3fQuE8GBo9^CXM z#fe2q+=u)+u3B7+z7};YQy#$;VdrsE5Pa=rEm3o$s8A)<bF-TyU%yTmzicd{Dx`Gl z5Aq{x_6)XS-~Gh-5Mju^Jv`(`>O;vaF?qUB6uNz8022@encPv1ltG2af+U^}1zmm# zV!Ssv9h{5L;+>`dbU-JIlw2;PU4xV8Q0p-$H{Qo9L(vwnU9`wQMiIVHjkt_;C9i6t z3GYlE1^wlm|E5^a9Zeg_|3$B~yEl&@O$KrMd#9flStN^`&d<%Oq^HChlpLB>QDJ3N zBL6l`fLMOiVOPtq^U7_BTLy=%wjgL4qL#!QL{;_2)mI<G6d`fKmO~HRJ6A7u9~=+u zOVG#Upvt~(vomM5>CPM+Ixs0dbGNN7;K;6LE{Ud%bR1&^TnO_By)kFfB>`JWaqTL( z*#+O3_h%fu7L;4nqtT*DIi}!FE^|ME0Bl>?cFh2QzNUq)_}<y>?!_}0C&&YW)aVd@ zQCH7wM-82)nH&XO^0)-xQj$~>7LUG=d$kY=Lc|McvhCQ%S<$lt`9JnWYzbJ2<zvi5 z<37FD=Q{1(HCQ0jL2yN*zdil&R{(B44zV;pv10-KT2O!eRq<NwGR^?#fK14M6Mo)? z9>SMhq=~&XL<quO|4qjqVSuKE?C<~l>p}5YB^vQ$zrO3W7_SYtE{6BLWL_f6U*^>6 z$@3+7EY{yp%QmHg{F5Go_RnAeX`hvxoRsduQdwP8{%_k(PD4res!Rx<KESTNUYyE6 z4vb3HgJC3aP^ynO_*4E%?g#{RT+B{Mp7OjF;XUJdCJq=ztP?49qv)JrhRJTRC>yth zSO)~a)sfstXF4fj?ACIn$EH%luI*21`v$nkT;t$R_EM?~_8*WcJ@s78$=Jhm6ERXy zwS!LgkfuHgl7x3bAUXXRh)L+Lh`!3$40OE*4y=#t;zmdlKR~Rb!h1~4-`|-I@V{?W z?UhLD^R=T;5%Hcbheu+_gMMIbxJ9ysG68j`@y*ZZS5@#Ytoecv0tK&yH(D^vraB>6 zuH=^;rkV`<C`v`}1s^_wLWKrnO@Kdx_^2Wuk_qr@*G(?zE6DO^zGxF6*;$#YRKGki zzU9OE>C?;o59*Y81l0u`nX9tV=vZlDI5M*x5QM15G<Fg%5QKe@7nSej#u}J#<wkg* zT8Z~RThiZbDO85;u|JHUeg&7IL#dfjY)S7?3FGxXT@)$cQEo>Kg~S1Jtogz!u6e{% z&AMn1wv!KW7~_y90~%wUl$GFH;V>9^7T1cK%`=CLCVtxEq;jI61)WZ07Bi85P1D>b zwIyipP!uxb9_W6Qrigt(5~@HVOicb<p9=)bRRWCxwh<de8@PAUKlu&N_E2+>c{R^O zSSCh><X4Q#(^bjjyD6s@s_e8P0wJaf-27LyH%PD%GXxJ;YKNYYFrNB(=$d+x@;pQs zj~7Lcf=C$4<@X$Et<4+I&-OH9qNLFckHa{HSE9MGUEjGUqne5B7^bG%Nn*V5_6L4= z4-79|YGdt0p{IG6)4Zn_zKNZ*SvPLihG}qtU;-*+XN5x&RbckT?DV&P-Q9Ga8LFXZ zBliYCPsFO1JMtBgD$!WQF>1vRY9ck<(bzG4uE%>R4Lj^(lF^(S@=)Up%;~xE)nB;! zIDUZ$xZuU5KiK+hJWD4eb2K@26Oe>3W6xHoBoa^fK`OMXc?7TY)=@U0^#||A1Vh4~ zSc&;24{0h8-46^CPhb}EB<-GI?yaj6gBL||V`td}TUZ1kO%y!QNajH%)v3qzXO7y# za@oS5sxD^!*#CzSkg^=XeYoE*Kjzt5)&F)~S+!2o=-74gxJI0tE5+&W`vxIq_wChC zqo9%dT0hoCLD964L3DNHLR=hq3@?;llbl|iWIfoKkc`H@)+<~&hJqNjbE>;qDWuI) z%=ick48ZK%2trgWQIyHG?GEFNFrb+a|2l-At|eDHmQP9=rc6`Bf}08L$tqD_*e6(P z#iNnY7oT7PVpMb3Z!ZN~=;%S>y>-r6f)IXHw$q4dnn})<XoTW`$!icw5=n0c2H}G@ z2;!V&?g&mQKmSA+#B_%MN=vd6jwH<^AR7GHm~PcQcqL-O6{i4tE2~?&(3?jfllEQH zmE!bgWV3zb4u~@F&03p2*Xhx>q$G)GPW~1r60G89nHKx53n}CSerOg4NC+7A9bIsN z36O$1LTcNeO^)5X5uXyoql2$qm566~1Oq=Em&(-R%KyFPB*n=dmK>zyS>!==5Z`kG z4*K)M@2W&&zj#Zw0Cp7YdZgV2N|pz<HaUWjvCaC(yHtK39&Dc9XN`HwC}2wjO+yjm z8@X-`=S+PJB}CWx-h+;_$tYAAOKBPaHBJX!6{!?P$JTRqJ%?fCmznHjwWNvrelFLS zNGV%z$=<8p(O@#;I%RK`Duk}}*I(MTFeRXfgFQ;kZj$t<qBOyd@H7P4=>F8P&7AXp z$en{nZr*{FYjt`E`S*4D(0gs)t4iumOJOW-UkGxH!0g;8Vy_#Z-p_BZ7F3x+pc(|e zRYt>fan$=^t`we$Pvjq>_+-ozqYvG6e`YZ`hq!SHuPndHDcUhMniHS}g_2A^qIRNZ z&-Zg%q8-&z#oaN}8w1eW64!DvpAm`_^$E6$e^V+g34HJ%(n#m#lu4GJIKRoiu^t0V z67WjUdg%?7gr8^@5H6pV>C5vF^Jdq-1(rvUW3@ZNihTAs&k%RyFd6rvhpCoGfg*xj z{R1c0iq<TiRk+CTGegof!EgA`6Q(^Hq<2h!v>qknYtsJ-h6W?+`cD5{%covT@Z0O0 zvnE#A0|1%`C7l9EFhg)ibZGRwZXuBWg;P=yYVtN2))6hpRr=pq0Qrglh#<9^oWYW0 zYqxDqyTFQA2V-zd7hn}+ucoBV*TfTzrEDy7leXllIHs}&IkJ2_@G>LhLymSwm2CSa z_(-ftf0)1de@YyR)cTcVDCgLqOs8mhS{Hy((|rnFi$m319la!QIbd_8IOQ7Mp2(xo zAnndAoTkd*%U!9IO<{OLMEpKmmhNET4YZ|ERP52N;irjUH&Rltc;gFiAxf}?wLOb) z&6kW=F<?!yXx<1WAcvP#OtRL}5sFlp0WCUUA@c0?vY1{}=B77$^fiHGr3I<hk~Fhy z{tfGt=6O4DV<f2AS)I)NZ@%VaWgbDrpK4os2d?mD0Wl6uRIkW4Gs#ZnC1d8<10`@p zLp6CkR{iED&Kot=y-DHD33<_(2u{5GIppm2Rv+^U^-awaA!+n3(aNydFS)pll@ywW zq5&&lJl9bgDl3$nliyrOm>)lIv8|5L!6<*{mLTK5uj=>20_JI>IYVr&kEVsx!Yig* z>G`B*>-`uLltvKkZ!m*O26$5v4aSgr%xZ$Wxog8cq~o+A-}F%dh?^k1!C{C1CR*Gn z7$dl`pT?6^n&gF7D*ivV-aDSkKmHrP&T))m@4fdXTg1sc$gJ#g5~5^FsLqj$gzPO+ zvPbp^M|Nh}5+_?^W<{?1aryl2`}e&ckNbZQ*SW6u`~7;qUa#kP>964G((L7wqXuBf z&&^;Ez8*?e2+x(acPj=)k^?aIFwZhKl|s+61O%Fw717{FdY5yWg5JvnrOf+}&7X+& zV^qKkR-8rIP|qwug~!1X4JRcdoNx?t?pOp^P8_(c;F9d&uW%A}9aXI9L<*ujJflRN z$GU6`qSgS$ye8V=-NqL0x1F{B$L=I0D|}hW4zm^m{-EAoZS@n-z1~AKbwZ3xiUr;T z402YAB_?CJhx*F6n0zjk!pc2f^Rqfw|9VSS8N`!RK3bZN5H`uBr?9-$Y3W(E;Q=-f z<2y6E=Pyj*;V^MPg$|8Fe7Kg&qY=p-HudG20}~LIscT;p&DP9ujSa4ehA-=3z?)d+ zVbJ94gvN=wfgzn}C^KdNMurb~(o!!^n)Kc4W19!EaCwHZ^X(LvmUg53s&qslAbY1@ z%OIDN%nW8m{cb=b0SAM%#7|P8hh!1nWal7NP@-dFq8z4!-yk=O%yk9VqJ7ur)YW!N zo4i#%<1JYlPjbD|RzD{upI1_(d$R-!EeYKvV2lZGC})j3WkrmT%k&HVPdt??M8h7m zTj87dcm2A8VAET1R)E!`a8vZ76TK)6Tvh!&QODiA`J$vVp8#7E)Gz#lpX^?9n}q{< zD?rSMDPKq~1Ae+KPOQVH@moLmhDa3%HA(shAs_$$c}b^b?O&XbA;x0dbxL(S&pGZG zzI1{p88A&+ynN<-jw)fY`P<&WTr}s+oCJxtWRE?KZmfLf#HACR$;P=a-ax*P5YJ~5 zbC+TQnzooFfi%8=;*QSYc$5tTgrY{|WQ&BX)2($KVC!hJhh0kEt)71<#KTej%3})G zXoxh8;etDQ@W)OE<8jww`}WtPOV|6qVEKLV&S<{Jx^~vgo!Viz5YIDK&=~$qgcjNE zPZjmR$Uqx5ABxHPuP`KsFdeO!94N!#?C~c`=zf@!yvAJ2rW~GuglJO)ZTR2Kg{*|` zW=CyP%U1Qc#BGnFxTBix<zID?k|k7pL!_loo=hn!r6bN+U;{^Nk#-CpDFK|JA{j>J zjaV^oK1sI20Vzj#QN(xz@2(ZZh`b7@z1DC?N!|j+j@pE7i`|(mG(+PMXQsRqtINNM z?)r4}7S6U_5n~y6`9*O*uZsN{Ea-uua}L<kkQHneQd=w*1>m}A{eE!a{~A%@F1h|+ znE;Fhp+J_qb+uGShGw<fD>Kgl`sZ+Mlsu^)Rczlw0fWW>ecPcdrudDSyFNj8tux+| z;n||J;H?5?$bj1EUGlG#N+}7?iBYf5Uti=+*P$QJn7a$Pqn(odS^SgpWka~rqkfc= z!r)V7=7LMaek|g-9xo|NUhB_KXHIs8+`q2%_k|6>E~y4Q(s9wI1BiIZk;kDx($A(F zgWVa<S03sUh-6*eo~_a>xC<fU@QhHort5Xaii`u!Xg>yS*D1h&B~gzX?D1NgincJX zFYzc@Bw>1D0M=1S{@CfB?X%JB_?z;deH879r1i+#RU?TkI(`_+_Gn;Q$nUn?H@Jc3 z^C&Z)A6xUFu>hDY7TL$!9U*y>G0y0IWlw600PH%viEcVfbUq_?>Wh=rb)eY5SqKha zYFxa;Wy)*<7ZL(=@sC$<^ILtrMlCicF2;uCxCeOWvODQHWCpj=GVlqpbP}5UFefmv zQP%Eb4KQ->NO|Jce>p`m)QA)68HVT<a9aP^m7gS-0$}7A+w|6A^ve@wkZ_(O{~Gb! z_`ka8Q`7*=fpehGxR=w*AlSa#{bldBf9XWW;$(*kJ9oElXpVol1W=0HBcG5fek|ie zI1mu5OGlt{mk@=3=m~8lOpxFJ&v@Y)AV*38w8T_S@471GKbk!Y+tCf@d;L$%X3B>? zjX#9)Np}6=>%N1IcRqId7Si`$eyR1MQPGnp<<%06fqx)N;gPr;;@V)ba;K%rhU!RB zIV=&Bc7>%OD%U!C;0C$wPz+Pj9*j*u?INRpu3)VUiD1lao4fSmNj|p^S_=t%yPkWV z5HCw0R}68)>x&Q2zrOeGp<5saocOkyjBo+JFDlW6x>DUgnd{-B$KMdLAZ-)eMpBXs zcwag9C{}CTqhZUWY5NTF6s#aKgAq!8I^H$F2O}N{{e+uU>efs@EfLHAd+y`A-SY9? zE9e4L2*b#f!k<MBz>Wlb@ow@*V(_^M&iM2JPO~V!JK4NuFl=oKVs_j;<ug%qVq{n~ zS9yRROa=GC0m>-<N8NtR18;&&E6NG)z-1YJ7)hZh0mZVV<Ontw=4<eCejH1v3pML= zIRc*(^|9h}67F~DL@PZ@3#wnA^C*2H5)~wb0~1>Q*B^w|+VVXpyHloe%3{AwS%Ud0 zh=RjJFb@hCy&i9JBjbQ?bU*)S-Y*2qx?|8pA3h|1h)w3aM$Zca>F|75%IzF;gl;gq zA#PYhSu#~qk@rD_f}>~{VwR3f8z!sCtuzSawy^arIm=W74II`JI&hdEiWmiuCg0+R zr6Tk`4$r;2^O8z;_<a9<ylvl1-M2~_$qa~mg%gK+QDo{}ORzfK3sZ1A770US(V0zx zy0vv|fS<{>4mWBIxZumkIz#+BHZDyx<hJOi{q3VBQ!W#oVv)Udtqc<{1I*gorBRR; zfS(SYAGGKYqk!&F{acZIB=|jXr_xJ)SFZMQO&7y}|BzS+^t(pHt!W4stlXY>D8UG@ zr}Y{tFcH4pN5E@lZEO_ZK(xv@0Eu{mVp<rJ#9wxPe4a|z`Du#sDCLqKKza7Wk<<VW ztyPMjjS?~m7V=Tu$M5x$E)j#x%axPcdE`Lr$5PsA`~S+>B6|GH7=1+?`(2^h@@hNU z$5z*OE@&N?Vnjps8*$ZVu?RE)2pQB?WeefQ8~)L)tq~U7)e;6uY^|lC9|CQSHz+bv zka#@Vu|+2a|E-*eJb)dz_AL4sNzWSsLRvtul3*o>f?wy&<%loq=tW>S{eqR`U<y4W zD5KLaVt;aY{ww`N@4~H#1k3=*3aZS%pu|tQ&hJ0og6}RmRSJ+mj_NT)J;ZCkZ=nsw zGHYuMqWSUP9A_(EjPc+uVz3|z&do>L^S4Gzew?+wKq5QwnN!n$tu8+@>$Z{)qe{<G z5NNyz;?HKAGi%XH$|Io+a<9N!)}N<bFMX;v6(-3vfc}d!3iV^u@-rN7p_%>pax>dT z>D&5SY|)I(7Ykho5Y%~L^l3^kf1;_#m_AW{M!T2YmbPIWDQO=N7tezZCJPzH;C@tO zP1nQvu?}m8Nh(<)97}lCLta=LL*-MulWgkmrf@-7K6nNa^ABS}OOC(x$HiG!iU^hg zbAhk|NZ=`)>*4n5ZI-37qESffEhS2MBAn3O6l3_Z7LFX}!{&CFh@eESwSXjp2pm~g zN>!n_q_O!JN&qk#fLO*j1RBGSs9Y+tn=$k^&FtMaT?`2S*y_RVM1phUUD7weAr2XG z;kfG|2sGv|q7pgtd;`l0OEaY8D06ObyTgmRJ|KDFX^+M{M=b1^s+DUvy@6qX_D6M8 z90lLgF*zp>1X1vFh~C)N^SVp~HcUIx+o_gV#}2gIQLWRkKsR=xaBtXxlr9`fzoY<^ zqfWKn0E+7DXvXYzbm~+Um-eG9#FrR=30PKI*pxxC(v47kv5g_ZJiba7vJU?GYxp(E z=pq?`M9E^X&Ae4%t#1jHKTK%&00Mhy1-n=3#rls5VNSa<JT{I4>3L!Ew7qxl<&gvZ zDnJH6m}-i=A+St;QA$FIy&e#;D?0#MO@s;F|0Gxx{G*@943H(o^o3_KC8FZUSlg<e zzleIu2cuV^54ofxdOMWrOYR+UR2kN?RBPp?6`FYdwmv)cdGy6M#;2hu$#LV<XW%#- z^8+9P*l9#wiG)<~;idehDHYWW;oS%?jw-rI#t~Rr)LhM4xI}3n%#GUZOGX&v*9;&z z-=J>lEWKyDV}7Jyv_80$f46s}ZK!G&T131rq7c}bjjOy0U0^L_h^b2nidRxM8bKZR z28BJj|MOB>fYHc+b$)3nRl3WEu4#t}c>rS&o|c?|GK0#gv3Tb;bS?t1H&ys)#B+lr zmmHVKu5A&M$@0Ich)K_JAKu+EXGwV>Z5W>C;V)ANYD&%h$Iz64x>1vltLp_ZhA1M& z76dV_Hh<xhj<sz`968QYc68SXQUX9-B3@ia!(XsOZf52TE2}IlbJ$T83j=5_(Vj6Q z<M21gyiV1b?w?U2<M4dQHL5Olgm@J-g0&}e<Ctyg@%kWzr!KWBGt}0Eju98csjh9G z19|RYZQhXs<^GRC`w|Rt2cT=#g=lCi0jC%u)o?za9WH}=yB5>GZX8L3aSw8vB4+-N z8%eN&TZg)|gP`kO5PM}mfO7TygQNm%n+a20CgKwsM-Irul7H8MYY4|_G2>WBs}dB( zU~7$_lsvx$%TI}cp6g-87vwvT4sT;$JyPmHX%zF3-nMN0O{m?iA+IY3^FU>nAPPPz zg#WSchuni0ZxsS@5!nmXEojoTk1Ze5G7FQ06q7C5>!&u3_b-eWQSds5bSp)L)~9f; z$*25$2CDuA?f6}$1<g_r4gS*ockUG!;A8QulE9noeuJEka9|>p437Yf4oEA<6{p%A z`~Lghtpa8oWl8mTszF=W$ZP*UU2~NGz^BUE5Eu^CBA>2kxN{+o6YzQsz#rE=M{V;B zuwIFeEBAnU;J-@`A|2mDR2~jgl*j4bymLtjh<n(V<<9dq{QEum7lT5uVTN2deqXzj zBmoDKMSphR)m@S@VfzLAS@!qQ*2z#5!W~EtV72kg|LtbROkili+&VjZj+L%ftD5lu z#FB6M*;tQ5JS%i=8Y0@kq03zy;xO+}z+#AY9-CT@J^5<!>m!{S@>v?6EzH`{1)@zu z$uzQXe0o~G11<wx|M~}O`djyJ+o#``@6RBaP2hqA19*3ZjOk%|4F3hI&l`C2d(g1r zBb+xX6O_*sNH8M?j?mrjzAXHIL{LmoI&n$$b@tDWEg=&J`(e-if~hCbcaIG4FK`E^ z{qMg@CSB-cl|B<=M9x^GbQi(wX~uZA39Cyf*%wr9K@@yW1Q4pW&CHIRlJ{>qW{nCO ze#rjCK;$1tbwOr!fR4)cRQ0ML#*mk2ze^;Z3PbiRI^|pV_cW#hG%0IcX&9tRhy##G zYOq?RV2-4r`%hiOerX)3l&<-Nd;3X#ABIFApCE3j=W7}}eR!)-T*UlBB0DJ%1sJ_t zBw(3m0Y^Wg%FY4k57D`sNCmB*Ph76wh^7MG(?sp}G|T60h+c$-C}W79&EOn((Y}f# z5^ek4*L!<W1!$rR?%5Qb1+)ZB;bCU9U9)og@YuvC1R8~WQ8~q_DIn;(*gXjrJ_wML zkvX~=e0w03Eg~L@c>m|pz(?byk7dfabl3$tjH5leQmk%%sj_W=?Zmh!rL>B&?n~O+ z@F`9evfO<Yn@8T-np|urm(|gV>DNm@sWRaAc_Nah8>>Il%TFjSZpsW3b~Ka3?h!WC zka0L6m`AGAdX+o9s4rYKO-7?h`QaOC*$}E})oKDs?h2q@m^@$Fk@mo=+(k5G?gw-7 zgYWMw3Z(f)lWYeHh9zJ2H~QYWV{uC?nQy4Vjeohv0AG(_cTC<pbP3+a#+-xJ0VaE@ z(k`vplI|+V$5}v!OW+gSlsf&6e297ipgtGlhok6u-zR(D0#Q7$AD4PEf0rrYn)m3^ zs;c~S-NxHbm(2NCYIT+uDe|g{l_V8a&Pt?Ro1U)=rY`PaVM#`&d~dpx)hzaUx1uQt zQ6{(Sp`3B~YA${A@*?JZKBclvdBfm!-zXW-8*nXfK<Y37VR#isj<Ybkmn~?fhnP56 zb=q(>Ng11ZnDwW$o}RSL`MCO?=wQtC^nnVMB*S|HvAsMpFZ<T1(4;nkqhRQ+TX>(# zm~VSlWY#y<6mTvvrNZ-C-@X~y`<O*L&RJ@RC27VFH#-#ioa{5VS=kvg2r91RGz~t~ zCP!Ud0oHVt-{b9S)1W-_I0{AX9nIZw$8AK87Kjwg9a86sXiu|c-+44)<?Hk<ri*sC zoTC4pmGIJckugHJhBy^T1Q_}~|5d&?yxcXW@1e+KuSlxkd)P-2=*?jwxFchRJTOOj zbndK;)UYd}=^GmC(Ul}rNBs~8NuVce<-b3+QAHwh@T^L5ZJS@BJlrL9jay~3lyG_* zWX90(^E5;e?UlJw_qTCb3FX|%ic`{Adej)Vu5K6o7|3y;OO@fW6WYIr+P@Lv38k`d z1JvTHtZ!udSW#H1v&;a<^F1>RZ1XpUWYD=;$f>r$FX_^!CU8MB*`7&1oSI_I$G2;A z*JxaNKATook--R*nP2h>&?p+PU?94es^?~ZvmHPD_3H!!0R`A(ZO_t%nNF!I*;P`M z5UP(PlqnI%1Y0XB*(r4>oN(@50gL(P)e{n_yfQEHSey_{9FT<eG;atTW_<6DsE1-W zff^&0K}GniddFZ*v8=2;#97(;kdJKbC)l|XdDj0?(MRukgXq<BYV*POt@$j^SqPXN z(~^=UQBjyHQdaEAnKS*4224`Om-cv@vw>~B%2AA{GU3!Yz*bHjwEHiP@}h`=0vI$* z4SK4Vm7YRNeEu5AZ~kMqp^3!wU6;Ws9?4TGgltNWg6`4-m9v~NoZl1AV{b9A$ajlV zRJirYwPeXs<yL-4XMG!GWD*BV(&~;n;of>ip4ipse2NvYZBy&7=3kH_(PbCXyUgf& zD?kfih#F<PGMXKK%iy#mh8f{<nw`#vT<;sOoTnZ6x_7&N=Dx%-MG3u+&%1hRaPhsu z)>0#y=@@I-9iI@_|4W7C9BNFNz4l*fsT6<3ra94cqv!-QLW4d2{oB>yzeQl%46@Ji z19<>DG+dAnj&iVFnw*-Yv}=YDWDjpIy{NcO40IhK=o<o0N0)E<c-+<D=iZ88&$hoT zBF<yWnOb-s0qxFnVcfkSgIj2m(Ej)XmqwZiZyMgeZ7zclnFiufZUkibpF)~voGDo$ z2mW8P{K_;S?tK^}G0?>_QD|CcN~lba5X^lBZo9{PS@wNraqBY<8{t07*IHB`hOHEp zE+F9XX}AcW(=#6DKt?dspw^uWGy63jzR5zb2x1>A4}c#{F3K-_2EYVNynvpD3c)qO z&Pcq0%X+_m0Kejh30l^$&OgE_r(*L%_(sL#JvPolySQJ>+`5#%bEJrv~{G6K41O zD?ern?gYUfFDvwD?{Sw3m@j5mwF-}&VU2kzKnG2-3&}PUY;iK<X0;8Z)aOA`@^j!T zXelrwk8|E})EQNJXBN4^&U_#JS&Yl5wF&jSC9f&nGrp+wqcmlKr8J!UUI%;`{$5P7 z^R4JJCdqgNlm(L+E{$etRk2=jF3o4D2amQ5jAm{td;DO6w5S9I_@Sp#4h|!KVOLWa zxHueeFJCQDx$GKEv{8w~&*qmH+*Ggm6Foq?F870$#t3twEl=8cTfB#Wq^U-&tTdHI zmHp$pJjb5&qIU3xgh^Jp)X)FW{=E}bc1(aZi`%)UamI2YfQ*LZKUoM+7)CEElIsBs zA38Zv3~-f|z4Kpu#HQp`%T77cB<Jh1eDf-qM*a4KSN%_N^v0}`M=z0aA6mXAE%hU4 z+TX4YZ4rXqg-@}`Ts1T`-gYa~9CCaZgcSDPIDP!jQ@vR74FXNzh2H=;5uuQpY>I(3 zi~~P><m3#Pzn0Qf_Gk(j6&+gP%aT&F2zQ>;*PT-q;rG}0^pA(9-1Zt?V#YfZO+2PT ze{Kw)6Tvwfgn}&`(oXDSqqad_r(ohOw!UKF{|eh!sK-O509mp@f__fyOnS;Ku~RD3 zE7W(kuOb3}jC>`>^T=1i|7Ki&+hCJx!}&xq=#dIh5yfgdQ<v3M$|nO^#v&nZ40vBP z(socGJX)G#qKaXIAVUBvCcH0dD=)|z$LhTe4KfZ7gKq@+?tMmCmdadFU?t?60X3FC zW!EwC0lA@Pj`tCjNNT><i__JA4(CCl56qNpqnycJz+bsq*m40HuaDR{|4MkbI)v<h za&wl=i2kh?_qKu2s;nv4U1+0@jKgz~O||`;Gvfm<s_pw*$BWr)>)|KwY9&#Os{sSl zMmiNvze}pOObGow%b8izw9KTZp1vvG$6$`Uyr6ju5x()>P$p9x-Vdq3?^Qs;<4=3$ z&}0#KLN@^VR!037YmMMHfQI*jP5;T;W_MX`xlO0n%pZ5|rZkgtT>dd-u5JQok6Cgh zs7h;js-fOqE?C5n(8g`4@OF!%bNvwFcZz(;XCImP#0A~3YNhH>4RkaOUjg$ud?v2J zogqB3iYw?*7Q)a7Gfeh`r+HK^tM*|8_o>xg?IY&nWO<opsg3oNa=QIgzU>@a7(zGW zF4MQ-6-xVup>ppx^=Xj=o!g`Zpu|j`#WL@)E6;PnT*Mf*gDlGEq9HPgXb|!?&N_g) zqhzkK_~1wHodZZ><GS;9m&!Z4%ipvEF$Sg;$K<XLm^%)Y-Z~(3#>g=+N3$FJbub8) zdxxmxxE(u&T@^Twd=<yljQMvsn(g-0|39sBIfNi*sBBzlHO!Q8_l{ha^Ut%EVvbNj zhe4+Uk(?Csd*s}m>S{y>vzi6PaE<*p4;S8ZeAoi33C}*eDZBZd0mueE+(7|*%4ME3 zmSnc#kMb!BesiXW&Q7D4p$1`Q(~ELY7)6YK+qly#h=Nm-y~mIQ9+lT5VsPv?&wrhm z7mZs3-Q=XCYtOBSyLIa4j9CkKrLN7Su2|<YMzgDIKUemg762LWukIOeS%8BtqeA!F zHm~k{Zw_$M3H^ByFLN0Y&ufOoi8Ut-E}Q}H6Yrqz*<R*E5Z$OA3K)#~VlKN+IfnFQ zKWjNOzX@~_upGQJI4xUkDxIRI&|Y~Q4NT;!cz`kwV)`USf0gRKKHDIz-do#J2nB6A zTuz{xRtN*uskx7z!Jw=?(p46J8c^WW+x`&E;0V}Hb4#TKe<R0dR?C#|@xdQm>h5S$ zUS+q_g%_u1z8(-r9gZ;^YmaS!LL&axL)r<?iz6q>1S73zw(yTRfby*n6g4T>9N^*< zK_mevZhtBj5;uy^h_R}g%j9YjqMkX?d`*36DD`NC-A)Hy>>8~lc6R&y%j^ikJ8375 ziN+j17rL`y-G`;2P=Zcvj34CK9`WCYzPg|p?~adY9W7(uRV^T$D%iaiUg#(Zm=3jG zecxpvgfbI+eO>SMp+PN&0x{W_$||0#yt(xtn$DL?uCp*Rw$}B__lV|iRZk-eun#6K z3}ku{oS*h$XMyvJDOPfo@Z<KwXur?u-)t2a2&A^}s-i7{i9!)8jc#3<zF>>MKI?+8 zH2eM!2j729e^bnO*S1|Fy4N9S<^+E%eQ*dq-TCKm<F|{%Ckpm0wYmbfvx;8rz6FRQ zYKkAU^W6KrAOZ<=B5@={XH3ueTjb*W7tW0(08bO?Y*IV@{XDm-=lu82+n8M1P5?2* z=W<G$`fLnS*i-PTb!cP5KPz3rXr*5;Gd4@o$638*^D@Mkf(#M|*>;uDI0Ppx>s7P& z-vb&9kZ1{jl<0Dpc()h&nLn>cA0P&Ve@!jZHghK~G`-Gh`|JhclQs~s%gP*L#5s2! z@S%Gt`1`knJ3E@&14MN%5MR;&Ccs(!c=Iyy@k<<u?q9Jy0Z&eDU!SXamcZnIwjR)O z-X0!j5d;rH&qXuZ{DVykZlr_bT3Ey36e(x~ktt9QQj8tVfBoGiEpz|Jq0xu)MMj9H z`ajG#acE@=_*}Jw5D_&s?mn@XkO$6ki0tK#@ml(N#D3LTohAdBGLBJ_o%?%cGUF)l z*yY(rK4%l4VE1vUR(S?XVpr@Fu$k`r3TdSW$D_*f<dd~3h~2;-h<~_^xVk%uh79GF zyv&*?t|r{(@b?wcq~K_$xg%iB@s0`iZ_Ol^MAW&e5)p_owG1C~n^=YSV^3~cJ#rY4 z`4h7cjtjRFo!B&&pbq!+lJ_vV-|k!JhN%cUNNqhV(_Q^ZVqN=#bVKRGdG&|EJp&v< z*bv{o;hAUr6EZ1@!=ZaHCR@L+_2q^VVGx<^{c&^{|GQ}MW2HZxfBLnNe>S#iHofEM zK38>w#b_!3GDly*`GozAFC>4=8niNgP9);@?J2X3hzCO19Up7v&gQu>-JWzk?_h%s z(D<J;c|5x@Gj`A)^5^FSIFv0mO|hYLQT#j(!(}SxS_SoAn1H>3PUH7_7xMVgTMBh_ zwz$_a(fyQHE_uCPfuCefe0=J9ZEO3>@nzOr60o_NVVCkoym@ruTBe1>q66S~<#@Qb zB+1CD;dJKLi>z5%G4jKA7~%8RJ>AP^6OjrxZW=mAMgj9f3ZE9N+Lt%P8=e(Wq}8tZ zR3S-0wK^f)vhNoF1Az$=0yzs#QPcB=5FsY`FyBIhzdeukTFGMx-p=5Pmv;%zw*aq- zsfJJ{p?;B9eebaZ)MNv(@V5C<BBPW98fzqnS&05466*ET_V=fU*B>l*kB>io^NyGT z=crJk^hw6DS4w1}H^8JQrCyuP?7HOsb4P_Z=WEfx(7e3Y2DnRn$$V0VMK1C?*zA4U zMj?HHUeoW;LwzL$c6W*k*%dQKfnD8){JWhYB!J=&jtRdl6Wd=Z?oQcgC2=Cj*}<wl zo*f?%Ai$bS({q>6WU=1E$e@Q7&VF3^Pbddqa7Q7Ae;b(1J>BoTe?mfieorYZpL<@S zj+;i;kfA(!UR6YVUiGbBYmj|%>3wRJQfie}2F_A?Fhe}RG&JGpsqeeI#dR%(l)-HD zzXHpL7qRt!{z5zqK78b~4C92~T6!`0k6?$9d-8QQ^2NAP(rGQxqFJ$wg&F)urI6V7 zCu?e_;?(E${_lm1_p#OM*I(Nmzm|;clM)&46_PSHx8mOL&GtxJaV3nL*m~C5M*(>+ z8~n>$$odN~pN2E(nf6G%4(^NAJzA4xRE%72>2<AUyY%qCwN!-G@}bTY_eJqn3vURd z@G$4HffW{QZ##ynRIt0j8Vh7jByULIR^zm`>wdG-RxJ&tdl4NjjDQuHvYru*yE(Eo z2Ir0x+!JlLZwg`S^9)nk&*s0TZ=ob^>Nl{*FSR{#Pd@A0)8SLXhw$uCc+%m61u2(D z!ldX_t5x}vW9NQnzHRvQ&@Q|loXeoPFfV%sImC!Vw_pm+7B;)xOOE2>j0x>hZ20j? zUMg2)MTf*N7dx*Y-qx*d7KWSDl{wqi-i&I#b6!C%X}F6V$e~NA;ABZPm5yc_*n8#B z(P`u!qKMCtHt1b_U7nDxIBQ~@mDMrd8G^lSjDE)R<<`x;Cfb&N;3W@G`OhiZcO6c- z!3(3`p@fxNzhNVXZ~{UM!rl(%>QeX`1@m$zDg}-oJz4ZhTAI(+4m>%v(s!mhKWtJb z*6m`M6wc>qZA)5UaP28OO^r3cFKG%l93Q>F`=T{wnG@S=(&L1kkhzZ|0dDP^E5#N^ zQ$hL#SU(2=aGsKdmjpN%vByBB6}R<qCF2`jJ5X!(wt!hB+$)W~oJpgltyxr<>Ket` z%c5Lm@b#kQzwKPa)B?X$Cu496HF;E<t(y2o;D)m9bNyr16&!at802g}_X_nS)}n#u z?bQm<Tq+5etm#@dwGxcGHy0msvXP0$azz1;8j1)0rP=zc&itlcI0U(M&I`7|w<Is- z1z_|$<S_jToeICy-_U2_fYri}Wjf(go1)CPzYJ}p5z)RYI)Y2$_BHb)UEaaImG4^~ zJTPpn3%pS$(h|_z>a8LJ-Wx1b4=*JSY&vIo`l!=8=(IDT;S;vJIds-Z&74LEumAn7 z57oB;w?}Zpmq>!*Tf^CT2gX$92t&4(e{EE3?yM(mor}Z23~-28G>#l6u<(-xYDc07 z&S{olp}drKti8CR6rtdww|m)&-W<hZ#Y40<-Jih&v6BcYfp0(gjBr-o``~It^q1Fk zrE$V-T{%+8Z^;{hY1MPu;dk6sEs_}y=cXw)`ijVutlF*g4I&Ja>sPg2mVB|dy2?-L zb&Bnwo;y$VBiN`S<M1ya_>b?}nGij1hz0#f==fkoKEZCio5ucVOGNp_@(i)}aomE# zT(h6_vR6{+mSEoI(+Apy=j<O2ACT+|aWTj29{G7%YW!P>JR`dbDq#5Xj}a^5;Y+?o z-mglA-_kfClftpjZrHQOKZ>=u45zrC8*Q^`;`ZJYocVdFF<+qXJNS)C?SU|iK8+U= zN{~gh>A?lfY~dUvK0ZA|HEU9@D8AAHIaxfZ4D1~i?aKKSOAN)@QZSEDxwY%VH2pG7 zRYRp()E@RUGdm2{@1N{7(go6fZ4KPV%4YLFjp<R3eG;5w&6zk}{<)sz?fTzh6|OHG z{XYY^eOLm@$)sq|bZN>r&6uCMUe&S`xcfq4J;Y}(g}OoXgx9)ALbx;nfyOr@8p;l~ zrYfBUQE*Z^vz#w>b<tm%+ArNxZeyq2k>9!EF%h@u@rRo9AkBe07RTMd^F2F-Mng>$ zY!VX7r1PKeB7Q<nB3kiz9^_FHTwWZe?B7S5rw1&h_^2?4{L|oWWRlnNx%uE4{nn7T zZu>OZzVD#$x2@zG#JcOrn&jrrzr_acoX8%R&`*Y~ecM^USbEH-xKPrv;B82earhdf zO3)RP=4{CeGY}^Z4=axuCGlXzpG`zXFPOH&stNit%*kXP0%CJ~vf-HE@2C5FV2c7j zPw*r3)@S2SBxE&d>;{}?^{BobE(HIlUqyT;1^#KFUix1ti5ZFD1oj@jzuI2yyRX(k z4l&6R>i*N!t~<o|qi&9A>+|48#`$NvRWC*ZtJM^RmHBoY>LVNzt>rFIhI0{ud`lA; zQcVis)FQcb6We&H{$SfYpSf#@nT#NFhI1z=r5$XID4(eS?N16>)dC^>i?6CDT?!^= zZ7&}5CI-v<Oq533k8_70AL(S|Ru=W}`4roF)QXw~B$n6o{%gKYww0W6uc<m=jAw`7 zsaE&6a<x76+!5iW%^u)j$o0r7wXSnXt<rWzeyv~nxcsZR`o2|7&vI6GWZ~XK*wU`_ zWAcxvXVEIW1Hi&_6)0Ycl0dY~tMSf|DV9JbOT8o*QiCh0?C|hqWOZlrNIs`62XZ*r z<GIstYG2h=1b%^0e}tbQ>OnBZ_*i>q&>;%%z3qzZpEfqPF=t3%7ln^;s>DX_1@V<& zyN5}GQYPh}l6=W$BxmoM4{f{@SS}+$<L|u05?ocO-p6!y7Pz>LDaS~DR_Sf2R+Jvu zJ+Wohe(Akcns$cKp^3OWDr$*P*!a8~Ihi-jf1h*9z5cWMT4todx9#>n?=4F&nob~6 z<%#iM9_C=EMhSx7|NBpVw)^%s_T-}udVE-z)X-}mHV*+Fx53_{+eY$hcIyT0e0I5{ ze-sA19r~P{Z#kHpUr9<(y~$MdNt$2(DqSTlX;u1HLpLq=h}~DtF=Er1L;cig$8Aap ziM3u5Q@AIIKc+@jWhZ@tx_YX=^99;Ht!Ae=XucPr3m#UF{p|AQv-tXhxa)@PUESkm zwKv@4F{69;dYLcr3^z-BP2;86>|;!dy+PfSHxvX}(L&vNM>8ijK@{8s8I9jO4IdPP z$o>7C#4{GYdzzt4c+X&;y)U=*p7~xTBo<ve0#zzky%sY%Wc@Ma?!P0P0T1vX#SDAa z&H1}2kOxfc32CcLpVV$^uI_XSV%?k%b8*p-^hgodYn$JFFco*5_GPQ8FkFTyiY`QS zZZNgu4|rzd!T5Rc#}wj0C5P8(P8FHD+-)S(_~L~T!533`Np!2x5N=+{mrGhB;<dl0 zofb@^rv8d2OuO%1ia<{QlS8(WfZdYCQ4X(vt1I(MNu^(GXXX+iq2St)LN!jDiaY}Q zFnr!LM^|sXxPg{YvEXwO2MI?=9EmF|)-&2r=&!Dr2JGfanFo1)0ZUJpb6xM%Pcj}6 zLNl*!kg#CQZ1^wQ&RdRybQg|y6mT{b5A1{MhPT;t6dt`Ir#AmEw|0xVK2*yRIH1Tq zeubl+{&{{}BGT?I#l1xKNT?+KT;`W}ROY2VmA~HCZuQ!jU0&RJT>d!bF9`Df0{J68 zfK79sWaAP&1ERli4fx7Gr{agvr$N<{u-3~q?F*35E-v^)vp&|aUYlVc=vWBrVW1WJ zu#*Y${>)-=Pr@Q!cw=tA<c%d8rzJBWD0*Lex~xHrlQ4GX?QJm-!OKy{Y$~FeirDVh zhre2TLHsp_3#~@JEPsKoouPSojY@gGRu5iaz_}W8^#Sjfz2C2mT0bmzLV9Ftys|5> zInIPs%<6D&9bsGR-&hdz=D#mmLu-pOY!&a0XI$PU-+9u1t-(pkkK@20G+g6((z^gp z=b5%VN<j*Udx?Ze8wj-z85-aaQM$Q2ZfWKEDEy?}?2qoXhofqAUcWL<c0Wtq`1tp; z4?4FLNoXvlu!?%O`DVyWxqC!pt1jwGum&7|ezGT?p6T@<JU;|1pHEA;V-16tk7#@a zqCxP)e`(6&B0Hs;IV5`yn_E=j&0Wbj7g);DAX+J4@}!g){&=BhfMqTJx--F5^Ei+$ zuJGn{p#I)?-~Lgb$S?Zjz0+5B_bd^hZ{thdM`n#gA>f<Mp)=D;vmDvGP~#U(z`&*F zvq>lWD=vUbSA+sDLD@@U|1)aB28DX~gu^4}{JyRhvw$lbB-{)_{CUEub1NgGgjDdu z&p#v$WI5CwXTNSeq&wO9l-9|$g*j*i>#ZF;W}oA+)}H_6+V|kp4mr=dJL?hw<l}4< zDI9)&nv%3>*z`SXJ!E-|<oK<0OdsW}A%sVNFv0&wR69`GOB52sv21yhwf;>tDt>Qp zy-FpC%i5}ZKFNuo88KkPbU{Ygvi?0)<wVa5i$LtD#s}BsFI`Q$cljE*+0O5lrYpj! z1FsBU6v4P+RZ7VDVgBpL41NsdPlGDycS$7Pj=843bbbdiuZt6wYdz}A#iHj;0}7UJ zr-2)nA!#_o4Dvc<K2VdY%R!*=qlj>Cqy1Vc1Dg$%E7yqzEDkJx`RU}lr~{^^bV@`0 z2(P_u<5fWxSt=C!z@1!1^}+Ct#v4SzpsBQB?@8?Sb2pYr%H?H;kL7}F$HPA(tHtSg zVNh4p`kONZt`8wUO(n*2IB+COr@8=Z%Xt~(CudRO-9%m*3#GEM2(KNUPPf3ZTUs<C zYfW)Qf((@!s<8UD1lc^%))Gbjwt89NUfT5=hZwF#*hXK|vvI=3R^nxar1IS=RglT) zDRQaOv^ifuil&_j<*U?8e}H~!bl3Xa&&Hm;<oLdSSM~wo6)wZhlY7X(Y^dMO&uLV& zl>PZPzMfIzP^~vpjPY%^Z%Ylv?rYyKZ6j@x+k09n(p3K6b3_phMpR$WRZz}OO7>^5 z`*+Dk;-2_5<y%oJe_M;C#I1&38_jyhiKqT^x+RFw<t1`BNu_;wi)QF*oZuPTZMI$` zJ_PQ2ga1{$$o@vhp0WhP&S?ORCzXAl9~T=wNb5rU!AqA5=S9EkYlX&j3g9v`R}Wp5 zHS0e(Rou101$7b~bCv>gbM*1Ft&kDnwK#w~RdUF7_+U8~@N#XHZ(lK9p41!3VHwGJ zG6LtgM%*o^`7Y%K_LHQrXDBglW3ad>u4uijDT!EGd|9w3q|F2_NUIJnpD$_`=;e+F zkdG5k)Q8~wT$W^-SCb#H8SBGc@)NsR+cFPwzK@L}yOrh;3F7ap#%LlFD-5A^19qb2 zX{*o-b6!A<J^$52?0tf<yG9ER7Zt99|78EQ#e4uw8mr~#d0_zv&Nj;*{?UpT6Z&}a zUOr_L&Z<xuBF|lVU4C<PT-?TNRpmZYL^k5=8W2(OyCX2ro40z{eXi%}*T*EL1d>MO zFcUMF?9X`0pUHvkvyo38x!M0RinC4r05WikpF@$~6lyb%hTN@&`aCEgbBm=C2G$S0 z`?jtUmS_vMy;J4KR;ddcvopq#;*gZA*!)c-p^+_&3E$EzC%5Taee%p+X#RWpRX|n! ztOk)WGB%-5EYiLNQb-g#OG_5nzba<{^+vIiQ#L$E$X@6Mph7bA3-X(zA6Xl`|0U4j z-b^6olH#p@m|%O2=V#+Lkw=*}_3v#skc<&1X3~|M#lRo&k|u%qqPho9H{u5gU$40J z$%oIrh`_jMqt6f5#BFY_J_{~p<~VYk`%xEW4vMH_&UEQ{VGi_OVEBQMuoA=@9Y%!H zb=lm4J+pgmKlBT>Gc9zf@%<I?c>1*Jzk#z;hjK!=(f!z;ml_}3GdyF*wb0aqnp1D$ zLlnB>n%b0edRg~VW(-eCn2@Rz>o<%(sy?lgk#Go96l=Qu-)`?k81BYW$(bI;T(tI; z2s_|-jKQ>Aae%Lfv+$l3mOHR?I3v_`B9a2qORB(OoN1#fsQD;KZackM%?f?j=@;0V zN3tRT?xtJvV9rj#mp?3*I^_w%2kFkp!1=5~9ivM59|@d^*w23}FNuB?>Gu==_#J8r z3Ya~g-0WoUp1<&cbfoWH)p_<wN~+%7s1JkWkCrJfkCWlfj$8aWU;L~b62u75;@^5L zqD(wyQj+)%-X6toUR?q?>fgWrUhsutvXEitppBUh)V!oAJT4TOUcAwMR9CPx_uFd{ ze;HCz@`mI>ws&g+1LyGol9M;LKFVQUR-A^v>$=#t=n6d-T$|<x!<6>nWUUM5yODV3 zolkRBLSm+Ph3_)rfC8J?(l;Mv#u(Kc(o5=}*BF26|6)Fvt1CR~+G|iq!s{ANhD0>W z@5yZFQ&@`VZm?2ZC_HH(l2b=$#|H>;$w9GLL_ej=Y)K8DJq^6?f~)>H|2OO=(ygNB zW~zgUViyld3L4J9UwJ)e(m&t(N4go&{Em?f-}0K(WPuajdm>(0p@Rh+^TT?2zU-an zU%*n#zBlB%d>c#C23`@erZN2L0O1uVxFL=l7$Sn`;QX@T+DD!T-S-wn^P-zILrSn4 z%|BQFrs{V&3qQXN-Br}47)s&kw(zc@HoRst#fO92%rP>1G!?PEM(8Vs%X9JihAp}0 zGQs!YJU0Vdz{F{hU|s|ojjNP_lh@w&?kJO%x^MUJmYppqJ$}E;2y6M>HnqvpuB6Pd zNMeh^GT*;FU;1YJQwJ?FC%(9+*?j{`V3rXHkzgW6$Ut`b>OZgazF9T-qi6GKN3E-$ zR@GN4VJ3}twW3^uZYX5j2Dj&@_#L)(Ud^%mH^0!F%<E6O=#{}mK^Xm%F3N~VBb4*U zJ;SHHGIIw$Iaj{!;Z~`=`(^Y3g+^a#svK|1AD-n+2@rbR|7u3rE_=Tix4Zeyc>kPd zW=y<7>z+=9jQbA;GpeM%Y1wo0El<a!tXwk5_*HY~1=U&7DTg0NOp|c{vQq?h8Ca-x z2)rSPf?uI^?ZW+=tCiYQ%7f*-B?VN0M#ly_Y4)GVH$44Z@Ik1~aX}0f{5Vh{PvQHm z2ewYqS&zQb?nWcvV&I-^G)S7R&y5@{_kVXfy=>z8_K7^j@_C-u`sl{L(}t~$gSM^( zbD`$kT_gkxZR*4QfKC0hGf{fpkSYF3s=%E3&xO|X`EFg5k+*MY&PcIPA4Mq}s#bm+ zzdQR~N4S!!ZF0WcT~82Ia)a;79C;b#S0v5D`<Jp91_w^JKN{)b*Cx}!yMNUL$uqFs z=Tc#$>nr1B7U5^ui@A1a9k?GL=vc9zW`ILb!ZVH<8B;oMZRCl_P4K)U%%fnZrSSTO zTjpuhi;XDwB^``fbX}%pP4Cl@oheRYs@JmOgEKa-RQ56_75ceK>}cQO)!)cwO7n#1 zhne044wg6z3YiTRW?a@3W@9$~@vr>TC(>+7M4<8fh&(@JUGG<42t1*GgImG2Mt}OD znrWAB`{1$e+ama3*<wPBkG1q=Sl$TH*%xbmv+tY<!L*IOzxRYs@`QPNsn<q7H1Tco zzc^#*&u|_h$*J*K(Uim5Tap&2EeVt5yty<bv?Us&zTx#0OZinm#=L;f2kR|`j6=;b zpqRxk<~|B4!OE1+0hh4w4^zvZKCMxjMW9FtLodbhG$OGN4>%M@7@Dmf{}CLy0^{+i zcbM5s%&)!L=#!*x!nKy5Zkpg)G)OeAaO)FdC?fUC)4j=qGK(lOpv(f#90H_KJ>La0 zy**S(%}t5}*<(IDJqmKpJR=qY&jwCk>#^*p8Q>6-Iyh>8!k;7nGBplD+_%dmtt{@7 z<u`e*Rhv@uYeR|A1lMfNEb(IYg|gxIHN@HmHQ}g>F@!dH+kYH(GQJ=j_%PSu8HxFz zr;Dl(sky?bZwgx~iCB*$7;*DiU_)<2l{f5M$@q;J(c4Esi`Hvdlm}?Tq-gBa`5v7` zi^uJ0{&6ot<;Crt$B;|J`*j%L)<nkPrQw+yaih(}H%Yj%1h30JV2ZJf%$Pd5cCE`w z`5TfphMEx2%?T@8+hxvkId5(;j@5a1vMmsGF9=)kCqjUih!5r<GH*XhexEM3nk(m@ zNxs8voVJIzf2Qja>_K;?iY~^V2DgiiVF!u14Pp{@D}tLi^RR6_{!g`&I&T|~EC@rW z<46G_PyX}oQSGJF3tUGPez_8aFPLHNGX=4nIsEsd_20$hGVrobon&9ShQc-v(k@)r z#|JY#w1~?P)W@@VDdYuG_j!?@za&*$z2VsLQeTbIqSnA)Lj?!Um~og0blAavKR3cX zv6&R!=5sp3%Knwem=R)q|I_pDAG1Xs>ahpi4a<%LX9arR?`@)6n;GtaIk}bsql(v# zc$EcV^pU=B^G}jJsy5u*$T-wBdNXspRo$@@+9$zYP0ofyw@95Q8@Lqs*Q?;&H53=@ z*}$x4p<8NRP|m=QrBtV8H0;k6z4z13w0`iv0)o60<H|K8EfX&)zNJ5NK#S+nwzXc0 zoITGyj=N3U8S&M1(>daK!O9uP<8pp)eE`d-pFUGjZDhOLMc=mOpB;0-B*%z^h~Cba zCWgKr#u)yv@Y1>LSPN<JW;Z1>zs<XEpG|;Zi$p%k!f+~R9I`6Bn2z@Iz|$)(f2@w- zRaHv7?4yZ@kk>;Wuly~!Z*|v!=jNDcj^7-BtxD$wJc<u1o?}^7^e2xaG~TJda;0T@ zu;f3gGw;nn&l~cBpEm!_L#<0I?Fj&~lQ%^81;c!8F|mBOlB&d{^9ySIMcFZ=*Zfs6 zGCMsdI7y903g;_5<sG%V={WX%S(EVwtM3|TZM!ukpzB$HZhp^XxKrWocKm+sA<tkI z_8@VnVyFN2gN*#!Oq|nD$%#We5}?(!N%?UYioIZ2Et9!NIR4qTtm%c1olThibgg|- zMvbEnS*7$h@=3Cw&-33ryG_pvd&Pj#>DrNun0*vyHT1e_w<2|&CilCS03+DX?s{f- zHt=%`nxOp>-~!Cy!xcg>`ba8x<}Y|RX0JM9O*o$V>ee3DV&bw$*lmLj-~T3rUWT!P z@2WR_l%ugRNl}(XZL$$E-r22gx+SF@{>=ij0-vH@|Hnt>LaYIVq6=y=9a&-Fl%ozX z+wkFL%D8@jo)~F0h-KY~H_{g}a*>mnr)!ESfo^SC*wnd?S)KN|x~fg9d~cXI1?e$G z@bR%?4BrV6BdA%hfTelgkbyw+ensk>_++mg2cAJw>QSh!P7TqcKB)(p&Y{Idx*rd; zxvDwz0?i!zB~-;fa&?Wp5OpM2B?3sDc--I{!3b)<FGRBEueBR>r7Bnl>)4n$w`}M6 z_l=&?K8s#?v(pS!-1xtUHK6htk2loPmqelZ(Ji(MiNQ)Wy_RGMy=ph(eF=&yKK+Q- zl!Nb69w?kXpEriT)We6+N6GtS?~Sw<`8a7t5QYoue8}FNHx}BwnORCi`N`MjeF<?e zff5=Q<OmFt!dNc=qenl6Uv79(+ABiiaX<O@`PyZe-yR4j^Y|g(Cvo>wE&7`aa{ej; z8dHQqK9(KF2DKWUD~a8tHmQFp^`#rjWT-wQec0Er@$_4_ToGx__6a00*ww~S<Br#j zxRJ;>6c6oA`wrMY!yJeR9lB4c@orjS^{_eg)*e2|DLrG6R_(LT#cm^@XwmyKOJ`d3 zv&v$+dLM)hYATctym~ci$3>17f@TNy3Q6<&PtpZZaBo8#HBRNXH8-SI2ocB)9aNjF z>1AMj@{3m?!`RpJ_4;;F1dT!RB3;Tx^dmVBg*z7?mYOUC=0@Gf-XstZZ4}SPEUG*6 zVq<H+_o(fm^K{@phX3saP(4<!W0ks$16Cs-ITs!#h$6+qUi7~fhS5hlz^PdM=AO5& zR(rt}^rn#n90RJun<pbnT$A%x3L^#O$YT9!pp#%63c-8eK$ac<{jIXkAld6bzPjL) z-JR_=`=6=v3xAti(z~&Lf?q(5RoVxLLT;u9SGxZR!RRX~L+(>*VC#!*>?`rZdQ|Q@ zy?SMCDjs(X6VBWmtCoT`<?da7<*sidd2ud|FC%WOW94+tJ<`{b7pt=uViyjiK7ryb zd+gERe5rfF9?9+b&-TY?Xx&@*Fd_Yco{v($L+^#FCA)#4{hR4*yl2?x;O8PfBgG*G zC`TXm@(2qW-ARce(hGil{14jZdib!7USyz2pws>0tQT@vOWAWG+4EJanm$m<GhV8e zxnZi?w!jB_(Ju-GxBzt~D1cyikV);x9jru#6SvEUC(Nv=9|Y<)deFp=*9cDODT|EF zD`Xd!BMu2?BXe%TG}v+LrMDHaDSiCBtQ`Z^2h{ZWOJq1-zm?=$eoc1i;?lx6!~Fp3 z#()M-K@|Lwb}mBRVp3{;9TDjhh6+t5RRWP@-=8ur;O5yD7-hO(cUSBeViQm`WRxLC zJ79P4aye2=j**2<qJet+7)#m>)*59xKQ%_p>?&X6EOGcr5fmwY@?KBC#o~J)#*n!` zi#&O+jeCZmfwHexkPA2(6N6+U{a_)r<kYhtm!qNR$cj)fbln3YW|gNUQfc<lDWmL| z&)uM+?77v=(c^l(3NINn4&j&$=!brs3!TM6ogTW8oiPWg2T4{^3Dmh>KITk>BhjA+ z`ecaM@ItGE9~Qk0@`5P1xgeqI;O7k;<Y0P=usmtAU>E=1h{E~1#}+#!1~|k*22NLc z-+M5PR38rQIt6uq27Xw%?q!@_@f(d^XCzE2X*Y#}d{$0)T)NHfyCjblqI166dIoV> zF|bguk|hKdN#5kuVD(J(^FtN#qZwX9nYH}&?B8Uk4&CXXs6VVN1%c*`Masf?W7Se4 z^x%TDSKvbaBM6i~F4deXw+p@w7-~5KAC3ZgHH8cMOl1kfhAUFMLHEeo(h+$&KzA*d z(0TWwt=I5-rxU5-aMz@`n;9QWTV5&@m#`jsCQJW(22}-YFg>8tCSuPEjYCLk0io{x z@U#1FiEHi?N3=*x*oZCH3XQ2jf?7{OFCQCqW5ClA_d*Io(a3Bk0T_K`FuafUNX;Ye zx(8<}|MgrtN1>-?WqEQm-JoagVcW+PRnQwNw+9&D5P8sS`$EiWY65^1BoFaPBKyQ0 z4@k*YVv{yf{9Z*qaK>m#>lEQbzy0=s!WPypv*vgWflk^_=t;*Qc1BIK@WZ?>&cM<U ziB#q$XIe?@#=z+-I<W(B{twS${uD_a@D=|PnG*ZbAq1meQ-eo?n`#qh!t}f$2q80= z2%f6fIlH<`Wc=YoNUnKX#8pNwB}3xdmoD3o<WCD4NWuTYN=FT58R)01;Kx_g?rfS4 zdVg`CF-hLg4|1yPiUz}Rz18{81RM<o3ao#5I;drDL*l29Eu<_wH(1GD8#?NzF(`ju z^s`r$6T)aahZpHboUfK<i(7Ico;D%_@exPW{aleG);E~ql*kcV^{uO<@hAo4AJdP0 z15Z-zmE~;oc>j?yfs*56Vt>ahb7q^0ZR(V5b!59NUR>-+!AdN01XhU++#7`sdafOu z%8cmKQ~zoOelEgl#}zq5V}qqzQ3FSo(uf#?xin!brfl!qie=IB(a(`2l|vr3#4Jal zh*D#q`ux$ogy{at{+oBz_x@e=_*%nLQfv60YjAEev3arvoqco6qKxF_>3?sP4sZdd zY@(X6P<Fyk=j!n=^;CAMEPU*sLNCZ!!DY4do1cr9pbObH_ja<U^Yl_HRasS)aIY&+ z;zxTFinvDKs}uG*kwk5I@@|5&x<zoQ;2#!^7g7z(=e315&zo9x|1|aLK_5_XL>aLL ztZ@vTF+=FglrDbNGgXx%mlW5NDT~TM2zf}<`pvREQ|OeM@Ac`+QBvwJvHMr`4*3;e z&+c~xB>b6<!Vs<e0LM&-4R|T-pbZ{){=b;|>Zqu<@9imI=#-A3M3nAk2nmrALAqOz z5Tu!*kuE{WK~O+ZN~D<)kS=MF4new`nRns6-~0a7I&1!&bI#}N=h^$&XYb>*S~ymM z=XC8GGr1V(y&Fv%(A>=vD1UQ+VSkT`58#O9X(;vISe1hUNsGD1eV1rTpf2gKSF(oL zmRl0A1!c&}<~r5UNG-aQT@59f$a+HXUDq9H5z@`WWlacjRa`#Jj&go$aA>Y(pK9oI z?fWDPzKEL;A2^t%MX&p&{Nu)=JP3z@!*$K)?l)_#jE7V7PVQ!%uM+hmXJx+K6Sa13 zDqq3F<hzPtehS?s`~G+dJdE#e^Yr6m<<gINKLAY^sk$1lY>0X6Zb6DeR)O8b{D%f? zue$qnGP_XV@(0@UFC&8Ati{Uq|GG3VFG6Ft(l_-i-#B@IR2mOK>?GlIhF^Pz=p_4y zOT#{`R+dkQF<Og#0b-%<0DcDlho21|HTUCHnksrBsA2&Lf4G9u^cxS;^eqEUhJ6|U zF0w{67o(OgQSE!j?)8KGE}6+LS3JWndsS{Ylmn;+Fs^!1uge7o5#EPCwWJ%zU&+$S zE)I6n5a?Ea11J9Q!sQ*(K%dvz^}Wh(Sjb|PZ2^rWguB!QctpT8Cfyg2NCmtaJF3fE zs_n74W;xKx*p+K6FgU7n88?d9Y}bnQxd7iqxhb8Y^-VfH$o5_TRo);l>qRp)(C`}j z4R^p_1Mp8w!I!6fIq#aq?<lhUex*!o2!-yxC+$=h=%ura@LZ-QkXjLB3OQg?6?j}2 zNjC~=%Q({j5g-AdDRrdqiAT3Yp4OWU#uRzNuoLsehB<eyhj^d8x}2<iz~6UeQkzq6 zb+be@BpDL2>B)LiCs0c$Rw!@+ei~B!uE7H9;Zyx^u+roKv(Uq#2uQUGyZPC$eN4Z4 zLls(iAjr!wXC2EV8cZwkpsfp|P8CZCI@A2ASM(h2oz~xf*ga%(m8@C&^4F4P?#G4U zW&&>PZ;nT?4{*X>@4a|5kr1j#01JR{<cHkD8$E@6I6CELmgKGv=;~RndQ#7eIK~+x zw?B78Pg=~g9>yRSm(4;BI&K%xu=B%{!xC@&1L(Rg6n#lTdaC|q;1*{&+fIf0N5yO0 zIAn$Vsp(3~fdt{BKL|D*Q0uE3gFjIO$^cFj4MI8o8i**+up8@^V<q4o<$5w@FKt(; zbz!1M2PdaVPfv^ag0#97Xz!S$g(X}2{_$NXug6;jj6wnQ3faMlidGCYu)KPI8}6~p z(SL^Us5H}yZ68_0PV3*bm0{yRNUHonkosspUdi~!Trj3LF1ZoH)8nsSLkGM?!1tN7 zM_en%;rVk7N7BP?A>xm_Pc;rAeR5{P(xT^w?gs)!K(wefC10(kNFUl17huyxrmlvy zAc!Rzoq5a@Er&ZKPFYL7FE06oDrWqb(aNP_)E$)KC->BCZJNuPK!g|WM!U%ZumE2E zI+gRLf`!quqn1qkK0iyXO;l>2{V;DZ!qQpZWawvAOPs9y07Emz6+}=ImJA~}J7fWt zsqhOC;hEM>)?4Xw1D5B3_Y?)c3zV!itdywCipby}T)ld8!EYoMxq>AfIPj?|ILGSC zr=G3;#XeD>3?R_4ga2l=unowS=>y`zV<w@R7o+qQ%#s*h7uweF%}59Q6I}zkB$kD= z$*<=q{GIf7hDt7bKPV}VspDj=NkNtQ+d@|aw|}i>e1o3GEFvgEr8F*+U*Z?!U(qcU z)Rnuu(p}gh=D<V#yUEiKKDpp85>h)XH{bV295{|=9GP;VWfp$$@rUKPe*UlSmfg+k z^?_5Dmm(RwS%;Ms^Q;S*S$!b~_AhmfCLr%plaO<$m9P7%sP?^~lPQNzc#OH+47UNL za5|$(Q8m%yEC1SlLBG!`agSJX0~v`h|6sj!07%&9W0joN4(#Tinf*cZ_D{w*iL6a( z%FD^S4fXH~P`p3_Y|iN)rpI?YQ_K<=21Q}cCqyj3%Z_x9Bqb0Fe)Ztl$3+Am3C={t z;y}Cf(nU;{r1+d^_*lq@a|KtCW18@RO}qQr=^w0*WdRwniFT4{?(qIyD|?s`qDhW0 zwdL09fF>X>u**!28<wE<z26$gl!O%B=VGR;{6Jd<9D_pbmh9vx*DI4*C{CFcq85|W zLKVXn5zYw=*lBKU=svFWz4kLvWvt1PV7`t4>&^YoB?=T6=5>*+{s6>9;RF$zf5H9; zB=C%^S5Pf*wK=%%-A9N|XGIdyQxz!#!Wu57m(-m(@NUFRa*D%>8#<~)xTnuCXSt9z z$k<+&^p-bg7h5#$WdyUgQmYo3j(Vx$h^_7Rk-+zdxOnI}nvNZ3Mj6$Sg7Z{A{9B7^ z8xLRsRE=BBnEhqaJU~LiHngk7;eHL@C*tl3wZIkYF|wEeN^1Ts=$UYDUf!F{%(}YE zRbFREu;r~3S9)fpST;s}wIrU~sOLQ7d_Z{z_NBFN$wF)&uqD46S7z9C7_yd9R_KY2 z$yJmqQ~6XHe_S(}v8!&-B`VndyWbWdA3(>md9R_H7{!_n_=##y<O75+qJFN{PR@G+ zMyI@O*X3%Y4!BFud#W$KVE>r(toW;TzLF{?=oPRma=p+hk*rqMb}i+_F=+u86qs9} zNpJX0#$AMCK)?x=J8$CYN~)zvCCLn`^559O?C#9}`lT2B#n5P3vP`+y?H_HTN*hUr zoZ3;`k^hTe929K}!7R$_6{a&>1*F8?t5MJ10DOgSEyTZie@P_lBhCAZSDiyWkR>gt zfZsiRQtSFrI92RGXeLF%tJa6H*ITbi{4f!({%EH4+*$OKXuHx40}C)!lr6HwYm0hL zuva_3(2T!&UZlHWDnlklOCEjs&+|-`Oh6gHi}r7df9?B(P^?gHQc?2Eo-*?IGt+kJ zvh_nJ6(nC~b|(2)nlnK=ijkbB^If~V2>C0pCGXR8Lr?E9TSpPh5z=^L<ZSv$ZH#Q& zl{gyb486>g@8FJUcX_w=N$pFA>&MRBjR+QCgHy=I;OL(?Yh)*){Dk}TZ{LeX4mbh) z$>TG|o1N&83bU@XpjCqHQLXG?{p-yfNe_GLADcbA4|b+2Wmyd?6raiAQjDQqXbVoh zBEP#L2;*3Y*ant4lWA&6-GyD@huCw5U2CJ-$tFZX|9F-rKCJ6|SX`bfJjJfkLKemb zAM?8PQQPTyQZjm_;Pr7qgbB{I|H5Eh&?qSV@^2S{S!xvcKliyx8-TCHkH1e|e%PaK zsMO$?q3(z>UqI5w<3s(z2S3<`8|t(PGmj7Pa^GP(GmWyc6g=&lzCev}929C7fyVUW zZB+Pzn}fdq!pMpg33cuWE}cJbmXLmnR&o3-<Dm9c3$`vOeDQpm^qFB-Ij&{XOlXsB zp&a+j=ZxU*e$d^dNIohCi2ZfX=zye);=Onrj0??$&l;eVz-0;}wvW;AgVoA<v$4+f z`s=AU$uUkVIBH8=3N$xMn^K*bBK8esgBRAKgV$;u4UhRz!HyNU(h#Y92*2Cw5|QWK z3(s2N<l>g@bh>P(AG7+3UxQ8d`1xkjs@()9#HjGsftjH~fnm>@G70{|WFFKSRiSK& zh>^hXj4L$|{Qz{?-IkY(zKiE0lWn1E;aY4X%_>8nUYLMM`mtSYP4E_ky0wRQm%~jx z15R9?t0$HGCKcE;wXewovMFL)i=oCxFox2p*sKn9dlkNoRw2_=k5yEAShXRx=~LX4 zpUG+adzQuB8`o%L@@T*WXJLKzw?)ZPE`SB#HTO+U?yuMU5MBhNRhinXZbbI;dG@_) zpAo_9OeD(s?mb!xh^_3SxboA<HydPL$$UhQ^YA$ByNZ)AF=9$%WXlCgh01_!8%j=> zTX$`aN>Gsd0?Jn<Yf>wZ`;XYd#Hg<=N+SqyOYhm?YMJ7YmEHRa0fikrcNtxa2Ra5Q z58yZEa}$Te?z3AJt1Qdh%m)@GKxo}u5rK7zH(jNs@6Jlt>pdlCa**11)fG`#^bRua z$prq<zQ`*Z1&%iZRRbCZcH#71gt@?4mO-S23y6ql*Dn6~%?|N2MxTECQBV?at+%g8 zNhz!ji{morJ6$x7bx=Zo4y1g6rr{)7w;CSsry#=JA0E)F()%k4!NNLjjLY^|GCA|F zj7tf{v!TGyx4M|r*w9-g1z&JhGmF4FM?o)GVENA7Uy1!1BTxZC_?BTNc&w`U7=}vD zJH#YTaJ>%{yu*>*NC|Cfy?dHWc|cj|jtgAgmKoC^n2rQ1mP>OE-Nn%+TrXRnvCR#! zyZBq&zdas6lk6_r>lhj*gd<oy3L>Wzjy86bW4)97@@6s`sGB6*QEV*JmS~s`xH1IG z7kZ<zh4P>}F->OI)fDF#CwBgY5(>gxz$^J%)A1#=FYpthIISUMJK^ll%3O(iaMtuK zPsVQ-Ji)WSw^YPr!*{Mv?Ou1W=H*J?X@J|2$=s7yCk-?{?lB&r>{3){ccj1WQvQy3 z`};_xTX*QCf6kxz??7F#83cFR^%~9P%Fh9XGIs|T^kDE=E`(1V7JOYjljIe%^b(#+ zy1P{N)D~y#qbDvrdfO~Jt+iKp1txPMo2gEb1^F^pmq`*#!x2V|Dn|T(*5xX6M^Oak z2#Yd$5PYg>(U}1nut@au`7#{O<WQ2efNXxSO+r=>p3&u{<eI+fACPRD)3thm_4}r@ zw<)i?_K*xAwp}!>T}i{CbVo4jMYi0iH(0m+11A}7@{MboAKm`D3WlfiW6WuiU(Z)} znL?`d+popjqHeAnWJ8YDUJ@I4d#4G%NOI~b7MF!poy3tLJ2rL|<W2KT0z4nZ$>FiT zlg=@72(i$+x+_7m%UPlDu3wNd>{<&3QSno8hlkei-SNn*>-p{pVSYL9$=Y$ebX@Y$ zX1>v1Xi0{uragw8Yeuo3vo?(4E+K{i=?aR+*juP*Y+SRuM6s``UvvlvD{Y7SN7W#7 zD?)Hz1|`Z*m}CY?BNTt~YFJeDbdWSLM-OA$ZO)$d#t_t8P1kMgX-2;He<0k4o8OQ) zXClGjl=jjWu`h=Y<vL&AMzVb-F7xB`y3USz)Uw7Yqun*^#^s5E4g)<=-3QM}LDKao z3(NJ)bnh*Zrh0A5yT@7q)Q%iJf#GzL`P^LACLrLInj+t6A00GN5l?hQv3=M7Zrl5s z<>1F}v$*9|$4Q6RkxH@QQUNGvFt8f@2c)GZzj&CP!uQ!dozxRbZyWB3f3_e+X#MjY zJH?KP<ysq8Ag*-6t;8{cdl#v+yDfA^V5??DiY<FRt0+c|kI0^VeJ%M`79;;-co)9W z`}P9aKev)D=~dzWZJzOGyBdhgS|4;4GVS$^G1oS0ceP>Vt&I)?UYA4eyd(cK!^>JT z9{`sTLVeZwSXlxHGDqYtq`Ya+Iq!=$I;U7N6W7pjd-Cm*D$~3B@956naSaE7T;;?# zUDvo*$k8!+OEp5GUN)^}o$sc(<(1w)_B}DC<4;DBg@MSKLDC%V?8#!$(+=7y6gpuj zz9>6u@wRfUoL}!4=E9An@UDz2Y$iK>KZ}N19?FbPH9=U;rmR;!R#hxsJ(F{kau?ws z#aGPLGq66=RaQVKyg&7o$1;dsy^O0R8*CI$R0^QtzRvHe2A9c+UHK_~Kcgcwjsxs` z(yTAB=l-=)%3NYD+-4V>`W8mWM0i99lmT2oMA52*>rvbEk&`+-8m}hr1*=&u*+x!& zjeJVMv$397LO^Joi)5rW6mny;jCu221f456#;Mr-ybnrZDP)qWr+p|=s{wjDz<q13 zFRcDOOISvjbrX{g&@<c-GyNM?jx?|qPpI}Cro3Zlqa=kV=8hpKfdi6FL)`_tkZB2% zo3O#c7RDq)(hynWM!*D~idEt@AN^&N&`DRDmz==tZR!P2#xMpE!LMQDou1wFI&WGO zgsLo^BX57lUpZHNvXNer>iA@ON+7%K-%opS*x@@ApV7!$TK}B)(UuO=O6J2E_2uIc zk01FOXR{9~3(eY2{l<Xncx01u=j;hFb{9=6!u>{aQSYEN&cMif2SoJ80!w5m@H)s? z{gnBnfM2<5DqY>#s&X-2KXbjo9U*-ufun54$fp}9vQ8HnzOh0Io!r#zNCRu94LEfI z*0xyTlLt|c8sBDNZz}`YEAOH!YmMmyXJF!8cn2UC>ObYu{l~hh$???>+v1S15CUph z62BbA9pkZKKgQ_R0s5og5w8vy@xTbK2ZxCd?o07Go>*wgvVdipDmq&Y$?BSR*83(6 ze<G*{i=L#uJ*0p8{0OTVhHl*ghSCuRlY;7vTn*FOe429OU1jNPd!jgDO5uN6@r7Df z;Z!K_0(@lE$xjO|=zl)P)exGY-YPo9PJZir#kZgDS-YE>#;dQ=)0>$rPg3At2urJ~ zXn)9}Ef_P_F3ue$gz9poFud&)l*lhzksfidEgC(r6e-=8Fp68RGhe<zlpBDp#PP)L zquS^)2B1HUB0fVhEu_5(zShP)=14;^>gcn{ff$8Rpq)ktWfCQkEa9G?tb*N>dP%Ip zf_BA#u~_gpJ|_z<fg)HozqIgkw8HJZswv2cT;#dumK3kI(C|RaU7TJnr^+HPFUF4c z8RSLqYZ?3nItrGQbxyNM$k^U|LePpC#mQ)O=so>b5fl&JO%~XfaDm6Q{X0LwWV1nG zNl~NmGKEZuzP%e41wY6Kpc*fSo`j*e-@J#F9JXo>6CkH1RK9;Y&~yOQ#`#9ZYfI6u zyio>aa-%xC9<2vl5k+^?+^Mh<8sp{}rW|%a{CW3~)PDK>M+AKYn(GgF7p7iJd`s35 zTh$v2!W0n^8*#{4Gd-TIV>f&-N{s5cW9UgTws0&X=Ye@X&f(m_8BUTgq@OMnc?I$n zqaQjpo&F&sPm2DsDJ;h-{(>A)>QyncU3uc0M`mp3u6S$opiF3Pw9?+10ZAM{E5{1n zYgS}^Ub$$^_r_m-iv}r(5!yL^?qg)7m^Hv0c3bMZWcvkf=mlENV&t}#7uE2dWLJ_| zDtrvO{+*7l`QgJCEMaoEK0TA)^l}^vFB2heb#CN&KcF9+a2;=dB}^w{-n%#6K_LKA z!}L+_#Ye+q;LY77K5cknYSgPx6Ht3`4JX_wh+146CCT!BS;_9VtlO;^g4oJ@g8D_6 z#_S*F;g5wj!^?`xloP>c;vr+}NHr-^ipMa1D79WYr2<%Po`D<HiJ-oCP&ZpsR`_}2 z;$l2Iy&#-rgeuVWsKh#s)#Bxv%rd%$xp?OTB_2{eWa!CYcwT47nO<ew_ERb-6ZUZb zS73Dq`gy07{Cx}Gg~=<j)<lTL0)}D_w&5a|b}6VFIYaI}8|%MOKgjmFV!0#@UI85j z4&O7MIfGLT1BL8?35=yO@lpiRokPz~G=(F-7)$KI)7G5QF`+O(k-e@urU6f<7{5Nj zr$DS$=w~Y}P`r|qK<RAOCZo}|F4I18d^fn~YoE@Ro1p7sxZkHkzx5}P==V+A=NDn@ zdgO*UTh)+$_0>ctPd58fT-aj2E_c|q4q);L|E45O+dD<&@m!Phdfd05xU4A+%%dB* z>#?7wQwGxV4lyN_=Q4eAuEa1qVs<^ft`5&WNDDq)Mvh63gp_MrldEHj7(%6G=LtWN zOM0VanMx-V68xu{_Fju#m3EE&>`socODM4`jb5~Z$j45iHgL=&2o>fmY3%;kcezY| zZsesU72gM-WlXNnuz+GrBktQ99VH3?6QOY$fCZ4bMZ1$hHB7uFsV`!^L=)4TIMaoG zcF?m%q3GJtA1hq@o%o(E4OOK;7@0ceK{4KpIUUmZja6&%&lFL7SqCnfc>>szTt%DB z7i_2H9?%6R+jZIU7-W0jJNE-ymya1mxdoXoZzT9iDd6>+CACbVwG&BH#B)3n95uyp zCTKJ6R5Je5B7B#X1wa@IGQQqB27U1DM1#XH?S<rf{YDw`%BC1bdYaI2f`wZX8y4Ny zoWLSg6Jas=9hHV^9`>UEqKp&-(t)Fwom4fgq42e?&P}2Y_4AGcMU#aQUB;R|aE(9X z=ws)WA}J0cL+D>xr42ya(0#~F81U>)PF=$l$z|CuJ9fI&P3=sm{tS`<P`xX$yOKH% zmx0om@)vj$b%1b5&d96>*N>u2s5ihJ{%hW+)X_*r$zP1qt5u|*4&;~v)RidDV`7QU zZjYsU?_a*xfw$!n5eA{M=dFm=j=N$LehA@oUwqLdZU#0zkiN~wz$!)90R_@yv)2mZ zHNJ}499fCX@N=eo?UlpP|54m|uY@E6<U@t;!v!nt9=Us8LMn3eH&Y1WgR21!-5>N- zm<%iEDJcwEdh)a%gSPd`Ji<j6=7o@RydLQh7t#r1NNR!x2YO{*Us?yjkS5ir@5@O6 zpu5fWq-xmTj<-$@d+tfCO^!iGemrEv3eUI5AywIt^HoL)e`18!t2`|?BgYCoEo(-! z-{u1LeRF*P9ZwLq`+uzCo!(h7W65322)LziF3Swm(vNS}90lzqmjMZ%-`#`Ty+$%B zy1%Bhfbh(Xd;l;9e)8rR2^nNw$%q(XQ42)=epH<b=c96tL|WnPXliYM4@M>=0_aw+ z=zp`t%lCxnID=U1dTF2r+R-%^w)9xh#qv)6IF*4&1!3FE1?eww+gPpjmdPVT3jlX# zh+nkY;$X$7KrU$vnb<A*Y!srk0p>b7{}z$V4mxYVA2<Hsk;TK5!m78GUUtoLU=jIb z!y^caZ`uDTp%D9U!6Hgg>%{`L2CwFN7vB7W)%$W>db^8g@PudY<u{dN?VA)KWvbC@ z$1GyX4a7GJN#@c1!{mX%6-&R{a00j!V=!wv<S`qJ9KUUxQ|@4!Ii`?&FVF<un**Y< z{fT+KWw7J3M5V`Bb_;*3>z4ZgdK<`)GQ%N?`f!zJUh*)k%R>m?is9kchcnb2Z`D6@ zU-^7RP(oa-B1-2kv$Lb)#G^~u23;g>)M*and^suYh;<|?FWSdo;E=80H_F<b#FyPq zTm&cs;5b~IrsqICSaOBU_@$@}_PeK}VYz3^?!dCBk!n3QSae`o(*qC;2{e|vyTG7| z*Q~dcUUi2!P(&53%eauTSaydSst&))ofXii`Vubx*60OhZ+@6Q1MvisGCzNtiE@Vx zvzfb{{HSE_siw6RbfL8<0L#!VdOZP;F&CcURCf>^LRh67v`lcp36SEKQ9-rjkjHEb zXF#1dnSU~}dV@un7CZXb>&G61AVW~Sb!qS;Xk;xY)6U5EohzQyeKIA1-<n_xZ?Q*^ z=-b4PAZ|2vah7!4{gRxO4_`o(DUOJHf@1Z~b@7z1j<MmBDimM;rlyrZ7o*>~(g=PO z6MXv-Oxb%8A~?xUul6WK0>3G}Y36@gyKM>}7%)Okx5GwPzZ%J$B^Q@wH)M<NCF<x3 z8Y77P#=0tyj?n?R+817wT+uz)D0qy|HSm)!=G&ql2M0K*+gtN99XcdN`wnZjs3U^X zInv7tuL#|If2G|O-5mAYgT41m{44u|``lQU(_O)_D`u+oAkf*h428A?O#oJr&$CDO za8`utjl=atE9Y5ah$fN@*;+iXyYU>9eYf1<`!mMn)Hl$zKxh*3e3+orjZ8!K7<kdF zcoxM~IS;iSe$NZ4J!8QUtU~4mo~HXqfm_2o2bLE|UeA#a0+KZlCE6*CJ!+s94x~nC z*)!rETKa3YZ|exUY#J-0I!$mwsIRhc2l|OrgD|0SGGK>YvtDwAi!<A;QbnMv99R4> z2JRT02wBPp#N4l%|K9xg&ALhpN>{~r5?l$HV_eTd7n)+$WT%T+Ikd+Jgn%hIDaa_o zQsMW509D(*UuHJtHqjE}KlliW9<Nu$l1aTqTM#wBP{reBFHR>Kq}}N)-DcEbE4#0N zxRsffi3&Eqm4T-rZ9-Cn##_6Uh%NOcMZboe2m-Gr#Ag&)(p6%Xu$~MMtPXOxTrJTH z?#?K#|3=MWfb<Wb(h>c7_Tx!sXJ;Y<0|TB!4u9WP4wbKLi|M<i1Vt9#&g4j&J-0F| zEHDH){#yCyqXJUGa^!{g0*;HK2+}qPh^^`)(6hq{IzG!gn@t|@>|XSQFegI8ygVU{ zg8(RWLp+RMn9$i7!Ow@gTO9St4cZ;^E7j-`b;fZ$&lmOquE@R6!6TmE4d05AR6s24 za&(T7or|GD#G+V5#wFzp<FqNM6VchlLcP-WWo0g$bHhqwM`jI$QP3&=FM>uhw_3Q4 zx|Y5!407Ya#G7AiPrst((J6nRt2^W=#ayPTsVP9b^YPsaUc#1aTirAjiVff3B!gUk z%V?l=M6|E%usRR&U1Pkg3g}W5PFfELoxDZiZuXcZ<H^F=C0#Bkev$poVN5Y8)0v8< z8Y~4&M?iaPif1M>w1zfPe;hlK`NAZe9{0qPRW97QGH61)&miaOU^NNl7J-S(7ZkhV zpM5nWO|{MfoFUi}IwIENbu}tf$4Ut^T<Ga&cHvodMY_pTJ9~I|xVpHQ)VPj+aQfW1 z@gd8o!g4m!&m=W}C!Ji&cS!wJy_s><a`_ljuM<tC4`1f7Pe6-hmqV6Cre6<tR&HiN z0V3ho_Fy}9gc1OC%qAm3m%5}A#09Hu|7Ou<cX9d&7hSI>CG6k>vK;+fxQb9kCa9`n z#@u98A$i^u__5bs$Ne1`AyTl~r@L*mIS^A%mWqgP6{{C1or3Wj(<_K^;K~7k1E=Fv z;bzw`c52IXN1X6ACo;7u^SDo^sz+Gp3}LyR>9HiUyXZU1jLtJV4^gn<oxUWOKN{XN zey|9IUu8JtOg}p|p0KMb-==jB^Z}^uguV6z_~b5VHZ(Ns{PIAD%<z`vdIuUAO^B&N zNIGOryjBz>CN^#<w=2z0;fDaEK##Y|G>?Hkc!b%oZfy<NSHegZ5Nk0cA)MO!!TZ@* zs_e8y8XBsw6x4fS3@`GynajAMqJ44?pZ>D(@mYBF7X>aWWqMl^{<aI7y%?=yuNU)y z*In`)Vb>2(c3YX@p125ok&`t}Iq$o@ovyuf74z>k>o`aJ&9t=#+9c<L5679F)!X=* zFt|Q7L)e#FJS2dV&-TwN*~5Fg4k!V6WQDVTe5O;VQoM)cPnjj$r@xFE7#MUZv%zXc zC4w2l0G)}C2<4GHbr&my>)>(^=!2XM@Lm>G7~_*vcrGPo*TN~$ZI7rv_0AKd{&ELN z&cjGMYZ2BMC2<*+iV_ZG7@iLBp+MEKFfecSi3(cZ>5Q`4Dxp`PZ$r5nRCs-Fubz<A zf-{+IqLuQ;JA5D$VG8_;8sjlb*p8s-y|6&a;SQtg9bnkbci976z?Jh!WjnWlwkTq& zmfzV=v30iJ<KBOj$hiM9@kix}7z;rDNE|_y3gj&?_69^Izqc3#4ayz%V<#>AX1zGo zljIl><S`0>yY@A2*a4aVlX-fP4|x45gPsA;^}^|$M<}hMS?k!t&N!`Ap>W;@Y&CM4 zA|m5t?7U40U9jhTnR3Y%d$68p6+jvIwM#ex>CQ%2YC!w7MNBEBf&qcyxwraB$s}U) z@B#hhz0L4yAS=?;{EM$+L0iZrG}nVC%$OTFkN$m5uJg6eB|xBoc>`PY$bD(acgiQ3 zV~Fj?HGhtT+msOQbJI@X>1vkM=MCs-GIv~Kg%99pc(ZD(P@cILX!0r8_6HCp<jI@C z6$_U6jK*Fpt`#7#e)wd}XZ)(rm2Z^DLf#w(kWAmv{0E5us0)zo+0%4WD83#WhD7?A z3TR&&&H@~v<VFpN3hgnIkz<^t@W-T4;31nHiJtIo<ObA#ksed96t;uRp#%rzF>m;| zhlN#4nu{MLUWIV|p;Kwr&#T(BKCgI6@<3Si!j<xs1N~)SR?#DzCEq!Skc$RrP9SD` zkNV}cI;pCO;>!8ccRU+)uN8@{&j^IttxQc!&iAQx<@PINcblIZgviU4PmrJPZorOr z9umNx*vquMPnl}uK?U2611S{lvT*z)A|jeOQ)2U(@#@MW3_<b^6VOx4A(K-Ho%_=> zX@cI(@Q}AtRx(S!<Iko=*`E`~kt9FWgi%5xEAZ-B>C3=@HW)<${CD8y7rgKm7hkd! zJ5?EyK0SX>HKj1B4D3%KDF@x4@nmm<8;~t|bv^)>req2#81LL^g?$p55l&53Pu(`I z!ppvwV?E;${mlwuhlV`3mNiWYe@AECO!xUo^Z`$s$IC7akRzdwxnB!(x8U_^3NFSI zx4YVacMCfv+2@!BIJl~toR|;@S<CaYY>QkxNK2y{IGnuaQJ&=Ki~a*xFT~l^J`a*A zzy4}^-q8q#k*FL4w?<2Jb<x{je<i(^3pntTV@=)w7e`4h*x7?*ko@hiV=r^2g0^bH zh%uy&+5Qt62Ik2$csMmwofsB|(O@6eie`!!3#-IFPfzEf6MX_sH4>tjz*$Q{@s|U> z_O*`kA```50T3K9;ys>Z&H^9xt0{`iAvCJob+=BMoc%+YlDHu%bL3!)MBf%2SC{(( z=*hk!#<TIzjLC@6FU$zH2z_#^yASpkDb-rBp8`jw#$J!dyzwBB_l++2d+(r;3%MBq z&VS@vp8sSalelVSsj=tFM*$b#bB=>6CQ~!BNj{V6m0Bi`=KaxRg^N;FeL%f;*HtO4 z-+dWC<JOUm;9ah-JA`)%{Jj8?$s@xAQoGHE-mon%5e{%t3?~Y3Pkxc~jQ$Oh96ary zmw{#4P{%d#AupDIE|YLxY&J*4vMCiTtOZIx2yD(Sz5q4S;{Ft=kr&%J-lOJ)n9#4E zv>);{Pt7MzT1fOnu2wh@)h3A(-O{*=Jy~d=W`|yc2Io3|&I)ZEjQ;a<@x2Z>@$uBS zr}n7UYnv!PxdrZa*yLoQXOJAe@cJ{t=wd?MFU^+Vavc7R03?2p%FiucdGS=}yH$L3 zP%XXI1ZHoN-C-(!a%j4*d-7GD9|fZNraA;;3Gw_i%ry~4VJj~^$)3eAgrIs*BlO8t z@KLIz^L-O^8o$}s<_J05xvu>2V+WGo=jt*FEjdCU7!`Z@GQXq<Y?a!B3?Of7S3h21 zrMTvSxcrqmkHem#i9?X>skB1$n?ge!6VyPwSPesy$|7xSW0j%8uesa4rV@JU16PK} zk;$8yH`z9!&%=2V81e7*<rwE(Pip$;5dZi+ZuP_v7U;)A45<^c%aQtwoa8!ePvU~r zo|~R5eD8An&g9R);u$7wbnC6r%L_lPJNErYmwR=Cdwz4buR>dj)`QxjTUuLxk+go^ zY6dsn;5>lvH8*OK!n{vJs1LCYC@~MK4i&A=i~dX`$nVJhfMOB5`s=Iv<<WOKtKe;N z#94dvhU-}KP9@<(MBK6Dm_axhlJ(*xI;R_%p(`f?Xj6ALe?&}7EPpzWz<uFNmOJo? z#n(|ah2!?{gA*RY+pRwedxw6W5qz#E;mLgj4E{ilN<@FoV?Mj77z*PV_WCL8JNvEH zWvDNG|76ceb^6zyL{KQa_|)_7eVJeu5X&T!BnRrYy^KAr<JHihuco4^qDuyKjx-2* zS`l74AD66%Jsba6(Hgke=(}mUKj@!VJt7)GhGf+t#RhYLA1Ul_0ibLxh2%nZoe2qM z&l*-s_m{g6lG4%vkPmpp(SOZ4`_wc%1sNlGxe~=6`je=31KHYbWo++huJ!lg<loAR zASw*SgT9N^q7S{~2NvG@dUZ5#_^SYHQ1}Mcqx4czLQ>MhyvA|hDf)cCL&3b#TFD}J z<=hW3EUP}}15o9N^d&h>BGDL-%p+Bwa4@gq@+bHu`D|wDV&?gfJ2K02f2zvPtdKP2 z<rjc2Xix4>;iY)VSGEJ6+N1uu>g^Fo9~u-;$-e=?D9V5W0o~*O%<ASB^_&NK%7%RO zVLoaRu?DHg746`cjs*=@(dO`iLRZe|vNAJWHPHz37e5`W+6afs?LwMm=Xf{vUAQA$ z4T`CJI2m80%3A8aRrLgHy+snMt&i#|e#(*c+d0_U+A<6X2zVw18cCr|2~S+Qep?ma zJ{j_MV@4&#I%outMWdYef`I1Bhg7jm$&4==dz;>?m;WS@HIR^{*YFsZ?C9#UnAQ4~ zPA|)bz{n>=23xtulJnc_E9Xxh8ybcj^@|S4c@Ijjp&I99$Nl+P$F2t+p}-gjFQZQ? zJ8yxi25>zt{5{^(ZJpfLpjX2l4|628j}j6R_BDvRH(c#nze)o6Q)|H&fai6}Y}U^| zmRAtRSseq<KK^2&wffuQ;3kQ!@eoAM*dWxdc(+|Zk#!^WFuGokNSyaBw~k#cSg6S= z9y<4mm`))0xN-CIrS12)TiVdm<ViW4#%yts+xx%YPwYMi_<=nE{B=Shx#zS?$uatP z!Yr9d#%KM89P!oR-u_?(wc98Yz$T;00aO)a#e1w}VxSj3Mi5Jq`1IzQ&fl?=1L#!0 zk)TYlq6g*&xabB4pWeX@?){L3%j5Nw-}C0pHto^p!~21LbIk#=RInjMD!2@Q<HsN4 zE*fNa$`RLtQW~UyXQ={Q<9UqUJs)i$dUHA3j#%WcZKDu?Ht~Y=7~YpbL6^bo-=A6H zN5n^~w;sjA%O6MqzVy=`17*^ep8w73-=y~Id60|Azt2x2O6OljSR8b{w0wh?iZ;(U zx64QWne$MY-kGSbu0|;CVZh1e!Ta9}1T35DmAbahAhlLhwSTG%z^Irx-4*I$0<lil z)$~$cfW`hdZnHEZA|g48Thi;1)H+h~_wGF<Is$qh9e<v~Oupbj0XFr0edi<!<jhyn zxyOMn6JG!kTRXoF1phZJAXO|Ah{Z0?{$bq1owXD#qFIsWD6^3~X4R9o$-iutpG=I6 z@daFN*IBh-FE+EXGBTV^6qC68lphC0@&e>@^~9z*z;D5*rwVGOn8Fy=?7%J-KW1T< zk>WQlE-po>v?)K1e+T>Of@IFEfb9sfUi?A+eNBB8y=fF3T(UR6_)PK!EpG<ApBh8a z^|CqimWDzJhM&&1r#%53$5Zo$6ImVVOG-+*naOV^u{(*z9`h6+umN`AF_(ULNo2^+ zrCa-q?RBSs>aK!7D(*lc468<hVq$fe*;hB0kdvQI@%QfDrA=az{LDHHFrgqDs}4*0 zJl8SV%3<C9=2cSD+~OXREpM3uf~V17RV+=PcA`o?cR@s5aKl}HM~4WI9xIVRMDR{# z<q}VzVG~x78&-+Kdg8Ae#}3ehO=M<fCVv0^T@Z^sMdQ|LCoP+rOG`@~oW3ZQB%Q!Y zoo*QbPLS1W1wMc+P5V>yAHY;zS3ZKf@Qa4?kGJ;|brr9VT%`b+?D8-|2k_|jizXRR z%Hnt0m&o6Zq~5<){4<*0q&!PErN{lEBphb!V4=qOn<T3yZ~g}We46ksA$mN=x8?Iy zLT4VVYpH$2Eor+|!b9`HF?iRZh(BN5f6ZO5DdMCr+lU3PcDvXR<|TF>!H`)Vi|55) z)Kh_`mfmzHN#>yI!r;eXxXQ2NuFeU0;PN9YW8?LP)48A$X5TS=CwoUnop1&Ci&Kxq z>_Lb!%s4_1N!J@J5|plMG>%vNZ;IvLdBLKg{wZsU3hnHQEIXMs&u7!3<Pd{rIlFNB zbHh8Ebw}yC3IXT6_bSZe7!U)8C5!W-%6Y-%?bWQr1V3i?-hxp~LV1<~m_t53lBc^6 z?luDzHtWs=28KK8-eYI`%epG|m^<rWXH`HBA?O3S-UxFV!fn6jId|w!k`N@I4?i2$ zrTyO?y;TD&(-HJu+=30^VxXrumsYcb!lUG@sfSeXd<19j#V4y;*YQosS)b7uVp_gZ zyL_~!zpNzjLLt7EX2skqYbH@V)Eb#b+wDM+GB7+qxSWN8LrjIudbu<4(;cSzs;^&9 z`l{@@zH;!xs4oDf5-CX;&^@15f!#GJOp+}H24uUtDYwsp?on=!m%9Luu20~}H)S~g zOz<KD5Y3}WKf78yy&@a%tikTBdT4AHFcxHOqBttQ_|)BfmgGJTF&lchT~krN6!+aU zoGAc{>hnZU)9BlqnN~iw{h4%Mz29w?0`<?nO;Bs-ma6exa6Seb<pGYIK+46@d+!#U z3PL9K`bCHM)Eh82oFh^9D-Rd~@P(vUarqmU^wz61OGvw<Xmz&bw6gpG$}T|nKFY?` zMX;`WiT}@5F+lENVOmWsoit8-*bt)m$!EsZS8evP<JSWb<m^M}=IZK$>$Uu#XD7*_ zM@4>f2;4Ozi^?*ml+n(cqG=bKA82nm4~+6Mn&6pSRUqI?m+R`g&X2!qOKiMsY&PE@ z-{VcGB{9FbT2sWGGdVjImy{$&D8SMA^S%5T$P2{1LIR<>F~Q^_w}tF!<e4EG5^bFi z`;VwYv;is<bdG0Tjxq^pp=&D*Tm%Twq4{8S>lbLo0PIKf*;4$Ilr`M<Xi}zZ%AJbN zd+L6_h2Dl{3M(}gE$dr6a=Q)PgNOpl;<d%Rm7{>;NC)E}I%H!&&oF`1`AYg_Q9{oT zyUqmZ@y+8TqypSq^4H<2JhYSsPU#K8wwB$u6d=`b`O8OB5mdOF7gqlcDHueEtctTt zQS!Th(~9)U$f6}fYMUHxu2L-@A=-O!>yt&(iEl!T;%h}j=&i%6AeCW_feD&zSH8Pv zB|oU#T3{F&q$OtKOIhIS$B71`prc~qP4I9bh@LXLkQ_;DDLMk0U|(_hQ>tGyEyj;o z^eokY4Rzg|!QUeeDr^h%k<%eX1s056Cx*)6mG|=ifkp=;TVb%9D${?E?kF43Nw2Aa z+)kFmrRz`ZCR4W@q=U#GFo+JJ>G*yHD_CionEbpVVD(@4p(W6;QsdB<DK0WJFZRvT z^y}|4kM_4ZfauGd&eQQ|F}haUecu9J6>?f_VvVk)&bN#}*Q6?6U5wC^=g*(d`ptNC zNvYxmlRJRP!#H6C9*Y4#<?Ae-(pZCifWO@jd)n_Sm^`9Rd2iJ0nlf9<Q1CBL+yoSp zoWsKJHTJoBR`_Df&DS&EfM?T^szaH}->6L|<zjoYv$MbB&W8||jo6FLC*KHB0h`QK z#|e76qT&ayp2*XZo=$2SJ9M3h6YkYrihuLnmk_`3r8Q##Uc_o~<`9C^Ofh3+1_nEg zo1fcxbn~xf$HpFy6AaT3OHf0;xGhMm1LYdVd6MZa?d?MJrmy@{(a)%l>i;&1xS1b3 z3nG-^$+6+7+GsJz_B)d}rrrVOcx71pdVm?&zcX1_KELrjo(}zD)^{@GVl~T3LU?AL zxhd(B(0Hv`zM|7rP*lZc;yLwBc3*4r2b(Pu<Hu~6_$Y^6z&F*WF|5dC0>v{W9MiM< z#p3Yr@N_*H&pSuJ4E7vCP^dZ86LI_%kDTBGM-zB&Hi&8@4tVt{2lan&kOU-j<xby1 zrsLIJ){wono4H>`=Jn?>T@Ej(`_SXhoz2sNU(cGhKhaqQdl4L9rSFQ~ADYrIak(Wi za9HuJO%4H{vPzVmyo_IYQV`Mi`*U^J#=A$IjeFIEP)bv(wjyP%ECKh>rI$QLMXs3Y z#rBw(1&D_FPxz;Lcqrw<pS$A(^ebO`_N4{hq&cL!=7#*kX}o1l+$=zOiWS#?twqBc zBx8hezDLa+>$D=X`gNbRft~|#&YC0KsbMYBB7FoC`~3Cs<Hyb7Oxrh<2EB_rmg)Q+ z<H<$)ruaZ#$Mx)qO&R8G;L{7nU!hzWYA?mMt)-%jin}wXU2kvTS&!7DrK8$c7gLYN zPK1f54l_uSJLnb_5fLE^SHK{5=G(;c2-ja#(|*^tynEW?R*c6NqX7SyN&2|@YTQrl z``W*NlQIR7>BMJ^JY|cN!^KnV;99;t>**+cRU`OYmz4he*XG7XChioC8?O%4dhp<Z z*ps|y#1ORorj}z=4k3=ssak*2^8x@JrjY{ZHJxd+gl_PC-2glPgl~WW;V&K6!4C@* z<gZVDc@!vwUips`(Bp*w9C{qXk+cMNqJ$Q<20k4GzqE?emw>@T0Msl0okK1FFoBx6 z`;aZuF{>uJe#J@ege@(XtMsVruVBMOF^3La?R`~oeKCo~LO<mPU~eyO&pbT5GW=nM zhh?nv>|~=Lv$rF{gcV<oJAEY38owu=aR0e!n*;cdF<t_6;0}|qx%rHU-_Fe2i;D|E z^(5w>Bs}nXH`wtl4$P=wHf_qwrn93^oi}sy><YPFw<w66N4@|qii1#H{|l=qN+3cc z8f|x6VZ9f5Z+0_fJA+oY<m&8e%B?(PW@6-U+Vmx@adJ4sdO7amcr#~_Vt5Ee{LU#Y zd$L0Gda*h*_jvcs&(NRYWXS9AA4f6kx0DV|$C}=0lN$SihAB~EjULeon7^ENG^$$x zm%;R2T?NPdb>I_AVd$No3{M|dNzzG&@W9!uNt&+=>sNN1iC^l@>Tl#Pxql!CH~;6Q zIXK7*j#|zyNHW245;U%yE;k><Q(7`)x)n8|&v(Y<a0k7;y{82Mzu%}2%Ad~Qu?6ob z@gH7kgC7TJ@TeIsRFK3^-={eTN4B~$pPb(M(}Gt2`Ej37fN8z+d5E^)z)kxbg|9z~ z)PrybS?Gt?za`NDfq{V+s>OJvgP<Hj5IaS=8Y5=r5xW29R=RjCaKB6eP=SAY{ieag zUwVnv2i1=^3AZcW9%ZkIZd}ck%Q{j&LnodhMp@#1Uf)$M{){Oe`-ndKF4$^b_bg9m zOZa`YQ@9P2`r+01!lWmH^m5Wm-i(cULANzI%x~XUCg_v+?l{u$+kXc!`105MVB`7k zoMaYJ$9~>BoKheM@OW99V>ogHOd}q(qAvxsoY~0YCsiWEUxx~XCFT5!+VCw3%%|BT zJxs7FAk^yc%I1ph{nYEV`FK`U6ZGwsa}V>Dz~ieM*`P&oKDZ`30NVnn7sWGGxf<WA zXt!O_JldeH-w)-)&>*j)51t}Y0$asMZZl)wk^$c19VLto6X*@yYpa-8dfQxDSt*o~ zn_GSX*nliF%z{<M3A&@#aO-X*%+vD%r1dl&F<{hvd2pc7i2M{->GR))np7|#F*T+| zj*zn#*nOzTP;*_Ud(?~9eahA?hnw@so?kn3pKJ8p%t2g?7O*y49rP($eRVUT<^W1P z5>eMzxvXVW=BE8Ud!hKhUI6@?U2+I`?2Baz#cBD<%hRU_|4L^uq#B;HDN+V}#L<4^ zU3287r!P0I<p*_g-i7z!>-aX9gZF9kmuH{<s#OC@C`TM0KS19^Z&Bm!Bas_GAIO$+ z2hYF2L%{?|(5F0jD6i?Qp%`Osx}G|U0%pYV-X@EC=w~B)a8*}WKA&~CHiS5yep+D> zm5a!$+(bRScuwV|B0ta;fR*`G;cz`hh}xRsgCi$_#6HS&O{nX%xci%Po1CK{z&F*= zFMwYiFR2X{pi;pbV`ZYFBO{&4Y_QRepaw#yGd`UA2#`Ouk<Jr;U0uiy3*7+k&HQs1 zVPR7+<Yhgz=vC1Ovo}^KD_7BeEdd<|you+2UQb6yM~lbP35FhTe5}Cwe2=>|06lfe zM@t7czRElv?REMk%j$9lj(o)^NMN*)*m8QmeM)u{T)8znm(Un^p9PpyGbr;B=R0ZP z$NYdGpCkmiI83njqE^`IR}Mf7<Pc(~fi)WAIP3*KnxM%@d5^yrS0%~U`oE`Sf80iz zeIa!~JU7_#p0<uLw_Jav54~1@&z7SJ>ONFgbLo3e$|TW`-u&D&7lJ)s`)Gakw1w-D zSeKrOODuZuY_nhS)iv;2Tw=h8(blVq6HR$XMv<Zmz=ipx7M(V+^=3YD100ztXf-G2 zw=*Mthpygjs?vs?p9vcB|51kxMj#3mr4W&l9=&~BA9-^s4OJjV4_7`_{vXr{fx~xu z=*N##7|_)CO)Hs%tPTFJpLkPZD^9&73?QKH!}&-0`uh__$qF(-6Xhmsg68#=N?mFG zlDukarNJ5LMk;#kXy*72mzz)BXt^=z({EWuzdv)a`a|-<m<<!PHb$@x8e<h?`0c8s z6h<&NquIrVxMDCdF-cFQO{wX6aaF?v3dE~W5t{6CPzWfV;<@Jv8Yy=H`apbC5(NMC z95KM#!(QY%(KVsAnJNN|zcY7N8@a)nMY*d&Lkbj7H+2&<_ippyU|;v4mF1&HRD*^k zi8Ks$Q+t!up^I_|U(ouS9!D>bTm%1{lEqfO<>Y9ky`6q-(EnvX@Tys>xI=HosGhJj z$p~mfyE!WdiPXVnDbw#&Q5E!me-v3A1{}DxU>Ldfw-n~45|9Nr6UY*~&6ZRhx<*^S z+GTtov^*q-IJ7`|;x2yw{#~n;$ro__KIhrRSy8gW2fKW9K<Lz?!z<tSR(%&P#Uf5u zKz1X>n4PK-gP`4#4Pa?~o*Km29xy8XKVR%-RbdL49+hYk>AB^7nuQS4kgx#=u=YG_ z9Dn88fWo=13H+-#0api!^#38}Eimx7!R|=%&QErpRhgCQ!e_;Qq+hSi%NBof<~IB4 z7I3=Lv>SR@R+9fgbxu)T_&0;AB|>TjO*{08#Vmmm^@HAyWx~a8eDu9C(}(JpX5pnO z$O`~+SVc>@{>fie;YP8IJ32bL<q4WvpwX!LwLM0#4$S{Nk=tfop{>*VqUVex=kcOZ zCHMl+3e!=Mr~YFkrj+_W#71g@0zK|uIpOcLsFQj3vULWn&~+cOW!v7w#gS8du?*Oe zgM)+9{NRHg^+844)u{sZY*~hd+LlFKAXWM<+iLM2%0)TE;Dx%Q<DXi&MgCd&_kKE; z!VK~6@tgwz$3Vb0Rncc<QBhI(m%C^jlLq<gH>s(@zzaZc>Hs8+0&2v`weV8}eML<P z{D>kS?yU~H-Tfci2`K?iO~?<fx;Te$Jg@h0HlMXF*stb0DVquXWhKKh=aU*68(%>W z3;f0npM>Z?eq0>QM~cfQj3z}498MCd^KX`<C(DF7#@m3JgF8Iee5*D;kPkPw!H$8A z$g%HQAIPl>gzeNi-Rovwj7?S9-Q*f5hY5yb0XH##vbE-O4c2Jth41{KKS!V;fJ{;` zrT<TMbP!J~UsSnO=m(3|tlcy%>nl3=A2z|NH(W?LoZ1cB)w+(OQ`T_b!tsd3hOAVk zG=DIw3>@y7Pw3{|cJqQGc>!L-FZ0Nh<h>WG!vez$2#_*(J~o^A$V^hV`FbzAdu?qJ z9FlJPv6P%w8pPe}cbK~8HBYw^#ItEpqEza~e!Yv=+aojiT)#YjIX`P}Q673Q=Nbh2 zPtFE_>YZ-ejAf>8r0lLVtR%f;mG+1=!-o+e9j+f1u!knB#-*;|It#EzCF+7LM<arh z<tC%$cJjd>buM|k$4tuGgn9cFn76iw-Xwk<=y2uB^rV?(p)r*b#fibc%zNL1TrUXw z(!3J&J5v5~tETVbc(ac20w53zdC$QQzbB9~pN}~?GrJWV<G=0wC`pTG)U6u)4*Y?g ze0h=z)V#f;6py&6CA$fz2*Q$r>=_TP$ossy6PKI4k2NY1G^z|{=dU!W+N3@=fB3Lb zL}%&0nEHHBdTqOIF7Tsi*NZb~(qiE6(vt{sE%8hdKGV768Z45+BT+HhfAdF6viha5 z%1`kM3pPVGxK$AkIR%H<s-5iFLd4&=Po+dVM}j&$Y<Usd9k<8&c|#R`z4dCC;B}L4 zi2|mv5qVZdKKzoR;NKYnpbMdY+DLGvBr#X?h1fMxFHN$;s~}%j>lf(vt*xQsZBfK) zg}tL|@pOU{FNMS{T{cy3Gkhg%3&6@&2Ka-74`dr890~W-DQheyH(4f~lLs#VrsBv? zPM~N7%%75ixtkE;dcQrI^itvxI9i1bexL5=Lkc}!q;KLd!JU(y=0|8ZccKTe7l8k) zB&_~6^0J6j^E%-5sv^rGmX7>+U+H6}zKi3xqp5522_m66aq;oE>!$hZo!NlH-`m#t z2tmLO-}0pNkW~@))KV_M0I<{?A<M%0OjK=F=Xm2!a*hL7_S?(7v0(xv@}a2f_s@j* z5n3p63b-k91MF-HK&afrcmpQ=-}*bNz_}uy3M^bxsVZ5>kVfzEj^IiEDqc%z05$vU zwRyI;p*&<Sdfcg74h;IQ)&g%_!vDwBoA^T+wqgJGjKRn{WM5`1Q6Z%4%#fwBma--! zTZk;#&4>^}CHs~_MF?eYrWCTvo^52`m$41Ayq~G(dEWQ;`w#BVT=#t*$N4>v^BT&1 z0x`_CqoZSiM#HP+8kP!86;`Kl8fbG!0NCoaxJ_j=fuy?XeZnrx^E(uCxYRZ!@_4_I z*AOkUY&BtZLmZV0`Rk{z(9_e4yrDPBQgCYR>gwt`^A;grd0gvb><T_nDZ+-a><Fik z%QPKC!Ic3pOI2>|+<%FEoFZ8Gpy8y-52*vccD<HK-&Tj(H%?b$=zIy`Pje_<7cX8k zELf?Sp>$rodi6$SlK7K6*x%Yx(RTf@UM|p)BpV6c3VDIbo&53YegCvI9OF#aNUJRR zHaO8(q30pJng?MXzusJ#Ha0dEW(^07KRPICqok<P4u@1aXS)0|{{`hZSPE0n#NP$R z%ZPm_o@Y__Hrg@EF5(704es<8lP^~NwN(wRt*rr_X|kc~SsvxYAR1d{IZ$pZcaoM} zEm0)TXrND!_D<N7Ji9tgNW1f2gq{@B-MzCMt0zwPmK}gf+NkdWLbMTn&yb~kxY#bp z1a%K5-_+~$r+ESb8C<X*;-IB;X>8$a79FQfG$0Jp(EJB5|2zUV{FD;kGn`VNo4ZBx zRB7ApYzxGLa=&Xs72NKWAKtIarfo0(ETice^8(-d4<#|!p54+0v@DNvTN)0Mfz83? zPA~Tj(Y*yD1{s$iKfVu0M8A4GNJpM~VOoCG#N@Vu|5BfX3jMFOhmHCcZqf9%5b%3; z`F5`tTxLo>VGYLjd?Yt8mIW8%U|f`b7zaqi@*l*vO2<sK$e(D}wZ=LzsLwAv5aFZV z{&_IU;w7}YQCGB2Q?n1;+}z9}p=%!v6lQk5mgGm+lsL()osv=z4}7_E%_K|Y)hi0O zl|bc^hbNN>2AKyzf*Mr9G^K9LXbBn$@W={Y4hK+6ulQ?^zJ1f_oeZ1~-|9DjhwJO> zw`y~oxRK;333VI82^_w)KOLn7oMk9`WaCh}LihI?D_V_9gl!>u(P71xB2G9{|H5(! zLqUVd;!v1AB`GE*W`48zU`l%AcIf(_!a}i&cij&UjO0BJJ*<%z4=+yGOA%EHz>v?m zkf1YvGW&!<7msct%pQYpuIC*A7>7dsBS6umtG#YM%{ECy(WUF1ySuyiH6^p$GoF&r zw_2zxewQg9e@OMF9~SW)0igd^&vah`8}@9edxG&A)anzrcB;c_=Pvz6&Z;7w%9BPa z>>Br<X5VjErh}4)6ndv6nsT$<>(E?0xqFtckUfWV;PDMe(3Ri0jMU%R7y-(A_JSm! z+spMg6p`V6nZB|&>!Qb&9Gci^PT1K=daQ-gnkwPu9W~-G3&+TLfOjmH=$dT#Q?4%2 z)hN#PLR9bnGxB{U5FhMSojf$#4k@|wL3{7BMdZa!Q7G6!(G(Y}L6x1KpWmDe-E8*m z%2X^73Z|4@@y^SyIuU#9k%v_Sk6tb?1YcNa`2LMo9cI?+XaxsqRa!s=i>%%rxrl(h z8-9ad4*w)D#0|-G_VnC-k)6HjQ-5puGIL+tiJjFGHYFoB;0{n<DJ*L^Mxl>!G}6|Z z`x{-DfLMX67}LYTA0_|#v~ZJx+1sf!Zor^2e=w`L(+RtM#^~d<$>}iHXi@~4_}Ob* zD~v*1gwtelnzGfx?vc6ZEl`j&FtlYEiS?Dq*<*x!ZilEuCw0Yo1WFYwCJ0nyjg*T8 zs%3wuSe8xs5DM;SQ;Hx3ZRS%+i{2*LN?tA@AxA-}tb^~F{~hls9q_{az0TRwf^`f> zz~6m?E{NuTe#gpbCOpsFx06(>Iih{s^N2;32UplSND95v8t$okrRAliw&eMA`<}*~ z4ryxby`i%=-@E3~7?zVaT<IpryPGgli5B**dWK4dsDy36V9HC6F#3R7cc?M5*;iB= zD+I#T-N&dhpK5+Y-U!61^Be&s2xAAxf2ieIdNW8k1}iFyA3Bfqe5{2s69)&KQq)fV zj~8821Wov^B}x3elt*2zKUdE(LwVdq*yOgDBPze<{$N|X@ig1}3-N#CK<6#fGlAUF zU`l{h##s>5bAd^o9;YFFpU4f`lfPH@?0v$D-eqAR<lM(KVT7*Rm92-hmqv?;nXY-( zf-DT_Y;Y|NzzZ;@oijy5{2$4B%Ae-MaZmL_zMX))DNW9J_E?szuNa`%A@x~*XE=Bd z7*11?>2=Q9jqDtj7V7?!+e9W83Zv)=)TXg#F|<as7yG8BW_Oxh>kz+2qvz<(G+B>d zA7N9*@tWc{F4@19`0O+mqvuM#c<0emNQfQ=`T6$DpH@4LKEKO9Ko<p2ufa8*1p-we z3a+bpm<QFJKYu=$3|`FTGS%E0RIIM5D#pR&IlN~!t3vNL4xh&9*X7@SxAn6n4r;~l z71#Rz1L?RCslErMSN0@+N<fe868WhEjP<8j&EZYf*{w8+{#W8C<V`d-to!0f+1s+R z!Sex4P6vN6I_YJ4&;Du|*5un6btTS28%WUlk<I8~@j2*H{hR7hy2`gE7&Y){h-85~ z=<_@ClH#ccZNdgdndj#lPYbH>904mvj*8kSMc}hGJD$mnPNRNIN-%||ulN)sDB%B| zyuTq(%PCdZqmP)Nl3v{xA3-BrNY6kxm*;@X!K&G?clYyChPRLRD$r!69kL*7qgMm{ zf>fC)Kv5g02&M=G8@9kXM)#ira*oHX$(vKzm>!Bb+`;>tW^-W@&_;{ito`NauP(*r z#SLO!^)YVk@9LLNUqN|MUb2FS$Hhv)Tt|SjF^K7-C&HBdFKdgO;>3}^$M91oPR8au z@}U~Ws5^s;Ni)n2idTSOiY)YCI&pv4t9EjK*soW!RyYQ^*&#`ERCNBKfhIK7Im<!i z7wdQ{>)xFKuVfCAByOG>S`0~A)(HntaeX)7h&S~<rdq_gt9;Z>JjBg19B7=(i#d2^ z4+(0x>L<_G=;f=EWG?AC_C^5Yr(VEH>x?v0X8!}uqcBM}KDFJC-cEmv%Jp4^uqUFE z=R!TZ2+HVq$hBc_Lp{A8<9-WWnc-jQdBftKx9_R7el_TO%$fOm=bDLH(y$p?c9mDe zboPuO(;6I165W6&ky6W<mWV})qc%$N!U@InZ$(RMtv+us@m)%J^a$J=elQtG(>hH> zad9WkUC@Q*N8Jz*z14u^j!vfOg6Gap-&9u5{;J4^N0ypgkov!a5($pTq|hkd88YLm zvgxv!`$X+>+p3%<=iLPvR37zV>YnZXS4Mc(@w^<mzV6K%UB4ms!vhut&qI$oG;M-o zDTT?)^rY1;pVLj#&vxh<5e53#o;#)Ds6CL6p|hek?zCXgsAFu=bijz+0K3{!!KQ?i zRI<Jert0orqgAWJ=kxGEsRnjP?nfUZ)C`XMud*=d00&HrcaCF4d#Poj=jz=u3}R4Q z$-$I`WB3f^GQryldvEAHTJ-5Q79PHPO|$bTb1_y{!TF<Y9#+kG^fDd;b2xzmUFu}t z&_!uxXvv(tUC68YuMVCTgtCWpPSpD)-1G3@eJZ3{b?VfqQ@51NRIBt54p9k;1DO&A zF6#5PV{F^An_gQL%JdJs=W}!+zPI#fF{B43fcOiE2|ZdEAu%j{BC;w1+2v=5o>1JK z`sxyoVGpM0{rK^t;#FZkvb<@h<Hzbqh4&QydT)?A7v$!oJ%J?s(ajp!b3_LokEC5# z8R^>PeHf3)y5$%Sgqs-PEIq|E4Rx&Sma2QTJc5pvOVVH8!oP27(uf^dHP-tCJbhcB zg^~!dDmen`+h;UH$4@!^^1A-Gy5htUptVBxUyqOIfi9&&HkkO^3He&>XRyMH&!l5R zo%tvWW!U8}Y<F&5kI|sA=ZEi)jV<Q*^)zl`sSzKNZa(~Vk*xZp?o~tjuFT*rw3|?Y zE9AP{k@OUD6b*#ugg?r(|3wedJQxfbssUu-G|wg9zgz4ms2Ngo5XmT#@o?!?Y>$z# zu_p8gAREyb5ef<^btLubUBw}<DfwLdn~%eliuV5fnB%;`b%UWPi%5oG3R2q|>j&GJ zPFAEeulVs1hn_xt+KHr+2*H-O9{l(gusXc_osE^6cV^}EB~|x4?1^LdJZ##*zyo1H zrrk3jw&3HF%Gfeyuv+K`aO4W~ax3kNmhWc?$Iv2+*0jhviweX<Ul$jb6bEp5FG_BK zE?+ah?9#%tbv_4ls*e$RPZy|&*HEQdYQz^P{@4As-3YB661F6mB2Qs9_XLmUcT0ex z_mn@?)ObdJMZ#y34yM8g-S-xV+0nIripG&cKIn_2n@h=x6bz0>7;FTJV+)K}wS){3 z-Z`4BunuLF%+vsR*%;U>{v%)|82#so)UYU{H!KJ6IxUzHSrz$?<Aem3HZ(4#zkBI$ z*=>m~>^0U-z(;zDjS-a)!mwL5hx;F)<dMR71alViGrajdH>Z(4q4iaoccIZ4Q3&jc z;D!}JP|_!2*q832q9X69(9Py*xi5!*dM(SW`k}GFW~%1wK(!Hpbn)sPb)Ig*Vi^)q zsh1AOq5J21y{EG=X{>9>r|1k-WF0m?9A0$=w;HQRNwv|#@}9(<$jHpi4Tt^$GdPM< zTGd~yEYyQNqmP&E&7fg*?NSNv$KSw)=$4>M41D%~0lzfYlDx6`s|ECBWC?9#yvgFv zv`YyxU(>^iPGFmgi(UE!y_*y^k5((}uUT8an^_h158c*&Qtz%Zfn|%WsHdzz9K=C} z90d;?p4`WqtZAcq4TtEL%Ge7kmW^XSgo3kp90b)LdUlWxrqPFk@626`i;A9V+n_A| zWo7)eUV}q`WbeJ71E(Ua?RhzndmuIOe+jWlCD5%lyNnt5%b65E=3Blq9JMUprf=*k zPkUudR%lyeKPB+W<pu5yS)$|lsglvhrP_v#qUT$;tUmeWVfE{LNdlRIBl`*<O3E>x z3bx!5av{-99CSepwFkPO`5%a2?V9_NHJQBq`0?Xu6B84Wq#EF9Ij!Za28J)j%zZW1 zB3fqJcL+pr7HVObeE&6^g}T6qm*5VGM#^o<4bQcdQLUmWv@``8F@Y_ruMalAcC8-^ zyLQ+^=tW|qf+-6`M?+)hAq{ly_DCk0mFg-E>V!GuRn9j=s}DZGgc#j~BW{W4^;!mi zEC1TB7%kk+d}lVT^BR(;q_YaE)l9BGED@JQiA%T3fi>)k>R+j5D5%}Xm`l3;ej`E< zQO9$;Iga5(+W#d|b`?OvXYl32?9L<;%nZ5{l6*^}OFS4#b<M*re}SS5-IzO$n#res zmswY9+0^+s(usjoR%uxyqnjoIe=5Len_*J|Y44&EXQc$~{>LiYI&+%o8j8{z0IRLi zEq%zRS!}5@%E}{AHJB@kE?p|(;^I!{g+Qv4*vB4fTxOWPt!1p$$_s<|@Tx*dM0XaC zL&|#7sr-L@e3w5m$;0P-&L^&Fp`B{S`>N8tvddkB&6~W4UTjr)`Tem+^vt)vth_Hx zd-?JuaSL>T6k5!uM7lVE^~=N3WX{2zc6V_@Xq_MJ!IW4Ht^UUoVzh9(%L9t{oA-v7 zxui@qZtj6ncnVJO(dbY(<~o$F=gjucTT65&FG3{nZ3#{BS^r4`I3PK3MI(`C&pmc$ zQ)LXMRG*kQ&!<Rf2WU2ChO(Enm`tK5-*4J(P3~LCSoG$c>gld2%kSBZ?L6w=+T_-{ zFJugEx}pC<3ma+=byLH{kMFe<)~^pT0uZhb!e>DHe!ZH3_)jCZL$5|eP*~nDusjw= zy_Tl+b=hclFO<mdwHLJ=bl3ZJ!vU_*e{<_Kb<ke@w+?us29=9ZeeTz*`<c&|IS#?2 zMx2<L>G#g$&z@sd_`htNM#W;9(A_ts^!!*Z_S(0QOFs_Y>Bo*;MifKM=n%yX3F_ld zFd;U3;IftX0`H620L}c&X*MX#=6T2=udL1B;o)p@MSDkwjl$h_j_kJCD}Nz*9B{7b zs^3+=W+l}#ZKq~`d0powQP*>s!fwou?dKak&s-C9yfVrQv(|n4;nT|#H}qbi){l2y z+IYBsI#==OzT1$^wB@SK5BgP0uTm?H2Sj4Tr-A|uJ@45+;L8Zlm|O`IbnFFxRoKYI zxpod0)vu8AiX-G>&ABdB*BDjmVwdV-eg1L7rlcRV9<-7Q$LYMmiXp&aeV-vgZEcg9 zbZXSifCS}({Fe?919JVltsdP+<NA~M?V$bjX)O9jryQ0vG5F5hvdrew)oRNAR=?^u zSL21EJCBenqz{XxG99{zCTROO?`?9C_i8@S>tw-HAcNTfqy&UPVRuvLB~e-mZ#h#A zcLz+-1QMawbqpuk&W=htF9<o!d|J;JXSpBTB{av_Zg3Zs+rjV~QDUcyg6QHTLAPAF z3JCDTOp1FSk@}`_;I8N=Y{${qT<l~4K~B4l+KQ$gPcwUeAugDv%;$5Ro^l0_^EqFJ z+R&j_NSP^FGnB3!(}(9_P+PDs5bZUxoNz3P(?(ugml4cJEG7XMhn6O1y0#?YY)aoH zb~_cfzJezyOuMl%7#QfhAVh_TEiLXRIj6Ugu$uR)1)b>xtqjd9tps;#5}<Jy=%Faa z&`pNnsQLPxZuG8y=4z<=#o0|p^U9mhg9@D>^w(nJ?5RgRR85Ja*+lF&a+J1uM0OFu zwGPQeK2uHI4%<Cz#B>?VQ7l|iv7QcSR<ZQnvEuRe(ZHT!2BJ9@WCg9v%*>R%r<%Mz zefqS@z`}<&F*2&@U|3Ouff25SRS2DCdG(&0d~T0>S$Dc3G?WH~zE*>Kud0G|I0ju{ z93YsRBx?H11kvvLpDx|5{a(H-hw^B;0>$!=S$nnNX+dVg-i-c~1Q9f8drW!4r==uY z*}Gi(CUWxGn&_OO#A^w*!gT|uDrD7*Cn#NxJ|}lw|JQ8a*g<*YMxJdFkuriyI!@6T z85PiGi?)S@1u2nVk-;=aWt$d2f0jb;-!lGPPDOpw0$iqlwLtkGw9CG>vHSP05c6wN z1{hZV-+B;TL>AKpc4KocA(y)rIrX3OJB?OWF8n;ZI+9gg2%Dk&h-HW0uJ)Pvro7Qa z=rJxTDq^wsE*{THj_(LpZRtH9m$SZDhLn2QZXyYW>7m##aVsXmiEyw++Zo2KZgyNi zL&0(6e06-7P)iJ}VZ_c)sovvO<u3|nWM#c7TV@>Q=`&fuIj*Xh=ODs?7!o+k;3-?7 zEHcknscq62hk@z}gKo*?_7T~Qk`<8#E>!7I6=UA+!`hV#xHZbm&d!eU>hOnSsQ^lF zaB$A21&l@S(bp?Bz0qIP(A|fOuEif5O;Eg#<u_5`;o}g#)}G6NKBP~ypemB~?h!$f zrg=Hx)8Pkp(b18!DewZh9Xk2t!Y&3-F?iHw$c+*&5y^Z))5ZSO4xPL^ru>W2k~=Sq zBQj1BW9TUJ>oCyt>BSd*xeIC%M8S+d@+p)~Pfkn^{5&;F`0`pUBsgq}+=irF6U)UK z2N?u9@gvy|Wpj}&RA(`ce#o2kr%M|{Ux^$zrx@kb1nXPj1iB?<Jl)UULS-Z>A|hfh zN7Ya1)eXFw3P>OW4)g=>d?1&3@QhiTXVX~M9%X(|$er!3&-_@-;%d)ym2vo&BCh&6 zd&8Hy8X2${2P?#9eRfh@Fp8Yum$NV<`eY$JgV<{vr_kimp~Hp4VMXZ3c8?!FHp~m( zAHy1FE3J!nQ7o@6!n1_;@zyTOq|C8=XL815K8));EG`J#(4`;7y9$sw@WH(#po|Bf z4ac-7SUZ5HX6|iHHQOn=_6TW(>@NMx%*<@bCeT45(m#jkVE}3QkuCja;~KRsUSCiV zn0p=Irn}hR#>})D$dL)jstEY$6VDdgL$wUITi6jwzw)97dy~wXOO03}jWi!jg)(o{ z%_hk`Tz}MK6v(O0LL@Dg5|Gg&zlh_aCE;T67$E>Ql&h9u!HFm4$G4JzRC<;EyRVqc zc<_9xzIRugk~Q}yt9!LVuV1~|fzpNaWr|g6V@%<X1B_ji^2TnDtt*U6uXe-cn9VL= zScCq46B<l-PF{99G<Hx$@l*Q1t;tU31}U*>bdX55J8?K;Qm*3t``--_<fF#}C8pGa ztcxCJVf2VxEP1M+Cx3>Lv*)UN+V1*!SezQz7tpm!U&W9)3Rn<yPhp@ZZrg4RX8;}O zYjMQJ`_l52c*bW5Fn%9}H=yt>5q-;cPY!$rTAYE}TWEv(Qy5|%y#soBLwu#fGb-;P z3<QHRgX?-!<y-Qj{3+=R-!lcDO`@SWz!rV`8rR!PPo{D+mhBnZj;qq`BZ85)SMNI} z!+S5BT-Zz7n@vRXXZcewh=kkVUq}P*>DBgR7~UaY)ZwPv?i)hj*WxEkDCnIj65ugX z{vk)%d#ZJAZtiJw$X@)F%a<?fm19menUWsiW+m_0`Q2jkyT)6hD&6ha@nHWYLK!9e z0<u#!NaqWE^jiij*5}ByB@okya(Uj8`16S}HQeG6F#xMOz~xMNL#UnfU=>Mr^?vYR z+jnjzn9?C#5w<y-j64?$K?TP3L4z6R742jN7%789+umTS)F-H2&c0da-TmgI2_%Rj z$w!Z}MhOTwgM`|5T%?(eaL4k$uxKiz%Op|g;=RH7<>lp;6gWo6SqXX}67Se`t;uFd zsrs6NgSmC{JLd=>lO`U~qLI2wq~4A=MN9E&>fo*PpSqrQiFs;X2NDd#Q!ih>4Bo_2 zDS~lTw&rGL4(>yG3MzU#Gr0U23bz}}K?xU1`35TG3Ba@@R!BfWNL=`WX=Nnf465pb zG!a3qNy6FN_$c-y5fvZ&;o#sP=q(Q_jizZ8)s4md8rU|c+tcex>erMi^SJ5!KYi9V zrB%Be3vk_yAFpEU;i-Gs;HT7!nz_ZiVu0DQsmlwX>ey+*o;W}J!IpPAbhCL=*8WSA zks3OCD`}(E2W_8=%mtl?ae(09=fEMZuMm33QBaa$9gryzqo)2741A5b#^a!3zWvKk z&P!TOjw)mVu=~=z5w{1pWObO%GV9|a8Rw1SoD2fu6{q#n*6!szVSK<~p^WE`Nmd9+ zVT&;x*F`~07(qv;9|UZsak@tIO}dL{TVtg|RE(9%otuh(dcu6n7qOuS8?`Q78QT-a z%9Fdqh3;&RAk)WB?zlw{?p3EwYhQ>t_85k9+!ezoW6qtXymiZk3YlWCTvtIE5-C5y znR6yp01E2pU-<p5v-6KxN0+T=CN4>5SJ(Vie>K0#JknhyC_=6vc(I^OBdRJgzlF=} zc5JM+oVB3$@VURnDi4xXq37PWmp`uBL*nf?vim*ep0a7`l8+Mir|6wJbt+%hrp9f? zE^zXty^T$WwWr<kCB-=czota0fqXsu6NQB=rJf0mLjho400O)o62r#=Xt|sp#pStI zHd5gLhbN!+_oS~;j8a;AgXW95p&Rut27dkO(HTRj-MFg+z3>PRN@dBwjyNr7^WaE; z$O2;@_XLCHx)@lj?;OO3$yaHWgpTo{=HF?>Cb*Dn9}83;$8wyhB@%j(_CADeWpqw{ zelNf0lwv>tyUFt~m90gG{3qnM1lLjI*iT&)M2Dk~UJ`=v;sGHcDxuw32SPZ>S7(p_ zVpM*CF-{m65jIRdm`1wbFre8N&z~QOB7xkq=LI1dCmccpUI+8^15}yajOKRsKHM8n z!}IZizn<@RG;mJ!BgftWrU&g?KA^rjEjQ+fAg7N>nX!&<&!^j;JKCgDHn|gc<<33s z$roKKbW0W$mspaSNkpq=SxQA>X)mB4B$W=wAh9k6mWB4UbonSQFydLWzb08E0Wuw6 zj;%D-i7ID9)_Z*3+A*_xKH$N|Tje)yFgxfzE;j(-tV^xc60&~x=gxL3pLb#n1GTgF z-MzQOkGFnjV8Hy65|4q_Tm;>A!c#VK{>Z00;;9IK3U+Dz{3Hi`K~=<ONBFza((#*C zR&{gBCHWB)8UXkdK|Z>t3tl=QA|Sfy6Sh$JdHNU8V;Ffsd0iAN#nCtWhv{;S4#Y+e zgB9f!a0VrwsJsiZN~IUYhmS7*DoWsTri;BDvRs7J8N>Odzzb|s4%}X_gTQ4v5g6t8 zi3RUC=;0rqsCU;R0Jx6LNf6A93*3Ea;N%i1wq-kr)t^FrHhaGPKq}u!8o0D*&*DYp z-TZRAfxM3;?>EsgvRT;#XePuixII4h`<y>RG5Xb|Xf6pB^WlW}_p36wg(N@^MRC)d zhLhKL9OfDEYLf+kXk2h7Lz0l{`MrJvIJrl4F^3S9ntF19u|QGJB?`!ok6+2^x;4j; zfgN}Hd~+~cyq&i|%1>~M=A2PJ;JVcB;wx?_o1FTp^Z}!&VXQ6q{4pas{qqqAZY?7C z=FOqvfYssVfW_Rvh#HsftgA2g2%wWe{UI?`{uGu2*SVs+Qn2Cx53EuT#Rk}B)VzR> zO5)@nTAXOtaf$%ubr>Lm3*GGU0V{(&2NQn1Ma`iHUsOazUn%d<N&F6~cnAW$2b3&^ z#gRBzbzQsDiBbWh*E@7e6C5Cz3O~3mPo;p+Yy9NmtY6MT%$IGK%lC5pDIXlh1_y6+ z`k+UvV&M^oxt8|fdj<ZK&miBhJIf@)k6kQO7Hawv473IWa=$+g6l&=}!k~SM>vBkp zq)`}xXuZ3@Sis{u)f6l!O5YyERRA-=T$p2Yxcm5!7`f0GFEDZcTx@-vVH1DejC>KR zaWUj}q?#Hi$f9F%HNmh`3<0J<w`?Lyy=b!5{Uo*r`E{aC>gz7*5bIB&V2E}j_=k-L zCwY10LT4WH<~6RoFV&*8UD8E_gU<K!SEt_bjq2wjFOd`a-x3zpXeCAv)+g>L7&+J$ zhk=7h;R+`({eZh$7dI|a2LADGBvVjqsSi*`3uXBkJQcX8DlYDHS_otZ#_HLIF>&A> zyK<XuFDc2b`DZt^>=mau(>31>KNzf{DI5kx_#_HrBF8wlX4>yR$UIYj?!^-U<q)$P zbPS??J+i8*iWMGlIP*w-qi&Y)=n>ciy3`>k@ap1L$!9G1=?ujmoRVt<(Jgq&wA3)w zirRbdw+_1I{MblreI9sL5DHc5%7)_~F`v6^a5(q&YZRlYk+HEbU=8G+q17785cVB9 z5~~Sj<e;IOEtR#*G6E2st4V<B!a%pA{uB^46RIN2L+ZLN@{tard*CO4Ok>)9^4qd9 zk}qMQ+j}Zt#13A5tG?>i|75ObSFsW6Pcg_`vWK}TgP#L6f;QomP$2`{&OLGO#@Y#C zKf2RpWEEYhrUDt<+C+Udk24)}M`!0qfv1Dr_3PJd!ooDTWY1#1F|{Yz!=e}uSxzpB zycBl*@`Bq{LuGb<R-yEFl-t$rE5huC6}pJuP`m&~l!p!*C&?}ef=*^JxnLej(>s1P zR?2!F>&EZjzt`(bn~7~m%7cCH2txL!@y}kRGtJDB@vqKYAF+>m2t1vkBxa=0-b+Q0 zD)5`XQtLJ(4C>SVBjxki3+McR&glXn5QgLX9S)1JnvlJfcp_nOQJbyuok6n5gLCQ9 zr<9b^VBCLrAtK7x8pk!C5kWaFh<ics)@t{6J9N<n#ob~YuOL~uX#PH8@(Pc41oHIP zi3w!??hlV;lGi~nUB?mk#x#~1MGG6$OPAOEvEOVyxXr(L^AN&HigJ>Ghg?<}b$yG5 z3FId<-R2^_{P(POZ~i?im;>*fOaxW+pJw+de1PbTWwdqx&&^_l5Dyl*GN(1DB!W~? zNeR2&7%I&^bqs;R#HO%2P_$|@t2>>P(ucCu78v^`aewvC(F8#5L6%62&fhcLn{yXR zChdy3Zm%wSW9=0h(QgY2@3a`e!)rLysHOx0VR>{Bf0K{)guZvIkugNYpKw=du<i3F z7-)_TxWOt{XY{B-7sn1_JF+I^JpsRj<Jb#;(k5p*DWi;(;OX##r<#N=MLA<5qqSrb zkjg-F*BUpq16~KSnPAWeB<_AHtEYpk_9VAw-@rLB4j0JQK$4ytS}t|(80JsGe#2wY zRhQJL7XIS?l$+24xzQ@;PIcPee*BLF-t_ln_R@fe?5aU7vh(QWYxh>{&BK~%XpJ!F z3h+CrNb3s3BnHr&wirV#Fjn3L9eFX7EXxYUMH_yifpebJTQ;#IzyJ@q93_L`P6D=> zdwNT^yY>H6Fh7Iiv#mce5JARFP2h|E;H|P$aRfx$iziYZftfxZK(RxR>t)*9MFg_k zBBlnM8}1C-tD!^5v5{0*^zr6IW8miaTO+~*ZFx1MC5CnA?5b-5d{bhOsCe}e6Xh*o zqzs8@*TwsD_K8m|zp0?wLXxC#)8dBo=W{e)2U}yWVW5svGxyTZ+2tf_?vM5*$bAX& zefV%6n#$V6x~=7PUlN5G@<Ga;-p^PxQ*h{h6=H53`;%W4?4J~e3gUF5tQSkFbU`J6 z=Fb(KMjHzke)=e^7T>`dzFL-(IdjIk(Q~YdexSs3+6RvV#Z;_zxUq|>Du8_X1wK)3 zEzoKs&Rw$L80WqLkPrSAo^%#x*9d^(908OMJmune#79)oPvm>1;W1oBh-HUs@jKJ? z>PBF?5S#syaByOqjJ_5|HFRQOe)4|xhqA9hH<bEfQ+V_cEKvN_C0+kse)o?HCsKE_ zV^XO1Pp_7EzS}=$t3HmsHtgNWYajLzpJsdC`qRU8o0xI}=exxPJl_XbZndi!qseM$ z$`FAW(XLzYnxpS=+3VftFR{>^%NWPCFGSFd{S94x%5V^Y&M5PIk>ZL18jGe<W)ZAQ zjMk_^Z0@HGUGNQ%XZgJgy&FE+wI?)-Q;4993#h<EE=TvLQ2&$Q!zZn+KQeADk)#k4 zRP0fG7b2Q+=}4}c260n}BlqP_pSC*h)S8H<?Qk;|5o(z>m+q&YKmR>nkupeBB-u-X z#rnQNFH4PoRnxUMph=+9{dq>baVplbl(<&>gNN3k?Ck8kU+l`PJ|imXcqv~iJj+Z; zp1TUrzu_iUMqimGXMG}3U}iHgN!is^#fW~P`6{0KZ4np7wTR)Q?6c)h&>Sr=$@tIv zVJ2tNxsHG=#u$l=)gy_Fjf_1@YvlOkb$d(8+Qz!N!^uTQ<ndUq#hqd7bv3jtDafGG zpOUj((lZ^OQMm{DeFdV6ALQ(Fns_(=focpfNdwTOOm1E5xVON<2|Ow-Iid;&X=)jo zn3#x`$_u)4IQr2EospRttRw`oqx&a=4)hEDw++T{i-GmsF~1nh*DWFddwm<8$N?Q( zXuu^RUwR9Ro>;F(NMqN@)ICEQV3-8uQYlqcRZVE}s=fEb!*MVBlRP}Xwx^70Z^F5~ z)Cu*`RnU9Ks^h)Z=mcRNXE6j=_$5XN5dP%4+pLR2g4mAC`<I{&v@bj5u_VeGGfUG! z^x;gb9G^zeR`g#pcA1%Mv91k%8YDDjIda$KwI{wbbj1kN!7wO|#F((bR5T%5p@~sF zSoFQJ%-@P%NnmGk$o0jF618!1<QO^r{rmT_L?SU^qkb{(Wu<TQvEib3cEPKjd_}U* zp=IGSnmi*|pi34ohTJz5r@;|WvlF<hAb*J2xJYs<KeM$D*dOxUE_`puPJTe~i)(M5 zlPGNIX{~&Nj!P8KMzT*G%68>ott@MIihrL?b6}%1`dh#X#UJoSU5mJXFR`9ajVdU= ziZ;>DiIhXR<O7A|)rae2)vl^yEj+z>n#TYGWw1P<P&4N4kE#fvL&X*>jWKXV`iK<> z0W*WPN9AHZi2&m<%O|IYb|I4=CV*eHbov~G1;)d*>fZMYJ-Lmdva+&p6AYgOlhKo> zPo3{R76GDYm?6GVO0BEzoQWdTy46rHt4mY`SjkXLaV>(zAl`P<{BaiAmcNgPmXn$y z^;$n!P$qL4!<*82rj>g2liR9!)u`Nrh3;(fi+s{uB9=<t^j#)-ZO^{U?G+ft<*T7r zi7ms7Zc;Fg$fQfC<a@#;a=XU5_`6J7fnBFDJ#I$6CI29G@*w$W&oJz0xda<bAugJl zn3}>_tO3;yPYwj`(rLlN6KCnWv~^KhVstAAt`sgDgT}fT_#qQs>Lq52@-<^QKZc*0 zkLb6Tl2{(3%dx}o)hj89$jHg{(stCp(V})Q*2io85Ub6Mqtw*569WQ==8N7h_ngwu zRWF`kpwVYQlgMv1v%8=4aO|KSiuu6(dBy@66i*gL8HvkKa5@hUS$f6Xt3l|3BakR` zD(joSeE>Jmcu%0)J_U}4hfcUCcQ6bqilGAe{t|Qu0+VkhbnkFa#~KUY^Uqv;Mc91G zkG^sAVoU;46_G-;<n|o@y#Aqa^UE=rTiQY>t!G-Y>2;&<SGeJ#eWdd;$@a0SdIG9V z0>Ol8TjLFvrdjvhc3Wq<cm1=Q*(RW$U_dnP8jpk7LH&MF`t9EgUP}#%Jt{4^sj1(q zB2(#?)c7GH$_m?7Ji6_#t7p4vpFM4AIMXWh-N}iS;J#fph&e@*JP;hbn>+J<^5Ur; zQbFTD7hje`1Op?=mDHL#*Bfh|qQ^o?uAAIg?;~PabE#{q6<ErEtnKH)EgSX$?laIv z7p<@uyb<;Pk_V165Pw)=YTn?3INUbmaNOlFpid`njd(H955vu5$jE~>eJ)B%OGmUO z@<&OT<OHdv8K~v<2sP=AbmAty{MNw?1^M5qn|8_@-%#?nx@xSKD+IC!{dxq2h~b-$ z5Q)-X9ray)WZLifWnQt%m9%yygJFc)FHCCG!e76BUG#3=8%Cm!$EWXqKkxc6d-*6d zVfZ2!UNcFAGv*ks@AMq$a`cZtKwy1zUXXxdHa!T51Mi(P53cSnBLTNc1l14_h0T^f zm5wdfUAnXO)?woMMqTagD$G@wvVRH~7O#OJ0fd8)u3K}Aqt|bHYXr$E$Fobw#$)sV zB&(D^*|oSWv$TMKt%@D+f7vr#=(H;5LN@H|=uo1qu6NVc_hy@#H0}*IkNDccIhxh2 zdm&%c&@to}e+v(osU5@-nfv|{CyhcJ=O^hKU~Ve)_1?D`dIS*YzMJG}s2+bg-e{~d z&DTmtAW?7?@Y0QEV+b4xuzfGkZ6Dasts}uaVLRp^a6_q&L3N#z8?tpA_xLR~^j=wJ z;#|bY-h)g<^EU)<=V?nz3yY0t*>HR$W16g0WdTGDomM=cSgx6pnBs8#J7<mWg$ffe znpUV`S5d!*q3c${Y0w%3%2ccQ*n$&I+5a$n$Fg}>6fY~7k)Lm`iKdXk%BY3j(_dIm z3uX-Gz)?i*FbAUT8<%=!m-B58la#016E8Xk$;fFh;{;x^?#3Ff7Cr_l+Ur8@I#r?{ zBn@b&Nc7)|%A^Y2Jx=eL-oIkTo=ZKqL`tX3%b|leEU`yJSGy>d@5=IJBm9&4uH0cI zB~;4fVrBh*Ux9qf$27g3nT}Nh(>|I+utNl(PhaU-P)?8G_;%PXLQAJUl5sd(>VGZe z>f*u{D_&q5ci>*l9_ib4k^Fkp%VpCiJD{E2%-9-}Ue;@3b29SsslKpssg^Sj+59P% z2LYMz0KZKCAy4<4$s;2pyl}0s!-RvWP;byTGWN8L%$q1%%jbP3gDYzNDLLyUJ^3ay zE{Zw{>$`+L8St6yCd7sVzxK&H0+3`)eJqKW6;$z^Yrk<fowCvQ>XKA(aWPx84CW_~ zvl4V`xw^9aXP5qcjO8_@%7VhLLfiN;yFdxS-5SGDPTU!hWFrcB;7<3AyL(sxMM{0n zHv2f8+Md0T8nr4uKHf`E$uo$sKkjW`|Bp0y+(gR1gZqigPvoniA0N{_GJ+I7#fa1v zerOA567vxQT?O$m;o>k77kcy_Nb2$A0K%XL1I5OxzT;lCPglpP7xjMr{29K*V{t2G z41wat#dL%aWZu&^+07|D9x^VzMg)1L44iY+0~YJ))Tk44e12!Xk*UnpluHADjGFRr zHUm!sK7IP69=QH{@0?JD;X+rYA3%prd(ZWw@8r)oHFV6OUu(YNe`tg58PGfs_bX|{ zF#*F4V%uNsJKL`!h+73q75Rq)(TIg^b`1a9_q?}*950209JStV4*4M=A@SyWYiseJ z@T^g0aB}vYZL6$V-;9I?m2N~=e46sbOwJ(sl~gzaqUy!Q3~s9WBh+j3Fhik!d*O@r zlZ6p7r*W@t?7;+kf|Cl_z6#__-apC9TalscJw-s0mrbW_Ki#|e*q`!QErt$lpNm$w z?J+#fqqZ&qerAl}W&BIPtsp_h4kv-m$)Z;ZNPw{_EcGS5BtCp_a~g~O)|IJ<-EQ6t z_dYKKZb^X`_~C2a668Q&jYRyQ<w1Qna|**;`cSsb0%OV(R0ike=pM9>eh%@J4!PuE zV5U)A*>0aRR`C@9X?6Q{-oaN!xJ=z_lDd}M>C*+Te}{hfL_Kq@UdmL_aIyD0w#e=3 z7VpcFM{G6_5?5byJCgSUcchyXP8;d^(OM~m4K&XP{KH8P*G3Z=;bA_z{H{3)TC%cU zzz$tXQ5Qp`zQ)vMnfry_&4=04$yEjQ6nH@%4AfvdR#0MRq7KS={~&ICGm1tV)VeP= z-zqkJekqe|+po|^wA5Lo&VTkA=lOq_I@JQW5Tk}>JA6l|6+5=s1O2v!=pw3^mY$uh zI<_>B0^6sfgtRa}*ZE*51I%3z#-YvZto;5;X+@7-%*ys;V<4Q>9VOS44CAJ85Uwph zT@cCs2D8<*Ti)@dE5=-lHU1-2+NO;;zTn+!U%h_Ip6W?l=5)Qkws?NgrImk<^kPg3 zAJa1}xWS%F{WDhW%KPV2&B{LU88;&(XIt))QxfFw5$2#!wZ&X1ZjYffd?Zw7<4l)1 zmy`r(>~uWhK;-l30^gDQqfSv$Mj7%7>gvb0N(RPqSEHItv%{b_ocgFe5y`<kNtoWN zE5^aH7C}Fc*52sBRO}#Gy+8byj(WS36i39rPCMu3N@kXuXWD^{p$F4}cwA&JkF3q^ z!tU|_0S3ao2{<Z>m23}XVx*)RSUHoeIIl^9#SmZ+(~{@~gn$=q46cnCVb%wk@!(P( zc7SOFT_@u}^x+o%>lIqox%QftkFUOdD<ZZ<J2t+H0R)~%4g(0HOhHV)Fvf8#K8i@p zhJ(_Qd-_9hjCmh@F4ek^X#d2Fn!oRpRUY(V;Fs0|34;0!3yaVEKX33(gb}*oi;Ii4 zHUW+-NzcOgxPJJcV~C0q(|2O^{{C(d$pU6i2c_R)U@?3?z)1e$Ot%ch^BMEx&~z&a zj?`L3Qx?&!Vo03xl`B`sDR6}9;dsrE816(QJ(S7e0`8Gc@|gKQ-TL+#TM`fSv{<F? ztup0O-%PxACLf6pAT55<hQZi|;$jzde~R~PNL|?WpC3hiL_bN}la~}F#0?kG(9RrU zi6ZLn@AVmaxz~gF#Y0XIY)cgP^~+7A6n4+1B&%*$W!cXNysTiIb7$I$<?Uc+W)aND z!RkoG)Vyy|p$#B@cFF1)y(k{%<gKJT<fPV?{Veli%nl~X2N-<o>A-RC_n-?TXuhSQ z#xK6*R!k%{>Jn!&KSg!5*U#J~0Tpg%H`!BISa^!&9@kdO8}APt?X8w_FyWLF?)XH{ zIW3de?~I*YZTkzQ5#Y~EOLsg3Up_nuf<aLT*lH$iY;#jd9(co3O2qLD6dCd^&L$(Z zJSXZNq`&sWtG2WEefSX(!XJ$~b^TWJwK=6;Q89c%%U*F6n^p7OsHQ8~x&@ygS-tND zqxlqto{-C9dZ<X>Taq``s20z5gEW2=6&2ab*fs33rtaCYcOzXt?j?LOc$V{a-PIQ< zNi5Z)IpjFp6<7)#{!Qhwu^0j@3*EAL{z%`h@g*Fyde|q%Y=jB>y9u?D$glWC{m%C| zrg!h&b+MydX|G$4Ade#+$y*Ov*bK;)>l8?gJq7U(tkyPdjF!NdpAoqxMfXedosl2_ zsQ$X5t9|26vl`XC?<g=z95tgR`ZN3!oy$SzS!rqI3cJRK{dR$qdz(Y0mgdzx`Q;Hs z_SbeA9VRcSZdK?w)gh@XUrs>J!#E;eNEIY({;VEQ*F!-}Bv5BC-VvCfrs0;3Cpk9d z+Y5|`+sWvO`9SRPWL=(S=<R3{5S{|Z^wSE;Tkt3*1%q8vxifWcCnNkO>wgt3f(aky ziyEBPJT-hPZC3XoHAwNKIb}QK-cCa2^wsv9d#?!7^{%~nfwX4fR7LatZ_qM{{A{N& z$yGpFRQ_Xr5yABkYXs3nLB1$~=7GcC&^?eC0;~m58MTZ6;0Pt&W+LeA<6LF$Dg8P6 z(Z0sO&DQAX=nM0Vl?L)W$(^eI@VTmbizAz|5>3PIy@caLQ0oDyK!t-!dR5Axx6%D3 zVoM6d?@~TwK=G?%P|{CNn43@IWM}~a9k{<X)=MQVBGFXZU5Y3Pl%kz&KJ0_~woJ7@ zrEAT5nbdrRvyeMJ$rhqp;Kj7`aQL&vp1T+V+y>n`dX8zWigb7DU<aT|UB@XbjF{D* zQu!KzgKw|BFjMlOadWRG%SH?U5{YRz+|#Kg9-piIc_{)Tkj6T=b!pK60q$PZ=j1$M zjq0KDHru&eE$_Tr*!n~y6|AlPK$C%Z%r2r)xBWU<%Ld4$F4EJ}`$JdL1I6B_c?4xW zNa^*Vp18n9k$q^DN_!ts<FLN)59?MdFLeLThXZ1QK}%4FpXzBeKlMLgF!#*hOW?4z zs{#_opF;mHoIrTm_zaHs_5qVNMQX<)t0MP0*d3y7rLI3BNU*6<ztHaV(X?BzVWEUx zTda_h7?%QnBTE+$ra!w66zc^}haWIXTb9ch)M5Q8pP52h$nQ26arvs8OBbH~eX>T5 z6i9(x<;o>J6vT$3(&b`GExGi0WXJ0v@b!fBRQilu^}yloT=j#_ot>Ret~n3%g?;JX zd{w|jCv<2}fvq~z75H$@s2a`p<~c+Yi=1uzUPMmhkVvB81*tJk%iZQyRgS1qGZUK} z;x*Hf;JZGBnZH}y)n;;L>cy+|aCWw~jlv`ElxN<C&9n-7--@!P+T3n*DC83m-F!0S z#@M(2`b;B@PNE>c(=kH8dZ%UnIWUbP#NIM;`)<vqCA@RgB5431Ad2@~k;J(dCse@0 zfh&XVeg_+qPS?)M(^mm%;N28q7Lm`_8YeYjL{NiTH~+gXc8r?MWe%$n5+K^Hx3u80 zXsZ9bC2@tvdqY$D|AWlM{VB(09h*_K5mT^)yxsmxEIe)7#`&15Fwo$3bujy!Lq3h7 z)}9r2_@{R3hA8%=|2!!^AE?m0;$|_1nrGbVeK&8j+2@SMMP4!0*#2Jog^;^xWMpaz ze^eEjN{f3SaF<d*O-;Q{3v2$_#?E`iNkovpa*ehe_@TC?6lxJ|p`Sxk)ghxh_|ehS z(&P05Sq9>%xXXn-)Nb0%PA@*#*8cjq+N?B2BL^=^_!%jQakH5GsQ-d1F`s+TrM$p< zDywK12)1R4siqFr48U+CKt}L1voS6kj(=`=Zh4oMS9pBELFf&L{0#mtf@dXKS<uk0 z5laH76RQg9&)@~x&U9WW%ma3P(;rW-jtHtzI~A6w+zeFmvt@Yc-F>DTH!UrBJ;y(L z{cJv%Y7ATcRTTS%P|MC9T2%&bA**h=79!Q??$YM;J{?S#!9E?&R*@(FDxS5ti(0V^ zP8o?QH`Yoa$%GK-@Y+oaKX~mY*0zI&_twX2MNBY*3ssSS7HJtM$)L{GuFa*jAiw(- zW$(Vf4!UwF@txz;`EKW<!V{a$yQcyucGqXSoK?3MW?ns6SiHPD!hH?6y5rjDkvupw zv_8=sdZ1qI(j7wi?NLEiK_am>G(fp@r>f&f`1|<)O4eTOV-t1SEQA+C{4$<Urez7y z#ovWidLmwfe)ZRtd7MN<%WwL8GE6_$V*n5LAFX>ZE9va){1lahnc&zQaDjtg`XFUx z_A?emnGZ>QF!LuXAYaHKaH95yi<HUPDq?b1yfSuW_56zlRaO#EWx;{*`&e01<G=p= zlp)Vl@M3OoAL%u&ID%gZwj=W<s!`}^HRV>?U%7LaDu`Vjn4&+Tc`aG!R)el85U|eT z?ivA<&$gt}AV!Mo_c+*3+U`+cuh#L}6@GqxI#K5K6C@t5?Nca>UOS^aV->~{!8{sI z0z_W2?&_Ts>0G)j<#Nba+?JV-m_XaerT>f+N3m<{H?ljEuXc8Hd@i@G-RP$MpTPX@ zPagaY8_li%h*g8-wZ-1{&zu($>~4VjwG%K<e+_U0{9%(;zcMEXrg9ZS1fB0w!8m_I zNeRGF&R?12k*KxQGv;cvg&y9$)saok%XCLyVJUnhuiy7z4rejOH}@9CgbliEAB&h< z6_Eg*Y&J44Sw9zj|7sagJ858|Pi`vbC8ty_T3U^j4t-;<bTa9BgrRF!#`eZ)1vY|1 z4INXt8mw@^;QXCv$R(0te@EXN0wc{kquRs}xo&MM?BRkijz}kn%BX9mgp1(<-RTNT z7W~aI6bgE$i@h&3J>62%wI|1zkL0~JR_*F^=Z;t>!}*!QL;A=z<H4A~0M)Jo^|tJ4 z#XH9IA~Wo-?m9f}V2D8kW+@S_Mrw8HU&ki+<}O5vK3QncIya#CRWuh%KIe|I#@gxW z>23DJ*agqOgx?v)R@Il~Gf=;(K4)h<5~6jN&g2WL?0=m?(iIf%UecJ{k%brnEX9du z`TP=&a;7t#oArJg=$4wDy&AIeuB4}a>l^d`z&LrmEP%q4Dvrdh9#6RJn<W2~R=@N9 zB^-x*Yu@}h7@wcGMRDZcURcpGQ7mfgMC{lPp8)Ue?H#kjwVEj8gK6qwxAJsTd1YnF z%xbs4?Y4G*ZRy1=DLMPxe*qNTf)>scx`LL6PrqdRZ9bY@iV78w00CmggJ3qsu)j%C zaB6+?+7tg)^ioWssiC1$1R!afI)><jJ_?oJqN?xEHGOXL`l36A3!$Yw%X1%Uqrbn3 zZvj&Gjuonos5BJ*4OY-a*$;Mlh%KzD^6hMWD#-h~Y&urjq708nQydFXs)>CzL&;fQ zEJKP9UD*21$x0O@gtcvohhKtmL~=2ivEj4f2$71ttpKqSu3-ccGfRuz#eBa#d%U}> zDDVrTHTr~`_pTDO@+w{}8lpjGfNRv-bAbzijCa|V?%#{LEx4vL$TuI@hNBkdsQA$_ zP{ifu;c||K9{6GHMXbl>RI@bYunl=m|4jd#C6ek^`eR9){SoYfeJ=9UJz69N1{DN% zfH;)wisa6M#qgIfQQ-@W4r$Kk2sW+7j(>G5<lQ>WR)ySP8XbIXkem@69i2KlYNc=C z#wW-k^7+Rjvjg2&{*fQ<Jw^!^o%u*`onf5XJR?+l!{h!!h0vPfb0HUhlcxI3GF?J; z1XD5l?P}AzpP?5D%ck@G{Q1L8SnSQ$3|JXNhm*G3=DXF<ws4Lg>f17}Uql}Wr|rJ( zv9G3Kdk_qY1UGoa*yk?`CSYjEtPuriB=BP53=+2;25#PAdv|oOnZNa&%QWnmcG1N5 z-QC@<?d*N3eS$TVATT5ddLEO05Zsjz2OW*8iVWytFHm3IF8Hz`jW9+9QBx9C{J336 z6-yfzayck+UHf0}#9-eP7T%dPfQRo6f2f^mIAKk(elZowTKOMFz(#sUs6fr)^G$%i zEIbZn#o0$zlxZ}!w}H@xzdaONBB-n?GUDODdmhLkVwF$%{w;<bx<q~z9|VDJw@s}o zbqs;)|C+R-Pe`{DA++AE9s5B75}|#<!wk)cM!@k_SmN?iA8O~biOmoR;%b5s^#p<G z+uC>I6r$z*>84=9AKC@=o#`^xcU~3`j0KBHqdm&1BGP*7uQQ=jYfK=zh%)G9Fo(rt zk(@MGj3XLgtjZ~Jw36KU9BRmLl?UJu?NaB!C*lp|nrpa=aKqwfakJ)1W(Q1yK()NM zW`lVS(Z!<domad9Ep%sY(OrH0(gzNRt!MEj<Ta`M-2)dfmt(lVbBA)BLTt~u?xR`+ z_uBlkhK7dq#=y-8L2i_bJ(|3ik7Ghjsu{b^U1R%7DJsuzVk=ab`0vTav49(xboG%d zr)fbx3EcOG)^0{TZa={$6NVmPw5UlO5Qiphx5XM|$j|JU<f`S)`m6bUe6hj%<;^1* zOQ$WY54MdK<Q+~O&fc+61wX>8eSSA){X9vCS-krHl=kNFP`&T}_?a;=lk9uQ*p)p? zmY5M)vP801$euNOwi#3?gk;G!_JkBgmKZ5y&sNA5St4X#X2$PvhF+id_wQeiik3O& zKKFgy*L_{j>v=uT&n~&pn~vUQ#X6=IO?I)DB<0lRt<5bh>-?ubKA>J{JXoPIpA(bU zZ<@~MiXe7!gefI)oNe~PNOXej2FN`4f+M}rcu6F~5niB>LTx{SXO>N&v4=@Vod&Cb z>ThgY9tzrRuZ_)T`ov#AVOyqg>LA?-vJ!A1J#{;%t6|)u>ck%8M_@UxIS`1R`E=?q zeQ<BbJ00YWn|1F}VSi!dlJ=gZq^8bSfCm}aXbxiBDK9oiDa0mq*9^p(YI8V>TToA| z)9b$oirxY?3q+TZ2ET%R2Ou=%I^hH8MgiQA5UG?C!hN4A!=DOYT?qlX<UcB`n;t)X z`t;zZxV=b~8gK&ImGV+^<6D-;hGTBqvRW9H^3~w@j))2_I_|NwO72EZ+LG)M)Xhan zj-guo-6k7DM=0nnzIJPlI6;-sxgT@e`Jw%%a1<4x(D|3MFC`cqYankUw8uE!+$^PF zIsy$;t8V%DM~xcXIw*U1*#dw{r<us^?d_TP%yoUyg5mcYLl5L}ZZ@Z1o{-YPt-m<| zIF)OD2^u&dGh(OQmcfuN!Wmt)YN-CSBxbuZoN)Q)@?vZ=>9XSBp78V1#Ay`O2<eNS z<72dnFR6Zed8BG{#3?7#WAv?y=(h@M>o1dHdd!jh0zB4PhmeNhGK`nw=s74KJul2R zGCCoC&^8(ifBOjNq^$0u!}G?7NkP_QzI1o{sj+(XJYc(}fN-FQ;zyxt@Sa~&Qefv2 zc%}|nYP+eU;pUGCz>pZ{g5a2UFFbTSr0fg(LJmdN;ZWM&!zag#ac<fyjPyrhQ{W+S zhmG$C=BBMJ@4Me$eTCjVO6~0lS$TI1b0bLP;FDesT+rvQhQmQZArimD<Mc*3*J2Oy zKA!GtB_7t^c6Z|5d|^+fqR-%nQ;rI+oSYvrk0Q;@h-_}9uCi4DL0zsQoVyN}BNcx( zk7_sZ&(O~piQA$r%l1$zH|9<!Z!Kj{Menv$-@WpE;zZSfgUC{iU&}+9#~|&G&aC2A z_e)`}KF$3Ry9^^Nce!hQ;l?~ZXL;A>D1E%n&_~1nvd)T16bjNG3IWqFtbmv(3d^G% zW-5(BFPoU%9QxCvyxQ<y>&Y25K|#T-&tYYa$SO7LIV{bytvQS9)PeP{Cz$g>(EQZq znxk19ZHxF*7>WKp>*t(KB<c}jRNg1+kOJ=FIMu_`^@Br$gUjFR16J#wsO~RRf)ogL zFn)S`+xZ1(c%AzeN=L=WX!LbPLt5;MWq<Cs@MtU@qz90O4PHP26iJ1iJK?iViF=Ue z!>?{yDF$yZ$3;WG57q~G&Un{eOXk7TiK9wyON)KEt41;T*@e>9v>~tL3s;00PX5|D z#aikEyRIw#Y0`>+=NhXRyDJU^)3VdH=HGN4Lj>EalTEiL8tzpU>!q(x2<L=c>zO<= zA^xbDA&D-ZUt!J3@sQ};&_gayp<#I`SdTMCV_QmI4D=8bEKuJ*4CsLN_uX*zg)M|L z&_|>NNcESRRcOpo?Y6!!%1`65VdsKmMK)+<guv;irukbN>U!Ntjh*iDXI@=+C&tO% zni4%5rG9><OE!7yKqmm?jK`f(S`Kgy4JE2A5H?f^Yc1rKfHE8o8>9E3N$y`i)ZFD4 z=qg{*G%@l~$E!gwI(|z98Gk$$`BK#wrh)u{@apsYMfJLa^5KDW)}z&4Dz`Sl)Eh~A zQ7D4#X1Y`MJr_&MQ4VQoY5TKPYS@8i$}banY--vFlIs-9=rC-MChUIa_-Si7+Bd{d zqv2Ila9!8Xhs+{LK7iT4E`K8<z~#=Jmt`+re6M!sObG}(JeX{%@m=h1`7V&v6nfv( z0;M|-c52Z>80f<tp-I5Pb@I1N2rp#k2)|HF-np@J953#kvVlpjO0md1d*?IXGajMV zWvKx95fc;R($0n!#;z!;P2FXJIPw}zyjWK7Ipf${dROSo9cNh+J;wH`%6uj0+W76Y zrFMOvG(@e$hE&J?&94J4N;Bq4zs-bJX&tjcGF{(Z(^j84U3cT(R!-D-wL53aH<yor z$?C5$_sSj5HbsK$`?rsqPLqLL(E7#=Lu{OlK+p<Gk7LH4<7^iQ;A;Qfd>$y98=9Ct z#|Ql6!4UrP&a^!_RP*=Wt`*_@&OPS0is)G>Er(M|d9LoHHSrluISFnRm9dI~-6_8| zC1f$Fu^Lf|YzB{)5~fxwUl~N|VA4aO`XWm;6$J&eRiNPWgJlxu^u<VIf%?{4V!q<L z;C0K7_rsF4l5?fM@MP5-PbUD|q-O<UO&^1x5H+;nR^=76{OL~0b7Z>qD*as$1_yOW zdw3MRXEkQ2*zZ?{&x%y3VSycf9z5a085zuzF}F)$Sfx2Ch4BEdkP~daq)3L6HRJmS zhi{_>d_OM@5Z}2W|47v%)2$J{q>RMxtK}dxkWV0l^y~&>WVq*a{ktST4#egXxt3+# z@H{10EWZ|Ef{<fV4fM_;+Wze=a0&@bQ$LDK<P-KFKZ&bF@5JG+-EemO1v*(PA9g0* z5D#{m!~_KkdDbZsa=R$QgHBOX(=)EIX;6rXY^IGrqbUj(y}Fgfb?D%BBX;pb)?vYo z;#x=*i75T+iOKm47;dBD)ytQow6$GhplZtc18TN2mn=}U&X>QQQP<R#`Z0NKN$c1Q zA)K&+wzm)+urGq_WO}53Bv%<U?m>K2wm>K2K+#>KpYhWA-mhok<~@;2xW-yHq^N|5 z^A9@NNfX*rG*!7JJOhdov0abklBtqqWz&Bfo5&|PsRotkzHGUXG9!y&f9@O>bLud2 zYd+xV2%jOyS;~L$!uboRyTb;)uI$Nhxs}=HNy?*h?csq>(PaPL00Msuh4a}w#d^rg ztGQetPb3<v2r-vWFoN6|_G1A{9N{XWqMcit16S!dmHn50nV*R#0E)a5#oel~bJJl# z`QPobCyktjpABbpDA@>(RI5^CM46SuNY8QIKd_GEIPCPfAtcu`-{~wZ09hbBzM`w! zWZoFE$9ZAg*Z53|czKZ3j(Phk<3r^&v4WX*TyZ1BTCt-=RX{-N7BgY8A1;HdYDqu! zE;$#Zr@eo5Z(;DZ=ZClOgeRcZrEcivSFI-HklnSvB_$<JyeRa;cabDYVKnx#Uz{WD zIz>ann0s}KTpE8Fd!K1QK*;rrd9;*8pP!3LjiG29h~A7`?%RKxpGcgqzU|)>t901V z&~Q0m;@*4{c)<PUJGnzQ{$W^d&}_bf<FN0?+bEEk3=`}#eF9fIWO8Q){f!7Ongjcc z2aBM{a^}ka62Y`KN0oNo;Yw=oO6`1QW9UJ={*^1gBWpmD18L)Y0#oVST3tzePe!av zJWroBR2-?lsM;IOK{|8xt|Qk+;$f+014qQ!!`-LEi=1ur;q`-f|CR4=?Dk?gWG3$Y zdG~Ewciyu;^<L4vKK2#QMFIy&@@Up}pTi0)h|hs7e{em)DvYY@RiB4X=t>(}&l_6q z`ycg3rSX=BEf%J(C$QPrtxkN%U}R*xHuLl6wZE!=$;Djh8^7ng({$@TW#lftDJpwI zKH#d~?Lh)5XR4HVOD4bn2=qCe((vKGL<+VU&N+<gVhyLP8T-JgbQs{&Qly`;Jpl@q zoy}?z_rKW5&fOf2k~v_@cOm!9fW5<}FkfX)(WHGYaGVO+Kt%;eJ(OPyR1Lp%FAC=c zya!1k-P98AZEkC7wi+rx>nMXFhjX-X%!>Wilk@UE{<Ymf$uwoQBlx*yVob1|{zkQc zz@{>%(xD58d<Ud{xfVy=^d4GXR#7o&ZE9L=`>W%br$LS?QO16+*i?mm56#2kzEmEL zY9WUDk?e(!X3$w3>J7Z*)eB7q7kZZ$za-}LCY=X+4=O^P@IVMpg=tHZw(IA)H=DRh zb6VE<5_qhMaJD}J8-C$lX72g-JW|`pxOaSI_!eoM!lq4OfpCylHi_BxO?M4e)?d|F zB)B6<ci57*O0hkMo#Iy2Vs!^A^^?|bZl9of)4zwgEHVpiAu0~^T3|E{U8cw|3WUL# z4y21ynS>UBL*u%Nt+HfsF1y+7<$o)fWtbMO*0qG2sP%Cg|558xW9zl`86QsJn#hTi zQ&r8TW%-4pgFeZCOHt$zSN$Hz%sYMNpflxq;VEn43zem-xb4L{SEShWi+vXr>vagW zL<u*vQKLT1yH=%Q>#M7)f%!!%uj@qOw<eOD6Y(rX9%2T}(Hx3Srd(ISR`ckO5Fu*h zI^Z82^o8Q>g3?}AaC0yr3{NIJXw}<EhWBycMkLU1hiD+W1-VqF^HfNG<wxztg#=NY z@&v!u6%nuQF<0q9OW!^_QuToQFwPA*U##WWmhO7+z6&hkT1c>D2z;oQ%PX6lprE2H zySLGOfej?t@3FA3aCLQDVw$QF_9^gsZT+xS0As47A=UwA8EDw(QxJyNG0PDL!Nzce zA#EQbu4<%%jy~<_Dy!0!+w_QpXaX=Fx@0x^JS{t06}ATvsQ}3rSiyFxHBD*0SATzc z+wb;1T(PF3ke`xUjj#_BjH2V2*!?1$({Qg-yryiT&QH{d@L|4)cr~U&<=%56*5+o_ z76M(a^fJh31p(ueh=pv-N!z6+MsQ|WVG6<e`pW#!WFFj!Or)gZcW=E+1?i=5sx!M` zha_TKVL`#BRv0$<hz<qQ9#F>{(fX4f^fa9`eeFJ0UAQwIFxkW^ZutpP=1cOQ;vR47 z-}7nBNfJ528L;ro+t3b(*Q4;ICbD(&K)Ir%Po>bcoQf$_M>|kJc<<k9E6=<a`u8*2 zh5YLMy2j9hVSW_)iq8moe9R3PoI=40>@vt`^Y<#JUS+V@y#c=Avu$s0Z@BB7)R`G( z=a_HuqRl*=`xXpL;oIMWz#UB=?k|AjG*kXKq(zPzL=lE3(H5YOq=mRvRzKrmk*g2h z^Ih!!Eax-VRV7(Fn-nuLGBS?`LH+X#yOuD+VNYuvoiBBTx~Yx#+PDMCqUI+1UoP#P zRj^o}KGjsX;q><YXNg_qcP8NaYT#}n7AS{b1#V4~-OC+lgM=|H`lhn_sD->?Jh>ka z_URO-yx3kZhO`k7Ma$hm0GyP#Xgfsh`TEX5`}R`v)<30eEq!b9TPm-4b)(*2-0Ag) zdGk_Lk$wMaO0Z|hACt0G_5Csr4fh*x1Nx$&-heOO;Hw$9nh^Ra9Ev-R0ixsV3lljF z&|flV>VPQ~>81CdNFR~>Jy6^$SW;3F`uEKF<QTLFRBmW!NV(c`veCCSmSeRMWI`jQ z6MIn1@AAj?^uB~+Xihs3I=>#Hy;!)f0JLAnzhI&-fB~FdGT^%_R^_n4`}~`0sjU$! z7JbUmQ~%bjTVU7q`qQURFKn-j*E0xGr1M}AY>VcJF=$;VjYmze)7`s&>#Ll4!=^h# zD+oXp>Dk3po9ALKI!n9XX4MVJ;H?s-dmp4NX`o?Be30=$rP~z?U?CwI9|L22{iqV4 zy<ID20U+;7dA9p|c)SAZlw8t|U1{Xz=_&XE>(9_puFEjohNPxNQv=v<kORsM)qVVU z>CO<#3eP^*Yf6$SpD``z-+{k?hs^>D_^kX2@@5f-uRZT>0KgO9pdZVMvuqIHq2dA- z=}?5V7iy7|aav*6a1l=Jm<M845H|iz&}xT`x$eiSwe#6@W@YBK56YHCM0OQzZ~BDz zkp>Tzl$bL!svm(7Y!nigaU*JhG86$?sxu4Z3dH;@7P0ce{fX8<%LU~9^K(>b^6r+j zjP*Ak5`cUrCZ>ZamDm>vm+8XmMn^}p>iz!&9mWV}o1ZGtHmd4D1;H~3iR-n0;ip@O zAVP0GclBt$(+k0pDUf<fSFDY}nGAt@z3#Of&GgIPPVvURpKIFXr`7<f8ueX=%SzHN zc-}gb2gnDkPK?XWQ)zz=o@J(kNt_?P5OgtH<?`jrqI11DhaXwYZv0(&X;Rwp+>exa z_x_&%W`eu95=LlORCAyVbMSXqn7rTW8Twib>T`#vz(3*7^5aDSQ)-(qfbID@1=zaH zBv^zwBq7M$6<ZWm-3Go+;Y<5h)ty!y+PBA}VbK%^rW||=1Tz+9X2a4I6{?SGUIxF+ zswqibj}60Hn^8`OAXSkM3AMd~ro~GAQ3!P>&!-ypn~xH(0Jq5oI-vHs2rv2t5YB9k zq*GOJoWh6C7|DBqtfySDE`+R{oQa94X;`iMSal6%r+!l0y3!t@KCJk(e4Zybw9^aI zv*|N+l?uQ}9_J!bLP!LfJs`WW4%~uokv84^Lv|nRA>vc8z(sDjw<f#gT6teY1&@>s zR+*QVmt_ySVE8rkJn){jaUbqW8rxYJuV-gLlEOd@!HGJ*QaPXUX3Sa-KhN)d#WhrP zs~6@<JQ-m@LK)EL3(fEa4ep4eSO9$%cnUjDrrGi$sSWVT^&=(5#k*kTOe7B~u{!#0 z$*Ub21jA%h`wKwfJCpU8Lz1M_*kNl{z(nnIU#@!Q=c2{*d66ia!}CfJ>u^(zsWMd7 zqvL0T^WidVkGQg6B15m;TIcrmx~%Zgnr+-^iK5|5S^sYLBnz`rJ8#h5-p;=4rLbU_ z=w}Gko-;d{g&`H^gw;9kZ!VUuudkO0_yr9kCY)wlK<vXL?-|Y{A8ftVK*RVFupW;X zzLzKo94}d9*l@!<kaEma8~#)ojv`FcRps(D6<9ZgvGJqO)(uZiIdDgz<$OuX{wqIf zm&2*fm{;30M?`iz5I19)>YlVmQ($O!Ery@S93G>4Xc%8I_H7))=o=+5@J4IAcn<f6 zTi%+<qqlAylpg_nVhpJ{Io2`(D?dU6D7zw=aJ<se(&R=CZBqu|$63pptN!%?D<f4- zBQm`gHwcnpe;+?v`c_eKM`EeC8M9`9<hezi#ul!0NObmvihSWA*WERcNr(kXjxQfd z?Z_wJAuNpvI|OBCvH3;S7ukd{9k!Ir`PY&$`+)7%Ze&?mSyh&SQ~bL~QnnJbZ;$O+ za&j5wkhn8h_osSn80@ZSzC7U5ZA2SR63j_a!aTl-+j0H?nnpCpbB;S7p=2Dz2X2XS zBz~#s84p%)HBB~QX%-ILH}nV5xb93vALezKp0=(oXEXuOs}^x}f~Jj2mcDrLz3%Qz z>*bosu!E>lvkFHSB@1WhuxEx2ksV>bNZ1Od>oy1`-${cZfdZLVXH3OUzLOC8EcO`> z649y0{6bC5Ikt<AK6uE)%&&fH*s5)7alpyV+uPf^A&!BivRc^C?B-4VtV8eQEvxmP zk0n{v=X>e>Rod=5>T3>y^s@fFW8_H#c@iN)g=Y4zqqX?Yb)BB<B6auKOtAgzEAXVc zk8C9X`k>On?!n|?Bd?5%57R6}8i7FQw9_R#+;Oov4Z9^OFL!CaiJF(R+MR>KY=bI5 zA?sg+9s2ji_}YCEnp|iJiZj-+LRm*_2~f;s0V4Q3*t$&ud^%x9?N8@KK~;itoPm7# zDXt9+OvHnos~RJCAIbMq5iug13a8?+65;`at_Luwc9fx|WgQsjQyUGhRz*ZWm0mgr z`73tt_B9QI$_HJ)G4Sr&Yzr!ulHld}=mlZEOmRu^!?xs;K@`3=fwyo|f~E;$D*+2< zs4q-GqINc^E9y*;^ClKTA@P9U1{h8(>{1PXR9RUmX}gLe{0!Djl~9ST@fNb`729UF zbRa6MImN?tf|l<N+#=tE1ttKAe&jK%M!rcY!fQJrGK$|h7CJ?|1WE<mo`9TlBKI;C zzI=IS93M_GF2)%h0?~V`?eaiO3KHP%{%89`@Qws18%_<%><EulyW8z5=|>)dl?baR zae8Y3K-_;7S1>@BK`cBBx=8nd9GfsGBm#wig>#p0uRwq=rL!rB9j4NqgMC7gc4yQ< zL46+IKcicmUa-wm>)9{HXa5FngUSz8U?wbXzcY!|JM_Kybu-gDSsjP@5``d|cT}8; z(;+Q1khyCh!eI@qd$a#J@7d9*5C%7-MT4^3>lC|?Stk~5h;$?sox%P<4#}4k&A>18 z@vIbl4^l~7=JYH5y|kn&^?kCzW4x}$qi(V2$@<2I;>@Z8tDlr*06ruvUo0XrRA|lq zJ&K8N?7}pVA`nF&;^$XQ(6fNSv<SsoHy!=t?fP5$!gw|J<pQ0jO5>PAqFsX2T7PnK zGD%um+V`bKmYkfN$+y8lX19?_2SlKl^?NT~s@Lb1oDTJD?!%}EDLpwoM+zID$c6xp z3*cpNp(5V|jGx=j|46HfALJU~MZ4Fp2xI9#EqHl;#MV&CEnl#kYRdJTY}}Ga6$J@A z*YgCME~)sEl(+wk)y#r%C-t`*KHXZJ7d#3)ZdQ@h46^6+FGej0Oyducr^)g25%UUk zD9+GF0K8k9yyvlSm=O9b-~cfV1IEpuRh89VuU#uEE5X+epAP%`neA#%R~Hwp6FUB# zx&X<qe*AJ29S`aDNTma{NA0f^NyDGL{V$g?5#!S-GjU3oo_(w3OHIbdmnI{SzM;nm zq{dVMeC^iH3{cHYG5-(uLiV7rW?M!>)dVQRK1$Z2A=kt8^;M|%APagi?5=KZ8YWGZ z-F-Wf&s9VBLEOasS<!%u_S!8Wo`>62WjPf+)=i~TKi(dN>PR?bJR}nTRp@BpOd0+s zaCUwTh4Ypn&SSrq7#I7K{&-@7Epk*tTZIG#w;t#rr9T}gZ8|OxTyr-j-}ub;{E~6% z37P+uYOU%u+s?2^__K97r&nRkDH`?v#Lm(9Z~Vyaxo<PY0bo3Yg>&)an;W0;U@254 z?9zCUmYaVR2A@{4cO_jYw{B|OFHF7Fp{uRkzB*nXV0ZiW?JI6>V%+DZ=gK@aESj=F z-a{jhA@4r==&I^oK~fw0!#3}0-1~A9_TBqFQ=W^2lD$;^Kd$H@tIOomHl6`q6ZOb$ z@`mow*5J+poL+O#-~|E@&PgYLOYjZa&7iH{&vplmuVw{<?ODq|YB%VkTE2>ZI#BxL zn7lQHS?J59DK#w*Vwxu9urM<Z%44KeJYlQ6u2Wa3P75+-Zq<B0fhi^jxS;ij!WSO? zIB7n5oE#0o0&{dO=kp^^#8m>X24aPfFzNNXu^ci+z#wO)NVwJtg@N-l_Rk*`9_ za@b`DhhNp*85bm5@rRMmM9t1yaH|h*Wim9>lubfgh!!;A6qw({tpnhQ#T|_vV@iPG z{-pnAI(}kdeC#i-!PowZ`9R=mq8I>{DyB{mL&(sC$@S}HoC;nx+};$g-H_bpl1+VK zKKW&nsbFAD9sh_8l=$mi%PLQIr6H;B(CfN*PhkLe)M<X;I56Yu^MK6)&KKV9+x**@ znO|q|36b1Ar$j+iTKdj>Zmwh$zfEYdL00wb?CdALt7yh`iarLfI?9p3z18rZ!<KKi zg59^DU<fk~po)NPh?#N}^Phv)z3`4JYi6+yB#C1J3+P_91-<IdaE<P~*jzkb#B^X) zrEw2(Be0wR<Oau5d}7yt3iLdeTN<0(AFdH9Aor8wm-{^3>s4?Yl4m6)C*j4PtZIIE zceYv8cof>T9gL5zU}D;@R#K8;qyG-=xlZvUj+aN0v4MCUG%fZYX9m>53Z%;`8t<T^ z=b@n*r)+D7<lFuH6k|bmaSgxIt1uI*i=<)4R)%-I>GOCvLcDYTz%x=D)SgO}w0s*K z<hMxp!&D4=C_|jpq{31j@gzXt?Hx=2qVTR^s|n2QKuih$oTiX<H0i{`gzv@tl!}I) z;GTy3jtR&6KPy(hRamQJ0$-vjaq5NTd)%N*Nn`NNN<ent&zKRAXxOH`-PZ3bt1rOy zi+;g+-Bw3$Jr9(VGL47*17gU%vT+B4>%)h~IZ_&+d%`idFyDv|7fhz3iFuovrfh%- zB`Eft<3Q1SS1D^;y`gv5QGsncw`{V`p)=*fJupj`6c;aSd05n_*und~X_=FDyYuUn zugOz%^v8BmoQn0BDo$-81swUB8N^y+@_o&l%1?j1al@@s01@1r@^0qq;A>@!TB7K9 zo)CaYL-_>SXQrGV$&F;yW!6n$UqR{Y>Ctzt<s65m7}Mkr;q#IX3}Q=d9c+TmdfUZb z7&NGk0OBoSP;VfUq}q1@v>NicOGS)@O#$*8aq$369>ANNtB14eNIsjjTDSD-F_Pvz zdq0-cPKS?vlrTIvc-_j_*!Xqm!M1~pV^`qL);DVu=-KYl>Gaf7<di6^6<6JtA!Y8F zS-}3?(w7VBUe2_vpjG5ajy?J4dteF+_U*Dyi!AmafxZ2q)btS?os@IGewp;9%LwyC z9ul%ug5~qvaL;(K@hq5OAnUN_<HwH}-U>Xm*{yrOsM5A7u3MlmFAU7v!cl&t%tcgm zHBX!YplARbA$)v&Z{Q+OoZVJbV;uO{(O3*Lv$=YmLdpzl4<RY;z1pHh`}p`UB{X=> zf*oM~zXuoH1Wqo`)iZVMv#8JKkUMHLESluJprCjR|89iR-SiNJmaDf?daMy7gV_SP z<9!y5^;qG4A+u?6l)6MPPN_UDTq&yzmk{&Ga<qi-MkhY8>q?Veq*K}K+o7a86XJ5` z&TsUJwS`5k913-qHA!3v;3+eI^YNs`w<<OIwD0y=K6=s4&$ec)v!a@7T}sJMfTlv? zGD4^pV4)|DY{irTcM7`)GM+!;17&F%0p4V36drsj#Eq^^OwK{ibGgU7hY$MpbW6{i zocQ`D#6u~f)$35*+4s2=xrO~GIaWi{VqY%^h3b&63PHir*rlp!jrh=QSS|?Grlstl zDR2b);AZ<{iqMC<JRTl;yT?d0efVoWoc$Hsp_}`aM;B9tm3?wG{U|qgB3hj~d7)>% z+^DHN9F_449vy^)010%8M)SSl7>4JL|Daet`fS)N0PhVOr~$!P2!nzq)&y$qlO<Eh zMW|XNQNq<?DXeHnk-(jaPd<<4S!E7nTFCl-<k9odSHm{3%+)uGCCTwPUta|9w9*83 zH^EU6;+x|N(UDYV#M#|95ER;0#<n&$Rg#<Cz?DK05DU#BgabpZqbqsE0xj<p&GW^u zF@FMc?4F7N^!929uc=<2hx2qy1eW}}+d1>eWW))~8zVqfysvRe@T0|Gg{ARe4FK9X zh1XSl&{;TeYUC~~Fw9&D^ZP(?t#~5G2slcjAq>$X(1ykTg2W_*S6|M<*2?fN&SIP* zOpwQbAipo`-QgTY#%CI^f5(?Sqah4!zg-%Cg*^5tc8IHg>hzD;Q#f_(5Y(3rc3(u! z0Bdf<CulxbhM{@>@&D$x7RC&ruMI8bKPn%rT}47ltNPCOz1NGvQifsaPqfaT=~=5P zv*xgL**H%kvtGdISw}c;^RFM6Yl)CE5wD97(UyA8FhCR5em3l4v38KdmbmC;!+Gob zt<6Ub>E!i`J_8E!UA11){_mtcz1rwNA?||z8@y=po@r_-C-jfi@RRueVpt7sh$4{p zs?!hu&x+Xhd$oZ%uvmZoG`0t@2xNNwky!Gl#+RhGEnKS=xKrAAl-A<EA(2%0Z`k4* zFm=JgHBLcjNs5MVDWgqgv0RYpZ=bn#t>U>;HtgP`T1e@e$G8^~YNU^*#lBbx<8C<G zT-4CP`!c7oyg#|L*Hue`1(Ej?E&Ah$yFHnEPU)!QN;o_kfG^}~7Kb0X6i|_Z7EppJ z1Qzh4D*^NZzE!m{^8(eIu4a@Bk<7UwhgTu+cE}Wk`r~7hol?i2<ab(EkkDnFq9~3O z^Pckjav^P~iM{)G1?@V^mfX>&G;lNY2^6@Q%?FJ!M`LUgK>tzj0o$m#Aq@eQpcq-E z&<s8&wAmu;H$icxx2b>c7!w6c^<WxK&r!}sUKTLl0`na}ZjK9U3F?FyNJF+y=qj8+ z+qI((G>*<XFyo8>cx?VfF-T}RKRy%SaJF#PaSrL`aIrXGn3AFPBb5!~y$&nqzU>}c z6+MLEwK|#s@E396Ir1Y63fb5~<(kd84mz)kIn^N!4-Tv-FezJh0+a_w-B{q=`c8ty zENF^9%kd~#VJ{SmnXr+@))v@xino9tqhxtFO7y%}bq*+b%W(oEP#zy$2=FNTSAZqg zU_m|9X4Gm$@`-kXc!26~aLcDCM+qapNI0(i@FAhrQCKd(Ix2fYlsp2kvBlhCk%Ix> z4s<f$g8xWs=B6mD)x4BQwn-l$T7;|ZvHUw!kWlMX?3pW#5^5i;$@>ruix)<_D^ZmX z<A)wmCWuW18Z=gvd0|p4?ITbR4^s1W=8sEbAdo8xJ}Zk(X#BDHa9zb(`e{<UHdUc| z-!NZ!*TO#;`#EBo$hF3n&wc4>4=CYx<eU12!D!MoZ~x-IXV1nKI?P*tfyTd?o|^2) zvRNc7ijiAS$lKs86DWg(C{r~(9%cyKu%&0sUlS%(mK6^OA!0Qx04kC_z5_v4m#x+Q z-*H|A$0>X>wEDks;;(qM5dhhVsFA#827GwaGm*q!1hFhs`af@hh8aL0ihu#cp2+rZ z%n^XxirC$@(>q-3R`GzCW|=hDZS1&>if;Y(&ll2%8*8I!vBq$#!)M2Ldy7O<0o)K@ zxVZsVyY9k3ZL^)-r^v#MV&+T#8L8K4xJJKvs|&vP@Y?YcHp)XDem159DL!0~X$fjv zPfld0?)+7)sE&QeQK0}FB^x+OwtGafKr~qKx(E?PVdc~fsDRah=~?(|Us9}_h`QZ- z)E4R75*0`fC)=CCI4m%q+!jEdU|%sP*Jg39-z8nm$6C}>`LD>Dq!s9a*khastoY>9 z8^X|9i-=IVe;3ijccfgkKx_5V;lIE%B@J8gvtgNA^OgTQL?uRuBA|55bK!`V0S5&X z6e4??Wu1l;adV-{wB`Km&@wN~71k?X&4;fZbBf71Ks*R^$B)YFlVKh3>0*I=fStxL zsx|xqH{c7)q&=Ing}FB0TN(D*`P5$O|C(4Lq8-wg7_2p^|DS13HS0PK6c1+`0G$lj z&&Id82ph_M9JbH4@{Rv*E$Au113c28-wdQ0fIoSl$xx}~iF2g^=j<U|yH?)!8O3~t zCzAw^8+pKy(bIyTin`SwaQvxoCWJYKw=2@)GR2yw6$ce5r6v3qfvm^)l=SbkM8iJD zVz~g@VcY$>|1-09JF%2Fp&SbTiLtTYq#iGf(6*f;riWl0^ncC*ZVYwb!qOK-RaB5G ztRQ%<j->@A34rht9LLmrMM*mgMRoYU9`s`tmJ67kh}<U~-^(i&%kt`~1t175Pdu^v zn_w~gL<ytByqo^dO6bGkNF)^+=9@>Wc07xg^f=8N13-v+7MOTMxt7X<@89!D$x*`e z>~2*2@4EBFV7Y+A!3-tVf7X%>$Q_7{Xo;h!_DwYa)(@?IDZbcg(%_zt^?wHv8pb#k zcU-*%r*#kZ(<_?nue+nHBAZU_NU9ISVq}<!U{Mat6SW1AROo{3vUuI&0TP(JY~`{5 zSy~bY<p1XD$m;+9|GvNuBcaYeaQdyn^HUH206^!mfyS##HW4m%($WAxxgKL^pha`? z^hp2!XmqqSt^ojm1b@LP0RZp`3fcq!0OE5^>k{y)hief4C=0;;P;<lwGZ(k(Cd{f; zy>GK53{z6d9nM~kSf+30K~f3`_P;1Q@%5!fL>|3b#OXv4BSSReg#Z%r=tK<Ss}TA- z^NV4_(?~IQi<8WCMn#=^PD`76p`LRON^FEnrgVB54pv5Lf+wR17osB+-i+Hg7Z)JB zWAMy2S~k>uY(YQ&?xN|25csfC(^r`{%`EOFx6AEZl3l;Z8XZ2Iot~b~)G1;8WBTs_ zr_W242kmk@+Wd404Np#q^(7}if3Ea$YG)?rY<AHYrk2Iw$Jt`Ode`f-&w~pRqZ*PS z*Q&>D?%NAb;ct%BNNx@*pX|K&C@FNflpRx7s!ba^|5NAF@qf*A)28xMVLmf_U&*VL z;%SP+&GY-Ip~0zzPr`zxi|)AAq;4z;H2vTgKWV;cPYoFscW%i$SF!y57mJ-+NdNMi zs|Gjfrs5_Z-3pLI9n#S$u;9#?zGmB64wgF;{M*~p1_NfEzmo|rEbJw``^sFO_u5F} zy1J=W3$M}khf7)5sAalkx5S~AKj%NMc)mCCR^0jHpzE`-PJ0Woqk?;U`@R>|^4+_4 zi94h;nZ=R6z4q4hR;xR`b-(aiML6zmFEm4>g=DB5O_JL{>B*J%Rt0Z)kr1AS^Y^dc z)@jPtjZ2cG95bZedDqew?~$P@x?~d?8Y=B}p+9_$(VSKCmhAewJ?deMZ_D?^Atu_h zubQ1@h6ZD7YBPtwo$I9fZg1FNbXz}Y@r*;l-<x{pg+KE-RvAbPomf#mMG}3dIug{) zpZy~3{&FI*RaRahKIdY3uin~^1k-NY8qFmx603u5j8%xL`Cwl2`I8;rXdb7Wd&1|L z<$opXG4Hh#K(3JHl7sDY{YFmrlz?7^&%YkfFZQY3w7PPm@_m$kE{%!MX1<_l=w-&U z`N)=?XLc_512d_xvLXvr3Ez$vJwji8d(spM%+B6)LaQpyBt@F2jsUm#{qR&QxMZc0 z4Ec}YZtfI!NVi{_oTJ~%zE*QbHow%uapx_J3E)rvAbuVqXcM_2x}}|NmB=B&(pu;~ zj??tTV+T<=_DOLfx?Y=J+dnotQe1Bt*<klFbM7Rjk9RdkCnoAobuZjud@7i?KdiEb zt%u`0%Z%<As#CcdgnqZXkyYMIGI?%fEo&j}YH)HtoM;piTiC`id$EI6Z-`=aD9%)W z7og_Ti|_B`ri(3==?%PWV=NRPtsQaJlJ>`T$v$!V<J5<^uX^zhDTZ)fXAV#B%|++M zigU$&C*+=*d63PX<eYr(tm&4(sd)seaLD}hQnd`wE6N_j687-2TJiT^@3gn#AA9`e z6TI`yRUSXqUG%htWnouJF^-Gmrc8lL8Kx?Dd|CK!+J?<J-=qhKK$RgerFdj@hSb^7 z61_9Q$p%SCA4Fy1XoEY|)E$}lZw)7##1@>G!g*OUtFo<D%!ps712eyM@(oNSpPahK z)DZQO@N*|GfDf%f6`1r#Ewva~n4am*-d?}*H0$&Gsi{+vt?F`Niuc&MA7YC)-?Rhu zYW`|PLveeO@o#@aXj!k77;`(#t10qg(J9Qe_QcohIyIcX#*&0e+HCV3VVmOf<BV~P z;+&`XDQ^2!zUUL|PE*y-F3B_aP1_XmqW&3${+T95Px%GwMJ931Uj7H8e<-yAt0hI8 zlSkS=&M`<|L&W{k-@I19srgI}6{}Y!y7pE+J~rKp*4U}RqPUpGL}Zickx^(>!1AbE zsAo@4>|MK7#~fofl?hSr&cqD;=DC4Kmmerh2eu2?_LShD170PKisn9lw(a-SGW%q% z4AZ{*Vv}_+{Fh)nR^-&(U0Pn&aO!0cca$<(a#wo9_V-|k%VbESlBlBipTZpO)-*b5 z&VppQBBtjs8t3v}qX91a5Zsoo?3dyeyI&9PJI-e%C51jtsc0W*!e9_D2*|rolU*mB zK&=bRY;4N%ZlfWiIM~VgSa$kUqDEUXd%cPE!dgt~=fP9wEyZsSz2<wftGa7r-VlQN z#Hj6K!evqK-~F;{v1%JVZ?f=;^5rDt<rW-8*l2#zuXf<=Gx=9(spsZrs`*U5C%3<E zOlh43J?*`->LUrXzwcbI*%nY#Q6ZM(MWDWks0Iunit}Rk;&Og@!H!(=y|WYr%ls6| zvW52DY0`VcLrLQv82r1f_&oaBxic=akffbAfK@q#)Ssm->mI)$(=4QS_Xm1?SFHw3 z%JO1<pXxaqeI`92;{cBXBFXzA*Nt`JA&m3{S<OkJj6GcHxmC<9@&BB79*&*>0HMC^ z<>un!D<w4ufl|OuP;#6$7w~uR_Hps_Fc<K=eaFGh*T+J@*4xh6#oxjEx`3~z7b5_9 zh%2OmGcYol2zdCpxeXvrQlFxwH#0DnaCNxnV`*S4ar{YB0XsKaAD>(rEHsx6OM!)5 z_po($xb9-->Cw;3!pdfO^zYzbnjd}Z;B&*kSi{B6*TvJr*85%_E4#UY@m2CTtm)|t zjCCFEIoPWm59cc<*L81CPhTtq&TyJv{QLzK^()tI+B-Vmar5vA42@3A&VAX?^a*@y S0DwS_z5?9GU;q7R{r><c{m|3^ literal 391339 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%0AE@cCvpk=hiQwl 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%0AK{j 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 Z``3hV+IH^zv9C9M8nY36{Oer``#%})-JSpd diff --git a/server-console/resources/console.ico b/server-console/resources/console.ico index c5a4bb0381c79000b097434ec020d47f260a5632..007c97f92ac173f12f6d5c26f2f2bb789fd95541 100644 GIT binary patch literal 37138 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 literal 43847 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 diff --git a/server-console/resources/console.png b/server-console/resources/console.png index 9fa1b843ec45f386eeb6a07c9bd84e99f14fee8d..cfb848d47b23201514f47b091a260f4cc485a956 100644 GIT binary patch literal 61324 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 Yb?^O#Xp*<075JN?tm^$@8Pga41Hs?m9{>OV literal 79626 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 V*?{FtQKdo-;c5C_2hJTnf0ahr5 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%0A@c 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 From 4ed5f642ed9810190e72c5ba505d4528daa17917 Mon Sep 17 00:00:00 2001 From: Roxanne Skelly <roxanne@highfidelity.io> Date: Fri, 11 Jan 2019 14:51:44 -0800 Subject: [PATCH 216/230] Case20615 - Changing Avatars doesn't update to everyone intermittently There were two problems: 1) If an update to a trait (simple or instance) was not sent because there was an outstanding (unacked) message, it would not be resent until a new trait was updated. Expected - it should be sent when the ack for the outstanding packet is received. 2) Trait versions were improperly being set to zero (the default) when an ack is received. --- .../src/avatars/AvatarMixerClientData.cpp | 4 ++- .../src/avatars/AvatarMixerSlave.cpp | 32 +++++++++++-------- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/assignment-client/src/avatars/AvatarMixerClientData.cpp b/assignment-client/src/avatars/AvatarMixerClientData.cpp index 01cc9ff7a0..0caa7a0d9e 100644 --- a/assignment-client/src/avatars/AvatarMixerClientData.cpp +++ b/assignment-client/src/avatars/AvatarMixerClientData.cpp @@ -208,7 +208,9 @@ void AvatarMixerClientData::processBulkAvatarTraitsAckMessage(ReceivedMessage& m auto simpleReceivedIt = traitVersions.simpleCBegin(); while (simpleReceivedIt != traitVersions.simpleCEnd()) { auto traitType = static_cast<AvatarTraits::TraitType>(std::distance(traitVersions.simpleCBegin(), simpleReceivedIt)); - _perNodeAckedTraitVersions[nodeId][traitType] = *simpleReceivedIt; + if (*simpleReceivedIt != AvatarTraits::DEFAULT_TRAIT_VERSION) { + _perNodeAckedTraitVersions[nodeId][traitType] = *simpleReceivedIt; + } simpleReceivedIt++; } diff --git a/assignment-client/src/avatars/AvatarMixerSlave.cpp b/assignment-client/src/avatars/AvatarMixerSlave.cpp index 5e84df0d7f..c23d2cc533 100644 --- a/assignment-client/src/avatars/AvatarMixerSlave.cpp +++ b/assignment-client/src/avatars/AvatarMixerSlave.cpp @@ -112,6 +112,7 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis // to see if there is any new traits data for this avatar that we need to send auto timeOfLastTraitsSent = listeningNodeData->getLastOtherAvatarTraitsSendPoint(otherNodeLocalID); auto timeOfLastTraitsChange = sendingNodeData->getLastReceivedTraitsChange(); + auto nextTimeOfLastTraitsSent = timeOfLastTraitsChange; qint64 bytesWritten = 0; @@ -134,16 +135,20 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis auto& lastAckedVersionRef = lastAckedVersions[traitType]; // hold sending more traits until we've been acked that the last one we sent was received - if (lastSentVersionRef == lastAckedVersionRef && lastReceivedVersions[traitType] > lastSentVersionRef) { - bytesWritten += addTraitsNodeHeader(listeningNodeData, sendingNodeData, traitsPacketList, bytesWritten); - // there is an update to this trait, add it to the traits packet - bytesWritten += sendingAvatar->packTrait(traitType, traitsPacketList, lastReceivedVersion); - // update the last sent version - lastSentVersionRef = lastReceivedVersion; - // Remember which versions we sent in this particular packet - // so we can verify when it's acked. - auto& pendingTraitVersions = listeningNodeData->getPendingTraitVersions(listeningNodeData->getTraitsMessageSequence(), otherNodeLocalID); - pendingTraitVersions[traitType] = lastReceivedVersion; + if (lastSentVersionRef == lastAckedVersionRef) { + if (lastReceivedVersion > lastSentVersionRef) { + bytesWritten += addTraitsNodeHeader(listeningNodeData, sendingNodeData, traitsPacketList, bytesWritten); + // there is an update to this trait, add it to the traits packet + bytesWritten += sendingAvatar->packTrait(traitType, traitsPacketList, lastReceivedVersion); + // update the last sent version + lastSentVersionRef = lastReceivedVersion; + // Remember which versions we sent in this particular packet + // so we can verify when it's acked. + auto& pendingTraitVersions = listeningNodeData->getPendingTraitVersions(listeningNodeData->getTraitsMessageSequence(), otherNodeLocalID); + pendingTraitVersions[traitType] = lastReceivedVersion; + } + } else { + nextTimeOfLastTraitsSent = timeOfLastTraitsSent; } ++simpleReceivedIt; @@ -182,6 +187,7 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis // version to go on, otherwise we drop the received trait if (sentInstanceIt != sentIDValuePairs.end() && (ackedInstanceIt == ackIDValuePairs.end() || sentInstanceIt->value != ackedInstanceIt->value)) { + nextTimeOfLastTraitsSent = timeOfLastTraitsSent; continue; } if (!isDeleted && (sentInstanceIt == sentIDValuePairs.end() || receivedVersion > sentInstanceIt->value)) { @@ -223,10 +229,10 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis if (bytesWritten) { // write a null trait type to mark the end of trait data for this avatar bytesWritten += traitsPacketList.writePrimitive(AvatarTraits::NullTrait); + // since we send all traits for this other avatar, update the time of last traits sent + // to match the time of last traits change + listeningNodeData->setLastOtherAvatarTraitsSendPoint(otherNodeLocalID, nextTimeOfLastTraitsSent); } - // since we send all traits for this other avatar, update the time of last traits sent - // to match the time of last traits change - listeningNodeData->setLastOtherAvatarTraitsSendPoint(otherNodeLocalID, timeOfLastTraitsChange); } From 6589db628affa3e37bfdaf96cf49bc238d378a46 Mon Sep 17 00:00:00 2001 From: Seth Alves <seth.alves@gmail.com> Date: Mon, 17 Dec 2018 12:03:16 -0800 Subject: [PATCH 217/230] fix a couple shutdown crashes and a class of asan warning --- .../src/scripting/MenuScriptingInterface.cpp | 8 ++--- libraries/networking/src/LimitedNodeList.cpp | 9 ----- libraries/networking/src/LimitedNodeList.h | 9 +++++ libraries/script-engine/src/ScriptEngine.cpp | 34 ++++++++++++------- libraries/script-engine/src/ScriptEngine.h | 4 +++ 5 files changed, 39 insertions(+), 25 deletions(-) diff --git a/interface/src/scripting/MenuScriptingInterface.cpp b/interface/src/scripting/MenuScriptingInterface.cpp index d6dc2fa703..ae6a7c7d67 100644 --- a/interface/src/scripting/MenuScriptingInterface.cpp +++ b/interface/src/scripting/MenuScriptingInterface.cpp @@ -43,7 +43,7 @@ bool MenuScriptingInterface::menuExists(const QString& menu) { if (QThread::currentThread() == qApp->thread()) { return Menu::getInstance()->menuExists(menu); } - bool result; + bool result { false }; BLOCKING_INVOKE_METHOD(Menu::getInstance(), "menuExists", Q_RETURN_ARG(bool, result), Q_ARG(const QString&, menu)); @@ -86,7 +86,7 @@ bool MenuScriptingInterface::menuItemExists(const QString& menu, const QString& if (QThread::currentThread() == qApp->thread()) { return Menu::getInstance()->menuItemExists(menu, menuitem); } - bool result; + bool result { false }; BLOCKING_INVOKE_METHOD(Menu::getInstance(), "menuItemExists", Q_RETURN_ARG(bool, result), Q_ARG(const QString&, menu), @@ -98,7 +98,7 @@ bool MenuScriptingInterface::isOptionChecked(const QString& menuOption) { if (QThread::currentThread() == qApp->thread()) { return Menu::getInstance()->isOptionChecked(menuOption); } - bool result; + bool result { false }; BLOCKING_INVOKE_METHOD(Menu::getInstance(), "isOptionChecked", Q_RETURN_ARG(bool, result), Q_ARG(const QString&, menuOption)); @@ -115,7 +115,7 @@ bool MenuScriptingInterface::isMenuEnabled(const QString& menuOption) { if (QThread::currentThread() == qApp->thread()) { return Menu::getInstance()->isOptionChecked(menuOption); } - bool result; + bool result { false }; BLOCKING_INVOKE_METHOD(Menu::getInstance(), "isMenuEnabled", Q_RETURN_ARG(bool, result), Q_ARG(const QString&, menuOption)); diff --git a/libraries/networking/src/LimitedNodeList.cpp b/libraries/networking/src/LimitedNodeList.cpp index 8b9e37569c..87ffb0b396 100644 --- a/libraries/networking/src/LimitedNodeList.cpp +++ b/libraries/networking/src/LimitedNodeList.cpp @@ -40,15 +40,6 @@ static Setting::Handle<quint16> LIMITED_NODELIST_LOCAL_PORT("LimitedNodeList.LocalPort", 0); -const std::set<NodeType_t> SOLO_NODE_TYPES = { - NodeType::AvatarMixer, - NodeType::AudioMixer, - NodeType::AssetServer, - NodeType::EntityServer, - NodeType::MessagesMixer, - NodeType::EntityScriptServer -}; - LimitedNodeList::LimitedNodeList(int socketListenPort, int dtlsListenPort) : _nodeSocket(this), _packetReceiver(new PacketReceiver(this)) diff --git a/libraries/networking/src/LimitedNodeList.h b/libraries/networking/src/LimitedNodeList.h index 450fad96a9..ca75514761 100644 --- a/libraries/networking/src/LimitedNodeList.h +++ b/libraries/networking/src/LimitedNodeList.h @@ -444,6 +444,15 @@ private: int _outboundPPS { 0 }; float _inboundKbps { 0.0f }; float _outboundKbps { 0.0f }; + + const std::set<NodeType_t> SOLO_NODE_TYPES = { + NodeType::AvatarMixer, + NodeType::AudioMixer, + NodeType::AssetServer, + NodeType::EntityServer, + NodeType::MessagesMixer, + NodeType::EntityScriptServer + }; }; #endif // hifi_LimitedNodeList_h diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 8dad5932be..7b493dbe05 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -164,7 +164,9 @@ ScriptEnginePointer scriptEngineFactory(ScriptEngine::Context context, const QString& fileNameString) { ScriptEngine* engine = new ScriptEngine(context, scriptContents, fileNameString); ScriptEnginePointer engineSP = ScriptEnginePointer(engine); - DependencyManager::get<ScriptEngines>()->addScriptEngine(qSharedPointerCast<ScriptEngine>(engineSP)); + auto scriptEngines = DependencyManager::get<ScriptEngines>(); + scriptEngines->addScriptEngine(qSharedPointerCast<ScriptEngine>(engineSP)); + engine->setScriptEngines(scriptEngines); return engineSP; } @@ -259,7 +261,7 @@ bool ScriptEngine::isDebugMode() const { } ScriptEngine::~ScriptEngine() { - auto scriptEngines = DependencyManager::get<ScriptEngines>(); + QSharedPointer<ScriptEngines> scriptEngines(_scriptEngines); if (scriptEngines) { scriptEngines->removeScriptEngine(qSharedPointerCast<ScriptEngine>(sharedFromThis())); } @@ -1012,7 +1014,8 @@ QScriptValue ScriptEngine::evaluateInClosure(const QScriptValue& closure, const } QScriptValue ScriptEngine::evaluate(const QString& sourceCode, const QString& fileName, int lineNumber) { - if (DependencyManager::get<ScriptEngines>()->isStopped()) { + QSharedPointer<ScriptEngines> scriptEngines(_scriptEngines); + if (!scriptEngines || scriptEngines->isStopped()) { return QScriptValue(); // bail early } @@ -1062,7 +1065,8 @@ void ScriptEngine::run() { auto name = filenameParts.size() > 0 ? filenameParts[filenameParts.size() - 1] : "unknown"; PROFILE_SET_THREAD_NAME("Script: " + name); - if (DependencyManager::get<ScriptEngines>()->isStopped()) { + QSharedPointer<ScriptEngines> scriptEngines(_scriptEngines); + if (!scriptEngines || scriptEngines->isStopped()) { return; // bail early - avoid setting state in init(), as evaluate() will bail too } @@ -1319,7 +1323,7 @@ void ScriptEngine::updateMemoryCost(const qint64& deltaSize) { void ScriptEngine::timerFired() { { - auto engine = DependencyManager::get<ScriptEngines>(); + QSharedPointer<ScriptEngines> engine(_scriptEngines); if (!engine || engine->isStopped()) { scriptWarningMessage("Script.timerFired() while shutting down is ignored... parent script:" + getFilename()); return; // bail early @@ -1373,7 +1377,8 @@ QObject* ScriptEngine::setupTimerWithInterval(const QScriptValue& function, int } QObject* ScriptEngine::setInterval(const QScriptValue& function, int intervalMS) { - if (DependencyManager::get<ScriptEngines>()->isStopped()) { + QSharedPointer<ScriptEngines> scriptEngines(_scriptEngines); + if (!scriptEngines || scriptEngines->isStopped()) { scriptWarningMessage("Script.setInterval() while shutting down is ignored... parent script:" + getFilename()); return NULL; // bail early } @@ -1382,7 +1387,8 @@ QObject* ScriptEngine::setInterval(const QScriptValue& function, int intervalMS) } QObject* ScriptEngine::setTimeout(const QScriptValue& function, int timeoutMS) { - if (DependencyManager::get<ScriptEngines>()->isStopped()) { + QSharedPointer<ScriptEngines> scriptEngines(_scriptEngines); + if (!scriptEngines || scriptEngines->isStopped()) { scriptWarningMessage("Script.setTimeout() while shutting down is ignored... parent script:" + getFilename()); return NULL; // bail early } @@ -1813,7 +1819,8 @@ void ScriptEngine::include(const QStringList& includeFiles, QScriptValue callbac if (!IS_THREADSAFE_INVOCATION(thread(), __FUNCTION__)) { return; } - if (DependencyManager::get<ScriptEngines>()->isStopped()) { + QSharedPointer<ScriptEngines> scriptEngines(_scriptEngines); + if (!scriptEngines || scriptEngines->isStopped()) { scriptWarningMessage("Script.include() while shutting down is ignored... includeFiles:" + includeFiles.join(",") + "parent script:" + getFilename()); return; // bail early @@ -1907,7 +1914,8 @@ void ScriptEngine::include(const QStringList& includeFiles, QScriptValue callbac } void ScriptEngine::include(const QString& includeFile, QScriptValue callback) { - if (DependencyManager::get<ScriptEngines>()->isStopped()) { + QSharedPointer<ScriptEngines> scriptEngines(_scriptEngines); + if (!scriptEngines || scriptEngines->isStopped()) { scriptWarningMessage("Script.include() while shutting down is ignored... includeFile:" + includeFile + "parent script:" + getFilename()); return; // bail early @@ -1925,7 +1933,8 @@ void ScriptEngine::load(const QString& loadFile) { if (!IS_THREADSAFE_INVOCATION(thread(), __FUNCTION__)) { return; } - if (DependencyManager::get<ScriptEngines>()->isStopped()) { + QSharedPointer<ScriptEngines> scriptEngines(_scriptEngines); + if (!scriptEngines || scriptEngines->isStopped()) { scriptWarningMessage("Script.load() while shutting down is ignored... loadFile:" + loadFile + "parent script:" + getFilename()); return; // bail early @@ -2073,10 +2082,11 @@ void ScriptEngine::loadEntityScript(const EntityItemID& entityID, const QString& } PROFILE_RANGE(script, __FUNCTION__); - if (isStopping() || DependencyManager::get<ScriptEngines>()->isStopped()) { + QSharedPointer<ScriptEngines> scriptEngines(_scriptEngines); + if (isStopping() || !scriptEngines || scriptEngines->isStopped()) { qCDebug(scriptengine) << "loadEntityScript.start " << entityID.toString() << " but isStopping==" << isStopping() - << " || engines->isStopped==" << DependencyManager::get<ScriptEngines>()->isStopped(); + << " || engines->isStopped==" << scriptEngines->isStopped(); return; } diff --git a/libraries/script-engine/src/ScriptEngine.h b/libraries/script-engine/src/ScriptEngine.h index 8fe50aee78..0d6d45e594 100644 --- a/libraries/script-engine/src/ScriptEngine.h +++ b/libraries/script-engine/src/ScriptEngine.h @@ -563,6 +563,8 @@ public: bool getEntityScriptDetails(const EntityItemID& entityID, EntityScriptDetails &details) const; bool hasEntityScriptDetails(const EntityItemID& entityID) const; + void setScriptEngines(QSharedPointer<ScriptEngines>& scriptEngines) { _scriptEngines = scriptEngines; } + public slots: /**jsdoc @@ -814,6 +816,8 @@ protected: static const QString _SETTINGS_ENABLE_EXTENDED_EXCEPTIONS; Setting::Handle<bool> _enableExtendedJSExceptions { _SETTINGS_ENABLE_EXTENDED_EXCEPTIONS, true }; + + QWeakPointer<ScriptEngines> _scriptEngines; }; ScriptEnginePointer scriptEngineFactory(ScriptEngine::Context context, From 36040597ba8d6c6d20cef8fd5de36caea7527203 Mon Sep 17 00:00:00 2001 From: Seth Alves <seth.alves@gmail.com> Date: Sat, 22 Dec 2018 06:56:20 -0800 Subject: [PATCH 218/230] rename variable for consistency --- libraries/script-engine/src/ScriptEngine.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 7b493dbe05..1396ee02fc 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -1323,8 +1323,8 @@ void ScriptEngine::updateMemoryCost(const qint64& deltaSize) { void ScriptEngine::timerFired() { { - QSharedPointer<ScriptEngines> engine(_scriptEngines); - if (!engine || engine->isStopped()) { + QSharedPointer<ScriptEngines> scriptEngines(_scriptEngines); + if (!scriptEngines || scriptEngines->isStopped()) { scriptWarningMessage("Script.timerFired() while shutting down is ignored... parent script:" + getFilename()); return; // bail early } From 114bcc003a6fc53c58ddba61261a6b3d5a5d44b4 Mon Sep 17 00:00:00 2001 From: Seth Alves <seth.alves@gmail.com> Date: Mon, 7 Jan 2019 07:36:39 -0800 Subject: [PATCH 219/230] quiet build warnings --- libraries/fbx/src/FBXSerializer.h | 2 ++ libraries/hfm/src/hfm/HFMSerializer.h | 1 + 2 files changed, 3 insertions(+) diff --git a/libraries/fbx/src/FBXSerializer.h b/libraries/fbx/src/FBXSerializer.h index 7227ebac17..31ca301522 100644 --- a/libraries/fbx/src/FBXSerializer.h +++ b/libraries/fbx/src/FBXSerializer.h @@ -96,6 +96,8 @@ class ExtractedMesh; class FBXSerializer : public HFMSerializer { public: + virtual ~FBXSerializer() {} + MediaType getMediaType() const override; std::unique_ptr<hfm::Serializer::Factory> getFactory() const override; diff --git a/libraries/hfm/src/hfm/HFMSerializer.h b/libraries/hfm/src/hfm/HFMSerializer.h index 868ec3dd45..d0be588d60 100644 --- a/libraries/hfm/src/hfm/HFMSerializer.h +++ b/libraries/hfm/src/hfm/HFMSerializer.h @@ -23,6 +23,7 @@ class Serializer { public: class Factory { public: + virtual ~Factory() {} virtual std::shared_ptr<Serializer> get() = 0; }; From ecb34450bdd100779353552cb18e980428b90272 Mon Sep 17 00:00:00 2001 From: Seth Alves <seth.alves@gmail.com> Date: Wed, 9 Jan 2019 08:03:24 -0800 Subject: [PATCH 220/230] quiet uneeded logging --- libraries/animation/src/AnimClip.cpp | 6 +++--- libraries/animation/src/Rig.cpp | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/animation/src/AnimClip.cpp b/libraries/animation/src/AnimClip.cpp index 9dcf5822cd..32914e31ef 100644 --- a/libraries/animation/src/AnimClip.cpp +++ b/libraries/animation/src/AnimClip.cpp @@ -109,9 +109,9 @@ void AnimClip::copyFromNetworkAnim() { jointMap.reserve(animJointCount); for (int i = 0; i < animJointCount; i++) { int skeletonJoint = _skeleton->nameToJointIndex(animSkeleton.getJointName(i)); - if (skeletonJoint == -1) { - qCWarning(animation) << "animation contains joint =" << animSkeleton.getJointName(i) << " which is not in the skeleton"; - } + // if (skeletonJoint == -1) { + // qCWarning(animation) << "animation contains joint =" << animSkeleton.getJointName(i) << " which is not in the skeleton"; + // } jointMap.push_back(skeletonJoint); } diff --git a/libraries/animation/src/Rig.cpp b/libraries/animation/src/Rig.cpp index 44fdd8797f..bfa051435b 100644 --- a/libraries/animation/src/Rig.cpp +++ b/libraries/animation/src/Rig.cpp @@ -425,7 +425,7 @@ int Rig::indexOfJoint(const QString& jointName) const { // This is a content error, so we should issue a warning. if (result < 0 && _jointNameWarningCount < MAX_JOINT_NAME_WARNING_COUNT) { - qCWarning(animation) << "Rig: Missing joint" << jointName << "in avatar model"; + // qCWarning(animation) << "Rig: Missing joint" << jointName << "in avatar model"; _jointNameWarningCount++; } return result; From 6ca9ab6fba8fd81bae4ac3718481087d7f6f5c51 Mon Sep 17 00:00:00 2001 From: Seth Alves <seth.alves@gmail.com> Date: Wed, 9 Jan 2019 17:15:38 -0800 Subject: [PATCH 221/230] avoid shutdown crash --- libraries/script-engine/src/ScriptEngine.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 1396ee02fc..7039f8bc94 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -557,6 +557,10 @@ using ScriptableResourceRawPtr = ScriptableResource*; static QScriptValue scriptableResourceToScriptValue(QScriptEngine* engine, const ScriptableResourceRawPtr& resource) { + if (!resource) { + return QScriptValue(); // probably shutting down + } + // The first script to encounter this resource will track its memory. // In this way, it will be more likely to GC. // This fails in the case that the resource is used across many scripts, but From b71f4e0204ff9fc473daea1e25eb99cdd6a522b5 Mon Sep 17 00:00:00 2001 From: Seth Alves <seth.alves@gmail.com> Date: Thu, 10 Jan 2019 09:18:27 -0800 Subject: [PATCH 222/230] remove commented-out code --- libraries/animation/src/AnimClip.cpp | 3 --- libraries/animation/src/Rig.cpp | 1 - 2 files changed, 4 deletions(-) diff --git a/libraries/animation/src/AnimClip.cpp b/libraries/animation/src/AnimClip.cpp index 32914e31ef..1adc04ee1b 100644 --- a/libraries/animation/src/AnimClip.cpp +++ b/libraries/animation/src/AnimClip.cpp @@ -109,9 +109,6 @@ void AnimClip::copyFromNetworkAnim() { jointMap.reserve(animJointCount); for (int i = 0; i < animJointCount; i++) { int skeletonJoint = _skeleton->nameToJointIndex(animSkeleton.getJointName(i)); - // if (skeletonJoint == -1) { - // qCWarning(animation) << "animation contains joint =" << animSkeleton.getJointName(i) << " which is not in the skeleton"; - // } jointMap.push_back(skeletonJoint); } diff --git a/libraries/animation/src/Rig.cpp b/libraries/animation/src/Rig.cpp index bfa051435b..6e27bee06f 100644 --- a/libraries/animation/src/Rig.cpp +++ b/libraries/animation/src/Rig.cpp @@ -425,7 +425,6 @@ int Rig::indexOfJoint(const QString& jointName) const { // This is a content error, so we should issue a warning. if (result < 0 && _jointNameWarningCount < MAX_JOINT_NAME_WARNING_COUNT) { - // qCWarning(animation) << "Rig: Missing joint" << jointName << "in avatar model"; _jointNameWarningCount++; } return result; From 5e2bde0b57e0e4e99d910071a490085f191688e3 Mon Sep 17 00:00:00 2001 From: ingerjm0 <jenna@highfidelity.io> Date: Fri, 11 Jan 2019 16:12:37 -0800 Subject: [PATCH 223/230] adding new pages --- tools/jsdoc/jsdoc.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 tools/jsdoc/jsdoc.sh diff --git a/tools/jsdoc/jsdoc.sh b/tools/jsdoc/jsdoc.sh new file mode 100644 index 0000000000..5a029b394a --- /dev/null +++ b/tools/jsdoc/jsdoc.sh @@ -0,0 +1,15 @@ +#!/bin/bash +hifi +git pull upstream master +jsd +rm -rf out +jsdoc root.js -c config.json +node gravPrep true "D:\hifi-docs-grav\user\themes\learn2" "D:\hifi-docs-grav-content" +pages +git add . +git commit -m "adding new pages" +git push origin new-pages +learn2 +git add . +git commit -m "adding new content" +git push origin update \ No newline at end of file From a8d89370a7c95081250eecce02f27e35a0ffffa3 Mon Sep 17 00:00:00 2001 From: ingerjm0 <jenna@highfidelity.io> Date: Fri, 11 Jan 2019 16:15:07 -0800 Subject: [PATCH 224/230] Revert "adding new pages" This reverts commit 5e2bde0b57e0e4e99d910071a490085f191688e3. --- tools/jsdoc/jsdoc.sh | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 tools/jsdoc/jsdoc.sh diff --git a/tools/jsdoc/jsdoc.sh b/tools/jsdoc/jsdoc.sh deleted file mode 100644 index 5a029b394a..0000000000 --- a/tools/jsdoc/jsdoc.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -hifi -git pull upstream master -jsd -rm -rf out -jsdoc root.js -c config.json -node gravPrep true "D:\hifi-docs-grav\user\themes\learn2" "D:\hifi-docs-grav-content" -pages -git add . -git commit -m "adding new pages" -git push origin new-pages -learn2 -git add . -git commit -m "adding new content" -git push origin update \ No newline at end of file From d3528ba2899fdeec53b166644f32995b60680b00 Mon Sep 17 00:00:00 2001 From: Roxanne Skelly <roxanne@highfidelity.io> Date: Fri, 11 Jan 2019 16:33:23 -0800 Subject: [PATCH 225/230] Code review changes --- assignment-client/src/avatars/AvatarMixerClientData.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assignment-client/src/avatars/AvatarMixerClientData.cpp b/assignment-client/src/avatars/AvatarMixerClientData.cpp index 987cb7aa2f..b7d2f5cdf8 100644 --- a/assignment-client/src/avatars/AvatarMixerClientData.cpp +++ b/assignment-client/src/avatars/AvatarMixerClientData.cpp @@ -207,8 +207,8 @@ void AvatarMixerClientData::processBulkAvatarTraitsAckMessage(ReceivedMessage& m // process simple traits auto simpleReceivedIt = traitVersions.simpleCBegin(); while (simpleReceivedIt != traitVersions.simpleCEnd()) { - auto traitType = static_cast<AvatarTraits::TraitType>(std::distance(traitVersions.simpleCBegin(), simpleReceivedIt)); if (*simpleReceivedIt != AvatarTraits::DEFAULT_TRAIT_VERSION) { + auto traitType = static_cast<AvatarTraits::TraitType>(std::distance(traitVersions.simpleCBegin(), simpleReceivedIt)); _perNodeAckedTraitVersions[nodeId][traitType] = *simpleReceivedIt; } simpleReceivedIt++; From cd6495286dd33dc02f8523cae7428fbbe39961aa Mon Sep 17 00:00:00 2001 From: Roxanne Skelly <roxanne@highfidelity.io> Date: Fri, 11 Jan 2019 16:49:04 -0800 Subject: [PATCH 226/230] More code review changes --- assignment-client/src/avatars/AvatarMixerSlave.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/assignment-client/src/avatars/AvatarMixerSlave.cpp b/assignment-client/src/avatars/AvatarMixerSlave.cpp index c23d2cc533..02e66afb29 100644 --- a/assignment-client/src/avatars/AvatarMixerSlave.cpp +++ b/assignment-client/src/avatars/AvatarMixerSlave.cpp @@ -106,11 +106,11 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis // in that packet_ are ignored. Updates to traits not in that packet will // be sent. - auto otherNodeLocalID = sendingNodeData->getNodeLocalID(); + auto sendingNodeLocalID = sendingNodeData->getNodeLocalID(); // Perform a simple check with two server clock time points // to see if there is any new traits data for this avatar that we need to send - auto timeOfLastTraitsSent = listeningNodeData->getLastOtherAvatarTraitsSendPoint(otherNodeLocalID); + auto timeOfLastTraitsSent = listeningNodeData->getLastOtherAvatarTraitsSendPoint(sendingNodeLocalID); auto timeOfLastTraitsChange = sendingNodeData->getLastReceivedTraitsChange(); auto nextTimeOfLastTraitsSent = timeOfLastTraitsChange; @@ -122,8 +122,8 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis auto sendingAvatar = sendingNodeData->getAvatarSharedPointer(); // compare trait versions so we can see what exactly needs to go out - auto& lastSentVersions = listeningNodeData->getLastSentTraitVersions(otherNodeLocalID); - auto& lastAckedVersions = listeningNodeData->getLastAckedTraitVersions(otherNodeLocalID); + auto& lastSentVersions = listeningNodeData->getLastSentTraitVersions(sendingNodeLocalID); + auto& lastAckedVersions = listeningNodeData->getLastAckedTraitVersions(sendingNodeLocalID); const auto& lastReceivedVersions = sendingNodeData->getLastReceivedTraitVersions(); auto simpleReceivedIt = lastReceivedVersions.simpleCBegin(); @@ -144,7 +144,7 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis lastSentVersionRef = lastReceivedVersion; // Remember which versions we sent in this particular packet // so we can verify when it's acked. - auto& pendingTraitVersions = listeningNodeData->getPendingTraitVersions(listeningNodeData->getTraitsMessageSequence(), otherNodeLocalID); + auto& pendingTraitVersions = listeningNodeData->getPendingTraitVersions(listeningNodeData->getTraitsMessageSequence(), sendingNodeLocalID); pendingTraitVersions[traitType] = lastReceivedVersion; } } else { @@ -204,7 +204,7 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis auto& pendingTraitVersions = listeningNodeData->getPendingTraitVersions(listeningNodeData->getTraitsMessageSequence(), - otherNodeLocalID); + sendingNodeLocalID); pendingTraitVersions.instanceInsert(traitType, instanceID, receivedVersion); } else if (isDeleted && sentInstanceIt != sentIDValuePairs.end() && absoluteReceivedVersion > sentInstanceIt->value) { @@ -218,7 +218,7 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis auto& pendingTraitVersions = listeningNodeData->getPendingTraitVersions(listeningNodeData->getTraitsMessageSequence(), - otherNodeLocalID); + sendingNodeLocalID); pendingTraitVersions.instanceInsert(traitType, instanceID, absoluteReceivedVersion); } From 1ef047a3296eac3a036e76013f0dcab2a6725948 Mon Sep 17 00:00:00 2001 From: Seth Alves <seth.alves@gmail.com> Date: Fri, 11 Jan 2019 16:49:09 -0800 Subject: [PATCH 227/230] revert unneeded change to LimitedNodeList --- libraries/networking/src/LimitedNodeList.cpp | 9 +++++++++ libraries/networking/src/LimitedNodeList.h | 9 --------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/libraries/networking/src/LimitedNodeList.cpp b/libraries/networking/src/LimitedNodeList.cpp index 87ffb0b396..8b9e37569c 100644 --- a/libraries/networking/src/LimitedNodeList.cpp +++ b/libraries/networking/src/LimitedNodeList.cpp @@ -40,6 +40,15 @@ static Setting::Handle<quint16> LIMITED_NODELIST_LOCAL_PORT("LimitedNodeList.LocalPort", 0); +const std::set<NodeType_t> SOLO_NODE_TYPES = { + NodeType::AvatarMixer, + NodeType::AudioMixer, + NodeType::AssetServer, + NodeType::EntityServer, + NodeType::MessagesMixer, + NodeType::EntityScriptServer +}; + LimitedNodeList::LimitedNodeList(int socketListenPort, int dtlsListenPort) : _nodeSocket(this), _packetReceiver(new PacketReceiver(this)) diff --git a/libraries/networking/src/LimitedNodeList.h b/libraries/networking/src/LimitedNodeList.h index ca75514761..450fad96a9 100644 --- a/libraries/networking/src/LimitedNodeList.h +++ b/libraries/networking/src/LimitedNodeList.h @@ -444,15 +444,6 @@ private: int _outboundPPS { 0 }; float _inboundKbps { 0.0f }; float _outboundKbps { 0.0f }; - - const std::set<NodeType_t> SOLO_NODE_TYPES = { - NodeType::AvatarMixer, - NodeType::AudioMixer, - NodeType::AssetServer, - NodeType::EntityServer, - NodeType::MessagesMixer, - NodeType::EntityScriptServer - }; }; #endif // hifi_LimitedNodeList_h From fca15c1362f52d4ef0c5902aeda99e0d41a91417 Mon Sep 17 00:00:00 2001 From: Roxanne Skelly <roxanne@highfidelity.io> Date: Fri, 11 Jan 2019 17:13:32 -0800 Subject: [PATCH 228/230] CR Fix --- assignment-client/src/avatars/AvatarMixerSlave.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assignment-client/src/avatars/AvatarMixerSlave.cpp b/assignment-client/src/avatars/AvatarMixerSlave.cpp index 02e66afb29..afde3be07e 100644 --- a/assignment-client/src/avatars/AvatarMixerSlave.cpp +++ b/assignment-client/src/avatars/AvatarMixerSlave.cpp @@ -231,7 +231,7 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis bytesWritten += traitsPacketList.writePrimitive(AvatarTraits::NullTrait); // since we send all traits for this other avatar, update the time of last traits sent // to match the time of last traits change - listeningNodeData->setLastOtherAvatarTraitsSendPoint(otherNodeLocalID, nextTimeOfLastTraitsSent); + listeningNodeData->setLastOtherAvatarTraitsSendPoint(sendingNodeLocalID, nextTimeOfLastTraitsSent); } } From 69af0ea0ee7a4204302063876c2b69a5aa22a0a7 Mon Sep 17 00:00:00 2001 From: Roxanne Skelly <roxanne@highfidelity.io> Date: Fri, 11 Jan 2019 17:52:47 -0800 Subject: [PATCH 229/230] CR Fix --- assignment-client/src/avatars/AvatarMixerSlave.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/assignment-client/src/avatars/AvatarMixerSlave.cpp b/assignment-client/src/avatars/AvatarMixerSlave.cpp index afde3be07e..6b039e2c03 100644 --- a/assignment-client/src/avatars/AvatarMixerSlave.cpp +++ b/assignment-client/src/avatars/AvatarMixerSlave.cpp @@ -112,7 +112,7 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis // to see if there is any new traits data for this avatar that we need to send auto timeOfLastTraitsSent = listeningNodeData->getLastOtherAvatarTraitsSendPoint(sendingNodeLocalID); auto timeOfLastTraitsChange = sendingNodeData->getLastReceivedTraitsChange(); - auto nextTimeOfLastTraitsSent = timeOfLastTraitsChange; + bool allTraitsUpdated = true; qint64 bytesWritten = 0; @@ -148,7 +148,7 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis pendingTraitVersions[traitType] = lastReceivedVersion; } } else { - nextTimeOfLastTraitsSent = timeOfLastTraitsSent; + allTraitsUpdated = false; } ++simpleReceivedIt; @@ -187,7 +187,7 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis // version to go on, otherwise we drop the received trait if (sentInstanceIt != sentIDValuePairs.end() && (ackedInstanceIt == ackIDValuePairs.end() || sentInstanceIt->value != ackedInstanceIt->value)) { - nextTimeOfLastTraitsSent = timeOfLastTraitsSent; + allTraitsUpdated = false; continue; } if (!isDeleted && (sentInstanceIt == sentIDValuePairs.end() || receivedVersion > sentInstanceIt->value)) { @@ -231,7 +231,9 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis bytesWritten += traitsPacketList.writePrimitive(AvatarTraits::NullTrait); // since we send all traits for this other avatar, update the time of last traits sent // to match the time of last traits change - listeningNodeData->setLastOtherAvatarTraitsSendPoint(sendingNodeLocalID, nextTimeOfLastTraitsSent); + if (allTraitsUpdated) { + listeningNodeData->setLastOtherAvatarTraitsSendPoint(sendingNodeLocalID, timeOfLastTraitsChange); + } } } From a63c2b3e29fa109503c2ca288d947b5b12d263e0 Mon Sep 17 00:00:00 2001 From: birarda <commit@birarda.com> Date: Tue, 15 Jan 2019 15:21:50 -0800 Subject: [PATCH 230/230] pepper AssociatedTraitValues with some needed comments --- libraries/avatars/src/AssociatedTraitValues.h | 52 ++++++++++++++++++- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/libraries/avatars/src/AssociatedTraitValues.h b/libraries/avatars/src/AssociatedTraitValues.h index cf1edef7f7..e3060a8097 100644 --- a/libraries/avatars/src/AssociatedTraitValues.h +++ b/libraries/avatars/src/AssociatedTraitValues.h @@ -14,16 +14,33 @@ #include "AvatarTraits.h" +// This templated class is admittedly fairly confusing to look at. It is used +// to hold some associated value of type T for both simple (non-instanced) and instanced traits. +// Most of the complexity comes from the fact that simple and instanced trait types are +// handled differently. For each simple trait type there can be a value T, but for +// each instance of each instanced trait +// (keyed by a TraitInstanceID, which at the time of this writing is a UUID) there can be a value T. +// There are separate methods in most cases for simple traits and instanced traits +// because of this different behaviour. This class is not used to hold the values +// of the traits themselves, but instead an associated value like the latest version +// of each trait (see TraitVersions) or a state associated with each trait (like added/changed/deleted). + namespace AvatarTraits { template<typename T, T defaultValue> class AssociatedTraitValues { public: + // constructor that pre-fills _simpleTypes with the default value specified by the template AssociatedTraitValues() : _simpleTypes(FirstInstancedTrait, defaultValue) {} + /// inserts the given value for the given simple trait type void insert(TraitType type, T value) { _simpleTypes[type] = value; } + /// resets the simple trait type value to the default void erase(TraitType type) { _simpleTypes[type] = defaultValue; } + /// returns a reference to the value for a given instance for a given instanced trait type T& getInstanceValueRef(TraitType traitType, TraitInstanceID instanceID); + + /// inserts the passed value for the given instance for the given instanced trait type void instanceInsert(TraitType traitType, TraitInstanceID instanceID, T value); struct InstanceIDValuePair { @@ -34,24 +51,30 @@ namespace AvatarTraits { }; using InstanceIDValuePairs = std::vector<InstanceIDValuePair>; - + + /// returns a vector of InstanceIDValuePair objects for the given instanced trait type InstanceIDValuePairs& getInstanceIDValuePairs(TraitType traitType); + /// erases the a given instance for a given instanced trait type void instanceErase(TraitType traitType, TraitInstanceID instanceID); + /// erases the value for all instances for a given instanced trait type void eraseAllInstances(TraitType traitType); - // will return defaultValue for instanced traits + /// value getters for simple trait types, will be default value if value has been erased or not set T operator[](TraitType traitType) const { return _simpleTypes[traitType]; } T& operator[](TraitType traitType) { return _simpleTypes[traitType]; } + /// resets all simple trait types to the default value and erases all values for instanced trait types void reset() { std::fill(_simpleTypes.begin(), _simpleTypes.end(), defaultValue); _instancedTypes.clear(); } + /// const iterators for the vector of simple type values typename std::vector<T>::const_iterator simpleCBegin() const { return _simpleTypes.cbegin(); } typename std::vector<T>::const_iterator simpleCEnd() const { return _simpleTypes.cend(); } + /// non-const iterators for the vector of simple type values typename std::vector<T>::iterator simpleBegin() { return _simpleTypes.begin(); } typename std::vector<T>::iterator simpleEnd() { return _simpleTypes.end(); } @@ -64,15 +87,18 @@ namespace AvatarTraits { traitType(traitType), instances({{ instanceID, value }}) {}; }; + /// const iterators for the vector of TraitWithInstances objects typename std::vector<TraitWithInstances>::const_iterator instancedCBegin() const { return _instancedTypes.cbegin(); } typename std::vector<TraitWithInstances>::const_iterator instancedCEnd() const { return _instancedTypes.cend(); } + /// non-const iterators for the vector of TraitWithInstances objects typename std::vector<TraitWithInstances>::iterator instancedBegin() { return _instancedTypes.begin(); } typename std::vector<TraitWithInstances>::iterator instancedEnd() { return _instancedTypes.end(); } private: std::vector<T> _simpleTypes; + /// return the iterator to the matching TraitWithInstances object for a given instanced trait type typename std::vector<TraitWithInstances>::iterator instancesForTrait(TraitType traitType) { return std::find_if(_instancedTypes.begin(), _instancedTypes.end(), [traitType](TraitWithInstances& traitWithInstances){ @@ -83,25 +109,34 @@ namespace AvatarTraits { std::vector<TraitWithInstances> _instancedTypes; }; + /// returns a reference to the InstanceIDValuePairs object for a given instanced trait type template <typename T, T defaultValue> inline typename AssociatedTraitValues<T, defaultValue>::InstanceIDValuePairs& AssociatedTraitValues<T, defaultValue>::getInstanceIDValuePairs(TraitType traitType) { + // first check if we already have some values for instances of this trait type auto it = instancesForTrait(traitType); if (it != _instancedTypes.end()) { return it->instances; } else { + // if we didn't have any values for instances of the instanced trait type + // add an empty InstanceIDValuePairs object first and then return the reference to it _instancedTypes.emplace_back(traitType); return _instancedTypes.back().instances; } } + // returns a reference to value for the given instance of the given instanced trait type template <typename T, T defaultValue> inline T& AssociatedTraitValues<T, defaultValue>::getInstanceValueRef(TraitType traitType, TraitInstanceID instanceID) { + // first check if we already have some values for instances of this trait type auto it = instancesForTrait(traitType); if (it != _instancedTypes.end()) { + // grab the matching vector of instances auto& instancesVector = it->instances; + + // check if we have a value for this specific instance ID auto instanceIt = std::find_if(instancesVector.begin(), instancesVector.end(), [instanceID](InstanceIDValuePair& idValuePair){ return idValuePair.id == instanceID; @@ -109,40 +144,53 @@ namespace AvatarTraits { if (instanceIt != instancesVector.end()) { return instanceIt->value; } else { + // no value for this specific instance ID, insert the default value and return it instancesVector.emplace_back(instanceID, defaultValue); return instancesVector.back().value; } } else { + // no values for any instances of this trait type + // insert the default value for the specific instance for the instanced trait type _instancedTypes.emplace_back(traitType, instanceID, defaultValue); return _instancedTypes.back().instances.back().value; } } + /// inserts the passed value for the specific instance of the given instanced trait type template <typename T, T defaultValue> inline void AssociatedTraitValues<T, defaultValue>::instanceInsert(TraitType traitType, TraitInstanceID instanceID, T value) { + // first check if we already have some instances for this trait type auto it = instancesForTrait(traitType); if (it != _instancedTypes.end()) { + // found some instances for the instanced trait type, check if our specific instance is one of them auto& instancesVector = it->instances; auto instanceIt = std::find_if(instancesVector.begin(), instancesVector.end(), [instanceID](InstanceIDValuePair& idValuePair){ return idValuePair.id == instanceID; }); if (instanceIt != instancesVector.end()) { + // the instance already existed, update the value instanceIt->value = value; } else { + // the instance was not present, emplace the new value instancesVector.emplace_back(instanceID, value); } } else { + // there were no existing instances for the given trait type + // setup the container for instances and insert the passed value for this instance ID _instancedTypes.emplace_back(traitType, instanceID, value); } } + /// erases the value for a specific instance of the given instanced trait type template <typename T, T defaultValue> inline void AssociatedTraitValues<T, defaultValue>::instanceErase(TraitType traitType, TraitInstanceID instanceID) { + // check if we have any instances at all for this instanced trait type auto it = instancesForTrait(traitType); if (it != _instancedTypes.end()) { + // we have some instances, erase the value for the passed instance ID if it is present auto& instancesVector = it->instances; instancesVector.erase(std::remove_if(instancesVector.begin(), instancesVector.end(),